耐故障処理 Fault Tolerance 「分散計算の基礎」 12章 発表者 : 高橋 慧.

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

Internet Explorer 障害解析 最初の一歩 - IE のトラブルを理解する -. 概要 Internet Explorer を使用中に発生するトラブルの 種類と、調査のための切り分け方法を紹介します! (以降は IE と略称で表記します) よくあるお問い合わせ Web ページの表示が白画面のまま完了しない.
CSMA/CD 方式 (搬送波感知多重アクセス/衝突検出) 森 一喜. CSMA / CD方式と は・・・? LAN上でPC間でのデータのやりとりを行う イーサネット型のアクセス制御方式の一つで ある。 ※イーサネット型とは? イーサネット型LANは現在最も普及している 方式で、データ転送速度は最大100M.
RailsによるAjaxの利用 回生 小野 実.
Curlの特徴.
耐故障アルゴリズム.
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
メモリコンシステンシモデル memory consistency model
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
最新ファイルの提供を保証する代理FTPサーバの開発
1.基礎概念 1.1 ディペンダブルなシステムとは Dependability Fault Avoidance
過負荷時のWebアプリケーションの性能劣化を改善する Session-level Queue Scheduling
GoNET ~ Ver 2.3 新機能紹介 ~ ネットワーク接続制御アプライアンス 2013年11月リリース 2013年10月
ネットワーク層.
報告 (2006/9/6) 高橋 慧.
オペレーティングシステムJ/K 2004年10月7日
神奈川大学大学院工学研究科 電気電子情報工学専攻
第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復.
らくらく学校連絡網 スライドショーで見る操作ガイド -4- 登録 抜粋-登録者作業 escで中断、リターンキーで進みます
小型デバイスからのデータアクセス 情報処理系論 第5回.
セキュリティ・チェックリスト解説 【5~10分】
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
Ibaraki Univ. Dept of Electrical & Electronic Eng.
輪講: 詳解TCP/IP ACE B3 suzuk.
並列分散プログラミング.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
ファイアウォール 基礎教育 (2日目).
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Occam言語による マルチプリエンプティブシステムの 実装と検証
「コンピュータと情報システム」 10章 システムの運用と管理
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
第9章 Error and Control Messages (ICMP)
分散IDSの実行環境の分離 による安全性の向上
第15章 TFTP:トリビアル・ファイル転送プロトコル
Ibaraki Univ. Dept of Electrical & Electronic Eng.
リモートホストの異常を検知するための GPUとの直接通信機構
インターネットにおける真に プライベートなネットワークの構築
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
Ibaraki Univ. Dept of Electrical & Electronic Eng.
発注者側サイト操作説明書 作成日:2004年6月 Ver1.0 初版 改 訂:2005年9月 Ver1.2 株式会社 コニファ.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
計算機工学III オペレーティングシステム #4 並行プロセス:排他制御基礎 2006/04/28 津邑 公暁
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
リカバリ 東大生研 情報融合研究センタ 喜連川優.
NFC Dynamic Tag “ST25DV“のご紹介
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
コンピュータアーキテクチャ 第 9 回.
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
全体ミーティング (5/23) 村田雅之.
SQL Server ベースの SAP システム における高可用性ソリューション
エラー訂正符号を含むシステム CD, DAT, MD, DVD, ディジタルVTR等 ディジタル(衛星)TV放送 ディジタル・セルラ
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
コンピュータアーキテクチャ 第 9 回.
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
3 分散システムのフォールトトレランス 分散システム Distributed Systems
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Presentation transcript:

耐故障処理 Fault Tolerance 「分散計算の基礎」 12章 発表者 : 高橋 慧

耐故障処理とは コンピュータでは様々なエラーが発生 これらのエラーを検知して プログラム自体のバグ 外的要因によるプロセスの中断・停止 ネットワークの障害 これらのエラーを検知して エラー処理を行い、終了する 修復して処理を継続する

