大資料儲存技術_磁碟與陣列技術
磁碟與陣列技術
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)技術選擇路線
&n