Das Problem
Beim Versuch, ein LV zu erstellen, tritt der folgende Fehler auf.
# lvcreate -L 5G -n apps vgOS 7fa0c6cd2000-7fa0c6cd3000 r-xp 00216000 fd:00 8388746 /usr/lib64/libgcc_s-4 .8.5-20150702.so.1: mlock failed: Cannot allocate memory 7fa0c75ce000-7fa0c75cf000 r-xp 00265000 fd:00 8895769 /usr/lib64/libdevmapp er.so.1.02: mlock failed: Cannot allocate memory 7fa0c77d6000-7fa0c77d7000 r-xp 00207000 fd:00 9313347 /usr/lib64/libdevmapp er-event.so.1.02: mlock failed: Cannot allocate memory 7fa1c6f44000-7fa1c6f45000 r-xp 00203000 fd:00 8413569 /usr/lib64/libksplice _helper.so: mlock failed: Cannot allocate memory 7fa1c7161000-7fa1c7162000 r-xp 0021c000 fd:00 8455088 /usr/lib64/libpthread -2.17.so: mlock failed: Cannot allocate memory 7fa1c7466000-7fa1c7467000 r-xp 00304000 fd:00 8455032 /usr/lib64/libm-2.17. so: mlock failed: Cannot allocate memory 7fa1c7825000-7fa1c7826000 r-xp 003be000 fd:00 8455021 /usr/lib64/libc-2.17. so: mlock failed: Cannot allocate memory 7fa1c7a2e000-7fa1c7a2f000 r-xp 00208000 fd:00 8455092 /usr/lib64/librt-2.17 .so: mlock failed: Cannot allocate memory Logical volume "apps" created.
Die Lösung
Das Problem wird durch use_mlockall verursacht Parameter in der LVM-Konfigurationsdatei /etc/lvm/lvm.conf . Wie unten gezeigt, hat die Datei /etc/lvm/lvm.conf den folgenden Eintrag:
# cat /etc/lvm/lvm.conf use_mlockall = 0
Konfigurationsoption activation/use_mlockall
Vor Version 2.02.62 verwendete LVM mlockall() um den Speicher des gesamten Prozesses zu fixieren, während Geräte aktiviert werden, jedoch verwenden spätere Versionen von LVM, wie im obigen Beispiel, diese Funktionalität nicht. Um die Lösung zu implementieren, führen Sie bitte die folgenden Schritte aus:
1. Melden Sie sich mit dem Root-Benutzer beim Server an.
2. Bearbeiten Sie die Konfigurationsdatei /etc/lvm/lvm.conf und ändern Sie den folgenden Wert:
Von
# vi /etc/lvm/lvm.conf use_mlockall = 0
An
# vi /etc/lvm/lvm.conf use_mlockall = 1
Hinweis
„use_mlockall =0 “ bedeutet theoretisch, dass der von lvm und seinen Bibliotheken verwendete Speicher ausgelagert werden könnte, aber das sollte Sie nur in Situationen mit wenig Speicher betreffen. In den meisten Situationen „mlock failed:Cannot allocate memory ” ist nur eine Informationsmeldung, es sei denn, Sie haben wirklich wenig freien RAM.