2007年3月16日 星期五

Linux software raid recovery Test 1

作業環境:

  • OS:Fedora Core 6 on VMware workstation 5.5

  • HDD:two 4GB scsi vm disks


安裝方式:

  • 在安裝畫面時,將sda切割成一個3.7G的raid分割區與256mb的swap,sdb亦同。由此兩個raid分割區組成一個raid1的系統,root直接寫進raid(md0)。並使用預設方式安裝(不額外選擇套件...etc)。


測試方式:

  • 如果其中一顆硬碟損壞……
    因為raid1是使用鏡射的方式,不管哪一顆硬碟損壞,理論上另外一顆硬碟還是可以開機,如果我把sdb拿掉,只用sda還是可以開機。但是只留下sdb,一開機只出現GRUB這個字便停住了。最後參考Linux.com - The Software-RAID HOWTO: Tweaking, tuning and troubleshooting的7.3節之後,才解決問題。單獨使用sdb不能開機的原因,是因為FC6的安裝程式在做raid的時候,沒有將GRUB安裝到sdb的MBR,才會造成這種情況。於是我又把sda裝回去,重新開機,然後執行以下的指令。

    # grub

    grub> device (hd0) /dev/sdb
    grub> root (hd0,0)
    grub> setup (hd0)

    如此sdb便可以開機了。

  • 復原raid
    我重新建立一個4gb的scsi vm,然後裝載到sda上,然後以sdb做主要開機磁碟啟動。啟動之後raid當然還是沒有復原。此時要先執行fdisk讓sda的結構和sdb相同,然後執行以下的指令。

    # mdadm /dev/md0 -a /dev/sda1
    mdadm: added /dev/sda1

    出現added的訊息代表sda1已經加入raid,並開始重建資料。

    # cat /proc/mdstat
    Personalities : [raid1]
    md0 : active raid1 sda1[2] sdb1[1]
    3927744 blocks [2/1] [_U]
    [=============>.......]  recovery = 65.9% (2590464/3927744) finish=1.0min speed=20559K/sec

    unused devices: <none>

    到此還沒有結束,記得剛剛提到的不能開機的問題嗎?
    沒錯,我們必須要把GRUB給安裝到sda的MBR裡頭。