Linux-軟件RAID
磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上
磁盤陣列還能利用同位檢查的觀念,在數組中任意一個硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬盤中
RAID檔次 | 最少硬盤 | 最大容錯 | 可用容量 | 讀取性能 | 寫入性能 | 安全性 | 目的 | 應用產業 |
---|---|---|---|---|---|---|---|---|
單一硬盤 | (參考) | 0 | 1 | 1 | 1 | 無 | ||
JBOD | 1 | 0 | n | 1 | 1 | 無(同RAID 0) | 增加容量 | 個人(暫時)存儲備份 |
0 | 2 | 0 | n | n | n | 一個硬盤異常,全部硬盤都會異常 | 追求最大容量、速度 | 視頻剪接緩存用途 |
1 | 2 | n-1 | 1 | n | 1 | 最高,一個正常即可 | 追求最大安全性 | 個人、企業備份 |
5 | 3 | 1 | n-1 | n-1 | n-1 | 高 | 追求最大容量、最小預算 | 個人、企業備份 |
6 | 4 | 2 | n-2 | n-2 | n-2 | 安全性較RAID 5高 | 同RAID 5,但較安全 | 個人、企業備份 |
10 | 4 | n/2 | n/2 | n | n/2 | 安全性高 | 綜合RAID 0/1優點,理論速度較快 | 大型數據庫、服務器 |
1. n代表硬盤總數
2. JBOD可接到現有硬盤,直接增加容量
3. 如果創建RAID的硬盤較大,可能需要一段時間,cat /proc/mdstat可以查看進度
創建好的軟件RAID對應/dev/mdn,n為數字
RAID信息保存在/proc/mdstat文件中,可通過mdadm命令查看
mdadm
-C 創建一個新的RAID
-S 關閉指定RAID,關閉前先卸載
-R 重新啟用指定RAID (需要重啟)
-D 查看RAID信息(cat /proc/mdstat也可以查看)
-a 自動創建對應設備
-l 指定RAID級別
-n 硬盤數量
-x 指定備份磁盤-x後面跟數字
-f 標示硬盤為故障
-r 移除硬盤
-a 添加新硬盤到RAID中
--zero-superblock /dev/sdb 刪除全部信息和數據(先關閉RAID)
例:
1. 創建RAID10,硬盤數量為4
mdadm -C /dev/md0 -a yes -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
2. 創建文件系統之後掛載
mkfs.xfs -f /dev/md0
mount /dev/md0 /home/
3. 設置開機自動掛載
vim /etc/fstab
/dev/md0 /home xfs defaults 0 0
1. 批量創建文件測試數據是否丟失
cd /home
touch {1..20}
2. 標示sdb為故障硬盤,然後移除
mdadm /dev/md0 -f /dev/sdb
mdadm /dev/md0 -r /dev/sdb
ll /home/ 查看數據是否丟失
添加一塊硬盤
cat /proc/mdstat發現[4/3]
正在重建
mdadm /dev/md0 -a /dev/sdb
cat /proc/mdstat
[=========>...........] recovery = 45.9%
Linux-軟件RAID