Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

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 操作。