跳转到: 导航, 搜索

XenServer/XenAndXenServer

入门

要开始使用,请查看: XenServer 和 OpenStack 入门

官方文档

您可以在官方文档中找到此信息: https://docs.openstack.org/trunk/openstack-compute/admin/content/introduction-to-xen.html

OpenStack 中使用 Xen、XCP 和 XenServer 的介绍

在本节中,我们将介绍 Xen、XCP 和 XenServer,它们之间的区别,以及如何将它们与 OpenStack 一起使用。 Xen 的架构与 KVM 的架构在重要方面有所不同,我们讨论了这些差异以及每种架构在您的 OpenStack 云中可能更有意义的情况。

基本术语

Xen

Xen 是一种 hypervisor。 它提供了虚拟机之间的基本隔离。 Xen 是开源的 (GPLv2),由 Xen.org 管理,这是一个跨行业组织。 Xen 是许多不同产品和项目的组成部分。 hypervisor 本身在所有这些项目中都非常相似,但其管理方式可能不同,如果您不清楚您正在使用的工具堆栈,这可能会造成混淆。 在开始之前,请确保您知道您想要使用的工具堆栈。

Citrix XenServer

Citrix XenServer 是一种商业产品。 它基于 XCP,并暴露相同的工具堆栈和管理 API。 作为类比,可以将 XenServer 基于 XCP 类似于 Red Hat Enterprise Linux 基于 Fedora。 XenServer 具有免费版本(与 XCP 非常相似)和启用附加功能的付费版本。

xapi / XAPI / XenAPI

XenServer 和 XCP 都包含 Xen、Linux 和主要控制守护程序 xapi。

XCP 和 XenServer 之间共享的 API 称为“XenAPI”。 OpenStack 通常引用 XenAPI,以表明集成同样适用于 XCP 和 XenServer。 有时,粗心的人会专门引用 XenServer,但您可以合理地相信,在 XenServer 上有效运行的任何内容也将在最新版本的 XCP 上运行。

特权域和非特权域

Xen 主机将运行许多虚拟机,VM 或域(在 Xen 上这些术语是同义词)。 其中一个负责运行系统的其余部分,被称为“domain 0”或“dom0”。 它是在 Xen 启动后首先启动的域,拥有存储和网络硬件、设备驱动程序和主要控制软件。 任何其他 VM 都是非特权的,被称为“domU”或“guest”。 所有客户 VM 当然都是非特权的,但您应该注意,在 Xen 上,OpenStack 控制软件 (nova-compute) 也运行在 domU 中。 这为特权系统软件和 OpenStack 软件(其中大部分面向客户)提供了安全隔离级别。 这种架构在后面会更详细地描述。

目前有一个项目正在将 domain 0 分割为多个特权域,称为“driver domains”和“stub domains”。 这将为关键组件提供更好的隔离。 这是一项正在进行的研究项目,您现在不必担心它。 当前的架构只有三个级别的分离:dom0、OpenStack domU 和完全非特权的客户 VM。

半虚拟化与硬件虚拟化域

Xen 虚拟机可以是“半虚拟化 (PV)”或“硬件虚拟化 (HVM)”。 这指的是 Xen、domain 0 和 guest VM 内核之间的交互。 PV guest 知道自己被虚拟化,并将与 Xen 和 domain 0 合作;这为它们提供了更好的性能特征。 HVM guest 不知道自己的环境,硬件必须假装它们正在未虚拟化的机器上运行。 HVM guest 的优点是不需要修改 guest 操作系统,这在运行 Windows 时是必不可少的。

OpenStack 中,客户 VM 可以以 PV 或 HVM 模式运行。 但是,OpenStack domU(即运行 nova-compute 的 domU)必须 运行在 PV 模式下。

部署架构

在 XCP 或 XenServer 上部署 OpenStack 时,您将获得类似以下内容

XenServer-dom0-domU.png

需要注意的关键事项

  • hypervisor:Xen
  • Domain 0:运行 xapi 和 OpenStack 的一些小部分(一些 xapi 插件和网络隔离规则)。 大部分由 XenServer 或 XCP 提供(或您使用 Kronos)。
  • OpenStack domU:nova-compute 代码在 paravirtualized 虚拟机中运行,在受管理的主机上运行。 每个主机运行一个本地 nova-compute 实例。 它通常也会运行 nova-network(取决于您的网络模式)。 在这种情况下,nova-network 正在通过 DHCP 管理分配给 tenant VM 的地址。
  • nova 使用 XenAPI Python 库与 xapi 通信,并使用 Host Internal Management Network 从 domU 到 dom0 而无需离开主机。

关于网络的一些说明

  • 上述图表假定 FlatDHCP 网络(DevStack 默认值)。
  • 有三个主要的 OpenStack 网络:管理流量(RabbitMQ、MySQL 等)、Tenant 网络流量(由 nova-network 控制)和公共流量(浮动 IP、公共 API 端点)。
  • 离开主机的每个网络都通过单独的物理网络接口。 这是最简单的模型,但并非唯一的模型。 您可以选择使用 VLAN 代替隔离此流量,例如。
  • nova-compute 通常使用名为“Guest Installer Network”或“Host Internal Managmenet Network”的主机本地专用网络与 XenServer 通信。

在只有两个物理网络接口的系统上部署 OpenStack 的另一个示例是

DevStackDiagram.png

XenServer

OpenStack 2012.1 (“Essex”) 之前,与 OpenStack 配合使用的所有 XenServer 机器都是独立的机器,通常只使用本地存储。

但是,在 2012.1 及更高版本中,host-aggregates 功能允许您创建 XenServer 主机池(配置共享存储仍然是一项非带内活动)。 此举将启用在使用共享存储时的实时迁移。

Xen 和 libvirt

可以使用 libvirt 管理 Xen。 这对于任何未使用 XCP 工具堆栈的基于 Xen 的系统都是必需的,例如 SUSE Linux 或 Oracle Linux。 不幸的是,这目前测试和支持不足,使用 XCP 或 XenServer 工具堆栈与 OpenStack XenAPI 后端是唯一推荐的方法。

进一步阅读

Xen 是什么?由 Xen.org 提供: http://xen.org/files/Marketing/WhatisXen.pdf

Xen Hypervisor 项目: http://xen.org/products/xenhyp.html

XCP 项目: http://xen.org/products/cloudxen.html