LVM で「論理ボリュームのスナップショットを作成して復元」する方法 - パート III
LVM スナップショットは、LVM ボリュームのスペース効率の高いポイントインタイム コピーです。これは lvm でのみ機能し、ソース論理ボリュームからスナップショット ボリュームへの変更が行われた場合にのみスペースを消費します。ソース ボリュームに合計 1 GB の大きな変更が加えられた場合、同じ変更がスナップショット ボリュームにも加えられます。スペース効率を高めるために、常に小さいサイズの変更を行うことが最善です。スナップショットのストレージが不足した場合は、lvextend を使用して拡張できます。スナップショットを縮小する必要がある場合は、lvreduce を使用できます。
スナップショットの作成後に誤ってファイルを削除してしまった場合でも、スナップショットには削除した元のファイルが含まれているため、心配する必要はありません。スナップショットの作成時にファイルが存在していた可能性があります。スナップショットが高速リカバリを実行するために使用される間は、スナップショット ボリュームを変更せず、そのままにしておきます。
スナップショットはバックアップ オプションとして使用できません。バックアップは一部のデータのプライマリ コピーであるため、バックアップ オプションとしてスナップショットを使用することはできません。
要件
- Linux で LVM を使用してディスク ストレージを作成する – パート 1
- Linux で LVM を拡張/縮小する方法 – パート II
私のサーバーのセットアップ
- オペレーティング システム – CentOS 6.5 (LVM インストールあり)
- サーバーIP – 192.168.0.200
ステップ 1: LVM スナップショットの作成
まず、次の「vgs」コマンドを使用して、ボリューム グループの空き領域を確認し、新しいスナップショットを作成します。
vgs
lvs
上記の vgs 出力には 8 GB の空き領域が残っています。それでは、tecmint_datas という名前のボリュームの 1 つのスナップショットを作成しましょう。デモの目的で、次のコマンドを使用して 1 GB のスナップショット ボリュームのみを作成します。
lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
OR
lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
上記のコマンドはどちらも同じことを行います。
- -s – スナップショットを作成します
- -n – スナップショットの名前
ここでは、上記で強調した各ポイントについて説明します。
- ここで作成するスナップショットのサイズ。
- スナップショットを作成します。
- スナップショットの名前を作成します。
- 新しいスナップショットの名前。
- スナップショットを作成するボリューム。
スナップショットを削除したい場合は、「lvremove」コマンドを使用できます。
# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap
ここで、次のコマンドを使用して、新しく作成されたスナップショットを一覧表示します。
lvs
上のように、スナップショットが正常に作成されました。スナップショットの作成元である tecmint_datas を矢印でマークしました。はい、tecmint_datas l-volume のスナップショットを作成したためです。
新しいファイルを tecmint_datas に追加しましょう。現在、ボリュームには約 650MB のデータがあり、スナップショットのサイズは 1GB です。したがって、スナップ ボリュームの変更をバックアップするのに十分なスペースがあります。ここでは、以下のコマンドを使用してスナップショットのステータスを確認できます。
lvs
スナップショット ボリュームの 51% が現在使用されており、ファイルをさらに変更しても問題ありません。詳細については、コマンドを使用してください。
lvdisplay vg_tecmint_extra/tecmint_data_snap
繰り返しになりますが、上の図で強調表示されている各ポイントについて明確に説明します。
- スナップショット論理ボリュームの名前。
- 現在使用中のボリュームグループ名。
- 読み取りおよび書き込みモードのスナップショット ボリューム。ボリュームをマウントして使用することもできます。
- スナップショットが作成された時刻。この時間以降、スナップショットではすべての変更が検索されるため、これは非常に重要です。
- このスナップショットは、tecmint_datas 論理ボリュームに属します。
- 論理ボリュームはオンラインであり、使用できます。
- スナップショットを作成したソース ボリュームのサイズ。
- Cow-table サイズ=書き込み時のコピー。これは、tecmint_data ボリュームに加えられた変更がすべてこのスナップショットに書き込まれることを意味します。
- 現在使用されているスナップショット サイズは、tecmint_datas が 10G でしたが、スナップショット サイズは 1GB でした。これは、ファイルが約 650 MB であることを意味します。したがって、現在 51% であるファイルが tecmint_datas のサイズで 2 GB に増加すると、スナップショットに割り当てられたサイズよりも大きくなり、スナップショットで問題が発生することは確実です。つまり、論理ボリューム (スナップショット ボリューム) のサイズを拡張する必要があります。
- スナップショットのチャンクのサイズを指定します。
ここで、1GB を超えるファイルを tecmint_datas にコピーして、何が起こるかを見てみましょう。実行すると、「入力/出力エラー」というエラー メッセージが表示されます。これは、スナップショットのスペースが不足していることを意味します。
論理ボリュームがいっぱいになると、スナップショット ボリュームのサイズを拡張したとしても、論理ボリュームは自動的に削除され、使用できなくなります。スナップショットの作成時にソースと同じサイズにするのが最善のアイデアです。tecmint_datas のサイズは 10G でした。10GB のスナップショット サイズを作成した場合、必要な十分なスペースがあるため、上記のようにオーバーフローすることはありません。ボリュームのスナップ。
ステップ 2: LVM でスナップショットを拡張する
オーバーフローする前にスナップショットのサイズを拡張する必要がある場合は、を使用して拡張できます。
lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap
スナップショットのサイズは合計 2GB になりました。
次に、次のコマンドを使用して、新しいサイズと COW テーブルを確認します。
lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap
スナップ ボリュームのサイズと使用率 % を確認します。
lvs
ただし、ソース ボリュームと同じサイズのスナップショット ボリュームがある場合は、これらの問題を心配する必要はありません。
ステップ 3: スナップショットの復元またはマージ
スナップショットを復元するには、まずファイル システムをアンマウントする必要があります。
unmount /mnt/tecmint_datas/
マウントポイントがアンマウントされているかどうかを確認するだけです。
df -h
ここではマウントがアンマウントされているため、スナップショットの復元を続行できます。スナップを復元するには、lvconvert コマンドを使用します。
lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap
マージが完了すると、スナップショット ボリュームは自動的に削除されます。これで、df コマンドを使用してパーティションのスペースを確認できるようになりました。
df -Th
スナップショット ボリュームが自動的に削除された後。論理ボリュームのサイズが確認できます。
lvs
重要: スナップショットを自動的に拡張するには、conf ファイルにいくつかの変更を加えます。手動の場合は、lvextend を使用して拡張できます。
選択したエディタを使用して LVM 構成ファイルを開きます。
vim /etc/lvm/lvm.conf
「自動拡張」という単語を検索します。デフォルトでは、値は次のようになります。
ここで 100 を 75 に変更します。その場合、自動延長のしきい値は 75 になり、自動延長のパーセントは 20 になります。 、サイズが 20 パーセント拡大されます。
スナップショット ボリュームが 75% に達すると、スナップ ボリュームのサイズが自動的にさらに 20% 拡張されます。したがって、自動的に拡張できます。 wq! を使用してファイルを保存して終了します。
これにより、スナップショットがオーバーフロー ドロップから保存されます。これにより、さらに時間を節約することもできます。 LVM は、さらに拡張でき、シン プロビジョニング、ストライピング、仮想ボリュームなどの多くの機能を備えた唯一のパーティション メソッドです。シン プールの使用方法については、次のトピックで見てみましょう。