前言:
使用开源的虚拟化技术,对公司自有的少数服务器进行虚拟化,在满足业务需求的同时,并未增加投入,同时也避免了使用云主机的不便,技术层面,kvm是开源的虚拟化产品,虚拟化性能出众,更重要的是免费!!!WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看kvm 宿主机的情况和操作,使用kvm+webvirtmgr便可满足当前场景的业务需求,虚拟化的同时,也能够进行便捷的管理。采用纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常kvm的管理操作变的更加的可视化。WebVirtMgr 介绍
WebVirtMgr 特点
- 操作简单,易于使用
- 通过libvirt的API接口对kvm进行管理
- 提供对虚拟机生命周期管理
WebVirtMgr 功能
宿主机管理支持以下功能
- CPU利用率
- 内存利用率
- 网络资源池管理
- 存储资源池管理
- 虚拟机镜像
- 虚拟机克隆
- 快照管理
- 日志管理
- 虚机迁移
虚拟机管理支持以下功能
- CPU利用率
- 内存利用率
- 光盘管理
- 关/开/暂停虚拟机
- 安装虚拟机
- VNC console连接
- 创建快照
WebVirtMgr 管理工具安装
一 webvirtmgr管理服务器配置
二 webvirtmgr服务器(服务端)与kvm服务器(客服端)连接配置
KVM WEB管理工具——WebVirtMgr(二)日常配置
- 配置宿主机
1、登录WebVirtMgr管理平台,访问地址http://webvirtmgrIP/login
2、添加宿主机
选择首页的WebVirtMgr -->Addd Connection
选择“SSH链接“,设置Label,IP,用户
注意:Label与IP要相同
- 虚机部署
1、创建存储池
点击前面创建的宿主机,进入虚拟机部署界面
点击“存储池”按钮,创建存储池(即创建磁盘镜像存放的位置)
注意:
创建存储池时,首先要在宿主机上创建一个目录,然后在”路径“设置栏中添加该目录
例:mkdir /home/kvm/teststorage -p
2、添加磁盘镜像
创建完成后如下:
3、宿主机网卡的桥接模式设置
4、创建网络池
5、创建虚机
选择“custom install”用户自定义创建虚机
6、虚机挂载ISO镜像
7、启动虚机
点击“启动”按钮后,打开虚机电源。
点击控制台按钮,进入操作系统安装界面
8、虚机IP地址设置
当虚机安装完成后,给虚机设置静态IP地址
例:[root@vmtest01~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=172.16.1.199
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
DNS1=172.16.1.1
- webvirtmgr克隆虚机操作
1、关闭正在运行的虚机
2、进入虚机配置界面,在克隆配置项,为新的虚机的“名字”,“MAC地址”,“磁盘镜像”进行设置
3、启动虚机,进入系统,对/etc/udev/rules.d/70-persistent-net.rules 文件做如下修改
修改后
4、编辑/etc/sysconfig/network-scripts/ifcfg-eth0 修改虚机的网卡配置,为虚机分配新的IP地址
5、重启系统 使网卡重新注册,让配置生效
reboot
- webvirtmgr虚机磁盘扩容(新增磁盘)
1 关闭虚机
2 对虚机的xml文件的disk域添加如下代码
场景一:新增一块磁盘
--指定新增磁盘路径
场景二:新增多块磁盘
已新增两块盘为例:
3 启动虚机,然后在虚机系统内部对磁盘进行格式化,分区等操作。
总结:
- 创建虚拟机后,默认的主机名、IP地址还得在虚机控制台设置,太麻烦,下一步尝试使用gusetfs的命令行工具,编写一个脚本对虚拟机的镜像文件进行预处理以解决这个问题。
- KVM集群中虚拟机要做到实时迁移,必须配合集中存储,而且需要在每个物理机上将其配置为存储池。目前我所了解的廉价、可扩展性好的集中存储方案有Ceph与Glusterfs,下一步需要对比这两种方案,以找出最合适的方案
- KVM集群中的虚拟机如果全部采用静态设置IP地址,管理查看虚机的IP地址将很麻烦;如果全部采用动态获取IP地址,则需要在网络内部安装dhcp服务器,然后可在dhcp服务器上管理查看虚机的IP地址。很显然后一种方案更合理一点,但这个还需要验证
- webvirtmgr并不是像openstack一样的虚拟化一站式解决方案,它的工作原理其中就是通过一个web页面,将多台物理机接入进来,然后通过libvirt分别管理每个物理机上的计算资源。要创建虚拟机时,才是管理员自行找到一个合适的物理,然后在上面创建虚拟机。那么在KVM集群环境,存储已经通过Ceph或Glusterfs方案解决了,当要创建某个配置的虚拟机时,最好能有一个调度器,依据CPU、内存的需求,帮助管理员从众多物理机中选取一个合适的物理机。简单处理,也许可以写一个脚本,根据CPU、内存的需求自动得出一个物理机选取推荐列表,以供管理员参考
- webvirtmgr所部署的主机需考虑高可用方案。简单处理可以将其做成docker镜像,一旦发现该服务故障了,可以快速地在其它地方启动起来
信息参考:
https://www.cnblogs.com/kevingrace/p/5737724.html
https://blog.51cto.com/niubdada/1981760?tdsourcetag=s_pcqq_aiomsg