2.4. 高级卷配置


以下流程描述了如何执行高级卷管理流程。

2.4.1. 备份和恢复卷

卷备份是卷内容的持久副本。卷备份通常作为对象存储创建,默认通过对象存储服务管理。但是,您可以为备份设置不同的存储库;OpenStack 支持 Red Hat Ceph 和 NFS 作为备份的替代后端。

在创建卷备份时,所有备份的元数据都存储在块存储服务的数据库中。从备份中恢复卷时,cinder 实用程序使用此元数据。因此,在从灾难性数据库丢失中恢复时,您必须先恢复块存储服务的数据库,然后才能从备份中恢复任何卷。这也假设块存储服务数据库正在恢复所有原始卷备份元数据。

如果您只想将卷备份的子集配置为存活灾难性数据库丢失,您也可以导出备份的元数据。然后,您可以稍后将元数据重新导入到块存储数据库,并正常恢复卷备份。

注意

卷备份与快照不同。备份保留卷中包含的数据,而快照则保留卷在特定时间点的状态。另外,如果卷已有快照,则无法删除它。卷备份以防止数据丢失,而快照则用于协助克隆。

因此,快照后端通常与卷后端共存,以便在克隆期间最小化延迟。相反,备份存储库通常位于典型的企业部署中的不同位置(如不同的节点、物理存储甚至地理位置)。这是为了防止备份存储库不受卷后端可能出现的损坏的影响。

有关卷快照的详情,请参考 第 2.3.8 节 “创建、使用或删除卷快照”

2.4.1.1. 创建完全卷备份

要备份卷,请使用 cinder backup-create 命令。默认情况下,此命令将创建卷的完整备份。如果卷有现有的备份,您可以选择创建 增量备份 (详情请参阅 第 2.4.1.2 节 “创建增量卷备份”。)

您可以创建有权访问的卷备份。这意味着,具有管理特权的用户都可备份任何卷,无论所有者是什么。如需更多信息,请参阅 第 2.4.1.1.1 节 “以管理员身份创建卷备份”

  1. 查看您要备份的卷的 IDDisplay Name

    # cinder list
    Copy to Clipboard Toggle word wrap
  2. 备份卷:

    # cinder backup-create VOLUME
    Copy to Clipboard Toggle word wrap

    使用您要备份的卷的 IDDisplay Name 替换 VOLUME。例如:

      +-----------+--------------------------------------+
      |  Property |                Value                 |
      +-----------+--------------------------------------+
      |     id    | e9d15fc7-eeae-4ca4-aa72-d52536dc551d |
      |    name   |                 None                 |
      | volume_id | 5f75430a-abff-4cc7-b74e-f808234fa6c5 |
      +-----------+--------------------------------------+
    Copy to Clipboard Toggle word wrap
    注意

    生成的备份的 volume_id 与源卷的 ID 相同。

  3. 验证卷备份创建已完成:

    # cinder backup-list
    Copy to Clipboard Toggle word wrap

    当备份条目的 Statusavailable 时,卷备份创建已完成。

此时,您还可以导出并存储卷备份的元数据。这可让您恢复卷备份,即使块存储数据库出现灾难性丢失。为此,请运行:

# cinder --os-volume-api-version 2 backup-export BACKUPID
Copy to Clipboard Toggle word wrap

其中 BACKUPID 是卷备份的 ID 或名称。例如,

+----------------+------------------------------------------+
|    Property    |                Value                     |
+----------------+------------------------------------------+
| backup_service |     cinder.backup.drivers.swift          |
|   backup_url   | eyJzdGF0dXMiOiAiYXZhaWxhYmxlIiwgIm9iam...|
|                | ...4NS02ZmY4MzBhZWYwNWUiLCAic2l6ZSI6IDF9 |
+----------------+------------------------------------------+
Copy to Clipboard Toggle word wrap

卷备份元数据由 backup_servicebackup_url 值组成。

2.4.1.1.1. 以管理员身份创建卷备份

具有管理特权的用户(如默认的 admin 帐户)可以备份由 OpenStack 管理的任何卷。当管理员备份非管理员用户拥有的卷时,默认会在卷所有者中隐藏备份。

作为管理员,您仍然可以备份卷,并使 备份可供特定租户使用。为此,请运行:

# cinder --os-auth-url KEYSTONEURL --os-tenant-name TENANTNAME --os-username USERNAME --os-password PASSWD backup-create VOLUME
Copy to Clipboard Toggle word wrap

