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下面的操作感知不到,理论上是不会受影响的
最新文章
- Linux常用命令及shell脚本
- Xcode7中你一定要知道的炸裂调试神技
- Fresco 源码分析(二) Fresco客户端与服务端交互(2) Fresco.initializeDrawee()分析 续
- 怎样查看oracle当前的连接数
- 字符串匹配算法-BM
- hdu 2546 饭卡 01背包
- phing用户手册第四章Getting Started译文
- 安卓---高德地图API应用
- Memcached和Redis简介
- 团队作业9——测试与发布(Beta版本)
- ZOJ1654 Place the Robots
- Linux CentOS 安装MySql以及搭建MySql主从复制
- pycharm 安装dilb模块
- 易忘&;有用 的冷门Anaconda命令
- mac os安装多个版本的chrome
- Keras运行速度越来越慢的问题
- 快速入门 WePY 小程序【转】
- Go学习笔记(四)Go自动化测试框架
- CentOS 开发环境准备
- js学习(四)- prototype原型对象
热门文章
- DB数据源之SpringBoot+MyBatis踏坑过程(四)没有使用连接池的后果
- 通过遍历JSON键值对获取包含某字符串的键的值_电脑计算机编程入门教程自学
- Zabbix——部署(DB与web分离)
- centos6,python3,通过pip安装pycurl出现报错提示
- Spring异常重试框架Spring Retry
- linux操作之软件安装(二)(源码安装)
- ubuntu下的python请求库的安装——Selenium,ChromeDriver,GeckoDriver,PhantomJS,aiohttp
- QP总体结构
- POJ-3436:ACM Computer Factory (Dinic最大流)
- 【EXCEL】XMLファイルを開く方法(XML文件打开方法)