PowerFlex 3.x:SDS 服务在功能drl_IsClean时持续崩溃
摘要: 在极少数情况下,SDS 服务可能会因功能drl_IsClean而持续崩溃。当 SDS 设备大小大于 2 TB 时,会观察到此问题。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
SDS 服务持续崩溃,并显示以下堆栈跟踪:
/opt/emc/scaleio/sds/logs/exp.0
2024/07/22 21:54:33.819866 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/tgt/bm/drl.c, line 1238, function drl_IsClean, PID 17253.Panic Expression !(offsetInLbs < pDrl->protectedOffsetInLbs) PANIC_ID_tgt_1497349762194.
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mosDbg_PanicPrepare+0x13a) [0x93ab8a]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(drl_IsClean+0x5e) [0x9346ae]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyDev_IsDrlGroupClean+0x4b) [0x93476b]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyComb_ReadIntegrityBits+0x130) [0x906040]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_ReadRegionIntegrity+0xb4) [0x906224]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(storageRegion_ReadDirtyRegion+0xad) [0x740f4d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidComb_ReadDrl+0x7d) [0x74105d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_ReadCombDrl+0x758) [0x5eb368]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_NewRequest+0x2084) [0x5fb4a4]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(contNet_RecvIORequest+0x2c4) [0x601534]
影响
如果任何其他 SDS 解耦(作为其一部分)处于以下状态之一,则可能会发生用户数据不可用的情况:
- 即时维护模式 (IMM)
- 错误状态
- 在进行重建期间
原因
设备偏移量大导致的 SDS 服务崩溃。
解决方案
修复:
- PowerFlex 3.6.5 及更高版本(支持结束)
- PowerFlex 4.5 及更高版本
解决办法:
按照以下选项之一作。
如果选项 1 无法解决问题,请转至选项 2。
选项 1:
-
- 从 scli 命令行或演示服务器 UI 将 SDS 节点输入到 IMM 中。
- 如果 SDS 节点无法进入 IMM,请通过运行脚本停止 SDS 守护程序
/opt/emc/scaleio/sds/bin/delete_service.sh。Take necessary precautions to prevent the cluster from entering a Data Unavailability (DU) state. Before stopping the SDS daemon, verify that no Rebuild is in progress. If you're unsure about the DU state, consult L2 or an SME.
- 如果 SDS 节点无法进入 IMM,请通过运行脚本停止 SDS 守护程序
- SDS 置于 IMM 后停止 SDS 服务
/opt/emc/scaleio/sds/bin/delete_service.sh - 删除 SDS 上的共享内存(包括 CloudLink 共享内存)。
- 将以下命令生成的文件移动到临时目录
ls -l /dev/shm | egrep -i *EMC_sds* ls -l /dev/shm | egrep emc_scaleio_*
- 将以下命令生成的文件移动到临时目录
- 启动 SDS 服务
/opt/emc/scaleio/sds/bin/create_service.sh
- 从 scli 命令行或演示服务器 UI 将 SDS 节点输入到 IMM 中。
-
- 使用 scli 或演示服务器 UI 将 SDS 退出 IMM。重建预计将开始。如果 SDS 未处于 IMM 状态,请转至下一步
- 检查以下命令的输出以确保 SDS 已连接:
scli --query_all_sds
- 使用 scli 或演示服务器 UI 将 SDS 退出 IMM。重建预计将开始。如果 SDS 未处于 IMM 状态,请转至下一步
选项 2:
-
如果系统未处于数据故障状态,并且有足够的可用容量或备用容量可用,请从 PowerFlex 群集中删除 SDS 节点。重新平衡完成后,重新添加包含所有 SDS 设备的 SDS 节点。
重要:
后台扫描程序 (BGS) 和部分设备错误 (PDE) 可能会导致问题再次出现。如果可能,请禁用 BGS 或在“仅报告”模式下使用 BGS。
持久校验和不应触发问题。但是,如果存在校验和不匹配的情况,则会启动轻微的重建,这可能会导致问题再次出现。如果可能,请禁用持久校验和。
受影响的产品
PowerFlex Software产品
PowerFlex Appliance文章属性
文章编号: 000228035
文章类型: Solution
上次修改时间: 08 7月 2025
版本: 9
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。