技术分享
备份Windows Azure虚拟机
2020-01-07
这里的虚拟机仅指虚拟机服务的虚拟机,不包括云服务里的虚拟机。备份虚拟机的场景主要有:
暂时不用虚拟机,希望停机以中止计费,但又想保留磁盘
怕对虚拟机进行了误操作,比如配置错误导致系统或者应用无法运行
虚拟机中有重要的数据文件需要定期备份
希望把虚拟机做成模版,从而克隆出多个一样的虚拟机
在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快照来实现简化的虚拟机快照(内存数据当然会丢失)。快照时最好将虚拟机停机,以保证磁盘一致性。
下面进行一个简单的测试:
然后,我们模拟对虚拟机进行一些误操作,比如删除一个软件
下面,我们开始虚拟机恢复。这里的恢复过程需要先删除原虚拟机(不删除原虚拟机也是可能的,不过要麻烦一些)
之后,需要删除磁盘。刚删除虚拟机后,磁盘还会被锁住一段时间,如下图。此时没法删磁盘
等待几分钟,磁盘被解锁,此时就可以删了
删除时一定要注意,一定要保留VHD,否则就连快照也删了
至此,虚拟机和磁盘已经彻底删除,只保留了存储上的Blob。下面我们恢复快照。回到CloudXplorer工具的snapshot页,点击promote,意思是回滚至选中的快照
接下来,我们再重新创建磁盘。在虚拟机磁盘页,点击页面底部“创建”
在VHD URL中选择之前的Blob
勾选“VHD包含操作系统”
确定后,磁盘创建成功
下面开始创建虚拟机。在镜像选择页面,点击“我的磁盘”,可以看到刚才创建的磁盘。按步骤输入之前配置的信息
虚拟机创建成功后,连接该虚拟机
我们发现,虚拟机回到了备份前的状态。大功告成
该方法采用的是磁盘备份,如果在虚拟机运行时进行Blob快照,存在的风险是数据的不一致性。由于OS本身会在内存中缓存一些数据,这些数据可能不会及时被写入磁盘,从而导致数据损坏或丢失。因此,进行磁盘快照时,最好将虚拟机停机,或者至少将应用暂停,确保关键数据已写入磁盘。对于一些IO密集型的虚拟机,比如数据库,不建议采用这种方法备份,而应采用应用本身的备份机制,如数据库备份
另外,该方法一次只能快照1个Blob,如果一个虚拟机有多个磁盘,则需要逐一进行快照。最后,D盘是临时盘没有存储在Blob上,因此无法进行快照
Windows Server的云备份
云备份是Windows Server近期推出的一项新服务,旨在将Windows Azure作为Windows Server备份库。所有互联网上的Windows 2008和Windows 2012都可以成为备份源,当然,Azure上的虚拟机也可以被备份。
该备份是一种文件备份,跟传统的Windows文件备份是类似的
简单来说,备份有4个步骤
1. 注册Azure恢复服务里面的备份保管库功能(该功能目前还在预览阶段)
2. 在待备份的Windows Server里面下载Makecert (该工具包含在Windows SDK 7里面,可以从这里下载然后执行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就会依据计划任务进行定期备份了
虚拟机捕获
虚拟机捕获是用来将虚拟机抓取为一个镜像。具体的操作方法,是在虚拟机仪表盘页面底部点击捕获,如下图
之后系统会克隆一个虚拟机镜像,用户可以用这个镜像生成新的虚拟机。需要注意:
捕获前要停机(在虚拟机仪表盘页底部点击关闭)
Windows捕获前要运行sysprep,去除SID,同时还会重置用户创建的管理员用户,其桌面、开始菜单、文档等用户配置信息可能会丢失,某些安装的应用可能会无法启动。
Linux虚拟机捕获前要进行Azure agent的清理
捕获后Azure会删除当前虚拟机。不过不用担心,磁盘还在(D盘会丢失)。用户可以从“我的磁盘”重新创建虚拟机

- 标签:
-
容灾备份