1. 程式人生 > 其它 >RAID軟體磁碟陣列

RAID軟體磁碟陣列

一、RAID概述

1、RAID的概念

  • 磁碟陣列的全名是(Redundant Arrays of Inexpensive Disk,RAID),中文意思是獨立冗餘磁碟陣列。
  • RAID可以通過技術(軟體或者硬體)將多個較小的磁碟整合成為一個較大的磁碟裝置,而這個較大的磁碟功能可不止儲存而已,它還具有資料保護的功能,整個RAID由於選擇的級別(level)不同,而使得整合後的磁碟具有不同的功能,
  • 基本常用的level有以下幾種RAID0, RAID1, RAID5,RAID6,RAID1+0等

2、RAID 中主要有三個關鍵概念和技術

映象( Mirroring )將資料複製到多個磁碟,一方面可以提高可靠性,另一方面可併發從兩個或多個副本讀取資料來提高讀效能。顯而易見,映象的寫效能要稍低, 確保資料正確地寫到多個磁碟需要更多的時間消耗。

資料條帶( Data Stripping )將資料分片儲存在多個不同的磁碟,多個數據分片共同組成一個完整資料副本,這與映象的多個副本是不同的,它通常用於效能考慮。資料條帶具有更高的併發粒度,當訪問資料時,可以同時對位於不同磁碟上資料進行讀寫操作, 從而獲得非常可觀的 I/O 效能提升 。

資料校驗( Data parity )利用冗餘資料進行資料錯誤檢測和修復,冗餘資料通常採用海明碼、異或操作等演算法來計算獲得。利用校驗功能,可以很大程度上提高磁碟陣列的可靠性、魯棒性和容錯能力。不過,資料校驗需要從多處讀取資料並進行計算和對比,會影響系統性能。

不同等級的 RAID 採用一個或多個以上的三種技術,來獲得不同的資料可靠性、可用性和 I/O 效能。至於設計何種 RAID (甚至新的等級或型別)或採用何種模式的 RAID ,需要在深入理解系統需求的前提下進行合理選擇,綜合評估可靠性、效能和成本來進行折中的選擇。

二、常用RAID介紹

1、RAID 0(條帶化儲存)— 效能最佳

RAID 0連續以位或位元組為單位分割資料,並行讀/寫於多個磁碟上,因此具有很高的資料傳輸率,但它沒有資料冗餘
RAID 0只是單純地提高效能,並沒有為資料的可靠性提供保證,而且其中的一個磁碟失效將影響到所有資料
RAID 0不能應用於資料安全性要求高的場合。

補充知識:資料冗餘

1.1 關係資料庫中的資料冗餘主要是指關係資料庫中同一資訊資料的重複存貯。

1.2 資料冗餘浪費了寶貴的資源,應儘量減少。但關係資料庫中為實現一些功能有些資料冗餘是必需的。必需的資料冗餘主要用於以下用途:

  • 資料間建立聯絡,如兩表間通過共同屬性建立聯絡;
  • 資料恢復,如建立備份檔案以備正式檔案被破壞時恢復;
  • 資料核查,如設立資料校驗位可以檢查資料在存貯、傳輸等過程中的改變;
  • 資料使用的便利,如為了檢視資料的直觀,使用資料的方便、高效。
  • 減少資料通訊開銷,如分散式資料庫在不同場地重複。

資料冗餘的缺點:

a) 儲存空間的浪費。
b) 資料互動和資料庫訪問執行效率降低。
但適當的資料冗餘又能加快查詢
資料冗餘究竟是好是壞還是要根據自己所做的專案進行合理的取捨

2、RAID 1(映象儲存)— 完整備份

通過磁碟資料映象實現資料冗餘,在成對的獨立磁碟上產生互為備份的資料;
當原始資料繁忙時,可直接從映象拷貝中讀取資料,因此RAID 1 可以提高讀取效能
RAID 1是磁碟陣列中單位成本最高的,但提供了很高的資料安全性和可用性。當個磁碟失效時, 系統可以自動切換到映象磁碟上讀寫,而不需要重組失效的資料。

3、RAID 5 — 效能與資料備份的均衡考慮

