KVM三种工作模式
客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下
用户模式:用户执行I/O代码,QEMU运行在这个模式下
内核模式:CPU调度和内存管理相关
KVM工作原理
用户模式的 Qemu 利用接口 libkvm 通过 ioct 系统调用进入内核模式。KVM Driver 为虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAUNCH 指令进入客户模式,装载 GuestOS 并运行。Guest OS 运行过程中如果发生中断或者影子缺页等异常,将暂停Guest OS的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要 I/0 则处理完成后重新进入客户模式。如果需要 I/0 则进入到用户模式,由 Qemu 来处理 I/0,处理完成后进入内核模式,再进入客户模式。
本案例实验环境
主机 | . 操作系统 | IP地址 | 主要软件 |
kvm01 | CentOS 7.9 x86_64 | 192.168.10.108 | KVM 虚拟机 |
kvm02 | CentOS 7.9 x86_64 | 192.168.10.109 |
案例需求
(1)安装KVM。
(2)完成基本的KVM 操作管理(创建、启动、停止等)。
(3)完成KVM 命令行操作虚拟机。
案例实现思路
(1)准备KVM 装环境。
(2)安装KVM。
(3)配置KVM 桥接网络。
(4)创建KVM 存储池并安装虚拟机。
(5)命令行操作虚拟机。
搭建KVM 虚拟化平台
准备kvm 虚拟化环境
1.安装
(1)YUM 安装KVM
备注:
qemu-kvm :kvm核心包–虚拟操作系统模拟器加速模块
qemu-kvm-tools :qemu-kvm的工具包
virt-install:虚拟机安装工具
qemu-img :是QEMU的磁盘管理工具
bridge-utils:虚拟机与外界通信的命令管理工具
libvirt:必须要装的核心工具
virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远程控制则不需要)
QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。
QEMU(Quick Emulator)快速仿真器
libguestfs-tools:用于访问虚拟机的磁盘映像文件提供的一组命令
(2)关机,设置CPU支持虚拟化,然后开机
(3)开机后验证
(4)开启libvirtd 服务
安装完成后还需要开启libvirtd 服务,以开启相关支持。
2.设置KVM 网络
这里以Bridge(桥接)为例进行操作演示
3.KVM 管理
(1)创建存储池
存储池的名称为:bdqn
存储池的目录为:/data_kvm/store
(2)创建存储卷
在bdqn的存储池中添加存储卷
存储卷名称为:test01
卷最大容量10G
(3)将Linux系统的ISO文件拷贝到/opt目录下,并关闭存储设置
(4)在kvm01的主机上新建虚拟机,名称为test01
使用KVM 命令集管理虚拟机
1:KVM 基本功能管理
(1)查看命令帮助
(2)查看KVM 的配置文件存放目录
(3)查看虚拟机状态
(4)虚拟机关机与开机
(5)强制实例系统关闭电源
(6)通过配置文件启动虚拟机系统实例
(7)挂起虚拟机
(8)恢复虚拟机
(9)配置虚拟机实例伴随宿主机自动启动
(10)导出虚拟机配置
(11)虚拟机的删除与添加
删除虚拟机
查看删除结果,test01 的配置文件被删除,但是磁盘文件不会被删除。
通过virsh list --all 查看不到test01 的信息,说明此虚拟机被删除。
通过备份的配置文件重新定义虚拟机。
重新定义虚拟机。
(12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
直接通过vim 命令修改
通过virsh 命令修改。
3. KVM 文件管理
(1)查看当前磁盘格式
(2)virt-cat 命令,类似于cat 命令
使用这个命令需要安装libguestfs-tools-c 工具包。
(3)virt-edit 命令
virt-edit 命令,用于编辑文件,用法与vim 基本一致。
(4)virt-df 命令
virt-df 命令用于查看虚拟机磁盘信息。
4. 虚拟机克隆
(1)查看虚拟机状态
(2)从test01 克隆test02
(3)查看虚拟机状态
(4)启动虚拟机
5. 虚拟机快照
KVM 虚拟机要使用镜像功能,磁盘格式必须为qcow2。下面介绍KVM 虚拟机快照备份的过程。
(1)对test01 创建快照
已生成域快照1503494464
(2)查看虚拟机快照版本信息
(3)查看快照信息
(4)创建新快照