首页 > 云计算 > 虚拟化 > 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与其他Hypervisor的接入方式略有差别。
主要有以下缺点:
与KVM等不同,VM跑在ESXi上,并非nova-compute所在节点。
ESXDriver限制,每个nova-compute服务仅支持一台ESXi主机。
不支持VCenter上高级特性,比如DRS。


[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。
#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设想。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18796236/viewspace-1840107/ ,如需转载,请注明出处,否则将追究法律责任。