镜像自动扩容

摘要:摘要: 介绍镜像自动扩容工具

这玩样也是在制作镜像的时候,遇到的——cloud-initramfs-growroot。这玩意最重要的功能就是解决镜像扩容的问题。、

002UASMrzy7605pjKJv15&690.jpg

要说扩容,最简单的方式其实就是新建一个qcow2文件,然后简单的挂上虚拟机就可以了。但这种方法显得特没技术含量,怎么也算不上一个技术网站应该有的“范儿”。

1 首先,在宿主机上关闭虚拟机,转换磁盘格式为raw:

#qemu-imgconvert-fqcow2litrin.net.qcow2-Orawlitrin.net.raw

 

raw格式的毛病一大堆,什么厚磁盘模式啦;什么不支持snap了之类的,但它有一个最大的优势:因为raw是条带化的,扩容相当方便!

2 创建一个空白的raw,10G的额外空间应该查不多了。

#qemu-imgcreate-frawempty.raw10G

 

3 将新的空间追加到旧的磁盘文件之上,Linux的管道操作果然方便啊!

#catempty.raw>>litrin.net.raw

 

4 好吧,技术上讲现在已经可以挂装硬盘了,但照旧,我们还是要把raw转换成qcow2,把第一条命令反过来用而已

qemu-imgconvert-frawlitrin.net.raw-Oqcow2litrin.net.qcow2

 

由于文件名经过两次转换之后没有改动过,所以不需要在vrish里做任何调整,直接开启虚拟主机就可以了。

然后就是在虚拟主机内部的操作了。这里其实还有另一个难点:正常情况下,有很多分区编辑工具可以直接调整分区大小,Linux下 也有一个resize2fs工具可以使用,但使用resize2fs调整分区大小的前提是你必须先将该分区umount,这台主机只有一个”/”分区,根 本无法卸载!如果是正常的物理主机,你可以用liveCD挂装一个系统,然后启动resize2fs甚至PQ之类的第三方工具调整。但是在虚拟机上,挂个 光驱并用光驱启动就会变得非常不便,如果破?

正常的情况下,结果是‘:

root@ubuntu14:~#resize2fs-f/dev/vda1 resize2fs1.42.9(4-Feb-2014) Thefilesystemisalready1310208blockslong.Nothingtodo!

 

5 自然有人就想到了这个问题:

#apt-getinstallcloud-initramfs-growroot #reboot

 

重起完成之后,见证奇迹的时刻!

root@ubuntu14:~#resize2fs/dev/vda1 resize2fs1.42.9(4-Feb-2014) Filesystemat/dev/vda1ismountedon/;on-lineresizingrequired old_desc_blocks=1,new_desc_blocks=4 Thefilesystemon/dev/vda1isnow13106827blockslong.