Avamar:Avamar 上挂起的分区、条带和 hfscheck 故障
Summary: 本文讨论 Avamar 上的挂起分区、条带和 Hfscheck 故障(症状代码 22632)
Symptoms
1.Avamar Administrator Server UI 中可能会出现以下错误。该消息可能会生成呼叫总部服务请求 (SR):
Symptom Code: 22632, Desc: A server disk has become suspended.
2.与以下内容相关的 WARN 消息 perfbeat 线程在数据存储节点上报告 /data01/cur/gsan.log:
WARN: <0968> perfbeat::outoftolerance mbpersec=0.31 average=5.66
WARN: <1051> tperfstatechanger::execute server_exception(MSG_ERR_UNNECESSARY) diskid=0 newstate=suspended
WARN: <1084> changing disk 0 on node 0.3 to suspended state
3.而 status.dpn 输出显示磁盘具有挂起的条带:
(仅当出现“WARN <1084>”时才会生成此输出。)
例如:
0.8 10.10.10.10 7.3.1-125 ONLINE fullaccess mhpu+0hpu+0hpu 1 false 7.36 16350564 3401334 56.0% 66%(onl:1,SUS:2374) 50%(onl:2439) 50%(onl:2433)
此输出显示有 2374 个挂起的条带。
4.而 hfschec如果分区变为挂起状态,则 k 会失败,而 hfscheck 正在运行。错误示例,来源为 /data01/hfscheck/err.log 或 /data01/cur/err.log 是:
ERROR: <0001> indexstripe::hfschecksweepbody stripe=0.0-1209 proxy=0.0-1209 indexelem([hash=ee9b2fe66b4bd472e28c4f41c5097dbeaba7131a stripe=0.1-DF8 offset=1285]) goodowner=true goodelem=false
Cause
默认情况下,gsan 会定期每五分钟“测试”一次 I/O 子系统。
它会验证读取性能是否为正常性能的 10%。
在下面的示例中,消息指示在生成警告消息的特定节点上,在 hfscheck 运行速度约为 54.03 MB/秒。但是,在此特定测试中,实际性能为 0.57 MB/秒,低于平均值的 10% 的“限制”,即 5.4029 MB/秒。
Event Summary = perfbeat::outoftolerance mask=[hfscheck] average=54.03 limit=5.4029 mbpersec=0.57
此测试的最初目的是提供一些警告,指出 I/O 导致读取性能过慢的子系统。
在这种情况下,慢于“平均”磁盘的 10% I/O 性能。
而 perftriallimit 指定在进行之前必须超出容差的连续磁盘读取测试次数 perfbeat 怀疑磁盘可能已降级。
而 perfinterval (默认为 300 秒或 5 分钟)指定在 perftriallimit 测试。
下载 perfbeat 怀疑磁盘已降级,并告知 gsan 进入冷状态(停止所有与磁盘相关的活动)。
它最多等待 20 分钟(硬连线)以获得 gsan 在超时且不挂起磁盘之前达到此状态。
如果达到冷状态,则 perfbeat 执行 perfcoldtriallimit (默认值为 4) MORE READ TESTS SPACED perfcoldinterval (默认间隔 30 秒)。
只有当所有这些检测都指示磁盘仍处于降级状态时,磁盘才会被挂起。
挂起磁盘的可能原因:
-
尝试进入冷状态时,gsan 始终至少等待一分钟(硬连线)。它还会等待所有挂起的 gsan 磁盘
I/O完成或暂停其作的相关活动。但是,在达到冷状态后,作系统可能仍在执行磁盘I/O,例如刷新其缓存。此刷新活动是磁盘不必要地挂起的一种可能原因。内存越大,需要刷新的高速缓存数据就越多。 -
另一种可能的解释是,性能历史记录信息未准确预测在各种磁盘读取期间的预期磁盘读取性能。
gsan活动,因为gsan's行为变化太快,历史记录无法反映(历史记录是过去 10 天性能测量值的平均值)。 -
另一种可能的解释是,可能存在问题,例如没有等待所有内容
gsan磁盘I/O在达到低温状态之前完成或暂停其作的活动。
此外,研究表明,在 hfscheck ”indexsweep“阶段(当读取索引条带中的所有散列值,然后对许多数据引用日志 (DRL) 文件执行大量随机写入时) I/O 性能会在很长一段时间内下降。
在 Avamar Data Store Gen4、Gen4s 和 Gen4T 上,写入作的优先级高于读取作,并且测试 I/O 子系统要低得多。此外,一些驱动器(如 Seagate Megalodon 驱动器)使用一些不同的技术,这些技术可能会将正在执行的测试与 perfbeat 线。
Resolution
背景:
通常会在以下位置看到三种不同的警告消息: gsan 原木:
WARN: <0968> perfbeat::outoftolerance mbpersec=0.31 average=5.66
警告 <0968> 表示存在个人 gsan I/O 测试速度很慢。
您可以安全地忽略此错误。
WARN: <1051> tperfstatechanger::execute server_exception(MSG_ERR_UNNECESSARY) diskid=0 newstate=suspended
警告 <1051> 表示存在足够的慢速读取,导致 gsan 曾考虑将数据分区置于暂停状态,但决定不这样做。这就是MSG_ERR_UNNECESSARY所表明的。
您可以安全地忽略此错误。
WARN: <1084> changing disk 0 on node 0.3 to suspended state
警告 <1084> 表示 gsan 将数据分区置于“挂起状态”。
此消息不能忽略。
解决方案:
如果条带进入挂起状态,请使用以下指导准则调查和纠正以下情形:
执行以下作以识别挂起的分区的位置:
1.以“管理员”身份登录到 Avamar 实用程序节点。
2.提升到 root 权限。
3.按 Avamar 加载根密钥:如何登录到 Avamar Server 并加载各种密钥。
4.运行以下命令以识别挂起分区的位置:
mapall --noerror 'grep -i "suspended" /data01/cur/err.log'
5.查看与上述结果相关的情景:
-
-
无需执行任何操作。条带会自动恢复联机状态。很有可能
hfscheck正在运行。
-
-
-
如果条带自动返回联机状态,则很可能是垃圾数据收集或
hfscheck正在运行。 -
重要提示:这可能表示存在磁盘问题或某些潜在问题。
-
虽然驱动器尚未出现故障,但仍应使用以下步骤进行检查:
-
1.确定哪些物理磁盘与 Avamar 已挂起的磁盘关联。虚拟磁盘挂起中的物理磁盘问题将是挂起的根本原因:
avsysreport pdisk vdisk=x
其中 x 是已暂停的虚拟磁盘(数据分区)的编号。例如,如果第一个数据分区显示挂起的条带,则查询 vdis=0。
2.验证物理磁盘级别没有磁盘故障、预测的故障或其他错误。
3.确认物理磁盘上没有 SCSI 错误,表示有问题的节点上的虚拟磁盘(在步骤 1 中确定)。
grep -i "MRMON\|scsi|Adaptec" /var/log/messages
4.直写模式下的虚拟磁盘可能会导致磁盘挂起,原因是 I/O。检查控制器上的写入策略:
mapall --noerror --all+ 'avsysreport vdisk | grep "Write Policy"'
如果在步骤 2-4 中检测到任何问题,请向 Dell Technologies Avamar 支持部门提交 SR 以进行进一步调查。
场景#3:查看默认值 perftriallimit 设置:
1.请验证 perftriallimit 设置为 0:
avmaint config --ava | grep perftriallimit
perftriallimit="0"
2.如果必须恢复 perftriallimit 除零以外的任何值:
一个。通过运行以下命令进行更新:
avmaint config --ava perftriallimit=0
b.确认更改:
avmaint config --ava | grep perftriallimit
perftriallimit="0"