数据层容灾是将数据复制成多个副本,并将数据副本分散到不同物理位置的技术。
存储复制技术 | 存储双活 | 存储网关双活 | 基于操作系统的数据复制 | 基于数据库的数据复制 | 备份软件的数据复制 | |
实现原理 | 基于存储块拷贝或文件系统快照拷贝 | 存储IO双写 | 存储IO双写 | 基于操作系统层面的IO双写 | 基于数据库事务日志回放 | 基于数据副本拷贝 |
限制条件 | 同厂商的存储设备 | 同厂商型号的高端存储 | 支持异构存储 | 同厂商的存储设备,存在操作系统限制 | 支持异构存储,存在数据库限制 | 支持异构存储 |
可应对的故障 | 硬件故障 | 硬件故障 | 硬件故障 | 硬件故障 | 软硬件故障 | 软硬件故障及人为误操作 |
性能影响 | 较小 | 对写IO有影响 | 对写IO有影响 | 对写IO有影响 | 较小 | 较小 |
故障处理方式 | 手工切换 | 自动切换 | 自动切换 | 自动切换 | 自动切换和半自动切换 | 手工恢复 |
RTO &RPO | RTO小时级,RPO分钟级 | RTO秒级,RPO=0 | RTO秒级,RPO=0 | RTO秒级,RPO=0 | RTO分钟级,RPO秒级 | RTO小时级, RPO约为一天 |
数据类型 | 结构化和非结构化数据 | 结构化数据,部分支持非结构化数据 | 结构化数据 | 结构化数据 | 结构化数据 | 结构化和非结构化数据 |
成本 | 中等 | 高 | 高 | 中等 | 高 | 低 |
不同数据层容灾方案更有特点,有适合的容灾场景,也有其不足,要注意结合应用。
收起目前我非常了解的一种容灾方案是一家灾备软件商做的:基于操作系统的数据块级别的实时备份+双机镜像+自动接管。
对操作系统下挂载的存储没有过多的限制,对数据类型也没有限制(结构化数据+非结构话数据都可),只是对操作系统有兼容性问题,我所知的兼容性目前已满足6种不同的操作系统:Windows、CentOS、RHEL、统信、龙蜥、麒麟。
其原理是,代理模块实时监控主机的IO变化,并实时复制一份发送到备份系统中,再由备份系统将数据实时同步给容灾机,并且在同步过程中,备份系统本地还可以额外保留一份备份数据,用于解决主机上误删除重要文件,导致容灾机上同样被删除的问题,通过这份本地数据,可以将主机的数据状态恢复到之前任意时间点的状态;当主机出现故障时,通过备份系统的监测方法,可以做到将主机的IP地址漂移到容灾机上,并通知容灾机拉起结构化数据库或其他业务应用。