PowerFlex 3.x: vTree-migratie kan ervoor zorgen dat de SDS in paniek raakt of vastloopt
요약: Tijdens vTree-migratie kunnen SDS-knooppunten met PowerFlex 3.6.7 in paniek raken, wat resulteert in een gebeurtenis met niet-beschikbaarheid van data (DU). In eerdere PowerFlex-versies kan het migratieproces voor onbepaalde tijd vastlopen en niet worden voltooid. ...
증상
In PowerFlex versie 3.6.7 raken tijdens een geplande vTree-migratie meerdere SDS-exemplaren in paniek, waardoor het systeem de status niet-beschikbaarheid van data krijgt.
Als gevolg van de migratievertragingen neemt het capaciteitsverbruik van de storagepool (SP) snel toe en kan het binnen korte tijd volledig worden benut.
MDM-gebeurtenissen:
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.
Trace-logboeken op alle getroffen SDS-knooppunten produceren dezelfde panic stack-trace:
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]
In PowerFlex-versies ouder dan 3.6.7 loopt de voortgang van de migratie tijdens een geplande vTree-migratie vast en wordt deze nooit voltooid.
In de PowerFlex Manager UI > Running Storage Jobs wordt Loading endlessly weergegeven:

query_vtree_migration output toont het voortgangspercentage dat nooit verandert:
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
Bij versies ouder dan 3.6.7 wordt de volumemigratie nooit beëindigd, is het SP-capaciteitsgebruik kritiek of hoger en kunnen er I/O-fouten optreden in applicaties.
Bij versie 3.6.7, niet-beschikbaarheid van data.
원인
Dit probleem wordt veroorzaakt door een multi-threaded raceconditie met een gedeeld timermechanisme in het onderdeel Volume Allocation Element (VAE) tijdens volumemigratiebewerkingen.
In PowerFlex-versies vóór 3.6.7 werd een asynchroon opruimproces gebruikt om data van oude SP-locaties na een migratie te verwijderen. Onder zeldzame omstandigheden, zoals gelijktijdige volumebeheerbewerkingen, gelijktijdige volumeverwijderingen, hoge I/O-belasting of netwerkinstabiliteit, kan dit proces een race-conditie ervaren waardoor migraties voor onbepaalde tijd lijken vast te zitten.
Om dit aan te pakken, werd in versie 3.6.7 een verbeterd monitoringmechanisme ingevoerd. Dit veiligheidsmechanisme bevatte een timer die was ontworpen om een vastzittende VAE-reinigingsdraad te detecteren en de SDS-service proactief in paniek te brengen om gegevensbeschadiging of langdurige vastlopen te voorkomen, vergelijkbaar met hoe het systeem vastzittende I/O- of MDM-opdrachten verwerkt.
Bij de initiële implementatie van deze oplossing werd de bewakingstimer echter slechts één keer geïnitialiseerd tijdens het maken van de migratiedata en werd deze wereldwijd gedeeld over alle volgende VAE-opschoningsoproepen. Wanneer meerdere achtergrondthreads tegelijkertijd toegang proberen te krijgen tot deze enkele gedeelde timer tijdens zware migratieworkloads, wordt een nieuwe racevoorwaarde geactiveerd. Deze gelijktijdige toegang zorgt ervoor dat het volgmechanisme de VAE-cleaner ten onrechte markeert als vastgelopen, wat resulteert in onbedoelde SDS-servicecrashes en plaatselijke verstoring van de beschikbaarheid van data, wat resulteert in niet-beschikbaarheid van data.
해결
Permanente oplossing (aanbevolen)
Upgrade het cluster naar PowerFlex 3.6.7.1 of hoger. De oplossing voor zowel de VAE-reiniger als de timerrace-omstandigheden is inbegrepen.
Tijdelijke oplossing (als de upgrade niet onmiddellijk kan worden uitgevoerd)
Op versies ouder dan 3.6.7
- Ga in de map Primary MDM naar de map tracelogs op
/opt/emc/scaleio/mdm/logs/. Als u het huidige traceringslogboek wilt zoeken, voert u dit uit:ls -ltr, dus de nieuwstetrc.z.*Het logboek wordt onder aan de lijst weergegeven. - Aangezien logboeken gecomprimeerd zijn, gebruikt u de
trace_decompressnutsvoorziening gelegen op/opt/emc/scaleio/mdm/bin/
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress
- Filter op SDS-ID (bijvoorbeeld
TGT) vermeldingen. Gebruik degrepOpdracht om te zoeken:
tail -f <current_trace_log> | /opt/emc/scaleio/mdm/bin/trace_decompress | grep volumeBlock_HandleQueryCleanVaeResponse
- Identificeer de
TGT. Zoek naar regels die vergelijkbaar zijn met de volgende in de gefilterde uitvoer:
TGT 41a903f100000036 not done yet
Als de TGT ID blijft consistent in de loop van de tijd, het komt waarschijnlijk overeen met het betrokken SDS-knooppunt. Voer stap 3 opnieuw uit om te controleren of het consistent blijft.
- Voer de volgende opdracht uit om alle SDS-knooppunten weer te geven en te zoeken naar de
TGTID met de SDS-naam/het IP-adres:
scli --query_all_sds
- Zodra u over de benodigde informatie beschikt, kunt u
SSHnaar die SDS en start de SDS-service opnieuw door de volgende opdracht uit te voeren:
pkill sds
Op versie 3.6.7
- Serialiseer volumebeheerbewerkingen: voer slechts één verwijder, formaat of migratie tegelijk uit.
- Verminder de I/O-belasting op de betrokken beschermingsdomeinen terwijl migraties worden uitgevoerd.
- Vermijd bulkmigratie van vTree; Bundel ze in kleine groepen.
- Stop of annuleer een migratie niet wanneer het netwerk instabiel is.
Deze acties verkleinen de kans op gelijktijdig gebruik van de timer en verminderen zo het aantal paniekgebeurtenissen.
Versies waarop dit van toepassing is
PowerFlex Core 3.x.x.x
Opgelost in versie
PowerFlex Core 3.6.7.1