Answers:
我想,如果您想在不关闭机器的情况下进行操作,就会被困住。
为什么不直接在SAN旁边给虚拟机LUN并管理其中的空间?如果您想使用实时迁移等功能,则效果更好。
KVM基于QEMU,因此其所有图像格式支持均来自该项目。这是调整 Qemu / KVM支持的各种格式的好方法。但是,如果您在这里没有任何明确的答案,那么Qemu论坛将是一个很好的地方。
另一个不理想的选择是为驱动器使用较大的qcow2或其他稀疏映像格式。因此,您可以为每台计算机分配一个较小的操作系统驱动器,并为LVM下的数据提供较大的稀疏映像。这样至少可以保留您必须管理的虚拟驱动器/映像的数量。但是,如果您对1000台计算机执行此精简配置,则可能会遇到问题,并且每个人都将您带入他们看到的可用空间。
XEN我相信目前有相同的限制。
我知道这是一个老问题,但是我在搜寻解决方案时发现了它,希望它可以对其他人有所帮助。
至于今天,它是可以调整机器上的硬盘驱动器。我在这里找到了一种工作方式:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
必须执行以下步骤:
找出要调整大小的硬盘驱动器的文件名和KVM设备名称:
root@vhstage02:/data# virsh dumpxml test | xpath -e /domain/devices/disk
Found 2 nodes in stdin:
-- NODE --
<disk type="file" device="disk">
<driver name="qemu" type="qcow2" />
<source file="/data/test.img" />
<backingStore />
<target dev="vda" bus="virtio" />
<alias name="virtio-disk0" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
</disk>
-- NODE --
<disk type="file" device="cdrom">
<driver name="qemu" type="raw" />
<source file="/data/images/debian-8.2.0-amd64-netinst.iso" />
<backingStore />
<target dev="hda" bus="ide" />
<readonly />
<alias name="ide0-1-1" />
<address type="drive" controller="0" bus="1" target="0" unit="1" />
</disk>
对我们来说有趣的是磁盘。您应该寻找source
并alias
阻止。对我来说,文件名为test.img
,别名为virtio-disk0
。要使用此名称,您需要drive-
先获得qemu驱动器名称。
现在我们实际上使用qemu monitor调整驱动器的大小:
virsh qemu-monitor-command test block_resize drive-virtio-disk0 100G --hmp
请注意,使用的文件名不带.img扩展名,并且drive-已添加到磁盘别名中。100G是我们想要的驱动器的最终尺寸
登录机器并检查实际大小是否已更改:
root@test:~# fdisk -l
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7e6e7f71
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 499711 497664 243M 83 Linux
/dev/vda2 501758 167770111 167268354 79.8G 5 Extended
/dev/vda5 501760 167770111 167268352 79.8G 8e Linux LVM
而已!现在,您可以创建新分区或调整现有分区的大小。
运行时,可以在磁盘之间移动Linux系统。局限性是您不能更改正在使用分区的磁盘上的分区。
为此,您的根文件系统必须位于LVM上,这通常意味着您必须具有单独的引导文件系统(但这不是必需的,它只是使事情变得简单)。
插入新磁盘后,使用vgextend将其添加到LVM,使用pvmove将rootfs移至新磁盘,分别使用lvextend和resize2fs扩展逻辑卷和文件系统,然后使用vgreduce从卷中删除旧磁盘组。删除旧卷后即可拔出。
在简单的情况下,您有一个用于引导文件系统的小磁盘,您无需触摸。但是,如果只有它自己,则很容易卸载它,然后拔出它,插入一个新的文件,然后重建引导磁盘而无需停止系统。(只是在执行过程中不要崩溃)
注意:resize2fs也可以缩小文件系统。
不可能的atm,但是afaik它正在开发中。您可以做的是从VM连接到iSCSI目标并在SAN端管理该目标上的空间。