PowerFlex: MDM-vaihto epäonnistuu muistinvarausvirheiden vuoksi – mos_MemMalloc

Summary: Kun vaihdat MDM:n omistajuutta (manuaalisesti tai muuhun), vastaanottava MDM ei voi muodostua oikein, koska muistin varaus epäonnistuu, eikä klusterissa ole ensisijaista MDM:ää.

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

Vastaanottavan MDM:n /opt/emc/scaleio/mdm/bin/showevents.py tapahtumien tulosteessa on useita merkintöjä, joiden avulla voidaan yrittää ottaa hoitaakseen ensisijaisen MDM:n vastuut. Kaikki lyhyen ajan sisällä toisistaan:  

 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.

Vastaanottavan MDM:n exp.0-tiedostossa on seuraavanlaisia merkintöjä: 

 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]

/var/log/messages-tiedosto näyttää MDM-palvelun useat uudelleenkäynnistykset samalla tavalla kuin events.txt: 

 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

Perimmäinen syy on se, että Linux-käyttöjärjestelmä on törmännyt muistikattoon eikä voi vastata MDM-palvelun muistipyyntöihin sen alustuksen aikana. Tämä johtuu siitä, että ytimen parametriasetuksia ei ole viritetty oikein.
Huomautus: Jos käyttöjärjestelmä olisi todella varannut enemmän muistia kuin fyysisesti oli käytettävissä, oom-killer-viestit olisivat näkyneet viestitiedostossa ja muut palvelut ja prosessi olisi kuollut ennen näitä vikoja.

Resolution

Tämä ei ole ScaleIO:n ongelma. ScaleIO toimii suunnitellusti.

Voit tarkistaa ja/tai muokata vm.overcommit-asetuksia seuraavasti:

1. Kirjaudu SDS:ään SSH:n ollessa pääkäyttäjänä

2. Suorita 

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, Suorita seuraavat komennot.

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

Validointi

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


Toista nämä vaiheet kaikille ympäristön käyttöturvallisuustiedotteille, joihin ongelma vaikuttaa, ja varmista, että niiden asetuksena ovat suositellut parhaiden käytäntöjen asetukset. Sinun ei tarvitse asettaa käyttöturvallisuustiedotetta huoltotilaan tämän toiminnon suorittamiseksi. 

Lisätietoja näistä asetuksista on Linux-ytimen dokumentaatiossa ylivarauskirjanpidosta

Additional Information

Tarkista sysctl-ytimen parametrit muistin ylisitoutumisen varalta:

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

Tässä tapauksessa, kun "vm.overcommit_memory" on asetettu arvoon 2, älä sitoudu muistiin liikaa. Tällöin muistin varaus, joka ylittää ylivarausrajan, epäonnistuu. Järjestelmän kokonaisosoitetilan vahvistus ei saa ylittää swap + määritettävissä oleva määrä (oletus on 50%) fyysistä RAM-muistia. Kun tämä asetus on 0, se estää ilmeiset ylivarauspyynnöt, mutta pääprosessit voivat kohdistaa ylivarausrajan yli. 

Jos haluat tarkistaa nykyisen ylisitoutumisrajan ja sidotun summan, katso CommitLimit ja Committed_AS vastaavasti seuraavasta komennosta:

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

Tässä isännässä on 8 Gt RAM-muistia, ja CommitLimit-arvoksi on asetettu ~4 Gt, joka on 50 % koko osoitetilasta.

 

Voit korjata tämän ongelman lisäämällä tiedostoon /etc/sysctl.conf jonkin seuraavista:

 - Muuta "vm.overcommit_ratio" arvoon 100, jotta käyttöjärjestelmä voi vahvistaa käytettävissä olevan osoitetilan ja käynnistää uudelleen.

Lisätietoja näistä asetuksista on Linux-ytimen dokumentaatiossa ylivarauskirjanpidosta

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.