服务器虚拟化,尤其是VMware形式的服务器虚拟化使IT人员获益良多,这么说一点也不为过。据我们所见,服务器虚拟化能解决服务器扩张、资源消耗、服务器扩张、能源消耗、高可用性等相关问题。服务器虚拟化也使我们有更多的时间解决其它的迫切问题,如企业资源预案升级、存储项目再三迁移。
尽管VMware提供封装技术和抽象技术,使我们受益匪浅,但数据保护领域发生的基本变革也带来了各项挑战。即使出现了VMware虚拟化,备份人员依然是牢骚最多的IT人员。最大的挑战在于保证数据的一致性,解决VMware物理资源过度消耗的问题。
VMware能将物理服务器封装成大型的硬盘图像文件——虚拟机磁盘格式(VMDK)文件,因此我们不禁认为:备份整台服务器应该和备份这些VMDK文件(当然也包括相关的配置文件)一样简单。
但是在大多数情况下,事实并非如此。除非已经关闭虚拟机(VM),否则,在运行状态下备份VM不能覆盖所有文件。换句话说,这种备份方式不能保证数据的一致性,因而也不能保证已恢复的VM包含足够的精确信息,不能说明服务器已成功恢复。
至于资源过度消耗的问题,这是虚拟化的副作用。利用VMware使系统虚拟化的一个关键原因是,将资源消耗集中在较少的物理服务器中,从而减少大多数IT服务器架构都存在的空闲周期。但是,这么也做带来了不良影响——无法找到足够资源,使数据备份不受阻碍地运行。
备份触到了VMware内部的脆弱之处:VMware处理过量磁盘和网络I/O的能力很弱。实际上,决定是否将物理服务器虚拟化取决于物理服务器中的磁盘密度、网络I/O。毋庸置疑,备份负载是VMware服务器承担的最大负载。
但是,的确有方法能解决这些问题,并且在某些情况下,比标准的物理服务器备份和恢复方法更加出众。但是,人们对这些方法存在一些误解,对第三方备份/恢复产品提供的实施措施也存在误解。实际上,许多管理员依然缺乏有效实现备份和恢复的方法,道路充满挫折。
方法1:在每个VM中安装本地备份程序
工作原理:这是一种传统的备份方法,在每个VM中安装备份程序,就像以前在每台物理服务器中安装备份程序。如下图所示,数据通过LAN流入备份/恢复设施,以往在本地物理服务器中安装备份程序时,数据流向也如此。
这种方法的优点如下:
备份程序的安装和配置与在物理服务器中的安装和配置十分相似,所以无需专门技巧和程式变化。
恢复过程没有发生变化,与将文件恢复到物理服务器的过程十分相似。
这样,就有可能恢复文件;这一点在我们采用其它方法时显得更加重要。
也有可能实现完全备份和增量备份,同样,在我们讨论其它方法时,这一点显得尤为重要。
如果你采用专门的应用感知备份程序,如SQL或Exchange,这将有助于实现应用程序数据的一致性,由此实现的备份在应用程序上具有一致性。
这种方法的缺点如下:
由于所有的备份都在同一台服务器中运行,因而你需要十分小心,不要过度消耗VMware主机资源。
尽管服务器能封装成少量的大型VMDK文件,但备份程序对此一无所知,也就不能利用这一点提供快速的备份或恢复能力;而进行灾难恢复时,需要快速、全面地恢复服务器,从这点上讲,这种方法价值不大。
部署技巧
在物理服务器中,同时运行数据备份可能问题不大,因为物理服务器具有充足的闲置资源,但是对VMware虚拟架构而言,闲置资源已得到充分利用,多个备份操作就有可能阻塞物理服务器。从而,在进行虚拟化以后,应该修改备份手册,通过备份窗口避免资源过度重叠。
一个VM只允许一条数据流。VM的VMDK文件通常寄存在一个VMFS卷中,多条数据流操作很容易覆盖VMFS卷。因此,除非VMDK文件隔离在独立卷(RDM、 iSCSILUN、或独立的VMFS卷)中,否则备份就应该单流运行,而不是多流运行。
方法2:ESX Service Console中安装备份程序
工作原理:这种方法是在ESX Service Console在安装备份程序,按下图备份VM中潜在的VMDK文件组。Service Console采用红帽子Linux操作系统,因此能够使用Linux备份程序。
这种方法的优点包括:
只需一个备份程序就能备份所有的VM,而不是一台VM配备一个备份程序。
通过这种方法,VM资源能完全备份,只需简单备份少量的大型VMDK文件。
图像能快速恢复,因为只需恢复大型图像,而不必查找大量的小型图像。
这种方法的缺点包括:
需要脚本才能自动关闭、快照和启动VM。为了保证备份过程应用程序数据的一致性,必须这么做。
不可能恢复文件,这种方法只能备份和恢复图像。另外,这也意味着不能实现增量备份。
VNware指出,其开发流程包括从ESX Server移除Service Console。VMware的ESX Server 3i在这一点上迈出了第一步。
部署技巧
为了保证应用程序的一致性,在备份VMDK之前应该关闭VM。
VMDK文件在备份窗口中静止不动。
很不幸,备份过程中VM失去效用。
VMDK文件利用Service Console中的备份程序进行备份。
如果不能关机,可以利用VMware快照功能拍摄运行中的VM,获取即时备份。
备份数据停留在相同的状态,因而不能保证数据的一致性。
同样,实现自动化也需要脚本。
不是所有的备份程序都支持这种方法,所以你需要事先进行调查。
对于应用程序数据一致性的备份,利用VSS使应用程序在备份之前停止运行。但是,这需要非常复杂的脚本。
你可以利用ESX Service Console 中的VCB设施,获取运行状态下虚拟机的快照:
vcbMounter设施:
创建VM的静态快照。
将快照投射到一组文件中,文件可能处于控制台的本地目录中,也可能处于LAN的远程目录中。
利用ESX控制台支持的备份软件对本地文件进行备份和恢复。
vcbRestore设施:
将VM恢复到初始站点或者其它站点,
如果你决定冒险采用脚本技术,就会发现错误校验和更正是脚本技术最难的一个方面,需要编写大量代码。
方法3:VMware集中备份(VCB-Proxy)