PowerFlex: SDS панікує через збої виділення пам'яті — mos_AllocPageAlignedOrPanic
摘要: Процес SDS може панікувати (або постійно панікувати) через збої у розподілі пам'яті.
症状
Або недостатня пам'ять може спричинити цю проблему на SDS-хості (наприклад, призначення пам'яті SVM), або через конфігурацію операційної системи.
Процес SDS панікує з наступним зворотним трасуванням:
01/12 22:26:55.091827 Panic in file /data/build/workspace/ScaleIO-SLES12-2/src/mos/usr/mos_utils.c, line 235, function mos_AllocPageAlignedOrPanic, PID 11191.Panic Expression pMem != ((void *)0) .
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(mosDbg_PanicPrepare+0x11d) [0x4f713d]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(mos_AllocPageAlignedOrPanic+0x2d) [0x4fa95e]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(stmp_Allocate+0x110) [0x49c063]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyToothMap_HardenIntern+0x37b) [0x46edcf]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyToothMap_HardenAll+0x39) [0x46f5a3]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyDev_HardenCombArr+0x34) [0x464a31]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyComb_ReadTooth+0x6a) [0x4b2b59]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(raidMigrate_Start+0x5f0) [0x4bb9e2]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(raidSyncPool_StartJob+0x1cf) [0x489e7f]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133() [0x50d008]
Залежно від налаштувань ОС, у файлі повідомлень можна спостерігати помилки OOM (Out-of-memory).
Вплив
Така поведінка може спровокувати DATA_DEGRADED/DATA_FAILURE ситуацію.
原因
Недостатня пам'ять на SDS-хості У vSphere перевірте, чи достатньо оперативної пам'яті призначено SVM і чи вона зарезервована. Якщо так, перевірте налаштування пам'яті на рівні ОС:
Перевірте параметри ядра sysctl на предмет перефіксації пам'яті:
File path /etc/sysctl.conf
# sysctl -a |grep commit
vm.overcommit_memory = 2 (default is 0)
vm.overcommit_ratio = 50 (default is 50)
解决方案
Це не проблема PowerFlex. PowerFlex працює як задумано.
Щоб перевірити та/або змінити vm.overcommit Налаштування дотримуються таких кроків:
1. Увійдіть у SDS, використовуючи SSH як root
2. Біжи
cat /etc/sysctl.conf | grep "vm.overcommit"
Колишній.
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 50
3. Виконайте наступні команди
sed -i 's/vm\.overcommit_memory = .*/vm\.overcommit_memory = 2/g' /etc/sysctl.conf sed -i 's/vm\.overcommit_ratio = .*/vm\.overcommit_ratio = 100/g' /etc/sysctl.conf sysctl -p
Валідація
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 100
Повторіть ці кроки для всіх уражених SDS у навколишньому середовищі, щоб переконатися, що вони відповідають рекомендованим найкращим практикам. Для виконання цієї операції не потрібно переводити SDS у режим обслуговування.
Схожі статті: