Bootstrap

2. KVM虚拟化部署实践上:环境部署和vrit-manager图形化安装虚拟机

宿主机:本次实验采用VMware创建的CentOS系统作为宿主机使用
也可以实际物理机作为宿主机

一、虚拟化环境部署1:虚拟化环境检查

1. 部署KVM虚拟化的宿主机要求(最低)

Host system requirements
1核心
2G内存
6G硬盘
KVM安装Linux虚拟机如CentOS 7,那么宿主机可用硬盘至少6G,如果还需要尝试安装Windows虚拟机,那可用硬盘需要20G。总之,在允许的条件下内存和硬盘越大越好。

2. 检查宿主机是否支持虚拟化

KVM hypervisor requirements

[root@localhost ~]# lscpu

在这里插入图片描述
通过lscpu查看是否支持虚拟化,出现VT-x(或AMD -V)表示支持。如果未出现,宿主机为实际计算机,则需要进入bios修改;宿主机为VMware创建的虚拟机,则需要在虚拟机设置中按下图勾选虚拟化选项
在这里插入图片描述

3. 查看svm和vmx特性,两者都是虚拟化技术

[root@localhost ~]# egrep 'svm|vmx' /proc/cpuinfo

出现"flags: "的内容,且说明中包含vmx/smx则表示支持,两核则有两个flags

4. 查看kvm模块

[root@localhost ~]# lsmod | grep kvm

在这里插入图片描述

二、虚拟化环境部署2:虚拟化软件组安装

1. 查看环境分组

[root@localhost ~]# yum grouplist

在未安装虚拟化软件组之前,可以看到在可用环境分组里面有一个虚拟化主机(Virtulization Host),提供kvm虚拟机支持,包括libvirtd服务等,除此之外,还有"Virtualization Client" "Virtualization Platform"等
在这里插入图片描述

2. 安装虚拟化主机软件组

[root@localhost ~]# yum -y groupinstall "Virtualization Host"

中文下可用yum -y groupinstall “虚拟化*”

3. 虚拟化主机验证

[root@localhost ~]#systemctl restart libvirtd
[root@localhost ~]#systemctl status libvirtd
[root@localhost ~]#lsmod | grep kvm
如果kvm模块没有加载,可以使用“modprobe kvm”手动加载

在这里插入图片描述

4. 防火墙设置,使将来安装的虚拟机具有网络功能

在设置之前,可以用 firewall-cmd --list-all 查看防火墙设置,一般活动域是public,其中有一项为masquerade为关闭状态,需要通过以下命令将其打开

[root@localhost ~]# firewall-cmd --zone=public --permanent --add-masquerade
[root@localhost ~]# firewall-cmd –reload

5. 检查虚拟化的网络配置

[root@localhost ~]#ip address show

将看到多出一张网卡virbr0,virbr0-nic是它的网络接口
在这里插入图片描述
至此,前期准备完成
补充知识:NAT,Bridge、virbr0、masquerade
以一台宿主机和若干虚拟机为背景假设,KVM有两种网络模型,分别是nat网络模式和bridge网络模式
nat网络模式:虚拟机就像一台独立的计算机,可以访问网内的任意计算机。虚拟机网卡和物理网卡的ip地址处于同一网段,有相同的子网掩码、网关、DNS参数等。原理是将虚拟网卡桥接到宿主机物理网卡上,物理网卡设置为混杂模式,可以监听多个ip地址。这种模式下,虚拟机和宿主机在网络关系上是平等的
bridge网络模式:虚拟机将宿主机作为路由器进行上网。虚拟机通过NAT(网络地址转换)功能,依赖于宿主机的网络进行上网,不需要配置掩码等
virbr0:virbr0是一种虚拟网卡。当启用libvirtd服务后宿主机上会生成一个virtual network swith(virbr0)。宿主机上的所有虚拟机都需要通过virbr0连接起来实现上网功能。virbr0默认使用nat模式,采用ip masquerade
masquerade:是snat的特例,实现自动化的snat。snat是指源地址目标转换,它将源地址替换成路由器的ip地址。在nat模式下,虚拟机经过masquerade转换为宿主机(路由器)的ip地址上网

三、KVM虚拟机安装(virt-manager安装)

virt-manager使用libvirtd的接口,从而管理kvm-qemu,进而管理虚拟机
virsh与virt-manager类似,但virt-manager是图形化界面安装,更容易上手,virsh是命令行安装,更常用

补充知识:虚拟化驱动IDE和virtio
virtio:虚拟化I/O,用于实现设备半虚拟化,能够提高设备访问性能。它运行在虚拟机中的部分称为前端驱动,负责对虚拟机提供统一的接口,运行在宿主机中的部分称为后端驱动,负责适配不同的物理硬件设备。支持热插拔(在系统运行过程中,运行增加内存等设备)。
IDE:全虚拟化驱动。不支持热插拔
virtio的“半虚拟化”省去了“全虚拟化”中异常捕获的环节,在IO性能上有所提升,使用的前提是客户机支持virtio驱动。
CentOS是默认集成了virtio,但window默认是IDE。后者性能差一些

