5.虚拟化技术(二)
文章目录
- 虚拟化技术
- 一、KVM基础使用方法
- KVM图形界面使用
- 1.图形界面调出KVM图形界面
- 2.命令行调出KVM图形界面
- 1. 查询命令
- 2. 控制虚拟机命令
- 3.KVM创建虚拟机安装系统
- 3.1 命令行创建虚拟机(图形化安装系统)
- 3.2 命令行创建虚拟机(VNC安装系统)
- 4.思考题
- 三、虚拟机热迁移
- 概念
- 技术特点
- 使用场景
- 实验
- 四、虚拟化软件分类
- 1型虚拟化(裸金属虚拟化)
- 2型虚拟化(宿主型虚拟化)
- 混合型虚拟化
- 2型虚拟化(宿主型虚拟化)
- 混合型虚拟化
虚拟化技术
一、KVM基础使用方法
KVM图形界面使用
1.图形界面调出KVM图形界面

2.命令行调出KVM图形界面
virt-manager
1. 查询命令
# 查看KVM是否支持
virsh version# 查看正在运行虚拟机列表
virsh list# 查看所有状态虚拟机列表
virsh list --all# 查看随宿主机一起开机的虚拟机列表
virsh list --autostart# 查看虚拟机详细信息
virsh dominfo <虚拟机名称># 查看虚拟网络
virsh net-list --all# 查看存储池
virsh pool-list --all# 查看虚拟机配置文件
virsh dumpxml <虚拟机名称># 查看虚拟机配置的cpu数量
virsh vcpucount --active <虚拟机名称>
2. 控制虚拟机命令
# 启动虚拟机
virsh start <虚拟机名称># 关闭虚拟机
virsh shutdown <虚拟机名称># 强制关闭
virsh destroy <虚拟机名称># 重启虚拟机
virsh reboot <虚拟机名称># 暂停虚拟机
virsh suspend <虚拟机名称># 恢复虚拟机
virsh resume <虚拟机名称># 设置开机自启
virsh autostart <虚拟机名称># 取消开机自启
virsh autostart --disable <虚拟机名称># 修改虚拟机配置文件
virsh edit <虚拟机名称>
3.KVM创建虚拟机安装系统
3.1 命令行创建虚拟机(图形化安装系统)
[root@KVM1 ~]# cd /var/lib/libvirt/images/
# 默认磁盘存放目录[root@KVM1 images]# qmeu-img create -f qcow2 vm2.qcow2 20G
# 给虚拟机vm2创建硬盘
[root@KVM1 images]# qemu-img info vm2.qcow2
# 显示创建出来的新的虚拟机硬盘# 使用virt-install创建虚拟机
# 先将系统镜像准备好
[root@KVM1 ~]# mkdir /iso
# /iso 存放系统镜像# 前面已经给VM2创建过磁盘,但是我不用,我想试下不在默认目录创建磁盘
[root@KVM1 ~]# mkdir /disk
[root@KVM1 ~]# qmeu-img create -f qcow2 /disk/vm2.qcow2 20G[root@KVM1 ~]# virt-install --name vm2 --memory 2048 --vcpus 1 --disk path=/disk/vm2.qcow2 --location /iso/CentOS-7-x86_64-Minimal-1810.iso --network network=default --noautoconsole#--name 指定虚拟机名字
#--memory 指定虚拟机内存
#--vcpus 指定虚拟机的CPU数量
#--disk path 指定虚拟机的磁盘位置
#--location 指定光盘镜像的位置
#--network 指定网络,KVM默认有个网络名为default的NAT网络[root@KVM1 ~]# virsh list
# 查看创建的vm2
# 然后打开虚拟机使用图形化安装系统
注意:不在默认磁盘位置创建磁盘也可以给虚拟机创建磁盘
3.2 命令行创建虚拟机(VNC安装系统)
[root@KVM1 ~]# qmeu-img create -f qcow2 /disk/vm3.qcow2 20G[root@KVM1 ~]# virt-install --name vm3 --memory 2048 --vcpus 1 --disk path=/disk/vm3.qcow2 --location /iso/CentOS-7-x86_64-Minimal-1810.iso --network network=default --noautoconsole --vnclisten=0.0.0.0 --vncport=5903 --vnc#--vnclisten 设置VNC监听地址所有地址
#--vncport=5903 宿主机监听到5093的VNC请求,转到vm3虚拟机上[root@KVM1 ~]# systemctl stop firewalld.service
# 通过VNC连接进行系统安装
4.思考题
如何使用命令行的方式,给vm3拍摄快照,还原快照?
解答:
请务必确认虚拟机vm3的磁盘格式,因为只有qcow2格式的磁盘才支持快照功能
| 操作 | 命令 | 关键注意点 |
|---|---|---|
| 检查磁盘格式 | qemu-img info /path/to/vm3_disk.qcow2 | 确认"file format"为qcow2。 |
| 创建快照 | virsh snapshot-create-as vm3 <snapshot-name> | 可为快照命名,便于后续管理。 |
| 查看快照列表 | virsh snapshot-list vm3 | 查看所有已创建的快照。 |
| 恢复快照 | virsh snapshot-revert vm3 <snapshot-name> | 强烈建议在虚拟机关机状态下操作。 |
| 删除快照 | virsh snapshot-delete vm3 <snapshot-name> | 删除不再需要的快照以释放空间。 |
-
检查虚拟机磁盘格式
# 找到虚拟机的磁盘文件 virsh domblklist vm3 # 检测磁盘文件个格式 qemu-img info /path/to/vm3.qcow2 -
创建快照
virsh snapshot-create-as vm3 <snapshot-name>snapshot-name 快照名称
-
恢复快照
virsh snapshot-revert vm3 <snapshot-name> -
删除快照
virsh snapshot-delete vm3 <snapshot-name>
三、虚拟机热迁移
概念
虚拟机热迁移(Live Migration)是指在虚拟机运行状态下,将其从一台物理主机迁移到另一台物理主机,且在整个迁移过程中虚拟机服务不中断。

