在电信领域的产品,可能都会提供Disaster Recovery。许多人都知道ghost,可能用过Symantec NetBackup,他们都能帮你备份和恢复系统。如果你自己想通过简单的tar,dump, dd, cpio实现它,需要实现哪些功能呢?
首先你想实现哪些backup类型? 他们分为:Full/Incremental/Network/Dump.
Full就是备份所有的东西。Incremental就是在上一次Full备份基础之上只备份所有后来的任何改动。 Network就是有一个client帮助把你备份并且通过sftp或者其他方式传到远端服务器。Dump能够把整个磁盘分区信息或者文件系统dump出来,比方我们把这个disk dd出来,在restore的dump时候,需要我们有相同的硬盘大小和恢复位置。
第二,如果是OS层的恢复,我们就是我们需要使用USB或者其他启动设备帮助启动,然后从已存在的备份中恢复。
第三,就是文件系统分区。我们可能需要这些信息,当恢复的时候,我们可能换了一块新硬盘,需要使用这些分区信息重新生成文件系统。
backup示例:
#mount USB key to$BACKUP
#使用tarbackup系统
tar zc --one-file-system--anchored -S --no-ignore-case --exclude $BACKUP --exclude /tmp / --exclude /var/log --exclude /var/tmp--exclude /var/run /var > $BACKUP/backup.tgz
#backup 磁盘分区和LVM信息
#准备 USB启动所需的vmlinuzand initrd.gz到 $BACKUP/boot
# 创建grub boot menu
cat >$BACKUP/boot/grub/grub.conf <<EOF
timeout 10
title recovery
kernel=$BOOT/vmlinuz why=gdi
initrd=$BOOT/initrd.gz
...
EOF
#安装bootload
grub-install--no-floppy --root-directory=$BACKUP $GRUB_DEV
restore示例:
使用USBkey启动
使用已有的backup 磁盘分区和LVM信息重新格式化文件系统
untar backup.tgz和其他文件系统
准备硬盘启动的boot
从硬盘启动