Upgrade systému PowerFlex 4.x se nezdaří s chybou outofmemoryerror a místem na haldě Java
Summary: Upgrade PFxM selže s chybou nedostatku paměti a chybou místa v haldě Java.
Symptoms
Při upgradu PowerFlex upgrade selže s chybami Out-OfMemoryError a haldou Java space.
Od deployment.log:
DEBUG [2025-01-06T22:50:31.482915] 573476: provider/configuration/vxos_update.rb:1082:in `process!': scaleio-block-legacy-gateway: Upgrade LIA DEBUG [2025-01-06T22:50:31.483170] 573476: provider/configuration/vxos_update.rb:707:in `im_upgrade': scaleio-block-legacy-gateway: Initiating VxOS cluster upgrade DEBUG [2025-01-06T22:50:31.576972] 573476: provider/configuration/vxos_update.rb:687:in `im_upgrade_staging': scaleio-block-legacy-gateway: Uploading VxOS RPMs for current version DEBUG [2025-01-06T22:50:58.310637] 573476: provider/configuration/vxos_update.rb:690:in `im_upgrade_staging': scaleio-block-legacy-gateway: Uploading VxOS RPMs for newer versions DEBUG [2025-01-06T22:50:58.312193] 573476: provider/configuration/vxos_update.rb:404:in `block in vxos_rpms': scaleio-block-legacy-gateway: Downloading rpms from nginx to /tmp: https://http-share.powerflex.svc:443/download//8aaa80939422a51b01943b5873e82d40/os/VxFlex4.5.2SLES15.4Repo/vxflexos_4.5.2000/ DEBUG [2025-01-06T22:50:59.581675] 573476: provider/configuration/vxos_update.rb:418:in `block in vxos_rpms': scaleio-block-legacy-gateway: Download operation result: # DEBUG [2025-01-06T22:50:59.582232] 573476: provider/configuration/vxos_update.rb:424:in `block in vxos_rpms': scaleio-block-legacy-gateway: Local rpm path: /tmp/d20250106-5032-ukddq7/http-share.powerflex.svc/8aaa80939422a51b01943b5873e82d40/os/VxFlex4.5.2SLES15.4Repo/vxflexos_4.5.2000 DEBUG [2025-01-06T22:50:59.587624] 573476: provider/configuration/vxos_update.rb:404:in `block in vxos_rpms': scaleio-block-legacy-gateway: Downloading rpms from nginx to /tmp: https://http-share.powerflex.svc:443/download//8aaa80939422a51b01943b5873e82d40/os/VxFlex4.5.2RHEL7Repo/vxflexos_4.5.2000/ DEBUG [2025-01-06T22:51:00.312803] 573476: provider/configuration/vxos_update.rb:418:in `block in vxos_rpms': scaleio-block-legacy-gateway: Download operation result: # DEBUG [2025-01-06T22:51:00.313528] 573476: provider/configuration/vxos_update.rb:424:in `block in vxos_rpms': scaleio-block-legacy-gateway: Local rpm path: /tmp/d20250106-5032-ukddq7/http-share.powerflex.svc/8aaa80939422a51b01943b5873e82d40/os/VxFlex4.5.2RHEL7Repo/vxflexos_4.5.2000 ERROR [2025-01-06T22:56:16.377904] 573476: rule_engine/rule.rb:241:in `process_state': Encountered a critical unrecoverable error while processing #: Java::JavaLang::OutOfMemoryError: Java heap space ERROR [2025-01-06T22:56:16.378496] 573476: service/processor.rb:54:in `block in process_state_threaded': Encountered a critical unrecoverable error while processing the service: Java::JavaLang::OutOfMemoryError: Java heap space ERROR [2025-01-06T22:56:16.379412] 573400: rule_engine/rule.rb:241:in `process_state': Encountered a critical unrecoverable error while processing #: Java::JavaLang::OutOfMemoryError: Java heap space
Důsledky
Upgrade se nezdařil.
Cause
K problému s nedostatkem paměti dochází v tenkém nasazovači při orchestraci procesu upgradu kvůli velkému počtu objektů v PFxM (například 64 uzlů / prostředí SVM).
Proces nasazovače nemá pevně zakódované nastavení paměti velikosti haldy, proto prostředí JVM používá 1/4 paměti uzlu. Virtuální počítače MVM se ve výchozím nastavení nasazují s 32 GB paměti. To odpovídá maximální velikosti haldy 8 GB pro proces nasazování.
Resolution
Obě možnosti lze v případě potřeby použít současně.
1. možnost:
Zvyšte paměť virtuálního počítače MVM na 64 GB. Zvyšujemnožství dostupné paměti haldy Java používané procesem nasazování na 16 GB:
Technický tým nemá konkrétní metriky pro paměť vyžadovanou na uzel, ale použití 64 GB se ukázalo jako úspěšné.
Pokud upgrade stále selže, snižte výkon sady replik brány PowerFlex Gateway (GW) na 1 GW:
1) SSH na PFMP server
2) Snižte počet replik na 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Proveďte upgrade základní sestavy. Tím dojde k upgradu systému na verzi 4.x, kde se používá MTLS, a k tomuto problému nedojde. 4) Jakmile je backendový systém PowerFlex upgradován na verzi 4.x, upravte sadu repliky zpět na hodnotu 2 pro GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
2. možnost:
Před upgradem systému PowerFlex odeberte skupiny prostředků (RG) a poté je přidejte zpět pomocí operace Add Existing Resource Group. Využití paměti popsané v tomto problému se používá pouze pro uzly, které jsou v RG. pokud nejsou k dispozici žádné skupiny RG, upgrade nesestaví objekty a neměl by existovat OOM.
Dotčené verze
PFMP 4.x
Opraveno ve verzi
PFMP 4.8