扩充Windows Azure Linux根分区


Windows Azure 中建立Linux虚拟机,根分区只有30G。在过往POC中碰到客户需要更大的根分区的需求。建议的做法是在本地新建Linux 虚拟机按照实际要求划定分区,除此之外还可以通过以下步骤完成根分区的扩展。

一.新建两台Linux虚拟机,其中一台是扩展磁盘过程中的操作主机:centoso-demo-02,另外一台是需要扩展根分区的主机:centos-demo-01。

二.删除虚拟机centos-demo-01,并保留附加的磁盘。

clip_p_w_picpath002

三.删除centos-demo-01的磁盘,并保留关联的VHD。此操作将保留VHD的blob,原来磁盘中的数据依然保留在Blob中。

clip_p_w_picpath004

四.经过上述操作步骤后,在存储的容器(本例是contoso--vhds)找到上个步骤删除的磁盘对应的Blob URL,和存储的访问密钥。

clip_p_w_picpath006

五.下载一个windows Azure disk Resizer的工具:http://blog.maartenballiauw.be/file.axd?file=2013%2f1%2fWindowsAzureDiskResizer-1.0.0.0.zip

然后以下图格式执行:

clip_p_w_picpath008

以上示例将一个磁盘扩充到120G,在下图可以验证扩充后的整个磁盘空间。到此为止,磁盘的分区并没有真正扩展,分区的空间依然为30G,其他空间是未分区空间。

clip_p_w_picpath010

六.基于Blob的URL新建一个120G的磁盘,并指定该磁盘是个linux系统盘,以便将来利用该磁盘建立虚拟机。

clip_p_w_picpath012

clip_p_w_picpath013

七.磁盘创建完毕,将该磁盘挂载到centos-demo-02中,进行后续的磁盘分区管理。

clip_p_w_picpath015

通过Fdisk –l 能查看到/dev/sdc的容量为136.4GB,/dev/sda是通过azure库中的模板生成的默认磁盘,其容量为32.2G。

clip_p_w_picpath017

进一步检查/dev/sdc ,依然是标准镜像初始化后的默认分区状态:

clip_p_w_picpath019

删除这两个默认分区,该操作不会删除数据,仅仅变更分区信息:

clip_p_w_picpath021

clip_p_w_picpath023

八.删除完毕,执行以下命令,重新建立新分区:

parted /dev/sdc mkpart primary 1049KB 120GB

(从下图可以获取该磁盘分区的起始信息,这里表示该磁盘从1049KB处开始划分,磁盘分区为120G)

clip_p_w_picpath025

clip_p_w_picpath027

执行完命令后,可以如上图查看,磁盘的“start” “End”状态标识与命令中的设置一致。

对新建分区执行文件系统检查:

clip_p_w_picpath029

扩充分区容量,将所有的空间都划给该分区。

clip_p_w_picpath031

九.将磁盘从操作主机centos-demo-02中分离出来。

clip_p_w_picpath033

十.基于分离出来的磁盘,重新建立cent-demo-s01的VM

clip_p_w_picpath035

虚机启动后,通过ssh连接登录,查看当前分区状态,容量扩充成功。

clip_p_w_picpath037