關於硬盤和幾種RAID

1 硬盤的基本工作原理

1.1 硬盤部件結構圖

        

 

    

1.2 主要參數術語解釋

磁頭:在與硬盤交換數據的過程 中,讀操作遠遠快於寫操作,硬盤廠商開發一種讀/寫分離磁頭。

轉速(Rotationl Speed):是硬盤內電機主軸的旋轉速度,也就是硬盤盤片在一分鐘內所能完成的最大轉數。硬盤的轉速越快,硬盤尋找文件的速度也就越快,相對的硬盤的傳輸速度也就得到了提高。 目前市場上常見的硬盤轉速一般有5400rpm、7200rpm、10000rpm、15000rpm。理論上,轉速越快越好。因爲較高的轉速可縮短硬盤的平均尋道時間和實際讀寫時間。可是轉速越快發熱量越大,不利於散熱。現在的主流硬盤轉速一般爲7200rpm以上。至於SCSI硬盤的主軸轉速可達一般爲7200-10000RPM,而最高轉速的SCSI硬盤轉速高達15000RPM。

單碟容量: 是硬盤相當重要的參數之一,一定程度上決定着硬盤的檔次高低。硬盤是由多個存儲碟片組合而成的,而單碟容量就是一個存儲碟所能存儲的最大數據量。

盤片數: 盤片是硬盤中承載數據存儲的介質,硬盤是由多個盤片疊加在一起,互相之間由墊圈隔開。一個硬盤的盤片數越多,厚度越大,發熱也越大。

隨機尋道時間(單位:毫秒): 轉速的不同,性能差別直接反映在隨機讀取/寫入尋道時間這個性能上。隨機尋道性能這個參數的數值是越低越好,也是日常硬盤應用在速度上最能直接體驗的一個性能。

平均尋道時間(Average seek time):指硬盤在盤面上移動讀寫頭至指定磁道尋找相應目標數據所用的時間,它描述硬盤讀取數據的能力,單位爲毫秒。當單碟片容量增大時,磁頭的尋道動作和移動距離減少,從而使平均尋道時間減少,加快硬盤速度。

數據緩存:指在硬盤內部的高速存儲器,在電腦中就像一塊緩衝器一樣將一些數據暫時性的保存起來以供讀取和再讀取。早期的硬盤的高速緩存一般爲512KB-2MB,目前主流SATA硬盤的數據緩存爲32MB。

道至道時間(single track seek):指磁頭從一磁道轉移至另一磁道的時間,單位爲毫秒(ms)。

全程訪問時間(max full seek):指磁頭開始移動直到最後找到所需要的數據塊所用的全部時間,單位爲毫秒(ms)。

連續無故障時間(MTBF):指硬盤從開始運行到出現故障的最長時間。一般硬盤的MTBF至少在30000或40000小時。

1.3 硬盤的種類和優缺點

按硬盤發展的時間先後順序分別是:

1.3.1 IDE硬盤

 

IDE(Integrated Drive Electronics)是指把控制器與盤體集成在一起的硬盤驅動器,是硬盤的傳輸接口, 另一個名稱叫做ATA(Advanced Technology Attachment),指的是相同的東西,採用並行多路複用技術(PATA)。

一般使用16-bit數據總線, 每次總線處理時傳送2個字節,一般是100Mbytes/sec帶寬,數據總線必須鎖定在50MHz。普通的IDE硬盤轉速在5400/7200RPM。傳輸速率止步在133MB/s左右。由於並行技術的限制而逐漸被淘汰。

1.3.2 SATA硬盤

         

SATA(Serial ATA)口的硬盤又叫串口硬盤. SATA以它串行的數據發送方式得名。在數據傳輸的過程中,數據線和信號線獨立使用,並且傳輸的時鐘頻率保持獨立,因此同以往的PATA相比,SATA的傳輸速率可以達到並行的30倍。

