我需要通过网络创建 Redhat 服务器的完整备份。我研究过几个解决方案,例如 dump 和快照,但它们似乎都不能为我在本地计算机上提供服务器的完整映像。
是否有任何软件可以通过网络对整个机器进行映像处理以实现完整的备份?
答案1
据我所知,没有哪个软件可以(可靠地)对正在运行的服务器进行映像:要使映像备份可行,您确实需要机器处于静止状态(不会对您正在映像的磁盘进行任何更改)。无法使系统静止可能会导致映像中的数据不可靠/不可用。如果这些映像对于任务至关重要,请将“可能”替换为“将”。也许不是第一次,也不是第二次,但绝对是您唯一一次需要让它工作。”
也就是说,你可以启动到恢复盘或 LiveCD 并使用dd
SSH 管道,或者查看类似g4u完成这项工作并稍微完善一下。如果您打算进行虚拟化成像,您的虚拟化平台提供商可能会有专门为这项任务设计的工具。
如果您已经设置了 LVM,您可能能够使用 LVM 快照执行相同的操作,但可靠性比拍摄已正确关闭的系统的图像略低(例如,您可以在数据库写入过程中启动快照)。
请注意,虽然制作全盘映像是一种有效的备份方法,但它非常耗时且难以管理,并且将系统置于可以进行备份的状态通常会导致停机。如果您想要备份(定期进行备份以防止数据丢失),您几乎肯定最好进行调查备份软件- 我建议巴库拉适用于 *NIX 环境。
答案2
我目前正在使用 bacula enterprise 进行 BMR(裸机恢复),这正是您正在寻找的。我相信开源版本也有类似的功能。
答案3
好的,我假设你可以关闭服务器。我以前使用过以下流程。
- 重新启动系统(或从 CD)进入单用户模式。
- 如果有LVM,则激活需要转储的分区所在的卷组。
- 手动配置网络接口。
- 我喜欢使用 dump 进行备份,因为通常使用 restore 可以轻松恢复备份。进一步的 dump 会在更接近文件系统的级别处理备份,以便真正转储和恢复稀疏文件。执行如下操作:dump 0fds - 99999 99999 /dev/sda1 | gzip | ssh user@hostname 'cat >filename.dmp.gz'
我当然假设您有 ext2 或 ext3 可安装区域。
我不太喜欢 dd,因为它会锁定很多我不需要的分区信息,而且通常比转储输出更大。将这些东西恢复到新服务器后,您必须使用 grub 命令正确初始化引导扇区。