VManagePlatform是什么?

一个KVM虚拟化管理平台

开发语言与框架:

编程语言:Python2.7 + HTML + JScripts
前端Web框架:Bootstrap
后端Web框架:Django
后端Task框架:Celery + Redis

VManagePlatform有哪些功能?

  • Kvm虚拟机生产周期管理功能
资源利用率(如:CPU、MEM、磁盘、网络)
实例控制(如:生存周期管理、快照技术,Web Console等等)
设备资源控制(如:在线调整内存、CPU资源、热添加、删除硬盘)
  • 存储池管理
增减卷,支持主流类型存储类型
资源利用率
  • 网络管理
    支持SDN,底层网络使用OpenVSwitch/Linux Bridge,支持子网隔离,IP地址分配,网卡流量限制等等。
  • 用户管理
    支持用户权限,用户组,用户虚拟机资源分配等等
  • 宿主机
    资源利用率,实例控制

环境要求:

编程语言:Python2.7
系统:CentOS 6
网络规划:管理网络接口=1,虚拟化数据网络>=1,如果只有一个网卡使用OpenVswitch时需要手动配置网络以免丢失网络
SDN需求:OpenVswitch Or Linux Birdge

安装环境配置

一、配置需求模块
shell> yum install zlib zlib-devel readline-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs kernel-devel libxslt-devel libffi-devel python-devel git kvm libvirt libvirt-devel python-virtinst python-virtinst qemu-kvm virt-viewer bridge-utils virt-top libguestfs-tools ca-certificates libxml2-python audit-libs-python device-mapper-libs mysql* dnsmasq gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool 

shell> git clone  https://github.com/welliamcao/VManagePlatform.git

shell> cd VManagePlatform && pip install -r requirements.txt

shell> mkdir -p /var/run/dnsmasq/
二、关闭防火墙安装KVM
shell> service iptables stop
shell> setenforce 0
shell> chkconfig NetworkManager off
shell> yum install kvm libvirt libvirt-devel python-virtinst python-virtinst qemu-kvm virt-viewer bridge-utils virt-top libguestfs-tools ca-certificates libxml2-python audit-libs-python device-mapper-libs 

启动虚拟机
shell> /etc/init.d/libvirtd start
注:下载virtio-win-1.5.2-1.el6.noarch.rpm,如果不安装window虚拟机或者使用带virtio驱动的镜像可以不用安装
# rpm -ivh virtio-win-1.5.2-1.el6.noarch.rpm
三、配置网络桥接

1、添加网桥配BOOTPROTO=static

DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.7.183
NETMASK=255.255.255.0
GATEWAY=192.168.7.254

2、ifcfg-eth2配置文件:注意MAC地址变更

DEVICE=eth2
HWADDR=6C:92:BF:21:F4:C0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INT=no

3、编辑KVM网络XML文件

vim /etc/libvirt/qemu/networks/br0.xml

<network>
  <name>br0</name>
  <uuid>0732d7f5-b501-40d8-aa18-df0f791b0b5b</uuid>
  <forward mode='bridge'/>
</network>

注意UUID变更
4、定义和启用网络XML配置

shell>virsh net-define br0.xml
shell>virsh net-start br0
shell>service network restart
shell> /etc/init.d/libvirtd restart
四、配置libvirt使用tcp方式连接
shell>vim /etc/sysconfig/libvirtd

LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"

shell> vim /etc/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none"
五、管理机与受管机器ssh互信

六、mysql或redis安装

如已有mysql可直接授权使用
如已有redis可直接使用
安装过程:略

七、配置django
shell> cd /root/VManagePlatform/VManagePlatform/
shell> vim settings.py
ALLOWED_HOSTS = [
    '192.168.218.14',
]
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'vmanage1',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'192.168.218.17'
    }

STATIC_URL = '/static/'
STATICFILES_DIRS = (
     '/root/VManagePlatform/VManagePlatform/static',
    )
TEMPLATE_DIRS = (
    '/root/VManagePlatform/VManagePlatform/templates',
)
一定要和实际信息对应。
八、生成VManagePlatform数据表
shell> cd /root/VManagePlatform
shell> pip uninstall celery
shell> pip install oslo.utils celery==3.1
shell> python manage.py migrate

创建超级用户,默认是root 设置密码,用来登录使用。

九、配置任务系统
# echo_supervisord_conf > /etc/supervisord.conf
# vim /etc/supervisord.conf
最后添加
[program:celery-worker]
command=/usr/bin/python manage.py celery worker --loglevel=info -E -B  -c 2
directory=/yourpath/VManagePlatform
stdout_logfile=/var/log/celery-worker.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

[program:celery-beat]
command=/usr/bin/python manage.py celery beat
directory=/yourpath/VManagePlatform
stdout_logfile=/var/log/celery-beat.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

[program:celery-cam]
command=/usr/bin/python manage.py celerycam
directory=/yourpath/VManagePlatform
stdout_logfile=/var/log/celery-celerycam.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

安装libxml2:自行百度下载
# tar xf libxml2-2.7.8.tar 
# cd libxml2-2.7.8/python
# python setup.py build
# python setup.py install
# export C_FORCE_ROOT="true" #设定环境变量
# /usr/local/bin/supervisord -c /etc/supervisord.conf
# /usr/local/bin/supervisorctl status
查看启动情况,有异常根据日志进行排查。
十、启动VManagePlatform
# cd /yourpath/VManagePlatform/VManagePlatform/
# python manage.py runserver youripaddr:8000

至此安装完成。登录以及使用的话,可以摸索一下。如果在访问页面中出现缺少东西的话,可以查看日志,进行排查。亲测可用。

虚拟化技术之kvm 虚拟化kvm管理平台_xml