RAID磁碟陣列

来源:https://www.cnblogs.com/linuxk/archive/2018/03/28/8661679.html
-Advertisement-
Play Games

RAID是“Redundant Array of Independent Disk”的縮寫,中文意思是獨立冗餘磁碟陣列。簡單地解釋,就是將N台硬碟通過RAID Controller(分Hardware,Software)結合成虛擬單臺大容量的硬碟使用。RAID的採用為存儲系統(或者伺服器的內置存儲... ...


一、RAID簡介

RAID是“Redundant Array of Independent Disk”的縮寫,中文意思是獨立冗餘磁碟陣列。簡單地解釋,就是將N台硬碟通過RAID Controller(分Hardware,Software)結合成虛擬單臺大容量的硬碟使用。RAID的採用為存儲系統(或者伺服器的內置存儲)帶來巨大利益,其中提高傳輸速率和提供容錯功能是最大的優點。
簡單的說,RAID是一種把多塊獨立的硬碟(物理硬碟)按不同的方式組合起來形成一個硬碟組(邏輯硬碟),從而提供比單個硬碟更高的存儲性能和提供數據備份技術。根據磁碟陳列的不同組合方式,可以將RAID分為不同的級別。
磁碟陣列中針對不同的應用使用的不同技術,稱為RAID level,而每一level都代表著不同技術,目前業界公認的標準是RAID 0~RAID 5。這個level並不代表技術的高低,level 5並不高於level 3,level 1也不低過level 4,至於要選擇那一種RAID level的產品,純視用戶的操作環境(operating environment)及應用(application)而定與level的高低沒有必然的關係。
在RAID有一基本概念稱為EDAP(Extended Data Availability and Protection),其強調擴充性及容錯機制,也是各家廠商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等訴求的重點,包括在不須停機情況下可處理以下動作:
RAID 磁碟陣列支持自動檢測故障硬碟
RAID 磁碟陣列支持重建硬碟壞軌的資料
RAID 磁碟陣列支持不須停機的硬碟備援Hot Spare
RAID 磁碟陣列支援支持不須停機的硬碟替換Hot Swap
RAID 磁碟陣列支持擴充硬碟容量等

二、RAID 0:無差錯控制的帶區組

要實現RAID0必須要有兩個以上硬碟驅動器,RAID0實現了帶區組,數據並不是保存在一個硬碟上,而是分成數據塊保存在不同驅動器上。因為將數據分佈在不同驅動器上,所以數據吞吐率大大提高,驅動器的負載也比較平衡。如果剛好所需要的數據在不同的驅動器上效率最好。它不需要計算校驗碼,實現容易。它的缺點是它沒有數據差錯控制,如果一個驅動器中的數據發生錯誤,即使其它盤上的數據正確也無濟於事了。不應該將它用於對數據穩定性要求高的場合。如果用戶進行圖象(包括動畫)編輯和其它要求傳輸比較大的場合使用RAID0比較合適。同時,RAID可以提高數據傳輸速率,比如所需讀取的文件分佈在兩個硬碟上,這兩個硬碟可以同時讀取。那麼原來讀取同樣文件的時間被縮短為1/2。在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能的,如果一個磁碟(物理)損壞,則所有的數據都無法使用。
如果兩塊硬碟:160G+120G=240G

三、RAID 1:鏡象結構

對於使用這種RAID1結構的設備來說,RAID控制器必須能夠同時對兩個盤進行讀操作和對兩個鏡象盤進行寫操作。通過下麵的結構圖您也可以看到必須有兩個驅動器。因為是鏡象結構在一組盤出現問題時,可以使用鏡象,提高系統的容錯能力。它比較容易設計和實現。每讀一次盤只能讀出一塊數據,也就是說數據塊傳送速率與單獨的盤的讀取速率相同。因為RAID1的校驗十分完備,因此對系統的處理能力有很大的影響,通常的RAID功能由軟體實現,而這樣的實現方法在伺服器負載比較重的時候會大大影響伺服器效率。當您的系統需要極高的可靠性時,如進行數據統計,那麼使用RAID1比較合適。而且RAID1技術支持“熱替換”,即不斷電的情況下對故障磁碟進行更換,更換完畢只要從鏡像盤上恢複數據即可。當主硬碟損壞時,鏡像硬碟就可以代替主硬碟工作。鏡像硬碟相當於一個備份盤,可想而知,這種硬碟模式的安全性是非常高的,RAID 1的數據安全性在所有的RAID級別上來說是最好的。但是其磁碟的利用率卻只有50%,是所有RAID級別中最低的。
如果兩塊硬碟:160G+120G=120G

四、RAID5:分散式奇偶校驗的獨立磁碟結構

從它的示意圖上可以看到,它的奇偶校驗碼存在於所有磁碟上,其中的p0代表第0帶區的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性,允許單個磁碟出錯。RAID 5也是以數據的校驗位來保證數據的安全,但它不是以單獨硬碟來存放數據的校驗位,而是將數據段的校驗位交互存放於各個硬碟上。這樣,任何一個硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的數據。硬碟的利用率為n-1。但是它對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區別在於RAID 3每進行一次數據傳輸,需涉及到所有的陣列盤。而對於RAID 5來說,大部分數據傳輸只對一塊磁碟操作,可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。RAID-5的話,優點是提供了冗餘性(支持一塊盤掉線後仍然正常運行),磁碟空間利用率較高(N-1/N),讀寫速度較快(N-1倍)。RAID5最大的好處是在一塊盤掉線的情況下,RAID照常工作,相對於RAID0必須每一塊盤都正常才可以正常工作的狀況容錯性能好多了。因此RAID5是RAID級別中最常見的一個類型。RAID5校驗位即P位是通過其它條帶數據做異或(xor)求得的。計算公式為P=D0xorD1xorD2…xorDn,其中p代表校驗塊,Dn代表相應的數據塊,xor是數學運算符號異或。

所謂的“奇偶校驗”可以簡單理解為二進位運算中的“異或運算”,通常用 xor 標識。
xor 運算最主要的規則是,若兩者值相同,則結果為0;若兩者值不同,則結果為1。
舉個例子:
在二進位中 5 和 2 分別是 0101 和 0010,那麼 5 xor 2 可以表示為 0101 xor 0010,根據運算規則,第一位都是“0”,兩者相同,結果為“0”;第二、三、四位的數值不同,結果分別是1、1、1。合起來的結果就是“0111”。
公式為 0101 xor 0010 = 0111。
那麼事情就好辦了,在一個公式 a xor b=c 中,不管缺了誰,都可以通過剩下的兩者將其推算出來。
這也就是 raid 5 能夠恢複數據的秘密。

最左邊的是原始數據,右邊分別是三塊硬碟,假設第二塊硬碟出了故障,通過第一塊硬碟上的 1 和第三塊硬碟上的 1 xor 2,就能夠還原出 2。同理可以還原出 3 和 8。至於 5 xor 6 則更簡單了,直接用 5 和 6 運算出來即可。

五、RAID10/01:高可靠性與高效磁碟結構

這種結構無非是一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充,達到既高效又高速還可以互為鏡像的目的。大家可以結合兩種結構的優點和缺點來理解這種新結構。這種新結構的價格高,可擴充性不好。主要用於容量不大,但要求速度和差錯控制的資料庫中。
其中可分為兩種組合:RAID10和RAID01

RAID 10是先鏡射再分區數據。是將所有硬碟分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。RAID 10有著不錯的讀取速度,而且擁有比RAID 0更高的數據保護性。

RAID 01則是跟RAID 10的程式相反,是先分區再將數據鏡射到兩組硬碟。它將所有的硬碟分為兩組,變成RAID 1的最低組合,而將兩組硬碟各自視為RAID 0運作。RAID 01比起RAID 10有著更快的讀寫速度,不過也多了一些會讓整個硬碟組停止運轉的機率;因為只要同一組的硬碟全部損毀,RAID 01就會停止運作,而RAID 10則可以在犧牲RAID 0的優勢下正常運作。
RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保護兩種特性,不過它的缺點是需要的硬碟數較多,因為至少必須擁有四個以上的偶數硬碟才能使用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • DNS的幾個概念: 一、根域 “.”,即功能變數名稱最後的“.”,瀏覽器輸入一般都會省略。 根域伺服器具有13個IP地址,但是機器數量卻不是13台,這些IP地址藉助了任播技術,我們可以在全球設立這些IP的鏡像。 二、域的劃分 根域下來就是頂級域或者一級域,如com.、net.、cn.、jp.等。 每個域都會 ...
  • centos7 64位系統,在官網安裝了flashplayer的rpm包後,打開網頁播放視頻時仍然出現提示“您未安裝Flash Player 或者版本過低……“提示 解決方案: 1.進入flash官網下載tar.gz壓縮寶https://get.adobe.com/flashplayer/?loc= ...
  • Centos 6.8 安裝Nginx必要的依賴包: 1.安裝C語言環境 2.安裝pcre庫使Nginx支持具備URI重寫功能的rewrite模塊 3.安裝openssl,Nginx在使用HTTPS服務時要用到此模塊 yum install -y gcc-c++ pcre pcre-devel ope ...
  • Linux預設的shell版本是bash. 我們所敲的命令都是有記錄的;被保存在.bash_history文件中。只有當用戶正常突出shell時,命令才會保存至.bash_history中。 !!:連續兩個感嘆號表示執行上一條指令 !n:這裡的n是數字,表示執行命令中的第n條指令。 # histor ...
  • 先使用 systemctl status 服務名稱,查看服務運行狀態,註意紅色字體的錯誤信息,比如許可權不夠(關閉selinux試試),埠被占用(netstat -tunlp | grep 埠號); 若仍然無法解決問題,查看Linux系統的日誌文件/var/log/messages,再配合grep... ...
  • 首先: vim /etc/yum/pluginconf.d/langpacks.conf將第一行:enable=1改為enable=0 然後執行一下yum命令,發現還會占用,殺死線程即可。 ...
  • 先對網路介面配置文件ifcfg-eth0進行設置1.cd /etc/sysconfig/network-scripts/2.vi ifcfg-eth0# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0 ##設備名稱BOOT... ...
  • 前言: 本文是對這篇博客Maximum Size Of A Logical Volume In LVM的翻譯,敬請尊重原創和翻譯勞動成果,那些隨意轉載的大爺們,好歹也自覺註明出處。謝謝! 英文原文地址:https://www.walkernews.net/2007/07/02/maximum-siz... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...