冷迁移就是把虚拟机磁盘文件
传到KVM2
机器上,然后生成该虚拟机的配置文件
,启动这个虚拟机
。
冷迁移到缺点:
KVM虚拟机迁移过程中,迁移VM
的磁盘文件
,这个过程是耗时最长
的。
热迁移就是将VM的磁盘文件
放在共享存储服务器
中,这样就省略了传虚拟机实例磁盘文件
的过程,不需要VM关机
即可完成热迁移
。
热迁移前提条件
:
最少
一台共享存储服务器
NFS服务器
https://blog.csdn.net/omaidb/article/details/120926883
## /data 共享的目录
## 允许访问的网段10.0.0.0/24
## rw 允许读写
## async 数据延迟落盘,async相比sync性能要高一些
## no_root_squash 客户端使用root用户连接NFS时,依然映射为root用户
/data 10.0.0.0/24(rw,async,no_root_squash)
# 重启NFS服务端以使配置生效
# 重启rpcbind服务
systemctl restart rpcbind
# 重启nfs服务
systemctl restart nfs
# KVM服务器上安装NFS客户端
yum install -y nfs-utils
# 验证NFS是否可被export和挂载
## -d:仅显示已被NFS客户端加载的目录;
## -e:显示NFS服务器上所有的共享目录。
showmount -e 10.0.0.31
# 将nfs挂载写入/etc/fstab中持久挂载
## _netdev,防止客户端在网络就绪之前开始挂载文件系统
echo "10.0.0.31:/data /opt defaults,_netdev 0 0" >> /etc/fstab
# 自动挂载/etc/fstab
mount -a
2
台KVM服务器
,且环境要一致hosts
和ssh免密
libvirt
服务桥接网卡
NFS
客户端,KVM服务器
挂载共享存储
VM磁盘文
件存放在共享存储
上# 在KVM1上在NFS创建一个测试文件
echo "test1" > /opt/test.txt
# 在KVM2确认是否能查看到这个文件
ls /opt/test.txt
cat /opt/test.txt
KVM1
上创建一台VM,指定磁盘文件为NFS共享存储路径
## --virt-type 指定虚拟化类型
## --os-type=linux 指定操作系统类型
## --os-variant 指定操作系统版本
## --name 指定vm实例名称
## --memory 指定内存大小单位MB
### maxmemory=2048 最大可用内存,扩容时不能超过这个数值
## --vcpus 指定cpu核数
### maxvcpus=10 最大使用CPU核数,扩容时不能超过这个数值
## --disk 指定vm实例的磁盘路径
### format=raw,size=10 指定磁盘格式为raw,磁盘大小10GB
## --cdrom 系统安装光盘文件的路径
## network 指定网络类型,默认是NAT模式
## graphics vnc 把图形画面交给vnc的服务端来输出
### listen=0.0.0.0 vnc服务器监听的IP地址
virt-install \
--virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name vm名称 \
--memory 512,maxmemory=2048 \
--vcpus 1,maxvcpus=10 \
--disk /opt/centos3.qcow2 \
--boot hd
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial' \
--noautoconsole
https://www.qstack.com.cn/archives/368.html
注意,参数指定的路径
要kvm
用户有读写权限
才可以正常创建。
## --virt-type 指定虚拟化类型
## --os-type=linux 指定操作系统类型
## --os-variant 指定操作系统版本
## --name 指定vm实例名称
## --memory 指定内存大小单位MB
### maxmemory=2048 最大可用内存,为共享资源
## --vcpus 指定cpu核数
### maxvcpus=10 最大使用CPU核数,为共享资源
## --disk 指定vm实例的磁盘路径
### format=raw,size=10 指定磁盘格式为raw,磁盘大小10GB
## --cdrom 系统安装光盘文件的路径
## network 指定网络类型,默认是NAT模式
## graphics vnc 把图形画面交给vnc的服务端来输出
### listen=0.0.0.0 vnc服务器监听的IP地址
virt-install \
--virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name vm名称 \
--memory 512,maxmemory=2048 \
--vcpus 1,maxvcpus=10 \
--disk /opt/centos3.qcow2 \
--boot hd
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial' \
--noautoconsole
在kvm
上查看这台虚拟机是否已创建
# KVM1上查看虚拟机列表
virsh list --all
# KVM2上查看虚拟机列表
virsh list --all
## kvm2的VM列表应该为空
# 执行热迁移
## --live VM活动时迁移(热迁移)
## --verbose 详细信息
## qemu+ssh 调用libvirt协议(固定写法)
## --unsafe 热迁移默认要求VM实例不能设置缓存,不加该参数无法迁移
virsh migrate --live --verbose 虚拟机名称 qemu+ssh://10.0.0.12/system --unsafe
# 或
virsh migrate --live --verbose 虚拟机名称 qemu+ssh://kvm2/system --unsafe
# KVM1上查看VM列表
virsh list
# KVM2上查看VM列表
virsh list
# 执行热迁移
## --live VM活动时迁移(热迁移)
## --verbose 详细信息
## qemu+ssh 调用libvirt协议(固定写法)
## --unsafe 热迁移默认要求VM实例不能设置缓存,不加该参数无法迁移
virsh migrate --live --verbose 虚拟机名称 qemu+ssh://10.0.0.12/system
# 执行热迁移
## --live VM活动时迁移(热迁移)
## --verbose 详细信息
## qemu+ssh 调用libvirt协议(固定写法)
## --unsafe 热迁移默认要求VM实例不能设置缓存,不加该参数无法迁移
virsh migrate --live --verbose 虚拟机名称 qemu+ssh://10.0.0.12/system --unsafe