Replication可以处理哪些类型的故障?
- 单个副本的“故障停止”故障
如:风扇停止工作,CPU 过热并自行关闭
有人被副本电源线或网线绊倒
软件发现磁盘空间不足并停止 - 也许不是硬件缺陷或软件错误或人为配置错误
地震或全市停电怎么样?
让副本在物理上分开存储。
两种主要的复制方法:
- 状态转移
主副本执行服务,主要将 [新] 状态发送到备份 - 复制状态机
客户端将操作发送到主节点,主序列并发送到备份
所有副本执行所有操作
如果相同的开始状态,相同的操作,同样的顺序,确定性的,然后相同的结束状态。
状态转移更简单,但是状态可能很大,通过网络传输很慢。
复制状态机通常产生较少的网络流量,与状态相比,操作通常很小,但要做好很复杂,VM-FT 使用复制状态机
我们希望副本在什么级别是相同的?
- 应用程序状态,例如数据库的表?
GFS 以这种方式工作
可以高效;主要只将高级操作发送到备份
应用程序代码(服务器)必须理解容错,例如转发操作流 - 机器级别,例如寄存器和 RAM 内容?
可能允许我们复制任何现有的服务器而无需修改!
需要转发机器事件(中断、DMA、&c)
需要“机器”修改发送/接收事件流…
VMware FT 复制了机器级状态
透明:可以运行任何现有的操作系统和服务器软件,对客户端来说就像一个单一的服务器