PowerFlex 3.x: Migrace vTree může způsobit paniku nebo zablokování SDS
요약: Během migrace vTree může u uzlů SDS se systémem PowerFlex 3.6.7 dojít k panice a nedostupnosti dat (DU). V dřívějších verzích PowerFlex se proces migrace může zaseknout na neurčito a nemusí se dokončit. ...
증상
V systému PowerFlex verze 3.6.7 došlo během plánované migrace vTree k panice několika SDS, což způsobilo, že systém přešel do stavu nedostupnosti dat.
V důsledku zpoždění migrace se rychle zvyšuje spotřeba kapacity fondu úložišť (SP), který může během krátké doby dosáhnout plného využití.
Události 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.
Protokoly trasování na všech dotčených uzlech SDS vytvoří stejné trasování zásobníku paniky:
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]
Ve verzích PowerFlex starších než 3.6.7 se během plánované migrace vTree proces migrace zablokuje a nikdy se nedokončí.
V uživatelském rozhraní > nástroje PowerFlex Manager Running Storage Jobs se zobrazuje načítání bez konce:

query_vtree_migration výstup ukazuje, že procento průběhu se nikdy nemění:
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%
Důsledky
Ve verzích starších než 3.6.7 migrace svazků nikdy nekončí, využití kapacity SP je kritické nebo vyšší a u aplikací může docházet k vstupně-výstupním chybám.
Ve verzi 3.6.7 došlo k nedostupnosti dat.
원인
Tento problém je způsoben konfliktem časování s více vlákny, který zahrnuje mechanismus sdíleného časovače v rámci komponenty VAE (Volume Allocation Element) během operací migrace svazku.
Ve verzích PowerFlex před 3.6.7 se k odstranění dat ze starých umístění SP po migraci používal proces asynchronního čištění. Ve výjimečných podmínkách, jako jsou souběžné operace správy svazků, současné odstranění svazků, vysoké zatížení vstupně-výstupních operací nebo nestabilita sítě, může v tomto procesu docházet ke konfliktu časování, který způsobí, že migrace budou vypadat neomezeně dlouho.
Za tímto účelem byl ve verzi 3.6.7 zaveden vylepšený monitorovací mechanismus. Tento bezpečnostní mechanismus byl vybaven časovačem navrženým tak, aby detekoval zaseknuté vlákno čističe VAE a proaktivně spustil paniku služby SDS, aby se zabránilo poškození dat nebo dlouhodobému zastavení, podobně jako systém zpracovává zablokované příkazy I/O nebo MDM.
V počáteční implementaci této opravy byl však časovač monitorování inicializován pouze jednou během vytváření dat migrace a byl sdílen globálně ve všech následujících voláních čištění VAE. Když se více vláken na pozadí pokusí o přístup k tomuto jednomu sdílenému časovači současně během úloh náročné migrace, aktivuje se nový konflikt časování. Tento souběžný přístup způsobí, že sledovací mechanismus nesprávně označí čistič VAE jako zaseknutý, což vede k neúmyslnému selhání služby SDS a lokálnímu narušení dostupnosti dat, což vede k nedostupnosti dat.
해결
Trvalá oprava (doporučeno)
Upgradujte cluster na verzi PowerFlex 3.6.7.1 nebo novější. Je zahrnuta oprava pro podmínky časování VAE-cleaner a časovače.
Zástupné řešení (pokud upgrade nelze provést okamžitě)
Ve verzích starších než 3.6.7
- Na primárním uzlu MDM přejděte do adresáře protokolů trasování, který se nachází na adrese
/opt/emc/scaleio/mdm/logs/. Chcete-li najít aktuální protokol trasování, spusťte příkazls -ltr, takže nejnovějšítrc.z.*Protokol je uveden na konci seznamu. - Vzhledem k tomu, že protokoly jsou komprimované, použijte
trace_decompressInženýrská síť umístěná na adrese/opt/emc/scaleio/mdm/bin/
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress
- Vyfiltrujte ID bezpečnostního listu (například
TGT) položky. Pomocí příkazugrepPříkaz k vyhledání:
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress | grep volumeBlock_HandleQueryCleanVaeResponse
- Identifikujte
TGT. Ve filtrovaném výstupu vyhledejte řádky podobné následujícímu:
TGT 41a903f100000036 not done yet
V případě, že TGT ID zůstává v průběhu času konzistentní a pravděpodobně odpovídá zapojenému uzlu SDS. Opakujte krok 3 a ujistěte se, že je konzistentní.
- Spuštěním následujícího příkazu zobrazte všechny uzly SDS a porovnejte je
TGTID s názvem / IP adresou SDS:
scli --query_all_sds
- Jakmile budete mít potřebné informace, můžete
SSHk danému SDS a restartujte službu SDS spuštěním:
pkill sds
Ve verzi 3.6.7
- Serializace operací správy svazků – spusťte pouze jedno odstranění, změnu velikosti nebo migraci najednou.
- Snižte zatížení I/O v dotčených doménách ochrany během migrace.
- Vyhněte se hromadným migracím vTree. Dávkujte je v malých skupinách.
- Nepozastavujte ani nerušte migraci, pokud síť vykazuje nestabilitu.
Tyto akce snižují pravděpodobnost souběžného použití časovače, a tím snižují výskyt paniky.
Dotčené verze
PowerFlex Core 3.x.x.x
Opraveno ve verzi
PowerFlex Core 3.6.7.1