JP2012014239A - フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法 - Google Patents

フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法 Download PDF

Info

Publication number
JP2012014239A
JP2012014239A JP2010147391A JP2010147391A JP2012014239A JP 2012014239 A JP2012014239 A JP 2012014239A JP 2010147391 A JP2010147391 A JP 2010147391A JP 2010147391 A JP2010147391 A JP 2010147391A JP 2012014239 A JP2012014239 A JP 2012014239A
Authority
JP
Japan
Prior art keywords
data
ports
input
port
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010147391A
Other languages
English (en)
Other versions
JP5511546B2 (ja
Inventor
Toru Inagawa
透 稲川
Tatsuichiro Seki
辰一郎 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010147391A priority Critical patent/JP5511546B2/ja
Publication of JP2012014239A publication Critical patent/JP2012014239A/ja
Application granted granted Critical
Publication of JP5511546B2 publication Critical patent/JP5511546B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】コストが抑えられ且つ柔軟性のあるフォールトレラントシステムを提供する。
【解決手段】第1の物理サーバに、第2の物理サーバが接続される。第1の物理サーバが、第1の物理サーバにおいて第1の仮想サーバを実行する第1のハイパバイザを有し、第2の物理サーバが、第2の物理サーバにおいて第2の仮想サーバを実行する第2のハイパバイザを有する。第1及び第2のハイパバイザが、互いに通信することで、第1及び第2の仮想サーバの同期を制御する。好ましくは、第1及び第2の物理サーバとストレージ装置とに、スイッチ装置が接続される。スイッチ装置が、第1及び第2の仮想サーバのストレージ装置に対するデータのI/Oの同期を制御する。
【選択図】図4

Description

本発明は、フォールトトレラントの計算機システムに関する。
複数の物理サーバを有する計算機システムが知られている。複数の物理サーバには、現用サーバ(稼動中の物理サーバ)と待機サーバ(待機中の物理サーバ)とがある。この種の計算機システムとして、フォールトトレラントの計算機システム(以下、フォールトトレラントシステム)と、フォールトトレラントでない計算機システム(以下、通常システム)とがある。
通常システムでは、現用サーバに障害が生じた場合、現用サーバから待機サーバへの切り替わりの情報の引継ぎ等のために、ダウンタイムが生じることになる。
しかし、フォールトトレラントシステムでは、現用サーバと待機サーバは同期しており、このため、現用サーバに障害が生じても、現用サーバから待機系サーバにすぐに切り替わるので、ダウンタイムは通常システムよりも短い(例えば、ダウンタイムは最小限である)。
フォールトトレラントシステムにおける、複数の物理サーバの同期(以下、サーバ同期)は、ハードウェアのみによって実現される。例えば、特許文献1では、そのようなハードウェアとして、特殊なLSI(Large Scale Integration)が採用されている。
特開2010−26932号公報
しかしながら、ハードウェアのみによってサーバ同期を行うフォールトトレラントシステムには、ハードウェアのコストが高いという問題や、システムの構成が制限されてしまう(言い換えればシステムの柔軟性が無い)という問題がある。
従って、本発明の目的は、コストが抑えられ且つ柔軟性のあるフォールトレラントシステムを提供することにある。
第1の物理サーバに、第2の物理サーバが接続される。第1の物理サーバが、第1の物理サーバにおいて第1の仮想サーバを実行する第1のハイパバイザを有し、第2の物理サーバが、第2の物理サーバにおいて第2の仮想サーバを実行する第2のハイパバイザを有する。第1及び第2のハイパバイザが、互いに通信することで、第1及び第2の仮想サーバの同期を制御する。
好ましくは、第1及び第2の物理サーバとストレージ装置とに、スイッチ装置が接続される。スイッチ装置が、第1及び第2の仮想サーバのストレージ装置に対するデータのI/Oの同期を制御する。
本発明の実施例1に係るフォールトトレラントシステムの構成を示す。 ディスク装置からサーバに対するデータのライト処理(実施例1に係るライト処理)のフローを示す。 ディスク装置からサーバへのデータのリード処理(実施例1に係るリード処理)のフローを示す。 本発明の実施例2に係るフォールトトレラントシステムの構成を示す。 ポート管理情報の構成を示す。 PCI−eスイッチのデータ入力機構を示す。 PCI−eスイッチのデータ出力機構を示す。 ディスク装置からサーバに対するデータのライト処理(実施例2に係るライト処理)のフローを示す。 ディスク装置からサーバへのデータのリード処理(実施例2に係るリード処理)のフローを示す。
以下、本発明の幾つかの実施例を説明する。
なお、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェイス装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされても良い。プログラムを主語として説明された処理は、サーバが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機(例えば物理サーバ又は仮想サーバ)にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
また、以下、説明を分かり易くするため、特段の説明がある場合を除いて、フォールトトレラントシステムが有する物理サーバの数は、2とする。しかし、物理サーバの数は、3以上でも良い。
実施例1では、物理サーバが互いに通信可能に接続されており、各物理サーバが、サーバの仮想化を実現するソフトウェアであるハイパバイザを有する。ハイパバイザが、互いに通信することで、サーバ同期を制御する。
以下、実施例1を詳細に説明する。
図1は、本発明の実施例1に係るフォールトトレラントシステムの構成を示す。
本実施例に係るフォールトトレラントシステムは、ハードウェア構成が同じである2つ物理サーバ101,115を有する。以下、物理サーバ101を、「サーバ101」或いは「メインサーバ101」と呼び、物理サーバ115を、「サーバ115」或いは「サブサーバ115」と呼ぶことがある。なお、図1では、サブサーバ115は単数だが、複数であっても良い。サーバ101(115)は、例えば、ブレードサーバである。
サーバ101(115)は、ハイパバイザ102(116)と、LPAR(Logical PARtition)103(117)と、HBA(Host Bus Adaptor)113(127)と、管理LAN(Local Area Network)114(128)とを備える。
メインサーバ101は、HBA113を介してディスク装置130に接続され、サブサ−バ115は、HBA127を介してディスク装置130に接続される。すなわち、各サーバ101,115は、共通のディスク装置130に接続される。HBA113(127)は、サーバ101(115)が有するI/O(Input/Output)デバイスの一種である。
メインサーバ101とサブサーバ115が、管理LAN114及び128を介して接続されている。管理LAN114と管理LAN128は、LAN129を介して接続されている。管理LAN114(128)は、LAN129を介して通信するためのI/Oデバイス(通信インターフェイス装置)であり、例えば、NIC(Network Interface Card)である。
ディスク装置130は、例えば、複数のディスク型の物理記憶デバイスを備えたストレージ装置である。2以上の物理記憶デバイスでRAID(Redundant Array of Independent (or Inexpensive) Disks)グループが構成されていても良い。物理記憶デバイスは、例えば、HDD(Hard Disk Drive)である。物理記憶デバイスは、ディスク型の物理記憶デバイスに限らず、他種の物理記憶デバイス(例えば、フラッシュメモリデバイス)が採用されても良い。また、ディスク装置130は、単数でも複数でも良い。ディスク装置130は、例えば、ブートデバイスとして使用される。すなわち、サーバ101(115)は、ディスク装置130からOSを読み出すブートを行うことができる。
ハイパバイザ102(116)は、OS(Operation System)(以下、管理OS)104(118)を備える。サーバ101(115)が有するハードウェアリソースは、I/Oデバイス(例えばHBA113(127)及び管理LAN114(128))の他に、例えば、1以上のCPU及び1以上のメモリを含むが、ハイパバイザ102(116)は、サーバ101(115)のハードウェアリソースを少なくとも2つ以上に論理的に分割することで、LPAR103(117)を生成する。LPAR103(117)は、仮想サーバであり、サーバ101(115)のハードウェアリソースの一部が割り当てられている。LPAR103(117)上では、ゲストOS109(123)が動作する。
管理OS104(118)では、HBAドライバ105(119)と、バックエンドドライバ106(120)と、管理LANドライバ107(121)が実行される。管理OS104(118)は、メモリ(以下、管理OS用メモリ)106(122)を管理する。
HBAドライバ105(119)は、HBA113(127)を制御するソフトウェアである。管理LANドライバ107(121)は、管理LAN114(128)を制御するソフトウェアである。バックエンドドライバ106(120)は、仮想HBA112(126)とHBAドライバ105(119)との通信を中継するソフトウェアである。
管理OS用メモリ108(122)が、管理OS104(118)で実行されるコンピュータプログラム(ソフトウェア)を記憶して良い。また、管理OS用メモリ108(122)は、ディスク装置130から読み出されたデータ、及び、ディスク装置130に書き込まれるデータの一時的な記憶領域としても使用される。
LPAR103(117)は、OS(以下、ゲストOS)109(123)と、仮想HBA112(126)とを備える。仮想HBA112(126)は、LPAR109(123)の外にあっても良い(ハイパバイザ102(116)に含まれても良い)。
ゲストOS109(123)では、仮想HBAドライバ110(124)が実行される。ゲストOS109(123)は、メモリ(以下、ゲストOS用メモリ)111(125)を管理する。ゲストOS109(123)では、アプリケーションプログラムが実行されて良い。
仮想HBAドライバ110(124)は、ゲスト用OSメモリ111(125)に記憶されていて良い。ゲストOS用メモリ111(125)は、LPAR109(123)を制御するプログラム等を記憶していて良い。仮想HBAドライバ110(124)は、仮想HBA112,126を制御するソフトウェアである。
管理OS104(118)とゲストOS109(123)が、管理OS用メモリ108(122)、仮想HBA112(126)及びゲストOS用メモリ111,125)を介して通信することができる。
上記構成によって、メインサーバ101内のハイパバイザ102と、サブサーバ115内のハイパバイザ116とは、管理LAN114及び128を介して、LPAR109(117)を同期させることができる。
なお、LPAR103及び117は、それぞれ、複数存在しても良い。この場合、HBA113(127)、及び/又は、管理LAN114(128)は、2以上のLPAR103(117)に共有されても良いし、LPAR103(117)毎に、HBA113(127)及び/又は管理LAN114(128)が割り当てられても良い。
LPAR103及び117がそれぞれ複数存在する場合、下記の(A)又は(B)が行われても良い。
(A)LPAR103(117)毎に、管理LAN114(128)が割り当てられていて良い。管理LAN114と管理LAN128が1対1で対応していて良い。例えば、第1のLPAR103がI/Oコマンド(リードコマンド又はライトコマンド)をクライアント(図示せず)から受信した場合、第1のLPAR103が、図2のステップ201又は図3のステップ301を開始し、且つ、ハイパバイザ102が、複数の管理LAN114のうち、第1のLPAR103に対応する管理LAN114を通じて、受信したI/Oコマンドを転送して良い。複数の管理LAN128のうち、I/Oコマンドの発行元の管理LAN114に対応した管理LAN128が、そのI/Oコマンドを受信して良い。ハイパバイザ116は、I/Oコマンドを受信した管理LAN128に対応する第1のLPAR117の管理用OSに対して、そのI/Oコマンドを転送して良い。これにより、図2のステップ202又は図3のステップ302が開始されて良い。
(B)ハイパバイザ102及び/又は116が、どのLPAR103とどのLPAR117が対応するかを表すLPAR管理情報を保持していても良い。この場合、例えば、第1のLPAR103がI/Oコマンドをクライアントから受信した場合、第1のLPAR103が、図2のステップ201又は図3のステップ301を開始し、且つ、下記の(b1)又は(b2)が行われて良い。
(b1)ハイパバイザ102が、第1のLPAR103に対応する第1のLPAR117を、ハイパバイザ102が保持するLPAR管理情報から特定して良い。ハイパバイザ102は、第1のLPAR117を表す送信先情報と上記受信したI/Oコマンドとを、管理LAN114を通じて、発行して良い。ハイパバイザ116は、送信先情報及びI/Oコマンドを受けた場合、送信先情報から第1のLPAR117を特定し、第1のLPAR117の管理用OSに対して、そのI/Oコマンドを転送して良い。これにより、図2のステップ202又は図3のステップ302が開始されて良い。
(b2)ハイパバイザ102が、第1のLPAR103が受信したI/Oコマンドとそれの受信者(第1のLPAR103)を表す受信者情報とを、管理LAN114を通じて、ハイパバイザ116に転送して良い。ハイパバイザ116は、受信者情報及びI/Oコマンドを受けた場合、受信者情報が表す第1のLPAR103に対応する第1のLPAR117を、ハイパバイザ116が保持するLPAR管理情報から特定し、第1のLPAR117の管理用OSに対して、受信したI/Oコマンドを転送して良い。これにより、図2のステップ202又は図3のステップ302が開始されて良い。
次に、図2及び3を参照して、本実施例に係るフォールトトレラントシステムが行う処理を説明する。
図2は、ディスク装置からサーバに対するデータのライト処理のフローを示す。
ここで、「ディスク装置からサーバに対するデータのライト処理」とは、リードコマンドを受けたLPAR103(117)がディスク装置130からリード対象のデータを読み出す処理と同じである。LPAR103(117)は、リードコマンドを受けると、ディスク装置130からリード対象のデータを読み出し、そのデータをクライアントに返す。これは、ディスク装置130を主体とすれば、ディスク装置130がLPAR103(117)に対してデータを書き込むと言うことができる。従って、本実施例の説明では、ディスク装置130からデータを読み出すことを、ディスク装置130がLPAR103(117)にデータを書き込むとすることがある(同様に、LPAR103(117)がディスク装置130にデータを書き込むことを、ディスク装置130からLPAR103(117)へデータが読み出されるとすることがある)。
従って、以下、LPAR103(117)からのリード要求を「DMA(Direct Memory Access)ライト要求」と言う。DMAライト要求は、クライアントからのリードコマンドを基に特定されたI/O先情報(例えば、リードコマンドで指定されているファイルを記憶するブロックのLBA(Logical Block Address)とそのブロックを有する論理ボリュームのLUN(Logical Unit Number)とを含んだ情報)を有して良い。DMAライト要求に従うデータを「DMAライトデータ」と言う。DMAライトデータの入力が完了したときに発行される応答を「DMAライト完了通知」と言う。なお、データの転送は、DMA以外の方式で行われても良い。
メインサーバ101内のLPAR103が、クライアントからリードコマンドを受けると、図2のステップ201が開始する。また、LPAR103がクライアントからリードコマンドを受けると、ハイパバイザ102が、管理LAN114を通じて、サブサーバ115内のハイパバイザ116に、そのリードコマンドを転送し、ハイパバイザ116が、管理LAN128を通じて受信したそのリードコマンドを、LPAR117の管理用OS118に、転送する。これにより、図2のステップ202が開始される。
すなわち、仮想HBAドライバ110(124)は、仮想HBA112(126)に対しDMAライト要求を発行する(ステップ201(202))。
DMAライト要求を受けたハイパバイザ102(116)(仮想HBA112(126))は、データの同期を図るため、LAN129を介して、DMAライト要求の発行を待ち合わせる(ステップ203(204))。具体的には、例えば、ハイパバイザ116(仮想HBA126)が、管理LAN128を通じて、待ち合わせを通知する。その通知を、管理LAN114を通じてハイパバイザ102(仮想HBA112)を受信した場合、待ち合わせの完了となる(ステップ205)。
DMAライト要求の待ち合わせが完了した場合、ハイパバイザ102(管理OS104)が、DMAライト要求に従うDMAライトデータをディスク装置130から読み出す。例えば、ハイパバイザ102(管理OS104)が、DMAライト要求に従うリード要求(例えば、LUN及びLBAを含んだ要求)を、ディスク装置130に送信し、そのリード要求に対する応答として、DMAライトデータを受信する。具体的には、例えば、下記が行われる。
(*)ハイパバイザ102(管理OS104)は、バックエンドドライバ106を介して(ステップ206)、HBAドライバ105に、DMAライト要求を転送する(ステップ207)。
(*)DMAライト要求を受けたHBAドライバ105は、HBA113にDMAライト要求を転送する(ステップ208)。DMAライト要求を受けたHBA113は、ディスク装置130から、DMAライト要求に従うDMAライトデータを読み出し、管理OS用メモリ108に、そのDMAライトデータを転送する(ステップ209)。
管理OS用メモリ108にDMAライトデータが転送された場合、ハイパバイザ102は、管理OS用メモリ108から、LAN129を経由して、サブサーバ115内の管理OS用メモリ122に、DMAライトデータを転送する(ステップ210、211、212)。
ステップ210の後、ハイパバイザ102が、DMAライトデータを管理OS用メモリ108からゲストOS用メモリ111に転送する(ステップ213)。
一方、ステップ212の後(管理OS用メモリ122へのDMAライトデータの転送が完了した場合)、ハイパバイザ116が、DMAライトデータを管理OS用メモリ122からゲストOS用メモリ125に転送する(ステップ214)。
ここで、データ入力の同期を図るため、ハイパバイザ102(116)は、LAN129を介して、ゲストOS用メモリ111(125)へ転送したDMAライトデータの入力を待ち合わせる(ステップ215、216)。具体的には、例えば、ハイパバイザ102は、待ち合わせ完了の通知を内部で発生させる。一方、ハイパバイザ116は、待ち合わせ完了を、管理LAN128を通じてメインサーバ101内のハイパバイザ102に通知する(ステップ217)。
ハイパバイザ102が、データ入力の待ち合わせが完了したことを検出した場合(例えば、待ち合わせ完了の通知が内部で発生し、且つ、ハイパバイザ116から待ち合わせ完了の通知を受信した場合)、ハイパバイザ102は、HBAドライバ105に対しDMAライト完了通知を転送する(ステップ218)。
DMAライト完了通知を受けたHBAドライバ105は、バックエンドドライバ106を介して、仮想HBA112にDMAライト完了通知を転送する(ステップ219、220)。
仮想HBA112にDMAライト完了通知が転送された場合、仮想HBA112から仮想HBAドライバ110に、DMAライト完了通知が転送される(ステップ223)。また、ハイパバイザ102は、LAN129を介して、ハイパバイザ116にDMAライト完了通知を転送し、ハイパバイザ116が、仮想HBA126にDMAライト完了通知を転送する(ステップ221、222、224)。仮想HBA126へのDMAライト完了通知の転送が完了した場合、仮想HBA126は、DMAライト完了通知を仮想HBAドライバ124に転送する(ステップ225)。
なお、図2に示したライト処理においてゲストOS用メモリ111に格納されたDMAライトデータは、LPAR103によって、クライアントからのリードコマンドに従うリード対象データとして、クライアントに送信される。もし、メインサーバ101に障害が発生した場合には、サブサーバ115内のハイパバイザ116が、メインサーバ101に障害が発生したことを、管理LAN128を通じて、検出し、LPAR117に、ゲストOS用メモリ125内のDMAライトデータ(リードコマンドに従うリード対象データ)をクライアントに送信させて良い。
図3は、ディスク装置からサーバへのデータのリード処理のフローを示す。
以下、LPAR103(117)からのライト要求を「DMAリード要求」と言う。DMAリード要求は、クライアントからのライトコマンドを基に特定されたI/O先情報(例えば、ライトコマンドで指定されているファイルの書き込み先のブロックのLBAとそのブロックを有する論理ボリュームのLUNとを含んだ情報)を有して良い。DMAリード要求に従うデータを「DMAリードデータ」と言う。DMAリードデータの出力が完了したときに発行される応答を「DMAリード完了通知」と言う。
メインサーバ101内のLPAR103が、クライアントからライトコマンドを受けると、図3のステップ301が開始する。また、LPAR103がクライアントからライトコマンドを受けると、ハイパバイザ102が、管理LAN114を通じて、サブサーバ115内のハイパバイザ116に、そのライトコマンドを転送し、ハイパバイザ116が、管理LAN128を通じて受信したそのライトコマンドを、LPAR117の管理用OS118に、転送する。これにより、図3のステップ302が開始される。なお、LPAR103(117)が受けたライトコマンドに従うデータ(DMAリードデータ)は、ゲストOS用メモリ111(125)に記憶される。
すなわち、仮想HBAドライバ110(124)は、仮想HBA112(126)に対しDMAリード要求を発行する(ステップ301(302))。
DMAリード要求を受けたハイパバイザ102(116)(仮想HBA112(126))は、データの同期を図るため、LAN129を介して、仮想HBA112(126)が受け取ったDMAリード要求を待ち合わせる(ステップ303、304)。具体的には、例えば、ハイパバイザ116(仮想HBA126)が、管理LAN128を通じて、待ち合わせを通知する。その通知を、管理LAN114を通じてハイパバイザ102(仮想HBA112)を受信した場合、待ち合わせの完了となる(ステップ305)。
DMAリード要求の待ち合わせが完了した場合、ハイパバイザ102(116)は、ゲストOS用メモリ111(125)からDMAリードデータを仮想HBA112(126)に転送する(ステップ306(307))。
DMAリードデータを受けた仮想HBA112(126)(ハイパバイザ102(116))は、管理OS用メモリ108(122)に、そのDMAリードデータを転送する(ステップ308(309))。
DMAリードデータが管理OS用メモリ108(122)に転送された場合、サブサーバ115内のハイパバイザ116は、管理LAN128を介して、メインサーバ101内のハイパバイザ102(管理OS用メモリ108)にDMAリードデータを転送する(ステップ310、311、312)。
サブサーバ115からDMAリードデータを受けたハイパバイザ102は、管理OS用メモリ108上で、LPAR103からのDMAリードデータと、LPAR117からのDMAリードデータとを比較する(出力データの整合性チェック)。DMAリードデータが互いに一致していなければ、ハイパバイザ102は、例えば、エラーを、LPAR103に通知し、且つ、管理LAN114を介して、ハイパバイザ116に通知して良い。ハイパバイザ116は、ハイパバイザ102からのエラーを、LPAR117に通知して良い。
DMAリードデータが互いに一致していれば、ハイパバイザ102(管理OS104)が、DMAリード要求に従うDMAリードデータ(上記整合性チェックで比較された2つのDMAリードデータのうちの一方)を、ディスク装置130に書き込む。例えば、ハイパバイザ102(管理OS104)が、DMAリード要求に従うライト要求(例えば、LUN及びLBAを含んだ要求)とライト対象データ(DMAリードデータ)を、ディスク装置130に送信する。具体的には、例えば、下記が行われる。
(*)ハイパバイザ102(仮想HBA112)は、バックエンドドライバ106を介して(ステップ313)、HBAドライバ105にDMAリード要求を転送する(ステップ314)。
(*)DMAリード要求を受けたHBAドライバ105は、HBA113にDMAリード要求を転送する(ステップ315)。
(*)DMAリード要求を受けたHBA113は、ハイパバイザ102(管理OS用メモリ108)に対しメモリリード要求を発行する(ステップ316)。
(*)メモリリード要求を受けたハイパバイザ102は、管理OS用メモリ108から、上記整合性チェックで比較された2つのDMAリードデータのうちの一方を、HBA113に転送する(ステップ317)。
(*)DMAリードデータを受けたHBA113は、ディスク装置130へDMAリードデータを転送し、当該データの転送が完了した場合、HBAドライバ105に対し、DMAリード完了通知を転送する(ステップ318)。
DMAリード完了通知を受けたHBAドライバ105は、バックエンドドライバ106を介して、仮想HBA112にDMAリード完了通知を転送する(ステップ319、320)。
仮想HBA112にDMAリード完了通知が転送された場合、ハイパバイザ102は、LAN129を介して、ハイパバイザ116(仮想HBA126)にDMAリード完了通知を転送する(ステップ321、322、323)。
ここで、ハイパバイザ102(116)は、データ出力の同期を図るため、LAN129を介して、仮想HBA112(126)へ転送されたDMAリード完了通知を待ち合わせる(ステップ324、325)。具体的には、例えば、ハイパバイザ102は、待ち合わせ完了の通知を内部で発生させる。一方、ハイパバイザ116は、待ち合わせ完了を、管理LAN128を通じてメインサーバ101内のハイパバイザ102に通知する(ステップ326)。
DMAリード完了通知の待ち合わせが完了した場合(例えば、待ち合わせ完了の通知が内部で発生し、且つ、ハイパバイザ116から待ち合わせ完了の通知を受信した場合)、ハイパバイザ102(116)(仮想HBA112(126))は、DMAリード完了通知を仮想HBAドライバ110(124)に転送する(ステップ327、328)。
以上、実施例1によれば、サーバ101(115)が、ハイパバイザ102(116)を有し、ハイパバイザ102及び116が、LAN129を介して互いに通信することで、LPAR(仮想サーバ)103及び117の同期と、サーバ101(115)のディスク装置130に対するデータ入出力の同期とを制御する。このため、これらの同期を制御するためのハードウェアは不要になる。また、ハイパバイザ102(116)によってハードウェアリソースが論理的に分割されるので、システムの構成が制限されない。従って、コストが抑えられ且つ柔軟性のあるフォールトレラントシステムを提供することができる。
以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
本実施例によれば、ハイパバイザ102及び116が行う同期制御の一部が、ハードウェアによって行われる。このため、ハイパバイザ102(116)を実行するサーバ101(115)の負荷を軽減することができ、故に、クライアントからのI/Oの性能の向上が期待できる。なお、コストは、実施例1よりも高くなる可能性があるが、システムの構成が制限されないという点は、変わらない。本実施例でも、ハイパバイザ102(116)によってハードウェアリソースが論理的に分割されるからである。
ハードウェアで行われる同期制御部分として、ディスク装置130に対するデータ入出力の同期が採用される。具体的には、例えば、図2のステップ210〜214、及び、図3のステップ305〜317が、ハードウェアで行われる。それ以外の同期制御は、ハイババイザ102及び116によって行われる。
そのようなハードウェアとして、図4に示すにように、本実施例に係るフォールトトレラントシステムは、サーバ101(115)の他に、I/O拡張モジュール401を有する。
I/O拡張モジュール401は、複数のサーバ(101、115)とディスク装置130とに接続されるスイッチ装置である。I/O拡張モジュール401は、例えば、ディスク装置130に接続される複数のHBA(413,428)と、サーバ(101,115)と(HBA413,428)とのパスを切り替えるPCI−e(PCI Express)スイッチ402と、構成設定レジスタ407と、CPU(Central Processing Unit)408と、メモリ410とを有する。メモリ410は、ファームウェア409を記憶する。
PCI−eスイッチ402は、複数のアップスストリームポート(以下、アップポート)(403,405)と、複数のダウンストリームポート(以下、ダウンポート)(404,406)とを有する。図4は、2つのアップポート403及び405と、2つのダウンポート404及び406を示しているが、アップポート及びダウンポートは、3つ以上あって良い。また、本実施例では、アップポートの数とダウンポートの数は同じであるが、それらの数は異なっていても良い。また、アップポートは、物理サーバに割り当てられても良いし、物理サーバ内のLPARに割り当てられても良い。従って、例えば、1つの物理サーバに複数のアップポートに接続され、各アップポートは、その物理サーバ内のLPARに割り当てられても良い。
メインサーバ101はアップポート403に、サブサーバ115はアップポート405に、それぞれ、PCI Expressインターフェースを介して接続される。また、HBA413はダウンポート404に、HBA428はダウンポート406に、それぞれPCI Expressインターフェースを介して接続される。I/O拡張モジュール401は、サーバ101及び115の共通のI/Oデバイスである。サーバ101(115)は、サーバ101(115)内のインターフェースと同じインターフェースで、HBA413(428)に接続されている。なお、サーバ101(115)内のインターフェース、サーバ101(115)とスイッチ402間のインターフェース、及び、スイッチ402内でのインターフェースは、PCI Expressに代えて、他のインターフェースが採用されても良い。
PCI−eスイッチ402は、データ入出力機構を有する。データ入出力機構は、ディスク装置130から入力されたデータの分配、及び、ディスク装置130へ出力されるデータの整合性チェック等を行う。
CPU408は、ファームウェア409を実行することにより、PCI−eスイッチ402の監視(例えば、アップポート及びダウンポートのエラーの有無の監視)を行なうことができる。
構成設定レジスタ407は、同期させる必要のある2以上の物理サーバが接続されている2以上のアップポートを表す情報を記憶する記憶領域の一種である。そのような情報として、図5に示すポート管理情報601がある。この情報601は、ダウンポートとアップポートとの対応関係を示す。この情報601によれば、例えば、下記のことがわかる。
(A)ダウンポート0(404)に入力されたデータは、アップポート0(403)及びアップポート1(405)に分配され、アップポート0(403)及びアップポート1(405)から出力される(つまり、アップポート0に接続されているサーバと、アップポート1に接続されているサーバを、同期させる必要がある)。
(B)アップポート0(403)又はアップポート1(405)から入力されたデータは、ダウンポート0(404)から出力される。
図6は、PCI−eスイッチ402のデータ入出力機構のうちのデータ入力機構を示す。
データ入力機構は、ディスク装置130から入力されたデータをサーバ101(115)に分配する。データ入力機構は、調停デバイス501と、複数のバススイッチ(503,504)と、複数のデータバッファ(505,506)とを有する。
データバッファ(ダウンポート用のバッファ)は、ダウンポート毎にあって良い。このため、2つのデータバッファ505及び506が図示されている。データバッファ505(506)は、ディスク装置130からのデータの入力の同期を実現させるために、そのデータが一時的に格納される記憶領域である。
バススイッチ(例えばセレクタ)は、アップポート毎にあって良い。このため、2つのバススイッチ503及び504が図示されている。1つのバススイッチ503(504)の複数の入力端子には、複数の第1の入力パス(複数のダウンポート(404及び406)にそれぞれ接続されている複数のパス)が接続されている。また、1つのバススイッチ503(504)の出力端子には、第1の出力パス(このバススイッチ503(504)に対応するアップポート403(405)に接続されているパス)とが接続されている。従って、複数のアップポート(403,405)と複数のダウンポート(404,406)間には、複数の第1の入力パスと複数の第1の出力パスとが存在する。バススイッチ503(504)は、複数の第1の入力パスのうちの一つを選択し(複数の入力端子のうちの1つを選択し)、選択された第1の入力パスに接続されているデータバッファ505(506)からのデータを、このバススイッチ503(504)に接続されている第1の出力パスから出力する。
調停デバイス501は、出力命令パス502を介して、全てのバススイッチ(503,504)に接続されているハードウェア回路である。調停デバイス501は、ポート管理情報601(図5参照)を基に、複数のバススイッチから2以上のバススイッチを選択し、選択したバススイッチに、出力命令パス502を介して、選択する第1の入力パスを指定した出力命令を送信する。具体的には、調停デバイス501は、下記、
(*)複数のダウンポートのうち、データが入力されたダウンポート(例えば404)を検出する、
(*)ポート管理情報601を基に、検出されたダウンポート(404)に対応する2以上のアップポート(403及び405)を特定する、
(*)特定した2以上のアップポート(403及び405)にそれぞれ接続されている2以上のバススイッチ(503及び504)に、出力命令パス502を介して、選択する第1の入力パス(データが入力されたダウンポート(404)に接続されている入力パス)を指定した出力命令を出力する。
その出力命令を受けたバススイッチ503(504)は、そのバススイッチ503(504)に接続されている複数の第1の入力パスから、出力命令で指定されている第1の入力パス(データが入力されたダウンポート(404)に接続されている入力パス)を選択する。バススイッチ503(504)は、複数のデータバッファのうちの、選択した第1の入力パスに接続されているデータバッファ(505)からデータを読み出し、読み出したデータを、第1の出力パスを介して出力する。
このようなデータ入力機構により、ダウンポート404に入力されたデータが2つに分配され、分配された2つのデータが、それぞれ、そのダウンポート404に対応する2つのアップポート403及び405を介して、同期する2つのサーバ101及び115に送信される。このように、ディスク装置130から入力されたデータの分配及びサーバ101(115)への入力を、I/O拡張モジュール401というハードウェアにより実現することができる。このため、ハイパバイザ102(116)を実行するサーバ101(115)の負荷を軽減することができる。
図7は、PCI−eスイッチ402のデータ入出力機構のうちのデータ出力機構を示す。
データ出力機構は、調停デバイス501と、複数の乗算器(702,703,721)と、複数のデータバッファ(707,708)と、比較器709と、複数のバススイッチ(710,711)と、スイッチコントローラ712とを有する。
データバッファ(アップポート用のバッファ)は、アップポート毎にあって良い。このため、2つのデータバッファ707及び708が図示されている。データバッファ707(708)は、サーバ101(115)からアップポート403(405)を介して入力されたデータの出力の同期を実現するために、そのデータが一時的に格納される記憶領域である。
バススイッチ(例えばセレクタ)は、ダウンポート毎にあって良い。このため、2つのバススイッチ710及び711が図示されている。1つのバススイッチ710(711)には、複数の第2の入力パス(複数のアップポート(403及び405)にそれぞれ接続されている複数のパス)と、一つの第2の出力パス(このバススイッチ710(711)に対応するダウンポート404(406)に接続されているパス)とが接続されている。従って、複数のアップポート(403,405)と複数のダウンポート(404,406)間には、複数の第2の入力パスと複数の第2の出力パスとが存在する。バススイッチ710(711)は、複数の第2の入力パスのうちの一つを選択し、選択された第2の入力パスに接続されているデータバッファ707(708)からのデータを、バススイッチ710(711)に接続されている第2の出力パスから出力する。
乗算器として、出力にエラー通知パス705が接続されている第1の乗算器(702)と、出力に出力命令パス(バススイッチ(710,711)に接続される出力命令パス)(706,722)が接続される第2の乗算器(703,721)とがある。第1の乗算器(702)と第2の乗算器(703,721)で構成された乗算器群は、同期サーバ群(同期する複数のサーバ)に対応したアップポート群毎に、設けられて良い。例えば、アップポート群に対応する乗算器群において、第1の乗算器の数は、そのアップポート群を構成するアップポートの数に関わらず1であって良く、第2の乗算器の数は、そのアップポート群を構成するアップポートの数と同じで良い。乗算器群における各乗算器は、第1及び第2の入力端子を有して良い。第1の入力端子に、調停デバイス501に接続されている出力命令パス701が接続されていて、第2の入力端子に、比較結果通知パス(この乗算器群に対応したアップポート群に対応する比較器(709)の出力パス)(704)が接続されている。
調停デバイス501は、図6に示したデバイス501である。調停デバイス501は、ポート管理情報601を基に、複数の乗算器群から、データが入力されたアップポート群に対応した乗算器群を選択し、選択した乗算器群の各乗算器に出力命令を送信する。
比較器709は、アップポート群(2以上のアップポート)毎に用意されていて良い。比較器709は、その比較器709に対応する2つのアップポート403及び405からデータバッファ707及び708を介して出力された2つのデータを比較する。比較器709は、比較の結果に対応する信号を、比較結果通知パス704を介して、その比較器709に対応する乗算器群(乗算器702,703,721)と、調停デバイス501とに出力する。
スイッチコントローラ712は、ダウンポート404(又は406)が故障した際に、故障したダウンポート404(又は406)からのデータの出力を停止させ、他の正常なダウンポート406(又は404)に切り替えてデータを出力するように、調停デバイス501に対して命令を出力するものである。
以下、図7の例を基に、データ出力機構が行う処理を説明する。
同期しているサーバ101及び115から出力されたデータが、アップポート403及び405を介して入力され、データバッファ707及び708に格納される。調停デバイス501が、データが入力されたアップポート0(403)及びアップポート1(405)に対応するダウンポート0(404)を、同期管理情報601を基に特定する。なお、図5に示す情報601によれば、アップポート0(403)及びアップポート1(405)に、ダウンポート1(406)が対応付けられていないが、それは、ダウンポート1(406)が、ダウンポート0(404)からの切り替え先のダウンポートであることを意味する。同様に、図5に示す情報601について、アップポート2、3及び4には、ダウンポート3及び4が対応付けられていないが、これは、ダウンポート3及び4がダウンポート2からの切り替え先であることを意味する。このため、例えば、ダウンポート2で障害が発生した場合には、ダウンポート3又は4を介して、サーバからのデータがディスク装置130に書き込まれる。
調停デバイス501は、データが入力されたアップポート0(403)及びアップポート1(405)に対応するデータバッファ707及び708からデータを出力させる。これにより、バススイッチ710及び711と、比較器709とに、データバッファ707及び708からデータが入力される。
2つのデータが入力された比較器709は、2つのデータを比較し、比較結果を表す値(信号)を、比較結果通知パス740出力する。出力された値(比較結果値)は、調停デバイス501に入力され、且つ、乗算器702,703及び721のそれぞれの第2の入力端子に入力される。乗算器702には、比較結果値が反転されて入力される。
比較結果値は、比較器709による比較の結果が一致の場合(つまり、入力された2つのデータが互いに一致した場合)、一致を意味する値、例えば、「1」という値である。一方、比較結果値は、比較器709による比較の結果が不一致の場合(つまり、入力された2つのデータが異なっている場合)、不一致を意味する値、例えば、「0」という値である。
比較結果値を受けた調停デバイス501は、データが入力されたアップポート403及び405に対応するデータバッファ707及び708からデータを出力させ、且つ、同期管理情報601(図5参照)を基に、乗算器702、703及び721を特定し、それら乗算器702、703及び721に、出力命令を入力する。出力命令は、例えば、「1」という値である。乗算器721には、出力命令「1」が反転されて入力される。
以上の流れより、比較結果が一致の場合と不一致の場合は、次の処理が行われる。
<比較の結果が一致の場合(比較結果値が「1」の場合)>。
乗算器702には、出力命令「1」と反転された比較結果値「0」が入力される。このため、乗算器702からは、エラーを意味しない値「0」が出力される。
乗算器703には、出力命令「1」と比較結果値「1」が入力される。このため、乗算器702からは、出力命令パス706を介して、出力を意味する値「1」がバススイッチ710に出力される。
乗算器721には、反転された出力命令「0」と比較結果値「1」が入力される。このため、乗算器721からは、出力命令パス722を介して、出力を意味しない値「0」がバススイッチ711に出力される。
従って、バススイッチ710及び711のうちのバススイッチ710が、データバッファ707及び708のうちのいずれかのバッファからのデータを、ダウンポート404を介して出力する。
つまり、このケースでは、調停デバイス501が、データバッファ707又は708からのデータをバススイッチ710に出力させ、データバッファ707又は708からのデータをバススイッチ711に出力させない。
<比較の結果が不一致の場合(比較結果値が「0」の場合)>。
乗算器702には、出力命令「1」と反転された比較結果値「1」が入力される。このため、乗算器702からは、エラーを意味する値「1」が出力される。
乗算器703には、出力命令「1」と比較結果値「0」が入力される。このため、乗算器702からは、出力命令パス706を介して、出力を意味しない値「0」がバススイッチ710に出力される。
乗算器721には、反転された出力命令「0」と比較結果値「0」が入力される。このため、乗算器721からは、出力命令パス722を介して、出力を意味しない値「0」がバススイッチ711に出力される。
従って、バススイッチ710及び711のうちのいずれからも、データバッファ707及び708からのデータは出力されない。また、乗算器702から出力された、エラーを意味する値「1」は、メインサーバ101内のハイパバイザ102に出力されて良い。ハイパバイザ102は、エラーを、LPAR103に通知して良い。エラーを意味する値「1」は、サブサーバ115内のハイパバイザ116に出力され、ハイパバイザ116も、LPAR117にエラーを通知して良い。
つまり、このケースでは、調停デバイス501が、バススイッチ710及び711のいずれからもデータを出力させず、エラーを通知する。
このようなデータ出力機構により、アップポート403及び405から入力された2つのデータの整合性をチェックし、一致が得られた場合に、2つのデータのうちのいずれかだけをディスク装置130に書き込むことができる。このようなデータ出力が、I/O拡張モジュール401というハードウェアにより実現される。このため、ハイパバイザ102(116)を実行するサーバ101(115)の負荷を軽減することができる。
ところで、ダウンポート0(404)又はそれに接続されている第2の出力パスに障害が発生する等の原因で、ダウンポート0(404)からディスク装置130へのデータ出力が不可能となる場合がある。
その場合、ディスク装置130へのパスが、ダウンポート0(404)とディスク装置130とを接続するパスから、ダウンポート1(406)とディスク装置130とを接続するパスに切り替えられ、切り替え後のパスを介して、ディスク装置130へデータが出力される。そのため、サーバ0(101)又はサーバ1(115)から出力されたデータが、ダウンポート0(404)に接続されているバススイッチ710だけではなく、ダウンポート1(406)に接続されているバススイッチ711に対しても送られる。
ダウンポート0(404)からデータ出力が不可能になった(例えば、ダウンポート0(404)又はそれに接続されているパスに何らかの障害が発生した)場合、そのことが、例えば、下記の(a)又は(b)の要素、
(a)アップポート0(403)に接続されているメインサーバ101に組み込みまれているソフトウェア、
(b)ファームウェア409(図4参照)、
によって、検出される。要素(a)又は(b)は、特定インターフェース714を介して、スイッチコントローラ712に、ダウンポート0(404)からデータ出力不可能であること(障害通知)を出力する。
障害通知を受けたスイッチコントローラ712は、調停501デバイスに対し、ダウンポート0(404)への出力停止命令と、ダウンポート1(406)への出力切替命令とを出力する。それらの命令を受けた調停デバイス501は、ダウンポート0(404)に接続されているバススイッチ710への出力命令を停止し、ダウンポート1(406)に接続されているバススイッチ711に対し出力命令を出力する。具体的には、例えば、下記が行われる。
(*)調停デバイス501が、ダウンポート0(404)からデータ出力不可能であることの通知を受ける前に出力した出力命令を反転した命令「0」を出力命令パス701を介して出力する。
(*)乗算器702には、反転した出力命令「0」と反転された比較結果値「0」が入力される。このため、乗算器702からは、エラーを意味しない値「0」が出力される。
(*)乗算器703には、反転した出力命令「0」と比較結果値「1」が入力される。このため、乗算器703からは、出力命令パス706を介して、出力を意味しない値「0」がバススイッチ710に出力される。
(*)乗算器721には、反転した出力命令「1」と比較結果値「1」が入力される。このため、乗算器721からは、出力命令パス722を介して、出力を意味する値「1」がバススイッチ711に出力される。
従って、バススイッチ710及び711のうちのバススイッチ711が、データバッファ707及び708のうちのいずれかのバッファからのデータを、ダウンポート1(406)を介して出力する。つまり、パスの切り替えが行われる。
以下、本実施例に係る、ディスク装置からサーバに対するデータのライト処理、及び、ディスク装置からサーバへのデータのリード処理を説明する。
図8は、本実施例に係る、ディスク装置からサーバに対するデータのライト処理のフローを示す。
仮想HBAドライバ110(124)は、仮想HBA112(126)に対しDMAライト要求を発行する(ステップ801(802))。
DMAライト要求を受けた仮想HBA112(126)は、バックエンドドライバ106(120)にDMAライト要求を転送し(ステップ803(804))、バックエンドドライバ106(120)は、HBAドライバ105(119)にDMAライト要求を転送する(ステップ805(806))。
DMAライト要求を受けたHBAドライバ105(119)は、I/O拡張モジュール401上のアップポート403(405)に、DMAライト要求を転送する(ステップ807(808))。
サーバ101(115)からDMAライト要求を受けたI/O拡張モジュール401は、PCI−eスイッチ402の上述のデータ出力機構により、サーバ101及び115からのDMAライト要求を互いに比較し、それらが互いに一致していれば、アップポート403及び405に対応するダウンポート404に、DMAライト要求を転送する(ステップ809)。
ダウンポート404に転送されたDMAライト要求は、HBA413に転送され(ステップ810)、HBA413は、ディスク装置130からDMAライトデータを読み出し、ダウンポート404に対しDMAライトデータを転送する(ステップ811)。
DMAライトデータを受けたI/O拡張モジュール401は、PCI−eスイッチ402の上述のデータ入力機構により、ディスク装置130からのDMAライトデータをアップポート403及び405に分配する(ステップ812、813)。
DMAライトデータを受けたアップポート403(405)は、管理OS104(118)内の管理OS用メモリ108(122)にDMAライトデータを転送する(ステップ814(815))。
管理OS用メモリ108,122に転送されたDMAライトデータは、ハイパバイザ102(116)により、仮想HBA112(126)に転送される(ステップ816(817))。
DMAライトデータを受けた仮想HBA112(126)は、ゲストOS用メモリ111(125)に、DMAライトデータを転送する(ステップ818(819))。
ディスク装置130からサーバ101(115)へのDMAライトデータの転送が完了した場合、HBA413は、DMAライト完了通知を発行する。
発行されたDMAライト完了通知は、I/O拡張モジュール401のダウンポート404に転送され(ステップ820)、DMAライト完了通知を受けたI/O拡張モジュール401は、PCI−eスイッチ402のデータ入力機構により、DMAライト完了通知をアップポート403及び405に分配する(ステップ821、822)。
アップポート403(405)に転送されたDMAライト完了通知は、管理OS104(118)内のHBAドライバ105(119)に転送される(ステップ823、824)。
DMAライト完了通知を受けたHBAドライバ105(109)は、バックエンドドライバ106(120)にDMAライト完了通知を転送し(ステップ825(826))、バックエンドドライバ106(120)は、仮想HBA112(126)にDMAライト完了通知を転送する(ステップ827(828))。
DMAライト完了通知を受けた仮想HBA112(126)は、仮想HBAドライバ110(124)にDMAライト完了通知を転送する(ステップ829(830))。
以上が、本実施例に係る、ディスク装置からサーバに対するデータのライト処理の流れ、である。
図9は、本実施例に係る、ディスク装置からサーバへのデータのリード処理のフローを示す。
仮想HBAドライバ110(124)は、仮想HBA112(126)に対しDMAリード要求を発行する(ステップ901(902))。
DMAリード要求を受けた仮想HBA112(126)は、バックエンドドライバ106(120)にDMAリード要求を転送し(ステップ903(904))、バックエンドドライバ106(120)は、HBAドライバ105(119)にDMAリード要求を転送する(ステップ905(906))。
DMAリード要求を受けたHBAドライバ105(119)は、I/O拡張モジュール401上のアップポート403(405)にDMAリード要求を転送する(ステップ907(908))。
サーバ101及び115からDMAリード要求を受けたI/O拡張モジュール401(アップポート403及び405)は、PCI−eスイッチ402のデータ出力機構により、それらのサーバ101及び115からのDMAリード要求を互いに比較し、それらが一致していれば、アップポート403及び405に対応するダウンポート404にDMAリード要求を転送する(ステップ909)。
ダウンポート404に転送されたDMAリード要求は、HBA413に転送され(ステップ910)、HBA413は、サーバから出力されたデータを要求するためのメモリリード要求を発行する。
発行されたメモリリード要求は、ダウンポート404に転送され(ステップ911)、PCI−eスイッチ402のデータ入力機構により、メモリリード要求がアップポート403及び405に分配される(ステップ912、913)。
メモリリード要求を受けたアップポート403(405)は、HBAドライバ105(119)に転送される(ステップ914(915))。
メモリリード要求を受けたHBAドライバ105(119)は、バックエンドドライバ106(120)を介して(ステップ916(917))、メモリリード要求を、仮想HBA112(126)に転送する(ステップ918(919))。
メモリリード要求を受けた仮想HBA112(126)は、ゲストOS用メモリ111(125)にメモリリード要求を転送する(ステップ920(921))。
メモリリード要求を受けたゲストOS用メモリ111(125)は、DMAリードデータを出力する。
ゲストOS用メモリ111(125)から出力されたDMAリードデータは、仮想HBA112(126)に転送され(ステップ922(923))、仮想HBA112(126)を介して管理OS用メモリ108(122)に転送される(ステップ924(925))。
DMAリードデータを受けた管理用OSメモリ108(122)は、I/O拡張モジュール401上のアップポート403(405)にDMAリードデータを転送する(ステップ926(927))。
DMAリードデータを受けたI/O拡張モジュール401は、PCI−eスイッチ402のデータ出力機構により、サーバ101及び115からアップポート403及び405を介して入力されたDMAリードデータを互いに比較し、それらが一致していれば、アップポート403及び405に対応するダウンアポート404にDMAリードデータを転送する(ステップ928)。
ダウンポート404に転送されたDMAリードデータは、HBA413に転送され(ステップ929)、HBA413は、ディスク装置130に対しデータ(DMAリードデータ)を書き込む。
ディスク装置130へのDMAリードデータの転送が完了した場合、HBA413は、DMAリード完了通知を発行する。
発行されたDMAリード完了通知は、I/O拡張モジュール401のダウンポート404に転送され(ステップ930)、DMAリード完了通知を受けたI/O拡張モジュール401は、PCI−eスイッチ402のデータ入力機構により、DMAリード完了通知をアップポート403及び405に分配する(ステップ931(932))。
アップポート403(405)に転送されたDMAリード完了通知は、HBAドライバ105(119)に転送される(ステップ933(934))。
DMAリード完了通知を受けたHBAドライバ105(119)は、バックエンドドライバ106(120)にDMAリード完了通知を転送し(ステップ935(936))、バックエンドドライバ106(120)は、仮想HBA112(126)にDMAリード完了通知を転送する(ステップ937(938))。
DMAリード完了通知を受けた仮想HBAドライバ112(116)は、仮想HBAドライバ110(124)にDMAリード完了通知を転送する(ステップ939(940))。
以上が、本実施例に係る、ディスク装置からサーバへのデータのリード処理の流れ、である。
以上、本発明の幾つかの実施例を説明したが、これらは本発明のための例示であって、本発明の範囲をこれらの実施例に限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ダウンポートの監視等を、ファームウェア409に代えてハイパバイザ102及び/又は116、或いは、サーバ101及び/又は115内の別の要素(ソフトウェア及び/又はハードウェア)が行えば、CPU408及びメモリ410は無くても良い。
101(115)…物理サーバ 102(116)…ハイパバイザ 103(117)…仮想サーバ(LPAR)

