[Linux入門 ] RAID存儲技術概述

? ? ? ??一.數據存儲架構

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塊,但得在不同鏡像組里)

關鍵補充說明??:

  1. ??性能權衡??:RAID 5/6的寫性能隨磁盤數量增加而下降,建議不超過16塊磁盤。
  2. ??重建風險??:RAID 5在重建期間二次故障概率高達15%(6TB以上磁盤)。
  3. ??成本計算??:RAID 10實際成本=磁盤數×2+控制器許可費用(企業級)。
  4. ??新興替代??:對于超大規模存儲,可考慮糾刪碼(Erasure Coding)技術。
  5. 簡單總結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恢復正常狀態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88838.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI繪畫生成章邯全身像提示詞

融合了歷史元素和視覺表現力,力求生成符合秦末名將章邯身份的全身像。 核心提示詞結構: [主體描述],[服裝/盔甲細節],[姿態/神情],[武器],[背景/氛圍],[風格/質量],[參數] 選項一&…

iOS高級開發工程師面試——關于優化

iOS高級開發工程師面試——關于優化 一、TableView 有什么好的性能優化方案?二、界面卡頓和檢測你都是怎么處理?三、談談你對離屏渲染的理解?四、如何降低APP包的大小?五、日常如何檢查內存泄露?六、APP啟動時間應從哪些方面優化?一、TableView 有什么好的性能優化方案?…

線性基學習筆記

我們稱一個線性空間 V V V 的一個極大線性無關集為這個線性空間的線性基,簡稱基。 異或線性基 在異或空間下,我們定義如下內容。 異或和 設 S S

ESP-Timer入門(基于ESP-IDF-5.4)

主要參考資料: ESP 定時器(高分辨率定時器): https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/api-reference/system/esp_timer.html 目錄ESP-Timer與FreeRTOS TimerAPI 使用1.創建定時器2.啟動定時器3.管理定時器4.時間管…

014_批處理與大規模任務

批處理與大規模任務 目錄 批處理概述核心優勢技術規格API使用管理和監控應用場景最佳實踐 批處理概述 什么是批處理 批處理(Batch Processing)是一種異步處理大量Claude API請求的方法,允許您一次性提交多個消息請求,系統將在…

Python淘寶拍立淘按圖搜索API接口,json數據示例參考

淘寶拍立淘按圖搜索API接口示例淘寶的拍立淘(圖片搜索)功能通常是通過淘寶開放平臺提供的API實現的。以下是一個模擬的JSON數據示例和接口調用參考:模擬API請求示例import requestsimport base64# 示例圖片路徑image_path "example.jpg"# 讀取圖片并編碼…

靜默的田野革命—人工智能重構農業生態的技術風暴與文明悖論

一、饑餓困局的數字突圍當全球糧食損失率高達30%(約13億噸)與8億人營養不良并存,當農藥濫用導致傳粉昆蟲種群崩潰與地下水資源枯竭,傳統農業的生態死結日益收緊。這場危機的核心是生物復雜性對工業化農業的報復:小麥基…

【大模型推理論文閱讀】 Thinking Tokens are Information Peaks in LLM Reasoning

Demystifying Reasoning Dynamics with Mutual Information:Thinking Tokens are Information Peaks in LLM Reasoning 摘要 大語言推理模型(LRM)在復雜問題解決方面展現出了令人矚目的能力,但其內部推理機制仍未得到充分理解。…

【TCP/IP】14. 遠程登錄協議

14. 遠程登錄協議14. 遠程登錄協議14.1 基本概念14.2 Telnet 命令14.3 Telnet 選項及協商14.4 Telnet 子選項協商14.5 Telnet 操作模式本章要點14. 遠程登錄協議 14.1 基本概念 Telnet 協議是 TCP/IP 協議族的重要成員,核心功能是實現本地計算機對遠程主機的終端仿…

Flink1.20.1集成Paimon遇到的問題

