2.2. etcd のクラスターレイテンシー要件
etcd に低レイテンシー、高可用性ネットワークを提供するには、次の 2 つの重要な制約に対処する必要があります。
- ネットワーク I/O レイテンシー
- ディスク I/O レイテンシー
etcd は Raft コンセンサスアルゴリズムを使用しており、すべての変更はコミットされる前にクラスターメンバーの大多数にレプリケートされる必要があります。このプロセスは、ネットワークとディスクのパフォーマンスに強く影響されます。etcd リクエストの最小時間は、メンバー間のラウンドトリップタイム (RTT) と、データを永続ストレージに書き込むために必要な時間の合計です。
高可用性を実現するには、etcd はリーダー障害を迅速に検出し、そこから復旧する必要があります。これは、次の 2 つの主要なチューニングパラメーターに依存します。
- ハートビートの間隔
- リーダーがフォロワーにハートビートを送信する頻度。この値は、メンバー間の平均 RTT に近い値になる必要があります。
- 選出タイムアウト
- フォロワーが新しいリーダーになろうとする前に、ハートビートを聞かずに待機する時間。ネットワークの変動を考慮すると、これは RTT 値の少なくとも 10 倍にする必要があります。
健全なクラスターでは、安定性を確保し、頻繁なリーダー選出を回避するために、メンバー間のラウンドトリップ時間は 50 ミリ秒未満である必要があります。このため、etcd クラスターは、物理的な距離とネットワークレイテンシーを最小限に抑えるために、単一のデータセンターまたはアベイラビリティーゾーン内にデプロイされることがよくあります。
特にリーダー選出プロセス中に、低レイテンシーで高可用性のネットワークをサポートするには、アービターサイトを 10 ミリ秒未満の RTT レイテンシーを提供する場所に配置する必要があります。ネットワークのアービターコンポーネントは、分散システムの一貫性と可用性を維持します。