查看原文
其他

OpenStack管理VMware的几点实践@实名群分享

2016-01-20 崔昊之 云技术实践

分享嘉宾:

崔昊之,目前就职中电科华云,任IaaS技术经理;2013年开始基于OpenStack做公有云(联通沃云)的后台, 之后开始做一些私有云项目,大部分是KVM虚拟化的,也有一些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=file,Glance配置文件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


问答摘录:


问:请问启动docker的意义是什么?

答:第一是为了动态的启动一个计算节点通过heat-api第二是可以在一个HOST上启动多个计算节点。



问:你好,问一下,虚机一般可以超配使用内存和cpu,这个如何更好的管理而不影响性能?

答:看过华为的FushionManager,对它的动态接入VCenter环境印象很深,就用OpenStack的方式做了一把。超配一般根据服务质量需要而动态设置吧,默认内存超配1.5CPU高一些16。要看具体应用和需要保障的程度。docker那个问题也许没讲清楚,首先我做一个image for nova-compute,当我需要一个新的nova-compute的时候,就通过heat启动一个container,container里面通过脚本写入nova.conf中的变量后启动nova-compute服务,这样一个“计算节点”就创建起来了;。


问:热迁移和冷迁移的区别是什么?

答:反向纳管实际上可以算是“热迁移”,只是在OpenStack中构造所有的管理数据,从使用角度:热迁移不会中断业务,冷迁移会,从实现角度:热迁移和冷迁移一般指的是使用不同接口和方式实现的migrate 。


问:另外,请问你们现在在openstack上使用的是glusterfs还是ceph?两者是否做过比较。

答:具体可以看一下qemu migrate的实现,开源的,公有云用的ceph,私有云各种都用,会根据客户场景建议,最终根据客户喜好定。还是要看是否是业务是有状态还是无状态的了,电信业务很多是有状态的。实测,live migration很难.. 这个场景没用nova-docker,heat-docker-template可以定义docker_host_ip


问:接管vm的时候esxi如何处理?

答:ESXi主机只是采集到信息,只读信息,OpenStack管理不需要知道ESXi。


问:那vm的迁移交给vc?

答:嗯迁移交给VC。





------------------------

群分享由迅达云协助完成


迅达云(SpeedyCloud)致力于为用户提供『一站式云服务』


KVM社区群分享奖品由华章科技学院支持电子读书卡


一卡读尽所有华章电子书!

---------------------------

欢迎加入“云技术实名群”,入群要求如下:

1 工作满5年;

2 目前从事云相关技术工作;

3 实名;

4 愿意分享。

入群联系北极熊:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存