在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文主要以解决问题的方式给大家一个(在线)迁移虚拟机的方法,可能内容包含的不是很全面,这些只是我在实验的时候遇到的问题,如果遇到的问题没有被包含可以留言回复。。。 废话不多说,直入正题(被迁移的机器成为:sourceVM,所在服务器:source,目标服务器:target,#后是shell命令) 复制代码 代码如下: # virsh version
Compiled against library: libvir 0.9.4 Using library: libvir 0.9.4 Using API: QEMU 0.9.4 Running hypervisor: QEMU 0.12.1 主要用两种方式,命令行virsh migrate 和图形界面 virt-mamge 复制代码 代码如下: #virsh migrate sourceVM qemu+ssh://target/system --live (如果ssh的端口不是默认22,可以写为 qemu+ssh://target:port/system) No.1 Question:: error: internal error hostname on destination resolved to localhost, but migration requires an FQDN 解决办法很简单,因为默认情况下hostname 是 localhost,我们需要把目标的hostname修改一下,临时的也可以。 复制代码 代码如下: #hostname target
No.2 Question: 复制代码 代码如下: #sed -i "/#host_uuid/ahost_uuid = \"`uuidgen`\"" /etc/libvirt/libvirtd.conf 重启一下libvirtd 服务 复制代码 代码如下: # /etc/init.d/libvirtd restart 然后再查看一下 复制代码 代码如下: # virsh capabilities | grep uuid
No.3 Question: No.4 Question:: 再次执行迁移命令的时候,就基本不会报错了,我的实验环境是,如果你还有其他问题,请贴图回复,谢谢 虚拟机迁移和网络的带宽、虚拟机镜像的大小有直接关系,但是在线迁移最关心的应该是宕机时间,我测试的方法是一直ping target 服务器,大概停顿1s。 图形就比较简单了,处理上边所说的相同的FQDN,相同的UUID以外,就是建立连接时的ssh认证问题。 我这边的环境是必须要在使用virt-manage远程连接的时候添加ssh的认证,而且还要在终端登陆一次,使服务器的信息记录到目标机器的~/.ssh/knows 下(其实就是有一个yes/no的界面 输入yes即可) 弹出迁移的目标服务器,选择目标服务器,点击Migrate即可 迁移的问题大概就这么多。 如果没有.ssh/这个目录,可能做不了免认证(没有真实环境,不知道原因),没关系,我们可以用tcp代替ssh连接到目标服务器上。 复制代码 代码如下: # saslpasswd2 -a libvirt admin Password: xxxxxx Again (for verification): xxxxxx 通过以下命令可以查看已经创建的用户 复制代码 代码如下: # sasldblistusers2 -f /etc/libvirt/passwd.db [email protected]: userPassword 5 重启libvirtd 服务 ok! 原文引用:xiaoli110 的BLOG 在的ssh的位置选择tcp,如果端口没有修改可以不填端口 还有一个问题是,迁移的时候可以拉服务器吗?正常的迁移时大多是推过去的,就想scp 和rsync一样,以拉虚拟机的方式迁移是可以的 迁移虚拟机对服务器的要求,之前看必须是两个相同的Cpu才可以,今天我测试的时候是发现可以从source迁移到target,回来就出问题了,发现时 sourcce 少了一些指令集,所以可以说不通的cpu也是可以做迁移的,只是目标服务器必须包含源服务器cpu的所有指令集。 |
请发表评论