部署及管理KVM虚拟化平台
在Windows系统下部署虚拟化可以采用Hyper-V、vSphere虚拟化技术,那么在Linux系统下就需要使用到——KVM。
KVM依托CPU虚拟化指令集,实现高性能的虚拟化支持。由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。 在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合,可以灵活地实现资源的分配及管理。如图: 在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)创建存储池 以同样的方式再次创建一个用于存放镜像的存储池! (2)创建存储卷 (3)上传系统镜像,创建虚拟机 [[email?protected] ~]# cp /dev/cdrom /data_kvm/iso/centos7.iso 接下来就跟证常安装操作系统一样,安装完成系统之后,可以设置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 关闭 虚拟机创建快照: [[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 //删除快照 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |