一 静态迁移
一 概述 :
libvirt 提供了两种方案
1 基于hypervisor native transport 的迁移
一般的迁移方式
2 基于libvirt tunnelled transport 的迁移 (使用RPC协议可以实现加密功能,在传递时多了一个步骤,在单一的网络执行并发的操作)
二 迁移时的通信控制
A 受管理的直接迁移
(同时连接到源和目标主机的libvirt主机(用户名,密码,SSH,证书))如果迁移过程中链路发生故障,则源宿主机会回退到之前的情况,(极端情况,如果不能回退,则可以进行重新启动)
B 受管理的点对点迁移((管理端和源建立连接,源和目标端建立连接进行认证并进行迁移))如果管理程序崩溃,则不会影响,因为指令已经发送
C 不受管理的直接迁移((由两台主机之前的hypervisor进行控制))
统一资源标识 URI
通过URI 连接远端的服务
1 同一宿主机之间的迁移
通过编译配置文件进行指定磁盘的指定路径来保证正常启动
修改前
修改后
2 不同宿主机之间的迁移
3 折中迁移方式
1 迁移配置文件
2 其磁盘文件必须在其中
二 动态迁移
1 要求
1 确保两台主机均启用了libvirtd 服务
2 迁移的平台和版本符合兼容性要求
3 正确配置防火墙,允许所需端口的通信
4 两个主机在相同的虚拟网络
5 如果是共享存储,建议在两个主机上的mount 路径一致
2 基于共享存储的动态迁移
1 NFS 服务器配置存储
创建vm 并挂载:
rw : 读写
all_squash: 将远程访问的所有普通用户及组都映射为匿名用户或者用户组
no_all_squash: 与all_squash 相关
sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
2 进行远端挂载生效
3 修改配置文件和迁移磁盘到共享存储
4 使用图形化界面进行迁移
临时迁移的意思是在源主机上保留相应的配置
源主机配置文件
如果选择不可靠的,则在进行迁移时磁盘产生的缓存在没有被刷新到磁盘上时提示已经成功,此时可能会造成一定的损失,但其性能好。生产中建议使用none
5 virsh migrate 命令在线迁移虚拟机
迁移相关参数
--live 表示在线迁移
--unsafe 表示允许不可靠迁移
--persistent 表示永久迁移
--UNdefinesource
6 其他相关方式迁移
1 可指定专门的URI进行迁移
virsh migrate rhel7.3 qemu+ssh://root@server6/system \
--migrateuri tcp://192.168.1.60 --live --persistent --undefinesource
2 p2p 的迁移方式
3 --direct
不支持qemu 必须是Xen
4 --tunnelled (必须同时使用--p2p参数)
隧道式的迁移,是隧道之间的迁移使用,必须使用SSH认证
3 基于本机存储的动态迁移
1 无共享存储的必要条件
一 使用virsh 的 --copy-storage-all
二 需要有实时存储迁移(块迁移)支持
1 标准的RHEL/CentOS7的qemu-kvm 不支持
2 ovirt 或 RHEV 支持
centos 7.2 必须安装一下两个包
yum -y install centos-release-qemu-ev
yum -y install qemu-kvm-ev
三 虚拟机要在存储池中
2 使图形化界面进行虚拟机的迁移
注 :由此可知,直接迁移因为其磁盘文件不能同步而导致迁移失败,可进行手工迁移实验
3 命令行方式迁移
A 安装相关虚拟迁移需要软件包,并重启服务器
[qemu-kvm-rhev]
name=Virt rebuilds of qemu-kvm-rhev
baseurl=http://resources.ovirt.org/pub/ovirt-3.5/rpm/el7Server/
mirrorlist=http://resources.ovirt.org/pub/yum-repo/mirrorlist-ovirt-3.5-el7Server
enabled=1
skip_if_unavailable=1
gpgcheck=0
B 创建相关资源池
C 迁移并进行测试
转载于:https://blog.51cto.com/11233559/2311004