虛擬機中RAID5的模擬實現
4塊磁盤的設備名分別為/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde
1.虛擬機添加4塊磁盤,磁盤大小為20G,並使用以下命令來識別的新增加的磁盤
echo '- - -' > /sys/class/scsi_host/host0/scan
echo '- - -' > /sys/class/scsi_host/host1/scan
echo '- - -' > /sys/class/scsi_host/host2/scan
2.對4塊硬盤分別使用fdisk格式化,註意修改磁盤的ID號為fd
對單塊磁盤分區完成以後,可以使用dd命令對其他磁盤快速分區
# dd if=/dev/sdb of=/dev/sdc skip=446 seek=446 bs=1 count=66 (64字節的分區表及最後2個字節的分區標誌位55AA)
3.mdadm -C /dev/md0 -a yes -l5 -c32 -n3 -x1 /dev/sd{b,c,d,e}1 -c 指定chunk的大小為32k
查看創建的Raid信息,可使用mdadm -D /dev/md0
4.Raid5創建文件系統,mkfs.ext4 /dev/md0 -L raid5
5.mkdir /mnt/raid5 創建掛載點文件夾
6.vim /etc/fstab,註意使用:r!blkid /dev/md0後變價
UUID=ed5b5fb3-6ee1-4be5-9a86-c2279b81750d /mnt/raid5 ext4 defaults 0 0
7.mount -a 掛載raid5文件系統
8.為了使得創建的RAID,在重啟RAID之後,RAID依然可用需要輸出配置文件
# mdadm -Ds /dev/md0 > /etc/mdadm.conf
補充:重啟RAID
mdadm -S /dev/md0 停用RAID
mdadm -A /dev/md0 啟用RAID
測試raid5的讀寫速度
dd if=/dev/zero of=/mnt/raid5/testfile bs=1M count=1024 測試寫入速度
dd if=/mnt/raid5/testfile of=/dev/zero 測試讀取速度
經測定,raid的讀寫速度較普通磁盤的讀寫性能高出很多
備用磁盤會在RAID中的磁盤出現故障時頂替壞盤,可以使用命令模擬RAID出現壞盤
# mdadm /dev/md0 -f /dev/sdb1
[root@centos6 ~]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0 提示的信息好像出錯信息,不過是正常的模擬提示信息
使用mdadm -D /dev/md0 可以查看到備用盤接替壞盤過程的百分比,為了觀察,可以使用watch命令
# watch -n 1 mdadm -D /dev/md0
對於模擬的故障壞盤可以使用 mdadm /dev/md0 -r /dev/sdb1 將其卸載
如果修復後的磁盤又可以使用 mdadm /dev/md0 -a /dev/sdb1 將其重新添加至raid,做為RAID的備用盤
如果出現raid的4塊磁盤壞掉了兩顆,則RAID的狀態則會顯示降級使用
如果之前的raid空間不夠是可以使用如下命令,新增加的磁盤記得要先格式化
# mdadm -G /dev/md0 -n4 -a /dev/sdf1 之前的raid的磁盤數n為3(不包含備用盤)
若使用df -h 查看md0的操作系統空間不夠,可以使用resize命令來同步空間
# resize2fs /dev/md0 同步文件系統空間(該命令只適合ext系列文件系統)
# xfs_growfs /mnt/raid5 xfs文件系統同步空間命令,註意後面的參數是掛載點不是設備名
刪除raid
1.卸載 umount /mnt/raid5
2.刪除 /etc/fstab中的掛載信息
3.rm -rf /etc/mdadm.conf 刪除raid的配置文件
4.清除raid超級塊信息 mdadm --zero-superblock /dev/sdb1 (/dev/sdc1, /dev/sdd1等raid磁盤組成)
不刪除的情況使用 blkid 會查看到raid的超級塊信息
補充: Centos6 同步分區的時候使用partx -a /dev/sdc(增加分區的時候使用)
刪除分區的時候使用 partx -d -nr 1-3 /dev/sdc 刪除分區的時候使用
虛擬機中RAID5的模擬實現