1. 程式人生 > >虛擬機中RAID5的模擬實現

虛擬機中RAID5的模擬實現

RAID5

首先需要4塊磁盤,3塊作為raid組成,1塊磁盤最為備用盤使用

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的模擬實現