Red Hat Training

A Red Hat training course is available for RHEL 8

68.9.4. シンプロビジョニングのスナップショットボリュームの作成

Red Hat Enterprise Linux は、シンプロビジョニングのスナップショットボリュームのサポートを提供します。

注記

このセクションでは、シンプロビジョニングのスナップショットボリュームを作成し、拡張するために使用する基本的なコマンドの概要を説明します。LVM シンプロビジョニングの詳細情報と、シンプロビジョニングされた論理ボリュームと共に LVM コマンドおよびユーティリティーを使用する方法は、man ページの lvmthin(7) を参照してください。

重要

シンプロビジョニングのスナップショットボリュームを作成する場合、ボリュームのサイズは指定しません。サイズパラメーターを指定すると、作成されるスナップショットはシンプロビジョニングのスナップショットボリュームにはならず、データを保管するためにシンプールを使用することもありません。たとえば、lvcreate -s vg/thinvolume -L10M コマンドは、作成元ボリュームがシンボリュームであっても、シンプロビジョニングのスナップショットを作成しません。

シンプロビジョニングのスナップショットは、シンプロビジョニングされた作成元ボリューム用に作成するか、またはシンプロビジョニングされていない作成元ボリューム用にも作成できます。

lvcreate コマンドで、--name オプションを使用してスナップショットボリューム名を指定できます。以下のコマンドは、シンプロビジョニングされた論理ボリューム vg001/thinvolume で、シンプロビジョニングのスナップショットボリューム (mysnapshot1) を作成します。

# lvcreate -s --name mysnapshot1 vg001/thinvolume
  Logical volume "mysnapshot1" created
# lvs
  LV          VG       Attr     LSize   Pool       Origin     Data%  Move Log Copy%  Convert
  mysnapshot1 vg001    Vwi-a-tz   1.00g mythinpool thinvolume   0.00
  mythinpool  vg001    twi-a-tz 100.00m                         0.00
  thinvolume  vg001    Vwi-a-tz   1.00g mythinpool              0.00

シンプロビジョニングのスナップショットボリュームには、他のシンボリュームと同じ特性があります。ボリュームのアクティブ化、拡張、名前変更、削除、さらにはスナップショット作成も個別に行うことができます。

デフォルトで、スナップショットボリュームは、通常のアクティブ化コマンドの実行時に省略されます。論理ボリュームのアクティブ化を制御する方法は、『論理ボリュームの設定 および管理』の「 論理ボリュームの アクティブ化 」を参照してください。

シンプロビジョニングされていない論理ボリュームの、シンプロビジョニングされたスナップショットを作成することもできます。シンプロビジョニングされていない論理ボリュームはシンプール内に含まれていないため、外部の作成元 と呼ばれます。外部の作成元ボリュームは、複数の異なるシンプールからであっても、多くのシンプロビジョニングのスナップショットボリュームで使用でき、共有できます。外部の作成元は、シンプロビジョニングのスナップショットが作成される際に非アクティブであり、かつ読み取り専用である必要があります。

外部の作成元のシンプロビジョニングされたスナップショットを作成する場合は、--thinpool オプションを指定する必要があります。以下のコマンドは、読み取り専用の非アクティブなボリューム origin_volume のシンプロビジョニングのスナップショットボリュームを作成します。このシンプロビジョニングのスナップショットボリュームの名前は mythinsnap です。論理ボリューム origin_volume は、既存のシンプール vg001/pool を使用する、ボリュームグループ vg001 内のシンプロビジョニングのスナップショットボリューム mythinsnap に対する外部の作成元になります。作成元ボリュームは、スナップショットボリュームと同じボリュームグループに存在する必要があるため、作成元の論理ボリュームを指定する場合にボリュームグループを指定する必要はありません。

# lvcreate -s --thinpool vg001/pool origin_volume --name mythinsnap

以下のコマンドにあるように、最初のスナップショットボリュームの 2 番目のシンプロビジョニングのスナップショットボリュームを作成できます。

# lvcreate -s vg001/mythinsnap --name my2ndthinsnap

lvs コマンドのレポートフィールド lv_ancestors および lv_descendants を指定すると、シンプロビジョニングされたスナップショット論理ボリュームのすべての先祖 (ancestor) と子孫 (descendant) をそれぞれ表示できます。

以下の例では、下記の点を前提としています。

  • stack1 は、ボリュームグループ vg001 で元となるボリュームです。
  • stack2 は、stack1 のスナップショットです。
  • stack3 は、stack2 のスナップショットです。
  • stack4 は、stack3 のスナップショットです。

さらに

  • stack5 も、stack2 のスナップショットです。
  • stack6 は、stack5 のスナップショットです。
$ lvs -o name,lv_ancestors,lv_descendants vg001
  LV      Ancestors              Descendants
  stack1                         stack2,stack3,stack4,stack5,stack6
  stack2  stack1                 stack3,stack4,stack5,stack6
  stack3  stack2,stack1          stack4
  stack4  stack3,stack2,stack1
  stack5  stack2,stack1          stack6
  stack6  stack5,stack2,stack1
  pool
注記

lv_ancestors フィールドおよび lv_descendants フィールドは、既存の依存関係を表示しますが削除されたエントリーは追跡しません。このチェーンの最中にエントリーが削除されると、依存関係チェーンが壊れるためです。たとえば、この設定例から論理ボリューム stack3 を削除すると、以下のように表示されます。

$ lvs -o name,lv_ancestors,lv_descendants vg001
  LV      Ancestors              Descendants
  stack1                         stack2,stack5,stack6
  stack2  stack1                 stack5,stack6
  stack4
  stack5  stack2,stack1          stack6
  stack6  stack5,stack2,stack1
  pool

ただし、削除した論理ボリュームを追跡して表示するようにシステムを設定できます。lv_ancestors_full フィールドおよび lv_descendants_full フィールドを指定することで、このボリュームを含む完全依存チェーンを表示できます。