問題
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.
解決策
この問題は use_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 とそのライブラリによって使用されるメモリがスワップアウトされる可能性があることを意味しますが、これはメモリ不足の状況でのみ影響するはずです。そのため、ほとんどの状況で「mlock が失敗しました:メモリを割り当てられません」 ” は、RAM の空き容量が本当に少ない場合を除き、単なる情報メッセージです。