3.2. 对块存储备份服务进行故障排除


您可以通过验证块存储服务是否正确运行,然后通过检查日志文件是否有错误消息来诊断许多问题。

3.2.1. 备份故障排除

在收到备份 Block Storage (cinder)卷的请求时,块存储备份服务会执行静态检查。如果这些检查失败,您将收到通知:

  • 检查是否有无效的卷引用(缺少)。
  • 检查卷 是否在使用 或附加到实例。正在使用的情况要求您使用- - force 选项执行备份。如需更多信息,请参阅 创建使用中的卷的备份

    当您使用- force 卷备份选项时,您可以创建一个崩溃一致性,而不是应用程序一致性,因为卷在执行备份前不会被静止。因此,数据保持不变,但备份不知道在执行备份时运行哪些应用程序。

当这些检查成功时:块存储备份服务接受备份此卷的请求,CLI 备份命令会立即返回,并在后台备份卷。

因此,即使备份失败,CLI backup 命令也会返回。当备份条目的 Statusavailable 时,您可以使用 openstack volume backup list 命令来验证卷备份是否成功。

如果备份失败,请检查块存储备份服务日志文件以了解原因。

3.2.2. 检查块存储备份服务日志文件

当备份或恢复不成功时,您可以检查 Block Storage 备份服务日志文件,以了解可帮助您确定原因的错误消息。

流程

  • 在运行备份服务的 Controller 节点上,查找块存储备份服务日志文件。

    此日志文件位于以下路径: /var/log/containers/cinder/cinder-backup.log

3.2.3. 卷备份工作流

下图显示了用户请求 cinder API 备份块存储(cinder)卷时所执行的步骤。

图 3.1. 创建块存储卷的备份

OpenStack BlockStorage 备份
  1. 用户向 cinder API 发出请求(即 REST API)以备份块存储卷。
  2. cinder API 从 HAProxy 接收请求,并验证请求、用户凭据和其他信息。
  3. cinder API 在 SQL 数据库中创建备份记录。
  4. cinder API 对 cinder-scheduler 发出 RPC 调用。
  5. cinder-scheduler 通过 AMQP 对 cinder-backup 服务发出异步 RPC 调用,以备份卷。
  6. cinder API 将当前的备份记录( ID)返回到 API 调用器。
  7. RPC 创建消息到达其中一个备份服务。
  8. cinder-backup 服务执行对 get_backup_device 的同步 RPC 调用。
  9. cinder-volume 服务确保正确的设备返回给调用者。通常,它是同一个卷,但如果卷正在使用,服务会返回临时克隆卷或临时快照,具体取决于配置。
  10. cinder-backup 服务向 cinder-volume 发出另一个同步 RPC,以公开源设备。
  11. cinder-volume 服务导出并映射源设备(卷或快照),并返回适当的连接信息。
  12. cinder-backup 服务使用连接信息附加源设备。
  13. cinder-backup 服务调用备份后端驱动程序,其设备已附加,后者开始传输到备份存储库。
  14. 源设备从 Backup 主机分离。
  15. cinder-backup 服务向 cinder-volume 发出同步 RPC,以断开源设备的连接。
  16. cinder-volume 服务取消映射并删除设备的导出。
  17. 如果创建了临时卷或临时快照,cinder-backup 调用 cinder-backup 调用 cinder-volume 将其移除。
  18. cinder-volume 服务移除临时卷。
  19. 备份完成后,会在数据库中更新备份记录。

3.2.4. 卷恢复工作流

下图显示了用户请求 cinder API 恢复块存储服务(cinder)备份时所执行的步骤。

图 3.2. 恢复块存储备份

OpenStack BlockStorage restore
  1. 用户向 cinder API 发出请求(即 REST API),以恢复块存储备份。
  2. cinder API 从 HAProxy 接收请求,并验证请求、用户凭据和其他信息。
  3. 如果请求不包含现有卷作为目的地,则 cinder API 将发出异步 RPC 调用来创建新卷并轮询卷的状态,直到卷可用为止。
  4. cinder-scheduler 选择一个卷服务,并发出 RPC 调用来创建卷。
  5. 所选 cinder-volume 服务创建卷。
  6. 当 cinder API 检测到卷可用时,会在数据库中更新备份记录。
  7. cinder API 通过 AMQP 对备份服务发出异步 RPC 调用,以恢复备份。
  8. cinder API 将当前卷 ID、备份 ID 和卷名称返回到 API 调用者。
  9. RPC 创建消息到达其中一个备份服务。
  10. cinder-backup 服务对 cinder-volume 执行同步 RPC 调用来公开卷。
  11. cinder-volume 服务导出并映射卷返回适当的连接信息。
  12. cinder-backup 服务使用连接信息附加卷。
  13. cinder-backup 服务使用已附加的卷调用后端驱动程序,这将开始对卷进行数据恢复。
  14. 卷从备份主机分离。
  15. cinder-backup 服务向 cinder-volume 发出同步 RPC,以断开卷的连接。
  16. cinder-volume 服务取消映射并删除卷的导出。
  17. 恢复卷后,会在数据库中更新备份记录。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部