1 數(shù)據(jù)組織和格式
磁盤設(shè)備可以包括一個(gè)或多個(gè)物理盤片留攒,每個(gè)磁盤面分一個(gè)或兩個(gè)存儲(chǔ)面坚洽,每個(gè)磁盤面被組織成若干個(gè)同心環(huán)捌斧,稱為磁道(柱面)笛质,各磁道間留有必要的間隙泉沾。
磁道又被邏輯上分為不同的扇區(qū),一個(gè)物理記錄存儲(chǔ)在扇區(qū)上妇押,磁盤上存儲(chǔ)的物理記錄數(shù)據(jù)是由:扇區(qū)號(hào)跷究、磁道數(shù)、磁盤面舆吮、盤片決定的揭朝。
2 磁盤的類型
1)固定頭磁盤:在每條磁道上都有一讀/寫磁頭队贱,全部的磁頭都被裝在一剛性磁臂中色冀。通過這些磁頭可訪問全部各磁道。并進(jìn)行并行讀/寫柱嫌,有效地提高了磁盤的I/O速度锋恬。
2)移動(dòng)頭磁盤:每個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中编丘。
為能訪問該盤面上的全部磁道与学。該磁頭必須能移動(dòng)以進(jìn)行尋道〖巫ィ可見索守,移動(dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢抑片。
3 磁盤訪問時(shí)間
尋道時(shí)間Ts
把磁頭移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間卵佛。為啟動(dòng)磁臂的時(shí)間s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和,即Ts=m*n+s敞斋。當(dāng)中截汪。m是一個(gè)常數(shù),與磁盤驅(qū)動(dòng)器的速度有關(guān)植捎。
旋轉(zhuǎn)延遲時(shí)間Tr
是指定扇區(qū)移動(dòng)到磁頭以下所經(jīng)歷的時(shí)間衙解。
不同的磁盤類型中。旋轉(zhuǎn)速度至少相差一個(gè)數(shù)量級(jí)焰枢。Tr=1/(2r)蚓峦,當(dāng)中r為磁盤每秒鐘的轉(zhuǎn)數(shù)。
傳輸時(shí)間Tt
是指把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間济锄。Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān)暑椰。
Tt=b/(rN)。當(dāng)中拟淮。r為磁盤每秒鐘的轉(zhuǎn)數(shù)干茉;N為一條磁道上的字節(jié)數(shù),當(dāng)一次讀/寫的字節(jié)數(shù)相當(dāng)于半條磁道上的字節(jié)數(shù)時(shí)很泊,Tt與Tr同樣角虫。
訪問時(shí)間Ta為Ta=Ts+Tr+Tt
4 磁盤調(diào)度
因?yàn)樵谠L問磁盤的時(shí)間中沾谓,主要是尋道時(shí)間,因此戳鹅,磁盤調(diào)度的目標(biāo)是使磁盤的平均尋道時(shí)間最少均驶。眼下經(jīng)常使用的磁盤調(diào)度算法有先來先服務(wù)、最短尋道時(shí)間優(yōu)先及掃瞄等算法枫虏。
先來先服務(wù)(FCFS)
它依據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度妇穴。此算法的長(zhǎng)處是公平、簡(jiǎn)單隶债。且每一個(gè)進(jìn)程的請(qǐng)求都能依次地得到處理腾它,不會(huì)出現(xiàn)某一個(gè)進(jìn)程的請(qǐng)求長(zhǎng)期得不到滿足的情況。最短尋道時(shí)間優(yōu)先(SSTF)
其要求訪問的磁道與當(dāng)前磁頭所在的磁道距離近期死讹。以使每次的尋道時(shí)間最短瞒滴。SCAN算法
該算法不僅考慮到欲訪問的磁道與當(dāng)前磁道間的距離。更優(yōu)先考慮的是磁頭當(dāng)前的移動(dòng)方向赞警。比如妓忍,當(dāng)磁頭正在自里向外移動(dòng)時(shí),SCAN算法所考慮的下一個(gè)訪問對(duì)象愧旦。應(yīng)是其欲訪問的磁道既在當(dāng)前磁道之外世剖,又是距離近期的。
這樣自里向外地訪問笤虫,直至再無(wú)更外的磁道須要訪問時(shí)旁瘫,才將磁臂換向?yàn)樽酝庀蚶镆苿?dòng)。
循環(huán)掃瞄算法(CSCAN)
CSCAN算法規(guī)定磁頭單向移動(dòng)耕皮。比如境蜕,僅僅是自里向外移動(dòng)。當(dāng)磁頭移到最外的磁道并訪問后凌停。磁頭馬上返回到最里德欲訪問的磁道上粱年。亦將最小磁道號(hào)緊接著最大磁道號(hào)構(gòu)成循環(huán),進(jìn)行循環(huán)掃瞄罚拟。NStepSCAN算法
N步SCAN算法是將磁盤請(qǐng)求隊(duì)列分成若干個(gè)長(zhǎng)度為N的子隊(duì)列台诗,磁盤調(diào)度將按FCFS算法依次處理這些子隊(duì)列。而每處理一個(gè)子隊(duì)列又是按SCAN算法赐俗,對(duì)一個(gè)隊(duì)列處理完后拉队,再處理其它隊(duì)列。當(dāng)正在處理某子隊(duì)列時(shí)阻逮,假設(shè)又出現(xiàn)新的磁盤I/O請(qǐng)求粱快,便將新請(qǐng)求進(jìn)程放入其它隊(duì)列,這樣就可能避免粘著現(xiàn)象。FSCAN算法
僅僅將磁盤請(qǐng)求隊(duì)列分成兩個(gè)子隊(duì)列事哭。一個(gè)是由當(dāng)前全部請(qǐng)求磁盤I/O的進(jìn)程形成的隊(duì)列漫雷,由磁盤調(diào)度按SCAN算法進(jìn)行處理。在掃瞄期間鳍咱,將新出現(xiàn)的全部請(qǐng)求磁盤I/O的進(jìn)程降盹,放入還有一個(gè)等待處理的請(qǐng)求隊(duì)列。
5 提高磁盤I/O速度的其他方法
1)提前讀
2)延遲寫
3)優(yōu)化物理塊的分布
4)虛擬盤
6 便宜磁盤冗余陣列(RAID)
它是利用一臺(tái)磁盤陣列控制器谤辜。來統(tǒng)一管理和控制一組(幾臺(tái)到幾十臺(tái))磁盤驅(qū)動(dòng)器蓄坏。組成一個(gè)高度可靠的、高速的大容量磁盤系統(tǒng)丑念。為了提高對(duì)磁盤的訪問速度涡戳,已把在大、中型機(jī)中應(yīng)用的交叉存取技術(shù)應(yīng)用到了磁盤存儲(chǔ)系統(tǒng)中渠欺。
在該系統(tǒng)中妹蔽。有多臺(tái)磁盤驅(qū)動(dòng)器,系統(tǒng)將每一盤塊中的數(shù)據(jù)分為若干個(gè)子盤塊數(shù)據(jù)挠将,再把每個(gè)子盤塊的數(shù)據(jù)分別存儲(chǔ)到各個(gè)不同磁盤中的同樣位置上。在以后编整,當(dāng)要將一個(gè)盤塊中的數(shù)據(jù)傳送到內(nèi)存時(shí)舔稀,采取并行傳輸方式。將各個(gè)盤塊中的子盤塊數(shù)據(jù)同一時(shí)候向內(nèi)存中傳輸掌测。從而使傳輸時(shí)間大大降低内贮。
RAID的分級(jí):RAID 0~RAID 7
RAID 0
僅提供了并行交叉存取,無(wú)冗余校驗(yàn)功能汞斧。致使磁盤系統(tǒng)的可靠性不好夜郁。RAID 1
具有磁盤鏡像功能。用磁盤容量換取訪問速度粘勒,磁盤利用率只有50%竞端。RAID 3
具有并行傳輸功能的磁盤陣列。利用一臺(tái)奇偶校驗(yàn)盤來完畢數(shù)據(jù)的校驗(yàn)功能庙睡。降低了所須要的冗余磁盤數(shù)事富。用于科學(xué)計(jì)算和圖像處理。RAID 5
一種具有獨(dú)立傳送功能的磁盤陣列乘陪。每一個(gè)驅(qū)動(dòng)器都各有自己獨(dú)立的數(shù)據(jù)通路统台,獨(dú)立的進(jìn)行讀/寫,且無(wú)專門的校驗(yàn)盤啡邑。用來進(jìn)行糾錯(cuò)的校驗(yàn)信息贱勃。是以螺旋方式散布在全部數(shù)據(jù)盤上。用于I/O較頻繁的事務(wù)處理中。RAID 6
這是強(qiáng)化了的RAID贵扰。在RAID 6級(jí)陣列中族展,設(shè)置; 專用的拔鹰、可快速訪問的異步校驗(yàn)盤仪缸,該盤具有獨(dú)立的數(shù)據(jù)訪問通道。雖然具有比RAID 3和RAID 5更好的性能列肢,但性能改進(jìn)有限且價(jià)格昂貴恰画。RAID 7
RAID 7是對(duì)RAID 6 的改進(jìn),在該陣列的所有磁盤瓷马,都具有較高的傳輸速率和優(yōu)異的性能拴还,這是當(dāng)前最高檔次的磁盤陣列,價(jià)格也最貴欧聘。