• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > 详解VMware接入Openstack—使用Openstack创建vCenter虚拟机

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

作者:JmilkFan 字体:[增加 减小] 来源:互联网

本文主要包含openstack,接入vmware, openstack对接vcenter,openstack,vcenter等服务器相关知识,JmilkFan 希望可以进行参考

前言

从虚拟化的层面来说,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):

  1. ESXDriver 是一种将 ESX/ESXI 主机作为 Hypervisor 的接入方式,ESXDirver 的缺陷在于因为 ESX/ESXI 并不具有太多虚拟化集群的管理操作功能,所以也就丢失 VMware 的一些集群特性(HA/DRS)。* 最新版本的 Openstack 已经在逐渐的抛弃这种连接方式 * 。
  2. 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 上创建虚拟机的流程

  1. nova-api 接收 HTTP 请求并将请求通过消息总线的 RPC 传递到 nova-conductor
  2. nova-conductor 通过消息总线通知 nova-scheduler 获取最佳创建虚拟机的Compute Node
  3. nova-scheduler 通过消息总线获取 nova-conductor 的任务,并返回一个 Compute Node 的数据信息
  4. nova-conductor 获取到 Compute Node 的信息后,通过信息总线通知 nova-compute 在该 Node 上创建虚拟机
  5. nova-conductor 通过消息总线接受到创建任务并通过配置文件(nova.conf)来决定以那种方式来创建虚拟机(virt/VCDirver)
  6. nova-conductor 通过消息总线通知 nova-network 提供网络
  7. nova-conductor 通过消息总线通知 nova-conductor 完成了虚拟机的创建
  8. 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

使用 VCDirver 在 vCenter 上创建虚拟机的流程

  1. 首先需要在 Openstack Nova Service 的配置文件 nova.conf 配置实现创建虚拟机的 Driver type == VCDirver 。
  2. nova-compute 通过 VCDirver 与管理虚拟机集群的 vCenter APIs 交互
  3. 然后 vCenter 选出 Cluster 中合适的 ESX
  4. 最后在 Cluster 内部使用 DRS 来创建虚拟机。

VMware driver architecture

这里写图片描述 

注意:nova-scheduler 可调度的 nova-compute 可以有多个,并且每个 nova-compute 对应了 vSphere 上的一个 Cluster ,每个 Cluster 又都要有一个 Datastore 进行配置和使用。

通过 Openstack 来创建 vSphere 的虚拟机后,虚拟机在 vCenter 的总控界面中会得到呈现,并且可以支持 VMware 的高级功能。除此之外,在 Horizon 中也会得到呈现,能够像管理其他 Openstack 虚拟机一样管理 vCenter 中的虚拟机,但也可能会存在部分 VMware 的功能限制(如ssh keys等)。

配置 vCenter 接入 Openstack

Use the VMwareVCDriver to connect Openstack Compute(nova-compute) with vCenter,and you can access through vCenter to advanced vSphere featuers(vMotion/HA/DRS(Dynamic Resource Scheduling)).

修改 Openstack 配置文件

nova.conf :启用 vmwareapi.VMwareVCDriver Dirver

[DEFAULT]
...
compute_driver=vmwareapi.VMwareVCDriver

[vmware]
host_ip=<vCenter host IP>       #安装了vCenter的主机IP
host_username=<vCenter username>     #安装vCenter时配置的Login Username
host_password=<vCenter password>     #vCenter Password
cluster_name=<vCenter cluster name>    #指定要连接vCenter的哪一个Cluster,一个nova-compute Service可以连接一个Cluster
datastore_regex=<optional datastore regex>   #指定Cluster的Datastore,每个Cluster都需要至少一个Datastore,可以对应多个Datastore
wsdl_location=https://200.21.101.12/sdk/vimService.wsdl    #指定wsdl路径
insecure=True          #以非Secure的方式访问

NOTE:EG.datastore_regex="nas.*"

==> select all the data stores that have a name starting with “nas”. if the line is omitted, Compute uses the first data store return by the vSphere API.

