PowerFlex 3.x: La migración de vTree puede causar un estado de alarma o un bloqueo de SDS
요약: Durante la migración de vTree, es posible que los nodos SDS que ejecutan PowerFlex 3.6.7 entren en estado de alarma, lo que da lugar a un evento de falta de disponibilidad de datos (DU). En versiones anteriores de PowerFlex, el proceso de migración puede bloquearse indefinidamente y no completarse. ...
증상
En PowerFlex versión 3.6.7, durante una migración programada de vTree, varios SDS entran en estado de alarma, lo que hace que el sistema ingrese en un estado de falta de disponibilidad de datos.
Como resultado de las demoras en la migración, el consumo de capacidad del pool de almacenamiento (SP) aumenta rápidamente y puede alcanzar la utilización completa en un breve período de tiempo.
Eventos de 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.
Los registros de seguimiento en todos los nodos SDS afectados producen el mismo seguimiento de la pila de alarma:
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]
En las versiones de PowerFlex anteriores a 3.6.7, durante una migración de vTree programada, el progreso de la migración se bloquea y nunca se completa.
En la interfaz de usuario > de PowerFlex Manager en la que se ejecutan trabajos de almacenamiento, se muestra Loading endlessly:

query_vtree_migration muestra que el porcentaje de progreso nunca cambia:
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%
Impacto
En versiones anteriores a 3.6.7, la migración de volúmenes nunca finaliza, la utilización de la capacidad del SP es crítica o superior y las aplicaciones pueden experimentar errores de I/O.
En la versión 3.6.7, falta de disponibilidad de datos.
원인
Este problema se debe a una condición de carrera de subprocesos múltiples que involucra un mecanismo de temporizador compartido dentro del componente de limpieza del elemento de asignación de volúmenes (VAE) durante las operaciones de migración de volúmenes.
En las versiones de PowerFlex anteriores a 3.6.7, se utilizaba un proceso de limpieza asíncrono para eliminar datos de ubicaciones de SP antiguas después de una migración. En condiciones poco frecuentes, como operaciones simultáneas de administración de volúmenes, eliminaciones simultáneas de volúmenes, alta carga de I/O o inestabilidad de la red, este proceso podría experimentar una condición de carrera que haría que las migraciones parecieran bloqueadas indefinidamente.
Para hacer frente a esto, se introdujo un mecanismo de monitoreo mejorado en la versión 3.6.7. Este mecanismo de seguridad incluía un temporizador diseñado para detectar un subproceso de limpieza VAE atascado y provocar de forma proactiva una situación de pánico en el servicio SDS a fin de evitar daños en los datos o estancamientos prolongados, de manera similar a la forma en que el sistema maneja los comandos de MDM o I/O atascados.
Sin embargo, en la implementación inicial de esta corrección, el temporizador de monitoreo se inicializaba solo una vez durante la construcción de los datos de migración y se compartía globalmente en todas las llamadas posteriores de limpieza de VAE. Cuando varios subprocesos en segundo plano intentan acceder a este temporizador compartido de manera simultánea durante cargas de trabajo de migración intensa, se activa una nueva condición de carrera. Este acceso simultáneo hace que el mecanismo de seguimiento marque incorrectamente el limpiador VAE como bloqueado, lo que provoca bloqueos no deseados del servicio SDS y una interrupción localizada de la disponibilidad de datos, lo que genera una falta de disponibilidad de datos.
해결
Corrección permanente (recomendado)
Actualice el clúster a PowerFlex 3.6.7.1 o superior. Se incluye la solución para las condiciones de carrera del limpiador VAE y del temporizador.
Solución alternativa (si la actualización no se puede realizar inmediatamente)
En versiones anteriores a 3.6.7
- En el MDM principal, vaya al directorio de registros de seguimiento ubicado en
/opt/emc/scaleio/mdm/logs/. Para encontrar el registro de seguimiento actual, ejecutels -ltr, por lo que la versión más recientetrc.z.*El registro se encuentra en la parte inferior de la lista. - Dado que los registros están comprimidos, utilice el comando
trace_decompressutilidad ubicada en/opt/emc/scaleio/mdm/bin/
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress
- Filtre por ID de SDS (por ejemplo,
TGT) entradas. Use lagrepcomando para buscar:
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress | grep volumeBlock_HandleQueryCleanVaeResponse
- Identifique el
TGT. Busque líneas similares a las siguientes en la salida filtrada:
TGT 41a903f100000036 not done yet
Si la solicitud en TGT El ID permanece coherente en el tiempo; es probable que corresponda al nodo SDS involucrado. Vuelva a ejecutar el paso 3 para confirmar que se mantenga coherente.
- Ejecute el siguiente comando para enumerar todos los nodos de SDS y hacer coincidir los
TGTID con el nombre o la dirección IP del SDS:
scli --query_all_sds
- Una vez que tenga la información necesaria, puede
SSHa ese SDS y reinicie el servicio de SDS mediante la ejecución de lo siguiente:
pkill sds
En la versión 3.6.7
- Serializar operaciones de administración de volúmenes: ejecute solo una eliminación, cambio de tamaño o migración a la vez.
- Reduzca la carga de I/O en los dominios de protección afectados mientras se ejecutan las migraciones.
- Evite las migraciones masivas de vTrees; Agruparlos en grupos pequeños.
- No pause ni cancele una migración cuando la red muestre inestabilidad.
Estas acciones reducen la probabilidad de uso simultáneo del temporizador y, por lo tanto, reducen los casos de pánico.
Versiones afectadas
PowerFlex Core 3.x.x.x
Problema corregido en la versión
PowerFlex Core 3.6.7.1