Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了部署及管理KVM虚拟化平台大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在Windows系统下部署虚拟化可以采用Hyper-V、vSphere虚拟化技术,那么在Linux系统下就需要使用到——KVM。 KVM依托CPU虚拟化指令集,实现高性能的虚拟化支持。由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。 在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合,可以灵活
在Windows系统下部署虚拟化可以采用Hyper-V、vSphere虚拟化技术,那么在Linux系统下就需要使用到——KVM。

KVM依托cpu虚拟化指令集,实现高性能的虚拟化支持。由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。

在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合,可以灵活地实现资源的分配及管理。如图:

部署及管理KVM虚拟化平台

在Linux系统下部署KVM虚拟化,必须开启cpu虚拟化支持

一、安装KVM及相应的管理工具

(1)安装KVM及所需软件

[[email protected] ~]# yum groupinstall -y "GNOME Desktop"
//安装GNOME桌面环境
[[email protected] ~]# yum -y install qemu-kvm
//安装KVM模块
[[email protected] ~]# yum -y install qemu-kvm-tools
//安装KVM调试工具(可以不安装)
[[email protected] ~]# yum -y install virt-install
//安装构建虚拟机的命令行工具
[[email protected] ~]# yum -y install qemu-img
//安装qemu组件,创建磁盘、启动虚拟机等
[[email protected] ~]# yum -y install bridge-utils
//安装网络支持工具
[[email protected] ~]# yum -y install libvirt
//安装虚拟机管理工具
[[email protected] ~]# yum -y install virt-manager
//安装图形界面管理虚拟机

(2)验证cpu是否支持虚拟化

[[email protected] ~]# cat /proc/cpuinfo | grep vmx
//Intel服务器使用这条命令进行验证(有输出就表示支持虚拟化)
[[email protected] ~]# cat /proc/cpuinfo | grep smv
//AMD服务器使用这条命令进行验证

(3)检查KVM模块是否安装

[[email protected] ~]# lsmod | grep kvm
//表示已经安装
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm

(4)启动libvirtd服务,开启相应的支持

[[email protected] ~]# systemctl start libvirtd
[[email protected] ~]# systemctl enable libvirtd

二、设置KVM网络

宿主服务器安装完成KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法:NAT和Bridge。(认是NAT)

关于两种模式的说明:

1.用户模式:及NAT方式,这种方式时认网络,数据包由NAT方式通过主机的接口进行转送,可以访问外网,但是无法从外部访问虚拟机网络;

2.桥接模式:这种模式允许虚拟机可以像一台主机一样拥有网络,外部网络可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持

以Bridge(桥接模式)为例:

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-br0
//将网卡的配置文件复制一份,命名为br0
[[email protected] network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none                                   //不获取IP地址
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
UUID=431fe077-8089-4503-95a5-6eb6236a8c00
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0                                     //桥接到br0网卡上
[[email protected] network-scripts]# vim ifcfg-br0
TYPE=Bridge                                   //类型改为桥接模式
BOOTPROTO=static                        //静态获取IP地址
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                                //修改网卡名称及设备名称,(UUID一行必须删除)
ONBOOT=yes
IPADDR=192.168.1.1
[[email protected] ~]# systemctl restart network
//重新启动网卡服务
[[email protected] ~]# ifconfig
//确认网卡信息
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::5a86:eff9:cdb9:c746  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:00:11:89  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 808 (808.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 25  bytes 3727 (3.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,MULTICAST>  mtu 1500
        ether 00:0c:29:00:11:89  txqueuelen 1000  (Ethernet)
        RX packets 15  bytes 3627 (3.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 25  bytes 3751 (3.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

三、KVM管理

[[email protected] ~]# mkdir -p /data_kvm/store
//创建一个用于虚拟机存储池的目录
[[email protected] ~]# mkdir -p /data_kvm/iso
//创建一个用于镜像存储池的目录
[[email protected] ~]# virt-manager 
//使用图形界面管理KVM

(1)创建存储池

部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


以同样的方式再次创建一个用于存放镜像的存储池!

(2)创建存储卷

部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台

(3)上传系统镜像,创建虚拟机

[[email protected] ~]# cp /dev/cdrom /data_kvm/iso/centos7.iso

部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


@H_419_125@


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


部署及管理KVM虚拟化平台


接下来就跟证常安装操作系统一样,安装完成系统之后,可以设置IP地址,自行测试,与外部网络是否能够通信!

至此,KVM已经已经部署完成!

管理KVM虚拟机两种方式:
1.图形化管理;
2.使用命令进行管理

关于图形化管理,简单易懂,这里就不多做介绍了。

主要讲解一下管理KVM虚拟机的常用命令:

[[email protected] ~]# virsh -h 
//查看命令帮助
[[email protected] ~]# ls /etc/libvirt/qemu 
//查看KVM的配置文件存放目录
networks  test01.xml
(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                   
//删除快照

大佬总结

以上是大佬教程为你收集整理的部署及管理KVM虚拟化平台全部内容,希望文章能够帮你解决部署及管理KVM虚拟化平台所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: