一、存储复制同步复制工作过程(零数据丢失RPO)
1. 应用程序写入数据
2. 写入日志磁盘并将日志复制到远程站点
3. 远程站点写入日志
4. 远程站点返回写入结果
5. 复制引擎回应写入完成,应用程序IO结束
6. t&t1:稍后将日志刷新至数据磁盘
二、存储复制异步复制工作过程(近零数据丢失,取决于多种因素)
1. 应用程序写入数据
2. 数据写入日志磁盘
3. 复制引擎回应写入完成,应用程序IO结束
4. 复制日志到远程站点
5. 远程站点写入日志
6. 远程站点返回写入完成确认信息
7. t&t1:稍后将日志磁盘数据刷新至数据磁盘
三、同步复制适用场景
- 关键性业务应用
- 短距离节点(网络延迟<5ms, 或距离<30km)
- 专用的网络链路,高带宽,1GB起步,建议10GB以上实现同步复制。
对于同步复制而言,一个应用程序的写入请求,会等待日志复制到对方节点,返回写入成功后,IO才会结束,因此对于应用程序的写入会略微感到一点延迟,所以对于网络要求会很高,如果网络带宽足够高,延迟不高,那么就不会感觉到写入延迟,利用同步复制可以使您的业务应用获得崩溃一致性,发生故障时应用转移到其他站点继续运行,数据不会丢失。
四、异步复制适用场景
- 非关键性应用,可以接受数据出现丢失的可能性
- 跨城市/跨国家的部署场景
- 网络带宽有限,没有专用网络链路
在异步复制场景中,应用程序的写入请求会被复制引擎捕获,写入到本地日志磁盘后就立即向应用程序确认写入完成,此模式对于应用程序而言,性能并无消耗,稍后复制引擎会再把数据复制到远程站点,但此过程已经不在应用程序IO路径中,应用程序IO已经结束,所以远程站点的响应性和距离并不重要,但如果源站点忽然宕机,并且数据的副本仍未复制到远程站点,则存在数据丢失的风险。
文章评论