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 服务 
      /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。重建预计将开始。如果 SDS 未处于 IMM 状态,请转至下一步 
       
    • 检查以下命令的输出以确保 SDS 已连接:
      scli --query_all_sds


    选项 2: 

    • 如果系统未处于数据故障状态,并且有足够的可用容量或备用容量可用,请从 PowerFlex 群集中删除 SDS 节点。重新平衡完成后,重新添加包含所有 SDS 设备的 SDS 节点。

     

    重要:
    后台扫描程序 (BGS) 和部分设备错误 (PDE) 可能会导致问题再次出现。如果可能,请禁用 BGS 或在“仅报告”模式下使用 BGS。
    持久校验和不应触发问题。但是,如果存在校验和不匹配的情况,则会启动轻微的重建,这可能会导致问题再次出现。如果可能,请禁用持久校验和。

    受影响的产品

    PowerFlex Software

    产品

    PowerFlex Appliance
    文章属性
    文章编号: 000228035
    文章类型: Solution
    上次修改时间: 08 7月 2025
    版本:  9
    从其他戴尔用户那里查找问题的答案
    支持服务
    检查您的设备是否在支持服务涵盖的范围内。