GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7上のext4を使用したLVMスナップショットに関するガイド

LVMは、ディスクドライブや同様の大容量記憶装置を管理するLinuxカーネルの論理ボリュームマネージャーです。これらの論理ボリュームは、異なる物理ハードディスクで構成できますが、ファイルシステムをインストールできる1つのパーティションとして表示されます。

LVMスナップショットは、ボリュームの完全バックアップとして使用できます。何か問題が発生した場合に、ボリューム全体を復元できます。 Centos 7リリースでは、スナップショットをより完璧にするために大きな変更が加えられました。論理ボリュームのスナップショットを使用すると、任意の論理ボリュームの現在の状態をフリーズできます。これは、スナップショットが作成されたときにボリュームにあったすべてのデータを表示する特殊なタイプのボリュームです。これは、バックアップを非常に簡単に作成し、必要に応じて元の論理ボリューム状態にロールバックできることを意味します。この方法は、仮想化を使用してすでに知っている方法と非常によく似ており、仮想マシン全体のスナップショットを取得して、問題が発生した場合に元に戻すことができます。

1。スナップショットの作成

スナップショットボリュームは、好きなだけ大きくても小さくてもかまいませんが、スナップショットの存続期間中に元のボリュームに発生する可能性のあるすべての変更を保持するのに十分な大きさである必要があります。

事前にLV情報を確認してください

新しいスナップショットを作成するには、スナップショットを作成する際に対応するVGとLVを指定する必要があります

# lvcreate --size 1G --snapshot --name nameofthesnapshot /dev/nameofVG/nameofLV

LVMスナップショットには、最初はデータが含まれていません。元のボリュームに加えた変更のみが保存されるため、スペースを大幅に節約できます。元のボリュームが変更されるとスナップショットのサイズが大きくなるため、lvsコマンドを使用してスナップショットボリュームの割合を定期的に監視し、いっぱいにならないようにすることが重要です。オリジンの変更されていない部分への書き込みはスナップショットを破損せずに成功できないため、100%いっぱいのスナップショットは完全に失われます。

スナップショットの容量が不足すると、スナップショット全体が削除され、使用できなくなります。ただし、スナップショットの容量が不足していることに気付いた場合(lvdisplayまたはlvsコマンドを使用してこれを確認してください)、他の論理ボリュームと同じようにサイズを増やすことができます。スナップショットを作成すると、次のようにlvdisplayコマンドの出力に表示されます。

2。 LVMスナップショットの使用

これで、lvmスナップショットを通常のパーティションとして使用でき、フォルダーにマウントして変更を加えることができます。変更に問題がなければ、変更を元のボリュームにマージできます。

マウントするには、フォルダを作成し、次のようなマウントコマンドを使用する必要があります。

# mkdir /mnt/snap1
# mount /dev/test/snap1 /mnt/snap1

これで、/mnt/snap1で好きなものをテストできます 元のシステムを変更せずにフォルダ。

ファイルシステムとしてXFSを使用している場合は、nouuidを追加する必要があります。 マウントコマンドのオプション

# mount /dev/test/snap1 /mnt/snap1 -o nouuid,ro

スナップショットをマウントすると、スナップショットが作成されたときに書き込まれたメタデータにより、ボリューム内の変更されたブロック(またはより高いレベルのスナップショット)にスナップショットプールブロックをマッピングできます。このようにして、特定のブロックへのアクセスが発生すると、LVMはどのブロックアクセスを認識します。そのボリューム上のファイルシステムに関する限り、スナップショットはありません。スナップショットを作成するとすぐに、LVMはブロックのプールを作成します。このプールには、ボリュームのLVMメタデータの完全なコピーも含まれています。 iノードの更新などでメインボリュームに書き込みが発生すると、上書きされるブロックがこの新しいプールにコピーされ、新しいブロックがメインボリュームに書き込まれます。これはコピーオンライトです。このため、スナップショットが作成されてからメインボリュームの現在の状態までの間に変更されるデータが多いほど、そのスナップショットプールによって消費されるスペースが多くなります。

3。スナップショットのバックアップを作成する