经过前面的部署,宿主机已经具备了kvm虚拟化条件,下面将以kvm-qemu方式在宿主机上部署虚拟机
如果没有安装virt-manager工具,需要先安装一下

yum install -y virt-manager

然后打开virt-manager图形化工具界面

virt-manager

注意,如果需要使用virt-manager,那么宿主机应当具备图形化功能。以VMware安装的Centos 7作为宿主机为例,该宿主机在安装时应选择Gnome Desktop。纯字符界面(命令行)操作系统打开virt-manager时会报错或无反应。纯字符界面可以通过virsh安装虚拟机

1. virt-manager安装CentOS 7虚拟机(半虚拟化驱动)

前提条件:
宿主机上事先下载好CentOS 7的iso镜像
虚拟机所需内存2G
虚拟机所需磁盘6G

在这里插入图片描述
安装方式分别为:a. 本地安装介质(ISO映像或光驱);b. 网络安装,可为HTTP、FTP或者NFS;
c. 网络引导(PXE);d. 导入现有磁盘映像:云主机是导入现有磁盘映像
在这里插入图片描述
点击“Browse…”选择事先下载好的iso镜像
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的设置可以随意点,后面安装虚拟机前有一个自定义界面,在那里进行确认和修改
在这里插入图片描述
在这里插入图片描述
点击Finish进入自定义界面
在这里插入图片描述
内存(Memory):可设置最大内存,增加灵活性。按自己需求设置
引导选项(Boot Option):不改动。如果安装时不小心勾选了“启动引导菜单”致使进不去系统,可以尝试关闭虚拟机中止安装,并勾选“启动引导菜单”和“IDE COROM 1”选项,并在安装完成重启时去掉这两个选项
VirtIO磁盘1(VirtIO Disk 1):虚拟磁盘的路径,默认在/lib/var/libvirt/images/xxxx-qcow2,qcow2表示qemu管理的设备。在这里可以选择半虚拟化驱动或全虚拟化驱动(高级选项),CentOS默认半虚拟化驱动virtio,不用修改
IDE CDROM 1:光盘,这里的磁盘总线“IDE”不要改动
NIC:虚拟网络接口,连接到virbr0网卡。网络源:Virtual network ‘default’:NAT。设备型号,e1000和rtl8139都是全虚拟化驱动,这里选择默认的半虚拟化驱动virtio
Tablet:数位板。
Display Spice(显示协议Spice)Spice服务器为VNC服务器,端口默认从5900开始分配,即勾选“自动”。最好不设置密码。VNC服务器是远程控制服务器。键映射选择en-us

标红部分为需要特别注意,或者需要修改的部分

安装界面如下:
在这里插入图片描述

2. virt-manager安装Windows虚拟机(全虚拟化驱动)

前提条件:
宿主机上事先下载好windows的iso镜像,本次实验使用Windows_Server_2008_R2_VL_x64_CN_2018.04.iso
虚拟机所需内存推荐8G,本次实验采用4G
虚拟机所需磁盘推荐40G,本次实验采用20G

  1. 创建虚拟机
    在到达自定义安装界面前,与安装CentOS 7相同,只是在第二步选择iso镜像时注意选择windows的iso镜像并选择操作系统版本。另外安装windows虚拟机需要设置更大的内存和硬盘
    在这里插入图片描述
    在这里插入图片描述
  2. 重点在于自定义安装界面
    CPU和内存(Memory)的设置可根据自己虚拟机情况设置。这里设置CPU的Current allocation为1,Maximum allocation为2;内存的Current allocation为4096,Maximum allocation为6144(宿主机为8G)
    主要以下界面的设置需要特别注意
    NIC涉及网络,e1000为全虚拟化模式。
    在这里插入图片描述
    在这里插入图片描述
    随后就可以进行安装界面了
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. virt-manager安装Windows虚拟机(半虚拟化驱动)

Linux默认为半虚拟化安装,Windows则默认为全虚拟化安装,后者性能更低
Windows要实现半虚拟化安装,需要额外安装驱动程序
鉴于步骤繁多,于是单独用另一篇博客记录了如何安装半虚拟化驱动下的Windows虚拟机,详见:
https://blog.csdn.net/widsoor/article/details/126613628

补充:更换磁盘镜像文件安装目录(可略)

这里补充一个更换磁盘镜像安装地点的方式,如果目的文件夹存储够,可以不用更换
所创建的磁盘镜像默认安装在 /var/lib/libvirt/images 目录下,如果该目录存储不够,而其他目录例如/home目录下存储较大,那么可以更改虚拟机的磁盘安装位置

先创建好要存储的目录,如mkdir /home/windowsimages,然后以安装windows虚拟机为例,当达到创建虚拟机的第四步,设置磁盘镜像时

  1. 选择Select or create custom storage -> Manage)
    在这里插入图片描述
  2. 创建存储池
    在这里插入图片描述在这里插入图片描述
    点击Finish,就可以看到存储池中多了新建的存储
    在这里插入图片描述
  3. 添加卷,设置磁盘映像
    选中刚刚创建的存储池windowsimagesdir之后,再点击 + 号添加卷
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    剩下的与前面的创建步骤一致
;