Lvm thin povisioning
Click here to load reader
-
Upload
kazuo-moriwaka -
Category
Technology
-
view
1.724 -
download
1
description
Transcript of Lvm thin povisioning
RHEL6.3にTech Previewで含まれるLVM thin provisioningがきになる
RHEL6.3 beta release note
● Thin-provisioning and scalable snapshot capabilities
● The dm-thinp targets, thin and thin-pool, provide a device mapper device with thin-provisioning and scalable snapshot capabilities. This feature is available as a Technology Preview.
LVM support for (non-clustered) thinp snapshots
● A new implementation of LVM copy-on-write (cow) snapshots is available in Red Hat Enterprise Linux 6.3 as a Technology Preview. The main advantage of this implementation, compared to the previous implementation of snapshots, is that it allows many virtual devices to be stored on the same data volume. This implementation also provides support for arbitrary depth of recursive snapshots (snapshots of snapshots of snapshots …).
複数レベルスナップショットの用途
● 仮想ディスクイメージについて– ちょっと作業したイメージ
– そのちょっと後のイメージ
– さらになんか作業したあとのイメージ……
とスナップショットを作りまくる運用
● VMware(VMFSで実装)とかVirtualBox(独自差分イメージ管理で実装)では普通の運用
● qcow2で実現可能だけどちょい遅いので微妙
qcow2の微妙なところ
● ファイルシステム上にある– ちょっとコストが高い
– 更新日時とかのメタデータは不要
● 細かいレベルでのフラグメンテーションの懸念
– 最悪ケースでは4kB毎にフラグメント
– 最大2MB毎にクラスタを確保できるので以前より改善された
● フォーマットの制限– スナップショットを破棄しても確保したブロックは開放しない
LVM thin provision >> qcow2
● ファイルシステムがいらない– 低コストを期待
● フラグメンテーションのコスト緩和
– 1MB単位などで実装できるため最悪ケースでもフラグメントの影響が緩和
● ブロック開放
– 参照カウントによるpool device上のextent開放
LVM thin provisioningイメージ図
LV LV
btree btree
space-map
pool device
pool device上のextentについての参照カウントの管理
書き込みがあって参照カウントがあったら新ブロックを確保
LVのextentとpool deviceのextentの対応表
thinpool タイプのLV
コマンド例
● pvcreate /dev/sdb1
● vgcreate VGthin /dev/sdb1
● lvcreate -L 1G -T VGthin/thinpool
– thinpoolとよばれるthin poolタイプのLVを作成● lvcreate -V 100G --thinpool VGthin/thinpool -n hoge
– VGthin/thinpool上に100GのLV hogeを作成● lvcreate -s VGthin/hoge -n huga
– hogeのスナップショットhugaを作成
LVM thin provisioning実装
● device mapper上でCopy on Writeの仕組みを実現
● メタデータを導入
– ブロックの管理(ブロック毎のロック管理、同時書き込み競合の予防)
– トランザクション管理(CoWのセマンティクス維持のため)
– スペースマップ(ブロックのリファレンスカウント・割り当て・開放のため)
– btree(各LVの対応表を保持するため)● ドキュメント
– Documentation/device-mapper/persistent-data.txt
– Documentation/device-mapper/thin-provisioning.txt
現状の制限
● RHELでTech Preview● クラスタで使えない
● pool deviceでブロックが足りなくなった時のQAに不安が……