同步复制vs异步复制
Evidian SafeKit
应用失效备援时是否数据丢失?
同步复制相对于异步复制有非常大的不同。根据您的选择,您有可能在应用失效备援时丢失数据。
同步复制对于交易应用的失效备援是非常重要的。使用同步复制,所有在第一个服务器的硬盘上的被提交数据被同步到第二个服务器的硬盘上。使用异步复制,如果发生失效,第一个服务器的硬盘上的被提交数据可能会丢失。还有一个替代方案叫半同步复制,将被提交数据放在第二个服务器中,但不一定存于硬盘中。
视频“如果服务器失效导致数据复制软件中断会发生什么事情?”的演示了使用同步复制和异步复制的区别。这个视频是基于Evidian SafeKit高可用软件制作的,该软件提供了在镜像集群中的同步块级和文档级的数据复制。
同步复制
就像SafeKit高可用软件所安装的以文档为基础的复制,当一个在主要服务器内复制过的文件执行了应用或文档系统缓存的IO硬盘时,在给应用或文档系统高速缓存发送IO确认前,SafeKit等待IO从本地硬盘和次要服务器的确认。
对于交易型应用的失效备援,这个机制是非常重要的。需要注意的是,SafeKit通过复制路径而不是整个硬盘来进行块级复制,这样大大地简化了集群的配置。
异步复制
当使用类似的其他方案,来实现的基于文档异步复制,IO被放置在主服务器上队列中,但主服务器不等次服务器的IO确认。
因此,如果主服务器失效时,所有数据就会来不及被通过网络复制到次服务器上。这样,交易型应用在失效时,就会丢失已被被提交数据。
半同步复制
SafeKit高可用软件使用的半同步复制,主服务器上同步但次服务器上异步。这时,SafeKit总是会等两台服务器确认后再给应用或高速缓冲器系统发确认。对于从服务器,有同步和异步两种选项。
在半同步复制情况下,当收到IO和硬盘存盘后次服务器给主服务器发送确认。在同步的情况下,次服务器把IO存到硬盘后给主服务器发送确认。
在N服务器上部署一个farm模块,并实施一个网络负载均衡集群 |
|
Windows farm |
Linux farm |
Generic Windows farm > | Generic Linux farm > |
Microsoft IIS > | - |
NGINX > | |
Apache > | |
Amazon AWS farm > | |
Microsoft Azure farm > | |
Google GCP farm > | |
Other cloud > |
不同的软件集群
SafeKit提供两个基础软件集群:镜像集群和farm 集群。几种应用模块可以配置在同一个软件集群上。因此,高级集群架构可以被实施:混合farm/mirror,active/active 或N-1。
做正确的选择
在市场上有很多种类的高可用方案,这些方案中,SafeKit的特点就是下面所介绍的简便性。您可以下载这个高可用性手册来选择适合您的关键应用的解决方案。
软件集群vs硬件集群
当您建立一个集群服务器时,有两个选择:一个像SafeKit的软件集群,或是一个硬件集群。相比之下SafeKit的实施会简单得多。
无共享vs硬盘共享集群
SafeKit是一个不共享集群而非硬盘共享集群。由于不需配置共享硬盘,服务器可以很容易地安装在远程计算机房,同时不需要SAN和可复制的硬盘阵列。
虚拟高可用 vs应用高可用
虚拟高可用在虚拟机级别上实现高可用,而应用高可用在应用级别实现高可用。在虚拟高可用和应用高可用之间做选择,请阅读这篇文章。
文件复制vs硬盘复制
不同于硬盘复制,在使用文件复制时,您仅仅需要确定您想实时复制的文件的路径就可以了。SafeKit是一个基于文件复制的方案。因此不需要配置特殊的硬盘就能够实现全部复制。
同步复制vs异步配置
如果您选择了SafeKit的同步复制而非异步复制,那么失效备援发生时您就不会再有任何的数据丢失。
没有网络先决条件的网络负载平衡
在VMware里,SafeKit是微软NLB的多播或单播的替代品,它不需要特殊的网络配置。并且,它可以在Windows,和Linux上运行。
SafeKit的高可用性架构
- 在两台服务器上部署一个镜像模块,并实施一个块级别和文件级的软件数据复制。
- 在N服务器上部署一个farm模块,并实施一个网络负载均衡集群。
- 部署一个镜像模块+一个farm模块,并实施一个负载均衡与镜像集群方案。
- 部署两个镜像模块,并实施一个active-active交叉数据复制集群。