第 3 章 使用块存储备份服务
您可以使用块存储备份服务执行完整或增量备份,并将备份恢复到卷。
3.1. 完整备份
3.1.1. 创建完整卷备份
要备份卷,请使用 cinder backup-create
命令。默认情况下,这个命令会创建卷的完整备份。如果卷有现有的备份,您可以选择创建增量备份。更多信息请参阅 第 3.2.2 节 “执行增量备份”。
在 Red Hat OpenStack Platform (RHOSP)版本 16 之前,cinder backup-create
命令在第一个完整 Ceph 卷备份到 Ceph 存储后端后创建增量备份。在 RHOSP 版本 16 及更高版本中,您必须使用 --incremental
选项来创建增量卷备份。如果您没有在 cinder backup-create
命令中使用 --incremental
选项,则默认设置会创建完整的备份。更多信息请参阅 第 3.2.2 节 “执行增量备份”。
您可以创建您可以访问的卷备份。这意味着,具有管理特权的用户都可以备份任何卷,而不考虑所有者。更多信息请参阅 第 3.1.2 节 “以管理员身份创建卷备份”。
流程
查看您要备份的卷的 ID 或显示名称:
# cinder list
备份卷:
# cinder backup-create _VOLUME_
使用您要备份的卷的
ID
或显示
名称替换 VOLUME。例如:+-----------+--------------------------------------+ | Property | Value | +-----------+--------------------------------------+ | id | e9d15fc7-eeae-4ca4-aa72-d52536dc551d | | name | None | | volume_id | 5f75430a-abff-4cc7-b74e-f808234fa6c5 | +-----------+--------------------------------------+
生成的备份的
volume_id
与源卷的 ID 相同。验证卷备份创建是否已完成:
# cinder backup-list
-
当备份条目的
Status
可用时,卷备份创建已完成。
3.1.2. 以管理员身份创建卷备份
具有管理特权的用户可以备份由 Red Hat OpenStack Platform 管理的任何卷。当 admin 用户备份由非管理员用户拥有的卷时,默认从卷所有者中隐藏备份。
流程
作为 admin 用户,您可以使用以下命令备份卷,并使备份可供特定租户使用:
# cinder --os-auth-url <KEYSTONEURL> --os-tenant-name <TENANTNAME> --os-username <USERNAME> --os-password <PASSWD> backup-create <VOLUME>
根据您的环境要求替换以下变量:
- <TENANTNAME> 是您要备份的租户的名称。
- <USERNAME> 和 <PASSWD> 是 <TENANTNAME> 中用户的用户名和密码凭证。
- <VOLUME> 是您要备份的卷的名称或 ID。
-
<KEYSTONEURL> 是身份服务的 URL 端点,通常为 http://IP:5000/v2,其中 IP 是身份服务主机的 IP 地址。执行此操作时,生成的备份大小针对
TENANTNAME
的配额而不是租户 admin 的配额进行计数。
3.1.3. 导出卷备份的元数据
您可以导出并存储卷备份的元数据,以便您可以恢复卷备份,即使块存储数据库遭受灾难性丢失。
流程
运行以下命令:
# cinder backup-export _BACKUPID_
将 <BACKUPID> 替换为卷备份的 ID 或名称:
+----------------+------------------------------------------+ | Property | Value | +----------------+------------------------------------------+ | backup_service | cinder.backup.drivers.swift | | backup_url | eyJzdGF0dXMiOiAiYXZhaWxhYmxlIiwgIm9iam...| | | ...4NS02ZmY4MzBhZWYwNWUiLCAic2l6ZSI6IDF9 | +----------------+------------------------------------------+
卷备份元数据由 backup_service
和 backup_url
值组成。
3.1.4. 备份使用中的卷
当支持块存储后端快照时,您可以使用 --force
选项创建 in-use 卷备份。
要使用 --force
选项,必须支持 Block Storage 后端快照。您可以通过检查您使用的后端的文档来验证快照支持。
通过使用 --force
选项,您可以确认在执行备份前您不会静止驱动器。使用此方法会造成崩溃一致性,但不是应用程序一致性的备份。这意味着备份不知道执行备份时运行哪些应用程序。但是,数据保持不变。
流程
要创建 in-use 卷的备份,请运行:
# cinder backup-create _VOLUME_ --incremental --force
3.1.5. 备份快照
您可以使用与快照关联的卷 ID 从快照创建完整备份。
流程
使用
cinder snapshot list
找到要备份的快照的快照 ID。# cinder snapshot-list --volume-id _VOLUME_ID_
如果快照被命名,您可以使用以下示例查找
ID
:# cinder snapshot-show _SNAPSHOT_NAME_
创建快照的备份:
# cinder backup-create _VOLUME_ --snapshot-id=_SNAPSHOT_ID_
注意当您使用
--snapshot-id
选项时,基于快照的 NFS 卷备份会失败。这是个已知问题。
3.1.6. 在边缘站点间备份和恢复
您可以在边缘站点和可用区中的分布式计算节点(DCN)架构间备份和恢复块存储服务(cinder)卷。cinder-backup
服务在中央可用区(AZ)中运行,备份存储在中央 AZ 中。块存储服务不在 DCN 站点存储备份。
先决条件
-
中央站点使用位于
/usr/share/openstack-tripleo-heat-templates/environments
的cinder-backup.yaml
环境文件进行部署。如需更多信息,请参阅块存储备份服务部署。 - Block Storage 服务(cinder) CLI 可用。
-
所有站点都必须使用通用的
openstack
cephx 客户端名称。有关更多信息,请参阅为外部访问创建 Ceph 密钥。
流程
在第一个 DCN 站点中创建卷的备份:
$ cinder --os-volume-api-version 3.51 backup-create --name <volume_backup> --availability-zone <az_central> <edge_volume>
-
将
<volume_backup
> 替换为卷备份的名称。 -
将
<az_central
> 替换为托管cinder-backup
服务的中央可用区的名称。 将 <
edge_volume
> 替换为您要备份的卷的名称。注意如果 Ceph 密钥环出现问题,您可能需要重启
cinder-backup
容器,以便从主机中的密钥环复制到容器。
-
将
将备份恢复到第二个 DCN 站点中的新卷:
$ cinder --os-volume-api-version 3.51 create --availability-zone <az_2> --name <new_volume> --backup-id <volume_backup> <volume_size>
-
将 <
;az_
2> 替换为您要恢复备份的可用区的名称。 -
将
<new_volume
> 替换为新卷的名称。 -
将 <
;volume_backup
> 替换为您在上一步中创建的卷备份的名称。 -
将 <
volume_size
> 替换为等于或大于原始卷大小的 GB 值。
-
将 <