三种VMware数据备份和恢复方法

服务器虚拟化,尤其是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)

  工作原理:这种方法涉及一组VMware设施,通常称为VMware集中备份。这种方法使集中的Windows 2003代理服务器中的非LAN备份与相同的SAN卷相连,称为ESX Server。随后,数据通过第三方备份软件传送到代理服务器中,作为后序备份。这种方法比上述两种方法更为复杂,包括以下组件:

  备份代理服务器:

  服务器能与VMware主机访问相同的卷。

  代理服务器中加载/输出VMDK文件的图像。

  这种加载/输出图像通过寄存在代理服务器中的备份程序实现备份。

  VCB框架:

  ESX服务器中的“同步推动器”能刷新文件系统,创建快照。

  VCB代理服务器中的“vLUN推动器”允许服务器中存在VMDK文件。

  采用VCB自动工作流,命令行设施(vcbMounter/vcbRestore)发挥作用。

  备份软件集成模块:

  模块集成到VCB框架的组件中。

  VMware和备份程序都能开发并支持这种模块。

  备份程序之间的集成和使用变量相对简单。

  在此点击,查看采用备份代理服务器的VMware集中备份示意图。

  采用备份代理服务器的VMware集中备份能够执行非LAN文件备份和非LAN图像备份。但是,这两种方法的实现途径截然不同。

  VCB文件备份/恢复是在VCB代理服务器中加载VMDK文件,具体步骤如下:

  1备份工作要求VCB框架获取VM快照,在VCB代理服务器中加载VB快照,加载路径包括SAN、C:\mnt等。

  2利用备份程序备份(完全、增量、差异备份)目录/文件。

  3备份程序要求VCB框架卸载VM快照,使VM不再具有快照功能。

  4通过安装在VM中的备份程序,文件经由LAN恢复到初始VM中。

  在此点击,查看文件备份和恢复的VCB-Proxy工作流。

  VCB图像备份/恢复是将VMDK文件输出到VCB代理服务器中,具体步骤如下:

  1.备份工作要求VCB框架获取VM快照,并输出快照,输出路径包括SAN、C:\mnt等。

  2.系统文件等输出的图像文件通过备份程序进行备份。

  3.备份软件要求VCB框架卸载VM快照,使VM不再具有快照功能。

  4.利用备份程序,将输出的VM图像恢复到一个VMware能够访问的临时区域,该区域可能位于Proxy Server 或ESX Service Console,由此完成恢复工作。

  5.VM图像加载到ESX主机中的指定位置。

  在此点击,查看图像备份和恢复的VCB-Proxy工作流。

  这种方法的优点包括:

  你可以利用VCB Proxy中一个备份程序,备份所有的VM,而不必每个VM配备一个程序。

  通过这种方法,VM资源能完全备份,只需简单备份少量的大型VMDK文件。

  图像能快速恢复,因为只需恢复大型图像,而不必查找大量的小型图像。

  将备份过程转移到VCB代理服务器中,降低了ESX服务器的开销。

  这种备份方法无需LAN,在SAN中也能实现,从理论上讲,备份速度比基于LAN的备份方法要快。

  这种方法的缺点包括:

  能否实现自动化、能否方便地加以使用取决于第三方备份软件的能力。

  如果没有某种形式的备份软件集成到备份过程中,要部署这种方法就变得非常复杂。

  如果你想将文件直接恢复到VM中,就需要在VM中安装备份软件。

  对于没有集成VSS的Windows系统,由VCB提供的图像备份会使数据处于相同的状态。

  VCB不提供Windows系统状态的恢复机制,尽管有可能成功实现服务器完全恢复,但是如果在操作VM时,系统状态紊乱,就不能保证完全恢复。

  部署技巧

  请记住,VCB不是备份/恢复程序,而是一组能集成到第三方备份应用程序中的设施。

  Proxy Server不是虚拟机。

  VCB不能安装在虚拟中心的服务器中,也不能注册。

  Proxy Server需要安装Windows 2003 Server、SP1或R2。

  Proxy Server必须和ESX Servers安装在相同的LUN区域中。

  VCB Proxy Server不支持多路径。

  如果需要恢复文件,但你又不想为每个VM都安装备份程序,你就可以创建一个仅用于恢复的VM,这个VM包含备份和恢复程序,将文件恢复到这个VM中,然后通过网络共享将文件迁移到正确的目标VM中。

时间: 2024-07-29 21:57:46

三种VMware数据备份和恢复方法的相关文章

