配置Windows Azure上的Linux虚拟机

之前的post里讲过,我已经将这个blog从之前基于Windows Azure web role的解决方案,迁移到目前的部署在Windows Azure中的Linux虚拟机上了。这两个周末都在折腾这个虚拟机,记录一些细节。

首先,在Windows Azure中部署Linux虚拟机其实并不复杂,Windows Azure的文档里有相关的说明,照着做基本就可以创建好虚拟机,唯一需要注意的是ssh的证书。当我部署完成的时候,甚至惊讶,原来微软对开源系统的支持已经这么好了。

我使用的是Ubuntu 13.04的模版创建的虚拟机,一切顺利。虚拟机创建好之后,就可以像普通ubuntu机器一样来配置Apache, PHP和MySQL了,Ubuntu的help里有相关说明。拥有自己的虚拟机的好处是,我可以掌控上到系统下到应用的一切。目前我在这个虚拟机上运行了WordPress, tt-rss和tt-rss mobile。有空再折腾别的有趣的应用。

需要注意的几点:

  1. Windows Azure的虚拟机除了运行OS的.vhd之外,还需要单独挂一个.vhd,作为数据分区。你可能会注意到,创建好的虚拟机中,除了OS分区,还有一个分区/dev/sdb1,mount到/mnt/resource,而且空间挺大,有100多GB。但是这个分区和Azure里的Windows虚拟机的D:分区一样,是Azure虚拟机用来放临时数据的,它的数据不会persist到你自己的storage里,所以你还是需要自己创建一个.vhd挂上。只有在自己storage里的.vhd的数据才是persistent的。我之前将一个网站目录放在/mnt/resource里,昨天就碰到了404的错误,日志显示是I/O错误。
  2. Windows Azure的虚拟机目前没有备份或快照整个虚拟机的功能。文档里关于capture image的文章并不是备份的方法,capture image会unprovision整个虚拟机。官方的备份方法是,对storage里的.vhd做快照。当虚拟机有问题的时候,就恢复.vhd的快照,然后重建虚拟机。我的快照还没做,要找时间做一下。

Update: 一个可以用来给.vhd做快照的免费的Windows Azure storage explore工具:Azure Explorer