PowerFlex 3.x : Le service SDS fonctionne en permanence de manière inattendue avec la fonction drl_IsClean
Summary: Dans de rares cas, le service SDS peut continuellement paniquer avec la fonction drl_IsClean. Ce problème a été observé lorsque les appareils SDS ont une taille supérieure à 2 To.
Symptoms
Le service SDS fonctionne en permanence de manière inattendue avec la trace de la pile suivante :
/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]
Impact
Une indisponibilité des données utilisateur peut se produire si un autre SDS est dissocié dans le cadre de celui-ci se trouvant dans l’un des états suivants :
- Mode de maintenance instantanée (IMM)
- État d’erreur
- Au cours d’une reconstruction en cours
Cause
Fonctionnement inattendu du service SDS causé par des décalages d’appareils importants.
Resolution
Résolution :
- PowerFlex 3.6.5 et versions ultérieures (fin de la prise en charge)
- PowerFlex 4.5 et versions ultérieures
Solution de contournement :
Suivez l’une des options proposées.
Si l’option 1 ne résout pas le problème, passez à l’option 2.
Option 1 :
-
- Entrez le nœud SDS dans l’IMM à partir de la ligne de commande scli ou de l’interface utilisateur du serveur de présentation.
- Si le nœud SDS ne peut pas entrer en IMM, arrêtez le processus SDS en exécutant le script
/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.
- Si le nœud SDS ne peut pas entrer en IMM, arrêtez le processus SDS en exécutant le script
- Arrêtez le service SDS une fois le SDS placé en IMM
/opt/emc/scaleio/sds/bin/delete_service.sh - Retirez la mémoire partagée sur le SDS (y compris la mémoire partagée CloudLink).
- Déplacez les fichiers générés par la commande suivante dans un répertoire temporaire
ls -l /dev/shm | egrep -i *EMC_sds* ls -l /dev/shm | egrep emc_scaleio_*
- Déplacez les fichiers générés par la commande suivante dans un répertoire temporaire
- Démarrer le service SDS
/opt/emc/scaleio/sds/bin/create_service.sh
- Entrez le nœud SDS dans l’IMM à partir de la ligne de commande scli ou de l’interface utilisateur du serveur de présentation.
-
- Quittez le SDS hors de l’IMM à l’aide de scli ou de l’interface utilisateur du serveur de présentation. Une reconstruction devrait démarrer. Si le SDS n’était pas en IMM, passez à l’étape suivante
- Vérifiez le résultat de la commande suivante pour vous assurer que le SDS est connecté :
scli --query_all_sds
- Quittez le SDS hors de l’IMM à l’aide de scli ou de l’interface utilisateur du serveur de présentation. Une reconstruction devrait démarrer. Si le SDS n’était pas en IMM, passez à l’étape suivante
Option 2 :
-
Si le système n’est pas à l’état Échec des données et qu’une capacité libre ou de secours suffisante est disponible, supprimez le nœud SDS du cluster PowerFlex. Une fois le rééquilibrage terminé, rajoutez le nœud SDS avec tous les appareils SDS.
IMPORTANT:
Un scanner en arrière-plan (BGS) et une erreur partielle de périphérique (PDE) peuvent potentiellement provoquer la récurrence du problème. Si possible, désactivez BGS ou utilisez BGS en mode « rapport uniquement ».
Les sommes de contrôle persistantes ne doivent pas déclencher de problèmes. Toutefois, si la somme de contrôle ne correspond pas, une légère reconstruction est lancée, ce qui peut entraîner une nouvelle apparition du problème. Si possible, désactivez la somme de contrôle persistante.