openstack juno 配置vmware(vcenter、vsphere)
2015-07-22 09:53
501 查看
官方配置文档:
http://docs.openstack.org/juno/config-reference/content/vmware.html
将qcow2的镜像格式转化为vmdk:
将kvm 节点stop,让虚拟机调度到vcenter:
也可以通过zone来控制生成虚拟机到对应的节点:
官方juno对vmware的支持:
https://wiki.openstack.org/wiki/HypervisorSupportMatrix/Juno
< HypervisorSupportMatrix
Inject Networking only works with nova-network in Flat mode, and only with Debian/Ubuntu based virtual machines, and only at boot time
XenServer integration also supports using a guest
agent to inject networking settings, at any time when a VM has the guest agent installed, through an admin API extension
(unused)
XenAPI support for serial console was added in Havana
(unsued)
Functionality provided by cloudbase-init for windows http://www.cloudbase.it/cloud-init-for-windows-instances/
Vlan and Routing is only supported on Hyper-V when using the Quantum / Neutron Hyper-V Agent; VlanManager mode is not supported with nova-network.
Support of Xen using Libvirt
Security Groups supported on VC/ESX Driver when using the Quantum NVP Plugin
https://bugs.launchpad.net/nova/+bug/1192192
Copy on write images are not suported (see bug https://bugs.launchpad.net/nova/+bug/1253571).
Only cold-snapshots are available.
https://bugs.launchpad.net/nova/+bug/1269448
Feature does not make sense for Baremetal / Ironic
Feature currently enabled by some Ironic drivers, but not all.
在juno版本中,不能支持的功能:
1、pause、unpause(vspherer没有此功能,注: Suspend与Pause不一样,支持Suspend)
2、热迁移不支持
3、resize 不支持
具体更多关于热迁移,resize请参考博客(注:博客还未整理):http://note.youdao.com/share/?id=4afdc88472d891588ae75116266a85e1&type=note
热迁移功能不支持总结:
来看下vsphere的热迁移:
关于openstack底层对vmvare热迁移的支持:
注此处的host不能为ip必须为vsphere里面的自增长hostname:
获取 vsphere里面的自增长hostname的函数为:
但是前端页面不支持,
以图为例讲解:
如下图有三个计算节点:其中conpute1、compute2底层驱动配置的为kvm驱动,comute3底层配置的为vmware驱动。
1、从上图可以看出compute1、compute2对应的驱动为kvm,则它们的当前节点即为自己(即一个compute的kvm驱动driver对应管理自身主机)
2、compute3对应的驱动为vmware,那么它底层对应对接的为多个cluster(当然也可以只有一个cluster),然而一个cluster下面又挂接着多个host。
3、假若从compute1热迁移到compute2,走openstack正常迁移流程,更多详细请自行参考博客相关内容。
4、假若是想对compute3的虚拟机进行迁移,如果还是走openstack原有流程那么则虚拟机会从compute3迁移到compute1或者compute2,将vmdk的虚拟机迁移到kvm,目前来说会是失败的,
因为当前版本不支持openstack对vmware底层虚拟机的迁移(至少页面)。
5、从vsphere对compute3下面的虚拟机进行热迁移(vsphere挂了共享存储),是能够成功的。但是迁移只是对vsphere内部迁移有效,及虚拟机能够从host3、host4、host5之间互相迁移。
6、那么从openstack底层的驱动vmwareapi的driver驱动来看,有个dest参数,如果将dest设置为host3、host4、host5中的一个值,测试发现是能够将vsphere下面虚拟机进行迁移。因此说明
底层驱动是支持热迁移。页面和上层nova代码没有适配迁移(因为目前在上层nova及web中vsphere的host3、host4、host5是不可见的)。
因为要想适配vmwareapi的热迁移,需要对页面和nova上层代码进行修改,当然不能简简单单对页面进行修改,因为此处的目的host在调度时候,需要去判断host状态,
因此要想通过调度需要做改进,有两种方式实现:
1、判断如果是vmware的虚拟机进行迁移,则跳过调度中,对vmware目的host的判断,直接传递到底层
2、在数据库compute_nodes中增加vsphere中host的值,这样调度可以直接走(不建议此方法)
总结:无论哪种方法对openstack的代码侵入都比较大!
resize功能不支持总结:
具体细节在前文中博客有提到, http://note.youdao.com/share/?id=4afdc88472d891588ae75116266a85e1&type=note
在此总结:
1、假若是compute1与compute2之间进行resize:
更多详细请参考博客 openstack
ice resize 详解(一):/article/1542404.html
2、目前对vmwareapi驱动的虚拟机进行resize 时,正常应该吧finish_migration函数的rpc消息发给vmware驱动所在机器,实际确发送给了qemu
所在机器,因此就出现了问题。
3、初步判断原因为,当将虚拟机从host1 resize到host2 finish_migration将在host1上面执行。当 使用了vmwareapi驱动时,按照kvm的resize逻辑,还是将 finish_migration 放到了kvm所在节点进行执行,因此出错了。正确情况为需要适配vmwareapi驱动 的resize,将 finish_migration 执行仍然放到自身节点上。
4、根据上述步骤3分析,由于resize代码逻辑太过复杂,就先强行修改rpc发送消息的目标节点到vmwareapi驱动所在节点,避过步骤三的错误。看到在vsphere底层对opentack 调用的resize流程,走的是克隆的方式,假若原始虚拟机为869a86b4-fdd8-49dd-8502-b2af1ec847b5在resize时候,则会克隆一个名为869a86b4-fdd8-49dd-8502-b2af1ec847b5-orig的虚拟机。当调用finish_migration时,则将原始虚拟机为869a86b4-fdd8-49dd-8502-b2af1ec847b5删除掉,再将869a86b4-fdd8-49dd-8502-b2af1ec847b5-orig修改为869a86b4-fdd8-49dd-8502-b2af1ec847b5。
总结:假若想让opentack适配vmware的resize,需要对nova的resize代码进行分析,工作量稍大(resize目前是opentack里面最复杂的逻辑,调用了创建虚拟机,迁移虚拟机等一系列opesntck的基础功能),其次修改适配的话对opentack原生代码侵入也较大。
http://docs.openstack.org/juno/config-reference/content/vmware.html
When you use the VMwareVCDriver (vCenter versions 5.1 and later) with OpenStack Compute, add the following VMware-specific configuration options to the nova.conffile:
|
将qcow2的镜像格式转化为vmdk:
$
qemu-img convert -f qcow2 ~/Downloads/trusty-server-cloudimg-amd64-disk1.img \ -O vmdk trusty-server-cloudimg-amd64-disk1.vmdk
$ glance image-create --name trusty-cloud --is-public False \ --container-format bare --disk-format vmdk \ --property vmware_disktype="sparse" \ --property vmware_adaptertype="ide" < \ trusty-server-cloudimg-amd64-disk1.vmdk |
将kvm 节点stop,让虚拟机调度到vcenter:
也可以通过zone来控制生成虚拟机到对应的节点:
官方juno对vmware的支持:
https://wiki.openstack.org/wiki/HypervisorSupportMatrix/Juno
< HypervisorSupportMatrix
Feature | XenServer/XCP | KVM/libvirt on (x86) | QEMU/libvirt (x86) | LXC/libvirt | Xen/Libvirt | VMware | Hyper-V | Baremetal | Ironic | Docker | PowerKVM |
Launch | ✔ | ✔ | ✔ | ✔ | ✔ *(12) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Reboot | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔*(11) | ✔ | ✔ |
Terminate | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Resize | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | * (15) | * (15) | ✗ | ✔ | |
Rescue | ✔ | ✔ | ✔ | ✔ | ✗ | ✗ | ✔ | ||||
Pause | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | * (15) | * (15) | ✔ | ✔ | |
Un-pause | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | * (15) | * (15) | ✔ | ✔ | |
Suspend | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | * (15) | * (15) | ✗ | ✔ | |
Resume | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | * (15) | * (15) | ✗ | ✔ | |
Inject Networking | ✔*(1)(2) | ✔*(1) | ✔*(1) | ✔* | ✔ | ✗ | ✗ | ||||
Inject File | ✔ | ✔* | ✔* | ✗*(6) | ✗ | ✗ | ✗ | ||||
Serial Console Output | ✔(4) | ✔ | ✔ | ✗ | ✔ | ✔ | ✔ | ||||
VNC Console | ✔* | ✔* | ✔* | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ||
SPICE Console | ✗ | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ||
RDP Console | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | |
Attach Volume | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | ✔ | ✗ | ✔ | ||
Detach Volume | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | ✔ | ✗ | ✔ | ||
Live Migration | ✔ | ✔ | ✔ | ✔ | ✗ (10) | ✔ | * (15) | * (15) | ✗ | ✔ | |
Snapshot | ✔ | ✔ | ✔ | ✔ * (13) | ✔ | ✔ | * (15) | * (15) | ✔ | ✔ | |
iSCSI | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
iSCSI CHAP | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||
Fibre Channel | ✗ | ✔ | ✔ | ✔ | |||||||
Set Admin Pass | ✔ | ✗ | ✗ | ✗ | ✗*(6) | * (15) | * (15) | ✗ | |||
Get Guest Info | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
Get Host Info | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
Glance Integration | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Service Control | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
VLAN Networking | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗*(7) | ✗ | ✗*(16) | ✔ | |
Flat Networking | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Security Groups | ✔ | ✔ | ✔ | ✔ | ✔ | ✗*(9) | ✗*(7) | ✔ | ✔ | ||
Firewall Rules | ✔ | ✔ | ✔ | ✔ | ✗ *(14) | ✗*(7) | * (15) | * (15) | ✔ | ||
Routing | ✔ | ✔ | ✔ | ✔ | ✔ | ✗*(7) | ✔ | ✔ | ✔ | ||
nova diagnostics | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ||||
Config Drive | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✗ | |
Auto configure disk | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | ✗ | |||
Evacuate | ✔ | ✔ | ✔ | ✔ | ✗ | ✗ | ✔ | ||||
Volume swap | ✗ | ✔ | ✔ | ✗ | ✗ | ✗ | ✔ | ||||
Volume rate limiting | ✗ | ✔ | ✔ | ✗ | ✗ | ✗ | ✔ |
XenServer integration also supports using a guest
agent to inject networking settings, at any time when a VM has the guest agent installed, through an admin API extension
(unused)
XenAPI support for serial console was added in Havana
(unsued)
Functionality provided by cloudbase-init for windows http://www.cloudbase.it/cloud-init-for-windows-instances/
Vlan and Routing is only supported on Hyper-V when using the Quantum / Neutron Hyper-V Agent; VlanManager mode is not supported with nova-network.
Support of Xen using Libvirt
Security Groups supported on VC/ESX Driver when using the Quantum NVP Plugin
https://bugs.launchpad.net/nova/+bug/1192192
Copy on write images are not suported (see bug https://bugs.launchpad.net/nova/+bug/1253571).
Only cold-snapshots are available.
https://bugs.launchpad.net/nova/+bug/1269448
Feature does not make sense for Baremetal / Ironic
Feature currently enabled by some Ironic drivers, but not all.
在juno版本中,不能支持的功能:
1、pause、unpause(vspherer没有此功能,注: Suspend与Pause不一样,支持Suspend)
2、热迁移不支持
3、resize 不支持
具体更多关于热迁移,resize请参考博客(注:博客还未整理):http://note.youdao.com/share/?id=4afdc88472d891588ae75116266a85e1&type=note
热迁移功能不支持总结:
来看下vsphere的热迁移:
关于openstack底层对vmvare热迁移的支持:
注此处的host不能为ip必须为vsphere里面的自增长hostname:
获取 vsphere里面的自增长hostname的函数为:
但是前端页面不支持,
以图为例讲解:
如下图有三个计算节点:其中conpute1、compute2底层驱动配置的为kvm驱动,comute3底层配置的为vmware驱动。
1、从上图可以看出compute1、compute2对应的驱动为kvm,则它们的当前节点即为自己(即一个compute的kvm驱动driver对应管理自身主机)
2、compute3对应的驱动为vmware,那么它底层对应对接的为多个cluster(当然也可以只有一个cluster),然而一个cluster下面又挂接着多个host。
3、假若从compute1热迁移到compute2,走openstack正常迁移流程,更多详细请自行参考博客相关内容。
4、假若是想对compute3的虚拟机进行迁移,如果还是走openstack原有流程那么则虚拟机会从compute3迁移到compute1或者compute2,将vmdk的虚拟机迁移到kvm,目前来说会是失败的,
因为当前版本不支持openstack对vmware底层虚拟机的迁移(至少页面)。
5、从vsphere对compute3下面的虚拟机进行热迁移(vsphere挂了共享存储),是能够成功的。但是迁移只是对vsphere内部迁移有效,及虚拟机能够从host3、host4、host5之间互相迁移。
6、那么从openstack底层的驱动vmwareapi的driver驱动来看,有个dest参数,如果将dest设置为host3、host4、host5中的一个值,测试发现是能够将vsphere下面虚拟机进行迁移。因此说明
底层驱动是支持热迁移。页面和上层nova代码没有适配迁移(因为目前在上层nova及web中vsphere的host3、host4、host5是不可见的)。
因为要想适配vmwareapi的热迁移,需要对页面和nova上层代码进行修改,当然不能简简单单对页面进行修改,因为此处的目的host在调度时候,需要去判断host状态,
因此要想通过调度需要做改进,有两种方式实现:
1、判断如果是vmware的虚拟机进行迁移,则跳过调度中,对vmware目的host的判断,直接传递到底层
2、在数据库compute_nodes中增加vsphere中host的值,这样调度可以直接走(不建议此方法)
总结:无论哪种方法对openstack的代码侵入都比较大!
resize功能不支持总结:
具体细节在前文中博客有提到, http://note.youdao.com/share/?id=4afdc88472d891588ae75116266a85e1&type=note
在此总结:
1、假若是compute1与compute2之间进行resize:
更多详细请参考博客 openstack
ice resize 详解(一):/article/1542404.html
2、目前对vmwareapi驱动的虚拟机进行resize 时,正常应该吧finish_migration函数的rpc消息发给vmware驱动所在机器,实际确发送给了qemu
所在机器,因此就出现了问题。
3、初步判断原因为,当将虚拟机从host1 resize到host2 finish_migration将在host1上面执行。当 使用了vmwareapi驱动时,按照kvm的resize逻辑,还是将 finish_migration 放到了kvm所在节点进行执行,因此出错了。正确情况为需要适配vmwareapi驱动 的resize,将 finish_migration 执行仍然放到自身节点上。
4、根据上述步骤3分析,由于resize代码逻辑太过复杂,就先强行修改rpc发送消息的目标节点到vmwareapi驱动所在节点,避过步骤三的错误。看到在vsphere底层对opentack 调用的resize流程,走的是克隆的方式,假若原始虚拟机为869a86b4-fdd8-49dd-8502-b2af1ec847b5在resize时候,则会克隆一个名为869a86b4-fdd8-49dd-8502-b2af1ec847b5-orig的虚拟机。当调用finish_migration时,则将原始虚拟机为869a86b4-fdd8-49dd-8502-b2af1ec847b5删除掉,再将869a86b4-fdd8-49dd-8502-b2af1ec847b5-orig修改为869a86b4-fdd8-49dd-8502-b2af1ec847b5。
总结:假若想让opentack适配vmware的resize,需要对nova的resize代码进行分析,工作量稍大(resize目前是opentack里面最复杂的逻辑,调用了创建虚拟机,迁移虚拟机等一系列opesntck的基础功能),其次修改适配的话对opentack原生代码侵入也较大。
相关文章推荐
- centOS 大量TIME_WAIT 的处理
- copypngfile error 的问题
- OpenGL学习笔记(1)--开发环境搭建
- Tomcat启动一半闪退问题解决
- php centos编译安装,单个升级安装库(mysql.so,pdo.so)
- 如何在CentOS中开启Swap
- Web开发概述及Tomcat服务器
- 谈到一些传统的企业网站SEO问题领域
- Hadoop学习笔记(准备与安装)
- OFBiz + Opentaps 目录管理 四. 产品(一)定义产品 - Jason的个人空间 - 开源中国社区
- Linux下dmesg命令处理故障和收集系统信息的7种用法
- CentOS-6.3 安装Mysql集群
- Linux 下安装配置 JDK环境
- 基本shell编程【2】-服务端发布脚本
- linux ftp服务配置详细讲解
- 使用PostSharp在.NET平台上实现AOP
- OpenJudge - 2815:城堡问题
- 启动Linux上Weblogic Server报错: <BEA-141281> <unable to get file lock, will retry ...>
- FTP文件的上传和下载---org.apache.commons.net.ftp.FTPClient
- linux下vi编辑器回格不能删除内容,并且使用方向键也会有问题