Claims (15)

  1. クライアントからI/O(Input/Output)コマンドを受けそのI/Oコマンドに従いストレージ装置に対してデータのI/Oを行うフォールトトレラントの計算機システムであって、
    第1の物理サーバと、
    前記第1の物理サーバに接続された第2の物理サーバと、
    前記第1及び第2の物理サーバが接続される2以上の第1ポートと前記ストレージ装置が接続される2以上の第2ポートとを有するスイッチ装置と
    を有し、
    前記第1の物理サーバが、前記第1の物理サーバにおいて第1の仮想サーバを実行する第1のハイパバイザを有し、
    前記第2の物理サーバが、前記第2の物理サーバにおいて第2の仮想サーバを実行する第2のハイパバイザを有し、
    前記第1及び第2のハイパバイザが、互いに通信することで、前記第1及び第2の仮想サーバの同期を制御し、
    前記スイッチ装置が、前記第1及び第2の仮想サーバの前記ストレージ装置に対するデータのI/Oの同期を制御する、
    計算機システム。
  2. 請求項1記載の計算機システムであって、
    前記スイッチ装置が、データ出力機構と、データ入力機構と、調停デバイスとを有し、
    前記データ出力機構は、2以上の第1バッファと、比較器と、2以上の第1バススイッチと、前記2以上の第1バススイッチに対応した2以上の論理回路とを有し、
    前記データ入力機構は、2以上の第2バッファと、2以上の第2バススイッチとを含み、
    (A)前記2以上の第1ポートから第1データが入力された場合、
    (a1)前記2以上の第1バッファが、前記2以上の第2ポートから入力された前記第1データを記憶し、
    (a2)前記調停デバイスが、前記2以上の第1バッファから前記第1データを出力させ、
    (a3)前記比較器は、前記2以上の第1バッファから出力された2以上の第1データの比較の結果を表す比較結果値を、前記調停デバイスと各論理回路に入力し、
    (a4)前記調停デバイスが、前記比較結果値が入力された場合に、前記各論理回路に第1の値を入力し、
    (a5)前記比較結果値が一致を意味する値の場合、前記2以上の第1バススイッチのうちの1つの第1バススイッチに対応した論理回路がその1つの第1バススイッチに出力を意味する値を入力し、且つ、前記1つの第1バススイッチ以外の1以上の第1バススイッチに対応した1以上の論理回路がそれら1以上の第1バススイッチに非出力を意味する値を入力し、それにより、前記1つの第1バススイッチが、前記2以上の第1データのうちの1つの第1データを、前記1つの第1バススイッチに接続されている第2ポートから出力し、
    各第2バッファに、前記2以上の第2バススイッチが接続されており、それにより、前記各第2バッファから出力されたデータが前記2以上の第2バススイッチに分配され、
    (B)前記2以上の第2ポートのいずれかから第2データが入力された場合、
    (b1)前記第2データが入力された第2ポートに対応する第2バッファが、入力された前記第2データを記憶し、
    (b2)前記調停デバイスが、前記第2データが記憶された第2バッファから前記第1データを出力させ、且つ、各第2バススイッチに、その第2バススイッチが有する複数の入力端子のうちの選択する入力端子を指定し、
    (b3)前記2以上の第2バススイッチが、複数の入力端子のうちの前記調停デバイスから指定された入力を選択し、選択した入力端子に入力された前記第2データを、前記2以上の第1ポートから出力する、
    計算機システム。
  3. 請求項2記載の計算機システムであって、
    前記2以上の第2ポートのうちのいずれかの第2ポートからデータを出力できない場合、前記調停デバイスが、前記第1の値とは異なる第2の値を前記各論理回路に入力し、それにより、前記比較結果値が一致を意味する値の場合、前記2以上の第1バススイッチのうちの別の1つの第1バススイッチに対応した論理回路がその別の1つの第1バススイッチに出力を意味する値を入力し、且つ、前記別の1つの第1バススイッチ以外の1以上の第1バススイッチに対応した1以上の論理回路がそれら1以上の第1バススイッチに非出力を意味する値を入力する、
    計算機システム。
  4. 請求項2記載の計算機システムであって、
    前記データ出力機構が、エラー通知用の論理回路を更に有し、
    前記比較結果値及び前記第1の値は、前記エラー通知用の論理回路にも入力され、
    前記比較結果値が一致を意味する値の場合、前記エラー通知用の論理回路は、正常を意味する値を出力し、
    前記比較結果値が不一致を意味する値の場合、前記2以上の第1バススイッチに対応した前記2以上の論理回路が前記2以上の第1バススイッチに非出力を意味する値を入力し、前記エラー通知用の論理回路が、エラーを意味する値を出力する、
    計算機システム。
  5. 請求項2記載の計算機システムであって、
    前記第1及び第2の物理サーバで構成された同期サーバ群を含んだ複数の同期サーバグループを有し、
    同期サーバグループを構成する2以上の物理サーバは、同期する2以上の物理サーバのグループであり、
    前記2以上の第1ポート、前記2以上の第1バッファと、前記比較器と、前記2以上の第1バススイッチと、前記2以上の論理回路、前記2以上の第2バッファ、及び、前記2以上の第2バススイッチが、同期サーバグループ毎にあり、
    前記複数の同期サーバグループを構成する複数の物理サーバに前記スイッチ装置の複数の第1ポートが接続されており、
    前記スイッチ装置が、どの第2ポートとどの第1ポートとが対応するかを表すポート管理情報を記憶する記憶領域を有し、
    前記(A)において、前記調停デバイスが、前記ポート管理情報を基に、前記第1データが入力された2以上の第1ポートに対応した2以上の第2ポートを特定し、前記(a4)において、特定された2以上の第2ポートに接続されている2以上の第1バススイッチに対応した2以上の論理回路に前記第1の値を入力し、
    前記(B)において、前記調停デバイスが、前記ポート管理情報を基に、前記第2データが入力された第2ポートに対応した2以上の第1ポートを特定し、前記(b2)において、特定された2以上の第1ポートに接続されている2以上の第2バススイッチに、選択する入力端子を指定する、
    計算機システム。
  6. 請求項2記載の計算機システムであって、
    前記第1の仮想サーバがクライアントからI/Oコマンドを受けた場合、そのI/Oコマンドを、前記第1のハイパバイザが前記2のハイパバイザにI/Oコマンドを転送し、第2のハイパバイザがそのI/Oコマンドを前記第2のサーバに転送し、
    前記第1のハイパバイザが、前記I/Oコマンドを前記第1の仮想サーバが受けた場合に、前記第1のデータとして要求及び/又はデータを、前記第1の物理サーバに接続されている第1ポートに送信し、
    前記第2のハイパバイザが、前記I/Oコマンドを前記第2の仮想サーバが受けた場合に、前記第1のデータとして要求及び/又はデータを、前記第2の物理サーバに接続されている第1ポートに送信する、
    計算機システム。
  7. 請求項1記載の計算機システムであって、
    前記スイッチ装置が、どの第2ポートとどの第1ポートとが対応するかを表すポート管理情報を記憶する記憶領域を有し、
    前記2以上の第1ポートからデータが入力された場合、前記スイッチ装置が、前記ポート管理情報を基に、データが入力された2以上の第1ポートに対応した2以上の第2ポートを特定し、特定された2以上の第2ポートのうちのいずれかの第2ポートから、データを出力する、
    計算機システム。
  8. 請求項7記載の計算機システムであって、
    前記スイッチ装置が、2以上のバススイッチと、バススイッチ選択機構とを有し、
    各バススイッチに、前記2以上の第2ポートのいずれかと、前記2以上の第1ポートとが接続されており、
    前記バススイッチ選択機構が、前記ポート管理情報を基に、前記2以上の第2ポートを特定し、前記2以上の第2ポートに接続されている前記2以上のバススイッチから1つのバススイッチを選択し、
    前記選択されたバススイッチが、前記2以上の第1ポートのうちのいずれかの第1ポートからのデータを、そのバススイッチに接続されている第2ポートに出力する、
    計算機システム。
  9. 請求項7記載の計算機システムであって、
    前記スイッチ装置が、比較器を有し、
    前記比較器が、入力された2以上のデータを比較し、それら2以上のデータが一致していれば、前記スイッチ装置が、前記2以上の第2ポートのうちの或る第2ポートから、データを出力する、
    計算機システム。
  10. 請求項7記載の計算機システムであって、
    前記スイッチ装置が、前記2以上の第1ポートから入力されたデータをそれぞれ記憶する2以上のバッファを有する、
    計算機システム。
  11. 請求項1記載の計算機システムであって、
    前記スイッチ装置が、どの第2ポートとどの第1ポートとが対応するかを表すポート管理情報を記憶する記憶領域を有し、
    或る第2ポートからデータが入力された場合、前記スイッチ装置が、前記ポート管理情報を基に、前記或る第2ポートに対応した2以上の第1ポートを特定し、入力されたデータを、特定された2以上の第1ポートに分配する、
    計算機システム。
  12. 請求項11記載の計算機システムであって、
    前記スイッチ装置が、2以上のバススイッチと、バススイッチ選択機構とを有し、
    各バススイッチには、出力端子に、前記2以上の第1ポートのいずれかが接続されており、2以上の入力端子に、前記2以上の第2ポートが接続されており、
    前記バススイッチ選択機構が、前記ポート管理情報を基に、前記2以上の第1ポートを特定し、前記2以上のバススイッチから、前記2以上の第1ポートに接続されている2以上のバススイッチを選択し、選択された2以上のバススイッチに、選択する入力端子を指定し、
    前記選択された2以上のバススイッチが、指定された入力端子からのデータを、それら2以上のバススイッチに接続されている前記2以上の第1ポートに出力する、
    計算機システム。
  13. フォールトトレラントの計算機システムにおける第1及び第2の物理サーバが接続される2以上の第1ポートと、
    前記ストレージ装置が接続される2以上の第2ポートと、
    前記2以上の第1ポートから入力されたデータを前記2以上の第2ポートのうちの或る第2ポートから出力するデータ出力と、前記2以上の第2ポートのうちの或る第2ポートから入力されたデータを前記2以上の第1ポートに分配し前記2以上の第1ポートから出力するデータ入力とを行うハードウェアスイッチであるスイッチ機構と
    を有するスイッチ装置。
  14. 請求項13記載のスイッチ装置であって、
    どの第2ポートとどの第1ポートとが対応するかを表すポート管理情報を記憶する記憶領域を有し、
    前記2以上の第1ポートからデータが入力された場合、前記スイッチ機構が、前記ポート管理情報を基に、データが入力された2以上の第1ポートに対応した2以上の第2ポートを特定し、特定された2以上の第2ポートのうちの或る第2ポートから、データを出力し、
    或る第2ポートからデータが入力された場合、前記スイッチ機構が、前記ポート管理情報を基に、前記或る第2ポートに対応した2以上の第1ポートを特定し、入力されたデータを、特定された2以上の第1ポートに分配する、
    スイッチ装置。
  15. クライアントからI/O(Input/Output)コマンドを受けそのI/Oコマンドに従いストレージ装置に対してデータのI/Oを行うフォールトトレラントの計算機システムで行われる同期方法であって、
    第1の物理サーバにおいて第1の仮想サーバを実行する第1のハイパバイザと、第2の物理サーバにおいて第2の仮想サーバを実行する第2のハイパバイザが、互いに通信することで、前記第1及び第2の仮想サーバの同期を制御し、
    前記第1及び第2の物理サーバと前記ストレージ装置に接続されたスイッチ装置が、前記第1及び第2の仮想サーバの前記ストレージ装置に対するデータのI/Oの同期を制御する、
    サーバ同期制御方法。
