LXDのデフォルトパスは/var/lib/lxd
であるため、コンテナは/var/lib/lxd/containers
にあり、スナップショットは/var/lib/lxd/snapshots
に配置されます。
/ var /パーティションがいっぱいになっているため、コンテナとスナップショット用に別のパーティションを使用する予定です。
私の現在のオプションは次のとおりです。
どの方法が簡単か、またこれを簡単に達成する他の方法があるかどうかはわかりません。
私は、防具、コンテナの許可に問題があるか、lxd/lxcで問題が発生することを心配しています。
それらを移動する正しい(または最良の)方法はどれでしょうか?
LXD 2.9+は複数のストレージプールをサポートしています。
LXDの大きな問題は、(現在)1つのストレージプールのみをサポートしているように見えることです。特に、あるディスクボリュームでコンテナの一部を実行し、別のディスクボリュームで一部を実行する場合、これはやや問題になります。たとえば、SSDボリュームにいくつかの「高速」コンテナと、HDDボリュームにいくつかの「低速」コンテナがあるとします。
コンテナを単一のボリュームでのみ実行したい場合、ソリューションは簡単です:
たとえば、lxdという名前のサブディレクトリの/ mnt/largepoolの下に新しいストレージをマウントしている場合、次のようなリンクを作成します:ln -s /mnt/largepool/lxd /var/lib/lxd
これにより、コンテナを新しいストレージボリュームに配置できます。
ストレージバックエンドとしてBTRFSまたはZFSを使用している場合、最初に新しいストレージに必要なサブボリュームを作成し、コンテナーが独自のサブボリュームに配置されるようにしたい場合があることに注意してください。たとえば、btrfsがあり、c1およびc2という名前のコンテナがあり、ディレクトリ/ mnt/largepool/lxd/containersがすでに配置されている場合、ファイルを実際に移動する前に、サブボリュームを作成します:btrfs su create /mnt/largepool/lxd/containers/c1 btrfs su create /mnt/largepool/lxd/containers/c2
これにより、後でコンテナのスナップショットを簡単に作成できます。
この情報がお役に立てば幸いです。
LXDはsqlite dbに基づいているため、プールの場所を変更するには、dbを変更するだけです。
sqlite3クライアントがない場合はインストールします
echo "UPDATE config SET value = 'new_pool_lxd' WHERE\key = 'storage.zfs_pool_name';" | sqlite3 / var/lib/lxd/lxd.db
デフォルトの場所にあるlxd dbを想定
その後、確認してください
echo "SELECT * FROM config;" | sqlite3 /var/lib/lxd/lxd.db
1 | storage.zfs_pool_name | new_pool_lxd
お役に立てれば