NVP-vProxy:备份停止响应并显示“文档深度过大”错误
Summary: NetWorker VMware Protection (NVP) vProxy 一体机用于保护 vSphere 环境。VMware 备份最初成功完成。然后,备份将停止对一个特定 vProxy 一体机进行响应。如果虚拟机的数据存储目录中有过多的文件,则会生成 XML 解析器错误,从而损坏 vProxy 会话状态文件。
Symptoms
备份管理员使用 NVP vProxy 一体机配置 VMware 备份。最初针对所有 vProxy 一体机成功完成备份。然后,备份将停止对某个特定 vProxy 进行响应。其他 vProxy 一体机继续正常处理工单。
备份日志显示不同虚拟机的备份在不同阶段的停滞。无响应行为不限于单个虚拟机。
The /opt/emc/vproxy/runtime/logs/vbackupd/vbackupd-engine.log 连续显示 XML 解析器错误:
noname.xml:7: parser error : Extra content at the end of the document a67fc16d47</uuid><contentId>d3df551ae74b3a5e1618dd2fa62962ef</contentId><parent>
The vmconfig 命令行实用程序 reset-backup, disable-migration和 enable-migration 选项会为某些虚拟机生成深度错误:
noname.xml:7: parser error : Excessive depth in document: 256 use XML_PARSE_HUGE option 93c9a65840</uuid><contentId>ca3f9d42bfd056ff3eb2db1f8072aa4b</contentId><parent>
Cause
保护组中的虚拟机的数据存储目录中有大量文件。在一个案例中,一个虚拟机有 2000 多个两年前的文件。
vProxy 备份工作流会在每次备份开始时收集虚拟机配置详细信息。它会创建一个 XML 文件,其中包含虚拟机数据存储区目录中的文件名。XML 数据存储在 BackupVmSessions.gob 文件。
当数据存储目录包含过多文件时,XML 会超过解析器深度限制 256。解析器错误损坏了 BackupVmSessions.gob 文件。损坏的文件使 vbackupd.service 无法处理任何备份工单。
Resolution
- 从保护组中删除受影响的虚拟机:
-
- 识别数据存储目录中包含过多文件的虚拟机。
- 从保护组中删除虚拟机。
- 重新创建
BackupVmSessions.gob文件,请执行以下操作:
-
- 以 root 用户身份通过 SSH 连接到受影响的 vProxy 设备。
- 检查
vbackupd服务:
systemctl status vbackupd.service
-
- 停止
vbackupd服务:
- 停止
systemctl stop vbackupd.service
-
- 重命名损坏的
gob文件,请执行以下操作:
- 重命名损坏的
mv /opt/emc/vproxy/runtime/state/vbackupd/BackupVmSessions.gob /opt/emc/vproxy/runtime/state/vbackupd/BackupVmSessions.gob.bak
-
-
启动
vbackupd服务:
-
systemctl start vbackupd.service
-
- 选中
servicestatus :
- 选中
systemctl status vbackupd.service
-
- 在
vbackupd日志:
- 在
tail -f /opt/emc/vproxy/runtime/logs/vbackupd/vbackupd-engine.log
- 根据需要清除虚拟机锁定标记:如果任何虚拟机具有过时的备份锁定或迁移标记,请使用
vmconfig用于清除它们的实用程序:
/opt/emc/vproxy/bin/vmconfig -v <vcenter_fqdn> -u '<vcenter_user>' -p '<vcenter_password>' -c "reset-backup" -l moref -k <vm_moref>
- 清理虚拟机数据存储区目录:
-
- 查看已删除虚拟机的数据存储区目录。删除旧文件或不必要的文件以减少文件计数。
- 清理后,如果需要,将虚拟机添加回保护组。验证备份是否完成,并且没有解析器错误。
Additional Information
在某些情况下,vSphere Web 控制台报告受影响的虚拟机需要整合。在 vSphere Web Client 中,选择 vCenter Server 虚拟机选项卡,然后使用 管理列 选项显示 需要整合 列。如果任何受 VMware 保护策略保护的虚拟机需要整合,则应使用 vSphere Client 整合这些虚拟机。
有关如何整合虚拟机的详细信息,请查看 Brocade 知识库文章 316575 (外部链接)。