大規模なeラーニングシステムを、安価で効率よく構築する方法について実験、研究をしています。Linuxベースのクラスタリングにより実現を考えています。
某県庁所在地の市の教育委員会向けに、数万人規模のeラーニングのシステムを構築したが、今後、大規模なシステムやアクセス集中に備えた準備が必要だと考えている。
eラーニングは、どうしても締め切り直前にアクセスが集中する傾向があったり、企業内であれば、案内をだした直後にアクセスが集中する。負荷分散、高可用性のシステム構築のノウハウを蓄積し、腕を上げていくことが必要だと考えている。
現在、サーバー群の構成をより高負荷、高可用性をもったモノにするため検証を行っているので、簡単に紹介させていただきます。
Linuxクラスターを作る目的としては、
ア.高速な計算処理
イ.大量の処理要求への対応
ウ.安定性や信頼性
などの場合があり、目的に応じて使われる技法も異なります。第1回目の今回は、ウに焦点をあてた技術を紹介します。
ウ.安定性や信頼性 を目的にした構成は、HA(High Availability)といわれており、システムに故障が生じてから復旧までの平均所要時間をできるだけ、短くする意図を持っています。
この意図をもつシステムを、安価かつ単純に構成させたい場合、オープンソースのソフトウェアを利用することで、実現が可能です。
詳しい設定等は次回に回しますが、Apache+PHP+MySQLの一般的な構成で考えた場合、以下のソフトの組み合わせで実現可能です。
●その1 heartbeat
heartbeat とは、クラスタ構成のおおもとを構成するためのソフトウェアで、オープンソースのプロダクトとなります。
●その2 MySQLのレプリケーション機能
MySQLは標準でレプリケーション機能を持っているので、この機能を利用することで、本番系から予備系への同期が行えます。
▼今回のシステムの構成を、単純に図示すると、以下のようなかたちになります。
●この場合の課題
この構成の場合、障害時の単純な切り替わりだけですので、高負荷状態への対処は考えられていません。高負荷状態への対応は、別の方式を検討する必要があります。