浅谈Hyper-V的几种备份方式

浅谈Hyper-V的几种备份方式()

                       ----snapshot虚拟机快照

转自: http://mrfly.blog.51cto.com/151750/187358

浅谈Hyper-V的几种备份方式(一)----snapshot虚拟机快照

时至今日,相信大家对微软的服务器虚拟化技术已经比较了解和熟悉了,您要是常逛我们51cto论坛,不难发现坛子的首页最上面基本上总是挂着Microsoft虚拟化的宣传片,而且还建立了专门的虚拟化版块,所以我对Hyper-V是怎么样的一款产品它有什么特点就不做过多的介绍了.直入主题,我们来谈一下实施部署了Hyper-V虚拟技术以后如何有效备份的问题.

我们可以先回顾一下前几年玩vmware workstation或者VPC等产品的时候是个什么样的情景.配置好了虚拟机各项参数,搭好了实验环境,就要开始做测试了,打住,我们还要做什么? snapshot!OK,看来您是真玩过虚拟机,呵呵...没错,虚拟机快照可以完整地保存当前虚拟机上运行的系统,应用程序甚至内存使用的状态.当虚拟机发生系统故障等问题时我们只要选择还原到合适的时间点上的正常的状态就又可以使用了.很方便很强大.

我们来简单地看一下如何在Hyper-V上为虚拟机抓取一次快照:

这里我新建了一台虚拟机Client2-WIN2003,

可以看到当前的快照栏位写明"选定的虚拟机没有快照".

同时我们到此虚拟机安装目录下的snapshots文件夹中一览:

也是空空如也.

OK,我们来为Client2-WIN2003捕捉一个快照,很简单,Hyper-V管理器中选中名称,右键,快照

因为新建的虚拟机,里面没有什么乱七八糟的东西,这个快照的获取在几秒之内就完成了.

完成后我们可以看到快照栏位已经有一个显示,上面还表明了此快照的建立时间

我们再到此台虚拟机安装目录下的snapshots文件夹中一览:

这回就不是空的了,多了三个东西,一个XML文档,两个文件夹,名字都很长.其实这个是为标示不同快照的GUID号码,这里就不多做介绍了.点开看看:

注意到,这里有个格式为.AVHD的文件,大小已经有85M多了,并且修改日期是1:09分了(我建立快照的时候可是0:56分).

其实这个AVHD文件就是一个把建立快照之后虚拟机上产生的新的数据新的变化写入到的一个独立的磁盘增量文件.(0:56分我漏了这个文件的截图,那时候才有30多M大小).

也就是说当我们对某个虚拟机做了snapshot,以后再对该虚拟机所做修改都将存到相应的GUID.AVHD文件中,所以这个文件会随着时间越来越大.

根据这点,也很好理解,这台虚拟机的原始.VHD文件就会处于只读状态而不会变化.

我要是过了一阵子又建立了快照呢?

又会有新的基准和增量文件的产生了.

我们再做快照,还会出现新的文件......

这里有很值得大家注意的一点,我来演示一下:

我已经确认前面做的快照不需要了,所以右键删除:

删除成功,我们还去此台虚拟机安装目录下的snapshots文件夹中一览

你会发现:咦,你不是把快照都删除了吗,怎么这几个.AVHD文件还在?

这个就是值得我们注意的地方:

在Hyper-V上面删除了一个或多个快照以后,快照的文件(.AVHD)并不会马上被删除.而是会在相应的虚拟机关机的时候才整合到这台虚拟机的原始虚拟磁盘(.VHD)中.

我们来看看是不是 这么回事:

注意到"正在进行合并"...

文件目录还在, .AVHD文件消失了.

相信看了上面这么多,大家对Hyper-V的snapshot功能已经有了更多的认识.

其实严格地从技术上讲,虚拟机快照应该不算是备份,并且它有很多局限性以至于并不一定很适用于生产环境中.原因如下:

1.不能进行文件粒度的恢复.当虚拟机中我们存放的某个重要文件丢失的时候,如果使用快照恢复,我们无法像用ntbackup工具一样能指定要还原出那个文件来,而必须要还原全部的快照内容.

2.如前面我们所知道的,快照文件其实就是一个把发生快照之后虚拟机上产生的新的数据新的变化写入到一个独立的磁盘增量文件.随着我们做了越来越多的快照,实体服务器上的存储空间也会被占用的越来越多,所以我们不得不先去确认过期和不需要的快照并且将其删除以防止存储空间不足,这给我们日常管理和维护增加了不少难度.

3.当建立了很多快照以后,Hypervisor引擎就得检查很多硬盘文件以找到最新数据,就像我们上面看到的那样,一层上有一层再有一层的感觉,这样会增加很多物理I/O负载.尤其是物理服务器上运行了若干台保存有大量快照的虚拟服务器的时候.要解决此问题方法同2.

那么,Hyper-V中还有哪些备份方式可以供我们选择呢?又有什么优势呢?

 

浅谈Hyper-V的几种备份方式()

----Windows Server Backup & VSS

