Red Hat Training

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

14.2. Snapper スナップショットの作成

Snapper では、以下のタイプのスナップショットを作成できます。
プレスナップショット
プレスナップショットは、ポストスナップショットの作成元として機能します。この 2 つは密接に関連しており、2 つのポイント間でファイルシステムの修正を追跡するように設計されています。ポストスナップショットを作成する前に、プレスナップショットを作成する必要があります。
ポストスナップショット
ポストスナップショットは、プレスナップショットのエンドポイントとして機能します。結合されたプレスナップショットとポストスナップショットは、比較の範囲を定義します。デフォルトでは、すべての新しい snapper ボリュームは、関連するポストスナップショットが正常に作成された後にバックグラウンド比較を作成するように設定されています。
シングルスナップショット
1 つのスナップショットとは、特定の時点で作成されたスタンドアロンのスナップショットのことです。これらを使用すると、修正のタイムラインを追跡し、後で戻るための一般的なポイントを持つために使用することができます

14.2.1. プレスナップショットとポストスナップショットのペアの作成

14.2.1.1. Snapper を使用したプレスナップショットの作成

プレスナップショットの作成には、以下のコマンドを実行します。
# snapper -c config_name create -t pre
-c config_name オプションは、指定された設定ファイルの仕様に従ってスナップショットを作成します。設定ファイルが存在しない場合は、「Snapper の初期設定の作成」 を参照してください。
create -t オプションは、作成するスナップショットのタイプを指定します。受け入れられるエントリーは、prepost、または single です。
たとえば、次のように lvm_config 設定ファイルを使用して事前スナップショットを作成するには、「Snapper の初期設定の作成」、使用:
# snapper -c SnapperExample create -t pre -p
1
-p オプションは、作成されたスナップショットの番号を出力しますが、使用するかどうかは任意です。

14.2.1.2. Snapper を使用しポストスナップショットの作成

ポストスナップショットはスナップショットのエンドポイントであり、「Snapper を使用したプレスナップショットの作成」 の手順に従って、親のプレスナップショットの後に作成する必要があります。

手順14.2 ポストスナップショットの作成

  1. プレスナップショットの数を指定します。
    # snapper -c config_name list
    たとえば、設定ファイル lvm_config を使用して作成されたスナップショットのリストを表示するには、次のコマンドを使用します。
    # snapper -c lvm_config list
    Type   | # | Pre # | Date              | User | Cleanup  | Description | Userdata
    -------+---+-------+-------------------+------+----------+-------------+---------
    single | 0 |       |                   | root |          | current     |
    pre    | 1 |       | Mon 06<...>       | root |          |             |
    
    この出力は、プレスナップショットが番号 1 であることを示しています。
  2. 事前に作成したプレスナップショットにリンクされる、ポストスナップショットを作成します。
    # snapper -c config_file create -t post --pre-num pre_snapshot_number
    • -t post オプションは、ポストスナップショットタイプの作成を指定します。
    • --pre-num オプションは、対応する事前スナップショットを指定します。
    たとえば、lvm_config 設定ファイルを使用してポストスナップショットを作成し、プレスナップショット番号 1 にリンクするには、次を使用します。
    # snapper -c lvm_config create -t post --pre-num 1 -p
    2
    
    -p オプションは、作成されたスナップショットの番号を出力しますが、使用するかどうかは任意です。
  3. プレスナップショット 1 とポストスナップショット 2 が作成され、ペアになりました。これを list コマンドで確認します。
    # snapper -c lvm_config list
    Type   | # | Pre # | Date              | User | Cleanup  | Description | Userdata
    -------+---+-------+-------------------+------+----------+-------------+---------
    single | 0 |       |                   | root |          | current     |
    pre    | 1 |       | Mon 06<...>       | root |          |             |
    post   | 2 | 1     | Mon 06<...>       | root |          |             |
    

14.2.1.3. スナップショット前およびスナップショット後のコマンドのラップ

