現在のHadoopにおけるHDFSはNameNodeが単一障害点となり、ダウンした場合一切の作業ができなくなってしまう。
Secondary Name Node はPrimaryのバックアップではなく、ジャーナル書き込み等を支援するノードのなるので注意。
そこで、Name ServerをRedHat標準のクラスタソフトであるRedHat Cluster Suiteと、Global File Systemを用いて可用性を保持させてみる。
GFSを使うメリットは全てのノードから等価にファイルシステムへアクセスできるため、RHCSで仮想IPの制御さえしてやれば、どのノードでもPrimary Name Nodeを起動できるようになる事。これはNFSでも実現できるが、細かなブロックアクセスが多い、Name NodeではGFSの方が性能を担保しやすい(と思う
■今回の環境は以下
・
RHEL5.5 クラスタ管理 192.168.1.101
・RHEL5.5 Primary Name Node 192.168.1.102
・RHEL5.5 Backup Name Node 192.168.1.103
・RHEL5.5 Secondary Name Node 192.168.1.104
・Solaris10 共有ストレージ(iSCSI)、192.168.1.10
・NameNodeの仮想アドレス 192.168.1.105
・NameNodeの仮想アドレス 192.168.1.106
・NameNodeの仮想アドレス 192.168.1.107
*このクラスタ構成はCentOSでも使える。が、RHCSは他のクラスタソフトに比べ、様々な障害に対して対応できるように設計されているため、構造がやや複雑なので、本番で使う場合は正規のサブスクリプションのあるRHEL APを推奨。
*ここでは動かすことに注力するので、細かな障害対応設定は省いているので注意。
*本当はネットワークはクラスタ通信用と分離した方が良いが、今回は全て同居させている。