現在的 IDE 硬碟越來越便宜,也越來越容易損壞,所以市面上出了一堆 IDE RAID 卡,但我發現在 Debian 上面都非常難裝,為了晚上能安心睡覺,還是弄弄 kernel 內建的 md 吧。但我的系統已經安裝了 Debian,是否有辦法把現有系統升級成 md 呢?

答案是有的,這邊就跟各位分享我升級成 raid 1 的經驗。

升級過程的步驟請繼續看下去 :p

1. 加入一顆相當大小的新硬碟到系統,並建立 raid partations type=fd

[root]# fdisk /dev/hdc

2. apt-get install raidtools2

[root]# cp /usr/share/doc/raidtools2/examples/raid1.conf.sample /etc/raidtab

3. 在 /etc/raidtab 中將舊硬碟的 partations 加上 failed-disk 標示, 並將 chunk-size 改為 32, 下面是我的設定:

  1. Sample raid-1 configuration
raiddev                 /dev/md0
raid-level              1
nr-raid-disks           2
nr-spare-disks          0
chunk-size              32

device /dev/hda1
failed-disk 0

device /dev/hdc1
raid-disk 1

4. 建立 raid, mkraid /dev/md? or more.

[root]# mkraid /dev/md0

5. 建立檔案系統, mke2fs -j -b 4096 -R stride=X /dev/md? X=chunk-size/4

[root]# mke2fs -j -b 4096 -R stride=8 /dev/md0

6. 掛上 raid 及複製資料 mount /dev/md? and cp -ax / /mnt

[root]# mount /dev/md0 /mnt
[root]# cp -ax / /mnt

7. 替開機做準備

[root]# chroot /mnt
[root]# mount -t proc /proc /proc

安裝支援 md 的 kernel,您可以自行編譯或是安裝 debian package

若打算安裝 debian package 的話,首先在 /etc/kernel-img.conf 內要有

do_initrd = yes

接著安裝 kernel

[root]# apt-get install kernel-2.4.20-1-686 kernel-headers-2.4.20-1-686

在 lilo.conf 中設定:

boot=/dev/md0
raid-extra-boot="/dev/hda,/dev/hdc"
root=/dev/md0
append="md=0,/dev/hda1,/dev/hdc1"
initrd=/initrd.img

別忘了 /etc/fstab 中也要改為

/dev/md0 / ext3 defaults,errors=remount-ro  0  1

8. 寫入 lilo 並重開機測試 raid

[root]# lilo -v

若無錯誤訊息則

[root]# reboot

9. 測試 ok 的話, 將舊的 partation type 修改為 fd 並存檔

[root]# fdisk /dev/hda

注意: 若無法 reload partation table 錯誤訊息出現, 則需要再 reboot 一次取得正確的分割表

10. 在raidtab, 將 failed-disk 改為 raid-disk 並加入 raid, fdisk and then raidhotadd /dev/md? /dev/hda?

[root]# raidhotadd /dev/md0 /dev/hda1

這下可以安心睡覺了,因為我知道就算硬碟壞了,也不會再是一堆麻煩的還原程序了....

文章所有權歸原著作者所有 ,全文轉貼自 http://tavi.debian.org.tw/index.php?page=Raidtools2


Frank 發表在 痞客邦 留言(0) 人氣()