在SNIA(全球网络存储工业协会)对CDP的定义,CDP连续数据保护就是在保证主要数据正常运行情况下,实现对变量数据进行跟踪,同时可以恢复到此前任意时间点的方法。一般CDP系统可以提供块级、文件级和应用级的数据保护。
那么就会有人问块级、文件级和应用级备份各自都有哪些特点?用户如何选择适合自身应用的备份方式?以下对它们做些简单的分析。
基于应用:日志级CDP 基于应用CDP系统只针对受保护应用系统,对应用系统资源占用较大。典型的比如Oracle GoldenGate、DataGuard这些基于数据库复制的产品。主要特点是数据传输量较小,比较容易实现双活或者读写分离/备库查询。不容易做到完全同步保护(即RPO=0),由于是通过以太网的IP传输,日志型CDP对应用性能的影响相对明显一些。而且存在一些不稳定的因素,需要用户有避免写入冲突的机制,无法防御数据库底层结构的损坏。
基于存储:数据块级和文件级 相比之下,文件级和块级CDP支持的数据类型就更多,除了数据库和文件(结构化和非结构化),可以对操作系统盘的保护(仅限块级保护)。同时,它们在备份目标上可以做到多对一。像火星舱这样的基于数据块保护的存储级CDP产品,其授权主要是针对容量和性能(高转速SAS还是近线硬盘),对于被保护客户端系统数量不限。
文件级CDP 文件级CDP通过监测文件系统层面之上的数据变化,只需要将变量传输到备份节点或者设备。实时或者定时(严格说应该归类为“准CDP”)文件复制实现起来相对简单,但由于基于TCP/IP协议传输,受限于网络带宽及损耗,如果要达到同步对应用系统性能影响会比较大。
文件级CDP还有一个问题,就是像Oracle ASM这样由应用直接建立在裸设备上,绕过文件系统直接管理的磁盘,无法保护。
数据块级CDP 数据块级CDP则没有这些限制,它的数据写入拆分实现位于磁盘驱动层面,在文件系统的下一层。如果是同步保护,就类似于RAID 1的镜像写入,无需磁盘缓冲区或者最多占据很少的内存。在上一篇中
我们讲到火星舱的RPO=0和RTO=0就是依赖于数据块级CDP。火星舱除了支持I/O颗粒度的数据回滚——这也是“真 CDP”所要求达到的,当用户部署Oracle ASM、Unix/Linux LVM的情况下,还能实现存储故障的自动接管。
数据块级CDP的一大优势是可以使用FC或者iSCSI存储网络协议,特别是前者。火星舱CDP也充分考虑到了数据一致性,对于Oracle、SQL Server等在这方面有严格要求的应用,火星舱提供了具备专利的一致性快照技术。该技术不同于传统存储的快照,采用被动式机制,感知数据库缓存刷盘的动作并在I/O记录上进行标记。保证了各种应用场合数据的有效恢复。
数据块级CDP在初始同步后也是只向目标设备写入变化数据,但在一个磁盘或者分区较大而其中存放数据的容量比例不大时,初始同步所占的时间,以及一下占用的备份空间太大(达不到精简的效果)。最新的火星舱数据保护系统5.0,在Web管理界面中加入了文件系统解析功能,可以只同步磁盘上被文件系统占用的数据块。这一点,可以说把文件级CDP的优点也结合了进来。
加密数据的保护对于用户在操作系统下对分区进行加密的方式,火星舱能够利用CDP磁盘镜像将所有分区的状态“原封不动”复制出来,当需要访问备份数据时,密码访问口令和解密与被保护的原分区完全相同。这也是数据块级CDP的独有优势,基于文件和应用日志的保护是无法实现的。
总结: 基于应用系统实现CDP,只针对受保护应用系统,对应用系统资源占用较大。基于文件系统,写完FAT表后,才开始复制,同时需要先读取数据;消耗大量系统资源突发增加网络带宽;基于数据块,I/O级复制技术,带外旁路(FC/IP SAN),不影响性能,块级别保护,不受OS干预。