Fır*_*ÇÜK 4 migration live-migration kvm-virtualization
我的来宾机器有 2 个分区(80GB + 1TB)。它们都在 LVM 上。我想以最短的停机时间将所有磁盘传输到另一台机器。我用nc转移了另一台机器。这需要 4 天,在转移期间我的 VM 关闭了。
我尝试在传输脏页后制作快照。但是 AFAIK 和 LVM 是不可能的。我的目标机器没有 LVM 设置和可用的未分区空间。所以在目标机器上的磁盘必须是原始文件映像。
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/vg-datastore/lv-vm-1138'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/vg-datastore-sata/lv-vm-1138-2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
源主机:
目标主机:
KVM/libvirt 支持虚拟机实时迁移和存储迁移(无共享设置),尽管有一些限制。您的主要问题是存储池具有不同的配置,因此我不确定是否libvirt会毫无问题地迁移 VM 映像。
进行实时迁移 + 存储复制的命令是:
virsh migrate --live --copy-storage-all --persistent qemu+ssh://root@/system
此命令假定您具有到远程主机的基于 libvirt 的有效连接。
如果您在迁移虚拟磁盘时遇到问题,您可以尝试通过执行(在目标主机上)类似于fallocate /dev/vg-datastore/lv-vm-1138 -l 80G和 的内容来创建存根目标虚拟磁盘文件/dev/vg-datastore-sata/lv-vm-1138-2 -l 1T。
无论如何,由于主机之间的差异,这可能是一条坎坷的道路。
迁移 VM 映像的一种更简单的方法是使用增量磁盘复制方法,使用blocksync. 简而言之:
请注意,链接的blocksync程序是基于此原始脚本的个人分叉版本(顺便说一下,它是此脚本的改进版本)。我显然不承担代码的责任,我强烈建议您在生产虚拟机/磁盘文件上使用它之前彻底测试它。与往常一样,在做任何事情之前,您必须有一个确认良好的备份。
编辑:正如下面评论中所建议的,另一个同步块设备/虚拟图像文件的好软件是bdsync. 方法基本相同:在 VM 运行时获取磁盘文件的第一个“种子”副本,然后停止 VM 并执行另一个最终副本。过去我什至问过bdsync开发人员一个类似的问题;请参阅此处了解更多信息。
| 归档时间: |
|
| 查看次数: |
5383 次 |
| 最近记录: |