Оновлення PowerFlex 4.x не вдається виконати через помилку Outofmemoryerror і Java Heap Space
Summary: Оновлення PFxM не вдається виконати через помилку нестачі пам'яті та помилку динамічної пам'яті Java.
Symptoms
Під час виконання оновлення PowerFlex оновлення не вдається з помилками Out-OfMemoryError і простором у динамічній пам'яті.
Від 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 VM до 64 ГБ. Тйого збільшує обсяг доступної пам'яті Java купи, що використовується процесом розгортання, до 16 ГБ:
Інженери не мають конкретних показників для пам'яті, необхідної для кожного вузла, але використання 64 ГБ виявилося успішним.
Якщо оновлення все одно не вдається, зменшіть кількість реплік комплекту PowerFlex Gateway (GW) до 1 ГВт:
1) SSH на PFMP-сервер
2) Зменшіть кількість реплік до 1:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=1
3) Виконайте оновлення GW. Це модернізує систему до 4.x, де використовується MTLS, і цієї проблеми спостерігатися не буде. 4) Як тільки внутрішня система PowerFlex буде оновлена до 4.x, відрегулюйте набір реплік назад до 2 для GW:
kubectl scale sts block-legacy-gateway -n powerflex --replicas=2
Варіант 2:
Видаліть групи ресурсів (RG) перед оновленням PowerFlex, а потім скористайтеся операцією Додати існуючу групу ресурсів, щоб додати їх назад. Використання пам'яті, описане в цьому випуску, використовується лише для вузлів, які знаходяться в RG; якщо РГ немає, то апгрейд не буде будувати об'єкти і ООМ бути не повинно.
Версії, на які це вплинуло
PFMP 4.x
Виправлено у версії
ПФМП 4.8