2. 大規模分散処理システムにおける検証
2.2 大規模分散処理システムのプロダクトと処理
2.2.2 大規模分散処理システムの処理モデル
大規模分散処理システムの主要な処理である,データの書き込み/読み出し処理とリカバリ処 理の処理モデルについて説明する.データの書き込み/読み出し処理では,サーバ台数に応じ て処理量にスケーラブルに適応し,「スケールアウト性(分散かつ大規模)」を実現するデザインとな っている.リカバリ処理においては,「耐障害性(可用性)」を実現するデザインとなっている.検証 項目は,データの書き込み/読み出し各処理の確認のみならず,書き込み/読み出しの処理が 同時の場合の確認を行う項目である必要がある.また,その際のリカバリ処理による可用性の確認 も行う項目である必要がある.以下では,データの書き込み/読み出し処理とリカバリ処理の各処 理モデルについて説明する(図 9~図 11 参照).
●書き込み/読み出しの処理モデル:
書き込み/読み出し処理では,クライアントからのリクエストに応じて,データの書き込み/読み出 し処理を実施する.その際,処理の分散やデータの複製処理が実施される.処理の分散では,クラ イアントからの書き込み/読み出しのリクエストを複数のサーバ上にあるワーカに分散させて処理 することによって,システム全体の処理性能が向上する.以下に,分散テーブル, 分散ファイルの 分散方式を示す.
(1) 分散テーブルにおける処理分散方式:
分散テーブルでは,あるサーバ上のマスタが処理を担当するワーカを決定する.マスタによっ て決定されたワーカの管理情報はメタデータ(META)として管理され,さらにメタデータ
(META)の管理情報は,ルート(ROOT)として管理される.そのため処理を行うクライアントは,
ROOT から META の情報を得て,META からワーカの情報を得る.複数の META で分散して ワーカの情報を持っているため,クライアントの処理は分散される(図 9,図 10 の①~④).
(2) 分散ファイルにおける処理分散方式:
分散ファイルでは,リクエストを処理するワーカの決定をマスタが行う.分散ファイルへのリクエ ストは,リクエストを処理するワーカの情報をマスタに問い合わせることで処理が分散される(図 9,図 10 の⑤~⑥).
一方,データの複製処理では,書き込み時に複数個の複製を作成し,かつ複製間の整合性を保 つことでデータの消失を防ぐ.読み出し時は,ネットワークの距離が最も近いワーカの複製データ を読み出す.
分散テーブル マスタ
分散ファイル
マスタ 分散ロック
分散テーブル ワーカ
分散ファイル
ワーカ
ROOT
META
① ROOT 位置
② META
位置 ③リクエスト先 問い合わせ
④書き込み
⑥データ複製 負荷分散
依頼
⑤複製先 問い合わせ
クライアント
ワーカ群
図 9. 書き込みの処理モデル
分散テーブル マスタ
分散ファイル
マスタ 分散ロック
分散テーブル ワーカ
分散ファイル ワーカ
ROOT
META
① ROOT 位置
② META
位置 ③リクエスト先 問い合わせ
④読み出し 依頼
クライアント
⑤読み出し先 問い合わせ
⑥読み込み
⑦読み出し
ワーカ群
図 10. 読み出しの処理モデル
●リカバリの処理モデル:
リカバリ処理では, ネットワークの分断やサーバ障害が発生した場合に,分断された小サーバ群 や障害発生サーバを自動的に切り離し,別のサーバに切り離したサーバの役割を担わせる.図 11 に示すように具体的な処理は,分散ロックによりワーカ群の障害を検知し,分散テーブルと分散 ファイルのマスタに障害を通知する.障害の通知を受けたマスタは,フェールオーバによりサーバ の役割を交代させるため,別のワーカに処理の割り当てを変更する.その一方で,マスタからのリカ バリ依頼により複製データをコピーすることによってデータの消失を防ぐ.これにより,システム全体 を停止させずにクライアントからのリクエストに応答することが可能である.
マスタの多重化:障害時はフェールオーバを実施
分散テーブル マスタ
分散ファイル
マスタ 分散ロック
死活 監視
③リカバリ 依頼
④キーの割り 当て変更
④複製データ のコピー
複製データ
分散テーブル ワーカ
分散ファイル ワーカ
障害
①障害検知
②障害 通知
ワーカ群
図 11. リカバリの処理モデル