2.2. etcd のクラスターレイテンシーの要件
etcd に低レイテンシーの高可用性ネットワークを提供するために、以下の 2 つの重要な制約に対応する必要があります。
- ネットワーク I/O レイテンシー
- ディスク I/O レイテンシー
etcd は Raft コンセンサスアルゴリズムを使用し、すべての変更はコミット前にクラスターメンバーの大部分に複製する必要があります。このプロセスは、ネットワークとディスクのパフォーマンスに非常に敏感です。etcd 要求の最小時間は、メンバー間の Round-Trip Time (RTT)と、データが永続ストレージに書き込むのに必要な時間です。
高可用性を実現するには、etcd はリーダーの障害を迅速に検出し、そこから回復する必要があります。これは、2 つの主要なチューニングパラメーターによって異なります。
- ハートビートの間隔
- リーダーがフォロワーにハートビートを送信する頻度。この値は、メンバー間の平均 RTT に近い必要があります。
- 選択のタイムアウト
- フォロワーが新しいリーダーになる前にハートビートにハートビートを聞かずに待機する時間。これは、ネットワークの分散を考慮して、RTT 値の RTT 以上の 10 倍にする必要があります。
正常なクラスターでは、安定性を確保し、リーダーの選出が頻繁に行われるのを防ぐために、メンバー間のラウンドトリップ時間は 50 ミリ秒未満である必要があります。このため、物理的な距離とネットワークのレイテンシーを最小限に抑えるために、etcd クラスターは単一のデータセンターまたはアベイラビリティーゾーン内にデプロイされることが多いためです。
低レイテンシーの高可用性ネットワークをサポートするために、特にリーダー選出プロセス中に、arbiter サイトが 10 ミリ秒未満の RTT レイテンシーを提供する場所に配置する必要があります。ネットワークの arbiter コンポーネントは、分散システムで一貫性と可用性を維持します。