本当はHardwareRAIDにしようと思っていたのだが、安いIDE RAIDカードは「カード+ドライバ」でRAIDと機能することが判明。そこでLinuxのドライバを探したものの、見つからなかったので挫折。そのためSoftwareRAIDにてRAID0を実現。
hde:起動ディスク hdg:空ディスク
から
hde:起動ディスク -(コピー)-> hdg:RAID1化(hdeダミー参加,hdg)
そして
hde:RAID1化(hde,hdg) <-(コピー)- hdg:RAID1化済、rootとして起動
で、
hde:RAID1化済 hdg:RAID1化済
とする。わかりづらいなorz
# /sbin/fdisk /dev/hdg
パーティション設定をする。この際、hde1, hde2 がそれぞれ hdg1, hdg2 よりも小さいと追加できないので注意すること。
/dev/hdg1 1-19202 ext3 / /dev/hdg2 19203-19457 swap
# vi /etc/raidtab
# md0 is the root array raiddev /dev/md0 raid-level 1 nr-raid-disks 2 chunk-size 8 nr-spare-disks 0 persistent-superblock 1 device /dev/hdg1 raid-disk 0 device /dev/hde1 failed-disk 1 # md1 is the root array raiddev /dev/md1 raid-level 1 nr-raid-disks 2 chunk-size 8 nr-spare-disks 0 persistent-superblock 1 device /dev/hdg2 raid-disk 0 device /dev/hde2 failed-disk 1
# /sbin/init 1 # シングルユーザーモードへ # /sbin/raidstop --all # RAIDを念のため停止
RAIDを作成
# mkraid /dev/md0 # mkraid /dev/md1
フォーマット
# mkfs.ext3 /dev/md0 # mkfs.ext3 /dev/md1
hde:起動ディスク -(コピー)-> hdg:RAID1化(hdeダミー参加,hdg)
# mkdir /mnt/raidroot # RAIDシステムコピー用マウントポイント作成 # mount /dev/md0 /mnt/raidroot # cd / # find . -xdev | cpio -pm /mnt/raidroot
swapの構築
# mkswap /dev/md1 # swapon -a
/sbin/lilo -v -r /mnt/raidroot を行う際にどっちが使われるかよくわかっていないため /etc, /mnt/raidroot/etc 両方の lilo.conf を同じに変更しておく。
prompt timeout=50 # VESA framebuffer console # ex. 0x301=640x480x8, 0x314=800x600x16, 0x317=1024x768x16, 0x31A=1280x1024x16 vga=0x314 default=linux boot=/dev/hde1 map=/boot/map install=menu message=/boot/message image=/boot/bzImage label=linux initrd=/boot/initrd-2.4.31-0vl1.8.img read-only root=/dev/md0 # RAIDにしたROOTデバイスを指定 append=" resume2=swap:/dev/md1" # SWAPデバイスを指定
編集後反映
# /sbin/lilo -v -r /mnt/raidroot
fstab は /mnt/raidroot/etc/fstab を変更
/dev/md0 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/md1 swap swap defaults 0 0
変更後、リブート
# /sbin/init 6
# vi /etc/raidtab
failed-disk 1
を
raid-disk 1
へ変更し、hde をRAIDに組み込み
# /sbin/raidhotadd /dev/md0/dev/hde1 # /sbin/raidhotadd /dev/md1/dev/hde2
進行状況はmdstatを見ればよい
# cat /proc/mdstat
prompt timeout=50 # VESA framebuffer console # ex. 0x301=640x480x8, 0x314=800x600x16, 0x317=1024x768x16, 0x31A=1280x1024x16 vga=0x314 default=linux boot=/dev/md0 # bootを入れたRAIDデバイスを指定 raid-extra-boot="/dev/hde,/dev/hdg" # raid-extra-bootに指定したデバイスにもliloを書き込んでくれる map=/boot/map install=menu message=/boot/message image=/boot/bzImage label=linux initrd=/boot/initrd-2.4.31-0vl1.8.img read-only root=/dev/md0 # ROOTデバイスを指定 append=" resume2=swap:/dev/md1" # SWAPデバイスを指定
編集後反映、RAIDの構築終了後に lilo を実行すること
# /sbin/lilo -v
リブート
# /sbin/init 6