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 на предмет чрезмерного выделения памяти:
Путь к файлу /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 в режим обслуживания.
Похожие статьи: