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 檔案中的配置資訊