今天有人跑来实验室抱怨说给他们配置的 4GB Xen 虚拟硬盘太小,系统占了 2GB,再装一些工具,比如 jdk/mysql/Tomcat/red5/asterisk 之类的空间就不够了。如何增加 Xen 虚拟硬盘的大小呢,也就是说如何扩充 Xen 的镜像文件大小呢?(这里的方法适用于镜像文件在 ext2 和 ext3 文件系统的情况)

关闭虚拟机

复制代码

代码如下:

# /usr/sbin/xm shutdown vm01

给虚拟机镜像文件(.img)追加 4GB 空间:

复制代码

代码如下:

# dd if=/dev/zero bs=1024k count=4096 >> /vm/vm01.img

扫描检查镜像文件:

复制代码

代码如下:

# /sbin/e2fsck -f /vm/vm01.img

这个时候只是增加了镜像文件(硬盘)的大小,这个镜像文件不是普通的文件,里面包含可 mount/umount 的 loop 文件系统,所以需要调整文件系统大小,不然的话进入虚拟机后 df 会发现硬盘大小没变:

复制代码

代码如下:

# /sbin/resize2fs /vm/vm01.img

重新启动 Xen 虚拟机:

复制代码

代码如下:

# /usr/sbin/xm create vm01

进入虚拟机后查看硬盘大小:

复制代码

代码如下:

# /usr/sbin/xm console vm01
# df -h

这里提到了 mount/umount,说一点题外话,从技术角度来说现在的 VPS 其实都不安全,因为 VPS 服务商随时可以 mount/umount 你的虚拟机文件、分区来读取、甚至写入内容,如果你的虚拟机所在的那台服务器的 root 密码被坏人拿到,那就毫无安全可言了,坏人可以随意在你虚拟机上做手脚。所以说安全性是云计算的一个大问题,尤其是那些搭建在虚拟技术上的云计算,这也可能是企业迟迟不愿意使用公有云的原因吧,一些 Startup 也只是把不重要的数据放在类似 Amazon S3 之类的云存储上,对于机密数据还是自己保存比较好。所以 VPSee 认为私有云会有更大的发展空间。