GNU/Linux >> Linux の 問題 >  >> Linux

snapper コマンドを使用して LVM シン ボリュームのスナップショットを作成する方法

Snapper は Linux のコマンドライン ユーティリティで、LVM シン ボリュームのスナップショットを作成および管理するために使用されます。スナップショットを作成、削除、比較し、スナップショット間で行われた変更を元に戻すことができます。また、Snapper を使用すると、Btrfs のスナップショットを簡単に作成および管理できます。

スナッパーのインストール

yum コマンドを使用して、snapper ソフトウェア パッケージをインストールします。

# yum install snapper
...
Transaction Summary ============================================================= 
Install 1 Package (+3 Dependent packages)
Total download size: 499 k Installed size: 1.5 M
Is this ok [y/d/N]: y
...
Complete!

rpm –ql コマンドを使用して、snapper パッケージによって提供されるファイルを表示します。

# rpm –ql snapper
/etc/cron.daily/snapper 
/etc/cron.hourly/snapper 
/etc/dbus-1/system.d/org.opensus.Snapper.conf 
/etc/logrotate.d/snapper
/usr/bin/snapper
/usr/sbin/snapperd /usr/share/dbus-1/system-services/org.opensus.Snapper.service 
...
2 つの cron snapper ファイルに注意してください。
– デフォルトでは、snapper は cron.hourly を設定します。 .snapshots にスナップショットを作成するジョブ ボリュームのサブディレクトリと cron.daily 古いスナップショットをクリーンアップするジョブ。
– 構成ファイルを編集して、この動作を無効にしたり変更したりできます。

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

lvcreate コマンドを使用して、thinvol1 という名前のシン プロビジョニング ボリュームを作成します。 snapper コマンドを使用してスナップショットを作成する前に、このボリュームをマウントする必要があることに注意してください。

# vgs
VG      #PV #LV  #SN  Attr     VSize      VFree
myvolg  1    0    0   wz--n-   1020.00m   1020.00m

シン プールを作成します:

# lvcreate –v –L 100m –T myvolg/mythinpool 
...
  Logical volume “mythinpool” created

シン プロビジョニング ボリュームの作成:

# lvcreate –v –V 200m –T myvolg/mythinpool –n thinvol1 
...
  Logical volume “thinvol1” created

シン ボリュームにファイル システムを作成します。

# mkfs.ext4 /dev/myvolg/thinvol1
...
Writing superblocks and filesystem accounting information: done

ファイルシステムをマウントします:

# mkdir /myvol1
# mount /dev/myvolg/thinvol1 /myvol1

2. Snapper 構成ファイルの作成

Snapper を使用してスナップショットを作成するには、LVM シン ボリュームまたは Btrfs サブボリューム用の構成ファイルが必要です。 LVM および Btrfs ボリュームには、マウントされたファイル システムも必要です。構成ファイルを作成するには、create-config コマンドを使用します。次の例では、/myvol1 にマウントされた LVM ext4 ファイル システム用に myvol_snap という名前の構成ファイルを作成します。

# snapper –c myvol1_snap create-config –f "lvm(ext4)" /myvol1

– このコマンドは、/etc/sysconfig/snapper にエントリを追加します。
– このコマンドは、/etc/snapper/configs/myvol1_snap 構成ファイルを作成します。
– このコマンドは、/myvol1 に .snapshots ディレクトリを作成します。ディレクトリ。

# cat /etc/sysconfig/snapper 
... 
SNAPPER_CONFIGS=”myvol1_snap”
# cat /etc/snapper/configs/myvol1_snap ...
# subvolume to snapshot SUBVOLUME=”/myvol1”
# filesystem type
FSTYPE=”lvm(ext4)”
...
# start comparing pre- and post-snapshot in background after... BACKGROUND_COMPARISON=”yes”
# run daily number cleanup
NUMBER_CLEANUP=”yes”
...
# create hourly snapshots
TIMELINE_CREATE=”yes”
# cleanup hourly snapshots after some time
TIMELINE_CLEANUP=”yes”
...
# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP=”yes”
...

/myvol1 ファイル システムのスナップショットは、.snapshots サブディレクトリに保存されます。

# ls –la /myvol1
...
drwxr-x--- ... .snapshots
...

スナップショットの種類

