? ? ? ??一.數據存儲架構
1??存儲系統
2??主機系統
3??互連部件
4??存儲設備與磁盤陣列
二.數據存儲技術
1??數據冗余技術
2??RAID 0
3??RAID 1
4??RAID 2
5??RAID 3
6??RAID 4
三.基于硬件的RAID磁盤陣列
1??陣列卡(RAID控制器)
2??陣列卡種類
3??陣列卡緩存
4??透寫和回寫
5??RAID 電池
四.基于軟件的RAID磁盤陣列
1??mdadm工具
2??熱備份
一.數據存儲架構
數據存儲架構是對數據存儲方式、存儲設備及相關組件 的組織和規劃,涵蓋存儲系統的布局、數據存儲策略等,它明確數據如何存儲、管理與訪問,為數據的安全、高效使用提供支撐。
1??存儲系統
是計算機的重要組成部分之一,它是由計算機中一組存儲設備、控制部件和管理信息調度的設備(硬件)和算法(軟件)所構成的系統,所述存儲設備主要用于保存程序和數據,存儲設備是計算機存儲系統的核心部件。
存儲系統負責對數據的讀/寫請求,也負責傳輸數據的任務。
常見的存儲系統主要由這三部分組成:主機系統、互連部件、存儲設備。
2??主機系統
負責提出數據讀/寫請求,并完成操作系統和需要數據的應用程序之間的交互。
從主機結構上來看,可以將主機系統的組成分為物理部件(硬件)和?邏輯部件(軟件)。
3??互連部件
在主機和存儲設備之間存在著各種互連部件, 包括連接主機與存儲設備的互連物理部件,以及相應的互連邏輯部件。
互連物理部件:總線、端口和線纜
互連邏輯部件:主要有通信協議,設備驅動程序
4??存儲設備與磁盤陣列
存儲設備包括負責數據存儲的設備
存儲設備不僅包括可以保存數據的固態硬盤、機械硬盤(磁盤)、光盤、磁帶等物理存儲器, 還應該包括專門為這些物理存儲器服務的外部部件(如電源、風扇、固定機架等),以及相關協議、處理算法等存儲邏輯部件。
存儲設備可以采用單盤(即單塊磁盤)形式,也可以采用多盤形式。在一些復雜、較為嚴苛的使用環境下,單盤容易發生物理損壞導致數據丟失,單盤在存儲數據會存在著一定的安全性隱患。
二.數據存儲技術
1??數據冗余技術
RAID技術,該項技術可簡稱為磁盤陣列, 可以理解為通過組合多個磁盤提升性能與可靠性。發明目的是為解決單盤在某些應用場景下的不足。
數據冗余可增強數據可靠性,當部分數據丟失或損壞時能通過冗余數據恢復。還能提高數據訪問性能,可從冗余副本并行讀取數據。
RAID磁盤陣列的實質是將多個獨立的硬盤通過RAID控制器(基于硬件和軟件)結合成虛擬單個大容量的硬盤使用,從而實現比單盤更好的存儲性能和更高的可靠性,如圖所示。
采用漢明碼校驗或奇偶校驗進行數據保護,確保數據的安全性。
目前,RAID磁盤陣列技術的實現方式主要有兩種:
- 基于硬件的 RAID 磁盤陣列技術(俗稱硬 RAID ),
- 基于軟件的 RAID 磁盤陣列技術(俗稱軟 RAID )。
根據RAID磁盤陣列對磁盤數據分布、校驗方式及實施技術的不同,可以將磁盤陣列分為多個級別,分別為 RAID 0、 RAID 1、 RAID 5、RAID 2、 RAID 3、 RAID 4、 RAID 6、 RAID 10。
其中,RAID 0(條帶化,提升性能但無冗余)、RAID 1(鏡像,有冗余)、RAID 3(一個冗余校驗盤)、RAID 5(分布式奇偶校驗,兼顧性能與冗余)、RAID 6級別較為常用。
2??RAID 0
RAID 0:( 無容錯的條帶化磁盤陣列)又稱為Stripe或 Striping。
是磁盤陣列中組建最簡單的一種形式,只需要至少兩塊硬盤即可。
RAID 0 采用數據分條( Data Stripping )技術來在可用硬盤上分布存放數據,即在 RAID 0 系統中,數據被分段且分別存放在不同硬盤上,與單一的大容量硬盤相比, RAID 0 的讀寫由幾塊硬盤同時并行處理,因而讀寫速度更快。
3??RAID 1
加入了冗余能力,采用簡單的鏡像備份的方式實現數據的冗余,需要配置成對的獨立硬盤,在兩者上產生互為備份的數據。
RAID 1中的數據盤和鏡像盤是相對的,它們沒有主從關系,可以相互鏡像或恢復。
從RAID 1的磁盤陣列結構來看,鏡像備份會占用一半的硬盤空間,硬盤空間使用率只有50%,故RAID 1是磁盤陣列中單位成本最貴的。
4??RAID 2
RAID 2是RAID 0的改良版,以漢明碼的方式將數據進行編碼后分割為獨立的位元,并將數據分別寫入硬盤中。
前面四個盤是數據盤,后面三個盤是糾錯碼。
如果數據盤滿了,那么校驗盤不會滿,空間利用率只會利用7分之4。
5??RAID 3
與RAID 2不同 的是,RAID 3只需要一個冗余校驗盤,而不管磁盤陣列的數目有多少。
可以將RAID 3看做是在RAID 2的基礎上發展而來的, 主要用了相對簡單的奇偶校驗代替相對復雜的漢明碼校驗,不需要多個冗余硬盤而是只需要單個冗余硬盤,從而大幅降低了成本。
奇偶校驗硬盤的負載將會很大,進而影響程序的運行速度, 從而導致整個RAID系統的性能顯著下降。
RAID 3比較適合類似于視頻編輯這類大文件類型且安全性要求較高的應用。
6??RAID 4
RAID 4和RAID 3比較像,數據都是使用數據分條技術進行分割后依次存放在多個硬盤中,不同之處在于RAID 4的條帶較大,是以數據塊為單位進行數據分割的,而RIAD 3的條帶較小——以位為單位進行數據分割。
這種類型的磁盤陣列現在很少使用。
7??RAID 5
RAID 5相當于RAID 0和RAID 1的折中方案,并采用和 RAID 4一樣的數據分條方案, 數據以塊為單位進行分割并存放到各個硬盤上。
但RAID 5沒有設置專門的奇偶校驗硬盤,而是將數據和與其相對應的奇偶校驗信息存儲到各個硬盤上,但是這里有個規則就是奇偶校驗信息和相對應的數據需要分別存儲在不同的硬盤上。
RAID 5至少需要3個硬盤來組建磁盤陣列,可以允許壞一塊硬盤。?
需要注意的是,如果在未解決故障之前,又損壞了一個硬盤,那么磁盤陣列中的所有數據都將損壞,結果是災難性的。
8??RAID 6
RAID 6相當于在RAID 5的基礎上進行擴展而來的,增加了第2個獨立的奇偶校驗信息塊,實現算法不同的雙重奇偶校驗,數據冗余性更高了,在兩塊硬盤同時損壞的前提下,仍然可以保障數據恢復。
相比RAID 5,RAID 6具有更高的容錯能力(即數據冗余性好),同時其讀取性能也比較優秀, 但是寫數據的性能較差,尤其是隨機寫入性能很差,因為不但要在每個硬盤上寫入校驗數據,還要在專門的校驗硬盤上寫入數據。
需要注意的是,至少需要4個硬盤來組成RAID 6磁盤陣列。
7??RAID 10(RAID 1+0)
RAID 10相當于一個條帶區結構加上一個鏡像結構,同時擁有RAID 0的快速和RAID 1的數據高安全性,但是 RAID 10對存儲容量的利用率和RAID1一樣只有50%, 需要一般的硬盤空間用于存儲冗余數據,硬盤的利用率較低,成本較貴。
RAID 級別?? | ??性能?? | ??容錯能力?? | ??存儲 效率?? | ??成本?? | ??適用場景?? | 冗余能力 |
---|---|---|---|---|---|---|
??RAID 0?? | ? 讀寫性能最高(并行操作) ? 無校驗開銷 | ? 無容錯能力 | 100% | 最低 | 臨時數據處理/高性能計算 | 沒有冗余,任何一塊盤壞了數據就全丟 |
??RAID 1?? | ? 讀性能高(雙副本) ? 寫性能較低(需鏡像) | ? 允許1塊磁盤損壞 | 50% | 最高(雙倍存儲) | 關鍵數據庫/系統盤 | 完全鏡像備份,每組鏡像可以壞1塊盤 |
??RAID 5?? | ? 讀性能高 ? 寫性能中等(需計算校驗) | ? 允許1塊磁盤損壞 | (n-1)/n | 中等 | 文件服務器/虛擬化存儲 | 帶奇偶校驗,最多允許壞1塊盤,靠校驗數據能重建 |
??RAID 6?? | ? 讀性能高 ? 寫性能較低(雙校驗計算) | ? 允許2塊磁盤損壞 | (n-2)/n | 較高 | 大容量歸檔存儲/醫療影像系統 | 雙重奇偶校驗,能扛住同時壞2塊盤,適合大容量存儲 |
??RAID 10?? | ? 讀寫性能均優(條帶化+鏡像) | ? 允許每組鏡像1塊損壞 | 50% | 極高 | 金融交易系統/高可用數據庫 | 鏡像+條帶化,每組鏡像最多壞1塊(比如4塊盤組能壞2塊,但得在不同鏡像組里) |
關鍵補充說明??:
- ??性能權衡??:RAID 5/6的寫性能隨磁盤數量增加而下降,建議不超過16塊磁盤。
- ??重建風險??:RAID 5在重建期間二次故障概率高達15%(6TB以上磁盤)。
- ??成本計算??:RAID 10實際成本=磁盤數×2+控制器許可費用(企業級)。
- ??新興替代??:對于超大規模存儲,可考慮糾刪碼(Erasure Coding)技術。
- 簡單總結:RAID 0是速度王者但沒保護,RAID 1/10靠鏡像保安全,RAID 5/6用校驗來兜底。RAID 6比5更穩,RAID 10性能和安全性兼顧,但成本也最高。
三.基于硬件的RAID磁盤陣列
硬 RAID 就是用專門的RAID控制器(RAID 卡)將硬盤和電腦連接起來,RAID控制器負責將所有的RAID成員磁盤配置成一個虛擬的RAID磁盤卷。
1??陣列卡(RAID控制器)
硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片,服務器平臺多采用 RAID 卡。
RAID 卡由以下:
RAID 核心處理芯片( RAID 卡上的 CPU )、 端口、 緩存、 電池,4 部分組成。
2??陣列卡種類
①IDE陣列卡 :
以前主要用在一些數據重要或要接很多個硬盤的服務器與工作站電腦中,可以支持 RAID 0、1、0+1、3、5。 現基本上已經淘汰了。
②SATA陣列卡:
主要作用于大容量數據存儲、網吧、數據安全等服務器領域,同時一些低端卡也滿足了一些家用客戶的需求,能夠支持 RAID 0、1、0+1、5 、6。
③SCSI陣列卡
使用在高端工作站或者是服務器中,可以支持很多塊SCSI接口的硬盤。能夠支持RAID 0、1、0+1、3、5 。這種陣列卡性能很好速度很快,當然價格也比較高。不過,現基本上已經淘汰了。
④SAS陣列卡:
主要使用在一些高端工作站與服務器中,已經取代了昔日的SCSI接口,并且可以兼容SATA接口硬盤,能夠支持 RAID 0、1、0+1、5 、50、6、60。
3??陣列卡緩存
實際指的是相對低速的硬盤盤片與相對高速的外部設備之間的緩沖器。
陣列卡緩存的主要作用是,加快數據讀寫速度,提高磁盤的效用,避免不必要的等待時間。
4??透寫和回寫
透寫(Write-Through)和回寫(Write-Back)是兩種緩存(Cache)策略,核心區別在于數據寫入的時機和一致性保證:
① 透寫(Write-Through):數據同時寫入緩存和主存/磁盤,確保強一致性,但寫入速度慢。適合金融交易、數據庫日志這類不能丟數據的場景。
②?回寫(Write-Back):數據先只寫入緩存,等緩存滿了或系統空閑時才刷到主存,寫入性能炸裂,但萬一斷電可能丟數據(所以企業級設備會配電池備份)。適合視頻剪輯、AI訓練這些對速度要求高的活兒。
5??RAID 電池
用以在系統斷電時保護Cache中的數據,避免斷電造成中間數據的丟失。
若RAID電池和某塊硬盤同時出現故障,應先更換RAID卡電池,待服務器重啟成功,RAID卡工作正常后再更換故障的硬盤,最大限度保證數據安全。
四.基于軟件的RAID磁盤陣列
1??mdadm工具
是一個在Linux系統中用于構建、管理和監控軟件RAID陣列的工具。
它提供了多種命令來創建、管理、監控RAID陣列,并 且支持多種RAID級別,如RAID0、RAID1、RAID5等。
mdadm命令常見參數解釋:
-n 指定設備數量
-l 指定RAID級別
-C創建
-v 顯示過程
-f 模擬設備損壞
-D 查看詳細信息
-S 停止RAID磁盤陣列
2??熱備份
當陣列中有一塊硬盤壞了,熱備份盤可以隨時頂替,相當于磁盤的最后一層保險。
熱備份相當于給raid又做了一個備份,一個raid當中壞了一塊硬盤,熱備份在頂替的過程中,利用 校驗的算法,把陣列中的數據同步過來,然后再頂替壞掉的硬盤。
在替換過程中,陣列是不可使用的,不能讀寫的,頂替完成之后,raid恢復正常狀態。