N (N>=3) 塊盤組成陣列,一份資料產生N-1個條帶,同時還有1份校驗資料,共N份資料在N塊盤上迴圈均衡儲存
N塊盤同時讀寫,讀效能很高,但由於有校驗機制的問題,寫效能相對不高
(N-1) /N磁碟利用率;
可靠性高,允許壞1塊盤,不影響所有資料(如果壞了2塊硬碟,則恢復不了)

RAID5取代了RAID3,RAID3是將校驗資料放在一個磁碟上,所以此硬碟是動態頻繁變化的,故障率極高
RAID5將校驗資料分攤到每個硬碟上,可靠性高

4、RAID 6 — 更強大的資料備份

N (N>=4) 塊盤組成陣列,(N-2) N磁碟利用率;
與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗資訊塊;
兩個獨立的奇偶系統使用不同的演算法,即使兩塊磁碟同時失效也不會影響資料的使用
相對於RAID 5有更大的“寫損失"因此寫效能較差。

5、RAID 1+0(先做映象,再做條帶)

N (偶數,N>=4)塊盤兩兩映象後,再組合成一個RAID 0;
N/2磁碟利用率;
N/2塊盤同時寫入,N塊盤同時讀取;
效能高,可靠性高。

6、RAID 0+1(先做條帶,在做映象)

讀寫效能與RAID 10相同;
安全性低於RAID 10;
使用較少

6、主流 RAID 等級技術對比

RAID級別 RAID 0 RAID 1 RAID 5 RAID 6 RAID 1+0
別名 條帶 映象 分佈奇偶校驗條帶 雙重奇偶校驗條帶 映象加條帶
容錯性

冗餘型別
熱備份選擇
讀效能
隨機寫效能 一般 一般
連續寫效能 一般
需要磁碟數 n≥1 2n (n≥1) n≥3 n≥4 2n(n≥2)≥4
可用容量 全部 50% (n-1)/n (n-2)/n 50%

補充知識

熱備份與冷備份

 冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份時將要害性檔案拷貝到另外的位置的一種說法。對於備份Oracle資訊而言,冷備份時最快和最安全的方法。冷備份的優點是
   是非常快速的備份方法(只需拷檔案)
   輕易歸檔(簡單拷貝即可)
   輕易恢復到某個時間點上(只需將檔案再拷貝回去)
   能與歸檔方法相結合,做資料庫“最佳狀態”的恢復。
   低度維護,高度安全。
  
  但冷備份也有如下不足:
  單獨使用時,只能提供到“某一時間點上”的恢復。
  再實施備份的全過程中,資料庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
  若磁碟空間有限,只能拷貝到磁帶等其他外部儲存裝置上,速度會很慢。
  不能按表或按使用者恢復。

熱備份是在資料庫執行的情況下,採用archivelog mode方式備份資料庫的方法。所以,假如你有昨天夜裡的一個冷備份而且又有今天的熱備份檔案,在發生問題時,就可以利用這些資料恢復更多的資訊。熱備份要求資料庫在Archivelog方式下操作,並需要大量的檔案空間。一旦資料庫執行在archivelog狀態下,就可以做備份了。

熱備份的優點是:

   可在表空間或資料庫檔案級備份,備份的時間短。
   備份時資料庫仍可使用。
   可達到秒級恢復(恢復到某一時間點上)。
  可對幾乎所有資料庫實體做恢復
   恢復是快速的,在大多數情況下愛資料庫仍工作時恢復。
  
  熱備份的不足是:
   不能出錯,否則後果嚴重
   若熱備份不成功,所得結果不可用於時間點的恢復
   因難於維護,所以要非凡仔細小心,不答應“以失敗告終”。

三、硬體磁碟陣列

1、磁碟陣列介紹

所謂的磁碟陣列是通過磁碟陣列卡來完成磁碟陣列的功能,磁碟陣列卡上面有一塊專門的晶片用於處理RAID任務,因此在效能方面會比價好。在很多工(例如RAID5奇偶校驗值計算)中,磁碟陣列並不會重複消耗原本系統的I/O匯流排,理論上效能會較佳,此外目前一般的中高階磁碟陣列卡都支援熱插拔,即在不關機的情況下抽換損壞的磁碟,在系統的恢復和資料的可靠性方面非常好用

2、陣列卡介紹

