本文主要是介绍KVM 高级功能部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
虚拟机迁移
应用场景
宿主机负载比较高时,可迁移走部分虚拟机
迁移虚拟机集中于一台,节约资源
升级宿主机硬件时,可先迁移走再进行升级
可实现跨地域的远程迁移
虚拟机迁移
静态迁移:造成一端时间的服务停机
动态迁移:不中断服务
基于共享存储的动态迁移
基于数据块的动态迁移
当传输速度大于数据变化量的时候适用,否则不适用
虚拟机优化:KSM内核同页合并
相同内存页合并为单一内存页,并标识为“写时复制”
KSM开启后,CPU使用量会有一定的提高
不同虚拟机的相同类型操作系统或应用,有助于实现KSM
适用KSM要保证有足够的交换分区
部署虚拟机迁移
1.基础环境(4h4G)
2. 在第一台和第二台机器上开启虚拟化在进行开机
#查看cpu是否支持虚拟化,前提必须开启虚拟化
cat /proc/cpuinfo | grep svm
3.在两台kvm01 kvm02节点操作(部署虚拟机)
1.切换yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2.下载虚拟化的包
yum -y install qemu-kvm qemu-kvm-tools qemu-img bridge-utils libvirt virt-install virt-manager virt-viewersystemctl start libvirtd
systemctl enable libvirtd
3.在宿主机上安装vnc的工具包(用来远程管理最小化的虚拟机)
4.配置网卡
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-ens33
vi /etc/sysconfig/network-scripts/ifcfg-br0
重启网络服务(可能会终端ssh的连接,重新查网卡,重新连接即可)
systemctl restart network
配置完后,ens33是没有IP的,br0会具有IP
5.创建存放镜像的镜像目录
mkdir -p /data/{iso,store}
6.上传镜像到所创建的目录中
4.kvm01中安装虚拟机
virt-install --name test01 -r 1024 --vcpus=1 --disk path=/data/store/test01.qcow2,size=10 -w bridge:br0 --virt-type=kvm --accelerate --autostart -c /data/iso/CentOS-7-x86_64-DVD-2207-02.iso --vnc --vncport=5901 --vnclisten=0.0.0.0
#--virt-type=kvm 不能开启虚拟化的功能,要删除这段
#-n 指定名字
#-r 指定内存大小
#--vcpus 指定虚拟CPU个数
#--disk 指定磁盘文件存放位置及大小
#-w 指定所使用的网桥
#--autostart 设置虚拟机在宿主机开机时启动
#--accelerate 内核加速
#-c 指定镜像文件
#--vncport 通过VNC Viewere连接的端口
#--vnclisten 通过VNC Viewere连接的IP
1.打开vnc点击
2.填写自己的IP,如图 点击ok
3.双击打开,勾选选项,点击continue,会显示图形界面,按步骤安装即可
4.安装完成后点击重启,在xshell中查看状态,如果是关闭的,开启即可
virsh list --all
5.完成后,进入vnc中,双击打开,即可看小化界面
6.打开vnc,给新建的最小化虚拟机配置个IP
5.测试kvm01迁移到kvm02中(静态迁移)
1.在kvm01中关闭新建最小化虚拟机
2. 在kvm01中生成配置文件,查询映像文件
3.在kvm01中推送映像文件
# 拷贝配置文件和磁盘文件到目标宿主机kvm02上面scp test01.xml 192.168.27.153:/etc/libvirt/qemu/ scp /data/store/test01.qcow2 192.168.27.153:/data/store/
4.等待kvm传输完成后打开kvm02开始静态迁移
6.删除虚拟机(在第二台虚拟机取消定义虚拟机)
关闭虚拟机后,取消定义
virsh undefine test01
7.动态迁移
1.在所有机器上安装nfs
yum -y install nfs-utils
2.在第三台机器上配置共享目录
mkdir /data
echo "/data 192.168.27.0/24(rw,sync,no_root_squash,no_all_squash)" > /etc/exports
#rw 读写访问
#sync 所有数据在请求时写入
#no_root_squash root用户具有根目录的完全访问权限
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemctl enable rpcbind
# 查看一下本地可挂载的目录
showmount -e localhost
3.切换kvm01节点,传输文件到kvmnfs机器
scp /data/store/test01.qcow2 192.168.27.154:/data/
4.在kvm01 kvm02中挂载共享目录
mount -t nfs 192.168.27.154:/data/ /data/store/
确保每个机器/data/store/下都有 test01.qcow2这个文件后,在kvm1中启动虚拟机
virsh start test01
5.开始动态迁移
1.查询kvm01节点中的新建的虚拟机的IP,在kvmnfs节点ping这个IP
ping 192.168.27.156
2.在kvm01节点中开始迁移
virsh migrate --live --verbose test01 qemu+ssh://192.168.27.153/system tcp://192.168.27.153 --unsafe
在这过程中,在kvmnfs节点中的ping命令可以观察到,请求时间很长,甚至可能超时连接 3.在第二台机器中生成配置文件()
virsh dumpxml test01 > /etc/libvirt/qemu/test01.xml
virsh define /etc/libvirt/qemu/test01.xml
这篇关于KVM 高级功能部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!