我有一台运行两台虚拟机的 Ubuntu 9.04 服务器。在 /etc/libvirt/qemu/machine1.xml 中,两个磁盘设备定义如下:
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<source file='/vserver/machine1/disk0.qcow2'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='disk'>
<source file='/vserver/machine1/disk1.qcow2'/>
<target dev='hdb' bus='ide'/>
</disk>
我需要至少在一台设备中获得更多存储空间,并考虑添加第三个 hdc 设备,只需添加一个与上述相同样式的设备并重新组织我的挂载结构(不幸的是,当前 qcow2 文件的虚拟大小是有限的。)
我的问题是重新加载 libvirtd 并重新启动 VM 并没有产生新的可见设备(用 fdisk 检查)。
我知道扩展现有的 qcow2 文件(转换为原始格式,cat-ing/添加新文件,使用类似 gparted 的东西) - 但只能作为最后的手段。
希望我遗漏的是一些非常简单的东西?
答案1
登录虚拟机并将其关闭。
创建一个新的虚拟磁盘。
qemu-img create -f qcow2 /vserver/machine1/disk2.qcow2 $SIZE
强制关闭虚拟机。
virsh destroy machine1
在默认编辑器中打开 VM 配置。
virsh edit machine1
添加如下所示的新磁盘节。
<disk type='file' device='disk'>
<source file='/vserver/machine1/disk2.qcow2'/>
<target dev='hdc' bus='ide'/>
</disk>
关闭编辑器。libvirt 将自动重新加载配置。
启动虚拟机。
virsh start machine1