また、コマンドをプレスナップショットおよびポストスナップショットにラップすることもできます。これはテスト時に役立ちます。手順14.3「スナップショット前およびスナップショット後のコマンドのラップ」 (以下の手順のショートカット) を参照してください。
  1. snapper create pre snapshot コマンドを実行します。
  2. コマンドの実行、またはファイルシステムのコンテンツに影響を与える可能性があるアクションを実行するコマンドの一覧。
  3. snapper create post snapshot コマンドを実行します。

手順14.3 スナップショット前およびスナップショット後のコマンドのラップ

  1. プレスナップショットとポストスナップショットでコマンドをラップするには、以下のコマンドを実行します。
    # snapper -c lvm_config create --command "command_to_be_tracked"
    たとえば、/lvm_mount/hello_file ファイルの作成を追跡するには、次のようにします。
    # snapper -c lvm_config create --command "echo Hello > /lvm_mount/hello_file"
  2. これを確認するには、status コマンドを使用します。
    # snapper -c config_file status first_snapshot_number..second_snapshot_number
    たとえば、最初の手順で行った変更を追跡するには、以下のコマンドを実行します。
    # snapper -c lvm_config status 3..4
    +..... /lvm_mount/hello_file
    
    必要に応じて、list コマンドを使用してスナップショットの番号を確認します。
    status コマンドの詳細については、を参照してください。「スナップショット間での変更の追跡」
上記の例で使用されているコマンドが、スナップショットがキャプチャーする唯一のものであるという保証はないことに注意してください。Snapper は、ユーザーが変更したものだけでなく、システムが変更したものも記録します。

14.2.2. 1 つのスナップショットの作成

単一の snapper スナップショットの作成は、プレスナップショットまたはポストスナップショットの作成に似ていますが、create -t オプションのみが単一を指定します。1 つのスナップショットを使用すれば、他のスナップショットとは無関係に、1 つのスナップショットを作成できます。ただし、比較を自動的に生成したり、追加情報を一覧表示したりせずに、LVM2 シンボリュームのスナップショットを簡単に作成したい場合は、「スナップショット」 で説明しているように、Red Hat では、この目的で Snapper の代わりに System Storage Manager を使用することをお勧めしています。
1 つのスナップショットを作成するには、以下を実行します。
# snapper -c config_name create -t single
たとえば、次のコマンドは、lvm_config 設定ファイルを使用して単一のスナップショットを作成します。
# snapper -c lvm_config create -t single
単一のスナップショットは変更を追跡するように特別に設計されていませんが、snapper diffxadiff、および status コマンドを使用して、任意の 2 つのスナップショットを比較できます。これらのコマンドの詳細は、「スナップショット間での変更の追跡」 を参照してください。

14.2.3. 自動スナップショットを作成するための Snapper の設定

自動スナップショットの作成は、Snapper の重要な機能の 1 つです。デフォルトでは、ボリュームに Snapper を設定すると、Snapper は 1 時間ごとのボリュームのスナップショットの作成を開始します。
デフォルト設定では、Snapper は以下を保持します。
  • 10 時間ごとのスナップショットと、最後の 1 時間ごとのスナップショットは、1 日単位のスナップショットとして保存されます。
  • 1 日単位 10 のスナップショットと、1 カ月の最後の 1 日単位のスナップショットは、月単位のスナップショットとして保存されます。
  • 月単位 10 のスナップショット、および最後の月単位のスナップショットは年単位のスナップショットとして保存されます。
  • 年単位 10 のスナップショット
デフォルトで、Snapper が保持するスナップショットは、合計 50 個以下であることに注意してください。ただし、Snapper は、デフォルトで 1,800 秒未満前に作成されたすべてのスナップショットを保持します。
デフォルトの設定は 、/etc/snapper/config-templates/default ファイルで指定されます。snapper create-config コマンドを使用して設定を作成すると、未指定の値はデフォルト設定に基づいて設定されます。/etc/snapper/configs/config_name ファイルで定義されているボリュームの設定を編集できます。