「LVMを使ってスナップショット」の版間の差分

提供:UnixClassWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の10版が非表示)
2行目: 2行目:


LVMを使ってスナップショットを取る方法を説明します。ここでは以下の説明をします。
LVMを使ってスナップショットを取る方法を説明します。ここでは以下の説明をします。


# スナップショット用LVの作成
# スナップショット用LVの作成
16行目: 17行目:
ここではlv_rootのスナップショットを取る方法を説明します。lv_rootは次のようになっています。
ここではlv_rootのスナップショットを取る方法を説明します。lv_rootは次のようになっています。


<tt>
 
<pre class="bash">
  # lvscan
  # lvscan
   ACTIVE            '/dev/vg_c0/lv_root' [7.74 GiB] inherit
   ACTIVE            '/dev/vg_c0/lv_root' [7.74 GiB] inherit
27行目: 29行目:
   ...  
   ...  
   LV Size                7.74 GiB
   LV Size                7.74 GiB
</tt>
</pre>
 
 


=== スナップショット用LVを作成 ===  
=== スナップショット用LVを作成 ===  
35行目: 35行目:
現在のVGのFree PEを確認します。
現在のVGのFree PEを確認します。


<tt>
 
<pre class="bash">
  # vgdisplay
  # vgdisplay
   --- Volume group ---
   --- Volume group ---
46行目: 47行目:
   Free  PE / Size      82 / 328.00 MiB
   Free  PE / Size      82 / 328.00 MiB
  ...
  ...
</tt>
</pre>
 


PE量で82、サイズで328MiBが利用可能なので、それを全て使いスナップショット用のLVを作成します。
PE量で82、サイズで328MiBが利用可能なので、それを全て使いスナップショット用のLVを作成します。


<tt>
 
<pre class="bash">
  # lvcreate -s -l +82 -n lv_root_snap /dev/vg_c0/lv_root
  # lvcreate -s -l +82 -n lv_root_snap /dev/vg_c0/lv_root
  Logical volume "lv_root_snap" created
  Logical volume "lv_root_snap" created
</tt>
</pre>
 


/dev/vg_c0/lv_root_snap が /dev/vg_c0/lv_root のスナップショットとなります。
/dev/vg_c0/lv_root_snap が /dev/vg_c0/lv_root のスナップショットとなります。
その時点から、328MiB分の領域を使い切るまでは追加する(正確には領域を使い切るまで)ことが可能です。
その時点から、328MiB分の領域を使い切るまでは追加する(正確には領域を使い切るまで)ことが可能です。


<tt>
 
<pre class="bash">
  # lvscan
  # lvscan
   ACTIVE  Original '/dev/vg_c0/lv_root' [7.74 GiB] inherit
   ACTIVE  Original '/dev/vg_c0/lv_root' [7.74 GiB] inherit
   ACTIVE  Snapshot '/dev/vg_c0/lv_root_snap' [328.00 MiB] inherit
   ACTIVE  Snapshot '/dev/vg_c0/lv_root_snap' [328.00 MiB] inherit
</tt>
</pre>
 
 


=== バックアップ ===  
=== バックアップ ===  
71行目: 74行目:
そのような時に、スナップショットを使えば、そのスナップショットを作った時のLVの状態がダンプできます。
そのような時に、スナップショットを使えば、そのスナップショットを作った時のLVの状態がダンプできます。


<tt>
 
# dump -0 -f /backup/lv_root_snap.dump /dev/vg_c0/lv_root_snap
<pre class="bash">
</tt>
# dump -0 -f /backup/lv_root_snap.dump /dev/vg_c0/lv_root_snap
</pre>
 


ファイルシステムとしてマウントすることも可能です。この時、読み書き可能としてマウントしてしまうと領域の破壊が発生するので必ずリードオンリーでマウントして下さい。
ファイルシステムとしてマウントすることも可能です。この時、読み書き可能としてマウントしてしまうと領域の破壊が発生するので必ずリードオンリーでマウントして下さい。


<tt>
 
# mkdir /mnt/lv_root_snap/
<pre class="bash">
  # mount -o ro /dev/vg_c0/lv_root /mnt/lv_root_snap/
# mkdir /mnt/lv_root_snap/
  # mount -o ro /dev/vg_c0/lv_root_snap /mnt/lv_root_snap/
  # df
  # df
  Filesystem          1K-blocks      Used Available Use% Mounted on
  Filesystem          1K-blocks      Used Available Use% Mounted on
85行目: 91行目:
                       7992464  2148300  5444540  29% /
                       7992464  2148300  5444540  29% /
  ....
  ....
/dev/mapper/vg_c0-lv_root_snap
/dev/mapper/vg_c0-lv_root_snap
                       7992464  2129188  5463652  29% /mnt/lv_root_snap
                       7992464  2129188  5463652  29% /mnt/lv_root_snap
