PowerFlex: MDM-Switchover schlägt aufgrund von Speicherzuweisungsfehlern fehl – mos_MemMalloc

Summary: Beim Wechsel der MDM-Eigentumsrechte (manuell oder anderweitig) kann der empfangende MDM aufgrund von Fehlern bei der Speicherzuweisung nicht ordnungsgemäß ausgeführt werden, sodass der Cluster ohne primären MDM bleibt. ...

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

Die Ereignisse, die vom empfangenden MDM /opt/emc/scaleio/mdm/bin/showevents.py ausgegeben werden, haben mehrere Einträge für den Versuch, primäre MDM-Aufgaben zu übernehmen, und zwar alle innerhalb kurzer Zeit:  

 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.

Die exp.0-Datei des empfangenden MDM enthält Einträge wie die folgenden: 

 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]

Die Datei /var/log/messages zeigt die mehrfachen Neustarts des MDM-Services wie der events.txt an: 

 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

Die Hauptursache ist, dass das Linux-Betriebssystem an eine Speicherobergrenze stößt und die Speicheranforderungen des MDM-Dienstes bei der Initialisierung nicht erfüllen kann. Dies liegt daran, dass die Kernel-Parametereinstellungen nicht ordnungsgemäß abgestimmt werden.
Hinweis: Wenn das Betriebssystem wirklich mehr Arbeitsspeicher zugewiesen hätte, als physisch verfügbar war, wären OOM-Killer-Meldungen in der Meldungsdatei und andere Services und Prozesse vor diesen Ausfällen beendet worden.

Resolution

Dies ist kein ScaleIO-Problem. ScaleIO funktioniert wie vorgesehen.

Gehen Sie folgendermaßen vor, um die vm.overcommit-Einstellungen zu überprüfen und/oder zu ändern:

1. Melden Sie sich mit SSH als root

2 beim SDS an. Führen Sie 

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. Führen Sie die folgenden Befehle aus.

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

Validierung

[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit"
vm.overcommit_memory = 2
vm.overcommit_ratio = 100


Wiederholen Sie diese Schritte auf allen betroffenen SDSs in der Umgebung, um sicherzustellen, dass sie auf die empfohlenen Best-Practice-Einstellungen eingestellt sind. Sie müssen den SDS nicht in den Wartungsmodus versetzen, um diesen Vorgang durchzuführen. 

Weitere Informationen zu diesen Einstellungen finden Sie in der Linux-Kernel-Dokumentation zum Overcommit-Accounting

Additional Information

Überprüfen Sie die sysctl-Kernel-Parameter auf eine Überbelegung des Arbeitsspeichers:

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

In diesem Fall bedeutet die Einstellung "vm.overcommit_memory" auf 2, dass der Arbeitsspeicher nicht überbelegt wird. Dadurch schlägt jede Speicherzuweisung fehl, die das Überbelegungslimit überschreitet. Der gesamte Adressraum-Commit für das System darf Swap + eine konfigurierbare Menge (Standard ist 50 %) des physischen RAM nicht überschreiten. Wenn diese Einstellung auf 0 festgelegt ist, werden offensichtliche Überbelegungsanforderungen verweigert, aber Stammprozesse können über dem Überbelegungslimit zugewiesen werden. 

Informationen zum Überprüfen des aktuellen Überbelegungslimits und des Commit-Commit-Betrags finden Sie unter CommitLimit bzw. Committed_AS des folgenden Befehls:

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

Auf diesem Host sind 8 GB RAM vorhanden und das CommitLimit ist auf ~4 GB festgelegt, was 50 % des gesamten Adressraums entspricht.

 

Um dieses Problem zu beheben, fügen Sie einen der folgenden Befehle in /etc/sysctl.conf hinzu:

 - Ändern Sie "vm.overcommit_ratio" in 100, damit das Betriebssystem den gesamten verfügbaren Adressraum bestätigen und neu starten kann.

Weitere Informationen zu diesen Einstellungen finden Sie in der Linux-Kernel-Dokumentation zum Overcommit-Accounting

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.