Bootstrap

部署KVM虚拟化平台

一、KVM简介:

KVM是Kernel Virtual Machine 的简写,目前Linux发行版必须在64位的系统环境才能运行KVM,同时硬件需要支持VT技术。KVM自Linux 2,6.20版本后就直接整合到Linux内核.它依托CPU虚拟化指令集(如intel-VT.AMD-V)实现高性能的虚拟化支持。由于与Linux内核高度整合.因此在性能.安全性.兼容性.稳定性上都有很好的表现。

二、搭建knm虚拟化平台:

(1)在CentOS的系统光盘镜像中.已经提供了安装KVM所需软件。通过部署基于光盘镜像的本地yum源.直接使用yum 安装所需软件即可,安装KVM所需软件具体包含以下几个。

(2)验证。重启系统后,查看CPU是否支持虚拟化.对于Intel的服务器可以通过以下命令查看,只要有输出就说明CPU支持虚拟化:AMD服务器可用cat/proc/cpuinfo / grep smv命令查看.

[root@localhost ~]# cat /proc/cpuinfo | grep vmx

检查kvm模块是否安装 

[root@localhost ~]# lsmod | grep kvm

开启服务。安装完成后还需要开启libvirtd 服务,以开启相关支持.

[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd

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

这里以 Bridge(桥接)为例。

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ec3f7fc0-e496-470b-a134-ae36b8f8bc7d
DEVICE=ens33
ONBOOT=no
BRIDGE=br0

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.254

重启network服务:

[root@localhost ~]# /etc/init.d/network restart 

3.kvm管理 :

[root@localhost ~]# virt-manager   #进入虚拟系统管理器

virt-manager是基于libvirt的图像化虚拟机管理软件。请注意,不同的发行版上virt-manager 的版本可能不同.图形界面和操作方法也可能不同。本章使用了CentOS 7.3。创建KVM虚拟机最简单的方法是通过virt-manager接口。从控制台窗口启动这个工具,以root 身份输入“virt-manager”命令。 

 

 (1)创建存储池,双击“QEMU/KVM”,选择“存储”选项卡,然后单击“+”按钮新建存储池。单击“前进”按钮,根据提示输入或浏览用以设置存储目录,如/data_kvm/store,最后单击“完成”按钮即可。

用上面的方法我们创建2个存储池 bdqn-ios(储存需要安装的镜像 )bdqn(安装镜像的储存池 )

 (2)回到虚拟系统管理器。右击“QEMJ/KVM”,然后选择“新建”选项.在弹出的对话框中选择“本地安装介质”.然后单击“前进”按钮。单击“浏览”按钮选择镜像文件.再选择操作系统型及版本。

选择需要安装的镜像 (bdqn-ios)

选择安装位置 (bdqn)

 在“引导选项”视图中勾选“主机引导时启动虚拟机”复选框.这样在物理宿主机启动后.这个VM也会启动,最后单击“应用”按钮,开始安装。

三、使用kvm命令集管理虚拟机:

3.1 kvm基本功能管理:

[root@localhost ~]# virsh -h  ##查看帮助

[root@localhost ~]# ls /etc/libvirt/qemu  ##查看kvm配置文件存放目录 

[root@localhost ~]# virsh list --all  ##查看虚拟机状态 

[root@localhost ~]# virsh shutdown rhel7.1  ##关闭虚拟机 
域 rhel7.1 被关闭

[root@localhost ~]# virsh start rhel7.1  ##启动虚拟机 
域 rhel7.1 已开始

[root@localhost ~]# virsh destroy rhel7.1  ##强制关闭虚拟机 

[root@localhost ~]# virsh suspend rhel7.1   ##挂起虚拟机 

[root@localhost ~]# virsh resume rhel7.1   ##重启虚拟机

[root@localhost ~]# virsh autostart rhel7.1  ##配置开机自启动 
上述命令将创建/etc/libvirt/ qemu/ autostart/目录.目录内容为开机自动启动的系统。
[root@localhost ~]# virsh dumpxml rhel7.1 > /etc/libvirt/qemu/rhl7.2  ##导出虚拟机配置 

3.2虚拟机的删除和添加: 

[root@localhost ~]# virsh shutdown rhel7.1
[root@localhost ~]# virsh undefine rhel7.1

查看删除结果,test01的配置文件被删除,但是磁盘文件不会被删除,

查看虚拟机rhel7.1的状态:

 

 通过备份的配置文件重新定义虚拟机:

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# mv rhl7.2 rhl7.2.xml 

 重新定义虚拟机:

[root@localhost qemu]# virsh define rhl7.2.xml

查看状态:

3.3、虚拟机快照
        KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2

1)对rhel7.1创建快照

[root@localhost ~]# virsh snapshot-create rhel7.1

已生成域快照 1704355792
2)查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current rhel7.1
<domainsnapshot>
  <name>1704355792</name>  //快照版本号
  <state>shutoff</state>  //关机状态下的快照

3)查看快照信息

[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态
------------------------------------------------------------
 1704355792           2024-01-04 16:09:52 +0800 shutoff

4)创建新快照

[root@localhost ~]# virsh snapshot-create rhel7.2
已生成域快照 1704355880

5)查看快照信息

[root@localhost ~]# virsh snapshot-create rhel7.1
已生成域快照 1704356048
[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态
------------------------------------------------------------
 1704355792           2024-01-04 16:09:52 +0800 shutoff
 1704356048           2024-01-04 16:14:08 +0800 shutoff

6)将虚拟机开机,恢复虚拟机状态至1704355792(关机状态)

[root@localhost ~]# virsh start rhel7.1 
域 rhel7.1 已开始
 
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 20    rhel7.1                        running
 
[root@localhost ~]# virsh snapshot-revert rhel7.1 1704355792
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
       rhel7.1                        关闭

7)查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current rhel7.1
<domainsnapshot>
  <name>1704355792</name>  //快照版本号
  <state>shutoff</state>  //关机状态下的快照

8)删除快照

[root@localhost ~]# virsh snapshot-delete rhel7.1 1704355792
已删除域快照 1704355792
 
[root@localhost ~]# virsh snapshot-delete rhel7.1 1704356048
已删除域快照 1704356048
 
[root@localhost ~]# virsh snapshot-list rhel7.1
 名称               生成时间              状态


 


 

;