PowerFlex 4.x -päivitys epäonnistuu muistivirheen ja Java-keon tilan vuoksi
Summary: PFxM-päivitys epäonnistuu muistin loppumisvirheen ja Java-kekotilavirheen vuoksi.
Symptoms
PowerFlex-päivityksen yhteydessä päivitys epäonnistuu virheillä Out-OfMemoryError ja Java-kekotilalla.
Vuodesta deployment.log alkaen:
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
Vaikutus
Päivitys epäonnistui.
Cause
Muistin loppumisongelma ilmenee thin-deployerissa, kun se orkestroi päivitysprosessia, koska PFxM:ssä on suuri määrä objekteja (esimerkiksi 64 solmua/SVMs-ympäristöä).
Käyttöönottoprosessissa ei ole kovakoodattua keon kokoista muistiasetusta, joten JVM käyttää 1/4 solmun muistista. MVM-virtuaalikoneet otetaan käyttöön oletusarvoisesti 32 Gt:n muistilla. Tämä vastaa käyttöönottoprosessin enimmäiskokoa 8 Gt.
Resolution
Molempia vaihtoehtoja voidaan tarvittaessa käyttää samanaikaisesti.
Vaihtoehto 1:
Lisää MVM-virtuaalikoneen muisti 64 gigatavuun. Tämäkasvattaa käyttöönottoprosessin käyttämän käytettävissä olevan Java-kekomuistin määrän 16 gigatavuun:
Suunnittelussa ei ole tarkkoja mittareita solmua kohti tarvittavalle muistille, mutta 64 Gt:n käyttö on osoittautunut onnistuneeksi.
Jos päivitys epäonnistuu edelleen, pudota PowerFlex Gatewayn (GW) replikajoukko 1 GW:iin:
1) SSH-yhteys PFMP-palvelimeen
2) Pudota kopiot kohtaan 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Tee GW-päivitys. Tämä päivittää järjestelmän versioon 4.x, jossa käytetään MTLS: ää, eikä tätä ongelmaa havaita. 4) Kun PowerFlex-taustajärjestelmä on päivitetty versioon 4.x, säädä GW:n replikasarja takaisin arvoon 2:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Vaihtoehto 2:
Poista resurssiryhmät (RG) ennen PowerFlexin päivittämistä ja lisää ne sitten takaisin Lisää aiemmin luotu resurssiryhmä -toiminnolla. Tässä ongelmassa kuvattua muistia käytetään vain solmuissa, jotka ovat RG-solmuissa. jos RG-tiedostoja ei ole, päivitys ei muodosta objekteja eikä OOM: ää pitäisi olla.
Versiot, joita ongelma koskee
PFMP 4.x
Korjattu versiossa
PFMP 4,8