磁盤與陣列技術
2.1 磁盤HDD(Hard Disk Drive)
1.磁盤依舊占外部存儲市場的主流
2.HDD新技術
-HAMR技術(熱輔助磁記錄):提高單盤存儲容量(20TB起)
-MACH.2(雙驅動臂):提高讀寫速度(480MB/s)
3.HDD大容量硬盤未衰反興
4.磁盤里面的結構
磁盤盤片:將硬磁材料塗敷、電鍍或沉積在金屬或玻璃材質的基板上,是記錄二進制信息的載體
主軸:將磁盤盤片固定在磁盤內部,在電動馬達的驅動下,磁盤盤片以主軸為中心高速轉動。(指標是每分鍾的轉速)
步進電機:控制磁頭精確定位到每個磁道
傳動手臂:
讀寫磁頭:將電脈沖信號轉換成介質上的磁化狀態,又將介質的磁化狀態轉換成電脈沖信號,是電磁轉換的“橋梁”(將硬磁材料塗敷、電鍍或沉積在金屬或玻璃材質的基板上,是記錄二進制信息的載體)
控制器:控制主軸電機的供電和速度、磁盤與主機CPU的通訊、如何移動激勵臂膀以控制讀寫、讀寫磁頭的轉換、數據訪問優化等等
5.磁盤的基本操作
數據寫入:
通過控制電路,驅動磁頭改變盤片上磁性粒子簇的極性來寫入數據。
數據讀取:
盤片上被極化的磁性粒子與磁頭上的磁感應物質相互作用,在磁頭上產生感應電壓,進一步被轉化為能夠被計算機處理的二進制信號。
6.磁盤幾何
- 每個磁面由許多磁道構成
- 每個磁道又被分割為許多扇區
7.格式化磁盤
允許控制器為每個區域留出備用的柱面,解釋“格式化容量”和“最大容量”之間的差異。
8. 柱面
對齊的軌道形成柱面。
9.物理地址與邏輯地址
物理地址 = CHS(柱面、磁頭、扇區)
邏輯地址= Block#
10.磁盤容量
確定容量的技術因素:
記錄密度Recording density (bits/in):磁道一英寸的段中可以放入的位數.
磁道密度Track density (tracks/in):從盤片中心出發半徑上一英寸的段內可以有的磁道數.
面密度Areal density (bits/in2):記錄密度與磁道密度的乘積.
注:由於外磁道的長度大於內磁道。現代磁盤不再把內外磁道划分為相同數目的扇區,而是利用外層磁道容量較內層磁道大的特點,將盤面划分成若干條環帶。
存儲容量 = 磁頭數 × 磁道(柱面)數 × 每道扇區數 × 每扇區字節數
11.磁盤定位
平均訪問時間 = 平均尋道時間 + 平均旋轉延遲 + 平均轉換時間
(一般平均尋道時間是8ms)
訪問磁盤的時間主要開銷是尋道時間和旋轉延遲!
• 最大旋轉延遲
Tmax rotation=(1/RPM) * (60secs/1min)
• 平均旋轉延遲
Tavg rotation =(1/2)*Tmax rotation
常見參數:
一個400G磁盤的典型參數:
(1)16,383 柱面,每個柱面24M字節
(2)8個雙面盤,共有16個讀寫頭
(3)每分鍾7200轉
(4)一個讀寫頭每秒可以讀寫 120 × 1.5 = 80MB/S
(5)每個磁道的數據位 24/16=1.5MB per track
12.磁盤驅動器性能:數據傳輸速率
13.外部設備互連
14.磁盤訪問時間
(1)IDE總線:66MB/S 是一個比較常見的速度
電子設備會成為66MB/S瓶頸
(2)SATA3: 3GB/S
機制會成為180MB/S的瓶頸
(3)幾個關鍵點
· 訪問時間是由尋道時延和旋轉時延決定的
· 找到某個扇區上的第一位是最貴的,其余位是免費的
· 訪問8byte,SRAM的訪問時間是4ns
· 訪問8byte,DRAM的訪問時間是60ns
· 訪問512byte,磁盤要10ms, 因此磁盤的訪問速率比DRAM慢2500倍,比SRAM慢40000倍
15.驅動的可靠性:平均無故障時間
MTBF:Mean Time Between Failure(設備發生故障之前的運行時間)
2.2磁盤陣列RAID Arrays
1.背景
(1)計算機系統總體性能的提高很不匹配
· 處理器和主存性能改進快
· 輔存性能改進慢
(2)廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks,RAID)
UC, Berkeley:David A. Patterson
RAID0~RAID6
2.RAID基本思想
將多個具有獨立操作的廉價磁盤按某種方式組織成一個磁盤陣列(Disk Array),以增加容量,利用類似於主存中的多體交叉技術,將數據存儲在多個盤體上,讓這些盤並行工作來提高數據傳輸速度,並采用冗余(redundancy)磁盤技術來進行錯誤恢復(error correction)以提高系統可靠性(reliability)。
· RAID是一組物理盤,操作系統將其視為單個邏輯盤
· 獨立冗余磁盤陣列RAID:Redundant Arrays of Independent Disks,獨立磁盤構成的具有冗余能力的陣列
3.NRAID
(1) NRAID:Non-RAID
(2) 所有磁盤的容量組合成一個邏輯盤,沒有數據塊分條(no block stripping)
· NRAID不提供數據冗余
·要求至少一個磁盤
4.JOBD:Just a Bunch of Disks(磁盤簇)
(1)一個在底板上安裝的、帶有多個磁盤驅動器的附件,與RAID陣列不同,沒有前端邏輯來管理磁盤上的數據分布
(2) 磁盤控制器把每個物理磁盤看作獨立的磁盤單獨尋址,因此每個磁盤都是獨立的邏輯盤
(3) JBOD也不提供數據冗余
(4)要求至少一個磁盤
5.RAID組成
6.數據組織:條帶(stripe)
(1)stripe是由多個磁盤上的stripes構成的數據條帶
(2)stripe的width是指數據被划分為了多少個並發的stripes
(3)性能分析-條帶:
· strip/block size可調:帶寬和吞吐率的折中
· Small size : 高傳輸速度
· Large size : 並發I/O
7.RAID 冗余技術
(1)鏡像
通過鏡像來實現冗余,保存在磁盤A的內容,也保存在B中。
(2)副本
用一個磁盤專門用來保存前面幾個磁盤的副本
8.磁盤級別
(1)RAID0:條帶陣列,無容錯
(2)RAID1: 磁盤陣列
優點:高數據可用性和高I/O率(小塊)。
缺點:可用存儲容量為50%。
性能:提高讀性能,但降低寫性能。
數據保護:改進了raid0的容錯能力。
應用:會計,支付,金融和需要高可靠性的應用。
(3)RAID 0+1
(4)RAID 1+0
重點:
RAID 0+1 和 RAID 1+0 又有什么區別呢?
· RAID 0+1是先讓磁盤組內的成員組成RAID 0條帶化,然后磁盤組之間為RAID 1鏡像關系。
· RAID 1+0是先讓磁盤組內的成員組成RAID 1互為鏡像,然后磁盤組之間RAID 0條帶化。
· 除了構成先后的差別外,主要的區別還表現在容錯性上。RAID 0+1 的損壞一塊磁盤之后,所在的RAID 0組即認為損壞,RAID 0+1 實際上已經退化為一個RAID 0 的結構,此時,上面那組RAID 0隨便壞一塊,整個RAID就崩潰了。
· 相對來說,RAID 1+0 就不會有這個問題,只要同一個RAID 1組內硬盤不全部損壞,整個RAID就不會有問題,在圖中可以認為,只要右上角的那塊磁盤不壞,整個RAID就不會崩潰。
(5) RAID3: 帶奇偶校驗碼的並行傳送
RAID 3總是在所有磁盤上讀取和寫入完整的數據條紋。至少需要3塊盤(2塊盤沒有校驗的意義)。將數據存放在n+1塊盤上,有效空間是n塊盤的總和,最后一塊存儲校驗信息。數據被分割存儲在n塊盤上,任一數據盤出現問題,可由其他數據盤通過校正監測恢復數據(可以帶傷工作),換數據盤需要重新恢復完整的校驗容錯信息。對陣列寫入時會重寫校驗盤的內容,對校驗盤的負載較大,讀寫速度相較於Raid0較慢,適用於讀取多而寫入少的應用環境,比如數據庫和web服務器。使用容錯算法和分塊的大小決定了Raid3在通常情況下用於大文件且安全性要求較高的應用,比如視頻編輯、硬盤播出機、大型數據庫等。
stripe size = logic block size of file system
(6)RAID4: 帶奇偶校驗碼的獨立磁盤結構
提供了非常好的讀性能,但單一的校驗盤往往成為系統性能的瓶頸。對於寫操作,RAID4 只能一個磁盤一個磁盤地寫,並且還要寫入校驗數據,因此寫性能比較差。而且隨着成員磁盤數量的增加,校驗盤的系統瓶頸將更加突出。正是如上這些限制和不足,所以不推薦 RAID4 在實際應用。RAID4和RAID3很象,不同的是,它對數據的訪問是按數據塊進行的,也就是按磁盤進行的,每次是一個盤。在圖上可以這么看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點的RAID3也挺象,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問數據的效率不怎么好。
(7) RAID5:分布式奇偶校驗的獨立磁盤結構
奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性,允許單個磁盤出錯。RAID 5也是以數據的校驗位來保證數據的安全,但它不是以單獨硬盤來存放數據的校驗位,而是將數據段的校驗位交互存放於各個硬盤上。這樣,任何一個硬盤損壞,都可以根據其它硬盤上的校驗位來重建損壞的數據。硬盤的利用率為n-1。 但是它對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區別在於RAID 3每進行一次數據傳輸,需涉及到所有的陣列盤。而對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。 RAID-5的話,優點是提供了冗余性(支持一塊盤掉線后仍然正常運行),磁盤空間利用率較高(N-1/N),讀寫速度較快(N-1倍)。但當掉盤之后,運行效率大幅下降。
特點:
·塊大小調整為典型的I/O對齊到單個磁盤上。
·每個條帶有一個校驗塊,但是不同條帶位置不同,在相鄰條帶間循環分布,從而避免校驗寫的瓶頸
(8)RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結構
名字很長,但是如果看到圖,大家立刻會明白是為什么,請注意p0代表第0帶區的奇偶校驗值,而pA代表數據塊A的奇偶校驗值。它是對RAID5的擴展,主要是用於要求數據絕對不能出錯的場合。當然了,由於引入了第二種奇偶校驗值,所以需要N+2個磁盤,同時對控制器的設計變得十分復雜,寫入速度也不好,用於計算奇偶校驗值和驗證數據正確性所花費的時間比較多,造成了不必須的負載。我想除了軍隊沒有人用得起這種東西。
(9)RAID技術比較
(10)技術選擇路線