ウェブサイト検索

LVMにおける「論理ボリュームのスナップショットを取得し、復元する方法」- 第III部


LVMスナップショットは、lvmボリュームの時点コピーの中でスペース効率の良いものです。これはlvmでのみ機能し、ソース論理ボリュームからスナップショットボリュームに変更が加えられたときにのみスペースを消費します。ソースボリュームに1GBの合計で大きな変更が加えられた場合、同じ変更がスナップショットボリュームにも加えられます。スペース効率を考えると、常に変更の量は小さい方が良いです。スナップショットのストレージが不足した場合、lvextendを使用して容量を増やすことができます。また、スナップショットを縮小する必要がある場合は、lvreduceを使用できます。

スナップショットを作成した後に、誤ってファイルを削除してしまった場合でも心配する必要はありません。スナップショットには削除した元のファイルが含まれています。スナップショットが作成されたときにそのファイルが存在していた可能性があります。スナップショットボリュームを変更せず、スナップショットを使用して迅速に復旧する間はそのままにしておいてください。

スナップショットはバックアップオプションとして使用できません。バックアップは一部のデータの主要コピーであるため、スナップショットをバックアップオプションとして使用することはできません。

要件

  1. LinuxでLVMを使用してディスクストレージを作成する - パート1
  2. LinuxにおけるLVMの拡張/縮小方法 - パートII
私のサーバー設定
  1. オペレーティングシステム – LVM インストール付き CentOS 6.5
  2. サーバーIP – 192.168.0.200

ステップ1:LVMスナップショットの作成

まず、以下の「vgs」コマンドを使用して、新しいスナップショットを作成するためのボリュームグループの空きスペースを確認してください。

# vgs
lvs

ご覧の通り、上記のvgs出力には8GBの空き容量があります。そこで、私のボリュームtecmint_datasのスナップショットを作成しましょう。デモンストレーションの目的で、以下のコマンドを使用して1GBのスナップショットボリュームを1つだけ作成する予定です。

# 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

上記の2つのコマンドは同じことを行います:

  1. -s – スナップショットを作成します
  2. -n – スナップショットの名前

ここでは、上記の各ポイントの説明があります。

  1. ここで作成しているスナップショットのサイズ。
  2. スナップショットを作成します。
  3. スナップショットの名前を作成します。
  4. 新しいスナップショットの名前。
  5. 私たちがスナップショットを作成する予定のボリューム。

スナップショットを削除したい場合は、'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

もう一度、上の画像で強調された各ポイントについての明確な説明を示します。

  1. スナップショット論理ボリュームの名前。
  2. 現在使用中のボリュームグループ名。
  3. スナップショットボリュームは読み書きモードで使用でき、ボリュームをマウントして使用することもできます。
  4. スナップショットが作成された時点。この時点は非常に重要です。なぜなら、スナップショットはこの時点以降のすべての変更を探すからです。
  5. このスナップショットは tecmint_datas 論理ボリュームに属しています。
  6. 論理ボリュームはオンラインで使用可能です。
  7. スナップショットを撮ったソースボリュームのサイズ。
  8. Cow-テーブルサイズ=コピーオンライト。これは、tecmint_dataボリュームに加えられた変更がこのスナップショットに書き込まれることを意味します。
  9. 現在、使用されているスナップショットサイズは、私たちの tecmint_datas が 10G ですが、スナップショットサイズは 1GB であり、これは私たちのファイルが約 650 MB であることを意味します。では、ファイルが 2GB のサイズに成長する場合、tecmint_datas のサイズは割り当てられたスナップショットサイズよりも増加し、確かにスナップショットに問題が生じるでしょう。つまり、論理ボリューム(スナップショットボリューム)のサイズを拡張する必要があります。
  10. スナップショットのチャンクのサイズを提供します。

さて、tecmint_datas内の1GB以上のファイルをコピーしてみましょう。何が起こるのか見てみましょう。もしそうすると、‘入出力エラー‘というエラーメッセージが表示されます。これは、スナップショットが空であることを意味します。

論理ボリュームが満杯になると、自動的に削除され、スナップショットボリュームのサイズを拡張しても使用できなくなります。スナップショットを作成する際は、元のサイズと同じサイズにするのが最善です。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

autoextendという単語を検索します。デフォルトでは、値は以下に似ています。

ここで100を75に変更してください。自動延長のしきい値が75で、自動延長のパーセンテージが20の場合、サイズは20パーセント拡張されます。

スナップショットボリュームが75%に達すると、スナップボリュームのサイズがさらに20%自動的に拡張されます。したがって、自動的に拡張できます。ファイルを保存して終了するにはwq!を使用します。

これはオーバーフロードロップからスナップショットを保存します。これにより、より多くの時間を節約するのにも役立ちます。LVMは拡張が可能で、スラブプロビジョニング、ストライピング、仮想ボリュームなどの多くの機能を持つ唯一のパーティション方式です。薄いプールを使用して、次のトピックでそれらを見てみましょう。

関連記事: