5ol.cc 发表于 2017-6-24 18:44:08

openstack对接VMware浅析

  前言
  本文是对openstack对接vmware的浅析,所以本文重点是以下两点:

[*]先了解它的整体架构,搞清楚为什么要用这样的架构;
[*]然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互
  整体架构
  先上图,了解下openstack结合VMware的整体架构。

  工作原理和流程:
  
  虚机如何启动?
  前端BC-OP或者Horizon发送http请求给Rest api,Nova api 通过RPC Call(Rabbitmq)请求scheduler选择合适的nova-compute,到此为止,与Openstack正常的流程都是一样的,对于kvm来说,直接在compute node起虚机就可以了,因为本文重点是VMware所以流程就写的比较简单,对于对接了VMware那就要继续往下看。
  nova-scheduler可调度的nova-compute可能有多个,每个compute对应的是vcenter上的一个集群(Cluster)。
  nova-compute需在配置文件中指定的底层driver是VMware diriver,通过Vmware driver与管理ESX主机集群的Vcenter Apis交互,然后Vcenter会选择集群中合适的ESX主机,在内部使用vcenter DRS来起虚机。
  通过Openstack启动虚机,虚机在Vcenter上会呈现出来,并且可以支持VMware的高级功能,另外,在horizon或者OP页面也会呈现,能够像其他openstack的虚拟机一样管理,但是可能会受到部分VMware的限制(如ssh keys等)。
  镜像如何获取?
  和libvirt driver一样,VMware driver也会去和glance 交互,如图虚线从后端复制vmdk镜像到启动虚机的datastore中去,同时会缓存下来。
  云硬盘cinder如何管理?
  与起虚机原理一样,cinder后端指定为VMware,使用VMware的dirver去创建卷,cinder volume这个其实就是封装了一层, 最终都是调用vcenter的存储管理的功能。
  总结:
  1.对于终端用户OP或者Horizon其实完全感知不到kvm虚机和VMware虚机有和不同的,因为都是通过Openstack去管理底层的虚拟机,而前端都是去调用Openstack的Api。
  2.Openstack作为管理平台,只能管理到nova-compute一层,即知道在哪一个cluster,对于ESX层面以下,Openstack是管理不到的,都交给了Vcenter去管理。换个角度想,虚拟机在集群内的变动,对于openstack的管理是完全不会有影响的。
  名词解释
  Vcenter
  统一管理数据中心的所有主机(ESX)和虚拟机等资源。
  ESXI(ESX)主机
  和KVM主机类似,使用虚拟化软件ESX或ESXI运行虚拟机的计算机,为虚机提供cpu和内存资源,同时为虚拟机
  提供访问存储资源和网络连接的能力,ESX是收费的。
  vSphere
  VMware vSphere 是VMware 的一个虚拟化产品,是整体解决方案。
  Datastore
  共享数据存储,用于保存虚拟机文件和镜像文件等文件,挂载给所有的ESX主机使用。
  其他组件
  其他的都是openstack的组件不是本文重点就不再赘述。
  参考自Openstack官方文档:
  http://docs.openstack.org/kilo/config-reference/content/vmware.html
  遇到的VMware相关的问题:
  1.在测试过程中,glance 上传镜像慢并且超时。
  原因:是Vcenter版本5.1版本太低导致,升级Vcenter版本问题解决。
  2.创建的flavor CPU数量如果不是2的次方,虚机内核启动不正常。
  原因:VMware的虚机默认是开启numa架构(CPU访问各自的存储器),所以对虚拟cpu格式有限制。
  可以ESC进入虚拟机,关闭启用numa。
  3.虚拟机通过VCenter迁移后,Openstack无法管理虚拟机
  原因:正如上面架构,Openstack管理到nova-compute,至于Vcenter下面的操作感知不到,理论上是不会受影响的
页: [1]
查看完整版本: openstack对接VMware浅析