webdevqa.jp.net

LXCコンテナーにブロックデバイスを追加する

コンテナ内で偽のブロックデバイスを使用したい。ループデバイスを作成し、コンテナにディスクを追加しましたが、/ dev /ディレクトリリストが表示されません。

# truncate -s 10G xfs.img
# mkfs.xfs xfs.img
# losetup -f xfs.img
# lxc config device add Cont01 BDisk disk source=/dev/loop0 path=/mnt/disk
# lxc exec Cont1 -- df -h
...
/dev/loop0                9.8G     36.0M      9.2G   0% /mnt/disk
# lxc exec Cont1 "ls /dev/ | grep loop"
#

防具やセキュリティポリシーに関連していると思います。誰もがLXCに偽のブロックデバイスにアクセスする安全な方法をアドバイスできますか?

UPDATE偽のブロックデバイスをマウントする方法:

$ lxc config device add ceph04 BDisk unix-block path=/dev/loop1
1
Mancubus

LXD GitHubには、構成に関連する多くのドキュメントがあります。

https://github.com/lxc/lxd/blob/master/doc/configuration.md

そこで「unix-block」を検索すると、必要なものが見つかります。

引用は次のとおりです。

デバイス構成

LXDは常に、標準POSIXシステムが機能するために必要な基本的なデバイスをコンテナーに提供します。これらは、コンテナまたはプロファイルの構成では表示されず、オーバーライドできません。

それらが含まれます:

/ dev/null(キャラクターデバイス)/ dev/zero(キャラクターデバイス)/ dev/full(キャラクターデバイス)/ dev/console(キャラクターデバイス)/ dev/tty(キャラクターデバイス)/ dev/random(キャラクターデバイス)/ dev/urandom(キャラクターデバイス)/ dev/net/tun(キャラクターデバイス)/ dev/Fuse(キャラクターデバイス)lo(ネットワークインターフェース)

それ以外は、コンテナ構成またはそのプロファイルのいずれかで定義する必要があります。通常、デフォルトプロファイルには、コンテナ内でeth0になるネットワークインターフェイスが含まれます。

コンテナに追加のデバイスを追加するには、デバイスエントリをコンテナまたはプロファイルに直接追加できます。

コンテナの実行中にデバイスを追加または削除できます。

すべてのデバイスエントリは一意の名前で識別されます。同じ名前が後続のプロファイルまたはコンテナ自体の構成で使用される場合、エントリ全体が新しい定義によって上書きされます。

デバイスエントリは、lxc config device add [key = value] ...を介して追加されます。

= = =引用終了= = =

コマンドの例:

lxc profile device add [key = value] ...

また、LXDを使用する場合は、開発者がそれを監視し、Q&Aに毎日答えるため、lxc-usersメールエイリアスにサブスクライブすることを強くお勧めします。

https://lists.linuxcontainers.org/

最後に、RedditにはLXD sub-redditがあります(Redditを使用している場合)。これはサポート用ではありませんが、LXDに関する多くの素晴らしい情報を提供します。

https://www.reddit.com/r/LXD/

1
bmullan