前言

本文是对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下面的操作感知不到,理论上是不会受影响的

openstack对接VMware浅析的更多相关文章

  1. openstack与VMware workStation的区别

    免责声明:     本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除 最近一直在研究云计算,恰好有个同事问了我一个问题:你们研究的openstack到底是什么东西?跟VMware Work ...

  2. 【转载】我为什么弃用OpenStack转向VMware vsphere

    我为什么弃用OpenStack转向VMware Vsphere,一切皆为简单.高效.因为我们在工作过程中涉及到大量的测试工作,每天都有成百个虚拟机的创建和销毁工作. 工作任务非常繁重,我们的持续集成平 ...

  3. 谁是云的王者?OpenStack与VMware优劣对比

    [编者按]在云计算生态系统中,有两种类型的用户需要使用云计算资源:传统型(Traditional IT applications)和在互联网大潮下逐渐崛起云计算应用型(Cloud-aware appl ...

  4. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题

    问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...

  5. 分布式存储ceph——(2)openstack对接ceph存储后端

    ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...

  6. OpenStack 对接 Ceph

    [TOC]   1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...

  7. ceph与openstack对接

    对接分为三种,也就是存储为openstack提供的三类功能1.云盘,就好比我们新加的硬盘2.原本的镜像也放在ceph里,但是我没有选择这种方式,原因是因为后期有要求,但是我会把这个也写出来,大家自己对 ...

  8. OpenStack 之vmware机器迁移到openstack集群

    原理 openstack本身是支持使用vmware格式的镜像的,但是是需要我们我们在/etc/nova/nova.conf的配置文件中指定该计算节点使用vmware的驱动 1 2 3 4 5 6 7 ...

  9. ceph与openstack对接(cinder、glance、nova)

    对接分为三种,也就是存储为openstack提供的三类功能1.云盘,就好比我们新加的硬盘2.原本的镜像也放在ceph里,但是我没有选择这种方式,原因是因为后期有要求,但是我会把这个也写出来,大家自己对 ...

随机推荐

  1. HTML表格属性及简单实例

    这里主要总结记录下表格的一些属性和简单的样式,方便以后不时之需. 1.<table> 用来定义HTML的表格,具有本地属性 border 表示边框,border属性的值必须为1或空字符串( ...

  2. Vue中把从后端取出的时间进行截取

    未截取前 截取后 方法: </div>{{times}}</div> export default{ data() { return { // getTime储存从服务器请求回 ...

  3. c++基础STL

    今天给大家介绍几个容器,包含的头文件为<vector>,<stack>,<queue>,<map>,<list>,<deque> ...

  4. .Net 上传文件到ftp服务器和下载文件

    突然发现又很久没有写博客了,想起哎呦,还是写一篇博客记录一下吧,虽然自己还是那个渣渣猿. 最近在做上传文件的功能,上传到ftp文件服务器有利于管理上传文件. 前面的博客有写到layui如何上传文件,然 ...

  5. zabbix 3.x 监控日志文件

    1.启用zabbix主动模式 在zabbix agent端,修改/etc/zabbix/zabbix_agentd.conf ServerActive=服务端IP Hostname=tspnginx0 ...

  6. jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。

    生成二维码 引用 jquery.qrcode.js  :连接:https://files.cnblogs.com/files/kitty-blog/jquery.qrcode.js .https:// ...

  7. ACM 2000~2002

    ACM  2000  输入三个字符后,按各个字符的ASCⅡ码从小打到的顺序输出这三个字符. import java.util.Scanner; public class Lengxc {public ...

  8. Elasticsearch 数据操作

    一.新增数据 1.1 随机生成id 语法: POST /索引库名/类型名 { "key1": "value1", "key2": " ...

  9. redis集群部署步骤

    1.yum 安装依赖 yum install gcc unzip wget 2.编译安装redis,编译安装的目的是源码包内包含了接下来创建redis集群所需要的 redis-trib.rb脚本 ma ...

  10. 使用bison和yacc制作脚本语言(1)

    使用bison和yacc制作脚本语言(1) 环境: 环境 windows 10 Cygwin64 语言 C 工具 mingw bison flex 主要是使用bison和flex这两个软件,编译器无所 ...