</tt>
</pre>
 
 


=== LVの開放 ===
=== LVの開放 ===


スナップショット用に作ったLVの容量を越えてしまうと、オリジナルの領域に書き込みも含め無効(inactive)になり、以降、エラーになります。
スナップショット用に作ったLVの容量を越えてしまうと、オリジナルの領域に書き込みも含め無効(inactive)になり、以降、エラーになります。
ですから、スナップショット作業が済んだならば、スナップショット領域を開放しておかなければなりません。


ですから、スナップショット作業が住んだならば、スナップショット領域を開放しておかなければなりません。


<tt>
<pre class="bash">
  # lvremove /dev/vg_c0/lv_root
  # lvremove /dev/vg_c0/lv_root_snap
  Do you really want to remove active logical volume lv_root_snap? [y/n]: y<RET>
  Do you really want to remove active logical volume lv_root_snap? [y/n]: y<RET>
   Logical volume "lv_root_snap" successfully removed
   Logical volume "lv_root_snap" successfully removed
   Logical volume vg_c0/lv_root contains a filesystem in use.
   Logical volume vg_c0/lv_root contains a filesystem in use.
</tt>
</pre>


== 脚注 ==
<references/>


----
----
[[目次]]へ
[[目次]]へ
このページへのショートURL:
http://uc2.h2np.net/i/51.html

2015年7月27日 (月) 17:28時点における最新版

LVM スナップショット

LVMを使ってスナップショットを取る方法を説明します。ここでは以下の説明をします。


  1. スナップショット用LVの作成
  2. dumpを使ってのスナップショットのバックアップ
  3. スナップショットのファイルシステムのマウント


ここでのスナップショットとは、それまでのLVのイメージを保持しつつ、LV自体はそのまま読み書きできる状態にしておくことによってバックアップなどを取ることが可能になる機能です。


現在のLVの状態の確認

ここではlv_rootのスナップショットを取る方法を説明します。lv_rootは次のようになっています。


 # lvscan
  ACTIVE            '/dev/vg_c0/lv_root' [7.74 GiB] inherit
  ...
 # lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_c0/lv_root
  LV Name                lv_root
  VG Name                vg_c0
  ... 
  LV Size                7.74 GiB

スナップショット用LVを作成

現在のVGのFree PEを確認します。


 # vgdisplay
  --- Volume group ---
  VG Name               vg_c0
  ...
  VG Size               12.00 GiB
  PE Size               4.00 MiB
  Total PE              3072
  Alloc PE / Size       2990 / 11.68 GiB
  Free  PE / Size       82 / 328.00 MiB
 ...


PE量で82、サイズで328MiBが利用可能なので、それを全て使いスナップショット用のLVを作成します。


 # lvcreate -s -l +82 -n lv_root_snap /dev/vg_c0/lv_root
 Logical volume "lv_root_snap" created


/dev/vg_c0/lv_root_snap が /dev/vg_c0/lv_root のスナップショットとなります。 その時点から、328MiB分の領域を使い切るまでは追加する(正確には領域を使い切るまで)ことが可能です。


 # lvscan
  ACTIVE   Original '/dev/vg_c0/lv_root' [7.74 GiB] inherit
  ACTIVE   Snapshot '/dev/vg_c0/lv_root_snap' [328.00 MiB] inherit

バックアップ

たとえばdumpコマンドではブロックデバイスをバックアップ中に、その内容が書き換わるとうまくバックアップできません。 そのような時に、スナップショットを使えば、そのスナップショットを作った時のLVの状態がダンプできます。


# dump -0 -f /backup/lv_root_snap.dump /dev/vg_c0/lv_root_snap


ファイルシステムとしてマウントすることも可能です。この時、読み書き可能としてマウントしてしまうと領域の破壊が発生するので必ずリードオンリーでマウントして下さい。


# mkdir /mnt/lv_root_snap/
 # mount -o ro /dev/vg_c0/lv_root_snap /mnt/lv_root_snap/
 # df
 Filesystem           1K-blocks      Used Available Use% Mounted on
 /dev/mapper/vg_c0-lv_root
                       7992464   2148300   5444540  29% /
 ....
 /dev/mapper/vg_c0-lv_root_snap
                       7992464   2129188   5463652  29% /mnt/lv_root_snap

LVの開放

スナップショット用に作ったLVの容量を越えてしまうと、オリジナルの領域に書き込みも含め無効(inactive)になり、以降、エラーになります。 ですから、スナップショット作業が済んだならば、スナップショット領域を開放しておかなければなりません。


 # lvremove /dev/vg_c0/lv_root_snap
 Do you really want to remove active logical volume lv_root_snap? [y/n]: y<RET>
  Logical volume "lv_root_snap" successfully removed
  Logical volume vg_c0/lv_root contains a filesystem in use.

脚注



目次


このページへのショートURL: http://uc2.h2np.net/i/51.html