PowerFlex 4.xのアップグレードがOutofmemoryエラーとJavaヒープ スペースで失敗する
Summary: PFxMのアップグレードが、メモリー不足エラーとJavaヒープ領域エラーで失敗します。
Symptoms
PowerFlexのアップグレードを実行すると、Out-OfMemoryErrorエラーとjavaヒープ領域のエラーでアップグレードが失敗します。
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
問題
アップグレードに失敗しました。
Cause
PFxM内のオブジェクトの数が多いため(たとえば、64ノード/SVM環境)、アップグレード プロセスのオーケストレーション中に、Thin-Deployerでメモリー不足の問題が発生します。
デプロイヤー・プロセスにはハード・コーディングされたヒープ・サイズ・メモリー設定がないため、JVM はノード・メモリーの 1/4 を使用します。MVM VMは、デフォルトで32 GBのメモリーを使用して導入されます。これは、デプロイヤー プロセスの最大ヒープ サイズ 8 GB に相当します。
Resolution
必要に応じて、両方のオプションを同時に使用できます。
オプション1:
MVM VMメモリーを64 GBに増やします。デプロイヤー・プロセスで使用される使用可能な Java ヒープ・メモリーの量を 16 GB に増やします。
エンジニアリング チームには、ノードごとに必要なメモリーに関する具体的なメトリックはありませんが、64 GBの使用は成功しています。
それでもアップグレードが失敗する場合は、PowerFlex Gateway (GW)のレプリカ セットを1 GWにドロップします。
1)PFMPサーバーにSSH接続します
2)レプリカを1つにドロップします。
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3)GWアップグレードを実行します。これにより、MTLSが使用されている4.xにシステムがアップグレードされ、この問題は発生しません。4)バックエンドのPowerFlexシステムが4.xにアップグレードされたら、GWのレプリカ セットを2に戻します。
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
オプション2:
PowerFlexをアップグレードする前にリソース グループ(RG)を削除してから、Add Existing Resource Group操作を使用して再度追加します。この問題で説明されているメモリ使用量は、RG 内のノードにのみ使用されます。RGがない場合、アップグレードではオブジェクトは構築されず、OOMは存在しません。
問題が発生するバージョン
PFMPの4.x
修正バージョン
PFMPの4.8