早期SATA-1能達到150MB/s,後期的SATA-2標準能達到300MB/s,而第三代的SATA-3協議標準傳輸速率可以到達600M/s,轉速在7200RPM。

SATA硬盤支持熱插拔,但硬盤損壞時,並不能顯示具體的壞盤,導致熱插拔技術意義不大,在單線程或者少量線程工作時,性能已經非常的好,但在多任務或者大數據量傳輸時,性能急劇下降,原因是機械底盤比較低下。

1.3.3 SCSI硬盤

   

SCSI英文全稱:Small Computer System Interface,是一種專門爲小型計算機系統設計的存儲單元接口模式,SCSI計算機可以發送命令到一個SCSI設備,磁盤可以移動驅動臂定位磁頭,在磁盤介質和緩存中傳遞數據,整個過程在後臺執行。這樣可以同時發送多個命令同時操作,適合大負載的I/O應用。在磁盤陣列上的整體性能也大大高於基於ATA硬盤的陣列。

主流SCSI硬盤都採用了Ultra 320 SCSI接口,能提供320MB/s的接口傳輸速度,平均尋道時間爲4-5ms,CPU佔用率低、並行處理能力強,可以異步的方式處理傳輸數據,普通的SCSI硬盤轉速在10000/15000RPM,但是價格昂貴。

1.3.3 SAS硬盤

SAS(Serial Attached SCSI)即串行連接SCSI,是新一代的SCSI技術。和現在流行的Serial ATA(SATA)硬盤相同,都是採用串行技術以獲得更高的傳輸速度,並通過縮短鏈接線改善內部空間等。SAS 也是對SCSI技術的一項變革性發展SAS 也是對SCSI技術的一項變革性發展。

傳輸速率支持600MB/s,每個SAS端口提供3Gb帶寬,傳輸能力與4Gb光纖相差無幾,足夠和FC硬盤媲美,不僅可以連接SCSI硬盤,還兼容SATA硬盤,平均尋到時間爲3-4ms,但是價格太貴,比起同容量的Ultra 320 SCSI硬盤,SAS硬盤要貴了一倍還多,但造價也很昂貴,如果組RAID,還需要買SAS卡。

1.3.4 FC硬盤

FC(Fibre Channel)通常人們認爲它是系統與系統或者系統與子系統之間的互連架構,它以點對點(或是交換)的配置方式在系統之間採用了光纜連接。(硬盤本身是不具備FC接口的, 插硬盤的機櫃上帶有FC接口, 通過光纖與光纖交換機互聯)。

傳輸速率可以達到200MB/s-400MB/s,平均尋到時間爲3ms左右,高性能傳輸、穩定性極好,但是價格極其昂貴,除了極高端企業級應用,基本沒有市場,SAS的興起也給FC帶來非常大的壓力。

1.3.5 SSD硬盤

固態硬盤(Solid State Disk或Solid State Drive),也稱作電子硬盤或者固態電子盤,是由控制單元和固態存儲單元(DRAM或FLASH芯片)組成的硬盤。

抗震性極佳,芯片的工作溫度範圍很寬(-40~85℃)。成本很高。

SSD有兩種:

(1)基於閃存的固態硬盤(IDE FLASH DISK、Serial ATA Flash Disk):這種SSD可以移動,而且數據保護不受電源控制,能適應於各種環境,但是使用年限不高,適合於個人用戶使用。

(2)基於DRAM的固態硬盤:它仿效傳統硬盤的設計、可被絕大部分操作系統的文件系統進行卷設置和管理,並提供FC接口和PCI接口,應用方式可分爲SSD硬盤和SSD硬盤陣列兩種。

2 RAID

    上面介紹了一些關於硬盤的東西,都是網上翻出來的。在實際應用中,對於我們的程序的性能影響最大的也就是網絡和磁盤IO了,因爲現在CPU的速度已經很快了,內存IO速度也已經達到了非常快的地步了(差不多應該有5G每秒),但是我們的數據都存儲在磁盤上,程序的運行需要不斷的讀取數據、存儲數據,因爲磁盤的性能是影響最大的因素之一(先不說網絡)。

