web-dev-qa-db-ja.com

LVMで、その下に作成されたすべての論理ボリュームがシンプロビジョニングされるボリュームグループを作成できますか?

LVMでボリュームグループを作成して、その下で作成されたすべての論理ボリュームがシンプロビジョニングされる可能性があるかどうかを知りたいですか?

これは、LVMにシンプロビジョニングを含むRHEL6で使用されます。

私は代替案も受け入れています。

3
awmusic12635

はい、シンプロビジョニング用のボリュームグループを作成できます。以下は、 ここ からコピーされた詳細な手順です。

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

これで、新しい物理ボリュームがあることがわかります。

# pvdisplay
"/dev/sdd" is a new physical volume of "1.36 TiB"         --- NEW Physical volume ---         PV Name /dev/sdd        VG Name         PV Size 1.36 TiB
  Allocatable NO      PE Size 0       Total PE 0      Free PE 0       Allocated PE 0
  PV UUID Ndb90e-xkJX-Lagt-VePO-ZNLQ-udVn-SN65et

次に、ボリュームグループを作成する必要があります。

  # vgcreate vg_1 /dev/sdd        Volume group "vg_1" successfully created

物理ボリュームとボリュームグループの両方ができたので、いくつかの論理ボリュームを追加しましょう。まず、論理ボリュームプールを追加して、シンプロビジョニングされたボリュームをその中に保持します。

  # lvcreate --size 10G --type thin-pool --thinpool thin_pool vg_1
  Rounding up size to full physical extent 4.00 MiB       Logical volume

「thin_pool」が作成されました

このテスト用に10GBのプールを作成しました。

  # lvs       LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
  thin_pool vg_1 twi-a-tz 10.00g 0.00

これで、thin_pool内に4GBの論理ボリュームであるシンボリューム自体を追加できます。

  # lvcreate -V4G -T vg_1/thin_pool --name lv1        Logical volume "lvl"

作成した

すべてが作成されたので、次に何があるかを見てみましょう。

  # lvs       LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
  lv1 vg_1 Vwi-a-tz 4.00g thin_pool 0.00      thin_pool vg_1 twi-a-tz

10.00g 0.00

Lvsを呼び出すと、lvの0%がこれまでに取得されていることがわかります。

次に、新しい論理ボリュームをフォーマットしてマウントします。

  # mkfs.ext4 /dev/vg_1/lv1       # mount /dev/vg_1/lv1 /mnt

Dfを使用すると、4GBが使用可能であることがわかります。

  # df -h         ...         /dev/mapper/vg_1-lv1 4.0G 136M 3.7G 4% /mnt

使用済みスペースはファイルシステムからのものであり、元のデータがいっぱいになっていることをlvsで確認できます。

  # lvs       LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
  lv1 vg_1 Vwi-aotz 4.00g thin_pool 4.73      thin_pool vg_1 twi-a-tz

10.00g 1.89

ISOイメージを薄いlvにコピーすると、さらに拡大することがわかります。

  # cp /home/sean/Downloads/ubuntu-12.10-beta2-server-AMD64.iso /mnt
  # lvs       LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
  lv1 vg_1 Vwi-aotz 4.00g thin_pool 7.73      thin_pool vg_1 twi-a-tz

10.00g 6.37#df -h ..../dev/mapper/vg_1-lv1 4.0G 827M 3.0G 22%/ mnt

最後に、私たちの薄いプールを見ると、プール内で薄いlvが取っているスペースもわかります。

# lvdisplay
--- Logical volume ---
LV Name thin_pool
VG Name vg_1
LV UUID kD3VC1-FBNj-wHER-iFhE-NjES-GDoS-sFCnwF
LV Write Access read/write
LV Creation Host, time Fedora, 2012-10-11 21:43:51 -0700
LV Pool transaction ID 1
LV Pool metadata thin_pool_tmeta
LV Pool data thin_pool_tdata
LV Pool chunk size 64.00 KiB
LV Zero new blocks yes
LV Status available
# open 0
LV Size 10.00 GiB
Allocated pool data 8.64%
Allocated metadata 4.30%
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4


--- Logical volume ---
LV Path /dev/vg_1/lv1
LV Name lv1
VG Name vg_1
LV UUID b7FLSq-dMTi-mEbl-vZxq-Ocol-9Y2o-AEBhgL
LV Write Access read/write
LV Creation Host, time Fedora, 2012-10-11 21:44:11 -0700
LV Pool name thin_pool
LV Status available
# open 1
LV Size 4.00 GiB
Mapped size 21.60%
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
1
Raza

今の答えは「そんなことはない」と思います。私はこの機能をUbuntu14.04で数日間使用していますが、シンプール機能がボリュームグループレベルではなく論理ボリュームの一種として追加されたようです。これは奇妙な抽象化ブレークIMOのようです(おそらく理由がありますが、ここでは推測しません)。とにかく、ボリュームグループのほぼ全体を占めるシンプールを作成し(同じ正確なサイズにするとlvcreateが文句を言う)、コマンドのエイリアスを作成するか、シンプール名を事前に入力してlvcreateを呼び出すスクリプトを作成します。基本的にあなたが欲しいものを持っています。

1
maccam94