JP2012103975A - データ転送装置、データ転送方法、コンピュータシステム - Google Patents

データ転送装置、データ転送方法、コンピュータシステム Download PDF

Info

Publication number
JP2012103975A
JP2012103975A JP2010253120A JP2010253120A JP2012103975A JP 2012103975 A JP2012103975 A JP 2012103975A JP 2010253120 A JP2010253120 A JP 2010253120A JP 2010253120 A JP2010253120 A JP 2010253120A JP 2012103975 A JP2012103975 A JP 2012103975A
Authority
JP
Japan
Prior art keywords
transaction
channel adapter
host channel
posted write
reply
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
JP2010253120A
Other languages
English (en)
Other versions
JP5444194B2 (ja
Inventor
Masaru Kunugi
大 功刀
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2010253120A priority Critical patent/JP5444194B2/ja
Publication of JP2012103975A publication Critical patent/JP2012103975A/ja
Application granted granted Critical
Publication of JP5444194B2 publication Critical patent/JP5444194B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】データインテグリティを保証し、障害時の影響範囲を小さくする。
【解決手段】データ転送装置は、入出力コントローラと、ホストチャネルアダプタと、スイッチとを具備する。入出力コントローラは、所定のposted writeトランザクションを受信すると、リプライトランザクションを返送する。ホストチャネルアダプタは、リプライトランザクションの返送が義務付けられているnon−posted writeトランザクションを発行したのち、入出力コントローラから所定の数のリプライトランザクションを受信するまでリプライトランザクションを待ち合わせる。スイッチは、入出力コントローラと前記ホストチャネルアダプタとの間に設けられ、トランザクションを中継する。スイッチは、トランザクションの中継時に発生した障害をCPUに通知し、ホストチャネルアダプタはCPUから障害発生の通知を受信したとき、対向するホストチャネルアダプタにデータ転送が異常終了したことを通知する。
【選択図】図6

Description

本発明は、装置間のデータ転送方法に関し、特にパケットデータを転送するデータ転送方法、そのデータ転送方法によってデータを授受するデータ転送装置、コンピュータシステムに関する。
ホストコンピュータ間をポイント・ツー・ポイント接続するインターコネクトとして、PCI express switch(以下PCIスイッチ)のポートに接続されるホストチャネルアダプタ(HCA)を用いることがある。このPCIスイッチには、他のPCIデバイスも接続される。このようなシステムにおいてPCIスイッチに障害が起きると、PCIスイッチを閉塞することが多い。そのような場合、ホストチャネルアダプタを含め、PCIスイッチに接続されている全てのPCIデバイスが閉塞され、障害発生時の影響範囲が大きい。
PCIスイッチは、“障害閉塞モード”および“障害通知モード”の動作モードを備える。“障害閉塞モード”では、PCIスイッチは障害発生時に自身を閉塞する。“障害通知モード”では、PCIスイッチは閉塞せずに処理中のトランザクションのみ破棄し、コントローラに障害通知を行なって後続のトランザクションの処理を継続する。
データインテグリティ(データ完全性)を保証するためには、障害発生時にホストチャネルアダプタ間のデータ転送を異常終了させる必要がある。障害閉塞モードでは、障害発生時にホストチャネルアダプタが閉塞されるため、データ転送が途中で停止して異常終了し、データインテグリティが保証される。しかし、PCIスイッチに接続される他のPCIデバイスも閉塞するため、障害の影響範囲が大きくなる。したがって、障害閉塞モードでは、障害の影響が及ぶ範囲を小さくすることが課題である。一方、障害通知モードでは、PCIスイッチに接続されているPCIデバイスは閉塞されず、障害の影響が及び範囲は限定的になる。しかし、ホストチャネルアダプタ間で転送途中のトランザクションが破棄されるが、データ転送を要求したリクエスタはその異常を検出できないため、データ転送は正常終了したものと扱われる。したがって、この場合、データインテグリティを保証することはできない。
PCIバス障害によるシステムダウンの発生を抑止するため、特開2005−215809号公報には、プロセッサと、主記憶と、複数の入出力デバイスとを接続する入出力バスを制御するバスコントローラを含み、OS(Operating System)にて制御されるコンピュータシステムが開示されている。バス信号制御部は、PCIバスプロトコルに従ってPCIバス上のPCIデバイスとのトランザクション制御を行う。バス信号制御部は、バス障害検出時にバス障害インジケータをセットしてPCIバスを縮退状態として扱い、PCIデバイスへの指示要求を受付ける。コンフィグレーション部は、バス障害インジケータを持ち、コンフィグレーションレジスタを更新する。そして、コンフィグレーション部は、リプライトランザクションをインバウンドコントローラ部に送信する。アービトレーション部は、PCIバスの調停を行い、バス縮退状態時にPCIデバイスからのバス使用要求をマスクする。
特開2009−169854号公報には、周辺装置にデータ転送要求を発行するホストブリッジと、周辺装置と複数のレーンを介して接続され、ホストブリッジと周辺装置との間を中継する第1のホストバスアダプタとを有するコンピュータシステムにおいて、バス障害が発生した場合に迅速にリカバリ処理する技術が開示されている。ホストブリッジは、周辺装置との間でデータ転送が行われている間に通信エラーが発生した場合に、複数のレーンのうち正常であるレーンを使用してデータ転送における転送未完了のデータを第1のホストバスアダプタから受信する。
また、特開平09−325919号公報には、データの転送エラーを検出し、リクエストトランザクションに対するリプライトランザクションの正当性を高めるスプリット転送エラー監視装置が開示されている。リクエストトランザクション送信回路は、リクエストトランザクションの送信時にカウント回路をインクリメントする。リプライトランザクション受信回路は、リプライトランザクションの受信時にカウント回路をデクリメントする。カウント回路は、カウント値が負になるとエラーを中央処理装置に報告する。中央処理装置は、トランザクション情報格納バッファにリクエストトランザクション及びリプライトランザクションの情報を書込む。中央処理装置は、パリティ反転手段を用いてデータ格納バッファを偶数パリティで初期化する。そして、中央処理装置は、トランザクション情報格納バッファとデータ格納バッファとからのデータを奇数パリティでチェックする。
図1に示されるように、対向するホストコンピュータ7A、7Bが有するホストチャネルアダプタ23A、23Bを光ケーブル30でポイント・ツー・ポイント接続したコンピュータシステムにおけるデータ転送を説明する。図2は、RDMA(Remote Direct Memory Access)によるデータ転送であるRDMA−writeの正常動作のときのシーケンス例を示す。
ホストコンピュータ7AのCPU11Aは、RDMA−writeによるデータ転送をホストチャネルアダプタ23Aに要求する(S101)。ホストチャネルアダプタ23Aは、readトランザクションを発行し(S102)、PCIスイッチ22AおよびIOC21Aを介して主記憶メモリ12Aからデータを読み出す(S103)。ホストチャネルアダプタ23Aは、読み出したデータを対向するコンピュータ7Bのホストチャネルアダプタ23Bに光ケーブル30を介してデータ転送する(S111〜S114)。
データを受信したホストチャネルアダプタ23Bは、posted writeトランザクションを発行し、PCIスイッチ22B、IOC21Bを介して主記憶メモリ12Bにデータを書き込む(S121〜S124)。ここで、データを送信する場合の手順として、“posted write”と“non−posted write”がある。“posted write”は相手側からのレスポンスを必要とせず、“non−posted write”は相手側から動作完了のレスポンスを必要とする。したがって、転送速度を優先するDMA転送では“posted write”が使用される。
ホストチャネルアダプタ23Bは、転送されるデータの最後のposted writeトランザクションを発行すると、readトランザクションを発行して(S141)、最後に書き込んだデータを読み出して主記憶メモリ12Bが書き込み動作を完了したことを待ち合わせる。Readトランザクションに対して主記憶メモリ12Bからリプライトランザクションが返却されると(S142)、ホストチャネルアダプタ23Bは、ホストコンピュータ7Aのホストチャネルアダプタ23Aに対して正常終了を示す終了フラグを転送する(S144)。
終了フラグを受信したホストチャネルアダプタ23Aは、posted writeトランザクションを発行し、主記憶メモリ12Aに正常終了を示す終了フラグを書き込む(S151)。CPU11Aは、ホストチャネルアダプタ23Aによって書き込まれる終了フラグをポーリングしてRDMA−writeの完了を待ち合わせ、読み込んだ終了フラグによって示される値に基づいて、正常終了・異常終了の判定を行う(S152)。ここでは、全てのデータが主記憶メモリ12Bに書き込まれているため、CPU11Aは、正常終了と認識する。
次に、PCIスイッチ22Bにおいて障害発生を検知した場合を説明する。図3には、障害による影響を拡散させないように、障害発生時にPCIスイッチ22Bおよびホストチャネルアダプタ23Bを閉塞する障害閉塞モードのシーケンスが示される。
ホストチャネルアダプタ23Bがposted writeトランザクションを処理中にPCIスイッチ22Bにおいて障害が発生すると(S123)、PCIスイッチ22Bは障害通知をCPU11Bに報告して閉塞する(S137)。PCIスイッチ22Bが閉塞するため、PCIスイッチ22Bに接続されているホストチャネルアダプタ23B、その他のPCIデバイス24Bも閉塞状態になる(S129)。ホストチャネルアダプタ23Bが閉塞状態にあるため、ホストチャネルアダプタ23Aとホストチャネルアダプタ23Bとのリンクは切れる。ホストチャネルアダプタ23Aは、このリンクダウンを検知し(S155)、CPU11Aに通知する(S156)。通知を受けたCPU11Aは、要求したデータ転送が異常終了したと判断する。
このように、障害閉塞モードでは、データ転送を要求したCPU11Aは、ホストチャネルアダプタ23Aから報告を受けてデータ転送が異常終了したことを知ることができるため、データインテグリティは保証できる。しかし、ホストコンピュータ7Bに搭載される他のPCIデバイス24も閉塞するため、正常に動作している他の機能も閉塞することになり影響が大きい。
一方、障害通知モードで動作するPCIスイッチ21Bの場合、図4に示されるように動作する。ホストチャネルアダプタ23Bがposted writeトランザクションを処理中にPCIスイッチ22Bにおいて障害が発生すると(S123)、PCIスイッチ22Bは、障害通知をCPU11Bに報告し(S137)、仕掛かり中のトランザクションを破棄する。CPU11Bは障害処理を実行し、ホストチャネルアダプタ23Bに障害発生を通知する(S138)。ホストチャネルアダプタ23Bは異常終了を示す終了フラグをホストチャネルアダプタ23Aに送る(S148)。ホストチャネルアダプタ23Aは、データ転送が異常終了したことを主記憶メモリ12Aに終了フラグを書き込んでCPU11Aに報告する(S158)。CPU11Aは、データ転送が異常終了したことを知ることができる。
しかし、図4に示されるように、ホストチャネルアダプタ23BがCPU11BからPCIスイッチ21Bの異常を通知される前に、次のトランザクションが正常に終了することがある(S124、S141、S142)。データ転送の最後のデータが主記憶メモリ12Bから正常に読み出すことができれば(S142)、ホストチャネルアダプタ23Bは、データ転送が正常終了したものとしてホストチャネルアダプタ23Aに通知する(S144)。ホストチャネルアダプタ23Aは、CPU11Aに対してデータ転送の正常終了を報告し(S151)、CPU11Aは、破棄されたトランザクションがあり、一部のデータ転送が行なわれていないにもかかわらず、要求したデータ転送によって全てのデータが相手側に正常に送られたと判定する。すなわち、データインテグリティを保証することができない。
したがって、このようなシステムでは、PCIスイッチが障害閉塞モードで動作すると、接続されているPCIデバイスが全て閉塞状態になるため、デグレード範囲が大きく、システムの継続運用に影響が大きい。障害時の影響を小さくするために、PCIデバイスが閉塞しない障害通知モードでPCIスイッチを動作させると、posted writeトランザクションが破棄され、データインテグリティが保証できない場合がある。
特開2005−215809号公報 特開2009−169854号公報 特開平09−325919号公報
本発明の目的は、データインテグリティを保証し、障害時の影響範囲を小さくするデータ通信装置、データ通信方法、コンピュータシステムを提供することにある。
本発明の観点では、データ転送装置は、入出力コントローラ(IOC)と、ホストチャネルアダプタ(HCA)と、スイッチとを具備する。入出力コントローラは、所定のposted writeトランザクションを受信すると、リプライトランザクションを返送する。ホストチャネルアダプタは、リプライトランザクションの返送が義務付けられているnon−posted writeトランザクションを発行したのち、入出力コントローラから所定の数のリプライトランザクションを受信するまでリプライトランザクションを待ち合わせる。スイッチは、入出力コントローラと前記ホストチャネルアダプタとの間に設けられ、トランザクションを中継する。スイッチは、トランザクションの中継時に発生した障害をCPUに通知し、ホストチャネルアダプタはCPUから障害発生の通知を受信したとき、対向するホストチャネルアダプタにデータ転送が異常終了したことを通知する。
本発明の他の観点では、コンピュータシステムは、上記のデータ転送装置を備える複数のコンピュータを含み、対向するコンピュータ間でデータ転送装置を介してデータの授受を行なう。
また、本発明の他の観点では、データ転送方法は、ホストチャネルアダプタから所定のposted writeトランザクションを入出力コントローラに対してスイッチを介して発行するステップと、所定のposted writeトランザクションを受けた入出力コントローラからホストチャネルアダプタに対して所定のリプライトランザクションを発行するステップと、ホストチャネルアダプタから入出力コントローラに対してnon−posted writeトランザクションを発行するステップと、ホストチャネルアダプタがnon−posted writeトランザクションを発行した後、所定のリプライトランザクションを受信するまで待ち合わせるステップと、スイッチがトランザクションを中継するときに検出した障害をCPUに通知するステップと、障害に基づいてCPUから通知される障害通知を受信したときにホストチャネルアダプタから対向するホストチャネルアダプタに対してデータ転送が異常終了したことを通知するステップとを具備する。
本発明によれば、データインテグリティを保証し、障害時の影響範囲を小さくするデータ通信装置、データ通信方法、コンピュータシステムを提供することができる。
本発明の実施の形態に係るコンピュータシステムの構成を示す図である。 RDMA−writeの正常動作のときの動作を説明する図である。 RDMA−write中に障害が発生したときの動作を説明する図である。 障害通知モードで動作するPCIスイッチの障害時の動作を説明する図である。 本発明の第1の実施の形態に係るコンピュータシステムにおけるRDMA−writeの正常動作を説明する図である。 本発明の第1の実施の形態に係るコンピュータシステムにおけるRDMA−writeの障害時の動作を説明する図である。 本発明の第2の実施の形態に係るコンピュータシステムにおけるRDMA−writeの正常動作を説明する図である。 本発明の第2の実施の形態に係るコンピュータシステムにおけるRDMA−writeの障害時の動作を説明する図である。
本発明は、PCI express switch(以下PCIスイッチ)のポートにホストチャネルアダプタ(HCA)を接続し、二つのホストコンピュータ間をポイント・ツー・ポイント接続したコンピュータシステムに関するものである。PCIスイッチは、“障害閉塞モード”と、“障害通知モード”との2種類の動作モードを有する。障害閉塞モードでは、PCIスイッチは障害時に閉塞する。障害通知モードでは、PCIスイッチは閉塞せずに処理中のトランザクションを破棄してコントローラに対して障害通知を行い、後続のトランザクションを継続処理する。
本発明では、PCIスイッチ障害時にPCIスイッチが閉塞せず、かつ、データインテグリティ(データ完全性)を保証するホストコンピュータ間データ転送方式を提供する。これによって、PCIスイッチ障害時のデグレード影響範囲を小さくする。データインテグリティを保証するためには、障害発生時にホストチャネルアダプタ間のデータ転送を異常終了させる必要がある。障害閉塞モードでは、障害発生時にホストチャネルアダプタが閉塞し、データ転送が途中で停止して異常終了するため、データインテグリティは保証できる。しかし、PCIスイッチに接続されている他のPCIデバイスも閉塞してしまうため、障害の影響範囲が大きくなる。
一方、障害通知モードではPCIスイッチに接続されているPCIデバイスは閉塞しないものの、ホストチャネルアダプタ間のデータ転送中のあるトランザクションが破棄され、データ転送のリクエスタが異常を検出できない。したがって、データ転送は正常終了したと誤認識され、データインテグリティを保証できない。本発明では、PCIスイッチは障害通知モードで動作し、データインテグリティを保証する転送方式を提供する。
ホストチャネルアダプタからのトランザクションがPCIスイッチを経由し、その先の入出力コントローラ(IOC)まで到達すると、入出力コントローラはホストチャネルアダプタに対するリプライトランザクションを新たに発行する。ホストチャネルアダプタはトランザクション数とリプライトランザクション数とを監視する。トランザクション数とリプライトランザクション数が一致した場合、ホストチャネルアダプタは正常終了と判断し、リプライトランザクション数が少ない場合にはトランザクション未達と判断して後続のトランザクションを停止する。これにより、障害発生時に一連のデータ転送を異常終了させることができ、データインテグリティを保証することができる。このように、本発明では、PCIスイッチは障害時に障害通知モードで動作し、ホストチャネルアダプタと入出力コントローラとの間でトランザクションの破棄を監視することにより、データインテグリティを保証しつつ、障害発生時のデグレード影響範囲を小さくすることができる。
図面を参照して本発明の実施の形態を説明する。
(第1の実施の形態)
図1は、本発明の実施の形態に係るコンピュータシステムの構成を示す図である。本発明の実施の形態に係るコンピュータシステムは、光ケーブル30によってポイント・ツー・ポイント接続されるホストコンピュータ7A、7Bを具備する。ホストコンピュータ7Aとホストコンピュータ7Bとは、光ケーブル30を介して互いにデータを授受する。ホストコンピュータ7A、7Bは、同じように構成されるため、それぞれ対応する部分には同じ符号を付与し、ホストコンピュータ7Aに含まれるものには“A”、ホストコンピュータ7Bに含まれるものには“B”を符号の末尾に付加して区別する。
ホストコンピュータ7は、データ処理の中枢であるCPU部を搭載するCPUボード10と、入出力を担うIO部を搭載するIOPボード20とを具備する。CPUボード10は、CPU11と、主記憶メモリ(MM)12と、メモリ制御部13と、入出力制御部14とを備える。IOPボード20は、入出力コントローラ(IOC)21、PCIスイッチ(SW)22、ホストチャネルアダプタ(HCA)23、その他のPCIデバイス(DEV)24を備える。
CPU11および入出力制御部14は、メモリ制御部13を介して主記憶メモリ12からデータを読み出し、主記憶メモリ12へデータを書き込む。CPU11は、主記憶メモリ12に格納されるプログラムを読み出して実行する。入出力制御部14は、IOPボード20とCPUボード10とを接続し、IOPボード20からのトランザクションやIOPボード20へのトランザクションを制御する。メモリ制御部13は、CPU11および入出力制御部14からの主記憶メモリ12への書き込みおよび読み出し要求を処理する。
PCIスイッチ22は、IOC21、ホストチャネルアダプタ23、その他のPCIデバイス24を接続し、PCI expressにおけるパケットを送り先に転送するスイッチング装置である。IOC21は、PCIスイッチ22および入出力制御部14に接続され、ホストチャネルアダプタ23、その他のPCIデバイス24からの要求を入出力制御部14へ送り、入出力制御部14からの要求をホストチャネルアダプタ23、その他のPCIデバイス24へ送る。ホストチャネルアダプタ23は、PCIスイッチ22に接続されるPCIデバイスであり、光ケーブル30を介して対向するホストコンピュータのホストチャネルアダプタ23との間で主記憶メモリ12に対するデータ転送を行う。
ホストコンピュータ7Aからホストコンピュータ7Bに対して、RDMA(Remote Direct Memory Access)によってデータ転送を行う場合の動作を説明する。ここで、RDMA−writeは、リクエスト元のコンピュータの主記憶メモリに格納されるデータを、リクエスト先のコンピュータの主記憶メモリにCPUの介在なしに書き込む動作である。
図5に、データ転送が正常に行われる場合のシーケンスを示す。
ホストコンピュータ7Aにおいて、CPU11Aは、RDMA−writeリクエストトランザクションを発行してホストチャネルアダプタ23AにRDMAによるデータ転送を指示する(S101)。その後、CPU11Aは、主記憶メモリ12Aに格納される終了フラグがデータ転送の終了を示すまでポーリングする。
ホストチャネルアダプタ23Aは、Readトランザクションを発行して(S102)、主記憶メモリ12Aからデータを読み出す(S103)。ホストチャネルアダプタ23Aは、光ケーブル30を介して対向するホストコンピュータ7Bのホストチャネルアダプタ23Bに読み出したデータを送出する(S111〜S114)。
データを受信したホストチャネルアダプタ23Bは、受信したデータを所定の転送単位毎にIOC21Bに送るため、posted writeトランザクションを発行する。このposted writeトランザクションは、PCIスイッチ22Bを介してIOC21Bに到達し、転送されるデータは、入出力制御部148Bを介してメモリ制御部13Bにより主記憶メモリ12Bに書き込まれる(S121〜S124)。このとき、IOC21Bは、posted writeトランザクションを検出すると、対応するカウント用のリプライトランザクションをホストチャネルアダプタ23Bに対して発行する(S131〜S134)。
ホストチャネルアダプタ23Bは、データ転送における最後のposted writeトランザクションを発行すると(S124)、最後に転送されたデータの書き込み処理が完了したことを確認するためにReadトランザクションを発行する(S141)。ホストチャネルアダプタ23Bは、これまで発行したposted wirteトランザクションおよびReadトランザクションに対する全てのリプライトランザクションが応答されるまで待ち合わせる(S143)。すなわち、ホストチャネルアダプタ23Bは、posted writeトランザクションの発行数、それらに対するカウント用のリプライトランザクションの受信数をカウントし、発行数と受信数とが一致するまで待ち合わせる。図5に示されるシーケンスでは、Readトランザクション(S141)が発行された後、リプライトランザクションを受信する(S134)。これでposted writeトランザクションに対するリプライトランザクションは全て受信したが、Readトランザクションに対する応答はまだ受信されていないため、待ち合わせを続ける。Readトランザクションに対しては、主記憶メモリ12B(メモリ制御部13B/入出力制御部14B)からリプライトランザクションが返却される(S142)。これを受信してホストチャネルアダプタ23Bは、対向するホストコンピュータ7Aのホストチャネルアダプタ23Aに正常終了を示す終了フラグを転送する(S144)。
終了フラグを受信したホストチャネルアダプタ23Aは、posted writeトランザクションを発行し、RDMAによるデータ転送が正常終了したことを示す終了フラグを主記憶メモリ12Aに書き込む(S151)。CPU11Aは、終了フラグをポーリングしてRDMA−writeリクエストトランザクションの終了を待ち合わせている(S152)。したがって、ホストチャネルアダプタ23Aによって終了フラグが主記憶メモリ12Aに書き込まれると、CPU11Aは、RDMA−writeリクエストトランザクションの終了を知ることができる。CPU11Aは、終了フラグによって示される値に基づいて、データ転送が正常終了したのか異常終了したのかを判定する。図5に示される場合、CPU11Aは正常終了と判定する。
このようなシーケンスでRDMA−writeトランザクションが実行されている途中で、PCIスイッチ22Bにおいて一時的な障害が発生した場合のシーケンスが、図6に示される。ホストチャネルアダプタ23Bが、3回目のデータ転送をホストチャネルアダプタ23Aから受信するまでは(S113)、図5に示されるシーケンスと同じである。
3回目のデータ転送をホストチャネルアダプタ23Aから受信したホストチャネルアダプタ23Bは、posted writeトランザクションを発行する(S123)。このposted writeトランザクションは、PCIスイッチ22Bにおいて発生した障害により破棄される。すなわち、PCIスイッチ22Bは、障害発生を検知すると、障害通知をCPU11Bに報告し(S137)、仕掛かり中のトランザクションを破棄する。したがって、IOC21Bにはこのposted writeトランザクションが到達せず、IOC21Bは、リプライトランザクションを発行しない。ここまでに発行されたposted writeトランザクションに対するリプライトランザクションはIOC21Bからホストチャネルアダプタ23Bに到達しているので、この時点で、発行されたposted writeトランザクションの数と、それに対応するリプライトランザクションの数とが不一致となる。
その後、ホストチャネルアダプタ23Aから最後のデータを受信したホストチャネルアダプタ23Bは、posted writeトランザクションを発行し(S124)、Readトランザクションを発行する(S141)。ホストチャネルアダプタ23Bは、これまで発行したposted wirteトランザクションおよびReadトランザクションに対する全てのリプライトランザクションが応答されるまで待ち合わせる(S143)。
最後に発行したposted writeトランザクション(S124)と、Readトランザクション(S141)とに対するリプライトランザクション(S134、S142)はホストチャネルアダプタ23Bに届くが、破棄されたposted writeトランザクション(S123)に対するリプライトランザクションは発行されず、ホストチャネルアダプタ23Bは待ち合わせを続ける。
一方、障害通知を受けたCPU11Bは、障害処理を行い、PCIスイッチ22Bにおいて障害があったことをホストチャネルアダプタ23Bに通知する(S138)。すなわち、posted writeトランザクションの数とリプライトランザクションの数が不一致の場合、ホストチャネルアダプタ23Bは一致するまで待ち合わせるが、その間にCPU11BがPCIスイッチの障害を認識して障害処理を行ない、ホストチャネルアダプタ23Bに障害を通知することになる。
障害通知を受けたホストチャネルアダプタ23Bは、データ転送が異常終了したことを示す終了フラグを、対向するホストコンピュータ7Aのデータチャネルアダプタ23Aに送る(S148)。
異常終了を示す終了フラグを受信したホストチャネルアダプタ23Aは、posted writeトランザクションを発行して、主記憶メモリ12Aに終了フラグを書き込む(S158)。CPU11Aは、ポーリングによって終了フラグを取り込み(S159)、RDMA−writeリクエストトランザクションが異常終了したことを認識する。したがって、CPU11Aは、転送したデータの一部がホストコンピュータ7Bに未到達であることを認識し、データインテグリティは保証される。
このように、本発明では、障害発生時に閉塞を行わずに障害通知のみ行うPCIスイッチをデータ転送経路に有するコンピュータシステムにおいて、リクエストトランザクションの待ち合わせによりデータインテグリティを保証することができる。すなわち、PCIスイッチを介してposted writeトランザクションを発行する発行元であるホストチャネルアダプタ(リクエスタ)が、発行先であるIOCからposted writeトランザクションに対するリクエストトランザクションを待ち合わせする。これにより、障害通知に応答して起動される障害処理によって、PCIスイッチ障害においてトランザクション破棄が行われたことを認識することができ、データインテグリティを保証することができる。
また、障害発生時に閉塞を行わずに障害通知のみ行うPCIスイッチによってデータインテグリティが保証されるため、データインテグリティを保証するためにPCIスイッチを閉塞する必要がなく、障害時の影響範囲を限定的にすることができる。
(第2の実施の形態)
図7、図8に、本発明の第2の実施の形態に係るコンピュータシステムの動作が示される。図7は、RDMA−writeリクエストトランザクションにおける正常終了する場合のシーケンスを示し、図8は異常終了する場合のシーケンスを示す。
図7を参照すると、CPU11AからRDMA−writeリクエストトランザクションが発行され(S101)、ホストチャネルアダプタ23AがReadトランザクション(S102)によって主記憶メモリ12Aからデータを読み出し(S103)、ホストチャネルアダプタ23Bへデータ転送する(S111〜S114)。ここまでは、第1の実施の形態における動作と同じである。
最初のデータを受信したホストチャネルアダプタ23Bは、IOC21Bに対してposted writeトランザクションを発行し、これから始まるデータ転送のposted writeトランザクションの発行数をIOC21B内のレジスタに書き込む(S120)。ここでは、posted writeトランザクションを4回発行してデータ転送が行われるため(S121〜S124)、IOC21B内のレジスタには“4”が書き込まれる。IOC21Bは、レジスタに値が書き込まれると受信回数をクリアする。
一方、ホストチャネルアダプタ23Bは、posted writeトランザクションを発行し(S121〜S124)、IOC21Bを介して主記憶メモリ12Bに転送データを書き込む。所定のposted writeトランザクションを発行し終わると、ホストチャネルアダプタ23Bは、最後に書き込んだデータを読み出すためにReadトランザクションを発行する(S141)。ホストチャネルアダプタ23Bは、IOC21Bからのリプライトランザクション(S135)および主記憶メモリ12Bに対するReadトランザクションに応答するリプライトランザクション(S142)を受信するまで待ち合わせる(S143)。
IOC21Bは、posted writeトランザクションを受信するたびに受信回数をカウントアップする(S130)。受信回数がレジスタに書き込まれた値と一致すると、IOC21Bは、ホストチャネルアダプタ23Bに対してリプライトランザクションを発行する。したがって、IOC21Bは、ホストチャネルアダプタ23Bから発行されるposted writeトランザクション(S121〜S123)を受信する毎に受信回数をカウントアップする。4回目のposted writeトランザクション(S124)を受信すると、受信回数とレジスタ値とが一致し、リプライトランザクションが発行される(S135)。レジスタに設定された回数の受信があったことを確認するとよいので、受信毎のダウンカウントでもよい。
posted writeトランザクション(S121〜S124)を受信したIOC21Bは、リプライトランザクションを発行し(S135)、Readトランザクションに対しては、主記憶メモリ12Bからリプライトランザクションが返却される(S142)。これらのリプライトランザクションが到達すると、ホストチャネルアダプタ23Bは、ホストコンピュータ7Aのホストチャネルアダプタ23Aに対して正常終了を示す終了フラグを転送する(S144)。
終了フラグを受信したホストチャネルアダプタ23Aは、posted writeトランザクションを発行し、主記憶メモリ12Aに正常終了を示す終了フラグを書き込む(S151)。CPU11Aは、主記憶メモリ12Aに書き込まれる終了フラグをポーリングしてRDMA−writeの完了を待ち合わせる(S152)。終了フラグを検知したCPU11Aは、終了フラグの値に基づいて正常終了・異常終了の判定を行う。図7に示されるシーケンスでは、CPU11Aは、データ転送が正常終了したと認識する。ホストチャネルアダプタ23BがIOC21B内のレジスタにデータ転送のposted writeトランザクションの発行数を書き込むposted writeトランザクションは、複数回発行されてもよい。その場合、ホストチャネルアダプタ23Bは、readトランザクションを発行した後、データ転送のposted writeトランザクションの発行数を書き込むposted writeトランザクションの発行回数と、そのリプライトランザクションの受信数が一致するまで待ち合わせる。
障害が発生した場合、図8に示されるシーケンスとなる。
ホストコンピュータ7Aは、ホストチャネルアダプタ23Aがホストコンピュータ7Bにデータ転送を完了するまで(〜S114)、図7に示されるシーケンスと同様の動作となる。
ホストコンピュータ7Bでは、ホストチャネルアダプタ23BがIOC21B内のレジスタにデータ転送にposted writeトランザクションの発行数を設定し、順次posted writeトランザクションを発行して主記憶メモリ12Bにデータを書き込む。ホストチャネルアダプタ23Bが、3回目のposted writeトランザクションを発行したとき(S123)、PCIスイッチ22Bにおいて障害発生が検知される。PCIスイッチ22Bは、CPU11Bに対して障害発生を報告し(S137)、仕掛り中のトランザクションを破棄する。
IOC21Bは、レジスタに設定される回数のposted writeトランザクションを待ち合わせる(S130)。しかし、障害発生を検知したPCIスイッチ22Bが仕掛り中のトランザクションを破棄しているため、IOC21Bは、ホストチャネルアダプタ23Bから4回目のposted writeトランザクションを受信しても(S124)、受信数が不足であると判定する。したがって、IOC21Bは、リプライトランザクションを発行せずにposted writeトランザクションを待ち続ける(S130)。
ホストチャネルアダプタ23Bは、4回目のposted writeトランザクションを発行(S124)の後、最後に転送されたデータを確認するためにReadトランザクションを発行し(S141)、主記憶メモリ12Bに格納されるデータを読み出す(S142)。ホストチャネルアダプタ23Bは、IOC21Bからリプライトランザクションが受信されないため、待ち続ける(S143)。
一方、障害通知を受けたCPU11Bは、障害処理を行い、ホストチャネルアダプタ23Bに障害発生を通知する(S138)。障害通知を受信したホストチャネルアダプタ23Bは、posted writeトランザクションが破棄されたことを認識し、対向するホストコンピュータ7Aに対して異常終了を示す終了フラグを送る(S148)。
異常終了を示す終了フラグを受信したホストチャネルアダプタ23Aは、posted writeトランザクションを発行して、主記憶メモリ12Aに終了フラグを書き込む(S158)。CPU11Aは、ポーリングによって終了フラグを取り込み(S159)、RDMA−writeリクエストトランザクションが異常終了したことを認識する。したがって、CPU11Aは、転送したデータの一部がホストコンピュータ7Bに未到達であることを認識し、データインテグリティは保証される。
このように、本発明のコンピュータシステムでは、リプライトランザクションの発行を伴わずにメモリにデータを書き込むことを指示するposted writeトランザクションに対して、PCIスイッチの接続先装置(主記憶への書き込み経路の途中の装置)がリプライトランザクションを返却する。リプライトランザクションの発行を伴うnon−posted writeトランザクションを受信した主記憶メモリは、主記憶メモリへの書き込みを完了した後、リプライトランザクションを発行する。本発明では、writeトランザクションはposted writeとnon−posted writeの中間的な性質を有するトランザクションとなる。
すなわち、PCIスイッチがトランザクションを破棄する障害を検出することを目的として、主記憶メモリへの書き込み経路の途中に設けられるIOCがリプライトランザクションを返却する。このリプライトランザクションは、non−posted writeトランザクションに対するリプライトランザクションよりも早く返信される。また、CPUボード側ではリプライトランザクションを返却しないためCPUボード側のトランザクション処理の負荷が大きくならない。さらに、本発明は、CPUボード側の動作に影響せずに実施可能である。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、矛盾のない限り組み合せて実施可能である。
7、7A、7B ホストコンピュータ
10、10A、10B CPUボード
11、11A、11B CPU
12、12A、12B 主記憶メモリ
13、13A、13B メモリ制御部
14、14A、14B I/O制御部
20、20A、20B IOPボード
21、21A、21B IOC:入出力コントローラ
22、22A、22B PCIスイッチ
23、23A、23B ホストチャネルアダプタ:HCA
24、24A、24B その他のインタフェースデバイス
30 光ケーブル

Claims (10)

  1. 所定のposted writeトランザクションを受信すると、リプライトランザクションを返送する入出力コントローラ(IOC)と、
    リプライトランザクションの返送が義務付けられているnon−posted writeトランザクションを発行したのち、前記入出力コントローラから所定の数のリプライトランザクションを受信するまでリプライトランザクションを待ち合わせるホストチャネルアダプタ(HCA)と、
    前記入出力コントローラと前記ホストチャネルアダプタとの間に設けられ、トランザクションを中継するスイッチと
    を具備し、
    前記スイッチは前記トランザクションの中継時に発生した障害をCPUに通知し、
    前記ホストチャネルアダプタは前記CPUから障害発生の通知を受信したとき、対向するホストチャネルアダプタにデータ転送が異常終了したことを通知する
    データ転送装置。
  2. 前記スイッチは、シリアル転送インタフェースであるPCI expressのパケット化されたデータの転送をスイッチングする
    請求項1に記載のデータ転送装置。
  3. 前記入出力コントローラは、前記CPUが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するposted writeトランザクションを受信すると、カウント用のリプライトランザクションを返送し、
    前記ホストチャネルアダプタは、前記non−posted writeトランザクションを発行したのち、前記主記憶メモリへのデータ書き込みを指示するposted writeトランザクションに対応する全ての前記カウント用のリプライトランザクションを受信するまで新たなトランザクションを発行せずに待ち合わせる
    請求項1または請求項2に記載のデータ転送装置。
  4. 前記入出力コントローラは、前記CPUが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するposted writeトランザクションの受信の予定数を、前記ホストチャネルアダプタからposted writeトランザクションに基づいて書き込まれ、保持するレジスタを備え、
    前記ホストチャネルアダプタから発行された前記主記憶メモリへのデータ書き込みを指示するposted writeトランザクションの受信数が前記レジスタに書き込まれた数に一致するとき、カウント用のリプライトランザクションを前記ホストチャネルアダプタへ発行し、
    前記ホストチャネルアダプタは、前記non−posted writeトランザクションを発行したのち、前記レジスタに書き込みを要求するposted writeトランザクションの発行数と、前記カウント用のリプライトランザクションの受信数とが一致するまで新たなトランザクションを発行せずに待ち合わせる
    請求項1または請求項2に記載のデータ転送装置。
  5. 請求項1から請求項4のいずれかに記載のデータ転送装置を備える複数のコンピュータを含み、
    対向するコンピュータ間で前記データ転送装置を介してデータの授受を行なう
    コンピュータシステム。
  6. 前記複数のコンピュータの各々は、CPUを含み、
    前記複数のコンピュータのうちの障害が発生したコンピュータにおいて前記スイッチが前記CPUに対して障害発生を通知したとき、主記憶メモリに書き込み途中の前記ホストチャネルアダプタに対して障害発生を通知し、前記主記憶メモリに書き込み途中の前記ホストチャネルアダプタは対向する前記ホストチャネルアダプタに対して前記主記憶メモリへのデータ書き込みが異常終了したことを通知する
    請求項5に記載のコンピュータシステム。
  7. ホストチャネルアダプタから所定のposted writeトランザクションを入出力コントローラに対してスイッチを介して発行するステップと、
    前記所定のposted writeトランザクションを受けた前記入出力コントローラから前記ホストチャネルアダプタに対して所定のリプライトランザクションを発行するステップと、
    前記ホストチャネルアダプタから前記入出力コントローラに対してnon−posted writeトランザクションを発行するステップと、
    前記ホストチャネルアダプタが前記non−posted writeトランザクションを発行した後、前記所定のリプライトランザクションを受信するまで待ち合わせるステップと、
    前記スイッチがトランザクションを中継するときに検出した障害をCPUに通知するステップと、
    前記障害に基づいて前記CPUから通知される障害通知を受信したときに前記ホストチャネルアダプタから対向するホストチャネルアダプタに対してデータ転送が異常終了したことを通知するステップと
    を具備する
    データ転送方法。
  8. 前記スイッチは、シリアル転送インタフェースであるPCI expressのパケット化されたデータの転送をスイッチングする
    請求項7に記載のデータ転送方法。
  9. 前記所定のリプライトランザクションを発行するステップは、
    前記CPUが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するposted writeトランザクションを受信するステップと、
    前記主記憶メモリへのデータ書き込みを指示するposted writeトランザクションに応答してカウント用のリプライトランザクションを返送するステップと
    を備え、
    前記待ち合わせるステップは、前記non−posted writeトランザクションを発行したのち、前記主記憶メモリへのデータ書き込みを指示するposted writeトランザクションに対応する全ての前記カウント用のリプライトランザクションを受信するまで新たなトランザクションを発行せずに待ち合わせるステップを備える
    請求項7または請求項8に記載のデータ転送方法。
  10. 前記所定のリプライトランザクションを発行するステップは、
    前記CPUが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するposted writeトランザクションの受信の予定数を、前記ホストチャネルアダプタからposted writeトランザクションに基づいて前記入出力コントローラに内蔵されるレジスタに書き込むステップと、
    前記ホストチャネルアダプタから発行された前記主記憶メモリへのデータ書き込みを指示するposted writeトランザクションの受信数が前記レジスタに書き込まれた数に一致するとき、カウント用のリプライトランザクションを前記ホストチャネルアダプタへ発行するステップと
    を備え、
    前記待ち合わせるステップは、前記non−posted writeトランザクションを発行したのち、前記レジスタに書き込みを要求するposted writeトランザクションの発行数と、前記カウント用のリプライトランザクションの受信数とが一致するまで新たなトランザクションを発行せずに待ち合わせる
    請求項7または請求項8に記載のデータ転送方法。
JP2010253120A 2010-11-11 2010-11-11 データ転送装置、データ転送方法、コンピュータシステム Expired - Fee Related JP5444194B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010253120A JP5444194B2 (ja) 2010-11-11 2010-11-11 データ転送装置、データ転送方法、コンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010253120A JP5444194B2 (ja) 2010-11-11 2010-11-11 データ転送装置、データ転送方法、コンピュータシステム

Publications (2)

Publication Number Publication Date
JP2012103975A true JP2012103975A (ja) 2012-05-31
JP5444194B2 JP5444194B2 (ja) 2014-03-19

Family

ID=46394274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010253120A Expired - Fee Related JP5444194B2 (ja) 2010-11-11 2010-11-11 データ転送装置、データ転送方法、コンピュータシステム

Country Status (1)

Country Link
JP (1) JP5444194B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119930A (ja) * 2012-12-14 2014-06-30 Nec Computertechno Ltd コンピュータ装置、データ転送方法、及びプログラム
WO2016203565A1 (ja) * 2015-06-17 2016-12-22 株式会社日立製作所 計算機システムおよび制御方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58195914A (ja) * 1982-05-12 1983-11-15 Hitachi Ltd デ−タ転送方式
JPH02220157A (ja) * 1989-02-22 1990-09-03 Toshiba Corp データ転送装置
JPH09325919A (ja) * 1996-06-06 1997-12-16 Nec Eng Ltd スプリット転送エラー監視装置
JPH11331253A (ja) * 1998-05-13 1999-11-30 Mitsubishi Electric Corp データ配布装置
JP2005228245A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd ディスク制御装置
JP2008217214A (ja) * 2007-03-01 2008-09-18 Nec Corp コンピュータシステム、ホストコンピュータ
JP2010092336A (ja) * 2008-10-09 2010-04-22 Hitachi Ltd ストレージシステム及び通信方法
WO2010061420A1 (en) * 2008-11-25 2010-06-03 Hitachi, Ltd. Storage system provided with function for detecting write completion

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58195914A (ja) * 1982-05-12 1983-11-15 Hitachi Ltd デ−タ転送方式
JPH02220157A (ja) * 1989-02-22 1990-09-03 Toshiba Corp データ転送装置
JPH09325919A (ja) * 1996-06-06 1997-12-16 Nec Eng Ltd スプリット転送エラー監視装置
JPH11331253A (ja) * 1998-05-13 1999-11-30 Mitsubishi Electric Corp データ配布装置
JP2005228245A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd ディスク制御装置
JP2008217214A (ja) * 2007-03-01 2008-09-18 Nec Corp コンピュータシステム、ホストコンピュータ
JP2010092336A (ja) * 2008-10-09 2010-04-22 Hitachi Ltd ストレージシステム及び通信方法
WO2010061420A1 (en) * 2008-11-25 2010-06-03 Hitachi, Ltd. Storage system provided with function for detecting write completion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119930A (ja) * 2012-12-14 2014-06-30 Nec Computertechno Ltd コンピュータ装置、データ転送方法、及びプログラム
WO2016203565A1 (ja) * 2015-06-17 2016-12-22 株式会社日立製作所 計算機システムおよび制御方法

Also Published As

Publication number Publication date
JP5444194B2 (ja) 2014-03-19

Similar Documents

Publication Publication Date Title
US9665456B2 (en) Apparatus and method for identifying a cause of an error occurring in a network connecting devices within an information processing apparatus
US7827325B2 (en) Device, system, and method of speculative packet transmission
JP4658122B2 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US7774638B1 (en) Uncorrectable data error containment systems and methods
US9626153B2 (en) Control device and control method
CN104714905A (zh) 用于执行从第一适配器到第二适配器的失效转移操作的方法和系统
JP4369470B2 (ja) データ中継装置、ストレージ装置、および応答遅延監視方法
US7676701B2 (en) Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
JP6431197B2 (ja) スナップショット処理方法および関係付けられたデバイス
EP2157723B1 (en) Data retransmission method and system
US20050177760A1 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
US10459791B2 (en) Storage device having error communication logical ports
CN115550291A (zh) 交换机的复位系统及方法、存储介质、电子设备
JP5444194B2 (ja) データ転送装置、データ転送方法、コンピュータシステム
JP2020021313A (ja) データ処理装置および診断方法
JP5151580B2 (ja) コンピュータシステムおよびバス制御装置
JP2016126409A (ja) 情報処理装置、情報処理システムおよび通信装置
JP4572138B2 (ja) サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法
JP5907099B2 (ja) 入出力処理装置、アドレス正当性検証方法およびアドレス正当性検証用プログラム
US20080310297A1 (en) Error control apparatus
JP2006178786A (ja) マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法
JP2009104391A (ja) メモリ二重化システム及び情報処理装置
JP5182417B2 (ja) 伝送データのエラーチェック装置および方法
JP2011040965A (ja) データリンク層処理回路および通信回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131018

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: 20131125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131220

R150 Certificate of patent or registration of utility model

Ref document number: 5444194

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees