第 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 listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 备份卷:
cinder backup-create _VOLUME_
# cinder backup-create _VOLUME_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要备份的卷的
ID或显示名称替换 VOLUME。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成的备份的
volume_id与源卷的 ID 相同。验证卷备份创建是否已完成:
cinder backup-list
# cinder backup-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
当备份条目的
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>
# cinder --os-auth-url <KEYSTONEURL> --os-tenant-name <TENANTNAME> --os-username <USERNAME> --os-password <PASSWD> backup-create <VOLUME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您的环境要求替换以下变量:
- <TENANTNAME> 是您要备份的租户的名称。
- <USERNAME> 和 <PASSWD> 是 <TENANTNAME> 中用户的用户名和密码凭证。
- <VOLUME> 是您要备份的卷的名称或 ID。
-
<KEYSTONEURL> 是身份服务的 URL 端点,通常为 http://IP:5000/v2,其中 IP 是身份服务主机的 IP 地址。执行此操作时,生成的备份大小针对
TENANTNAME的配额而不是租户 admin 的配额进行计数。
3.1.3. 导出卷备份的元数据 复制链接链接已复制到粘贴板!
您可以导出并存储卷备份的元数据,以便您可以恢复卷备份,即使块存储数据库遭受灾难性丢失。
流程
运行以下命令:
cinder backup-export _BACKUPID_
# cinder backup-export _BACKUPID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <BACKUPID> 替换为卷备份的 ID 或名称:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
卷备份元数据由 backup_service 和 backup_url 值组成。
3.1.4. 备份使用中的卷 复制链接链接已复制到粘贴板!
当支持块存储后端快照时,您可以使用 --force 选项创建 in-use 卷备份。
要使用 --force 选项,必须支持 Block Storage 后端快照。您可以通过检查您使用的后端的文档来验证快照支持。
通过使用 --force 选项,您可以确认在执行备份前您不会静止驱动器。使用此方法会造成崩溃一致性,但不是应用程序一致性的备份。这意味着备份不知道执行备份时运行哪些应用程序。但是,数据保持不变。
流程
要创建 in-use 卷的备份,请运行:
cinder backup-create _VOLUME_ --incremental --force
# cinder backup-create _VOLUME_ --incremental --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5. 备份快照 复制链接链接已复制到粘贴板!
您可以使用与快照关联的卷 ID 从快照创建完整备份。
流程
使用
cinder snapshot list找到要备份的快照的快照 ID。cinder snapshot-list --volume-id _VOLUME_ID_
# cinder snapshot-list --volume-id _VOLUME_ID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果快照被命名,您可以使用以下示例查找
ID:cinder snapshot-show _SNAPSHOT_NAME_
# cinder snapshot-show _SNAPSHOT_NAME_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建快照的备份:
cinder backup-create _VOLUME_ --snapshot-id=_SNAPSHOT_ID_
# cinder backup-create _VOLUME_ --snapshot-id=_SNAPSHOT_ID_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您使用
--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 可用。
-
所有站点都必须使用通用的
openstackcephx 客户端名称。有关更多信息,请参阅为外部访问创建 Ceph 密钥。
流程
在第一个 DCN 站点中创建卷的备份:
cinder --os-volume-api-version 3.51 backup-create --name <volume_backup> --availability-zone <az_central> <edge_volume>
$ cinder --os-volume-api-version 3.51 backup-create --name <volume_backup> --availability-zone <az_central> <edge_volume>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<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>
$ cinder --os-volume-api-version 3.51 create --availability-zone <az_2> --name <new_volume> --backup-id <volume_backup> <volume_size>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
;az_2> 替换为您要恢复备份的可用区的名称。 -
将
<new_volume> 替换为新卷的名称。 -
将 <
;volume_backup> 替换为您在上一步中创建的卷备份的名称。 -
将 <
volume_size> 替换为等于或大于原始卷大小的 GB 值。
-
将 <