PowerFlex 4.x upgrade mislukt met outofmemoryerror en Java Heap Space
Summary: PFxM-upgrade mislukt met fout met onvoldoende geheugen en Java-heapruimtefout.
Symptoms
Bij het uitvoeren van een PowerFlex-upgrade mislukt de upgrade met de fouten Out-OfMemoryError en Java Heap Space.
Uit 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
Impact
Upgrade mislukt.
Cause
Het probleem met onvoldoende geheugen doet zich voor in thin-deployer terwijl het upgradeproces wordt georganiseerd vanwege een groot aantal objecten in PFxM (bijvoorbeeld 64 knooppunten/SVM's-omgeving).
Het implementatieproces heeft geen hardgecodeerde geheugeninstelling voor heapgrootte, daarom gebruikt de JVM 1/4 van het knooppuntgeheugen. De MVM-VM's worden standaard geïmplementeerd met 32 GB geheugen. Dit komt overeen met een maximale heapgrootte van 8 GB voor het implementatieproces.
Resolution
Indien nodig kunnen beide opties tegelijkertijd worden gebruikt.
Optie 1:
Verhoog het MVM VM-geheugen tot 64 GB. Ditverhoogt de hoeveelheid beschikbaar Java-heap-geheugen die wordt gebruikt door het implementatieproces tot 16 GB:
Engineering heeft geen specifieke statistieken voor het geheugen dat per knooppunt nodig is, maar het gebruik van 64 GB is succesvol gebleken.
Als de upgrade nog steeds mislukt, verlaagt u de replicaset van de PowerFlex Gateway (GW) naar 1 GW:
1) SSH naar een PFMP-server
2) Zet de replica's terug naar 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Voer de GW-upgrade uit. Hiermee wordt het systeem geüpgraded naar 4.x, waar MTLS wordt gebruikt, en dit probleem wordt niet waargenomen. 4) Nadat het backend PowerFlex-systeem is geüpgraded naar 4.x, stelt u de replica-set weer in op 2 voor de GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Optie 2:
Verwijder de Resource Groups (RG's) voordat u PowerFlex upgradet en gebruik vervolgens de bewerking Bestaande resourcegroep toevoegen om ze weer toe te voegen. Het geheugengebruik dat in dit probleem wordt beschreven, wordt alleen gebruikt voor knooppunten die zich in RG's bevinden; als er geen RG's zijn, worden de objecten niet gebouwd door de upgrade en zou er geen OOM moeten zijn.
Versies waarop dit van toepassing is
PFMP 4.x
Opgelost in versie
PFMP 4.8