snapper を使用して作成できるスナップショットには、次の 3 種類があります。
前: 変更前のボリュームの状態を記録するために使用します。事前スナップショットには、常に対応する事後スナップショットが必要です。
post: 変更後のボリュームの状態を記録するために使用します。
単一: これらのスナップショットは、他のスナップショットと特別な関係はありません。

3.スナップショットを作成しています

/myvol1 ディレクトリにテスト ファイルを作成します。

# echo "This is a test file" > /myvol1/test_file

snapper create -t​​ pre を使用して、myvol1_snap で定義されたボリュームの事前スナップショットを作成します 構成ファイル。 –p オプションを含めて、作成中のスナップショットの番号を表示します。 (この例では、事前スナップショット番号は 1 です)

# snapper –c myvol1_snap create –t pre –p
1

スナップショットは、ボリュームの .snapshots サブディレクトリにスナップショット番号ごとに保存されます。 /myvol1/.snapshots ディレクトリの内容を表示します。

# ls –l /myvol1/.snapshots 
...
drwxr-xr-x ... 1

/myvol1/.snapshots/1 ディレクトリの内容を表示します。

# ls –l /myvol1/.snapshots/1 
...
-rw-------    ...     info.xml 
drwxr-x---    ...     snapshot

test_file を削除して、/myvol1 ディレクトリの内容を変更します。

# rm /myvol1/test_file

snapper create -t​​ post を使用して、myvol1_snap 構成ファイルで定義されたボリュームのポスト スナップショットを作成します。 –pre-num 1 オプションを含めて、このポスト スナップショットをプレ スナップショット 1 に関連付けます。–p オプションを含めて、作成中のスナップショットの番号を表示します。

# snapper –c myvol1_snap create –t post --pre-num 1 –p 
2

.snapshots ディレクトリに作成された新しいディレクトリ名 2 が表示されます。

# ls –l /myvol1/.snapshots/2 
...
-rw------- ... filelist-1.txt 
-rw------- ... info.xml 
drwxr-x--- ... snapshot

filelist-1.txt には、プレ スナップショットの後、ポスト スナップショットの前に削除されたファイルが含まれています。

# cat /myvol1/.snapshots/2/filelist-1.txt 
-..... /test_file

前後のスナップショットの比較

snapper status コマンドを使用して、プレ スナップショット 1 とポスト スナップショット 2 の間に追加、削除、または変更されたファイルとディレクトリを表示します。

# snapper –c myvol1_snap status 1..2
-..... /test_file

snapper diff コマンドを使用して、プレ スナップショット 1 とポスト スナップショット 2 のファイルの内容の違いを表示します。

# snapper –c myvol1_snap diff 1..2
Binary files /myvol1/.snapshots/1/snapshot/test_file and /myvol1/.snapshots/2/snapshot/test_file differ

snapper list コマンドを使用して、myvol1_snap 構成ファイルで定義されたボリュームに存在するスナップショットを一覧表示します。

# snapper –c myvol1_snap list
Type  | # | Pre # | Date | User | Cleanup |Description| Userdata
------+---+-------+------+------+---------+------------+--------
single| 0 |       | ...  | root |         |  Current  |
pre   | 1 |       | ...  | root |         |	      |
post  | 2 |   1   | ...  | root |         |           |

ポスト スナップショットからプレ シャンショットへの変更を元に戻す

ポスト スナップショットからプレ スナップショットへの変更を元に戻すには、つまり、test_file を復元するには、snapper undochange を使用します コマンド。

# snapper –c myvol1_snap undochange 1..2 
create:1 modify:0 delete:0

確認

# ls /myvol1
lost+found
test_file


Linux
  1. Linuxコマンドのスクリプトを作成する方法

  2. diff および apply コマンドを使用して GIT でパッチを作成および適用する方法

  3. Linux で Snapper コマンドを使用してファイルシステムのスナップショットを作成する方法

  1. コマンドラインを使用してMySQLでデータベースを作成する方法

  2. ddコマンドを使用して起動可能なUSBドライブを作成する方法

  3. 「dd」コマンドを使用して Linux でスパース ファイルを作成する方法

  1. ターミナル/コマンドラインを使用してLinuxでファイルを作成する方法

  2. LVMを使用してLinuxで物理ボリュームを作成する方法

  3. これが LVM スナップショットの仕組みですか?