PowerFlex 3.x : La migration de l’arborescence de volume peut provoquer un fonctionnement inattendu ou un blocage du SDS
요약: Lors de la migration de l’arborescence de volume, les nœuds SDS exécutant PowerFlex 3.6.7 peuvent déclencher un fonctionnement inattendu, entraînant un événement d’indisponibilité des données (DU). Dans les versions antérieures de PowerFlex, le processus de migration peut rester bloqué indéfiniment et ne pas aboutir. ...
증상
Dans PowerFlex version 3.6.7, lors d’une migration planifiée de l’arborescence de volume, plusieurs SDS paniquent et font entrer le système dans un état d’indisponibilité des données.
En raison des retards de migration, la consommation de capacité du pool de stockage (SP) augmente rapidement et peut atteindre sa pleine utilisation en peu de temps.
Événements MDM :
2026-06-30 07:27:19.340 SDS_DECOUPLED ERROR SDS: SDS11 (id: 64cb920800000006) decoupled. 2026-06-30 07:27:19.465 MDM_DATA_DEGRADED ERROR The system is now in DEGRADED state .... 2026-06-30 07:32:20.638 SDS_DECOUPLED ERROR SDS: SDS9 (id: 64cb920b00000009) decoupled. 2026-06-30 07:32:20.638 SDS_DECOUPLED ERROR SDS: SDS12 (id: 64cb920a00000008) decoupled. 2026-06-30 07:32:21.842 MDM_DATA_FAILED CRITICAL The system is now in DATA FAILURE state. Some data is unavailable ... 2026-06-30 07:32:23.538 DEV_CAPACITY_USAGE_CRITICAL ERROR Capacity usage on Protection Domain PD1, Storage Pool FGSP_01 is CRITICAL. 2026-06-30 07:32:23.605 DEV_CAPACITY_USAGE_FULL ERROR Capacity usage on Protection Domain PD1, Storage Pool FGSP_02 is FULL.
Les journaux de suivi sur tous les nœuds SDS concernés produisent la même trace de pile de panique :
2026/07/01 17:45:33.506630 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/mos/mos_timer.c, line 437, function mosTimerReq_AddByQ, PID 1291427.Panic Expression pReq->state == MOS_TIMER_REQ_STATE__IDLE . /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(mosDbg_PanicPrepare+0xe5) [0x932ce5] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(mosTimerReq_AddByQ+0x143) [0x917043] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(vaeCleaner_CleanVae+0x64) [0x668904] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(head_removeVae+0x170) [0x545e00] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(head_Update+0x373) [0x546363] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(contHead_UpdateFull+0x69) [0x4db689] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(contCmd_AddHead+0x18a) [0x60d85a] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(contCmd_AddHeadGroup+0x100) [0x61b630] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(contCmd_NewRequest+0x15fd) [0x62b96d] /opt/emc/scaleio/sds/bin/sds-3.6.7000.123(contNet_RecvRequest+0xd0) [0x4ce880]
Dans les versions de PowerFlex antérieures à 3.6.7, lors d’une migration planifiée de l’arborescence de volume, la progression de la migration se bloque et ne se termine jamais.
Dans l’interface utilisateur > de PowerFlex Manager Running Storage Jobs, le message affiche Loading endless :

