最新消息:走过的,离开的,已经错过,新开始2016

KVM 虚拟化 raw磁盘扩容

技术随笔 果果 9593浏览 1评论

在云盘纷纷关闭,果果在自己家用了一个迷你PC,加一个两磁盘的RAID1整列柜,搭了一个同步盘,用来同步文件。

迷你PC做的是KVM虚拟化,一开始测试的时候只建了一个80G的盘。后来数据慢慢大,就不够用了。

其实完全可用再新建一块盘,把文件拷贝过去,这样时间可能还更短,但今天果果介绍的是无损扩容,不丢失原来的数据。

kvm

操作前果果也百度了很多资料,由于之前默认创建的都是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

kvm2
果果只有一个分区,/dev/sda1

然后是关键了,合并两个镜像。

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磁盘扩容

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. Hey, good to find soomene who agrees with me. GMTA.
    Mateen8年前 (2016-08-06)