Falha no upgrade do PowerFlex 4.x com Outofmemoryerror e espaço de heap Java
Summary: Falha no upgrade do PFxM com erro de falta de memória e erro de espaço heap Java.
Symptoms
Ao executar o upgrade do PowerFlex, o upgrade apresenta falha com erros Out-OfMemoryError e java heap space.
De 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
Impacto
Falha no upgrade.
Cause
O problema de falta de memória ocorre no thin-deployer enquanto ele orquestra o processo de upgrade devido a um grande número de objetos no PFxM (por exemplo, ambiente de 64 nós/SVMs).
O processo do implementador não tem uma configuração de memória de tamanho de heap codificada, portanto, a JVM usa 1/4 da memória do nó. As VMs MVM são implementadas com 32 GB de memória por padrão. Isso equivale ao tamanho máximo de heap de 8 GB para o processo do Deployer.
Resolution
Ambas as opções podem ser usadas ao mesmo tempo, se necessário.
Opção 1:
Aumente a memória da VM do MVM para 64 GB. Issoaumenta a quantidade de memória heap Java disponível usada pelo processo do implementador para 16 GB:
A engenharia não tem métricas específicas para a memória necessária por nó, mas o uso de 64 GB tem se mostrado bem-sucedido.
Se o upgrade continuar falhando, descarte o conjunto de réplicas do PowerFlex Gateway (GW) para 1 GW:
1) SSH para um servidor PFMP
2) Solte as réplicas até 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Execute o upgrade do GW. Isso atualiza o sistema para 4.x, onde MTLS é usado e esse problema não será observado. 4) Depois que o sistema PowerFlex de back-end for atualizado para a versão 4.x, ajuste o conjunto de réplicas de volta para 2 para o GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Opção 2:
Remova os grupos de recursos (RGs) antes de fazer upgrade do PowerFlex e, em seguida, use a operação Add Existing Resource Group para adicioná-los novamente. O uso da memória descrito neste problema só é usado para nós que estão em RGs; se não houver RGs, o upgrade não criará os objetos e não deve haver um OOM.
Versões afetadas
PFMP 4.x
Correção feita na versão
PFMP 4,8