OpenStack管理VMware的几点实践@实名群分享
分享嘉宾:
崔昊之,目前就职中电科华云,任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 愿意分享。
入群联系北极熊: