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