centos7部署KVM虚拟化平台详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7部署KVM虚拟化平台详解相关的知识,希望对你有一定的参考价值。

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持。它与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。
在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下:

技术图片

话不多说,开始搭建KVM虚拟化平台:

1、安装:

[[email protected] media]# yum -y groupinstall "GNOME Desktop"          #安装GNOME桌面环境
[[email protected] media]# yum -y install qemu-kvm               #KVM模块
[[email protected] media]# yum -y install qemu-kvm-tools             #KVM调试工具,可不安装
[[email protected] media]# yum -y install virt-install                     #构建虚拟机的命令行工具
[[email protected] media]# yum -y install qemu-img          #qemu组件,创建磁盘、启动虚拟机等
[[email protected] media]# yum -y install bridge-utils               #网络支持工具
[[email protected] media]# yum -y install libvirt                #虚拟机管理工具
[[email protected] media]# yum -y install virt-manager             #图形界面管理虚拟机
[[email protected] media]# yum -y install libguestfs-tools             #用来管理虚拟机磁盘格式
[[email protected] ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
#将系统默认运行的target更改为graphical.target,若不执行该命令,重启时可能会报错。

2、安装完毕后,需重启系统,执行下面命令对系统进行检查:

[[email protected] ~]# cat /proc/cpuinfo | grep vmx                
#查看Intel的CPU是否支持虚拟化,若是AMD的CPU,需 “cat /proc/cpuinfo | grep  smv”
[[email protected] ~]# lsmod | grep kvm                   #检查KVM模块是否安装
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm
[[email protected] ~]# systemctl start libvirtd           #启动libvirtd服务
[[email protected] ~]# systemctl enable libvirtd

3、设置KVM网络:

在libvirt中运行KVM网络有两种方法:NAT和Bridge,默认是NAT。
关于两种模式的说明如下:
(1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络,所以一般不会用到。
(2)Bridge:也就是桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

我这里以Bridge(桥接模式)为例:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

TYPE=Ethernet
BOOTPROTO=none                 #将这项改为none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0             #添加该行,若有UUID的配置项,建议删除。

#将网卡ens33的文件复制一份改名为br0
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 

TYPE=Bridge             #将type改为Bridge
BOOTPROTO=static             #这里根据实际情况改为static或dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0              #改名字
DEVICE=br0              #改名字
ONBOOT=yes
IPADDR=192.168.1.1              #该ip将为宿主机的IP地址
GATEWAY=192.168.1.254

[[email protected] ~]# systemctl restart network              #重启网络服务
[[email protected] ~]# ifconfig           #确认IP地址信息

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::db0f:ab79:54a1:241b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1a:e0:46  txqueuelen 1000  (Ethernet)
        RX packets 50  bytes 4155 (4.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58  bytes 7046 (6.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:1a:e0:46  txqueuelen 1000  (Ethernet)
        RX packets 1062  bytes 95264 (93.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 688  bytes 81579 (79.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4、管理KVM:

[[email protected] /]# virt-manager      #打开图形管理软件,执行该命令后出现以下界面

技术图片

创建存储池:
技术图片

技术图片技术图片

再以同样的操作创建一个iso镜像存储池,完成后如下:

技术图片

创建存储卷:
技术图片

完成后,如下点击来创建虚拟机:
[[email protected] ~]# cp /dev/cdrom /kvm/iso/centos7.iso #先复制光盘镜像到指定目录下

技术图片

技术图片
技术图片
技术图片

根据需求给硬件资源:

技术图片

创建自定义存储:

技术图片

技术图片

定义虚拟机名称,并单击“完成”:
技术图片

单击“完成”后,会自动弹出该虚拟机的窗口,安装系统吧,这里和平时安装系统一样,就省略了:

技术图片

KVM虚拟化平台至此已部署完成,下面附加一些常用的管理命令:

[[email protected] ~]# virsh -h                #查看命令帮助
[[email protected] ~]# ls /etc/libvirt/qemu               #查看KVM的配置文件存放目录
(test01.xml是虚拟机系统实例的配置文件)
networks  test01.xml
[[email protected] ~]# virsh list --all               #查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 2     test01                         running

[[email protected] ~]# virsh shutdown test01              #关闭虚拟机
[[email protected] ~]# virsh start test01                       #开启虚拟机
[[email protected] ~]# virsh destroy test01                 #强制关机
[[email protected] ~]# virsh create /etc/libvirt/qemu/test01.xml             #通过配置文件启动虚拟机
[[email protected] ~]# virsh suspend test01                 #挂起虚拟机
[[email protected] ~]# virsh resume test01                  #从挂起状态恢复运行虚拟机
[[email protected] ~]# virsh autostart test01                 #设置虚拟机伴随宿主机自动启动

#虚拟机的删除与添加:
[[email protected] ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml            #导出虚拟机配置
#删除虚拟机:
[[email protected] ~]# virsh  shutdown test01   
[[email protected] ~]# virsh  undefine test01
[[email protected] ~]# virsh list --all             #查看虚拟机是否被删除
 Id    名称                         状态
----------------------------------------------------

#通过备份的配置文件重新定义虚拟机:
[[email protected] ~]# cd /etc/libvirt/qemu/
[[email protected] qemu]# mv test02.xml test01.xml 
[[email protected] qemu]# virsh define test01.xml

 #修改虚拟机配置(内存大小等)信息:
 [[email protected] qemu]# vim /etc/libvirt/qemu/test01.xml 

[[email protected] qemu]# virt-df -h test01         #在宿主机上查看虚拟机磁盘信息

克隆虚拟机:

[[email protected] qemu]# virt-clone -o test01 -n test02 -f /kvm/store/test02.qcow2
#将test01克隆为test02
[[email protected] qemu]# virsh list --all                 #查看现有虚拟机
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 -     test02                         关闭

虚拟机创建快照:
KVM虚拟机要使用快照功能,磁盘格式必须为qcow2

[[email protected] qemu]# virsh snapshot-create test01      #对虚拟机test01创建快照
[[email protected] qemu]# virsh snapshot-list test01                   #查看快照信息
 名称               生成时间              状态
------------------------------------------------------------
 1560191837           2019-06-11 02:37:17 +0800 shutoff
[[email protected] qemu]# virsh snapshot-revert test01 1560191837
#恢复虚拟机状态至1560191837
[[email protected] qemu]# virsh snapshot-delete test01 1560191837                   #删除快照

以上是关于centos7部署KVM虚拟化平台详解的主要内容,如果未能解决你的问题,请参考以下文章

Centos7 部署KVM虚拟化平台

在CentOS7系统上部署KVM虚拟化平台

centos7上部署oVirt平台管理kvm

CentOS7上部署KVM虚拟化平台

在CentOS7上部署KVM虚拟化平台

VMware平台部署KVM网络无法通信