テクニカルニュース

新機能

【2012年7月】LVM の Thin Provisioning 型 LV とスナップショット利用

ここに掲載するコンテンツはレッドハット社の許諾を得て、レッドハット・テクニカルニュースメールのバックナンバーを公開しています。

当コンテンツのレッドハット社メール配信:2012年7月


【2】LVM の Thin Provisioning 型 LV とスナップショット利用

Linux Kernel 3.2 で Device Mapper の Thin Provisioning が導入されましたが、Red Hat Enterprise Linux 6.3 では Technology Preview として、その機能がバックポートされており、いちはやく試すことができます。

この Technology Preview では、実際のディスク容量以上の大きさを持った LV の作成や、再帰的な複数レベルのスナップショットの作成機能が提供されます。

これにより、仮想マシンのディスクイメージを直接 LV にした際においても、qcow2 で提供されている差分スナップショットや、実ディスク容量以上の大きさのディスクを仮想マシンに与える事が可能となります。


[導入準備]

まず、確実に Red Hat Enterprise Linux 6.3 をインストールされていることを確認してください。6.2 など、以前のバージョンではこの機能を試すことはできません。


次に device-mapper-persistent-data パッケージをインストールします。

# yum install device-mapper-persistent-data

device-mapper-persistent-data パッケージには Device Mapper から Thin Provisioning の領域を利用するためのツールが含まれています。


[Thin Provisioning 利用例]

今回は例として、sdb1 に新規に PV から作成しました。

# pvcreate /dev/sdb1
  Writing physical volume data to disk "/dev/sdb1"
  Physical volume "/dev/sdb1" successfully created

"VGtest" という名前で VG を作成します。

# vgcreate VGtest /dev/sdb1
  Volume group "VGtest" successfully created

"thinpool" という名前の Thin Pool タイプの LV を作成します。

# lvcreate -L 10G -T VGtest/thinpool
  WARNING: Thin types are considered Tech Preview.
  For more information on Tech Preview features, visit:
  https://access.redhat.com/support/offerings/techpreview/
  Rounding up size to full physical extent 12.00 MiB
  Logical volume "thinpool" created

Thin タイプの LV は、まだプレビュー段階である旨の警告が表示されます。


次に VGtest/thinpool 上に Thin Provisioning で 100G の LV test1 を作成します。

# lvcreate -V 100G --thinpool VGtest/thinpool -n test1
  WARNING: Thin types are considered Tech Preview.
  For more information on Tech Preview features, visit:
  https://access.redhat.com/support/offerings/techpreview/
  Logical volume "test1" created

作成できた LV を確認します。
# lvs VGtest
  LV       VG     Attr     LSize   Pool     Origin Data%  Move Log
Copy%  Convert
  test1    VGtest Vwi-a-tz 100.00g thinpool          0.00
  thinpool VGtest twi-a-tz  10.00g                   0.00

# lvscan
  ACTIVE            '/dev/VGtest/thinpool' [10.00 GiB] inherit
  ACTIVE            '/dev/VGtest/test1' [100.00 GiB] inherit
  ~~ 中略 ~~

# lvdisplay  VGtest
  --- Logical volume ---
  LV Name                thinpool
  VG Name                VGtest
  ~~ 中略 ~~
  LV Size                10.00 GiB
  Allocated pool data    0.00%
  Allocated metadata     0.65%
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5

  --- Logical volume ---
  LV Path                /dev/VGtest/test1
  LV Name                test1
  VG Name                VGtest
  ~~ 中略 ~~
  LV Size                100.00 GiB
  Mapped size            0.00%
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:6

lvdisplay で表示される Mapped size や Allocated pool data, Allocated metadata から実際の利用率がわかります。


また、lvscan で表示される /dev/VGtest/test1 がボリュームへのアクセスパスであり、仮想マシンにアタッチする場合、仮想マシンのディスクのセクションの設定例は以下のようになります。

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/VGtest/test1'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

スナップショットを作成する場合、以下のコマンドで作成できます。この作業は仮想マシンがオンラインであっても可能です。

※ ただし、オンラインで作成したスナップショットを起動した場合、正常なシャットダウンをせず電源を落とした状態からの起動と同じ扱いになるため注意が必要となります。


test1 のスナップショット test1_snap を作成します。

# lvcreate -s VGtest/test1 -n test1_snap
  WARNING: Thin types are considered Tech Preview.
  For more information on Tech Preview features, visit:
  https://access.redhat.com/support/offerings/techpreview/
  Logical volume "test1_snap" created

このように LVM の Thin Provisioning 型 LV とスナップショットを活用することで、より柔軟な仮想マシンの管理が可能です。

詳細に関しては lvcreate の man ページや、同 man ページ内 -s/--snapshot オプションに関する項目、kernel-doc パッケージに付属するドキュメントをご確認ください。


例: kernel-doc パッケージ内ドキュメント

/usr/share/doc/kernel-doc-2.6.32/Documentation/device-mapper/persistent-data.txt
/usr/share/doc/kernel-doc-2.6.32/Documentation/device-mapper/thin-provisioning.txt

なお、繰り返しとなりますが、この機能は現在 Technology Preview のステータスとなっております。サーポート範囲については下記 URL をご確認ください。


ページトップへ戻る

Red Hatトップへ戻る