Avamar:NetApp 的 NDMP 备份失败并显示高内存使用率致命信号 11
Summary: 备份 NetApp 卷时,备份在初始化阶段失败。 当 avtar 尝试从以前的备份中读取 inode.dir.map 时,由于内存使用率高,它会终止并显示致命信号 11。
Symptoms
备份失败症状
当 avtar 尝试从以前的备份中读取 inode.dir.map 时,NetApp 卷备份在初始化阶段失败。备份终止并显示致命信号 11。
NetApp 使用索引节点而不是文件名来记录数据流中的文件。如果文件数量较大,初始管理进程可能会耗尽内存,因为这是默认存储信息节点映射的位置。
该故障通常发生在计划备份期间。手动备份通常会成功。
示例:备份了两个卷。较大的卷 (>200 TB) 在计划备份期间成功。较小的卷 (~21 TB) 使计划备份失败。手动运行时成功。
Avamar 文档提到限制为 2 亿个文件。此示例有 480M 个文件。
相关日志消息
2022-04-20 13:00:36 avndmp Info : [snapup-/plz/Images] NDMP: DUMP: Using inowalk incremental dump for Full Volume
2022-04-20 13:01:14 avndmp Info : [ctl_spawn] Process 5718 (/usr/local/avamar/bin/avtar) finished (code 176: fatal signal)
2022-04-20 13:01:14 avndmp Warning : [ctl_spawn] CTL workorder "9am-3pm-Images-165044985231#1" non-zero exit status 'code 176: fatal signal'
2022-04-20 13:01:16 avndmp Error : [snapup-/plz/Images] Premature end of child. Changing exitcode from 176 to 157
这并不表示原因。
Avtar 日志消息
log 2022-04-20 13:00:43 avtar Info : Using backup #49 timestamp 2022-04-19 18:08:46 UTC label "mages-165044985231#0" as base for incremental backup
2022-04-20 13:00:43 avtar Info : - Establishing a connection via token to the Data Domain system with encryption (Connection mode: A:3 E:2).
2022-04-20 13:00:43 avtar Info : CDSF backup does not use asynchronous reading of NetApp stream. Disabling that feature.
2022-04-20 13:00:43 avtar Info : Reading inode.dir.map from previous backup
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718
2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11
2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
2022-04-20 13:01:14 avtar FATAL : handlefatal: Aborting program with code 176, pid=5718, sig=11
Cause
问题的根本原因
出现此问题的原因是索引节点映射大于为映射分配的内存。
当它被读取到内存中时,它会超出分配的内存边界,从而导致信号 11 致命错误消息。
发生这种情况的原因是备份的索引节点计数过高,溢出了为索引节点映射保留的内存段。
日志中的错误消息,例如“Fatal signal 11”和“uapp::handlefatal:致命信号11“,表示程序由于内存溢出而遇到致命错误。
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718 2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11 2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
Resolution
正在配置 avtar 以将磁盘用于信息节点映射存储。
解决方法是将索引节点映射到磁盘文件而不是内存存储。这会告诉 avtar,在读取索引节点映射时,将它们存储在磁盘上而不是内存中。这消除了 SIG-11 内存问题。
有两种方法可以设置 stream-disk-buffer 标记,以将 avtar 配置为将磁盘用于索引节点映射存储。
方法 1:使用 Avamar Administrator 界面
转至客户端数据集,打开按需备份选项对话框,单击更多选项。此时将显示备份命令行选项对话框。单击More(更多)。在 Enter Attribute中键入 [avtar]stream-disk-buffer,在 Enter Attribute Value字段中选择 true。单击 添加图标以添加属性。
方法 2:使用 avtar.cmd
使用 UNIX 文本编辑器,在 /usr/local/avamar/var/CLIENT_NAME 下的 NAS 客户端 var目录中,创建文件avtar.cmd。如果该文件已存在,请编辑现有文件。在该文件中,在其自身行中输入以下标记:
--stream-disk-buffer
验证解决方案
设置 stream-disk-buffer 标记后,通过检查 avndmp.log 和 avtar 日志文件中是否存在与信息节点映射存储相关的任何错误,验证问题是否已成功解决。