Comments
Description
Transcript
DB2 pureScale の の高可用性 高可用性
DB2 pureScale の高可用性 © 2011 IBM Corporation アーキテクチャー Agenda DB2 pureScaleの の可用性 障害ケース 障害ケースと ケースとリカバリー・ リカバリー・アクション – ノード障害 – CF障害 負荷分散と 負荷分散とクライアント・ クライアント・リルート log buffer, dbheap, & other heaps DB2 pureScaleと と他社クラスタ 他社クラスタの クラスタの違い 2 © 2011 IBM Corporation DB2 pureScaleの の可用性 DB2 pureScale可用性 可用性の 可用性のデザイン – 高速な障害検知とリカバリー自動化 – 全体リカバリー処理の高速化 – 障害発生からリカバリー完了までの間 のサービス影響を極小化 DB2 Log メンバー・ノードに障害が発生した際、リカバ リーが完了するまで、障害ノードの更新中 (インフライト)のデータだけをロックする – 上記以外のデータは全面的にアクセス が可能 – 障害ノード以外は通常通り稼動 障害が発生したノードで実行中のトランザク ションも自動的に正常なノードに割り振られ る。 統合的な障害検知と回復処理の自動化によ り、サービスの可用性を最大化 CF Log DB2 Log 共有データ 利用できるデータの割合(%) DB2 DB2 Log CF データベースノードの データベースノードの障害 回復中には 回復中にはインフライトデータ にはインフライトデータのみを インフライトデータのみを ロック 100 50 Time (~seconds) 3 © 2011 IBM Corporation DB2 Cluster Services による自動障害対応 による自動障害対応 DB2 コンポーネントとして統合 – TSA (Tivoli System Automation)による障害検知、自動対応 DB2 インストールの一環としてインストールされる – DB2 Fix Pack の適用によってアップデート DB2 CS Event Notification & Handling DB2 DB2 DB2 CFp CFs DB2 DB2 Cluster Services – Cluster Manager DB2 Cluster Services - Cluster File System 4 © 2011 IBM Corporation 障害ケースとリカバリー・アクション 5 © 2011 IBM Corporation 障害ケース 障害ケースと ケースとリカバリー・ リカバリー・アクション 障害ケース DB2 Member プロセス障害 リカバリー・アクション 可用性レベル 自ノードでプロセスをリス タート(クラッシュ・リカバ リー) 障害発生メンバーによって更新中に保持さ れたデータがロックされる。(その他のデータ はすべてアクセス可能) DB2 Member ノード障害 他ノードでクラッシュリカ バリーを代行 プライマリ CF 障害 セカンダリCFがプライマリ CFに切り替わる 障害メンバーへの接続は自動的に他のメン バーにリルート(再接続される) アプリケーションからは透過的 瞬間的にCFへの要求がWAIT セカンダリ CF 障害 セカンダリーへの二重化 を停止 アプリケーションからは透過的 瞬間的にCFへの要求がWAIT 6 © 2011 IBM Corporation メンバー障害 7 © 2011 IBM Corporation メンバープロセス障害 メンバープロセス障害 : 自ノード上 ノード上で回復処理 ‘kill -9’を を誤ってメンバー ってメンバーに メンバーに発行 DB2クラスター クラスター・ クラスター・サービスは サービスは、メンバーがいなくなったことを メンバーがいなくなったことを検 がいなくなったことを検 知、自動的に 自動的に回復アクション 回復アクションを アクションを実施 – – – 他のメンバー、CFサーバーに伝える Single Database View もともと稼動していたホストでメンバーの再起動と回復処理を開始 メンバーのリスタートはクラッシュリカバリーのような処理になるが より高速 • • Clients インフライトのトランザクションのみをRedo CFのメモリー上にキャッシュされたページを活用 kill -9 この間 この間、クライアント接続 クライアント接続は 接続は透過的に 透過的に正常な 正常なメンバーへ メンバーへリルー トされる DB2 CS 他のメンバーは メンバーはオンラインリカバリー中 オンラインリカバリー中も完全に 完全に利用可能 – “Online Failover” – 他メンバーは障害メンバーによる更新アクセスのためにロックさ れたデータ以外に参照・更新を継続することが可能。 8 Log Log Secondary CF Pages Log CF CS CF CS メンバー回復処理 メンバー回復処理が 回復処理が終了 – DB2 CS Log Records Updated Pages Global Locks DB2 CS プライマリCFは障害発生時にメンバーが持っていた更新ロックを 保持(リテインド・ロック) Log – DB2 CS Shared Data Updated Pages Global Locks Primary CF リテインド・ロックが解放されすべてのデータがアクセス可能 © 2011 IBM Corporation メンバーの 障害 : 他ノードで light) メンバーのHW障害 ノードでメンバー回復処理 メンバー回復処理(Restart 回復処理 アクシデントで アクシデントで電源コード 電源コードが コードが抜けた Clients クラスター・ クラスター・サービスの サービスのハートビートが ハートビートが途絶え 途絶え、メン バー・ バー・ノードが ノードがダウンしたことを ダウンしたことを検知 したことを検知 – – – 他のメンバー、CFに通知 障害メンバーをログとデータから”Fence”する 自動的にメンバーのリスタートを他のノードで実行(Restart Light) • – 回復専用プロセスとして事前に割り当てられたメモリーを使用 メンバーのリスタートはクラッシュリカバリーのような処理にな るがより高速 • • Single Database View インフライトのトランザクションのみをRedo CFのメモリー上にキャッシュされたページを活用 この間 この間、クライアント接続 クライアント接続は 接続は透過的に 透過的に正常な 正常なメンバーへ メンバーへ リルートされる リルートされる DB2 CS DB2 CS DB2 CS Fe nc e 他のメンバーは メンバーはオンラインリカバリー中 オンラインリカバリー中も完全に 完全に利用 可能 – “Online Failover” Log 9 リテインド・ロックが解放されすべてのデータがアクセス可能 Log Log Pa CS Updated Pages Global Locks メンバー回復処理 メンバー回復処理が 回復処理が終了 – Log s ec R – プライマリCFは障害発生時にメンバーが持っていた更新ロッ クを保持(リテインド・ロック) 他メンバーは障害メンバーによる更新アクセスのためにロック されたデータ以外に参照・更新を継続することが可能。 DB2 g Lo – DB2 CS Secondary Shared Data ge s CS Updated Pages Global Locks Primary © 2011 IBM Corporation 補足: 補足: 障害検知 DB2自体 自体が プロセスの 自体がwatchdog プロセスによって プロセスによってDB2プロセス によって プロセスの障害検知を 障害検知を行う – DB2メンバー(プロセス)に障害が発生するとwatchdogに通知される。 – Watchdogプロセスがクラスターマネージャに リカバリーを開始するよう 割り込み要求を行う。 – 障害検知時間はほんの数秒 スプリット・ スプリット・ブレインから ブレインからデータ からデータを データを守る – SCSI-3 Persistent Reserve によるI/O Fencing • – スプリット・ブレインを防ぐために強制停止する仕組み(STONITH). DB2 クラスター・ クラスター・マネージャは マネージャはロー・ ロー・レベルで レベルで実行される 実行される – 10 クラスターから切り離されたノードから共有データ、ログへのI/Oをフェンスする。 迅速に障害を検知、少ないシステムリソース利用 © 2011 IBM Corporation メンバーの メンバーの復旧 電源が 電源が入り、システムが システムがリブート DB2クラスター クラスター・ クラスター・サービスにより サービスによりノード によりノードが ノードが利用可 能な状態であることを 状態であることを自動的 であることを自動的に 自動的に検知 – 他のメンバーやCFサーバーに伝える – I/Oのブロックを解放する – 元のホストでメンバーが起動する Clients Single Database View クライアントは クライアントは使用可能となった 使用可能となったメンバー となったメンバーに メンバーに自動 的に接続される 接続される DB2 CS DB2 CS DB2 CS DB2 CS DB2 Log Log Log CS CS Updated Pages Global Locks Secondary 11 Log Shared Data Updated Pages Global Locks Primary © 2011 IBM Corporation 補足: とは・・・ 補足: Restart “Light”とは とは・・・ プロセス再起動 プロセス再起動が 再起動が失敗する 失敗する場合 する場合、 場合、サーバー障害 サーバー障害の 障害の場合 – 他のホスト上でリカバリーを実施 – リカバリー専用のプロセスが障害メンバーのログを利用してリカバリーを実施(restart light) – メンバー起動時に”skelton” プロセスが事前に起動 – リカバリー実施に必要な最小限のリソースを事前に割り当てる。 • RSTRT_LIGHT_MEM 構成パラメータで制御 Restart Light が完了後も 完了後も、guest member は存在し 存在し続けるが、 けるが、接続を 接続を受け付けることはない。 けることはない。 – もともと起動していたサーバーが回復し、そのサーバー(home host)上でプロセス起動が完了す ると、通常通り接続を受け入れることができる。 ■ インスタンス・プロセスと、Restart light 用のSkeltonプロセス 12 db2sdin1 573634 737426 117 16:07:11 - 13:25 db2sysc 0 db2sdin1 696440 827622 0 16:06:26 - 0:00 db2sysc (idle) db2sdin1 721040 647252 0 16:06:26 - 0:00 db2sysc (idle) db2sdin1 839834 454862 0 16:06:27 - 0:00 db2sysc (idle) © 2011 IBM Corporation 参考: トランザクションの 参考: アプリケーションへの アプリケーションへの影響 への影響 (トランザクション トランザクションの挙動) 挙動 ① 障害メンバー 障害メンバーで メンバーでトランザクション実行途中 トランザクション実行途中の 実行途中の場合: 場合: • エラー検知後、正常なメンバーに再接続し、アプリケーションにエラーを通知する。 • 実行中のトランザクションがサーバー側でRollbackされたことをアプリに伝達するた め。 ② 障害メンバー 障害メンバーに して新規の トランザクションを開始する 開始する場合 メンバーに対して新規 新規のトランザクションを する場合 • エラー検知後、正常なメンバーに再接続し、SQLを再実行する。 • アプリケーションにはメンバー障害が発生したことは通知されない。 ※ ワークロード・バランス(データソースプロパティ:sysplesEnableWLB)利用を前提とする。 ①障害メンバー 障害メンバーで メンバーでトランザクション実行中 トランザクション実行中 1. トランザクション実行中 トランザクション実行中 クライアント Member #1 1. トランザクション開始 トランザクション開始 db2sysc 0 CS 2. エラー検知 エラー検知 3. 再接続を 再接続をtry ②障害メンバー 障害メンバーに メンバーに対して新規 して新規の 新規のトランザク ションを ションを開始 クライアント db2sysc 1 4. 再接続の 再接続の完了と 完了とトランザク ションの のRollbackを通知 ション (SQLCODE=-4498/-30108) 13 db2sysc 0 CS 2. エラー検知 エラー検知 3. 再接続を 再接続をtry Member #2 Member #1 Member #2 db2sysc 1 CS 4. 再接続完了後、 再接続完了後、失敗した 失敗したSQL を再実行して 再実行して結果 して結果を 結果を返却 CS トランザクションの最初のSQLステートメントについても再実行される(データ ソース設定:enableSeamlesFailover) © 2011 IBM Corporation 参考: テスト結果 参考: アプリケーションへの アプリケーションへの影響 への影響 (テスト テスト結果) 結果 Member #1 1. トランザクション実行中 トランザクション実行中 db2sysc 0 CS 2. エラー検知 エラー検知 クライアント 3. 再接続を 再接続をtry プロセス障害時のアプリケーションの動き(2メンバー構成) Member0 のプロセス障害を発生させる。 Member0は自動的に再起動が行われる。 Member #2 db2sysc 1 4. 再接続の 再接続の完了と 完了とトランザク ションの のRollbackを通知 ション (SQLCODE=-4498/-30108) CS Java program received SQL exception com.ibm.db2.jcc.am.ClientRerouteException: [jcc][t4][2027][11212][3.58.82] 接続は失敗しましたが、再 確立されました。 ホスト名または IP アドレスは "pvc92" で、サービス名またはポート番号は 50,001 です。 特殊レジスターのやり直しは可能なことも不可能なこともあります (理由コード = 1)。 ERRORCODE=-30108, SQLSTATE=08506 <以下省略> member0をkillした スループットの遷移 TPSの推移 6000 5000 4000 3000 2000 1000 0 17:32:41 14 17:32:58 17:33:16 17:33:33 17:33:50 17:34:07 17:34:25 ※ テストケースはRead100%の結果 © 2011 IBM Corporation CF障害 15 © 2011 IBM Corporation プライマリCF障害 プライマリ 障害 アクシデントで アクシデントで電源コード 電源コードがぬけた コードがぬけた Clients DB2クラスター クラスター・ クラスター・サービスの サービスのハートビート が途絶えたことにより 途絶えたことにより、 えたことにより、プライマリーの プライマリーのダ ウンを ウンを検知 Single Database View – メンバーとセカンダリーに通知 – CFサービスは瞬間的にブロックされる – 以下のDBアクティビティは可能 • Eg. バッファープール内のページアクセス, 既に 取得済みロック, ソート処理, 集約, etc DB2 CS セカンダリーは セカンダリーは、プライマリーデータとの プライマリーデータとの 誤差分を 誤差分をメンバーから メンバーから取得 から取得 DB2 CS DB2 CS DB2 CS – Eg.読み取り専用ロック セカンダリーが セカンダリーがプライマリーになる プライマリーになる – CF サービスを中断したところから継続す る – アプリケーションにはエラーは返らない 16 Log Log Log CS CS Updated Pages Global Locks Secondary Primary Log Shared Data Updated Pages Global Locks Primary © 2011 IBM Corporation プライマリCFの プライマリ の復旧 電源が 電源が入り、システムが システムがリブート DB2クラスター クラスター・ クラスター・サービスが サービスがシステムが システムが使 えることを自動検知 えることを自動検知 Clients – 他のメンバーやプライマリーに伝える Single Database View 新しいシステム しいシステムは キャッチアップ’状態 システムは‘キャッチアップ キャッチアップ 状態の 状態の セカンダリーとなる セカンダリーとなる – メンバーはCF2重化を再開する – メンバーは、ロックやその他の情報をセカ ンダリーに非同期に送る DB2 CS キャッチアップが キャッチアップが完了 DB2 CS DB2 CS DB2 CS – セカンダリーがピアー状態になる (プライ マリーと同じロックやページ状態をもって いる。) Log Log Log CS CS Updated Pages Global Locks Primary Log Shared Data Updated Pages Global Locks Secondary (Catchup (Peer state) state) 17 © 2011 IBM Corporation 参考: テスト結果 参考:プライマリCFの プライマリ のプロセス障害 プロセス障害 (テスト テスト結果) 結果 CF(primary)プロセスがkillされると、secondaryがprimaryとして稼動するようになった。db2instance -listの出力は以 下の通り。 Mon Dec 14 14:33:01 JST 2009 ID TYPE ----128 CF 129 CF Mon Dec 14 14:33:04 JST 2009 ID TYPE ----128 CF 129 CF STATE ----PRIMARY PEER STATE ----RESTARTING PRIMARY 18 HOME_HOST --------pvc61 pvc62 CURRENT_HOST -----------pvc61 pvc62 リスタートが終わると「CATCHUP」ステータスになる STATE ----CATCHUP PRIMARY <省略> Mon Dec 14 14:34:02 JST 2009 ID TYPE ----128 CF 129 CF CURRENT_HOST -----------pvc61 pvc62 セカンダリCFサーバーが「primary」に切り替わる <省略> Mon Dec 14 14:33:29 JST 2009 ID TYPE ----128 CF 129 CF HOME_HOST --------pvc61 pvc62 HOME_HOST --------pvc61 pvc62 CURRENT_HOST -----------pvc61 pvc62 最後は「PEER」ステータスになる STATE ----PEER PRIMARY HOME_HOST --------pvc61 pvc62 CURRENT_HOST -----------pvc61 pvc62 © 2011 IBM Corporation CF 障害 (詳細) 詳細) CF二重化構成では、プライマリCF障害が発生しても、クラスター障害にはならない。セカンダリCF がプライマリーの役割を引き継ぐ(TSA クラスターマネージャによって自動化) セカンダリCFがプライマリへと切り替わる前に「リビルド」処理が必要。すべてのCF構造を2重化し ているわけではないため リビルドとは? – 読み取りロック情報の再構築 プライマリCF障害からの復旧で実施されるステップ(DB2クラスター・サービスによって自動化) 1. 障害検知 2. 「Departure notifications」がDB2メンバーに対して送られ、プライマリCFが使用不可能であることを 通知する。障害発生CFに対する通信を停止する。 3. セカンダリCFの再構築 プライマリ・ロール引継ぎの準備をする。 4. プライマリ CF の 「arrival notifications 」を DB2 メンバーに送り、新しいCFが利用可能になったこと を通知する。 19 セカンダリCF障害はほとんど影響を与えないが、CF片系で稼動している間にプライマリ障害が発 生すると、「グループ・リスタート」が必要となる。 © 2011 IBM Corporation グループ・ グループ・リスタート (Group Crash Recovery: GCR) Clients DB2 CF DB2 DB2 DB2 CF Single Database View プライマリ、セカンダリ CFが同時に落ちた場 合 – – セカンダリがPEER状態でない時にプライマリ がおちるケースでも同様 直近の整合性の取れたページのコピーが存 在しないため、リカバリーが必要 DB2 CS – DB2 Cluster Services がGCRを担当メ ンバーを選出する – – 20 Log Records GCR は シングルDBでのクラッシュリ・リカ バリーに相当 – Log CS ディスクに書かれていない更新のRedoと Undoを実施 それぞれのメンバーのログをマージしてリプレ イ。(最初に起動したメンバーで実施) 完了するまでアクセス不可 DB2 CS Updated Pages Global Locks Secondary Log Records Log DB2 CS Log Records Log Pages DB2 CS Log Records Log CS Shared Data Updated Pages Global Locks Primary © 2011 IBM Corporation サマリー (単一障害 単一障害) 単一障害 障害モード 障害モード DB2 他のメンバーは メンバーは 稼動し 稼動し続けるか DB2 DB2 DB2 Member CF Primary PowerHA pureScale 接続は透過的に他メンバーに引 き継がれる。 CF DB2 DB2 DB2 アプリケーション から透過的 から透過的か 透過的か 障害メンバー上でしかかり中で あったトランザクションは別 のメンバーへと再接続 障害メンバー上でインフライトで あったデータのみ一時的に ロックが残るがそれ以外の データは生存メンバーから アクセス可能 瞬間的に CFへの要求はWAIT メンバーからは透過的。 (インフライトのCFへの要求は 通常より数秒完了に時 間がかかる。) DB2 CF コメント CF Primary Secondary PowerHA pureScale DB2 CF DB2 DB2 瞬間的に CFへの要求はWAIT メンバーからは透過的 (インフライトのCFへの要求は 通常より数秒完了に時 間がかかる。) DB2 CF Secondary 21 © 2011 IBM Corporation サマリー (重複障害 重複障害) 重複障害 障害モード 障害モード DB2 DB2 DB2 他のメンバーは メンバーは 稼動し 稼動し続けるか 接続は透過的に他メンバーに引 き継がれる。 CF DB2 DB2 CF Primary CF Secondary 22 DB2 DB2 障害メンバー上でインフライトで あったデータのみ一時的に ロックが残る。 リカバリーは並行実施 メンバー障害と同一 DB2 CF DB2 コメント DB2 CF DB2 アプリケーション から透過的 から透過的か 透過的か 接続は透過的に他メンバーに引 き継がれる。 瞬間的に PowerHA CFへの要求はWAIT メンバー障害と同一 DB2 CF 接続は透過的に他メンバーに引 き継がれる。 瞬間的に PowerHA CFへの要求はWAIT © 2011 IBM Corporation 負荷分散とクライアント・リルート 23 © 2011 IBM Corporation Automatic Workload Balancing & Client Routing 実行中の 実行中の負荷情報を 負荷情報を利用して 利用して自動的 して自動的に 自動的にクラスター内 クラスター内で負荷分散 (System z sysplex 同様) 同様 – – – 障害時 – 全メンバーの負荷情報はそれぞれのメンバーが持つ 最も負荷の少ないメンバーに接続を割り振る アプリケーションからは透過的に接続割り振りが行われる 障害発生メンバーの負荷は利用可能なメンバーへと均等に割り振られる 回復時 – 障害メンバーが回復すると、負荷分散を図りながら割り振りを再開する Clients 24 Clients © 2011 IBM Corporation 参考: 参考: serverlist クライアントがどのメンバーに接続可能かのリストを、サーバーが持っている。 確認するには、db2pd –db DB名 –serverlist(db2 –serverlist –alldbsも可)コマンドを使用する。 $ db2pd –db SMAPLE -serverlist Database Member 0 -- Active -- Up 0 days 00:19:31 Server List: Time: Wed Dec 16 10:48:28 Database Name: SAMPLE Count: 2 Hostname pvc91 pvc92 Port 50001 50001 Priority 70 29 例えばpvc91がプロセス障害などでダウンしている際には以下のような出力になる。 $ db2pd –db SMAPLE -serverlist Database Member 1 -- Active -- Up 0 days 00:19:46 Server List: Time: Thu Dec 10 11:56:07 Database Name: SAMPLE Count: 1 Hostname pvc92 25 Port 50001 Priority 100 © 2011 IBM Corporation DB2 pureScaleと他社クラスタとの違い 26 © 2011 IBM Corporation DB2 pureScaleと と他社クラスタ 他社クラスタの クラスタの違い DB2 pureScale CF DB2 DB2 他社クラスタ 他社DB DB2 更新データ 更新データ ロック 他社DB 他社DB 他社DB 更新データ 更新データ データ 更新データ 更新データ 更新 更新データ 更新データ 更新データ ロック ロック ロック ロック RDMA通信 通信 TCPIP通信 通信 データベース 構成特徴 ロック情報と更新データをCFで一元管理する ノード間通信にRDMAを採用(約10マイクロ秒) ①スケーラビリティ ○ 27 ロック情報と更新データを各ノードで ノードで分散管理する ノード間通信にUDP/ソケットプロトコルを採用 △ ノード間通信量、ロック管理負荷が小さい ノード間通信量、ロック管理負荷が大きい ノード間通信が高速 (RDMAにより他ノードのメモリに直接書 ノード間通信が低速 (UDPおよびRDS(ソケットプロトコル)によ き込みができる) る通信) ②アプリケーションのメンテナンス負 ○ 荷 ノード追加時にアプリケーションの変更は必要なし ③可用性 データベース ○ △ ノード追加時にアプリケーションのパーティショニングの変更が 必要 △ 全面停止時間がない。(障害ノードによる更新データ以外はア 全面停止時間がある。(全ノードのロック再構成と更新データ・ クセス可能) リカバリー処理のため) 全体の復旧時間が高速 全体の復旧に時間がかかる © 2011 IBM Corporation DB2 pureScaleと と他社クラスタ 他社クラスタの クラスタのリカバリー処理 リカバリー処理の 処理の違い DB2 pureScale の設計の要は、障害が発生した際 リカバリー処理中の可用性を最大化し、かつリカバリー処理を高速化することである CF DB2 DB2 DB2 更新データ 更新データ ロック 他社DB 他社DB 他社DB 他社DB 更新データ 更新データ データ 更新データ 更新データ 更新 更新データ 更新データ 更新データ ロック ロック ロック ロック RDMA通信 通信 TCPIP通信 通信 利用できるデータの割合(%) データベース 28 データベース データベースノードの障害 DB2は回復中には障害ノードが更新中 だった一部のデータのみをロック 他社DB DB2 pureScale 他社DBは全ノードの整合性確認のためIOを フリーズし部分停止、あるいは全体停止 Time (~seconds) © 2011 IBM Corporation 他社クラスタ 他社クラスタ なぜ全面停止 なぜ全面停止になる 全面停止になる? になる? 障害ノードが保持していたロック情報を再配分している間、 すべてのロック要求とI/O処理が抑止される Global Resource Directory (GRD) Redistribution インスタンス1が インスタンス がクラッシュ Instance 1 GRD Instance 2 GRD Instance 3 GRD リカバリーの リカバリーの必要な 必要な ブロックが ブロックがロックされ ロックされ るまですべてのI/O るまですべての 要求と 要求とロックが ロックが抑止 される すべてのI/O要求 すべての 要求が 要求が抑止される 抑止される 29 © 2011 IBM Corporation 他社クラスタ 他社クラスタ なぜ全面停止 なぜ全面停止になる 全面停止になる? になる? リカバリーブロックが リカバリーブロックが他ノードからわからないため ノードからわからないためログ からわからないためログから ログから探索 から探索。 探索。 その間 処理が その間もすべてのロック もすべてのロック要求 ロック要求と 要求とI/O処理 処理が抑止される 抑止される redo log redo log redo log リカバリーインスタンスが 障害ノードのログを読む インスタンス1が インスタンス がクラッシュ Instance 1 Instance 2 GRD GRD Instance 3 GRD I/Oが が解放される 解放される前 される前に ログと ログとリカバリーブロックを リカバリーブロックを 読まなければならない すべてのI/O要求 すべての 要求が 要求が抑止される 抑止される x x x x x x リカバリーインスタンスがリカバリーの必要な全ブロックをロック 30 © 2011 IBM Corporation DB2 pureScale なぜ全面停止 なぜ全面停止にならない 全面停止にならない? にならない? CFの の情報により 情報によりリカバリーブロック によりリカバリーブロックが リカバリーブロックが全ノードから ノードから明確 から明確にわかるため 明確にわかるため、 にわかるため、 正常ノード 正常ノードはまったく ノードはまったく影響 はまったく影響されることなく 影響されることなく処理 されることなく処理を 処理を継続 CF が更新中の 更新中のブロックを ブロックを 常に把握 メンバー1が メンバー がクラッシュ Member 1 Member 2 Member 3 CF x x x x x x I/O 処理を 処理を継続 Central Lock Manager x x x x x x CFは、どのノードがダウンしたときにどのブロックにリカバリーが必要なのかを常に意識 31 © 2011 IBM Corporation まとめ pureScale可用性 可用性 – 高速な障害検知とリカバリー自動化 • TSAとの統合 • DB2 Cluster Serviceによる総合的なリカバリ・アクショ ンの自動化 – 高速かつ安全なリカバリー処理 • CFキャッシュの利用 • Restart light – 障害発生からリカバリー完了までの間のサービス影 響を極小化 • クラスター全体停止時間の極小化 • 仕掛更新ページに対するロックのみ保持される 32 © 2011 IBM Corporation