glance-api.conf & glance-registry.conf :配置 Image 上传到 vCenter datastore 中

镜像下载流程:

a. Openstack 在 Compute Node 上调用 Glance API 下载镜像

b. 再调用 VMware 的 API 将镜像上传到 datastore

# glance-api.conf

[glance_store]
filesystem_store_datadir = /opt/stack/data/glance/images/

# Image 上传到 filesystem_store_datadir
#default_store=file  
#stores=file,http

# Image 上传到 vCenter datastore 中
default_store=vsphere
stores=vmware,http

# VMware Datastore Store Options
vmware_server_host=<vCenter host IP>
vmware_server_username=<vCenter username>
vmware_server_password=<vCenter password>
vmware_datastores = <datacenterName:datastoreName> # vCenter中数据中心的名称:数据存储的名称;为了避免存储单向I/O的不便,所以也可以对应多个datastore
vmware_api_insecure=True
vmware_task_poll_interval = 5
#Create the directory for vmware to store the image file
vmware_store_image_dir = /openstack_glance   # 默认为 /openstack_glance

这里写图片描述

# glance-registry.conf

[glance_store]

default_store=vsphere
stores = vmware,http

vmware_server_host=<vCenter host IP>
vmware_server_username=<vCenter username>
vmware_server_password=<vCenter password>
vmware_datastore_name=<datastoreName>
vmware_datacenter_path=<datacenterName>

和 Openstack 原始支持的 Libvirt Driver 一样,VMware Driver 也能够和 Glance service 交互。如架构图,从 Openstack Image Service 复制 vmdk Image File 到启动 vCenter 虚拟机的 Shared Datastore 中去,同时还会被缓存下来。即:镜像需要从 Glance 下载到 Vmware datastore 中。这样能够使用 VMware 的资源来存储属于 VMware 的文件数据。

cinder.conf:配置在 VMware 的资源上创建 Volume

与创建虚拟机的流程类似,Cinder 的后端存储支持指定为 VMware,使用 VMware Dirver 去创建卷,最终都是调用 vCenter 的存储管理的功能。

#cinder.conf

[vmware]
volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver

vmware_host_ip=<vCenter host IP>
vmware_host_username=<vCenter username>
vmware_host_password=<vCenter password>
vmware_wsdl_location=https://200.21.101.12/sdk/vimService.wsdl
v
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • KVM与OpenStack的前世今生(1)
  • 浅谈openstack中使用linux_bridge实现vxlan网络
  • openstack使用openvswitch实现vxlan的方法
  • 详解OpenStack之服务端口号
  • openstack共享80、443端口的实例代码
  • Centos7环境准备openstack pike的安装
  • openstack pike单机一键安装shell的方法
  • Openstack安装过程中遇到的问题汇总
  • 详解Openstack使用ubuntu镜像启动虚拟机实例
  • 详解Openstack环境准备

相关文章

  • Docker 数据卷及数据容器详细介绍及示例
  • VMware中CentOS设置静态IP与外网互动设置的图文教程
  • 虚拟化和云计算的区别分析
  • Docker创建运行多个mysql容器的方法示例
  • 中国电信公司利用红帽企业虚拟化 建可靠稳定平台
  • 浅谈docker-compose网络设置之networks
  • docker如何使用阿里加速器的方法
  • Docker 解决容器时间与主机时间不一致的问题三种解决方案
  • Centos 7中Docker私有仓库的搭建方法
  • docker 限制容器对CPU的使用

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Vmware+Centos7搭建Openstack环境(网络配置)
    • 使用Docker部署Spring Boot的应用示例
    • Windows Server 2012 Hyper-V群集图文教程
    • 虚拟化服务器性能如何评估?
    • 用Docker作为PaaS的替代方案是否完美无缺
    • docker一键安装wordpress的方法步骤
    • 从零开始构建docker基础镜像的方法
    • docker 如何删除none镜像
    • docker如何快速搭建几个常用的第三方服务详解
    • Docker 数据卷,数据卷容器详细介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有