Сбой модернизации PowerFlex 4.x с ошибкой Outofmemoryerror и Java Heap Space
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).
Процесс развертывания не имеет жестко заданной настройки размера кучи, поэтому JVM использует 1/4 памяти узла. По умолчанию виртуальные машины MVM развертываются с 32 Гбайт памяти. Это соответствует максимальному размеру кучи 8 ГБ для процесса развертывания.
Resolution
При необходимости оба варианта можно использовать одновременно.
Вариант 1.
Увеличьте объем памяти виртуальной машины MVM до 64 Гбайт. Онувеличивает объем доступной памяти кучи Java, используемой процессом развертывания, до 16 ГБ:
У инженеров нет конкретных метрик для памяти, необходимой для каждого узла, но использование 64 Гбайт оказалось успешным.
Если обновление по-прежнему завершается сбоем, уменьшите набор реплик PowerFlex Gateway (GW) до 1 GW:
1) Подключитесь по SSH к серверу PFMP
2) Уменьшите количество реплик до 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Выполните модернизацию ГВ. Это модернизирует систему до версии 4.x, где используется MTLS, и этой проблемы наблюдаться не будет. 4. После модернизации внутренней системы PowerFlex до версии 4.x установите для GW значение 2 для набора реплик:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Вариант 2.
Удалите группы ресурсов (RG) перед модернизацией PowerFlex, а затем используйте операцию добавления существующей группы ресурсов, чтобы добавить их обратно. Использование памяти, описанное в этой проблеме, используется только для узлов, которые находятся в RG; если РГ нет, то апгрейд не будет строить объекты и не должно быть OOM.
Затронутые версии
PFMP 4.x
Исправлено в версии
ПФМП 4.8