JP2010147391A 2010-06-29 2010-06-29 フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法 Expired - Fee Related JP5511546B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010147391A JP5511546B2 (ja) 2010-06-29 2010-06-29 フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010147391A JP5511546B2 (ja) 2010-06-29 2010-06-29 フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法

Publications (2)

Publication Number Publication Date
JP2012014239A true JP2012014239A (ja) 2012-01-19
JP5511546B2 JP5511546B2 (ja) 2014-06-04

Family

ID=45600637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010147391A Expired - Fee Related JP5511546B2 (ja) 2010-06-29 2010-06-29 フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法

Country Status (1)

Country Link
JP (1) JP5511546B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088103A (ja) * 2013-11-01 2015-05-07 富士通株式会社 情報処理装置、及び、情報処理装置の制御方法
JP2016119110A (ja) * 2016-01-20 2016-06-30 株式会社日立製作所 ストレージシステム及びリソース割当て方法
JP2018169841A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 制御装置、多重化システム、多重化方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088103A (ja) * 2013-11-01 2015-05-07 富士通株式会社 情報処理装置、及び、情報処理装置の制御方法
JP2016119110A (ja) * 2016-01-20 2016-06-30 株式会社日立製作所 ストレージシステム及びリソース割当て方法
JP2018169841A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 制御装置、多重化システム、多重化方法及びプログラム