発表の流れ プロセス単位での耐故障処理 並列システムでの耐故障処理 送信エラーを考慮したbroadcast 簡単なデモ Two Phase Commit Protocol Voting Protocol 送信エラーを考慮したbroadcast Atomic Broadcast

プロセス単位での耐故障処理 プロセスの予期しない終了への対処 問題点 ログによって復帰する バックアップのプロセスが処理を引き継ぐ 常に複数のプロセスが平行して処理を行う 問題点 復帰しても再びエラーになった時は? →ログを資料にデバッグ 何度も計算したとき、結果は一定なのか? →常に結果が同じになる処理のみを考える

簡単なデモ 一定間隔で値をファイルに記録 死んだらログを読んで処理継続 親プロセスと子プロセスが存在 子が死んだら親が子を立ち上げる 別プロセッサからpsの出力を監視 プロセスが死んだら、rshで立ち上げる

並列システムでの耐故障処理 各プロセッサでデータの同期が必要 →同時刻に読むデータは同一(atomic) Two Phase Commit readは自由・writeに許可が必要 全員の同意を得てwrite (commit) エラー処理を行い、処理中断 Voting read、writeとも許可が必要 半数以上の賛成が得られればwrite/readを許可 エラー時でも、残ったプロセッサで処理継続

同期の必要性 プロセッサ間でデータの同期が必要 (データの同期をatomicityと呼ぶ) メッセージ消失によりatomicityを失った例 X=1 X=2 xのatomicityが 保たれていない X=1 (X=1) X=2に変更 X=2に変更 変更の送信に失敗 X=1 X=2 X=2 変更を送信

Two Phase Commitの概要 前提 基本的なアイディア 親プロセスが1つある 通信路は信頼できない abortすると結果は反映されない 全プロセスが同意した場合のみcommit commit / abortは一意 → atomicityの維持

Two Phase Commitの操作 子プロセッサが親にcommitを要求 親は全ての子にcommit_requestを送信 (エラー時)abortを送信 (正常時) ログを取り、agreeを返信し、ブロック 親は子からの返信をある時間待って (一つでもagreeしない時) agreeしたプロセスにabortを送信 (全員がagreeした時) commitを送信し、commit操作 agreeを送信した子は、親からのメッセージによって (abortを受信)  ログにより復帰し、ブロック解除 (commitを受信) 待機し、commitに必要な処理のみ行う 親はcommitが完了したら、completeを送信 子はcompeteを受信したら、ブロック解除

Two Phase Commitの例 (1) Commitが行われる例 commit request agree complete X=2に更新 Commit完了 受信を確認 Commit操作開始 X=2を送信 X=1 X=2 commit request agree complete commit X=2に更新 agree X=1 X=2 block解除 X=2に変更を要求 ログを取ってblock X=2に更新 X=1 X=2 ログを取ってblock block解除

Two Phase Commitの例 (2) abortされる例 水色がcommit_requestに返信しない場合 commit timeout Abortを決定 Abortを送信 X=1 (X=1) commit request agree abort X=2に変更を要求 X=1 (X=1) No reply block解除 ログを取ってblock ログから復帰 X=1 メッセージを返信できない

Two Phase Commitの特徴 処理時間は一番遅いプロセッサに依存 prepare stateを設けたcommit protocol  →ますます遅くなる 通信が高速で、頻繁には失敗しないシステムで、処理の確実性を保つのに有用

Votingの概要 前提 基本的なアイディア プロセッサに親子の区別はない 通信路は信頼できない 各プロセッサはデータのコピーを持つ 読み書きするにはvoteをする必要がある quorum(定足数)を満たすと権利を得られる

Votingの操作 (準備) 各プロセッサがデータのコピーを持っている データの更新回数(version) も付随している 各プロセッサは、アクセスモードを記憶している write mode (一人だけread/writeアクセス) read mode (全員read onlyアクセス) noaccess mode (全員アクセス不可) vote結果待ち mode voteによりデータアクセスのモードを切り替える 各プロセッサはvoteのための票数(votes)を持つ

