磁盘扩容

KVM虚拟磁盘有两种常见的格式,qcow2,raw,cow,qcow。

qcow2 和 raw 的区别

raw格式

raw格式是最简单,什么都没有,所以叫raw格式。连头文件都没有,就是一个直接给虚拟机进行读写的文件。raw不支持动态增长空间,必须一开始就指定空间大小。所以相当的耗费磁盘空间。但是对于支持稀疏文件的文件系统(如ext4)而言,这方面并不突出。当性能也是最好的一种。

qcow2

qcow2是集各种技术为一体的超级镜像格式,支持内部快照,加密,压缩等一系列功能,访问性能也在不断提高,它实际占用的空间是磁盘使用的空间,而不是直接一次性分配所有的容量。但qcow2的问题就是过于臃肿,把什么功能都集于一身。

磁盘管理

查看磁盘格式:

qemu-img info /kvm_data/ping.img

创建磁盘:

qemu-img create -f raw /kvm_data/ping.img 2G
qemu-img create -f qcow2 /kvm_data/ping.img 2G

qemu-img create -f <格式> <磁盘路径> <容量>

磁盘格式转化

qemu-img convert -O qcow2 /kvm_data/ping.img /kvm_data/ping.qcow2

qemu-img covert -O <格式> <源磁盘路径> <目标磁盘路径>

修改虚拟机磁盘格式

1.关闭虚拟机

virsh shutdown ping

2.转化磁盘格式

qemu-img convert -O qcow2 /kvm_data/ping.img /kvm_data/ping.qcow2

3.修改虚拟机配置文件

virsh edit ping
// 需要更改格式和路径

4.启动虚拟机

virsh start ping

磁盘扩容

raw格式扩容

直接为已存在的磁盘扩容

qemu-img resize /kvm_data/ping.raw [+|-]2G
qemu-img info /kvm_data/ping.raw 8G // 直接变为8G

这种修改需要在宿主机关闭在开启修改的子机才能生效。

添加raw格式的磁盘

1.新建磁盘

qemu-img create -f raw /kvm_data/ping.raw 5G

2.修改虚拟机配置文件

$ virsh edit ping
...
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/KVM/test.img'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </disk>
...

修改磁盘类型,设备名称 <address> 中的 slot字段不能和其他设备冲突

3.重启虚拟机

virsh shutdown ping
virsh start ping

qcow2 格式的扩容

步骤同raw格式的,但是需要注意:

qcow2磁盘中存在快照时不支持此操作,需要先删除快照

virsh snapshot-delete ping xxxxx

最后更新于

这有帮助吗?