转自:http://mrfly.blog.51cto.com/151750/187895

在此系列上一篇<浅谈Hyper-V的几种备份方式(一)----Snapshot虚拟机快照>中,

我们一起加深了对Hyper-V的快照功能的理解,同时也看到了Snapshot这种技术作为备份方案的不足之处.

那么我们今天来体验一下使用Windows Server 2008中全新改版的备份工具Windows Server Backup进行对Hyper-V的备份还原吧.

在此之前,很有必要先对比一下Windows Server Backup(简称WSB)与前面版本操作系统中的ntbackup工具有什么差异和进步.

1. WSB的备份还原操作更简单,以磁盘卷为单位进行备份,同时只能备份本地磁盘上NTFS格式的卷

2. 更快速的备份技术,这是因为WSB使用了VSS卷影复制技术,VSS后面我们要重点介绍

3. 恢复应用程序的功能,这点和Hyper-V有很大联系,后面的演示部分大家会看到

4. 改进的备份计划功能

5. 新增的WbAdmin命令行工具管理

6. 支持存储设备为可移动介质和光学介质驱动器等

还有其他一些优点就不一一提及了.

详见http://technet.microsoft.com/zh-cn/library/cc754572(WS.10).aspx

我们还是边看演示边学习吧

Windows Server Backup的安装

WSB在Windows Server 2008默认是没有安装的一个功能组件,所以我们需要先安装它,安装过程十分简单.

Note:因为我是在生产环境中截的图,所以这里WSB功能已经安装

调出WSB控制台界面如下

我们可以操作的部分就是右边绿色高亮圈出的.

我来为大家边演示边说明吧.

备份排程:即是备份计划任务,因为此种备份需要一个单独的磁盘作为存储设备,我的这台服务器硬件条件不满足,所以就不多做介绍了.

来看看单次备份

这里会提示是要对服务器进行完整备份还是自定义备份,如果选择完整备份的话WSB会对服务器硬盘上的所有数据,包括应用程序及系统状态等做备份.为了方便演示,我们自定义选择只备份D盘.这台服务器D盘上可是放着几台虚拟机的VHD磁盘文件和配置文件的哦.

说明一点,默认情况下”启用系统修复”这个是勾选上的,所以在上面的磁盘卷的选择上系统盘C盘也是被打上勾要备份的,目的很明确,就是像ntbackup中备份系统状态一样,如果你不想备份系统状态,就需要把”启用系统修复”勾选掉然后才能将系统卷排除在备份目标之外.

然后我们勾选要备份的D分区,下一步

我们需要选择将生成的备份文件存放于本地磁盘还是远程文件夹内

这里我选择保存在本地磁盘E

这里我们需要选择是使用VSS复制备份还是完整备份,如何选择界面上说的很明白,如果还要用其他备份产品来备份应用程式,就要选择复制备份,如果没有用其他备份产品来备份应用程式的规划,则选择完整备份,其实这里就是看你是否需要保留应用程式的日志文件.

我没有打算使用其他备份产品,所以选择完整备份,下一步

开始备份

资料比较多,让他慢慢备着,趁这个时间我们来一起深入了解一下VSS卷影复制技术.

其实从Windows Server 2003开始,VSS技术已经被我们广泛使用,应该有IT Pro朋友这样做过: 通过使用VSS,在特定的卷上建立数据拷贝时间点;并在将来的某一时刻把数据恢复到任何一个你曾创建的时间点的状态.

VSS卷影复制技术的概念:

什么是VSS卷影复制?

VSS 是一套COM API,它部署了这样的架构,让卷备份能够被执行同时系统上的应用程序继续写入卷。请求者、编写器和提供程序它们在VSS架构中通讯来创建和恢复卷影副本。一个卷的影子副本及时地复制了加载在卷上处于正常状态的所有的数据。

备份的过程包含下面这些步骤:

1. 请求者发起备份。接着请求者通知编写器准备一个数据集便于备份。

2. 编写器为备份准备数据。应用程序部署根据应用程序的特定要求准备数据的编写器。在数据集准备好之后,编写器用信号通知请求者来备份数据集。

3. 提供程序与磁盘系统交互,并管理影子副本。当被请求者指示的时候,提供程序创建影子副本。

4. 请求者发信号将备份成功或失败的信号发送给编写器,接着完成整个备份过程。

5. 通过分开请求者、编写器和提供程序的功能,VSS 架构使得每个组件独立于其他组件。一个请求者能够与不同的提供程序或多个编写器交互。

凭借 VSS 服务、提供程序和编写器的帮助,备份应用程序可以快速生成时间点的卷副本,应用程序可以知晓该副本并给予正确处理。

可能有的朋友觉得,对于运行于Hyper-V环境中的虚拟机,我们只需要备份他的.VHD文件,配置文件甚至.AVHD文件即可,但现实中并不是这么简单的.因为这些活动的虚拟机系统是由内存数据,磁盘数据,系统配置和打开文件组成的计算机,所以我们还要考虑如何确保所有这些变化部件的数据一致性?

