镜像集群中的块级别和文件级别的数据复制
Evidian SafeKit
核心数据库应用的高可用性
SafeKit的镜像集群通过块级和文件级数据复制为核心的数据库应用提供了一个简单的高可用性解决方案。SafeKit的镜像集群可以运行在Windows, 和Linux 操作系统平台上。她的工作方式和SAN镜像一样,利用同步、实时的块级数据复制实现了和复杂的硬件故障备援集群的同样功能,但是成本和复杂性却大大降低。
镜像集群是一个主-备的高可用性方案。应用程序运行在主服务器上,当应用程序在主服务器上失效的时候,自动的切换到备用服务器上。
软件的数据复制配置为文件级别时利用文件目录的名称来定位复制。文件目录可以包括数据库文件或者普通文件。当配置为文件内的数据块级复制的时候,这种架构特别适合为后端应用的关键数据提供高可用性保护。
SafeKit高可用性软件提供了一个通用的镜像模块来构建这种类型的高可用性集群架构。您可以利用这个通用的镜像模块来编写自己的镜像模块。 SakeKit软件中包含了Microsoft SQL server, MySQL, Oracle<, PostgreSQL, Firebird, Hyper-V, KVM 镜像模块的样例。从一个镜像模块,您也可以使用自动的失效备援在Hyper-V 或 KVM复制一个完整的虚拟机。这篇文章解释了虚拟高可用与应用高可用的区别。
步骤一. 在镜像集群中的块级和文件级数据复制
服务器1(主服务器)运行应用。用户通过虚拟IP地址链接到镜像集群。SafeKit实时复制由应用程序打开的文件,只有被修改的文件才通过网络被复制到备用服务器,这可以有效的减小网络负载。(块级复制是在文件内部)
在文件复制级别,只需要在SafeKit中配置文件目录的名字。两个服务器不需要进行磁盘架构的预先准备。被复制的目录也有可能在系统磁盘上。
步骤二. 故障备援
当服务器1失效的时候,服务器2接管。 SafeKit自动切换集群的虚拟IP地址到服务器2上,并自动启动服务器2上的应用。利用在服务器1和服务器2上的同步数据复制,服务器2上的应用程序可以发现通过SafeKit复制到服务器2上的数据文件。这时应用程序在服务器2上本地运行,他的数据也不再与服务器1进行复制。
故障备援的时间等于故障检测时间(默认设置为30秒)加上应用程序启动时间。不像磁盘复制类的解决方案,不需要文件系统重新装载和恢复文件系统过程的时间。
第三部.故障恢复和重新整合
故障恢复包括修复后的服务器1的重新启动. SafeKit 自动同步在服务器1宕机期间,服务器2上被修改的应用程序数据文件。
重新整合的过程不会对应用产生影响,保证应用程序可以持续在服务器2上继续运行。自动的故障恢复过程是SafeKit区别于其他需要手动停止服务器2上的应用然后与服务器1进行重新同步的解决方案的主要特性。
步骤4 重新切换回块级和文件级软件复制的镜像集群
在重新整合后,应用再一次运行在镜像模式中。系统重新返回高可用性架构,只是应用运行在服务器2上,服务器1承担备份服务器的角色。
如果管理员希望应用运行在服务器1上,他/她可以在允许时手动或者配置系统自动执行“切换”命令。
在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。
Hyper-V Cluster (英语)
This video shows a Hyper-V cluster with full replication of virtual machines.
This is a typical architecture with high availability at the virtual machine level, with no need to write restart scripts per application. Hyper-V and KVM are supported, but VMware is not included in this configuration.
Virtual machines can run on both Hyper-V servers and they are restarted in case of failure.
Microsoft SQL Server Cluster (英语)
This video shows a mirror module configuration with synchronous real-time replication and failover.
This is a typical architecture with high availability at the application level, utilizing restart scripts per application (here SQL service). It is independent of the underlying infrastructure, whether it be physical machines or virtual machines under any hypervisor, including VMware.
做正确的选择
在市场上有很多种类的高可用方案,这些方案中,SafeKit的特点就是下面所介绍的简便性。您可以下载这个高可用性手册来选择适合您的关键应用的解决方案。
软件集群vs硬件集群
当您建立一个集群服务器时,有两个选择:一个像SafeKit的软件集群,或是一个硬件集群。相比之下SafeKit的实施会简单得多。
无共享vs硬盘共享集群
SafeKit是一个不共享集群而非硬盘共享集群。由于不需配置共享硬盘,服务器可以很容易地安装在远程计算机房,同时不需要SAN和可复制的硬盘阵列。
虚拟高可用 vs应用高可用
虚拟高可用在虚拟机级别上实现高可用,而应用高可用在应用级别实现高可用。在虚拟高可用和应用高可用之间做选择,请阅读这篇文章。
文件复制vs硬盘复制
不同于硬盘复制,在使用文件复制时,您仅仅需要确定您想实时复制的文件的路径就可以了。SafeKit是一个基于文件复制的方案。因此不需要配置特殊的硬盘就能够实现全部复制。
同步复制vs异步配置
如果您选择了SafeKit的同步复制而非异步复制,那么失效备援发生时您就不会再有任何的数据丢失。
没有网络先决条件的网络负载平衡
在VMware里,SafeKit是微软NLB的多播或单播的替代品,它不需要特殊的网络配置。并且,它可以在Windows,和Linux上运行。
SafeKit的高可用性架构
- 在两台服务器上部署一个镜像模块,并实施一个块级别和文件级的软件数据复制。
- 在N服务器上部署一个farm模块,并实施一个网络负载均衡集群。
- 部署一个镜像模块+一个farm模块,并实施一个负载均衡与镜像集群方案。
- 部署两个镜像模块,并实施一个active-active交叉数据复制集群。