2.2. etcd 的集群延迟要求
应解决两个重要限制,以便为 etcd 提供低延迟高可用性网络:
- 网络 I/O 延迟
- 磁盘 I/O 延迟
etcd 使用 Raft 共识算法,每次更改都应该在提交前复制到大多数集群成员。这个过程对网络和磁盘性能高度敏感。etcd 请求的最小时间是成员之间的 Round-Trip Time (RTT),以及写入持久性存储的数据所需的时间。
为了获得高可用性,etcd 应该在 leader 出现故障时快速检测到并进行恢复。这依赖于两个关键调优参数:
- Heartbeat Interval
- 领导(leader)向跟随者(follower)发送心跳的频率。这个值应该接近成员之间的平均 RTT。
- 选举超时
- 在跟随者变为新的领导之前需要在没有接收到心跳后等待的时间。为了考虑到网络的差异,这应该至少为 RTT 值的 10 倍。
在一个健康的集群中,成员之间的往返时间应小于 50 ms,以确保稳定性和避免出现频繁领导选举的情况。正因如此,etcd 集群通常部署在单个数据中心或可用区中,以最大程度降低物理距离和网络延迟。
要支持低延迟、高可用性网络,特别是在领导选举过程中,一个仲裁站点应位于其提供的 RTT 延迟小于 10 ms 的位置。网络的仲裁程序组件在分布式系统中保持一致性和可用性。