PowerFlex 4.x Yükseltmesi Outofmemoryerror ve Java Yığın Alanı ile Başarısız Oluyor
Summary: PFxM yükseltmesi, yetersiz bellek hatası ve Java yığın alanı hatasıyla başarısız oluyor.
Symptoms
PowerFlex yükseltmesi gerçekleştirilirken yükseltme işlemi Out-OfMemoryError ve java yığın alanı hatalarıyla başarısız oluyor.
deployment.log itibaren:
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
Etki
Yükseltme hatası.
Cause
Yetersiz bellek sorunu, PFxM'deki çok sayıda nesne (örneğin 64 düğüm/SVM ortamı) nedeniyle yükseltme işlemini düzenlerken ince dağıtıcıda oluşur.
Dağıtıcı işlemde sabit kodlanmış yığın boyutu bellek ayarı yoktur; bu nedenle JVM, düğüm belleğinin 1/4'ünü kullanır. MVM VM'leri varsayılan olarak 32 GB bellekle dağıtılır. Bu, dağıtıcı işlemi için maksimum 8 GB yığın boyutuna eşittir.
Resolution
Gerekirse her iki seçenek de aynı anda kullanılabilir.
1. Seçenek:
MVM VM belleğini 64 GB'a yükseltin. Bu, dağıtıcı işlemi tarafından kullanılan kullanılabilir Java yığın belleği miktarını 16 GB'a çıkarır:
Mühendislik ekibi, düğüm başına gereken bellek için belirli ölçütlere sahip değildir ancak 64 GB kullanmanın başarılı olduğu kanıtlanmıştır.
Yükseltme hala başarısız olursa, PowerFlex Gateway'in (GW) replika setini 1 GW'a düşürün:
1) Bir PFMP sunucusuna SSH
2) Çoğaltmaları 1'e bırakın:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) GW yükseltmesini gerçekleştirin. Bu işlem, sistemi MTLS'nin kullanıldığı 4.x sürümüne yükseltir ve bu sorun gözlemlenmez. 4) Arka uç PowerFlex sistemi 4.x'e yükseltildiğinde, GW için replika setini tekrar 2 olarak ayarlayın:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
2. Seçenek:
PowerFlex i yükseltmeden önce Kaynak Gruplarını (RG'ler) kaldırın, ardından bunları tekrar eklemek için Mevcut Kaynak Grubunu Ekle işlemini kullanın. Bu konuda açıklanan bellek kullanımı yalnızca RG'lerde bulunan düğümler için kullanılır; RG yoksa, yükseltme nesneleri oluşturmaz ve bir OOM olmamalıdır.
Etkilenen Sürümler
PFMP 4.x
Düzeltildiği Sürüm
PFMP 4.8