Votingの操作 r/w したいプロセッサ(幹事)がvote_requestを送信 各プロセッサは自分のmodeに応じてvote (noaccess) 自分のvotesとversionを返信、結果待ち (それ以外)  反対を返信 幹事は最新のversionを持つ賛成票を集計し、 quorumを満たせば、read modeに入ることを送信 満たさなければ、vote失敗を送信 幹事は自分のデータが古い場合、最新のものを入手 writeの場合は変更したデータを送信 各プロセッサはデータとversionを変更 操作が終わったら、noaccessモードに戻る

Votingの例 quorum = 3、votesは全プロセッサで1とする [成立] [失敗] 賛成: 1,3,4 賛成: 1,3,4 [1] request ver.3 [1] request ver.3 agree ver.2 [2] agree ver.2 [5] disagree ver.2 agree ver.2 [2] agree ver.2 [5] disagree ver.2 [3] agree ver.3 [4] agree ver.3 [3] agree ver.3 [4] network failure 賛成: 1,3,4   無効: 2 反対: 5 賛成: 1,3,4   無効: 2, 4 反対: 5

quorumの設定 同時に二つのwriteが起こらない →w > v/2 writeとreadは並存しない →r + w > v read_quorum=r, write_quorum=w, ∑votes=vとする。 同時に二つのwriteが起こらない →w > v/2 writeとreadは並存しない →r + w > v writeが頻繁に発生→wを小さく writeがあまり起こらない→wを大きく w=vなら、two phase commitと同じ

votesの設定 信頼でき高速なプロセッサは票数を多く c=8, w=5 c=4, w=3 成立するのは 成立するのは [1] 1msec votes=3 [2] 10msec votes=2 [1] 1msec votes=1 [2] 10msec votes=1 [3] 10msec votes=2 [4] 100msec votes=1 [3] 10msec votes=1 [4] 100msec votes=1 c=8, w=5 成立するのは {1,2} (10ms) {1,3} (10ms) {1,2,3} (10ms) {1,2,4} (100ms) {1,3,4} (100msec) {2,3,4} (100ms) {1,2,3,4} (100msec) c=4, w=3 成立するのは {1,2,3} (10ms) {1,2,4} (100ms) {1,3,4} (100ms) {2,3,4} (100ms) {1,2,3,4} (100ms)

Votingの特徴 近いプロセッサだけで同意が成立 voteの票数やquorum、さらにタイムアウトや賛否の決め方を変更し、柔軟な運用ができる さらに耐故障性を高く Dynamic Vote Quorum Reassignment 不均質で信頼性の低いシステムで有効

atomic broadcastの概要 前提 基本的なアイディア 任意の一プロセッサがbroadcastする 全員の同期が必要 メッセージが失われる可能性がある 基本的なアイディア メッセージの到着と順序の同一性を保障 到着したメッセージは一度バッファに入る 全プロセッサでメッセージが到着したら受信

atomic broadcastの操作 送信者がメッセージをbroadcast。msgにはIDがある 受信者はメッセージが到着したら以下の操作を行う もしキューに同一IDのメッセージがあれば受信しない 到着時のlamport clockをpriorityとして設定 “undeliverable”マークを付け、キュー(priority付き)に入れる 送信者は指定時間返信を待ち、 返信が来ないプロセッサに先と度同じIDを用いて再送信 全ての返信を受信したら、その中で最大のpriorityをbroadcast 受信者はpriorityを受信したら メッセージのpriorityを更新し、”deliverable”マークをつける キューの先頭から”deliverable”なメッセージを順に受信する

まとめ 耐故障性には処理の冗長性が不可欠 完全な耐故障は存在しない →性能と耐故障性のトレードオフ 耐故障プログラムを書くのは大変 (伝令のパラドックス) →性能と耐故障性のトレードオフ 耐故障プログラムを書くのは大変 →下層で信頼性を確保(TCPとIPの関係)