2010年12月15日水曜日

ストレージサーバ - その11 - システムのバックアップ

ハードディスクの構成や認識のされ方については
新旧環境で同一であることが条件であるが、
ハードディスクのバックアップとリストアについて記述します。
まずシステムHDDをバックアップするには以下を順次実行していきます。

# cd /opt
# dd if=/dev/sda of=sda.mbr bs=512 count=1
# dd if=/dev/sdb of=sdb.mbr bs=512 count=1
# dd if=/dev/sdc of=sdc.mbr bs=512 count=1
# e2fsck -pf /dev/sda1
# dump -0uf - /dev/sda1 | gzip > sda1.gz

次にknoppix等でCDブートし、以下を実行します。

# mount /dev/sda8 /mnt/sda8
# cd /mnt/sda8
# e2fsck -pf /dev/sda3
# e2fsck -pf /dev/sda5
# e2fsck -pf /dev/sda6
# e2fsck -pf /dev/sda7
# dump -0uf - /dev/sda3 | gzip > sda3.gz
# dump -0uf - /dev/sda5 | gzip > sda5.gz
# dump -0uf - /dev/sda6 | gzip > sda6.gz
# dump -0uf - /dev/sda7 | gzip > sda7.gz

改めてHDDより起動し、

/opt/sda.mbr
/opt/sdb.mbr
/opt/sdc.mbr
/opt/sda1.gz
/opt/sda3.gz
/opt/sda5.gz
/opt/sda6.gz
/opt/sda7.gz

をsftpで他のPCにコピーして保管しておきます。
システムHDDのリストアについては、
knoppix等でCDブートし、以下を実行します。

$ su -
# /etc/init.d/ssh start
# passwd
# cd /tmp

sftpで他のPCからsda.mbrをコピーし、以下を実行します。

# dd if=sda.mbr of=/dev/sda bs=512 count=1

リセットしてもう一度knoppix等でCDブートし
以下を実行します。

$ su -
# /etc/init.d/ssh start
# passwd
# mke2fs /dev/sda1
# mkswap /dev/sda2
# mke2fs -j /dev/sda3
# mke2fs -j /dev/sda5
# mke2fs -j /dev/sda6
# mke2fs -j /dev/sda7
# mke2fs -j /dev/sda8
# tune2fs -c 0 -i 0 /dev/sda1
# tune2fs -c 0 -i 0 /dev/sda3
# tune2fs -c 0 -i 0 /dev/sda5
# tune2fs -c 0 -i 0 /dev/sda6
# tune2fs -c 0 -i 0 /dev/sda7
# tune2fs -c 0 -i 0 /dev/sda8
# mount /dev/sda8 /mnt/sda8
# cd /mnt/sda8

sftpで他のPCからsda1.gz,sda3.gz,sda5.gz,sda6.gz,sda7.gzをコピーし、
以下を実行します。

# mount /dev/sda1 /mnt/sda1
# cd /mnt/sda1
# zcat /mnt/sda8/sda1.gz | restore -rf -
# mount /dev/sda3 /mnt/sda3
# cd /mnt/sda3
# zcat /mnt/sda8/sda3.gz | restore -rf -
# mount /dev/sda5 /mnt/sda5
# cd /mnt/sda5
# zcat /mnt/sda8/sda5.gz | restore -rf -
# mount /dev/sda6 /mnt/sda6
# cd /mnt/sda6
# zcat /mnt/sda8/sda6.gz | restore -rf -
# mount /dev/sda7 /mnt/sda7
# cd /mnt/sda7
# zcat /mnt/sda8/sda7.gz | restore -rf -
# cd
# umount -a

リブートして今度はHDDから起動すれば完了です。
次にストレージHDDのバックアップですが、
/mnt/backup を作業領域にして
dumpやmkisofs、tarなどでアーカイブし、保管しておくだけです。
ストレージHDDのリストアについては以下を実行します。

# cd /opt

sftpで他のPCからsdb.mbr(またはsdc.mbr(sdbをsdcに適宜読み替え))をコピーし、
以下を実行します。

# dd if=sdb.mbr of=/dev/sdb bs=512 count=1
# mdadm /dev/md1 --remove /dev/sdb1
# mdadm /dev/md1 --add /dev/sdb1


# cat /proc/mdstat

でmd1(raid1)のrecoveryが100%になるまで一応待ちます。
RAID1なので、片方のHDDのクラッシュには耐えられますが、
もし2台同時にクラッシュしたら、
RAIDボリュームを再作成してバックアップしたものを書き戻すことになります。
ただし、md2はraid0なのでデータのレスキューはできません。
以下を実行して素直にフォーマットしなおします。

# mke2fs /dev/md2
# tune2fs -c 0 -i 0 /dev/md2

0 件のコメント:

コメントを投稿