Also Published As

Publication number Publication date
JP5511546B2 (ja) 2014-06-04

Similar Documents

Publication Publication Date Title
US8285913B2 (en) Storage apparatus and interface expansion authentication method therefor
US10162567B2 (en) Computer system
US8788873B2 (en) Server input/output failover device serving highly available virtual devices
US9542320B2 (en) Multi-node cache coherency with input output virtualization
JP5585332B2 (ja) 耐故障システム、マスタft制御lsi、スレーブft制御lsiおよび耐故障制御方法
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
US20210034250A1 (en) Storage device
US20140047441A1 (en) Information processing apparatus, virtual machine control method, and program
US20220179812A1 (en) Method for Improving Reliability of Storage System, and Related Apparatus
CN113342261A (zh) 伺服器与应用于伺服器的控制方法
JP5511546B2 (ja) フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
US20170052709A1 (en) Storage system, storage control apparatus, and storage control method
US11853557B2 (en) Shared drive storage stack distributed QoS method and system
WO2011026661A1 (en) Shared-bandwidth multiple target remote copy
US7802041B2 (en) Information processing apparatus including transfer device for transferring requests
TWI766594B (zh) 伺服器與應用於伺服器的控制方法
RU2810634C2 (ru) Способ повышения надежности систем хранения данных и соответствующее устройство
WO2023143039A1 (zh) 一种数据处理方法及装置
US20160321198A1 (en) Control apparatus, storage apparatus and computer-readable recording medium having stored therein control program
JP2018032061A (ja) ストレージ制御装置、およびストレージシステム
JP2011076528A (ja) Raidカードの冗長化方法及びraidカードの冗長化装置
JP6930153B2 (ja) パス切替装置、パス切替方法及びパス切替プログラム、並びに、コンピュータシステム
CN113342257A (zh) 伺服器及相关的控制方法
CN113345495A (zh) 伺服器及相关的控制方法
JP2010033379A (ja) 仮想化システム及び仮想化の復旧方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120410

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140325

R150 Certificate of patent or registration of utility model

Ref document number: 5511546

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees