在云盘纷纷关闭,果果在自己家用了一个迷你PC,加一个两磁盘的RAID1整列柜,搭了一个同步盘,用来同步文件。
迷你PC做的是KVM虚拟化,一开始测试的时候只建了一个80G的盘。后来数据慢慢大,就不够用了。
其实完全可用再新建一块盘,把文件拷贝过去,这样时间可能还更短,但今天果果介绍的是无损扩容,不丢失原来的数据。
操作前果果也百度了很多资料,由于之前默认创建的都是raw格式的镜像,发现基本都是基于qcow2格式,于是走了很多弯路。
有资料说用dd命令可用追加大小,果果试了一下,直接成没有分区格式化的新盘了,还好有备份,要不然就亏大了,所以果果不建议这样操作,或许是果果操作不正确,所以操作要谨慎,操作前请购买后悔药,备份img镜像文件。
raw1_80.img是原来的镜像,需要扩容。
先安装管理工具
yum -y install libguestfs-tools
转换成qcow2格式。这里很久很久,而且没有提示进度。
qemu-img convert -f raw raw1_80.img -O qcow2 qcow2_1_80.img
创建一个新的磁盘镜像,比如要一个200G的
qemu-img create -f qcow2 qcow2_2_200.img 200G
这个操作速度很快,瞬间完成,创建一个一百多K的空文件。
我们查看原来的镜像,得的分区信息。
virt-df -h qcow2 qcow2_1_80.img
然后是关键了,合并两个镜像。
virt-resize --expand /dev/sda1 qcow2 qcow2_1_80.img qcow2_2_200.img
这里是漫长的等待,可以看到进度条和剩余时间。
完成后我们可以用virt-df查看 qcow2_2_200.img 的信息。可以看到已用磁盘大小,对,已用的,证明我们数据还在。
到这里,完全可以在虚拟机里面挂上新的qcow2_2_200.img镜像,但是不知道果果在哪里看到qcow2性能不如raw,好吧,我们转换回来raw。
qemu-img convert -f qcow2 qcow2_2_200.img -O raw raw2_200.img
又是漫长等待。。。。
最后果果郑重声明,数据无价,操作需谨慎,如果任何原因导致数据丢失,果果不负责!!
转载请注明:果果.IT » KVM 虚拟化 raw磁盘扩容