OpenStack管理VMware vSphere

概要

将vSphere 集群加入到OpenStack中作为一个hypervisor或叫做compute driver来使用是一件很痛苦的事,但也是一件有趣的事。可能会出现这样一种使用场景,用户企业以前使用的是vSphere虚拟化架构,现在想使用更友好而简单的OpenStack私有云,但vSphere license还没到期,直接弃用岂不是很可惜,所以希望我们能给他提供一个功能——将已有的vSphere架构纳管到OpenStack中。
这是一件很有难度的事,虽然在R版时,OpenStack官方声称已经能很好地调用vmware api,并且还支持vSphere的高级功能诸如vMotion、DRS和HA,但从我配置使用基本的创建虚拟机功能都报错的情况看来,至少官方在文档提供方面做得很不全面。

配置

glance-api.conf
[default]
...
known_stores = vmware
[glance_store]
filesystem_store_datadir = /zl/images/
stores = files,http,vmware
default_store = vsphere
vmware_server_host = 192.168.3.112
vmware_server_username = administrator@vsphere.local
vmware_server_password = Zl@xxxxxxxx
vmware_datastore_name = Datastore_iscsi
vmware_datacenter_path = MyDatacenter
vmware_datastores = MyDatacenter:Datastore_iscsi
vmware_task_poll_interval = 5
vmware_store_image_dir = /openstack_glance
vmware_api_insecure = True
cinder.conf
[default]
...
enabled_backends = vmware
default_volume_type = vmware
[vmware]
volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
vmware_host_ip=192.168.3.112
vmware_host_password=Zl@xxxxxxxx
vmware_host_username=administrator@vsphere.local
vmware_wsdl_location=https://192.168.3.112/sdk/vimService.wsdl
vmware_volume_folder= openstack_volume
vmware_insecure = True
vmware_host_version = 6.7
nova.conf
[default]
...
compute_driver = vmwareapi.VMwareVCDriver

[vmware]
host_ip = 192.168.3.112
host_username = administrator@vsphere.local
host_password = Zl@xxxxxxxx
cluster_name = mycluster
#datastore_regex = Datastore_iscsi
datastore_regex = ".*Data.*"
wsdl_location = https://192.168.3.112/sdk/vimService.wsdl
insecure = True

操作

重启服务
systemctl restart openstack-nova-* openstack-cinder-* openstack-glance-*

本地镜像格式转换
qemu-img convert -f raw -O vmdk cirros.raw cirros.vmdk

上传镜像到glance即vSphere的共享存储
glance image-create --name cirros_vmdk --min-disk 1 --disk-format vmdk --container-format bare --property vmware_disktype=“sparse” --property vmware_ostype=“otherGuest” --property vmware_adaptertype=“ide” < cirros.vmdk(这个vmware_adaptertype可以通过 head -30 cirros.vmdk查看到)
glance image-create --name centos76_vmdk --min-disk 10 --disk-format vmdk --container-format bare --property vmware_disktype=“sparse” --property vmware_adaptertype=“lsiLogic” --property vmware_ostype=“rhel6Guest” < clear_c76.vmdk(这个lsiLogic若写成lsilogic就完蛋了)

错误

创建云主机报错,只是说主机配置过程出错,具体什么错,没有体现出来
Faults: ['PlatformConfigFault']: BuildAbortException: Build of instance 3df17bd7-d612-4730-a286-45e526d01a63 aborted:主机配置过程中出错
主机配置过程中出错
主机配置过程中出错(an error occurred during host configuration)

vSphere VC上可以看到 OpenStack创建了一个新的包(OpenStack)下还有project和instance和openstack_volume
vCenter client看到OpenStack在其上创建的包
nova show 看到的错误如下:
依然是主机配置过程中出错
首先,猜测是网络的问题,毕竟,OpenStack上的网络使用VXLAN,而ESXi上使用VLAN
改为VLAN后,测试过,和网络没关系,而且,人家已经拿到IP了的
已经分配到IP了
其次,猜测是存储的问题。但是,iSCSI共享存储应该没问题吧,毕竟,OpenStack调用vSphere创建的卷和镜像都是没问题的,只是,单独创建卷的时候,卷不会显示在iSCSI存储中,而且cinder这边,第一次创建卷总是出错,第二次才会成功,第三次又会出错,如此反复。

vCenter看到的错误
vCenter看到的错误25%
vCenter看到的错误 创建虚拟机失败

Google说大概是克隆的虚拟机MAC地址不匹配造成的,所以暂时的解决方法是创建虚拟机时,不绑定网卡:
nova boot --flavor 12efc0f5-9e2d-4263-8044-3e1824f8231b --image 5522f53a-bc39-4373-94ad-aaef33de5085 --nic none wahahaya222

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值