ソフトウェアRAID 10アレイを備えたKVMホストがあります。ソフトウェアRAID 10アレイはホストのPVであり、VGを含みます。
ホストレベルで使用される複数のLV(KVMゲストファイル.img
用のデータストア)があります。
通常、ゲストに新しいディスクを追加するときにホストにLVを作成し、それをゲスト設定に追加します。次に、pvcreate
ブロックデバイス(パーティショニングなし)から直接、vgcreate
ゲスト内の新しいブロックデバイスでlvcreate
。mkfs
pvcreate
ホストでLVのサイズを変更するときにステップが1段階減少したため、以前はブロックデバイスを分割することには気づいていませんでした。欠点は、理論的には、一部のシステムがLVMメタデータを認識しないため、非分割ブロックデバイスを自動的に分割することを決定できることです。しかし、実際には、このようなことが起こるのを見たことはありません。
ホストでLVのサイズを変更するとPVの空き容量があるため、これを行う必要があり、ゲストvgextend
でも同様です。ゲストでLVMの実行をスキップし、ホストで実行してからゲストで実行する方法はないと思いますか?lvextend
resize2fs
lvextend
resize2fs
答え1
ゲストでLVMの実行をスキップし、ホストでlvextendを実行してから、ゲストでsize2fsを調整する方法はないと思いますか?
ゲストでLVMを使用する必要はありません。ブロックデバイスを直接使用するだけです。 LVMの使用~へゲストはあなたにほとんど利益を提供しません(あなたがすでにホスト上のLVMを使用してスペースを管理しているため)。
「KVM」が「libvirt」を参照している場合、このコマンドを使用すると、ブロックデバイスのサイズ変更後にvirsh blockresize
ゲストが追加のスペースを認識できます。つまり、追加のLVを持つゲストがいる場合:
</disk><disk type="block" device="disk">
<driver name="qemu" type="raw"/>
<source dev="/dev/tank/foobar"/>
<backingStore/>
<target dev="vdb" bus="virtio"/>
<alias name="virtio-disk1"/></disk>
どこ:
# lvs
foobar tank -wi-ao---- 4.00g
ホストのLVにスペースを追加できます。
# lvresize -L +2G /dev/tank/foobar
libvirtにサイズを更新するように指示します。
# virsh blockresize myguest /dev/tank/foobar --size 0
その後、ゲスト内でファイルの幹のサイズを変更します。
guest# resize2fs 1.42.12 (29-Aug-2014)
Resizing the filesystem on /dev/vdb to 1572864 (4k) blocks.
The filesystem on /dev/vdb is now 1572864 (4k) blocks long.