PowerFlex 4.x-Upgrade schlägt mit Outofmemory-Fehler und Java-Heap-Speicherplatz fehl
Summary: PFxM-Upgrade schlägt mit Fehler aufgrund von unzureichendem Arbeitsspeicher und Java-Heap-Speicherplatz fehl.
Symptoms
Bei der Durchführung eines PowerFlex-Upgrades schlägt das Upgrade mit den Fehlern Out-OfMemoryError und java heap space fehl.
Von 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
Auswirkungen
Upgradefehler
Cause
Das Problem mit unzureichendem Speicherplatz tritt in Thin Deployer auf, während der Upgradeprozess aufgrund einer großen Anzahl von Objekten in PFxM orchestriert wird (z. B. Umgebung mit 64 Nodes/SVMs).
Der Deployer-Prozess verfügt nicht über eine hartcodierte Speichereinstellung für die Heap-Größe, daher verwendet die JVM 1/4 des Node-Speichers. Die MVM-VMs werden standardmäßig mit 32 GB Arbeitsspeicher bereitgestellt. Dies entspricht einer maximalen Heap-Größe von 8 GB für den Bereitstellungsprozess.
Resolution
Bei Bedarf können beide Optionen gleichzeitig verwendet werden.
Option 1:
Erhöhen Sie den Arbeitsspeicher der MVM-VM auf 64 GB. Dieser erhöht die Menge des verfügbaren Java-Heap-Speichers, der vom Deployer-Prozess verwendet wird, auf 16 GB:
Das Engineering verfügt nicht über spezifische Metriken für den pro Node erforderlichen Arbeitsspeicher, aber die Verwendung von 64 GB hat sich bewährt.
Wenn das Upgrade weiterhin fehlschlägt, reduzieren Sie den Replikatsatz des PowerFlex Gateway (GW) auf 1 GW:
1) Stellen Sie eine SSH-Verbindung zu einem PFMP-Server her
2) Legen Sie die Replikate auf 1 ab:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Führen Sie das GW-Upgrade durch. Dadurch wird das System auf 4.x aktualisiert, wobei MTLS verwendet wird, und dieses Problem wird nicht beobachtet. 4) Sobald das Back-end-PowerFlex-System auf 4.x aktualisiert wurde, passen Sie den Replikatsatz für das GW auf "2" zurück:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Option 2:
Entfernen Sie die Ressourcengruppen (RGs) vor dem Upgrade von PowerFlex und verwenden Sie dann den Vorgang Add Existing Resource Group, um sie wieder hinzuzufügen. Die in diesem Problem beschriebene Speichernutzung wird nur für Nodes verwendet, die sich in RGs befinden. Wenn keine RGs vorhanden sind, erstellt das Upgrade die Objekte nicht und es sollte kein OOM vorhanden sein.
Betroffene Versionen
PFMP 4.x
Behoben in Version
PFMP 4.8