VMware虚拟化三种备份和恢复方法的对比分析

服务器虚拟化,尤其是VMware形式的服务器虚拟化使IT人员获益良多,这么说一点也不为过.据我们所见,服务器虚拟化能解决服务器扩张.资源消耗.服务器扩张.能源消耗.高可用性等相关问题.服务器虚拟化也使我们有更多的时间解决其它的迫切问题,如企业资源预案升级.存储项目再三迁移或者为什么我的青蛙总不回家的问题.尽管VMware提供封装技术和抽象技术,使我们受益匪浅,但数据保护领域发生的基本变革也带来了各项挑战.即使出现了VMware虚拟化,备份人员依然是牢骚最多的IT人员.最大的挑战在于保证数据的一致

Request三种获取数据的方式

今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Request.QueryString: 该方法主要是获取页面路径URL的参数: 2. Request.Form:该方法主要是以post请求方式获取报文体的参数: 3. Request.param:包含上面两种方式,它会在QueryString,Form,ServerVariable中都搜索一遍: 而我今

DB2数据备份和恢复的操作流程

本文主要讲述了如何提高DB2数据备份和恢复效率的实际操作步骤,在设计数据备份和恢复的方案时,我们主要考虑的有两个方面的问题. 一是备份与恢复策略本身是否安全,即能否及时的准确的完成对数据库的备份工作. 二是要考虑数据备份与恢复方案的执行效率高不高. 如果备份或者恢复一个DB2数据库需要花费几个小时时间,那么及时这个备份与恢复方案再安全,也于事无补.或者说,是一个不合适的解决方案.为此在考虑备份恢复方案本身安全性的同时,也需要兼顾备份与恢复的效率.在这篇文章中,笔者就介绍一下提高DB2数据备份与恢

MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有

unity中三种调用其他脚本函数的方法

第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage("函数名");  此种方法可以调用public和private类型函数 第三种,GameObject.Find("脚本所在物体名").GetComponent<脚本名>().函数名();此种方法只可以调用public类型函数 unity中三种调用其他脚本函数的

[转]SQL三种获取自增长的ID方法

SQL SERVER中的三种获得自增长ID的方法  这个功能比较常用,所以记下来以防自己忘掉. SCOPE_IDENTITY 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.一个作用域就是一个模块--存储过程.触发器.函数或批处理.因此,如果两个语句处于同一个存储过程.函数或批处理中,则它们位于相同的作用域中. IDENT_CURRENT  返回为任何会话和任何作用域中的指定表最后生成的标识值.这个函数需要一个以表名为值的变量,也就是说虽然不受会话和作用域的限制

mysql大数据备份及恢复(一)

Mysql大数据备份和恢复一 MySQL备份一般采取全库备份.日志备份:MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间:mysql的二进制日志记录着该数据库的所有增删改的操作日志还包括了这些操作的执行时间 Binlog的用途:主从同步.恢复数据库 使用binlog工具备份 查看binlog是否开启,因为默认是关闭的 从上图可知off为关闭状态,一般logbin为只读,在/etc/my.cnf下开启 重启数据库 重启后在目录下查看是否生成bin日志

【windows】环境下mysql的数据备份以及恢复

[windows]环境下mysql的数据备份以及恢复 无论是刚刚入行的'猿友'还是入行很久的'老猿',我相信都会遇到过因为各种原因(很多情况下是自己误删了数据库)的操作.drop databases xxxxx 而误删了线上项目的数据库是一件很恐怖的事情,那么如果大家遇到这种情况怎么办呢?首先不要着急(我感觉说了也白说-,-),先看一看自己的mysql是否开启了binlog日志功能,如果没有???game over !!! 关于查看binlog日志有没有开启,请到自己的Mysql文件下找my.i

大数据备份和恢复应用案例--通过分区表备份和恢复数据

海量数据备份和恢复方案 对于OLAP的数据库的业务特点,是将批量的数据加载入库,然后对这些数据进行分析处理,比如报表或者数据挖掘,最后给业务提供一种决策支持:另外,这类数据库的数据实时性非常高,一旦这些数据处理完毕后,就很少再次使用(有时,也需要对这类数据进行查询). 对于OLAP数据库的备份和恢复可以考虑这样几种方案: 1.使用分布式数据库 将数据分布到多个库里,当数据库恢复时,只需要恢复单个库的数据,大大节省恢复时间. 2.结合分区技术,以传输表空间方式进行备份和恢复 1.建立分区表,将分区