PowerFlex: Falha no switchover do MDM devido a falhas de alocação de memória – mos_MemMalloc

Summary: Ao alternar a propriedade do MDM (manualmente ou de outra forma), o MDM receptor não pode ser ativado corretamente devido a falhas de alocação de memória, deixando o cluster sem o MDM principal. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

A saída de eventos do MDM de recebimento /opt/emc/scaleio/mdm/bin/showevents.py terá várias entradas para tentar assumir responsabilidades do MDM principal, todas dentro de um curto período de tempo uma da outra:  

 2017-10-04 12:08:33.915 MDM_CLUSTER_BECOMING_MASTER WARNING This MDM, ID 394760fd6714xxxx, took control of 
the cluster and is now the Master MDM. 2017-10-04 12:08:33.915 MDM_BECOMING_MASTER WARNING This MDM is
 switching to Master mode. MDM will start running. .. 2017-10-04 12:08:34.309 MDM_CLUSTER_BECOMING_MASTER 
WARNING This MDM, ID 394760fd6714xxxx, took control of the cluster and is now the Master MDM. 
2017-10-04 12:08:34.309 MDM_BECOMING_MASTER WARNING This MDM is switching to Master mode. MDM will start 
running.

O arquivo exp.0 do MDM de recebimento tem entradas como esta: 

 04/10 12:08:34.079823 Panic in file /data/build/workspace/ScaleIO-SLES12-2/src/mos/usr/mos_utils.c, line 73, 
function mos_MemMalloc, PID 9978.Panic Expression bCanFail . /opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(
mosDbg_PanicPrepare+0x115) [0x6a86f5] /opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(mos_MemMalloc+0x81) 
[0x6ac0d1] /opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(multiHeadMgr_GetUpdateMultiHeadsMsg+0x66) [0x57123c]
 /opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(tgtMgr_ConfigureTgt+0x9c1) [0x4d579e] 
/opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(tgtMgr_HandleWorkReq+0x41b) [0x4d6206] 
/opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211() [0x6c57d8] 
/opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(mosUmt_StartFunc+0xea) [0x6c51af]
 /opt/emc/scaleio/mdm/bin/mdm-2.0.13000.211(mosUmt_SignalHandler+0x51) [0x6c65d1]
 /lib64/libpthread.so.0(+0x10b00) [0x7f844e8a6b00] /lib64/libc.so.6(sleep+0xd4) [0x7f844d8911a4]

O arquivo /var/log/messages mostra as várias reinicializações do serviço MDM como o events.txt faz: 

 systemd[1]: mdm.service: Main process exited, code=exited, status=255/n/a systemd[1]: mdm.service: 
Unit entered failed state. systemd[1]: mdm.service: Failed with result 'exit-code'. systemd[1]: mdm.service:
 Service has no hold-off time, scheduling restart. systemd[1]: Stopped scaleio mdm. systemd[1]: mdm.service: 
Start request repeated too quickly. systemd[1]: Failed to start scaleio mdm. systemd[1]: mdm.service: Unit 
entered failed state. systemd[1]: mdm.service: Failed with result 'start-limit'.

Cause

A causa raiz é que o sistema operacional Linux está sendo executado em um teto de memória e não pode conceder as solicitações de memória do serviço MDM durante a inicialização. Isso ocorre porque as configurações de parâmetro do kernel não estão sendo ajustadas corretamente.
Nota: Se o sistema operacional tivesse realmente alocado mais memória do que estava disponível fisicamente, as mensagens oom-killer teriam sido vistas no arquivo de mensagens e outros serviços e processo teriam sido eliminados antes dessas falhas.

Resolution

Esse não é um problema do ScaleIO. O ScaleIO está funcionando conforme projetado.

Para verificar e/ou modificar as configurações vm.overcommit, siga estas etapas:

1. Faça log-in no SDS usando SSH como root

2. Execute 

cat /etc/sysctl.conf | grep "vm.overcommit"
Ex.
[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. 

Para saber mais sobre essas configurações, consulte a documentação do Kernel do Linux sobre contabilidade de excesso de comprometimento

Additional Information

Verifique os parâmetros do kernel sysctl quanto à superalocação de memória:

# sysctl -a |grep commit
vm.overcommit_memory = 2 (default is 0)
vm.overcommit_ratio = 50 (default is 50)

Nesse caso, ter "vm.overcommit_memory" definido como 2 significa não comprometer memória em excesso. Isso fará com que qualquer alocação de memória que exceda o limite de superconfirmação. A confirmação de espaço total de endereço para o sistema não tem permissão para exceder swap + uma quantidade configurável (o padrão é 50%) de RAM física. Quando essa configuração está em 0, ela nega solicitações óbvias de superconfirmação, mas os processos raiz podem alocar acima do limite de superconfirmação. 

Para verificar o limite atual de supercomprometimento e o valor confirmado, consulte CommitLimit e Committed_AS, respectivamente, a partir do seguinte comando:

#cat /proc/meminfo 
MemTotal: 8174572 kB 
.. 
CommitLimit: 4087284 kB 
Committed_AS: 3879388 kB

Há 8 GB de RAM nesse host, e o CommitLimit é definido como ~4 GB, que é 50% do espaço total do endereço.

 

Para corrigir esse problema, adicione/edite um dos seguintes em /etc/sysctl.conf:

 - Altere "vm.overcommit_ratio" para 100, para que o sistema operacional possa confirmar o espaço total de endereço disponível e reinicializar.

Para saber mais sobre essas configurações, consulte a documentação do Kernel do Linux sobre contabilidade de excesso de comprometimento

Affected Products

PowerFlex rack, VxFlex Product Family
Article Properties
Article Number: 000030300
Article Type: Solution
Last Modified: 22 Sept 2025
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.