跳至主要內容

Btrfs 與 mdadm 混合修復測試

本次測試使用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與存取掛載點可能會有問題 **

分類:Linux

搶先發佈留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 Compete Themes 設計的 Author 佈景主題