ホストシステムのフォルダをLXCコンテナにマウントしようとしています。
ホストは/mnt/ssd/solr_data
フォルダを作成します(現在はルートファイルシステムにありますが、後でそこにSSDドライブをマウントする予定ですので準備中です)。
/data
フォルダがコンテナ内にあるかのようにマウントされるようにしたいです。
したがって、コンテナfstabファイルには次のものがあります。
/mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data ext4 defaults,noatime 0 0
ただし、この方法は機能しません。コンテナを起動すると、次のエラーが発生します。
lxc-start: No such file or directory - failed to mount '/mnt/ssd/solr_data' on '/usr/lib/x86_64-linux-gnu/lxc//data'
lxc-start: failed to setup the mounts for 'Solr4StandAlone'
lxc-start: failed to setup the container
lxc-start: invalid sequence number 1. expected 2
lxc-start: failed to spawn 'Solr4StandAlone'
答え1
コンテナにディレクトリを自動的に作成するには、create=dir
fstabにオプションを追加することもできます。
/mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data none bind,create=dir
編集:これはLXC専用です。バラよりこのスレッド
すでに「オプション」があるように、ここには2つの新しいLXC関連のインストールフラグが追加されます。
create=dir (mkdir_p はそのパスで実行されます)
create=file (ディレクトリ名で mkdir_p を実行 + パスで fopen を実行)
これは、権限のないコンテナに必要ないくつかのバインドマウントによって駆動されます。
答え2
/var/lib/lxc/Solr4StandAlone/config
行を追加:
lxc.mount.entry = /mnt/ssd/solr_data /var/lib/lxc/Solr4StandAlone/rootfs/data none bind 0 0
その後、lxc-stop
コンテナとlxc-start
コンテナを再び停止します。
それがすべてです。
引用:注リンク
答え3
2015 年 9 月 30 日現在、セキュリティパッチのため、構成ファイルの lxc.mount.entry への絶対パスマウントが中断される変更が発生しました。
代わりに相対パスを使用できます
lxc.mount.entry = /mnt/ssd/solr_data data none bind 0 0
望むより:https://wiki.debian.org/LXC#Bind_mounts_inside_the_container
答え4
LXCは時間の経過とともに変化したので、これは非常に簡単かもしれませんが、少し混乱しているので、貢献したかったのです。私も自分自身を覚えることができるようにこの点を作成しましたが、lxcを使用してデバイスを設定するだけで成功しました。
sudo lxc config device add Solr4StandAlone sdb disk source=/var/lib/lxc/Solr4StandAlone/rootfs/data path=mnt/ssd/solr_data
ノート@biscuitNinjaが述べた変更により、パスパラメータにスラッシュを保持することが重要です。