目錄
RAID實現方式
RAID 0
RAID 1
RAID 5
RAID 10
管理RAID0
創建RAID
查看RAID
格式化和掛載
刪除RAID
管理RAID1
創建RAID
查看RAID
格式化和掛載
增加熱備盤
模擬故障
刪除故障磁盤
刪除RAID
管理RAID5
創建RAID
查看RAID
md5設備劃分分區
RAID實現方式
從實現角度看,RAID主要分為:
-
軟RAID:所有功能均有操作系統和CPU來完成,沒有獨立的RAID控制/處理芯片和I/O處理芯片,效率最低。
-
硬RAID:配備了專門的RAID控制/處理芯片和I/O處理芯片以及陣列緩沖,不占用CPU資源,成本很高。
-
軟硬混合RAID:具備RAID控制/處理芯片,但缺乏I/O處理芯片,需要CPU和驅動程序來完成,性能和成本在軟RAID和硬RAID之間。
RAID 0
RAID0使用數據條帶化(striping)的方式將數據分散存儲在多個磁盤驅動器上,而不進行冗余備份。數據被分成固定大小的塊,并依次存儲在每個磁盤上。
例如,如果有兩個驅動器(驅動器A和驅動器B),一塊數據的第一個部分存儲在驅動器A上,第二個部分存儲在驅動器B上,以此類推。這種條帶化的方式可以同時從多個驅動器讀取或寫入數據,從而提高系統的性能。
適用于需要高性能而不關心數據冗余的場景
優點
-
高性能:通過數據條帶化和并行讀寫操作,RAID0可以提供更快的數據傳輸速度和更高的系統性能。
-
成本效益:相對于其他RAID級別(如RAID1或RAID5),RAID0不需要額外的磁盤用于冗余備份,因此在成本上更具競爭力。
缺點
-
缺乏冗余:由于RAID0不提供數據冗余,如果任何一個驅動器發生故障,所有數據都可能丟失。因此,RAID0不適合存儲關鍵數據。
-
可靠性降低:由于沒有冗余備份,RAID0的可靠性相對較低。如果任何一個驅動器發生故障,整個陣列的可用性將受到影響。
RAID 1
優點
-
數據冗余備份:RAID1通過數據鏡像將數據完全復制到多個驅動器上,提供冗余備份,保護數據免受驅動器故障的影響。
-
高可用性:由于數據的冗余備份,即使一個驅動器發生故障,系統仍然可以從其他驅動器中讀取數據,保證數據的可用性和連續性。
-
讀取性能提升:RAID1可以通過并行讀取數據的方式提升讀取性能,從而加快數據訪問速度。
缺點
-
成本增加:由于需要額外的磁盤用于數據冗余備份,RAID1的成本相對較高。需要考慮額外的硬件成本。
-
寫入性能略低:由于數據需要同時寫入多個驅動器,相對于單個驅動器的寫入性能,RAID1的寫入性能可能略低。
RAID 5
優點
-
性能增強:通過數據條帶化和并行讀寫操作,RAID5可以提供較高的數據傳輸速度和系統性能。
-
數據冗余備份:通過分布式奇偶校驗,RAID5可以提供數據的冗余備份,保護數據免受驅動器故障的影響。
-
成本效益:相對于其他RAID級別(如RAID1),RAID5只需要額外一個驅動器用于奇偶校驗信息,從而在成本上更具競爭力。
缺點
-
寫入性能受限:由于寫入數據時需要重新計算奇偶校驗信息,相對于讀取操作,RAID5的寫入性能較低。
-
驅動器故障期間的數據完整性:如果一個驅動器發生故障,系統在恢復數據時需要進行計算,這可能導致數據訪問速度較慢,并且在此期間可能會有數據完整性的風險。
RAID 10
優點
-
高性能:通過數據條帶化和并行讀寫操作,RAID10可以提供較高的數據傳輸速度和系統性能。
-
數據冗余備份:通過數據鏡像將數據完全復制到另一個驅動器上,RAID10提供了數據的冗余備份,保護數據免受驅動器故障的影響。
-
較高的可靠性:由于RAID10采用鏡像的方式進行數據冗余備份,即使一個驅動器發生故障,仍然可以從其他驅動器中讀取數據,確保數據的可用性和連續性。
-
快速的故障恢復:在RAID10中,如果一個驅動器發生故障,系統可以直接從鏡像驅動器中恢復數據,而無需進行復雜的計算,從而加快故障恢復的速度。
缺點
-
較高的成本:相對于其他RAID級別,RAID10需要更多的驅動器用于數據鏡像,從而增加了硬件成本。
-
低效的空間利用:由于RAID10的數據鏡像特性,有效的存儲容量只等于所有驅動器中一半的容量,因此空間利用率較低。
管理RAID0
創建RAID
#創建一個包含2個塊設備的raid0設備/dev/md0
mdadm -C /dev/md0 -l raid0 -n 2 /dev/sd{b,c}
查看RAID
#查看raid信息
cat /proc/mdstat
#查看raid設備詳細信息
mdadm -D /dev/md0
格式化和掛載
mkfs.xfs /dev/md0
mkdir /data/raid0
mount /dev/md0 /data/raid0
df -h /data/raid0#創建數據
cp /etc/ho* /data/raid0
ls /data/raid0/
刪除RAID
#卸載
umount /dev/md0
#stop RAID陣列,將刪除陣列
mdadm --stop /dev/md0
#清除原先設備上的 md superblock
mdadm --zero-superblock /dev/sd{b,c}
raid0條帶不能增加新成員盤
raid0條帶不能強制故障成員盤
管理RAID1
創建RAID
#創建一個包含兩個塊設備的raid1設備/dev/md1
mdadm -C /dev/md1 -l 1 -n 2 /dev/sd{a,b}
查看RAID
mdadm -D /dev/md1
等待同步完成
格式化和掛載
mkfs.xfs /dev/md1
mkdir -p /data/raid1
mount /dev/md1 /data/raid1
df -h /data/raid1#創建數據
cp /etc/ho* /data/raid1
ls /data/raid1/
增加熱備盤
mdadm /dev/md1 -a /dev/sdd
mdadm -D /dev/md1 | tail -5
此時sdd的狀態為spare(備用)
模擬故障
mdadm /dev/md1 -f /dev/sdb
#查看成員狀態
mdadm -D /dev/md1 |tail -5
sdd立刻頂替故障磁盤,并進行同步。數據依然能夠正常訪問
刪除故障磁盤
m3stopdadm /dev/md1 -r /dev/sdb
mdadm -D /dev/md1 |tail -5
刪除RAID
#卸載
umount /dev/md1
#stop RAID陣列,將刪除陣列
mdadm --stop /dev/md1
#清除原先設備上的md superblock
mdadm --zero-superblock /dev/sd{a..d}
管理RAID5
創建RAID
#創建一個包含4個塊設備的raid5設備/dev/md5
mdadm -C /dev/md5 -l 5 -n 4 /dev/sd{b..e}
查看RAID
mdadm -D /dev/md5
md5設備劃分分區
#創建兩個分區
fdisk /dev/md5
lsblk /dev/md5
#格式化
mkfs.xfs /dev/md5p1
mkfs.xfs /dev/md5p2
#新建目錄
mkdir /data/webapp /data/dbapp
#掛載
mount /dev/md5p1 /data/webapp/
mount /dev/md5p2 /data/dbapp/
#驗證
df -h | grep md5
echo hello webapp > /data/webapp/test
echo hello dbapp > /data/dbapp/test
#添加備用盤
mdadm /dev/md5 --add /dev/sdf
#模擬故障
mdadm /dev/md5 --fail /dev/sdb
##此時會發現sdf立刻頂替了損壞的盤
#移除故障盤
mdadm /dev/md5 --remove /dev/sdf
#再次添加
mdadm /dev/md5 --add /dev/sdb
#擴容raid設備,將raid成員數增加到5個
mdadm -G /dev/md5 --raid-devices 5
mdadm /dev/md5 --add /dev/sdg
lsblk /dev/md5
#新建分區3
fdisk /dev/md5
lsblk
#文件系統擴容
df -hT /data/dbapp/
xfs_growfs /data/dbapp/
df -hT /data/dbapp/