第1章 KVM简介及环境
1.1 KVM介绍
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
因为对进程管理比较麻烦,RedHat发布了一个开源项目libvirt。libvirt有命令行工具也有API,可以通过图形化界面,完成对虚拟机的管理。大多数管理平台通过libvirt来完成对KVM虚拟机的管理;比如Openstack、Cloudstack、OpenNebula等。
1.2 虚拟化概念
1.软件模拟
优点:能够模拟任何硬件,包括不存在的
缺点:功能非常低效,一般用于研究,生产环境不同。
代表:QEM
2.虚拟化层翻译
2.1 软件全虚拟化----VMware
2.2 半虚拟化----改动虚拟机的内核(linux)xen(被淘汰)
2.3 硬件支持的全虚拟化----KVM
3.容器虚拟化 docker
4.虚拟化分类
1.硬件虚拟化 硬件虚拟化代表:KVM
2.软件虚拟化 软件虚拟化代表:Qemu
提示:硬件虚拟化是需要CPU支持,如果CPU不支持将无法创建KVM虚拟机。Qemu和KVM的最大区别就是,如果一台物理机内存直接4G,创建一个vm虚拟机分配内存分4G,在创建一个还可以分4G。支持超配,但是qemu不支持
1.3 QEMU与KVM
QUME十一个开源项目,实际就是一台硬件模拟器,可以模拟许多硬件,包括X86架构处理器、AMD64架构处理器等。
QEMU的优点是因为是纯软件模拟,所以可以在支持的平台模拟支持的设备。缺点是因为纯软件模拟,所以非常慢。
KVM只是一个内核模块,只能提供CPU和内存;所以还需要QEMU模拟IO设备;如磁盘、网卡等。
1.4 Libvirt与KVM
Libvirt是一套开源的虚拟化管理工具,主要由3部分组成。
l 一套API的lib库,支持主流的编程语言,包括C、Python、Ruby等
l Libvirt服务
l 命令行工具virsh
Libvirt可以实现对虚拟机的管理,比如虚拟机的创建、启动、关闭、暂停、恢复、迁移、销毁,以及对虚拟网卡、硬盘、CPU、内存等多种设备的热添加、
第2章 KVM安装
2.1 环境准备
2.1.1 硬件环境
虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V
创建虚拟机步骤
1.准备虚拟机硬盘
2.需要系统iso镜像
3.需要安装一个vnc的客户端来连接
2.1.2 系统环境
[root@ CentOS7-200 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@ CentOS7-200 ~]# uname -r 3.10.0-514.el7.x86_64 [root@ CentOS7-200 ~]# getenforce Disabled [root@ CentOS7-200 ~]# systemctl stop firewalld.service
l 检查CPU是否支持虚拟化
vmx ##(for Intel CPU)
svm ##(for AMD CPU)
KVM其实已经在Centos7内置到系统内核,无需安装。
[root@ CentOS7-200 ~]# egrep -o '(vmx|svm)' /proc/cpuinfo vmx [root@ CentOS7-200 ~]# grep -E '(vmx|svm)' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tscarch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep
l 检查CPU是否开启虚拟化
在linux平台下,我们可以通过dmesg |grep kvm命令来查看。
如果CPU没有开启虚拟化的话,显示如下:
l 安装kvm用户态模块
yum list|grep kvm qemu-kvm.x86_64 10:1.5.3-141.el7_4.6 @updates qemu-kvm-common.x86_64 10:1.5.3-141.el7_4.6 @updates qemu-kvm-tools.x86_64 10:1.5.3-141.el7_4.6 @updates libvirt-daemon-kvm.x86_64 3.2.0-14.el7_4.9 updates oci-kvm-hook.x86_64 0.3-1.el7 epel pcp-pmda-kvm.x86_64 3.11.8-7.el7 base [root@ CentOS7-200 ~]# yum install qemu-kvm qemu-kvm-tools libvirt -y
libvirt 用来管理kvm
kvm属于内核态,不需要安装。但是需要一些类似于依赖的
l 启动libvirt
systemctl start libvirtd.service systemctl enable libvirtd.service
启动之后我们可以使用ifconfig进行查看,libvirtd已经为我们安装了一个桥接网卡
[root@ CentOS7-200 ~]# ip a 5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 52:54:00:a5:70:e9 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
libvirtd为我们启动了一个dnsmasqp,这个主要是用来dhcp连接的,这个工具会给我们的虚拟机分配IP地址
[root@ CentOS7-200 ~]# ps -ef|grep dns nobody 8153 1 0 10:02 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper root 8154 8153 0 10:02 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
l 关闭selinux和防火墙
2.2 创建虚拟机
2.2.1 查看磁盘空间大小
最好是20G以上
[root@ CentOS7-200 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 28G 14G 15G 50% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 8.7M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 1014M 121M 894M 12% /boot tmpfs 394M 0 394M 0% /run/user/0
2.2.2 上传镜像
提示:如果使用rz上传镜像可能会出现错误,所以我们使用dd命令,复制系统的镜像。只需要挂载上光盘即可。
[root@ CentOS7-200 ~]# cd /opt/ [root@ CentOS7-200 opt]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-Minimal-1810.iso
2.2.3 创建磁盘
提示: qemu-img软件包是我们安装qemu-kvm-tools 依赖给安装上的
[root@ CentOS7-200 opt]# qemu-img create -f qcow2 /opt/c73.qcow2 6G Formatting '/opt/c73.qcow2', fmt=qcow2 size=6442450944 encryption=off cluster_size=65536 lazy_refcounts=off [root@ CentOS7-200 opt]# ll total 4277444 -rw-r--r-- 1 root root 4379901952 Apr 24 14:42 CentOS-7-x86_64-Minimal-1810.iso -rw-r--r-- 1 root root 197120 Apr 24 14:43 c73.qcow2
-f 制定虚拟机格式
/opt/Centos 存放路径
6G 代表镜像大小
磁盘格式介绍
raw----裸磁盘不支持快照
qcow2----支持快照。Openstack使用的方式推荐使用这个。注意:关闭虚拟机后操作。
区别:
全镜像格式(典型代表raw),特点:设置多大就是多大,写入速度快,方便转换其他格式,性能最优,但是占用空间大。
稀疏格式(典型代表qcow2),其特点:支持压缩、快照、镜像,更小的存储空间(即用多少占多少)
qcow2 数据的基本组成单元是cluster
raw性能比qcow2快
raw创建多大磁盘,就占用多大空间直接分配,qcow2动态的用多大占用多大空间。
2.2.4 安装虚拟机
[root@ CentOS7-200 opt]# yum install -y virt-install [root@ CentOS7-200 opt]# virt-install --virt-type=kvm --name=c73 --vcpus=1 -r 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/opt/c73.qcow2,size=6,format=qcow2 默认连接端口是从5900开始的 [root@ CentOS7-200 opt]# virsh list Id Name State ---------------------------------------------------- 3 c73 running [root@ CentOS7-200 opt]# netstat -lntup|grep 5900 tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 8440/qemu-kvm
virt-install常用参数
- -n --name= 客户端虚拟机名称
- -r --ram= 客户端虚拟机分配的内存
- -u --uuid= 客户端UUID 默认不写时,系统会自动生成
- --vcpus= 客户端的vcpu个数
- -v --hvm 全虚拟化
- -p --paravirt 半虚拟化
- -l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
- --vnc 使用vnc ,另有--vnclient=监听的IP --vncport =VNC监听的端口
- -c --cdrom= 光驱 安装途径
- --disk= 使用不同选项作为磁盘使用安装介质
- -w NETWORK, --network=NETWORK 连接客户机到主机网络
- -s --file-size= 使用磁盘映像的大小 单位为GB
- -f --file= 作为磁盘映像使用的文件
- --cpuset=设置哪个物理CPU能够被虚拟机使用
- --os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
- --os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
- --host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
- --accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
- -x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
- --nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机
2.2.5 VNC连接创建好的虚拟机并安装系统
因为centos7 默认网卡发生改变,我们需要修改内核参数,使用ens33作为网卡
光标移动到Install CentOS
上
,按tab
键 输入net.ifnames=0 biosdevname=0
回车
注意:如果查看5900端口开启,但是VNC无法连接KVM虚拟机时,看下防火墙是否开启。创建的虚机用VNC连接时从默认端口5900开始,即虚机一:10.0.0.200:5900 虚机二:10.0.0200:5901
虚拟机安装完成后是关闭了,我们需要启动
[root@ CentOS7-200 opt]# virsh list --all Id Name State ---------------------------------------------------- - c73 shut off [root@ CentOS7-200 opt]# virsh start c73
#c73 是虚拟机的名字,是我们创建的时候定义的
常用的virsh管理命令
列出所有的虚拟机virsh list --all
显示虚拟机信息 virsh dominfo c73
列出ID为6的虚拟机名 virsh domname 6
显示虚拟机内存和cpu的使用情况 virt-top
关闭虚拟机 virsh shutdown c73
强制关闭虚拟机 virsh destroy c73
启动虚拟机 virsh start c73
设置虚拟机随系统自启 virsh autostart c73
关闭虚拟机随系统自启virsh autostart --disable c73
删除虚拟机virsh undefine c73
通过控制窗口登录虚拟机 virsh console c73
挂起$hostname虚拟机 virsh suspend c73
恢复挂起的虚拟机virsh resume c73
查看网卡配置信息virsh domiflist c73
查看该虚拟机的磁盘位置virsh domblklist c73
查看KVM虚拟机当前配置virsh dumpxml c73
2.2.6 KVM桥接配置
(建议先配置宿主机桥接网络→创建虚机)
在该模式下,宿主机会虚拟出来一张虚拟网卡作为宿主机本身的通信网卡,而宿主机的物理网卡则成为桥设备(交换机),所以虚拟机相当于在宿主机所在局域网内的一个单独的主机,他的行为和宿主机是同等地位的,没有依存关系。
安装好虚拟化组件(RHEL6.0之后,系统自带的均是KVM,已经没有XEN虚拟化的支持了),会自动生成一个virbr0这样的桥接设备
[root@ CentOS7-200 ~]# brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242e20b14dc no virbr0 8000.5254005f3794 yes virbr0-nic
Bridge设备其实就是网桥设备,也就相当于想在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备ens33配置成br0,此时br0就成为了所谓的交换机设备,我们物理机的ens33也是连接在上面的。
1. 查看物理机网卡设备信息
[root@ CentOS7-200 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:04:53:f6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.200/24 brd 10.0.0.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::3972:1692:8fab:33d4/64 scope link valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:04:53:00 brd ff:ff:ff:ff:ff:ff inet 172.16.1.200/24 brd 172.16.1.255 scope global ens37 valid_lft forever preferred_lft forever inet6 fe80::c754:24e2:801b:163/64 scope link valid_lft forever preferred_lft forever 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:e2:0b:14:dc brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever 5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 52:54:00:5f:37:94 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000 link/ether 52:54:00:5f:37:94 brd ff:ff:ff:ff:ff:ff
2.配置桥接设备br0
[root@ CentOS7-200 ~]# yum -y install bridge-utils
(1) 手动添加临时生效
[root@ CentOS7-200 ~]# brctl addbr br0 [root@ CentOS7-200 ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000000000000 no docker0 8000.0242e20b14dc no virbr0 8000.5254005f3794 yes virbr0-nic [root@ CentOS7-200 ~]# brctl addif br0 ens33 执行此步后,会导致xshell与宿主机断开连接,以下操作在宿主机完成. 删除ens33上面的ip地址,将br0上面添加上固定ip地址: [root@ CentOS7-200 ~]# ip addr del dev ens33 10.0.0.200/24 //删除ens33上的IP地址 [root@ CentOS7-200 ~]# ifconfig br0 10.0.0.200/24 up //配置br0的IP地址并启动设备 [root@ CentOS7-200 ~]# route add default gw 10.0.0.254 //重新加入默认网关 连接xshell查看是否生效 [root@ CentOS7-200 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 br0 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 172.16.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 [root@ CentOS7-200 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000 link/ether 00:0c:29:04:53:f6 brd ff:ff:ff:ff:ff:ff inet6 fe80::3972:1692:8fab:33d4/64 scope link valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:04:53:00 brd ff:ff:ff:ff:ff:ff inet 172.16.1.200/24 brd 172.16.1.255 scope global ens37 valid_lft forever preferred_lft forever inet6 fe80::c754:24e2:801b:163/64 scope link valid_lft forever preferred_lft forever 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:e2:0b:14:dc brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever 5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 52:54:00:5f:37:94 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000 link/ether 52:54:00:5f:37:94 brd ff:ff:ff:ff:ff:ff 8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 00:0c:29:04:53:f6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.200/24 brd 10.0.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe04:53f6/64 scope link valid_lft forever preferred_lft forever [root@ CentOS7-200 ~]# ping www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=128 time=4.95 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=128 time=4.19 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=128 time=6.30 ms ^C --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 4.194/5.151/6.301/0.872 ms
此时宿主机的ip:10.0.0.200已经绑定到br0网卡;但是服务器重启后就不能生效。
(2) 通过配置文件配置桥接设备永久生效
为KVM宿主机创建虚拟网卡,并将物理网卡作为桥设备
[root@ CentOS7-200 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 . [root@ CentOS7-200 opt]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 TYPE=Ethernet ONBOOT=yes BRIDGE=br0 NM_CONTROLLED=no [root@ CentOS7-200 opt]# vim /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=10.0.0.200 NETMASK=255.255.255.0 GATEWAY=10.0.0.254 NM_CONTROLLED=no [root@ CentOS7-200 opt]# systemctl restart network.service
通过VNC连接KVM虚机修改网卡配置文件
[root@ CentOS7-200 ~]# virsh list --all Id Name State ---------------------------------------------------- - c73 shut off [root@ CentOS7-200 ~]# systemctl stop firewalld.service [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes IPADDR=10.0.0.100 PREFIX=24 GATEWAY=10.0.0.254 DNS1=223.5.5.5 此处配置后则不需要手动添加/etc/resolv.conf DNS2=1.1.1.1 [root@localhost ~]# vim /etc/resolv.conf #必须有否则xshell连不上 nameserver 223.5.5.5 [root@localhost ~]# ifup ens33
注意:此时宿主机还需要通过图形化工具设置网卡为桥接方式,否则无法ping通网关和外网。
第3章 KVM的图形界面管理工具(virt-manager)
virt-manager是用于管理KVM虚拟环境的主要工具,virt-manager默认设置下需要使用root用户才能够使用该工具。当你想在KVM hypervisor服务器上托管虚拟机,由最终用户而非root用户访问这些虚拟机时并不总是很便利。
virt-manager可以设置本机,同样也可以连接远程宿主机来管理。
利用virt-manager、xmanager、xshell启动界面来管理虚拟机,适合管理单机的KVM.
1.首先查看本机sshd是否开启X11转发
[root@ CentOS7-200 ~]# grep X11Forwarding /etc/ssh/sshd_config --colour X11Forwarding yes # X11Forwarding no
2.安装xorg-x11
yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64 xorg-x11-drv-ati-firmware
3. 安装libvirt
libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机。
[root@ CentOS7-200 ~]# yum install virt-manager libvirt libvirt-Python python-virtinst libvirt-client virt-viewer qemu-kvm mesa-libglapi -y
因为我的主机是服务器,没有图形化界面,想要用virt-manager图形化安装虚拟机,还需要安装X-window。
[root@ CentOS7-200 ~]# yum install libXdmcp libXmu libxkbfile xkeyboard-config xorg-x11-xauth xorg-x11-xkb-utils -y
开启libvirt服务
systemctl start libvirtd.service systemctl enable libvirtd.service
4. 安装好Xming后,打开xshell,在连接属性的tunneing中,勾选 Forwarding X11 connection to选项,可以正常打开virt-manager的图形界面。
6. 启动virt-manager
断开xshell会话,重新连接,输入命令:virt-manager,就可以自动弹出kvm管理软件
[root@ CentOS7-200 ~]# virt-manager
出现乱码,请安装以下包
yum install dejavu-sans-mono-fonts -y
第4章 kvm虚拟化管理平台WebVirtMgr
当KVM宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看kvm 宿主机的情况和操作
WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个KVM管理平台,提供对宿主机和虚机的统一管理,它有别于kvm自带的图形管理工具(virtual machine manager),让kvm管理变得更为可视化,对中小型kvm应用场景带来了更多方便。
WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常kvm的管理操作变的更加的可视化。
WebVirtMgr特点:
操作简单,易于使用
通过libvirt的API接口对kvm进行管理
提供对虚拟机生命周期管理
WebVirtMgr 功能
宿主机管理支持以下功能:
CPU利用率
内存利用率
网络资源池管理
存储资源池管理
虚拟机镜像
虚拟机克隆
快照管理
日志管理
虚机迁移
虚拟机管理支持以下功能:
CPU利用率
内存利用率
光盘管理
关/开/暂停虚拟机
安装虚拟机
VNC console连接
创建快照
至此 单机部署结束
来源:https://www.cnblogs.com/tyk3201/p/12296347.html