Red Hat Training
A Red Hat training course is available for RHEL 8
10.2. シンプロビジョニングされた論理ボリュームの作成
シンプロビジョニングされた論理ボリュームを使用すると、利用可能な物理ストレージよりも大きな論理ボリュームを作成できます。シンプロビジョニングされたボリュームセットを作成すると、システムは要求されるストレージの全量を割り当てる代わりに、実際に使用する容量を割り当てることができます。
lvcreate
コマンドに -T
(または --thin
) オプションを付けて、シンプールまたはシンボリュームを作成できます。また、lvcreate
の -T
オプションを使用して、1 つのコマンドで同時にシンプールとシンプロビジョニングされたボリュームの両方を作成することもできます。この手順では、シンプロビジョニングされた論理ボリュームを作成および拡張する方法について説明します。
前提条件
- ボリュームグループを作成している。詳細は、LVM ボリュームグループの作成 を参照してください。
手順
シンプールを作成します。
# lvcreate -L 100M -T vg001/mythinpool Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data. Logical volume "mythinpool" created.
物理領域のプールを作成しているため、プールのサイズを指定する必要があります。
lvcreate
コマンドの-T
オプションでは引数を使用できません。コマンドで指定する他のオプションをもとに、作成するデバイスのタイプを決定します。次の例に示すように、追加のパラメーターを使用してシンプールを作成することもできます。また、
lvcreate
コマンドの ----thinpool
パラメーターを指定して、シンプールを作成することもできます。-T
オプションとは異なり、-thinpool
パラメーターでは、作成するシンプール論理ボリュームの名前を指定する必要があります。次の例では、-thinpool
パラメーターを使用して、サイズが 100M のボリュームグループ vg001 に mythinpool という名前のシンプールを作成します。# lvcreate -L 100M --thinpool mythinpool vg001 Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data. Logical volume "mythinpool" created.
プールの作成でストライピングがサポートされているため、
-i
オプションおよび-I
オプションを使用してストライプを作成できます。以下のコマンドは、2 つの 64 kB のストライプがあり、チャンクサイズが 256 kB のボリュームグループ vg001 に、pool という名前の 100M のシンプールを作成します。また、vg001/thinvolume という名前でサイズが 1T のシンボリュームを作成します。注記ボリュームグループに十分な空き領域がある 2 つの物理ボリュームがあることを確認してください。そうでない場合にはシンプールを作成できません。
# lvcreate -i 2 -I 64 -c 256 -L 100M -T vg001/thinpool -V 1T --name thinvolume
シンボリュームを作成します。
# lvcreate -V 1G -T vg001/mythinpool -n thinvolume WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (100.00 MiB). WARNING: You have not turned on protection against thin pools running out of space. WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full. Logical volume "thinvolume" created.
このような場合には、ボリュームを含むプールのサイズよりも大きい、ボリュームの仮想サイズを指定しています。次の例に示すように、追加のパラメーターを使用してシンボリュームを作成することもできます。
シンボリュームとシンプールの両方を作成するには、
lvcreate
コマンドの-T
オプションを使用して、サイズと仮想サイズの両方の引数を指定します。# lvcreate -L 100M -T vg001/mythinpool -V 1G -n thinvolume Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data. WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (100.00 MiB). WARNING: You have not turned on protection against thin pools running out of space. WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full. Logical volume "thinvolume" created.
残りの空き領域を使用してシンボリュームとシンプールを作成するには、
100%FREE
オプションを使用します。# lvcreate -V 1G -l 100%FREE -T vg001/mythinpool -n thinvolume Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data. Logical volume "thinvolume" created.
既存の論理ボリュームをシンプールボリュームに変換するには、
lvconvert
コマンドの--thinpool
パラメーターを使用します。また、-poolmetadata
パラメーターを--thinpool
パラメーターと組み合わせて使用して、既存の論理ボリュームをシンプールボリュームのメタデータボリュームに変換する必要があります。以下の例は、ボリュームグループ vg001 の既存の論理ボリューム lv1 を、シンプールボリュームに変換します。また、ボリュームグループ vg001 の既存の論理ボリューム lv2 を、そのシンプールボリュームのメタデータボリュームに変換します。
# lvconvert --thinpool vg001/lv1 --poolmetadata vg001/lv2 Converted vg001/lv1 to thin pool.
注記論理ボリュームをシンプールボリュームまたはシンプールメタデータボリュームに変換すると、論理ボリュームのコンテンツが破棄されます。
lvconvert
はデバイスのコンテンツを保存するのではなく、コンテンツを上書きするためです。デフォルトでは、
lvcreate
コマンドは、以下の式を使用して、シンプールメタデータ論理ボリュームのサイズを大まかに設定します。Pool_LV_size / Pool_LV_chunk_size * 64
スナップショットが大量にある場合や、シンプールのサイズが小さく、後で急激に大きくなることが予測される場合は、
lvcreate
コマンドの--poolmetadatasize
パラメーターで、シンプールのメタデータボリュームのデフォルト値を大きくしないといけない場合があります。シンプールのメタデータ論理ボリュームで対応している値は 2MiB ~ 16GiB です。次の例は、シンプールのメタデータボリュームのデフォルト値を増やす方法を示しています。
# lvcreate -V 1G -l 100%FREE -T vg001/mythinpool --poolmetadatasize 16M -n thinvolume Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data. Logical volume "thinvolume" created.
作成されたシンプールとシンボリュームを表示します。
# lvs -a -o +devices LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices [lvol0_pmspare] vg001 ewi------- 4.00m /dev/sda(0) mythinpool vg001 twi-aotz-- 100.00m 0.00 10.94 mythinpool_tdata(0) [mythinpool_tdata] vg001 Twi-ao---- 100.00m /dev/sda(1) [mythinpool_tmeta] vg001 ewi-ao---- 4.00m /dev/sda(26) thinvolume vg001 Vwi-a-tz-- 1.00g mythinpool 0.00
オプション:
lvextend
コマンドを使用して、シンプールのサイズを拡張します。ただし、シンプールのサイズを縮小することはできません。注記シンプールとシンボリュームの作成中に
-l100%FREE
引数を使用すると、このコマンドは失敗します。以下のコマンドは、既存のシンプールのサイズ (100M) を変更し、さらに 100M 分を拡張します。
# lvextend -L+100M vg001/mythinpool Size of logical volume vg001/mythinpool_tdata changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents). WARNING: Sum of all thin volume sizes (1.00 GiB) exceeds the size of thin pool vg001/mythinpool (200.00 MiB). WARNING: You have not turned on protection against thin pools running out of space. WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full. Logical volume vg001/mythinpool successfully resized
# lvs -a -o +devices LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices [lvol0_pmspare] vg001 ewi------- 4.00m /dev/sda(0) mythinpool vg001 twi-aotz-- 200.00m 0.00 10.94 mythinpool_tdata(0) [mythinpool_tdata] vg001 Twi-ao---- 200.00m /dev/sda(1) [mythinpool_tdata] vg001 Twi-ao---- 200.00m /dev/sda(27) [mythinpool_tmeta] vg001 ewi-ao---- 4.00m /dev/sda(26) thinvolume vg001 Vwi-a-tz-- 1.00g mythinpool 0.00
オプション: シンプールとシンボリュームの名前を変更するには、次のコマンドを使用します。
# lvrename vg001/mythinpool vg001/mythinpool1 Renamed "mythinpool" to "mythinpool1" in volume group "vg001" # lvrename vg001/thinvolume vg001/thinvolume1 Renamed "thinvolume" to "thinvolume1" in volume group "vg001"
名前を変更した後に、シンプールとシンボリュームを表示します。
# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert mythinpool1 vg001 twi-a-tz 100.00m 0.00 thinvolume1 vg001 Vwi-a-tz 1.00g mythinpool1 0.00
オプション: シンプールを削除するには、次のコマンドを使用します。
# lvremove -f vg001/mythinpool1 Logical volume "thinvolume1" successfully removed. Logical volume "mythinpool1" successfully removed.
関連情報
-
lvcreate (8)
、lvrename (8)
、lvs (8)
、およびlvconvert (8)
の man ページ