
_START_ARTICLE_
状态机复制
_START_PARAGRAPH_
在计算机科学领域，状态机复制是实现容错服务的一种常规方法，主要通过复制服务器，并协调客户端和这些服务器镜像间的交互来达到目标。这个方法也同时提供了理解和设计复制管理协议的一套基本框架。
_START_SECTION_
分布式服务
_START_PARAGRAPH_
分布式软件通常由客户端和服务器组成，每个服务包含一到多个服务器，并提供可以由客户端通过请求来调用的操作。尽管使用单个中心化服务器是实现服务的最简单方式，但这种方式使得服务的容错性最多能和运行服务器的处理器相同。假如这种程度的容错性是不可接受的，那么就必须引入多个故障无相关性的服务器。通常而言，单一服务器的多个服务镜像运行在分布式系统的分离处理器上，并通过协议来保障客户端和这些镜像间的交互。在分布式系统中，物理和电子上被隔离开的处理器保障了服务器之间故障没有相关性，彼此独立，这整合需求一致
_START_SECTION_
容错
_START_PARAGRAPH_
决定性是提供容错支持的理想特性。直观而言，假如系统存在多分拷贝，其中一个的故障会因为与其它系统的状态或者输出有差异，而变得明显。_NEWLINE_只要简单推理下，就可以知道实现容错性需要最少三份拷贝，在一个系统出错的情况下，其它两个系统可以供我们比较状态和输出。而两份拷贝显然不够，因为我们无从判别出错的是哪一个。_NEWLINE_再进一步推演，就可以知道具备三份拷贝的系统最多能支持单系统故障（随后必须修复或者替换掉故障拷贝）。假如有多余一个拷贝出现故障，那么三份状态或者输出都会互不相同，导致无法判断正确的拷贝。_NEWLINE_通常而言，一个支持F个故障的系统，必须至少包含2F+1份拷贝（也称为镜像）。多余的拷贝被用作区分正确和故障拷贝的证据。特殊的情况也可以改良这些制约_NEWLINE_目前的推理都预设这些镜像仅仅是面临随机的独立故障，比如内存错误或者硬盘崩溃。但源自某些镜像尝试欺骗系统而带来的问题，也同样能被状态机复制通过隔离变化来处理。_NEWLINE_值得一提的是，并不需要停掉故障镜像的运行，它们可以继续运作，即便会产出伪造或者错误的输出。