説明

ディスク装置、データ転送システム及びそれに用いるデータ転送方法

【課題】 再送ライト処理動作を高速化することが可能なディスク装置を提供する。
【解決手段】 イニシエータであるホスト装置2が、ターゲットであるディスク装置1に対してライト動作の再送を行う場合、ディスク装置1はエラー発生時のライト処理にてコマンド・エラー情報格納手段13に格納された情報に基づいて、再送時のライト処理でエラーを検出したデータフレームを受信するまでディスク制御手段14がディスク16〜19へのライト動作を省略する。この場合、ディスク装置1は即時に受信フレーム格納手段11の空きをホスト装置2に対して通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はディスク装置、データ転送システム及びそれに用いるデータ転送方法に関し、特にファイバチャネルプロトコルのディスク装置に関する。
【背景技術】
【0002】
現在主流であるファイバチャネルプロトコルのクラス3のようなACK(acknowledgement:確認応答)なしコネクションレス型の転送方式においては、イニシエータであるホスト装置からターゲットであるディスク装置に関してライトコマンドが発行される場合、ディスク装置が一連のライト動作中に何らかのエラーを検出すると、ホスト装置が異常応答フレームを受信することによってエラーしたことを判断することができる。
【0003】
しかしながら、この転送方式では、フレーム単位でのACKがなく、個々のエラーフレームの特定ができないため、一連のライト動作を最初から再実行することになるため、一部のエラーフレームを再送するのに一連のライト処理動作を再実行するのは効率的でないといった課題がある。
【0004】
イニシエータからターゲットへのライト処理においては、エラー発生による再送に限らず、ディスク装置のコントローラ部からディスク部へのライト動作が性能に与える影響が多いため、例えばディスク装置のFCP_CMNDの解析処理とFCP_XFER_RDYのホスト装置への返却処理とを同時に実行し、ライト動作を高速化する方法が提案されている(例えば、特許文献1参照)。
【0005】
この方法はエラー発生時に制限されないが、一連のライト動作で、通常、マルチフレームとなり、最も処理時間を要するFCP_DATA部分を高速化するものではない。
【特許文献1】特開2003−309566号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述した従来の転送方式では、ファイバチャネルプロトコルのACKなしコネクションレス型のデータ転送方式(クラス3)におけるライト再送処理動作において、ホスト装置がライト動作の失敗を、ターゲット装置から異常終了フレームが返却されることで認識している。
【0007】
クラス3のデータ転送方式では、フレーム単位でのACKがないため、ディスク装置のコントローラ部に一連のライトデータフレーム全てを格納可能な大容量の一時的な格納手段を有しない限り、一連のライト処理を最初から再実行することで実現しなければならず、効率的なデータ再送を行うことができないという課題がある。
【0008】
そこで、本発明の目的は上記の問題点を解消し、再送ライト処理動作を高速化することができるディスク装置、データ転送システム及びそれに用いるデータ転送方法を提供することにある。
【課題を解決するための手段】
【0009】
本発明によるディスク装置は、ホスト装置にFC−AL(Fiber Channel−Arbitrated Loop)を介して接続され、前記ホスト装置からのデータフレームを一時保持する受信フレーム格納手段と、前記受信フレーム格納手段に保持されたデータフレームを書込む複数のディスクとを含むディスク装置であって、
前記ホスト装置から受信したデータフレームを解析するフレーム解析手段と、
前記フレーム解析手段による解析においてエラーを検出した時に当該エラーフレームを特定する情報を格納するコマンド・エラー情報格納手段と、
前記ディスクへの書込みにおいてエラーが検出されることで前記ホスト装置から前記データフレームの再送を行う場合、前記コマンド・エラー情報格納手段に格納された情報に基づいて前記エラーを検出したデータフレームを受信するまで前記ディスクへのライト動作を省略して前記受信フレーム格納手段の空きを即時に前記ホスト装置に対して通知するディスク制御手段とを備えている。
【0010】
本発明によるデータ転送システムは、上記記載のディスク装置を具備している。
【0011】
本発明によるデータ転送方法は、ホスト装置にFC−AL(Fiber Channel−Arbitrated Loop)を介して接続され、前記ホスト装置からのデータフレームを一時保持する受信フレーム格納手段と、前記受信フレーム格納手段に保持されたデータフレームを書込む複数のディスクとを含むディスク装置に用いるデータ転送方法であって、
前記ディスク装置が、前記ホスト装置から受信したデータフレームを解析するフレーム解析処理と、前記フレーム解析処理による解析においてエラーを検出した時に当該エラーフレームを特定する情報をコマンド・エラー情報格納手段に格納する処理と、前記ディスクへの書込みにおいてエラーが検出されることで前記ホスト装置から前記データフレームの再送を行う場合、前記コマンド・エラー情報格納手段に格納された情報に基づいて前記エラーを検出したデータフレームを受信するまで前記ディスクへのライト動作を省略して前記受信フレーム格納手段の空きを即時に前記ホスト装置に対して通知する処理とを実行している。
【0012】
すなわち、本発明のディスク装置は、ファイバチャネルプロトコルのACK(acknowledgement:確認応答)なしコネクションレス型のデータ転送方式(クラス3)におけるターゲットデバイスへのライト再送処理動作において、大容量の一時的な記憶手段を有することなく、ライト再送処理を高速化することを特徴としている。
【0013】
より具体的に説明すると、本発明のデータ転送システムでは、ファイバチャネルインタフェースを有するHBA(Host Bus Adapter:ホストバスアダプタカード)を実装したイニシエータであるホスト装置と、コントローラ部分にファイバチャネルインタフェースを有したターゲットであるディスク装置とから構成され、両者がFC−AL(Fiber Channel−Arbitrated Loop:ファイバチャネルアービトレイテッドループ)を介して接続されている(ホスト装置及びディスク装置はFC−AL制限内の台数で各1台とは限らない)。
【0014】
ディスク装置は内部にホスト装置から受信したコマンドフレームあるいはデータフレームを解析するフレーム解析手段を有し、コマンドフレームを特定する情報及びデータフレームを解析した結果、エラー検出時に当該エラーフレームを特定する情報を格納するコマンド・エラー情報格納手段を有している。
【0015】
本発明のデータ転送システムでは、イニシエータであるホスト装置がターゲットであるディスク装置に対してライト動作の再送を行う場合、ディスク装置がエラー発生時のライト処理にてコマンド・エラー情報格納手段に格納された情報に基づいて、再送時のライト処理でエラーを検出したデータフレームを受信するまで、ディスク制御手段がディスクへのライト動作を省略し、即時に受信フレーム格納手段(受信バッファ)の空きをホスト装置に対して通知することで後続のデータフレームが受信可能な状態となり、再送時のライト処理動作を高速化することを特徴としている。
【0016】
本発明のデータ転送システムでは、イニシエータであるホスト装置からターゲットであるディスク装置に対するライト処理において、コマンドフレームを特定して保持する手段と、エラーを検出したデータフレームを特定して保持する手段とを有することで、再送時のライト処理において、エラー検出時の直前の正常に受信したデータフレームまではディスクへのライト動作を省略し、即時に受信フレーム格納手段の空きをホスト装置へ通知することで、ホスト装置から後続のデータフレーム送信を促進し、再送ライト処理動作を高速化する手段を提供している。
【0017】
これによって、本発明のデータ転送システムでは、再送時のライト処理において、エラー検出したライト処理時の正常受信したデータフレームまでディスクへのライト処理動作を省略して受信バッファの空きをホスト装置に対してすぐに通知することで、ディスク装置が後続データフレームの受信可能な状態を作り出せるため、再送ライト処理動作を高速化させることが可能となる。
【0018】
また、本発明のディスク装置では、ディスク装置のコントローラ内に一連のライト処理データを全て格納可能なだけの大容量の一時的格納手段を有する必要がないので、大規模なハードウエア資源の追加なしに、容易に再送ライト処理動作の高速化を実現することが可能となる。
【発明の効果】
【0019】
本発明は、上記のような構成及び動作とすることで、再送ライト処理動作を高速化することができるという効果が得られる。
【発明を実施するための最良の形態】
【0020】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるデータ転送システムの構成を示すブロック図である。図1において、本発明の一実施例によるデータ転送システムは、ディスク装置1と、ホスト装置2と、FC−AL(Fiber Channel−Arbitrated Loop:ファイバチャネルアービトレイテッドループ)100とから構成されている。
【0021】
ホスト装置2はファイバチャネルインタフェースを有するHBA(Host Bus Adapter:ホストバスアダプタカード)を実装したイニシエータであり、ディスク装置1はコントローラ部分にファイバチャネルインタフェースを有したターゲットであり、両者がFC−AL100を介して接続されている(ホスト装置2及びディスク装置1はFC−ALプロトコル制限内の台数で、各1台とは限らず、複数台接続可能である)。
【0022】
ディスク装置1は受信フレーム格納手段(受信バッファ)11と、フレーム解析手段12と、コマンド・エラー情報格納手段13と、ディスク制御手段14と、送信フレーム格納手段15と、ディスク16〜19とを備えている。
【0023】
フレーム解析手段12は、ホスト装置2から受信したコマンドフレームあるいはデータフレームを解析する。コマンド・エラー情報格納手段13は、コマンドフレームを特定する情報を格納するとともに、データフレームを解析した結果、エラー検出時に当該エラーフレームを特定する情報を格納する。
【0024】
本実施例では、イニシエータであるホスト装置2が、ターゲットであるディスク装置1に対してライト動作の再送を行う場合、ディスク装置1がエラー発生時のライト処理にてコマンド・エラー情報格納手段13に格納された情報に基づいて、再送時のライト処理ではエラーを検出したデータフレームを受信するまでディスク制御手段14がディスク16〜19へのライト動作を省略し、即時に受信フレーム格納手段11の空きをホスト装置2に対して通知することで、後続のデータフレームが受信可能な状態となり、再送時のライト処理動作を高速化することができる。
【0025】
ホスト装置2からディスク装置1に対してライト処理動作が行われる場合、ディスク装置1にはFC−AL100から受信したフレームを格納する受信フレーム格納手段11を持ち、フレーム解析手段12は受信したフレームを解析し、コマンドフレーム受信時にコマンド種別、アクセス対象LUN(Logical Unit Number)、データ長等の情報を取出し、コマンド・エラー情報格納手段13に格納する機能と、またデータフレーム受信時にエラーフレームの検出を行い、当該エラーフレームのシーケンスカウント情報をコマンド・エラー情報格納手段13に格納する機能とを有している。
【0026】
ディスク制御手段14はライトコマンド処理中に正常なデータフレーム受信すると、受信フレーム格納手段11からデータを取出し、ディスク16〜19等のアクセス対象LUNから算出されたアドレスに対してライトを行い、ライトが完了することで生じる受信フレーム格納手段11の空きを送信フレーム格納手段15を通じてホスト装置2に対してR_RDYプリミティブ送信することで通知する。
【0027】
また、送信フレーム格納手段15は、ライトコマンドフレーム受信後のライトデータフレーム送信要求フレームの送信、通常マルチフレームとなる全てのライトデータフレームの受信完了時の正常応答フレーム送信、途中でエラー検出時の異常応答フレームの送信をホスト装置2に対して行う機能を有している。
【0028】
図2及び図3は図1のディスク装置1におけるライト動作を示すフローチャートであり、図4は本発明の一実施例によるデータ転送システムにおけるライト動作を示すシーケンスチャートであり、図5は従来のデータ転送システムにおけるライト動作を示すシーケンスチャートである。これら図1〜図5を参照して本発明の一実施例によるデータ転送システムにおけるライト動作について説明する。図2及び図3には、ディスク装置1のコントローラ内部におけるライト動作におけるファイバチャネルフレーム処理を示している。
【0029】
FCP−SCSI(Fiber Channel Protocol−Small Computer System Interface)プロトコルにおける正常ライト動作においては、まずホスト装置2から送信されたFCP_CMNDフレームをFC−AL100を介してディスク装置1が受信すると、受信フレーム格納手段11に格納される(図2ステップS1)。
【0030】
フレーム解析手段12は受信フレーム格納手段11に格納されたFCP_CMNDフレームを解析し(図2ステップS2)、当該コマンドのCDB(Command Descriptor Block)内のコマンド種別(ライトコマンド)、アクセス対象LUN、転送するデータ長等の情報を採取し、コマンド・エラー情報格納手段13に格納して保持する(図2ステップS3)。
【0031】
フレーム解析手段12はFCP_CMNDフレームが正常ならば、送信フレーム格納手段15によってFCP_XFER_RDYフレームをホスト装置2に送信することで(図2ステップS4)、ホスト装置2に対してライトデータを要求する。FCP_XFER_RDYフレームを受信したホスト装置2はライトするデータを通常マルチフレーム(FCP_DATA1フレーム、FCP_DATA2フレーム、FCP_DATA3フレーム等)としてディスク装置1に対して送信する。
【0032】
ディスク装置1はFCP_DATAフレームを受信すると(図2ステップS5)、フレーム解析手段12にて正常フレームと認識すると(図2ステップS6)、コマンド・エラー情報格納手段13に格納された情報に基づいてアクセス対象LUNから算出されたアドレスに対してディスク16〜19等への書込みを行うようにディスク制御手段14に対して通知する(図3ステップS12)。
【0033】
ディスク制御手段14はディスク16〜19への書込みが成功することで生じる受信フレーム格納手段11の空きを監視し、後続のFCP_DATAフレームが受信可能になったら、送信フレーム格納手段15を通じてホスト装置2に対してR_RDYプリミティブを送信して当該ライトデータの最後のFCP_DATAフレームを受信するまで(図2ステップS7)、上記の動作を繰返し行う。
【0034】
フレーム解析手段12はコマンド・エラー情報格納手段13に格納された情報であるデータ転送長を参照し、最後のFCP_DATAフレームであることを認識すると(図2ステップS7)、その旨をディスク制御手段14に通知し、ディスク制御手段14が最後のFCP_DATAフレームのデータをディスク16〜19に書込んだ後、送信フレーム格納手段15を通じてホスト装置2に対して正常FCP_RESPフレームの送信を行う(図2ステップS8)。これによって、ディスク装置1での一連のライト動作が完了する。
【0035】
上記のライト処理において、マルチフレームであるFCP_DATAフレームを受信途中にディスク装置1内のフレーム解析手段12がエラーを検出すると(図2ステップS6)、ディスク制御手段14はディスクへのライト動作を中断し、送信フレーム格納手段を通じて異常FCP_RESPフレームをホスト装置100に対して送信することで(図2ステップS10)、当該ライト動作の再送を要求する。
【0036】
従来、ACK(acknowledgement:確認応答)なしコネクションレス型のデータ転送方式(クラス3)において、ホスト装置2はエラー検出されたFCP_DATAフレームを特定することができないため、一連のライト動作を全て最初から再実行することで再送を行うことになる。
【0037】
本実施例では、上記のライト処理において、フレーム解析手段12がエラーを検出すると(図2ステップS6)、当該エラーフレームのSEQ_CNTをコマンド・エラー情報格納手段13に格納しておくことによって(図2ステップS9)、再送要因となったエラーフレームを特定する情報を保持することができる。ここで、SEQ_CNTはFCP_DATAフレームのヘッダに含まれ、FCP_DATAフレーム毎に+1インクリメントされるシーケンスカウントを示すフィールドであり、上記のシーケンスカウントである。
【0038】
このライト処理の再送時には、受信したFCP_DATAフレームが正常であり、受信フレームのSEQ_CNTが再送要因となったエラーフレームのSEQ_CNTより小さい場合(図3ステップS11)、ディスク制御手段14はディスク16〜19へのライト動作を行わずに、送信フレーム格納手段15を通じて即時にR_RDYプリミティブをホスト装置2に対して送信し、後続のFCP_DATAフレームの受信可能な状態とすることができる。
【0039】
図4及び図5はイニシエータであるホスト装置2からターゲットであるディスク装置1に対してFCP−SCSIプロトコルにてライト再送動作を行う場合のシーケンス動作を示している。尚、図4のT1はFCフレームデータの書込みを省略してR_RDYを送信する時間を示し、図5のT2はFCフレームデータをディスクに書込んでからR_RDYを送信する時間を示している。
【0040】
例えば、図5に示すように、初回ライト処理にてFCP_DATA1フレーム及びFCP_DATA2フレームが正常で、FCP_DATA3フレームでエラーを検出した場合には、従来、ライト再送時にFCP_DATA1フレーム及びFCP_DATA2フレームに対してもディスクに対して書込みを行い、その書込みに成功すると、R_RDYプリミティブを送信している。
【0041】
しかしながら、本実施例では、図4に示すように、コマンド・エラー情報格納手段13に格納されたエラーフレーム情報を参照することで、FCP_DATA1フレーム及びFCP_DATA2フレームのディスク16〜19への書込みを行わずに、つまり正常なFCP_DATAフレームのディスク16〜19への書込みを行わずに、R_RDYプリミティブを送信することで、再送ライト動作を高速化することができることになる。
【0042】
このように、本実施例では、再送時のライト処理において、エラー検出したライト処理時の正常受信したデータフレームまではディスク16〜19へのライト処理動作を省略して受信フレーム格納手段11の空きをホスト装置2に対してすぐに通知することで、ディスク装置1が後続データフレームの受信可能な状態を作り出せるため、再送ライト処理動作を高速化することができる。
【0043】
また、本実施例では、ディスク装置1のコントローラ内に一連のライト処理データを全て格納できるだけの大容量の一時的格納手段を有する必要がないので、大規模なハードウエア資源の追加なしに、容易に再送ライト処理動作の高速化を実現することができる。さらに、本実施例では、受信フレームのSEQ_CNTを基にフレーム単位でディスク16〜19への書込みを行っているので、エラーの判定もフレーム単位で行うことができる。
【図面の簡単な説明】
【0044】
【図1】本発明の一実施例によるデータ転送システムの構成を示すブロック図である。
【図2】図1のディスク装置におけるライト動作を示すフローチャートである。
【図3】図1のディスク装置におけるライト動作を示すフローチャートである。
【図4】本発明の一実施例によるデータ転送システムにおけるライト動作を示すシーケンスチャートである。
【図5】従来のデータ転送システムにおけるライト動作を示すシーケンスチャートである。
【符号の説明】
【0045】
1 ディスク装置
2 ホスト装置
11 受信フレーム格納手段
12 フレーム解析手段
13 コマンド・エラー情報格納手段
14 ディスク制御手段
15 送信フレーム格納手段
16〜19 ディスク
100 FC−AL