陣列卡是用來實現RAID功能的板卡
通常是由I/O處理器、硬碟控制器、硬碟聯結器和快取等一系列元件構成的
不同的RAID卡支援的RAID功能不同:
例如支援RAID0、RAID1、 RAID5、 RAID10等
RAID卡的介面型別:
IDE介面、SCSI介面、 SATA介面和SAS介面

3、陣列卡的快取

快取(Cache)是RAID卡與外部匯流排交換資料的場所,RAID卡先將資料傳送到快取,再由快取和外邊資料匯流排交換資料。
快取的大小與速度是直接關係到RAID卡的實際傳輸速度的重要因素。
不同的RAID卡出廠時配備的記憶體容量不同,一般為幾兆到數百兆容量不等。

四、建立軟 RAID 磁碟陣列步驟

1.檢查是否已安裝mdadm軟體包

rpm -q mdadm
yum install -y mdadm

2.使用fdisk工具將新磁碟裝置/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde劃分出主分割槽sdb1、sdc1、sdd1、sde1.並且把分割槽型別的ID標記號改為“fd”

兩種方法:
fdisk /dev/ sdb(進入互動頁面) echo 'n >p>1> > >t>fd>w ' | fdisk/dev/sdc

3.建立 RAID 裝置

#建立 RAID5
mdadm -C -v /dev/md0 [-a yes] -15 -n3 /dev/sd[bcd]1 -x1 /dev/ sde1

#建立 RAID10 ( 先做鏡象,再做條帶)
mdadm -Cv /dev/md0 - -l1 -n2 /dev/sd [bc] 1
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de] 1
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/ md1

4.檢視RAID磁碟詳細資訊

檢視RAID建立進度的兩種方式:
cat /proc/ mdstat mdadm -D / dev/ md0 #每10S動態顯示建立過程 watch -n 10 'cat /proc/mdstat’ #檢查磁碟是否已做 RAID mdadm -E /dev/sd[b-e]1

5.建立並掛載檔案系統

mkfs -t xfs /dev/ md0     #格式化
mkdir /data mount /dev/md0 /data/ #掛載(臨時) df -Th
cp /etc/ fstab /etc/ fstab.bak vim /etc/ fstab /dev/md0 /data xfs defaults 0 0 #永久掛載

6.實現故障恢復

mdadm /dev/md0 -f /dev/ sdb1
#模擬/dev/ sdb1故障
mdadm -D /dev/ md0
#檢視發現sde1已頂替sdb1

7.建立 /etc/mdadm.conf 配置檔案,方便管理軟RAID的配置,比如啟動、停止

echo ' DEVICE /dev/ sdb1 /dev/sdc1 /dev/ sdd1 /dev/sde1' > / etc/ mdadm. conf    #.conf結尾的基本都是配置檔案
mdadm --detail --scan>> / etc/ mdadm. conf

umount /dev/md0
#啟動之前要先解掛載
mdadm -S /dev /md0
mdadm -As /dev/ md0
#-s:指查詢 /etc/mdadm. conf 檔案中的配置資訊

補充知識:

輸出重定向

概念:把命令的標準輸出重定向到指定檔案中

格式:

命令>檔名       #重定向輸出,會覆蓋原檔案
 
命令>>檔名    #重定向追加,不會覆蓋原檔案
 
說明: 輸出附加定向符( >> )的作用是把命令/程式的輸出附加到指定檔案的末尾

  

五、例項操作

1、新增4塊20G的硬碟,新增方法可參照部落格磁碟管理與檔案系統

2、檢查是否已安裝mdadm軟體包

3、fdisk -l 檢視硬碟是否新增成功,並對四塊硬碟進行主分割槽建立

3.1 檢視硬碟是否新增成功

3.2 建立分割槽的第一種情況

3.3 建立分割槽的第二種方法(可不進去互動頁面)

其他按照此方法進行分割槽(上鍵找到之前的命令,並改下磁碟名稱即可)

4、建立RAID

4.1 建立RAID5

4.2 建立RAID10

5.檢視RAID磁碟詳細資訊

5、對RAID5進行格式化,以及掛載

6、模擬故障檢測RAID功能

7、建立 /etc/mdadm.conf 配置檔案,方便管理軟RAID的配置,比如啟動、停止

7.1 建立/etc/mdadm.conf配置檔案

7.2 管理RAID的配置