Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4.5. シンプロビジョニングされた論理ボリュームの作成

論理ボリュームは、シンプロビジョニングにできます。これにより、利用可能なエクステントよりも大きな論理ボリュームを作成できます。シンプロビジョニングを使用すると、シンプールと呼ばれる、空き領域のストレージプールを管理でき、アプリケーションで必要になった時に任意の数のデバイスに割り当てることができます。後でアプリケーションが実際に論理ボリュームに書き込むときに割り当てられるように、シンプールにバインドするデバイスを作成できます。シンプールは、ストレージ領域をコスト効率よく割り当てる必要がある場合に、動的に拡張できます。
注記
このセクションでは、シンプロビジョニングされた論理ボリュームを作成し、拡張するために使用する基本的なコマンドの概要を説明します。LVM シンプロビジョニングの詳細情報と、シンプロビジョニングされた論理ボリュームと共に LVM コマンドおよびユーティリティーを使用する方法についての情報は、lvmthin(7) man ページを参照してください。
注記
クラスターのノード間では、シンボリュームに対応していません。シンプールとそのすべてのシンボリュームは、1 つのクラスターノードで排他的にアクティブにする必要があります。
シンボリュームを作成する場合は、以下のタスクを実行します。
  1. vgcreate コマンドを使用して、ボリュームグループを作成します。
  2. lvcreate コマンドを使用して、シンプールを作成します。
  3. lvcreate コマンドを使用して、シンプール内にシンプロビジョニングされたボリュームを作成します。
lvcreate コマンドに -T (または --thin) オプションを付けて、シンプールまたはシンボリュームを作成できます。また、lvcreate-T オプションを使用して、1 つのコマンドで同時にプール内にシンプールとシンプロビジョニングされたボリュームの両方を作成することもできます。
以下のコマンドは、lvcreate コマンドの -T オプションを使用して、mythinpool という名前のシンプールを作成します。これは、ボリュームグループ vg001 内にあり、サイズは 100M です。物理領域のプールを作成しているため、プールのサイズを指定する必要があります。lvcreate コマンドの -T オプションは引数を取りません。コマンドで指定するその他のオプションから、作成されるデバイスのタイプが推定されます。
# lvcreate -L 100M -T vg001/mythinpool
  Rounding up size to full physical extent 4.00 MiB
  Logical volume "mythinpool" created
# lvs
  LV            VG     Attr     LSize   Pool Origin Data%  Move Log Copy% Convert
  my mythinpool vg001  twi-a-tz 100.00m               0.00
以下のコマンドは、lvcreate コマンドに -T オプションを使用して、シンプール vg001/mythinpoolthinvolume という名前のシンボリュームを作成します。ここでは、ボリュームを含むプールよりも大きなボリュームの仮想サイズを指定している点に注意してください。
# lvcreate -V 1G -T vg001/mythinpool -n thinvolume
  Logical volume "thinvolume" created
# lvs
  LV          VG       Attr     LSize   Pool       Origin Data%  Move Log Copy%  Convert
  mythinpool  vg001    twi-a-tz 100.00m                     0.00
  thinvolume  vg001    Vwi-a-tz   1.00g mythinpool          0.00
以下のコマンドは、lvcreate コマンドに -T オプションを使用して、プール内にシンプールとシンプロビジョニングされたボリュームを作成します。その際、lvcreate コマンドでサイズと仮想サイズの引数を指定します。また、このコマンドは、ボリュームグループ vg001 にシンプール mythinpool を作成し、そのプールにシンプロビジョニングされたボリューム thinvolume も作成します。
# lvcreate -L 100M -T vg001/mythinpool -V 1G -n thinvolume
  Rounding up size to full physical extent 4.00 MiB
  Logical volume "thinvolume" created
# lvs
  LV           VG       Attr     LSize   Pool     Origin Data%  Move Log Copy%  Convert
  mythinpool   vg001    twi-a-tz 100.00m                   0.00
  thinvolume   vg001    Vwi-a-tz   1.00g mythinpool        0.00
また、lvcreate コマンドの --thinpool パラメーターを指定して、シンプールを作成することもできます。-T オプションとは異なり、--thinpool パラメーターには、作成しているシンプールの論理ボリューム名の引数が必要です。以下の例は、lvcreate コマンドで --thinpool パラメーターを指定して、mythinpool という名前のシンプールを作成します。これは、ボリュームグループ vg001 にあり、サイズは 100M です。
# lvcreate -L 100M --thinpool mythinpool vg001
  Rounding up size to full physical extent 4.00 MiB
  Logical volume "mythinpool" created
