【群分享】OpenStack管理VMware的几点实践

3520阅读 0评论2016-01-10 sak0
分类:云计算

分享简介:

崔昊之,目前就职中电科华云,任IaaS技术经理;分享内容是OpenStack管理VMware的几点实践。

2013年开始基于OpenStack做公有云(联通沃云)的后台, 之后开始做一些私有云项目,大部分是KVM虚拟化,也有一些VMware虚拟化;最初用OpenStack管理私有云感觉是有点别扭,后边再加上管理VMware就更别扭了;今天分享的内容是在使用OpenStack对接管理VMware的过程中遇到的几个具体问题和解决方法。



1.存量虚拟机纳管

背景

在上OpenStack之前,用户已经有一大批虚拟机,用户不想丢弃它们,希望OpenStack能统一管理新创建的虚拟机和已存在的虚拟机

怎样做

反向纳管程序,将存量虚机同步到OpenStack数据库中,后续可统一管理

纳管程序分为三部分:

扫描:根据用户输入范围扫描到存量虚拟机信息;

治理:对扫描到的虚拟机信息进行补充,比如租户信息,网络信息等;

纳管:对治理完成的虚机进行纳管操作,纳管完成后就与OpenStack初始创建的虚机一样了;


2.能够使用vlan(标准虚拟交换机/分布式虚拟交换机)

背景

用户使用标准交换机或分布式交换机,没有使用NSX

对接VMware时,Neutron的高级网络功能都在NSX插件中,如果没有购买NSX,就只能使用FLAT网络;nova-network可以使用vmware vlan,使用nova-network?是不是有点因噎废食的味道?

怎样做

订制neutron ml2 plugin,针对vmware虚拟化可使用标准交换机或分布式交换机,在指定的虚拟交换机上创建PortGroup,使能vlan功能;


3.镜像传输路径优化

背景

大家知道,在OpenStack中,镜像在计算节点有缓存机制;当使用一个镜像在某计算节点第一次创建虚机时,计算节点会从Glance(镜像服务)拉取镜像,然后写入本地的缓存空间;拉取动作是通过HTTP协议

针对KVM虚拟化,可以使用direct_download模式,优化拉取时间;前提是计算节点通过共享文件系统可直接读取Glance中注册的镜像;

对于VMware虚拟化,计算节点只是一个代理角色,所以在这一过程中,计算节点的服务先从Glance节点读取镜像,然后再通过VCenter API写入指定的datastore,相当于做了一次文件中转,实测效率是比较低的

怎样做

KVM虚拟化的思路实现VMware直接拷贝镜像

Glance镜像所在目录基于共享文件系统,需要功能生效的ESXi节点与Glance可读写此文件系统

修改nova.conf配置文件中的选项allowed_direct_url_schemes=fileGlance配置文件show_image_direct_url=True

订制OpenStack-Nova代码,使用直接拷贝的方式下载镜像到datastore。


4.镜像缓存优化


5.docker nova-compute

背景

①nova-compute使用VMware Driver时,相当于只是一个代理角色,并不提供资源服务;占一个物理机或者虚拟机,都显得有点浪费;

OpenStack计算节点相关的配置比较静态,不支持动态修改、或者新增一个代理计算节点;

怎样做

OpenStack计算节点制作为Docker image,在需要新接入VMware虚拟化环境时使用OpenStack-Heat项目启动一个Docker实例,传入VCenter连接控制信息(ip/user/password/cluster),控制节点信息,计算节点主机名等变量,最终在Docker实例中启动nova-compute服务,这样一个计算节点就动态的创建起来了;

具体部署模式

6.其他一些虚拟化功能

如内存设置、热迁移等

背景

VCenter管理界面中提供对内存资源的高级设置功能,默认的内存分配策略是不预留虚机内存,云平台需要实现对虚机内存的绑定能力,对应为开启“预留所有客户机内存(全部锁定)”选项。

怎样做

使用nova instance_type设置虚拟化特殊属性nova flavor-key 2 set quota:memory_reservation_lock=True



上一篇:Openstack cold snapshot 细节分析
下一篇:使用openstack构建虚拟机高可用