Lvm thin povisioning

10

Click here to load reader

description

RHEL6.3でtech previewとして導入されたLVMのthin provisioningの紹介

Transcript of Lvm thin povisioning

Page 1: Lvm thin povisioning

RHEL6.3にTech Previewで含まれるLVM thin provisioningがきになる

Page 2: Lvm thin povisioning

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.

Page 3: Lvm thin povisioning

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 …).

Page 4: Lvm thin povisioning

複数レベルスナップショットの用途

● 仮想ディスクイメージについて– ちょっと作業したイメージ

– そのちょっと後のイメージ

– さらになんか作業したあとのイメージ……

とスナップショットを作りまくる運用

● VMware(VMFSで実装)とかVirtualBox(独自差分イメージ管理で実装)では普通の運用

● qcow2で実現可能だけどちょい遅いので微妙

Page 5: Lvm thin povisioning

qcow2の微妙なところ

● ファイルシステム上にある– ちょっとコストが高い

– 更新日時とかのメタデータは不要

● 細かいレベルでのフラグメンテーションの懸念

– 最悪ケースでは4kB毎にフラグメント

– 最大2MB毎にクラスタを確保できるので以前より改善された

● フォーマットの制限– スナップショットを破棄しても確保したブロックは開放しない

Page 6: Lvm thin povisioning

LVM thin provision >> qcow2

● ファイルシステムがいらない– 低コストを期待

● フラグメンテーションのコスト緩和

– 1MB単位などで実装できるため最悪ケースでもフラグメントの影響が緩和

● ブロック開放

– 参照カウントによるpool device上のextent開放

Page 7: Lvm thin povisioning

LVM thin provisioningイメージ図

LV LV

btree btree

space-map

pool device

pool device上のextentについての参照カウントの管理

書き込みがあって参照カウントがあったら新ブロックを確保

LVのextentとpool deviceのextentの対応表

thinpool タイプのLV

Page 8: Lvm thin povisioning

コマンド例

● 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を作成

Page 9: Lvm thin povisioning

LVM thin provisioning実装

● device mapper上でCopy on Writeの仕組みを実現

● メタデータを導入

– ブロックの管理(ブロック毎のロック管理、同時書き込み競合の予防)

– トランザクション管理(CoWのセマンティクス維持のため)

– スペースマップ(ブロックのリファレンスカウント・割り当て・開放のため)

– btree(各LVの対応表を保持するため)● ドキュメント

– Documentation/device-mapper/persistent-data.txt

– Documentation/device-mapper/thin-provisioning.txt

Page 10: Lvm thin povisioning

現状の制限

● RHELでTech Preview● クラスタで使えない

● pool deviceでブロックが足りなくなった時のQAに不安が……