簡単な仕組みはApacheでAPサーバーに対する、ロードバランスやフェイルオーバー機能を実現して、Tomcatでクラスタリングを行っている。後、MySQLでレプリケーションってとこかな。
せっかくなので、ロードバランスとシステム構成についてまとめてみる。
調べてみると知らない方式が結構あった。
参考:■ロードバランサ用語説明
<ロードバランス>
アクセスを複数のサーバに分散すること。以下の方式がある。
●least connections <リースト・コネクション>
最もコネクション数の少ないサーバを選択してロードバランスを行う。
●hash <ハッシュ>
クライアントのIPアドレスをハッシュ値計算し、相対させたサーバにバランシングする。つまりあるIPアドレスのものは常にそのサーバにバランシングされる。
●round robin <ラウンド・ロビン>
複数のサーバに対して均等にロードバランスを行う。
●fastest <ファーステスト>
最も速く応答するサーバを選択してロードバランスを行う。
●observed <オブザーブド>
サーバのコネクション数と応答速度を監視して、ロードバランスを行う。
●predictive <プリディクティブ>
サーバのコネクション数と応答速度を監視し、各サーバのパフォーマンスを予測してロードバランスを行う。
●priority <プライオリティ>
あらかじめ指定されたサーバグループ毎の優先度に応じてロードバランスを行う。
●ratio <レシオ>
複数のサーバに対してあらかじめ指定した割合に応じてロードバランスを行う。
●static load balancing <スタティック・ロードバランシング>
あらかじめ定義された基準リストに基づいて接続配分を行う方式。その基準としては、現在のサーバ性能や現在の接続負荷は考慮していない。
今回、Apacheにて実現している方法はレシオだな。メインにリクエストを処理するサーバーに100の割合、メインにバッチ処理をする方に1の割合で設定している。でも、同じセッション間は同じAPサーバーにリクエストを投げるようにもなっているから、ハッシュ方も被ってるな。
次にシステム構成
●シンプレックスシステム
単純に1台のCPUで行う構成。もっとも安価だけど、安全性、信頼性、処理能力で劣る。
●デュアルシステム
同一の処理を行う2組のシステム構成。照合機などにより互いの処理結果がチェックされ、障害が発生すると直ちに障害系が切り離される。主に高信頼性、高稼働率を目指したシステム構成。
●デュップレックスシステム
CPUや周辺装置を二重化(主系、待機系)しており、主系が故障した際に待機系に切り替えて処理を続行する形態。待機系は通常はバッチ処理などをしている。(別名コールドスタンバイ)
また、待機系に処理をさせずいつでもオンラインシステムが稼動できるようにしておく構成をホットスタンバイという。主に高稼働率を目指したシステム構成。切り替えのための制御プログラムが必要。
●マルチプロセッサシステム
複数のCPUが主記憶装置や補助記憶装置を共有し、全体として1つのシステムとなる構成。同一処理を複数のプロセッサで処理できるので、ジョブが投入されると空いているCPUで処理を行う。障害が発生した場合は障害CPUを切り離す。主に負荷分散、高稼働率を目指したシステム構成。(別名:密結合マルチプロセッサ)
また、主記憶を共有せずに複数のマシンを高速リンクで接続した構成を疎結合マルチプロセッサという。
●タンデムシステム
2台のマシンを直列に接続した構成。冗長性を求めた構成ではない。
主に機能分散、負荷分散を目指した構成。
今回のAPサーバーの構成はデュップレックスシステムかな。Apacheが切り替えの制御をしてくれている(フェイルオーバー)。便利だ。
次回は具体的な構築でも記録するか。
【関連する記事】