Aktualizacja PowerFlex 4.x kończy się niepowodzeniem z błędem braku pamięci i miejscem w stercie Java
Summary: Aktualizacja PFxM kończy się niepowodzeniem z powodu błędu braku pamięci i błędu sterty Java.
Symptoms
Podczas uaktualniania PowerFlex aktualizacja kończy się niepowodzeniem z powodu błędów Out-OfMemoryError i miejsca na stercie Java.
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
Wpływ
Niepowodzenie uaktualnienia.
Cause
Problem braku pamięci występuje w programie thin deployer podczas organizowania procesu aktualizacji ze względu na dużą liczbę obiektów w PFxM (na przykład środowisko 64 węzłów/SVM).
Proces wdrażania nie ma zakodowanego na stałe ustawienia rozmiaru pamięci sterty, dlatego maszyna JVM używa 1/4 pamięci węzła. Maszyny wirtualne MVM są domyślnie wdrażane z 32 GB pamięci. Odpowiada to maksymalnemu rozmiarowi sterty 8 GB dla procesu wdrażania.
Resolution
W razie potrzeby obie opcje mogą być używane jednocześnie.
Opcja 1:
Zwiększ ilość pamięci maszyny wirtualnej MVM do 64 GB. Zwiększailość dostępnej pamięci sterty Java używanej przez proces wdrażania do 16 GB:
Dział inżynieryjny nie ma konkretnych metryk dotyczących pamięci wymaganej na węzeł, ale użycie 64 GB okazało się skuteczne.
Jeśli uaktualnienie nadal kończy się niepowodzeniem, zmniejsz pojemność zestawu replik bramki PowerFlex Gateway (GW) do 1 GW:
1) Za pomocą protokołu SSH połącz się z serwerem PFMP.
2) Zmniejsz liczbę replik do 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Wykonaj aktualizację GW. Spowoduje to uaktualnienie systemu do wersji 4.x, w której używany jest MTLS, a problem ten nie będzie obserwowany. 4) Po uaktualnieniu systemu PowerFlex zaplecza do wersji 4.x ustaw replikę z powrotem na 2 dla GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Opcja 2:
Usuń grupy zasobów (RG) przed uaktualnieniem PowerFlex, a następnie użyj operacji Add Existing Resource Group, aby dodać je ponownie. Użycie pamięci opisane w tym problemie jest używane tylko w przypadku węzłów, które znajdują się w grupach zasobów podstawowych; jeśli nie ma grup podstawowych, uaktualnienie nie spowoduje zbudowania obiektów i nie powinno być OOM.
Wersje, których dotyczy problem
PFMP 4.x
Naprawiono w wersji
PFMP 4.8