本次測試使用Arch Linux做為OS,並使用VM模擬發生情境
損壞測試
btrfs測試
以sda作為主要開機根目錄硬碟 (raid 1)
抽掉sda會當機
抽掉sdb動到某些東西會kernel panic 或 會不斷噴error
mdadm測試
以md3作為主要開機根目錄硬碟 (raid 1),當sda或sdb抽掉系統仍然可以運作
重開機也沒問題
硬碟切割
- sd{a,b}1 boot 用mdadm做raid1
- sd{a,b}2 swap
- sd{a,b}3 root 用mdadm做raid1
- sd{a,b}4 home 用btrfs做raid1
還原測試 (livecd從系統碟先開始)
Mdadm
mdadm –detail /dev/md1 #觀察目前md1狀態
====若硬碟已經讀不到了 無需做下面三步====
mdadm –manage /dev/md1 –fail /dev/sdb1 #標記sdb1 為fail
mdadm –manage /dev/md1 –remove /dev/sdb1 #移除sdb1
swapoff /dev/sdb2
====換上新硬碟====
sgdisk /dev/sda -R=/dev/sdb #複製切好的格式
sgdisk -G /dev/sdb #重新產生GUID
mkswap /dev/sdb2
mdadm –manage /dev/md1 –add /dev/sdb1 #新增sdb1到md1
mdadm –detail –scan > /etc/mdadm.conf #將mdadm資訊寫入
grub-install –target=i386-pc /dev/sdb #補上grub
Btrfs
1.假設今天sdb壞了但開機硬碟還讀的到
btrfs fi show 中還會顯示sdb
====可以採用掛livecd的方式====
mount -t btrfs -o degraded /dev/sda3 /mnt #把sda3掛在/mnt下
btrfs replace start /dev/sdb3 /dev/sdc3 /mnt #將sdc置換sdb
btrfs replace status /mnt #確認置換進度
2.假設今天sdb壞了但硬碟都讀不到
btrfs fi show 中顯示 *** Some devices missing
mount -t btrfs -o degraded /dev/sda3 /mnt #把sda3掛在/mnt下
btrfs device add /dev/sdc3 /mnt #將sdc3加入
btrfs device delete missing /mnt #移除消失的device
btrfs balance start /mnt #平衡硬碟間的資料
** 建議在完全損壞前搶救因missing後balance與存取掛載點可能會有問題 **
搶先發佈留言