10章ZooKeeperの実行

ZooKeeperは、開発者にとって重要なビルディングブロックであるだけではなく、運用者にとっても管理しやすいシステムとなるよう設計されている。分散システムが大きくなればなるほど管理は難しくなるため、頑健な管理手法がより重要になってくる。ZooKeeperは管理者チームが管理手法を学んで管理する、標準的な分散システムコンポーネントとなることを目指して設計された。これまでの例でZooKeeperサーバは簡単に起動できることを見てきた。しかし、ZooKeeperには、運用時に知っておくべきノブやダイアルがたくさんある。本章の目的は、読者にZooKeeperを実行する際に用いる管理ツールに慣れてもらうことである。

ZooKeeperサービスが正常に動作するには、正しく設定されていなくてはならない。ZooKeeperが基盤としている分散計算モデルは、操作条件が満たされた場合にしか機能しない。例えば、ZooKeeperの投票するサーバ群は、同じ設定を共有していなければならない。われわれの経験では、ZooKeeperにおける動作障害の最大の要因は、不適切で不整合な設定にある。

ZooKeeperの初期の頃に起きた事件を紹介しよう。あるユーザグループが、ZooKeeperのアプリケーションを開発し、完全にテストしてから実運用環境に展開した。そのころはすでに、ZooKeeperでプログラムするのも運用するのも簡単だったので、そのグループはZooKeeperのチームに相談もしないで、ZooKeeperサービスとアプリケーションとを実運用環境に上げてしまったのだ。

実運用のトラフィックが始まるとすぐに、問題があることが明らかになった。ZooKeeperのチームはそのユーザに、実環境に移す前に完全にテストしたのかと何度も確認したのだが、彼らはテストしたと言い張った。さまざまな状況を懸案した結果、スプリットブレインが疑われた。 ...

Get ZooKeeperによる分散システム管理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.