我想将 RHEL5 安装从裸机安装迁移到虚拟机。我对 Linux 备份和恢复过程不是很有经验,所以我正在寻找有关如何最好地完成此操作的建议。要求如下
- 必须能够减小磁盘大小(物理磁盘超过 200gb,大部分是空白空间,因此虚拟机应该能够变得更小)
- 机器上必须安装 Oracle,以便随时使用(如果有办法在备份时停止写入磁盘,那就太理想了)
- 如果需要,我可以在恢复到目标虚拟机之前先在目标虚拟机上安装操作系统
- 这不是一个生产系统,所以我不担心正常运行时间或性能
- 所有内容都需要移动(已安装的软件、用户/组、/etc/* 配置等)
- 正在备份的磁盘是主磁盘,但有一个辅助磁盘可用于在将数据移动到虚拟机之前存储数据。
我认为减少磁盘空间的需要不能使用 dd。tar 能满足我的要求吗?有没有办法让文件系统脱机,这样在备份时应用程序就无法写入?如果 Oracle 当时停止了,是否可以使用 tar 备份它,还是我需要使用其内置工具将其与系统的其余部分分开移动?
答案1
您在这里遗漏了一个重要信息——哪个虚拟化管理程序?
如果是 VMWare,则有免费、有限制和付费、功能更强大的 P2V 转换器可用,它们可以创建原生于 VMWare 或 .OVA 开放虚拟机格式的虚拟机。
其他人会比我更了解 Hyper-V/KVM/Xen 等的 P2V 转换选项。
答案2
Red Hat URL 上发布了一个不受支持的脚本。它基本上是一个从 CD 启动的 ISO,从 HDD 中获取网络配置以联机,然后将文件系统 SCP 到等待的主机。它还会发送 Xen 配置。
效果很好。一旦这些文件传输完毕,您就可以在 Xen 服务器上启动它们。
从某种程度上来说,这是安全的,因为你在物理机器上执行只读操作。但是,如果是生产机器,则适用通常的免责声明。我遇到的唯一麻烦是我不得不摆弄内核,以便在新的虚拟机上使用 *xen 内核而不是非 xen 内核。这导致了一些意外停机,但我也没有在关键机器上工作。
这绝对是实验性的,但对我来说很有效。如果你遇到问题,你总是可以立即启动物理备份。
PS:提前熟悉kpartx
,以防您需要在磁盘映像未运行时进入它们。
答案3
我写了一个详细的分步说明回答我如何解决与此问题非常相似的挑战:将正在运行的 Linux 系统转变为另一台机器上的 KVM 实例。我希望这也能为这个问题提供一个有用的答案。
答案的目标:获取P
运行实时生产的物理 Linux 节点并对其进行虚拟化。无需创建和分配多 TB 磁盘,也不必在V
客户机中使用 md raid,因为目标虚拟机管理程序 (Proxmox 5) 使用了 ZoL/ZFS。还希望减少正在运行的P
节点上的停机/重启。
答案4
Clonezilla 是另一个选择。更简单、更轻松