ストレージプールを管理するには#
ストレージプール を作成、設定、表示、リサイズするための手順については以下のセクションを参照してください。
ストレージプールを作成する#
LXD は初期化中にストレージプールを作成します。 同じドライバあるいは別のドライバを使用して、後からさらにストレージプールを追加できます。
ストレージプールを作成するには以下のコマンドを使用します。
lxc storage create <pool_name> <driver> [configuration_options...]
別途指定しない場合は、 LXD は実用的なデフォルトのサイズ (空きディスクスペースの20%、しかし最低5GiBで最大30GIB) でループベースのストレージをセットアップします。
それぞれのドライバで利用可能な設定オプションの一覧は ストレージドライバ ドキュメントを参照してください。
例#
それぞれのストレージドライバでストレージプールを作成する例は以下を参照してください。
pool1 という名前のディレクトリプールを作成する。
lxc storage create pool1 dir
/data/lxd という既存のディレクトリを使って pool2 を作成する。
lxc storage create pool2 dir source=/data/lxd
pool1 という名前のループバックプールを作成する。
lxc storage create pool1 btrfs
/some/path にある既存の Btrfs ファイルシステムを使って pool2 を作成する。
lxc storage create pool2 btrfs source=/some/path
/dev/sdX 上に pool3 という名前のプールを作成する。
lxc storage create pool3 btrfs source=/dev/sdX
pool1 という名前のループバックのプールを作成する (LVM ボリュームグループ名も pool1 になります)。
lxc storage create pool1 lvm
my-pool という既存の LVM ボリュームグループを使って pool2 を作成する。
lxc storage create pool2 lvm source=my-pool
my-vg というボリュームグループ内の my-pool という既存の LVM thin-pool を使って pool3 を作成する。
lxc storage create pool3 lvm source=my-vg lvm.thinpool_name=my-pool
/dev/sdX 上に pool4 という名前のプールを作成する (LVM ボリュームグループ名も pool4 になります)。
lxc storage create pool4 lvm source=/dev/sdX
/dev/sdX 上に my-pool というLVM ボリュームグループ名で pool5 という名前のプールを作成する。
lxc storage create pool5 lvm source=/dev/sdX lvm.vg_name=my-pool
pool1 という名前のループバックプールを作成する (ZFS zpool 名も pool1 になります)。
lxc storage create pool1 zfs
pool2 という名前のループバックプールを my-tank という ZFS zpool 名で作成する。
lxc storage create pool2 zfs zfs.pool_name=my-tank
my-tank という既存の ZFS zpool を使用して pool3 を作成する。
lxc storage create pool3 zfs source=my-tank
my-tank/slice という既存の ZFS データセットを使用して pool4 を作成する。
lxc storage create pool4 zfs source=my-tank/slice
/dev/sdX 上に pool5 という名前のプールを作成する (ZFS zpool 名も pool5 になります)。
lxc storage create pool5 zfs source=/dev/sdX
/dev/sdX 上に my-tank という ZFS zpool 名で pool6 という名前のプールを作成する。
lxc storage create pool6 zfs source=/dev/sdX zfs.pool_name=my-tank
デフォルトの Ceph クラスタ (名前は ceph) 内に pool1 という名前の OSD ストレージプールを作成する。
lxc storage create pool1 ceph
my-cluster という Ceph クラスタ内に pool2 という名前の OSD ストレージプールを作成する。
lxc storage create pool2 ceph ceph.cluster_name=my-cluster
デフォルトの Ceph クラスタ内に my-osd という on-disk 名で pool3 という名前の OSD ストレージプールを作成する。
lxc storage create pool3 ceph ceph.osd.pool_name=my-osd
my-already-existing-osd という既存の OSD ストレージプールを使って pool4 を作成する。
lxc storage create pool4 ceph source=my-already-existing-osd
ecpool という既存の OSD ストレージプールと rpl-pool という OSD リプリケーテッドプールを使って pool5 を作成する。
lxc storage create pool5 ceph source=rpl-pool ceph.osd.data_pool_name=ecpool
注釈
CephFS ドライバを使用する際は、事前に CephFS ファイルシステムを作成する必要があります。 このファイルシステムは 2 つの OSD ストレージプールからなります。そのうち 1 つは実際のデータ、もう 1 つはファイルメタデータに使用されます。
既存の CephFS ファイルシステム my-filesystem を使って pool1 を作成する。
lxc storage create pool1 cephfs source=my-filesystem
my-filesystem ファイルシステムからサブディレクトリ my-directory を使って pool2 を作成する。
lxc storage create pool2 cephfs source=my-filesystem/my-directory
注釈
Ceph Object ドライバを使用する場合、事前に稼働中の Ceph Object Gateway radosgw の URL を用意しておく必要があります。
既存の Ceph Object Gateway https://www.example.com/radosgw を使用して pool1 を作成する。
lxc storage create pool1 cephobject cephobject.radosgw.endpoint=https://www.example.com/radosgw
クラスタ内にストレージプールを作成する#
LXD クラスタを稼働していてストレージプールを追加したい場合、それぞれのクラスタメンバー内にストレージを別々に作る必要があります。 この理由は、設定、例えばストレージのロケーションやプールのサイズがクラスタメンバー間で異なるかもしれないからです。
このため、 --target=<cluster_member> フラグを指定してストレージプールをペンディング状態でまず作成し、メンバーごとに適切な設定を行う必要があります。
全てのメンバーで同じストレージプール名を使用しているか確認してください。
次に --target フラグなしでストレージプールを作成し、実際にセットアップします。
例えば、以下の一連のコマンドは 3 つのクラスタメンバー上で異なるロケーションと異なるサイズで my-pool という名前のストレージプールをセットアップします。
user@host:~$ lxc storage create my-pool zfs source=/dev/sdX size=10GB --target=vm01Storage pool my-pool pending on member vm01user@host:~$ lxc storage create my-pool zfs source=/dev/sdX size=15GB --target=vm02Storage pool my-pool pending on member vm02user@host:~$ lxc storage create my-pool zfs source=/dev/sdY size=10GB --target=vm03Storage pool my-pool pending on member vm03user@host:~$ lxc storage create my-pool zfsStorage pool my-pool createdクラスタのストレージを設定するにはも参照してください。
注釈
ほとんどのストレージドライバでは、ストレージプールは各クラスタメンバー上にローカルに存在します。 これは 1 つのメンバー上のストレージプール内にストレージボリュームを作成しても、別のクラスタメンバー上では利用可能にはならないことを意味します。
この挙動は Ceph ベースのストレージプール (ceph、 cephfs、 cephobject) では異なります。これらではストレージプールは 1 つの中央のロケーション上に存在し、全てのクラスタメンバーが同じストレージボリュームを持つ同じストレージプールにアクセスします。
ストレージプールを設定する#
各ストレージドライバで利用可能な設定オプションについては ストレージドライバ ドキュメントを参照してください。
(source のような) ストレージプールの一般的なキーはトップレベルです。
ドライバ固有のキーはドライバ名で名前空間が分けられています。
ストレージプールに設定オプションを設定するには以下のコマンドを使用します。
lxc storage set <pool_name> <key> <value>
例えば、 dir ストレージプールでストレージプールのマイグレーション中に圧縮をオフにするには以下のコマンドを使用します。
lxc storage set my-dir-pool rsync.compression false
ストレージプールの設定を編集するには以下のコマンドを使用します。
lxc storage edit <pool_name>
ストレージプールを表示する#
全ての利用可能なストレージプールの一覧を表示し設定を確認できます。
以下のコマンドで全ての利用可能なストレージプールを一覧表示できます。
lxc storage list
出力結果の表には (訳注: LXD の) 初期化時に作成した (通常 default や local と呼ばれる) ストレージプールとあなたが追加したあらゆるストレージプールが含まれます。
特定のプールに関する詳細情報を表示するには、以下のコマンドを使用します。
lxc storage show <pool_name>
特定のプールに関する使用量を表示するには、以下のコマンドを使用します。
lxc storage info <pool_name>
ストレージプールをリサイズする#
ストレージがもっと必要な場合、size 設定キーを変更することでストレージプールのサイズを拡大できます。
lxc storage set <pool_name> size=<new_size>
これはループファイルをバックエンドとしLXDで管理されているストレージプールでのみ機能します。 プールは拡張(サイズを増やす)のみが可能で、縮小はできません。