flinkcdc mysql 到paimon 1:Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.data.Schema 可以參考這個文章 明確指出了flink-connector-mysql-cdc-3.4.0.jar存在這個包,但是flink-sql-connector-mysql-cdc-3.4.0.jar中沒有這個…

C++高頻知識點(十)

文章目錄46. 智能指針是什么?怎么使用?1. std::unique_ptr2. std::shared_ptr3. std::weak_ptr47. 什么是野指針?1. 使用已釋放的指針2. 未初始化的指針3. 指針超出作用域如何避免野指針1. 立即將指針置空2. 初始化指針3. 使用智能指針4. 避免返回局部變…

c#中Random類、DateTime類、String類

C# 中 Random 類分析Random 類用于生成偽隨機數,位于 System 命名空間。它的核心機制是基于一個種子值 (seed),通過算法生成看似隨機的數列。相同種子會生成相同的隨機數序列,這在需要可重現的隨機場景中很有用。核心特點種子與隨機性默認構造…

Vscode 下載遠程服務器失敗解決方法

今天在使用 vscode 連接遠程主機時,突然再次遇到這個問題,按照以往的經驗,直接按照這個博主的文章其實就能解決,但是不知道為什么,今天這個方案失效了,然后卸載安裝服務器和本機的vscode什么的也都試過了&a…

【算法】貪心算法:檸檬水找零C++

文章目錄前言題目解析算法原理代碼示例策略證明前言 題目的鏈接,大家可以先試著去做一下再來看一下思路。 860. 檸檬水找零 - 力扣(LeetCode) 題目解析 首先我們要認真去拿到題目中的關鍵有用信息。 認真的去閱讀題目給的示例,然…

27.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--幣種服務(一)

從本篇文章開始,我們將用兩篇內容詳細介紹幣種服務的實現。幣種服務本身結構較為簡單,核心功能包括內置幣種的初始化、幣種匯率的同步以及匯率的查詢。在本篇中,我們將重點講解如何實現內置幣種的初始化功能,為后續的服務打下基礎…

(2)從零開發 Chrome 插件:實現 API 登錄與本地存儲功能

從零開發 Chrome 插件:實現 API 登錄與本地存儲功能 Chrome 插件作為瀏覽器功能的重要擴展,能極大提升用戶的工作效率。本文將以一個「登錄功能插件」為例,帶你從零構建一個可調用 API 驗證身份、并將用戶信息存儲在本地的 Chrome 插件。 基…

Flink時間窗口詳解

一、引言在大數據流處理的領域中,Flink 的時間窗口是一項極為關鍵的技術,想象一下,你要統計一個電商網站每小時的訂單數量。由于訂單數據是持續不斷產生的,這就形成了一個無界數據流。如果沒有時間窗口的概念,你就需要…

寬帶接入,網線插入電腦的經驗

現在一般家里安裝移動寬帶,都會提供四個千兆接口的光貓路由器,但是要注意了 首先網線的兩端看起來一樣,實際上并不是,如果發現連接不成功,那么就要換一頭重新嘗試, 一般像說什么自動DHCP啊,因為…

crmeb多門店對接拉卡拉支付小程序聚合收銀臺集成全流程詳解

一、商戶注冊與配置??注冊支付平臺賬號??:在拉卡拉開放平臺注冊商戶賬號(私信聯系注冊)??創建應用??:獲取小程序應用ID(AppID)??配置支付參數??:商戶號(MID)終端號(TID)API密鑰支付回調地址二、配置拉卡拉…

C#將樹圖節點展示到NetronLight圖表中

之前寫過NetronLight開源框架 C#使用開源框架NetronLight繪制流程圖-CSDN博客 我們這里將TreeView樹圖的節點內容展示到NetronLight圖表中,按照樹的層次【深度Level】展示 新建窗體應用程序ShowTreeNodeToDiagram,將默認的Form1重命名為FormShowNode&…