一.概述
1.为什么使用kvm呢?
解决部分linux服务器利用率不高,为充分利用linux服务器。
2.kvm虚拟化架构
kvm模块直接整合在linux内核中(为原生架构),不在内核就是寄生架构。
3.KVM三种运行模式
(1)客户模式(客户就是你的虚拟机)
客户模式:可以简单理解成客户机在操作系统中运行的模式,客户模式又分为用户模式和内核模式。
(1.1)用户模式
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu运行在这模式下
(1.2)内核模式(模拟cpu,内存等)
模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。KVM内核模块运行在这个模式下。
4.KVM工作原理
用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVM Driver为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAUNCH指令进入客户模式,装载GuestOS并运行。GuestOS运行过程中如果发生中断或者影子缺页等异常,将暂停GuestOS的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要IO则处理完成后重新进入客户模式。如果需要O则进入到用户模式,由Qemu来处理O,处理完成后进入内核模式,再进入客户模式,工作原理如图
二.案例搭建KVM虚拟化平台(带桌面的Linux)
1.安装
(1)安装KM所需软件
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager
yum -y install libguestfs-tools
备注:
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支持虚拟化
打开处理器设置,在虚拟化引擎界面勾选相对于的选项。
再次开机之久验证,服务器是否支持虚拟化,如果有内容显示表示开启了CPU的虚拟引擎。命令如下:
[root@kvm01 ~]# cat /proc/cpuinfo | grep vmx
[root@kvm01 ~]# lsmod | grep kvm
(3)开启libvietd服务(最后啊设置开机自启)
[root@kvm01 ~]# systemctl start libvirtd
[root@kvm01 ~]# systemctl enable libvirtd
2.设置KVM网络
这里以Bridge(桥接)为例进行操作演示
[root@kvm01 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm01 network-scripts]# cp ifcfg-ens33 ifcfg-br0
[root@kvm01 ~]# vim ifcfg-ens33
在里面添加一行
BRIDGE=br0
[root@kvm01 ~]# vim ifcfg-br0
修改类型
TYPE=Bridge
修改名称
NAME=br0
DEVICE=br0
修改完成后重启网络,重启完成后就可以进行下一步的虚拟机创建
systemctl restart network
3.KVM管理
以root用户身份输入命令virt-manager进入图像化虚拟机管理软件(本文以Centos 7.3 为例)。
(1)创建存储池
双击QEMU/KVM,选择“存储”选项卡,然后单击“+按钮新建存储池。单击“前进按钮,根据提示输入或浏览用以设置存储目录,如/data_kym/store,最后单击“完成按钮即可。
(2)创建卷
在henanxiaoman的存储池中添加存储卷
存储卷名称为:test01
(3)创建镜像存储池
把镜像文件上传到服务器的目录中,这里将其放到/opt/