Lvm
KVM主機,給guest添加LV
我有一個帶有軟體 RAID 10 陣列的 KVM 主機。軟體 RAID 10 陣列是主機上的一個 PV,並且有一個 VG。
我在主機級別使用了幾個 LV(用於 KVM 來賓
.img
文件的數據儲存)。通常,在向來賓添加新磁碟時,我會在主機上創建 LV,然後將其添加到來賓的配置中。然後
pvcreate
直接在塊設備(無分區)上vgcreate
,lvcreate
和mkfs
來賓內的新塊設備上。之前我不會費心對塊設備進行分區,
pvcreate
因為在調整主機上的 LV 大小時它少了一步。我意識到缺點是理論上某些系統可能決定自動分區未分區的塊設備,因為它們無法辨識 LVM 元數據,儘管我從未在實踐中看到過這種情況。當在主機上調整 LV 的大小時,PV 中的可用空間被拾取,我必須
vgextend
在來賓中lvextend
。 我不認為有一種方法可以跳過讓 LVM 在來賓中執行,然後在主機上執行,然後在來賓中執行?resize2fs
lvextend``resize2fs
我不認為有一種方法可以跳過在來賓中執行 LVM 而只是在主機上進行 lvextend 然後在來賓中 resize2fs?
絕對不需要在來賓內部使用 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.