“mlock failed: Cannot allocate memory” ошибка команды lvcreate в CentOS / RHEL 7

by itisgood

Проблема

При попытке создания LV возникает следующая ошибка.

# 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.

Решение

Проблема связана с использованием параметра mlockall в файле конфигурации LVM /etc/lvm/lvm.conf.

Как показано ниже, файл /etc/lvm/lvm.conf имеет следующую запись:

# cat /etc/lvm/lvm.conf
use_mlockall = 0

Вариант настройки активации / use_mlockall

До версии 2.02.62 LVM использовал mlockall () для привязки всей памяти процесса при активации устройств, однако более поздние версии LVM, например, в приведенном выше примере, не используют эту функцию.

Чтобы реализовать решение, выполните следующие действия:

  1. Войдите на сервер под пользователем root.
  2.  Отредактируйте файл конфигурации /etc/lvm/lvm.conf и измените значение ниже:

Из:

# vi /etc/lvm/lvm.conf
use_mlockall = 0
В
# vi /etc/lvm/lvm.conf
use_mlockall = 1

Заметка

«Use_mlockall = 0» означает, что теоретически память, используемая lvm и ее libs, может быть заменена, но это должно затронуть вас только в ситуациях с низкой памятью.

Таким образом, в большинстве ситуаций “mlock failed: Cannot allocate memory”  – это только информационное сообщение, если у вас действительно нет свободной свободной памяти.

 

You may also like

Leave a Comment