Problém
Při pokusu o vytvoření LV dojde k následující chybě.
# 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.
Řešení
Problém je způsoben use_mlockall parametr v konfiguračním souboru LVM /etc/lvm/lvm.conf . Jak je ukázáno níže, soubor /etc/lvm/lvm.conf má níže položku:
# cat /etc/lvm/lvm.conf use_mlockall = 0
Aktivace možnosti konfigurace/use_mlockall
Před verzí 2.02.62 používal LVM mlockall() k připnutí paměti celého procesu při aktivaci zařízení, avšak novější verze LVM, jako například v příkladu výše, tuto funkci nepoužívají. Chcete-li implementovat řešení, proveďte následující kroky:
1. Přihlaste se k serveru jako uživatel root.
2. Upravte konfigurační soubor /etc/lvm/lvm.conf a změňte níže uvedenou hodnotu:
Od
# vi /etc/lvm/lvm.conf use_mlockall = 0
Komu
# vi /etc/lvm/lvm.conf use_mlockall = 1
Poznámka
“use_mlockall =0 ” teoreticky znamená, že paměť používaná lvm a jeho knihovnami by mohla být vyměněna, ale to by vás mělo ovlivnit pouze v situacích s nedostatkem paměti. Takže ve většině situací „mlock selhal:Nelze alokovat paměť ” je pouze informativní zpráva, pokud opravdu nemáte málo volné paměti RAM.