Проблема
При попытке создания 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, например, в приведенном выше примере, не используют эту функцию.
Чтобы реализовать решение, выполните следующие действия:
- Войдите на сервер под пользователем root.
- Отредактируйте файл конфигурации /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” – это только информационное сообщение, если у вас действительно нет свободной свободной памяти.