Red Hat Training

A Red Hat training course is available for RHEL 8

68.9.5. 削除されているシンプロビジョニングのスナップショットボリュームの追跡および表示

lvm.conf 設定ファイルで record_lvs_history メタデータオプションを有効にして、削除したシンプロビジョニングのスナップショットとシン論理ボリュームを追跡するように設定します。これにより、元の依存関係チェーンから削除し、過去 の論理ボリュームになった論理ボリュームを含む、完全にシンプロビジョニングされたスナップショットの依存関係チェーンを表示できます。

lvm.conf 設定ファイルで lvs_history_retention_time メタデータオプションを使用し、保持時間 (秒) を指定して、決められた期間、システムに過去のボリュームを保持するように設定できます。

過去の論理ボリュームでは、削除された論理ボリュームを単純化したものが保持され、以下の、ボリュームのレポートフィールドが含まれます。

  • lv_time_removed - 論理ボリュームの削除時間
  • lv_time - 論理ボリュームの作成時間
  • lv_name - 論理ボリュームの名前
  • lv_uuid - 論理ボリュームの UUID
  • vg_name - 論理ボリュームを含むボリュームグループ

ボリュームを削除すると、過去の論理ボリューム名には頭にハイフンが付きます。たとえば、論理ボリューム lvol1 を削除すると、過去のボリューム名は -lvol1 となります。過去の論理ボリュームは再アクティベートすることができません。

record_lvs_history メタデータオプションを有効にしていても、lvremove コマンドの --nohistory オプションを指定して論理ボリュームを削除すれば、過去の論理ボリュームを個別に保持しないようにできます。

ボリューム表示に過去の論理ボリュームを含むには、LVM 表示コマンドに -H|--history オプションを指定します。-H オプションとともに、レポートフィールド lv_full_ancestors および lv_full_descendants を指定すると、過去のボリュームを含む、完全にシンプロビジョニングされたスナップショットの依存関係チェーンを表示できます。

以下のコマンド群は、過去の論理ボリュームを表示および管理する例を示します。

  1. lvm.conf ファイルに record_lvs_history=1 を設定して、過去の論理ボリュームを保持していることを確認します。このメタデータオプションは、デフォルトでは有効ではありません。
  2. 以下のコマンドを入力して、シンプロビジョニングのスナップショットチェーンを表示します。

    この例では、以下のように設定されています。

    • lvol1 は元となるボリュームで、チェーンの中で最初のボリュームになります。
    • lvol2 は、lvol1 のスナップショットです。
    • lvol3 は、lvol2 のスナップショットです。
    • lvol4 は、lvol3 のスナップショットです。
    • lvol5 も、lvol3 のスナップショットです。

      この例の lvs 表示コマンドに -H オプションを追加しても、シンプロビジョニングのスナップショットボリュームは削除されていないため、過去の論理ボリュームは表示されないことに注意してください。

      # lvs -H -o name,full_ancestors,full_descendants
        LV    FAncestors        FDescendants
        lvol1                   lvol2,lvol3,lvol4,lvol5
        lvol2 lvol1             lvol3,lvol4,lvol5
        lvol3 lvol2,lvol1       lvol4,lvol5
        lvol4 lvol3,lvol2,lvol1
        lvol5 lvol3,lvol2,lvol1
        pool
  3. スナップショットチェーンから論理ボリューム lvol3 を削除してから再度 lvs コマンドを実行し、過去の論理ボリュームが、先祖 (ancestor) と子孫 (descendant) とともに、どのように表示されるかを確認します。

    # lvremove -f vg/lvol3
      Logical volume "lvol3" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors         FDescendants
      lvol1                     lvol2,-lvol3,lvol4,lvol5
      lvol2  lvol1              -lvol3,lvol4,lvol5
      -lvol3 lvol2,lvol1        lvol4,lvol5
      lvol4  -lvol3,lvol2,lvol1
      lvol5  -lvol3,lvol2,lvol1
      pool
  4. 過去のボリュームが削除された時間を表示する場合は、lv_time_removed レポートフィールドを使用できます。

    # lvs -H -o name,full_ancestors,full_descendants,time_removed
      LV     FAncestors         FDescendants              RTime
      lvol1                     lvol2,-lvol3,lvol4,lvol5
      lvol2  lvol1              -lvol3,lvol4,lvol5
      -lvol3 lvol2,lvol1        lvol4,lvol5               2016-03-14 14:14:32 +0100
      lvol4  -lvol3,lvol2,lvol1
      lvol5  -lvol3,lvol2,lvol1
      pool
  5. vgname/lvname フォーマットを以下の例のように指定すると、表示コマンドで過去の論理ボリュームを個別に参照できます。lv_attr フィールドの 5 番目のビットを h に設定して、ボリュームが過去のボリュームであることを示していることに注意してください。

    # lvs -H vg/-lvol3
      LV     VG   Attr       LSize
      -lvol3 vg   ----h-----    0
  6. ボリュームにライブの子孫がないと、LVM は過去の論理ボリュームを保持しません。これは、スナップショットチェーンの最後に論理ボリュームを削除すると、論理ボリュームが過去の論理ボリュームとして保持されないことを示しています。

    # lvremove -f vg/lvol5
      Automatically removing historical logical volume vg/-lvol5.
      Logical volume "lvol5" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors         FDescendants
      lvol1                     lvol2,-lvol3,lvol4
      lvol2  lvol1              -lvol3,lvol4
      -lvol3 lvol2,lvol1        lvol4
      lvol4  -lvol3,lvol2,lvol1
      pool
  7. 以下のコマンドを実行して、ボリューム lvol1 および lvol2 を削除します。次に lvs コマンドを実行して、ボリュームが削除されるとどのように表示されるかを確認します。

    # lvremove -f vg/lvol1 vg/lvol2
      Logical volume "lvol1" successfully removed
      Logical volume "lvol2" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors           FDescendants
      -lvol1                      -lvol2,-lvol3,lvol4
      -lvol2 -lvol1               -lvol3,lvol4
      -lvol3 -lvol2,-lvol1        lvol4
      lvol4  -lvol3,-lvol2,-lvol1
      pool
  8. 過去の論理ボリュームを完全に削除したら、lvremove コマンドを再度実行します。以下の例のように、ハイフンが追加された、過去のボリューム名を指定します。

    # lvremove -f vg/-lvol3
    Historical logical volume "lvol3" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors    FDescendants
      -lvol1               -lvol2,lvol4
      -lvol2 -lvol1        lvol4
      lvol4  -lvol2,-lvol1
      pool
  9. 子孫にライブボリュームが含まれるチェーンがある場合に限り、過去の論理ボリュームは保持されます。これは、以下の例のように、そのボリュームにリンクされている子孫がない場合に、過去の論理ボリュームを削除すると、チェーンの論理ボリュームがすべて削除されることを意味します。

    # lvremove -f vg/lvol4
      Automatically removing historical logical volume vg/-lvol1.
      Automatically removing historical logical volume vg/-lvol2.
      Automatically removing historical logical volume vg/-lvol4.
      Logical volume "lvol4" successfully removed