在早期,要在Debian上建構Soft Raid是大工程,除了相關的的設定步驟繁雜,就連同系統的initrd/initramfs等都要自己進行更新,讓核心能在掛載/之前認得Soft Raid。還好新版的Debian已提供了較為友善的工具,所以這一部份的建構已比過往輕鬆許多。是故以下將以Soft Raid 1作為示範,如有謬誤請指正,感謝。
# aptitude install mdadm
我們假設系統上有兩顆硬碟/dev/sda、/dev/sdb,其中/dev/sda為原來的200 GB系統硬碟,/dev/sdb為全新250 GB的硬碟。由於Soft Raid可以針對partition做鏡像,所以我們將/dev/sdb每個分割區大小設定成和/dev/sda一樣,多的部份再獨立分割成額外的分割區,以達成配置Soft Raid的前置步驟。在這邊我們要將所有的分割區都做Soft Raid,包含根目錄:
# fdisk -l /dev/sda
Disk /dev/sda: 200.0 GB, 200048565760 bytes
255 heads, 63 sectors/track, 24321 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 34 273073+ 83 Linux
/dev/sda2 35 24321 195085327+ 5 Extended
/dev/sda5 35 642 4883728+ 83 Linux
/dev/sda6 643 1007 2931831 83 Linux
/dev/sda7 1008 1089 658633+ 82 Linux swap / Solaris
/dev/sda8 1090 1138 393561 83 Linux
/dev/sda9 1139 24321 186217416 83 Linux
# fdisk -l /dev/sdb
Disk /dev/sdb: 250.0 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 34 273073+ 83 Linux
/dev/sdb2 35 30401 243922927+ 5 Extended
/dev/sdb5 35 642 4883728+ 83 Linux
/dev/sdb6 643 1007 2931831 83 Linux
/dev/sdb7 1008 1089 658633+ 82 Linux swap / Solaris
/dev/sdb8 1090 1138 393561 83 Linux
/dev/sdb9 1139 24321 186217416 83 Linux
/dev/sdb10 24322 30401 48837568+ 83 Linux
其中/dev/sda7和/dev/sdb7為swap,在此我們不將swap也做Soft Raid(要做也可以)。
別急著將更動的資訊寫入硬碟,在此還少一個步驟:我們需將代號「83」的「Linux」分割區更改為代號「fd」的「Linux raid autodetect」。更動後的分割表如下:
# fdisk -l /dev/sda
Disk /dev/sda: 200.0 GB, 200048565760 bytes
255 heads, 63 sectors/track, 24321 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 34 273073+ fd Linux raid autodetect
/dev/sda2 35 24321 195085327+ 5 Extended
/dev/sda5 35 642 4883728+ fd Linux raid autodetect
/dev/sda6 643 1007 2931831 fd Linux raid autodetect
/dev/sda7 1008 1089 658633+ 82 Linux swap / Solaris
/dev/sda8 1090 1138 393561 fd Linux raid autodetect
/dev/sda9 1139 24321 186217416 fd Linux raid autodetect
# fdisk -l /dev/sdb
Disk /dev/sdb: 250.0 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 34 273073+ fd Linux raid autodetect
/dev/sdb2 35 30401 243922927+ 5 Extended
/dev/sdb5 35 642 4883728+ fd Linux raid autodetect
/dev/sdb6 643 1007 2931831 fd Linux raid autodetect
/dev/sdb7 1008 1089 658633+ 82 Linux swap / Solaris
/dev/sdb8 1090 1138 393561 fd Linux raid autodetect
/dev/sdb9 1139 24321 186217416 fd Linux raid autodetect
/dev/sdb10 24322 30401 48837568+ 83 Linux
到此就可以按「w」將更動資料寫入硬碟。
接下來我們將使用mdadm工具建立我們的Soft Raid 1虛擬裝置。在這邊預計的配置如下:
Soft Raid裝置名稱 | 實體鏡像分割區 |
/dev/md0 | /dev/sda1、/dev/sdb1 |
/dev/md1 | /dev/sda5、/dev/sdb5 |
/dev/md2 | /dev/sda6、/dev/sdb6 |
/dev/md3 | /dev/sda8、/dev/sdb8 |
/dev/md4 | /dev/sda9、/dev/sdb9 |
所以我們執行以下命令:
# mdadm --add /dev/md0 --level 1 --raid-devices=2 missing /dev/sdb1
# mdadm --add /dev/md1 --level 1 --raid-devices=2 missing /dev/sdb5
# mdadm --add /dev/md2 --level 1 --raid-devices=2 missing /dev/sdb6
# mdadm --add /dev/md3 --level 1 --raid-devices=2 missing /dev/sdb8
# mdadm --add /dev/md4 --level 1 --raid-devices=2 missing /dev/sdb9
# make.ext3 /dev/md0
# make.ext3 /dev/md1
# make.ext3 /dev/md2
# make.ext3 /dev/md3
# make.ext3 /dev/md4
# mkswap /dev/sdb7
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/md0 / ext3 defaults,errors=remount-ro 0 1
/dev/sda7 none swap sw 0 0
/dev/sda7 none swap sw,pri=1 0 0
/dev/sdb7 none swap sw,pri=1 0 0
kernel /boot/vmlinuz-2.6.17-2-686 root=/dev/md0 ro
# update-initramfs --priority=low mdadm
# mount /dev/md0 /mnt
# tar clf - -C / . | tar xpvf - -C /mnt
# umount /dev/md0
# grub-install /dev/sdb
# mdadm --add /dev/md0 /dev/sda1
# mdadm --add /dev/md1 /dev/sda5
# mdadm --add /dev/md2 /dev/sda6
# mdadm --add /dev/md3 /dev/sda8
# mdadm --add /dev/md4 /dev/sda9
# mdadm --fail /dev/md0 /dev/sda1
# mdadm --fail /dev/md1 /dev/sda5
# mdadm --fail /dev/md2 /dev/sda6
# mdadm --fail /dev/md3 /dev/sda8
# mdadm --fail /dev/md4 /dev/sda9
# mdadm --remove /dev/md0 /dev/sda1
# mdadm --remove /dev/md1 /dev/sda5
# mdadm --remove /dev/md2 /dev/sda6
# mdadm --remove /dev/md3 /dev/sda8
# mdadm --remove /dev/md4 /dev/sda9
# mdadm --add /dev/md0 /dev/sda1
# mdadm --add /dev/md1 /dev/sda5
# mdadm --add /dev/md2 /dev/sda6
# mdadm --add /dev/md3 /dev/sda8
# mdadm --add /dev/md4 /dev/sda9
# grub-install /dev/sda
#如此應可順利完成重建。
http://www.debian-administration.org/articles/238
http://www.epimetrics.com/topics/one-page?page_id=421&topic=Bit-head%20Stuff&page_topic_id=120
http://xtronics.com/reference/SATA-RAID-debian-for-2.6.html
http://deb.riseup.net/storage/software-raid/