技术特点
必要条件:
- 共享存储(NFS、iSCSI、SAN等)
- 相同或兼容的CPU架构
- 足够的网络带宽
- 目标主机有足够的资源
迁移原理:
- 目的主机上创建同规格虚拟机
- 通过迭代迁移将内存数据迁移到目的主机
- 暂停源主机,目标主机拉起
使用场景
- 负载均衡:将虚拟机从负载高的主机迁移到负载低的主机
- 硬件维护:在不中断服务的情况下进行硬件维护
- 节能:合并虚拟机到少数主机,关闭空闲主机
- 故障预防:预测到硬件故障前迁移虚拟机
实验
环境配置
创建三台虚拟机KVM1,KVM2,NFS,需要CPU支持虚拟化

修改主机名和IP地址
NFS:
hostnamectl set-hostname NFSvim /etc/sysconfig/network-scripts/ifcfg-ens160TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=eui64NAME=ens160#UUID=3b58adc4-7bfb-4ce7-bdc5-7893a708ebb3 #UUID这行删掉DEVICE=ens160ONBOOT=yesIPADDR=192.168.108.100 PREFIX=24GATEWAY=192.168.108.2
nmcli connection reload ens160 KVM1:
hostnamectl set-hostname KVM1vim /etc/sysconfig/network-scripts/ifcfg-ens160TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=eui64NAME=ens160#UUID=3b58adc4-7bfb-4ce7-bdc5-7893a708ebb3 #UUID这行删掉DEVICE=ens160ONBOOT=yesIPADDR=192.168.108.101 PREFIX=24GATEWAY=192.168.108.2
nmcli connection reload ens160 KVM2:
hostnamectl set-hostname KVM2vim /etc/sysconfig/network-scripts/ifcfg-ens160TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=eui64NAME=ens160#UUID=3b58adc4-7bfb-4ce7-bdc5-7893a708ebb3 #UUID这行删掉DEVICE=ens160ONBOOT=yesIPADDR=192.168.108.102 PREFIX=24GATEWAY=192.168.108.2
nmcli connection reload ens160
三个节点配置相同的hosts文件
echo << 'EOF' >> /etc/hosts
192.168.108.100 NFS
192.168.108.101 KVM1
192.168.108.102 KVM2
EOF
创建共享存储:
NFS
mkdir /nfs
vim /etc/exports/nfs *(rw,no_root_squash,no_subtree_check)
#用于共享的目录
#第一列:/nfs共享出去的目录
#第二列:*代表允许所有网段访问
#rw: 挂载此目录的客户端对该共享目录具有读写权限
#sync:资料同步写入内存和磁盘
#no_root_squash:客户机用root访问该共享文件夹时,不映射root用户,root_squash:客户机用root访问该共享文件夹时,将root用户映射成匿名用户
#no_subtree_check:不检查父目录权限systemctl restart nfs-server.service
# 本地测试NFS共享成功没有
showmount -e localhost# 关闭防火墙在KVM1,KVM2测试是否能访问共享目录
systemctl stop firewalld.serviceKVM1:
showmount -e 192.168.108.100
KVM1,KVM2分别创建/NFS目录用于挂载NFS的/nfs目录
[root@KVM1 ~]# mkdir /NFS
[root@KVM2 ~]# mkdir /NFS
KVM1:
命令行输入virt-manager 调出KVM图形化界面
将KVM2添加到KVM1中

