2012年10月20日土曜日

slackwareでLVMをRAID1化

HDDを追加
元のHDDと同じサイズでパーティションを作る。
IDはfdにして、bootパーティションはaでbootフラグを。
追加HDDをRAID化 (liloの場合はmetadataを旧バージョンにしないといけない)
mdadm --create /dev/md0 --auto=yes --level=raid1 --raid-devices=2 missing /dev/sdb1 \ --metadata=0.90
mdadm --create /dev/md1 --auto=yes --level=raid1 --raid-devices=2 missing /dev/sdb2 \ --metadata=0.90
mount /dev/VG01/root /mnt
echo 'DEVICE /dev/sd[a-z]*' > /mnt/etc/mdadm.conf
mdadm --detail --scan >> /mnt/etc/mdadm.conf
echo 'MAILADDR root' >> /mnt/etc/mdadm.conf

bootは普通のディスクなのでコピー
mkfs.ext4 /dev/md0
mount /dev/md0 /mnt/
cp -av /boot/* /mnt/

LVMはやり方が違う はじめにスナップショット領域を削除
lvremove /dev/VG01/snap

PV作って
pvcreate /dev/md1

既存のVGに追加
vgextend VG01 /dev/md1

内容を移動
pvmove /dev/sda2 /dev/md1

元のPVをVGから削除
vgreduce VG01 /dev/sda2

RAIDが正常動作していないとliloを更新できなかったのでCDでブートしてRAID1化
CDでブート
vgchange -ay VG01
mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2

進行具合は
watch cat /proc/mdstats
で見れる。

RAIDにできたらマウントしてchroot
mount /dev/VG01/root /mnt
mount /dev/md0 /mnt/boot
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
chroot /mnt
initrdを作り直す
LVM化したときのものをmd1にして-Rを付ける
mkinitrd -c -m ext4 -f ext4 -h /dev/mapper/VG01-swap -r /dev/mapper/VG01-root -C /dev/md1 -R -L

liloを修正
boot = /dev/md0
raid-extra-boot = /dev/sda,/dev/sdb

liloを更新
lilo

fstabを修正
/dev/sda1 -> /dev/md0











0 件のコメント:

コメントを投稿