一、RAID介紹
RAID即廉價冗餘磁盤陣列(Redundant Array of Inexpensive Disks),從Linux 2.4內核開始,Linux就提供軟件RAID,不必購買昂貴的硬件RAID控制器和附件(一般中、高擋服務器都提供這樣的設備和熱插拔硬盤),就可以通過並行處理多個獨立的I/O 請求提高讀寫性能,而且能通過增加冗餘信息來提高數據存儲的可靠性。
二、幾種RAID類型
RAID 0
非冗餘,讀寫性能好,數據可靠性低於單個磁盤。
RAID 1
鏡像,讀性能好,寫性能與單個磁盤相當,數據可靠性高,成本高。
RAID 2
並行訪問,通過海明碼實現冗餘,讀寫性能好,磁盤同步旋轉,帶檢錯糾錯功能,可靠性高,讀寫性能好,但一次只能執行一個I/O 請求。
RAID 3
並性訪問,通過奇偶校驗實現冗餘,讀寫性能好,磁盤同步旋轉,帶檢錯功能,可靠性高,讀寫性能好,但一次只能執行一個I/O 請求。
RAID 4
獨立訪問,以塊爲單位計算奇偶校驗塊並存放與校驗盤,數據可靠性高,讀性能好,寫性能差(因爲每次寫都要更新校驗盤數據),校驗盤成爲性能瓶頸。
RAID 5
在RAID 4 基礎上,把奇偶校驗塊循環分佈在所有磁盤上,從而減輕單個校驗盤的性能瓶頸問題,讀寫性能和可靠性類似於RAID 4。
三、硬件RAID 和軟件RAID
硬件RAID
(1)利用硬件RAID 控制器來實現, 由集成或專用的陣列卡來控制硬盤驅動器。
(2)存取性能和數據保護能力高, 但成本也高。
(3)Linux 將硬件磁盤陣列看作一塊實際的硬盤, 其設備名爲/dev/sd[a-p]。
軟件RAID
(1)利用操作系統提供的軟件RAID 功能來實現。
(2)適用於要求不高的場合, 成本低。
(3)Linux 將軟件磁盤陣列看作多重磁盤設備(MD), 其設備名爲/dev/md0、/dev/md1 等。
四、linux中RAID配置
在Linux系統中,主要提供RAID 0、RAID 1、RAID 5三種級別的RAID。mdadm是 linux下標準的的軟raid管理工具,是一個模式化工具(在不同的模式下);程序工作在內存用戶程序區,爲用戶提供RAID接口來操作內核的模塊,實現各種功能。
1、RAID 1 配置
(1)創建兩個相同大小的RAID 分區,設置分區id 爲fd。
(2)建立RAID 設備
mdadm --create /dev/md0 --level 1 --raid-devices=2 /dev/sdb1 /dev/sdc1
(3)設置mdadm 配置文件/etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1
(4)建立文件系統
mkfs -t ext3 /dev/md0
(5)掛載RAID 1 設備
mkdir /mnt/raid1
mount /dev/md0 /mnt/raid1
(6)管理RAID 1陣列
# 模擬某成員磁盤發生故障
mdadm /dev/md0 --fail /dev/sdc1
# 從RAID 1 陣列中移除故障成員
mdadm /dev/md0 --remove /dev/sdc1
# 準備一塊要替換的磁盤,並將新磁盤加入到陣列中
mdadm /dev/md0 --add /dev/sdd1
# 查看陣列實時信息
cat /proc/mdstat
mdadm --detail /dev/md0
2、RAID 5配置
(1)準備4 個陣列成員(創建RAID 分區)
(2)創建RAID 設備:系統默認只有md0 設備,其他需自行創建。
ls –l /dev/md0 # 查看md 設備的類型和主次設備號
mknod /dev/md1 b 9 1 # 創建設備文件
(3)建立RAID 5 設備
mdadm --create /dev/md1 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdd[5-8] mdadm --detail /dev/md1
(4)設置mdadm 配置文件/etc/mdadm.conf
DEVICE /dev/sdd5 /dev/sdd6 /dev/sdd7 /dev/sdd8
ARRAY /dev/md1 devices=/dev/sdd5,/dev/sdd6,/dev/sdd7,/dev/sdd8
(5)建立文件系統
mkfs.ext3 /dev/md1
(6)掛載RAID 5 設備
mkdir /mnt/raid5
mount /dev/md1 /mnt/raid5
(7)管理RAID 5 陣列
# 利用備用盤重建RAID 5
mdadm /dev/md1 --fail /dev/sdd6
mdadm --detail /dev/md1
# 可看到備用盤自動參與重建陣列, 而故障盤成爲備用磁盤, 而且# 注意: 要等待RAID 重建完畢, 再替換故障磁盤
# 將故障磁盤移除並加入新磁
mdadm /dev/md1 --remove /dev/sdd6
mdadm /dev/md1 --add /dev/sde1
mdadm --detail /dev/md1
(8)啓用/停用/監控RAID 設備
# 停止RAID 設備(停止前要先卸載)
mdadm --stop /dev/md0
# 啓動RAID 設備
mdadm --assemble --scan /dev/md0
# 監控RAID 設備
mdadm --monitor [email protected] --delay=180 /dev/md0
# 將監控任務轉入後臺執行
nohup mdadm --monitor [email protected] --delay=180 /dev/md0
(9)如果要刪除RAID 多重磁盤設備(可選)
每個md 設備只能被建立一次,如果創建命令(mdadm–create) 出錯,將造成該md 設備無法使用,這時需要按以下步驟先刪除該錯誤的md 設備,然後才能重新創建它。
#1. 停用RAID 設備
mdadm --stop /dev/md0
#2. 清空每個組成分區的超級塊
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1