PowerScale:Collect 和 MultiScan 不会回收排除设备上的空间
Summary: 如果设备在作业运行期间不可用,则 Collect 和 MultiScan 会从扫描中排除设备。
Symptoms
此知识库文章仅适用于正在运行或已完成的 Collect 作业,或在其中运行 Collect 的 MultiScan 作业。
Collect 用于在设备不可用时释放设备上剩余的数据块。
MultiScan 有时会同时运行 AutoBalance 和 Collect,以确保 MultiScan 通过检查作业运行 Collect。
# isi job view <jobID#>
在 Collect 的标记阶段,系统会标记数据块,以便在进入清除阶段后进行后续清理。
在某些情况下,在标记阶段,设备可能会被排除在作业的扫描作之外。
这可能会使群集的节点或驱动器不平衡,即使作业已成功完成也是如此。
如果从作业中排除的驱动器或节点过多,作业将取消。
Cause
如果设备停机或不可用,作业会将该设备从清除阶段中排除。
这可能是由各种原因造成的,例如节点重新启动、电源重启、节点拆分。
对于驱动器,如果驱动器停滞或不可用,则可能会发生这种情况。
如果设备在运行 Collect 或 MultiScan 时不可用,作业会将其设置为 bam_nosweep 排除的设备列表。
当作业进入扫描阶段时,它可以清除设备上未添加到 bam_nosweep 排除列表。
成功完成作业后,这可能会导致节点或驱动器保持不平衡,容量利用率更高。
示例 1 显示了消息日志中排除的一个 devid,显示为 devid 28。
2025-03-08T22:09:15.238162-08:00 <0.5> EXAMPLE-1(id25) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 63766="isi_job_d")(tid=104229) bam_nosweep_add_devices: Exclude set { devids (1) = [ 28 ], wdls = [] }
示例 2 显示排除了 devid 18 中的一个驱动器的一个时间戳,然后是 devid 24 中的一个驱动器。
2024-11-04T16:20:33.664254-07:00 <0.5> EXAMPLE-12(id12) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 83067="isi_job_d")(tid=103674) bam_nosweep_add_devices: Exclude set { devids (0) = [], wdls (1) = [ (d: 18, unm:00000040 ] }
2024-11-04T17:06:21.738071-08:00 <0.5> EXAMPLE-12(id12) /boot/kernel.amd64/kernel: [bam_nosweep.c:298](pid 83067="isi_job_d")(tid=103674) bam_nosweep_add_devices: Exclude set { devids (0) = [], wdls (2) = [ (d: 18, unm:00000040, (d: 24, unm:00000020 ] }
由于排除了 28.1% 的设备百分比而取消收集,限制为 25%。
2025-11-04T14:08:28.356984+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [bam_mark.c:1923](pid 3646="isi_job_d")(tid=101140) Mark not permitted with 28.1% of 32 nodes excluded (limit 25.0%)
2025-11-04T14:08:28.356994+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [bam_mark.c:1837](pid 3646="isi_job_d")(tid=101140) Updated mark for cookie 19:none with error 85
2025-11-04T14:08:28.359093+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [drv.c:1499](pid 67605="python3.8")(tid=102284) Drive sync in progress for ldnum 21
2025-11-04T14:08:28.365281+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [lin_mark.c:376](pid 3646="isi_job_d")(tid=101140) lin_end_mark: Ending lin mark (error ECANCELED).
2025-11-04T14:08:28.365300+01:00 <0.5> EXAMPLE-8(id8) /boot/kernel.amd64/kernel: [lin_mark.c:398](pid 3646="isi_job_d")(tid=101140) lin_end_mark: Mark already canceled. (current group: <1,2770> current mark state: LIN_COLLECT_GOOD
Resolution
如果已排除需要扫描的设备,则必须启动新作业。
如果另一个问题导致设备频繁不可用,则必须进行进一步调查。