KVM学习笔记(虚拟机迁移)
1、虚拟机迁移概述
libvirt有两种迁移方案,方案1:在Hypervisor层直接进行迁移。方案2:由libvirt之间建立隧道来进行迁移。
第一种由控制节点管理程序来统一控制
第二种由管理程序通知迁移节点libvirt,迁移节点libvirt控制迁移过程
第三种由管理程序通知迁移节点Hyperv,迁移节点Hyperv控制迁移过程,libvirt不参与迁移
2、URI统一资源标识符
virsh和libvirt使用URI来连接远程宿主机
格式:
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
示例:
qemu://hostname/
xen://hostname/
xen+ssh://hostname/
qemu+ssh://username@hostname/
使用URI来连接远程的virsh
virsh -c URI
- 两台宿主机都启动了libvirtd服务
- 迁移的平台和版本符合兼容性要求
- 防火墙方通所需端口
- 两个宿主机在相同的虚拟网络下
- 如果是共享存储,建议两个宿主机上的mount路径一致
4、静态迁移
同一宿主机内部迁移
更改虚拟机配置文件source字段的存储位置即可
文件拷贝命令rsync
本地拷贝
rsync [OPTION...] SRC... [DEST]
通过远程shell拷贝Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
通过远程rysnc进程拷贝
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
常用参数
-a --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-v --verbose 详细模式输出。
-S --sparse 对稀疏文件进行特殊处理以节省DST的空间。
-H --hard-links 保留硬链结。
-P --progress 显示备份过程。
迁移虚拟机磁盘文件
migrate <domain> <desturi> [--live] [--offline].....
参数解释
--live live migration
--offline offline migration
--persistent persist VM on destination
--persistent persist VM on destination
5.1 在存储服务器上准备好文件夹
virsh edit <domain>
配置防火墙,放通迁移用的端口
firewall-cmd --add-port=16509/tcp --permanent
firewall-cmd --add-port=49152-49215/tcp --permanent
firewall-cmd --reload
安装openssh-askpass包(可选)
5.3 使用命令迁移虚拟机
启动虚拟机后,使用migrate命令进行迁移virsh # migrate Centos6b --desturi qemu+ssh://root@kvm-1/system --live --persistent --undefinesource --unsafe
参数解释
--live live migration
--unsafe force migration even if it may be unsafe 虚机磁盘的cache模式不是none模式,则在数据写盘的时候可能在cache中,还没落盘存在脏数据,迁移时造成数据丢失。使用--unsafe模式可以强制迁移。否则只能迁移cache模式是none模式的虚机。
--persistent persist VM on destination
--undefinesource undefine VM on source
--migrateuri <string> migration URI, usually can be omitted exp:tcp://hostname:port 当迁移地址和kvm管理地址不一致时,用于指定迁移地址
migrate命令参数图
6、无共享存储迁移
无共享存储时,除了迁移配置文件,需要同时迁移磁盘文件。
标准RHEL/CentOS7自带的qemu-kvm不支持无共享存储的迁移。oVirt或RHEV支持,需要安装增强版的软件包。
安装如下两个软件包:
yum -y install centos-release-qemu-ev 安装扩展的软件仓库
yum -y install qemu-kvm-ev 安装增强型软件包,将原有软件替换成ev版本
安装好软件包后,ev版的kvm支持--copy-storage参数
--copy-storage-all 全量迁移 migration with non-shared storage with full disk copy
--copy-storage-inc 增量迁移 migration with non-shared storage with incremental copy (same base image shared between source and destination)
这种类型的迁移基于存储池,虚拟机磁盘所在的存储池必须在源和目的宿主机上同时存在,否则会报错。
migrate --domain Centos6b --desturi qemu+ssh://root@kvm-2/system --live --persistent --copy-storage-all --unsafe --undefinesource
评论
发表评论