修改两个KVM名字

KVM1和KVM2添加共享存储NFS,先操作KVM1




KVM2同样的操作
上传CentOS镜像到KVM1,KVM1使用共享存储创建虚拟机
安装过程正常操作,中间选择共享存储NFS


正常安装虚拟机,虚拟机安装完成后,重启时会自动弹出光盘
开始迁移
开启KVM1-2
关闭KVM1-2的防火墙
调出KVM1的KVM图形化界面



可以看见虚拟机从KVM1跑到KVM2中
四、虚拟化软件分类
1型虚拟化(裸金属虚拟化)
特点:
- 直接安装在物理硬件上
- 不需要宿主操作系统
- 性能接近物理机
- 资源利用率高
代表产品:
- VMware ESXi:企业级虚拟化平台
- Microsoft Hyper-V:Windows服务器虚拟化
- Citrix Hypervisor:企业级虚拟化解决方案
- KVM:基于Linux内核的虚拟化(严格来说属于混合型)
优势:
- 高性能
- 高安全性
- 资源开销小
- 适合生产环境
2型虚拟化(宿主型虚拟化)
特点:
- 安装在宿主操作系统之上
- 作为应用程序运行
- 性能有一定损耗
- 安装和使用简单
代表产品:
- VMware Workstation:桌面虚拟化
- Oracle VirtualBox:开源桌面虚拟化
- Parallels Desktop:Mac平台虚拟化
- QEMU:开源模拟器
优势:
- 安装配置简单
- 兼容性好
- 适合开发和测试
- 功能丰富
混合型虚拟化
特点:
- 结合了1型和2型的优点
- 通过内核模块实现虚拟化功能
代表产品:
- KVM:通过Linux内核模块实现
- Xen:支持半虚拟化和全虚拟化
格来说属于混合型)
优势:
- 高性能
- 高安全性
- 资源开销小
- 适合生产环境
2型虚拟化(宿主型虚拟化)
特点:
- 安装在宿主操作系统之上
- 作为应用程序运行
- 性能有一定损耗
- 安装和使用简单
代表产品:
- VMware Workstation:桌面虚拟化
- Oracle VirtualBox:开源桌面虚拟化
- Parallels Desktop:Mac平台虚拟化
- QEMU:开源模拟器
优势:
- 安装配置简单
- 兼容性好
- 适合开发和测试
- 功能丰富
混合型虚拟化
特点:
- 结合了1型和2型的优点
- 通过内核模块实现虚拟化功能
代表产品:
- KVM:通过Linux内核模块实现
- Xen:支持半虚拟化和全虚拟化
