PowerFlex: Panes do SDS devido a falhas de alocação de memória – mos_AllocPageAlignedOrPanic
摘要: O processo de SDS pode entrar em pane (ou continuar entrando em pânico continuamente) devido a falhas de alocação de memória.
症状
A memória insuficiente pode causar esse problema no host do SDS (ou seja, atribuição de memória SVM) ou devido à configuração do sistema operacional.
O processo de SDS entra em pane com o seguinte backtrace:
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]
Dependendo das configurações do sistema operacional, erros OOM (falta de memória) podem ser observados no arquivo de mensagens.
Impacto
Esse comportamento pode acionar uma situação de DATA_DEGRADED/DATA_FAILURE.
原因
Memória insuficiente no host do SDS No ambiente vSphere, verifique se há RAM suficiente atribuída a uma SVM e se ela está reservada. Em caso afirmativo, verifique a configuração de memória no nível do sistema operacional:
Verifique os parâmetros do kernel sysctl quanto à superconfirmação de memória:
caminho do arquivo /etc/sysctl.conf
# sysctl -a |grep commit
vm.overcommit_memory = 2 (default is 0)
vm.overcommit_ratio = 50 (default is 50)
解决方案
Não se trata de um problema do PowerFlex. O PowerFlex está funcionando conforme projetado.
Para verificar e/ou modificar o vm.overcommit As configurações seguem estas etapas:
1. Faça log-in no SDS usando SSH como root
2. Execute
cat /etc/sysctl.conf | grep "vm.overcommit"
Por exemplo,
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 50
3. Execute os seguintes comandos
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
Validação
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 100
Repita essas etapas em todos os SDSs afetados no ambiente para garantir que eles estejam definidos com as configurações de práticas recomendadas (recomendadas). Você não precisa colocar o SDS no modo de manutenção para executar essa operação.
Artigos semelhantes: