采用这种方式实现系统的高可用性不仅能够实现数据的容灾,还可以实现均衡负载的功能。但是如果服务器1出现异常,服务器2接管服务器1 的服务,就会对服务器2的负载造成很大的冲击。
操作系统很少采用这种方式实现高可用性,但是数据库却有这样的产品会采用这种方式实现高可用性。例如ORACLE的RAC就是采用这种方式实现高可用性的。其主要考虑的是负载均衡,所以配置ORACLE的RAC时,要尽量避免每个服务器不要满负荷运行,这样就可以保证服务器接管时,不会造成对接管服务器的负载造成很大的冲击,使系统数据无法正常使用。
以上主要是通过共享存储实现数据的一致性,即Share Disk Cluster模式。目前也有很多数据库产品不会利用共享存储实现数据的一致性,使用这种模式的每个服务器都有自己私有的存储,各个存储通过数据复制技术来保证数据的一致性,即Share Nothing Cluster模式。例如MySQL Cluster就是采用了这种Share Nothing Cluster模式。针对数据复制也有单独的产品,例如Oracle GlodenGate就是通过捕获数据库的日志操作实现异地数据的同步。这种模式的示意图如下:

▲
(3)集群工作方式(多服务器互备方式)
多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

集群工作方式就是由两台机器的互备互援扩展成多台服务器的互备互援。这种工作方式也有Share Disk和Share Nothing的模式区分。这种集群工作方式结构更加复杂,当随着服务器的增加,数据复制,内存同步等操作都会对系统负载及网络造成很大的冲击。