現代磁盤的缺陷就是:I/O性能極差,穩定性極差。我們這裏只討論關於定性方面的東西,至於性能,肯捨得花錢,就去買貴的。涉及到穩定性,如果一個硬盤發生了故障或者損壞,那麼這塊硬盤就已經不能再使用了,這如果是在對數據保存要求特別高的地方來說,其是不可想象的。正因爲如此,就誕生了一種新的技術--RAID。

2.1 RAID概念

    獨立磁盤冗餘數組(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗餘數組(RAID, Redundant Array of Inexpensive Disks),簡稱硬盤陣列。其基本思想就是把多個相對便宜的硬盤組合起來,成爲一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。根據選擇的版本不同,RAID比單顆硬盤有以下一個或多個方面的好處:增強數據集成度,增強容錯功能,增加處理量或容量。另外,磁盤陣列對於電腦來說, 看起來就像一個單獨的硬盤或邏輯存儲單元。分爲RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60

    評價一種RAID的形式主要靠三個指標,分別是:速度、磁盤使用率、冗餘性

2.2 RAID0

    將多個磁盤合併成一個大的磁盤,不具有冗餘,並行I/O,速度最快。如果一個磁盤(物理)損壞,則所有的數據都會丟失。

 

2.3 RAID1

兩組以上的N個磁盤相互作鏡像,在一些多線程操作系統中能有很好的讀取速度,另外寫入速度有微小的降低。除非擁有相同數據的主磁盤與鏡像同時損壞,否則只要一個磁盤正常即可維持運作,可靠性最高。是RAID中單位成本最高的。

 

2.4 RAID2

RAID 0的改良版,以漢明碼(Hamming Code)的方式將數據進行編碼後分區爲獨立的比特,並將數據分別寫入硬盤中。因爲在數據中加入了錯誤修正碼(ECC,Error Correction Code),所以數據整體的容量會比原始數據大一些,可以在數據發生錯誤的情況下將錯誤校正,以保證輸出的正確。數據傳送速率相當高。RAID2最少要三臺磁盤驅動器方能運作。需要多個磁盤存放檢查及恢復信息,使得RAID2技術實施更復雜。因此在商業環境中很少使用。

 

2.5 RAID3

帶奇偶校驗碼的並行傳送。採用Bit-interleaving(數據交錯存儲)技術,只能查錯不能糾錯。主要用於圖形(包括動畫)等要求吞吐率比較高的場合。對大量的連續數據提供很好的傳輸率,但對於那些經常需要執行大量寫入操作的應用來說,奇偶盤會成爲寫操作的瓶頸。利用單獨的校驗盤來保護數據雖然沒有鏡像的安全性高,但是硬盤利用率得到了很大的提高。需要實現時用戶必須要有三個以上的驅動器,寫入/讀出速率都很高。因爲校驗位比較少,所以計算時間相對而言比較少。

 

2.6 RAID4

    帶奇偶校驗碼的獨立磁盤結構。與RAID3類似,對數據的訪問是按數據塊進行的,也就是按磁盤進行的,每次是一個盤。在失敗恢復時,它的難度比RAID3大得多,控制器的設計難度也要大許多,而且訪問數據的效率不怎麼好。主機訪問RAID卡應該都是以Block爲單位的、讀取的時候,RAID3就要訪問所有磁盤來拿數據,RAID4只需要訪問某個磁盤。考慮到磁盤尋道時間 很長,在大數據量讀取的時候,RAID4更容易做併發,因此性能應該好一點。寫入的時候,RAID3可以直接算校驗值,然後把數據和校驗值分別寫到磁盤 上,RAID4則需要讀取舊數據和舊校驗值,用舊數據、舊校驗值、新數據算出新校驗值,然後寫新數據和新校驗值。

 

2.7 RAID5

分佈式奇偶校驗的獨立磁盤結構。使用的是Disk Striping(硬盤分區)技術,是一種儲存性能、數據安全和存儲成本兼顧的存儲解決方案。把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,可以利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。 RAID 5可以理解爲是RAID 0和RAID 1的折衷方案。讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。但是對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。但當掉盤後,運行效率大幅下降。

 

2.8 RAID6

帶有兩種分佈存儲的奇偶校驗碼的獨立磁盤結構。與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。主要用於要求數據絕對不能出錯的場合。對控制器的設計變得十分複雜,寫入速度也不好,用於計算奇偶校驗值和驗證數據正確性所花費的時間比較多,造成了不必須的負載。RAID 6必須具備四個以上的磁盤才能生效。RAID 6在硬件磁盤陣列卡的功能中,也是最常見的磁盤陣列等級。

 

2.9 RAID10/01

RAID 1+0是先映射再分區數據,再將所有硬盤分爲兩組,視爲是RAID 0的最低組合,然後將這兩組各自視爲RAID 1運作。

RAID 0+1則是跟RAID 1+0的程序相反,是先分區再將數據映射到兩組硬盤。它將所有的硬盤分爲兩組,變成RAID 1的最低組合,而將兩組硬盤各自視爲RAID 0運作。

性能上,RAID 0+1比RAID 1+0有着更快的讀寫速度。

可靠性上,當RAID 1+0有一個硬盤受損,其餘三個硬盤會繼續運作。RAID 0+1 只要有一個硬盤受損,同組RAID 0的另一隻硬盤亦會停止運作,只剩下兩個硬盤運作,可靠性較低。

 

 

2.10 RAID50

RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0,也就是對多組RAID 5彼此構成Stripe訪問。由於RAID 50是以RAID 5爲基礎,而RAID 5至少需要3臺硬盤,因此要以多組RAID 5構成RAID 50,至少需要6臺硬盤。以RAID 50最小的6臺硬盤組態爲例,先把6臺硬盤分爲2組,每組3臺構成RAID 5,如此就得到兩組RAID 5,然後再把兩組RAID 5構成RAID 0。

RAID 50在底層的任一組或多組RAID 5中出現1臺硬盤損壞時,仍能維持運作,不過如果任一組RAID 5中出現2臺以上硬盤損毀,整組RAID 50就會失效。

RAID 50由於在上層把多組RAID 5構成Stripe,性能比起單純的RAID 5高,而容量利用率則與RAID 5相同。

 

2.11 RAID60

RAID 6與RAID 0的組合:先作RAID 6,再作RAID 0。換句話說,就是對兩組以上的RAID 6作Stripe訪問。RAID 6至少需具備4臺硬盤,所以RAID 60的最小需求是8臺硬盤。

由於底層是以RAID 6組成,所以RAID 60可以容許任一組RAID 6中損毀最多2臺硬盤,而系統仍能維持運作;不過只要底層任一組RAID 6中損毀3臺硬盤,整組RAID 60就會失效,當然這種情況的機率相當低。

比起單純的RAID 6,RAID 60的上層通過結合多組RAID 6構成Stripe訪問,因此性能較高。不過使用門檻高,而且容量利用率低是較大的問題。

2.12 磁盤陣列對比

RAID等級

需要硬盤數

最小容錯硬盤數

可用容量

性能

安全性

目的

應用產業

0

≧2

0

n

最高

一個硬盤異常,全部硬盤即跟着異常

追求最大容量、速度

3D產業實時渲染、視頻剪接高速緩存用途

1

≧2

總數的一半

總容量的一半

稍有提升

最高

追求最大安全性

個人、企業備份

10

≧4

總數的一半

總容量的一半

安全性最高

綜合RAID 0/1優點,理論速度較快

大型數據庫、服務器

5

≧3

1

n-1

追求最大容量、最小預算

個人、企業備份

6

≧4

2

n-2

比RAID 5稍慢

安全性較RAID 5高

同RAID 5,但較安全

個人、企業備份

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章