其中:

  • TENANTNAME 是您要使备份可用的租户的名称。
  • USERNAMEPASSWDTENANTNAME 中用户的用户名/密码凭据。
  • VOLUME 是您要备份的卷的名称或 ID。
  • KEYSTONEURL 是 Identity 服务的 URL 端点(通常为 http://IP:5000/v2,其中 IP 是 Identity 服务主机的 IP 地址)。

在执行此操作时,生成的备份大小将根据 TENANTNAME 的配额而不是管理员的租户进行计数。

2.4.1.2. 创建增量卷备份

默认情况下,cinder backup-create 命令将创建卷的完整备份。但是,如果卷有现有的备份,您可以选择创建 增量备份

增量备份捕获自上次备份(完整或增量)以来对卷的任何更改。在卷的大小随时间增加时,定期执行大量、完全备份卷可能会成为资源密集型。因此,增量备份允许您捕获对卷的定期更改,同时尽量减少资源使用量。

要创建增量卷备份,请使用-- incremental 选项。如:

# cinder backup-create VOLUME --incremental
Copy to Clipboard Toggle word wrap

使用您要备份的卷的 IDDisplay Name 替换 VOLUME。NFS 和对象存储备份存储库完全支持增量备份。

注意

如果已具有增量备份,则无法删除完整备份。另外,如果完整备份有多个增量备份,则只能删除最新的备份。

警告

当使用 Red Hat Ceph Storage 作为 Block Storage (cinder)卷和备份的后端时,任何尝试执行增量备份都会生成完整备份,而无需任何警告。这是一个已知问题(BZ":{"63061)。

2.4.1.3. 在块存储数据库 Los 后恢复卷

通常,块存储数据库丢失会阻止您恢复卷备份。这是因为 Block Storage 数据库包含卷备份服务(openstack-cinder-backup)所需的元数据。这个元数据由 backup_servicebackup_url 值组成,您可以在创建卷备份后导出(如 第 2.4.1.1 节 “创建完全卷备份”所示)。

如果您导出并存储此元数据,您可以将其导入到新的块存储数据库(通过允许您恢复卷备份)。

  1. 以具有管理特权的用户身份,运行:

    # cinder --os-volume-api-version 2 backup-import backup_service backup_url
    Copy to Clipboard Toggle word wrap

    其中 backup_servicebackup_url 来自您导出的元数据。例如,使用从 第 2.4.1.1 节 “创建完全卷备份” 导出的元数据:

    # cinder --os-volume-api-version 2 backup-import cinder.backup.drivers.swift eyJzdGF0dXMi...c2l6ZSI6IDF9
    +----------+--------------------------------------+
    | Property |                Value                 |
    +----------+--------------------------------------+
    |    id    | 77951e2f-4aff-4365-8c64-f833802eaa43 |
    |   name   |                 None                 |
    +----------+--------------------------------------+
    Copy to Clipboard Toggle word wrap
  2. 将元数据导入到块存储服务数据库后,您可以正常恢复卷(请参阅 第 2.4.1.4 节 “从备份中恢复卷”)。

2.4.1.4. 从备份中恢复卷

  1. 查找您要使用的卷备份的 ID

    # cinder backup-list
    Copy to Clipboard Toggle word wrap

    卷 ID 应与您要恢复的卷 ID 匹配。

  2. 恢复卷备份:

    # cinder backup-restore BACKUP_ID
    Copy to Clipboard Toggle word wrap

    其中 BACKUP_ID 是您要使用的卷备份的 ID。

  3. 如果您不再需要备份,请删除它:

    # cinder backup-delete BACKUP_ID
    Copy to Clipboard Toggle word wrap

2.4.2. 迁移卷

块存储服务允许您在主机或后端之间迁移卷。您可以迁移当前正在使用的卷(附加到实例),但不能迁移具有快照的卷。

在主机之间迁移卷时,两个主机必须位于相同的后端。要做到这一点:

  1. 在控制面板中,选择 Admin > Volumes
  2. 在要迁移的卷的 Actions 列中,选择 Migrate Volume
  3. Migrate Volume 对话框中,从 Destination Host 下拉列表中选择目标主机。

    注意

    如果要绕过主机迁移的任何驱动程序优化,请选择 Force Host Copy 复选框。

  4. Migrate 开始迁移。

2.4.2.1. 在后端之间迁移

另一方面,在后端之间迁移卷涉及 卷重新编写。这意味着要迁移到新后端:

  1. 新后端必须在单独的 目标卷类型 中指定为 Extra Spec
  2. 目标卷类型中定义的所有其他 Extra Spec 必须与卷的原始卷类型兼容。

如需了解更多详细信息,请参阅 ] 和 xref:section-specify-backend[

将后端定义为 Extra Spec 时,请使用 volume_backend_name 作为密钥。其对应的值将是后端的名称,如 Block Storage 配置文件(/etc/cinder/cinder.conf)中定义的。在此文件中,每个后端在其自己的部分中定义,其对应的名称在 volume_backend_name 参数中设置。

在目标卷类型中定义了后端后,您可以通过重新键入 将卷迁移到该后端。这涉及将目标卷类型重新应用到卷,从而应用新的后端设置。具体步骤请查看 第 2.3.10 节 “更改卷类型(Volume Re-typing)”

要做到这一点:

  1. 在控制面板中,选择 Project > Compute > Volumes
  2. 在要迁移的卷的 Actions 列中,选择 Change Volume Type
  3. Change Volume Type 对话框中,从 Type 下拉列表中选择定义新后端的目标卷类型。
  4. Migration Policy 下拉列表中选择 On Demand
  5. Change Volume Type 开始迁移。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat