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

Linux RAID磁碟陣列

一、RAID磁碟陣列介紹

1、是Redundant Array of Independent Disks的縮寫,中文簡稱為獨立冗餘磁碟陣列

2、把多塊獨立的物理硬碟按不同的方式組合起來形成一個硬碟組(邏輯硬碟)從而提供比單個硬碟更高的儲存效能和提供資料備份技術

3、組成磁碟陣列的不同方式稱為RAID級別(RAID Levels)

4、常用的RAID級別

- RAID0, RAID1, RAID5,RAID6,RAID1+0等

二、RAID0磁碟陣列介紹

1、RAID 0(條帶化儲存)

  • RAID 0 連續以位或位元組為單位分割資料,並行讀/寫於多個磁碟上,因此具有很高的資料傳輸率,但它沒有資料冗餘

  • RAID 0 只是單純地提高效能,並沒有為資料的可靠性提供保證,而且其中的一個磁碟失效將影響到所有資料

  • RAID 0 不能應用於資料安全性要求高的場合

N塊硬碟並行組合成一個新的邏輯盤

2、RAID 1(映象儲存)

  • 通過磁碟資料映象實現資料冗餘,在成對的獨立磁碟上產生互為備份的資料

  • 當原始資料繁忙時,可直接從映象拷貝中讀取資料,因此RAID 1可以提高讀取效能

  • RAID 1是磁碟陣列中單位成本最高的,但提供了很高的資料安全性和可用性,當一個磁碟失效時,系統可以自動切換到映象磁碟上讀寫,而不需要重組失效的資料

N(偶數)塊硬碟組合成一組映象,N/2容量

3、RAID 5

  • N (N>=3) 塊盤組成陣列,一份資料產生N-1個條帶,同時還有1份校驗資料,共N份資料在N塊盤上迴圈均衡儲存

  • N塊盤同時讀寫,讀效能很高,但由於有校驗機制的問題,寫效能相對不高

  • (N-1) /N磁碟利用率

  • 可靠性高,允許壞1塊盤,不影響所有資料

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 1 0相同

  • 安全性低於RAID 1 0

RAID級別 硬碟數量 硬碟利用率 是否有校驗 保護能力 寫效能
RAID 0 N N 單個硬碟的N倍
RAID 1 N(偶數) N/2 允許一個裝置故障 需寫兩對儲存裝置,互為主備
RAID 5 N>=3 (N-1)/N 允許一個裝置故障 需寫計算校驗
RAID 6 N>=4 (N-2)/N 允許兩個裝置故障 需雙重寫計算校驗
RAID 1 0 N>=4(偶數) N/2 允許兩個基組中各壞一個 N/2塊盤同時寫入

三、陣列卡介紹

1、陣列卡是用來實現RAID功能的板卡

2、通常是由I/O處理器、硬碟控制器、硬碟聯結器和快取等一系列元件構成的

3、不同的RAID卡支援的RAID功能不同

  • 例如支援RAID0、RAID1、 RAID5、RAID10等

4、RAID卡的介面型別

  • IDE介面、SCSI介面、SATA介面和SAS介面

四、陣列卡的快取

1、快取(Cache) 是RAID卡與外部匯流排交換資料的場所,RAID卡先將資料傳送到快取,再由快取和外邊資料匯流排交換資料

2、快取的大小與速度是直接關係到RAID卡的實際傳輸速度的重要因素

3、不同的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
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

3、建立 RAID 裝置

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

-C: 表示新建;

-v: 顯示建立過程中的詳細資訊。

/dev/md0: 建立RAID5 的名稱。

-a yes: --auto: 表示如果有什麼裝置檔案沒有存在的話就自動建立,可省略。

-l: 指定RAID的級別,15表示建立RAID5。

-n: 指定使用幾塊硬碟建立RAID, n3表示使用3塊硬碟建立RAID。

/dev/sd[bcd]1: 指定使用這3塊磁碟分割槽去建立RAID。

-x:指定使用幾塊硬碟做RAID的熱備用盤,x1表示保留1塊空閒的硬碟作備用。

/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

#檢視RAID磁碟詳細資訊
cat /proc/mdstat         #還能檢視建立RAID的進度
或者
mdadm -D /dev/md0

#用watch命令來每隔一段時間重新整理/proc/mdstat的輸出
watch -n 10 'cat /proc/mdstat’

#檢查磁碟是否已做 RAID
mdaldm -E /dev/sd[b-e]1

4、建立並掛載檔案系統

mkfs -t xfs /dev/md0
mkdir /myraid
mount /dev/md0 /myraid/
df -Th
cp /etc/fstab /etc/fstab.bak6.實現故障恢復
vim /etc/fstab
/dev/md0    /myraid    xfs    defaults    0  0

5、實現故障恢復

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

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

echo 'DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

mdadm命令其它常用選項

-r: 移除裝置
-a: 新增裝置
-S: 停止RAID
-A: 啟動RAID

mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -a /dev/sde1

echo 'DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1' > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
umount /dev/md0
mdadm -S /dev/md0
mdadm -As /dev/md0
#-s: 指查詢 /etc/mdadm. conf 檔案中的配置資訊