Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

管理指南

Red Hat Virtualization 4.1

Red Hat Virtualization 中的管理任务

Red Hat Virtualization Documentation Team

Red Hat Customer Content Services

摘要

本书包括了与 Red Hat Virtualization 管理员相关的信息。

部分 I. 管理和维护 Red Hat Virtualization 环境

Red Hat Virtualization 环境需要一个系统管理员。系统管理员的任务包括:
  • 管理物理资源和虚拟资源(如主机和虚拟机)。这包括添加主机、升级主机、导入域、转换其它虚拟环境中创建的虚拟机、管理虚拟机池等。
  • 监控系统资源,发现可能会出现的问题(如在一个主机上有太多的负载;没有足够的内存或磁盘空间),并解决这些问题(如把一些虚拟机迁移到其它主机上;关闭一些虚拟机来释放系统资源)。
  • 对虚拟机进行一些操作来满足特定的需求,如升级操作系统、分配更多的内存。
  • 使用标签来管理对象的自定义属性。
  • 管理被保存为公共书签(public bookmark)的搜索。
  • 管理用户账户和用户权限。
  • 对出现问题的用户或虚拟机进行故障排除。
  • 生成报表。

第 1 章 全局配置

配置窗口可以通过管理门户界面中的页头条访问。您可以使用它来对 Red Hat Virtualization 环境中的全局资源(如用户、角色、系统权限、调度策略、实例类型和 MAC 地址池)进行配置,从而来定制用户和环境中的资源进行交互的方式。这个窗口为那些可以应用于多个集群的配置选项提供了一个中心位置。
Accessing the Configure window

图 1.1. 访问配置窗口

1.1. 角色

角色是可以通过 Red Hat Virtualization Manager 配置的一组预先定义的权利。角色为数据中心中不同级别的资源提供了访问和管理权限。
在一个多层管理系统中,对一个容器对象的权限也适用于包括在这个容器中的所有其它对象。例如,一个特定主机上的用户被分配了主机管理员角色,这个用户将有权限对这个主机进行操作,但没有权限去操作其它主机。而如果一个数据中心中的一个用户被分配了主机管理员角色,则这个用户就可以对数据中心的集群中的所有主机进行操作。

1.1.1. 创建一个新角色

当 Red Hat Virtualization 所提供的默认角色无法满足您的要求时,您可以创建一个新角色并根据具体需要对它进行定制。

过程 1.1. 创建一个新角色

  1. 在页头条中点配置按钮打开配置窗口。这个窗口会显示所有默认的用户和管理角色,以及自定义的角色。
  2. 新建新建角色对话框被显示。
    新建角色对话框

    图 1.2. 新建角色对话框

  3. 为新角色输入名称描述
  4. 帐号类型中选择管理员用户
  5. 使用展开所有隐藏所有按钮来显示或隐藏选择复选框以允许操作列表中的对象权限。
  6. 在每个对象上,选择或取消选择相应的操作来设置用户的权限。
  7. 确定。新角色将出现在角色列表中。

1.1.2. 编辑或复制一个角色

您可以编辑新创建的角色,但不能修改默认的角色。如需修改默认的角色,则需要先克隆它后才可进行修改。

过程 1.2. 编辑或复制一个角色

  1. 在页头条中点配置按钮打开配置窗口。这个窗口会显示所有默认的用户和管理角色,以及自定义的角色。
  2. 选择需要修改的角色。点编辑打开编辑角色窗口,或点复制打开复制角色窗口。
  3. 如果需要,编辑角色的名称描述
  4. 使用展开所有隐藏所有按钮来显示或隐藏所列出对象的权限。您也可以显示或隐藏每个对象的权限。
  5. 在每个对象上,选择或取消选择相应的操作权限。
  6. 确定

1.1.3. 用户角色和授权示例

下面的几个示例展示了如何应用本章所介绍的授权机制来实现不同的需求。

例 1.1. 集群权利

Sarah 是某公司财务部门的系统管理员。财务部门的所有虚拟资源都在 Red Hat Virtualization 环境中的一个名为 Accounts集群中。Sarah 被分配了这个集群的 ClusterAdmin 角色,这样她就可以管理这个集群中的所有虚拟机。这些管理任务包括编辑、添加和删除虚拟资源以及进行快照。但是,Sarah 没有管理此集群以外资源的权利。另外,因为 ClusterAdmin 是一个管理员角色,所以 Sarah 可以使用管理门户管理这个集群中的资源,但没有使用用户门户访问这些资源的权利。

例 1.2. VM PowerUser 权限

John 是财务部门的一个软件开发人员,他需要使用虚拟机安装并测试他所开发的软件。Sarah 为他创建了一个名为 johndesktop 的虚拟机,并为 John 分配了 johndesktop 虚拟机的 UserVmManager 角色。UserVmManager 这个角色会允许 John 通过用户门户访问这台虚拟机,并可以修改它或为它添加资源(如添加新的虚拟磁盘)。因为 UserVmManager 是一个用户角色,John 将没有权限使用管理门户。

例 1.3. 数据中心 Power User 角色权限

Penelope 是一个办公室行政经理。除了她的本职工作外,Penelope 还会帮助人事经理做一些与招聘相关的工作。这些招聘的工作会需要使用一个特殊的招聘应用程序。
Penelope 有一台专用的计算机,用于处理办公室行政事务。她希望创建一台单独的虚拟机来运行招聘应用。她在新虚拟机所在的数据中心中获得了 PowerUserRole 权限。这是因为,创建虚拟机需要更改数据中心内的一些资源,例如在存储域中创建虚拟磁盘镜像。
请注意,这和为 Penelope 分配 DataCenterAdmin 权限是不同的。作为一个数据中心的 PowerUser,Penelope 可以登录到用户门户,在她所在的数据中心中的虚拟机上进行与虚拟机相关的操作。但是,她不能进行数据中心级的操作(如为数据中心附加主机或存储)。

例 1.4. 网络管理员权限

Chris 是 IT 部门的网络管理员。她的日常工作是为 IT 部门的 Red Hat Virtualization 环境创建、配置、管理和删除网络。进行这些工作需要资源的管理权限,以及每个资源上的网络管理权限。 如果为 Chris 分配了 IT 部门的数据中心的 NetworkAdmin 权利,她就可以在这个数据中心中添加或删除网络,并为这个数据中心中的所有虚拟机添加或删除网络。
Chris 的主要工作是管理公司的虚拟环境,她的手下还有另外一个网络管理员 - Pat。Pat 的任务是管理为内部培训部门创建的一个较小的虚拟环境。Chris 为 Pat 分配了内部培训部门所使用的虚拟机的 VnicProfileUserUserVmManager 权限。因为 Pat 具有了这些权限,他就可以使用用户门户中的扩展标签页来执行一些简单的管理任务,如为虚拟机添加网络接口。但是,他没有权限去改变虚拟机所在主机上的网络,也没有权限去改变虚拟机所在的数据中心上的网络。

例 1.5. 定制角色权限

Rachel 在 IT 部门工作,她的职责是管理 Red Hat Virtualization 环境中的用户帐号。她需要有添加用户账户并为用户分配适当角色和权限的权利。她自己并不使用任何虚拟机,也不需要管理主机、虚拟机、集群和数据中心的权限。Red Hat Virtualization 并没有提供一个自带的角色可以满足 Rachel 的需要,因此需要创建一个自定义的角色来提供 Rachel 所需要的权限。
UserManager 定制角色

图 1.3. UserManager 定制角色

上面的 UserManager 定制角色有权利进行与处理用户、权限和角色相关的操作。这些操作包括在图 1.3 “UserManager 定制角色”所显示的最高级别的系统下。这意味着这些权限对系统中的所有对象都有效。另外,这个角色的帐号类型被设置为管理员,在 Rachel 被分配了这个角色后,她将可以使用管理门户,而不能使用用户门户。

1.2. 系统权限

用户需要权限来对对象(可以是独立的对象,也可以是容器对象)进行操作。
权限和角色

图 1.4. 权限和角色

对容器对象有效的权限同样对这个容器中所包括的对象有效。以下是系统中的对象分级结构示意图。
Red Hat Virtualization 对象的分级结构

图 1.5. Red Hat Virtualization 对象的分级结构

1.2.1. 用户属性

角色和权限是用户所具有的属性。角色是预先定义的一组可以访问不同级别的物理和虚拟资源的权利。多层的管理机制提供了一个"细颗粒(finely grained)"的权限分级结构。例如,一个数据中心的管理员可以管理这个数据中心中的所有对象,而一个主机管理员只有对这个物理主机的管理权限。一个用户可以有权限使用一个虚拟机,但没有权限为虚拟机的设置进行任何改变;而另一个用户可以有权限来配置一个虚拟机。

1.2.2. 用户角色和管理员角色

Red Hat Virtualization 提供了一组预先配置好的角色,这些角色的权限从具有整个系统级别的管理员权限,到只能访问一个独立虚拟机的最终用户权限。您无法改变或删除系统默认的角色,但您可以克隆它们后再修改新的角色,或根据需求创建新的角色。角色被分为两类:
  • 管理员角色:可以通过访问管理门户来管理物理资源和虚拟资源。
  • 用户角色:可以通过访问用户门户来管理和访问虚拟机和模板。
例如,您具有一个集群上的管理员角色,您可以通过管理门户管理这个集群中的所有虚拟机。但是,您不能通过用户门户来访问集群中的任何虚拟机,因为这需要用户角色。

1.2.3. 用户角色介绍

下表描述了可以通过用户门户访问和配置虚拟机的基本用户角色。

表 1.1. Red Hat Virtualization 基本用户角色

角色权利注记
UserRole可以访问虚拟机和虚拟机池。可以登录到用户门户,使用被分配的虚拟机和虚拟机池,查看虚拟机的状态和详细信息。
PowerUserRole可以创建和管理虚拟机和模板。使用配置窗口为用户在整个环境或特定数据中心或集群中分配这个角色。例如,如果一个 PowerUserRole 角色在数据中心级上被分配,具有这个角色的用户就可以在这个数据中心上创建虚拟机和模板。
UserVmManager一个虚拟机的系统管理员。可以管理虚拟机、创建并使用快照。当一个用户通过用户门户创建了一个虚拟机,这个用户将自动具有那台虚拟机的 UserVmManager 角色。
下表介绍了高级用户角色,使用这些角色可以更精确地控制用户通过用户门户访问资源的权限。

表 1.2. Red Hat Virtualization 高级用户角色

角色权利注记
UserTemplateBasedVm只有与使用模板相关的权限。可以使用模板创建虚拟机。
DiskOperator虚拟磁盘用户。可以使用、创建和编辑虚拟磁盘,并可以继承附加了这个虚拟磁盘的虚拟机的使用权限。
VmCreator可以通过用户门户创建虚拟机。这个角色不针对于一个特定的虚拟机,使用配置窗口来在整个环境的范围上为用户分配这个角色。另外,您也可以为特定的数据中心或集群分配这个角色。如果您在一个集群范围内分配了这个角色,您还必须在这个数据中心范围或特定的存储域上分配 DiskCreator 角色。
TemplateCreator可以在被分配的资源中创建、编辑、管理和删除虚拟机模板。这个角色应用于整个环境,而不是一个特定的模板,使用配置窗口来为用户分配这个角色。另外,还可以把这个角色应用到特定的数据中心、集群或存储域中。
DiskCreator可以在分配的集群或数据中心中创建、编辑、管理和删除虚拟磁盘。这个角色应用于整个环境,而不是一个特定的磁盘,使用配置窗口来为用户分配这个角色。另外,还可以把这个角色应用到特定的数据中心、集群或存储域中。
TemplateOwner可以编辑和删除模板,为模板分配和管理用户权限。创建模板的用户会被自动分配这个角色。没有模板的 TemplateOwner 角色的用户将无法查看或使用这个模板。
VnicProfileUser虚拟机和模板的逻辑网和网络接口用户可以为特定的逻辑网络添加或删除网络接口。

1.2.4. 管理员角色介绍

下表描述了可以通过管理门户访问和配置资源的基本管理员角色。

表 1.3. Red Hat Virtualization 基本用户角色

角色权利备注
SuperUserRed Hat Virtualization 环境的系统管理员。具有访问所有对象的权限并可以管理所有数据中心中的全部对象。
ClusterAdmin集群管理员。具有一个特定集群下的所有资源的管理权限。
DataCenterAdmin数据中心管理员。具有一个特定数据中心中除了存储以外的所有资源的管理权限。

重要

您需要在目录管理服务器上单独创建一个用户作为 Red Hat Virtualization 的管理员,而不要使用目录服务器本身的管理员作为 Red Hat Enterprise Virtualization 的管理员。
下表介绍了高级管理员角色,使用这些角色可以更精确地控制用户通过管理门户访问资源的权限。

表 1.4. Red Hat Virtualization 高级系统管理员角色

角色权利备注
TemplateAdmin虚拟机模板的管理员。可以创建、删除和配置模板中的存储域和网络,并可以在不同域间移动模板。
StorageAdmin存储管理员。可以创建、删除、配置和管理一个被分配的存储域。
HostAdmin主机管理员。可以附加、删除、配置和管理一个特定的主机。
NetworkAdmin网络管理员。可以配置和管理一个特定数据中心或集群中的网络。一个数据中心或集群的网络管理员同时也继承了这个数据中心或集群中的虚拟机上的网络权限。
VmPoolAdmin虚拟机池的系统管理员。可以创建、删除和配置一个虚拟机池;添加和删除池用户;在池中的虚拟机上进行基本的操作。
GlusterAdminGluster 存储管理员。可以创建、删除、配置和管理 Gluster 存储域。
VmImporterExporter虚拟机的导入和导出管理员。可以导入并导出虚拟机。可以查看由其它用户导出的所有虚拟机和模板。

1.3. 调度策略

调度策略就是一组规则,它定义了虚拟机在应用这个调度策略的集群中的主机间的分配逻辑。调度策略通过使用过滤器(filter)、权重(weighting)和负载均衡(load balancing)策略来定义这个分配逻辑。Red Hat Enterprise Virtualization Manager 提供了 5 个默认的调度策略 - Evenly_DistributedInClusterUpgradeNonePower_SavingVM_Evenly_Distributed。您也可以通过定义新的调度策略来实现对虚拟机分配逻辑的细化。

1.3.1. 创建调度策略

您可以创建新的调度策略来控制虚拟机在 Red Hat Virtualization 环境中分配的逻辑。

过程 1.3. 创建调度策略

  1. 点管理门户的页头条中的配置按钮来打开配置窗口。
  2. 调度策略查看调度策略标签页。
  3. 新建打开新建调度策略窗口。
    The New Scheduling Policy Window

    图 1.6. 新建调度策略窗口

  4. 为调度策略输入名称描述
  5. 配置过滤器模块:
    1. 过滤器模块项中,把需要在调度策略中使用的过滤器模块从禁用的过滤器项中拖到已启用过滤器项中。
    2. 过滤模块可以被设置为第一个(具有最高的优先级)或最后一个(具有最低的优先级)。
      如需设置优先级,在一个过滤器模块上点鼠标右键,在位置项中选第一个最后一个
  6. 配置权重(weight)模块:
    1. 权重模块项中,把需要在调度策略中使用的权重模块从禁用的权重 项中拖到已启用权重 项中。
    2. 使用启用的权重模块左面的 +- 按钮来增加或减少相应模块的权重值。
  7. 指定一个负载均衡策略:
    1. 负载平衡器项中的下拉菜单中选择需要在调度策略中应用的负载均衡策略。
    2. 属性项中的下拉菜单中选择需要在调度策略中应用的负载均衡属性,在属性右面的输入框中为相应的属性设定一个值。
    3. 使用 +- 按钮来添加或删除额外的属性。
  8. 确定

1.3.2.  新建调度策略和编辑调度策略窗口中的设置介绍

下表包括了可以在新建调度策略编辑调度策略窗口中使用的选项详情。

表 1.5. 新建调度策略和编辑调度策略的设置

描述
名称
调度策略的名称。Red Hat Virtualization Manager 使用这个名称来代表这个调度策略。
描述
调度策略的描述。这个项不是必需的,但我们推荐使用它。
过滤器模块
用来控制虚拟机可以在一个集群中的哪些主机上运行。启用相关的过滤器可以把不满足条件的主机过滤掉,以下介绍了每个过滤器的详情:
  • CpuPinning:不满足 CPU 固定定义的主机。
  • Migration:防止迁移到同一个主机。
  • PinToHost:除虚拟机被固定的主机外的主机。
  • CPU-Level:与虚拟机的 CPU 拓扑不匹配的主机。
  • CPU:CPU 数量少于分配给虚拟机的 CPU 数量的主机。
  • Memory:没有足够内存运行虚拟机的主机。
  • VmAffinityGroups:不满足一个关联组(affinity group)中的虚拟机的指定条件的主机。例如,一个包括在关联组中的虚拟机必须运行在相同的主机上,或必须运行在独立的主机上。
  • InClusterUpgrade:运行比虚拟机当前运行在的操作系统更老版本的操作系统的主机。
  • HostDevice:不支持虚拟机所需的主机设备功能的主机。
  • HA:强制承载引擎的虚拟机只在高可用性主机上运行。
  • Emulated-Machine:没有适当仿真机器支持的主机。
  • Network:没有安装虚拟机网卡所需网络的主机;或集群的显示网络没有安装的主机。
权重模块
决定在集群中的哪些主机上运行虚拟机时需要考虑因素的权重。
  • InClusterUpgrade:按照所使用的操作系统的版本对主机进行权重设置。使用较老版本操作系统的主机的权重较低,而使用较新版本操作系统的主机会获得更高的优先级。
  • OptimalForHaReservation:主机权重由它们的高可用性值决定。
  • None:主机权重由平衡分配模块(even distribution module)决定。
  • OptimalForEvenGuestDistribution:主机权重由在这些主机上运行的虚拟机数量决定。
  • VmAffinityGroups:主机权重由为虚拟机所定义的关联组(affinity group)决定。这个权重模块会根据关联组的参数来决定处于关联组中的虚拟机在相同或独立的主机上运行的可能性。
  • OptimalForPowerSaving:主机权重由它们的 CPU 使用情况决定,高 CPU 使用率的主机有更高的优先级。
  • OptimalForEvenDistribution:主机权重由它们的 CPU 使用情况决定,低 CPU 使用率的主机有更高的优先级。
  • HA:主机的权重由它们的高可用性值决定。
负载平衡器
您可以从下拉菜单中选择一个应用的负载均衡模块。负载均衡模块决定了虚拟机从高利用率的主机迁移到低利用率主机迁移所使用的逻辑。
属性
这个下拉菜单允许您为负载均衡模块添加或删除属性,它只在为调度策略选择了负载均衡模块后才有效。在默认的情况下,“No properties”项会被选择,而下拉菜单中可选择的值则由您所选择的负载均衡模块来决定。使用 +- 按钮来为相应的负载均衡模块添加或删除属性。

1.4. 实例类型

实例类型可以被用来定义虚拟机的硬件配置。在创建和编辑虚拟机时通过选择实例类型将会自动设置硬件的配置。在用户创建多个具有相同硬件配置的虚拟机时,使用它可以避免多次输入相同的配置信息。
在默认的情况下,用户可以选择下表中介绍的预定义实例类型:

表 1.6. 预定义的实例类型

名称
内存
vCPU
Tiny
512 MB
1
Small
2 GB
1
Medium
4 GB
2
Large
8 GB
2
XLarge
16 GB
4
系统管理员也可以从配置窗口的实例类型标签页中创建、编辑和删除实例类型。
实例类型标签页

图 1.7. 实例类型标签页

如果新建虚拟机编辑虚拟机窗口中的项与一个实例类型相关联,这些项的旁边会有一个链接图标( )。如果这些项中的某些值被改变后,虚拟机将不再和原来的实例类型相关联,并改为 Custom,它旁边的链接图标页变为断开链接的图标( )。但是,如果这些项的值又被改为原来的值,这个虚拟机又会和原来的实例类型相关联,图标也变为链接图标。

1.4.1. 创建实例类型

系统管理员可以创建新的实例类型,然后用户将可以在创建或编辑虚拟机时选择它。

过程 1.4. 创建实例类型

  1. 在页头条中点配置
  2. 实例类型标签页。
  3. 新建打开新建实例类型窗口。
    新实例类型窗口

    图 1.8. 新实例类型窗口

  4. 为实例类型输入名称描述信息。
  5. 点击显示高级选项,再根据需要配置接口类型设置。新实例类型窗口中显示的设置与新建虚拟机窗口中的完全相同,但仅限于相关的字段。请参阅虚拟机管理指南中的新建虚拟机和编辑虚拟机窗口中的设置介绍
  6. 确定
新创建的实例类型出现在配置窗口的实例类型标签页中。您可以在创建或编辑虚拟机时从实例类型下拉列表中选择新建的实例类型。

1.4.2. 编辑实例类型

系统管理员可以在配置窗口中编辑存在的实例类型。

过程 1.5. 编辑实例类型属性

  1. 在页头条中点配置
  2. 实例类型标签页。
  3. 选择需要编辑的实例类型。
  4. 编辑打开编辑实例类型窗口。
  5. 根据需要修改相关设置。
  6. 确定
实例类型的配置被改变。基于这个实例类型的新建虚拟机和已经存在的虚拟机在重启后都将使用新的配置。

1.4.3. 删除实例类型

过程 1.6. 删除一个实例类型

  1. 在页头条中点配置
  2. 实例类型标签页。
  3. 选择需要删除的实例类型。
  4. 删除打开删除实例类型窗口。
  5. 如果存在基于要被删除的实例类型的虚拟机,一个包括了关联虚拟机列表的窗口会出现。如果需要删除实例类型,选批准操作,否则,点取消
  6. 确定
实例类型被从实例类型列表中删除,在创建新虚拟机时将无法使用这个实例类型。所有以前和被删除的实例类型相关联的虚拟机将改为和 Custom(没有实例类型)相关联。

1.5. Mac 地址池

MAC 地址池定义了可以分配给各个集群的 MAC 地址范围。各个集群都会指定一个 MAC 地址池。通过使用 MAC 地址池,Red Hat Virtualization 可以自动为新的虚拟网络设备生成并分配 MAC 地址,从而帮助避免 MAC 地址重复问题。当与一个集群相关的所有 MAC 地址都位于分配的 MAC 地址池范围内时,MAC 地址池对内存的使用会更有效。
同一个 MAC 地址池可以被多个集群共享,而每个集群只能有一个分配的 MAC 地址池。Red Hat Virtualization 会创建一个默认的 MAC 地址池,在没有分配其它 MAC 地址池时会使用这个默认的池。如需了解为集群分配 MAC 地址池的信息,请参阅 第 5.2.1 节 “创建一个新集群”
MAC 地址池会记住池中最新返回的每个 MAC 地址,在有地址分配请求时,分配最新返回的 MAC 地址后面的第一个可用地址。当最新返回的地址后面没有可用的地址时,系统会从地址池范围的最前面开始查找可用的地址。如果在一个 MAC 地址池中有多个 MAC 地址范围都存在可用的 MAC 地址,则选择使用哪个范围来满足请求的方式和选择可用 MAC 地址的方式相同。

1.5.1. 创建 Mac 地址池

您可以创建新的 MAC 地址池。

过程 1.7. 创建 Mac 地址池

  1. 点页头条中的配置按钮打开配置窗口。
  2. MAC 地址池标签页。
  3. 添加打开新建 MAC 池窗口。
    新建 MAC 地址池窗口

    图 1.9. 新建 MAC 地址池窗口

  4. 输入新 MAC 地址池的名称描述
  5. 允许重复选项来允许池中的一个 MAC 地址可以被多次使用。MAC 地址池不会自动使用一个重复的 MAC 地址,但在这个选项被选择时,用户可以手工选择使用一个重复的 MAC 地址。

    注意

    如果一个 MAC 地址池禁用了“允许重复”选项,而另外一个 MAC 地址池启用了它,则每个 MAC 地址在禁用这个选项的池中只能使用一次,而在启用这个选项的池中可以被使用多次。
  6. 输入 MAC 地址范围。点项旁的加号可以输入多个地址范围。
  7. 确定

1.5.2. 编辑 MAC 地址池

您可以编辑 MAC 地址池的设置,如池中有效的 MAC 地址范围、是否允许地址重复。

过程 1.8. 编辑 MAC 地址池属性

  1. 点页头条中的配置按钮打开配置窗口。
  2. MAC 地址池标签页。
  3. 选择需要编辑的 MAC 地址池。
  4. 编辑按钮打开编辑 MAC 地址池窗口。
  5. 根据需要修改名称描述允许重复,以及MAC 地址范围项的内容。

    注意

    如果修改了 MAC 地址范围,那些已存在的 NIC 的 MAC 地址不会被重新分配。如果已分配的 MAC 地址位于新的 MAC 地址范围以外,它们会作为针对特定用户的 MAC 地址被添加,并可以继续由 MAC 地址池进行跟踪。
  6. 确定

1.5.3. 编辑 MAC 地址池权限

在 MAC 地址池创建后,您可以编辑它的用户的权限。用户权限可以用来控制哪些数据中心可以使用 MAC 地址池。如需了解更多与添加新用户权限相关的信息,请参阅 第 1.1 节 “角色”

过程 1.9. 编辑 MAC 地址池权限

  1. 点页头条中的配置按钮打开配置窗口。
  2. MAC 地址池标签页。
  3. 选择相应的 MAC 地址池。
  4. 为 MAC 地址池编辑用户权限:
    • 为 MAC 地址池添加用户权限:
      1. 配置窗口底部中的用户权限框中的添加
      2. 搜索并选择所需的用户。
      3. 要分配的角色:下拉列表中选择需要的角色。
      4. 确定添加用户权限。
    • 从 MAC 地址池中删除用户权限:
      1. 配置窗口底部中的用户权限框中选要删除的用户权限。
      2. 删除来删除用户。

1.5.4. 删除 MAC 地址池

如果创建的 MAC 地址池没有与集群关联,您可以将它删除,但无法删除默认的 MAC 地址池。

过程 1.10. 删除 MAC 地址池

  1. 点页头条中的配置按钮打开配置窗口。
  2. MAC 地址池标签页。
  3. 选择需要删除的 MAC 地址池。
  4. 删除按钮打开删除 MAC 地址池窗口。
  5. 确定

第 2 章 仪表板

仪表板(Dashboard)提供了一个 Red Hat Virtualization 系统状态的概况信息。它会显示 Red Hat Virtualization 的资源和利用率的总结数据,用户可用使用它来发现潜在的问题并作出相应的调整。
默认情况下,每 15 分钟 Data Warehouse 会更新仪表板的信息;Manager API 每 15 秒会更新仪表板的信息。当仪表板每次被刷新时(用户从其它标签页返回到仪表板,或手工更新仪表板),它的内容也会被更新。仪表板不会被自动刷新。清单卡(inventory card)的信息由 Manager API 提供,利用率信息由 Data Warehouse 提供。仪表板作为一个 UI 插件和 Manager 一起被自动安装和升级。
仪表板

图 2.1. 仪表板

2.1. 先决条件

仪表板需要安装并配置 Data Warehouse。如需了解安装和配置 Data Warehouse 的信息,请参阅 Data Warehouse 指南中的安装和配置 Data Warehouse

2.2. 全局清单

仪表板的上部提供了一个 Red Hat Virtualization 资源的全局清单,它包括了数据中心、集群、主机、存储域、虚拟机和事件项。其中的图标显示了每个资源的状态,数字代表了处于那个状态的资源的数量。
全局清单

图 2.2. 全局清单

标题框中显示了一类资源的数量,在它的下面显示了它们的状态。点资源标题框会进入 Red Hat Virtualization Manager 的相关标签页。集群的状态总被显示为 N/A。

表 2.1. 资源状态

图标
状态
没有资源添加到 Red Hat Virtualization。
显示处于警告状态的资源数量。只适用于处于警告状态的资源。点图标进入相关的标签页。每个资源的适用范围都会不同:
  • 数据中心:只适用于没有运行的或没有响应的数据中心。
  • 主机:只适用于未分配的、处于维护模式的、正安装的、正重启的、正为维护进行准备的、正等待批准的或正在连接的主机。
  • 存储域:只适用于未初始的、未附加的、不活跃的、处于维护模式、为维护进行准备的、正取消附加的或正在激活的存储域。
  • 虚拟机:只适用于正在开机的、暂停的、正在迁移的、等待的、挂起的或正在关机的虚拟机。
  • 事件:只适用于有严重性警告的事件。
显示处于在线状态的资源数量。点图标进行相关的标签页,只适用于处于在线状态的资源。
显示处于下线状态的资源数量。点图标进行相关的标签页,只适用于处于在线状态的资源。每个资源的适用范围都会不同。
  • 数据中心:只适用于没有初始化的、处于维护模式的,以及下线的数据中心。
  • 主机:只适用于没有响应的、有错误的、有安装错误的、无法正常工作的、正在初始化的或下线的主机。
  • 存储域:只适用于未附加的或不活跃的存储域。
  • 虚拟机:只适用于下线的、没有响应的或正在重启的虚拟机。
显示处于提示状态的事件数量。点图标进入事件标签页,只适用于严重级别为提示(alert)的事件。
显示处于错误状态的事件数量。点图标进入事件标签页,只适用于严重级别为错误(error)的事件。

2.3. 全局利用率

全局利用率部分显示了 CPU、内存和存储的系统利用率信息。
全局利用率

图 2.3. 全局利用率

  • 它的上部显示了可用 CPU、内存、存储的百分比,以及过度分配的比率。例如,CPU 的过度分配比率是通过虚拟内核的数量除以可以用来运行虚拟机的物理内核数量得出的。这些信息来自于 Data Warehouse。
  • 圆形图显示了 CPU、内存和存储的使用百分比,它是根据过去 5 分钟的平均使用情况计算出的所有主机的平均使用数据。把鼠标光标移到圆形图的某个部分会显示相应项的值。
  • 底部的条形图显示了过去 24 小时内的使用趋势。每个数据点都会显示相应小时的平均使用情况。把鼠标光标移到条形图的特定点会显示 CPU 图所使用的时间和使用百分比,以及内存和存储图所使用的使用量数据。

2.3.1. 高利用率的资源

高利用率的资源(内存)

图 2.4. 高利用率的资源(内存)

点仪表板中的全局利用率项中的圆形图会显示对 CPU、内存或存储的利用率高的资源列表。对于 CPU 和内存,会显示 10 个利用率最高的主机和虚拟机;对于存储,会显示 10 个利用率最高的存储域和虚拟机。指向使用情况条形图右面的箭头显示了资源在最近一分钟的使用趋势。

2.4. 集群利用率

集群利用率显示了CPU 和内存的集群利用率。
集群利用率

图 2.5. 集群利用率

2.4.1. CPU

一个特定集群的 CPU 利用率的热图显示了在过去 24 小时内的 CPU 平均利用率。把鼠标光标移到热图上会显示集群的名称。点热图会进入主机标签页,并显示在一个特定集群中的搜寻结果(以 CPU 的利用率排序)。计算集群对 CPU 的使用情况数据是通过计算集群中的主机的 CPU 利用率的平均值而得出的。它会计算每个主机在过去 24 小时内的 CPU 利用率的平均值,从而计算出集群对 CPU 的总平均使用数据。

2.4.2. 内存

一个特定集群的内存利用率热图显示了在过去 24 小时内内存平均利用率。把鼠标光标移到热图上会显示集群的名称。点热图会进入主机标签页, 并显示在一个特定集群中的搜寻结果(以内存利用率排序)。集群对内存的使用情况数据是通过计算集群中的总内存使用情况(以 GB 为单位)而得出的。它会计算每个主机在过去 24 小时内的平均主机内存利用率,从而计算出集群对内存的总平均使用数据。

2.5. 存储利用率

存储利用率在热图中显示存储利用率数据。
存储利用率

图 2.6. 存储利用率

热图显示在过去 24 小时内存储的平均利用率。集群对存储的使用情况数据是通过计算集群中的总存储利用率而得出的。它会计算每个主机在过去 24 小时内的平均存储利用率,从而计算出集群对存储的总平均使用数据。把鼠标光标移到热图上会显示存储域的名称。点热图会进入存储标签页, 并显示以利用率进行排序的存储域。

部分 II. 管理资源

第 3 章 服务质量

Red Hat Virtualization 允许您通过定义服务质量(quality of service)来对您环境中的可访问资源的输入输出、计算资源和网络容量进行精细级别控制。 服务质量在数据中心一级配置,并可以分配给在集群和存储域中创建的配置集。然后,这些配置集可以分配给集群和存储域中的独立资源。

3.1. 存储服务质量

存储服务质量定义了在一个存储域中的虚拟磁盘的最大吞吐级别和输入、输出操作的最大级别。为虚拟磁盘分配存储服务质量允许您对存储域的性能进行细化配置,并可以防止发生因为对一个虚拟磁盘的操作而影响到同一个存储域中的其它虚拟磁盘容量的问题。

3.1.1. 创建一个存储服务质量

创建一个存储服务质量。

过程 3.1. 创建一个存储服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. 存储
  4. 新建
  5. QoS 名称项中输入这个服务质量的名称。
  6. 描述项中输入这个服务质量的描述信息。
  7. 设置服务质量的吞吐量:
    1. 选择吞吐量选择框。
    2. 总计项中输入允许的最大总吞吐量。
    3. 项中输入读操作所允许的最大吞吐量。
    4. 项中输入写操作所允许的最大吞吐量。
  8. 指定输入和输出服务质量:
    1. 选择 IOps 选择框。
    2. 总计项中输入每分钟所允许的最多输入和输出操作的数量。
    3. 项中输入每分钟所允许的最多输入操作的数量。
    4. 项中输入每分钟所允许的最多输出操作的数量。
  9. 确定
您创建了一条存储服务质量,并可以基于这个服务质量在属于这个数据中心的数据域中创建磁盘配置集。

3.1.2. 删除一个存储服务质量

删除一个存在的存储服务质量。

过程 3.2. 删除一个存储服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. 存储
  4. 选择需要删除的存储服务质量。
  5. 删除
  6. 出现提示时点确定
您删除了一条存储服务质量,这条服务质量将不再有效。如果有磁盘配置集使用这个服务质量,这些配置集的服务质量被自动设置为 [unlimited]

3.2. 虚拟机网络服务质量

通过设置虚拟机网络服务质量,用户可以使用一个配置集来控制独立虚拟网络控制器的网络流量。它可以控制不同网络层上的带宽,并控制网络资源使用的情况。

3.2.1. 创建一个虚拟机网络服务质量

创建一个虚拟机网络服务质量,并把它应用到虚拟网络接口控制器(vNIC)配置集(也被称为虚拟机网络接口配置集)来控制网络流量。

过程 3.3. 创建一个虚拟机网络服务质量

  1. 数据中心标签页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. VM 网络
  4. 新建
  5. 名称项中输入这个虚拟机网络服务质量的名称。
  6. 输入转入的转出的网络流量的限制值。
  7. 确定
您创建了一个虚拟机网络服务质量,并可以在虚拟网络接口控制器中使用它。

3.2.2. 新建虚拟机网络 QoS 和编辑虚拟机网络 QoS 窗口中的设置介绍

虚拟机网络服务质量(QoS)设置允许用户在三个不同方面设置网络带宽的限制值。

表 3.1. 虚拟机网络 QoS 设置

描述
数据中心
虚拟机网络 QoS 协议被添加到的数据中心。这个项的值会根据所选的数据中心自动被设置。
名称
在 Manager 中代表这个虚拟机网络 QoS 协议的名称。
转入的
这个设置对流入网络的流量进行控制。选择/取消转入的选项来启用/禁用这个设置。
  • 平均值:流入网络流量的平均速度。
  • 高峰:流入网络流量的峰值速度。
  • Burst:burst 发生时的流入网络流量的速度。
转出的
这个设置对流出网络的流量进行控制。选择/取消转出的选项来启用/禁用这个设置。
  • 平均值:流出网络流量的平均速度。
  • 高峰:流出网络流量的峰值速度。
  • Burst:burst 发生时的流出网络流量的速度。

3.2.3. 删除一个虚拟机网络服务质量

删除一个存在的虚拟机网络服务质量。

过程 3.4. 删除一个虚拟机网络服务质量

  1. 数据中心标签页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. VM 网络
  4. 选择需要删除的虚拟机网络服务质量。
  5. 删除
  6. 出现提示时点确定
您删除了一个虚拟机网络服务质量。

3.3. 主机网络服务质量

主机网络服务器质量配置主机上的网络来控制通过物理接口的网络流量。使用主机网络服务质量可以通过控制在相同的物理网络接口控制器中的网络资源使用情况来对网络性能进行微调。这可以防止,因为物理网络上的一个网络有太多的网络数据造成同一个物理网络上的其它网络无法正常工作的情况出现。通过配置主机网络服务质量,可以使在同一个物理网络上的不同网络都正常工作。

3.3.1. 创建一个主机网络服务质量

创建一个主机网络服务质量。

过程 3.5. 创建一个主机网络服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. 主机网络标签页。
  4. 新建
  5. QoS 名称项中输入这个服务质量的名称。
  6. 描述项中输入这个服务质量的描述信息。
  7. 加权重的共享速率限制 [Mbps]实现的速率 [Mbps] 项中输入相应的值。
  8. 确定

3.3.2. 新建主机网络服务质量和编辑主机网络服务质量窗口中的设置介绍

主机网络服务质量设置可以用来配置出站网络流量的带宽限制。

表 3.2. 主机网络 QoS 设置

描述
数据中心
主机网络 QoS 协议被添加到的数据中心。这个项的值会根据所选的数据中心自动被设置。
QoS 名称
在 Manager 中代表这个主机网络 QoS 协议的名称。
描述
主机网络 QoS 策略的描述。
转出的
应用到转出的网络流量的设置。
  • 加权重的共享:指定一个特定网络应该被分配的逻辑连接的容量(相对于连接到同一个逻辑连接的其它网络)。准确的共享取决于在这个连接上的所有网络共享的总和。在默认情况下,它的值在 1 到 100 之间。
  • 速率限制 [Mbps]:一个网络可以使用的最大带宽。
  • 实现的速率 [Mbps]:一个网络所需的最小带宽。实现的速率并不一定可以被保证,它取决于网络的架构以及同一个逻辑连接上的其它网络的“实现的速率”设置。

3.3.3. 删除一个主机网络服务质量

删除一个存在的网络服务质量。

过程 3.6. 删除一个主机网络服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS 标签页。
  3. 主机网络标签页。
  4. 选择需要删除的网络服务质量。
  5. 删除
  6. 出现提示时点确定

3.4. CPU 服务质量

CPU 服务质量定义了一个集群中的虚拟机可以从运行它的主机上获得的最大计算处理能力(以所占主机的所有计算处理能力的百分比表示)。通过为一个虚拟机关联一个 CPU 服务质量,可以防止因为集群中的一个虚拟机的负载占用太多计算处理资源而影响到同一集群中其它虚拟机可以使用的资源。

3.4.1. 创建一个 CPU 服务质量

创建一个 CPU 服务质量。

过程 3.7. 创建一个 CPU 服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS
  3. CPU
  4. 新建
  5. QoS 名称项中为这个服务质量输入一个名称。
  6. 描述项中输入这个服务质量的描述信息。
  7. 限制项中输入服务质量所允许的最大处理能力(以百分比的形式,但不要包括 % 符号)。
  8. 确认
您创建了一个 CPU 服务质量,并可以在属于此数据中心的集群中创建基于这个服务质量的 CPU 配置集。

3.4.2. 删除一个 CPU 服务质量

删除一个存在的 CPU 服务质量。

过程 3.8. 删除一个 CPU 服务质量

  1. 数据中心资源页并选择一个数据中心。
  2. 在详情框中点 QoS
  3. CPU
  4. 选择需要删除的 CPU 服务质量。
  5. 删除
  6. 提示时点确定
您删除了一条 CPU 服务质量,这条服务质量将不再有效。如果有 CPU 配置集基于这个服务质量,这些配置集的 CPU 服务质量值将被自动设置为 [unlimited]

第 4 章 数据中心

4.1. 数据中心介绍

数据中心就是在一个特定环境中使用的一组资源的逻辑代表。数据中心被看做为一个容器资源(container resource),它由逻辑资源(集群和主机)、网络资源(逻辑网络和物理网卡)以及存储资源(存储域)组成。
一个数据中心可以包括多个集群,(每个集群可以包括多个主机),以及多个与它相关联的存储域。数据中心上的每个主机可以支持多个虚拟机。一个 Red Hat Virtualization 环境可以包括多个数据中心,用户通过使用数据中心的结构把不同的数据中心分离开。
所有的数据中心都可以通过一个统一的管理门户进行管理。
数据中心

图 4.1. 数据中心

Red Hat Virtualization 在安装时会自动生成一个默认的数据中心。根据需要,您可以对这个默认的数据中心进行配置;或创建一个新的数据中心并给它一个适当的名字。
数据中心中的项

图 4.2. 数据中心中的项

4.2. 存储池管理器(SPM)

存储池管理器(Storage Pool Manager,简称 SPM)是数据中心中的一个特定主机所承担的角色,它被用来管理数据中心中的存储域。SPM 可以在数据中心中的任何一个主机上运行,Red Hat Virtualization Manager 会把这个角色赋予一个主机。作为 SPM 的主机并不需要被完全作为 SPM 使用,它也可以运行其它虚拟机资源。
SPM 通过协调存储域中的元数据(metadata)来控制对存储的访问。它的功能包括创建、删除和管理虚拟磁盘(磁盘镜像)、快照、模板,以及为 SAN 上的块设备分配存储空间。为了保持元数据的可靠性,一个数据中心中只能有一个主机作为 SPM。
Red Hat Virtualization Manager 会保证一直都有一个 SPM 在正常运行。当作为 SPM 的主机出现问题时,Red Hat Virtualization Manager 会把 SPM 角色分配给另外一台主机。当启动一个 SPM 时,需要确保只有一个主机被赋予了这个角色,并获取一个 storage-centric lease。这个过程需要花费一些时间来完成。

4.3. SPM 优先级

SPM 角色需要使用主机的一些资源。一个主机的 SPM 优先级的设定值预示着这个主机成为 SPM 的可能行:有高 SPM 优先级值的主机会在比有低 SPM 优先级值的主机先被授予 SPM 角色。因此,重要的虚拟机可以在那些有低 SPM 优先级的主机上运行,这样可以减少这些虚拟机和 SPM 角色争夺主机资源情况的出现。
您可以通过编辑主机来改变一个主机的 SPM 优先级。

4.4. 使用事件标签页查找数据中心中有问题的项

事件标签页显示了和这个数据中心相关的所有事件。这些事件包括审计、警告和错误。它们可以帮助您找出 Red Hat Virtualization 环境中可能存在问题的项。
事件标签页有两个显示模式:基本模式和高级模式。基本模式会显示事件的图标、事件发生的时间和描述。高级模式除了显示基本模式所显示的信息外,还会显示事件的 ID、相应的用户、主机、虚拟机、模板、数据中心、存储、集群,以及 Gluster 卷和相关 ID。

4.5. 数据中心任务

4.5.1. 创建一个新的数据中心

执行以下步骤可以在您的虚拟环境中创建一个数据中心。数据中心需要包括集群、主机和存储域。

注意

存储类型可以在第一个存储域被加入到数据中心前进行设置。一旦一个存储域被添加到数据中心后,存储类型将不能被改变。
兼容版本被设置后,将无法把它改为一个旧版本。
为数据中心指定 MAC 池范围的选项已经停用,现在需在集群级别上指定。

过程 4.1. 创建一个新的数据中心

  1. 选择数据中心资源标签页来在结果列表中列出所有的数据中心。
  2. 新建打开新建数据中心窗口。
  3. 输入数据中心的名称描述
  4. 从下拉菜单中选择数据中心的存储类型兼容版本配额模式
  5. 确认创建数据中心,并打开新建数据中心 - 引导操作窗口。
  6. 引导操作窗口列出了数据中心所要配置的项。您可以现在配置这些项目,或点以后再操作来在以后配置它们。您可以在任何时候通过选择数据中心后点引导操作键来对所选数据中心进行配置。
新的数据中心被添加到虚拟环境中。在为这个数据中心配置了集群、主机和存储域前,它的状态将会是 Uninitialized。您可以使用引导操作键来配置它们。

4.5.2. “新建数据中心”和“编辑数据中心”窗口中的设置介绍

下表介绍了在新建数据中心编辑数据中心窗口中的数据中心设置。在您点确认时,无效的项会以橙色显示。另外,每个项的输入框中还会显示可以被接受的值的范围。

表 4.1. 数据中心属性

描述/操作
名称
数据中心的名字。它最长支持 40 个字符,可以包括大小写字母、数字、分号和下划线。数据中心的名字必须是唯一的。
描述
数据中心的描述。这个项可以是空,但我们推荐您在这个项中输入相关的信息。
类型
存储类型。请选择以下类型之一:
  • 共享的
  • 本地的
存储域的类型对数据中心的类型有很大的影响,它在创建后将很难进行修改。尽管多种不同类型的存储域(iSCSI、NFS、FC、POSIX 和 Gluster)可以被添加到同一个数据中心中,“本地的”和“共享的”类型不能同时存在于一个数据中心中。
兼容版本
Red Hat Virtualization 的版本。请选择以下值之一:
  • 3.6
  • 4.0
  • 4.1
在升级了 Red Hat Virtualization Manager 后,主机、集群和数据中心可能还在使用以前的版本。因此,在升级数据中心的兼容版本前,请确认您已经升级了所有主机和集群。
配额模式
配额是 Red Hat Virtualization 所提供的一个对资源使用进行限制的工具。请选择以下值之一:
  • 禁用的:不使用配额功能
  • 审计:可以编辑配额设置
  • 强制的:强制使用配额功能

4.5.3. 重新初始化一个数据中心

当数据中心中的主数据域中的数据出现问题时,您需要使用一个新的主数据域来替换当前的主数据域。重新初始化一个数据中心就可以为您恢复与这个数据中心相关的所有资源,包括集群、主机和没有问题的存储域。
您可以为新的主数据域导入备份的(或导出的)虚拟机或模板。

过程 4.2. 重新初始化一个数据中心

  1. 数据中心资源标签页,并选择需要重新初始化的数据中心。
  2. 确定和这个数据中心相关的存储域都处在维护模式。
  3. 在数据中心上点鼠标右键,从下拉菜单中选重新初始化数据中心打开数据中心重新初始化窗口。
  4. 数据中心重新初始化窗口会列出所有的存储域(这些存储域应该都处在维护模式)。选择您要加入到这个数据中心的存储域。
  5. 选择批准操作项。
  6. 确定关闭窗口并开始重新初始化这个数据中心。
您所选择的存储域被作为主数据域加入到数据中心。您现在可以为这个主数据域导入备份的(或导出的)虚拟机或模板。

4.5.4. 删除一个数据中心

在删除数据中心时,需要一个活跃的主机。删除一个数据中心并不会删除和它相关的资源。

过程 4.3. 删除一个数据中心

  1. 确定和数据中心相关联的存储域处于维护模式。
  2. 数据中心资源标签页并选择要删除的数据中心。
  3. 删除打开删除数据中心确认窗口。
  4. 确定

4.5.5. 强制删除一个数据中心

如果数据中心的主机处于无响应状态,或和它相关联的存储域出现问题,数据中心就成为无响应状态。您将无法正常删除数据中心。
强制删除可以在没有活跃的主机的情况下进行。它同时会永久删除所关联的存储域。
在进行强制删除数据中心操作前,需要先销毁有问题的存储域。

过程 4.4. 强制删除一个数据中心

  1. 数据中心资源标签页,选择要删除的数据中心。
  2. 强制删除打开强制删除数据中心确认窗口。
  3. 选中批准操作选项。
  4. 确定
数据中心和它所关联的存储域被从 Red Hat Virtualization 环境中永久删除。

4.5.6. 改变数据中心的兼容版本

Red Hat Virtualization 数据中心有一个兼容版本值。它指定了数据中心所兼容的 Red Hat Virtualization 版本。数据中心中的所有集群都需要满足这个兼容版本值。

注意

要修改数据中心的兼容版本值,需要先把数据中心中的所有集群都进行升级,从而满足这个兼容版本值。

过程 4.5. 改变数据中心的兼容版本

  1. 在管理门户中,点数据中心标签页。
  2. 从显示的列表中选要修改的数据中心。
  3. 编辑
  4. 兼容版本改为您需要的值。
  5. 确定打开修改数据中心兼容性版本确认窗口。
  6. 确定
您更新了数据中心的兼容版本值。

重要

升级数据中心兼容版本值也需要升级属于这个数据中心的存储域。

4.6. 数据中心和存储域

4.6.1. 为数据中心附加一个存在的数据域

状态为 Unattached 的数据域可以被附加到一个数据中心中。多个类型(iSCSI、NFS、FC、POSIX 和 Gluster)的共享存储域可以被添加到相同的数据中心中。

过程 4.6. 为数据中心附加一个存在的数据域

  1. 数据中心资源页并选择所需的数据中心。
  2. 详情框中的存储标签页中列出已附加到这个数据中心的存储域。
  3. 附加数据打开附加存储窗口。
  4. 选择需要附加到这个数据中心的数据域。您可以选择多个数据域来把它们附加到数据中心。
  5. 确定
数据域被附加到数据中心,并被自动激活。

4.6.2. 为数据中心附加一个存在的 ISO 域

状态为 Unattached 的 ISO 域可以被附加到一个数据中心。被添加的 ISO 域必须和数据中心有相同的存储类型
一个数据中心只能有一个附加的 ISO 域。

过程 4.7. 为数据中心附加一个存在的 ISO 域

  1. 数据中心资源标签页,选择所需的数据中心。
  2. 在详情框中选存储标签页列出已附加到这个数据中心中的存储域。
  3. 附加 ISO 打开附加 ISO 库窗口。
  4. 选择相应的 ISO 域。
  5. 确定
所选择的 ISO 域被附加到数据中心并被自动激活。

4.6.3. 为数据中心附加一个存在的导出域

注意

导出存储域这个概念已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像以及模板可以从导入的存储域中上传到附加到的数据中心中。如需了解更多与导入存储域相关的信息,请参阅 第 8.6 节 “导入存在的存储域”
状态为 Unattached 的导出域可以被附加到一个数据中心。一个数据中心只能添加一个导出域。

过程 4.8. 为数据中心附加一个存在的导出域

  1. 数据中心资源标签页,选择所需的数据中心。
  2. 详情框中的存储标签页列出了已经被附加到这个数据中心的存储域。
  3. 附加导出打开附加导出域窗口。
  4. 选择相应的导出域。
  5. 确定
导出域被附加到数据中心,并被自动激活。

4.6.4. 从数据中心中分离一个存储域

从数据中心中分离一个存储域后,被分离的存储域将不再和数据中心有任何关系。被分离的存储域不会从 Red Hat Virtualization 环境中删除,它还可以被附加到其它的数据中心。
被分离的存储域中的数据(如虚拟机和模板)仍然保存在这个存储域中。

注意

当主存储域是唯一一个有效的存储域时,它不能被删除。

过程 4.9. 从数据中心中分离一个存储域

  1. 数据中心资源标签页,选择所需的数据中心。
  2. 在详情框中选存储标签页列出附加到这个数据中心的存储域。
  3. 选择要被分离的存储域。如果存储域处于激活状态,点维护打开维护存储域确认窗口。
  4. 确定把存储域变为维护模式。
  5. 分离打开分离存储确认窗口。
  6. 确定
您从数据中心中分离了存储域。被分离的存储域可能会需要几分钟的时间才会从详情框中消失。

4.7. 数据中心和权限

4.7.1. 管理数据中心的系统权限

作为 SuperUser,系统管理员需要管理管理门户(Administration Portal)的各个方面。对于其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的管理员只有对被分配给他的数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有对被分配的集群有管理权限。
一个数据中心管理员只对特定的数据中心有管理员的权限。这一点对于有多个数据中心的虚拟环境非常重要,因为每个数据中心都需要有一个系统管理员。DataCenterAdmin这个角色具有分级的模式,如果一个用户被赋予了一个数据中心的管理员角色,他将可以管理这个数据中心中除存储外的所有资源。使用页头中的配置键可以为系统中的所有数据中心分配一个数据中心管理员。
数据中心管理员可以执行以下操作:
  • 创建和删除数据中心的集群。
  • 创建和删除数据中心的主机、虚拟机和池。
  • 编辑数据中心中的虚拟机上的用户权限。

注意

您只能对已经存在的用户分配角色和权限。
如果需要更改一个数据中心的管理员,您需要删除当前的管理员,然后再添加一个新的管理员。

4.7.2. 数据中心管理员角色介绍

数据中心权限角色

下表描述了管理员角色,以及他们所具有的与数据中心管理相关的权限。

表 4.2. Red Hat Virtualization 系统管理员角色

角色权限备注
DataCenterAdmin数据中心管理员可以使用、创建、删除和管理特定数据中心中除存储以外的所有物理和虚拟资源(包括集群、主机、模板和虚拟机)。
NetworkAdmin网络管理员可以配置和管理特定数据中心的网络。数据中心网络管理员同时也继承了这个数据中心中的虚拟机的网络管理员权限。

4.7.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 4.10. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

4.7.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 4.11. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

第 5 章 集群

5.1. 集群介绍

一个集群就是一些主机组成的一个逻辑组。这些主机共享相同的存储域并有相同的 CPU 类型(Intel 或 AMD)。如果不同的主机有不同的 CPU 型号,只有那些在所有型号中都包括的功能才可以被使用。
系统中的每一个集群都必须属于某一个数据中心,每个主机也必须属于某一个集群。根据集群标签页中定义的原则,虚拟机可以被动态地分配到所属集群中的任何主机上,并可以在不同的主机间进行迁移。电源和负载共享原则不能在比集群更高级别的资源上定义。
属于集群的主机数量和虚拟机数量分别在主机数VM 数量列中显示。
集群可以运行虚拟机或 Red Hat Gluster Storage 服务器,但只能是二者之一。一个集群不能同时作为虚拟机和存储主机使用。
Red Hat Virtualization 在安装的过程中会在默认的数据中心中创建一个默认的集群。
集群

图 5.1. 集群

5.2. 集群的任务

5.2.1. 创建一个新集群

一个数据中心可以包括多个集群,而每个集群也可以包括多个主机。在一个集群中的主机必须有相同的 CPU 类型(如 Intel 或 AMD)。我们推荐您在创建集群前先创建主机,从而保证 CPU 类型的优化。在主机被创建后,您可以在任何时候使用引导操作键来配置主机。

过程 5.1. 创建一个新集群

  1. 集群资源标签页。
  2. 新建
  3. 在下拉菜单中选择这个集群需要属于的数据中心
  4. 为集群输入名称描述
  5. 管理网络下拉列表中选择分配管理网络角色的网络。
  6. 从下拉列表中选择 CPU 架构CPU 类型。它需要和要加入的主机中的最老 CPU 类型所处的 CPU 产品类相匹配,否则主机可能无法正常工作。

    注意

    对于 Intel 和 AMD CPU 类型,CPU 型号会以从老到新的逻辑顺序列出。如果集群中包括不同的 CPU 型号,则需要选择最老的。如需更多与 CPU 型号相关的信息,请参阅 https://access.redhat.com/solutions/634853
  7. 从下拉列表中为集群选择兼容版本
  8. 如果这个集群需要作为虚拟环境使用,选择启用 Virt 服务;如果这个集群需要提供 Gluster 节点,选择启用 Gluster 服务。您不能把 Red Hat Virtualization Host(RHVH)加入到一个支持 Gluster 服务的集群中。
  9. 或者也可以选择启用设置 VM 维护原因选项。它会在虚拟机被 Manager 关闭时显示一个原因输入项,管理员可以在这里输入维护的原因。
  10. 或者也可以选择启用设置主机维护原因选项。它会在主机被 Manager 关闭时显示一个原因输入项,管理员可以在这里输入维护的原因。
  11. 可以选择 /dev/hwrng source(外部硬件设备)复选框,指定集群中所有主机要使用的随机数生成器。默认为启用 /dev/urandom source(Linux 提供的设备)。
  12. 使用优化标签页来为集群设置内存页共享的阈值,并可以为集群中的主机启动“CPU 线程处理”和“内存 ballooning”功能。
  13. 迁移策略标签页,为集群设置虚拟机迁移策略。
  14. 另外,还可以在调度策略标签页中设置“调度策略”、“调动程序优化”、“启用信任的服务”、“启用 HA 资源预留Reservation”并添加一个自定义序列号策略。
  15. 控制台标签页中,您可以覆盖全局的 SPICE 代理设置,并指定这个集群中的主机所使用的 SPICE 代理地址。
  16. 隔离策略标签页中为集群启用或禁用隔离(fencing)功能,并选择隔离选项。
  17. 点击 MAC 地址池标签页,以指定集群默认池以外的 MAC 地址池。如需了解创建、编辑或删除 MAC 地址池的更多选项,请参阅 第 1.5 节 “Mac 地址池”
  18. 确定来创建集群,并打开新建集群 - 引导操作窗口。
  19. 引导操作窗口列出了这个集群需要配置的项。您可以现在就配置这些项,或选择以后再配置。您可以在任何时候通过选择集群并点引导操作键来对集群进行配置。
新的集群被添加到虚拟环境中。

5.2.2. 新建集群和编辑集群窗口中的设置和控制介绍

5.2.2.1. 集群常规设置介绍

下表介绍了新建集群编辑集群窗口中的常规标签页中的设置。如果您的设置中有不正确的值,点确定时它们会被显示为橙色并无法进行到下一步。另外,各个项会提示您可能的有效值范围。

表 5.1. 常规集群设置

描述/操作
数据中心
包括集群的数据中心。在添加集群前,数据中心需要已被创建。
名称
集群的名称。它最长支持 40 个字符,可以包括大小写字母、数字、分号和下划线。集群的名字必须是唯一的。
描述 / 备注
集群的描述信息,以及额外的备注信息。我们推荐使用这个项,但它不是必需的。
管理网络
被分配为管理网络角色的逻辑网络。它的默认值是 ovirtmgmt。在已存在的网络中,只能通过详情框中的逻辑网络标签页中的管理网络按钮来更改管理网络。
CPU 架构集群的 CPU 架构。有效的 CPU 类型由所选择的 CPU 架构决定。
  • undefined:所有 CPU 类型都有效。
  • x86_64:所有 Intel 和 AMD CPU 类型都有效。
  • ppc64:只有 IBM POWER 8 有效。
CPU 类型
集群的 CPU 类型。可以是以下值之一:
  • Intel Conroe Family
  • Intel Penryn Family
  • Intel Nehalem Family
  • Intel Westmere Family
  • Intel SandyBridge Family
  • Intel Haswell Family
  • Intel Skylake Family
  • AMD Opteron G1
  • AMD Opteron G2
  • AMD Opteron G3
  • AMD Opteron G4
  • AMD Opteron G5
  • IBM POWER 8
一个集群中的所有主机都需要使用 Intel、AMD 或 IBM POWER 8 CPU 类型,当进行设置后,很难在不对环境造成巨大影响的情况下对它们进行修改。CPU 类型需要设置为集群中最老的 CPU 型号。只有所有 CPU 都具有的功能才可以被使用。对于 Intel 和 AMD CPU 类型,CPU 型号会以从最老到最新的逻辑顺序被列出。
兼容版本
Red Hat Virtualization 的版本值。可以是以下值中的一个:
  • 3.6
  • 4.0
您无法选择比数据中心中指定的版本值更低的版本。
启用 Virt 服务
如果选择了这一项,集群中的主机将被用来运行虚拟机。
启用 Gluster 服务
如果选择了这一项,这个集群中的主机将被用来作为 Red Hat Gluster Storage Server 节点,而不能运行虚拟机。另外,您也无法添加 Red Hat Virtualization Host 主机到这个集群。
导入现有的 Gluster 配置
这个选项只有在启用 Gluster 服务被选中时才有效。它允许您为 Red Hat Virtualization Manger 导入一个已经存在的 Gluster 集群以及附加在它上面的主机。
被导入的集群中的主机需要以下设置:
  • 地址: Gluster 主机服务器的 IP 地址或全局域名(FQDN)。
  • 指纹: Red Hat Virtualization Manager 需要获得的主机指纹信息。使用它来确保和正确的主机相连接。
  • Root 密码:和主机连接所需要的 root 密码。
启用设置虚拟机维护的理由如果选择了这个选项,当集群中的虚拟机被 Manager 关闭时会出现一个“理由”项。您可以在这个项中输入进行维护的理由,当虚拟机被重启后,您所输入的理由信息将出现在系统的日志中。
启用设置虚拟机维护的理由如果选择了这个选项,当集群中的主机被 Manager 关闭时会出现一个“理由”项。您可以在这个项中输入进行维护的理由,当主机被重启后,您所输入的理由信息将出现在系统的日志中。
额外随机数生成器的源
如果选中此复选框,集群中的所有主机可使用额外的随机数生成器设备。这样做可以将熵从随机生成器设备透传到虚拟机。

5.2.2.2. 优化设置介绍

内存页共享(memory page sharing)技术可以使虚拟机通过使用其它虚拟机上没有使用的内存来为自己获得最多为自身内存两倍的使用内存。在一般情况下,您的 Red Hat Virtualization 环境中的所有虚拟机在同一时间点上不会全部使用它们所具有的所有系统资源,因此,系统可以把其它虚拟机上没有使用的内存资源临时分配给特定的虚拟机使用。
CPU 线程处理(CPU Thread Handling)技术可以使虚拟机的处理器核数量大于它们的主机所具有的处理器核数量。这个技术对那些不需要使用大量 CPU 资源的环境非常有用,用户可以使用多个虚拟机来满足所需要的操作,从而减少对硬件的要求。这个技术还可以让虚拟机运行一些在一般情况下无法实现的 CPU 拓扑结构,特别是在虚拟机的处理器核的数量大于主机的处理器核数量,但小于主机的线程数量的时候。
下表介绍了新建集群编辑集群窗口中的优化标签页中的设置。

表 5.2. 优化设置

描述/操作
内存优化
  • 无 - 禁用内存过度分配:禁用内存页共享。
  • 用于服务器负载 - 允许调度 150% 的物理内存:把内存页共享的阈值设为每个主机的系统内存的 150%。
  • 用于桌面负载 - 允许调度 200% 的物理内存:把内存页共享的阈值设为每个主机的系统内存的 200%。
CPU 线程
选择将线程作为内核选项将允许主机上所运行的处理器核的数量大于主机本身的处理器核的数量。
主机的线程可以被看做为处理器内核被虚拟机使用。例如,一个有 24 核,每个核有 2 个线程(共有 48 个线程)的主机上所运行的虚拟机可以有 48 个内核,并且在计算主机 CPU 负载时会和有 48 个内核的系统相比较。
内存 Balloon
选择启用内存 Balloon 优化选项后,在这个集群中的主机上所运行的虚拟机上将会启动“内存过度分配(memory overcommitment)” 功能。当这个功能被启动后,Memory Overcommit Manager (MoM) 在条件允许的情况下进行内存“气球操作”(Ballooning)。它的上限是每个虚拟机所保证具有的内存数量。
要使用内存气球(memory balloon),虚拟机需要有气球(balloon)设备以及相应的驱动器。每个虚拟机都包括了一个气球设备,除非这个设备已经被删除。当集群中的主机的状态变为 Up 时,就会收到一个气球协议更新。如果需要,可以在不需要改变状态的情况下在主机上手工更新气球策勒。如需了解相关信息,请参阅 第 5.2.5 节 “在一个集群的主机上更新 MoM 策略”
需要注意的是,在一些情况下,气球操作可能会和 KSM 有冲突。当冲突发生时,MoM 将会试图通过调整气球的大小来减少冲突。另外,在一些情况下,气球可能会降低一个虚拟机的性能。因此,我们建议系统管理员谨慎使用内存气球优化技术。
KSM 控制
选择启用 KSM 将允许 MoM 在需要的情况下运行 Kernel Same-page Merging(KSM)。

5.2.2.3. 迁移策略设置介绍

迁移策略定义了在出现主机故障时进行实时虚拟机迁移的条件。这些条件包括,在迁移过程中的虚拟机下线时间、网络带宽,以及如何决定虚拟机的优先级。

表 5.3. 迁移策略介绍

策略
描述
Legacy
使用 3.6 版本的工作方式。vdsm.conf 中的设置仍然适用。guest 代理的 hook 机制会被禁用。
Minimal downtime
允许虚拟机在典型的情况下进行迁移,虚拟机应该不会出现长时间的下线情况。如果在一定时间内(取决于 QEMU,最长时间是 500 毫秒)虚拟机的迁移还没有聚合,迁移操作会被终止。guest 代理机制会被启用。
Post-copy migration
此为技术预览功能。与最短下线时间策略类似,虚拟机不应遇到任何较长的下线时间。如果很长时间后虚拟机迁移还没有聚合,迁移将切换到 post-copy 策略。此策略有个缺点,post-copy 阶段中虚拟机运行速度可能会明显减慢,因为主机之间会传输内存的缺失部分。如果 post-copy 阶段中出现任何错误(如主机之间网络故障),将会丢失正在运行的虚拟机实例。因此,无法在 post-copy 阶段中中止迁移。客户机代理 hook 机制已启用。
Suspend workload if needed
允许虚拟机在多数情况下都可以进行迁移,包括虚拟机的负载非常大的情况。虚拟机可能会出现较长的下线时间。当负载太大时,迁移操作也会被终止。guest 代理机制会被启用。
带宽设置定义了每个主机的出站和入站迁移的最大带宽。

表 5.4. 带宽介绍

策略
描述
Auto
带宽从数据中心的主机网络 QoS 中的速率限制 [Mbps] 设置中复制。如果没有定义速率限制,带宽将会是发送和接收网络接口的最小连接速度。如果速率限制还没有设置,而且也不知道连接速度,则它会由发送主机上的本地 VDSM 设置决定。
Hypervisor default
带宽由发送主机上的本地 VDSM 控制。
Custom
用户自定义(以 Mbps 为单位)
resilience 策略定义了在迁移中虚拟机是如何设置优先级的。

表 5.5. Resilience 策略设置

描述/操作
迁移虚拟机
根据所定义的优先级迁移所有的虚拟机。
只迁移高可用性虚拟机
只迁移高可用性虚拟机,从而避免增加不必要的主机负载。
不迁移虚拟机
不迁移虚拟机
额外属性只对 Legacy 迁移策略有效。

表 5.6. 额外属性介绍

属性
描述
自动聚合迁移
用来指定在迁移虚拟机的过程中是否进行自动聚合。带有大量负载的大型虚拟机会很快“弄脏”内存,这个速率会比实时迁移所能达到的传输速率更快,因此,迁移无法被聚合。QEMU 中的自动聚合功能允许您对虚拟机迁移进行强制聚合。QEMU 会自动检测到没有进行聚合,并在虚拟机上触发一个降低 vCPU 速度的操作。在默认情况下,自动聚合被全局禁用。
  • 如果选择从集群设置继承,则使用在全局范围设置的自动聚合设置。这是默认选项。
  • 自动聚合会覆盖全局的相关设置,并允许为虚拟机进行自动聚合。
  • 不自动聚合会覆盖全局的相关设置,并禁止为虚拟机进行自动聚合。
启用迁移压缩
指定在迁移虚拟机的过程中是否进行压缩。这个功能会使用 Xor Binary Zero Run-Length-Encoding,它会缩短那些运行需要大量写入内存的负载的虚拟机的下线时间,以及那些运行具有稀松内存更新特征的应用程序的虚拟机的下线时间。在默认情况下,迁移压缩被全局禁用。
  • 如果选择从集群设置继承,则使用在全局范围设置的压缩设置。这是默认选项。
  • 压缩会覆盖相关的全局设置,并允许为虚拟机进行压缩。
  • 不压缩会覆盖相关的全局置,压缩在虚拟机上被禁用。

5.2.2.4. 调度策略设置介绍

调度策略指定了虚拟机在可用的主机间的使用和分配情况。通过设置调度策略,可以在一个集群中的主机间自动进行负载均衡。
要为一个存在的集群添加调度策略,选集群标签页,点编辑按钮,然后进入调度策略标签页。
调度策略设置:evenly_distributed

图 5.2. 调度策略设置:evenly_distributed

下表描述了调度策略标签页中的设置。

表 5.7. 调度策略标签页属性

描述/操作
选择策略
从下拉列表中选择一个策略。
  • none:将策略值设为 none,在已运行的虚拟机的主机之间不共享负载或电源。这是默认模式。当虚拟机启动后,内存和 CPU 处理负载就已均匀分散到集群中的所有主机。如果主机已达到定义的 CpuOverCommitDurationMinutesHighUtilizationMaxFreeMemoryForOverUtilized,则不会启动附加到该主机的其他虚拟机。
  • evenly_distributed:在集群中的所有主机之间均匀分布内存和 CPU 处理负载。如果主机已达到定义的 CpuOverCommitDurationMinutesHighUtilizationMaxFreeMemoryForOverUtilized,则不会启动附加到该主机的其他虚拟机。
  • InClusterUpgrade:根据主机操作系统版本分配虚拟机。有更新操作系统版本的主机会比运行较低版本操作系统的主机有更高的优先级来运行虚拟机。迁移到有较新操作系统的主机上的虚拟机不会再迁移回运行较低操作系统版本的主机上。一个主机可以在集群中的任何主机上重启。通过使用这个策略,集群中的主机可以有不同的操作系统版本,这样就可以对集群中的主机进行升级。在使用这个策略前,需要进行一些预先的配置,详情请参阅升级指南
  • power_saving:只在一部分主机中分配内存和 CPU 处理负载,这可以为其它主机节省能源消耗。如果主机上的 CPU 负载处于低使用率状态,并且处于这个状态的时间超过了预先定义的时间,这个主机上的虚拟机将被迁移到其它主机上,并在迁移后关闭这个主机。如果一个主机的利用率已经达到了设置的最高值,新加入到这个主机的虚拟机将不会被启动。
  • vm_evenly_distributed:根据主机上的虚拟机数量平均分配虚拟机。当有任何一个主机上所运行的虚拟机数量超过 HighVmCount 中所定义的值,并且有最少一个主机上所运行的虚拟机数量不在 MigrationThreshold 所定义的范围之内,我们就认为这个集群处于一个负载不平衡状态。
属性
根据所选的策略,以下属性会被显示,并可以按需进行编辑:
  • HighVmCount:每个主机最多可以运行的虚拟机数量。当这个值被超过时,这个主机被认为已经超过负载。它的默认值是 10
  • MigrationThreshold:它定义了主机发生虚拟机迁移前的缓冲段。它是最高利用率主机上运行的虚拟机数量和最低利用率主机上运行的虚拟机数量间的最大差值。当集群中的所有主机上所运行的虚拟机的数量都在这个缓冲段内时,我们说这个集群处于一个负载平衡的状态。它的默认值是 10
  • SpmVmGrace:定义了在 SPM 主机上保留的可用虚拟机数。作为 SPM 的主机应该比其它主机有更低的负载,用户可以通过设置这个项来指定 SPM 主机应该比其它主机少运行多少个虚拟机。它的默认值是 5
  • CpuOverCommitDurationMinutes:在调度策略起作用前,一个主机可以在 CPU 负载超过利用率中所设置的值的情况下运行的最长时间(以分钟为单位)。通过这个设置,可以避免因为暂时的高 CPU 负载所带来的不必要的虚拟机迁移操作。它的最大值是 99,默认值是 2
  • HighUtilization:一个百分比值。当一个主机的 CPU 使用率在一定时间内超过了这个值,Red Hat Virtualization Manager 将会把它上面的虚拟机迁移到集群中的其它主机上,直到这个主机的 CPU 负载降到 maximum service threshold 所设置的值以下。它的默认值是 80
  • LowUtilization:一个百分比值。当一个主机的 CPU 使用率在一定时间内低于这个值,Red Hat Virtualization Manager 将会把它上面的虚拟机迁移到集群中的其它主机上,并关闭这个主机。当这个集群中有其它负载平衡需求,或没有足够可用的主机时,这个主机会被重新启动。它的默认值是 20
  • ScaleDown:用来减少 HA 预留 的权重功能(把主机的值除以这个值)。它是一个可选的、可以被添加到包括 none 在内的任何策略的属性。
  • HostsInReserve:指定一组主机,即使在它们上面没有运行虚拟机,这些主机也要保持运行。它是一个可选的、可以添加到 power_saving 策略中的属性。
  • EnableAutomaticHostPowerManagement:为集群中的所有主机启用自动电源管理功能。它是一个可选的、可以添加到 power_saving 策略中的属性。它的默认值是 true
  • MaxFreeMemoryForOverUtilized:设置最低服务级别所需的最少可用内存(以 MB 为单位)。当主机的可用内存等于或低于这个值时,Red Hat Virtualization Manager 会将虚拟机迁移到集群中的其他主机上,直到主机可用内存超过此服务阈值。同时将 MaxFreeMemoryForOverUtilizedMinFreeMemoryForUnderUtilized 设为 0 MB 会禁用基于内存的负载平衡。这是一个可选属性,可添加到 power_savingevenly_distributed 策略。
  • MinFreeMemoryForUnderUtilized:设置主机被视为利用不足前所需的最少可用内存(以 MB 为单位)。当主机的可用内存超过这个值时,Red Hat Virtualization Manager 会将虚拟机迁移到集群中的其他主机上,并且会在负载平衡需要时或者集群中可用主机不足时自动关闭主机计算机再重新启动。同时将 MaxFreeMemoryForOverUtilizedMinFreeMemoryForUnderUtilized 设为 0 MB 会禁用基于内存的负载平衡。这是一个可选属性,可添加到 power_savingevenly_distributed 策略。
调度程序优化
优化主机权重和顺序的调度。
  • 为使用进行优化:在调度中包括权重模块来做出最好的选择。
  • 为速度进行优化:当有多于 10 个请求没有被处理时,忽略主机权重。
启用信任的服务
启用和 OpenAttestation 服务器集成的功能。在使用这个功能前,用户需要先使用 engine-config 工具配置 OpenAttestation 服务器。如需了解更多信息,请参阅 第 10.4 节 “信任的计算池”
启用 HA Reservation
Manager 对集群中可以提供给高可用虚拟机的资源进行监控。Manager 需要保证,当那些高可用虚拟机所在的主机出现问题时,集群可以提供足够的资源来把那些高可用虚拟机迁移到其它主机上。
提供自定义序列号策略
您可以使用这个项为集群中的虚拟机指定一个序列号策略。使用以下选项之一:
  • Host ID:使用主机的 UUID 作为虚拟机的序列号。
  • Vm ID:使用虚拟机的 UUID 作为它的序列号。
  • Custom serial number:指定一个自定义序列号。
当一个主机的空闲内存低于 20% 时,“气球”命令(如 mom.Controllers.Balloon - INFO Ballooning guest:half1 from 1096400 to 1991580)会被记录在 /var/log/vdsm/mom.log 文件中。/var/log/vdsm/mom.log 是内存过度分配管理器(Memory Overcommit Manager)的日志文件。

5.2.2.5. 集群控制台设置介绍

下表介绍了新建集群编辑集群窗口中的控制台标签页中的设置。

表 5.8. 控制台设置

描述/操作
为集群定义 SPICE 代理
选择这个项可以覆盖全局设置中对 SPICE 代理的设置。当有用户需要从远程对虚拟机进行访问时,这个设置将非常有用。
覆盖 SPICE 代理地址
SPICE 客户端连接到虚拟机所使用的代理服务器。代理的地址格式是:
protocol://[host]:[port]

5.2.2.6. 隔离策略设置介绍

下表描述了新建集群编辑集群窗口中的隔离策略标签页的设置。

表 5.9. 隔离策略设置介绍

描述/操作
启用隔离在集群中启用隔离功能。隔离功能在默认的情况下被启用,但可以根据需要被禁用。例如,当预计要出现网络问题时,管理员可以临时禁用隔离功能。当问题解决后再重新启用它。请注意,当隔离被禁用后,在无响应的主机上运行的高可用虚拟机将无法在其它主机上重启。
如果主机在存储上有实时的租約,忽略隔离操作如果选择了这个选项,集群中的所有没有响应的、仍然连接到存储的主机都不会进行 fence 操作。
在有连接问题的集群中忽略隔离操作如果选择了这个选项,当集群中有连接问题的主机的百分比超过或等于 阈值 中所定义的值时,隔离功能会被临时禁用。阈值的值可以从下拉列表中选择,有效值包括 255075100

5.2.3. 编辑一个资源

简介

编辑一个资源的属性。

过程 5.2. 编辑一个资源

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 编辑打开编辑窗口。
  3. 编辑需要修改的属性并点确认
结果

新的属性值被保存。如果有不正确的属性值存在,编辑窗口将不会被关闭。

5.2.4. 集群中的主机负载和电源管理策略

使用 evenly_distributedpower_saving 调度策略可以指定可接受的内存和 CPU 使用值,以及在什么情况下虚拟机需要从一个主机迁移到另一个主机。使用 vm_evenly_distributed 调度策略,虚拟机会根据主机上的虚拟机数据在主机间进行平均分配。定义调度策略可以在集群中实现主机的负载平衡。如需了解所有调度策略的详细信息,请参阅 第 5.2.2.4 节 “调度策略设置介绍”

过程 5.3. 为主机设置负载和电源管理策略

  1. 使用资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 编辑打开编辑集群窗口。
    编辑调度策略

    图 5.3. 编辑调度策略

  3. 选择以下策略中的一个:
    • none
    • vm_evenly_distributed
      1. HighVmCount 项中指定每个主机上可以运行的最多虚拟机的数量。
      2. MigrationThreshold 项中指定可以接受的、具有最高利用率的主机上所运行的虚拟机数量和具有最低利用率的主机上所运行的虚拟机数量间的最大差距。
      3. SpmVmGrace 项中定义在 SPM 主机上保留的可用虚拟机数。
    • evenly_distributed
      1. CpuOverCommitDurationMinutes 项中设置,当调度策略起作用前,一个主机可以在 CPU 负载超过利用率中所设置的值的情况下运行的最长时间(以分钟为单位)。
      2. HighUtilization 项中输入虚拟机需要迁移到其它主机的 CPU 使用率的百分值。
      3. MinFreeMemoryForUnderUtilized 中,输入一个可用内存数量(以 MB 为单位)。当可用内存的数量超过这个值时,虚拟机开始迁移到其他主机。
      4. MaxFreeMemoryForOverUtilized 中,输入一个可用内存数量(以 MB 为单位)。当可用内存低于这个值时,虚拟机开始迁移到其他主机
    • power_saving
      1. CpuOverCommitDurationMinutes 项中设置,当调度策略起作用前,一个主机可以在 CPU 负载超过利用率中所设置的值的情况下运行的最长时间(以分钟为单位)。
      2. LowUtilization 项中输入主机被认为处于没有被充分利用状态的 CPU 使用率的百分值。
      3. HighUtilization 项中输入虚拟机需要迁移到其它主机的 CPU 使用率的百分值。
      4. MinFreeMemoryForUnderUtilized 中,输入一个可用内存数量(以 MB 为单位)。当可用内存的数量超过这个值时,虚拟机开始迁移到其他主机。
      5. MaxFreeMemoryForOverUtilized 中,输入一个可用内存数量(以 MB 为单位)。当可用内存低于这个值时,虚拟机开始迁移到其他主机
  4. 选择以下之一作为集群的调度程序优化设置:
    • 为使用进行优化:在调度中包括权重模块来做出最好的选择。
    • 为速度进行优化:当有多于 10 个请求没有被处理时,忽略主机权重。
  5. 如果您使用 OpenAttestation 服务器来验证您的主机并使用 engine-config 命令对服务器进行了设置,选启用信任的服务选项。
  6. 也可以选择启用 HA 预留选项来使 Manager 监控高可用性虚拟机的集群容量。
  7. 也可以选择提供自定义序列号策略选项来为集群中的虚拟机指定一个序列号,然后选择以下选项之一:
    • Host ID:使用主机的 UUID 作为虚拟机的序列号。
    • Vm ID:使用虚拟机的 UUID 作为它的序列号。
    • Custom serial number:输入一个自定义序列号。
  8. 确定

5.2.5. 在一个集群的主机上更新 MoM 策略

MoM(Memory Overcommit Manager)处理主机上的“内存气球”和 KSM 功能。当在集群一级修改这些功能时,所做的修改只有在主机被重启或设置为维护模式后,主机的状态再次成为 Up 时才会在主机上起作用。但是,如果需要,在主机状态为 Up 时,可以通过同步 MoM 策略来在主机上马上应用重要的改变。以下步骤需要在每个主机上单独进行。

过程 5.4. 在一个主机上同步 MoM 策略

  1. 集群标签页,选择主机所属的集群。
  2. 在详情框中点主机标签页,选需要更新 MoM 策略的主机。
  3. 同步 MoM 策略
在不需要把主机设置为维护模式,然后再返回 Up 的情况下,在主机上更新 MoM 策略。

5.2.6. CPU 配置集

CPU 配置集定义了一个集群中的虚拟机可以从运行它的主机上获得的最大计算处理能力(以所占主机的所有计算处理能力的百分比表示)。CPU 配置集是基于数据中心中定义的 CPU 配置集创建的。它不会被自动应用到集群中的所有虚拟机上,而需要被手工分配给单独的虚拟机。

5.2.6.1. 创建一个 CPU 配置集

创建一个 CPU 配置集。这个步骤假设您已经为集群所属的数据中心定义了一个或多个 CPU 服务质量。

过程 5.5. 创建一个 CPU 配置集

  1. 集群资源标签页并选择一个集群。
  2. 在详情框中点 CPU 配置集子标签页。
  3. 新建
  4. 名称 项中输入 CPU 配置集的名称。
  5. 描述项中输入 CPU 配置集的描述信息。
  6. QoS 列表中选择应用到 CPU 配置集的服务质量。
  7. 确定
您创建了一个 CPU 配置集,这个 CPU 配置集可以在集群中的虚拟机上应用。

5.2.6.2. 删除 CPU 配置集

从 Red Hat Virtualization 环境中删除一个 CPU 配置集。

过程 5.6. 删除 CPU 配置集

  1. 集群资源标签页并选择一个集群。
  2. 在详情框中点 CPU 配置集子标签页。
  3. 选择需要删除的 CPU 配置集。
  4. 删除
  5. 确定
您删除了一个 CPU 配置集,被删除的 CPU 配置集将无法再被使用。如果 CPU 配置集已经被关联到其它虚拟机,这些虚拟机会被自动关联到 default CPU 配置集。

5.2.7. 导入一个存在的 Red Hat Gluster Storage 集群

您可以为 Red Hat Virtualization Manager 导入一个 Red Hat Gluster Storage 集群,以及这个集群上的所有主机。
在您提供了集群中的任何主机的相关信息(如 IP 地址,主机名和密码)后,gluster peer status 命令会通过 SSH 在主机上运行,并显示集群上的主机列表。您需要手工验证每个主机的指纹信息并为它们提供密码。当集群中的某个主机已经被关闭,或因一些原因无法访问,您将无法导入这个集群。因为新导入的主机没有安装 VDSM,bootstrap 脚本会在主机被导入后为它们安装 VDSM 软件包,并重新启动这些主机。

过程 5.7. 为 Red Hat Virtualization Manager 导入一个存在的 Red Hat Gluster Storage 集群

  1. 选择集群资源页来在结果列表中列出所有集群。
  2. 新建打开新建集群窗口。
  3. 在下拉菜单中选择这个集群需要属于的数据中心
  4. 输入集群的名称描述值。
  5. 启用 Gluster 服务导入现有的 gluster 配置
    导入现有的 gluster 配置选项只在您已经选择了启用 Gluster 服务选项后才会被显示。
  6. 地址项中输入这个集群中的任何服务器的主机名或 IP 地址。
    检查主机的指印信息来保证您连接到了正确的主机。如果一个主机无法被访问或有网络错误,获取指印失败信息将会在指印项中被显示。
  7. 输入服务器的 Root 密码并点确认
  8. 添加主机窗口会被打开,并列出这个集群所包括的主机。
  9. 为每个主机输入名称Root 密码
  10. 如果您想为所有主机设定同一个密码,选择使用公共密码选项。
    应用为所有主机设置密码。
    确认指纹信息,然后点确定提交您的改变。
在主机被导入后,bootstrap 脚本会在主机上安装了所需的 VDSM 软件包并重新启动它们。一个存在的 Red Hat Gluster Storage 集群被成功地导入到 Red Hat Virtualization Manager。

5.2.8. 添加主机窗口中的设置介绍

用户可以在添加主机窗口中指定被输入的 Gluster 集群中的主机信息。当您在新建集群窗口中选择了启用 Gluster 服务选项并输入了相应的主机信息后,这个窗口将会被显示。

表 5.10. 添加 Gluster 主机设置

描述
使用公共密码选择这个项可以为这个集群中的所有主机设定相同的密码。在密码项中输入您需要设置的密码,点应用来为所有主机设置密码。
名称输入主机的名称
主机名/IP这个项的值会根据您在新建集群窗口中所提供的全称域名或 IP 地址自动生成。
Root 密码在这个项中输入密码来为每个主机设定一个不同的密码。这个项中的值会覆盖集群中所设置的通用密码。
指纹指纹信息可以确保您连接到了一个正确的主机。这个项的值会根据您在新建集群窗口中所提供的主机信息自动生成。

5.2.9. 删除一个集群

介绍

在删除一个集群前需要把所有主机移出这个集群。

注意

您不能删除 Default 集群,因为它需要被用来保存模板。但是您可以重新命名 Default 集群并把它加入到一个新的数据中心中。

过程 5.8. 删除一个集群

  1. 使用资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 确认这个集群中已经没有主机了。
  3. 删除打开删除集群确认窗口。
  4. 确定
结果

集群被删除。

5.2.10. 改变集群的兼容版本

Red Hat Virtualization 集群有一个兼容版本值。兼容版本值决定了这个集群中的所有主机都支持的 Red Hat Virtualization 的功能。集群兼容版本值应该根据集群中最低的主机操作系统版本进行设置。

注意

要修改集群的兼容版本值,您需要先把集群中的所有主机进行升级,从而满足这个兼容版本值。

过程 5.9. 改变集群的兼容版本

  1. 在管理门户中,选集群标签页。
  2. 从显示的列表中选要修改的集群。
  3. 编辑
  4. 兼容版本改为您所需要的值。
  5. 确定打开修改集群兼容性版本确认窗口。
  6. 确定
您更新了集群的兼容版本值。一旦更新了数据中心中所有集群的兼容版本值,就可以对数据中心的兼容版本值进行更新。

重要

升级数据中心兼容版本值也需要升级属于这个数据中心的存储域。

5.3. 集群和权限

5.3.1. 为一个集群管理系统权限

作为 SuperUser,系统管理员需要管理“管理门户”的每个方面。而其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的用户只有特定数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有特定集群的管理权限。
一个集群管理员只对特定的集群有管理员的权限。这一点对于有多个集群的数据中心非常重要,因为每个集群都需要有一个系统管理员。ClusterAdmin 这个角色具有分级的模式,如果一个用户被赋予了一个集群的管理员角色,他将可以管理集群中的所有资源。使用页头中的配置键来为系统中的所有集群分配一个集群管理员。
集群库管理员可以进行以下操作:
  • 创建和删除相关的集群。
  • 创建和删除集群的主机、虚拟机和池。
  • 编辑集群中的虚拟机上的用户权限。

注意

您只能对已经存在的用户分配角色和权限。
如果需要更改一个集群的管理员,您需要删除当前的管理员,然后再添加一个新的管理员。

5.3.2. 集群管理员角色介绍

集群权限角色

下表介绍了管理员角色,以及他们所具有的集群管理权限。

表 5.11. Red Hat Virtualization 系统管理员角色

角色权限注记
ClusterAdmin集群管理员
可以使用、创建、删除集群中的物理和虚拟资源(包括集群、主机、模板和虚拟机)。还可以配置集群中的网络,如指定显示网络、把网络标记为"必需的"或"非必需的"。
但是,ClusterAdmin 没有为一个集群添加和删除网络的权限。这个操作需要有 NetworkAdmin 的权限。
NetworkAdmin网络管理员可以配置和管理集群中的网络。一个集群网络管理员同时也继承了这个集群中的虚拟机上的网络管理员权限。

5.3.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 5.10. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

5.3.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 5.11. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

第 6 章 逻辑网络

6.1. 逻辑网络任务

6.1.1. 使用网络标签页

网络资源标签页为用户提供了一个进行与逻辑网络相关的操作平台。用户也可以在这个标签页中进行逻辑网络搜索操作。
Red Hat Virtualization 环境中的所有逻辑网络都会在网络标签页中显示。用户可以使用新建编辑删除来在数据中心中创建、编辑和删除逻辑网络。
选择网络名,使用集群主机虚拟机模板权限标签页来进行以下操作:
  • 为集群和主机关联或取消关联网络
  • 从虚拟机和模板上删除网络接口
  • 为用户添加和删除访问和管理网络的权限
这些功能也可以通过访问相应的资源页进行。

警告

当有主机正在运行时,请不要改变数据中心或集群中的网络设置。这可能导致主机无法被访问。

重要

如果您计划使用 Red Hat Virtualization 节点来为用户提供服务,您需要记住,当 Red Hat Virtualization 环境停止工作时,它所提供的服务也将被停止。
这一点对所有服务都有效,但您特别需要对 Red Hat Virtualization 所提供的以下服务加以注意:
  • 目录服务
  • DNS
  • 存储

6.1.2. 在数据中心或集群中创建一个新的逻辑网络

在数据中心或集群中创建并定义一个逻辑网络。

过程 6.1. 在数据中心或集群中创建一个新的逻辑网络

  1. 数据中心集群资源标签页,在结果列表中选择一个数据中心或集群。
  2. 在详情框中选逻辑网络标签页列出所有已经存在的逻辑网络。
    • 如果为数据中心创建逻辑网络,在详情框中点新建打开新建逻辑网络窗口。
    • 如果为集群创建逻辑网络,在详情框中点添加网络打开新建逻辑网络窗口。
  3. 为这个逻辑网络输入名称描述注释
  4. 另外,还可以选择在外部供应商中创建选项。从下拉列表中选外部供应商,为物理网络提供一个 IP 地址。外部供应商下拉列表中不包括只读模式的外部供应商。
    如果选择了在外部供应商中创建网络标签VM 网络MTU 选项将被禁用。
  5. 网络标签项中为这个逻辑网络输入一个新的标签或为它选择一个已经存在的标签。
  6. 或选择启用 VLAN 标签选项。
  7. 或禁用 VM 网络
  8. MTU 的值设置为默认 (1500)自定义
  9. 集群标签页中,选择这个逻辑网络所要被分配到的集群。您还可以指定这个逻辑网络是否是一个“必需的”网络。
  10. 如果选择了在外部供应商上创建选项,子网标签页将出现。在子网标签页中,选择创建子网并输入子网的名称CIDR网关地址,并为逻辑网络将要提供的子网选项一个 IP 版本。您也可以根据需要添加 DNS 服务器。
  11. vNIC 配置集标签页中为这个逻辑网据添加 vNIC 配置档案。
  12. 确定
您在数据中心或集群中定义了一个逻辑网络资源。如果您为这个逻辑网络加了标签,它将会被自动加入到所有带有这个标签的主机网络接口中。

注意

当创建了一个新的、作为显示网络的逻辑网络,或修改了一个已经存在的、作为显示网络的逻辑网络时,所有使用这个逻辑网络的虚拟机都需要在重启后才能使用它。

6.1.3. 编辑一个逻辑网络

编辑一个逻辑网络的设置

过程 6.2. 编辑一个逻辑网络

重要

如果一个逻辑网络配置还没有和主机上的配置进行同步,它将无法被编辑或移到另外一个接口。请参阅 第 6.5.2 节 “编辑主机网络接口并为主机分配逻辑网络” 来获得更多同步网络的信息。
  1. 数据中心资源标签页,在结果列表中选择逻辑网络的数据中心。
  2. 点详情框中的逻辑网络标签页列出这个数据中心里的所有逻辑网络。
  3. 选择一个逻辑网络,点编辑打开编辑逻辑网络窗口。
  4. 编辑相应的设置。
  5. 确定保存您所做的修改。

注意

多主机网络配置会自动应用更新的网络设置到所有和这个逻辑网络相关联的主机(只有在使用这个网络的所有虚拟机都被关闭时,才可以应用这些设置改变)。您不能为一个已经在主机上配置的逻辑网络改名。您也无法在使用这个逻辑网络的虚拟机或模板运行时禁用虚拟机网络选项。

6.1.4. 删除一个逻辑网络

您可以从网络资源标签页或数据中心资源标签页中删除一个逻辑网络。以下步骤显示了如何从关联的数据中心中删除逻辑网络。对于一个正常运行的 Red Hat Virtualization 环境,最少需要一个逻辑网络作为 ovirtmgmt 管理网络。

过程 6.3. 删除逻辑网络

  1. 数据中心资源标签页,在结果列表中选择逻辑网络的数据中心。
  2. 点详情框中的逻辑网络标签页列出这个数据中心里的所有逻辑网络。
  3. 选择需要删除的逻辑网络并点删除打开删除逻辑网络窗口。
  4. 另外,如果逻辑网络是由外部供应商提供的,您还可以选择也从提供者里删除外部网络选项来把所选择的逻辑网络从 Manager 和外部供应商中同时删除。如果外部供应商是只读模式,则这个选项将无法被选择。
  5. 确定
逻辑网络被从 Manager 上删除,并不再有效。

6.1.5. 查看和编辑一个逻辑网络的网关设置

除了IP 地址和子网掩码外,用户还可以为逻辑网络设置网关。当一个主机有多个网络时,就需要为每个网络配置一个独立的网关,而不是使用默认的网关。
如果您没有为每个网络指定一个独立的网关,到这些网络的连接就会使用默认的网关,这将会导致用户无法连接到主机。
Red Hat Virtualization 会在启用和停止使用一个网络接口时自动处理多网关的设置。

过程 6.4. 查看和编辑一个逻辑网络的网关设置

  1. 主机标签页,选择所需的主机。
  2. 在详情框中点网络接口标签页列出和这个主机相关联的网络接口。
  3. 设置主机网络打开设置主机网络窗口。
  4. 把鼠标移到被管理的逻辑网络上,点铅笔图标打开编辑管理网络窗口。
编辑管理网络窗口显示了网络的名称、引导协议、IP 地址、子网掩码和网关地址。在您选择了静态引导协议后,您就可以手工编辑与网络地址相关的信息。

6.1.6. 新建逻辑网络和编辑逻辑网络窗口里的设置和控制

6.1.6.1. 逻辑网络创建设置介绍

下表描述了新建逻辑网络窗口和编辑逻辑网络窗口中的常规标签页中的设置。

表 6.1. 新建逻辑网络编辑逻辑网络设置

描述
名称
逻辑网络的名字。它最长支持 15 个字符,可以包括大小写字母、数字、分号和下划线。逻辑网络的名字必须是唯一的。
描述
逻辑网络的描述。它最长不能超过 40 个字符。
注释
关于这个逻辑网络的注释。
在外部供应商上创建
如果您把一个 OpenStack 网络实例(instance)添加到 Manager 中作为一个外部供应商,您可以在它上面创建逻辑网络。
外部供应商 - 选择要创建逻辑网络的外部供应商。
启用 VLAN 标签
VLAN 标签(VLAN tagging)是一个网络安全功能,它为逻辑网络中的数据赋予了一个特征。使用 VLAN 标签的网络数据不能被没有相同特征的接口所读取。在逻辑网络中使用 VLAN 也可以使一个网络接口和多个有不同 VLAN 标签的逻辑网络相关联。当 VLAN 标签功能被启用时,在输入框中输入一个数值。
虚拟机网络
如果只有虚拟机使用这个网络,请选择这个选项。如果网络不会被虚拟机使用(如被用来作为存储所使用的网络),请不要选择这个选项。
MTU
选择默认把逻辑网络的最大传输单元(MTU)设为包括在括号 () 中的值,或使用自定义来为逻辑网络设置一个自定义的最大传输单元。您可以使用这个项来把您的新建逻辑网络的最大传输单元与这个逻辑网络的硬件接口所支持的最大传输单元进行匹配。当选择自定义选项时,为它输入一个数值。
网络标签
您可以为网络添加一个新标签,或从已经存在的标签中选一个。如果您选择了一个已经存在的标签,这个逻辑网络会被自动分配到所有具有这个标签的主机网络接口上。

6.1.6.2. 逻辑网络集群设置

下表描述了新建逻辑网络窗口中的集群标签页的设置。

表 6.2. 新建逻辑网络设置

描述
附加/分离网络到/从集群
在一个数据中心中为集群附加或分离逻辑网络,并指定这个逻辑网络对于每个集群是否是“必需的”网络。
名称 - 使用这些设置的集群名。它的值不能被编辑。
附加全部 - 把逻辑网络附加到数据中心中的所有集群中,或从所有集群中删除。您也可以通过选择特定集群的附加选项把这个逻辑网络附加到集群中;或取消选择特定集群的附加选项来把这个逻辑网络从集群中删除。
所有必需的 - 指定这个逻辑网络是否对所有集群都是“必需的”网络。另外,您也可以把这个逻辑网设置为只对特定集群是“必需的”网络(选择/取消选择特定集群的必需的项)。

6.1.6.3. 逻辑网络 vNIC 配置集设置

下表描述了新建逻辑网络窗口中的 vNIC 配置集标签页的设置。

表 6.3. 新建逻辑网络设置

描述
vNIC 配置集
为逻辑网络指定一个或多个 vNIC 配置集。您可以通过点 vNIC 配置集旁的加号或减号键来为逻辑网络添加/删除 vNIC 配置集。其中第一个项被用来输入 vNIC 配置集的名字。
公共 - 设定这个配置集是否可以被所有用户使用。
QoS - 为 vNIC 配置文件指定一个 QoS 配置集。

6.1.7. 使用“管理网络”窗口为逻辑网络指定一个特定的网络类型

为逻辑网络指定网络类型来优化网络流量。

过程 6.5. 为逻辑网络指定网络类型

  1. 集群资源标签页,从结果列表中选一个集群。
  2. 点详情框中的逻辑网络标签页列出这个集群中的所有逻辑网络。
  3. 管理网络打开管理网络窗口。
    The Manage Networks window

    图 6.1. 管理网络

  4. 选择适当的项。
  5. 确定保存所做的改变并关闭窗口。
您通过为特定的逻辑网络设置特定的网络类型来对这个网络进行了优化。

注意

外部供应商所提供的逻辑网络只能作为虚拟机网络,而不能作为其它特殊的集群角色,如显示或迁移。

6.1.8. 管理网络窗口中的设置介绍

下表描述了管理网络窗口中的设置。

表 6.4. 管理网络设置

描述/操作
分配
把逻辑网络分配给集群中的所有主机。
必需的
标记为"必需的"网络需要一直保持正常运行,因为和它们相关联的主机需要这些网络才能正常工作。如果被标记为"必需的"网络因为一些原因无法正常工作,和它们相关联的主机也将无法正常工作。
虚拟机网络
如果一个逻辑网络被标识为"虚拟机网络",它被用来处理与虚拟机使用相关的网络流量。
显示网络
如果一个逻辑网络被标识为"显示网络",它被用来处理与 SPICE 和虚拟网络控制器相关的网络流量。
迁移网络
如果一个逻辑网络被标识为"迁移网络",它被用来处理与虚拟机和存储迁移相关的网络流量。

6.1.9. 在一个 NIC 上编辑 Virtual Function 配置

SR-IOV(Single Root I/O Virtualization - 单根 I/O 虚拟化)启用一个单一的 PCI Express(PCIe)端点作为多个独立的设备使用。这是通过使用两个 PCIe function - PF(Physical Function - 物理 function)和 VF(Virtual Function - 虚拟 function)实现的。一个 PCIe 卡可以有 1 到 8 个 PF,每个 PF 支持多个 VF(具体数量取决于具体设备)。
您可以通过 Red Hat Virtualization Manager 编辑支持 SR-IOV 功能的 NIC,包括每个 NIC 上的 VF 数量、指定允许访问 VF 的虚拟网络。
当 VF 被创建后,它就可以作为独立 NIC 使用。这包括为它分配一个或多个逻辑网络、使用它们创建绑定接口、为它们直接分配 vNIC 作为直接设备透传。
只有在 vNIC 的透传属性被启用时才可以直接附加到一个 VF。相关信息请参阅 第 6.2.4 节 “在一个 vNIC 配置集中启用透传功能”

过程 6.6. 在一个 NIC 上编辑 Virtual Function 配置

  1. 选择一个支持 SR-IOV 的主机,在详情框中点网络接口标签页。
  2. 设置主机网络打开设置主机网络窗口。
  3. 选择一个支持 SR-IOV 的 NIC(带有 标记),点铅笔图标打开编辑 NIC 的 Virtual Functions (SR-IOV) 配置 窗口。
  4. 要编辑 VF 的数量,点 VF 设置数量下拉按钮,在VF 数量项中输入数量。

    重要

    修改 VF 的数量会在创建新的 VF 前删除网络接口上所有以前的 VF(包括有虚拟机直接附加到的所有 VF)。
  5. 所有网络选项会被默认选择,从而可以使用所有网络访问 VF。如果只允许特定网络访问 VF, 选特定网络来列出所有网络。您可以使用选择框来选择所需的网络,或使用 Labels 来根据一个或多个网络 label 来自动选择网络。
  6. 确定关闭窗口。请注意,所做的配置修改只有在点了设置主机网络窗口中的确定按钮后才会生效。

6.2. 虚拟网络接口卡

6.2.1. vNIC 配置集(VNIC Profile)介绍

虚拟网络接口卡(vNIC)配置集包括了一组网络配置,它可以被用来设置 Manager 中的虚拟网卡。vNIC 配置集允许您在 vNIC 上使用网络 QoS 配置文件、启用或禁用端口镜像、添加或删除自定义属性。vNIC 配置集为网络管理提供了更多的灵活性,您可以为不同的用户定制不同的配置文件,从而可以控制不同用户所需要的、不同的网络服务质量。

6.2.2. 创建或编辑一个 vNIC 配置集

创建或编辑一个 vNIC 配置集来控制用户和组的网络带宽。

注意

如果您正在启用或禁用端口镜像,在编辑配置集前,和这个配置集相关联的虚拟机必须处于停机的状态。

过程 6.7. 创建或编辑一个 vNIC 配置集

  1. 网络资源标签页,在结果中选择一个逻辑网络。
  2. 选详情框中的 vNIC 配置集标签页。如果您使用树形模式,您可以在结果列表中选择 vNIC 配置集
  3. 新建编辑打开虚拟机接口配置集窗口。
    The VM Interface Profile window

    图 6.2. 虚拟机接口配置集窗口

  4. 为配置集输入名称描述
  5. QoS 列表中选择相关的服务质量策略。
  6. 从下拉列表选择网络过滤器,以管理与虚拟机往来的网络数据包流量。如需了解更多与网络过滤器相关的信息,请参阅Red Hat Enterprise Linux Virtualization 部署和管理指南中的应用网络过滤
  7. 选中透传复选框,以启用 vNIC 透传并允许虚拟功能的直接设备分配。启用透传属性会禁用 QoS、网络过滤和端口镜像,这是因为它们互不兼容。如需了解更多与透传相关的信息,请参阅 第 6.2.4 节 “在一个 vNIC 配置集中启用透传功能”
  8. 设置端口镜像允许所有用户使用这个配置集选项。
  9. 使用自定义属性下拉菜单(默认显示 Please select a key...)来选择一个自定义属性。并使用 +- 按钮来添加或删除自定义属性。
  10. 确定
您创建了一个 vNIC 配置集,并可以通过使用这个配置集来控制用户和组的网络带宽。请注意,如果您编辑了一个 vNIC 配置集,您需要重启虚拟机,或先热拔然后再热插入这个 vNIC。

注意

虚拟机的操作系统需要支持 vNIC 的热插拔功能。

6.2.3. 虚拟机接口配置集窗口中的配置

表 6.5. 虚拟机接口配置集窗口

描述
网络
包含可应用到 vNIC 配置集的网络的下拉列表。
名称
vNIC 配置集名。它可以包括大小写字母、数字、分号和下划线。文件名必须是唯一的,长度是 1 到 50 个字符。
描述
vNIC 配置集的描述。这个项可以是空,但我们推荐您为这个项输入相应的信息。
QoS
包含可应用到 vNIC 配置集的网络服务质量策略(QoS)的下拉列表。QoS 策略控制 vNIC 的入站和出站网络流量。
网络过滤器
包含可应用到 vNIC 配置集的网络过滤器的下拉列表。网络过滤器通过过滤可以和虚拟机往来发送的数据包类型,来提升网络安全性。默认的过滤器是 vdsm-no-mac-spoofing,这是 no-mac-spoofingno-arp-mac-spoofing 的结合。如需有关 libvirt 提供的网络过滤器的更多信息,请参阅 Red Hat Enterprise Linux Virtualization 部署和管理指南中的预先存在的网络过滤器章节。
<没有网络过滤器> 应当用于虚拟机 VLAN 和绑定。在受信任的虚拟机上,选择不使用网络过滤器可以提高性能。
Passthrough
切换启用或禁用透传(passthrough)属性。透传允许一个 vNIC 直接连接到一个主机 NIC 的 VF 上。如果一个 vNIC 配置集已附加到一个虚拟机,则无法编辑它的 passthrough 属性。
如果启用了透传,vNIC 配置集中将禁用 QoS、网络过滤器和端口镜像。
端口镜像
启用/禁用端口镜像功能的复选框。端口镜像会把逻辑网络上的第 3 层网络流量复制到虚拟机的虚拟接口上。在默认情况下,不选中这个选项。如需了解更多详细信息,请参阅技术参考中的端口镜像
设备自定义属性
包括可以被这个 vNIC 配置文件使用的自定义属性下拉菜单。通过 +- 键来添加或删除属性。
允许所有用户使用这个配置集
允许/禁止所有用户使用这个配置集。它在默认情况下被选择。

6.2.4. 在一个 vNIC 配置集中启用透传功能

vNIC 配置集的透传(passthrough)属性可以使 vNIC 直接连接到一个启用了 SR-IOV 的 NIC 中的 VF(virtual function)。然后,这个 vNIC 就可以跳过软件网络虚拟而直接连接到 VF 实现设备分配。
如果 vNIC 配置集已附加到一个 vNIC,则透传属性将无法启用。如果 vNIC 配置集启用了透传,这个配置集的 QoS 和端口镜像功能会被禁用。
如需详细了解 SR-IOV、直连设备分配以及在 Red Hat Virtualization 中实现它们的相关硬件注意事项,请参阅实现 SR-IOV 的硬件注意事项

过程 6.8. 启用透传

  1. 网络结果列表中选择一个逻辑网络,在详情框中点 vNIC 配置集标签页列出这个逻辑网络的所有 vNIC 配置集。
  2. 新建打开虚拟机接口配置集窗口。
  3. 为配置集输入名称描述
  4. Passthrough 选项。这会禁用 QoS端口镜像
  5. 如果需要,使用自定义属性下拉菜单(默认显示 Please select a key...)来选择一个自定义属性。并使用 +- 按钮来添加或删除自定义属性。
  6. 确定保存配置集并关闭窗口。
现在,vNIC 配置集已支持透传功能。要使用这个配置集直接把虚拟机附加到 NIC 或 PCI VF,请把逻辑网络连接到 NIC,并在需要使用透传 vNIC 配置集的虚拟机上创建新的 vNIC。如需了解与这些操作相关的更多信息,请参阅第 6.5.2 节 “编辑主机网络接口并为主机分配逻辑网络”,以及虚拟机管理指南中的添加新的网络接口

6.2.5. 删除 vNIC 配置集

从您的虚拟环境中删除一个 vNIC 配置集。

过程 6.9. 删除 vNIC 配置集

  1. 网络资源标签页,在结果中选择一个逻辑网络。
  2. 选详情框中的 vNIC 配置集标签页列出当前的 VNIC 配置集。如果您使用树形模式,您可以在结果列表中选择 vNIC 配置集
  3. 选一个或多个配置文件,点删除打开删除虚拟机接口配置集窗口。
  4. 确定删除配置集并关闭窗口。

6.2.6. 为 vNIC 配置档案分配安全组

注意

这个功能只适用于集成了 OpenStack Neutron 的用户。Red Hat Virtualization Manager 不能创建安全组,您需要在 OpenStack 中创建它。如需了解更多相关信息,请参阅 Red Hat OpenStack Platform Users and Identity Management Guidehttps://access.redhat.com/documentation/en/red-hat-openstack-platform/9/single/users-and-identity-management-guide#project-security)。
当一个网络是从 OpenStack 网络服务导入的,并使用 Open vSwitch plug-ins 时,您可以为它的 vNIC 配置集添加安全组。一个安全组就是一组被强制执行的安全规则,您可以通过它来过滤网络数据。以下介绍了为一个 vNIC 配置文件添加安全组的步骤。

注意

一个安全组的标识就是它在 OpenStack 网络实例(instance)中所注册的安全组 ID。您可以在安装了 OpenStack 网络服务的系统上运行以下命令来获得安全组 ID:
# neutron security-group-list

过程 6.10. 为 vNIC 配置档案分配安全组

  1. 网络标签页并在结果中选择一个逻辑网络。
  2. 在详情框中点 vNIC 配置集标签页。
  3. 新建,或选一个存在的 vNIC 配置集后点编辑虚拟机接口配置集窗口将会出现。
  4. 在自定义属性下拉菜单中选安全组。自定义属性下拉菜单为空则会应用默认安装设置:允许所有外向的网络流量,以及内部间的网络流量;禁止默认安全组以外的内向网络流量。请注意,如果在以后删除了安全组属性,已经被应用的安装组不会受到影响 。
  5. 在输入项中输入附加到 vNIC 配置集的安全组的 ID。
  6. 确定
您为 vNIC 配置文件加入了一个安全组。所有通过这个逻辑网络的数据都将根据安全组中的规则进行过滤。

6.2.7. vNIC 配置集的用户权限

通过配置用户权利把用户和特定的 vNIC 配置集想关联。有一个配置集的 VnicProfileUser 角色的用户可以使用这个集群;没有这个角色的用户将无法使用这个配置集。

过程 6.11. vNIC 配置集的用户权限

  1. 网络标签页并在结果中选择一个逻辑网络。
  2. vNIC 配置集资源页显示 vNIC 配置集。
  3. 在详情框中选权限标签页显示这个配置集当前的用户权限。
  4. 使用添加键打开为用户添加权限窗口;或使用删除键打开删除权限窗口。
您为一个 vNIC 配置集设置了用户权限。

6.2.8. 为 UCS 集成配置 vNIC 配置集

Cisco 的 UCS(Unified Computing System)被用来管理数据中心的各个方面,如计算、网络、存储资源等。
vdsm-hook-vmfex-dev hook 允许通过配置 vNIC 配置集把虚拟机连接到 Cisco 的 UCS 定义的端口配置集。UCS 定义的端口配置集包括了在 UCS 中配置端口所需的属性和设置。vdsm-hook-vmfex-dev hook 会在 VDSM 中默认自动安装。详情请参阅 附录 A, VDSM 和 Hook
当创建了使用 vNIC 配置集的虚拟机后,它就可用使用 Cisco vNIC。
为 UCS 集成配置 vNIC 配置集首先需要配置一个自定义设置属性。在配置自定义设置属性时,所有存在的值都会被覆盖。如需保留当前值,则需要在配置命令中包括输入新的值以及当前的值。不同的自定义属性由分号分隔。

注意

在配置 vNIC 配置集前,需要在 Cisco UCS 中配置一个 UCS 端口配置集。

过程 6.12. 配置自定义设备属性

  1. 在 Red Hat Virtualization Manager 中,配置 vmfex 自定义属性,并使用 --cver 设置集群的兼容级别。
    # engine-config -s CustomDeviceProperties='{type=interface;prop={vmfex=^[a-zA-Z0-9_.-]{2,32}$}}' --cver=3.6
  2. 验证 vmfex 自定义设备属性已被添加。
    # engine-config -g CustomDeviceProperties
    
  3. 重新启动引擎。
    # systemctl restart ovirt-engine.service
配置的 vNIC 配置集可以属于一个新的逻辑网络,也可以属于一个已存在的逻辑网络。如需了解如何配置新逻辑网络的信息,请参阅 第 6.1.2 节 “在数据中心或集群中创建一个新的逻辑网络”

过程 6.13. 为 UCS 集成配置一个 vNIC 配置集

  1. 网络资源标签页,在结果中选择一个逻辑网络。
  2. 选详情框中的 vNIC 配置集标签页。如果您使用树形模式,您可以在结果列表中选择 vNIC 配置集
  3. 新建编辑打开虚拟机接口配置集窗口。
  4. 为配置集输入名称描述
  5. 从自定义属性列表中选 vmfex,输入 UCS 端口配置集的名称。
  6. 确定

6.3. 外部供应商网络

6.3.1. 从外部供应商(External Provider)上导入网络

要使用外部网络供应商(OpenStack Networking 或实现了 OpenStack Neutron REST API 的第三方供应商)的网络,需要在 Manager 中注册供应商。如需了解更多相关信息,请参阅 第 12.2.3 节 “添加 OpenStack 网络服务(Neutron)来为系统提供网络”第 12.2.6 节 “添加一个外部网络供应商”。然后,按照以下方法把供应商提供的网络导入到 Manager 来使这些网络可以被虚拟机使用。

过程 6.14. 从外部供应商上导入网络

  1. 网络标签页。
  2. 导入打开导入网络窗口。
    The Import Networks Window

    图 6.3. 导入网络窗口

  3. 网络供应商下拉列表中选一个外部供应商。供应商网络将会自动列出这个外部供应商所能提供的所有网络。
  4. 供应商网络列表中选择要导入的网络,点下箭头标这些网络移到要导入的网络列表中。
  5. 如果需要修改导入网络的名称,在名称栏中点网络名称,并进行修改。
  6. 数据中心下拉列表中选择这个网络要被导入的数据中心。
  7. 另外,取消选择要导入的网络列表中的某个网络的允许所有选项来防止这个网络对所有的用户都有效。
  8. 导入键。
选择的网络会导入到目标数据中心,并可以附加到虚拟机。如需了解更多信息,请参阅虚拟机管理指南中的添加新的网络接口

6.3.2. 使用外部供应商网络的限制

在 Red Hat Virtualization 环境中使用从外部供应商上导入的逻辑网络有以下的限制。
  • 外部供应商所提供的逻辑网络只能作为虚拟机网络,而不能作为显示网络。
  • 一个逻辑网络可以被导入多次,但只能被导入到不同的数据中心。
  • 您不能在 Manager 上编辑外部供应商所提供的逻辑网络,您必须直接在提供这个逻辑网络的外部网络供应商上对它进行编辑。
  • 和外部供应商所提供的逻辑网络相连的虚拟网络接口不支持端口镜像(Port mirroring)功能。
  • 当有虚拟机正在使用外部供应商的逻辑网络时,这个供应商不能被从 Manager 中删除。
  • 外部供应商所提供的网络不是“必需的”网络。因此,当对使用这些逻辑网络的集群进行调度时,并不会在选择主机的时候考虑这些网络的情况。用户需要自己保证这些网络在集群的主机上的可用性。

重要

从外部供应商导入的逻辑网络只与运行 Red Hat Enterprise Linux 的主机相兼容,它们不能被分配到运行在 RHVH 主机上的虚拟机。

6.3.3. 配置子网和外部供应商的逻辑网

6.3.3.1. 在外部供应商提供的逻辑网络上配置子网

对于一个外部供应商所提供的逻辑网络,只有在这个逻辑网络已经定义了子网后才能为虚拟机分配 IP 地址。如果没有子网,虚拟机将无法获得 IP 地址。如果只有一个子网,虚拟机将会获得那个子网中的一个 IP 地址;当有多个子网时,虚拟机会从任何一个有效的子网中获得一个 IP 地址。逻辑网所在的外部网络供应商所提供的 DHCP 服务会对 IP 地址进行分配。
Red Hat Virtualization Manager 会自动发现在导入逻辑网络上预定义的子网,您也可以在 Manager 上为逻辑网络添加和删除子网。

6.3.3.2. 为外部供应商的逻辑网络添加子网

为外部供应商所提供的逻辑网络创建一个子网。

过程 6.15. 为外部供应商的逻辑网络添加子网

  1. 网络标签页。
  2. 选择需要添加子网的逻辑网络。
  3. 在详情框中点子网标签页。
  4. 新建打开新建外部子网窗口。
    The New External Subnet Window

    图 6.4. 新建外部子网窗口

  5. 为新子网输入名称CIDR
  6. IP 版本菜单中选择 IPv4IPv6
  7. 确定

6.3.3.3. 从外部供应商所提供的逻辑网络上删除子网

从外部供应商所提供的逻辑网络上删除子网。

过程 6.16. 从外部供应商所提供的逻辑网络上删除子网

  1. 网络页。
  2. 选择需要删除子网的逻辑网络。
  3. 点详情框中的子网页。
  4. 选择要删除的子网。
  5. 删除键后点确定

6.4. 逻辑网络和权限

6.4.1. 管理一个网络的系统权限

作为 SuperUser,系统管理员需要管理“管理门户”的每个方面。而其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的用户只有特定数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有特定集群的管理权限。
网络管理员(network administrator)是一个管理员角色,它可以被应用到一个特定的网络,或数据中心、集群、主机、虚拟机和模板上的所有网络。而一个普通网络用户可以执行系统管理员角色所具有的一部分权限,如在一个特定的虚拟机或模板上查看和关联网络。您可以使用页头中的配置键来对所有网络分配一个网络管理员。
网络管理员可以进行以下操作:
  • 创建、编辑和删除网络。
  • 编辑网络配置,包括配置端口镜像。
  • 为包括集群和虚拟机在内的资源关联或取消关联网络。
创建网络的用户会被自动授予所创建网络的 NetworkAdmin 权限。您也可以通过先删除一个管理员,然后再添加一个新的管理员来改变这个系统的管理员。

6.4.2. 网络管理员和网络用户角色权限介绍

网络权限角色

下表介绍了网络管理员和网络用户的权限。

表 6.6. Red Hat Virtualization 网络管理员和用户角色

角色权利注记
NetworkAdmin数据中心、集群、主机、虚拟机或模板的网络管理员。当用户创建了一个网络时,这个用户会被自动赋予所创建网络的 NetworkAdmin 权限。可以配置和管理一个特定数据中心、集群、主机、虚拟机或模板的网络。一个数据中心或集群的网络管理员会自动继承这个数据中心或集群中的虚拟机的网络权限。如果需要在一个虚拟机网络上配置网络镜像,请在网络上使用 NetworkAdmin 角色,而在虚拟机上使用 UserVmManager 角色。
VnicProfileUser虚拟机和模板的逻辑网络和网络接口用户可以为特定的逻辑网络添加或删除网络接口。

6.4.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 6.17. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

6.4.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 6.18. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

6.5. 主机和网络

6.5.1. 刷新主机的能力

当网络接口卡被添加到一个主机上后,您需要刷新主机的能力来使新添加的网络接口卡可以在 Manager 中被显示。

过程 6.19. 刷新主机能力

  1. 使用资源标签页、树形模式或搜索功能来找到一个主机并选择它。
  2. 刷新能力键。
所选主机的详情框中的网络接口标签页中的内容会被更新。所有新添加的网络接口卡都可以开始被 Manager 使用。

6.5.2. 编辑主机网络接口并为主机分配逻辑网络

用户可以改变主机的物理网络接口设置,把管理网络从一个主机物理网络接口移到另一个上面,为主机物理网络接口分配逻辑网络。网桥和 ethtool 自定义属性也被支持。

警告

在 Red Hat Virtualization 中,更改主机 IP 地址的唯一方式是删除主机后再重新添加。
若要更改主机的 VLAN 设置,必须从 Manager 删除主机,再重新配置,然后重新添加到 Manager。
若要保持网络同步,请执行下列操作。将主机置于维护模式,再从主机手动删除管理网络。这将使得主机能够通过新的 VLAN 进行访问。将主机添加到集群。对于不直接连接管理网络的虚拟机,它们可以在主机之间安全地迁移。
更改了管理网络的 VLAN ID 时,将显示以下警告消息:
Changing certain properties (e.g. VLAN, MTU) of the management network could lead to loss of connectivity to hosts in the data center, if its underlying network infrastructure isn't configured to accommodate the changes. Are you sure you want to proceed?
如果继续,数据中心内的所有主机将与 Manager 断开连接,导致主机向新管理网络的迁移失败,而且管理网络会报告“out-of-sync”。

重要

您不能为主机的物理网络接口分配由外部供应商所提供的逻辑网络。这些网络会在虚拟机需要时被动态分配到相应的主机上。

过程 6.20. 编辑主机网络接口并为主机分配逻辑网络

  1. 主机标签页,选择所需的主机。
  2. 在详情框中点网络接口标签页。
  3. 设置主机网络打开设置主机网络窗口。
  4. 要为一个物理主机网络接口添加一个逻辑网络,选择相应的逻辑网络,并把它们拖到物理主机网络接口旁的分配逻辑网络区中。
    或者,在逻辑网络上点鼠标右键,从下拉菜单中选一个网络接口。
  5. 配置逻辑网络:
    1. 把鼠标移到被管理的逻辑网络上,点铅笔图标打开编辑管理网络窗口。
    2. IPv4 标签页中,从DHCP静态 选择一种引导协议。如果选择了静态,请输入IP子网掩码 / 路由前缀网关

      注意

      每个逻辑网络都可以定义一个与管理网络的网关不同的网关,这可以确保逻辑网络上的数据使用逻辑网络自己的网关,而不是使用管理网络的默认网关来进行转发。

      注意

      IPv6 标签页不应使用,因为它目前不受支持。
    3. 使用 QoS 标签页来覆盖默认的主机网络服务质量。选择覆盖 QoS,然后在以下字段中输入所需的值:
      • 加权重的共享:指定一个特定网络应该被分配的逻辑连接的容量(相对于连接到同一个逻辑连接的其它网络)。准确的共享取决于在这个连接上的所有网络共享的总和。在默认情况下,它的值在 1 到 100 之间。
      • 速率限制 [Mbps]:一个网络可以使用的最大带宽。
      • 实现的速率 [Mbps]:一个网络所需的最小带宽。实现的速率并不一定可以被保证,它取决于网络的架构以及同一个逻辑连接上的其它网络的“实现的速率”设置。
      如需了解更多与配置主机网络服务质量相关的信息,请参阅 第 3.3 节 “主机网络服务质量”
    4. 若要配置网桥,请点击自定义属性标签页,再从下拉列表中选择 bridge_opts。利用以下语法,输入有效的键和值: key=value。多个条目之间用空白字符分隔。以下键是有效的,其值仅作示例。如需了解与这些参数相关的更多信息,请参阅第 B.1 节 “bridge_opts 参数介绍”
      forward_delay=1500
      gc_timer=3765
      group_addr=1:80:c2:0:0:0
      group_fwd_mask=0x0
      hash_elasticity=4
      hash_max=512
      hello_time=200
      hello_timer=70
      max_age=2000
      multicast_last_member_count=2
      multicast_last_member_interval=100
      multicast_membership_interval=26000
      multicast_querier=0
      multicast_querier_interval=25500
      multicast_query_interval=13000
      multicast_query_response_interval=1000
      multicast_query_use_ifaddr=0
      multicast_router=1
      multicast_snooping=1
      multicast_startup_query_count=2
      multicast_startup_query_interval=3125
    5. 若要配置以太网属性,请点击自定义属性标签页,再从下拉列表选择 ethtool_opts。利用 ethtool 命令行参数的格式,输入有效的值。例如:
      --coalesce em1 rx-usecs 14 sample-interval 3 --offload em2 rx on lro on tso off --change em1 speed 1000 duplex half
      此字段可以接受通配符。例如,若要将同一选项应用到此网络的所有接口,可使用:
      --coalesce * rx-usecs 14 sample-interval 3
      默认情况下,不提供 ethtool_opts 选项;您需要使用引擎配置工具添加它。如需了解更多信息,请参阅第 B.2 节 “如何设置 Red Hat Virtualization Manager 来使用 Ethtool”。如需了解与 ethtool 属性相关的更多信息,请通过在命令行中输入 man ethtool 来查看其帮助手册。
    6. 若要配置以太网光纤通道 (FCoE),请点击自定义属性标签页,再从下拉列表选择 fcoe。使用以下语法输入有效的键和值:key=value。至少需要 enable=yes。也可以添加 dcb=[yes|no]auto_vlan=[yes|no]。多个条目之间用空白字符分隔。默认情况下,不提供 fcoe 选项;您需要使用引擎配置工具添加它。如需了解更多信息,请参阅第 B.3 节 “如何设置 Red Hat Virtualization Manager 来使用 FCoE”

      注意

      建议将独立的专用逻辑网络用于 FCoE。
    7. 若要将主机使用的默认网路从管理网络(ovirtmgmt)更改为非管理网络,请配置自定义属性标签页中的 default_route 属性。
      1. 对于管理网络,请将 default_route 自定义属性设置为 false
      2. 对于非管理网络,请将 default_route 自定义属性设置为 true
      在数据中心内的每一主机上重复此配置。默认情况下,不提供 default_route 选项。您需要使用引擎配置工具添加它。如需了解更多信息,请参阅第 B.4 节 “如何设置 Red Hat Virtualization Manager 来使用非管理网络”
    8. 如果您的逻辑网络配置还没有和主机上的配置进行同步,请选择同步网络。在一个逻辑网络被同步前,它将不能被编辑或移到另外的接口上。

      注意

      满足以下条件之一的网络被认为没有被同步
      • VM 网络和物理主机网络不同。
      • VLAN 标识符和物理主机网络不同。
      • 逻辑网络设置了自定义 MTU,并和物理主机网络不同。
  6. 选择检查主机和 ovirt-engine 间的连接性来进行网络连接的检查;这个操作只有在主机处于维护模式时才有效。
  7. 选择保存网络配置来保持您所做的配置修改。
  8. 确定

注意

如果主机网络接口卡没有被全部显示,点刷新能力来更新这个主机的网络接口卡列表。

6.5.3. 为一个网络接口添加多个 VLAN

多个 VLAN 可以被添加到一个网络接口上来分离所在主机上的网络流量。

重要

您必须已经创建了多个逻辑网络,而且每个逻辑网络的新建逻辑网络编辑逻辑网络窗口中的启用 VLAN 标签选项必须被选中。

过程 6.21. 为逻辑网络上的一个网络接口添加多个 VLAN

  1. 主机资源标签页,在结果列表中选择启动了 VLAN 标签功能的逻辑网络所在集群中的一个主机。
  2. 在详情框中点网络接口标签页列出和这个数据中心相关联的物理网络接口。
  3. 设置主机网络打开设置主机网络窗口。
  4. 把您的启用了 VLAN 标签功能的逻辑网拖到物理网络接口旁的分配的逻辑网络区。因为启动了 VLAN 标签功能,物理网络接口可以有多个逻辑网络和它相连。
  5. 要编辑逻辑网络,把您的鼠标拖到一个逻辑网络上,点铅笔图标打开编辑网络窗口。
    如果您的逻辑网络配置还没有和主机上的配置进行同步,请选择同步网络
    选择引导协议
    • None
    • DHCP
    • Static,
      输入 IP子网掩码值。
    确定
  6. 检验主机和 ovirt-engine 间的连接性执行网络检查。这个功能只在主机处于维护模式的情况下才有效。
  7. 选择保存网络设置
  8. 确定
编辑集群中的每个主机上的 NIC,把逻辑网络添加到主机上。完成这个操作后,网络将可以正常工作。
您为一个接口添加了多个启动了 VLAN 标签功能的逻辑网络。您可以重复这个步骤来把有不同 VLAN 标签的逻辑网络添加到主机的一个网络接口上。

6.5.4. 分配额外 IPv4 地址到主机网络

ovirtmgmt 管理网络等主机网络在最初设置时仅创建有一个 IP 地址。这意味着,如果 NIC 的配置文件(如 /etc/sysconfig/network-scripts/ifcfg-eth01)中配置了多个 IP 地址,只有列出的第一个 IP 地址会分配到主机网络。如果要使用同一 NIC 连接存储或另一个专用网络中的服务器,则可能需要额外的 IP 地址。
借助 vdsm-hook-extra-ipv4-addrs hook,您可以为主机网络配置额外的 IPv4 地址。如需有关 Hook 的更多信息,请参阅附录 A, VDSM 和 Hook
在以下操作中,与主机相关的任务必须在每一个需要配置额外 IP 地址的主机上执行

过程 6.22. 分配额外 IPv4 地址到主机网络

  1. 在您要配置额外 IPv4 地址的主机上,安装 VDSM hook 软件包。Red Hat Virtualization Host 上默认提供有此软件包,但需要在 Red Hat Enterprise Linux 主机上安装。
    # yum install vdsm-hook-extra-ipv4-addrs
  2. 在 Manager 上运行以下命令来添加键:
    # engine-config -s 'UserDefinedNetworkCustomProperties=ipv4_addrs=.*'
  3. 重新启动 ovirt-engine 服务:
    # systemctl restart ovirt-engine.service
  4. 在管理门户中,点击主机资源标签页,然后选择须要配置额外 IP 地址的主机。
  5. 点击详情面板中的网络接口标签页,再点击设置主机网络按钮,以打开设置主机网络窗口。
  6. 将光标悬停在分配的逻辑网络上,再点击铅笔图标来打开编辑管理网络窗口,以编辑主机网络接口。
  7. 自定义属性下拉列表中选择 ipv4_addr,再添加额外的 IP 地址和前缀(如 5.5.5.5/24)。多个 IP 地址必须通过逗号分隔。
  8. 确定
  9. 选中保存网络配置复选框。
  10. 确定
Manager 中不会显示这些额外的 IP 地址,但您可以在主机上运行 ip addr show 命令来确认是否已经添加了这些 IP 地址。

6.5.5. 为主机网络接口添加网络标签

使用网络标签可以大大简化一些逻辑网络管理的工作。

注意

在角色网络(如迁移网络或显示网络)上设置标签,可以使该网络批量部署到所有主机上。这种批量添加网络的方式可以利用 DHCP 来实现。此批量部署方式要优于键入静态地址的方式,因为键入许多静态 IP 地址的任务不具有可扩展性。

过程 6.23. 为主机网络接口添加网络标签

  1. 主机资源标签页,在结果列表中选择启动了 VLAN 标签功能的逻辑网络所在集群中的一个主机。
  2. 在详情框中点网络接口标签页列出和这个数据中心相关联的物理网络接口。
  3. 设置主机网络打开设置主机网络窗口。
  4. 标签,在 [新标签] 上点鼠标右键。为标签选择一个物理网络接口。
  5. 标签项中为新标签输入一个名称。
  6. 点击确定
您为一个主机的网络接口添加了一个网络标签。任何新创建的、有相同网络标签的逻辑网络都会和这个网络接口相关联。另外,从一个逻辑网络上删除它的网络标签也会自动取消它和有相同网络标签的主机网络接口的关联。

6.5.6. 绑定

6.5.6.1. Red Hat Virtualization 环境中的绑定(bond)

Red Hat Virtualization Manager 管理门户允许您使用图形界面创建绑定设备。创建绑定可以有不同的情况。
影响绑定过程的因素包括:
  • 要绑定的设备是否已经带有了逻辑网络?
  • 设备是否用来运行兼容的逻辑网络?

表 6.7. 绑定情况以及它们的结果

绑定情况结果
NIC + NIC
创建新绑定窗口会被显示,您可以配置一个新的绑定设备。
如果网络接口带有不兼容的逻辑网络,绑定操作将会失败。
NIC + Bond
NIC 被添加到绑定设备中。如果 NIC 和绑定所带的逻辑网络相互兼容,它们都会被添加到新创建的绑定设备中。
如果绑定设备带有不兼容的逻辑网络,绑定操作将会失败。
Bond + Bond
如果绑定设备没有被附加到逻辑网络中,或被附加到兼容的逻辑网络中,一个新的绑定设置会被创建。它会包括绑定设备中的所有网络接口,以及它们所带有的所有逻辑网络。创建新绑定窗口会被显示,您可以对新绑定进行配置。
如果绑定设备带有不兼容的逻辑网络,绑定操作将会失败。

6.5.6.2. 绑定

绑定(bond)是由多个网卡组合成的、一个单一的、由软件定义的网络设备。因为一个绑定是由多个网卡组成的,因此它可以提供比单一网卡更高的网络传输速度,并提供了更好的网络容错功能(绑定只有在所有的网卡都出现问题时才会停止工作)。但是,绑定设备有一个限制:绑定必须由相同型号的网卡组成。
绑定设备的数据包传输算法是由绑定的模式所决定的。

重要

模式 1、2、3 和 4 支持虚拟机网络(使用网桥)和非虚拟机网络(无网桥);模式 0、5 和 6 只支持非虚拟机网络(无网桥)。
绑定模式
Red Hat Virtualization 使用 Mode 4 作为默认的模式,它同时也支持以下绑定模式:
模式 0(round-robin policy)
传输的数据包会顺序使用网卡。它会首先使用绑定中的第一个有效的网卡,最后使用最后一个网卡。模式 0 提供了网络容错和网络负载均衡的功能,但它不能和网桥一起使用,因此与虚拟机逻辑网络不兼容。
模式 1(active-backup policy)
绑定中的一个网络接口被设置为活跃接口来处理网络数据,其它网络接口都为备份接口。如果活跃接口出现了问题,备份接口中的一个网络接口会成为活跃接口来继续处理网络数据。使用模式 1 的绑定设备的 MAC 地址只在一个端口上可见,这可以避免因为切换活跃接口所造成的 MAC 地址改变所带来的混淆。模式 1 提供了网络容错的功能。
模式 2(XOR policy)
模式 2(XOR policy)会对源和目标 MAC 地址进行 XOR 操作,所获得的结果再对“次要网卡”的数量进行取模。系统会根据最后所获得的结果来选择用来传输数据包的接口。它保证了对于每个目标 MAC 地址,相同的接口都会被选择。模式 2 提供了容错和负载均衡的功能。
模式 3(broadcast policy)
使用绑定中的所有网卡来传输数据包。它提供了网络容错的功能。
模式 4(IEEE 802.3ad policy)
模式 4(IEEE 802.3ad policy)会创建一个整合的组,这个组会共享网速和网络双工(duplex)设置。模式 4 会根据 IEEE 802.3ad 标准使用活动组中的所有网络接口。
模式 5(adaptive transmit load balancing policy)
模式 5 保证所有出站的网络流量会根据每个接口的负载进行分配,而所有入站的网络流量都被当前的接口所接收。如果用来接收网络流量的接口出现故障,另外一个网络接口会被指定来接收网络流量。因为模式 5 不能和网桥一起使用,所以它与虚拟机网络不兼容。
模式 6(adaptive load balancing policy)
Mode 5 的功能再加上不需要特殊的网络交换要求的 IPv4 网络数据接收负载均衡功能。它在处理接收负载时使用 ARP。因为模式 6 不能与网桥一起使用,所以它与虚拟机逻辑网络不兼容。

6.5.6.3. 使用管理门户创建一个绑定设备

您可以对兼容的网络设备进行绑定,它可以增加网络的带宽和可靠性。您可以对多个网络接口创建绑定;也可以对多个预先设置的绑定设备进行绑定;或把以上两种设备进行绑定。绑定可以支持 VLAN tagged 和 non-VLAN 网络数据。

过程 6.24. 使用管理门户创建一个绑定设备

  1. 主机资源标签页,在结果列表中选择主机。
  2. 在详情框中点网络接口标签页列出和这个主机相关联的物理网络接口。
  3. 设置主机网络打开设置主机网络窗口。
  4. 选择并拖动一个设备到另一个设备上面后放开,创建新的 Bond 窗口会被打开。或者,在设备上点鼠标右键,从下拉菜单中选择另一个设备。
    如果设备不兼容,绑定操作会失败,并显示如果解决兼容性问题的信息。
  5. 从下拉菜单中选择 Bond 名称Bonding 模式
    bond 模式 1、2、4 和 5 可以被选择。其它的模式可以通过自定义选项进行设置。
  6. 确定创建 bond 并关闭创建新的 Bond 窗口。
  7. 为新创建的 bond 设备分配一个逻辑网络。
  8. 另外,还可以选择验证主机和 ovirt-engine 间的连接性保存网络配置
  9. 确认保存所做的设置并关闭设置主机网络窗口。
您所选择的网络设备被连接为一个 bond 设备,并可以作为一个单一的接口进行编辑。bond 设备会在所选主机的网络接口标签页的详情框中列出。
bond 功能必须在主机所使用的交换机端口上被启用。在交换机上启用 bond 功能的方法会根据交换机本身的不同而有所不同,请参阅交换机手册来获得相关的信息。

注意

如需以 Mode 4 绑定,则必须在交换机上正确配置所有从机。如果它们均未在交换机上正确配置,ad_partner_mac 将报告为 00:00:00:00:00:00。Manager 将通过在网络接口标签页的绑定上显示感叹号的形式发出警告。如果有任何从机配置正确且正在运行,则不提供警告。

6.5.6.4. 主机接口中的自定义 bond 选项的使用实例

您可以通过选择创建新的 Bond 窗口中的 Bonding 模式 选项中的自定义项来创建自定义 bond 设备。您可以参照以下的实例来创建您自己的自定义 bond 设备(请根据您的实际情况修改相应的数据)。如需了解更多关于 bond 的信息,请参阅 Linux Ethernet Bonding Driver HOWTO

例 6.1. xmit_hash_policy

这个选项为 bonding 模式 2 和模式 4 定义了传输负载平衡的策略。例如,如果您的大部分的网络流量都发生在不同的 IP 地址之间,您可以设置策略来通过 IP 地址进行负载平衡。您可以通过选择自定义 bond 模式并在输入项中输入以下内容来设置这个负载平衡策略:
mode=4 xmit_hash_policy=layer2+3

例 6.2. ARP 监测

当系统无法通过 ethtool 正确报告连接状态时,可以使用 ARP 监测功能。您可以通过选择自定义 bond 模式并在输入框中输入以下内容来在主机的 bond 设备上设置一个 arp_interval
mode=1 arp_interval=1 arp_ip_target=192.168.0.2

例 6.3. 主接口

您可能需要指定一个吞吐量较高的网卡作为一个 bond 设备的主接口。选择自定义 bond 模式并输入以下信息来指定一个网卡作为主接口:
mode=1 primary=eth0

6.5.7. 修改主机的 FQDN

使用以下步骤修改主机的 FQDN。

过程 6.25. 更新主机的 FQDN

  1. 将主机置于维护模式,使虚拟机能够实时迁移到其他主机。如需了解更多相关信息,请参阅第 7.5.7 节 “把主机设为维护模式(Maintenance Mode)”。另外,也可手动关闭所有虚拟机并迁移到其他主机。如需了解更多相关信息,请参阅虚拟机管理指南中的手动迁移虚拟机
  2. 删除后点确定把主机从管理门户中删除。
  3. 使用 hostnamectl 更新主机名。如需了解更新相关信息,请参阅 Red Hat Enterprise Linux 7 Networking Guide 中的相关章节( Configure Host Names)。
    # hostnamectl set-hostname NEW_FQDN
  4. 重启主机。
  5. 在 Manager 中重新注册主机。详情请参阅 第 7.5.1 节 “为 Red Hat Virtualization Manager 添加一个主机”

6.5.8. 修改主机的 IP 地址

过程 6.26. 

  1. 将主机置于维护模式,使虚拟机能够实时迁移到其他主机。如需了解更多相关信息,请参阅第 7.5.7 节 “把主机设为维护模式(Maintenance Mode)”。另外,也可手动关闭所有虚拟机并迁移到其他主机。如需了解更多相关信息,请参阅虚拟机管理指南中的手动迁移虚拟机
  2. 删除后点确定把主机从管理门户中删除。
  3. admin 用户身份登录到主机。
  4. F2,选择 OK,按 Enter 进入 rescue 环境。
  5. 通过编辑 /etc/sysconfig/network-scripts/ifcfg-ovirtmgmt 文件来修改 IP 地址。例如:
    # vi /etc/sysconfig/network-scripts/ifcfg-ovirtmgmt
    ...
    BOOTPROTO=none
    IPADDR=10.x.x.x
    PREFIX=24
    ...
  6. 重启网络服务,检查 IP 地址已被更新。
    # systemctl restart network.service
    # ip addr show ovirtmgmt
  7. 输入 exit 退出 rescue 环境,返回到文本用户界面。
  8. 在 Manager 中重新注册主机。详情请参阅 第 7.5.1 节 “为 Red Hat Virtualization Manager 添加一个主机”

第 7 章 主机

7.1. 主机介绍

主机(也被称为 hypervisor)就是用来运行虚拟机的物理服务器。所有的虚拟化功能都是通过使用一个可以加载的 Linux 内核模块 - Kernel-based Virtual Machine(KVM)实现的。
KVM 可以同时处理多个运行 Windows 或 Linux 操作系统的虚拟机。虚拟机作为单独的 Linux 处理进程在主机上运行,并可以通过 Red Hat Virtualization Manager 进行远程管理。一个 Red Hat Virtualization 环境有一个或多个主机。
Red Hat Virtualization 支持两种主机。您可以使用 Red Hat Virtualization Host(RHVH)作为您的主机,也可以通过在标准的 Red Hat Enterprise Linux 系统上安装 hypervisor 软件包作为您的主机。

注意

您可以查看 Red Hat Virtualization Manager 中的一个独立主机的主机类型。在详情框中的常规标签页中点软件,查看 OS 描述中的内容。
主机使用 tuned 配置文件来优化虚拟环境。如需了解更多关于 tuned 的信息,请参阅 Red Hat Enterprise Linux 7 Performance Tuning Guide
Red Hat Virtualization Host 自动启用了安全功能,Security Enhanced Linux (SELinux) 和 iptables 防火墙在默认状态下被完全配置。主机的 SELinux 状态在详情框中的常规标签页中的 SELinux 模式项中显示。.如果使用 Red Hat Enterprise Linux 作为主机,当把主机加入到虚拟环境中时,Manager 会打开它们上面的一些端口。
主机需要是使用了 Intel VT 或 AMD-V 扩展模块的 64 位服务器。它需要运行 Red Hat Enterprise Linux 7 或以上版本的 AMD64/Intel 64 版本。
Red Hat Virtualization 平台上的物理主机需要满足以下要求:
  • 只能属于系统中的一个集群。
  • 必须使用支持 AMD-V 或 Intel VT 硬件虚拟化扩展模块的 CPU。
  • 使用的 CPU 必须支持在创建集群时选择的虚拟 CPU 类型所具有的所有功能。
  • 最少需要 2GB 内存。
  • 需要分配一个有系统权限的系统管理员。
系统管理员可以从 Red Hat Virtualization watch list 中接收到最新的安全更新。当您订阅了 Red Hat Virtualization watch list,您将可以通过电子邮件的方式获得最新的、与 Red Hat Virtualization 产品相关的安全更新。您可以使用以下链接进行订阅:

7.2. Red Hat Virtualization Host

Red Hat Virtualization Host(RHVH)利用 Red Hat Enterprise Linux 的特殊构建版本安装,其中仅含有托管虚拟机所需的软件包。它使用的 Anaconda 安装界面基于 Red Hat Enterprise Linux 主机所使用的界面 ,可以通过 Red Hat Virtualization Manager 或 yum 进行更新。若要安装额外的软件包并使它们在升级后保留,唯一的途径是使用 yum 命令。
RHVH 采用 Cockpit 用户界面来监控主机的资源并执行管理任务。通过 SSH 或控制台直接访问 RHVH 不被支持,因此 Cockpit 提供了一个图形用户界面用来执行那些在主机被加入到 Red Hat Virtualization Manager 前需要执行的任务,如配置网络和部署自承载引擎等。另外,也可以用于通过工具 > 终端子标签页运行终端命令。
在您的网络浏览器中使用 https://HostFQDNorIP:9090 访问 Cockpit 用户界面。RHVH 的 Cockpit 包括了一个定制的 Virtualization 仪表板,它会显示主机的健康状态、SSH 主机密钥、自承载引擎状态,虚拟机以及虚拟机的统计数据。

注意

使用 grubby 可以为 Red Hat Virtualization Host 添加定制的引导内核参数。grubby 会把所做的改变保存在 grub.cfg 文件中,从而使改变具有持久性。进入主机的 Cockpit 用户界面中的 Tools > Terminal 子标签页来使用 grubby 命令。如需了解更多信息,请参阅 Red Hat Enterprise Linux System Administrator's Guide

警告

红帽强烈建议您不要在 RHVH 上创建不受信任的用户,因为这可以造成对本地安全漏洞的恶意利用。

7.3. Red Hat Enterprise Linux 主机

您可以在兼容硬件上安装的 Red Hat Enterprise Linux 7 作为主机。Red Hat Virtualization 支持运行 Red Hat Enterprise Linux 7 Server AMD64/Intel 64 版本并带有 Intel VT 或 AMD-V 扩展的系统。要使用运行 Red Hat Enterprise Linux 的系统作为主机,您还必须附加 Red Hat Enterprise Linux Server 权利和 Red Hat Virtualization 权利。
因为添加主机时平台需要完成以下步骤:虚拟化检查、安装软件包、生成桥接以及重启该主机,所以这个过程会需要一些时间来完成。当主机和管理系统间建立连接时,您可以使用详情框监控它的进程。

重要

不要在 Red Hat Enterprise Linux 主机上安装第三方的 watchdog,因为这会和 VDSM 提供的 watchdog 守护进程相冲突。

7.4. Satellite 主机供应商提供的主机

Red Hat Virtualization Manager 也可以使用 Satellite 主机供应商所提供的主机。当一个 Satellite 主机供应商作为一个外部供应商被加入到 Manager 后,它所提供的主机将可以象 Red Hat Virtualization Host(RHVH)和 Red Hat Enterprise Linux 主机一样使用。

7.5. 主机任务

7.5.1. 为 Red Hat Virtualization Manager 添加一个主机

向 Red Hat Virtualization 添加主机时需要完成以下操作:虚拟化检查、安装软件包、生成桥接,以及重启该主机,所以这个过程会需要一些时间来完成。当主机和管理系统间建立连接时,可以使用详情框监控它的进程。

过程 7.1. 为 Red Hat Virtualization Manager 添加一个主机

  1. 在管理门户中点主机资源标签页。
  2. 新建
  3. 使用数据中心主机集群下拉列表为这个新主机选择数据中心和主机集群。
  4. 输入新主机的名称地址。标准的 SSH 端口(22)会被自动填充到 SSH 端口项中。
  5. 选择 Manager 用来访问这个主机的身份验证方法。
    • 输入 root 用户的密码。
    • 或者,如果需要使用公共密钥进行验证,把 SSH 公共密钥项中的密钥复制到主机的 /root/.ssh/authorized_keys 文件中。
  6. 高级参数键可以进行其它的高级设置。
    1. 您可以禁用自动防火墙配置功能。
    2. 您可以添加一个主机 SSH 指纹来增加系统的安全性。您可以手工添加它,也可以使用自动获取功能来自动添加它。
  7. 此外,也可选择配置电源管理SPM控制台网络供应商内核。如需了解更多信息,请参阅第 7.5.4 节 “新建主机和编辑主机窗口中的设置和控制介绍” 。在为自承载引擎部署而部署或取消部署主机时,可使用承载的引擎
  8. 确定
新主机会在主机列表中显示,状态是 Installing,您可以在详情框中查看安装的进程。当安装完成后,状态会变为 Up

7.5.2. 添加 Satellite 主机供应商主机

添加 Satellite 主机供应商所提供的主机的过程和添加 Red Hat Enterprise Linux 主机的过程几乎完全一样,只是主机在 Manager 上的识别方法有所不同。以下介绍了添加 Satellite 主机供应商所提供的主机方法。

过程 7.2. 添加 Satellite 主机供应商主机

  1. 主机资源标签页显示主机列表。
  2. 新建打开新建主机窗口。
  3. 使用主机集群下拉菜单为这个新主机选择主机集群。
  4. Foreman/Satellite 显示添加 Satellite 主机供应商所提供的主机的选项。 选择提供主机的供应商。
  5. 选择发现的主机提供的主机
    • 发现的主机(默认选项):从下拉列表中选主机、主机组和计算资源。
    • 提供的主机:从供应商主机下拉列表中选择一个主机。
    所添加的主机详情会从外部供应商中自动获得,您可以根据需要对它们进行编辑。
  6. 为新主机输入名称地址SSH 端口(只适用于提供的主机)信息。
  7. 选择使用这个主机的身份验证机制。
    • 输入 root 用户的密码。
    • SSH PublicKey 项中的密钥复制到主机的 /root/.ssh/authorized_hosts 文件中来使用公共密钥进行验证(只适用于提供的主机)。
  8. 您已经完成了添加 Red Hat Enterprise Linux 主机的必要步骤。点高级参数键可以进行其它的高级设置。
    1. 您可以禁用自动防火墙配置功能。
    2. 您可以添加一个主机 SSH 指纹来增加系统的安全性。您可以手工添加它,也可以使用自动获取功能来自动添加它。
  9. 您可以通过相应的页配置电源管理SPM控制台网络供应商。因为这些操作并不是添加一个 Red Hat Enterprise Linux 主机的必要步骤,我们将不在这里进行详细介绍。
  10. 确定添加主机并关闭窗口。
新的主机在主机列表中被显示,状态是 Installing,您可以在详情框中查看安装的进程。当安装完成后,状态会被更新为 Reboot。当状态变为 Up 时,这个新主机就被完全激活了。

7.5.3. 为主机配置 Satellite 勘误管理

Red Hat Virtualization可以被配置为查看 Red Hat Satellite 的勘误。系统管理员可以在仪表板中接收到相关的勘误以及与勘误相关的信息。如需了解更多与 Red Hat Satellite 相关的信息,请参阅 Red Hat Satellite User Guide
Red Hat Virtualization 4.1 支持 Red Hat Satellite 6.1 的勘误管理。

重要

主机在 Satellite 服务器中由它们的 FQDN 进行标识,使用 IP 地址添加的主机不会获得勘误报告。这就可以确保外部内容主机的 ID 不需要在 Red Hat Virtualization 中维护。
用来管理主机的 Satellite 帐号需要有 Administrator 权限,以及一个默认的机构设置。

过程 7.3. 为主机配置 Satellite 勘误管理

  1. 把 Satellite 服务器作为一个外部供应商进行添加。详情请参阅 第 12.2.1 节 “为主机配置添加 Red Hat Satellite 实例”
  2. 把所需的主机与 Satellite 服务器进行关联。

    注意

    主机需要在 Satellite 服务器中注册,并需要安装 katello-agent 软件包。
    如需了解如何配置主机进行注册的信息,请参阅 Red Hat Satellite User Guide 中的 Configuring a Host for Registration;如需了解如何注册主机并安装 katello-agent 软件包的信息,请参阅 Red Hat Satellite User GuideRegistration
    1. 主机标签页中,从结果列表中选择主机。
    2. 编辑打开编辑主机窗口。
    3. 使用 Foreman/Satellite 选项。
    4. 从下拉列表中选所需的 Satellite 服务器。
    5. 确定
现在,主机就可以在用来管理主机配置的仪表板中显示可用的勘误。

7.5.4. 新建主机和编辑主机窗口中的设置和控制介绍

7.5.4.1. 主机常规设置介绍

这些设置适用于编辑一个主机、添加新的 Red Hat Enterprise Linux 主机或 Satellite 主机供应商主机。
常规设置表包括了新建主机编辑主机窗口中的常规标签页中的设置信息。

表 7.1. 常规设置

描述
数据中心
主机所在的数据中心。Red Hat Virtualization Host(RHVH)主机不能被添加到启用了 Gluster 的集群中。
主机集群
主机所属的集群。
使用 Foreman/Satellite
显示/隐藏添加 Satellite 主机供应商所提供的主机选项。它包括以下选项:
发现的主机

  • 发现的主机 - 一个包括被引擎发现的 Satellite 主机名的下拉列表。
  • 主机组 - 一个包括有效主机组的下拉列表。
  • 计算资源 - 一个包括提供计算资源的 hypervisor 列表。

提供的主机

  • 提供的主机 - 包括所选择的外部供应商所提供的主机下拉列表。列表内容是根据供应商搜索过滤器项中的搜索条件所搜索到的主机。
  • 供应商搜索过滤器 - 搜索外部供应商所提供的主机。请参阅相关外部供应商的文档来输入主机搜索条件。当此项为空时,会显示所有可用的主机。

名称
集群的名称。它最长支持 40 个字符,可以包括大小写字母、数字、分号和下划线。集群的名字必须是唯一的。
注释
输入与主机相关的备注
地址
IP 地址或主机的主机名。
密码
主机上的 root 用户密码。这个密码只能在添加主机时设置,以后将不能被更改。
SSH 公共密钥
用户可以使用 Manager 的 ssh 密钥而不是密码来进行主机验证。用户只需把这个项中的内容复制到主机的 /root/.known_hosts 文件中。
自动配置的主机防火墙
当添加一个新主机时,Manager 将在默认的情况下在主机的防火墙中打开所需的端口。这是一个高级参数
SSH 指印
您可以获取主机的 SSH 指纹信息进行比较,从而确定它和您所需要的主机的指纹信息相同。这是一个高级参数

7.5.4.2. 主机电源管理设置介绍

电源管理设置表含有新建主机编辑主机窗口的电源管理标签页上需要的信息。如果主机配有支持的电源管理卡,您可以配置电源管理。

表 7.2. 电源管理设置

描述
启用电源管理
在主机上启用电源管理。选择这个选项将会使电源管理标签页中的其它项可用。
Kdump 集成
在进行内核 crash dump 时防止主机隔离(fencing)的发生,从而可以避免 crash dump 被中断。从 Red Hat Enterprise Linux 7.1 开始,在默认情况下都可以使用 Kdump。如果主机上包括了 kdump,但它没有被正确配置(kdump 服务无法被启动),使用 Kdump 集成选项会导致主机安装(或重新安装)失败。如果出现这个问题,请参阅 第 7.6.4 节 “fence_kdump 高级配置”
禁用电源管理的策略控制
电源管理被主机所在集群调度策略所控制。在电源管理被启用时,如果主机的利用率低于所设置的低利用率值,这个主机就会被 Manager 关闭。当集群中没有足够的可用主机或负载均衡设置需要新的主机时,这个被关闭的主机会被重新启动。如果您不希望您的主机自动进行这些操作,选中这个选项。
顺序的代理
列出主机的隔离代理。隔离代理可以是顺序的、并行的或两者相结合。
  • 如果隔离代理顺序使用,主代理会被首先使用来停止或启动一个主机。如果主代理操作失败,第二个代理会被使用。
  • 如果隔离代理并行使用,两个隔离代理都需要对 Stop 命令作出响应才可以停止主机,而只要一个代理对 Start 命令作出了响应,主机就会启动。
在默认情况下,隔离代理被顺序使用。使用向上或向下按钮来调整隔离代理被使用的顺序。
为了使两个隔离代理并行使用,在一个隔离代理旁的 Concurrent with 下拉菜单中选择需要和它一起并行使用的另一个隔离代理。另外,隔离代理也可以被加入到一组并行的隔离代理中来一起使用(在要添加的隔离代理旁的 Concurrent with 下拉列表中选择隔离代理组。
添加隔离代理
点加号(+)按钮添加新的隔离代理,编辑隔离代理窗口会被打开。后面的表格介绍了这个窗口中的设置信息。
电源管理代理优选项
在默认情况下,Manager 会在主机所在的同一个集群中搜索隔离代理,如果没有找到,则会在同一个 dc(数据中心)中进行搜索。使用向上和向下按钮来调整这些资源使用的顺序。这个项包括在高级参数中。
下表介绍了编辑隔离代理窗口所需的信息。

表 7.3. 编辑隔离代理设置

描述
地址
主机电源管理设备的访问地址。它可以是一个主机名或是一个 IP 地址。
用户名
用来访问电源管理设备的用户帐号名。您可以在设备上创建一个用户,也可以使用默认的用户。
密码
用来访问电源管理设备的用户密码。
类型
主机电源管理设备的类型。
选择以下类型之一:
  • apc - APC MasterSwitch 网络电源开关。不能和 APC 5.x 电源开关设备一起使用。
  • apc_snmp - 使用 APC 5.x 电源开关设备。
  • bladecenter - IBM Bladecenter Remote Supervisor Adapter。
  • cisco_ucs - Cisco Unified Computing System。
  • drac5 - Dell 计算机的 Dell Remote Access Controller。
  • drac7 - Dell 计算机的 Dell Remote Access Controller。
  • eps - ePowerSwitch 8M+ 网络电源开关。
  • hpblade - HP BladeSystem。
  • iloilo2ilo3ilo4 - HP Integrated Lights-Out。
  • ipmilan - Intelligent Platform Management Interface 和 Sun Integrated Lights Out Management 设备。
  • rsa - IBM Remote Supervisor Adapter。
  • rsb - Fujitsu-Siemens RSB 管理界面。
  • wti - WTI Network Power Switch。
端口
电源管理设备与主机进行交流所使用的端口号。
Slot
用来识别电源管理设备刀片的 Slot 号。
Service Profile
用来识别电源管理设备刀片的服务档案名。当设备类型是 cisco_ucs 时,会显示这个项,而不是显示 Slot 项。
选项
电源管理设备的特定选项。它们的格式是 'key=value'。请参阅您的主机电源管理设备的相关文档来获得这些参数的详细信息。
对于 Red Hat Enterprise Linux 7 主机,如果使用 cisco_ucs 作为电源管理设备,则需要把 ssl_insecure=1 附加到选项项中。
安全性
使用这个选项可以使电源管理设备和主机进行安全的通信。根据电源管理代理,电源管理设备和主机间的安全通信可能使用 ssh、ssl 或其它身份验证协议。

7.5.4.3. SPM 优先级设置介绍

SPM 设置表包括了新建主机编辑主机窗口中的 SPM 标签页中的相关信息。

表 7.4. SPM 设置

描述
SPM 优先级
定义一个主机获得 Storage Pool Manager(SPM) 角色的可能性。这个选项的值包括正常。低优先级意味着这个主机被分配为 SPM 角色的机会比较低,而高优先级意味着这个主机被分配为 SPM 角色的机会比较高。

7.5.4.4. 主机控制台设置介绍

控制台设置表介绍了新建主机编辑主机窗口中的控制台标签页中的设置。

表 7.5. 控制台设置

描述
覆盖显示地址
选中这个项会覆盖主机的显示地址。当主机使用内部 IP 地址,并处于一个 NAT 防火墙后面时,这个选项将会非常有用。当一个用户从内部网络之外的网络连接到一个虚拟机的时候,这个虚拟机会返回一个公共的 IP 或 FQDN(通过外部的网络解析获得公共 IP),而不是虚拟机所在的主机的内部地址。
显示地址
这里设定的地址会被所有在这个主机上运行的虚拟机所使用。

7.5.4.5. 网络供应商设置介绍

网络供应商设置表详细介绍了新建主机编辑主机 窗口的网络供应商标签页上需要的信息。

表 7.6. 网络供应商设置

描述
外部网络供应商
如果您添加了外部网络供应商,并且希望主机的网络由外部网络供应商配置,请从列表中选择。

7.5.4.6. 内核设置介绍

内核设置表详细介绍了新建主机编辑主机窗口中内核标签页上需要的信息。常用内核引导参数选项已列为复选框,您可以轻松选取。如需进行更为复杂的更改,请使用内核命令行旁边的自由文本输入字段来添加所需的任何额外参数。

重要

如果主机已关联到 Manager,请确保先将主机置于维护模式,然后再应用任何更改。您需要通过点击重新安装来重新安装主机,并在重新安装完成后重新启动主机,从而让更改生效。

表 7.7. 内核设置

描述
Hostdev 透传和 SR-IOV
启用内核中的 IOMMU 标记,以允许主机设备供虚拟机使用,如同该设备直接附加到虚拟机本身一样。主机硬件和固件必须也支持 IOMMU。硬件上必须启用虚拟化扩展和 IOMMU 扩展。请参阅管理指南中的为 PCI 透传配置一个主机 。IBM POWER8 默认启用 IOMMU。
嵌套的虚拟化
启用 vmx 或 svm 标记后,您可以在虚拟机内运行其他虚拟机。此选项仅用于评估用途,不支持用于生产用途。主机上必须安装有 vdsm-hook-nestedvt hook。
不安全的中断
如果 IOMMU 已启用,但因为硬件不支持中断重新映射而导致透传失败,您可以考虑启用此选项。请注意,只有主机上的虚拟机受到信任时才应启用此选项;启用此选项可能会使主机暴露于来自虚拟机的 MSI 攻击。仅在出于评估目的而使用未经认证的硬件时,才考虑使用此选项作为变通办法。
PCI 重新分配
如果 SR-IOV NIC 因为内存问题而无法分配虚拟功能,可考虑启用此选项。硬件和固件必须也支持 PCI 重新分配。仅在出于评估目的而使用未经认证的硬件时,才考虑使用此选项作为变通办法。
内核命令行
您可以通过此字段为默认参数附加更多内核参数。

注意

如果内核引导函数灰显,请点击重置按钮,即可使用这些选项。

7.5.4.7. 承载的引擎设置介绍

承载的引擎设置表详细介绍新建主机编辑主机窗口的承载的引擎标签页上需要的信息。

表 7.8. 承载的引擎设置

描述
选择承载引擎部署操作
三个可用选项:
  • - 不需要任何操作。
  • 部署 - 选择此选项可将主机部署为自承载引擎主机。
  • 未部署 - 对于自承载引擎主机,您可以选择此选项来取消部署该主机,并删除自承载引擎相关的配置。

7.5.5. 配置主机电源管理设置

配置主机电源管理设备的设置,从管理门户中执行主机的关闭、启动、重新启动操作。
如果需要使用主机和虚拟机的高可用性功能,则需要配置主机的电源管理设置。

重要

在配置主机的电源管理设置前,主机需要处于维护模式,否则这个主机上所运行的虚拟机都会非正常停止工作,从而造成生产环境出现问题。如果您的主机没有处于维护模式,一个警告信息会被显示。

过程 7.4. 配置电源管理配置

  1. 主机标签页中,从结果列表中选择主机。
  2. 编辑打开编辑主机窗口。
  3. 电源管理标签页显示电源管理设置。
  4. 选中启用电源管理选项来使其它选项可用。
  5. 选择 Kdump 集成选项可以防止在发生内核 crash dump 时,主机进行隔离(fencing)操作。

    重要

    如在已存在的主机上启用 Kdump 集成选项,则需要重新安装这些主机来配置 kdump。详情请参阅 第 7.5.11 节 “重新安装主机”
  6. 或者,如果不希望主机所在集群调度策勒控制主机的电源管理,则选择禁用电源管理的策略控制
  7. 点加号(+)按钮来添加新的电源管理设备。编辑隔离代理窗口会被打开。
  8. 在相关的项中输入电源管理设备的地址用户名密码
  9. 从下拉列表中选择电源管理设备的类型
  10. 输入电源管理设备用来和主机进行交流所使用的 SSH 端口号。
  11. 输入用来识别电源管理设备刀片的 Slot 号。
  12. 为电源管理设备输入选项。使用逗号分隔多个选项,选项的格式是 'key=value'
  13. 选择安全性选择框来使电源管理设备通过安全的方法和主机进行交流。
  14. 测试来测试电源管理设备。如果测试成功,Test Succeeded, Host Status is: on 将会被显示。
  15. 确定关闭编辑隔离代理窗口。
  16. 电源管理标签页中,还可以展开高级参数项,使用向上或向下按钮来指定 Manager 搜索主机的集群dc(datacenter)作为隔离代理的顺序。
  17. 确定
现在,电源管理下拉菜单在管理门户中被启用。

7.5.6. 配置主机存储池管理器(Storage Pool Manager)设置

Storage Pool Manager (SPM) 是一个管理角色,数据中心中的一个主机会被分配这个角色来对存储域的访问控制进行管理。SPM 必须一直保持有效,如果当前的 SPM 主机出现问题,SPM 角色会被分配给另外一个主机。因为 SPM 角色会使用它所在主机的资源,所以在为主机设置 SPM 优先级时应该考虑主机的资源使用情况。
一个主机的 Storage Pool Manager (SPM) 优先级设置会影响到它获得 SPM 角色的机会:一个有高 SPM 优先级的主机会在一个有低 SPM 优先级的主机前获得 SPM 角色。

过程 7.5. 配置 SPM 设置

  1. 主机资源标签页,在结果列表中选择一个主机。
  2. 编辑打开编辑主机窗口。
  3. SPM 标签页显示 SPM 优先级的设置。
  4. 为主机选择所需要的 SPM 优先级。
  5. 确认保存设置并关闭窗口。
您为主机配置了 SPM 优先级。

7.5.7. 把主机设为维护模式(Maintenance Mode)

许多系统维护任务(如网络配置、软件升级)需要在主机处于维护模式时才可以进行。在进行任何可能造成 VDSM 停止正常工作(如重启)、或可能造成网络或存储出现问题的操作前,都需要把主机设置为维护模式。
当一个主机被设置为维护模式时,Red Hat Virtualization Manager 会试图把它上面运行的虚拟机迁移到另外的主机上。这需要满足虚拟机实时迁移所需要的条件,特别是集群中最少需要有一个有足够资源的主机来运行需要迁移的虚拟机。

过程 7.6. 把主机设置为维护模式

  1. 主机标签页,选择所需的主机。
  2. 维护打开维护主机确认窗口。
  3. 另外,还可以在维护主机确认窗口中输入把主机设置为维护模式的原因。您可以输入进行维护的理由,它会被记录在日志中,并在主机被重新激活后显示这个信息。

    注意

    主机维护的原因项只有在它在集群设置中被启用时才会出现。相关信息,请参阅 第 5.2.2.1 节 “集群常规设置介绍”
  4. 确定把存储域变为维护模式。
主机上所运行的所有虚拟机被迁移到其它主机上。如果主机是一个 SPM(Storage Pool Manager),SPM 的角色会被分配给其它主机。主机的状态值被改为 Preparing for Maintenance,并在所有操作进行完后变为 Maintenance。当主机位于维护模式时,VDSM 不会停止。

注意

如果任何虚拟机的迁移出现问题,在主机上点激活来停止把主机设置为维护模式的操作,然后在虚拟机上点取消迁移来停止迁移操作。

7.5.8. 激活处于维护模式的主机

当一个主机处于维护模式,或刚被添加到系统中时,这个主机必须被激活后才可以使用。当主机还没有准备好时,激活操作可能会失败,因此,请确认在激活主机前,所有任务都已完成。

过程 7.7. 激活处于维护模式的主机

  1. 主机标签页,选择要升级的主机。
  2. 激活
主机的状态变为 Unassigned,在所有操作完成后变为 Up。虚拟机现在可以在这个主机上运行。当主机被激活后,那些以前因为主机处于维护模式而被迁移到其它主机上的虚拟机不会被自动迁移回这个主机,您可以手工把它们迁移回来。如果主机在被设置为维护模式前是 SPM,在主机被激活后,不会自动重新成为 SPM 角色。

7.5.9. 删除一个主机

从您的虚拟化环境中删除一个主机。

过程 7.8. 删除一个主机

  1. 在管理门户中,点主机资源标签页,在结果列表中选择主机。
  2. 把主机设为维护模式
  3. 删除打开删除主机确认窗口。
  4. 如果主机是 Red Hat Gluster Storage 集群中的一部分,并有磁盘卷数据块时;或主机没有响应时,使用强制删除选项来强制删除主机。
  5. 确定
主机被从系统中删除并不会再出现在主机标签页中。

7.5.10. 在次要版本之间更新主机

请参阅升级指南中的以下章节,了解关于在次要版本之间使主机保持最新状态的说明:https://access.redhat.com/documentation/en/red-hat-virtualization/4.1/single/upgrade-guide/#chap-Updates_between_Minor_Releases.

7.5.11. 重新安装主机

通过管理门户重新安装 Red Hat Virtualization Host(RHVH) 和 Red Hat Enterprise Linux 主机。使用这个过程来重新安装 RHVH(当前安装的 RHVH ISO 镜像相同的版本);或在 Red Hat Enterprise Linux 主机上重新安装 VDSM。这个过程包括停止并重启主机。如果在集群一级启用了迁移功能,虚拟机会自动迁移到集群中的另外一个主机上。因此。我们推荐您在主机使用率较低的时间段内执行重启安装的操作。
主机所属的集群需要有足够的预留内存来保证主机的维护操作可以正常完成。当对带有正在运行的虚拟机的主机进行维护操作时,如果集群中没有足够的可用内存,虚拟机迁移操作会失败。为了防止这个问题的出现,您可以在进行主机维护操作前关闭一些(或所有)虚拟机来减少内存的使用。

重要

在执行重新安装前,确认集群中最少有 2 个主机。不要同时重新安装所有主机,因为一个主机必须处于正常运行的状态来作为存储池管理器(SPM)。

过程 7.9. 重新安装 Red Hat Virtualization Host 或 Red Hat Enterprise Linux 主机

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择主机。
  2. 维护按钮。如果在集群一级启用了迁移功能,所有在它上面运行的虚拟机会被迁移到其它主机上。如果这个主机是 SPM,SPM 的功能也会被迁移到其它主机上。当主机进入维护模式时,它的状态将会改变。
  3. 重新安装打开安装主机窗口。
  4. 确定重新安装主机。
在重新安装操作成功完成后,主机的状态为 Up。所有因为主机升级而被迁移到其它主机上的虚拟机现在可以被迁移回这个主机。

重要

当一个 Red Hat Virtualization Host 在 Red Hat Virtualization Manager 上成功注册并重新安装后,它的状态可能会在管理门户中被错误地显示为 Install Failed。点激活按钮,这个主机的状态会变为 Up,并可以被使用。

7.5.12. 使用标签(Tag)来自定义主机

用户可以使用标签(Tag)来存储主机的信息,并根据标签来对主机进行搜索。

过程 7.10. 使用标签来自定义主机

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择主机。
  2. 分配标签打开分配标签窗口。
    分配标签窗口

    图 7.1. 分配标签窗口

  3. 分配标签窗口列出了所有可用的标签。选择需要的标签。
  4. 确定来为主机分配一个标签并关闭窗口。
您为主机添加了可以被用来进行搜索的标签。

7.5.13. 查看主机勘误

在主机被配置为从 Red Hat Satellite 服务器接收勘误后,就可以查看每个主机的勘误。如需了解配置主机来接收勘误的信息,请参阅 第 7.5.3 节 “为主机配置 Satellite 勘误管理”

过程 7.11. 查看主机勘误

  1. 主机资源标签页,在结果列表中选择一个主机。
  2. 在详情框中点常规标签页。
  3. 常规标签页中选勘误子标签页。

7.5.14. 查看一个主机的健康状态

除了常规的状态信息外,主机还包括一个外部的健康状态。它由插件或外部系统提供,或由管理员进行设置,并出现在主机的名称左面。它以以下图标之一显示:
  • OK:没有特殊图标
  • Info:
  • Warning:
  • Error:
  • Failure:
如需查看主机健康状态的更多信息,选择主机并点事件子标签页。
主机的健康状态也可以通过 REST API 获得。对主机的一个 GET 请求会包括 external_status 项,它包括了健康状态信息。
您可以在 REST API 中使用 events 集合来设置主机的健康状态。相关信息请参阅 REST API 指南中的添加事件

7.5.15. 查看主机设备

您可以在详情框中查看每个主机的主机设备。如果主机已配置了直接设备分配,这些设备可以被直接附加到虚拟机以提供更好的性能。
如需详细了解直接设备分配的硬件要求,请参阅实施 SR-IOV 时的 Red Hat Virtualization 硬件注意事项中的使用设备分配时的其他硬件注意事项
如需详细了解配置主机的直接设备分配,请参阅安装指南中的为 PCI 透传配置一个主机
如需详细了解如何把主机设备附加到虚拟机,请参阅虚拟机管理指南中的主机设备

过程 7.12. 查看主机设备

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择主机。
  2. 在详情框中点主机设备标签页。
详情框中列出了主机设备的信息,包括设备是否被附加到虚拟机、当前是否被虚拟机使用。

7.5.16.  为 GPU 透传准备主机和虚拟机系统

主机的图形处理单元(GPU)设备可以直接分配到虚拟机。在实现这一目标前,需要先修改主机和虚拟机的 grub 配置文件。您可以通过管理门户中的 Kernel command line 自由文本输入字段,编辑主机的 grub 配置文件。若要使更改生效,必须重新启动主机和虚拟机。
以下步骤适用于 x86_64 或 ppc64le 架构的主机。
如需了解直接设备分配对硬件的要求,请参阅安装指南中的 PCI 设备要求

重要

如果主机已附加到 Manager 上,请确保将主机置于维护模式,然后再应用任何更改。

过程 7.13.  为 GPU 透传准备主机

  1. 从管理门户中,选择一个主机。
  2. 点击详情面板中的常规标签页,再点击 硬件。找到 GPU 设备 vendor ID:product ID。本例中的 ID 为 10de:13ba10de:0fbc
  3. 右键点击主机并选择编辑。点击内核标签页。
  4. 内核命令行自由文本输入字段中,输入前面步骤中找到的 ID。
    pci-stub.ids=10de:13ba,10de:0fbc
  5. 将主机上对应的驱动程序加入黑名单。例如,若要将 nVidia 的 nouveau 驱动程序加入黑名单,请在 pci-stub.ids=xxxx:xxxx 旁边输入 rdblacklist=nouveau
    pci-stub.ids=10de:13ba,10de:0fbc rdblacklist=nouveau
  6. 点击确定保存更改。
  7. 点击重新安装,将更改提交到主机。
  8. 重新安装完毕后,重新启动主机。

注意

若要确认设备是否已绑定到 pci-stub 驱动程序,请运行 lspci 命令:
# lspci -nnk
...
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM107GL [Quadro K2200] [10de:13ba] (rev a2)
        Subsystem: NVIDIA Corporation Device [10de:1097]
        Kernel driver in use: pci-stub
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fbc] (rev a1)
        Subsystem: NVIDIA Corporation Device [10de:1097]
        Kernel driver in use: pci-stub
...
如需关于如何手动编辑 grub 配置文件来进行上述更改的说明,请参阅 3.6 管理指南中的为 GPU 透传准备主机和虚拟机系统
继续以下操作为 GPU 透传在虚拟机端进行配置。

过程 7.14. 为 GPU 透传在虚拟机上进行准备

    • 对于 Linux
      1. 只支持专有的 GPU 驱动。在 grub 配置文件中把开源驱动放人黑名单。例如:
        $ vi /etc/default/grub
        ...
        GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 ... rdblacklist=nouveau"
        ...
      2. 找到 GPU BusID。在这个示例中,BusID 是 00:09.0
        # lspci | grep VGA
        00:09.0 VGA compatible controller: NVIDIA Corporation GK106GL [Quadro K4000] (rev a1)
      3. 编辑 /etc/X11/xorg.conf 文件,追加以下内容:
        Section "Device"
        Identifier "Device0"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BusID "PCI:0:9:0"
        EndSection
      4. 重启虚拟机
    • 对于 Windows
      1. 为设备下载并安装相应驱动。例如,对于 Nvidia 驱动,访问 NVIDIA Driver Downloads
      2. 重启虚拟机
现在,主机 GPU 可以直接分配到准备好的虚拟机。如需了解为虚拟机分配主机设备的更多信息,请参阅虚拟机管理指南中的主机设备

7.5.17. 通过管理门户访问 Cockpit

Cockpit UI 插件是一个可以在 Red Hat Virtualization 环境中安装的可选组件,它提供了通过管理门户使用 Cockpit 用户界面来监控和管理主机资源的功能。当选择一个安装了 Cockpit 的主机后,管理门户详情框中的 Cockpit 子标签页就会直接显示 Cockpit 用户界面。或者,点击主机主菜单中的 Cockpit 按钮在一个新浏览器页中打开 Cockpit 用户界面。
Cockpit 用户界面默认包括在 Red Hat Virtualization Host(RHVH)中。当前,Red Hat Enterprise Linux 主机还不支持它。

过程 7.15. 通过管理门户访问 Cockpit

  1. 在 Manager 机器上安装 Cockpit UI 插件:
    # yum install cockpit-ovirt-uiplugin
  2. 重新启动 ovirt-engine 服务:
    # systemctl restart ovirt-engine.service
  3. 在管理门户中,点主机标签页并选择一个主机。
  4. 在一个新的标签页中打开 Cockpit 用户界面,或通过管理门户直接查看它:
    • 在主机上点鼠标右键,选 Cockpit 在浏览器的新标签页中打开 Cockpit 用户界面。
    • Cockpit 子标签页可以在主机标签页的详情框中查看 Cockpit 用户界面。

      注意

      如果所选主机没有 Cockpit,Cockpit 子标签页会显示基本的故障排除步骤。

7.6. 主机弹性

7.6.1. 主机高可用性

Red Hat Virtualization Manager 使用隔离(fencing)功能来确保集群中的主机可以对请求做出响应。Non Responsive(无响应)的主机和 Non Operational(无法正常工作) 的主机有所不同。Non Operational 的主机可能可以和 Manager 进行交流,但它可能有不正确的配置(例如,缺少一个逻辑网络)。Non Responsive 主机无法和 Manager 进行交流。
当一个带有电源管理设备的主机无法和 Manager 进行交流时,它可以通过管理门户被隔离(重新启动)。在它上面运行的所有虚拟机会停止运行,而其中的高可用性虚拟机会被迁移到其它主机上运行。
所有电源管理操作都是通过使用一个代理主机进行的,而不是使用 Red Hat Virtualization Manager 进行直接操作。因此,电源管理需要最少两台主机。
隔离(fencing)功能可以使集群处理意外的主机故障,并保证电源节省、负载平衡和虚拟机可用性的策略。您应该为您的主机的电源管理设备配置隔离参数,并经常对它们进行测试。
主机可以通过使用电源管理参数进行自动隔离,也可以在主机上点鼠标右键性选择相应的操作来手动隔离它。在一个隔离操作过程中,一个无响应的主机会被重启,如果它在设定的时间内没有恢复到正常状态,它会保持在无响应状态。如果出现这个情况,您需要对它进行手工故障排除。
如果一个主机需要运行高可用性的虚拟机,电源管理功能必须被启用并被正确配置。

7.6.2. 在 Red Hat Virtualization 环境中使用代理进行电源管理

Red Hat Virtualization Manager 不直接和隔离设备进行通讯,它使用一个代理来向主机的电源管理设备发送电源管理命令。Manager 需要使用 VDSM 来进行电源管理设备的操作,因此环境中还需要另外一个主机作为隔离代理。
您可以选择:
  • 需要隔离功能的主机所在的同一个集群中的任何主机。
  • 需要隔离功能的主机所在的同一个数据中心中的任何主机。
隔离代理主机的状态有两种:UPMaintenance

7.6.3. 在主机上设置隔离(fencing)参数

主机隔离的参数可以通过新建主机编辑主机窗口中的电源管理中的项进行设置。电源管理功能将允许系统通过使用额外的接口,如 Remote Access Card (RAC),对有问题的主机进行隔离。
所有电源管理操作都是通过使用一个代理主机进行的,而不是使用 Red Hat Virtualization Manager 进行直接操作。因此,电源管理需要最少两台主机。

过程 7.16. 在一个主机上设置隔离参数

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择主机。
  2. 编辑打开编辑主机窗口。
  3. 电源管理标签页。
    电源管理设置

    图 7.2. 电源管理设置

  4. 选中启用电源管理选项来使其它选项可用。
  5. 选择 Kdump 集成选项可以防止在发生内核 crash dump 时,主机进行隔离(fencing)操作。

    重要

    如果您在已经存在的主机上启用 Kdump 集成选项,您需要在重新安装这些主机来配置 kdump。详情请参阅 第 7.5.11 节 “重新安装主机”
  6. 或者,如果不希望主机所在集群的调度策勒控制主机的电源管理,则选择禁用电源管理的策略控制
  7. 点加号(+)按钮来添加新的电源管理设备。编辑隔离代理窗口会被打开。
    编辑隔离代理

    图 7.3. 编辑隔离代理

  8. 在相关的项中输入电源管理设备的地址用户名密码
  9. 从下拉列表中选择电源管理设备的类型

    注意

    如需了解如何设置一个自定义电源管理设备的信息,请参阅 https://access.redhat.com/articles/1238743
  10. 输入电源管理设备用来和主机进行交流所使用的 SSH 端口号。
  11. 输入用来识别电源管理设备刀片的 Slot 号。
  12. 为电源管理设备输入选项。使用逗号分隔多个选项,选项的格式是 'key=value'
  13. 选择安全性选择框来使电源管理设备通过安全的方法和主机进行交流。
  14. 测试来测试电源管理设备。如果测试成功,Test Succeeded, Host Status is: on 将会被显示。

    警告

    电源管理的参数(userid、password、options 等) 只在设置 Red Hat Virtualization Manager 时被测试,或在设置后通过手动进行测试。如果您忽略了关于不正确参数的提示信息,或电源管理硬件设备的参数有变化而您没有在 Red Hat Virtualization Manager 中进行相应的修改,当系统需要隔离操作时,隔离操作很可能会失败。
  15. 确定关闭编辑隔离代理窗口。
  16. 电源管理标签页中,还可以展开高级参数项,使用向上或向下按钮来指定 Manager 搜索主机的集群dc(datacenter)作为隔离代理的顺序。
  17. 确定
您将会返回到主机列表界面,而主机旁边的惊叹号会消失。这意味着电源管理已经被成功配置。

7.6.4. fence_kdump 高级配置

kdump

选择一个主机,通过详情框中的常规标签页可以查看它上面的 kdump 服务的状态:

  • 启用:kdump 被正确配置,并正在运行。
  • 禁用:kdump 服务没有运行(kdump 集成功能不能正常工作)。
  • 未知:只会在老的、不会报告 kdump 状态的主机上发生。
如需了解更多与安装和使用 kdump 相关的信息,请参阅 Red Hat Enterprise Linux 7 Kernel Crash Dump Guide
fence_kdump

新建主机编辑主机窗口中,选择电源管理标签页,启用 Kdump 集成选项来配置标准的 fence_kdump 设置。如果环境的网络设置比较简单,Manager 的 FQDN 可以被所有主机解析到,默认的 fence_kdump 设置应该就可以正常工作。

但是在一些情况下,可能需要更复杂的 fence_kdump 配置。当环境中的网络比较复杂时,可能需要手工修改 Manager、fence_kdump listener 的配置。例如,当启用了Kdump 集成,而 Manager 的 FQDN 无法被所有主机解析到时,您就需要设置一个正确的主机名或 IP 地址(使用 engine-config 命令):
engine-config -s FenceKdumpDestinationAddress=A.B.C.D
以下的情况可能也需要修改配置:
  • Manager 有两个网卡,其中的一个是可以被公共网络连接,而另外一个是 fence_kdump 信息发送的首选目的地。
  • 您需要在一个不同的 IP 地址或端口上执行 fence_kdump listener。
  • 为了防止数据包的丢失,您需要设置一个自定义的 fence_kdump 通知信息间隔时间。
我们只推荐高级用户使用自定义的 fence_kdump 设置,只有复杂的网络才需要修改默认的设置。如需了解与 fence_kdump listener 选项相关的信息,请参阅 第 7.6.4.1 节 “fence_kdump listener 配置”;如需了解在 Manager 上配置 kdump 的信息,请参阅 第 7.6.4.2 节 “在 Manager 上配置 fence_kdump”

7.6.4.1. fence_kdump listener 配置

编辑 fence_kdump listener 的配置。请只在默认设置无法满足您的需要时进行。

过程 7.17. 手工配置 fence_kdump Listener

  1. /etc/ovirt-engine/ovirt-fence-kdump-listener.conf.d/ 中创建一个文件(例如,my-fence-kdump.conf)。
  2. 使用 OPTION=value 的格式输入您的自定义配置,并保存文件。

    重要

    被编辑的值同时也需要在 engine-config 中进行修改(请参阅 fence_kdump listener 配置选项表,第 7.6.4.2 节 “在 Manager 上配置 fence_kdump”)。
  3. 重新启动 fence_kdump listener:
    # systemctl restart ovirt-fence-kdump-listener.service
在需要的情况下,以下选项可以被自定义:

表 7.9. fence_kdump listener 配置选项

变量描述默认值注意
LISTENER_ADDRESS指定接收 fence_kdump 信息的 IP 地址。0.0.0.0如果这个参数的值被改变,它必须和 engine-config 中的 LISTENER_PORT 值相匹配。
LISTENER_PORT指定接收 fence_kdump 信息的端口。7410如果这个参数的值被改变,它必须和 engine-config 中的 FenceKdumpDestinationPort 值相匹配。
HEARTBEAT_INTERVAL指定 listener 的"心跳" 更新的间隔时间(以秒为单位)。30如果这个参数的值被改变,它必须不大于 engine-config 中的 FenceKdumpListenerTimeout 值的一半。
SESSION_SYNC_INTERVAL在内存和数据库间同步 listener 的主机 kdump 会话的间隔时间(以秒为单位)。5如果这个参数的值被改变,它必须不大于 engine-config 中的 KdumpStartedTimeout 值的一半。
REOPEN_DB_CONNECTION_INTERVAL重新尝试打开以前无效的数据库连接的间隔时间。30-
KDUMP_FINISHED_TIMEOUT当主机的 kdump 已被标记为 FINISHED 后,最后一次接收从 kdumping 主机发送的信息的最大超时时间(以秒为单位)。60如果这个参数的值被改变,它必须不小于 engine-config 中的 FenceKdumpMessageInterval 的值的两倍。

7.6.4.2. 在 Manager 上配置 fence_kdump

编辑 Manager 的 kdump 配置(请只在默认设置无法满足您的需要时进行)。使用以下命令可以查看 kdump 的当前配置:
# engine-config -g OPTION

过程 7.18. 使用 engine-config 手工配置 Kdump

  1. 使用 engine-config 命令编辑 kdump 的配置:
    # engine-config -s OPTION=value

    重要

    被编辑的值同时需要在 fence_kdump listener 的配置文件中修改(请参阅 Kdump 配置选项 第 7.6.4.1 节 “fence_kdump listener 配置”)。
  2. 重新启动 ovirt-engine 服务:
    # systemctl restart ovirt-engine.service
  3. 如果需要,重新安装所有启用了Kdump 集成选项的主机(请参阅以下的表格) 。
以下选项可以使用 engine-config 进行配置:

表 7.10. Kdump 配置选项

变量描述默认值备注
FenceKdumpDestinationAddress指定 fence_kdump 信息要被发送到的系统的主机名或 IP 地址。如果为空,Manager 的 FQDN 会被使用。空(Manager 的 FQDN 被使用)如果这个参数的值被改变,它必须和 fence_kdump listener 配置文件中的 LISTENER_ADDRESS 值相匹配,所有启用了 Kdump 集成的主机都需要被重新安装。
FenceKdumpDestinationPort指定 fence_kdump 信息要被发送到的端口。7410如果这个参数的值被改变,它必须和 fence_kdump listener 配置文件中的 LISTENER_PORT 值相匹配,所有启用了 Kdump 集成的主机都需要被重新安装。
FenceKdumpMessageInterval指定 fence_kdump 发送信息的间隔时间(以秒为单位)。5如果这个参数的值被改变,它必须不大于 fence_kdump listener 配置文件中的 KDUMP_FINISHED_TIMEOUT 值的一半,所有启用了 Kdump 集成的主机都需要被重新安装。
FenceKdumpListenerTimeout指定认为 fence_kdump listener 处于运行状态的最大“心跳”超时时间(以秒为单位)。90如果这个参数的值被改变,它必须不小于 fence_kdump listener 配置文件中的 HEARTBEAT_INTERVAL 值的两倍。
KdumpStartedTimeout指定接收从 kdump 主机发出的第一个信息(认为主机 kdump 已开始)的最大等待超时时间(以秒为单位)。30如果这个参数的值被改变,它必须不小于 fence_kdump listener 配置文件中的 SESSION_SYNC_INTERVAL 值和 FenceKdumpMessageInterval 值的两倍。

7.6.5. Soft-Fencing 主机

有些时候,一个主机会因为无法预见的问题造成它处于无响应状态。此时尽管 VDSM 对所做出的请求无法响应,但依赖于 VDSM 的虚拟机仍然可以被访问。在这种情况下,重新启动 VDSM 就可能解决这个问题。
"SSH Soft Fencing" 是 Manager 试图通过 SSH 在一个没有响应的主机上重启 VDSM 的过程。如果 Manager 无法通过 SSH 重启 VDSM,而且配置了外部的隔离代理,则隔离操作将由外部的隔离代理进行处理。
要使用 soft-fencing over SSH 功能,主机必须配置并启用了隔离,一个有效的代理主机(数据中心中的另外一个主机,它的状态是 UP)必须存在。当 Manager 和主机的连接出现超时的情况时,以下事件会发生:
  1. 在网络出现第一次失败时,主机的状态变为 "connecting"。
  2. Manager 然后会尝试 3 次向 VDSM 询问它的状态,或根据主机的负载等待一段时间。这个等待的时间是通过以下公式计算的:TimeoutToResetVdsInSeconds(默认值是 60 秒)+ [DelayResetPerVmInSeconds(默认值是 0.5 秒)]*(在主机上运行的虚拟机的数量)+ [DelayResetForSpmInSeconds(默认值是 20 秒)] * 1(如果主机是 SPM)或 0(如果主机不是 SPM)。为了留给 VDSM 最大的响应时间,Manager 会选择以上两个操作所需的最长时间。
  3. 如果在所需要的间隔时间后主机还没有响应,vdsm restart 命令会通过 SSH 执行。
  4. 如果 vdsm restart 命令无法在主机和 Manager 间重新创建连接,主机的状态将变为 Non Responsive,如果电源管理被配置,外部的隔离代理(external fencing agent)将会进行相应的隔离操作。

注意

Soft-fencing over SSH 可以在没有配置电源管理的主机上运行。这和一般的隔离(fencing)有所不同:一般的隔离只能在配置了电源管理的主机上运行。

7.6.6. 使用电源管理功能

介绍

当电源管理功能在一个主机上被配置后,您可以通过管理门户界面进行相关的操作。虽然不同的电源管理设备可以进行不同的操作,但是它们都支持基本的操作,如启动、关闭和重新启动一个主机。

过程 7.19. 使用电源管理功能

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择主机。
  2. 电源管理下拉菜单。
  3. 选择以下的选项之一:
    • 重启:这个选项会关闭所有的主机并等待主机的状态变为 Down。当代理已经确认主机的状态已经变为 down,高可以性虚拟机已经在集群中的其它主机上被重新启动后,它会重新启动这个主机。当主机启动后,它的状态变为 Up
    • 启动:这个选项会启动主机并把它加入到一个集群中。当主机启动后,它的状态变为 Up
    • 停止:这个选项会关闭主机。在使用这个选项前,您需要确保在这个主机上运行的虚拟机已经被迁移到集群中的其它主机上。否则,所有的虚拟机都会出现问题,只有那些设置为高可用性的虚拟机会在其它主机上被重新启动。当主机被关闭后,它的状态变为 Non-Operational

    重要

    如果在一个主机上定义了两个隔离代理(fencing agent),它们可以被“同时”使用,也可以被“相继”使用。如果是"同时"使用的代理,在两个代理都收到停止命令时才可以停止主机,而当一个代理收到启动命令时,主机就会被启动。如果是"相继"使用的代理,对于启动和停止一个主机的操作,“主要的”代理会被首先使用,如果“主要的”代理操作失败,“次要的”代理会被使用。
  4. 选择以上的选项之一后会出现一个确认窗口,点确定进行确认。
结果

所选择的操作被执行。

7.6.7. 手动隔离或分离一个没有响应的主机

介绍

当一个主机在没有预见的情况下变为了没有响应的状态(例如,出现了硬件故障),整个系统的性能可以会受到极大的影响。如果您没有电源管理设备,或电源管理设备没有被正确配置,您可能需要手动重新启动主机。

警告

在您确认已经手工重启了主机前,请不要使用确认主机已经重启选项。如果在主机还在运行时使用这个选项,有可能会导致虚拟机的镜像被破坏。

过程 7.20. 手动隔离或分离一个没有响应的主机

  1. 主机标签页中选择主机。这个主机的状态需要是 non-responsive
  2. 手动重启这个主机。这可能意味着您需要进入机房,手工重新启动这个主机。
  3. 在管理门户中的主机上点鼠标右键,选择确认主机己经重启键。
  4. 一个提示您确认主机已经被停止或重启的信息会被显示。选择批准操作选项并点确定
结果

您手动重启了您的主机,高可用性的虚拟机被迁移到其它主机上。您在管理门户中确认了手动隔离的操作,主机可以被重新使用。

7.7. 主机和权限

7.7.1. 管理一个主机的系统权限

作为 SuperUser,系统管理员需要管理“管理门户”的每个方面。而其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的用户只有特定数据中心的管理权限;具有 ClusterAdmin 角色的用户只有特定集群的管理权限。
一个主机管理员(host administrator)只对这个主机有管理权限,而集群中的每个主机都需要有一个主机管理员。您可以使用页头中的配置按钮来为这个环境中的所有主机分配一个主机管理员。
具有主机管理员角色的用户可以执行以下操作:
  • 编辑主机的配置。
  • 设置逻辑网络。
  • 删除主机。
如果需要更改一个主机的管理员,您需要删除当前的主机管理员,然后再添加一个新的管理员。

7.7.2. 主机管理员角色介绍

主机权限角色

下表描述了与主机管理相关的管理员角色,以及他们所具有的权利。

表 7.11. Red Hat Virtualization 系统管理员角色

角色权利注记
HostAdminHost Administrator可以配置、管理和删除一个特定的主机。也可以在特定主机上进行网络相关的操作。

7.7.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 7.21. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

7.7.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 7.22. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

第 8 章 存储

Red Hat Virtualization 使用一个中央化的存储系统来管理虚拟磁盘镜像、ISO 文件和快照。存储网络可以通过以下方式实施:
  • Network File System (NFS)
  • GlusterFS 导出
  • 其它 POSIX 兼容的文件系统
  • Internet Small Computer System Interface (iSCSI)
  • 主机上直接连接的本地存储
  • Fibre Channel Protocol (FCP)
  • Parallel NFS (pNFS)
在运行一个新数据中心前需要为它设置存储。数据中心只有在附加了存储域并激活了它们后才可以进行初始化。
作为一个 Red Hat Virtualization 系统管理员,您需要为您的虚拟系统创建、配置、附加并管理存储。您应该熟悉所使用的存储设备。请参阅存储设备厂商所提供的文档来获得相应的信息。您还可以参阅 Red Hat Enterprise Linux Storage Administration Guide 来获得与存储相关的一般概念、协议、要求等信息。
Red Hat Virtualization 允许您通过管理门户中的存储标签页来附加并管理存储。存储结果列表显示了所有存储域,详情框显示了和这个域相关的一般信息。
为了添加存储域,您需要使用管理门户,并最少需要一个状态为 Up 的主机。
Red Hat Virtualization 包括三类存储域:
  • 数据域(Data Domain):数据域包括了数据中心中的所有虚拟机的虚拟硬盘和 OVF 文件。另外,虚拟机的快照也被保存在数据域中。
    数据域不能被不同的数据中心共享。不同类型(iSCSI、NFS、FC、POSIX 和 Gluster)的数据域可以被添加到同一个数据中心中,并在这个数据中心中共享。
    您必须首先为数据中心添加一个数据域,然后才能为它添加其它类型的域。
  • ISO 域:ISO 域包括了用来为虚拟机安装、启动操作系统和应用程序的 ISO 文件(或逻辑 CD)。使用 ISO 域将使这个数据中心不再需要物理的安装介质。一个 ISO 域可以被不同的数据中心共享。ISO 域只能是基于 NFS 的。一个数据中心只能添加一个 ISO 域。
  • 导出域: 导出域(Export Domain)是一个临时的存储库,它被用来在数据中心和 Red Hat Virtualization 环境间复制和迁移数据镜像。导出域可以被用来备份虚拟机。一个导出域可以在不同的数据中心间迁移,但它只能同时在一个数据中心中有效。导出域必须是基于 NFS 的,一个数据中心只能附加一个导出域。

    注意

    导出存储域这个概念已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像以及模板可以从导入的存储域中上传到附加到的数据中心中。如需了解更多与导入存储域相关的信息,请参阅 第 8.6 节 “导入存在的存储域”

重要

在开始为 Red Hat Virtualization 环境配置和附加存储前,您需要先决定数据中心所需要的存储类型。

8.1. 存储域介绍

存储域就是一组有一个公共存储接口的数据镜像,它包括了模板、虚拟机(包括快照)的数据镜像或 ISO 文件。一个存储域可以由块设备(SAN - iSCSI 或 FCP)组成,也可以由文件系统(NAS - NFS,GlusterFS,或其它 POSIX 兼容的文件系统)组成。
在 NFS 中,所有的磁盘、模板和快照都是文件。
在 SAN(iSCSI/FCP)中,每个虚拟磁盘、模板和快照都是一个逻辑卷。块设备被组合到一个逻辑卷组中,并被逻辑卷管理器(Logical Volume Manager - LVM)分为不同的逻辑卷作为虚拟硬盘供用户使用。如需更详细的信息,请参阅 Red Hat Enterprise Linux Logical Volume Manager Administration Guide
逻辑硬盘可以有两种格式:QCOW2 或 RAW,存储类型可以是 Sparse 或 Preallocated。快照的类型是 sparse,但它可以是为 RAW 或 sparse 磁盘创建的。
共享相同存储域的虚拟机可以在同一个集群中的主机间进行迁移。

8.2. 准备和添加 NFS 存储

8.2.1. 准备 NFS 存储域

设置 NFS 共享来作为 Red Hat Enterprise Linux 服务器上的数据域。如果在 Red Hat Virtualization Manager 安装过程中创建了 ISO 域,则不再需要再创建 ISO 域。

注意

导出存储域这个概念已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像以及模板可以从导入的存储域中上传到附加到的数据中心中。如需了解更多与导入存储域相关的信息,请参阅 第 8.6 节 “导入存在的存储域”
如需了解有关在 Red Hat Enterprise Linux 上设置和配置 NFS 的信息,请参阅 Red Hat Enterprise Linux 6 存储管理指南中的网络文件系统(NFS)Red Hat Enterprise Linux 7 存储管理指南中的网络文件系统(NFS)
Red Hat Virtualization 需要特定的系统用户帐户和系统用户组,以便 Manager 能够在由导出的目录所代表的存储域中存储数据。

过程 8.1. 配置必要的系统用户帐户和系统用户组

  1. 创建 kvm 组:
    # groupadd kvm -g 36
  2. kvm 组中创建用户 vdsm
    # useradd vdsm -u 36 -g 36
  3. 将导出的目录的所有权设为 36:36,这将授予 vdsm:kvm 所有权:
    # chown -R 36:36 /exports/data
    # chown -R 36:36 /exports/export
  4. 设置目录的访问权限:
    # chmod 0755 /exports/data
    # chmod 0755 /exports/export
如需了解有关必要系统用户帐户和组的更多信息,请参阅附录 G, 系统账户

8.2.2. 附加 NFS 存储

把一个 NFS 存储域添加到您的 Red Hat Virtualization 环境中的数据中心。这个存储域为虚拟机镜像和 ISO 引导介质提供了存储空间。这个过程需要您已经导出了存储共享。您在创建导出域前必须先创建数据域。使用相同的步骤来创建导出域,在域功能/存储类型列表中选择导出/NFS
  1. 在 Red Hat Virtualization Manager 管理门户中,点存储资源标签页。
  2. 新建域
    新建域窗口

    图 8.1. 新建域窗口

  3. 输入存储域的名称
  4. 使用数据中心域功能存储类型格式使用主机列表的默认值。
  5. 为存储域输入导出路径
    导出路径的格式应该是 192.168.0.10:/datadomain.example.com:/data
  6. 另外,您还可以配置高级参数。
    1. 高级参数
    2. 警告级低存储空间项中输入一个百分比值。当存储域中的空闲空间低于这个值时,用户登录时就会显示一个警告信息。
    3. 严重的空间操作限制阈值项中输入一个值(以 GB 为单位)。当存储域中的空闲空间低于这个值时,用户登录时会显示一个错误信息,任何需要使用存储空间的操作(包括临时使用存储空间的操作)都会被限制。
    4. 如果需要在删除虚拟磁盘后清除它上面的敏感数据,选择删除后清除选项。在域创建后,这个选项还可以被修改,但这不会改变已存在的、带有这个选项的存储的行为。
  7. 确定
    新的 NFS 数据域在存储标签页中被显示(在准备磁盘的时候,它的状态是 Locked)。在磁盘准备完成后,它会被自动附加到数据中心上。

8.2.3. 增加 NFS 存储

为了增加 NFS 存储的空间,您可以创建一个新的存储域,并把它添加到一个存在的数据中心中;或在 NFS 服务器上增加可用的存储空间。对于前一种方法,请参阅 第 8.2.2 节 “附加 NFS 存储”。以下介绍了如果在存在的 NFS 服务器上增加存储空间。

过程 8.2. 增加一个存在的 NFS 存储域

  1. 存储资源标签页并选择一个 NFS 数据存储域。
  2. 在详情框中,点数据中心标签页。点维护按钮把存储域设为维护模式。这会卸载存在的共享,从而可以重新调整存储域的大小。
  3. 在 NFS 服务器上重新调整存储的大小。对于 Red Hat Enterprise Linux 6 系统,请参阅 Red Hat Enterprise Linux 6 Storage Administration Guide。对于 Red Hat Enterprise Linux 7 系统,请参阅 Red Hat Enterprise Linux 7 Storage Administration Guide
  4. 在详情框中,点数据中心标签页,点激活按钮来挂载存储域。

8.3. 准备和添加本地存储

8.3.1. 准备本地存储

一个本地存储域可以在一个主机上进行设置。当您设置虚拟机来使用本地存储后,这个主机会被自动添加到一个其它主机无法添加到的新数据中心和集群中。因为多主机集群需要所有主机都可以访问相同的存储域,而本地存储无法做到这一点,所以使用本地存储的集群只可能包括一个主机,而在这个主机上运行的虚拟机将无法进行迁移、隔离和调度。如需了解更多与所需系统用户和组相关的信息,请参阅 附录 G, 系统账户

注意

如需了解有关在重新安装 Red Hat Virtualization Host(RHVH)时预留本地存储域的信息,请参阅https://access.redhat.com/solutions/2804081

重要

在 Red Hat Virtualization Host(RHVH)上,本地存储使用的路径需要包括在 /var 目录中。根据以下步骤在 /var 中创建存储目录。

过程 8.3. 准备本地存储

  1. 在主机上,创建本地存储使用的目录。
    # mkdir -p /data/images
  2. 确保 vdsm 用户(UID 36)和 kvm 组(GID 36)有到这个目录的读和写权限。
    # chown 36:36 /data /data/images
    # chmod 0755 /data /data/images
您的本地存储现在可以被加入到 Red Hat Virtualization 环境中去了。

注意

您也可以在主机上挂载外部存储作为一个本地存储域。更多相关信息,请参阅 Red Hat Enterprise Linux Storage Administration Guide

8.3.2. 添加本地存储

主机上的本地存储已经被准备好,现在可以使用 Manager 来把它添加到主机上。
使用这个方式把本地存储添加到一个主机会把这个主机放到一个新的数据中心和集群中。“配置本地存储窗口”把创建数据中心、集群和存储集成在一个步骤中。

过程 8.4. 添加本地存储

  1. 主机资源标签页,在结果列表中选择主机。
  2. 维护打开维护主机确认窗口。
  3. 确定把存储域变为维护模式。
  4. 配置本地存储打开配置本地存储窗口。
    配置本地存储窗口

    图 8.2. 配置本地存储窗口

  5. 分别点数据中心集群存储旁的编辑来配置它们。
  6. 输入您的本地存储的路径。
  7. 如果需要,使用优化标签页为新的本地存储集群配置内存优化策略。
  8. 确定保存您所做的配置并关闭窗口。
您的主机将会出现在它自己的数据中心中。

8.4. 添加 POSIX 兼容的文件系统存储

POSIX 文件系统允许您用命令行时使用的相同挂载选项来挂载文件系统。这个功能的目的是允许对未开放的使用 NFS、iSCSI 或 FCP 的存储的访问。
如果需要在 Red Hat Virtualization 中使用 POSIX 兼容的文件系统作为存储域,那些文件系统必须 支持 sparse 文件和 direct I/O。例如,Common Internet File System(CIFS)不支持 direct I/O,因此它和 Red Hat Virtualization 环境不兼容。

重要

不要通过创建 POSIX 文件系统存储域来挂载 NFS 存储。用户需要创建一个 NFS 存储域。

8.4.1. 附加 POSIX 兼容的文件系统存储

您希望将 POSIX 兼容文件系统作为存储域使用(无法通过 NFS、iSCSI 或 FCP 访问)。

过程 8.5. 附加 POSIX 兼容的文件系统存储

  1. 存储资源标签页来列出现有的存储域。
  2. 新建域打开新建域窗口。
    POSIX 存储

    图 8.3. POSIX 存储

  3. 输入存储域的名称
  4. 选择存储域所在的数据中心。所选择的数据中心的类型必须是 POSIX (POSIX compliant FS),或者选择 (none)
  5. 域功能/存储类型下拉菜单里选择 Data / POSIX compliant FS
    如果适用,请从下拉菜单里选择格式
  6. 使用主机下列菜单里选择主机(只有所选数据中心里的主机才会被列出)。您所选择的主机将被用来连接存储域。
  7. 输入 POSIX 文件系统的路径(和您使用 mount 命令时输入的路径相同)。
  8. 输入 VFS 类型(和您使用 mount 命令时使用的 -t 参数相同)。使用 man mount 可以获得有效 VFS 类型的列表。
  9. 输入其他的挂载选项(和您使用 mount 命令时使用的 -o 参数相同)。挂载选项应该以用逗号隔开的列表形式提供。关于可用的挂载选项,请参考 man mount
  10. 另外,您还可以配置高级参数。
    1. 高级参数
    2. 警告级低存储空间项中输入一个百分比值。当存储域中的空闲空间低于这个值时,用户登录时就会显示一个警告信息。
    3. 严重的空间操作限制阈值项中输入一个值(以 GB 为单位)。当存储域中的空闲空间低于这个值时,用户登录时会显示一个错误信息,任何需要使用存储空间的操作(包括临时使用存储空间的操作)都会被限制。
    4. 如果需要在删除虚拟磁盘后清除它上面的敏感数据,选择删除后清除选项。在域创建后,这个选项还可以被修改,但这不会改变已存在的、带有这个选项的存储的行为。
  11. 确定附加新存储域并关闭窗口。

8.5. 添加块存储

8.5.1. 添加 iSCSI 存储

Red Hat Virtualization 支持 iSCSI 存储,它通过一个由预先存在的 LUN 组成的卷组来创建存储域。卷组和 LUN 都不能同时附加到多个存储域。
如需了解在 Red Hat Enterprise Linux 上设置和配置 iSCSI 的更多信息,请参阅 Red Hat Enterprise Linux 7 存储管理指南中的 iSCSI 目标创建,或 Red Hat Enterprise Linux 7 存储管理指南中的在线存储管理

过程 8.6. 添加 iSCSI 存储

  1. 存储资源标签页列出现有的存储域。
  2. 新建域打开新建域窗口。
  3. 为新存储域输入名称
    新 iSCSI 域

    图 8.4. 新 iSCSI 域

  4. 使用数据中心下拉菜单选择一个数据中心。
  5. 使用下拉菜单选择域功能存储类型。那些和所选域功能不兼容的存储域类型将无法使用。
  6. 使用主机项中选择一个活跃的主机。如果这不是数据中心的第一个数据域,您必须选择数据中心的 SPM 主机。

    重要

    所有与存储域之间的通信都是通过所选主机而不是直接通过 Red Hat Virtualization Manager 进行的。配置该存储前,系统中必须至少有一个活动主机,并附加到所选数据中心;所有主机也必须可以访问存储设备。
  7. Red Hat Virtualization Manager 可以建立 iSCSI 目标到 LUNs 的映射,也可以建立 LUNsiSCSI 目标的映射。当 iSCSI 被选为存储类型时,新建域窗口会自动显示带有没有使用的 LUNs 的已知目标。如果您需要添加为存储的目标没有被显示,您可以使用目标查找功能(Target Discovery)来找到它,或执行下一步。

    iSCSI 目标查找(Target Discovery)

    1. Discover Targets 启用目标查找功能。当目标被找到并登录后,新建域窗口会自动显示那些还没有被环境所使用的 LUNs 目标。

      注意

      被外部使用的 LUNs 也会被显示。
      您可以使用 Discover Targets 选项来为多个目标添加 LUNs,或设置多个到相同 LUNs 的路径。
    2. 地址项中输入 iSCSI 主机的全局域名或 IP 地址。
    3. 端口项中输入浏览目标时连接到该主机的端口。默认值是 3260
    4. 如果使用了 Challenge Handshake Authentication Protocol(CHAP)来增加存储的安去性,请选择 User Authentication 选项。输入 CHAP user nameCHAP password

      注意

      现在,可以使用 REST API 为各个主机的每一 iSCSI 目标指定具体的凭证。如需了解更多信息,请参阅 REST API 指南 中的为 iSCSI 目标定义凭证
    5. Discover 按钮。
    6. 在查找结果中选择要使用的目标后点 Login
      或者点 Login All 来登录到所有查找到的目标。

      重要

      如果需要多个路径访问,则需要通过所有需要的路径来发现并登录到目标。当前,还不支持通过添加路径来修改存储域。
  8. 点击所需目标旁边的 +按钮。此时会展开该条目,并显示所有附加到该目标但尚未使用的 LUNs
  9. 选择要被用来生成存储域的 LUN
  10. 另外,您还可以配置高级参数。
    1. 高级参数
    2. 警告级低存储空间项中输入一个百分比值。当存储域中的空闲空间低于这个值时,用户登录时就会显示一个警告信息。
    3. 严重的空间操作限制阈值项中输入一个值(以 GB 为单位)。当存储域中的空闲空间低于这个值时,用户登录时会显示一个错误信息,任何需要使用存储空间的操作(包括临时使用存储空间的操作)都会被限制。
    4. 如果需要在删除虚拟磁盘后清除它上面的敏感数据,选择删除后清除选项。在域创建后,这个选项还可以被修改,但这不会改变已存在的、带有这个选项的存储的行为。
    5. 选中删除后丢弃复选框,启用删除后丢弃选项。可在域创建后编辑此选项。此选项只适用于块存储域。
  11. 确定创建存储域并关闭窗口。
如果您为同一个目标配置了多个存储连接路径,请根据 第 8.5.2 节 “配置 iSCSI 多路径” 的内容完成 iSCSI 绑定的操作。

8.5.2. 配置 iSCSI 多路径

iSCSI 多路径允许您创建并管理一组逻辑网络和 iSCSI 存储连接。通过在主机和 iSCSI 存储间配置多个网络路径,可以防止因为网络路径失败造成的主机下线问题的出现。在进行配置后,Manager 会通过与相同 iSCSI 绑定中的逻辑网络关联的 NIC/VLAN 连接到数据中心中的每个主机。您也可以指定哪些网络用于存储数据,而不是允许主机通过默认的网络进行路由。这个选项只有在最少已有一个 iSCSI 存储域被附加到数据中心后才在管理门户中有效。

先决条件

  • 已创建了一个 iSCSI 存储域,并发现和记录了到 iSCSI 目标的所有路径。
  • 创建了与 iSCSI 存储连接相绑定的 Non-Required 逻辑网络。您可以配置多个逻辑网络或绑定网络来实现故障转移功能。

过程 8.7. 配置 iSCSI 多路径

  1. 数据中心标签页并选择一个数据中心。
  2. 在详情框中点 iSCSI 多路径标签页。
  3. 添加
  4. 添加 iSCSI Bond 窗口中的名称描述项中输入绑定的相应值。
  5. 逻辑网络列表中选择用于绑定的网络。这个网络必须是 Non-Required 网络。

    注意

    要改变网络的 Required 设置,使用管理门户,选一个网络,点集群标签页,点管理网络按钮。
  6. 存储目标列表中选择访问存储域所要通过的网络。确定选择了到同一个目标的所有路径。
  7. 确定
数据中心中的所有主机会通过所选的逻辑网络连接到所选的 iSCSI 目标。

8.5.3. 添加 FCP 存储

Red Hat Virtualization 平台支持 SAN 存储。它通过一个由预先存在的 LUN 组成的卷组来创建一个存储域。卷组和 LUN 都不能被同时添加到多个存储域中。
为了配置存储局域网(SAN)存储,Red Hat Virtualization 系统管理员需要对 SAN 有一定的了解。SAN 通常在主机和共享外置存储间使用光纤通道协议(FCP),因此 SAN 有时也被称为 FCP 存储。
有关设置和配置 FCP 或为 Red Hat Enterprise Linux 配置多路径的详情,请参考 Storage Administration GuideDM Multipath Guide
以下介绍了把存在的 FCP 存储附加到 Red Hat Virtualization 环境中作为一个数据域的方法。如需了解更多与其它支持的存储类型相关的信息,请参阅 第 8 章 存储

过程 8.8. 添加 FCP 存储

  1. 存储资源标签页列出所有存储域。
  2. 新建域打开新建域窗口。
  3. 为存储域输入名称
    添加 FCP 存储

    图 8.5. 添加 FCP 存储

  4. 使用数据中心下拉菜单选择一个 FCP 数据中心。
    如果您的系统中没有合适的 FCP 数据中心,选择 (none)
  5. 使用下拉菜单选择域功能存储类型。那些和所选数据中心的类型不兼容的存储域类型将无法使用。
  6. 使用主机项中选择一个活跃的主机。如果这不是数据中心的第一个数据域,您必须选择数据中心的 SPM 主机。

    重要

    所有与存储域之间的通信都是通过所选主机而不是直接通过 Red Hat Virtualization Manager 进行的。配置该存储前,系统中必须至少有一个活动主机,并附加到所选数据中心;所有主机也必须可以访问存储设备。
  7. Data / Fibre Channel 被选择为存储类型后,新建域窗口会自动显示带有未使用的 LUNs 的目标。选 LUN ID 选项来选择所有可用的 LUNs。
  8. 另外,您还可以配置高级参数。
    1. 高级参数
    2. 警告级低存储空间项中输入一个百分比值。当存储域中的空闲空间低于这个值时,用户登录时就会显示一个警告信息。
    3. 严重的空间操作限制阈值项中输入一个值(以 GB 为单位)。当存储域中的空闲空间低于这个值时,用户登录时会显示一个错误信息,任何需要使用存储空间的操作(包括临时使用存储空间的操作)都会被限制。
    4. 如果需要在删除虚拟磁盘后清除它上面的敏感数据,选择删除后清除选项。在域创建后,这个选项还可以被修改,但这不会改变已存在的、带有这个选项的存储的行为。
    5. 选中删除后丢弃复选框,启用删除后丢弃选项。可在域创建后编辑此选项。此选项只适用于块存储域。
  9. 确定创建存储域并关闭窗口。
新的 FCP 数据域将在存储标签页中被显示。在准备的过程中,它的状态是 Locked,当准备完成后,它会被自动添加到数据中心中。

8.5.4. 增加 iSCSI 或 FCP 存储

有多种方法可以增加 iSCSI 或 FCP 存储的容量:
  • 创建一个带有新的 LUN 的新存储域并把它加入到已存在的数据中心中。详情请参阅 第 8.5.1 节 “添加 iSCSI 存储”.
  • 创建新的 LUN 并把它们加入到已存在的存储域中。
  • 通过重新调整 LUN 的大小来扩展存储域。
如需了解更多与在 Red Hat Enterprise Linux 6 系统上创建、配置、或重新调整 iSCSI 存储的信息,请参阅 Red Hat Enterprise Linux 6 Storage Administration Guide。对于 Red Hat Enterprise Linux 7 系统,请参阅 Red Hat Enterprise Linux 7 Storage Administration Guide
以下介绍了通过为一个存在的存储域添加新的 LUN 来扩展存储域网络(SAN)的方法。

过程 8.9. 增加存在的 iSCSI 或 FCP 存储域的空间

  1. 在SAN 中创建一个新的 LUN。
  2. 存储资源标签页并选择一个 iSCSI 或 FCP 域。
  3. 点击管理域按钮。
  4. 目标 > LUN,点发现目标按钮。
  5. 输入存储服务器的连接信息后点发现按钮来进行初始连接。
  6. LUN > 目标,选择新建的 LUN。
  7. 确定把 LUN 添加到所选的存储域中。
存储域的空间会被增加,增加的大小与所加入的 LUN 大小相同。
当通过调整 LUN 的大小来扩展存储域时,LUN 需要在 Red Hat Virtualization 管理门户中进行刷新。

过程 8.10. 刷新 LUN 的大小

  1. 存储资源标签页并选择一个 iSCSI 或 FCP 域。
  2. 点击管理域按钮。
  3. LUN > 目标
  4. 额外大小栏中,点刷新的 LUN 的添加 Additional_Storage_Size 按钮。
  5. 确定刷新 LUN 从而显示新的存储容量。

8.5.5. Red Hat Virtualization 环境无法使用的 LUN

在一些特定条件下,Red Hat Virtualization Manager 不允许用户使用 LUN 作为一个存储域或虚拟机硬盘。
  • 那些已经被作为 Red Hat Virtualization 环境一部分的 LUNs 将无法再被使用。
    Red Hat Virtualization 管理门户中无法使用的 LUNs

    图 8.6. Red Hat Virtualization 管理门户中无法使用的 LUNs

  • 那些已经被 SPM 主机使用的 LUN 会被显示为已经被使用。用户可以尝试强制覆盖这些 LUN 的内容,但系统无法保证这个操作可以成功完成。

8.6. 导入存在的存储域

8.6.1. 导入存在的存储域

除了可以添加没有数据的新存储域,也可以导入已存在的存储域来访问其中的数据。通过导入存储域,用户可以在 Manager 数据库出现问题时对数据进行恢复,也可以把数据从一个数据中心迁移到其它数据中心。
以下介绍了对不同存储域类型的导入:
数据
通过导入已存在的数据存储域,您就可以访问其中包括的虚拟机和模板。在导入存储域后,您需要手工把虚拟机、浮动磁盘镜像和模板导入到目标数据中心中。从数据域中导入虚拟机和模板的过程与从导出域中导入的过程相似。但是,因为数据存储域包括了特定数据中心中的所有虚拟机和模板,所以如果需要在不同数据中心或环境中恢复数据或进行大规模的数据恢复时,推荐使用导入数据存储域的方法。

重要

您可以导入兼容版本为 3.5 或更高的数据中心中的数据存储域。
ISO
导入一个存在的 ISO 存储域使您可以访问这个 ISO 存储域所包括的所有 ISO 文件和虚拟软盘。在导入存储域后,您不需要进行其它额外的操作就可以访问其中的资源,您可以根据需要把它们附加到虚拟机上。
输出
通过导入现有的导出存储域,您可以访问其中包括的所有虚拟机镜像和模板。因为导出域设计为用来导出和导入虚拟机镜像和模板,所以如果需要在一个环境内或多个环境之间迁移少量的虚拟机和模板,推荐使用导入导出存储域的方法。如需了解有关在导出存储域中导入和导出虚拟机与模板的更多信息,请参阅虚拟机管理指南中的导出并导入虚拟机和模板

注意

导出存储域这个概念已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像以及模板可以从导入的存储域中上传到附加到的数据中心中。

8.6.2. 导入存储域

导入一个以前被附加到某个数据中心中的存储域。这个过程假设这个存储域现在没有被附加到任何的数据中心中,这样可以防止出现破坏数据的情况。为了把一个已经存在的数据存储域导入并附加到一个数据中心,这个数据中心必须已经被初始化。

过程 8.11. 导入存储域

  1. 存储资源标签页。
  2. 导入域
    “导入预配置的域”窗口

    图 8.7. “导入预配置的域”窗口

  3. 数据中心下拉列表中选择存储域要被附加到的数据中心。
  4. 为存储域输入一个名称。
  5. 从相关的下拉列表中选择域功能存储类型
  6. 使用主机下拉列表中选择一个主机。

    重要

    所有与存储域之间的通信都是通过所选主机而不是直接通过 Red Hat Virtualization Manager 进行的。配置该存储前,系统中必须至少有一个活动主机,并附加到所选数据中心;所有主机也必须可以访问存储设备。
  7. 输入存储域的详情信息。

    注意

    用来设置存储域详情的项会根据您在域功能 / 存储类型列表中所做的不同选择而有所不同。这些选项和添加一个新存储域时所使用的选项相同。如需了解更多相关信息,请参阅 第 8.1 节 “存储域介绍”
  8. 选择在数据中心中激活域选项。如果选择了这个选项,存储域被附加到所选的数据中心后会被自动激活。
  9. 确定
存储域被导入,并在存储标签页中显示。现在,您可以把虚拟机和模板从存储域导入到数据中心。

8.6.3. 在同一个环境的数据中心间迁移存储域

把存储域从同一个 Red Hat Virtualization 环境中的一个数据中心迁移到另外一个数据中心可以使目标数据中心访问包括在这个存储域中的数据。迁移过程包括把存储域从一个数据中心中分离,再把它附加到另外一个环境中。

过程 8.12. 在同一个环境的数据中心间迁移存储域

  1. 关闭在存储域上运行的所有虚拟机。
  2. 存储标签页,在结果列表中选择一个存储域。
  3. 在详情框中选数据中心标签页。
  4. 维护并点确定把存储域设置为维护模式。
  5. 取消附加并点确定把存储域从源数据中心中删除。
  6. 附加
  7. 选择新的数据中心并点确定
存储域被附加到新的数据中心,并被自动激活。您可以从导入的存储域中把虚拟机和模板导入到新环境中的数据中心中。

8.6.4. 在不同环境内的数据中心间迁移存储域

把存储域从一个 Red Hat Virtualization 环境迁移到另外一个环境中可以使目标环境访问包括在这个存储域中的数据。迁移过程包括把存储域从一个 Red Hat Virtualization 环境中删除,再把它导入到另外一个环境中。要把一个存在的数据存储域导入并附加到一个 Red Hat Virtualization 数据中心中,这个数据域的源数据中心的兼容级别需要是3.5 或更高。

过程 8.13. 在不同环境内的数据中心间迁移存储域

  1. 登录到源环境中的管理门户。
  2. 关闭在存储域上运行的所有虚拟机。
  3. 存储标签页,在结果列表中选择一个存储域。
  4. 在详情框中选数据中心标签页。
  5. 维护并点确定把存储域设置为维护模式。
  6. 取消附加并点确定把存储域从源数据中心中删除。
  7. 删除
  8. 确定在删除存储窗口中选择了 Format Domain, i.e. Storage Content will be lost!。这个操作会保留数据域中的数据以供以后使用。
  9. 确定从源环境中删除存储域。
  10. 登录到目标环境中的管理门户。
  11. 存储资源标签页。
  12. 导入域
    “导入预配置的域”窗口

    图 8.8. “导入预配置的域”窗口

  13. 数据中心下拉列表中选择存储域要被附加到的数据中心。
  14. 为存储域输入一个名称。
  15. 从相关的下拉列表中选择域功能存储类型
  16. 使用主机下拉列表中选择一个主机。
  17. 输入存储域的详情信息。

    注意

    用来设置存储域详情的项会根据您在存储类型列表中所做的不同选择而有所不同。这些选项和添加一个新存储域时所使用的选项相同。如需了解更多相关信息,请参阅 第 8.1 节 “存储域介绍”
  18. 选择在数据中心中激活域选项,这会在附加时自动激活存储域。
  19. 确定
存储域被附加到新 Red Hat Virtualization 环境中的数据中心,并被自动激活。您可以从导入的存储域中把虚拟机和模板导入到新环境中的数据中心中。

8.6.5. 从导入的数据存储域中导入虚拟机

从导入到 Red Hat Virtualization 环境的数据存储域中把虚拟机导入到一个或多个集群。此操作假定导入的数据存储域已附加到数据中心,并且已经激活。

过程 8.14. 从一个导入的数据存储域中导入虚拟机

  1. 存储资源标签页。
  2. 点导入的数据存储域。
  3. 在详情框中点 VM 导入标签页。
  4. 选择要导入的虚拟机。
  5. 导入
  6. 对于导入虚拟机窗口中的每一虚拟机,请确保已在集群列表中选择了正确的目标集群。
  7. 将外部虚拟机 vNIC 配置集映射到目标集群的现有配置集:
    1. 点击 vNic 配置集映射
    2. 目标 vNic 配置集下拉列表选择 vNIC 配置集。
    3. 如果在导入虚拟机窗口中选择了多个目标集群,请在目标集群下拉列表中选择各个集群并确保映射正确。
    4. 确定
  8. 如果检测到 MAC 地址冲突,虚拟机名称旁边会出现感叹号。将鼠标指针悬停于图标上,以查看工具提示,上面会显示所发生的错误类型。
    选中重新分配不正确的 MAC复选框,以重新分配新的 MAC 地址到所有存在问题的虚拟机。此外,也可选中每一虚拟机的重新分配复选框。

    注意

    如果没有可分配的地址,导入操作将失败。不过,如果 MAC 地址超出集群的 MAC 地址池范围,可以导入虚拟机但不重新分配新的 MAC 地址。
  9. 确定
您把一个或多个虚拟机导入到您的环境中。导入的虚拟机将不再会出现在 VM 导入标签页中。

8.6.6. 从导入的数据存储域中导入模板

从导入的数据存储域中把模板导入到您的 Red Hat Virtualization 环境中。这个过程假设导入的数据存储域已经被附加到一个数据中心中,并已被激活。

过程 8.15. 从导入的数据存储域中导入模板

  1. 存储资源标签页。
  2. 点导入的数据存储域。
  3. 在详情框中点 模板导入标签页。
  4. 选择要导入的模板。
  5. 导入
  6. 集群列表中选择模板要被导入的集群。
  7. 确定
您把一个或多个模板导入到您的环境中。导入的模板将不再会出现在 模板导入标签页中。

8.6.7. 从导入的存储域中导入一个磁盘镜像

使用详情框中的磁盘导入标签页从一个导入的存储域中导入浮动虚拟磁盘。

注意

只有与 QEMU 兼容的磁盘才可以导入到 Manager。

过程 8.16. 导入一个磁盘镜像

  1. 选择已被导入到数据中心中的一个存储域。
  2. 在详情框中,点磁盘导入
  3. 选择一个或多个磁盘,点导入打开导入磁盘窗口。
  4. 为每个磁盘选择相关的磁盘配置集
  5. 确定导入所选的磁盘。

8.6.8. 从导入的存储域中导入一个未注册的磁盘镜像

使用详情框中的磁盘导入标签页从一个存储域中导入浮动虚拟磁盘。在 Red Hat Virtualization 环境外创建的浮动磁盘没有在 Manager 中注册。对存储域进行扫描来找出要导入的、没有注册的浮动磁盘。

注意

只有与 QEMU 兼容的磁盘才可以导入到 Manager。

过程 8.17. 导入一个磁盘镜像

  1. 选择已被导入到数据中心中的一个存储域。
  2. 在存储域上点鼠标右键,选扫描磁盘来让 Manager 找出没有注册的磁盘。
  3. 在详情框中,点磁盘导入
  4. 选择一个或多个磁盘,点导入打开导入磁盘窗口。
  5. 为每个磁盘选择相关的磁盘配置集
  6. 确定导入所选的磁盘。

8.7. 存储任务

8.7.1. 生成 ISO 存储域数据

在一个 ISO 存储域被添加到一个数据中心后,ISO 数据镜像必须被上传到存储域中。Red Hat Virtualization 提供了一个 ISO 上传工具,使用它可以确保数据镜像被上传到正确的目录,并具有正确的用户权限。
从物理介质创建 ISO 镜像的相关信息没有包括在本文档中。本文档假设您已经有了所需要的镜像文件。

过程 8.18. 生成 ISO 存储域数据

  1. 把所需的 ISO 镜像复制到运行 Red Hat Virtualization Manager 的系统的临时目录中。
  2. 使用 root 用户帐号登录到运行 Red Hat Virtualization Manager 的系统上。
  3. 使用 engine-iso-uploader 命令上传 ISO 镜像。这个操作可能需要一些时间才能完成,所需的具体时间取决于镜像文件的大小以及上传镜像所使用的网络带宽。

    例 8.1. ISO Uploader 的使用

    在这个例子中,我们把 ISO 镜像 RHEL6.iso 通过 NFS 上传到名为 ISODomainISO 域上。这个命令会提示用户输入管理员的用户名和密码。用户名的格式必须是 user name@domain
    # engine-iso-uploader --iso-domain=ISODomain upload RHEL6.iso
ISO 镜像被上传到指定的 ISO 存储域中。另外,当在这个存储域所在的数据中心中创建虚拟机时,这个镜像会出现在可用的启动媒介列表中。

8.7.2. 把存储域设为维护模式

存储域必须处于维护模式,才能被分离和删除。若要重新指定另一数据存储域为主数据域,必须这样操作。

重要

如果某一虚拟机在存储域上有租赁,您就无法将该存储域设为维护模式。需要先关闭该虚拟机,或者删除该租赁或转移到其他存储域。如需了解与虚拟机租赁相关的更多信息,请参阅虚拟机管理指南
通过添加更多 LUN 来扩展 iSCSI 域的操作只能在存储域处于活跃状态时才可以进行。

过程 8.19. 把存储域设为维护模式

  1. 关闭在存储域上运行的所有虚拟机。
  2. 存储资源标签页并选择一个存储域。
  3. 点详情框中的数据中心标签页。
  4. 维护打开存储域维护确认窗口。
  5. 确认来启用维护模式。这个存储域变为维护模式,并在结果列表中显示为处于 Inactive 状态。
您现在可以从数据中心中编辑、删除、或重新激活处于维护模式的存储域。

注意

您也可以在这个存储域所在的数据中心的详情框中,使用存储标签页来激活存储域、分离存储域或把存储域设为维护模式。

8.7.3. 编辑存储域

您可以通过管理门户编辑存储域的参数。取决于存储域所处的状态(“活跃”或“不活跃”),不同的项可以被编辑。数据中心域功能存储类型格式 等项不能被编辑。
  • 活动的:当存储域处于活跃状态时,可以编辑名称描述注释警告级低磁盘空间(%)严重的空间操作限制阈值(GB)删除后清理删除后丢弃字段。名称字段只能在存储域处于活跃状态时编辑。所有其他字段可以在存储域是不活跃状态下时编辑。
  • 不活跃:当存储域处于维护模式,或没有被附加时,它被认为处于非活跃状态。此时您可以编辑除名称数据中心域功能存储类型格式以外的所有项。存储连接、挂载选项和其它高级参数只能在存储域是不活跃的状态下进行编辑。这只对 NFS、POSIX 和本地存储类型有效。

    注意

    iSCSI 存储连接不能通过管理门户编辑,但可以通过 REST API 编辑。请参阅 REST API 指南中的更新 iSCSI 存储连接

过程 8.20. 编辑一个活跃的存储域

  1. 存储资源标签页并选择一个存储域。
  2. 点击管理域
  3. 根据需要编辑相关项。
  4. 确定

过程 8.21. 编辑一个 不活跃的存储域

  1. 存储资源标签页并选择一个存储域。
  2. 如果存储域是活跃的,点详情框中的数据中心标签页,然后点维护
  3. 点击管理域
  4. 根据需要编辑存储路径和其它信息。新的连接需要和原始的连接有相同的存储类型。
  5. 确定
  6. 在详情框中选数据中心标签页,点激活

8.7.4. 把存储域从维护状态激活

如果您对存储域进行了修改,您的存储域应该处于“维护”状态,您需要激活一个存储域后才可以重新使用它。
  1. 存储标签页,在结果列表中选择一个不活跃的存储域。
  2. 点详情框中的数据中心标签页。
  3. 选相应的存储域并点激活

    重要

    如果您试图在激活数据域前激活 ISO 域,系统会出现一个错误信息,域也不会被激活。

8.7.5. 删除一个存储域

您想从您的虚拟环境中删除一个存储域。

过程 8.22. 删除一个存储域

  1. 存储标签页,在结果列表中选择一个存储域。
  2. 把存储域设置为维护模式。
  3. 把这个存储域从数据中心中分离。
  4. 删除打开删除存储确认窗口。
  5. 从类表中选择一个主机。
  6. 确定删除存储域并关闭窗口。
存储域被永久从虚拟环境中删除。

8.7.6. 销毁(destroy)一个存储域

当一个存储域存在问题的时候,可能无法通过正常的方法来删除这个存储域。销毁(destroy)存储域的操作可以在不需要使用输出目录的情况下强行从虚拟环境中删除一个存储域。
当一个存储域被销毁后,您需要手动修改存储域的导出目录。

过程 8.23. 销毁(destroy)一个存储域

  1. 使用存储资源标签页、树形模式或搜索功能来找到并选择存储域。
  2. 在存储域上点鼠标右键,选择销毁打开销毁存储域确认窗口。
  3. 选择批准操作并点确定来销毁存储域并关闭窗口。
存储域被销毁。您需要手动编辑它的导出目录才能重新使用它。

8.7.7. 从数据中心中分离一个存储域

从数据中心中分离一个存储域来把虚拟机和模板迁移到另外一个数据中心中。

过程 8.24. 从数据中心中分离一个存储域

  1. 存储标签页,在结果列表中选择一个存储域。
  2. 在详情框中选数据中心标签页并选择存储域。
  3. 维护打开维护存储域确认窗口。
  4. 确定把存储域变为维护模式。
  5. 分离打开分离存储确认窗口。
  6. 确定分离存储域。
存储域被从数据中心中分离,并可以被附加到另一个数据中心中。

8.7.8. 为数据中心附加一个存储域

为数据中心附加一个存储域。

过程 8.25. 为数据中心附加一个存储域

  1. 存储标签页,在结果列表中选择一个存储域。
  2. 点详情框中的数据中心标签页。
  3. 附加打开附加到数据中心窗口。
  4. 选择相应的数据中心。
  5. 确定附加存储域。
存储域被附加到数据中心,并被自动激活。

8.7.9. 磁盘配置集

磁盘配置集定义了在一个存储域中的虚拟磁盘的最大吞吐级别和输入、输出操作的最大级别。磁盘配置集是基于数据中心中的存储配置集而创建的,它必须被手动分配给独立的虚拟磁盘后才有效。

8.7.9.1. 创建一个磁盘配置集

创建一个磁盘配置集。这个步骤假设您已经为存储域所在的数据中心定义了一个或多个存储服务质量。

过程 8.26. 创建一个磁盘配置集

  1. 存储资源标签页并选择一个数据存储域。
  2. 在详情框中点磁盘配置集子标签页。
  3. 新建
  4. 名称项中输入磁盘配置集的名称。
  5. 描述项中输入磁盘配置集的描述信息。
  6. QoS 列表中选择应用磁盘配置集的服务质量。
  7. 确定
您已经创建了一个磁盘配置集,它可以在数据存储域中的新虚拟磁盘上应用。

8.7.9.2. 删除一个磁盘配置集

从 Red Hat Virtualization 环境中删除一个磁盘配置集。

过程 8.27. 删除一个磁盘配置集

  1. 存储资源标签页并选择一个数据存储域。
  2. 在详情框中点磁盘配置集子标签页。
  3. 选择需要被删除的磁盘配置集。
  4. 删除
  5. OK
您已经删除了一个磁盘配置集,这个被删除的磁盘配置集将不再有效。如果磁盘配置集已经分配给其它虚拟磁盘,它将会从这些虚拟磁盘上删除。

8.7.10. 查看一个存储域的健康状态

除了常规的状态信息外,存储域还包括一个外部的健康状态。它由插件或外部系统提供,或由管理员进行设置,并出现在存储域的名称左面。它以以下图标之一显示:
  • OK:没有特殊图标
  • Info:
  • Warning:
  • Error:
  • Failure:
如需查看存储域健康状态的更多信息,选择存储域并点事件子标签页。
存储域的健康状态也可以通过 REST API 获得。对存储域的一个 GET 请求会包括 external_status 项,它包括了健康状态信息。
您可以在 REST API 中使用 events 集合来设置存储域的健康状态。相关信息请参阅 REST API 指南中的添加事件

8.7.11. 为存储域设置删除后丢弃

选中了删除后丢弃复选框后,删除逻辑卷时会对它调用 blkdiscard 命令,同时通知底层存储这些块已经可用。存储阵列可以使用释放的空间,并在请求时进行分配。删除后丢弃适用于块存储。此标记在 Red Hat Virtualization Manager 中无法用于文件存储,如 NFS。

限制:

  • 删除后丢弃仅适用于块存储域,如 iSCSI 或光纤通道。
  • 底层的存储必须支持 Discard
删除后丢弃可以在创建块存储域时启用,或者在编辑块存储域时启用。请参阅第 8.5 节 “添加块存储”第 8.7.3 节 “编辑存储域”

8.8. 存储权限

8.8.1. 为一个存储域管理系统权限

作为 SuperUser,系统管理员需要管理管理门户的各个方面。对于其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的管理员只有对被分配给他的数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有对被分配的集群有管理权限。
一个存储管理员只对特定的存储域有管理员的权限。这一点对于有多个存储域的数据中心环境非常重要,因为每个存储域都需要有一个系统管理员。使用页头中的配置键来为系统中的所有存储域分配一个存储管理员。
存储域管理员可以进行以下操作:
  • 编辑存储域的配置。
  • 把存储域设置为维护模式。
  • 删除存储域。

注意

您只能对已经存在的用户分配角色和权限。
如果需要更改一个存储域管理员,您需要删除当前的管理员,然后再添加一个新的管理员。

8.8.2. 存储管理员角色介绍

存储域权限角色

下表介绍了与存储域管理相关的管理员角色和权限。

表 8.1. Red Hat Virtualization 系统管理员角色

角色权利注记
StorageAdmin存储管理员(Storage Administrator)可以创建、删除、配置和管理一个特定的存储域。
GlusterAdminGluster 存储管理员(Gluster Storage Administrator)可以创建、删除、配置和管理 Gluster 存储卷。

8.8.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 8.28. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

8.8.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 8.29. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

第 9 章 使用 Red Hat Gluster Storage

9.1. Red Hat Gluster Storage 节点

9.1.1. 添加 Red Hat Gluster Storage 节点

把 Red Hat Gluster Storage 节点添加到启用了 Gluster 的集群中,并在您的 Red Hat Virtualization 环境中同时使用 GlusterFS 卷和数据块。
以下步骤假设您已经有了一个启用了 Gluster、并有正确的兼容版本的集群;并且您的 Red Hat Storage 节点也已经被设置。如需了解更多与设置 Red Hat Gluster Storage 节点相关的信息,请参阅 Red Hat Gluster Storage Installation Guide。如需了解兼容性的信息,请参阅 Red Hat Gluster Storage Version Compatibility and Support

过程 9.1. 添加一个 Red Hat Gluster Storage 节点

  1. 主机资源页显示主机列表。
  2. 新建打开新建主机窗口。
  3. 使用下拉菜单为 Red Hat Gluster Storage 节点选择数据中心主机集群
  4. 输入 Red Hat Gluster Storage 节点的名称地址SSH 端口值。
  5. 选择使用这个 Red Hat Gluster Storage 节点的身份验证机制。
    • 输入 root 用户的密码。
    • SSH PublicKey 项中的密钥复制到 Red Hat Gluster Storage 节点的 /root/.ssh/authorized_keys 文件中来使用公共密钥进行验证。
  6. 确定添加节点并关闭窗口。
您在 Red Hat Virtualization 环境中添加了一个 Red Hat Gluster Storage 节点。您可以在您的环境中使用它的卷和数据块资源。

9.1.2. 删除一个 Red Hat Gluster Storage 节点

从 Red Hat Virtualization 环境中删除一个 Red Hat Gluster Storage 节点。

过程 9.2. 删除一个 Red Hat Gluster Storage 节点

  1. 使用主机资源标签页、树形模式或搜索功能来找到并选择 Red Hat Gluster Storage 节点。
  2. 维护打开维护主机确认窗口。
  3. 确定把主机变为维护模式。
  4. 删除打开删除主机确认窗口。
  5. 如果 Red Hat Storage 节点上有磁盘卷块时,或存储节点没有响应时,使用强制删除选项来强制删除 Red Hat Storage 节点。
  6. 确定删除 Red Hat Storage 节点并关闭窗口。
Red Hat Gluster Storage 节点被从系统中删除,并不会再出现在主机标签页中。

9.2. 使用 Red Hat Gluster Storage 作为存储域

9.2.1. Red Hat Gluster Storage(GlusterFS)卷介绍

Red Hat Gluster Storage 卷把多个 Red Hat Gluster Storage 服务器上的存储资源集合在一起作为一个单独的全局命名空间。一个卷由多个数据块(brick)组成,每个数据块是在信任的存储池中的一个 Red Hat Gluster Storage 服务器的一个挂载点或目录。
大多数 Red Hat Gluster Storage 的管理操作都发生在卷上。
您可以使用管理门户创建并启用新卷。您可以通过标签页来监测 Red Hat Gluster Storage 集群上的卷。
卷可以通过管理门户进行创建和管理,数据块(brick)必须在相应的 Red Hat Gluster Storage 节点上创建,然后才能通过管理门户把它们添加到卷上。

9.2.2. Gluster 存储术语

表 9.1. 数据中心属性

术语
定义
数据块(Brick)
数据块(brick)是 GlusterFS 的基本存储单元。一个数据块是通过一个服务器和一个输出目录以以下格式所代表的:
SERVER:EXPORT
例如:
myhostname:/exports/myexportdir/
块存储(Block Storage)
块文件或块设备是指那些使用块的形式来处理数据的设备。这些设备通常代表了那些可访问的设备,如硬盘、CD-ROM 驱动器和存储区域。Red Hat Gluster Storage 支持带有扩展属性的 XFS 文件系统。
集群
由多个相互连接的计算机组成的一个信任的池,通常我们可以把它看作为一个单一的计算机。在 Red Hat Gluster Storage 环境中,我们把集群称为信任的存储池(trusted storage pool)。
客户端(Client)
加载卷的机器(可以是服务器)
分布式文件系统(Distributed File System)
一个文件系统,它允许多个客户端同时访问分布在一个信任的存储池中的多个服务器/数据块(brick)中的数据。所有分布式文件系统的基础就是在多个不同的位置共享数据。
异地备份(Geo-Replication)
异地备份(Geo-Replication)是一个可以通过局域网(LAN)、广域网(WAN)和互联网为不同的区域进行持续的、异步的、增量的备份操作的备份服务。
glusterd
Gluster 管理守护进程,它需要在信任的存储池中的所有服务器上运行。
元数据(metadata)
元数据是提供了一个或多个数据的信息的数据。
N-way Replication
本地同步数据复制通常部署在多个园区或 Amazon Web Services Availability Zones 中。
命名空间(Namespace)
命名空间就是一个抽象的容器或环境,它被创建来保存一个包括了一组唯一的标识符或符号的逻辑组。每个 Red Hat Gluster Storage 信任的存储池都会提供一个单一的命名空间作为 POSIX 的挂载点,它包括了这个信任存储池中的所有文件。
POSIX
Portable Operating System Interface (for Unix) 是由 IEEE 定义的一组相关的标准,它包括了应用程序编程接口(API)、以及与不同的 UNIX 操作系统兼容的 shell 和工具程序。Red Hat Gluster Storage 会输出一个与 POSIX 完全兼容的文件系统。
RAID
Redundant Array of Inexpensive Disks (RAID) 是一个通过使用冗余来提高存储的可靠性的技术。它会把多个低成本、较低可靠性的磁盘组建为一个单一的逻辑单元。
RRDNS
Round Robin Domain Name Service (RRDNS) 是一个在多个应用服务器间分配负载的方法。RRDNS 在 DNS 服务器的 zone 文件中创建多个有相同名称和不同 IP 地址的 A 记录。
服务器
用来保持实际数据的文件系统所在的机器(虚拟机或物理机器)。
Scale-Up Storage
单方面增加存储设备的能力。如为一个信任的存储池中的一个单一的计算机增加它的磁盘空间。
Scale-Out Storage
多方面增加存储设备的能力。如为一个信任的存储池添加一个服务器来为这个信任的存储域中的整个环境增加 CPU 和磁盘空间。
Subvolume
子卷(subvolume)是被最少一个 translator 处理过的一个数据块(brick)
Translator
translator 连接到一个或多个 subvolumes,进行一些操作,并提供一个 subvolume 连接。
Trusted Storage Pool(信任的存储池)
一个存储池就是一组信任的存储服务器。当您开始使用第一个服务器时,存储池只包括那一个服务器。
User Space(用户空间)
在用户空间中运行的应用程序不会直接访问硬件,它会通过内核来进行处理。在通常情况下,用户空间的应用程序比内核空间的应用程序有更好的可移植性。Gluster 是一个用户空间的应用程序。
Virtual File System (VFS)
VFS 是一个内核软件层,用来处理与标准的 Linux 文件系统相关的系统调用。它为不同的文件系统提供了一个通用的接口。
Volume File(卷文件)
卷文件是一个被 glusterfs 进程使用的配置文件,它通常位于 /var/lib/glusterd/vols/VOLNAME
Volume(卷)
卷就是一个包括了多个数据块(brick)的逻辑组。多数的 Gluster 管理操作都是针对于卷进行的。

9.2.3. 附加一个 Red Hat Gluster 存储卷作为存储域

为 Red Hat Virtualization Manager 添加一个 Red Hat Gluster 存储卷来直接作为存储域使用。这与添加一个 Red Hat Storage Gluster 节点不同,当添加 Red Hat Storage Gluster 节点时,可以在 Red Hat Virtualization Manager 内控制卷和数据块(brick),而添加 Red Hat Gluster 存储卷来直接作为存储域使用则不需要一个启用了 Gluster 的集群。
为了可以挂载卷,主机需要安装 glusterfsglusterfs-fuseglusterfs-cli 软件包。glusterfs-cli 软件包可以通过客户门户网站中的 rh-common-rpms 频道获得。
如需了解更多与设置 Red Hat Gluster Storage 节点相关的信息,请参阅 Red Hat Gluster Storage Installation Guide。如需了解准备一个主机来使用 Red Hat Storage Gluster 卷的信息,请参阅 Configuring Red Hat Virtualization with Red Hat Gluster Storage Guide。如需了解与兼容相关的信息,请参阅 Red Hat Gluster Storage Version Compatibility and Support

过程 9.3. 添加一个 Red Hat Gluster 存储卷作为存储域

  1. 存储资源标签页来列出现有的存储域。
  2. 新建域打开新建域窗口。
    Red Hat Gluster Storage

    图 9.1. Red Hat Gluster Storage

  3. 输入存储域的名称
  4. 选择与存储域相关联的数据中心
  5. 域功能下拉列表中选择数据
  6. 存储类型下拉菜单中选择 GlusterFS
  7. 使用主机下拉菜单列表中选择一个主机。只有在所选数据中心中的主机回被列出。只有在安装了 glusterfsglusterfs-fuse 软件包后才可以挂载卷。
  8. 路径项中输入 Red Hat Gluster Storage 服务器的 IP 地址或 FQDN,以及卷名(以一个冒号分隔)。
  9. 输入其他的挂载选项(和您使用 mount 命令时使用的 -o 参数相同)。挂载选项应该以用逗号隔开的列表形式提供。关于可用的挂载选项,请参考 man mount
  10. 另外,您还可以配置高级参数。
    1. 高级参数
    2. 警告级低存储空间项中输入一个百分比值。当存储域中的空闲空间低于这个值时,用户登录时就会显示一个警告信息。
    3. 严重的空间操作限制阈值项中输入一个值(以 GB 为单位)。当存储域中的空闲空间低于这个值时,用户登录时会显示一个错误信息,任何需要使用存储空间的操作(包括临时使用存储空间的操作)都会被限制。
    4. 如果需要在删除虚拟磁盘后清除它上面的敏感数据,选择删除后清除选项。在域创建后,这个选项还可以被修改,但这不会改变已存在的、带有这个选项的存储的行为。
  11. 确定挂载卷来作为存储域并关闭窗口。

9.2.4. 创建一个存储卷

您可以使用管理门户创建新的卷。在创建新的卷时,您必须指定组成这个新卷的数据块(brick)并指定这个卷是分布存储(distributed),还是镜像存储(replicated)或是条带存储(striped)。
在把数据块添加到卷前,您必须创建数据块目录或挂载点。

重要

当把从不同主机上输出的数据块组成一个卷的时候,我们推荐您使用镜像存储卷。它会把由不同主机上的数据块中的文件所构成的卷做一个镜像,这样当某个主机被隔离时,数据不会丢失。

过程 9.4. 创建一个存储卷

  1. 资源标签页列出现有的卷。
  2. 新建打开新建卷窗口。
  3. 使用下拉菜单选择数据中心卷集群
  4. 输入卷的名称
  5. 使用下拉菜单选择卷的类型
  6. 如果需要,选择相应的传输类型
  7. Add Bricks 来选择要加到卷中的数据块。brick 需要在外部的 Red Hat Gluster Storage 节点上创建。
  8. 使用 GlusterNFSCIFS 选项指定卷所使用的访问协议。
  9. 允许访问项中输入这个卷的访问控制列表(以逗号分隔的 IP 地址或主机名)。
    您可以在 IP 地址和主机名中使用 * 通配符。
  10. 使用为 Virt 库进行优化选项设置参数来优化虚拟机的卷。如果您需要使用这个卷作为一个存储域,您应该选择这个选项。
  11. 确定创建卷。新的卷被添加并在标签页中显示。
您添加了一个新的 Red Hat Gluster Storage 卷,并可以开始使用它了。

9.2.5. 为卷添加数据块(brick)

介绍

您可以通过添加新的数据块来扩充卷的容量。如果您使用的是分布卷,您需要最少添加一个数据块;如果您使用的是镜像卷,您需要添加偶数个数据块(最少 2 个);如果您使用的是条带卷,您需要添加的数据块的数量必须是 4 的倍数(最少 4 个)。

过程 9.5. 为卷添加数据块(brick)

  1. 标签页中选择需要添加数据块的卷。
  2. 在详情框中点 Bricks 标签页。
  3. 添加 Bricks 打开添加 Bricks 窗口。
  4. 使用主机下拉菜单选择数据块所在的服务器。
  5. 输入 Brick 目录的路径。这个目录必须已经存在。
  6. 添加。数据块会出现在卷的数据块列表中,并包括了数据块所在的服务器地址和数据块的目录名。
  7. 确定
结果

新的数据块被添加到卷中,并出现在卷的 Bricks 标签页中。

9.2.6. 添加数据块窗口中的设置介绍

表 9.2. 添加数据块页属性

描述
卷类型(Volume Type)
显示卷的类型。这个项不能被改变,它在创建的时候被设置。
服务器(Server)
数据块所在的服务器。
数据块目录(Brick Directory)
数据块目录或挂载点。

9.2.7. 为存储虚拟机镜像优化 Red Hat Gluster Storage 卷

使用管理门户为存储虚拟机镜像优化 Red Hat Gluster Storage 卷。
Manager 为卷设置了一组虚拟化相关的特殊参数。这些参数被用来优化存储虚拟机镜像的卷。
要为存储虚拟机镜像进行卷优化,可以在创建卷时选择为 Virt 库进行优化选项,也可以在创建后使用标签页中的为 Virt 库进行优化选项。

重要

如果一个卷在 3 个或更多个节点上进行复制,请对它为虚拟存储进行优化来保持它在不同节点间的一致性。
另外一个方法是访问 Red Hat Gluster Storage 节点中的一个,并把卷组设置为 virt。这会把 cluster.quorum-type 参数设置为 auto,把 cluster.server-quorum-type 参数设为 server
# gluster volume set VOLUME_NAME group virt
通过列出卷信息来验证卷的状态:
# gluster volume info VOLUME_NAME

9.2.8. 启动卷

介绍

当一个卷被创建后,或卷被停用后,用户需要启动它后才能使用这个卷。

过程 9.6. 启动卷

  1. 标签页中,选择要启动的卷。
    您可以使用 ShiftCtrl 键来选择多个卷进行启动。
  2. 启动键。
卷的状态变为 Up
结果

您现在可以使用这个卷作为虚拟机存储了。

9.2.9. 调整卷

介绍

通过调整卷可以改变它们的性能。您可以通过为卷添加选项来调整它们。

过程 9.7. 调整卷

  1. 标签页。
    卷列表被显示。
  2. 选择您需要调整的卷,从详情框中选卷选项标签页。
    卷选项页显示了这个卷的选项列表。
  3. 添加设置选择。添加选项对话框会被显示。从下拉菜单中选择“选择键”并输入所需的值。
  4. 确定
    选择被设置,并在卷选项标签页中显示。
结果

您调整了您的存储卷。

9.2.10. 编辑卷的选项

介绍

在添加了卷选项后,您就可以对它们进行编辑。

过程 9.8. 编辑卷的选项

  1. 标签页。
    卷列表被显示。
  2. 选择您需要编辑的卷,从详情框中选卷选项标签页。
    卷选项标签页显示了这个卷的选项列表。
  3. 选择您需要编辑的选项,点编辑编辑选项对话框被打开,为这个选项输入一个新值。
  4. 确定
    您所编辑的选项值在卷选项标签页中被显示。
结果

您改变了卷的选项值。

9.2.11. 卷选项重置

介绍

您可以重置卷选项来把它们恢复到默认的值。

  1. 标签页。
    卷列表被显示。
  2. 选择您需要编辑的卷,从详情框中选卷选项标签页。
    卷选项页显示了这个卷的选项列表。
  3. 选择您需要重置的选项,点重置。一个对话框会出现,让用户确认要重置这个选项。
  4. 确定
    所选的选项值被重置。

注意

您可以使用重置所有选项键来重置所有的卷选项。一个对话窗口会出现,让您确认重置的选项。点确定,卷的所有选项被重置为默认的值。
结果

您把卷选项重置为默认的值。

9.2.12. 从一个卷中删除数据块

介绍

如果需要,您可以在集群在线时减小卷的容量。例如,因为硬件或网络的问题,您需要把一个无法访问的卷从一个分布式卷中删除。

过程 9.9. 从一个卷中删除数据块

  1. 标签页中选择需要删除数据块的卷。
  2. 在详情框中点 Bricks 标签页。
  3. 选择需要被删除的数据块,点删除 Bricks
  4. 确认窗口会出现,点确定
结果

数据块被从卷中删除。

9.2.13. 停止 Red Hat Gluster Storage 卷

在卷被启动后,它可以被停止。

过程 9.10. 停止卷

  1. 标签页中,选择要停止的卷。
    您可以使用 ShiftCtrl 键来选择停止多个卷。
  2. 停止

9.2.14. 删除 Red Hat Gluster Storage 卷

您可以从集群中删除一个或多个卷。
  1. 标签页中,选择要删除的卷。
  2. 删除。一个删除确认窗口会出现。点确定

9.2.15. 重新平衡(Rebalancing)卷

介绍

如果一个卷通过添加或删除数据块扩大或缩小了它的容量,卷上的数据需要在服务器上进行重新平衡。

过程 9.11. 重新平衡一个卷。

  1. 标签页。
    卷列表被显示。
  2. 选择需要重新平衡的卷。
  3. Rebalance
结果

选择的卷被重新平衡。

9.3. 集群和 Gluster Hook

9.3.1. 管理 Gluster Hook

Gluster hook 是卷的扩展。您可以通过 Manager 来管理 Gluster hook。如果 hook 的内容类型是文本,您可以直接查看它的内容。
通过 Manager,您可以执行以下操作:
  • 查看主机上可用的 hook。
  • 查看 hook 的内容和状态。
  • 启用或禁用 hook。
  • 解决 hook 的冲突。

9.3.2. 列出 hook

介绍

列出您的环境中的 Gluster hook。

过程 9.12. 列出 hook

  1. 使用集群资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页在详情框中类出 hook。
结果

列出您的环境中的 Gluster hook。

9.3.3. 查看 hook 的内容

介绍

查看您的环境中的 hook 的内容。

过程 9.13. 查看一个 hook 的内容

  1. 使用集群资源页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页在详情框中类出 hook。
  3. 选择内容类型是文本的 hook,点查看内容打开 Hook 内容窗口。
结果

您查看了您的环境中的一个 hook 的内容。

9.3.4. 启用或禁用 hook

介绍

切换启用或禁用 Gluster hook。

过程 9.14. 启用或禁用一个 hook。

  1. 使用集群资源页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页在详情框中类出 hook。
  3. 选择一个 hook,点启用禁用键。这个 hook 会在集群的所有节点上被启用或被禁用。
结果

您在您的环境中启用或禁用了一个 Gluster hook。

9.3.5. 刷新 hook

介绍

在默认条件下,Manager 会每个小时运行一个程序来检查集群中所有服务器上所安装的 hook 的状态。您也可以点同步键手动刷新 hook。

过程 9.15. 刷新一个 hook

  1. 使用集群资源页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页在详情框中列出 hook。
  3. 同步键。
结果

hook 被同步,并在详情框中显示最新的结果。

9.3.6. 解决冲突

hook 在集群页中的 Gluster Hooks 子页中被显示。那些有冲突的 hook 会被一个感叹号标注。这意味着这个 hook 的内容或状态在不同的服务器上不一致;或在一个或多个服务器上缺少这个 hook 的脚本。服务器上的 hook 会定期和引擎数据库进行同步,不同服务器上的 hook 可能会出现以下冲突:
  • 内容冲突 - 相同 hook 的内容在不同服务器上不一致。
  • 丢失冲突 - 一个或多个服务器上没有这个 hook。
  • 状态冲突 - 同一个 hook 的状态在不同服务器上不一致。
  • 多重冲突 - 一个 hook 有以上提到的两个或两个以上的冲突。

9.3.7. 解决内容冲突

介绍

当一个 hook 的内容在不同服务器上不一致时,系统会把这个 hook 标记为有冲突。要解决这类冲突,您必须选择一个 hook 内容的版本,并把它复制到所有服务器上。

过程 9.16. 解决一个内容冲突

  1. 使用集群资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 标签页在详情框中类出了所有 hook。
  3. 选择有冲突的 hook,点解决冲突打开解决冲突窗口。
  4. 从“选择源来查看内容”项中选择引擎或服务器来查看 hook 的内容,并决定使用哪个版本的 hook 内容。

    注意

    所选的 hook 内容将覆盖所有服务器和引擎上的相同 hook 的内容。
  5. 使用 Use content from 下拉菜单选择您需要的 hook 内容所在的服务器或引擎。
  6. 确定解决冲突并关闭窗口。
结果

被选择的 hook 内容被复制到所有服务器和引擎中。这个 hook 的内容在您的环境中被保持一致。

9.3.8. 解决丢失 hook 冲突

介绍

当一个 hook 没有出现在所有服务器和引擎上时,系统会把这个 hook 标记为有冲突。要解决这类冲突,您可以选择一个 hook 内容的版本,并把它复制到所有服务器和引擎上;或把这个 hook 删除。

过程 9.17. 解决一个丢失 hook 冲突

  1. 使用集群资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页在详情框中类出 hook。
  3. 选择有冲突的 hook,点解决冲突打开解决冲突窗口。
  4. 选择状态为已启用的 hook 来查看它的内容。
  5. 根据您的具体情况,选择 复制这个 hook 到所有服务器删除缺失的 hook。如果选择后一个选项,这个 hook 会从所有服务器和引擎上删除。
  6. 启动解决冲突并关闭窗口。
结果

根据您所做的选择,被选择的 hook 内容被复制到所有服务器和引擎中,它的内容在您的环境中被保持一致;或您选择的 hook 被从您的环境中完全删除。

9.3.9. 解决状态冲突

介绍

当一个 hook 的状态在不同服务器上不一致时,系统会把这个 hook 标记为有冲突。要解决这类冲突,您必须选择一个 hook 状态,并把这个 hook 在所有服务器上都设置为这个状态。

过程 9.18. 解决一个状态冲突

  1. 使用集群资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 在标签页,在详情框中列出了所有 hook。
  3. 选择有冲突的 hook,点解决冲突打开解决冲突窗口。
  4. Hook 状态设置为已启用已禁用
  5. 确定解决冲突并关闭窗口。
结果

这个 hook 在所有服务器和引擎上的状态都被设为同一个值。

9.3.10. 解决多重冲突

介绍

一个 hook 可能会有多种冲突,这可以通过解决冲突窗口来同时解决所有冲突或单独解决每个冲突,从而到达 hook 在所有服务器和引擎上保持一致的目的。

过程 9.19. 解决多重冲突

  1. 使用集群资源标签页、树形模式或搜索功能来找到并选择集群。
  2. 选择 Gluster Hooks 子标签页,在详情框中类出了所有 hook。
  3. 选择有冲突的 hook,点解决冲突打开解决冲突窗口。
  4. 根据冲突的类型选择相应的步骤。
  5. 确定解决冲突并关闭窗口。
结果

您解决了所有冲突,hook 在所有服务器和引擎上保持一致。

9.3.11. 管理 Gluster 同步(Gluster 同步)

Gluster 同步 (Gluster Sync)功能会定期从 GlusterFS 上获取最新的集群配置,并通过 Manager 把这些配置和引擎数据库进行同步。当一个集群被选择后,用户可以选择导入主机或从所选择的集群中分离一个主机。如果集群中有一个主机,您可以执行 Gluster 同步操作。

注意

Manager 会持续监测是否有主机被添加到集群中,或从集群中被删除。当监测到有这种事件发生时,它会在集群的常规标签页中显示。您可以选择 导入来导入主机或选择分离来把主机从集群中分离。

第 10 章 池

10.1. 虚拟机池介绍

虚拟机池就是一组通过同一个模板创建的虚拟机,这些虚拟机可以被指定组中的任何用户所使用。虚拟机池可以使管理员快速地为用户配置一组虚拟机。
用户通过从虚拟机池中“拿(take)"一个虚拟机来访问虚拟机池。当用户从池中拿一个虚拟机时,虚拟机池会为用户提供一个可以使用的虚拟机。虚拟机池中的所有虚拟机都相同的配置,但用户每次所拿到的虚拟机可能并不是同一个虚拟机。根据虚拟机池的配置,用户也可以从这个池中拿多个虚拟机。
在虚拟机池中的虚拟机都是无状态的,这意味着在虚拟机上所做的任何改变在重新启动后都不会被保存。但是,如果用户为虚拟机配置了控制台选项,这些选项将会被设置为这个用户在虚拟机池中的默认设置。
从理论上来讲,虚拟机池中的虚拟机只有在被用户拿到时才会被启动,当用户不再需要它的时候,虚拟机会被关机。但是,虚拟机池也可以提供预先启动后的虚拟机,这些虚拟机会一直处于空闲状态,直到有用户拿到这个虚拟机。这个功能可以使用户马上使用他们所拿到的虚拟机,但这些处于空闲状态的虚拟机会消耗系统的资源。

注意

当通过管理门户访问虚拟机池中的虚拟机时,虚拟机将不是无状态的。这是因为管理员需要把所做的改变写在磁盘中。

10.2. 虚拟机池任务

10.2.1. 创建一个虚拟机池

您可以为基于同一个模板创建的多个虚拟机创建一个虚拟机池。

过程 10.1. 创建一个虚拟机池

  1. 标签页。
  2. 新建打开新建池窗口。
  3. 使用下拉菜单选择集群或使用默认的选择。
  4. 模板下拉菜单中选所需的模板和版本,或使用默认选择。模板为池中的所有虚拟机提供了标准设置。
  5. 使用操作系统下拉菜单擦选择一个操作系统,或使用模板提供的默认值。
  6. 使用优化下拉列表选择根据桌面服务器对虚拟机进行优化。
  7. 为这个虚拟机池输入名称描述注释以及虚拟机的数量
  8. 预先启动的虚拟机项中输入相应的值。
  9. 每个用户的最大虚拟机数目项中输入一个数值。它是一个用户一次可以从虚拟机池中拿到的最多虚拟机的数量。这个项的最小值是 1。
  10. 选择删除保护选项启用删除保护功能。
  11. 另外,还可以点显示高级选项来进行以下配置:
    1. 类型标签页并选择一个池类型
      • 手动 - 系统管理员需要手动把虚拟机归还到虚拟机池中。当虚拟机被归还到虚拟机池后,它们会被恢复到原始的基本镜像。
      • 自动 - 当虚拟机被关机时,它会被自动恢复到原始的基本镜像并被归还到虚拟池。
    2. 选择控制台标签页。在这个页的下部,选中覆盖 SPICE 代理选项激活覆盖 SPICE 代理地址项。您可以在这个项中输入一个 SPICE 代理的地址来覆盖 SPICE 代理的全局设置值。
  12. 确定
您创建并配置了一个虚拟机池,它包括了特定数量的配置相同的虚拟机。您可以在虚拟机标签页或标签页中查看这些虚拟机。虚拟机池中的虚拟机的图标和独立虚拟机的图标有所不同。

10.2.2. 新建池和编辑池窗口中的设置和控制介绍

10.2.2.1. 新建池和编辑池中的常规设置介绍

下表介绍了只在新建池编辑池窗口中的常规标签页中出现的设置。其它的设置和新建虚拟机窗口中的设置相同。

表 10.1. 常规设置

描述
模板
虚拟机池所基于的模板及模板子版本。如果您基于模板的 latest 子版本创建池,池中的所有虚拟机在重新启动后将自动接收最新的模板版本。如需了解与配置虚拟机模板相关的更多信息,请参阅虚拟机管理指南中的虚拟机常规设置介绍新建模板和编辑模板窗口中的设置和控制介绍
描述
虚拟机池的描述。
注释
与虚拟机池相关的备注。
预启动的虚拟机
允许您指定预启动的虚拟机(在虚拟机被用户获取前就已经启动,并保持启动状态的虚拟机)的数量。这个项的值必须在 0 和虚拟机池中的总虚拟机数量之间。
虚拟机数量/增加池里的虚拟机数量
指定在虚拟机池中可以创建的虚拟机数量。在编辑窗口中,可以通过指定一个数量来增加虚拟机池中的虚拟机数量。在默认情况下,一个虚拟机池中所能创建的最大虚拟机数量是 1000。这个值可以通过 engine-config 命令的 MaxVmsInPool 参数进行设置。
每个用户的最大虚拟机的数目
指定一个用户可以一次从虚拟机池中获得虚拟机的最大数量。它的值必须在 132,767 之间。
删除保护
防止池中的虚拟机被删除。

10.2.2.2. 新建池和编辑池中的类型设置介绍

下表描述了新建池编辑池窗口中的类型标签页中的选项。

表 10.2. 类型设置

描述
池类型
使用下拉菜单指定虚拟机池的类型。有效选项包括:
  • 自动 - 当一个用户不再使用一个从虚拟机池中拿到的虚拟机后,虚拟机被自动返回到虚拟池。
  • 手动: 当一个用户不再使用一个从虚拟机池中拿到的虚拟机后,虚拟机不会被自动返回到虚拟机池中。管理员需要手动把虚拟机返回到虚拟机池中。

10.2.2.3. 新建池和编辑池中的控制台设置介绍

下表介绍了只在新建池编辑池窗口中的控制台标签页中出现的设置。其它的设置和新建虚拟机以及编辑虚拟机窗口中的设置相同。

表 10.3. 控制台设置

描述
覆盖 SPICE 代理
选择这个项可以覆盖全局设置中对 SPICE 代理的设置。当用户需要从虚拟主机所在的网络外进行访问时,这个设置将非常有用。
被覆盖的 SPICE 代理地址
SPICE 客户端连接到虚拟机所使用的代理服务器。这个代理服务器会覆盖为 Red Hat Virtualization 环境定义的全局 SPICE 代理,以及为这个虚拟机池所属的集群定义的代理服务器。代理的地址格式是:
protocol://[host]:[port]

10.2.2.4. 虚拟机池主机设置介绍

下表描述了新建池编辑池窗口中的主机标签页中的选项。

表 10.4. 虚拟机池:主机设置

子项
描述
开始运行在
 
指定虚拟机优先在哪个主机上运行。选择:
  • 集群里的任何主机 - 虚拟机可以在集群中的任何可用主机上运行。
  • 专有的 - 虚拟机将在集群中的某个特定主机上运行。从可用主机下拉菜单中选择 特定主机或一组主机。系统管理员可以根据虚拟机上的迁移和高可用性配置,把虚拟机迁移到集群中的其它主机上。
迁移选项
迁移模式
Defines options to run and migrate the virtual machine. If the options here are not used, the virtual machine will run or migrate according to its cluster's policy.
  • 允许手动和自动迁移 - 虚拟机可以根据所在环境的状态,自动从一个主机迁移到另一个主机;也可以被管理员手动迁移。
  • 只允许手动迁移 - 虚拟机只能通过管理员进行手动迁移。
  • 不允许迁移 - 虚拟机不能被迁移。
 
使用自定义迁移策略
指定迁移聚合策略。如果每个选择这个选项,主机会自己决定使用的策略。
  • Legacy - 使用 3.6 版本的工作方式。vdsm.conf 中的设置仍然适用。guest 代理的 hook 机制会被禁用。
  • Minimal downtime - 允许虚拟机在典型的情况下进行迁移,虚拟机应该不会出现长时间的下线情况。如果在一定时间内(取决于 QEMU,最长时间是 500 毫秒)虚拟机的迁移还没有聚合,迁移操作会被终止。guest 代理机制会被启用。
  • Suspend workload if needed - 允许虚拟机在多数情况下都可以进行迁移,包括虚拟机的负载非常大的情况。虚拟机可能会出现较长的下线时间。当负载太大时,迁移操作也会被终止。guest 代理机制会被启用。
 
使用自定义迁移下线时间
指定在迁移过程中虚拟机的最大下线时间(以毫秒为单位)。您需要根据系统负载和 SLA 的要求来为每个虚拟机指定不同的值。输入 0 来使用 VDSM 的默认值。
 
自动聚合迁移
只有在使用 Legacy 迁移策略时有效。您可以设置在实时迁移虚拟机时是否进行自动聚合。具有大量负载的大型虚拟机产生“脏”内存的频率会比在实时迁移过程中所达到的传输速率更快,并可能造成迁移无法进行聚合。而 QEMU 中的自动聚合功能可以强制聚合迁移的虚拟机。QEMU 会自动检测到缺少的聚合操作,并触发虚拟机中的 vCPU 的节流操作。在默认情况下,自动聚合在全局范围内被禁用。
  • 从集群设置继承来使用集群一级中的自动聚合设置。这个选项在默认情况下被选择。
  • 自动聚合会忽略集群中的相关设置以及全局的相关设置,自动聚合在虚拟机上被启用。
  • 不自动聚合会忽略集群中的相关设置以及全局的相关设置,自动聚合在虚拟机上被禁用。
 
启用迁移压缩
只有在选择了 Legacy 选项后才有效。这个选项可以被用来指定在迁移虚拟机的过程中是否进行压缩。这个功能会使用 Xor Binary Zero Run-Length-Encoding,它会缩短那些运行需要大量写入内存的负载的虚拟机的下线时间,以及那些运行具有稀松内存更新特征的应用程序的虚拟机的下线时间。在默认情况下,迁移压缩被全局禁用。
  • 从集群设置继承来使用集群一级中的压缩设置。这个选项在默认情况下被选择。
  • 压缩会忽略集群中的相关设置以及全局的相关设置,压缩在虚拟机上被启用。
  • 不压缩会忽略集群中的相关设置以及全局的相关设置,压缩在虚拟机上被禁用。
 
Pass-Through 主机 CPU
允许虚拟机使用它所在主机的物理 CPU 所具有的功能。这个功能只有在不允许迁移被选中时有效。
配置 NUMA
NUMA 节点数
分配给虚拟机的虚拟 NUMA 节点的数量。如果 Tune Mode 被设置为 Preferred,这个值必须设置为 1
 
Tune Mode
分配内存的方法。
  • Strict:当内存无法在目标节点上分配时,内存分配失败。
  • Preferred:内存会从一个优先的节点上分配。如果这个节点没有足够的内存,内存会从其它节点上分配。
  • Interleave:使用循环(round-robin)算法在不同节点上分配内存。
 
NUMA 固定
打开 NUMA 拓扑窗口。这个窗口会显示主机的总 CPU、内存、NUMA 节点和虚拟机的虚拟 NUMA 节点。从右面的框中选中虚拟 NUMA 节点,并把它拖到左面框中的主机 NUMA 节点上来固定虚拟 NUMA 节点。

10.2.3. 编辑一个虚拟机池

10.2.3.1. 编辑一个虚拟机池

当虚拟机池被创建后,它的属性可以被改变。除了虚拟机数量增加池里的虚拟机数量所替代外,所有其它属性和创建一个新虚拟机池的属性一样。

注意

在编辑一个虚拟机池时,所做的修改只对新虚拟机有效。已存在的虚拟机不会受到影响。

过程 10.2. 编辑一个虚拟机池

  1. 资源标签页,从结果列表中选一个虚拟机池。
  2. 编辑打开编辑池窗口。
  3. 编辑虚拟机池的属性。
  4. 确定

10.2.3.2. 在虚拟机池中预先启动虚拟机

在默认情况下,虚拟机池中的虚拟机都处于关机状态。当用户向虚拟机池请求一个虚拟机的时候,一个虚拟机会被启动并分配给用户。但是,虚拟机池中的虚拟机也可以被预先启动,这样当用户需要虚拟机的时候,虚拟机池中的虚拟机就会马上分配给用户,这就减少了用户等待分配虚拟机的时间。当一个预先启动的虚拟机被关机后,它会被返回到虚拟机池中,并被恢复到原始的状态。一个池中的预先启动的虚拟机数量不能超过这个池中的虚拟机的数量。
预先启动的虚拟机适用于用户需要马上使用虚拟机,而系统中并没有专门分配给这个用户的虚拟机的情况。只有类型为“自动”的池才能提供预先启动的虚拟机。

过程 10.3. 在虚拟机池中预先启动虚拟机

  1. 使用资源标签页、树形模式或搜索功能来找到并选择虚拟机池。
  2. 编辑打开编辑池窗口。
  3. 预先启动的虚拟机项中输入相应的值。
  4. 进入标签页,确认池类型被设置为自动
  5. 确定
您在虚拟机池中设置了预先启动的虚拟机的数量。这些预先启动的虚拟机可以被马上使用。

10.2.3.3. 为一个虚拟机池添加虚拟机

如果需要,您可以为一个已经存在的虚拟机池添加更多的虚拟机。

过程 10.4. 为一个虚拟机池添加虚拟机

  1. 使用资源页、树形模式或搜索功能来找到并选择虚拟机池。
  2. 编辑打开编辑池窗口。
  3. 增加池里的虚拟机数目项中输入所要添加的虚拟机的数量。
  4. 确定
您为一个虚拟机池添加了更多的虚拟机。

10.2.3.4. 从虚拟机池中分离虚拟机

您可以把虚拟机从虚拟机池中分离。被分离的虚拟机变为独立的虚拟机。

过程 10.5. 从虚拟机池中分离虚拟机

  1. 使用资源标签页、树形模式或搜索功能来找到并选择虚拟机池。
  2. 确认要被分离的虚拟机的状态为 Down。您不能分离正在运行的虚拟机。
    虚拟机标签页列出池中的虚拟机。
  3. 选择一个或多个虚拟机,点分离打开分离虚拟机确认窗口。
  4. 确定把虚拟机从虚拟机池中分离出来。

注意

被分离出来的虚拟机仍然存在于环境中,并可以通过虚拟机资源标签页对它们进行查看和访问。请注意,它们的图标也会被改变,来标识它们是独立的虚拟机。
您把虚拟机从虚拟机池中分离。

10.2.4. 删除一个虚拟机池

您可以从一个数据中心中删除一个虚拟机池。您需要先把虚拟机池中的所有虚拟机删除或分离。从虚拟机池中分离虚拟机将会把它们变为独立的虚拟机。

过程 10.6. 删除一个虚拟机池

  1. 使用资源标签页、树形模式或搜索功能来找到并选择虚拟机池。
  2. 删除打开删除虚拟机池确认窗口。
  3. 确定删除虚拟机池。
您从数据中心中删除了一个虚拟机池。

10.3. 池和权限

10.3.1. 管理一个虚拟机池的系统权限

作为 SuperUser,系统管理员需要管理“管理门户”的每个方面。而其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的用户只有特定数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有特定集群的管理权限。
虚拟机池管理员是一个数据中心中的虚拟机池的系统管理角色。这个角色可以是针对特定虚拟机池的,也可以是针对一个数据中心的,甚至可以针对整个虚拟环境。这可以使不同的用户来管理不同的虚拟资源成为可能。
虚拟机池管理员有权利执行以下操作:
  • 创建、编辑和删除虚拟机池。
  • 为虚拟机池添加或分离虚拟机。

注意

只能对已经存在的用户分配角色和权限。

10.3.2. 虚拟机池管理员角色介绍

池权限角色

下表描述了与虚拟机池管理相关的管理员角色,以及他们所具有的权利。

表 10.5. Red Hat Virtualization 系统管理员角色

角色权利注记
VmPoolAdmin一个虚拟机池的系统管理员角色可以创建、删除和配置一个虚拟机池;添加和删除池用户;在虚拟机上进行基本的操作。
ClusterAdmin集群管理员可以在一个特定的集群中使用、创建、删除和管理所有虚拟机池。

10.3.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 10.7. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

10.3.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 10.8. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

10.4. 信任的计算池

信任的计算池就是基于 Intel Trusted Execution Technology(Intel TXT)的安全集群。信任的集群只允许被 Intel 的 OpenAttestation 验证过的主机(使用一个 White List 数据库来验证主机硬件和软件是否可以信任)。信任的主机和虚拟机可以被用来运行那些需要高安全性的任务。如需了解更多相关信息,请参阅 https://software.intel.com/en-us/articles/intel-trusted-execution-technology-intel-txt-enabling-guide
创建信任的计算池包括以下几个步骤:
  • 配置 Manager 来与 OpenAttestation 服务器进行通讯。
  • 创建一个只运行信任主机的信任集群。
  • 把信任的主机添加到信任集群中。主机需要运行 OpenAttestation 代理,并被 OpenAttestation 服务器验证为可信任的主机。
如需了解更多与安装 OpenAttestation 服务器、在主机上安装 OpenAttestation 代理以及创建 White List 数据库的信息,请参阅 https://github.com/OpenAttestation/OpenAttestation/wiki

10.4.1. 连接 OpenAttestation 服务器到 Manager

在可以创建信任的集群前,Red Hat Virtualization Manager 需要被配置为可以识别 OpenAttestation 服务器。使用 engine-config 添加 OpenAttestation 服务器的 FQDN 或 IP 地址:
# engine-config -s AttestationServer=attestationserver.example.com
如果需要,以下设置也可以被修改:

表 10.6. engine-config 的 OpenAttestation 设置

选项
默认值
描述
AttestationServer
oat-server
OpenAttestation 服务器的 FQDN 或 IP 地址。只有设置这个选项,Manager 才可以和 OpenAttestation 服务器进行通讯。
AttestationPort
8443
OpenAttestation 服务器和 Manager 进行通讯所使用的端口。
AttestationTruststore
TrustStore.jks
用来和 OpenAttestation 服务器进行安全通信的 trust store。
AttestationTruststorePass
password
访问 trust store 使用的密码。
AttestationFirstStageSize
10
用于快速初始化。我们不推荐在没有适当原因的情况下修改这个值。
SecureConnectionWithOATServers
true
启用或禁用和 OpenAttestation 服务器进行安全通讯。
PollUri
AttestationService/resources/PollHosts
访问 OpenAttestation 服务所使用的 URI。

10.4.2. 创建一个信任的集群

信任的集群会和 OpenAttestation 服务器进行通讯来评估主机的安全性。当一个主机被添加到信任的组后,OpenAttestation 服务器会根据一个 White List 数据库来评估这个主机的硬件和软件。虚拟机可以在信任的集群中的信任的主机间进行迁移来实现高可用性功能。

过程 10.9. 创建一个信任的集群

  1. 集群标签页。
  2. 新建
  3. 为集群输入名称
  4. 选中编辑 Virt 服务
  5. 调度策略项中选启用信任的服务选项。
  6. 确定

10.4.3. 添加一个信任的主机

Red Hat Enterprise Linux 主机可以被添加到信任的集群中,它由 OpenAttestation 服务器的 White List 数据库控制。主机需要满足以下条件才可以被 OpenAttestation 服务器信任:
  • 在 BIOS 中启用 Intel TXT。
  • 安装并运行 OpenAttestation 代理。
  • 在主机上运行的软件与 OpenAttestation 服务器的 White List 数据库相匹配。

过程 10.10. 添加一个信任的主机

  1. 选择主机标签页。
  2. 新建
  3. 主机集群下拉列表中选一个信任的集群。
  4. 为主机输入名称
  5. 输入主机的地址
  6. 输入主机的 root 密码
  7. 确定
当主机被加入到信任的集群后,OpenAttestation 服务器就可以对它进行评估。如果主机不被 OpenAttestation 服务器信任,它会成为 Non Operational 状态,并应该从信任的集群中删除。

第 11 章 虚拟磁盘

11.1. 虚拟机存储介绍

Red Hat Virtualization 支持三种存储类型:NFS、iSCSI 和 FCP。
在每种存储类型中都有一个称为存储池管理器(Storage Pool Manager - SPM)的主机来管理主机和存储间的访问。
在默认的情况下,NFS、本地或 POSIX 兼容的数据中心中的 SPM 通过在文件系统上创建一个文件来创建自动精简配置(thin provisioning)格式的虚拟机磁盘。
在 iSCSI 和其他基于块的数据中心中,SPM 会在提供的逻辑单元号(Logical Unit Number - LUN)基础上创建卷组,并使用这些逻辑卷组作为虚拟磁盘。在默认的情况下,块存储上的虚拟磁盘是预分配的。
如果虚拟磁盘是预分配的(preallocated),一个特定大小(以 GB 为单位)的逻辑卷会被创建。它可以被挂载到 Red Hat Enterprise Linux 服务器上,使用 kpartxvgscanvgchangemount 来检查虚拟机的进程或可能出现的问题。
如果虚拟磁盘是自动精简配置的(think provisioned),一个 1 GB 的逻辑卷会被创建。这个逻辑卷会实时地被虚拟机所在的主机监测。当虚拟磁盘的可用空间达到它的阈值时,主机会通知 SPM,SPM 会为这个逻辑卷增加 1 GB 的容量。在逻辑卷的容量被扩展后,主机会继续运行虚拟机。如果虚拟机处于暂停的状态,这就意味着 SPM 没有为虚拟磁盘扩展空间。造成它的原因可能是 SPM 太繁忙而无法处理容量扩展;或者是系统中没有足够的存储空间来为虚拟磁盘进行扩展。
预分配(RAW)格式的虚拟磁盘的写操作速度比自动精简配置 (QCOW2) 格式的虚拟磁盘要快很多,而创建自动精简配置格式的虚拟磁盘比创建预分配格式的虚拟磁盘要快很多。自动精简格式的磁盘适用于不需要大量 IO 操作的虚拟机。而需要进行大量 I/O 写操作的虚拟机则推荐使用预分配格式。特别是如果虚拟机需要在每 4 秒中写超过 1 GB 的数据,则在可能的情况下尽量使用预分配格式磁盘。

11.2. 虚拟磁盘介绍

Red Hat Virtualization 提供 预分配(preallocated)(thick provisioned)和稀疏(sparse)(thin provisioned)存储选项。
  • 预分配(Preallocated)
    一个预分配虚拟磁盘会预先获得所有需要的磁盘空间。例如,为虚拟机创建的一个 20 GB 的逻辑卷需要在创建时获得全部 20 GB 的存储空间。
  • 稀疏
    使用稀疏分配的系统允许管理员定义需要分配的总存储空间,但存储空间只在实际需要使用时才进行分配。
    例如,一个 20 GB 的精简分配逻辑盘在初始创建时只占用 0 GB 的存储空间。当安装操作系统时,它会占用安装的所有文件所需的存储空间,并在增加数据是占用更多的空间(最多可占用 20 GB 存储空间)。
每个虚拟机和模板的磁盘大小在磁盘子标签页中列出。一个磁盘的虚拟大小是虚拟机可以使用的磁盘空间总量,它是在创建或编辑一个磁盘时在大小 (GB) 项中输入的值。一个磁盘的实际大小是当前已分配给虚拟机的磁盘空间。使用预分配格式的磁盘的这两个项的值是相同的;而稀疏格式的磁盘的这两个项的值可能会不相同,这取决于已经被分配了多少磁盘空间。

注意

当创建 Cinder 磁盘时,磁盘的格式和类型是由 Cinder 内部控制的,而不是由 Red Hat Virtualization 管理的。
下表列出了可能的存储类型和格式的组合。

表 11.1. 允许的存储组合

存储格式类型备注
NFS 或 iSCSI/FCPRAW 或 QCOW2稀疏(Sparse)或预分配(Preallocated) 
NFSRAW预分配(Preallocated)一个和虚拟磁盘所定义的容量大小相同的文件。这个文件没有特定的格式。
NFSRAW稀疏一个初始大小接近于 0 的 文件,它没有特定的格式。
NFSQCOW2稀疏一个初始大小接近于 0 的 文件,它的格式为 QCOW2。下一层的格式将是 QCOW2。
SANRAW预分配(Preallocated)一个和虚拟磁盘所定义的容量大小相同的块设备。这个设备没有特定的格式。
SANQCOW2稀疏一个比虚拟磁盘所定义的容量(当前是 1 GB)小很多的块设备,它的格式是 QCOW2。如果需要,它会被分配更多存储空间(当前以 1 GB 为单位增长)。

11.3. 设置“删除后清理”

使用 wipe_after_delete 标识(在管理门户中由删除后清理选择框代表)会在删除虚拟磁盘后使用 0 对它上面的数据进行覆盖。在默认情况下,这个标识会被设置为 false,当磁盘被删除后它上面的数据块空间可以被重新使用,而不会进行特殊的数据清理操作。因为数据块中的数据没有被清为 0,所以原来的数据有可能被恢复。
wipe_after_delete 只对块存储设备有效。在文件存储中(如 NFS),这个选项不会起任何作用,因为文件系统会保证不会存在数据。
为虚拟磁盘设置 wipe_after_delete会进一步增加数据的安全性,如果您的虚拟磁盘中包括敏感信息,推荐使用它。但是,它会消耗更多的系统资源,并需要更长的时间来进行磁盘删除操作。

注意

“删除后清除数据”功能和安全删除功能不同,它不能保证数据被从存储中删除,它只能确保在同一个存储中创建的新磁盘不会显示旧磁盘中的数据。
在设置的过程中可以把 wipe_after_delete 的默认设置改为 true(请参阅安装指南中的 配置 Red Hat Virtualization Manager);或者,使用 Red Hat Virtualization Manager 中的引擎配置工具对它进行修改。重启引擎以使设置改变生效。

过程 11.1. 使用引擎配置工具把 SANWipeAfterDelete 的默认值设为 True

  1. 在引擎配置工具中使用 --set 操作:
    # engine-config --set SANWipeAfterDelete=true
  2. 重启引擎来使新设置有效:
    # systemctl restart ovirt-engine.service
可以通过查看主机中的 /var/log/vdsm/vdsm.log 文件来确认虚拟磁盘已被成功删除并清除了上面的数据。
在数据被成功清除后,日志文件会包括 storage_domain_id/volume_id was zeroed and will be deleted 的内容。例如:
a9cb0625-d5dc-49ab-8ad1-72722e82b0bf/a49351a7-15d8-4932-8d67-512a369f9d61 was zeroed and will be deleted
当删除成功后,日志文件会包括 finished with VG:storage_domain_id LVs: list_of_volume_ids, img: image_id 的内容。例如:
finished with VG:a9cb0625-d5dc-49ab-8ad1-72722e82b0bf LVs: {'a49351a7-15d8-4932-8d67-512a369f9d61': ImgsPar(imgs=['11f8b3be-fa96-4f6a-bb83-14c9b12b6e0d'], parent='00000000-0000-0000-0000-000000000000')}, img: 11f8b3be-fa96-4f6a-bb83-14c9b12b6e0d
如果数据清除没有成功,会生成 zeroing storage_domain_id/volume_id failed. Zero and remove this volume manually 日志信息;如果删除没有成功,会显示 Remove failed for some of VG: storage_domain_id zeroed volumes: list_of_volume_ids

11.4. Red Hat Virtualization 中的可共享磁盘

一些应用程序需要服务器间的存储可以被共享。Red Hat Virtualization 允许您把虚拟机磁盘设为可共享,并把它们附加到虚拟机上。这样,一个虚拟磁盘就可以被多个使用集群的客户机所使用。
共享磁盘并不适用于所有的情况。它们可以在使用集群的数据库服务器,或其它高可用性服务环境中使用。如果把一个可共享的磁盘附加到多个没有使用集群的客户机上时,就可能会造成数据被破坏的问题。
您不能为可共享的磁盘进行快照。那些已经做过快照的虚拟磁盘也不能设置为可共享的磁盘。
您可以在创建磁盘的时候把它设为可共享磁盘,也可以在创建后再配置它。

11.5. Red Hat Virtualization 中的只读磁盘

一些应用程序需要管理员以只读的方式共享一些数据。当使用虚拟机的磁盘标签页为虚拟机创建或编辑磁盘时,选择只读选项。这样,这个磁盘就可以被多个客户端系统读取,但只有管理员对它有写权限。
在虚拟机运行时,您不能改变磁盘的只读状态。

重要

挂载日志式文件系统需要读写访问权限,因此只读选项不适合用于包括这些文件系统(如EXT3EXT4XFS)的虚拟磁盘。

11.6. 虚拟磁盘任务

11.6.1. 创建浮动虚拟磁盘

在创建虚拟磁盘时,您可以创建一个不属于任何虚拟机的虚拟磁盘。在创建后,您可以把它附加到一个虚拟机上;或者如果这个虚拟磁盘是可共享的,您还可以把它附加到多个虚拟机上。
镜像磁盘的创建完全由 Manager 管理,而直接 LUN 磁盘则需要已存在的、由外部准备好的目标设备。Cinder 磁盘需要可以访问通过外部供应商界面添加到 Red Hat Virtualization 环境中的 OpenStack Volume 实例。如需了解更多相关信息,请参阅 第 12.2.4 节 “为存储管理添加一个 OpenStack Volume(Cinder)实例”

过程 11.2. 创建浮动虚拟磁盘

  1. 选择磁盘资源标签页。
  2. 新建
    添加虚拟磁盘

    图 11.1. 添加虚拟磁盘

  3. 选择虚拟磁盘是镜像直接 LUNCinder 磁盘。
  4. 选择虚拟磁盘所需的选项。选项的改变会根据所选的磁盘类型的不同而不同。如需了解更多相关信息,请参阅 第 11.6.2 节 “添加虚拟磁盘窗口中的设置介绍”
  5. 确定

11.6.2. 添加虚拟磁盘窗口中的设置介绍

表 11.2. 新建虚拟机设置:镜像

描述
大小 (GB)
您创建的虚拟磁盘的大小(以 GB 为单位)
别名
虚拟磁盘的别名,最长为 40 个字符。
描述
虚拟磁盘的描述。这个项可以是空,但我们推荐您为这个项输入相应的信息。
接口
在虚拟机上代表这个虚拟磁盘的虚拟接口。VirtIO 接口速度比较快,但需要驱动程序。Red Hat Enterprise Linux 5 和更高的版本中包括了这些驱动程序。Windows 并不包括这些驱动,但可以通过客户端工具程序 ISO 或虚拟软盘进行安装。IDE 设备不需要特殊的驱动程序。
在磁盘连接的所有虚拟机停止运行之后,可更新接口类型。
数据中心
虚拟磁盘所在的数据中心。
存储域
虚拟磁盘被保存的存储域。下拉列表列出了所选数据中心中的所有可用存储域,以及存储域中可用的存储空间。
分配策略
新虚拟磁盘的部署策略。
  • 预分配(Preallocated) 会在创建虚拟磁盘时为它在存储域中分配一个容量大小相等的磁盘空间。它的虚拟大小值和实际大小值是相同的。Preallocated 虚拟磁盘比 thinly provisioned 虚拟磁盘需要更长的时间来创建,但它的读写性能会更好。如果一个虚拟机需要可以满足每 4 秒写多于 1GB 的数据,我们推荐在条件允许的情况下使用预分配磁盘的形式。
  • Thin Provision 会在创建虚拟磁盘时分配 1GB 的存储空间,并设置在扩展磁盘容量时每次可以增加的最大限制。它的虚拟大小的值反映了磁盘的最大容量限制,而实际大小的值是磁盘当前实际分配的磁盘空间。使用 thin provision 格式创建磁盘的时间会被使用预分配格式要快,并允许使用存储过度分配(storage over-commitment)的功能。我们推荐桌面系统使用 thin provision 格式的虚拟磁盘。
Disk Profile
分配给虚拟磁盘的磁盘配置集。磁盘配置集定义了在一个存储域中的虚拟磁盘的最大吞吐级别和输入、输出操作的最大级别。它是基于数据中心中的存储配置集而创建的。
删除后清理
在虚拟磁盘被删除后,删除上面敏感的数据。这可以增强数据的安全性。
可引导
在虚拟磁盘中启用可引导标识
可共享
可以把这个虚拟磁盘同时附加到多个虚拟机上。
直接 LUN 的设置可以在 Targets > LUNsLUNs > Targets 标签页中显示。 Targets > LUNs 页根据所发现的主机为可用的 LUN 进行排序;而 LUNs > Targets 显示了一个单一的 LUN 列表。

表 11.3. 新建虚拟磁盘设置:直接 LUN

描述
别名
虚拟磁盘的别名,最长为 40 个字符。
描述
虚拟磁盘的描述。这个项可以是空,但我们推荐您为这个项输入相应的信息。在默认情况下,LUN ID 的最后 4 位会被插入这个项。
使用 engine-config 命令把 PopulateDirectLUNDiskDescriptionWithLUNId 配置关键字设置为一个适当的值可以改变默认的行为。如果把它设置为 -1,则整个 LUN ID 都会被使用;如果把它设置为 0,这个功能会被忽略;如果把它设置为一个正的整数,则使用 LUN ID 中的相应位数。如需了解更多信息,请参阅 第 18.2.2 节 “engine-config 命令的使用语法”
接口
在虚拟机上代表这个虚拟磁盘的虚拟接口。VirtIO 接口速度比较快,但需要驱动程序。Red Hat Enterprise Linux 5 和更高的版本中包括了这些驱动程序。Windows 并不包括这些驱动,但可以通过客户端工具程序 ISO 或虚拟软盘进行安装。IDE 设备不需要特殊的驱动程序。
在磁盘连接的所有虚拟机停止运行之后,可更新接口类型。
数据中心
虚拟磁盘所在的数据中心。
使用主机
将要挂载 LUN 的主机。您可以选择数据中心中任何一个主机。
存储类型
添加的外部 LUN 类型。您可以选择 iSCSIFibre Channel
发现目标
这个项会在您使用 iSCSI 外部 LUN 并选择了 Targets > LUNs 时被展开。
地址 - 目标服务器的主机名或 IP 地址。
端口 - 连接到目标服务器所使用的端口。默认值是 3260。
用户验证 - iSCSI 服务器所需的用户验证。当您使用 iSCSI 外部 LUN 时,用户验证项会被显示。
CHAP 用户 - 有权限登录到 LUN 上的用户的用户名。这个项在选择了用户验证项后才有效。
CHAP 密码 - 有权限登录到 LUN 上的用户的密码。这个项在选择了用户验证项后才有效。
可引导
在虚拟磁盘中启用可引导标识
可共享
可以把这个虚拟磁盘同时附加到多个虚拟机上。
启用 SCSI Pass-Through
接口设置为 VirtIO-SCSI 时可用。选择这个选项会启用把物理 SCSI 设备透传(passthrough)给虚拟磁盘的功能。启用了 SCSI passthrough 的 VirtIO-SCSI 接口会自动包括 SCSI discard 的支持。如果没有选择这个选项,虚拟磁盘使用仿真的 SCSI 设备。
允许特许的 SCSI I/O
在选择了启用 SCSI Pass-Through 选项后可用。选择这个选项将启用没有过滤的 SCSI Generic I/O(SG_IO)的访问来允许在磁盘上进行特许的 SG_IO 命令。持久行预留(persistent reservations)需要这个设置。
发现目标项中输入相应的信息并点发现来发现目标服务器。您然后可以点登录全部按钮来列出目标服务器上的所有可用的 LUN,选择需要被添加的 LUN。
直接使用 LUN 作为虚拟机的硬盘镜像将会省掉您的虚拟机和它们的数据间的一个抽象层。
在直接使用 LUN 作为一个虚拟机硬盘镜像时需要考虑以下因素:
  • 实时迁移直接 LUN 硬盘镜像的功能不被支持。
  • 直接 LUN 磁盘不包括在虚拟机的导出中。
  • 直接 LUN 磁盘不包括在虚拟机的快照中。
如果在有权限创建创建磁盘的相关数据中心中没有可用的 OpenStack 卷存储域,则 Cinder 的设置表格会被禁用。Cinder 磁盘需要可以访问一个通过外部供应商窗口创建添加到 Red Hat Virtualization 环境中的 OpenStack 卷实例。如需了解更多相关信息,请参阅第 12.2.4 节 “为存储管理添加一个 OpenStack Volume(Cinder)实例”

表 11.4. 新建虚拟磁盘设置:Cinder

描述
大小 (GB)
您创建的虚拟磁盘的大小(以 GB 为单位)
别名
虚拟磁盘的别名,最长为 40 个字符。
描述
虚拟磁盘的描述。这个项可以是空,但我们推荐您为这个项输入相应的信息。
接口
在虚拟机上代表这个虚拟磁盘的虚拟接口。VirtIO 接口速度比较快,但需要驱动程序。Red Hat Enterprise Linux 5 和更高的版本中包括了这些驱动程序。Windows 并不包括这些驱动,但可以通过客户端工具程序 ISO 或虚拟软盘进行安装。IDE 设备不需要特殊的驱动程序。
在磁盘连接的所有虚拟机停止运行之后,可更新接口类型。
数据中心
虚拟磁盘所在的数据中心。
存储域
虚拟磁盘被保存的存储域。下拉列表列出了所选数据中心中的所有可用存储域,以及存储域中可用的存储空间。
卷类型
虚拟磁盘的卷类型。下拉列表列出了全部可用的卷类型。卷类型在 OpenStack Cinder 上管理并配置。
可引导
在虚拟磁盘中启用可引导标识
可共享
可以把这个虚拟磁盘同时附加到多个虚拟机上。

11.6.3. 实时存储迁移介绍

您可以把附加到正在运行的虚拟机上的虚拟磁盘迁移到另外一个存储域中,这被称为实时存储迁移。如果所迁移的磁盘附加到正在运行的虚拟机,会在源存储域中创建被迁移磁盘的镜像链快照,并在目标存储域中复制整个镜像链。因此,您需要保证在源存储域和目标存储域中都有足够的空间来保存这些磁盘镜像链和快照。每次进行实时存储迁移操作时都会创建一个新快照,即使迁移失败。
在进行实时存储迁移时请考虑以下因素:
  • 您可以同时迁移多个磁盘。
  • 同一个虚拟机的多个磁盘可以存在于不同的存储域中,但每个磁盘的镜像链必须位于同一个存储域中。
  • 您可以在同一个数据中心中的任何两个存储域间实时迁移磁盘。
  • 您不能实时迁移直接 LUN 硬盘镜像,也不能实时迁移标记为可共享的磁盘。

11.6.4. 移动一个虚拟磁盘

您可以把一个浮动虚磁盘或一个附加在虚拟机上的磁盘从一个存储域移到另一个存储域中。您可以移动附加在一个正在运行的虚拟机上的虚拟磁盘,这被称为实时存储迁移(live storage migration);或在移动虚拟磁盘前关闭它所在的虚拟机。
在移动一个磁盘时请考虑以下因素:
  • 您可以同时移动多个磁盘。
  • 您可以在同一个数据中心中的任何两个存储域间移动磁盘。
  • 如果虚拟磁盘被附加到一个虚拟机,而这个虚拟机是通过一个模板所创建,并使用了 “thin provisioning storage allocation” 选项时,这个虚拟机所基于的模板必须被复制到和虚拟磁盘所在的同一个存储域中。

过程 11.3. 移动一个虚拟磁盘

  1. 选择磁盘标签页。
  2. 选择一个或多个需要移动的虚拟磁盘。
  3. 移动打开移动磁盘页。
  4. 目标下拉菜单中选择这个虚拟磁盘需要被移到的存储域。
  5. 磁盘配置集列表中为磁盘选择一个配置集。
  6. 确定
虚拟磁盘已移到目标存储域。在移动过程中,状态列会显示 Locked,还会有一个进度条指示移动操作的进度。

11.6.5. 更改磁盘接口类型

用户可以在创建磁盘后更改其磁盘接口类型。这样,您可以将现有的磁盘附加到需要不同磁盘类型的虚拟机。例如,使用 VirtIO 接口的磁盘可以附加到要求 VirtIO-SCSIIDE 接口的虚拟机。这可以为迁移磁盘提供灵活性,满足备份和恢复或者灾难恢复的需要。也可以逐个为虚拟机更新可共享磁盘的磁盘接口。也就是说,使用共享磁盘的每一虚拟机可以使用不同的磁盘类型。
若要更新磁盘接口类型,使用相关磁盘的虚拟机都必须停止。

过程 11.4. 更改磁盘接口类型

  1. 选择虚拟机标签页,然后停止相应的虚拟机。
  2. 磁盘子标签页中,选择磁盘,再点击编辑
  3. 接口列表中,选择新的接口类型,再点击确定
虚拟机随即会将新选择的磁盘接口用于该磁盘。
以下操作演示如何将磁盘附加到要求不同接口类型的其他虚拟机。

过程 11.5. 将磁盘附加到使用不同接口类型的其他虚拟机

  1. 选择虚拟机标签页,然后停止相应的虚拟机。
  2. 选择要从哪个虚拟机分离磁盘。
  3. 磁盘子标签页中,选择磁盘并点击 删除
  4. 虚拟机标签页中,选择将要附加该磁盘的新虚拟机。
  5. 附加
  6. 附加虚拟机磁盘窗口中选择磁盘,再从接口下拉菜单选择适当的接口。
  7. 确定

11.6.6. 复制一个虚拟磁盘

介绍

您可以把一个虚拟磁盘从一个存储域复制到另一个存储域。被复制的磁盘可以被添加到虚拟机上。

过程 11.6. 复制一个虚拟磁盘

  1. 选择磁盘标签项。
  2. 选择需要复制的磁盘。
  3. 复制打开复制磁盘窗口。
  4. 另外,还可以在别名项中输入一个别名。
  5. 使用目标下拉菜单选择这个虚拟磁盘需要被复制到的存储域。
  6. 确定
结果

虚拟磁盘被复制到目标存储域中,在复制过程中它的状态为 Locked

11.6.7. 上传和下载磁盘镜像到存储域

可以从本地机器上传 QEMU 兼容虚拟磁盘镜像到 Red Hat Virtualization 存储域,并附加到虚拟机上。
虚拟磁盘镜像类型必须是 QCOW2 或 Raw。从 QCOW2 磁盘镜像创建的磁盘无法共享,并且 QCOW2 磁盘文件不得有后端文件。
磁盘镜像可以通过 Manager 或 REST API 上传,但仅可通过 REST API 下载。在使用 REST API 时,请通过 IMAGETRANSFERS 服务创建传输,再使用 IMAGETRANSFER 服务指定要上传还是下载文件。
如需详细了解可用于这些服务的所有方法,请参阅 REST API 指南中的 IMAGETRANSFERSIMAGETRANSFER

先决条件:

  • 在运行 engine-setup 时,您必须配置镜像 I/O 代理。如需了解更多信息,请参阅安装指南中的配置 Red Hat Virtualization Manager
  • 您必须在用于访问管理门户的 Web 浏览器中导入必要的证书认证机构。
  • 需要 Internet Explorer 10、Firefox 35 或 Chrome 13 或更高版本才能执行此上传过程。以前的浏览器版本不支持必要的 HTML5 API。

注意

若要导入证书认证机构,请浏览到 https://engine_address/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA,再选择所有信任设置。请参阅在 FirefoxInternet ExplorerGoogle Chrome 中安装证书认证机构的相关说明。

过程 11.7. 上传磁盘镜像到存储域

  1. 打开“上传镜像”屏幕。
    • 磁盘标签页中,从上传下拉菜单选择开始
    • 另外,也可从存储标签页选择存储域,再选择磁盘子标签页,然后选择从上传下拉菜单选择开始
    上传镜像屏幕

    图 11.2. 上传镜像屏幕

  2. 上传镜像屏幕中,点击选择文件,再选择本地操盘上的镜像。这时会显示选定文件的信息。
  3. 填写磁盘选项字段。如需相关字段的说明,请参阅第 11.6.2 节 “添加虚拟磁盘窗口中的设置介绍”
  4. 确定
这时会出现显示上传状态的进度条。您也可以从上传下拉菜单暂停、取消或恢复上传。

11.6.8. 从导入的存储域中导入一个磁盘镜像

使用详情框中的磁盘导入标签页从一个导入的存储域中导入浮动虚拟磁盘。

注意

只有与 QEMU 兼容的磁盘才可以导入到 Manager。

过程 11.8. 导入一个磁盘镜像

  1. 选择已被导入到数据中心中的一个存储域。
  2. 在详情框中,点磁盘导入
  3. 选择一个或多个磁盘,点导入打开导入磁盘窗口。
  4. 为每个磁盘选择相关的磁盘配置集
  5. 确定导入所选的磁盘。

11.6.9. 从导入的存储域中导入一个未注册的磁盘镜像

使用详情框中的磁盘导入标签页从一个存储域中导入浮动虚拟磁盘。在 Red Hat Virtualization 环境外创建的浮动磁盘没有在 Manager 中注册。对存储域进行扫描来找出要导入的、没有注册的浮动磁盘。

注意

只有与 QEMU 兼容的磁盘才可以导入到 Manager。

过程 11.9. 导入一个磁盘镜像

  1. 选择已被导入到数据中心中的一个存储域。
  2. 在存储域上点鼠标右键,选扫描磁盘来让 Manager 找出没有注册的磁盘。
  3. 在详情框中,点磁盘导入
  4. 选择一个或多个磁盘,点导入打开导入磁盘窗口。
  5. 为每个磁盘选择相关的磁盘配置集
  6. 确定导入所选的磁盘。

11.6.10. 从 OpenStack 镜像服务中导入一个虚拟机磁盘镜像

介绍

当一个 OpenStack 镜像服务作为一个“外部供应商”被添加到 Red Hat Virtualization Manager 中后,这个 OpenStack 镜像服务所管理的虚拟镜像就可以被导入到 Manager 中。

  1. 存储标签页,选择 OpenStack 镜像服务域。
  2. 镜像标签页中选择需要被导入的镜像。
  3. 导入打开导入镜像窗口。
  4. 使用数据中心下拉菜单选择虚拟磁盘镜像要导入的数据中心。
  5. 使用域名下拉菜单选择虚拟磁盘镜像要导入的存储域。
  6. 另外,还可以使用配额菜单来为虚拟磁盘镜像设置一个配额。
  7. 确定导入虚拟磁盘镜像。
结果

镜像作为浮动虚拟磁盘被导入,并在磁盘标签页中被显示。它可以被附加到虚拟机上。

11.6.11. 把虚拟磁盘导出到 OpenStack Image Service

介绍

如果 OpenStack Image Service 已经被作为外部“供应商”添加到 Manager 中,虚拟磁盘可以导出到这个镜像服务中。

  1. 选择磁盘标签页。
  2. 选择需要导出的磁盘。
  3. 导出打开导出镜像窗口。
  4. 使用域名菜单选择磁盘要被输出到的 OpenStack 镜像服务。
  5. 如果需要设置虚拟磁盘配额,使用配额菜单来为磁盘镜像设置一个配额。
  6. 确定
结果

虚拟磁盘导出到指定的 OpenStack Image Service 中,并作为虚拟磁盘镜像进行管理。

重要

虚拟磁盘只有在不存在多个卷、不是精简配置并且没有任何快照的情况下才能被导出。

11.6.12. 回收虚拟机磁盘空间

使用精简配置的虚拟机磁盘不会在从中删除了文件后自动收缩。例如,如果实际磁盘大小为 100GB,并且您删除了 50GB 文件,分配的磁盘大小将保留为 100GB,剩余的 50GB 不会退还给主机,因此无法供其他虚拟机使用。可以通过对虚拟机磁盘执行 sparsify 操作,由主机回收这一未使用的磁盘空间。这样,可用空间就可从磁盘镜像转移到主机。
建议您先执行这一操作,然后再克隆虚拟机,基于虚拟机创建模板,或清理存储域的磁盘空间。

限制

  • NFS 存储域必须使用 NFS v4.2 或更高版本。
  • 您无法对使用直接 LUN 或 Cinder 的磁盘进行 sparsify 操作。
  • 您无法对使用了预置分配策略的磁盘进行 sparsify 操作。如果要从模板创建虚拟机,您必须在存储分配 字段中选择 Thin。或者,如果选择克隆,请确保模板基于精简配置的虚拟机。
  • 您只能对活跃的快照进行 sparsify 操作。

过程 11.10. 对磁盘进行 sparsify 操作

  1. 点击虚拟机 标签页,再选择虚拟机。确保其状态显示为 Down。如果虚拟机处于运行状态,您必须将它关闭后再继续操作。
  2. 选择详情面板中的磁盘标签页。确保其状态显示为 OK
  3. 选择 Sparsify 按钮。这时会显示 Sparsify 磁盘 窗口,要求您确认对选定磁盘执行 sparsify 操作。
  4. 确定
sparsify 操作执行过程中,窗口底部的事件 标签页中会出现 Started to sparsify 事件,磁盘的状态也会显示为 Locked。当操作完成时,事件标签页中会出现 Sparsified successfully 事件,磁盘的状态也会显示为 OK。未使用的磁盘空间将退还给主机,并可供其他虚拟机使用。

注意

您可以并行对多个虚拟机磁盘进行 sparsify 操作。

11.7. 虚拟磁盘和权限

11.7.1. 管理一个虚拟磁盘的系统权限

作为 SuperUser,系统管理员需要管理“管理门户”的每个方面。而其它更具体的管理角色,可以分配给其他用户。这些有一定限制的管理员角色可以有效地把相关管理员的权限限制在与他们相关的资源操作中。例如,具有 DataCenterAdmin 角色的用户只有特定数据中心的管理权限;一个具有 ClusterAdmin 角色的用户只有特定集群的管理权限。
Red Hat Virtualization Manager 提供了两个默认的虚拟磁盘用户角色,而没有提供默认的虚拟磁盘管理员角色。其中的一个用户角色 DiskCreator 可以通过用户门户对虚拟磁盘进行管理。这个角色可以应用到特定的虚拟机、一个数据中心、一个特定的存储域或整个虚拟环境。这可以使不同的用户来管理不同的虚拟资源成为可能。
虚拟磁盘创建者有权利进行以下操作:
  • 创建、编辑和删除和一个虚拟机或其它资源相关联的虚拟磁盘。
  • 为虚拟磁盘编辑用户权限。

注意

只能对已经存在的用户分配角色和权限。

11.7.2. 虚拟磁盘用户角色介绍

虚拟磁盘用户权限角色

下表介绍了在用户门户中使用和管理虚拟磁盘所需的用户角色和权利。

表 11.5. Red Hat Virtualization 系统管理员角色

角色权利注记
DiskOperator虚拟磁盘用户。可以使用、创建和编辑虚拟磁盘,并可以继承这个虚拟磁盘所附加在的虚拟机的使用权限。
DiskCreator可以在被分配的集群或数据中心中创建、编辑、管理和删除虚拟磁盘。这个角色应用于整个环境而不是一个特定的磁盘,使用配置窗口来为用户分配这个角色。另外,还可以把这个角色应用到特定的数据中心、集群或存储域中。

11.7.3. 为资源分配一个管理员或用户

在为资源分配管理员或其它用户角色后,用户将可以访问或管理这个资源。

过程 11.11. 为资源分配一个用户角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 添加
  4. 搜索栏中输入用户名后点执行。在搜索结果中选择相应的用户。
  5. 要分配的角色:下拉列表中选择需要的角色。
  6. 确定
您为用户分配了一个角色。这个用户继承了角色在这个资源中应该具有的所有权限。

11.7.4. 从一个资源中删除一个管理员或用户角色

当把一个管理员或用户角色从一个资源中删除后,用户将不再具有原来所继承的资源权限。

过程 11.12. 从一个资源中删除一个角色

  1. 使用资源标签页、树形模式或搜索功能来找到一个资源并选择它。
  2. 点详情框中的权限标签页列出这个资源已有的用户、用户角色以及用户继承的权限。
  3. 选择您要从该资源中删除的用户。
  4. 删除打开删除权限窗口来确认权限删除操作。
  5. 确定
您从资源中删除了用户的角色,以及与它相关的权限。

第 12 章 外部供应商

12.1. Red Hat Virtualization 中的外部供应商介绍

除了 Red Hat Virtualization Manager 本身管理的资源外,Red Hat Virtualization 还可以使用外部系统所管理的资源。提供这些外部资源的供应商(称为外部供应商)可以提供如虚拟主机、虚拟机镜像和网络等资源。
Red Hat Virtualization 当前支持以下外部供应商:
用于主机配置的 Red Hat Satellite
Satellite 是用来管理物理和虚拟主机的一个工具。在 Red Hat Virtualization 环境中,Satellite 所管理的主机可以作为虚拟主机添加到 Red Hat Virtualization Manager 中,并被它使用。在 Satellite 服务器被添加到 Manager 后,您可以把 Satellite 所管理的主机添加到您的虚拟环境中(在添加新主机时搜索 Satellite 实例中有效的主机)。如需了解与安装 Red Hat Satellite 以及使用 Red Hat Satellite 管理主机的信息,前参阅安装指南主机配置指南
OpenStack 镜像服务(OpenStack Image Service (Glance))
OpenStack Image Service 提供了一组虚拟机镜像资源。在 Red Hat Virtualization 环境中,这些镜像可以导入到 Red Hat Virtualization Manager 中,用作浮动磁盘或附加到虚拟机上并转换为模板。在将 OpenStack Image Service 添加到 Manager 后,它会显示为没有附加到任何数据中心的存储域。Red Hat Virtualization 环境中的虚拟磁盘也可以作为虚拟磁盘镜像导出到 OpenStack Image Service。
提供网络的 OpenStack Networking(Neutron)
OpenStack Networking提供了软件定义的网络。在 Red Hat Virtualization 环境中,OpenStack Networking 所提供的网络可以被导入到 Red Hat Virtualization Manager 中,用来处理网络通信并可以创建负载的网络拓扑结构。在 OpenStack Networking 被添加到 Manager 后,您可以把 OpenStack Networking 所提供的网络手动导入到您的虚拟环境中。
使用 OpenStack Volume (Cinder) 作为存储管理
OpenStack Volume 提高了对虚拟硬盘的持久行块存储管理的能力。OpenStack Cinder 卷由 Ceph Storage 提高。在 Red Hat Virtualization 中,可以在 OpenStack Volume 存储上创建磁盘,并把它们位为浮动磁盘或附加到虚拟机。在把 OpenStack Volume 添加到 Manager 后,就可以在 OpenStack Volume 所提供的存储上创建磁盘。
使用 VMware 提供虚拟机
在 VMware 中创建的虚拟机可以通过 V2V(virt-v2v)进行转化,然后输入到 Red Hat Virtualization 环境中。当把一个 VMware 供应商加入到 Manager 后,就可以导入它所提供的虚拟机。作为导入操作的一部分,V2V 转化操作会在一个代理主机上进行。
用于网络配置的外部网络供应商
任何实现了 OpenStack Neutron REST API 的外部软件定网络供应商都被支持。与 OpenStack Networking(Neutron)不同,Neutron 代理不是作为主机上的虚拟接口驱动而使用的。虚拟接口驱动需要由外部网络供应商来实现。
为了在您的 Red Hat Virtualization 环境中使用外部供应商所提供的资源,您需要先把外部供应商添加到您的虚拟化环境中。

12.2. 添加外部供应商

12.2.1. 为主机配置添加 Red Hat Satellite 实例

将用于主机部署的 Satellite 实例添加到 Red Hat Virtualization Manager。Red Hat Virtualization 4.1 可与 Red Hat Satellite 6.1 一起使用。

过程 12.1. 为主机配置添加 Satellite 实例

  1. 在树型框中选择外部提供商
  2. 添加打开添加服务商窗口。
    The Add Provider Window

    图 12.1. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选 Foreman/Satellite
  5. 供应商 URL 项中输入 Satellite 实例所在机器的 URL 或全称域名(FQDN)。您不需要指定端口号。

    重要

    不能使用 IP 地址来添加 Satellite 实例。
  6. 为 Satellite 实例输入用户名密码。您在这里必须使用和登录到 Satellite provisioning 门户相同的用户名和密码。
  7. 测试用户身份验证信息:
    1. 测试来测试您所使用的验证信息是否有效。
    2. 如果 Satellite 实例使用 SSL导入供应商证书窗口会出现。点确定导入 Foreman 或 Satellite 实例提供的证书。

      重要

      在导入 Satellite 所提供的证书后,Manager 才可以和它进行通信。
  8. 确定
您为 Red Hat Virtualization Manager 添加了 Satellite 实例,并可以使用它们所提供的主机。

12.2.2. 为镜像管理添加一个 OpenStack Image(Glance)实例

为 Red Hat Virtualization Manager 添加一个 OpenStack Image(Glance)镜像服务。

过程 12.2. 为镜像管理添加一个 OpenStack Image(Glance)实例

  1. 在树型框中选择外部提供商
  2. 添加打开添加服务商窗口。
    The Add Provider Window

    图 12.2. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选 OpenStack Image
  5. 供应商 URL 项中输入 OpenStack Image 实例所在机器的 URL 或全称域名(FQDN)。
  6. 另外,可以选择需要验证选项后输入 OpenStack Image 实例的用户名密码租户名验证 URL。您必须使用 OpenStack Image 用户在 Keystone 中注册的用户名、密码 OpenStack Image 实例所属的租户,以及 Keystone 服务器的 URL 和端口。
  7. 测试用户身份验证信息:
    1. 测试来测试您所使用的验证信息是否有效。
    2. 如果 OpenStack Image 实例使用 SSL导入供应商证书窗口会出现。点确定导入 OpenStack Image 实例提供的证书。

      重要

      在导入 OpenStack Image 实例所提供的证书后,Manager 才可以和它进行通信。
  8. 确定
您为 Red Hat Virtualization Manager 添加了 OpenStack Image 实例,并可以使用它所提供的镜像。

12.2.3. 添加 OpenStack 网络服务(Neutron)来为系统提供网络

为 Red Hat Virtualization Manager 添加一个 OpenStack 网络服务(Neutron)。如需了解添加实现了 OpenStack Neutron REST API 功能的第三方网络供应商的信息,请参阅 第 12.2.6 节 “添加一个外部网络供应商”

重要

Red Hat Virtualization 支持将 Red Hat OpenStack Platform 8、9 和 10 用作外部网络供应商。

过程 12.3. 添加 OpenStack 网络服务(Neutron)来为系统提供网络

  1. 在树型框中选择外部提供商
  2. 添加打开添加服务商窗口。
    The Add Provider Window

    图 12.3. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选 OpenStack Networking
  5. 网络插件项中选 Open vSwitch
  6. 供应商 URL 文本字段中,输入安装了 OpenStack Networking 实例的计算机的 URL 或完全限定域名,后面加上其端口号。只读复选框默认为选中。这可防止用户修改 OpenStack Networking 实例。

    重要

    必须将只读复选框保留为选中,您的设置才会受到红帽支持。
  7. 另外,可以选择需要验证选项后输入 OpenStack Networking 实例的用户名密码租户名验证 URL。您必须使用 OpenStack Networking 用户在 Keystone 中注册的用户名、密码 OpenStack Networking 实例所属的租户,以及 Keystone 服务器的 URL 和端口。
  8. 测试用户身份验证信息:
    1. 测试来测试您所使用的验证信息是否有效。
    2. 如果 OpenStack Networking 实例使用 SSL导入供应商证书窗口将会打开;点击确定,以导入 OpenStack Networking 实例提供的证书,从而确保 Manager 能够与该实例通信。

    警告

    以下步骤仅作为技术预览提供。Red Hat Virtualization 仅支持预配置的 Neutron 主机。
  9. 代理配置标签页。
    The Agent Configuration Tab

    图 12.4. 代理配置标签页

  10. 接口映射项中输入Open vSwitch 代理的接口映射列表(以逗号分隔)。
  11. Broker 类型列表中选择 OpenStack Networking 实例使用的消息 broker 类型。
  12. 主机项中输入消息 broker 所在服务器所的 URL 或全称域名(FQDN)。
  13. 输入用来连接到消息 broker 的端口。它的默认值是 5762(消息 broker 不使用 SSL)或 5761(消息 broker 使用 SSL)。
  14. 输入在消息 broker 中注册的 OpenStack Networking 用户的用户名密码
  15. 确定
您为 Red Hat Virtualization Manager 添加了一个 OpenStack Networking 实例。在可以使用它所提供的网络前,您需要把网络导入到 Manager。详情请参阅 第 6.3.1 节 “从外部供应商(External Provider)上导入网络”

12.2.4. 为存储管理添加一个 OpenStack Volume(Cinder)实例

为 Red Hat Virtualization Manager 的存储管理添加一个 OpenStack Volume(Cinder)实例。OpenStack Cinder 卷由 Ceph Storage 设置。

过程 12.4. 为存储管理添加一个 OpenStack Volume(Cinder)实例

  1. 在树型框中选择外部提供商
  2. 添加打开添加服务商窗口。
    The Add Provider Window

    图 12.5. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选 OpenStack Volume
  5. 选择 OpenStack Volume 存储卷要被添加到的数据中心
  6. 供应商 URL 项中输入 OpenStack Volume 所在机器的 URL 或全称域名(FQDN)以及端口号。
  7. 另外,可以选择需要验证选项后输入 OpenStack Volume 实例的用户名密码租户名验证 URL。您必须使用 OpenStack Volume 用户在 Keystone 中注册的用户名、密码、OpenStack Volume 实例所属的租户,以及 Keystone 服务器的 URL、端口和 API 版本。
  8. 测试来测试您所使用的验证信息是否有效。
  9. 确定
  10. 如果启用了 Ceph 验证(cephx),还需要进行以下步骤。cephx 协议在默认情况下被启用。
    1. 在 Ceph 服务器上,使用 ceph auth get-or-create 命令创建一个新的安全密钥。如需了解更多与 cephx 相关的信息,请参阅 Cephx Config Reference 。如需了解为新用户创建密钥的信息,请参阅 Managing Users。如果 client.cinder 用户已有密钥,则使用同样的命令来获得它。
    2. 在管理门户中,从供应商列表中选新创建的 Cinder 外部供应商。
    3. 验证密钥子标签页。
    4. 新建
    5. 项中输入安全密钥。
    6. 复制自动产生的 UUID,或输入一个已存在的 UUID。
    7. 在 Cinder 服务器上,把前一步中的 UUID 和 cinder 用户添加到 /etc/cinder/cinder.conf
      rbd_secret_uuid = UUID
      rbd_user = cinder
您已把 OpenStack Volume 实例添加到 Red Hat Virtualization Manager,并可以使用它所提供的存储卷。如需了解更多与创建 OpenStack Volume(Cinder)磁盘相关的信息,请参阅 第 11.6.1 节 “创建浮动虚拟磁盘”

12.2.5. 添加 VMware 实例作为一个虚拟机供应商

添加一个 VMware vCenter 实例来从 VMware 为 Red Hat Virtualization Manager 导入虚拟机。
Red Hat Virtualization 利用 V2V 将 VMware 虚拟机转换为正确的格式,然后再导入它们。virt-v2v 软件包必须安装到至少一台主机上。Red Hat Virtualization Hosts(RHVH)默认带有 virt-v2v 软件包,而如果是 Red Hat Enterprise Linux 主机上,则需要额外安装这个软件。Red Hat Enterprise Linux 主机必须是 Red Hat Enterprise Linux 7.2 或更新版本。

过程 12.5. 添加 VMware vCenter 实例作为一个虚拟机供应商

  1. 在树型框中选择外部提供商
  2. 添加打开添加服务商窗口。
    The Add Provider Window

    图 12.6. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选 VMware
  5. 选择 VMware 虚拟机要被导入的数据中心,或在进行单独导入操作时(使用虚拟机标签页中的导入功能)选择任何数据中心
  6. vCenter 项中输入 VMware vCenter 实例的 IP 地址或完全限定域名。
  7. ESXi 项中输入一个主机的 IP 地址或完全限定域名。虚拟机将从这个主机中导入。
  8. 数据中心项中输入指定的 ESXi 主机所在的数据中心的名称。
  9. 如果您交换了 ESXi 主机和 Manager 之间的 SSL 证书,则保留验证服务器的 SSL 证书的勾选状态,以便验证 ESXi 主机的证书。如果未交换,则取消勾选该选项。
  10. 在数据中心中选择一个安装了 virt-v2v 的主机作为虚拟机导入操作的代理主机。这个主机需要可以连接到 VMware vCenter 外部供应商的网络。如果您在以前选择了任何数据中心,在这里将无法选择主机,而只能在进行独立导入操作时指定主机(使用虚拟机标签页中的导入功能)。
  11. 为 VMware vCenter 实例输入用户名密码。这个用户必须可以访问 VMware 数据中心,以及虚拟机所在的 ESXi 主机。
  12. 测试用户身份验证信息:
    1. 测试来测试您所使用的验证信息是否有效。
    2. 如果 VMware vCenter 实例使用 SSL导入供应商证书窗口会出现。点确定导入 VMware vCenter 实例提供的证书。

      重要

      在导入 VMware vCenter 实例所提供的证书后,Manager 才可以和它进行通信。
  13. 确定
您已为 Red Hat Virtualization Manager 添加了 VMware vCenter 实例,并可以导入它所提供的虚拟机。如需了解更多相关信息,请参阅虚拟机管理指南中的从 VMware 供应商中导入一个虚拟机

12.2.6. 添加一个外部网络供应商

任何实现 OpenStack Neutron REST API 功能的网络供应商都可以被添加到 Red Hat Virtualization。虚拟接口的驱动需要由外部网络供应商提供。相关信息,请参阅 https://github.com/mmirecki/ovirt-provider-mockhttps://github.com/mmirecki/ovirt-provider-mock/blob/master/docs/driver_instalation

过程 12.6. 为网络配置提供外部网络供应商

  1. 在树型框中选择外部提供商
  2. 添加
    The Add Provider Window

    图 12.7. 添加服务商窗口

  3. 输入名称描述
  4. 类型列表中选外部网络供应商
  5. 供应商 URL 项中输入外部网络供应商所在机器的 URL 或全称域名(FQDN),以及它的端口号。在默认情况下,只读选项会被选择,这可以防止用户对外部网络供应商进行修改。

    重要

    红帽只支持只读选项被选择的情况。
  6. 另外,可以选择需要验证,并输入外部网络供应商的用户名密码Tenant 名验证 URL
  7. 测试用户身份验证信息:
    1. 测试来测试您所提供的验证信息是否有效。
    2. 如果外部网络供应商使用 SSL导入供应商证书窗口会出现。点确定导入外部网络供应商提供的证书,从而使 Manager 可以和实例进行通讯。
您为 Red Hat Virtualization Manager 添加了一个外部网络供应商。在可以使用它所提供的网络前,您需要在主机上安装虚拟接口驱动并导入网络。如需了解与导入网络相关的信息,请参阅 第 6.3.1 节 “从外部供应商(External Provider)上导入网络”

12.2.7. 添加供应商的常规设置介绍

添加供应商窗口中的常规标签页中设置供应商的基本信息。

表 12.1. 添加供应商:常规设置

设置
解释
名称
在 Manager 中代表这个供应商的名称。
描述
供应商的描述信息。
类型
外部供应商的类型。选择不同的供应商类型会使下面的设置有所不同。
Foreman/Satellite
  • 供应商 URL:运行 Satellite 实例的机器的 URL 或全称域名(FQDN)。您不需要在 URL 或 FQDN 后面加端口号。
  • 要求验证:指定是否需要验证供应商。当选择 Foreman/Satellite 做为供应商类型时,必须要进行验证。
  • 用户名:连接到 Satellite 的用户名。这个用户名必须和登录到 Satellite 上的 provisioning portal 的用户名相同。在默认的情况下,这个用户名为 admin
  • 密码:以上用户验证所使用的密码。它必须和登录到 Satellite 实例上的 provisioning 门户的密码相同。
OpenStack 镜像
  • 供应商 URL:OpenStack 镜像服务所在的机器的 URL 或全称域名(FQDN)。您需要在它的后面加端口号。默认的端口号是 9292。
  • 要求验证:指定是否在访问 OpenStack Image 服务的时候需要验证。
  • 用户名:连接到 OpenStack 镜像服务的用户的用户名。它必须是这个 OpenStack Image 服务在 Keystone 中注册的用户。默认的用户名是 glance
  • 密码: 以上用户验证所使用的密码。它必须是这个 OpenStack Image 服务在 Keystone 中注册的用户的密码。
  • Tenant Name:OpenStack Image 服务所在的 tenant 的名称。它的默认值是 services
  • 验证 URL:用于验证 OpenStack Image 服务的 Keystone 服务器的 URL。
OpenStack Networking
  • 网络插件:用于连接到 OpenStack Networking 服务器的插件。Open vSwitch 是唯一的选项,并在默认情况下被选择。
  • 供应商 URL:OpenStack 网络服务所在的机器的 URL 或全称域名(FQDN)。您需要在它的后面加端口号。默认的端口号是 9696。
  • 只读:指定 OpenStack Networking 实例是否可以通过管理门户进行修改。
  • 要求验证:指定是否在访问 OpenStack Networking 时需要进行验证。
  • 用户名:连接到 OpenStack Networking 服务的用户的用户名。它必须是这个 OpenStack Networking 服务在 Keystone 实例( OpenStack Networking 需要是它的一个成员)中注册的用户。默认的用户名是 neutron
  • 密码: 以上用户验证所使用的密码。它必须是这个 OpenStack 网络服务在 Keystone 中注册的用户的密码。
  • Tenant Name:OpenStack 网络服务所在的 tenant 的名称。它的默认值是 services
  • 验证 URL:用于验证 OpenStack Networking 实例的 Keystone 服务器的 URL 和端口。
OpenStack Volume
  • 数据中心:OpenStack Volume 存储卷要被附加到的数据中心。
  • 供应商 URL:OpenStack Volume 实例所在的机器的 URL 或全称域名(FQDN)。您需要在它的后面加端口号。默认的端口号是 8776。
  • 要求验证:指定是否在访问 OpenStack Volume 服务时需要进行验证。
  • 用户名:连接到 OpenStack Volume 服务的用户的用户名。它必须是这个 OpenStack Volume 服务在 Keystone 实例(OpenStack Volume 需要是它的一个成员)中注册的用户。默认的用户名是 cinder
  • 密码: 以上用户验证所使用的密码。它必须是这个 OpenStack Volume 在 Keystone 实例(OpenStack Volume 需要是它的一个成员)中注册的用户的密码。
  • Tenant Name:OpenStack Volume 实例所在租户(tenant)的名称。它的默认值是 services
  • 验证 URL:用于验证 OpenStack Volume 实例的 Keystone 服务器的 URL 和端口。
VMware
  • 数据中心:指定 VMware 虚拟机要被导入的数据中心,或在进行单独导入操作时(使用虚拟机标签页中的导入功能)选择任何数据中心
  • vCenter:VMware vCenter 实例的 IP 地址或完全限定域名。
  • ESXi:包括要导入虚拟机的主机的 IP 地址或完全限定域名。
  • 数据中心:指定的 ESXi 主机所在的数据中心的名称。
  • 集群:指定 ESXi 主机所在的集群的名称。
  • 验证服务器的 SSL 证书:指定是否要在连接时验证 ESXi 主机的证书。
  • 代理主机:在数据中心中选择一个安装了 virt-v2v 的主机作为虚拟机导入操作的主机。这个主机需要可以连接到 VMware vCenter 外部供应商的网络。如果您在以前选择了任何数据中心,在这里将无法选择主机,而只能在进行独立导入操作时指定主机(使用虚拟机标签页中的导入功能)。
  • 用户名:用来连接到 VMware vCenter 实例的用户名。这个用户需要可以访问 VMware 数据中心,以及虚拟机所在的 ESXi 主机。
  • 密码:以上用户在验证时所使用的密码。
外部网络供应商
  • 供应商 URL:外部网络供应商所在机器的 URL 或全称域名(FQDN)。您需要在它的后面加端口号。默认的端口号是 9696。
  • 只读:指定外部网络供应商是否可以通过管理门户进行修改。
  • 要求验证:指定是否在访问外部网络供应商时需要进行用户身份验证。
  • Username:连接到外部网络供应商的用户名。
  • 密码:以上用户在验证时所使用的密码。
  • 验证 URL:用于外部网络供应商验证的验证服务器的 URL 和端口。
测试
测试用户所提供的验证信息。这个按钮对所有类型的供应商都有效。

12.2.8. 添加供应商代理配置中的设置介绍

添加供应商窗口中的代理配置标签页可以被用来注册与网络插件相关的信息。这个标签页只对类型为 OpenStack 网络的供应商有效.

表 12.2. 添加服务商:常规设置

设置
介绍
接口映射
一个以逗号分隔的端口映射列表,它的格式为 label:interface
Broker 类型
OpenStack Networking 实例使用的消息 broker 的类型。选择 RabbitMQQpid
主机
安装消息 broker 的机器的 URL 或全称域名(FQDN)。
端口
和以上主机连接的远端端口。它的默认端口是 5762(没有使用 SSL),或 5761(使用 SSL)。
用户名
用来在以上的消息 broker 上验证 OpenStack Networking 实例的用户名。在默认情况下,这个用户名是 neutron
密码
以上用户名的密码。

12.3. 编辑外部供应商

12.3.1. 编辑一个外部供应商

过程 12.7. 编辑一个外部供应商

  1. 在树型框中选择外部提供商
  2. 选择要编辑的外部供应商。
  3. 编辑按钮打开编辑供应商窗口。
  4. 根据您的情况修改相应的值。
  5. 确定

12.4. 删除外部供应商

12.4.1. 删除一个外部供应商

过程 12.8. 删除一个外部供应商

  1. 在树型框中选择外部提供商
  2. 选择要被删除的外部服务商。
  3. 删除
  4. 删除服务商窗口中点确定来确认删除这个供应商。

部分 III. 管理环境

第 13 章 备份和迁移

13.1. 备份和恢复 Red Hat Virtualization Manager

13.1.1. 备份 Red Hat Virtualization Manager

使用 engine-backup 工具程序来定期备份 Red Hat Virtualization Manager。它会把引擎数据库和配置文件备份到一个单独的文件中,而不会中断 ovirt-engine 服务。

13.1.2. engine-backup 命令的语法

engine-backup 有两个基本模式:
# engine-backup --mode=backup
# engine-backup --mode=restore
在这两种模式中都可以使用一组参数来进一步进行设置,您可以为引擎数据库指定备份的范围以及不同的凭证。运行 engine-backup --help 命令,可以获取参数及其功能的完整列表。

基本选项

--mode
指定这个命令是要进行备份操作还是进行恢复操作。它们的参数分别是 backuprestore。这个参数是必须的。
--file
在备份模式中,指定备份要被保持到的路径和文件名;在恢复模式中,指定备份文件的路径和文件名。这个参赛在备份和恢复模式中都是必须的。
--log
在备份或恢复操作中的日志文件的路径和文件名。这个参数在备份模式和恢复模式中都是必须的。
--scope
指定备份或恢复操着的范围。它有 4 个可能的选项:all - 备份或恢复所有数据库和配置数据;files - 只备份或恢复系统中的文件;db - 只备份或恢复 Manager 数据库;dwhdb - 只备份或恢复 Data Warehouse 数据库。默认设置是 all
在同一个 engine-backup 命令中可以多次指定 --scope 参数。

Manager 数据库选项

以下选项只在 engine-backup 命令的 restore 模式中使用。下面介绍的选项语法适用于恢复 Manager 数据库,但在恢复 Data Warehouse 数据库时也可以使用相同的选项。如需 Data Warehouse 选项语法,请参见 engine-backup --help
--provision-db
创建 PostgreSQL 数据库,用于恢复 Manager 数据库备份。在远程主机或尚未配置有 PostgreSQL 数据库的全新安装中恢复备份时,这是必需的参数。
--change-db-credentials
允许您指定用于恢复 Manager 数据库的其他凭证,而不使用备份本身中存储的凭证。请参见 engine-backup --help,了解此参数需要的其他参数。
--restore-permissions--no-restore-permissions
恢复(或不恢复)数据库用户的权限。在恢复备份时,需要其中一个参数。

注意

如果备份中包含额外数据库用户的授权信息,使用 --restore-permissions--provision-db(或 --provision-dwh-db)选项将创建具有随机密码的额外用户。如果这些额外用户需要访问恢复的系统,您必须手动更改其密码。请参阅https://access.redhat.com/articles/2686731

13.1.3. 使用 engine-backup 命令创建一个备份

使用 engine-backup 命令为 Red Hat Virtualization Manager 创建一个备份的操作可以在 Manager 处于活跃状态时进行。把以下选项之一附加到 --scope 参数后面来指定要进行什么备份:
  • all:对 Manager 上的所有数据库和配置文件进行一个完整的备份
  • files:只备份系统中的文件
  • db:只备份 Manager 数据库
  • dwhdb:只备份 Data Warehouse 数据库

重要

如果需要使用备份来恢复一个全新的 Red Hat Virtualization Manager 安装,只备份数据库是不够的,Manager 同时需要访问配置文件。任何没有使用范围的默认值 all 的命令都需要包括一个 files 范围,或一个文件系统备份。

过程 13.1. 使用 engine-backup 命令的示例

  1. 登录到运行 Red Hat Virtualization Manager 的机器上。
  2. 创建一个备份:

    例 13.1. 创建一个完全备份

    # engine-backup --scope=all --mode=backup --file=file_name --log=log_file_name

    例 13.2. 创建一个 Manager 数据库备份

    # engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
    使用 dwhdb 替换 db 选项来备份 Data Warehouse 数据库。
    一个包括备份数据的 tar 文件会被创建。
包括备份的 tar 文件现在可以被用来进行环境恢复。

13.1.4. 使用 engine-backup 命令恢复一个备份

根据恢复到的位置,使用 engine-backup 命令恢复备份会比创建一个备份有更多步骤。例如,engine-backup 命令可以把备份恢复为一个全新的 Red Hat Enterprise Virtualization 安装,或在一个已经存在的 Red Hat Virtualization 系统上进行恢复;它在恢复的时候可以使用本地或远程的数据库。

重要

用于恢复备份的系统需要和所备份的系统有相同的主版本。例如,一个 Red Hat Virtualization 版本 4.1 环境的备份只能恢复到另一个 Red Hat Virtualization version 4.1 环境。若要查看备份中所包含的 Red Hat Virtualization 的版本,请解压缩备份文件,再读取未解压后文件根目录下 version 文件中的值。

13.1.5. 在一个全新的系统上恢复一个备份

engine-backup 命令可以被用来在一个全新安装的 Red Hat Virtualization Manager 系统上恢复一个备份。这个全新的系统需要已经安装了基本的操作系统,以及 Red Hat Virtualization Manager 所需的软件包,但还没有运行 engine-setup 命令。另外,需要进行恢复的系统所在的机器需要可以访问备份文件。

过程 13.2. 在一个全新的系统上恢复一个备份

  1. 登录到 Manager 所在的机器。如果准备在远程主机上恢复引擎数据库,则需要登录该主机并进行相关操作。同样,如果需要在远程主机上恢复 Data Warehouse,同样需要登录该主机并进行相关操作。
  2. 恢复完整备份或只包括数据库的备份。
    • 恢复一个完全备份:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions
      如果 Data Warehouse 也需要作为完整备份的一部分恢复,请部署额外的数据库:
      engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
    • 恢复配置文件和数据库备份可以恢复只包括了数据库的备份:
      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --restore-permissions
      以上示例恢复了 Manager 数据库的备份。
      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --provision-dwh-db --restore-permissions
      以上例子恢复了 Data Warehouse 数据库的备份。
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  3. 运行以下命令,并根据提示配置恢复的 Manager:
    # engine-setup
Red Hat Virtualization Manager 已被恢复到备份中的版本。如需修改新 Red Hat Virtualization 系统的完全限定域名,请参阅 第 18.1.1 节 “oVirt 引擎重命名工具”

13.1.6. 在一个已经配置过的系统上恢复一个备份

engine-backup 命令可以在已经安装并配置了 Red Hat Virtualization Manager 的机器上恢复备份。如果您在安装后进行了备份,然后在更改了该安装后想从备份恢复安装,可以使用这个方法。

重要

当通过恢复备份来覆盖一个已经存在的安装时,您需要在使用 engine-backup 命令前运行 engine-cleanup 来清除已经存在的安装。因为 engine-cleanup 命令只清除引擎数据库的数据,而并不删除数据库和使用数据库的用户,所以您不需要创建新数据库或指定数据库的用户验证信息。

过程 13.3. 在一个已经配置过的系统上恢复一个备份

  1. 登录到 Red Hat Virtualization Manager 机器。
  2. 删除配置文件并清理与 Red Hat Virtualization Manager 相关的数据库:
    # engine-cleanup
  3. 恢复一个完全备份或数据库备份:
    • 恢复一个完全备份:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --restore-permissions
    • 恢复配置文件和数据库备份可以恢复只包括了数据库的备份:
      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --restore-permissions
      以上例子恢复了一个 Manager 数据库的备份。如果需要,也可以恢复 Data Warehouse 数据库:
      # engine-backup --mode=restore --scope=dwhdb --file=file_name --log=log_file_name --restore-permissions
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  4. 运行以下命令并根据提示重新配置防火墙,并确认 ovirt-engine 服务被正确配置:
    # engine-setup

13.1.7. 使用不同的用户验证信息恢复一个备份

engine-backup 命令可以在一个己经安装并配置了 Red Hat Virtualization Manager 的机器上恢复一个备份。在恢复备份时,您可以使用与备份中所包括的数据库用户验证信息不同的用户验证信息。如果您对一个系统进行了备份,并想把它恢复到一个不同系统中时,可以使用这个方法。

重要

当通过恢复备份来覆盖一个已经存在的安装时,您需要在使用 engine-backup 命令前运行 engine-cleanup 清除已经存在的安装。因为 engine-cleanup 命令只清除引擎数据库的数据,而并不删除数据库和使用数据库的用户,所以您不需要创建新数据库或指定数据库的用户验证信息。但是,如果您不知道引擎数据库所有者的验证信息,您就需要在恢复备份前改变它。

过程 13.4. 使用不同的用户验证信息恢复一个备份

  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 运行以下命令,根据提示删除配置文件并清理与 Red Hat Enterprise Virtualization Manager 相关的数据库:
    # engine-cleanup
  3. 如果不知道引擎数据库的所有者的验证信息,修改它的密码:
    1. 进入 postgresql 命令行:
      # su postgres
      $ psql
    2. 修改 engine 数据库所有者的密码:
      postgres=# alter role user_name encrypted password 'new_password';
      如果需要,为拥有 ovirt_engine_dwh 数据库的用户重复这个步骤。
  4. 恢复一个完整备份或数据库备份(通过 --change-db-credentials 参数指定新数据库的凭证信息)。Manager 本地数据库的 database_locationlocalhost

    注意

    在以下的例子中,对于每个数据库都使用了没有指定密码的 --*password 选项,这会使数据库在相应的阶段要求用户输入密码。虽然可以在命令中使用这些选项指定密码,但是这些密码信息会被保存在 shell 的历史记录中,因此我们不推荐使用这个方法来提供密码。另外,也可以选择使用 --*passfile=password_file 选项来为 engine-backup 安全地传递每个数据库的密码,而不再需要人工输入密码。
    • 恢复一个完全备份:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions
      如果 Data Warehouse 也作为完整备份的一部分进行恢复,请包含其他数据库的修改后凭证:
      engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
    • 恢复配置文件和数据库备份可以恢复只包括了数据库的备份:
      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions
      以上示例恢复了 Manager 数据库的备份。
      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
      以上例子恢复了 Data Warehouse 数据库的备份。
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  5. 运行以下命令并根据提示重新配置防火墙,并确认 ovirt-engine 服务被正确配置:
    # engine-setup

13.1.8. 把引擎数据库迁移到一个远程服务器数据库中

您可以在完成了 Red Hat Virtualization Manager 初始配置后,将 engine 数据库迁移到远程数据库服务器上。使用 engine-backup 命令创建数据库备份,并在新数据库服务器上恢复该备份。此操作假定新数据库服务器安装了 Red Hat Enterprise Linux 7,并且配置了适当的订阅。请参阅安装指南中的订阅所需的权利

过程 13.5. 迁移数据库

  1. 登录到 Red Hat Virtualization Manager 所在的机器,停止 ovirt-engine 服务,从而使它不会影响到引擎的备份:
    # systemctl stop ovirt-engine.service
  2. 创建 engine 数据库备份:
    # engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
  3. 将备份文件复制到新数据库服务器:
    # scp /tmp/engine.dump root@new.database.server.com:/tmp
  4. 登录新数据库服务器,然后安装 engine-backup
    # yum install ovirt-engine-tools-backup
  5. 在新数据库服务器上恢复数据库。file_name 是从 Manager 复制而来的备份文件。
    # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --no-restore-permissions
  6. 现在,数据库已被迁移,启动 ovirt-engine 服务:
    # systemctl start ovirt-engine.service

13.2. 使用备份和恢复 API 对虚拟机进行备份和恢复

13.2.1. 备份和恢复 API

备份和恢复 API 就是一组功能调用,您可以使用它们来执行虚拟机的完全或文件级备份和恢复操作。API 包括了 Red Hat Virtualization 的多个组件(如实时快照和 REST API)来创建并使用临时卷,这个卷可以被附加到包括第三方软件商提供的备份软件的虚拟机上。
如需了解支持的第三方备份厂商,请参阅 Red Hat Virtualization Ecosystem(Red Hat Marketplace)。

注意

如需了解如何使用 REST API 的信息,请参阅 REST API 指南中的备份和恢复 API

13.2.2. 备份一个虚拟机

使用备份和恢复 API 来备份一个虚拟机。这个步骤假设您有两个虚拟机:一个需要备份的虚拟机和一个安装了备份管理软件的虚拟机。

过程 13.6. 备份一个虚拟机

  1. 使用 REST API 创建需要备份的虚拟机的一个快照:
    POST /api/vms/11111111-1111-1111-1111-111111111111/snapshots/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <snapshot>
        <description>BACKUP</description>
    </snapshot>

    注意

    在创建一个虚拟机快照时,虚拟机当时的配置数据会被保存到快照下的 initialization 中的 configuration 属性的 data 属性中。

    重要

    您不能对标记为“可共享”的磁盘或基于直接 LUN 的磁盘进行快照。
  2. 从快照下的 data 属性中获取配置数据:
    GET /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  3. 记录快照的磁盘 ID 和快照 ID:
    GET /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111/disks HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  4. 把快照附加到用于备份的虚拟机,并激活磁盘:
    POST /api/vms/22222222-2222-2222-2222-222222222222/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
        <snapshot id="11111111-1111-1111-1111-111111111111"/>
        <active>true</active>
    </disk>
  5. 使用备份软件在用于备份的虚拟机上备份快照磁盘中的数据。
  6. 把快照磁盘从用于备份的虚拟机上断开:
    DELETE /api/vms/22222222-2222-2222-2222-222222222222/disks/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <detach>true</detach>
    </action>
  7. 或者,删除快照:
    DELETE /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
您使用在一个独立虚拟机上安装的备份软件备份了一个虚拟机。

13.2.3. 恢复一个虚拟机

恢复使用备份和恢复 API 备份的虚拟机。这个过程假设您有一个安装了备份虚拟机软件的、用于进行备份的虚拟机。

过程 13.7. 恢复一个虚拟机

  1. 在管理门户中,创建一个用来恢复备份的浮动磁盘。请参阅 第 11.6.1 节 “创建浮动虚拟磁盘” 来获得如何创建浮动磁盘的信息。
  2. 把磁盘附加到用于备份的虚拟机上:
    POST /api/vms/22222222-2222-2222-2222-222222222222/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>
  3. 使用备份软件在磁盘上恢复备份。
  4. 把磁盘从用于备份的虚拟机上断开:
    DELETE /api/vms/22222222-2222-2222-2222-222222222222/disks/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <detach>true</detach>
    </action>
  5. 使用被恢复虚拟机的配置信息创建一个新虚拟机。
    POST /api/vms/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <vm>
        <cluster>
            <name>cluster_name</name>
        </cluster>
        <name>NAME</name>
        ...
    </vm>
  6. 把磁盘附加到新虚拟机上:
    POST /api/vms/33333333-3333-3333-3333-333333333333/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>
您通过使用备份和恢复 API 所创建的备份恢复了一个虚拟机。

第 14 章 使用 Red Hat Satellite 进行勘误管理

Red Hat Virtualization 可以配置为在 Red Hat Virtualization Manager 中查看来自于 Red Hat Satellite 的勘误(errata)。当 Manager 和 Red Hat Satellite 服务器相关联后,系统管理员就可以介绍到主机和虚拟机的相关勘误以及与勘误相关的信息。管理员可以根据需要在相关的主机、虚拟机或 Manager 上应用所需的勘误。如需了解更详细的相关信息,请参阅 Red Hat Satellite User Guide
Red Hat Virtualization 4.1 支持 Red Hat Satellite 6.1 的勘误管理。

重要

Manager、主机和虚拟机在 Satellite 服务器中由它们的 FQDN 进行标识,这就可以确保外部内容主机的 ID 不需要在 Red Hat Virtualization 中维护。
用来管理 Manager、主机和虚拟机的 Satellite 帐号需要有 Administrator 权限,以及一个默认的机构设置。

过程 14.1. 配置 Red Hat Virtualization Errata

为了把 Manager、主机和虚拟机和 Red Hat Satellite 服务器进行关联,首先需要把 Manager 和服务器进行关联,然后把主机关联到同一个服务器并进行配置,最后,再把虚拟机和同一个服务器进行关联并进行配置。
  1. 关联 Manager 的过程就是把所需的 Satellite 服务器设置为一个外部供应商。详情请参阅 第 12.2.1 节 “为主机配置添加 Red Hat Satellite 实例”

    注意

    Manager 需要以一个内容主机的形式在 Satellite 服务器中注册,并需要安装 katello-agent 软件包。
    如需了解如何配置主机进行注册的信息,请参阅 Red Hat Satellite User Guide 中的 Configuring a Host for Registration;如需了解如何注册主机并安装 katello-agent 软件包的信息,请参阅 Red Hat Satellite User GuideRegistration
  2. 另外,还可以配置所需的主机来显示可用的勘误。详情请参阅 第 7.5.3 节 “为主机配置 Satellite 勘误管理”
  3. 另外,可通过配置所需的虚拟机来显示可用的勘误。在配置虚拟机前需要配置关联的主机。详情请参阅虚拟机管理指南中的为虚拟机配置 Red Hat Satellite 勘误管理

过程 14.2. 查看 Red Hat Virtualization Manager 勘误

  1. 在树型框中选择勘误
  2. SecurityBugsEnhancements 来查看相关的勘误类型。
更多相关信息,请参阅 第 7.5.13 节 “查看主机勘误” 以及虚拟机管理指南中的 查看虚拟机的 Red Hat Satellite 勘误

第 15 章 用户和角色

15.1. 用户介绍

在 Red Hat Virtualization 中有两类用户域:本地域和外部域。一个默认的本地域称为 internal 域,一个默认的用户 admin 会在 Manager 的安装过程中创建。
您可以使用 ovirt-aaa-jdbc-toolinternal 域中创建额外的用户。在本地域中创建的用户被称为本地用户。您也可以附加外部的目录服务器(如 Red Hat Directory Server、Active Directory、 OpenLDAP 以及您的 Red Hat Virtualization 环境所支持的其它选项)并使用它们作为外部域。在外部域中创建的用户被称为目录用户。
本地用户和目录用户都可以通过管理门户分配角色和权限从而使它们可以在环境中使用。这里包括两个注意的用户角色类型:最终用户和管理员。最终用户角色可以通过用户门户使用和管理虚拟资源,而管理角色使用管理门户对系统的架构进行维护。角色可以在独立资源一级(如虚拟机和主机)分配给用户,也可以在分级的对象(如集群和数据中心)一级进行分配。

15.2. 目录服务器介绍

在安装过程中,Red Hat Virtualization Manager 在 internal 域中创建一个 admin 用户(admin@internal)。这个用户被用来在初始配置环境以及进行故障排除时使用。在附加了一个外部目标服务器,并创建了用户以及为用户分配了适当的角色和权限后,admin@internal 用户可以根据需要被删除。目标服务器支持:
  • 389ds
  • 389ds RFC-2307 Schema
  • Active Directory
  • FreeIPA
  • Red Hat Identity Management (IdM)
  • Novell eDirectory RFC-2307 Schema
  • OpenLDAP RFC-2307 Schema
  • OpenLDAP Standard Schema
  • Oracle Unified Directory RFC-2307 Schema
  • RFC-2307 Schema (Generic)
  • Red Hat Directory Server (RHDS)
  • Red Hat Directory Server (RHDS) RFC-2307 Schema
  • iPlanet

重要

您不能在同一个系统上同时安装 Red Hat Virtualization Manager(rhevm)和 IdM(ipa-server)。IdM 和 Red Hat Virtualization Manager 所需要的 mod_ssl 软件包不兼容。

重要

如果您使用 Active Directory 作为目录服务,而且需要在创建模板和虚拟机时使用 sysprep,您必须为 Red Hat Virtualization 的管理员设置“委派对组织单位的控制(delegation of control)”来进行以下操作:
  • 把一个计算机添加到域中
  • 修改一个组的成员
如需了解更多关于在 Active Directory 中创建用户账户的信息,请参阅 http://technet.microsoft.com/en-us/library/cc732336.aspx.
如需了解更多关于在 Active Directory 中进行委派对组织单位的控制(delegation of control),请参阅 http://technet.microsoft.com/en-us/library/cc732524.aspx

15.3. 删除一个外部 LDAP 供应商

15.3.1. 删除一个外部 LDAP 供应商(交互式设置)

ovirt-engine-extension-aaa-ldap 扩展允许用户方便地定制外部目录地设置。ovirt-engine-extension-aaa-ldap 扩展支持多个不同地 LDAP 服务器类型,它包括一个交互式的设置脚本来帮助设置多数 LDAP 类型。
如果 LDAP 服务器类型没有在交换式设置脚本中出现,或您希望进行更多的定制,您可以手工编辑配置文件。详情请参阅 第 15.3.3 节 “删除一个外部 LDAP 供应商(手工模式)”
第 15.3.2 节 “附加一个 Active Directory” 包括了一个 Active Directory 实例。
先决条件:

  • 您需要知道 DNS 或 LDAP 服务器的域名。循环(round-robin)和故障转移(failover)策略也被支持。
  • 要设置 LDAP 服务器和 Manager 之间的安全连接,请确保已准备好 PEM 编码的 CA 证书。
  • 最少有一组账户名和密码来进行 LDAP 服务器的搜索和登录操作。

过程 15.1. 删除一个外部 LDAP 供应商

  1. 在 Red Hat Virtualization Manager 中安装 LDAP 扩展软件包:
    # yum install ovirt-engine-extension-aaa-ldap-setup
  2. 运行 ovirt-engine-extension-aaa-ldap-setup 启动设置过程:
    # ovirt-engine-extension-aaa-ldap-setup
  3. 输入相应的代码来选择一个 LDAP 类型。如果您不确定 LDAP 服务器所使用的 schema,选您的 LDAP 服务器类型的标准 schema。对于 Active Directory,请参阅 第 15.3.2 节 “附加一个 Active Directory” 中介绍的步骤。
    Available LDAP implementations:
    1 - 389ds
    2 - 389ds RFC-2307 Schema
    3 - Active Directory
    4 - IPA
    5 - Novell eDirectory RFC-2307 Schema
    6 - OpenLDAP RFC-2307 Schema
    7 - OpenLDAP Standard Schema
    8 - Oracle Unified Directory RFC-2307 Schema
    9 - RFC-2307 Schema (Generic)
    10 - RHDS
    11 - RHDS RFC-2307 Schema
    12 - iPlanet
    Please select: 10
  4. Enter 接受默认设置,为 LDAP 服务器名配置相应的域名解析:
    It is highly recommended to use DNS resolution for LDAP server.
    If for some reason you intend to use hosts or plain address disable DNS usage.
    Use DNS (Yes, No) [Yes]:
  5. 输入相应的代码来选择 DNS 策略方法:
    1 - Single server
    2 - DNS domain LDAP SRV record
    3 - Round-robin between multiple hosts
    4 - Failover between multiple hosts
    Please select:
    • 对于选项 1,使用 /etc/resolv.conf 中列出的 DNS 服务器解析 IP 地址。请确认已更新了 /etc/resolv.conf 文件来包括正确的 DNS 服务器。
      输入 LDAP 服务器的 FQDN 或 IP 地址。您可以使用带有 SRV 记录的 dig 命令找出域名。SRV 记录的格式是:_service._protocol.domain name。例如,dig _ldap._tcp.redhat.com SRV
    • 对于选项 2,输入 DNS 服务器的域名。DNS 查询通过查看 SRV 记录找出 LDAP 服务器的域名。
    • 对于选项 3,输入一个由空格分隔的 LDAP 服务器列表。使用服务器的 FQDN 或 IP 地址。这个策略可以实现 LDAP 服务器的负载均衡。查询会根据 round-robin 算法在所有 LDAP 服务器间进行分配。
    • 对于选项 4,输入一个由空格分隔的 LDAP 服务器列表。使用服务器的 FQDN 或 IP 地址。这个策略把第一个服务器作为默认的 LDAP 服务器来处理查询。如果第一个服务器无效,列表中的下一个服务器会处理查询。
  6. 选择 LDAP 服务器支持的安全连接方法,指定获得 PEM 编码的 CA 证书。使用 file 选项可以指定到证书的完全路径;使用 URL 选项可以指定到证书的 URL;使用 inline 选项可以在终端中粘贴证书的内容;system 选项可以指定所有 CA 文件的默认位置。如果选择 insecure 选项,连接仍然会使用 TLS 进行加密,但证书验证的过程会被忽略。
    NOTE:
    It is highly recommended to use secure protocol to access the LDAP server.
    Protocol startTLS is the standard recommended method to do so.
    Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol.
    Use plain for test environments only.
    Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS
    Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): File
    Please enter the password:

    注意

    LDAPS 是 Lightweight Directory Access Protocol Over Secure Socket Links 的缩写。对于 SSL 连接,选择 ldaps 选项。
  7. 输入搜索用户的可分辨名称(DN)。用户需要有可以浏览目录服务器中的所有用户和组的权限。这个搜索用户需要在 LDAP 批注(LDAP annotation)中指定。如果支持匿名搜索,直接按 Enter
    Enter search user DN (empty for anonymous): uid=user1,ou=Users,dc=test,dc=redhat,dc=com
    Enter search user password:
  8. 输入基础 DN:
    Please enter base DN (dc=redhat,dc=com) [dc=redhat,dc=com]:
  9. 如果要为虚拟机配置单点登录,请输入 Yes。注意此功能无法与管理门户和用户门户功能的单点登录同时使用。脚本会提醒您配置集名称必须和域名匹配。您将需要遵循虚拟机管理指南为虚拟机配置单点登录中的说明。
    Are you going to use Single Sign-On for Virtual Machines (Yes, No) [No]:
  10. 指定一个域名(profile name)。这个域名会出现在用户的登录界面中。在这个示例中使用 redhat.com

    注意

    要在域配置后重新命名配置集,需要编辑 /etc/ovirt-engine/extensions.d/redhat.com-authn.properties 文件中的 ovirt.engine.aaa.authn.profile.name 属性。重启引擎服务以使所做的修改生效。
    Please specify profile name that will be visible to users:redhat.com
    管理门户登录页

    图 15.1. 管理门户登录页

    注意

    用户需要在第一次登录时从下拉列表中选项正确的域。这个信息会被保存在浏览器的 cookie 中,并在下一次用户登录时被预先选择。
  11. 测试搜索和登录功能来保证 LDAP 服务器已被正确地连接到您地 Red Hat Virtualization 环境中。对于登录查询,输入账户名和密码;对于搜索查询,为用户账户选 Principal,为组用户选择 Group。如果需要返回用户的组账户信息,为 Resolve Groups 输入 Yes。选择 Done 完成设置过程。三个配置文件会被创建并在屏幕输出中显示。
    NOTE:
    It is highly recommended to test drive the configuration before applying it into engine.
    Perform at least one Login sequence and one Search sequence.
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login
    Enter search user name: testuser1
    Enter search user password:
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search
    Select entity to search (Principal, Group) [Principal]:
    Term to search, trailing '*' is allowed: testuser1
    Resolve Groups (Yes, No) [No]: 
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Package installation
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
              CONFIGURATION SUMMARY
              Profile name is: redhat.com
              The following files were created:
                  /etc/ovirt-engine/aaa/redhat.com.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authz.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authn.properties
    [ INFO  ] Stage: Clean up
              Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160114064955-1yar9i.log:
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  12. 重启引擎服务。创建的域会出现在管理门户和用户门户的登录界面中。如需了解与为 LDAP 用户分配角色和权限(如登录到用户门户)的信息,请参阅 第 15.6 节 “通过管理门户管理用户任务”
    # systemctl restart ovirt-engine.service

注意

如需了解更多信息,请参阅 LDAP 验证和授权扩展的 README 文件(/usr/share/doc/ovirt-engine-extension-aaa-ldap-version)。

15.3.2. 附加一个 Active Directory

先决条件:

  • 需要知道 Active Directory 的 forest name。forest name 也被成为 root domain name。
  • 在 Manager 的 /etc/resolv.conf 文件中添加一个可用解析到 Active Directory forest name 的 DNS 服务器,或记录下 Active Directory DNS 服务器的信息,在设置脚本提示输入时输入这些信息。
  • 在 LDAP 服务器和 Manager 间创建安全的连接,并准备一个 PEM 编码的 CA 证书。详情请参阅 第 D.2 节 “在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接”
  • 除非支持匿名搜索,在 Active Directory 上需要有一个可以作为搜索用户的、具有浏览所有用户和组权限的用户。记录下搜索用户的可分辨名称(DN)。不要使用 Active Directory 的管理员用户。
  • 最少有一组账户名和密码来进行 Active Directory 的搜索和查询操作。

过程 15.2. 删除一个外部 LDAP 供应商

  1. 在 Red Hat Virtualization Manager 中安装 LDAP 扩展软件包:
    # yum install ovirt-engine-extension-aaa-ldap-setup
  2. 运行 ovirt-engine-extension-aaa-ldap-setup 启动设置过程:
    # ovirt-engine-extension-aaa-ldap-setup
  3. 选择一个 LDAP 类型。根据所选 LDAP 类型的不同,以后与 LDAP 相关的问题会有所不同。
    Available LDAP implementations:
    1 - 389ds
    2 - 389ds RFC-2307 Schema
    3 - Active Directory
    4 - IPA
    5 - Novell eDirectory RFC-2307 Schema
    6 - OpenLDAP RFC-2307 Schema
    7 - OpenLDAP Standard Schema
    8 - Oracle Unified Directory RFC-2307 Schema
    9 - RFC-2307 Schema (Generic)
    10 - RHDS
    11 - RHDS RFC-2307 Schema
    12 - iPlanet
    Please select: 3
  4. 输入 Active Directory 的林名称(forest name)。如果 Manager 的 DNS 无法解析这个林名称,脚本会要求您输入一个以空格分隔的 Active Directory DNS 服务器名列表。
    Please enter Active Directory Forest name: ad-example.redhat.com
    [ INFO  ] Resolving Global Catalog SRV record for ad-example.redhat.com
    [ INFO  ] Resolving LDAP SRV record for ad-example.redhat.com
  5. 选择 LDAP 服务器支持的安全连接方法,指定获得 PEM 编码的 CA 证书。使用 file 选项可以指定到证书的完全路径;使用 URL 选项可以指定到证书的 UR;使用 inline 选项可以在终端中粘贴证书的内容;system 选项可以指定所有 CA 文件的位置;insecure 选项允许用户以非安全模式使用 startTLS。
    NOTE:
    It is highly recommended to use secure protocol to access the LDAP server.
    Protocol startTLS is the standard recommended method to do so.
    Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol.
    Use plain for test environments only.
    Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS
    Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): File
    Please enter the password:

    注意

    LDAPS 是 Lightweight Directory Access Protocol Over Secure Socket Links 的缩写。对于 SSL 连接,选择 ldaps 选项。
    如需了解更多与创建 PEM 编码的 CA 证书的信息,请参阅 第 D.2 节 “在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接”
  6. 输入搜索用户的可分辨名称(DN)。用户需要有可以浏览目录服务器中的所有用户和组的权限。这个搜索用户需要在 LDAP 批注(LDAP annotation)中指定。如果支持匿名搜索,直接按 Enter
    Enter search user DN (empty for anonymous): uid=user1,ou=Users,dc=test,dc=redhat,dc=com
    Enter search user password:
  7. 指定一个域名(profile name)。这个域名会出现在用户的登录界面中。在这个示例中使用 redhat.com
    Please specify profile name that will be visible to users:redhat.com
    管理门户登录页

    图 15.2. 管理门户登录页

    注意

    用户需要在第一次登录时从下拉列表中选项正确的域。这个信息会被保存在浏览器的 cookie 中,并在下一次用户登录时被预先选择。
  8. 测试搜索和登录功能来保证 LDAP 服务器已被正确地连接到您地 Red Hat Virtualization 环境中。对于登录查询,输入账户名和密码;对于搜索查询,为用户账户选 Principal,为组用户选择 Group。如果需要返回用户的组账户信息,为 Resolve Groups 输入 Yes。选择 Done 完成设置过程。三个配置文件会被创建并在屏幕输出中显示。
    NOTE:
    It is highly recommended to test drive the configuration before applying it into engine.
    Perform at least one Login sequence and one Search sequence.
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login
    Enter search user name: testuser1
    Enter search user password:
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search
    Select entity to search (Principal, Group) [Principal]:
    Term to search, trailing '*' is allowed: testuser1
    Resolve Groups (Yes, No) [No]: 
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Package installation
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
              CONFIGURATION SUMMARY
              Profile name is: redhat.com
              The following files were created:
                  /etc/ovirt-engine/aaa/redhat.com.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authz.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authn.properties
    [ INFO  ] Stage: Clean up
              Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160114064955-1yar9i.log:
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  9. 创建的域会出现在管理门户和用户门户的登录界面中。如需了解与为 LDAP 用户分配角色和权限(如登录到用户门户)的信息,请参阅 第 15.6 节 “通过管理门户管理用户任务”

注意

如需了解更多信息,请参阅 LDAP 验证和授权扩展的 README 文件(/usr/share/doc/ovirt-engine-extension-aaa-ldap-version)。

15.3.3. 删除一个外部 LDAP 供应商(手工模式)

ovirt-engine-extension-aaa-ldap 扩展使用 LDAP 协议访问目录服务器并可以进行定制。除非需要在用户门户或管理门户上实现单点登录,kerberos 验证并不需要。
如果前面介绍的交换式设置无法满足您的要求,您可以手工修改配置文件来附加 LDAP 服务器。以下介绍的步骤中使用了常规的信息,您需要根据您的具体情况进行相应的修改。

过程 15.3. 手工配置一个外部 LDAP 供应商

  1. 在 Red Hat Virtualization Manager 上安装 LDAP 扩展软件包:
    # yum install ovirt-engine-extension-aaa-ldap
  2. 把 LDAP 配置模板文件复制到 /etc/ovirt-engine 目录中。其中包括了 Active Directory(ad)和其它目录服务类型(simple)的模板文件。这个示例使用简单配置模板。
    # cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple/. /etc/ovirt-engine
  3. 重新命名配置文件,从而使它与用户可以在管理门户和用户门户的登录界面中可见的 profile 名相匹配:
    # mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authn.properties /etc/ovirt-engine/extensions.d/example-authn.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
  4. 编辑 LDAP 属性配置文件,取消注释一个 LDAP 服务器类型并更新域和密码项的内容:
    #  vi /etc/ovirt-engine/aaa/example.properties

    例 15.1. 配置档案实例:LDAP 服务器部分

    # Select one
    #
    include = <openldap.properties>
    #include = <389ds.properties>
    #include = <rhds.properties>
    #include = <ipa.properties>
    #include = <iplanet.properties>
    #include = <rfc2307-389ds.properties>
    #include = <rfc2307-rhds.properties>
    #include = <rfc2307-openldap.properties>
    #include = <rfc2307-edir.properties>
    #include = <rfc2307-generic.properties>
    
    # Server
    #
    vars.server = ldap1.company.com
    
    # Search user and its password.
    #
    vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com
    vars.password = 123456
    
    pool.default.serverset.single.server = ${global:vars.server}
    pool.default.auth.simple.bindDN = ${global:vars.user}
    pool.default.auth.simple.password = ${global:vars.password}
    为了使用 TLS 或 SSL 协议来与 LDAP 服务器进行交流,获得 LDAP 服务器的根(root)CA 证书,使用它来创建一个公共的 keystore 文件。取消注释以下行,指定到公共 keystore 文件的完全路径以及访问这个文件的密码。

    注意

    如需了解更多与创建公共 keystore 文件相关的信息,请参阅 第 D.2 节 “在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接”

    例 15.2. 配置档案实例:keystore 部分

    # Create keystore, import certificate chain and uncomment
    # if using tls.
    pool.default.ssl.startTLS = true
    pool.default.ssl.truststore.file = /full/path/to/myrootca.jks
    pool.default.ssl.truststore.password = password
  5. 检查验证配置文件。用户在管理门户和用户门户的登录界面中可以选择的 profile 由 ovirt.engine.aaa.authn.profile.name 定义。配置 profile 的位置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。
    # vi /etc/ovirt-engine/extensions.d/example-authn.properties

    例 15.3. 验证配置文件的示例

    ovirt.engine.extension.name = example-authn
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.ldap.AuthnExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
    ovirt.engine.aaa.authn.profile.name = example
    ovirt.engine.aaa.authn.authz.plugin = example-authz
    config.profile.file.1 = ../aaa/example.properties
  6. 检查授权配置文件。这个配置集的配置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。
    # vi /etc/ovirt-engine/extensions.d/example-authz.properties

    例 15.4. 授权配置文件的示例

    ovirt.engine.extension.name = example-authz
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.ldap.AuthzExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz
    config.profile.file.1 = ../aaa/example.properties
  7. 为配置文件设置正确的所有者权限和访问权限:
    # chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
    # chmod 600 /etc/ovirt-engine/aaa/example.properties
  8. 重新启动引擎服务:
    # systemctl restart ovirt-engine.service
  9. 您所创建的 example 配置集会出现在管理门户和用户门户的登录界面中。如需了解与为 LDAP 用户分配权限(如登录到用户门户)的信息,请参阅 第 15.6 节 “通过管理门户管理用户任务”

注意

如需了解更多信息,请参阅 LDAP 验证和授权扩展的 README 文件(/usr/share/doc/ovirt-engine-extension-aaa-ldap-version)。

15.4. 为 LDAP 和 Kerberos 配置单点登录

单点登录功能允许用户在无需重新输入密码的情况下登录到用户门户或管理门户。身份验证所需的凭证信息由 Kerberos 服务器提供。若要配置管理门户和用户门户的单点登录功能,您需要配置两个扩展(ovirt-engine-extension-aaa-miscovirt-engine-extension-aaa-ldap)以及两个 Apache 模块(mod_auth_gssapimod_session)。您可以在不使用 Kerberos 的情况下配置单点登录功能,但这超出了本文档的范围。

注意

如果到用户门户的单独登录功能被启用,则到虚拟机的单点登录功能将无法实现。这是因为,用户门户在启用了单独登录功能后,将不需要接受用户密码,因此用户的密码将无法在登录到虚拟机时被验证。
这个示例假设了以下情况:
  • 存在的 KDC(Key Distribution Center,密钥分配中心)服务器使用 MIT 版的 Kerberos 5。
  • 您具有 KDC 服务器的管理权限。
  • Red Hat Virtualization Manager 和用户的机器上安装了 Kerberos 客户端。
  • kadmin 工具程序可以被用来创建 Kerberos 服务主体(principal)和 keytab 文件。
这个过程会涉及到以下组件:

在 KDC 服务器上

  • 为 Red Hat Virtualization Manager 上的 Apache 服务创建一个服务主体(principal)和一个 keytab 文件。

在 Red Hat Virtualization Manager 上

  • 安装验证和授权扩展软件包,以及 Apache Kerberos 验证模块。
  • 配置扩展文件。

过程 15.4. 为 Apache 服务配置 Kerberos

  1. 在 KDC 服务器上,使用 kadmin 为 Red Hat Virtualization Manager 上的 Apache 服务创建一个服务主体。这个服务主体是 KDC 指代 Apache 服务的 ID。
    # kadmin
    kadmin> addprinc -randkey HTTP/fqdn-of-rhevm@REALM.COM
  2. 为 Apache 服务产生一个 keytab 文件。keytab 文件保存了共享的密钥。
    kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM
    kadmin> quit
  3. keytab 文件从 KDC 服务器复制到 Red Hat Virtualization Manager:
    # scp /tmp/http.keytab root@rhevm.example.com:/etc/httpd

过程 15.5. 配置到用户门户和管理门户的单点登录

  1. 在 Red Hat Virtualization Manager 上,设置正确的 keytab 所有者权限和访问权限:
    # chown apache /etc/httpd/http.keytab
    # chmod 400 /etc/httpd/http.keytab
  2. 安装身份验证扩展软件包、LDAP 扩展软件包,以及 mod_auth_gssapimod_session Apache 模块:
    # yum install ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session
  3. 把 SSO 配置模板文件复制到 /etc/ovirt-engine 目录中。其中包括了 Active Directory(ad-sso)和其它目录服务类型(simple-sso)的模板文件。这个示例使用简单 SSO 配置模板。
    # cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple-sso/. /etc/ovirt-engine
  4. ovirt-sso.conf 移入 Apache 配置目录:
    # mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.d
  5. 查看身份验证方式文件。您不需要编辑此文件,因为其范围自动获取自keytab 文件。
    # vi /etc/httpd/conf.d/ovirt-sso.conf

    例 15.5. 验证方法文件的示例

    <LocationMatch ^/ovirt-engine/sso/(interactive-login-negotiate|oauth/token-http-auth)|^/ovirt-engine/api>
      <If "req('Authorization') !~ /^(Bearer|Basic)/i">
        RewriteEngine on
        RewriteCond %{LA-U:REMOTE_USER} ^(.*)$
        RewriteRule ^(.*)$ - [L,NS,P,E=REMOTE_USER:%1]
        RequestHeader set X-Remote-User %{REMOTE_USER}s
    
        AuthType GSSAPI
        AuthName "Kerberos Login"
    
        # Modify to match installation
        GssapiCredStore keytab:/etc/httpd/http.keytab
        GssapiUseSessions On
        Session On
        SessionCookieName ovirt_gssapi_session path=/private;httponly;secure;
    	
        Require valid-user
        ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0; url=/ovirt-engine/sso/login-unauthorized\"/><body><a href=\"/ovirt-engine/sso/login-unauthorized\">Here</a></body></html>"
      </If>
    </LocationMatch>
  6. 重新命名配置文件,从而使它与用户可以在管理门户和用户门户的登录界面中可见的 profile 名相匹配:
    # mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/example-http-authn.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
  7. 编辑 LDAP 属性配置文件,取消注释一个 LDAP 服务器类型并更新域和密码项的内容:
    #  vi /etc/ovirt-engine/aaa/example.properties

    例 15.6. 配置档案实例:LDAP 服务器部分

    # Select one
    include = <openldap.properties>
    #include = <389ds.properties>
    #include = <rhds.properties>
    #include = <ipa.properties>
    #include = <iplanet.properties>
    #include = <rfc2307-389ds.properties>
    #include = <rfc2307-rhds.properties>
    #include = <rfc2307-openldap.properties>
    #include = <rfc2307-edir.properties>
    #include = <rfc2307-generic.properties>
    
    # Server
    #
    vars.server = ldap1.company.com
    
    # Search user and its password.
    #
    vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com
    vars.password = 123456
    
    pool.default.serverset.single.server = ${global:vars.server}
    pool.default.auth.simple.bindDN = ${global:vars.user}
    pool.default.auth.simple.password = ${global:vars.password}
    为了使用 TLS 或 SSL 协议来与 LDAP 服务器进行交流,获得 LDAP 服务器的根(root)CA 证书,使用它来创建一个公共的 keystore 文件。取消注释以下行,指定到公共 keystore 文件的完全路径以及访问这个文件的密码。

    注意

    如需了解更多与创建公共 keystore 文件相关的信息,请参阅 第 D.2 节 “在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接”

    例 15.7. 配置档案实例:keystore 部分

    # Create keystore, import certificate chain and uncomment
    # if using ssl/tls.
    pool.default.ssl.startTLS = true
    pool.default.ssl.truststore.file = /full/path/to/myrootca.jks
    pool.default.ssl.truststore.password = password
  8. 检查验证配置文件。用户在管理门户和用户门户的登录界面中可以选择的 profile 由 ovirt.engine.aaa.authn.profile.name 定义。配置 profile 的位置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。
    # vi /etc/ovirt-engine/extensions.d/example-http-authn.properties

    例 15.8. 验证配置文件的示例

    ovirt.engine.extension.name = example-http-authn
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.misc.http.AuthnExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
    ovirt.engine.aaa.authn.profile.name = example-http
    ovirt.engine.aaa.authn.authz.plugin = example-authz
    ovirt.engine.aaa.authn.mapping.plugin = example-http-mapping
    config.artifact.name = HEADER
    config.artifact.arg = X-Remote-User
  9. 检查授权配置文件。这个配置集的配置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。
    #  vi /etc/ovirt-engine/extensions.d/example-authz.properties

    例 15.9. 授权配置文件的示例

    ovirt.engine.extension.name = example-authz
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.ldap.AuthzExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz
    config.profile.file.1 = ../aaa/example.properties
  10. 查看身份验证映射配置文件。配置集文件位置必须和 LDAP 配置文件位置相匹配。配置集文件扩展名必须与身份验证配置文件中的 ovirt.engine.aaa.authn.mapping.plugin 值相匹配。所有字段都可保留为默认值。
    # vi /etc/ovirt-engine/extensions.d/example-http-mapping.properties

    例 15.10. 身份验证映射配置文件的示例

    ovirt.engine.extension.name = example-http-mapping
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.misc.mapping.MappingExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Mapping
    config.mapAuthRecord.type = regex
    config.mapAuthRecord.regex.mustMatch = true
    config.mapAuthRecord.regex.pattern = ^(?<user>.*?)((\\\\(?<at>@)(?<suffix>.*?)@.*)|(?<realm>@.*))$
    config.mapAuthRecord.regex.replacement = ${user}${at}${suffix}
  11. 确保配置文件的所有权和权限设置适当:
    # chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-authn.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-authz.properties
    # chmod 600 /etc/ovirt-engine/aaa/example.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-http-authn.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-authz.properties
  12. 重新启动 Apache 服务和 ovirt-engine 服务:
    # systemctl restart httpd.service
    # systemctl restart ovirt-engine.service

15.5. 用户授权

15.5.1. 用户验证模型

Red Hat Virtualization 根据以下三个元素的不同组合来进行验证:
  • 进行操作的用户(user)
  • 所进行的操作(action)
  • 操作所针对的对象(object)

15.5.2. 用户操作

一个操作要可以成功进行,需要用户有适当的权限来对对象进行操作。每个操作都会有一个相应的权限。在一个系统中有多个不同的权限,它可以被简化为:
操作

图 15.3. 操作

重要

一些操作需要在多个对象上进行。例如,把一个模板复制到另一个存储域需要对模板和所要复制的目标存储域进行操着。要进行这种操作,用户必须对所有相关的对象都有相关的权限。

15.6. 通过管理门户管理用户任务

15.6.1. 添加用户并为用户分配门户权限

在用户被创建后才可以进行添加并分配角色和权限。在这个过程中分配的角色和权限可以使用户登录到用户门户并开始创建虚拟机。这个过程也适用于组账户。

过程 15.6. 添加用户并为用户分配门户权限

  1. 在页头条中点配置打开配置窗口。点系统权限
  2. 添加打开为用户添加系统权限窗口。
  3. 搜索下拉菜单中选择一个域。这个域是您希望搜索的域。在搜索输入框中输入一个名字或名字的一部分后点执行。或直接点执行来显示所有用户和组的列表。
  4. 选择适当的用户或组。
  5. 分配的角色中选项需要分配的角色。UserRole 角色可以使这个用户账户具有可以登录到用户门户的权限。
  6. 确定
登录到用户门户来验证用户账户有登录的权限。

15.6.2. 查看用户信息

您可以在用户标签页中查看每个用户的信息。

过程 15.7. 查看用户信息

  1. 用户标签页来显示用户列表。
  2. 选择用户,如果用户没有被显示,您可以对它进行搜索。
  3. 在详情框中会显示被选择的用户信息,其中常规标签页显示了用户的一般信息,如域名、邮件地址和用户的状态。
  4. 您可以通过其它标签页查看用户的组、权限、配额和事件信息。
    例如,如果需要知道这个用户属于哪个组,点标签页。

15.6.3. 查看用户在资源上的权限

用户可以被分配特定的资源或一个资源分级结构的权限。您可以查看每个资源中的用户,以及它们的权限。

过程 15.8. 查看用户在资源上的权限

  1. 点资源标签页,在结果列表中选一个资源。
  2. 点详情框中的权限标签页列出这个资源已有的用户,用户角色以及继承的权限。

15.6.4. 删除用户

当一个用户不再被需要时,可以把它从 Red Hat Virtualization 环境中删除。

过程 15.9. 删除用户

  1. 用户标签页来显示用户列表。
  2. 选择要被删除的用户,请确认它们没有在任何虚拟机上使用。
  3. 删除。一个提示您确认删除操作的信息会被显示,点确定
用户被从 Red Hat Virtualization 环境中删除,但它仍然存在于外部目录服务中。

15.6.5. 查看登录的用户

您可以查看当前登录的用户以及相关的信息。在树形框中点活跃用户会话

15.6.6. 中断一个用户会话

您可以中断当前登录用户的会话。

过程 15.10. 中断一个用户会话

  1. 在树型框中点活跃的用户会话
  2. 选择要中断的用户会话。
  3. 中断会话
  4. 确定

15.7. 通过命令行管理用户任务

15.7.1. 管理用户

您可以使用 ovirt-aaa-jdbc-tool 工具程序管理内部域中的用户账户。使用这个工具程序对账户所做的修改可以马上生效,而不需要重启 ovirt-engine 服务。运行 ovirt-aaa-jdbc-tool user --help 可以获得完整的用户选项列表。本节给出了一些常见的示例。

过程 15.11. 创建用户

以下介绍了如何创建一个用户、为用户设置密码并把它加入到 Red Hat Virtualization 环境中。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 创建一个新用户账户。另外,还可以使用 --attribute 来设置账户的详细信息。运行 ovirt-aaa-jdbc-tool user add --help 可以获得相关的帮助信息。
    # ovirt-aaa-jdbc-tool user add test1 --attribute=firstName=John --attribute=lastName=Doe 
    adding user test1...
    user added successfully
  3. 设置密码。您需要为 --password-valid-to 设置一个值,否则密码的过期时间会被默认设置为当前的时间。日期的格式是 yyyy-MM-dd HH:mm:ssX。在这个示例中,-0800 代表 GMT -8 小时。运行 ovirt-aaa-jdbc-tool user password-reset --help 可以获得更多选项信息。
    # ovirt-aaa-jdbc-tool user password-reset test1 --password-valid-to="2025-08-01 12:00:00-0800"
    Password:
    updating user test1...
    user updated successfully

    注意

    在默认情况下,内部域中的用户账户的密码策略有以下限制:
    • 最少 6 个字符。
    • 修改密码时不能使用以前使用过的密码。
    如需了解与密码策略相关的信息,以及其它默认的设置,请运行 ovirt-aaa-jdbc-tool settings show
  4. 把新创建的用户添加到管理门户中,并为用户分配适当的角色和权限。如需了解更多相关信息,请参阅 第 15.6.1 节 “添加用户并为用户分配门户权限”

过程 15.12. 查看用户信息

以下介绍了如何查看用户账户信息。它所显示的信息比管理门户中用户标签页中的信息更多。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 运行下列命令:
    # ovirt-aaa-jdbc-tool user show test1

过程 15.13. 编辑用户信息

以下介绍了如何更新用户账户信息。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 运行以下命令编辑用户信息。这个示例会更新电子邮件地址。
    # ovirt-aaa-jdbc-tool user edit test1 --attribute=email=jdoe@example.com

过程 15.14. 删除用户

以下介绍了如何删除用户账户
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 删除用户:
    # ovirt-aaa-jdbc-tool user delete test1
  3. 从管理门户中删除用户。相关信息请参阅 第 15.6.4 节 “删除用户”

15.7.2. 修改内部管理员用户的密码

使用 ovirt-aaa-jdbc-tool 工具程序可以重置内部管理用户(admin@internal)的密码。修改后不需要重启 ovirt-engine 服务就可以使修改的密码生效。
在默认情况下,内部域中的用户账户的密码策略有以下限制:
  • 最少 6 个字符。
  • 修改密码时不能使用以前使用过的密码。
如需了解与密码策略相关的信息,以及其它默认的设置,请运行 ovirt-aaa-jdbc-tool settings show

过程 15.15. 为内部管理员用户重设密码

  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 要使用交互模式修改密码,运行以下命令。您需要为 --password-valid-to 设置一个值,否则密码的过期时间会被默认设置为当前的时间。日期的格式是 yyyy-MM-dd HH:mm:ssX。在这个示例中,Z 代表 UTC 时间。如需了解更多选项信息,请运行 ovirt-aaa-jdbc-tool user password-reset --help
    # ovirt-aaa-jdbc-tool user password-reset admin --password-valid-to="2025-08-01 12:00:00Z"

15.7.3. 禁用内部管理员用户

您可以在本地域中禁用包括在运行 engine-setup 时创建的 admin@internal 用户在内的用户。在禁用默认的 admin 用户前,请确保在环境中最少有一个具有完全管理权限的用户。

过程 15.16. 禁用内部管理员用户

  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 确认另外一个具有 SuperUser 角色的用户已被加入到环境中。相关信息请参阅 第 15.6.1 节 “添加用户并为用户分配门户权限”
  3. 禁用默认的 admin 用户:
    # ovirt-aaa-jdbc-tool user edit admin --flag=+disabled

    注意

    要启用一个已禁用的用户,运行 ovirt-aaa-jdbc-tool user edit username --flag=-disabled

15.7.4. 管理组

您可以使用 ovirt-aaa-jdbc-tool 工具程序管理您的本地域中的组账户。管理组和管理用户相似。运行 ovirt-aaa-jdbc-tool group --help 可以列出组的所有选项。本节提供了一些常见的任务示例。

过程 15.17. 创建一个组

以下介绍了如何创建组账户、为组添加用户以及查看组详情的步骤。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 创建一个新组
    # ovirt-aaa-jdbc-tool group add group1
  3. 为组添加用户。这些用户需要已存在。
    # ovirt-aaa-jdbc-tool group-manage useradd group1 --user=test1

    注意

    运行 ovirt-aaa-jdbc-tool group-manage --help 可以显示 group-manage 的完整选项列表。
  4. 查看组账户详情:
    # ovirt-aaa-jdbc-tool group show group1
  5. 在管理门户中添加新创建的组,并为组分配适当的角色和权限。组中的用户会继承组的角色和权限。如需了解更多相关信息,请参阅 第 15.6.1 节 “添加用户并为用户分配门户权限”

过程 15.18. 创建嵌套的组

以下介绍了在组中创建其它组的步骤。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 创建第一个组:
    # ovirt-aaa-jdbc-tool group add group1
  3. 创建第二个组:
    # ovirt-aaa-jdbc-tool group add group1-1
  4. 把第二个组添加到第一个组中:
    # ovirt-aaa-jdbc-tool group-manage groupadd group1 --group=group1-1
  5. 把第一个组添加到管理门户中,并为组分配适当的角色和权限。如需了解更多相关信息,请参阅 第 15.6.1 节 “添加用户并为用户分配门户权限”

15.7.5. 查询用户和组

使用 query 模块可以对用户和组信息进行查询。如需了解这个模块的所有选项,请运行 ovirt-aaa-jdbc-tool query --help

过程 15.19. 列出所有用户或组账户的信息

以下步骤会显示所有账户的信息。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
    • 列出所有用户账户信息:
      # ovirt-aaa-jdbc-tool query --what=user
    • 列出所有组账户信息:
      # ovirt-aaa-jdbc-tool query --what=group

过程 15.20. 列出过滤的账户信息

以下步骤会显示经过过滤的账户信息。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
    • 列出名字以字母 j 开头的用户账户信息。
      # ovirt-aaa-jdbc-tool query --what=user --pattern="name=j*"
    • 列出部门属性被设置为 marketing 的组的信息:
      # ovirt-aaa-jdbc-tool query --what=group --pattern="department=marketing"

15.7.6. 管理帐户设置

使用 ovirt-aaa-jdbc-tool settings 模块卡以改变默认账户的设置。

过程 15.21. 更新账户设置

以下介绍了更新默认账户设置的步骤。
  1. 登录到 Red Hat Virtualization Manager 所在的机器。
  2. 运行以下命令显示所有设置:
    # ovirt-aaa-jdbc-tool setting show
  3. 修改相关设置:
    • 以下命令把所有用户账户的默认登录会话时间改为 60 分钟。它的默认值时 10080 分钟。
      # ovirt-aaa-jdbc-tool setting set --name=MAX_LOGIN_MINUTES --value=60
    • 以下命令更新了把用户账户被锁定前可以进行登录操作的失败次数。它的默认值是 5。
      # ovirt-aaa-jdbc-tool setting set --name=MAX_FAILURES_SINCE_SUCCESS --value=3

      注意

      运行 ovirt-aaa-jdbc-tool user unlock test1 可以取消锁定这个已被锁定的用户。

15.8. 配置额外的本地域

创建默认的 internal 域以外的额外本地域也被支持。使用 ovirt-engine-extension-aaa-jdbc 扩展可以实现这个目的,它可以在不附加外部目录服务器的情况下创建多个域。这种情况在一个企业级环境中并不常见。
额外创建的本地域不会在标准的 Red Hat Virtualization 升级过程中被自动升级,它需要被手工升级。如需了解更多相关信息,请参阅 README 文件(/usr/share/doc/ovirt-engine-extension-aaa-jdbc-version/README.admin)。

第 16 章 配额和服务级别合同的策略

16.1. 配额介绍

配额是 Red Hat Virtualization 提供的一个对资源使用进行限制的工具。它可以被看做为在用户权限基础上进行的进一步资源使用限制。
配额是一个数据中心的对象。
Red Hat Virtualization 环境的管理员可以通过配额来限制用户对内存、CPU 和存储的访问。配额定义了管理员可以分配给用户的内存资源和存储资源的限制,而用户只能使用限额内的资源。当配额内的资源被用完后,Red Hat Virtualization 将不再允许用户进行操作。
Red Hat Enterprise Virtualization 包括两个不同类型的配额:

表 16.1. 两个不同类型的配额

配额类型定义
运行时配额(Run-time Quota)这类配额限制对运行时资源(如 CPU 和内存)的使用。
存储配额这类配额限制对存储的使用。
和 SELinux 一样,配额有三种模式:

表 16.2. 配额模式

配额模式功能
强制的(Enforced)强制执行您在审计模式下设置的配额。
审计(Audit)您可以在这个模式下改变配额的设置。您可以使用这个模式来增加或减少分配给用户的运行时配额和存储配额。
禁用(Disabled)这个模式会禁用设置的运行时配额和存储配额限制。
在用户需要运行一个虚拟机时,这个虚拟机的系统配置会和相关的运行时配额和存储配额限制进行比较。
如果启动一个虚拟机会导致所有虚拟机所使用的资源超过了相关配额所规定的限制,Red Hat Enterprise Virtualization Manager 将不会启动这个虚拟机。
如果在用户创建一个新虚拟磁盘时会导致所有虚拟磁盘的容量超过了相关配额所规定的限制,这个创建磁盘的操作将会失败。
配额允许资源共享同一个硬件。它支持硬阈值(hard threshold)和软阈值(soft threshold)。管理员可以使用配额在资源上设置阈值。从用户的角度来看,这个阈值就是 100% 使用资源的值。为了避免因为用户使用的资源超过了阈值而产生的系统问题,系统会提供一个"宽限(grace)"值,阈值允许在一个短时间内被超过。当超过阈值发生时,一个提示信息会发送给用户。

重要

配额限制了虚拟机对资源的使用,如果不注意这些配额,将可以会导致无法使用您的虚拟机和虚拟磁盘。
当配额使用强制(enforced)模式时,没有配额的虚拟机和磁盘将无法被使用。
要启动一个虚拟机,必须为它设置一个配额。
要创建一个虚拟机的快照,必须为和这个虚拟机相关联的磁盘设置一个配额。
当从一个虚拟机上创建一个模板时,您会被提示选择这个模板所需要的资源配额。这将允许您为模板(以及以后根据模板创建的虚拟机)设置和现在这个虚拟机不同的配额。

16.2. 共享配额和单独定义的配额

具有 SuperUser 权限的用户可以为单独的用户创建单独用户配额,也可以为一个组创建组配额。
组配额可以为 Active Directory 中的用户设置。假设一个组有 10 个用户,并被分配了 1TB 存储配额。如果其中的一个用户使用了所有的 1TB 存储空间,整个组将处于超过配额的状态,所有的用户都将无法使用和这个组相关的存储。
单独用户配额只对一个用户有效。如果这个用户使用了所有被分配的运行时配额或存储配额,这个用户将处于超过配额的状态,并将无法使用和这个配额相关的存储。

16.3. 配额的计算

当为资源设置配额后,对资源所进行的每个涉及到存储、vCPU 或内存的操作都会导致配额使用情况的变化。
因为配额是限制用户访问资源的上限,所以配额使用的计算方法和用户实际使用的情况可能会有所不同。配额是计算最大的、可能被使用的资源,而不是计算当前正在被使用的资源。

例 16.1. 配额计算实例

一个用户运行一个有 1 个 vCPU 和 1024MB 内存的虚拟机,这将占用这个用户所获得的配额中的 1 个 vCPU 和 1024MB 内存。当这个虚拟机被停止使用时,被占用的 1 个 vCPU 和 1024MB 的配额会被释放。运行时的配额占用只有在资源真正被使用时才发生。
一个用户创建了一个 10GB 自动精简配置(thin provision)的虚拟磁盘,其中只有 3GB 磁盘空间被实际使用。这时的配额占用值为 10GB 而不是 3GB,因为配额是计算它的最大的、可能被使用的资源而不是实际正在被使用的资源。

16.4. 在一个数据中心上启用和改变配额模式

以下过程介绍了在一个数据中心中启用或改变配额模式的方法。在定义配额前,您必须选择一个配额模式。您需要登录到管理门户来进行以下操作。
使用审计模式来测试您所设置的配额可以正常工作。在创建和修改一个配额时,这个配额的模式可以不是审计模式。

过程 16.1. 在一个数据中心上启用配额

  1. 在导航框中点数据中心标签页。
  2. 选择您需要对配额进行修改的数据中心。
  3. 点导航框左上的编辑
    一个编辑数据中心窗口被打开。
  4. 配额模式下拉菜单中选择强制的
  5. 确定
您在数据中心的级别上启用了一个配额模式。如果您在测试的时候把配额模式设置为审计,您必须把它改为强制的后配额的设置才会起作用。

16.5. 创建一个新的配额策略

在启用了配额模式(审计模式或强制模式)后,您需要定义一个配额策略来管理数据中心中的资源使用情况。

过程 16.2. 创建一个新的配额策略

  1. 在树型模式中,选择数据中心。配额标签页会出现在导航框中。
  2. 点导航框中的配额标签页。
  3. 在导航框中点添加新建配额窗口被打开。
  4. 名称项中输入名称。
    描述项中输入它的描述。
  5. 新建配额窗口的内存和 CPU 项中使用绿色的滑行条设置集群阈值(Cluster Threshold)。
  6. 新建配额窗口的内存和 CPU 项中使用绿色的滑行条设置集群 Grace
  7. 选择所有集群特定集群选项。如果使用特定集群选项,选择要添加配额策略的集群。
  8. 编辑按钮打开编辑配额窗口。
  9. 内存项中选择无限选项(允许在集群中无限使用内存资源),或选择限制在选项来设置内存的配额。如果您选择了限制在选项,请在 MB 项中输入内存的配额值。
  10. CPU 项中,选择无限选项或限制在选项来设置 CPU 的配额。如果您选择了限制在选项,在vCpus项中输入 vCPU 的数量。
  11. 编辑配额窗口中点确定
  12. 新建配额窗口的存储项中,使用绿色的滑行条设置存储阈值
  13. 新建配额窗口的存储项中,使用绿色的滑行条设置存储 Grace
  14. 选择所有存储域特定存储域选项。如果使用特定存储域选项,选择要添加配额策略的存储域。
  15. 编辑按钮打开编辑配额窗口。
  16. 存储配额项中选择无限选项(允许无限使用存储资源),或选择限制在选项来设置存储的配额。如果您选择了限制在选项,请在 GB 项中输入存储的配额值。
  17. 编辑配额窗口中点确定。您将返回到新建配额窗口。
  18. 新建配额窗口中点确定
结果

您创建了一个新的配额策略。

16.6. 配额阈值设置介绍

表 16.3. 配置阈值和 grace

设置定义
集群阈值(Cluster Threshold)每个数据中心可用的集群资源。
集群 Grace在数据数据中心的集群阈值被超过后仍然可以被使用的集群资源。
存储阈值每个数据中心可用的存储资源。
存储 Grace在数据数据中心的存储阈值被超过后仍然可以被使用的存储资源。
如果一个配额是带有 20% 宽限(grace) 的 100 GB,用户将在使用了 120 GB 存储后无法再使用存储资源。如果同样的配额还设置了 70% 阈值(Threshold),用户将会在使用超过了 70 GB 的存储后收到一个提示信息(但是用户仍然可以继续使用存储,直到超过了 120 GB)。“阈值(Threshold)" 和“宽限(Grace)”值都是相对于限额的。“阈值(Threshold)"可以被看做为一个“软限制”,如果超过它会产生一个提示信息;而“宽限(Grace)”可以被看做“硬限制”,用户无法使用超过这个限制的资源。

16.7. 为对象分配一个配额

介绍

下面介绍了为一个虚拟机设置配额的方法。

过程 16.3. 为一个虚拟机设置配额

  1. 在导航框中,选择您要设置配额的虚拟机。
  2. 编辑键打开编辑虚拟机窗口。
  3. 使用配额下拉菜单选择虚拟机要使用的配额。
  4. 确定
结果

您为所选的虚拟机设置了一个配额。

介绍

本操作说明如何为虚拟磁盘关联配额。

过程 16.4. 为虚拟机磁盘设置配额

  1. 在导航框中,选择您要设置配额的磁盘所在的虚拟机。
  2. 在详情框中选择您需要设置配额的磁盘。
  3. 编辑打开编辑虚拟磁盘窗口。
  4. 选择这个虚拟磁盘需要使用的配额。
  5. 确定
结果

您为您所选择的磁盘设置了一个限额。

重要

为了使虚拟机可以正常工作,和虚拟机相关的所有对象都必须设置配额。如果您没有设置配额,虚拟机将无法工作。在这个情况出现时, Manager 会显示一个模糊的错误信息,使您无法方便地知道是否是因为配额产生了问题。另外,如果虚拟机没有设置配额,将无法对那个虚拟机进行快照。如果虚拟机的虚拟磁盘没有设置配额,也无法通过那个虚拟机创建模板。

16.8. 使用配额限制用户对资源的使用

介绍

下面介绍了如果使用配额来限制用户对资源的使用。

过程 16.5. 为一个用户设置一个配额

  1. 在树型框中,点您要设置配额的用户所在的数据中心。
  2. 点导航框中的配额页。
  3. 在导航框中选择需要的配额。
  4. 在详情框中点消费者标签页。
  5. 添加
  6. 搜索项中输入您要设置配额的用户名。
  7. 执行
  8. 选中您所需的用户。
  9. 为用户和组分配配额窗口中的确定
结果

所选的用户会出现在详情框的消费者标签页中。

16.9. 编辑配额

介绍

下面介绍了如何编辑一个存在的配额的方法。

过程 16.6. 编辑配额

  1. 在树型面板上,点击你要编辑配额的数据中心。
  2. 在导航面板上点击配额标签页。
  3. 点您需要编辑的配额名。
  4. 点导航框中的编辑
  5. 一个编辑配额窗口会被打开。如果需要,在名称项中输入名称。
  6. 如果需要,在描述项中输入描述。
  7. 选择所有集群选项或特定的集群选项。使用集群阈值集群 Grace 滑动条调整内存和 CPU 的值。
  8. 选中所有存储域特定的存储域。使用存储阈值存储 Grace 滑动条调整存储的值。
  9. 编辑配额窗口中点确定来确认新的配额设置。
结果

您编辑了一个存在的配额。

16.10. 删除配额

介绍

以下过程描述了如何删除配额。

过程 16.7. 删除配额

  1. 在树型面板上,点击你要编辑配额的数据中心。
  2. 在导航面板上点配额标签页。
  3. 点您要删除的配额的名称。
  4. 点导航面板顶部、标签页下面的删除
  5. 删除配额窗口中点确定来确认删除这个配额。
结果

您删除了一个配额。

16.11. 服务级别协议(SLA)策略的实施

介绍

以下描述了如何设置 CPU 服务级别协议功能的方法。

过程 16.8. 设置一个服务级别协议的 CPU 策略

  1. 在导航框中选新建虚拟机
  2. 选择显示高级选项
  3. 选择资源分配标签页。
    Description

    图 16.1. 服务级别协议(SLA)策略的实施 - CPU 分配菜单

  4. 设置 CPU 共享。它可以被设为自定义禁用的。设为的虚拟机所获得的 CPU 共享将是设为的虚拟机所获得的 CPU 共享的两倍;而设为的虚拟机所获得的 CPU 共享将是设为的虚拟机所获得的 CPU 共享的两倍。如果设为禁用,VDSM 将使用一个老的算法来决定 CPU 共享值(通常情况下,它的值是 1020)。
结果

您设置了一个与 CPU 相关的服务级别协议策略。用户对 CPU 资源的使用会根据这个策略进行。

第 17 章 事件通知

17.1. 在管理门户中配置事件通知

介绍

当 Red Hat Virtualization Manager 所管理的虚拟化环境中发生特定事件时,Red Hat Virtualization Manager 会通过电子邮件通知特定的用户。为了使用这个功能,您需要设置一个邮件发送系统来传输这些通知信息。管理门户只能配置使用电子邮件发送事件通知。SNMP trap 需要在 Manager 所在的机器上配置。

过程 17.1. 配置事件通知机制

  1. 确认您已经设置了一个邮件发送系统。
  2. 使用用户资源页、树形模式或搜索功能来找到并选择需要接收事件通知的用户。
  3. 在详情框中点事件通知器标签页,列出这个用户会收到的事件通知。如果您还没有为这个用户设置任何事件通知,这个列表会是空的。
  4. 管理事件打开添加事件通知窗口。
    添加事件通知窗口

    图 17.1. 添加事件通知窗口

  5. 使用展开所有按钮或某个对象的展开箭头来显示相关的事件。
  6. 根据需要选择相应的选择框。
  7. 邮件接收者项中输入需要一个电子邮件地址。
  8. 确定保存所做的修改并关闭窗口。
  9. 运行以下命令在 Red Hat Virtualization Manager 上添加并启动 ovirt-engine-notifier 服务:
    # systemctl daemon-reload
    # systemctl enable ovirt-engine-notifier.service
    # systemctl restart ovirt-engine-notifier.service
结果

指定的用户将会收到 Red Hat Virtualization 环境中的相关事件的通知邮件。这些相关的事件在用户的事件通知器标签页中被列出。

17.2. 在管理门户中取消事件通知

介绍

用户配置了一些不需要的电子邮件事件通知,想取消它们。

过程 17.2. 取消事件通知

  1. 用户标签页中,选择用户或用户组。
  2. 在详情框中选择事件通知器标签页来列出这个用户接收的事件列表。
  3. 管理事件打开添加事件通知窗口。
  4. 使用展开所有按钮或某个对象的展开箭头来显示相关的事件。
  5. 取消相应项的选择来删除事件通知。
  6. 确定保存所做的改变并关闭窗口。
结果

您为用户取消了不需要的事件通知。

17.3. ovirt-engine-notifier.conf 配置文件中的事件通知参数

事件通知器的配置文件是 /usr/share/ovirt-engine/services/ovirt-engine-notifier/ovirt-engine-notifier.conf

表 17.1. ovirt-engine-notifier.conf 变量

变量名默认值备注
SENSITIVE_KEYS没有一组以逗号分隔的,不会被记录到日志中的密钥。
JBOSS_HOME/usr/share/jbossasRed Hat Enterprise Virtualization Manager 使用的 JBoss 应用服务器的位置。
ENGINE_ETC/etc/ovirt-engineRed Hat Enterprise Virtualization Manager 使用的 etc 目录的位置。
ENGINE_LOG/var/log/ovirt-engineRed Hat Enterprise Virtualization Manager 使用的 logs 目录的位置。
ENGINE_USR/usr/share/ovirt-engineRed Hat Enterprise Virtualization Manager 使用的 usr 目录的位置。
ENGINE_JAVA_MODULEPATH${ENGINE_USR}/modulesJBoss 模块附加到的文件路径。
NOTIFIER_DEBUG_ADDRESS没有一台机器的地址。这个机器被用来对事件通知器所使用的 Java 虚拟机进行远程故障排除。
NOTIFIER_STOP_TIME30这个服务超时的时间(以秒为单位)
NOTIFIER_STOP_INTERVAL1超时计数器值增加的间隔时间(以秒为单位)。
INTERVAL_IN_SECONDS120为用户发送通知的间隔时间(以秒为单位)
IDLE_INTERVAL30低优先级任务执行的间隔时间(以秒为单位)。
DAYS_TO_KEEP_HISTORY0产生事件通知的事件在历史记录表中保存的天数。如果这个参数没有设置,这些事件会被永久保存在历史记录表中。
FAILED_QUERIES_NOTIFICATION_THRESHOLD30指定在事件通知邮件发出后,经过多少次相同的失败查询后才再发出通知。例如,这个变量被设为3,在一个查询失败后发出了一个事件通知,下一次只有发生了 3 次相同的查询失败后才会再次发送这个事件通知。如果您把这个变量的值设为 01,每次查询失败后都会发送一个通知邮件。
FAILED_QUERIES_NOTIFICATION_RECIPIENTS没有接收通知邮件的用户的邮件地址。用户可以指定多个用户的邮件地址(使用逗号分隔)。这个变量现在已经被 FILTER 变量替代。
DAYS_TO_SEND_ON_STARTUP0当事件通知器启动时,多少天前的事件需要被处理并发送事件通知。
FILTERexclude:*决定触发事件的条件,以及接收邮件通知的用户的邮件地址。这个变量的值由 includeexclude,事件和接收者的邮件组成。例如,include:VDC_START(smtp:mail@example.com) ${FILTER}
MAIL_SERVER没有SMTP 邮件服务器的地址。这个变量必须被设置。
MAIL_PORT25SMTP 使用的端口号。可能的值包括 25(SMTP)、465(使用 SSL 的 SMTP)和 587(使用 TLS 的 SMTP)。
MAIL_USER没有如果使用 SSL 来进行用户验证,这个变量必须被设置。当 MAIL_FROM 变量没有设置时,这个变量值也被用来指定 "from" 用户的地址。一些邮件服务器并不支持这个功能。这里的邮件地址使用 RFC822 格式。
SENSITIVE_KEYS${SENSITIVE_KEYS},MAIL_PASSWORD如果邮件服务器需要用户验证,或启用了 SSL 或 TLS,在这里指定用户的验证信息。
MAIL_PASSWORD没有如果邮件服务器需要用户验证,或启用了 SSL 或 TLS,在这里指定用户的验证信息。
MAIL_SMTP_ENCRYPTION没有邮件所使用的加密方法。可能的值包括 nonessltls
HTML_MESSAGE_FORMATfalse如果这个变量的值被设为 true,邮件服务器以 HTML 的形式发送信息。
MAIL_FROM没有如果邮件服务器支持,使用这个变量指定发送者的邮件地址(RFC822 格式)。
MAIL_REPLY_TO没有如果邮件服务器支持,使用这个变量在发送的邮件中指定 reply-to 的邮件地址(RFC822 格式)。
MAIL_SEND_INTERVAL1每个 IDLE_INTERVAL 所发的 SMTP 信息数
MAIL_RETRIES4在确定操作失败前,尝试发送邮件的次数。
SNMP_MANAGER没有作为 SNMP 管理器的机器的 IP 地址或全局域名。如果需要输入多个机器的信息,以一个空格分隔它们(可以包括一个端口号)。如 manager1.example.com manager2.example.com:164
SNMP_COMMUNITYpublic默认的 SNMP community。
SNMP_OID1.3.6.1.4.1.2312.13.1.1提示信息的默认 trap 对象的标识符。当这个 OID 被定义时,所有 trap 类型(包括事件信息)被发送到 SNMP 管理器。请注意,修改默认的 trap 会导致所产生的 trap 和 Manager 的 MIB(Management Information Base,管理信息库)不匹配。
ENGINE_INTERVAL_IN_SECONDS300对 Manager 所在机器进行监测的间隔时间(以秒为单位)。这个间隔是从监测完成后开始计算的。
ENGINE_MONITOR_RETRIES3当对 Manager 所在的机器状态进行监测失败后,重新尝试监控的次数。
ENGINE_TIMEOUT_IN_SECONDS30监测 Manager 所在机器状态的超时时间(以秒为单位)。当达到这个超时时间后没有获得所监测机器的状态,事件通知器会在指定的间隔时间后重新尝试对机器进行监测。
IS_HTTPS_PROTOCOLfalse如果 JBoss 以安全模式运行,这个项必须被设为 true
SSL_PROTOCOLTLS在 SSL 被启用后,JBoss 配置连接器(JBoss configuration connector)所使用的协议。
SSL_IGNORE_CERTIFICATE_ERRORSfalse如果 JBoss 以安全模式运行,并需要忽略 SSL 错误,这个值必须设为 true
SSL_IGNORE_HOST_VERIFICATIONfalse如果 JBoss 以安全模式运行,并需要忽略主机名验证,这个值必须设为 true
REPEAT_NON_RESPONSIVE_NOTIFICATIONfalse这个变量被用来指定,当 Manager 所在的机器没有响应时,是否向相关的用户重复发送错误信息。
ENGINE_PID/var/lib/ovirt-engine/ovirt-engine.pidRed Hat Enterprise Virtualization Manager 的 PID 的路径和文件名。

17.4. 配置 Red Hat Virtualization Manager 来发送 SNMP trap

配置 Red Hat Virtualization Manager 来向一个或多个外部简单网络管理协议(Simple Network Management Protocol,简称 SNMP)管理器发送 SNMP trap 。SNMP trap 包括了系统事件信息,用户可以使用这些数据监控 Red Hat Virtualization 环境。向 SNMP 管理器发送的 trap 的数量和类型可以在 Red Hat Virtualization Manager 中设置。
这个过程假设您已经配置了一个或多个外部 SNMP 管理器来接收 trap,并且有以下信息:
  • 作为 SNMP 管理器的机器的 IP 地址或完全限定域名(FQDN)。另外,需要决定管理器使用哪个端口接收 trap 数据(默认的设置是 UDP 端口 162)。
  • SNMP community。多个 SNMP 管理器可以属于一个 community。只有属于同一个 community 的管理系统和代理才可以相互间进行交流。默认的 community 是 public
  • trap 信息的对象 ID(object identifier,简称为 OID)。Red Hat Virtualization Manager 提供的默认 OID 是 1.3.6.1.4.1.2312.13.1.1。当 OID 被定义后,所有 trap 类型(包括了事件信息)都会被发送到 SNMP 管理器。请注意,修改默认的 trap 会导致所产生的 trap 和 Manager 的 MIB(Management Information Base,管理信息库)不匹配。

注意

Red Hat Virtualization Manager 在 /usr/share/doc/ovirt-engine/mibs/OVIRT-MIB.txt/usr/share/doc/ovirt-engine/mibs/REDHAT-MIB.txt 中提供了管理信息库(MIB)。在进行处理前,需要把 MIBs 加载到 SNMP 管理器中。
默认的 SNMP 配置值存在于 Manager 的事件通知守护进程的配置文件中(/usr/share/ovirt-engine/services/ovirt-engine-notifier/ovirt-engine-notifier.conf)。以下所使用的值是基于这个文件所提供的默认或示例值。如需修改默认设置,我们推荐您使用另外一个文件来覆盖默认设置,而不是直接修改 ovirt-engine-notifier.conf 文件,这样可以在需要对系统进行改变时(如对系统进行升级)保持您原来所做的配置改变。

过程 17.3. 在 Manager 上配置 SNMP trap

  1. 在 Manager 上创建 SNMP 配置文件:
    # vi /etc/ovirt-engine/notifier/notifier.conf.d/20-snmp.conf
  2. 使用以下格式指定 SNMP 管理器,SNMP community 和 OID
    SNMP_MANAGERS="manager1.example.com manager2.example.com:162"
    SNMP_COMMUNITY=public
    SNMP_OID=1.3.6.1.4.1.2312.13.1.1
  3. 指定哪些事件需要发送到 SNMP 管理器:

    例 17.1. 事件实例

    把所有的事件发送到默认的 SNMP 档案:
    FILTER="include:*(snmp:) ${FILTER}"
    把所有严重性为 ERRORALERT 的事件发送到 SNMP 档案:
    FILTER="include:*ERROR(snmp:) ${FILTER}"
    FILTER="include:*ALERT(snmp:) ${FILTER}"
    VDC_START 事件发送到指定的电子邮件地址:
    FILTER="include:VDC_START(snmp:mail@example.com) ${FILTER}"
    把除 VDC_START 以外的事件发送到默认的 SNMP 档案:
    FILTER="exclude:VDC_START include:*(snmp:) ${FILTER}"
    默认的过滤器在 ovirt-engine-notifier.conf 中定义。如果没有禁用这个过滤器或使用覆盖的过滤器,则不会发送通告信息:
    FILTER="exclude:*"
    VDC_START 是一个有效审计日志信息的示例。完整的审计日志信息列表包括在 /usr/share/doc/ovirt-engine/AuditLogMessages.properties 中。另外,还可以在 SNMP manager 中对结果进行过滤。
  4. 保存这个文件。
  5. 启动 ovirt-engine-notifier 服务,并使它可以在系统启动时被自动启动:
    # systemctl start ovirt-engine-notifier.service
    # systemctl enable ovirt-engine-notifier.service
检查您的 SNMP 管理器来确定它可以接收到 trap。

注意

为了使 notifier 服务可以正常运行,SNMP_MANAGERSMAIL_SERVER 需要在 /usr/share/ovirt-engine/services/ovirt-engine-notifier/ovirt-engine-notifier.conf 中(或一个覆盖文件中)正确定义。

第 18 章 工具程序

18.1. oVirt 引擎重新命名工具

18.1.1. oVirt 引擎重命名工具

当在一个全新的系统上运行 engine-setup 时,它会生成一组基于 Manager 的全局域名(FQDN)的证书和密钥。如果 Manager 的全局域名需要被改变(例如,把运行 Manager 的主机迁移到另外一个域中),那些已经包括老的全局域名的记录就需要被修改。ovirt-engine-rename 命令可以自动化这个任务。
ovirt-engine-rename 命令更新以下位置中的 Manager 的全局域名记录:
  • /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf
  • /etc/ovirt-engine/imageuploader.conf.d/10-engine-setup.conf
  • /etc/ovirt-engine/isouploader.conf.d/10-engine-setup.conf
  • /etc/ovirt-engine/logcollector.conf.d/10-engine-setup.conf
  • /etc/pki/ovirt-engine/cert.conf
  • /etc/pki/ovirt-engine/cert.template
  • /etc/pki/ovirt-engine/certs/apache.cer
  • /etc/pki/ovirt-engine/keys/apache.key.nopass
  • /etc/pki/ovirt-engine/keys/apache.p12

警告

当使用 ovirt-engine-rename 命令为 Manager 所在机器上的网络服务器创建一个新证书时,它并不会影响到引擎的证书或是证书授权。因此,使用 ovirt-engine-rename 命令会有一些风险,特别是在从 Red Hat Enterprise Virtualization 3.2 或更早版本升级上来的系统上。我们推荐您在可能的情况下,尽量使用 engine-cleanupengine-setup 来更改 Manager 的全局域名。

18.1.2. Ovirt 引擎重命名命令的语法

ovirt-engine-rename 命令的基本语法是:
# /usr/share/ovirt-engine/setup/bin/ovirt-engine-rename
这个命令还可以使用以下选项:
--newname=[new name]
允许您以非交互模式指定 Manager 的新全局域名。
--log=[file]
允许您指定一个文件的路径和文件名来记录重新命名操作产生的日志信息。
--config=[file]
允许您指定一个配置文件的路径和文件名。这个配置文件会被重命名操作加载。
--config-append=[file]
允许您指定一个配置文件的路径和文件名。这个配置文件可以被用来指定重命名操作所需的答案文件(answer file)的路径和文件名。
--generate-answer=[file]
允许您指定一个文件的路径和文件名。这个文件可以被用来记录答案,以及 ovirt-engine-rename 命令所修改的值。

18.1.3. 使用 Ovirt 引擎重新命名工具

介绍

您可以使用 ovirt-engine-rename 命令来更新 Manager 的全局域名记录。

这个工具程序会检测 Manager 是否提供了一个本地 ISO 或数据存储域。如果提供了,工具程序会在继续进行操作前,提示用户把连接到存储的虚拟机或存储域弹出、关闭或设置为维护模式。这可以防止虚拟机丢掉和它们的虚拟磁盘的连接,并可以防止 ISO 存储域在重新命名的过程中丢掉连接。

过程 18.1. 重新命名 Red Hat Virtualization Manager

  1. 为新的全局域名准备所有的 DNS 和其它相关的记录。
  2. 如果使用 DHCP,更新 DHCP 服务器的配置。
  3. 更新 Red Hat Enterprise Virtualization Manager 的主机名。
  4. 请运行以下命令:
    # /usr/share/ovirt-engine/setup/bin/ovirt-engine-rename
  5. 在提示时按 Enter 来停止引擎服务:
    During execution engine service will be stopped (OK, Cancel) [OK]:
  6. 在提示时输入 Red Hat Enterprise Virtualization Manager 的新全局域名:
    New fully qualified server name:[new name]
结果

ovirt-engine-rename 命令更新了 Manager 的全局域名。

18.2. 引擎配置工具

18.2.1. 引擎配置工具

引擎配置工具是一个用来为 Red Hat Virtualization 环境配置全局设置的命令行工具程序,它和一组以“关键字/值”的形式存储在引擎数据库中的数据进行交互,您可以使用它来获取和设置关键字的值,以及获取所有可用关键字/值的列表。另外,Red Hat Virtualization 环境中不同级别的配置可以被保存为不同的值。

注意

在获取配置关键字/值信息时,并不需要运行 Red Hat Virtualization Manager 或 Red Hat JBoss Enterprise Application Platform。因为这些配置数据被保存在引擎数据库中,所以只要运行了 postgresql 服务就可以更新它们。在 ovirt-engine 服务被重启后,这些配置更新就会有效。

18.2.2. engine-config 命令的使用语法

引擎配置工具可以在 Red Hat Virtualization Manager 所在的机器上运行。使用以下的帮助命令可以显示它的使用方法:
# engine-config --help

常见任务

列出有效的配置关键字
# engine-config --list
列出有效的配置值
# engine-config --all
获得配置关键字的值
# engine-config --get [KEY_NAME]
使用所需的关键字替换 [KEY_NAME] 来获得这个关键字指定版本的值(使用 --cver 参数指定版本)。如果没有指定版本,所有存在版本的值都将被返回。
设置配置关键字的值
# engine-config --set [KEY_NAME]=[KEY_VALUE] --cver=[VERSION]
使用实际的关键字替换 [KEY_NAME];使用您要设置的值替换 [KEY_VALUE]。如果您的环境中包括不止一个配置版本,您还需要指定 [VERSION] 的值。
重启 ovirt-engine 服务使改变生效
为了使改变生效,需要重启 ovirt-engine 服务。
# service ovirt-engine restart

18.3. 镜像上传工具

18.3.1. 镜像上传工具

注意

导出存储域这个概念已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像以及模板可以从导入的存储域中上传到附加到的数据中心中。如需了解更多与导入存储域相关的信息,请参阅 第 8.6 节 “导入存在的存储域”
engine-image-uploader 命令允许您列出导出存储域,把虚拟机的镜像以 OVF 或 OVA 格式上传到一个导出存储域中,从而可以被 Red Hat Virtualization Manager 自动识别。
OVA 是 OVF 文件的 tar 文件。

注意

镜像上传工具只支持由 Red Hat Enterprise Virtualization 产生的、使用 gzip 压缩的 OVF 或 OVA 文件。
OVF 包括了如下结构的 images 和 master 目录:
|-- images
|   |-- [Image Group UUID]
|        |--- [Image UUID (this is the disk image)]
|        |--- [Image UUID (this is the disk image)].meta
|-- master
|   |---vms
|       |--- [UUID]
|             |--- [UUID].ovf

18.3.2. engine-image-uploader 命令的语法

镜像上传命令的基本语法是:
engine-image-uploader [options] list
engine-image-uploader [options] upload [file].[file]...[file]
镜像上传命令支持两个操作 - listupload
  • list 操作会列出镜像可以被上传到的导出存储域。
  • upload 操作把镜像上传到指定的导出存储域中。
当使用这个命令时,您需要选择以上操作中的一个。如果您需要进行 upload 操作,您还需要指定最少一个本地文件。
engine-image-uploader 还包括了其它一些参数。您可以在 /etc/ovirt-engine/imageuploader.conf 文件中为这些参数设定默认的值。

常规选项

-h, --help
显示镜像上传命令的使用信息。
--conf-file=[PATH]
[PATH] 是这个命令要使用的配置文件。默认的配置文件是 etc/ovirt-engine/imageuploader.conf
--log-file=[PATH]
[PATH] 是命令要写入的日志文件。/var/log/ovirt-engine/ovirt-image-uploader/ovirt-image-uploader-[date].log 是默认的日志文件。
--cert-file=[PATH]
[PATH] 是用来验证引擎的证书。默认是 /etc/pki/ovirt-engine/ca.pem
--insecure
不需要验证引擎。
--quiet
把命令设为“安静”模式,从而把控制台的输出减到最小。
-v, --verbose
把命令设为 verbose 模式,从而可以提供详细的控制台输出信息。
-f, --force
当要上传的源文件的文件名和目标导出域中的文件名相同时,可以使用强制模式,它会使用上传文件强制把目标导出域中的同名文件覆盖。

Red Hat Virtualization Manager 选项

-u [USER], --user=[USER]
指定这个命令所要使用的用户信息。[USER] 的格式为 [username]@[domain]。这个用户必须存在于指定的域中,并可以被 Red Hat Virtualization Manager 识别。
-r [FQDN], --engine=[FQDN]
指定镜像文件将要被上传到的 Red Hat Virtualization Manager 的 IP 地址或全局域名。系统会假设镜像上传程序是从 Red Hat Virtualization Manager 所在的同一个机器上运行的。它的默认值是 localhost:443

导出存储域选项

以下选项指定了镜像要被上传到的导出域。这些选项不能同时使用,您只能使用 -e-n
-e [EXPORT_DOMAIN], --export-domain=[EXPORT_DOMAIN]
把存储域 EXPORT_DOMAIN 设为上传的目标域。
-n [NFSSERVER], --nfs-server=[NFSSERVER]
设置 NFS 路径。[NFSSERVER] 是上传的目标 NFS 服务器。

导入选项

下面的选项可以被用来指定,在把镜像上传到导出域时可以包括上传镜像的哪些属性。
-i, --ovf-id
指定镜像的 UUID 不会被更新。在默认的情况下,这个命令会为上传的镜像产生一个新的 UUID,从而可以避免上传文件的文件名和系统中已经存在的镜像重名的问题。
-d, --disk-instance-id
指定镜像中的每个磁盘的 ID 不会被重新命名。在默认情况下,这个命令会为上传镜像中所包含的磁盘产生一个新的 UUID,从而避免了上传镜像中的磁盘和系统中已经存在的磁盘发生冲突的问题。
-m, --mac-address
指定镜像中不会被删除的网络组件。在默认情况下,这个命令会删除上传镜像中的网络接口卡,从而避免和其它虚拟机已经使用的网卡发生冲突。如果您没有使用这个选择,您可以使用管理门户来为新导入的镜像添加网卡,Red Hat Enterprise Virtualization Manager 会确保没有 MAC 地址冲突。
-N [NEW_IMAGE_NAME], --name=[NEW_IMAGE_NAME]
为上传的镜像指定一个新名称。

18.3.3. 创建与镜像上传程序兼容的 OVF 压缩文件

介绍

您可以创建使用 engine-image-uploader 上传的文件。

过程 18.2. 创建与镜像上传程序兼容的 OVF 压缩文件

  1. 使用 Manager 创建一个空的导出域。使用空的导出域可以非常容易地知道哪个目录包括了您的虚拟机。
  2. 把您的虚拟机导出到刚创建的空的导出域。
  3. 登录到作为导出域的存储服务器上,找到 NFS 共享的根并进入挂载点下的子目录。因为您启动时只有一个新的导出域,所以在导出目录下只有一个目录。它包括了 images/master/ 目录。
  4. 运行 tar -zcvf my.ovf images/ master/ 来创建 tar/gzip OVF 文件。
  5. 任何人都可以把这个 OVF 文件(在这个例子中是 my.ovf)通过使用 engine-image-uploader 命令导入到 Red Hat Virtualization Manager 上。
结果

您创建了一个压缩的 OVF 镜像文件。任何人都可以使用 engine-image-uploader 命令来把这个镜像文件上传到 Red Hat Virtualization 环境中。

18.3.4. engine-image-uploader 使用实例

以下例子使用镜像上传工具列出导出域:

例 18.1. 使用镜像上传工具列出导出域

# engine-image-uploader list
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
Export Storage Domain Name | Datacenter  | Export Domain Status
myexportdom               | Myowndc    | active
以下是上传 OVF 文件的实例

例 18.2. 使用镜像上传工具上传一个文件

# engine-image-uploader -e myexportdom upload myrhel6.ovf
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):

18.4. USB Filter Editor

18.4.1. 安装 USB Filter Editor

USB Filter Editor 是一个用来配置 usbfilter.txt 策略文件的 Windows 工具程序。这个策略文件定义了是否允许 Red Hat Virtualization Manager 所管理的虚拟机使用客户端系统上的特定 USB 设备(自动透传)的规则,它位于 Red Hat Virtualization Manager 系统的以下位置:

/etc/ovirt-engine/usbfilter.txt
对 USB filter 策略所做的改变只有在 Red Hat Virtualization Manager 上的 ovirt-engine 服务被重新启动后才有效。
从 Content Delivery Network(https://rhn.redhat.com/rhn/software/channel/downloads/Download.do?cid=20703)下载 USBFilterEditor.msi 文件。

过程 18.3. 安装 USB Filter Editor

  1. 在一台 Windows 机器上,运行从 Content Delivery Network 获得的 USBFilterEditor.msi 安装程序。
  2. 按照安装程序的提示进行操作。除非特别指定,USB Filter Editor 会根据您的 Windows 版本安装在 C:\Program Files\RedHat\USB Filter EditorC:\Program Files(x86)\RedHat\USB Filter Editor 上。
  3. 一个 USB Filter Editor 的快捷启动图标会在您系统的桌面上被创建。

重要

使用一个安全复制(Secure Copy - SCP) 客户端程序来为 Red Hat Virtualization Manager 导入或导出过滤器策略。您可以使用 WinSCP (http://winscp.net) 作为 Windows 机器的安全复制程序。
默认的 USB 设备策略提供了虚拟机访问 USB 设备的基本规则,用户可以根据需要修改它。

18.4.2. USB Filter Editor 界面

  • 双击您桌面上的 USB Filter Editor 快捷图标
    Red Hat USB Filter Editor

    图 18.1. Red Hat USB Filter Editor

Red Hat USB Filter Editor 界面为每个 USB 设备显示了 ClassVendorProductRevisionAction。如要允许使用某个 USB 设备,这个设备所对应的 Action 项就应该被设置为 Allow;如果不允许使用,就设为 Block

表 18.1. USB Editor 项

名称描述
ClassUSB 设备的类型,如打印机,存储控制器。
Vendor所选设备的厂商。
ProductUSB 设备的型号。
Revision产品的版本。
Action允许或不允许使用特定的设备。
USB 设备策略规则会按照它们所列出的顺序被使用。使用 UpDown 键来移动规则在列表中的位置。Block 所有设备的规则需要保持在列表的最后一个,这可以确保除了在 USB Filter Editor 中明确指定可以访问的 USB 设备外,其它所有的 USB 设备都无法被访问。

18.4.3. 添加一个 USB 策略

介绍

为 USB Filter Editor 添加一个 USB 策略。

双击桌面上的 USB Filter Editor 快捷图标。

过程 18.4. 添加一个 USB 策略

  1. Add 键,Edit USB Criteria 窗口被打开:
    编辑 USB 条件

    图 18.2. 编辑 USB 条件

  2. 使用 USB ClassVendor IDProduct IDRevision 选择框列出指定的设备。
    Allow 键来允许虚拟机使用 USB 设备;点 Block 键来禁止虚拟机使用 USB 设备。
    OK 保存过滤规则并关闭窗口。

    例 18.3. 添加一个设备

    以下的实例是为可以使用的设备列表添加一个 USB 设备(厂商是 Acer Communications & Multimedia,USB Class 是 Smartcard,设备为 EP-1427X-2 Ethernet Adapter)。
  3. FileSave 保存所做的改变。
结果

您为 USB Filter Editor 添加了一个 USB 策略。USB 过滤策略需要被输出到 Red Hat Virtualization Manager 中才能起作用。

18.4.4. 删除一个 USB 策略

介绍

从 USB Filter Editor 中删除一个 USB 策略。

在您的系统桌面上双击 USB Filter Editor 快捷图标来打开它。

过程 18.5. 删除一个 USB 策略

  1. 选择您需要删除的策略。
    选择 USB 策略

    图 18.3. 选择 USB 策略

  2. Remove。一个要求您确认删除策略的信息会被显示。
    Edit USB Criteria

    图 18.4. Edit USB Criteria

  3. Yes 来确认您要删除所选的策略。
  4. FileSave 来保存所做的修改。
结果

您从 USB Filter Editor 中删除了一个 USB 策略。USB 过滤器策略需要被输出到 Red Hat Virtualization Manager 后才会有效。

18.4.5. 搜索 USB 设备策略

介绍

搜索连接的 USB 设备来在 USB Filter Editor 中允许使用或禁止使用它们。

双击您桌面上的 USB Filter Editor 快捷图标打开它。

过程 18.6. 搜索 USB 设备策略

  1. SearchAttached USB Devices 窗口会显示所有连接的设备列表。
    连接的 USB 设备。

    图 18.5. 连接的 USB 设备。

  2. 选择设备,并根据需要点 AllowBlock。双击所选的设备,窗口会被关闭,这个设备的一个策略规则被添加到列表中。
  3. 使用 UpDown 按钮改变新策略规则在列表中的位置。
  4. FileSave 保存您所做的修改。
结果

您对连接的 USB 设备进行了搜索。USB 过滤策略需要被输出到 Red Hat Virtualization Manager 中才能起作用。

18.4.6. 输出一个 USB 策略

介绍

USB 设备策略的改变需要被输出并上传到 Red Hat Virtualization Manager 后才会有效。您需要在上传策略后重新启动 ovirt-engine 服务。

双击您桌面上的 USB Filter Editor 快捷图标打开它。

过程 18.7. 输出一个 USB 策略

  1. ExportSave As 窗口被打开。
  2. 把文件存为 usbfilter.txt
  3. 使用一个安装复制程序(如 WinSCP)把 usbfilter.txt 文件上传到运行 Red Hat Virtualization Manager 的服务器上。这个文件必须被保存在服务器的以下目录中:

    /etc/ovirt-engine/
  4. root 用户的身份在运行 Red Hat Virtualization Manager 的服务器上重新启动 ovirt-engine 服务。
    # systemctl restart ovirt-engine.service
结果

USB 设备策略在 Red Hat Virtualization 环境中被应用。

18.4.7. 导入一个 USB 策略

总结

您需要把一个存在的 USB 设备策略下载,并导入到 USB Filter Editor 后才可以编辑它。

过程 18.8. 导入一个 USB 策略

  1. 使用一个安装复制程序(如 WinSCP)把 usbfilter.txt 文件上传到运行 Red Hat Virtualization Manager 的服务器上。这个文件必须被保存在服务器的以下目录中:

    /etc/ovirt-engine/
  2. 双击您桌面上的 USB Filter Editor 快捷图标打开它。
  3. Import 打开 Open 窗口。
  4. 打开从服务器下载的 usbfilter.txt 文件。
结果

您可以在 USB Filter Editor 中编辑 USB 设备策略。

18.5. 日志收集程序

18.5.1. 日志收集程序

Red Hat Virtualization Manager 包括了一个日志收集程序,您可以使用它从 Red Hat Virtualization 环境中收集所需要的日志信息。
日志收集的命令是 engine-log-collector。您需要使用 root 用户身份登录到 Red Hat Virtualization 环境中。engine-log-collector -h 会显示 engine-log-collector 命令的用法信息,以及所有有效选项的列表。

18.5.2. ovirt-log-collector 命令语法

日志采集命令的基本语法:
ovirt-log-collector [options] list [all, clusters, datacenters]
ovirt-log-collector [options] collect
这个命令有两个模式:listcollect
  • list 参数会列出主机、集群或数据中心是否附加到了 Red Hat Virtualization Manager。您可以根据所类出的项对收集的日志进行过滤。
  • collect 参数将会从 Red Hat Virtualization Manager 上收集日志。收集的日志数据保存在 /tmp/logcollector 目录中。engine-log-collector 命令会为每个日志分配特定的文件名。
除非被其它参数指定,在默认情况下,它会列出有效的主机以及它们所属的数据中心和集群。在收集特定日志信息时,您会被提示输入用户名和密码。
engine-log-collector 命令还提供了其他参数来对它进行控制。

常规选项

--version
显示命令的版本号。
-h, --help
显示命令的帮助信息。
--conf-file=PATH
PATH 设定为这个命令所使用的配置文件。
--local-tmp=PATH
把日志文件保存在 PATH 目录中。默认的目录是 /tmp/logcollector
--ticket-number=TICKET
TICKET 作为 SOS 报告中的事件号(case number)。
--upload=FTP_SERVER
FTP_SERVER 设为使用 FTP 把所收集的日志信息传输到的目的地。除非红帽的技术支持让您使用这个参数,否则请不要使用它。
--log-file=PATH
PATH 设为这个命令用来作为日志输出的文件的文件名。
--quiet
把命令设为“安静”模式,从而把控制台的输出减到最小。在默认的情况下,安静模式没有被设定。
-v, --verbose
把命令设为 verbose 模式,从而可以提供详细的控制台输出信息。在默认的情况下,verbose 模式没有被设置。

Red Hat Virtualization Manager 选项

这些选项被用来为 Red Hat Virtualization Manager 过滤日志信息的收集,并提供用户认证信息。
这些参数可以被组合使用。例如,engine-log-collector --user=admin@internal --cluster ClusterA,ClusterB --hosts "SalesHost"* 指定了用户为 admin@internal,并只收集集群 A 和集群 B 中的 SalesHost 主机的日志。
--no-hypervisors
不收集虚拟主机的日志信息。
-u USER, --user=USER
指定登录的用户。USER 的格式为 user@domain(其中的 user 是用户名,domain 是使用的目录服务的域)。这里所指定的用户必须存在于目录服务中,并可以被 Red Hat Virtualization Manager 所识别。
-r FQDN, --rhevm=FQDN
设置用来收集日志的 Red Hat Virtualization Manager 的全局域名(使用 Red Hat Virtualization Manager 的全局域名替换 FQDN)。这个命令假设日志收集命令是在 Red Hat Virtualization Manager 所在的同一台机器上被运行的,因此它的默认值是 localhost
-c CLUSTER, --cluster=CLUSTER
除了 Red Hat Virtualization Manager 的日志外,还收集 CLUSTER 中指定的集群中的主机日志。它可以通过以逗号分隔的集群名或匹配特征来指定多个集群。
-d DATACENTER, --data-center=DATACENTER
除了 Red Hat Virtualization Manager 的日志外,还收集 DATACENTER 中指定的数据中心中的主机日志。它可以通过以逗号分隔的数据中心名或匹配特征来指定多个数据中心。
-H HOSTS_LIST, --hosts=HOSTS_LIST
除了 Red Hat Virtualization Manager 的日志外,还收集 HOSTS_LIST 中指定的主机日志。它可以通过以逗号分隔的主机名、全局域名、IP 地址或匹配特征来指定多个主机。

SOS 报告选项

日志收集程序使用 JBoss SOS 插件。使用以下选项来从 JMX 控制台进行数据收集。
--jboss-home=JBOSS_HOME
JBoss 的安装路径。默认值是 /var/lib/jbossas
--java-home=JAVA_HOME
Java 安装路径。默认值是 /usr/lib/jvm/java
--jboss-profile=JBOSS_PROFILE
显示以空格分隔的服务器配置档案列表;日志数据的收集会被限制在这些档案中。它的默认值是 'rhevm-slimmed'
--enable-jmx
启用从 Red Hat Virtualization 的 JBoss JMX 接口收集运行时统计数据的功能。
--jboss-user=JBOSS_USER
有权利调用 JBoss JMX 的用户。默认值是 admin
--jboss-logsize=LOG_SIZE
获取的日志文件的最大容量(以 MB 为单位)
--jboss-stdjar=STATE
为 JBoss 标准的 JAR 设置所采集的 JAR 统计数据。把 STATE 替换为 onoff。默认的值是 on
--jboss-servjar=STATE
设置从任何的服务器配置目录中收集 JAR 的统计数据。把 STATE 替换为 onoff。默认的值是 on
--jboss-twiddle=STATE
设置是否收集 twiddle 数据。Twiddle 是一个 JBoss 工具程序,它可以被用来从 JMX 的调用者中收集数据。把 STATE 替换为 onoff。它的默认值是 on
--jboss-appxml=XML_LIST
显示一组带有 XML 描述数据的应用程序。这些应用程序以空格分隔,并包括在一对引号中。这个参数的默认值是 all

SSH 配置

--ssh-port=PORT
PORT 设置为用来和虚拟主机进行 SSH 连接所使用的端口。
-k KEYFILE, --key-file=KEYFILE
KEYFILE 设置为用来访问虚拟主机的公共 SSH 密钥。
--max-connections=MAX_CONNECTIONS
MAX_CONNECTIONS 设置为同时可以和虚拟主机进行连接来收集日志的 SSH 连接的数量。它的默认值是 10

PostgreSQL 数据库选项

如果数据库的默认用户名和密码已经被改变,使用 pg-userdbname 参数指定数据库当前的用户名和密码。
如果数据库不在本地,需要使用 pg-dbhost 参数(可能还需要使用 pg-host-key 参数)。另外,进行远程日志收集时,PostgreSQL SOS 插件必须安装在数据库服务器上。
--no-postgresql
禁用收集数据库数据的功能。如果没有指定 --no-postgresql 参数,日志采集程序会连接到 Red Hat Virtualization Manager 的 PostgreSQL 数据库,并把其中的数据包括在日志中。
--pg-user=USER
USER 设置为用来和数据库服务器进行连接的用户。它的默认值是 postgres
--pg-dbname=DBNAME
DBNAME 设置为连接到数据库服务器上的数据库名,它的默认值是 rhevm
--pg-dbhost=DBHOST
DBHOST 设置为数据库服务器的主机名,它的默认值是 localhost
--pg-host-key=KEYFILE
KEYFILE 设置为数据库服务器的公共识别文件(私人密钥)。这个值在默认的情况下不会被设置,它只在数据库不在本地的情况下才使用。

18.5.3. 基本日志收集程序用法

如果在运行 engine-log-collector 命令时不指定任何额外的参数,默认会从 Red Hat Virtualization Manager 及其附加的主机收集所有日志。若不添加 --no-postgresql 参数,也会收集数据库日志。在下例中,日志收集程序会收集 Red Hat Virtualization Manager 和 3 个附加的主机上的所有日志。

例 18.4. 日志收集程序用法

# ovirt-log-collector
INFO: Gathering oVirt Engine information...
INFO: Gathering PostgreSQL the oVirt Engine database and log files from localhost...
Please provide REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
About to collect information from 3 hypervisors. Continue? (Y/n):
INFO: Gathering information from selected hypervisors...
INFO: collecting information from 192.168.122.250
INFO: collecting information from 192.168.122.251
INFO: collecting information from 192.168.122.252
INFO: finished collecting information from 192.168.122.250
INFO: finished collecting information from 192.168.122.251
INFO: finished collecting information from 192.168.122.252
Creating compressed archive...
INFO Log files have been collected and placed in /tmp/logcollector/sosreport-rhn-account-20110804121320-ce2a.tar.xz.
The MD5 for this file is 6d741b78925998caff29020df2b2ce2a and its size is 26.7M

18.6. ISO 上传工具

18.6.1. ISO Uploader

ISO uploader 是一个把 ISO 镜像上传到 ISO 存储域的工具。它会作为 Red Hat Virtualization Manager 的一部分被安装。
ISO uploader 的命令是 engine-iso-uploader。您需要以 root 用户的身份登录到 Red Hat Virtualization 环境中后才可以使用这个命令。engine-iso-uploader -h 会显示这个命令的帮助信息,并包括了 engine-iso-uploader 命令的所有可用参数的列表。

18.6.2. engine-iso-uploader 命令语法

ISO uploader 命令的基本语法是:
engine-iso-uploader [options] list
engine-iso-uploader [options] upload [file].[file]...[file]
ISO uploader 命令支持两种操作 - listupload
  • list 操作列出 ISO 文件可以被上传到的存储域列表。Red Hat Virtualization Manager 会在安装的过程中在所安装的机器上产生这个列表。
  • upload 操作会把一个或多个(以空格分隔)ISO 文件上传到指定的 ISO 存储域中。默认的方式是通过 NFS,但也可以选择使用 SSH。
当使用这个命令时,您需要选择以上操作中的一个。如果您需要进行 upload 操作,您还需要指定最少一个本地文件。
engine-iso-uploader 命令包括了其它的一些参数。

常规选项

--version
显示 ISO uploader 命令的版本。
-h, --help
显示 ISO uploader 命令的使用信息。
--conf-file=[PATH]
[PATH] 是这个命令要使用的配置文件。默认的配置文件是 /etc/ovirt-engine/isouploader.conf
--log-file=[PATH]
[PATH] 是命令要写入的日志文件。/var/log/ovirt-engine/ovirt-iso-uploader/ovirt-iso-uploader[date].log 是默认的日志文件。
--cert-file=[PATH]
[PATH] 是用来验证引擎的证书。默认值是 /etc/pki/ovirt-engine/ca.pem
--insecure
不需要验证引擎。
--nossl
连接到引擎的时候不使用 SSL
--quiet
把命令设为“安静”模式,从而把控制台的输出减到最小。
-v, --verbose
把命令设为 verbose 模式,从而可以提供详细的控制台输出信息。
-f, --force
当要上传的源文件的文件名和目标 ISO 域中的文件名相同时,可以使用强制模式,它会使用上传文件强制把目标 ISO 域中的同名文件覆盖。

Red Hat Virtualization Manager 选项

-u [USER], --user=[USER]
指定这个命令所要使用的用户信息。[USER] 的格式为 [username]@[domain]。这个用户必须存在于指定的域中,并可以被 Red Hat Virtualization Manager 识别。
-r [FQDN], --engine=[FQDN]
指定镜像文件将要被上传到的 Red Hat Virtualization Manager 的 IP 地址或全局域名。系统会假设镜像上传程序是从 Red Hat Virtualization Manager 所在的同一个机器上运行的。它的默认值是 localhost:443

ISO 存储域选项

以下选项指定了镜像要被上传到的 ISO 域。这些选项不能同时使用,您只能使用 -i-n
-i, --iso-domain=[ISODOMAIN]
把存储域 [ISODOMAIN] 设为上传的目标域。
-n, --nfs-server=[NFSSERVER]
[NFSSERVER] 设置为上传目标的 NFS 服务器路径。

连接选项

ISO uploader 使用 NFS 作为文件上传的默认方法。这些选项指定了使用 SSH 进行文件传输的设置。
--ssh-user=[USER]
[USER] 设置为用来上传的 SSH 用户名。它的默认值是 root.
--ssh-port=[PORT]
[PORT] 设置为 SSH 连接所使用的接口。
-k [KEYFILE], --key-file=[KEYFILE]
[KEYFILE] 设为用来进行 SSH 验证的公共密钥。如果没有设置密钥,您将会被提示输入 --ssh-user=[USER] 所指定的用户的密码。

18.6.3. 指定一个 NFS 服务器

例 18.5. 上传到一个 NFS 服务器

# engine-iso-uploader --nfs-server=storage.demo.redhat.com:/iso/path upload RHEL6.0.iso

18.6.4. ISO Uploader 的基本使用方法

以下实例演示了 ISO uploader 以及 list 参数的使用方法。第一个命令列出可用 ISO 存储域,因为在命令中没有指定用户名,用户 admin@internal 将被使用。第二个命令使用 NFS 将 ISO 文件上传到指定的 ISO 域中。

例 18.6. 显示域列表并上传镜像

# engine-iso-uploader list
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
ISO Storage Domain Name   | Datacenter          | ISO Domain Status
ISODomain                 | Default             | active
# engine-iso-uploader --iso-domain=[ISODomain] upload [RHEL6.iso]
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):

18.6.5. 把 VirtIO 和客户端工具程序镜像文件上传到 ISO 存储域中

以下实例把 virtio-win.isovirtio-win_x86.vfdvirtio-win_amd64.vfdrhev-tools-setup.iso 镜像文件上传到 ISODomain 域。

例 18.7. 上传 VirtIO 和客户端工具程序镜像文件

# engine-iso-uploader --iso-domain=[ISODomain] upload /usr/share/virtio-win/virtio-win.iso /usr/share/virtio-win/virtio-win_x86.vfd /usr/share/virtio-win/virtio-win_amd64.vfd /usr/share/rhev-guest-tools-iso/rhev-tools-setup.iso

18.6.6. VirtIO 和客户端工具程序镜像文件

virtio-win ISO、Virtual Floppy Drive (VFD) 镜像(包括了 Windows 虚拟机的 VirtIO 驱动)、rhev-tools-setup ISO(包括了 Windows 虚拟机的 Red Hat Virtualization 客户端工具程序)在安装和配置 ISO 存储域的时候被复制到这个域中。
这些镜像所包括的软件可以被安装到虚拟机上,从而提高虚拟机的性能和可用性。最新的 virtio-winrhev-tools-setup 文件位于 Red Hat Virtualization Manager 文件系统上的以下位置:
  • /usr/share/virtio-win/virtio-win.iso
  • /usr/share/virtio-win/virtio-win_x86.vfd
  • /usr/share/virtio-win/virtio-win_amd64.vfd
  • /usr/share/rhev-guest-tools-iso/rhev-tools-setup.iso
这些镜像文件必须被手动上传到 ISO 存储域中(不能是在安装过程中创建的本地存储域)。使用 engine-iso-uploader 命令把这些镜像上传到您的 ISO 存储域中。在上传完成后,这些镜像文件就可以被虚拟机使用。

部分 IV. 收集环境的信息

第 19 章 日志文件

19.1. Red Hat Virtualization Manager 安装日志文件

表 19.1. 安装

日志文件描述
/var/log/ovirt-engine/engine-cleanup_yyyy_mm_dd_hh_mm_ss.logengine-cleanup 命令的日志文件。这个命令是被用来重新设置 Red Hat Virtualization Manager 安装的,它在每次运行时都会产生一个日志文件。这个命令的日志文件的文件名中包括了运行的日期和时间,因此多个日志文件可以同时存在。
/var/log/ovirt-engine/engine-db-install-yyyy_mm_dd_hh_mm_ss.logengine-setup 命令的日志文件。它包括了创建和配置 rhevm 数据库的详细信息。
/var/log/ovirt-engine/ovirt-engine-dwh-setup-yyyy_mm_dd_hh_mm_ss.logovirt-engine-dwh-setup 命令的日志文件。这个命令被用来创建 ovirt_engine_history 数据库,它在每次运行时都会产生一个日志文件。这个命令的日志文件的文件名中包括了运行的日期和时间,因此多个日志文件可以同时存在。
/var/log/ovirt-engine/setup/ovirt-engine-setup-yyyymmddhhmmss.logengine-setup 命令的日志文件。在每次运行这个命令时都会产生一个日志文件。这个命令的日志文件的文件名中包括了运行的日期和时间,因此多个日志文件可以同时存在。

19.2. Red Hat Virtualization Manager 日志文件

表 19.2. 服务

日志文件描述
/var/log/ovirt-engine/engine.log记录 Red Hat Virtualization Manager 图形用户界面故障、Active Directory 查询、数据库错误以及其它一些事件。
/var/log/ovirt-engine/host-deploy通过 Red Hat Virtualization Manager 部署的主机上的日志文件。
/var/lib/ovirt-engine/setup-history.txt记录与 Red Hat Virtualization Manager 的安装和升级相关的信息。
/var/log/httpd/ovirt-requests-log
通过 HTTPS 向 Red Hat Virtualization Manager 发出的请求的日志文件,包括每一请求所花费时长的信息。
包含 Correlation-Id 标头,让您能够在与 /var/log/ovirt-engine/engine.log 比较日志文件时比较请求。

19.3. SPICE 日志文件

在对 SPICE 的连接问题进行故障排除时,SPICE 日志文件可以提供帮助。为了启用 SPICE 的故障排除功能,把日志的级别该为 debugging,然后指定日志的位置。
用于访问客户机的客户端以及客户机本身都具有 SPICE 日志文件。对于客户端一侧的日志,如果 SPICE 客户端是使用原生客户端启动的(为其下载了 console.vv 文件),请使用 remote-viewer 命令启用调试并生成日志输出。

19.3.1. Hypervisor SPICE 服务器的 SPICE 日志

表 19.3. Hypervisor SPICE 服务器的 SPICE 日志

日志类型日志位置改变日志级别:
Host/Hypervisor SPICE Server
/var/log/libvirt/qemu/(guest_name).log
在主机/虚拟机管理器上运行 export SPICE_DEBUG_LEVEL=5,然后启动客户机。此变量由 QEMU 解析,在系统范围运行时将列出系统上所有虚拟机的调试信息。集群中的每一主机上都要运行此命令。此命令仅在各主机/虚拟机管理器层面上工作,而不是集群层面。

19.3.2. 客户机的 SPICE 日志

表 19.4. 客户机的 spice-vdagent 日志

日志类型日志位置改变日志级别:
Windows 客户机
C:\Windows\Temp\vdagent.log
C:\Windows\Temp\vdservice.log
不适用
Red Hat Enterprise Linux 客户机
以 root 用户身份使用 journalctl
若要在调试模式中运行 spice-vdagentd 服务,请以 root 用户身份创建包含以下条目的 /etc/sysconfig/spice-vdagentd 文件:SPICE_VDAGENTD_EXTRA_ARGS=”-d -d”
若要在调试模式中运行 spice-vdagent,请在命令行中运行:
$ killall - u $USER spice-vdagent 
$ spice-vdagent -x -d [-d] [ ∣& tee spice-vdagent.log ]

19.3.3. 使用 console.vv 文件启动的 SPICE 客户端的 SPICE 日志

Linux 客户端机器:

  1. 使用 --spice-debug 选项运行 remote-viewer 命令来启用 SPICE 故障排除(debug)功能。在提示时,输入连接 URL,例如,spice://[virtual_machine_IP]:[port]。
    #  remote-viewer --spice-debug
  2. 若要利用调试参数运行 SPICE 客户端并向它传递 .vv 文件,请下载 console.vv 文件,再运行 remote-viewer 并使用 --spice-debug 选项,同时指定 console.vv 文件的完整路径。
    # remote-viewer --spice-debug /path/to/console.vv
Windows 客户端机器:

  1. virt-viewer 2.0-11.el7ev 和更高版本中,virt-viewer.msi 会安装 virt-viewerdebug-viewer.exe
  2. 使用 spice-debug 参数运行 remote-viewer 命令,再将命令指引到控制台的路径:
    remote-viewer --spice-debug path\to\console.vv
    
  3. 要查看日志信息,连接到虚拟机,您将会看到运行 GDB 的命令提示,它会显示标准输出和 remote-viewer 的标准错误信息。

19.4. Red Hat Virtualization 主机日志文件

表 19.5. 

日志文件描述
/var/log/vdsm/libvirt.loglibvirt 的日志文件。
/var/log/vdsm/spm-lock.log日志文件详细记录了主机在 SPM 上获得租約(lease)的情况。它包括了主机获得(acquired)、释放(released)租約的详细时间,以及主机成功续约或续约失败的详细时间。
/var/log/vdsm/vdsm.logVDSM(Red Hat Enterprise Virtualization Manager 在虚拟主机上的代理)的日志文件。
/tmp/ovirt-host-deploy-Date.log在主机成功部署后,主机部署日志作为 /var/log/ovirt-engine/host-deploy/ovirt-Date-Host-Correlation_ID.log 复制到 Manager。
/var/log/vdsm/import/import-UUID-Date.log日志文件中详细说明从 KVM 主机、VMWare 供应商或 Xen 主机导入的虚拟机,包括导入失败信息。UUID 是所导入虚拟机的 UUID,Date 则是导入开始的日期和时间。

19.5. 设置虚拟主机日志服务器

主机会通过产生和更新日志文件来记录系统的运行情况。为了简化故障排除的过程,我们可以使用一个“日志服务器”来统一收集日志文件的信息。
您可以使用一个独立的日志服务器,也可以通过以下步骤在 Red Hat Virtualization Manager 上实现日志服务器的功能。

过程 19.1. 设置虚拟主机日志服务器

  1. 设置 SELinux 来允许 rsyslog 操作。
    # semanage port -a -t syslogd_port_t -p udp 514
  2. 编辑 /etc/rsyslog.conf 来添加以下行:
    $template TmplAuth, "/var/log/%fromhost%/secure" 
    $template TmplMsg, "/var/log/%fromhost%/messages" 
    
    $RuleSet remote
    authpriv.*   ?TmplAuth
    *.info,mail.none;authpriv.none,cron.none   ?TmplMsg
    $RuleSet RSYSLOG_DefaultRuleset
    $InputUDPServerBindRuleset remote
    去掉以下行的注释
    #$ModLoad imudp
    #$UDPServerRun 514
  3. 重新启动 rsyslog 服务:
    # systemctl restart rsyslog.service
您的日志服务器已经被配置,它可以接收和存储虚拟主机上的 messagessecure 日志文件。

第 20 章 代理服务器

20.1. SPICE 代理服务器

20.1.1. SPICE 代理(SPICE Proxy)介绍

SPICE 代理是一个当 SPICE 客户端位于 hypervisor 所在的网络之外时,把 SPICE 客户端和虚拟机进行连接的工具。设置 SPICE 代理的过程包括在机器上安装 Squid、配置 iptables 来允许使用代理的网络数据通过防火墙。启用 SPICE 代理的操作包括在 Manager 上使用 engine-config 来把 SpiceProxyDefault 的值设为包括代理的名称和端口的值。关闭 SPICE 代理的操作包括在 Manager 上使用 engine-config 删除为 SpiceProxyDefault 所设置的值。

重要

SPICE 代理只支持独立的 SPICE 客户端,它不能被用来连接使用 SPICE HTML5 或 noVNC 的虚拟机。

20.1.2. SPICE 代理系统的设置

以下介绍了如何把一台机器设置为 SPICE 代理。SPICE 代理可以实现从远程网络访问 Red Hat Virtualization 网络的功能。我们使用 Squid 来提供代理服务。

过程 20.1. 在 Red Hat Enterprise Linux 上安装 Squid

  1. 在代理机器上安装 Squid
    # yum install squid
  2. 打开 /etc/squid/squid.conf,把以下内容:
    http_access deny CONNECT !SSL_ports
    改为:
    http_access deny CONNECT !Safe_ports
  3. 启动代理:
    # service squid start
  4. 打开默认的 squid 端口:
    # iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
  5. 保存这个 iptables 的规则:
    # service iptables save
您把一台机器设置为了 SPICE 代理。在从远程网络访问 Red Hat Virtualization 网络时,请先激活这个 SPICE 代理。

20.1.3. 打开 SPICE 代理

以下介绍了激活(打开)SPICE 代理的方法。

过程 20.2. 激活 SPICE 代理

  1. 在 Red Hat Enterprise Virtualization Manager 中,使用 engine-config 工具设置一个代理:
    # engine-config -s SpiceProxyDefault=someProxy
  2. 重新启动 ovirt-engine 服务:
    # service ovirt-engine restart
    代理必须使用以下格式来代表:
    protocol://[host]:[port]

    注意

    只有 Red Hat Enterprise Linux 6.7、Red Hat Enterprise Linux 7.2 或更新版本所带的 SPICE 客户端才支持 HTTPS 代理,而其它老的客户端只支持 HTTP。如果为老的客户端指定了 HTTPS,这些客户端将忽略代理设置,并尝试直接连接到主机。
SPICE 代理被激活(打开)。现在可以通过 SPICE 代理对 Red Hat Virtualization 网络进行访问。

20.1.4. 关闭一个 SPICE 代理

以下介绍了如果关闭一个 SPICE 代理。

过程 20.3. 关闭一个 SPICE 代理

  1. 登录到 Red Hat Enterprise Virtualization Manager:
    $ ssh root@[IP of Manager]
  2. 运行以下命令来删除 SPICE 代理:
    # engine-config -s SpiceProxyDefault=""
  3. 重新启动 Red Hat Enterprise Virtualization Manager:
    # service ovirt-engine restart
SPICE 代理被关闭,用户将无法通过 SPICE 代理对 Red Hat Virtualization 网络进行访问。

20.2. Squid 代理服务器

20.2.1. 安装和配置一个 Squid 代理

介绍

以下介绍了如何为用户门户安装和配置一个 Squid 代理。Squid 代理服务器起到了一个内容加速的作用,它可以缓存经常被访问的内容,减少对带宽的消耗,并可以减少响应时间。

过程 20.4. 配置一个 Squid 代理

  1. 为 Squid 代理服务器的 HTTPS 端口获得一个密钥对和一个证书。获得这个密钥对的方法和获得其它 SSL/TLS 服务密钥对的方法完全相同。这个密钥对以两个 PEM 文件的形式出现,包括了私人密钥和一个签字的证书。我们在这里假设它们的名字是 proxy.keyproxy.cer

    注意

    密钥对和证书也可以通过引擎的证书认证机构产生。如果您的代理已经有了私人密钥和证书,而且不想使用引擎的证书认证机构重新产生它们,请跳过下一步。
  2. 为代理选择一个主机名。然后,选择代理证书的其它项。

    注意

    通常情况下,应该使用和引擎相同的国家名(C)和机构名(O)。要获得这些信息,请登录到 Manager 所在的机器,并运行以下命令:
    # openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -subject
    这个命令会输出和以下相似的内容:
    subject= /C=US/O=Example Inc./CN=engine.example.com.81108
    这里相关的部分是 /C=US/O=Example Inc.。使用它来为代理的证书创建一个唯一的证书名:
    /C=US/O=Example Inc./CN=proxy.example.com
  3. 登录到代理所在的机器,并生成一个证书签署请求:
    # openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=proxy.example.com' -nodes -keyout proxy.key -out proxy.req

    重要

    证书名外的引号非常重要,一定不能省掉它们。 -nodes 选项确保了私人密钥没有被加密,您在启动代理时将不需要输入密码。
    这个命令会产生两个文件:proxy.keyproxy.reqproxy.key 是私人密钥,您需要把它保存在一个安全的地方。proxy.req 是证书签署请求,proxy.req 并不需要特殊的保护。
  4. 要产生签署的证书,使用以下命令把证书签署请求文件从代理所在的机器上复制到安装 Manager 的机器上:
    # scp proxy.req engine.example.com:/etc/pki/ovirt-engine/requests/.
  5. 登录到 Manager 所在的机器上签署证书:
    # /usr/share/ovirt-engine/bin/pki-enroll-request.sh --name=proxy --days=3650 --subject='/C=US/O=Example Inc./CN=proxy.example.com'
    它将为证书进行签署,使它在 10 年(3650 天)内有效。您可以根据需要,为证书设置相应的有效期。
  6. 所产生的证书文件保存在 /etc/pki/ovirt-engine/certs 目录中,它的名字应该是 proxy.cer。把这个文件从 Manager 所在机器复制到代理所在机器的当前目录中:
    # scp engine.example.com:/etc/pki/ovirt-engine/certs/proxy.cer .
  7. 确认代理机器包括了 proxy.keyproxy.cer 文件:
    # ls -l proxy.key proxy.cer
  8. 在代理机器上安装 Squid 代理服务器软件包:
    # yum install squid
  9. 把私人密钥和签署的证书发到代理可以访问的地方,如 /etc/squid 目录:
    # cp proxy.key proxy.cer /etc/squid/.
  10. 设置权限,从而使 squid 用户可以读这些文件:
    # chgrp squid /etc/squid/proxy.*
    # chmod 640 /etc/squid/proxy.*
  11. Squid 代理需要验证引擎所使用的证书。把 Manager 的证书复制到代理所在的机器上。这个实例使用的文件路径是 /etc/squid
    # scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.

    注意

    默认的 CA 证书位于 Manager 所在机器的 /etc/pki/ovirt-engine/ca.pem
  12. 设置权限,从而使 squid 用户可以读证书文件:
    # chgrp squid /etc/squid/ca.pem
    # chmod 640 /etc/squid/ca.pem
  13. 如果 SELinux 处于 enforcing 模式,使用 semanage 修改端口 443 的内容,从而使 Squid 可以使用端口 443。
    # yum install policycoreutils-python
    # semanage port -m -p tcp -t http_cache_port_t 443
  14. 使用以下的内容替换存在的 Squid 配置文件:
    https_port 443 key=/etc/squid/proxy.key cert=/etc/squid/proxy.cer ssl-bump defaultsite=engine.example.com
    cache_peer engine.example.com parent 443 0 no-query originserver ssl sslcafile=/etc/squid/ca.pem name=engine
    cache_peer_access engine allow all
    ssl_bump allow all
    http_access allow all
  15. 重启 Squid 代理服务器
    # systemctl restart squid.service
  16. 使用完整 URL 连接到用户门户,例如:
    https://proxy.example.com/UserPortal/org.ovirt.engine.ui.userportal.UserPortal/UserPortal.html

    注意

    短的 URL(如 https://proxy.example.com/UserPortal)将无法正常工作。应用服务器会试图使用 302 response code 和 Location header 把这些短的 URL 重新定向到正确的 URL,但是 Red Hat Enterprise Linux 中所提供的 Squid 版本(Squid version 3.1)不支持这个功能。

注意

默认情况下,Squid 代理会在空闲连接时间超过 15 分钟后终止这个空闲连接。要增加这个时间,调整 squid.conf 中的 read_timeout 选项(如把它设为 read_timeout 10 hours)。

20.3. Websocket 代理

20.3.1. Websocket 代理介绍

websocket 代理允许用户通过 noVNC 和 SPICE HTML5 控制台连接到虚拟机。以前,websocket 代理只能运行在 Red Hat Virtualization Manager 的机器上,现在这个代理可以运行在任何可以访问网络的机器。
Websocket 代理可在 Red Hat Virtualization Manager 机器的初始配置阶段在这台机器上安装和配置 (请参阅安装指南中的 配置 Red Hat Virtualization Manager),也可以在一台独立的机器上安装(请参阅安装指南中的在一个独立的机器上安装 Websocket 代理)。
websocket 代理也可以从 Manager 机器迁移到独立的机器上。请参阅 第 20.3.2 节 “把 Websocket 代理迁移到一个独立的机器上”

注意

对 SPICE HTML5 的支持现在还是一个技术预览(Technology Preview )。技术预览将不被 Red Hat Subscription Service Level Agreements(SLAs)所完全支持,也不能保证它的所有功能都可以正常运行。Technology Preview 功能并不是为当前的生产环境所提供的,但用户可以通过这些功能来尽早接触将来会被使用的新产品技术,同时可以反馈您的意见来完善产品的开发。

20.3.2. 把 Websocket 代理迁移到一个独立的机器上

因为安全或性能的原因,websocket 代理可以在一天没有运行 Red Hat Virtualization Manager 的独立机器上运行。以下介绍了把 websocket 代理从运行 Manager 的机器上迁移到一台独立的机器上。这包括从 Manager 机器上删除 websocket 代理配置,然后在一台独立的机器上安装websocket 代理。
使用 engine-cleanup 命令可以把 websocket 代理从运行 Manager 的机器上删除。

过程 20.5. 把 Websocket 代理迁移到一个独立的机器上

  1. 在运行 Manager 的机器上,运行 engine-cleanup 删除相关配置。
    # engine-cleanup
  2. 在提示是否删除所有组件时输入 No 并按 Enter
    Do you want to remove all components? (Yes, No) [Yes]: No
  3. 在提示是否删除引擎时输入 No 并按 Enter
    Do you want to remove the engine? (Yes, No) [Yes]: No
  4. 在提示是否删除 websocket 代理时输入 Yes 并按 Enter
    Do you want to remove the WebSocket proxy? (Yes, No) [No]: Yes
    在提示是否删除其它组件时选 No
  5. 在独立的机器上安装并配置代理。如需相关说明,请参阅安装指南中的在一个独立的机器上安装 Websocket 代理

附录 A. VDSM 和 Hook

A.1. VDSM

Red Hat Virtualization Manager 使用 VDSM 服务来管理 Red Hat Virtualization Hosts(RHVH)和 Red Hat Enterprise Linux 主机。VDSM 管理并监测主机的存储、内存和网络资源。另外,它还协调进行虚拟机的创建、统计数据的采集、日志数据的收集以及其它一些主机的管理任务。VDSM 作为一个守护进程(daemon)在 Red Hat Virtualization Manager 所管理的主机上运行,并处理从客户端发来的 XML-RPC 的请求。Red Hat Virtualization Manager 可以被看做为一个 VDSM 的客户端。

A.2. VDSM Hook

VDSM 可以通过 hook 进行扩展。hook 就是一些脚本程序,当特定事件发生时,这些 hook 将会在主机上运行。VDSM 会按主机上的 /usr/libexec/vdsm/hooks/nn_event-name/ 中的文件名的顺序执行其中可执行的 hook 脚本。每个 hook 脚本都会被分配给一个两位数的数字添加到文件名的前面,这样就可以清楚地知道这些 hook 脚本运行的顺序。在本章中所包括的实例使用 Python,但您可以使用任何编程语言来创建 hook 脚本。
请注意,在主机上为某个事件所定义的所有 hook 脚本都会被执行。如果您的某个 hook 只需要在主机上的某些虚拟机上运行,您需要在您的 hook 脚本中通过检查虚拟机的自定义属性(Custom Properties) 来实现。

警告

VDSM 脚本有影响到 Red Hat Virtualization 正常操作的可能。如果您的 VDSM hook 中有 bug,就有可能导致虚拟机出现错误并丢失数据。因此,在使用 VDSM hook 前,请对它们进行全面的测试。另外,hook API 还是一个新的技术,它们可能会在以后有较大的变化。

A.3. 使用 hook 对 VDSM 进行扩展

本章介绍了通过使用事件驱动的 hook 来对 VDSM 进行扩展。它在现阶段还是一个试验性质的技术,因此这里所介绍的内容主要针对于有经验的程序员。通过设置虚拟机的自定义属性(custom properties)可以把只针对于特定虚拟机的额外参数传递到 hook 脚本。

A.4. 支持的 VDSM 事件

表 A.1. 支持的 VDSM 事件

名称描述
before_vm_start虚拟机启动前。
after_vm_start虚拟机启动后。
before_vm_cont虚拟机继续运行前。
after_vm_cont虚拟机继续运行后。
before_vm_pause虚拟机暂停前。
after_vm_pause虚拟机暂停后。
before_vm_hibernate虚拟机挂起前。
after_vm_hibernate虚拟机挂起后。
before_vm_dehibernate在虚拟机取消挂起前。
after_vm_dehibernate在虚拟机取消挂起后。
before_vm_migrate_source在虚拟机迁移发生前,在迁移的原始主机上运行。
after_vm_migrate_source在虚拟机迁移发生后,在迁移的原始主机上运行。
before_vm_migrate_destination在虚拟机迁移发生前,在迁移的目标主机上运行。
after_vm_migrate_destination在虚拟机迁移发生后,在迁移的目标主机上运行。
after_vm_destroy虚拟机删除后。
before_vdsm_startVDSM 在主机上运行前。before_vdsm_start hook 以 root 用户执行,它不会继承 VDSM 进程的环境参数。
after_vdsm_stopVDSM 在主机上运行后。after_vdsm_stop hook 以 root 用户执行,它不会继承 VDSM 进程的环境参数。
before_nic_hotplug在网卡被熱插到虚拟机上以前。
after_nic_hotplug在网卡被熱插到虚拟机上以后。
before_nic_hotunplug在网卡被从虚拟机上热拔以前。
after_nic_hotunplug在网卡被从虚拟机上热拔以后。
after_nic_hotplug_fail在网卡被热插到虚拟机失败以后。
after_nic_hotunplug_fail在网卡被从虚拟机上热拔失败以后。
before_disk_hotplug在磁盘被熱插到虚拟机上以前。
after_disk_hotplug在磁盘被熱插到虚拟机上以后。
before_disk_hotunplug在磁盘被从虚拟机上热拔以前。
after_disk_hotunplug在磁盘被从虚拟机上热拔以后。
after_disk_hotplug_fail在磁盘被热插到虚拟机失败以后。
after_disk_hotunplug_fail在磁盘被从虚拟机上热拔失败以后。
before_device_create在创建一个支持自定义属性的设备前。
after_device_create在创建一个支持自定义属性的设备后。
before_update_device在更新一个支持自定义属性的设备前。
after_update_device在更新一个支持自定义属性的设备后。
before_device_destroy在删除一个支持自定义属性的设备前。
after_device_destroy在删除一个支持自定义属性的设备后。
before_device_migrate_destination在设备迁移发生前,在迁移的目标主机上运行。
after_device_migrate_destination在设备迁移发生后,在迁移的目标主机上运行。
before_device_migrate_source在设备迁移发生前,在迁移的原始主机上运行。
after_device_migrate_source在设备迁移发生后,在迁移的原始主机上运行。
after_network_setup启动主机过程中,在设置网络之后。
before_network_setup启动主机过程中,在设置网络之前。

A.5. VDSM Hook 环境

多数的 hook 脚本会以 vdsm 用户运行并继承 VDSM 进程的环境参数,before_vdsm_startafter_vdsm_stop 事件所驱动的 hook 脚本是例外,它们会以 root 用户执行并不会继承 VDSM 进程的环境参数。

A.6. VDSM Hook Domain XML 对象

在 hook 脚本启动后,_hook_domxml 变量会被加到环境中。这个变量包括了相关虚拟机的 libvirt domain XML 对象的路径。以下所列出的 hook 会例外。
以下 hook 的 _hook_domxml 变量包括了 NIC 的 XML 对象而不是虚拟机的 XML 对象。
  • *_nic_hotplug_*
  • *_nic_hotunplug_*
  • *_update_device
  • *_device_create
  • *_device_migrate_*

重要

before_migration_destinationbefore_dehibernation hook 当前接收原始主机上的 domain XML,而目标主机上的 domain XML 会有所不同。
VDSM 使用 libvirt domain XML 的格式来定义虚拟机。http://libvirt.org/formatdomain.html 提供了关于 libvirt domain XML 格式的详细信息。虚拟机的 UUID 可能可以从 domain XML 中获得,同时环境变量 vmId 也包括了它的值。

A.7. 设置自定义属性

Red Hat Virtualization Manager 接受的自定义属性(可以作为参数传递给定制 hook)是通过 engine-config 命令设置的。您需要在 Red Hat Virtualization Manager 所在的主机上以 root 用户身份运行这个命令。
UserDefinedVMPropertiesCustomDeviceProperties 这两个配置项被用来保存自定义属性的名称。每个自定义属性的有效值可以使用正则表达式来定义,它们也被保存在这些配置项中。
多个自定义属性可以被分号分隔。请注意,在设置配置项时,这个项的当前值会被覆盖。如需在当前值的基础上添加新的值,在配置命令中需要输入新的值以及当前的值。
当配置项被更新后,新的值在 ovirt-engine 服务被重新启动后才会有效。

例 A.1. 虚拟机属性 - 定义 smartcard 自定义属性

  1. 使用以下命令显示 UserDefinedVMProperties 配置项所定义的自定义属性:
    # engine-config -g UserDefinedVMProperties
    从下面的输出可以看到,自定义属性 memory 已经被定义。其中的正则表达式 ^[0-9]+$ 限定了这个定制属性只能包括数字。
    # engine-config -g UserDefinedVMProperties
    UserDefinedVMProperties:  version: 3.6
    UserDefinedVMProperties:  version: 4.0
    UserDefinedVMProperties : memory=^[0-9]+$ version: 4.0
  2. 因为 memory 自定义属性已经在 UserDefinedVMProperties 配置项中被定义,新的自定义属性(smartcard)就需要添加到它的上面。这个新的自定义属性的值只能是 truefalse
    # engine-config -s UserDefinedVMProperties='memory=^[0-9]+$;smartcard=^(true|false)$' --cver=4.0
  3. 运行以下命令检查 UserDefinedVMProperties 配置项所定义的自定义属性是否已经被正确更新。
    # engine-config -g UserDefinedVMProperties
    UserDefinedVMProperties:  version: 3.6
    UserDefinedVMProperties:  version: 4.0
    UserDefinedVMProperties : memory=^[0-9]+$;smartcard=^(true|false)$ version: 4.0
  4. 最后,重新启动 ovirt-engine 服务来使所做的配置改变有效。
    # systemctl restart ovirt-engine.service

例 A.2. 设备属性 - 定义 interface 自定义属性

  1. 使用以下命令显示 CustomDeviceProperties 配置项所定义的定制属性:
    # engine-config -g CustomDeviceProperties
    从下面的输出可以看到,没有任何自定义属性被定义。
    # engine-config -g CustomDeviceProperties
    CustomDeviceProperties:  version: 3.6
    CustomDeviceProperties:  version: 4.0
  2. 因为 interface 自定义属性还不存在,新的自定义属性可以被简单地添加。在这个例子中,speed 属性的有效值是 0 到 99999,duplex 属性的有效值是 fullhalf
    # engine-config -s CustomDeviceProperties="{type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}}" --cver=4.0
  3. 运行以下命令检查 CustomDeviceProperties 配置项已经被正确更新。
    # engine-config -g CustomDeviceProperties
    UserDefinedVMProperties:  version: 3.6
    UserDefinedVMProperties:  version: 4.0
    UserDefinedVMProperties : {type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}} version: 4.0
  4. 最后,重新启动 ovirt-engine 服务来使所做的配置改变有效。
    # systemctl restart ovirt-engine.service

A.8. 设置虚拟机自定义属性

一旦自定义属性在 Red Hat Virtualization Manager 上被定义后,您就可以在虚拟机上设置它们。自定义属性可以在管理门户中的新建虚拟机编辑虚拟机自定义属性标签页中设置。
您也可以在运行虚拟机对话框中设置自定义属性。但是通过运行虚拟机对话框设置的自定义属性要在下一次停机后才会在虚拟机上有效。
自定义属性标签页中提供了一个自定义属性选择列表,在您选择了一个自定义属性的项后,一个用来输入这个自定义属性值的输入框会出现。您可以使用 + 按钮添加自定义属性和它的值;或使用 - 删除它们。

A.9. 在 VDSM Hook 中检查虚拟机的自定义属性

在虚拟机的自定义属性中设置的每一个自定义项以及它的值,在调用 hook 脚本时都会被添加到系统环境参数中。因此,尽管所设定的正则表达式可以对自定义属性项中所输入的值进行一定程度的检查,您还必须在您的脚本中对所输入的值做验证。

例 A.3. 检查自定义属性

这个简单的 Python 程序实例检查自定义属性 key1 是否存在。如果它被设置,它的值会被输出到标准的错误输出中;如果它没有被设置,则没有操作会被执行。
#!/usr/bin/python

import os
import sys

if os.environ.has_key('key1'):
	sys.stderr.write('key1 value was : %s\n' % os.environ['key1'])
else:
    sys.exit(0)

A.10. 使用 VDSM Hooking 模块

VDSM 提供了一个 Python hooking 模块,可以用来帮助开发 VDSM hook 脚本。这个模块以一个实例的形式提供,只对使用 Python 的 VDSM hook 有效。
这个 hooking 模块可以读一个虚拟机的 libvirt XML 并把数据保存为一个 DOM 项。然后,Python 内置的 xml.dom 库 (http://docs.python.org/release/2.6/library/xml.dom.html) 就可以对这个项进行操作。
然后,这个被修改的项就可以通过 hooking 模块存回到 libvirt XML。hooking 模块提供了以下的功能:

表 A.2. Hooking 模块功能

名称参数描述
toboolstring把字符串 "true" 或 "false" 转换为一个布尔(Boolean)值
read_domxml-读虚拟机的 libvirt XML,并把它转换为一个 DOM
write_domxmlDOM object根据 DOM 项写虚拟机的 libvirt XML

A.11. 使用 VDSM hook

为了改变一个虚拟机的 VDSM 定义,before_vm_start 脚本可以在 libvirt 前修改 domain XML。如需这样做,您需要非常的小心。hook 脚本可能会影响到 VDSM 的正常运行,一个有 bug 的脚本可能会导致整个 Red Hat Virtualization 环境出现故障。特别需要注意的是,永远不要更改域的 UUID;在没有足够背景知识的情况下不要试图从域中删除一个设备。
before_vdsm_startafter_vdsm_stop hook 脚本都是以 root 用户执行的。如果其它的 hook 脚本需要系统的 root 权限,您需要使用 sudo 命令来升级权限。因为 hook 脚本是以非交互的形式被运行的,您必须配置您的 /etc/sudoers 来允许 vdsm 用户在不需要重新输入密码的情况下使用 sudo

例 A.4. 为 VDSM hook 配置 sudo

在这个实例中,sudo 命令被配置为允许 vdsm 用户以 root 的身份运行 /bin/chown 命令。
  1. 使用 root 用户登录到虚拟主机。
  2. 在文本编辑器中打开 /etc/sudoers
  3. 把以下行添加到文件中:
    vdsm ALL=(ALL) NOPASSWD: /bin/chown
    它设定了 vdsm 用户可以以 root 用户的身份运行 /bin/chown 命令。NOPASSWD 参数指定了在调用 sudo 时,用户不会被提示输入密码。
在进行完这个配置后,VDSM hook 就可以使用 sudo 命令来以 root 用户的身份运行 /bin/chown。以下的这段 Python 代码在 /my_file 文件中使用 sudo 来以 root 用户的身份执行 /bin/chown
retcode = subprocess.call( ["/usr/bin/sudo", "/bin/chown", "root", "/my_file"] )
hook 脚本的标准错误输出会被保存在 VDSM 的日志文件中。这些信息可以被用来进行故障排除。

A.12. VDSM Hook 返回代码

Hook 脚本必须返回 表 A.3 “Hook 返回代码” 中包括的返回代码之一。返回代码将被用来决定后面的 hook 脚本是否要被 VDSM 处理。

表 A.3. Hook 返回代码

代码描述
0hook 代码成功运行完毕
1hook 脚本运行失败,其它的 hook 脚本仍然需要被处理
2hook 脚本运行失败,其它的 hook 脚本不被处理
>2保留

A.13. VDSM Hook 实例

红帽不会对这里所提供的 hook 脚本进行支持,您需要在系统使用任何 hook 脚本前,对它进行全面的测试。

例 A.5. NUMA 节点优化

目的:

这个 hook 脚本会根据 numaset 这个自定义属性的值在一个 NUMA 主机上优化内存分配。如果这个自定义属性没有被设置,则不会进行任何操作。

配置字符串:

numaset=^(interleave|strict|preferred):[\^]?\d+(-\d+)?(,[\^]?\d+(-\d+)?)*$

这里的正则表达式允许通过虚拟机上的 numaset 自定义属性指定使用的分配模式(interleavestrictpreferred)和节点,这两个值以冒号(:)分隔。这个正则表达式还限定了 nodeset 的有效值为:
  • 一个特定的节点(numaset=strict:1 指定只使用节点 1),或
  • 一个范围之内的节点(numaset=strict:1-4 指定使用节点 1 到节点 4),或
  • 一个特定的节点不能被使用(numaset=strict:^3 指定节点 3 不被使用),或
  • 以逗号分隔的以上值的组合。(numaset=strict:1-4,6 指定使用节点 1 到节点 4,以及节点 6)。
脚本:

/usr/libexec/vdsm/hooks/before_vm_start/50_numa

#!/usr/bin/python

import os
import sys
import hooking
import traceback

'''
numa hook
=========
add numa support for domain xml:

<numatune>
    <memory mode="strict" nodeset="1-4,^3" />
</numatune>

memory=interleave|strict|preferred

numaset="1" (use one NUMA node)
numaset="1-4" (use 1-4 NUMA nodes)
numaset="^3" (don't use NUMA node 3)
numaset="1-4,^3,6" (or combinations)

syntax:
    numa=strict:1-4
'''

if os.environ.has_key('numa'):
    try:
        mode, nodeset = os.environ['numa'].split(':')

        domxml = hooking.read_domxml()

        domain = domxml.getElementsByTagName('domain')[0]
        numas = domxml.getElementsByTagName('numatune')

        if not len(numas) > 0:
            numatune = domxml.createElement('numatune')
            domain.appendChild(numatune)

            memory = domxml.createElement('memory')
            memory.setAttribute('mode', mode)
            memory.setAttribute('nodeset', nodeset)
            numatune.appendChild(memory)

            hooking.write_domxml(domxml)
        else:
            sys.stderr.write('numa: numa already exists in domain xml')
            sys.exit(2)
    except:
        sys.stderr.write('numa: [unexpected error]: %s\n' % traceback.format_exc())
        sys.exit(2)

附录 B. 自定义网络属性

B.1. bridge_opts 参数介绍

表 B.1. bridge_opts 参数

参数描述
forward_delay以十分之一秒为单位的时间,它设置了一个网桥处于 listening 和 learning 状态的时间。如果在这个时间内没有发现交换环路,网桥将进入 forwarding 状态。这为在进行正常网络操作前提供了检查网络流量和网络布局的时间。
gc_timer设置“垃圾收集”时间(以十分之一秒为单位)。经过这个时间后,forwarding 数据库会被检查,并清理其它中超时项。
group_addr在发送一个常规请求时设为 0。在发送针对于组、或针对于组和源地址的请求时,设为 IP 多播地址。
group_fwd_mask允许网桥转发连接本地组的地址。不使用它的默认值可以允许非标准的网桥行为的发生。
hash_elasticity在一个哈希表中允许的最大链的长度。这只在添加了新的多播组后才生效。如果在重新进行哈希处理后无法被满足,则会发生哈希冲突,snooping 将被禁用。
hash_max哈希表中桶(bucket)的最大数量。这个设备会马上生效,它的值不能被设置为低于当前多播组的数量,并需要是 2 的值数。
hello_time设置在发送 'hello' 信息以及在宣布网桥在网络拓扑中的位置间的时间间隔(以十分之一秒为单位)。它只适用于网桥是 Spanning Tree 的根网桥(root bridge)。
hello_timer从上次发送 'hello' 消息以来的时间(以十分之一秒为单位)
max_age在网桥被任务出现故障并开始 takeover 操作前,从另外一个根网桥接收 'hello' 信息的最长时间(以十分之一秒为单位)。
multicast_last_member_count在接收到其它主机发出的 'leave group' 信息后发送到多播组的 'last member' 查询的数量。
multicast_last_member_interval'last member' 查询间时间(以十分之一秒为单位)
multicast_membership_interval网桥在停止向主机发送多播网络数据前,需要等待从多播组中的一个成员听到响应的时间(以十分之一秒为单位)。
multicast_querier设置网桥是否主动运行多播 querier。当网桥接收到从另外一个网络主机发送的 'multicast host membership' 查询时,那个主机会根据接收的查询时间加上多播查询的间隔时间进行跟踪。如果网桥在以后试图为多播成员转发信息,或与一个查询多播路由器进行通讯,这个时间设备确认 querier 的有效性。如果有效,多播网络流量会通过网桥已有的多播成员表进行发送。如果无效,网络流量会通过所有网桥端口发送。带有多播成员和期望具有多播成员的广播域应该最少在一个多播 querier 上运行以提高性能。
multicast_querier_interval从主机接收的用来确认它仍然有效的最新 'multicast host membership' 查询间隔的最长时间(以十分之一秒为单位)。
multicast_query_use_ifaddr布尔值。默认为 '0'(querier 使用 0.0.0.0 作为 IPv4 信息的源地址)。修改它将使用网桥的 IP 地址作为源地址。
multicast_query_interval设置在网桥发送用来确认多播成员仍然有效的查询消息的间隔时间(以十分之一秒为单位)。当经过了这个时间,或网桥被要求发送成员多播查询时,网桥会根据一个检查请求发送的时间加上 multicast_query_interval 后的时间值来检查网桥自己的多播 querier 状态。如果这个成员的多播查询已在最后的 multicast_query_interval 间隔内发送,则不会在被发送。
multicast_query_response_interval在一个查询发送后,主机可以对它进行响应的时间长度(以十分之一秒为单位)。这个值需要小于或等于 multicast_query_interval 的值。
multicast_router设定在附加了多播路由器时启用或禁用端口。一个有一个或多个多播路由器的端口可以接收多播的网络数据。如果把它设置为 0,会完全禁用;如果为 1,系统会根据查询自动检测路由器;如果为 2,端口会接收所有多播网络数据。
multicast_snooping指定 snooping 被启用还是禁用。Snooping 允许网桥监听路由器间的网络流量,主机会管理一个映射来把多播网络数据过滤到相关的连接。这个选项允许用户在因为哈希冲突的出现造成 snooping 被自动禁用时重新启用 snooping,但是,snooping 不能在没有解决哈希冲突的情况下被重新启用。
multicast_startup_query_count在启动时为了决定成员信息要发送的查询数量。
multicast_startup_query_interval在启动时为了决定成员信息要发送的查询的间隔时间(以十分之一秒为单位)。

B.2. 如何设置 Red Hat Virtualization Manager 来使用 Ethtool

您可以通过管理门户为主机网络接口卡配置 ethtool 属性。在默认情况下,ethtool_opts 键不存在,您需要使用引擎配置工具把它加入到 Manager。另外,还需要在主机上安装所需的 VDSM hook 软件包。

过程 B.1. 把e ethtool_opts 键添加到 Manager

  1. 在 Manager 上运行以下命令来添加键:
    # engine-config -s UserDefinedNetworkCustomProperties=ethtool_opts=.* --cver=4.0
  2. 重启 ovirt-engine 服务:
    # systemctl restart ovirt-engine.service
  3. 在需要配置 ethtool 属性的主机上,安装 VDSM hook 软件包。这个软件包默认存在于 Red Hat Virtualization Host 中,但在 Red Hat Enterprise Linux 主机上需要额外安装。
    # yum install vdsm-hook-ethtool-options
现在,管理门户中可以使用 ethtool_opts 键。请参阅第 6.5.2 节 “编辑主机网络接口并为主机分配逻辑网络”,以应用 ethtool 属性到逻辑网络。

B.3. 如何设置 Red Hat Virtualization Manager 来使用 FCoE

您可以在管理门户中为主机网络接口卡设置以太网光线通道(FCoE)属性。默认情况下不提供 fcoe 键,需要通过引擎配置工具添加到 Manager 中。您可以运行以下命令,检查是否已启用了 fcoe
# engine-config -g UserDefinedNetworkCustomProperties
您也需要在主机上安装必要的 VDSM hook 软件包。根据主机上的 FCoE 卡,可能还需要特殊的配置;请参阅 Red Hat Enterprise Linux 存储管理指南中的配置以太网光纤通道接口

过程 B.2. 为 Manager 添加 fcoe 键

  1. 在 Manager 上运行以下命令来添加键:
    # engine-config -s UserDefinedNetworkCustomProperties='fcoe=^((enable|dcb|auto_vlan)=(yes|no),?)*$'
  2. 重启 ovirt-engine 服务:
    # systemctl restart ovirt-engine.service
  3. 为所有要配置 FCoE 属性的 Red Hat Enterprise Linux 主机安装 VDSM hook 软件包。Red Hat Virtualization Host(RHVH)上默认提供此软件包。
    # yum install vdsm-hook-fcoe
现在,管理门户中可以使用 ethtool_opts 键。请参阅第 6.5.2 节 “编辑主机网络接口并为主机分配逻辑网络”,以应用 FCoE 属性到逻辑网络。

B.4. 如何设置 Red Hat Virtualization Manager 来使用非管理网络

您可以配置数据中心中的每一主机,将非管理网络用作默认网络,而不使用默认的管理网络(ovirtmgmt)。从管理门户为主机网络接口卡定义 default_route 属性。默认情况下不提供 default_route 键,需要通过引擎配置工具添加到 Manager 中。您可以运行以下命令,检查是否已启用了 default_route
# engine-config -g UserDefinedNetworkCustomProperties

过程 B.3. 为 Manager 添加 default_route 键

  1. 在 Manager 上运行以下命令来添加键:
    # engine-config -s # engine-config -s UserDefinedNetworkCustomProperties='default_route=^(true|false)$'
    # engine-config -g UserDefinedNetworkCustomProperties
  2. 重启 ovirt-engine 服务:
    # systemctl restart ovirt-engine
现在,管理门户中可以使用 default_route 键。请参阅第 6.5.2 节 “编辑主机网络接口并为主机分配逻辑网络”,以定义非管理网络。

附录 C. Red Hat Virtualization 用户接口插件

C.1. Red Hat Virtualization 用户界面插件

Red Hat Virtualization 支持使用插件来提供非标准的功能,这可以方便 Red Hat Virtualization 管理门户和其它的系统相集成。每个用户界面插件都代表了一组可以和 Red Hat Virtualization 一起使用的用户界面扩展。
Red Hat Virtualization 的用户界面插件使用 JavaScript 在客户端直接和管理门户相集成。用户界面插件被管理门户所调用,并在浏览器的 JavaScript 运行环境中运行。用户界面插件可以使用 JavaScript 和它的代码库。
在特定的事件发生时,管理门户会通过 event handler 函数来调用独立的插件。虽然管理门户支持多个 event-handler 函数,但是插件还是需要自己声明只对这个插件有意义的函数。在管理门户使用某个插件前,这个插件还需要在插件 bootstrap 中注册相关的 event handler 函数。
管理门户把插件 API 设置为一个全局(top-level) pluginApi JavaScript 项,每个单独的插件都可以获得一个独立的 pluginApi 项。因此,管理门户就可以根据每个插件本身的“生命周期”来控制插件所使用的插件 API 函数调用。

C.2. Red Hat Virtualization 用户接口插件生命周期

C.2.1. Red Hat Virtualization 用户界面插件的生命周期

一个用户界面插件的基本生命周期可以被分为 3 个阶段:
  1. 插件发现(plug-in discovery)。
  2. 插件加载(plug-in loading)。
  3. 插件引导(plug-in bootstrapping)。

C.2.2. Red Hat Virtualization 用户界面插件的发现

创建插件的描述符(descriptor)是插件发现阶段的第一步。插件描述符包括了重要的插件元数据和默认的插件配置。
作为处理管理门户 HTML 页请求(HTTP GET)的一部分,用户界面插件系统会尝试从您的本地系统上发现并加载插件描述符。 对于每一个插件描述符,系统会尝试使用相应的插件用户配置来覆盖插件的默认配置,并调整插件运行时的行为。插件的用户配置是可选的。在插件描述符和用户额配置被加载后,oVirt 引擎会把所有的用户界面插件的数据进行综合,并把它们加入到管理门户的 HTML 页中。
在默认的情况下,插件的描述符位于 $ENGINE_USR/ui-plug-ins 中,ENGINE_USR=/usr/share/ovirt-engine 是 oVirt 引擎本地配置的默认值。插件的描述符需要符合 JSON 格式的规则,但它同时也支持 Java/C++ 语言的注释风格(/*//)。
在默认的情况下,插件的用户配置文件位于$ENGINE_ETC/ui-plug-ins 中,ENGINE_ETC=/etc/ovirt-engine 是 oVirt 引擎本地配置的默认值。插件的用户配置文件的格式规则和插件描述符的格式规则相同。

注意

插件的用户配置文件通常使用 <descriptorFileName>-config.json 的命名规则。

C.2.3. Red Hat Virtualization 用户界面插件加载

在一个插件被发现并被加入到管理门户的 HTML 页后,管理门户会把这个插件作为应用程序启动的一部分进行加载(除非您把它设置为不作为应用程序启动的一部分进行加载)。
当插件被发现后,管理门户会创建一个 HTML iframe 项来加载它的主页。插件的引导过程需要这个插件的主页(插件主页会在插件 iframe 项的环境中检查插件代码)。用户界面的插件系统支持本地文件系统提供的插件源文件(如插件的主页)。插件的主页被加载到 iframe 项中,它的代码会被检查。在代码检查完成后,插件使用插件 API 和管理门户进行交流。

C.2.4. Red Hat Virtualization 用户界面插件引导

一个典型的插件引导过程包括以下步骤:

过程 C.1. 插件引导过程

  1. 为插件获得 pluginApi 项
  2. 获得运行时的插件配置项(可选)
  3. 注册相关的 event handler 函数
  4. 通知 UI 插件系统来处理插件的初始化
下面的一段代码显示以上步骤的实现:
// Access plug-in API using 'parent' due to this code being evaluated within the context of an iframe element.
// As 'parent.pluginApi' is subject to Same-Origin Policy, this will only work when WebAdmin HTML page and plug-in
// host page are served from same origin. WebAdmin HTML page and plug-in host page will always be on same origin
// when using UI plug-in infrastructure support to serve plug-in resource files.
var api = parent.pluginApi('MyPlugin');

// Runtime configuration object associated with the plug-in (or an empty object).
var config = api.configObject();

// Register event handler function(s) for later invocation by UI plug-in infrastructure.
api.register({
	    // UiInit event handler function.
		UiInit: function() {
				// Handle UiInit event.
					window.alert('Favorite music band is ' + config.band);
					    }
});

// Notify UI plug-in infrastructure to proceed with plug-in initialization.
api.ready();

C.4. 用户界面插件的实现示例

下面介绍了创建一个用户界面插件的方法。这里所创建的插件所实现的功能是,当用户登录到 Red Hat Virtualization Manager 管理门户后,这个插件会运行一个 Hello World! 程序。

过程 C.2. 实现一个 Hello World! 插件

  1. 在 Manager 上添加以下的 /usr/share/ovirt-engine/ui-plugins/helloWorld.json 文件来创建一个插件描述符:
    {
        "name": "HelloWorld",
        "url": "/ovirt-engine/webadmin/plugin/HelloWorld/start.html",
        "resourcePath": "hello-files"
    }
  2. 在 Manager 上添加以下的 /usr/share/ovirt-engine/ui-plugins/hello-files/start.html 文件来创建插件主页:
    <!DOCTYPE html><html><head>
    <script>
        var api = parent.pluginApi('HelloWorld');
        api.register({
    	UiInit: function() { window.alert('Hello world'); }
        });
        api.ready();
    </script>
    </head><body></body></html>
如果您成功地部署了这个 Hello World! 插件,在您登录到管理门户的时候会看到以下显示:
成功部署的 Hello World! 插件

图 C.1. 成功部署的 Hello World! 插件

C.5. 使用 Red Hat Support 插件

Red Hat Access 插件允许您在 Red Hat Virtualization 管理门户中使用 Red Hat access 服务。您需要使用您的 Red Hat login 帐号进行登录。如果您没有登录,Red Hat Access 插件会打开一个登录窗口。

注意

Red Hat Virtualization 管理门户的登录帐号和用户的 Red Hat login 不同。
The Red Hat Support Plug-in Login Window

图 C.2. Red Hat Support 插件 - 登录窗口

在登录后,您将可以访问 Red Hat Customer Portal。Red Hat Support 插件可以在 Red Hat Virtualization 管理门户中的详情框,以及其它一些菜单中找到。您可以使用搜索框在 Red Hat Access 数据库中进行查询,搜索的结果会在详情框左面的导航列表中显示。
Query results in the left-hand navigation list of the Red Hat Support Plug-in

图 C.3. Red Hat Support 插件 - 左面导航列表中显示的查询结果

在 Red Hat Virtualization 管理门户中的相关项上点鼠标右键来使用 Red Hat Support 插件。
Right-clicking on a context menu to access Red Hat Support Plug-in

图 C.4. 在相关项上点鼠标右键来使用 Red Hat Support 插件

选择 Open New Support Case 打开一个新的支持档案;或选择 Modify Existing Case 来修改一个存在的支持档案。
Red Hat Support Plug-in Opening a New Support Case

图 C.5. Red Hat Support 插件 - 打开一个新的支持档案

选择 Red Hat Documentation 标签页打开和当前的管理门户所显示的内容相关的档案。
Red Hat Support Plug-in - a picture showing how to access documentation through the Red Hat Support Plug-in

图 C.6. Red Hat Support 插件 - 访问文档

附录 D. Red Hat Virtualization 和 SSL

D.1. 替换 Red Hat Virtualization Manager SSL 证书

警告

不要修改 /etc/pki 目录和它的所有子目录的访问权限和所有者权限。/etc/pki/etc/pki/ovirt-engine 目录的权限必须保持为默认的值(755)。
当用户通过 HTTPS 连接到您的 Red Hat Virtualization Manager 时,您希望使用由商业证书授权机构为您签发的证书。

注意

使用商业证书授权机构签发的证书进行 HTTPS 连接,并不会影响到 Manager 和主机间进行验证时所使用的证书,它们仍然使用由 Manager 产生的自己签发的证书来进行验证。
先决条件

您需要一个商业证书授权机构签发的 PEM 格式的证书、一个 .nokey 文件和一个 .cer 文件。.nokey.cer 文件有时以 P12 格式的证书密钥被发放。

这个步骤假设您已经有了 P12 格式的证书密钥。

重要

对于全新的 Red Hat Virtualization 安装,您必须完成此操作中的所有步骤。如果从 Red Hat Enterprise Virtualization 3.6 环境升级时配置了商业证书授权机构签名的证书,仅需要执行第 1、8 和 9 步。

过程 D.1. 替换 Red Hat Virtualization Manager Apache SSL 证书

  1. 将商业证书授权机构签发的证书添加到主机层面的信任库。
    # cp YOUR-3RD-PARTY-CERT.pem /etc/pki/ca-trust/source/anchors
    # update-ca-trust
  2. Manager 已经被配置为使用 /etc/pki/ovirt-engine/apache-ca.pem(到 /etc/pki/ovirt-engine/ca.pem 的一个符号链接)。删除这个符号链接。
    # rm /etc/pki/ovirt-engine/apache-ca.pem
  3. 把您的商业证书授权机构签发的证书保存为 /etc/pki/ovirt-engine/apache-ca.pem。证书链必须包括根证书,它的顺序非常重要,需要是从最后一个中间证书到根证书。
    mv YOUR-3RD-PARTY-CERT.pem /etc/pki/ovirt-engine/apache-ca.pem
  4. 备份您的 P12 捆绑包,然后将它移到 /etc/pki/ovirt-engine/keys/apache.p12
  5. 从文件中展开密钥。
    # openssl pkcs12 -in  /etc/pki/ovirt-engine/keys/apache.p12 -nocerts -nodes > /etc/pki/ovirt-engine/keys/apache.key.nopass
  6. 从文件中展开证书
    # openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys > /etc/pki/ovirt-engine/certs/apache.cer
  7. 重新启动 Apache 服务器。
    # systemctl restart httpd.service
  8. 创建新的信任库配置文件。
    # vi /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
    添加下列内容,再保存文件。
    ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
    ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
  9. 重新启动 ovirt-engine 服务。
    systemctl restart ovirt-engine.service
现在用户可以连接管理门户和用户门户,不会再出现质疑您所使用的证书的权威性的警告信息。

重要

替换证书可能会导致日志收集程序出现问题(如 https://access.redhat.com/solutions/458713 所述)。为了避免问题的出现,编辑日志收集程序的配置:
  1. 从 CA 服务器输出 CA 证书,把它复制到 Red Hat Virtualization Manager 服务器。
  2. 通过把以下内容添加到 /etc/ovirt-engine/logcollector.conf 文件来把日志收集程序指向新的位置:
    cert-file=/path/to/new/CA/file

D.2. 在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接

要在 Red Hat Enterpriser Virtualization Manager 和一个 LDAP 服务器间创建一个安全的连接,需要获得 LDAP 服务器的根(root)CA 证书,把根 CA 证书复制到 Manager 并创建一个 PEM 编码的 CA 证书。keystore 类型可以是任何 Java 支持的类型。以下使用 Java KeyStore(JKS)格式。

注意

如需了解更多与创建 PEM 编码的 CA 证书相关的信息,请参阅 README 文件(/usr/share/doc/ovirt-engine-extension-aaa-ldap-version)的 X.509 CERTIFICATE TRUST STORE 一节。

过程 D.2. 创建一个 PEM 编码的 CA 证书

  1. 在 Red Hat Virtualization Manager 中把 LDAP 服务器的根 CA 证书复制到 /tmp 目录,并使用 keytool 导入根 CA 证书来创建一个 PEM 编码的 CA 证书。以下命令把根 CA 证书导入到 /tmp/myrootca.pem,并在 /etc/ovirt-engine/aaa/ 中创建一个 PEM 编码的 CA 证书。记录下证书的位置和密码。如果使用交换式工具程序,这些就是您需要的所有信息。如果手工配置 LDAP 服务器,安装以下步骤更新配置文件。
    $ keytool -importcert -noprompt -trustcacerts -alias myrootca -file /tmp/myrootca.pem -keystore /etc/ovirt-engine/aaa/myrootca.jks -storepass password
  2. 使用证书信息更新 /etc/ovirt-engine/aaa/profile1.properties 文件:

    注意

    ${local:_basedir} 是 LDAP 属性配置文件所在的目录,它指向 /etc/ovirt-engine/aaa 目录。如果您在不同的目录中创建了 PEM 编码的 CA 证书,使用到证书文件的完全路径替换 ${local:_basedir}
    • 使用 startTLS(推荐):
      # Create keystore, import certificate chain and uncomment
      pool.default.ssl.startTLS = true
      pool.default.ssl.truststore.file = ${local:_basedir}/myrootca.jks
      pool.default.ssl.truststore.password = password
    • 使用 SSL:
      # Create keystore, import certificate chain and uncomment
      pool.default.serverset.single.port = 636
      pool.default.ssl.enable = true
      pool.default.ssl.truststore.file = ${local:_basedir}/myrootca.jks
      pool.default.ssl.truststore.password = password
要继续配置一个外部的 LDAP 供应商,请参阅 第 15.3.1 节 “删除一个外部 LDAP 供应商(交互式设置)”。要继续配置 LDAP 和 Kerberos 实现单点登录功能,请参阅 第 15.4 节 “为 LDAP 和 Kerberos 配置单点登录”

附录 E. 使用搜索、书签和标签

E.1. 搜索

E.1.1. 在 Red Hat Virtualization 中执行搜索

管理门户可以管理上千的资源,如虚拟机、主机、用户等等。要进行一个搜索,在搜索条中输入搜索条件。搜索条件可以被保存为“书签”以便日后使用。搜索条件不区分大小写。

E.1.2. 搜索语法和实例

对 Red Hat Virtualization 资源进行搜索的查询语句的语法是:
result type: {criteria} [sortby sort_spec]
语法实例

以下的实例介绍了如何使用搜索查询的功能,以及 Red Hat Virtualization 可以如何帮助创建搜索查询。

表 E.1. 搜索查询实例

实例结果
Hosts: Vms.status = up显示所有状态为 up 的运行的虚拟机。
Vms: domain = qa.company.com显示指定域中的所有虚拟机列表。
Vms: users.name = Mary显示所有属于用户名为 Mary 的用户的虚拟机。
Events: severity > normal sortby time显示所有 severity 的值高于 Normal 的事件,并以时间顺序排序。

E.1.3. 带自动完成功能的搜索

管理门户为搜索提供了自动完成的功能。在您输入搜索条件的一部分时,搜索条的下面会显示一个下拉菜单,其中包括了您可以选择作为搜索条件下一部分的内容。您可以选择使用这个下拉菜单所提供的内容,也可以继续手工输入您的搜索条件。
下表通过实例展示了管理门户的自动完成功能如何帮助您创建一个搜索条件:
Hosts: Vms.status = down

表 E.2. 使用自动完成功能的搜索条件实例

输入显示的内容列表操作
h Hosts(只有一个选项)
选择 Hosts 或;
输入 Hosts
Hosts:
主机的所有属性
输入 v
Hosts: v v 开头的主机属性选择 Vms 或输入 Vms
Hosts: Vms 所有虚拟机属性输入 s
Hosts: Vms.s s 开头的所有虚拟机属性选择 status 或输入 status
Hosts: Vms.status
=
=!
选择或输入 =
Hosts: Vms.status = 所有状态值选择或输入 down

E.1.4. 搜索的结果类型选项

使用结果类型可以对以下类型的资源进行搜索:
  • Vms:一个虚拟机列表
  • Host:一个主机列表
  • Pools:一个池列表
  • Template:一个模板列表
  • Event:一个事件列表
  • Users:一个用户列表
  • Cluster:一个集群列表
  • Datacenter:一个数据中心列表
  • Storage:一个存储域列表
因为每个资源类型都有一组特定的属性,以及和它相关的其它资源,所以每个搜索类型都有一组特定的组合。因此,自动完成功能可以根据这些组合来帮助您方便地创建有效的搜索条件。

E.1.5. 搜索条件

您可以在搜索查询命令中的冒号后面指定搜索条件。{criteria} 的使用语法是:
<prop><operator><value>
<obj-type><prop><operator><value>
实例

下表列出了语法中每一部分的含义:

表 E.3. 搜索实例

部分描述示例注意
prop要搜索的资源的属性。也可以是一个资源类型(obj-type)或 tag(自定义标签)的属性。把搜索的范围限制在所指定的属性中。例如,搜索带有 status 属性的资源。Status不适用
obj-type所搜索资源的资源类型。系统项,如数据中心和虚拟机。Users不适用
operator比较操作符。
=
!= (不等于)
>
<
>=
<=
不适用可用的值由 obj-type 的值决定。
Value用来比较的值。
字符串
整数
级别
日期(使用在地区设置中所指定的格式)
Jones
256
normal
  • 在字符串中可以使用通配符。
  • "" (在两个引号间没有空格)可以被用来代表一个空的字符串。
  • 如果字符串或日期中包括空格,这个字符串或日期需要使用双引号

E.1.6. 搜索:多个条件和通配符

<value> 部分可以使用通配符。如要查找所有以 m 开头的用户,输入 m*
您也可以通过使用布尔运算符 ANDOR 指定多个搜索条件,如:
Vms: users.name = m* AND status = Up
这个搜索查询会返回,用户名 "m" 开头的用户正在运行的所有虚拟机。
Vms: users.name = m* AND tag = "paris-loc"
这个搜索查询会返回,用户名以 "m" 开头的用户运行的、带有 "paris-loc" 标签的虚拟机。
当使用两个搜索条件而之间没有使用 ANDOR 时,这意味着 AND 被隐含使用。AND 的优先级高于 OROR 的优先级高于隐含使用的 AND

E.1.7. 搜索:决定搜索结果的顺序

您可以使用 sortby 来指定搜索结果的顺序。您还可以指定是 asc (升序)还是 desc(降序)排列。
例如:
events: severity > normal sortby time desc
这个搜索查询会返回级别高于 Normal 的所有事件,并以时间降序排列。

E.1.8. 对数据中心的搜索

下面介绍了对数据中心进行搜索时可以使用的选项。

表 E.4. 对数据中心的搜索

资源或资源类型的属性类型描述
Clusters.clusters-prop由属性类型决定和数据中心相关的集群的属性。
name字符串数据中心的名称。
description字符串数据中心的描述。
type字符串数据中心的类型。
status列表数据中心的状态。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
实例

Datacenter: type = nfs and status != up

这个实例返回一个满足以下条件的数据中心列表:
  • 有一个 NFS 存储,状态不是 up

E.1.9. 搜索集群

下面介绍了对集群进行搜索时可以使用的选项。

表 E.5. 搜索集群

资源或资源类型的属性类型描述
Datacenter.datacenter-prop由属性类型决定与集群相关的数据中心的属性。
Datacenter字符串集群所属的数据中心。
name字符串用来在网络中标识集群的名称。
description字符串集群的描述。
initialized字符串True 或 False 来标记集群的状态。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Clusters: initialized = true or name = Default

这个实例返回一个满足以下条件的集群列表:
  • 被初始化了;或
  • 它们的名称是 Default

E.1.10. 搜索主机

下面介绍了对主机进行搜索时可以使用的选项。

表 E.6. 搜索主机

资源或资源类型的属性类型Description (Reference)
Vms.Vms-prop由属性类型决定与主机相关的虚拟机的属性
Templates.templates-prop由属性类型决定与主机相关的模板的属性。
Events.events-prop由属性类型决定与主机相关的事件的属性。
Users.users-prop由属性类型决定与主机相关的用户的属性。
name字符串主机的名称。
status列表主机的状态。
external_status字符串由外部系统和插件进行报告的主机健康状态。
cluster字符串主机所属的集群。
address字符串用来在网络中标识主机的名称。
cpu_usage整数CPU 被使用的百分数。
mem_usage整数内存被使用的百分数。
network_usage整数网络被使用的百分数。
load整数在一个指定的时间段中,每个处理器中的、等待在 run-queue 中被执行的工作数量。
version整数操作系统的版本号。
cpus整数主机上的 CPU 数量。
memory整数可用内存的数量。
cpu_speed整数CPU 的处理速度。
cpu_model字符串CPU 的类型。
active_vms整数当前正在运行的虚拟机数量。
migrating_vms整数当前正在被迁移的虚拟机数量。
committed_mem整数被分配的内存的百分数。
tag字符串主机的标签(tag)
type字符串主机类型。
datacenter字符串主机所属的数据中心。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Hosts: cluster = Default and Vms.os = rhel6

这个实例返回一个主机的列表,这些主机:
  • 是 Default 集群的一部分,主机上的虚拟机运行 Red Hat Enterprise Linux 6 操作系统。

E.1.11. 搜索网络

下面介绍了对网络进行搜索时可以使用的选项。

表 E.7. 搜索网络

资源或资源类型的属性类型描述
Cluster_network.clusternetwork-prop由属性类型决定与网络相关的集群的属性。
Host_Network.hostnetwork-prop由属性类型决定与网络相关的主机的属性。
name字符串被用来识别网络的网络名。
description字符串网络的关键字或描述(创建网络时的可选属性)
vlanid整数网络的 VLAN ID。
stp字符串网络是否启用或禁用 STP。
mtu整数逻辑网络的最大传输单位。
vmnetwork字符串网络是否只用于虚拟机的通信。
datacenter字符串网络所在的数据中心
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Network: mtu > 1500 and vmnetwork = true

这个实例返回一个符合以下条件的网络列表:
  • 最大传输单元大于 1500 字节
  • 只为虚拟机使用。

E.1.12. 搜索存储

下面介绍了对存储进行搜索时可以使用的选项。

表 E.8. 搜索存储

资源或资源类型的属性类型描述
Hosts.hosts-prop由属性类型决定与存储相关的主机的属性。
Clusters.clusters-prop由属性类型决定与存储相关的集群的属性。
name字符串用来在网络中标识存储的名称。
status字符串存储域的状态。
external_status字符串由外部系统和插件进行报告的存储域健康状态。
datacenter字符串存储所在的数据中心。
type字符串存储的类型。
size整数存储的大小。
used整数已经被使用的存储的大小。
committed整数被分配的存储的大小。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Storage: size > 200 or used < 50

这个实例返回满足以下条件的存储列表:
  • 总存储空间大于 200 GB;或
  • 被使用的存储空间小于 50 GB。

E.1.13. 搜索磁盘

下面介绍了对磁盘进行搜索时可以使用的选项。

表 E.9. 搜索磁盘

资源或资源类型的属性类型描述
Datacenters.datacenters-prop由属性类型决定与磁盘相关的数据中心的属性。
Storages.storages-prop由属性类型决定与磁盘相关的存储的属性。
alias字符串被用来在网络中识别存储的名称。
description字符串网络的关键字或描述(创建磁盘时的可选属性)
provisioned_size整数虚拟磁盘的大小。
size整数磁盘的大小。
actual_size整数为磁盘分配的实际空间的大小。
creation_date整数磁盘被创建的时间。
bootable字符串磁盘是否可以被引导。有效的值是 01yesno
shareable字符串磁盘是否可以被共享。有效的值是 01yesno
format字符串磁盘的格式。有效的值是 unusedunassignedcowraw
status字符串磁盘的状态。有效的值是 unassignedoklockedinvalidillegal
disk_type字符串磁盘的类型。有效的值是 imagelun
number_of_vms整数磁盘被附加到的虚拟机的数量。
vm_names字符串磁盘被附加到的虚拟机的名称。
quota字符串磁盘使用的配额的名称。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Disks: format = cow and provisioned_size > 8

返回满足以下条件的虚拟磁盘列表:
  • 格式是 QCOW(也被称为 thin provisioning)
  • 被分配的磁盘空间大小大于 8 GB。

E.1.14. 搜索卷

下面介绍了对卷进行搜索时可以使用的选项。

表 E.10. 搜索卷

资源或资源类型的属性类型描述
Volume.cluster-prop由属性类型决定与卷相关的集群的属性。
Cluster字符串与卷相关的集群的名称。
name字符串被用来识别卷的卷名。
type字符串可以是 distribute、replicate、distributed_replicate、stripe 或 distributed_stripe。
transport_type整数可以是 TCP 或 RDMA
replica_count整数replica 的数量。
stripe_count整数stripe 的数量。
status字符串卷的状态。有效值是 Up 或 Down。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Volume: transport_type = rdma and stripe_count >= 2

这个实例返回满足以下条件的卷列表:
  • 传输类型是 RDMA;并且
  • 有 2 个或多个 stripe。

E.1.15. 搜索虚拟机

下表介绍了对虚拟机进行搜索时可以使用的选项。

表 E.11. 搜索虚拟机

资源或资源类型的属性类型描述
Hosts.hosts-prop由属性类型决定与虚拟机相关的主机的属性。
Templates.templates-prop由属性类型决定与虚拟机相关的模板的属性。
Events.events-prop由属性类型决定与虚拟机相关的事件的属性。
Users.users-prop由属性类型决定与虚拟机相关的用户的属性。
Storage.storage-prop由属性类型决定与虚拟机相关的存储设备属性。
Vnic.mac-prop由属性类型决定与虚拟机相关的 MAC 地址属性。
name字符串虚拟机名称。
status列表虚拟机的状态。
ip整数虚拟机的 IP 地址。
uptime整数虚拟机已经运行的时间(以分钟为单位)
domain字符串虚拟机的域(通常是 Active Directory 域)。
os字符串在虚拟机被创建时所选的操作系统。
creationdate日期虚拟机被创建的时间。
address字符串用来在网络中标识虚拟机的名称。
cpu_usage整数使用的 CPU 资源的百分比。
mem_usage整数内存被使用的百分比。
network_usage整数网络被使用的百分比。
memory整数定义的最大内存。
apps字符串当前在虚拟机上安装的应用程序。
cluster列表虚拟机所在的集群。
pool列表虚拟机所在的虚拟机池。
loggedinuser字符串当前登录到虚拟机上的用户的用户名。
tag列表与虚拟机相关的标签(tag)。
datacenter字符串虚拟机所在的数据中心。
type列表虚拟机类型(服务器或桌面)。
quota字符串与虚拟机相关的配额的配额名。
description字符串虚拟机的关键字或描述(创建虚拟机时的可选属性)
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Vms: template.name = Win* and user.name = ""

它会返回满足以下条件的虚拟机:
  • 虚拟机所基于的模板的模板名以 Win 开头,并且虚拟机被分配给任何用户。
示例

Vms: cluster = Default and os = windows7

它会返回满足以下条件的虚拟机:
  • 虚拟机所在的集群的名称为 Default,并且虚拟机使用 Windows 7 操作系统。

E.1.16. 搜索池

下面介绍了对池进行搜索时可以使用的选项。

表 E.12. 搜索池

资源或资源类型的属性类型描述
name字符串池的名称。
description字符串池的描述。
type类表池的类型。
sortby类表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Pools: type = automatic

这个实例返回满足以下条件的池列表:
  • 类型是 automatic

E.1.17. 搜索模板

下面介绍了对模板进行搜索时可以使用的选项。

表 E.13. 搜索模板

资源或资源类型的属性类型描述
Vms.Vms-prop字符串与模板相关的虚拟机的属性。
Hosts.hosts-prop字符串与模板相关的主机的属性。
Events.events-prop字符串与模板相关的事件的属性。
Users.users-prop字符串与模板相关的用户的属性。
name字符串模板的名称。
domain字符串模板所在的域。
os字符串操作系统的类型。
creationdate整数
模板被创建的时间。
时间的格式是 mm/dd/yy
childcount整数通过模板创建的虚拟机的数量。
mem整数定义的内存。
description字符串模板的描述。
status字符串模板的状态。
cluster字符串与模板相关的集群。
datacenter字符串与模板相关的数据中心。
quota字符串与模板相关的配额。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Template: Events.severity >= normal and Vms.uptime > 0

这个实例返回满足以下条件的模板列表:
  • 基于这个模板所创建的虚拟机上有 severity 级别是 normal 或更高的事件发生,并且虚拟机还在运行。

E.1.18. 搜索用户

下面介绍了对用户进行搜索时可以使用的选项。

表 E.14. 搜索用户

资源或资源类型的属性类型描述
Vms.Vms-prop由属性类型决定与用户相关的虚拟机的属性。
Hosts.hosts-prop由属性类型决定与用户相关的主机的属性。
Templates.templates-prop由属性类型决定与用户相关的模板的属性。
Events.events-prop由属性类型决定与用户相关的事件的属性。
name字符串用户的名称。
lastname字符串用户的姓(last name)
usrname字符串用户的用户名。
department字符串用户所在的部门。
group字符串用户所在的组。
title字符串用户的职位。
status字符串用户的状态。
role字符串用户的角色。
tag字符串与用户相关联的标签(tag)
pool字符串用户所在的池。
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Users: Events.severity > normal and Vms.status = up or Vms.status = pause

这个实例返回满足以下条件的用户列表:
  • 用户的虚拟机上有 severity 级别为 normal 或更高级别的事件,并且虚拟机仍然在运行;或
  • 用户的虚拟机的状态为 paused。

E.1.19. 搜索事件

下面介绍了对事件进行搜索时可以使用的选项。

表 E.15. 搜索事件

资源或资源类型的属性类型描述
Vms.Vms-prop由属性类型决定与事件相关的虚拟机的属性。
Hosts.hosts-prop由属性类型决定与事件相关的主机的属性。
Templates.templates-prop由属性类型决定与事件相关的模板的属性。
Users.users-prop由属性类型决定与事件相关的用户的属性。
Clusters.clusters-prop由属性类型决定与事件相关的集群的属性。
Volumes.Volumes-prop由属性类型决定与事件相关的卷的属性。
type列表事件的类型。
severity列表事件的 severity 级别:Warning/Error/Normal。
message字符串事件类型的描述。
time列表数据发生的时间。
usrname字符串与事件相关的用户名。
event_host字符串与事件相关的主机。
event_vm字符串与时间相关的虚拟机。
event_template字符串与事件相关的模板。
event_storage字符串与事件相关的存储。
event_datacenter字符串与事件相关的数据中心。
event_volume字符串与事件相关的卷。
correlation_id整数事件的识别码(ID)
sortby列表使用资源的一个属性对搜索结果进行排序。
page整数所显示的每一页的结果数量。
示例

Events: Vms.name = testdesktop and Hosts.name = gonzo.example.com

这个实例返回满足以下条件的事件列表:
  • 在主机 gonzo.example.com 上运行的、名为 testdesktop 的虚拟机上的事件。

E.2. 书签

E.2.1. 把一个搜索条件保存为书签

一个搜索条件可以被存成一个书签,并和其它用户共享这个书签。

过程 E.1. 把一个搜索条件保存为书签

  1. 在搜索栏中输入搜索条件并执行这个搜索。
  2. 点搜索栏右面的星形书签图标打开一个新书签窗口。
    书签图标

    图 E.1. 书签图标

  3. 输入书签的名称
  4. 如果需要的话,编辑搜索字符串中的内容。
  5. 确定把搜索条件保存为一个书签,并关闭窗口。
  6. 这个搜索条件被保存为一个书签,并出现在书签框中。
您把一个搜索条件存为了一个书签以便日后使用。 您可以在书签框中查找并选择书签。

E.2.2. 编辑一个书签

您可以编辑一个书签的名称和搜索字符串。

过程 E.2. 编辑一个书签

  1. 点屏幕左面的书签页。
  2. 选择您需要编辑的书签。
  3. 编辑按钮打开编辑书签窗口。
  4. 根据需要修改名称搜索字符串中的内容。
  5. 确认保持所编辑的书签。
您编辑了一个搜索书签。

E.2.3. 删除一个书签

当一个书签不再需要时,可以删除它。

过程 E.3. 删除一个书签

  1. 点屏幕左面的书签页。
  2. 选择您需要删除的书签。
  3. 删除键打开删除书签窗口。
  4. 确认删除所选的书签。
您删除了一个搜索书签。

E.3. 标签

E.3.1. 使用标签来定制和 Red Hat Virtualization 进行交流的方式

当您的 Red Hat Virtualization 平台根据您的需要进行配置后,您可以通过使用标签(tag)来定制在它上面工作的方式。标签为系统管理员提供了一个关键的功能:使用标签可以把系统资源分成组或类。这个功能使管理员可以只专注于特定的资源,而不用受到环境中其它虚拟资源的干扰。
本节介绍了如果创建和编辑标签、为主机或虚拟机分配标签、以及使用标签作为搜索条件的方法。您可以根据您所在机构的管理结构,把标签创建为一个分级的结构。
管理门户中的标签可以通过使用标签框中的键来进行创建、编辑和删除。

E.3.2. 创建一个标签

通过创建标签,您可以使用它门来过滤搜索的结果。

过程 E.4. 创建一个标签

  1. 点屏幕左面的标签页。
  2. 选择您需要创建标签的节点。例如,您需要在最高级别创建标签,点 root 节点。
  3. 新建按钮打开新建标签窗口。
  4. 输入新标签的名称描述
  5. 确认来创建标签。
新标签被创建并出现在标签页中。

E.3.3. 修改一个标签

您可以编辑标签的名称和描述。

过程 E.5. 修改一个标签

  1. 点屏幕左面的标签页。
  2. 选择您需要修改的标签。
  3. 编辑打开编辑标签窗口。
  4. 根据需要修改名称描述项中的内容。
  5. 确认保存所编辑的标签。
您编辑了一个标签的属性。

E.3.4. 删除一个标签

当一个标签不再需要时,可以删除它。

过程 E.6. 删除一个标签

  1. 点屏幕左面的标签页。
  2. 选择您需要删除的标签。
  3. 删除打开删除标签窗口。这个窗口包括了删除标签将同时删除所有标签的依赖关系的警告信息。
  4. 确认删除所选的标签。
您删除了标签,以及它所有的依赖关系。这个标签将会从它所附加到的所有项中删除。

E.3.5. 为项添加或删除标签

您可以为主机、虚拟机和用户添加或删除标签。

过程 E.7. 为项添加或删除标签

  1. 点资源标签页,选要添加或删除标签的项。
  2. 分配标签按钮打开分配标签窗口。
  3. 选择相应的选择框来为这个项分配一个标签,或取消选择相应的选择框来为这个项删除标签。
  4. 确定
指定的标签被添加到所选项的自定义属性中,或从所选项的自定义属性中删除。

E.3.6. 使用标签进行搜索

  • 在搜索查询中使用 tag 作为属性并指定特定的搜索条件。
    满足指定条件的标签所在的项会显示在结果列表中。

附录 F. 品牌化

F.1. 品牌化

F.1.1. 重新品牌化 Manager

Red Hat Virtualization Manager 的许多方面都可以被定制,例如使用的图标、弹出窗口中所显示的信息、欢迎页中的链接等。通过定制它们,您可以重新品牌化(re-brand)您所使用的 Manager 系统,使它以您所需要的形式出现在管理员和用户面前。
定制 Manager 系统的文件位于 Manager 所在系统的 /etc/ovirt-engine/branding/ 目录下。这些文件包括了一组用来改变用户图形界面风格的 CSS 文件,以及一组包括了在 Manager 的不同组件中显示的信息和链接的属性文件。
要定制一个组件,您需要编辑那个组件的文件并保存它。在您下一次打开或刷新那个组件时,您所做的改变将会被显示。

F.1.2. 登录界面

登录界面包括了管理门户和用户门户的登录界面。登录界面的以下项可以被定制:
  • 边框
  • 左面页头的图形
  • 右面页头的图形
  • 页头的信息
登录界面的 class 位于 common.css 文件中。

F.1.3. 管理门户界面

管理门户界面就是您登录到管理门户后所看到的主界面。管理门户的以下项可以被定制:
  • 徽标
  • 左面的背景图形
  • 中央的背景图形
  • 右面的背景图形
  • 徽标右面的文字
管理门户界面的 class 位于 web_admin.css 文件中。

F.1.4. 用户门户界面

用户门户界面就是您登录到用户门户后所看到的主界面。用户门户的以下项可以被定制:
  • 徽标
  • 中央的背景图形
  • 右面的背景图形
  • 主界面的边框
  • 登录用户信息上方的文字
用户门户的 class 位于 user_portal.css 文件中。

F.1.5. 弹出窗口

弹出窗口就是那些运行您创建、编辑或更新某个项(如一个主机或虚拟机)的窗口。弹出窗口的以下项可以被定制:
  • 边框
  • 窗口头左面的图形
  • 窗口头中间的图形(重复的)
弹出窗口的 class 位于 common.css

F.1.6. 标签页

用户门户包括了两类标签页 - 切换基本试图和扩展试图的主标签页和在扩展试图屏幕左面的标签页。标签页的以下项可以被定制:
  • 选中
  • 没被选中
标签页的 class 位于 common.cssuser_portal.css 文件中。

F.1.7. 欢迎页

欢迎页就是您访问 Manager 的主页时初始显示的页。您除了可以定制它的外观和风格,您还可以通过编辑一个模板文件来对它进行其它的一些修改,如在这个页中添加额外的链接。欢迎页的以下项可以被定制:
  • 页的标题
  • 页头(左、中和右)
  • 错误信息
  • 向前的链接以及与那个链接相关的文字信息
欢迎页的 class 位于 welcome_style.css 文件中。
模板文件

欢迎页的模板文件是一个名为 welcome_page.template 的普通 HTML 文件,它不包括 HTMLHEADBODY tag。这个文件会被直接插入到欢迎页中,作为要在欢迎页中显示的信息的容器。因此,您需要通过编辑这个文件来修改欢迎页中的信息或为它添加链接。另外,模板文件还提供了替代符(如 {user_portal}),在欢迎页被处理的时候,这些替代符会被 messages.properties 文件中的信息所替代。

F.1.8. 未找到页面页

未找到页面页就是您所要打开的页没有在 Red Hat Virtualization Manager 中找到时所显示的页。未找到页面页中的以下项可以被定制:
  • 页的标题
  • 页头(左、中和右)
  • 错误信息
  • 向前的链接以及与那个链接相关的文字信息
未找到页面页的 class 位于 welcome_style.css 文件中。

附录 G. 系统账户

G.1. 系统账户

G.1.1. Red Hat Virtualization Manager 用户

在安装了 rhevm 软件包后,以下一组系统用户账户会被创建来支持 Red Hat Virtualization。每个系统用户都会有一个默认的用户 ID(UID)。
  • vdsm 用户(UID 36)。用来挂载和访问 NFS 存储域的工具程序需要这个用户。
  • ovirt 用户(UID 108)。这个用户是 ovirt-engine Red Hat JBoss Enterprise Application Platform 的所有者。
  • ovirt-vmconsole 用户(UID 498)。虚拟机串口控制台需要这个用户。

G.1.2. Red Hat Virtualization Manager 用户组

在安装了 rhevm 软件包后,以下一组系统用户组会被创建来支持 Red Hat Virtualization。每个系统用户组都会有一个默认的组 ID(GID)。
  • kvm 组(GID 36)。组成员包括:
    • vdsm 用户。
  • ovirt 组(GID 108)。它的组成员包括:
    • ovirt 用户。
  • ovirt-vmconsole 组(GID 498)。组成员包括:
    • ovirt-vmconsole 用户。

G.1.3. 虚拟主机用户

在安装 vdsmqemu-kvm-rhev 软件包时,一组系统用户组会在虚拟主机上创建。每个系统用户都有一个默认的用户 ID(GID)。这些系统用户包括:
  • vdsm 用户(UID 36)。
  • qemu 用户(UID 107)。
  • sanlock 用户(UID 179)。
  • ovirt-vmconsole 用户(UID 498)。

重要

所分配的用户 ID(UID)和组 ID (GID)在不同系统上可能会有所不同。但是,vdsm 用户的 UID 都会是 36kvm 组的 GID 都会是 36
如果系统的 UID 36 或 GID 36 已经被其它账户所使用,在安装 vdsmqemu-kvm-rhev 软件包时就会产生冲突。

G.1.4. 虚拟主机组

在安装 vdsmqemu-kvm-rhev 软件包时,一组系统用户组会在虚拟主机上创建。每个系统组都有一个默认的组 ID(GID)。这些系统用户组包括:
  • kvm 组(GID 36)。组成员包括:
    • qemu 用户。
    • sanlock 用户。
  • qemu 组(GID 107)。组成员包括:
    • vdsm 用户。
    • sanlock 用户。
  • ovirt-vmconsole 组(GID 498)。组成员包括:
    • ovirt-vmconsole 用户。

重要

所分配的用户 ID(UID)和组 ID (GID)在不同系统上可能会有所不同。但是,vdsm 用户的 UID 都会是 36kvm 组的 GID 都会是 36
如果系统的 UID 36 或 GID 36 已经被其它账户所使用,在安装 vdsmqemu-kvm-rhev 软件包时就会产生冲突。

法律通告

Copyright © 2016 Red Hat.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.