VMware接入Openstack方案分析,vmware接入openstack
VMware接入Openstack方案分析,vmware接入openstack
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/halcyonbaby
内容系本人学习、研究和总结,如有雷同,实属荣幸!
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、内存资源很充足,但是创建虚拟机是发现任何一个节点的资源都不满足虚拟机需要的情况。
- 接入图示
- 接入方法
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
解释:
compute_driver指定所使用的Driver。
host_password/username/ip 用于连接vcenter server。cluseter_name 指定所管理的Vmware集群,从Havana版开始可以指定多个。
datastore_regex datastore配置格式,指定可以使用的datastore。
- 镜像的使用
从上边图示部分可以看出,镜像从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设想。
应该是网络设置的问题,一般两块网卡,一个建立网桥,用于连接局域网,及组件通信,一块为连接外网准备。在手册中有详细的设置
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
内容详解
OpenStack包括数个由社区维护的项目,具体情况我将在后文中详加阐述。
● OpenStack Compute (Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它同样能够用于为包含着多个实例的特定项目设置网络。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也毫不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。
● OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制实现对象存储的系统。这些对象能够通过一个REST API或是像Cyberduck这样可以对接对象存储API的客户端加以恢复。
● OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它能够以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,作为S3访问的连接器。OpenStack镜像服务支持多种虚拟机镜像格式,包括VMware(VMDK)、Amazon镜像(AKI、ARI、AMI)以及VirtualBox所支持的各种磁盘格式。镜像元数据的容器格式包括Amazon的AKI、ARI以及AMI信息,标准OVF格式以及二进制大型数据。
最近根据投票结果纳入“核心”项目集团的新成员是一项代号为“Keystone”的身份服务以及一套基于Django的仪表板接口,后者的代号为“Horizon”。本文中的仪表板示例也来源于这一项目。
初窥门径
尝试探索OpenStack Compute最为合适的起点莫过于devstack.org站点,它为开发人员或是概念验证者们提供了一套脚本化安装方案。来自docs.openstack.org的OpenStack入门教程同样具备一步步详细的指示,帮助我们在Ubuntu 11.10中设定OpenStack Compute、镜像服务以及多合一对象存储的安装。如果大家拥有一台自己的服务器,并打算利用它搞一些概念验证工作,那么 点击此处 可以获取一套专门供裸机使用的StackOps安装系统。有了它,我们可以通过CD或者USB记忆棒完成OpenStack的安装。
各位还可以利用docs.openstack.org上提供的对象存储管理员指南或者OpenStack Compute管理员指南中的安装说明,设置出生产级别的OpenStack对象存储集群或是OpenStack Compute云。
OpenStack的使用
安装结束之后,接下来我们就要看看如何利用部分安全功能,通过仪表板接口或是命令行启动OpenStack Compute实例。我还将展示面向对象存储的、用于通过块存储备份镜像或者视频的接口。
登录到仪表板接口
OpenStack的仪表板是安装在运行着Nova API服务的节点中的。通过这套仪表板,......余下全文>>
评论暂时关闭