L'upgrade di PowerFlex 4.x ha esito negativo con errore di memoria insufficiente e spazio nell'heap Java
Summary: L'aggiornamento di PFxM ha esito negativo con errore di memoria insufficiente e errore di spazio nell'heap Java.
Symptoms
Quando si esegue l'upgrade di PowerFlex, l'upgrade non riesce con errori Out-OfMemoryError e spazio heap Java.
Da 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
Impatto
Errore di aggiornamento.
Cause
Il problema di memoria insufficiente si verifica in thin-deployer mentre coordina il processo di upgrade a causa di un numero elevato di oggetti in PFxM (ad esempio un'ambiente a 64 nodi/SVM).
Il processo di distribuzione non dispone di un'impostazione di memoria della dimensione dell heap hardcoded, pertanto la JVM utilizza 1/4 della memoria del nodo. Per impostazione predefinita, le VM MVM vengono implementate con 32 GB di memoria. Ciò equivale a una dimensione massima dell'heap di 8 GB per il processo di distribuzione.
Resolution
Se necessario, entrambe le opzioni possono essere utilizzate contemporaneamente.
Opzione 1:
Aumentare la memoria della VM MVM a 64 GB. Questoaumenta la quantità di memoria heap Java disponibile utilizzata dal processo deployer a 16 GB:
I tecnici non dispongono di metriche specifiche per la memoria richiesta per ogni nodo, ma l'utilizzo di 64 GB si è rivelato vincente.
Se l'upgrade continua a non riuscire, ridurre il set di repliche del gateway PowerFlex (GW) a 1 GW:
1) Accedere tramite SSH a un server PFMP
2) Ridurre le repliche a 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Eseguire l'aggiornamento di GW. In questo modo il sistema viene aggiornato alla versione 4.x, in cui viene utilizzato MTLS, e questo problema non viene osservato. 4) Una volta aggiornato il sistema back-end PowerFlex alla versione 4.x, regolare nuovamente il set di repliche su 2 per GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Opzione 2:
Rimuovere i gruppi di risorse (RG) prima di aggiornare PowerFlex, quindi utilizzare l'operazione Add Existing Resource Group per aggiungerli nuovamente. L'utilizzo della memoria descritto in questo problema viene utilizzato solo per i nodi che si trovano in gruppi di replica. se non sono presenti gruppi di replica, l'upgrade non creerà gli oggetti e non dovrebbe essere presente un OOM.
Versioni interessate
PFMP 4.x
Risolto nella versione
PFMP 4.8