首页 > 网站 > 建站经验 > 正文

详解VMware接入Openstack―使用Openstack创建vCenter虚拟机

2019-11-02 16:04:44
字体:
来源:转载
供稿:网友

前言

从虚拟化的层面来说,GuestOS 的生命周期、迁移、快照等管理过程都离不开 Hypervisor 的支持。 EG. KVM/VMwate Workstation/Hpyer-V 等 VMM 。VMware 暴露的 API 接口和 OpenStack Dirver 驱动程序两种结合,就能够实现使用 Openstack 平台来管理多种虚拟化产品。本质上就是 Openstack 的 Nova Service 能够使用这些 API/Dirver 去连接 VMware Hypervisor 并达到控制的目的。在了解 VMware 接入 Openstack 的两种方式之前,首先要了解一些关于 VMWare 虚拟化产品的概念:

vSphere:是 VMware 的一个虚拟化产品,是一套整体企业级虚拟化解决方案,其中主要包含了下面两个组件。

vCenter:表示一个虚拟化数据中心,是所有的物理主机(ESX/ESXI)和虚拟机等资源的统一管理工具。

ESXI(ESX)主机:使用虚拟化软件 ESX/ESXI 来运行虚拟机的物理主机虚拟化操作系统(实际上是一个可以在裸机上安装的管理软件),为虚拟机提供 CPU 和内存资源,同时为虚拟机提供访问存储资源和网络连接的能力。其中 ESX 是收费的,注意:可以直接在裸机上安装,能更节省硬件资源,类似与 Redhat 的 RHEV-H 。

Datastore:共享数据存储,用于保存虚拟机、镜像文件等数据,挂载给 ESX 主机使用。

Openstack 接口驱动

Openstack Nova Project 提供了两个连接 VMware 的 Driver 实现( nova/nova/virt/vmwareapi/dirver.py):

ESXDriver 是一种将 ESX/ESXI 主机作为 Hypervisor 的接入方式,ESXDirver 的缺陷在于因为 ESX/ESXI 并不具有太多虚拟化集群的管理操作功能,所以也就丢失 VMware 的一些集群特性(HA/DRS)。* 最新版本的 Openstack 已经在逐渐的抛弃这种连接方式 * 。 VCDriver 则可以保留这些虚拟化集群的特性,因为 VCDirver 把 vCenter(集群管理工具) 作为 Hypervisor 来接入 Openstack 。 VCDriver 很好的支持了 Vmware 与 Openstack 的互补,这也符合当前各厂商对混合云趋势的共识。这也是本篇最主要的内容。

当然这也会引入一些新的问题,EXAMPLE

VCDriver 无法让 Openstack 对 VMware 虚拟机进行直接的操作(需要通过 vCenter 来进行)。这就带来了资源跨 ESXi 节点导致无法轻易整合的问题。具体来说就是作为 Hypervisor 的 vCenter 整体呈现出来的CPU、内存资源都很充足,但是在创建虚拟机时就会发现任何一个节点的资源都不足以创建虚拟机的情况。 VCDirver 仅仅是实现了 Openstack 对 vCenter 的操作而已。

在开始 VCDirver 的内容之前,先看看 Openstack 默认的虚拟化实现方式 ―― KVM

使用 KVM 在 Compute Node 上创建虚拟机的流程

nova-api 接收 HTTP 请求并将请求通过消息总线的 RPC 传递到 nova-conductor nova-conductor 通过消息总线通知 nova-scheduler 获取最佳创建虚拟机的Compute Node nova-scheduler 通过消息总线获取 nova-conductor 的任务,并返回一个 Compute Node 的数据信息 nova-conductor 获取到 Compute Node 的信息后,通过信息总线通知 nova-compute 在该 Node 上创建虚拟机 nova-conductor 通过消息总线接受到创建任务并通过配置文件(nova.conf)来决定以那种方式来创建虚拟机(virt/VCDirver) nova-conductor 通过消息总线通知 nova-network 提供网络 nova-conductor 通过消息总线通知 nova-conductor 完成了虚拟机的创建 nova-conductor 访问数据库修改元数据

对于 KVM 来说,通过 nove-compute serivce 直接在 Compute Node 创建虚拟机就可以完成。即:

HTTP Request ==> Restful API ==> nova-api ==> RPC & Queue ==> nova-scheduler ==> nova-compute ==> Create VM in Compute_Node

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表