【特許請求の範囲】
【請求項1】
ホスト装置にFC−AL(Fiber Channel−Arbitrated Loop)を介して接続され、前記ホスト装置からのデータフレームを一時保持する受信フレーム格納手段と、前記受信フレーム格納手段に保持されたデータフレームを書込む複数のディスクとを含むディスク装置であって、
前記ホスト装置から受信したデータフレームを解析するフレーム解析手段と、
前記フレーム解析手段による解析においてエラーを検出した時に当該エラーフレームを特定する情報を格納するコマンド・エラー情報格納手段と、
前記ディスクへの書込みにおいてエラーが検出されることで前記ホスト装置から前記データフレームの再送を行う場合、前記コマンド・エラー情報格納手段に格納された情報に基づいて前記エラーを検出したデータフレームを受信するまで前記ディスクへの書込み動作を省略して前記受信フレーム格納手段の空きを即時に前記ホスト装置に対して通知するディスク制御手段とを有することを特徴とするディスク装置。
【請求項2】
前記フレーム解析手段は、前記ホスト装置からのコマンドフレーム及びデータフレームのいずれかを解析し、
前記コマンド・エラー情報格納手段は、前記コマンドフレームを特定する情報及び前記データフレームを解析した結果、エラーを検出した時に当該エラーフレームを特定する情報を格納することを特徴とする請求項1記載のディスク装置。
【請求項3】
前記コマンド・エラー情報格納手段は、前記エラーフレームを特定する情報としてフレーム毎にインクリメントされるシーケンスカウント情報を格納することを特徴とする請求項2記載のディスク装置。
【請求項4】
前記ディスク制御手段は、前記データフレームの再送時に、前記シーケンスカウント情報を基に前記ディスクへの書込み動作の省略を行うことを特徴とする請求項3記載のディスク装置。
【請求項5】
ファイバチャネルプロトコルのACK(acknowledgement:確認応答)なしコネクションレス型のデータ転送方式(クラス3)におけるターゲットデバイスへのライト再送処理動作に用いられることを特徴とする請求項1から請求項4のいずれか記載のディスク装置。
【請求項6】
請求項1から請求項5のいずれか記載のディスク装置を含むことを特徴とするデータ転送システム。
【請求項7】
ホスト装置にFC−AL(Fiber Channel−Arbitrated Loop)を介して接続され、前記ホスト装置からのデータフレームを一時保持する受信フレーム格納手段と、前記受信フレーム格納手段に保持されたデータフレームを書込む複数のディスクとを含むディスク装置に用いるデータ転送方法であって、
前記ディスク装置が、前記ホスト装置から受信したデータフレームを解析するフレーム解析処理と、前記フレーム解析処理による解析においてエラーを検出した時に当該エラーフレームを特定する情報をコマンド・エラー情報格納手段に格納する処理と、前記ディスクへの書込みにおいてエラーが検出されることで前記ホスト装置から前記データフレームの再送を行う場合、前記コマンド・エラー情報格納手段に格納された情報に基づいて前記エラーを検出したデータフレームを受信するまで前記ディスクへのライト動作を省略して前記受信フレーム格納手段の空きを即時に前記ホスト装置に対して通知する処理とを実行することを特徴とするデータ転送方法。
【請求項8】
前記ディスク装置が、前記フレーム解析処理において、前記ホスト装置からのコマンドフレーム及びデータフレームのいずれかを解析し、前記コマンドフレームを特定する情報及び前記データフレームを解析した結果、エラーを検出した時に当該エラーフレームを特定する情報を前記コマンド・エラー情報格納手段に格納することを特徴とする請求項7記載のデータ転送方法。
【請求項9】
前記ディスク装置が、前記コマンド・エラー情報格納手段に、前記エラーフレームを特定する情報としてフレーム毎にインクリメントされるシーケンスカウント情報を格納することを特徴とする請求項8記載のデータ転送方法。
【請求項10】
前記ディスク装置が、前記データフレームの再送時に、前記シーケンスカウント情報を基に前記ディスクへの書込み動作の省略を行うことを特徴とする請求項9記載のデータ転送方法。
【請求項11】
ファイバチャネルプロトコルのACK(acknowledgement:確認応答)なしコネクションレス型のデータ転送方式(クラス3)におけるターゲットデバイスへのライト再送処理動作に用いられることを特徴とする請求項7から請求項10のいずれか記載のデータ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−129885(P2008−129885A)
【公開日】平成20年6月5日(2008.6.5)
【国際特許分類】
【出願番号】特願2006−314941(P2006−314941)
【出願日】平成18年11月22日(2006.11.22)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】