设为首页 收藏本站
查看: 2960|回复: 0

[经验分享] VMware接入Openstack方案分析

[复制链接]

尚未签到

发表于 2015-10-11 08:39:17 | 显示全部楼层 |阅读模式




http://blog.iyunv.com/halcyonbaby/article/details/37818789







VMware接入Openstack方案分析


在Openstack中Nova项目中目前有两个VMware相关的Driver(ESXDriver,VCDriver)。

从名字上可以清楚的看出来,一个是涉及ESX的Driver,一个是涉及VCenter的Driver。

ESXDriver最早是由Citrix贡献的,VCDriver由Vmware提供。

ESXDriver将ESX作为Hypervisor接入Openstack, VCDriver将Vcenter集群做为Hypervisor接入Openstack。

ESXDriver方式导致的Vmware一些集群特性的丢失,VCDriver方式则解决了这些,当然也引入了一些新的问题(后续再说)。

VCDriver更多的体现了Vmware与Openstack的互补,一方面是VMware现有的存量很大,而且很多企业应用并非按照云的思想开发;另一方面新的应用多以云的思想开发。两者互补满足用户需求,这也符合当前各厂商对混合云趋势的共识。






ESXDriver


ESXDriver与其他Hypervisor的接入方式略有差别。

主要有以下缺点:

与KVM等不同,VM跑在ESXi上,并非nova-compute所在节点。

ESXDriver限制,每个nova-compute服务仅支持一台ESXi主机。

不支持VCenter上高级特性,比如DRS。





VCDriver


  • 介绍本文主要介绍VCDriver方式接入。这种方式将集群作为Hypervisor接入,自然就拥有了HA,DRS,VMotion能力。

    目前每个compute节点只能同时支持一种hypervisor。Grizzly每个compute服务只能支持一个VCenter集群,Havana版本已经去除了这个限制。

    VCDriver中每个cluster都要有一个Datastore进行配置和使用。

    由于cluster作为一个hypervisor整体呈现,也带来了资源跨ESXi节点的问题,具体来说就是作为Hypervisor整体呈现的CPU、内存资源很充足,但是创建虚拟机时发现任何一个节点的资源都不满足虚拟机需要的情况。
  • 接入图示:
  • DSC0000.jpg
  • 接入方法

    nova.conf文件的配置。(使用VCDriver将c1集群接入)

[DEFAULT]  
compute_driver = vmwareapi.VMwareVCDriver  
[vmware]  
host_password = Huawei-123  
host_username = Administrator@vsphere.local  
host_ip = 186.100.21.221  
#datastore_regex = NOT DEFINED  
cluster_name = c1            #可以支持配置多个cluster   


解释:

1.compute_driver指定所使用的Driver。

2.host_password/username/ip 用于连接vcenter server。cluseter_name 指定所管理的Vmware集群,从Havana版开始可以指定多个。

3.datastore_regex datastore配置格式,指定可以使用的datastore。


4.修改后重启nova-compute







  • 镜像的使用

    从上边图示部分可以看出,镜像从Glance上下载到Vmware的datastore上。

    过程是在compute节点上调用glance API下载镜像然后使用VMware的API将镜像写到datastore上。

    这样一个传输过程无疑是耗费compute资源并且低效的。

    Cinder中基于镜像创建卷过程与此类似,这里不再赘述。

#virt/vmwareapi/vmware_images.py
def fetch_image(context, image, instance, **kwargs):
"""Download image from the glance image server."""
LOG.debug(_("Downloading image %s from glance image server") % image,
instance=instance)
(image_service, image_id) = glance.get_remote_image_service(context, image)
metadata = image_service.show(context, image_id)
file_size = int(metadata['size'])
read_iter = image_service.download(context, image_id)
read_file_handle = read_write_util.GlanceFileRead(read_iter)
write_file_handle = read_write_util.VMwareHTTPWriteFile(
kwargs.get("host"),
kwargs.get("data_center_name"),
kwargs.get("datastore_name"),
kwargs.get("cookies"),
kwargs.get("file_path"),
file_size)
start_transfer(context, read_file_handle, file_size,
write_file_handle=write_file_handle)
LOG.debug(_("Downloaded image %s from glance image server") % image,
instance=instance)


更加理想的方式,是将datastore作为glance的后端,这些创建虚拟机时就不用如此下载镜像。

目前社区已经有类似的BP设想。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125267-1-1.html 上篇帖子: 收集整理的openstack java封装 api的第三方实现的选择 下篇帖子: openstack部署心得
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表