目录
一、KVM简介
KVM(Kernel-based Virtual Machine) 是一种基于Linux内核的开源虚拟化技术,可将Linux内核转变为支持全虚拟化的Hypervisor。它通过硬件辅助虚拟化技术(如Intel VT-x/AMD-V)直接在物理机上运行多个未经修改的虚拟机,为云计算、服务器整合和开发测试等场景提供高效的虚拟化支持。
核心特性:
- 原生集成:作为Linux内核模块(kvm.ko)实现,与内核共享资源调度和内存管理机制
- 高性能:利用CPU硬件虚拟化扩展,虚拟机性能损耗可低至3%以内
- 多平台支持:兼容x86、ARM、PowerPC等架构,可运行Windows、Linux等主流操作系统
- 动态资源分配:支持CPU热添加、内存气球(Memory Ballooning)等实时资源调整技术
- 生态完善:与QEMU协作提供设备模拟,通过libvirt实现统一管理(如virt-manager工具)
KVM网络模型:
- NAT模式:使用NAT模式,就是让虚拟机借助NAT(网络地址转换)功能,通过宿主机所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。NAT方式的适用范围桌面主机虚拟化,不适用于服务器虚拟化。
- Bridge模式:桥接模式是使用比较多的模式,它使虚拟机拥有自己的独立网卡和IP,然后通过借用宿主机的网卡对外连接网络。它把宿主机的网卡当作了一种桥,通过这个桥连接外网的世界。在这种模式下,可以简单的理解成虚拟机和宿主机是两个不同的机器,有独立IP可以相互访问。对于虚拟机的IP获取,一般可以手动配置也可以通过DHCP获取得到。桥接模式下客户机与宿主机处于同一网络环境,类似于一台真实的宿主机,直接访问网络资源,设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式适用于服务器虚拟化
3、host-only模式:也叫隔离模式,意思就是将所有的虚拟机组成一个局域网,不能和外界通信,不能访问Internet,其他主机也不能访问虚拟主机,安全性高。 如何配置桥接网络
典型应用场景:
- 私有云基础架构:OpenStack+KVM构建企业级laaS平台
- 开发测试环境:快速克隆虚拟机模板(qcow2差分镜像)
- 边缘计算:轻量化KVM+Libvirt管理边缘节点(<1GB内存占用)
- 安全隔离:QEMU沙箱模式运行不可信代码
二、安装KVM组件
2.1、安装KVM前提
在BIOS需要开启虚拟机支持
2.2、KVM管理工具
Virt-manager 图形化管理工具
Virsh 命令行管理工具
Virt-clone 克隆工具
Virt-install 安装工具
2.3KVM安装
2.3.1安装KVM组件
执行如下命令进行安装:
yum install libvirt* qemu* virt-manager -y
#博主这里用的是麒麟官方的镜像源
2.3.2启动服务并设置开启自启
启动服务:
systemctl start libvirtd
设置开机自启动:
systemctl enable libvirtd
三、创建&管理虚拟机
3.1创建虚拟机
在终端执行virt-manager打开KVM图形化管理工具
virt-manager
3.2安装过程
3.2.1选择安装方式
这里选择本地安装 点击文件–>新建虚拟机–>选择本地安装介质–>前进。如下图所示。
3.2.2选择安装iso文件
点击浏览,选择对应的iso镜像>前进。
3.2.3选择分配给虚拟机的内存和cpu
我这里分配8G(1024×8)
3.2.4配置存储
方式一:为虚拟机启用存储–>为虚拟机创建磁盘镜像(设置磁盘空间大小,默认的存储路径为/var/lib/libvirt/images)–>前进;
方式二:为虚拟机启用存储–>选择或创建自定义存储–>管理–>选择default存储池–>添加卷(设置卷名,卷大小,磁盘格式)–>选择卷–>前进;
这里类似与VMware里面的虚拟机存放位置
下面示例采用方式二的来进行配置:
3.2.5设置虚拟机名称以及网络
虚拟机名称:Ky-D
存储选择在安装前自定义配置
网络选择:选择实际生产使用的网卡,并设置桥接。这样虚拟机就能在物理网络被访问了
注意:Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。
3.2.6安装前配置
(1)添加硬件–输入–通用USB Keyboard,不添加键盘无法使用。如下图6所示;
(2)添加硬件–输入–通用EvTouch USB图形数位板,不添加鼠标无法使用。图下图6所示;
(3)添加硬件–图形–类型选择Spice服务
3.2.7开始安装
点击开始安装,即可进入到系统安装引导界面
根据安装引导来进行系统安装,具体步骤略....
四、虚拟机创建快照
快照可以把虚拟机某个时间点磁盘文件状态保存为一个镜像文件。通过这个镜像文件,可以在以后的任何时间快速恢复虚拟机在当时创建snapshot的状态,这个在使用虚拟机来做测试的时候很有用。
3.1、创建快照的前提
- kvm虚拟机的raw格式磁盘文件不支持快照功能,在创建快照前需要先转换为qcow2格式
- 基于磁盘创建快照的话,需要虚拟机是关机状态
本文采用基于磁盘创建快照
查询磁盘格式:
[root@tclk-arm ~]# qemu-img info /var/lib/libvirt/images/Ky-D.qcow2
image: /var/lib/libvirt/images/Ky-D.qcow2
file format: qcow2
virtual size: 512 GiB (549755813888 bytes)
disk size: 8.96 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
转换磁盘格式:
# 从raw格式转成qcow2格式
# qemu-img convert -f raw -O qcow2 Ky-D.raw Ky-D.qcow2
3.2、创建虚拟机快照
- 创建快照
创建快照名为“jichu”
qemu-img snapshot -c jichu /var/lib/libvirt/images/Ky-D.qcow2
- 查看虚拟机快照列表
[root@tclk-arm ~]# qemu-img snapshot -l /var/lib/libvirt/images/Ky-D.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 jichu 0 B 2025-04-03 15:05:13 00:00:00.000
3.3、恢复快照
恢复到“jichu”快照
qemu-img snapshot -a jichu /var/lib/libvirt/images/Ky-D.qcow2
3.4、删除快照
删除"jichu"快照
qemu-img snapshot -d jichu /var/lib/libvirt/images/Ky-D.qcow2
五、虚拟机增加硬盘
实际生产环境中,经常会碰到服务器磁盘空间不够使用的问题,kvm就支持给虚拟机动态的增加磁盘而不用重启服务器
5.1、选择对应的虚拟机
这里点击对应的虚拟机>然后点击编辑>虚拟机详情
5.2、添加硬件
添加硬件>存储>配置对应的硬盘后,点击完成
等待创建完成
5.3、验证
登录对应的服务器执行fdisk -l查询磁盘
[root@Ky-d ~]# fdisk -l
Disk /dev/vda:512 GiB,549755813888 字节,1073741824 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:5AEB9FE3-E097-4708-8138-C2E0AD266BDD
设备 起点 末尾 扇区 大小 类型
/dev/vda1 2048 1230847 1228800 600M EFI 系统
/dev/vda2 1230848 3327999 2097152 1G Linux 文件系统
/dev/vda3 3328000 1073739775 1070411776 510.4G Linux LVM
Disk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节