これで、作成したディスクまたはパーティションにスナップショットのバックアップを作成できます。ディスク、LUN、保存したいものは何でも選択できます。スナップショットは、元の論理ボリューム上のデータが変更された場合、またはスナップショットに自分で書き込む場合にのみ大きくなります(書き込みの側面については後で詳しく説明します)。したがって、スナップショットへの手動書き込みを今のところ忘れた場合、スナップショット内のデータは、スナップショットが作成されてから元のボリュームで変更された元のボリュームデータのチャンクのみです。

スナップショットを保存するには、定置が必要です。

# tar -pczf /media/backup/snap1.tar.gz /mnt/snap1

または使用できます

# dd if=/mnt/snap1 of=/media/backup/snap1.img

4。スナップショットをマージする

スナップショットを使用して元の論理ボリュームを元に戻すことができるのは、元のボリュームがまだ存在する場合のみです。したがって、スナップショットは素晴らしい機能ですが、すべての元のデータの完全なコピーを持つという従来の意味でのバックアップではありません。スナップショット時にデータの完全に独立した個別のコピーが必要な場合は、他のデバイスの場合と同じ方法でコピーを作成できます。 cpまたはddコマンドを使用します。

スナップショットに加えた変更に満足していて、それらを元のボリュームにマージしたい場合。元のボリュームとスナップショットのファイルシステムがアンマウントされると、マージはすぐに開始されます。

スナップショットから元のボリュームにデータをコピーする必要があるため、この操作には時間がかかる場合があります。マージが開始されるとすぐに、元のボリュームへの読み取り/書き込み操作は、マージ中のスナップショットに透過的にリダイレクトされます。したがって、操作は、マージされたボリュームを使用していると考えるユーザーに対して透過的です。これは、マージが開始されるとすぐに、ユーザーはスナップショットの作成時のデータ(+それ以降にスナップショットに書き込まれたデータ)を含むボリュームと対話することを意味します。

lvconvert --mergeを使用できます 以下の例のようなコマンド:

元のボリュームがマウントされている場合、変更を有効にするにはシステムを再起動する必要があります。これで、元の論理ボリュームがスナップショットの状態に戻され/マージされました。ボリュームの1つがマウントされている場合は、再起動が必要になることに注意してください

スナップショットを使用して元に戻す/マージすると、スナップショットはシステムから消えることに注意してください。

5。スナップショットを削除する

スナップショットに変更を加える必要がない場合、またはスナップショットを使用する必要がない場合は、スナップショットを削除することもできます。論理ボリュームが現在マウントされている場合は、ボリュームを削除する前にマウントを解除してください。さらに、クラスター環境では、論理ボリュームを削除する前に、論理ボリュームを非アクティブ化する必要があります。最終的にスナップショットに書き込まれたすべてのデータが失われます。

スナップショットを削除するには、次のコマンドを使用します。

lvremove /dev/test/snap1

ご覧のとおり、LVMスナップショットを使用することは、システムに対するさまざまな変更を完全に安全にテストおよび実験するための優れた方法です。

結論

論理ボリュームスナップショットの有用性は非常に高く、システム管理者であろうと開発者であろうと、タスクを確実に支援します。 LVMは、さらに拡張して多くの機能を備えた唯一のパーティション方式です。


Cent OS
  1. CentOS / RHEL :LVM で削除されたボリューム グループを復元/回復する方法

  2. CentOS/RHEL で関連付けられたスナップショットを使用して LVM ファイル システムを拡張できない

  3. CentOS / RHEL LVM :ボリューム グループ メタデータのバックアップ

  1. RHEL / CentOS :LVM ボリュームを縮小する方法

  2. CentOS / RHEL :pvmove コマンドを使用してストレージ (LVM) を移行する方法

  3. CentOS / RHEL :LVM ボリュームを削除する方法

  1. KVM 仮想マシンのクローンに LVM スナップショットを使用する

  2. LVM スナップショットをバックアップ サーバーに同期する

  3. LVM を使用して EXT4 ボリュームをオンラインで縮小することはできますか?