从几大厂商看数据备份软件的开发

市场上作数据迁移,备份和恢复的厂商不少,有像EMC和Symantec这样的存储设备提供商,也有像NSI Double-Take这样的软件服务供应商,分别表明性的产品有,EMC Replication Manager,Symantec Backup Exec和Double-Take。缓存

不管哪种数据备份软件,最关键最核心的技术其实就是两点:app

1. Freeze/Thaw备份对象的I/Oide

2. 快速拷贝备份对象的数据spa

在关注完这两个技术点以后,再进一步讨论:操作系统

1. 将备份软件由物理机扩展到虚拟机指针

2. 备份对象和备份平台的扩展对象

备份的对象能够是文件或磁盘,也能够是应用程序或操做系统。对于前者,若是没有IO操做,那么备份过程相对简单,能够直接进行拷贝操做。若是存在IO操做,那么只有停机才能保证数据的完整性和一致性,若是不停机,因为数据尚在缓存或者读写过程当中,则没法保证数据的完整性和一致性,所以备份出来的数据可能没有意义。对于后者,虽然备份的最终对象也是文件或磁盘,但备份的过程须要获得应用程序或操做系统的支持,这样既能够不停机,甚至应用程序能够继续提供服务,又能够保证备份数据的完整性和一致性。索引

应用程序为了支持数据备份,一般的作法是,在备份开始前,将备份单元缓存的数据写回进磁盘中,而后Freeze备份单元的IO;在备份过程当中,将备份单元的写操做转到临时文件中;在备份结束后,将临时文件的数据从新写回进磁盘中,而后Thaw备份单元的IO。很是典型的例子是,Oracle的hot backup script,Microsoft为SQL Server和Exchange Server提供的VDI和VSS接口。接口

为了保证服务质量,通常状况下,应用程序从Freeze备份单元的IO到Thaw备份单元的IO的间隔时间都比较短,例如Oracle的备份时间是60s,而VDI和VSS的备份时间只有10s。备份时间是如此的短,而备份数据一般又是很是的庞大,所以彻底拷贝原始的数据几乎是不可能的,因而基于Copy-On-Write的Snapshot技术在存储设备中获得了普遍的应用。ip

Copy-On-Write的基本原理其实也简单,假设原始数据区为A,备份数据区为B,当A中的某个数据块有写请求时,先将原来的数据块拷贝到B中,而后再对A执行写操做。A中未执行写操做的数据块,只须要在B中维护一个A中对应数据块的索引指针便可。这样,当A中的数据改动比较少时,B须要的空间一般也不多,只要原来的10%~30%。

在为备份数据区申请空间时,若是是申请固定空间,则该空间应大于原始空间,固然,一般不这么作,而是申请自动精简配置的磁盘空间,须要多少,占用多少,从而节省数据空间,避免无谓的浪费。而在具体的实现中,据做者的亲历了解,作法是为每一个原始空间保留一个大的缓冲区,为原始空间创建的多个备份空间都从这个缓冲区里面分配。

以EMC Replication Manager为例,支持Exchange,SQL Server,SharePoint,Oracle,DB2等应用程序的备份,支持的存储设备包括Symmetrix,CLARiiON等。

由于备份过程须要获得存储设备的支持,备份的最小数据单元也就成了一个LUN。一个LUN在主机端表现为一块物理磁盘,主机能够发送标准的SCSI命令给这个LUN,可是这种状况在虚拟机环境下就发生了变化,这是由于在虚拟机(如VMWare)中,只认识虚拟磁盘.vmdk。

所幸的是,RDM(Raw Device Mapping)技术解决了这个难题。RDM是从VMFS卷到原始LUN的符号连接。映射使LUN显示为VMFS卷中的文件。在虚拟机配置中引用映射文件而非原始LUN。打开LUN进行访问时,系统会读取映射文件以获取原始LUN的引用。能够不用经过映射文件直接对裸LUN进行读写操做。RDM Volume只能是FC或者iSCSI的LUN。

NSI Double-Take的产品对数据在物理机和虚拟机之间的迁移,备份和恢复作得至关出色,惋惜相关的资料很少,因此了解得也颇有限。

Symantec Backup Exec的功能很是全面,这一点,能够为其它备份软件的开发提供方向性的参考。它支持的备份平台有NetWare,Macintosh,Linux,Unix,Windows,支持的应用软件有SAP,SharePoint,SQL Server,Exchange,DB2,Lotus Domino,Active Directory,Enterprise Vault,支持的虚拟机有VMWare,Hyper-V。

相关文章
相关标签/搜索