query_vtree_migration indique que le pourcentage de progression ne change jamais :
scli --query_vtree_migration --volume_id 53b80e00000000d1
VTree ID: ba46bf57000000d1 Name: PDC-GC-LNX-N-01-PFSP01-01-V043
Storage Pool 5f2f4acc00000000 Name: PDC-FLEX-LNX-SP01
Protection Domain 908ff43700000000 Name: PDC-FLEX-LNX-PD01
Data layout: Medium granularity
Provisioning: Thin
Total capacity in use: 504.7 GB (516787 MB)
Total user data: 504.7 GB (516787 MB)
Total base user data: 504.7 GB (516787 MB)
Total snapshots user data: 0 Bytes
VTree migration info:
Migration status: Migrating
Source: Storage Pool: PDC-FLEX-LNX-SP01 ID: 5f2f4acc00000000 Protection Domain: PDC-FLEX-LNX-PD01 ID: 908ff43700000000
Destination: Storage Pool: PDC-FLEX-LNX-SP03 ID: 5f2fe70d00000004 Protection Domain: PDC-FLEX-LNX-PD03 ID: 9090907800000003
Conversion type: No conversion
Queue position: 1
Progress percentage : 34%
Impact
Sur les versions antérieures à 3.6.7, la migration des volumes ne s’arrête jamais, l’utilisation de la capacité des processeurs de stockage est critique ou supérieure et les applications peuvent rencontrer des erreurs d’E/S.
Sur la version 3.6.7, indisponibilité des données.
원인
Ce problème est dû à une condition de concurrence multithread impliquant un mécanisme de minuteur partagé au sein du composant de nettoyage VAE (Volume Allocation Element) lors des opérations de migration de volume.
Dans les versions PowerFlex antérieures à la version 3.6.7, un processus de nettoyage asynchrone était utilisé pour supprimer les données des anciens emplacements des SP après une migration. Dans de rares conditions, telles que des opérations de gestion de volumes simultanées, des suppressions de volumes simultanées, une charge d’E/S élevée ou une instabilité du réseau, ce processus peut rencontrer une condition de concurrence qui provoque un blocage indéfini des migrations.
Pour remédier à ce problème, un mécanisme de surveillance amélioré a été introduit dans la version 3.6.7. Ce mécanisme de sécurité comportait une minuterie conçue pour détecter un thread de nettoyage VAE bloqué et faire paniquer de manière proactive le service SDS afin d’éviter la corruption des données ou les blocages prolongés, de la même manière que le système gère les commandes d’E/S ou MDM bloquées.
Toutefois, lors de la mise en œuvre initiale de ce correctif, le minuteur de surveillance n’a été initialisé qu’une seule fois lors de la construction des données de migration et a été partagé globalement entre tous les appels de nettoyage VAE suivants. Lorsque plusieurs threads en arrière-plan tentent d’accéder simultanément à ce minuteur partagé unique lors de charges applicatives de migration lourdes, une nouvelle condition de concurrence est déclenchée. En raison de cet accès simultané, le mécanisme de suivi signale de manière incorrecte le nettoyeur VAE comme étant bloqué, ce qui entraîne des pannes involontaires du service SDS et une interruption localisée de la disponibilité des données, entraînant ainsi une indisponibilité des données.
해결
Correctif permanent (recommandé)
Mettez à niveau le cluster vers PowerFlex 3.6.7.1 ou une version ultérieure. Le correctif pour les conditions de course du nettoyeur VAE et du minuteur est inclus.
Solution de contournement (si la mise à niveau ne peut pas être effectuée immédiatement)
Sur les versions antérieures à 3.6.7
- Sur le MDM principal, accédez au répertoire des journaux de suivi situé à l’adresse
/opt/emc/scaleio/mdm/logs/. Pour trouver le journal de trace actuel, exécutezls -ltr, de sorte que la dernièretrc.z.*log est répertorié au bas de la liste. - Puisque les journaux sont compressés, utilisez la commande
trace_decompressl’utilitaire situé à/opt/emc/scaleio/mdm/bin/
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress
- Filtrez en fonction de l’ID SDS (par exemple,
TGT) d’entrées. Utilisez legrepcommande pour trouver :
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress | grep volumeBlock_HandleQueryCleanVaeResponse
- Identifiez le
TGT. Recherchez des lignes similaires à ce qui suit dans la sortie filtrée :
TGT 41a903f100000036 not done yet
Si la TGT L’ID reste cohérent dans le temps. Il correspond probablement au nœud SDS concerné. Répétez l’étape 3 pour confirmer que cela reste cohérent.
- Exécutez la commande suivante pour répertorier tous les nœuds SDS et faire correspondre le
TGTID avec le nom/l’adresse IP du SDS :
scli --query_all_sds
- Une fois que vous disposez des informations nécessaires, vous pouvez
SSHà ce SDS et redémarrez le service SDS en exécutant :
pkill sds
Sur la version 3.6.7
- Sérialiser les opérations de gestion des volumes : n’exécutez qu’une seule suppression, un seul redimensionnement ou une seule migration à la fois.
- Réduisez la charge d’E/S sur les domaines de protection concernés lors de l’exécution des migrations.
- Évitez les migrations d’arborescences de volume en masse ; Regroupez-les en petits groupes.
- Ne suspendez pas ou n’annulez pas une migration lorsque le réseau présente une instabilité.
Ces actions diminuent la probabilité d’utilisation simultanée du minuteur et, par conséquent, les situations de panique.
Versions affectées
PowerFlex Core 3.x.x.x
Problème résolu dans la version
PowerFlex Core 3.6.7.1