2.2. etcd의 클러스터 대기 시간 요구 사항
etcd에 대기 시간이 짧은 고가용성 네트워크를 제공하려면 다음 두 가지 중요한 제약 조건을 처리해야 합니다.
- 네트워크 I/O 대기 시간
- 디스크 I/O 대기 시간
etcd는 Raft 합의 알고리즘을 사용하고 모든 변경 사항은 커밋하기 전에 대부분의 클러스터 구성원에게 복제해야 합니다. 이 프로세스는 네트워크 및 디스크 성능에 매우 민감합니다. etcd 요청의 최소 시간은 멤버 간의 RTT(Round-Trip Time)와 데이터가 영구 스토리지에 쓰는 데 필요한 시간입니다.
고가용성을 달성하려면 etcd에서 리더 오류를 신속하게 감지하고 복구해야 합니다. 이는 두 가지 주요 튜닝 매개변수에 따라 다릅니다.
- heartbeat Interval
- 리더가 팔로워에게 하트비트를 보내는 빈도입니다. 이 값은 멤버 간의 평균 RTT에 근접해야 합니다.
- 선택 시간 초과
- 팔로어가 새로운 리더가 되기 전에 하트비트를 보지 않고 기다리는 시간입니다. 네트워크 분산을 고려할 RTT 값의 최소 10배 이상이어야 합니다.
정상 클러스터에서 멤버 간의 왕복 시간은 안정성을 보장하고 리더 선택이 자주 발생하는 것을 방지하기 위해 50ms 미만이어야 합니다. 이러한 이유로 etcd 클러스터는 종종 물리적 거리와 네트워크 대기 시간을 최소화하기 위해 단일 데이터 센터 또는 가용 영역에 배포됩니다.
특히 리더 선택 프로세스 중에 대기 시간이 짧은 고가용성 네트워크를 지원하려면 10ms 미만의 RTT 대기 시간을 제공하는 중재 사이트(rbiter site)가 있어야 합니다. 네트워크의 중재자 구성 요소는 분산 시스템에서 일관성과 가용성을 유지합니다.