# lvs
  LV          VG     Attr     LSize   Pool Origin Data%  Move Log Copy% Convert
  mythinpool  vg001  twi-a-tz 100.00m               0.00
チャンクサイズを使用するには、以下の基準を使用します。
  • チャンクサイズが小さいほどメタデータが大きくなり、パフォーマンスが妨げられますが、スナップショットによる領域使用率が向上します。
  • 大規模なチャンクサイズではメタデータ操作が少なくなりますが、スナップショットの効率が低くなります。
LVM2 は、以下のようにチャンクサイズを計算します。
デフォルトでは、LVM は 64KiB のチャンクサイズで始まり、シンプールメタデータデバイスのサイズが 128MiB を超えると、その値を増やします。これにより、メタデータサイズが圧縮されます。これにより、チャンクサイズの値が大きくなるため、スナップショットの使用効率が低くなります。この場合、チャンクのサイズが小さく、メタデータサイズが大きくなる方が適しています。
ボリュームデータサイズが TiB の範囲にある場合は、サポートされる最大サイズであるメタデータサイズとして ~15.8GiB を使用し、要件に応じてチャンクサイズを設定します。ただし、このボリュームデータサイズを拡張し、チャンクサイズを小さくする必要がある場合は、メタデータサイズを拡大することはできません。
警告
Red Hat は、少なくともデフォルトのチャンクサイズを使用することを推奨します。チャンクサイズが小さすぎる場合で、ボリュームのメタデータの容量が不足すると、ボリュームはデータを作成できません。論理ボリュームを監視して、拡張またはメタデータボリュームが完全に満杯になる前にストレージをさらに作成します。メタデータ用の領域が不足しないように、シンプールのチャンクサイズは十分な大きさになるようにしてください。
プールの作成で、ストライピングに対応しています。以下のコマンドは、2 つの 64 kB のストライプがあり、チャンクサイズが 256 kB のボリュームグループ vg001 に、pool という名前の 100M のシンプールを作成します。また、1T のシンボリューム vg00/thin_lv も作成します。
# lvcreate -i 2 -I 64 -c 256 -L 100M -T vg00/pool -V 1T --name thin_lv
lvextend コマンドを使用して、シンボリュームのサイズを拡張できます。ただし、シンプールのサイズを縮小することはできません。
以下のコマンドは、既存のシンプールのサイズ (100M) を変更し、100M 拡張します。
# lvextend -L+100M vg001/mythinpool
  Extending logical volume mythinpool to 200.00 MiB
  Logical volume mythinpool successfully resized
# lvs
  LV           VG       Attr     LSize   Pool     Origin Data%  Move Log Copy%  Convert
  mythinpool   vg001    twi-a-tz 200.00m                   0.00
  thinvolume   vg001    Vwi-a-tz   1.00g mythinpool          0.00
他の論理ボリュームのタイプと同様に、lvrename を使用してボリューム名の変更、lvremove を使用してボリュームの削除、lvslvdisplay のコマンドを使用してボリュームの情報の表示を行うことができます。
デフォルトでは、lvcreate コマンドは、計算式 (Pool_LV_size / Pool_LV_chunk_size * 64) から、シンプールのメタデータ論理ボリュームのサイズを設定します。スナップショットが大量にある場合や、シンプールのサイズが小さく、後で急激に大きくなることが予測される場合は、lvcreate コマンドの --poolmetadatasize パラメーターで、シンプールのメタデータボリュームのデフォルト値を大きくしないといけない場合があります。シンプールのメタデータ論理ボリュームでサポートされる値は 2MiB - 16GiB です。
lvconvert コマンドの --thinpool パラメーターを使用して、既存の論理ボリュームをシンプールボリュームに変換できます。既存の論理ボリュームをシンプールボリュームに変換する場合は、lvconvert コマンドの --thinpool パラメーターとともに --poolmetadata パラメーターを使用して、既存の論理ボリュームをシンプールボリュームのメタデータボリュームに変換する必要があります。
注記
論理ボリュームをシンプールボリュームまたはシンプールメタデータボリュームに変換すると、論理ボリュームのコンテンツが破棄されます。この場合、lvconvert はデバイスのコンテンツを保存するのではなく、コンテンツを上書きするためです。
以下の例は、ボリュームグループ vg001 の既存の論理ボリューム lv1 を、シンプールボリュームに変換します。また、ボリュームグループ vg001 の既存の論理ボリューム lv2 を、そのシンプールボリュームのメタデータボリュームに変換します。
# lvconvert --thinpool vg001/lv1 --poolmetadata vg001/lv2
  Converted vg001/lv1 to thin pool.