VSS技术及使用它的备份软件的应用,就是为了满足上面的要求.

注意:我们这里讨论的是在虚拟机处于运行状态时候的备份活动,而不是停机的,如果你的单位和用户可以忍受关闭虚拟机再进行磁盘文件及系统配置文件的备份,那么就没有必要使用VSS了…因为你关闭了虚拟机再备份就不存在一边要备份一边还有数据不停更变的冲突.

说回Hyper-V

对于Hyper-V应用的常规备份,成熟的方案包括基于主机(host OS)的备份和基于来宾(guest OS)的备份.基于主机的备份就是上面提到的如果在保证数据一致性的前提下备份虚拟机的VHD及配置文件等等,基于来宾的备份则是考虑如何备份虚拟机内中运行着的系统状态,文件或者应用程序.(说到此,想起来某位兄弟曾抱怨过虚拟机也要装杀毒打补丁搞备份真麻烦!呵呵).

办事周到的微软为Hyper-V 设计提供了自身的 VSS 编写器,它允许软件制作者创建极具吸引力的备份解决方案。编写器使备份应用程序能够获得运行中的虚拟机的基于主机 VSS 备份。如果虚拟机中运行的操作系统已安装 Hyper-V 集成组件和 VSS 服务(Windows XP SP1 和 Windows Server 2003 及更高版本中提供),则基于主机的备份将以类似于在来宾内运行的方式进行,备份将在虚拟机运行时执行且保持数据的一致性

说回Windows Server Backup, 因为它完全支持 VSS,所以它可以针对正在运行着的虚拟机执行基于主机的备份,很好很强大。但是有一点, 虚拟机中运行的操作系统需要安装 Hyper-V 集成组件和 VSS 服务.如果来宾操作系统不支持“集成组件”或 VSS,那么备份进程需要将来宾机器置于已保存状态,并且为虚拟机数据文件生成基于主机的 VSS 快照,以供时间点恢复使用。处于保存状态的 VSS 快照将导致 虚拟机暂时停机(通常为 5-10 分钟),以便将 VSS 数据副本完整备份;或者也可以将虚拟机当作物理服务器一样在其内部运行ntbackup or WSB进行备份.

(以上部分内容参考微软Technet网站文章)

可能是因为考虑到WindowsServer 2008分为with Hyper-V 及without Hyper-V,所以WSB中默认没有提供对Hyper-V的支持,我们需要到注册表中手动修改一些键值从而注册其 VSS 编写器.

先添加

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\WindowsServerBackup\Application Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}
建立以上键值后,还要创建一个字符串值(String Value)
Name: Application Identifier
Type: REG_SZ
Value: Hyper-V

要是你嫌麻烦,也可以在命令行提示符下执行:

reg add "HKLM\Software\Microsoft\windows nt\

currentversion\WindowsServerBackup\Application

Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}"

reg add "HKLM\Software\Microsoft\windows nt\

currentversion\WindowsServerBackup\Application

Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}" /v

"Application Identifier" /t REG_SZ /d Hyper-v

效果一样的.

关于使用WSB & VSS备份Hyper-V的理论知识想必大家已经比较清楚了,这个时候服务器上面也终于备份完了.

做好了备份,当然要测试一下能否还原,也就是测试备份的有效性

这里是可以根据日期选择还原点的,比以前的还原操作方便了很多,即使你做的是完整备份+增量备份,也不用像以前一样先还原完备,再一个一个顺序地还原增量备份,这里直接选择日期就搞定了.

下一步

这里看好咯,我可以选择中间的这一项”应用程序”,可能很多朋友看到网上别的教程或演示,到这里的时候这一项是不可选的.

我来说明一下,这就是因为我已经按照前面的做法为Hyper-V在注册表中注册了VSS编写器(修改注册表后不用重启物理机器的).

至于其他两个选项我相信不用做过多的解释了,一个是从备份中选定要还原的文件资料等,一个是将整个卷都还原出来.

下一步

可以看到”Hyper-V

下一步

这里我们要选择还原到什么位置

确认

还原进行中…

还原完成…

看看都还原出了什么

系统盘(C:)保存的Hyper-V的信息和存储虚拟机的磁盘(D:)都有还原出来.

点开C_

点开D_

虚拟机的磁盘文件,配置文件,乃至快照,都有完美地被还原出来哦.

演示就到这里.

总结一下,

对于Hyper-V的高可用,如果你的企业中还没有采取群集,迁移等方案,还是需要先稳妥地做好备份的.

而通过前面的演示,大家可以看到WSB&VSS对Hyper-V的在线备份已经支持的相当的好了,若是配合使用WSB的命令行工具WBAdmin,则可以定制出更多更灵活的备份策略.大家有兴趣可以多深入学习一下.

有朋友想问,那么还有没有比Windows Server Backup更强大的备份方式呢,这个,还真有!我下篇会为大家介绍真正的企业级的数据保护解决方案产品---Data Protection Manager 2007 with SP1.敬请期待…

 

 

你可能感兴趣的:(浅谈Hyper-V的几种备份方式)