3.2. 对块存储备份服务进行故障排除
您可以通过验证块存储服务是否正确运行,然后通过检查日志文件是否有错误消息来诊断许多问题。
3.2.1. 备份故障排除 复制链接链接已复制到粘贴板!
在收到备份 Block Storage (cinder)卷的请求时,块存储备份服务会执行静态检查。如果这些检查失败,您将收到通知:
-
检查是否有无效的卷引用(
缺少)。 检查卷
是否在使用或附加到实例。正在使用的情况要求您使用-选项执行备份。如需更多信息,请参阅 创建使用中的卷的备份。-force当您使用-
force卷备份选项时,您可以创建一个崩溃一致性,而不是应用程序一致性,因为卷在执行备份前不会被静止。因此,数据保持不变,但备份不知道在执行备份时运行哪些应用程序。
当这些检查成功时:块存储备份服务接受备份此卷的请求,CLI 备份命令会立即返回,并在后台备份卷。
因此,即使备份失败,CLI backup 命令也会返回。当备份条目的 Status 为 available 时,您可以使用 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. 创建块存储卷的备份
- 用户向 cinder API 发出请求(即 REST API)以备份块存储卷。
- cinder API 从 HAProxy 接收请求,并验证请求、用户凭据和其他信息。
- cinder API 在 SQL 数据库中创建备份记录。
-
cinder API 对
cinder-scheduler发出 RPC 调用。 -
cinder-scheduler通过 AMQP 对cinder-backup服务发出异步 RPC 调用,以备份卷。 - cinder API 将当前的备份记录( ID)返回到 API 调用器。
- RPC 创建消息到达其中一个备份服务。
-
cinder-backup服务执行对get_backup_device的同步 RPC 调用。 -
cinder-volume服务确保正确的设备返回给调用者。通常,它是同一个卷,但如果卷正在使用,服务会返回临时克隆卷或临时快照,具体取决于配置。 -
cinder-backup服务向cinder-volume发出另一个同步 RPC,以公开源设备。 -
cinder-volume服务导出并映射源设备(卷或快照),并返回适当的连接信息。 -
cinder-backup服务使用连接信息附加源设备。 -
cinder-backup服务调用备份后端驱动程序,其设备已附加,后者开始传输到备份存储库。 - 源设备从 Backup 主机分离。
-
cinder-backup服务向cinder-volume发出同步 RPC,以断开源设备的连接。 -
cinder-volume服务取消映射并删除设备的导出。 -
如果创建了临时卷或临时快照,cinder-backup 调用
cinder-backup调用cinder-volume将其移除。 -
cinder-volume服务移除临时卷。 - 备份完成后,会在数据库中更新备份记录。
3.2.4. 卷恢复工作流 复制链接链接已复制到粘贴板!
下图显示了用户请求 cinder API 恢复块存储服务(cinder)备份时所执行的步骤。
图 3.2. 恢复块存储备份
- 用户向 cinder API 发出请求(即 REST API),以恢复块存储备份。
- cinder API 从 HAProxy 接收请求,并验证请求、用户凭据和其他信息。
- 如果请求不包含现有卷作为目的地,则 cinder API 将发出异步 RPC 调用来创建新卷并轮询卷的状态,直到卷可用为止。
-
cinder-scheduler选择一个卷服务,并发出 RPC 调用来创建卷。 -
所选
cinder-volume服务创建卷。 - 当 cinder API 检测到卷可用时,会在数据库中更新备份记录。
- cinder API 通过 AMQP 对备份服务发出异步 RPC 调用,以恢复备份。
- cinder API 将当前卷 ID、备份 ID 和卷名称返回到 API 调用者。
- RPC 创建消息到达其中一个备份服务。
-
cinder-backup服务对cinder-volume执行同步 RPC 调用来公开卷。 -
cinder-volume服务导出并映射卷返回适当的连接信息。 -
cinder-backup服务使用连接信息附加卷。 -
cinder-backup服务使用已附加的卷调用后端驱动程序,这将开始对卷进行数据恢复。 - 卷从备份主机分离。
-
cinder-backup服务向cinder-volume发出同步 RPC,以断开卷的连接。 -
cinder-volume服务取消映射并删除卷的导出。 - 恢复卷后,会在数据库中更新备份记录。