最近很多人在咨詢Agrade睿達的SSD固態硬盤做RAID的表現,所以今天我們來簡單說說RAID。
1988 年美國加州大學伯克利分校的 D. A. Patterson 教授等首次在論文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念,即廉價冗余磁盤陣列( Redundant Array of Inexpensive Disks )。由于當時大容量磁盤比較昂貴, RAID 的基本思想是將多個容量較小、相對廉價的磁盤進行有機組合,從而以較低的成本獲得與昂貴大容量磁盤相當的容量、性能、可靠性。隨著磁盤成本和價格的不斷降低, RAID 可以使用大部分的磁盤, “廉價” 已經毫無意義。因此, RAID 咨詢委員會( RAID Advisory Board, RAB )決定用 “ 獨立 ” 替代 “ 廉價 ” ,于時 RAID 變成了獨立磁盤冗余陣列( Redundant Array of Independent Disks )。但這僅僅是名稱的變化,實質內容沒有改變。
RAID 這種設計思想很快被業界接納, RAID 技術作為高性能、高可靠的存儲技術,已經得到了非常廣泛的應用。RAID 主要利用數據條帶、鏡像和數據校驗技術來獲取高性能、可靠性、容錯能力和擴展性,根據運用或組合運用這三種技術的策略和架構,可以把 RAID 分為不同的等級,以滿足不同數據應用的需求。目前業界公認的標準是 RAID0 ~ RAID5 ,除 RAID2 外的四個等級被定為工業標準,而在實際應用領域中使用最多的 RAID 等級是 RAID0 、 RAID1 、 RAID3 、 RAID5 、 RAID6 和 RAID10。
從實現角度看, RAID 主要分為軟 RAID、硬 RAID 以及軟硬混合 RAID 三種。軟 RAID 所有功能均有操作系統和 CPU 來完成,沒有獨立的 RAID 控制 / 處理芯片和 I/O 處理芯片,效率自然最低。硬 RAID 配備了專門的 RAID 控制 / 處理芯片和 I/O 處理芯片以及陣列緩沖,不占用 CPU 資源,但成本很高。軟硬混合 RAID 具備 RAID 控制 / 處理芯片,但缺乏 I/O 處理芯片,需要 CPU 和驅動程序來完成,性能和成本 在軟 RAID 和硬 RAID 之間。
RAID 每一個等級代表一種實現方法和技術,等級之間并無高低之分。在實際應用中,應當根據用戶的數據應用特點,綜合考慮可用性、性能和成本來選擇合適的 RAID 等級,以及具體的實現方式。
RAID ( Redundant Array of Independent Disks )即獨立磁盤冗余陣列,通常簡稱為磁盤陣列。簡單地說, RAID 是由多個獨立的高性能磁盤驅動器組成的磁盤子系統,從而提供比單個磁盤更高的存儲性能和數據冗余的技術。RAID 是一類多磁盤管理技術,其向主機環境提供了成本適中、數據可靠性高的高性能存儲。SNIA 對 磁盤陣列可以在部分磁盤(單塊或多塊,根據實現而論)損壞的情況下,仍能保證系統不中斷地連續運行。在重建故障磁盤數據至新磁盤的過程中,系統可以繼續正常運行,但是性能方面會有一定程度上的降低。一些磁盤陣列在添加或刪除磁盤時必須停機,而有些則支持熱交換 ( Hot Swapping ),允許不停機下替換磁盤驅動器。這種高端磁盤陣列主要用于要求高可能性的應用系統,系統不能停機或盡可能少的停機時間。一般來說, RAID 不可作為數據備份的替代方案,它對非磁盤故障等造成的數據丟失無能為力,比如病毒、人為破壞、意外刪除等情形。此時的數據丟失是相對操作系統、文件系統、卷管理器或者應用系統來說的,對于 RAID 系統來身,數據都是完好的,沒有發生丟失。所以,數據備份、災 備等數據保護措施是非常必要的,與 RAID 相輔相成,保護數據在不同層次的安全性,防止發生數據丟失。
RAID 中主要有三個關鍵概念和技術:鏡像( Mirroring )、數據條帶( Data Stripping )和數據校驗( Data parity )。鏡像,將數據復制到多個磁盤,一方面可以提高可靠性,另一方面可并發從兩個或多個副本讀取數據來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確保數據正確地寫到多個磁盤需要更多的時間消耗。數據條帶,將數據分片保存在多個不同的磁盤,多個數據分片共同組成一個完整數據副本,這與鏡像的多個副本是不同的,它通常用于性能考慮。
RAID 的定義是:一種磁盤陣列,部分物理存儲空間用來記錄保存在剩余空間上的用戶數據的冗余信息。當其中某一個磁盤或訪問路徑發生故障時,冗余信息可用來重建用戶數據。磁盤條帶化雖然與 RAID 定義不符,通常還是稱為 RAID (即 RAID0 )。
(1) 大容量
這是RAID 的一個顯然優勢,它擴大了磁盤的容量,由多個磁盤組成的 RAID 系統具有海量的存儲空間。現在單個固態硬盤的容量就可以到 2TB 以上,這樣 RAID 的存儲容量就可以達到 PB 級,大多數的存儲需求都可以滿足。一般來說, RAID 可用容量要小于所有成員磁盤的總容量。不同等級的 RAID 算法需要一定的冗余開銷,具體容量開銷與采用算法相關。如果已知 RAID 算法和容量,可以計算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之間。
(2) 高性能
RAID 的高性能受益于數據條帶化技術。單個磁盤的 I/O 性能受到接口、帶寬等計算機技術的限制,性能往往很有限,容易成為系統性能的瓶頸。通過數據條帶化,RAID 將數據 I/O 分散到各個成員磁盤上,從而獲得比單個磁盤成倍增長的聚合 I/O 性能。
(3) 可靠性
可用性和可靠性是 RAID 的另一個重要特征。從理論上講,由多個磁盤組成的 RAID 系統在可靠性方面應該比單個磁盤要差。這里有個隱含假定:單個磁盤故障將導致整個 RAID 不可用。RAID 采用鏡像和數據校驗等數據冗余技術,打破了這個假定。鏡像是最為原始的冗余技術,把某組磁盤驅動器上的數據完全復制到另一組磁盤驅動器上,保證總有數據副本可用。比起鏡像 50% 的冗余開銷 ,數據校驗要小很多,它利用校驗冗余信息對數據進行校驗和糾錯。RAID 冗余技術大幅提升數據可用性和可靠性,保證了若干磁盤出錯時,不會導致數據的丟失,不影響系統的連續運行。
(4) 可管理性
實際上RAID 是一種虛擬化技術,它對多個物理磁盤驅動器虛擬成一個大容量的邏輯驅動器。對于外部主機系統來說,RAID 是一個單一的、快速可靠的大容量磁盤驅動器。這樣,用戶就可以在這個虛擬驅動器上來組織和存儲應用系統數據。從用戶應用角度看,可使存儲系統簡單易用,管理也很便利。由于 RAID 內部完成了大量的存儲管理工作,管理員只需要管理單個虛擬驅動器,可以節省大量的管理工作。RAID 可以動態增減磁盤驅動器,可自動進行數據校驗和數據重建,這些都可以大大簡化管理工作。
由于固態硬盤比普通硬盤具有更多的優勢,所以做RAID也是一樣的比普通硬盤具有更多的優勢。隨著固態硬盤的價格越來越便宜,相信會有更多的客戶用固態硬盤來做RAID。