`
thecloud
  • 浏览: 883532 次
文章分类
社区版块
存档分类
最新评论

备份Windows Azure虚拟机

 
阅读更多

这里的虚拟机仅指虚拟机服务的虚拟机,不包括云服务里的虚拟机。备份虚拟机的场景主要有:

  1. 暂时不用虚拟机,希望停机以中止计费,但又想保留磁盘
  2. 怕对虚拟机进行了误操作,比如配置错误导致系统或者应用无法运行
  3. 虚拟机中有重要的数据文件需要定期备份
  4. 希望把虚拟机做成模版,从而克隆出多个一样的虚拟机

在2013年5月,微软宣布虚拟机服务停机后不计费。因此,如果是第1种情况,就没有备份虚拟机的必要了。虚拟机不用的话关机就好了,其磁盘会保留(即使删除虚拟机,其磁盘也会保留)。Azure只会对停机的虚拟机收取存储费用

对于第2种情况,建议采用Blob快照的方法

对于第3种情况,建议采用文件备份的方法,这也是传统的方法,有很多工具可以采用,比如rsync(linux), windows的备份恢复功能等。最近Windows Azure提供了一项新服务,就是为Windows Server提供云备份空间。Azure上的Windows虚拟机可以采用这种方法

对于第4种情况,建议采用虚拟机捕获功能,可基于原虚拟机生成一个OS部署镜像

下面依次介绍几种方法。

Blob快照

如果我们用过VMware,或者HyperV,我们一定了解虚拟机的备份。通常方法是先创建一个快照,再把快照复制到其他地方存储;另一个方法是进行虚拟机克隆(其实也是后台进行快照再复制快照)。

在Azure上,我们可以试图模拟这个过程。尽管Azure不支持虚拟机快照,但Azure支持Blob存储快照。Azure虚拟机的磁盘都是以VHD文件的形式存储在Blob上的。我们可以通过Blob快照来实现简化的虚拟机快照(内存数据当然会丢失)。快照时最好将虚拟机停机,以保证磁盘一致性。

下面进行一个简单的测试:

首先,我们用Blob工具对虚拟机的磁盘进行快照,这个工具叫Cloudxplorer(http://clumsyleaf.com/products/cloudxplorer)。找到磁盘后,右键点属性,然后在Snapshots页里点create

然后,我们模拟对虚拟机进行一些误操作,比如删除一个软件


下面,我们开始虚拟机恢复。这里的恢复过程需要先删除原虚拟机(不删除原虚拟机也是可能的,不过要麻烦一些)

之后,需要删除磁盘。刚删除虚拟机后,磁盘还会被锁住一段时间,如下图。此时没法删磁盘

等待几分钟,磁盘被解锁,此时就可以删了


删除时一定要注意,一定要保留VHD,否则就连快照也删了

至此,虚拟机和磁盘已经彻底删除,只保留了存储上的Blob。下面我们恢复快照。回到CloudXplorer工具的snapshot页,点击promote,意思是回滚至选中的快照

接下来,我们再重新创建磁盘。在虚拟机磁盘页,点击页面底部“创建”

在VHDURL中选择之前的Blob

勾选“VHD包含操作系统”

确定后,磁盘创建成功

下面开始创建虚拟机。在镜像选择页面,点击“我的磁盘”,可以看到刚才创建的磁盘。按步骤输入之前配置的信息


虚拟机创建成功后,连接该虚拟机

我们发现,虚拟机回到了备份前的状态。大功告成

该方法采用的是磁盘备份,如果在虚拟机运行时进行Blob快照,存在的风险是数据的不一致性。由于OS本身会在内存中缓存一些数据,这些数据可能不会及时被写入磁盘,从而导致数据损坏或丢失。因此,进行磁盘快照时,最好将虚拟机停机,或者至少将应用暂停,确保关键数据已写入磁盘。对于一些IO密集型的虚拟机,比如数据库,不建议采用这种方法备份,而应采用应用本身的备份机制,如数据库备份

另外,该方法一次只能快照1个Blob,如果一个虚拟机有多个磁盘,则需要逐一进行快照。最后,D盘是临时盘没有存储在Blob上,因此无法进行快照

Windows Server的云备份

云备份是Windows Server近期推出的一项新服务,旨在将WindowsAzure作为Windows Server备份库。所有互联网上的Windows 2008和Windows 2012都可以成为备份源,当然,Azure上的虚拟机也可以被备份。

该备份是一种文件备份,跟传统的Windows文件备份是类似的

简单来说,备份有4个步骤

1.注册Azure恢复服务里面的备份保管库功能(该功能目前还在预览阶段)

2.在待备份的Windows Server里面下载Makecert (该工具包含在Windows SDK 7里面,可以从这里下载http://www.microsoft.com/en-us/download/details.aspx?id=3138),然后执行makecert.exe -r -pe -n CN=CertificateName -ss my -sr localmachine -eku 1.3.6.1.5.5.7.3.2 -len 2048 -e 01/01/2016 CertificateName.cer命令,生成一个证书

3.在虚拟机里面打开Windows Azure门户,创建一个备份保管库,然后上载证书


4.在门户上下载备份Agent,并安装

5.配置备份策略,选择要备份的文件


接下来,Windows就会依据计划任务进行定期备份了

具体步骤见http://www.windowsazure.com/en-us/manage/services/recovery-services/configure-a-backup-vault/?fb=zh-cn


虚拟机捕获

虚拟机捕获是用来将虚拟机抓取为一个镜像。具体的操作方法,是在虚拟机仪表盘页面底部点击捕获,如下图


之后系统会克隆一个虚拟机镜像,用户可以用这个镜像生成新的虚拟机。需要注意:

  • 捕获前要停机(在虚拟机仪表盘页底部点击关闭)
  • Windows捕获前要运行sysprep,去除SID,同时还会重置用户创建的管理员用户,其桌面、开始菜单、文档等用户配置信息可能会丢失,某些安装的应用可能会无法启动。具体过程参考http://www.windowsazure.com/en-us/manage/windows/how-to-guides/capture-an-image/
  • Linux虚拟机捕获前要进行Azure agent的清理:http://www.windowsazure.com/en-us/manage/linux/how-to-guides/capture-an-image/
  • 捕获后Azure会删除当前虚拟机。不过不用担心,磁盘还在(D盘会丢失)。用户可以从“我的磁盘”重新创建虚拟机
该方法只能捕获OS盘,不能捕获其他磁盘。由于这种备份会带来OS配置信息的更改,因此存在一定的风险。进行这种虚拟机捕获时,建议先通过上面的方法(Blob快照)为底层磁盘做一个恢复点。这样如果捕获失败(比如应用数据丢失、损坏),我们还可以回滚底层磁盘数据,回复到捕获前的状态
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics