前言

本文是对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. 数据库函数(Left、Right)

    MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr()  ...

  2. 简单的反编译class文件并重新编译的方法

    在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler ...

  3. What is a schema in a MySQL database?

    摘自:https://www.quora.com/What-is-a-schema-in-a-MySQL-database What is schema? In MySQL, physically, ...

  4. DataSet和泛型之间相互转换

    取数据的时候,存储过程返回了多个结果集,后台用DataSet去接收这几个结果集,然后接收之后,需要将结果集转换为不同的实体,于是下面的代码便出现了. /// <summary> /// 将 ...

  5. ThinkPHP5.0框架事务处理操作简单示例

    本文介绍ThinkPHP5.0框架事务处理操作,结合实例形式分析了ThinkPHP5针对删除操作的事务处理相关操作技巧,可以加深对ThinkPHP源码的理解,需要的朋友可以参考下 事务的调用在mysq ...

  6. python django-admin startproject django-admin命令未找到

    在使用pip install安装django后使用django-admin生成项目失败解决办法 1.配置环境变量-在系统环境变量path添加后运行 D:\Program Files (x86)\pyt ...

  7. fake_useragent 封装好user-agent的模块

    from fake_useragent import UserAgent useragent = UserAgent()print(useragent.random)

  8. 实验吧web登陆一下好吗

    知识点: 万能密码'=' 一道登陆型的SQL注入题目,这种题目一般有四种题型: 1.在username中通过union联查select一个已知字符来与传递的password匹配完成登陆 2.使用万能密 ...

  9. 第7天 Java基础语法

    第7天 Java基础语法 今日内容介绍 循环练习 数组方法练习 循环练习 编写程序求 1+3+5+7+……+99 的和值. 题目分析: 通过观察发现,本题目要实现的奇数(范围1-100之间)的累加和. ...

  10. 使用cgroups来控制磁盘IO带宽

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackga ...