一、复制和镜像的概念
复制和镜像都是将一份数据搞成两份,区别就在于复制通常是异步的,而镜像通常是同步的。
异步更灵活,为什么这么说呢?
异步是根据策略进行的,而策略是人设定的,可以有多种策略,比如时间策略、阀值策略。但是一点,假如我们定义了一个策略,一个小时复制一次,结果一个小时还没到的时候就断电了,那么不到一个小时的数据就丢失了。
同步更可靠,为什么这么说呢?
同步更底层,通常是基于I/O的,也就是说一份数据要写两次,对于应用来说,写两次肯定是慢的,但是在可靠性的角度而言,这是快的,即使在同步的时候断电,丢失的数据量很小。
同步的慢是站在应用的角度来说的,同步的快是站在可靠性的角度来说的。
此外,复制通常是依靠系统的功能,而镜像的实现更为底层,是基于IO实现的。
总结一下吧!
复制(异步复制):主站点写入成功,即向上层通报写入成功,然后在后台将数据通过网络传输到异地,不能保证数据的一致性,响应很快。
镜像(同步复制):写操作在主站点和异地站点上都完成后,才向上层通报写入成功,保证两地的数据一致性,响应速度慢。
二、意外发生后如何处理?
复制会生成两份数据,一份是生产卷,一份是备用卷,对于有两份数据,系统其实是知道的,类似KVM虚拟化似的,系统是虚拟机,系统本身自己知道。生产卷如果坏了,需要将备用卷提升为生产卷,然后还要进行完整性校验业务才能正常继续,从生产卷意外发生到恢复业务需要小时级别的时间才能恢复 。复制通常是基于IP的,所以没有距离上的限制,即可以局域网也可以广域网,小时级别的恢复时间肯定不适用高可靠的应用,一般的应用足矣。
镜像生成的两份数据是一模一样的,系统是无感的,生产卷故障之后也是将备用的提升为可用的,而且效率非常高,通常是分钟级,适合于高可靠的应用。
还有一点值得一提,复制通常先搞一次全量,然后以后就慢慢增量了,而镜像不支持增强,生产卷写入一块数据,备用卷立马也写入一块。
三、异步复制技术
1、生产LUN接收生产主机的写请求
2、写请求数据写入生产LUN后,立即响应主机写完成;
3、在同步开始以前,先对生产LUN和灾备LUN分别生成快照;生产LUN的快照可以保证同步过程中读取到的生产LUN数据是具备一致性的。
4、生产LUN向灾备LUN同步数据时,读取生产LUN快照的数据,复制到灾备LUN,这类似于数据库的锁机制。
5、生产LUN向灾备LUN同步数据完成后,分别取消生产LUN和灾备LUN的快照,然后等待下一个同步的到来。
四、同步复制技术
- 主LUN接收生产主机的写请求,记录这个I/O对应数据块的差异日志值为“有差异”
- 同时把写请求的数据写入主LUN和从LUN,写从LUN时需要利用配置好的链路将数据发送到远端复制站点。
- 判断定主LUN和写从LUN的执行结果,如果都成功,则将差异日志改为“无差异”,否则保留“有差异”,在下一次启动同步时重新拷贝这一数据块。
五、宏杉同步镜像的写I/O流程
- 主机服务器的写请求到镜像卷
- 镜像卷将写IO请求复制为两份下发到两存储的镜像数据盘
- 等两套存储的镜像数据盘返回写操作完成
- 镜像卷返回写IO操作完成给前端主机,一个写请求完成。
六、宏杉镜像技术的特点
- 支持镜像的双活模式,支持同时并发读写
- 因为是双活,所以故障快速切换,无须人工干预
- 存储阵列性能的提升,有效协调不同存储读写性能差异,大幅提升整体读写性能。