8.4.3 可靠性与可用性
分布式系统需要处理各种故障,例如,软件故障、服务器故障、网络故障、数据中心故障、地震、火灾等。与其他分布式存储系统一样,OceanBase通过冗余的方式保障了高可靠性和高可用性。方法如下所示:
●OceanBase在ChunkServer中保存了基线数据的多个副本。单集群部署时一般会配置3个副本;主备集群部署时一般会配置每个集群2个副本,总共4个副本。
●OceanBase在UpdateServer中保存了增量数据的多个副本。UpdateServer主备模式下主备两台机器各保存一个副本,另外,每台机器都通过软件的方式实现了RAID1,将数据自动复制到多块磁盘,进一步增强了可靠性。
●ChunkServer的多个副本可以同时提供服务。Bigtable以及HBase这样的系统服务节点不冗余,如果服务器出现故障,需要等待其他节点恢复成功才能提供服务,而OceanBase多个ChunkServer的子表副本数据完全一致,可以同时提供服务。
●UpdateServer主备之间为热备,同一时刻只有一台机器为主UpdateServer提供写服务。如果主UpdateServer发生故障,OceanBase能够在几秒中之内(一般为3~5秒)检测到并将服务切换到备机,备机几乎没有预热时间。
●OceanBase存储多个副本并没有带来太多的成本。当前的主流服务器的磁盘容量通常是富余的,例如,300GB×12或600GB×12的服务器有3TB或6TB左右的磁盘总容量,但存储系统单机通常只能服务少得多的数据量。