為什麼需要磁盤陣列? 如何增加磁盤的存取(acces)速度,如何防止數據因磁盤的故障而失落及如 何有效的利用磁盤空間,一直是電腦專業人員和用戶的困憂;而大容量磁盤的價 格非常昂貴,對用戶形成很大的負擔。磁盤陣列技術的產生一舉解決了這些問題。
過去十年來,CPU的處理速度幾乎是幾何級數的躍升,內存(memory)的 存取速度亦大幅增加,而數據儲存裝置——它要是磁盤(hard disk)——的存取 速度相較之下。較為緩慢。整個I/0吞吐量不能和系統匹配,形成電腦系統的瓶 頸,降低了電腦系統的整體性能(throughout)若不能有效的提升磁盤的存取速 度,CPU、內存及磁盤間的不平衡將使CPU及內存的改進形成浪費。
目前改進磁盤存取速度的方式主要有兩種。一是磁盤快取控制(disk cache controller),它將從磁盤讀取的數據存在快取內存(cache memory)中以減少磁 盤存取的次數。數據的讀寫都在cache內存中進行,大幅增加存取的速度,如要讀 取的數據不在cache內存中,或要寫數據到磁盤時,才做磁盤的存取動作。這種方 式在單工期環境(Single—tasking envioronment)如DOS之下。對大量數據的 存取有很好的性能(量小且頻繁的存取則不然)。但在多任務(multi—tasking)環 境之下(因為要不停的作數據交換(swapping)的動作)或數據庫(database) 的存取(因每一記錄都很小)就不能顯示其性能。這種方式沒有任何安全保障。
其一是使用磁盤陣列的技術。磁盤陣列是把多個磁盤組成一個陣列,當作單 一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據 時,陣列中的相關磁盤一起動作:大幅減低數據的存取時間,同時有更佳的空間 利用率。磁盤陣列所利用的不同的技術,稱為RAID level,不同的level針對不 同的系統及應用,以解決數據安全的問題。
一般高性能的磁盤陣列都足以硬件的形式來達成、進—步的把磁盤cache控制 及磁盤陣列結合在—個控制器(RAID controler)或控制卡個,針對個同的用戶 解決人們對磁盤輸出/入系統的四大要求:
(1)增加存取速度。
(2)容錯(fault tolerance),即安全性。
(3)有效的利用磁盤空間。
(4)盡量的平衡CPU,內存及磁盤的性能並異,提高電腦的整體工作性能。
磁盤陣列原理
1987年,加州伯克利大學的一位人員發表了名為“磁盤陣列研究”的論文, 正式提到了RAID也就是滋盤陣列,論文提出廉價的5.25”及3.5”的硬盤也能如 大機器上的8”盤能提供人容量、高性能和數據的一致性,並詳述了RAIDl至5 的技術。 磁盤陣列針對不同的應用使用的不同技術,稱為RAID level,RAID是Redundant Array of Inexpenslve Disks的縮寫,而每一level代表一種技術,目前 業界公認的標准是RAID0—RAID5。這個level並個代表技術的高低,level5並不高於level3,level1也個低於level4。字於要選樣哪一種RAID level的產品,純視用戶的操作環境(Operating envir0nment)及應用(application)而定,與level 的高低沒有必然的關系。RAID0沒有安全的保障,僅其快速,所以適合高速I/0 的系統;RAIDl適用於需安全性又要兼顧速度的系統,RAID2及RAID3適用於 大型電腦及影像、CAD/CAM等處理;RAID5多用於0LTP,因有余融機構及 大型數據處理中心的迫切需要,故使用較多而較有名氣,但也因此形成很多人對 磁盤陣列的誤解,以為磁盤陣列非要RAID5不可;RAID4較少使用、和RAID5 有其共同之處,但RAID4適合大量數據的存取。其它如RAID6,RAID7。乃至 RAIDl0、50、100等,都是廠商各做各的,並無一致的標准,在此不作說明。
RAID1
RAID1是使用磁盤鏡像(disk muroring)的技術,磁盤鏡像應用在RAIDl 之前就在很多系統中使用,它的方式是在工作磁盤(working disk)之外再加一 額外的備份磁盤(backup disk)兩個磁盤所儲存的數據安全一致。數據在寫入工 作磁盤同時也寫入備份磁盤。
RAID2
RAID2是把數據分散為位/位組(bit/byte)或塊(b1ock),加入海明碼Hamming Code、在磁盤陣列中作間隔寫入(Interleaving)到每個磁盤小。而 且地址(address)都一樣,也就是在各個磁盤中,其數據都在相同的磁道(cylinder or track)及扇區中。RAID2又稱為並行陣列(parallel array)其設計足使 用共軸同步(spindle synchronize)的技術,存取數據時、控個磁盤陣列—起動 作,在各個磁盤的相同位置作並行存取,所以有最好的存取時間(auesstime),共 總線(bus)是特別的設計以大帶寬並行傳輸所存取的數據,所以有最好的傳輸時 間(transfer time)。在人型檔案的存取應用,RAID2有最好的件能,僅如果檔 案太小,會將其性能批下來。因為磁盤的存取足以期區為單位。而RAID2的存取是所有磁盤平行動作,而且是作單位或位組的存取。故小於—個扇區的數據 最會使其件能大打折扣。RAID2是設計給需要連續且大量數據的電腦使用的、如 大型電腦(mainframe to supercomputer)、作影像處理或CAD/CAM的工作站 (workstation)等,並個適用於—般的多用戶環境網絡服務器(network server)。 小型機或PC。
RAID3
RAID3的數據儲存及存取方式都和RAID2一樣,僅在安今方面以奇偶較驗 (parity check)取代海明碼做錯誤校正及檢測,所以只需要—個額外的校檢磁盤 (parity disk)。奇偶校驗值的計算足以各個磁盤的相對應位作XOR的邏輯運算, 然後將結果寫入奇偶校驗磁盤,仟何數據的修改都要做奇偶校驗計算。
RAID4
RAID4也使用一個校驗磁盤,但和RAID3不一樣,RAID4的方式是RAID0 加上一個校驗磁盤。
RAID5
RAID5和RAID4相似但避免了RAID4的瓶頸,方法是不用校驗磁盤而將校 驗數據以循環的方式放在每一個磁盤中,RAID5的控制比較復雜,尤其是利用硬件對磁盤陣列的控制,因為這種方式的應用比其它的RAID level要掌握更多的事情,更多的輸出/入需求,既要速度快,又要處理數據,計算校驗值,做錯誤 校正等,所以價格較高,其應用最好是0LTP,至於用於大型文件,不見得有最 佳的性能。
RAID的對比: 下面幾個表列是RAID的一些性質:
操作 工作模式 最少硬盤量 可用容量 適用范圍
RAID0 磁盤延伸和數據分布 2 T PC服務器和圖形工作站
RAIDl 數據分布和鏡像 2 T/2
RAID2 共軸同步,並行傳輸,ECC 3 視結構而定 大檔案且輸入輸出不頻繁的應用 如:影像處理和CAD/CAM等
RAID3 共軸同步,並行傳輸,Parity 3 Tx(n—1)/n
RAID4 數據分布,固定Parity 3 Tx(n—1)/n
RAID5 數據分布,分布Parity 3 Tx(n—1)/n 銀行、金融、股市、數據庫等大 型數據處理中心OLTP應用
RAID的性能與可用性
RAID Level 用戶數據利用率 BandWidth Performance Transaction Performance 數據可用性
RAID0 1 0.25 1 0.0005
RAID1 0.5 0.25 0.85 1
RAID2 0.67 1 0.25 0.9999
RAID3 0.75 1 0.25 0.9999
RAID4 0.75 0.25 0.61 0.9999
RAID5 0.75 0.25 0.61 0.9999
以上數據基於4個磁盤,傳輸塊大小lK,75%的讀概率,數據可用性的計算 基於同樣的損壞概率。
RAID的概述
RAID0
沒有任何額外的磁盤或空間作安全准備,所以一般人不重視它,這是誤解。 其實它有最好的效率及空間利用率,對於追求效率的應用,非常理想,可同時用 其它的RAID level或其它的備份方式以補其不足,保護重要的數據。
RAID1
最佳的安全性,100%不停機,即使有一個磁盤損壞也能照常作業而不影響 其效能(對能並行存取的系統稍有影響),因為數據是作重復儲存。RAIDl的並行 讀取幾乎有RAID0的性能、因為可同時讀取相互鏡像的磁盤;寫入也只比RAID0略遜,因為同時寫入兩個磁盤並沒有增加多少工作。雖比RAID0要增加—倍的 磁盤做鏡像,但作為采用磁盤陣列的進入點,它是最便宜的一個方案,是新設磁 盤陳列的用戶之最佳選擇。
RAlD5
RAID5在不停機及容錯的表現都很好,但如有磁盤故障。對性能的影向較大, 大容量的快取內存有助於維持性能,但在0LTP的應用中,因為每—筆數據或記 錄(record)都很小,對磁盤的存取頻繁。故有—定程度的影響。某磁盤故障 時,讀取該磁盤的數據需把共享同一校驗值分段的所有數據及校驗值讀出來、再把故障磁盤的數據計算出來;寫入時,除了要重復讀取的程序外,還要再做校驗值的計算,然後寫入更新的數據及校驗值;等換上新的磁盤,系統要計算整個磁 盤陣列的數據以回復故障磁盤的數據,時間要很長,如系統的工作負載很重的話, 有很多輸出/入的請求征排隊等候時,會把系統的性能拉下來。僅如使用硬件磁 盤陣列的話,其件能就可以得到大幅度的改進,因為硬件磁盤陣列如Arena系列 本身有內置的CPU與個機系統並行運作。所有存取磁盤的輸出入工作都在磁盤陳列本身完成,不花費主機的時間,配合磁盤陳列的cache內存的使用,可以提高 系統的整體性能,而優越的SCSI控制更能增加數據的傳輸速率,即使枉磁盤故障 的情況下,主機系統的件能也不會有明顯的降低。RAID5要做的事情太多,所以 價格較貴。不適於小系統,但如果是大系統使用大的磁盤陣列的話,RAID5卻是 最便宜的方案。
總而言之,RAID0及RAIDl最適合PC服務器及圖形工作站的用戶,提供 最佳的性能及最便宜的價格。以低成本符合市場的需求。RAID2及RAID3適用 於大檔案輸入輸出需求個頻繁的應用如影像處理及CAD/CAM等;而RAID5 則適用於銀行、金融、股市、數據庫等大列數據處理中心的0LTP應用;RAID4 與RAID5有相同的特件及用方式,但其較適用於大型文件的讀取。
磁盤陣列的額外容錯功能
事實上容錯功能已成為磁盤陣列最受清睐的特性,為了加強容錯的功能以及使系統在磁盤故障的情況下能迅速的重建數據,以維持系統的性能,一般的磁盤 陣列系統都可使用熱備份(hot spare or hot standby drive)的功能,所謂熱備份是在建立(configure)磁盤陣列系統的時候,將其中一磁盤指定為後備磁盤, 此一磁盤在平常並不操作,僅若陣列中某一磁盤發生故障時,磁盤陣列即以後備 磁盤取代故障磁盤,並自動將故障磁盤的數據重建(rebuild)在後備磁盤之上, 因為反應快速,加上cache內存減少了磁盤的存取,所以數據重建很快即可完成,對 系統的性能影響不大。對丁要求不停機的大型數據處理中心或控制小心而言,熱 備份更是一項重要的功能,因為可避免晚間或無人守護時發生磁盤故障所引起的 種種不便。
備份盤又有熱備份與溫備份之分,熱備份稅和溫備份的不同在於熱備份盤 和陣列—起運轉,一有故障時馬上備援,而溫備份盤雖然帶電但並個運轉,需要 備援時才啟動。兩者分別在是否運轉及啟動的時間,僅溫備份並不運轉,理論上有較長的壽命。另一個額外的容錯功能是壞期區轉移(bad sector reassignment)。壞扇區是磁盤故障的主要原因,通常磁盤在讀寫時發牛壞扇區的 情況即表示此磁盤故障。不能冉作讀寫,甚至有很多系統會因為不能完成讀寫的 動作而死機,僅若因為某一扇區的損壞而使工作不能完成或要更換磁盤,則使得 系統性能大打折扣,而系統的維護成本也未免太高了,壞扇區轉移是當磁盤陣列 系統發現磁盤有壞扇區時,以另一空白的且無故障的扇區取代該扇區,以延長磁盤 的使用壽命,減少壞磁盤的發生率以及系統的維護成本。所以壞扇區轉移功能使 磁盤陣列具有更好的容錯性,同時使整個系統村最好的成本效益比。其它如可外 接電池備援磁盤陣列的快取內存,以避免突然斷電時數據尚未寫回磁盤而丟失; 或在RAIDl時作寫入一致性的檢查等,雖是小技術,但亦不可忽視。