(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-19
(45)【発行日】2025-05-27
(54)【発明の名称】通信制御装置、通信制御方法、プログラム、及び通信システム
(51)【国際特許分類】
H04L 49/9057 20220101AFI20250520BHJP
【FI】
H04L49/9057
(21)【出願番号】P 2021014357
(22)【出願日】2021-02-01
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】日下部 泰宏
【審査官】田中 秀樹
(56)【参考文献】
【文献】特開2005-184839(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成手段と、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成手段と、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加手段と、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、第二のグループごとにフレームロスがある否かを検出する、フレームロス検出手段と、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元する、フレーム復元手段と、
を有する通信制御装置。
【請求項2】
請求項
1に記載の通信制御装置であって、
前記第二のグループにフレームロスがない場合、前記第二のグループから第二のパリティフレームを削除する、パリティフレーム削除手段と、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて送信元データを生成する、送信元データ生成手段と、
を有する通信制御装置。
【請求項3】
請求項
2に記載の通信制御装置であって、
前記パリティフレーム削除手段は、フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除する、
通信制御装置。
【請求項4】
請求項
2又は
3に記載の通信制御装置であって、
前記フレームロス検出手段により、前記第二のグループにおいて、前記第二のパリティフレームのみのフレームロスが検出された場合、前記パリティフレーム削除手段は、前記第二のパリティフレームのフレームロスが検出されていない第二のグループの第二のパリティフレームを削除する
通信制御装置。
【請求項5】
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成し、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成し、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する
、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、受信した前記第二のグループごとにフレームロスがある否かを検出し、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元する、
通信制御方法。
【請求項6】
コンピュータに、
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成し、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成し、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する
、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、受信した前記第二のグループごとにフレームロスがある否かを検出し、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元する、
処理を実行させる命令を含むプログラム。
【請求項7】
ファイバチャネルを用いたストレージエリアネットワークの通信システムであって、
第一の端末装置は、
ファイバチャネルスイッチを介して第二の端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成し、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成し、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加し
ファイバチャネルスイッチを介して第二の端末装置へ複数のフレームを送信し、
前記第二の端末装置は、
前記ファイバチャネルスイッチを介して前記第一の端末装置から複数のフレームを受信した場合、第二のグループごとにフレームロスがある否かを検出し、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元し、
フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除し、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて、送信元データを生成する
通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークで用いる通信制御装置、通信制御方法、及びプログラム、更に、通信システムに関する。
【背景技術】
【0002】
FC(Fiber Channel)-SAN(Storage Area Network)(ファイバチャネルを用いたストレージエリアネットワーク)の接続形態には、例えば、ファイバチャネルスイッチ(FC-SW)、ホストバスアダプタ(HBA:Host Bus Adapter)、光ファイバケーブルなどを用いたファブリック接続がある。
【0003】
ファイバチャネルは、階層化されたプロトコルを有し、FC0(物理層)、FC1(符号化・復号化層)、FC2(シグナリング層)、FC3(サービス層)、FC4(マッピング層)から構成される。そのうちFC2では、データの最小単位であるフレームの組立、データ転送の制御を規定する。
【0004】
データ転送の制御は、サービスクラスにより規定される。サービスクラスは、データ転送を制御する仕組みである。サービスクラスには複数のクラスがある。FC-SANでは、クラス2、3がよく用いられている。
【0005】
クラス2とクラス3の違いは、クラス2はフレーム単位でデータの転送確認要求を行うが、クラス3ではデータの転送確認要求をしない。そのため、クラス3はクラス2より通信量及び通信負荷が軽減される。
【0006】
クラス3において、データの転送確認要求をしなくてもよい理由は、FC1において非常に低いビットエラーレートが規定されているため、FC2において厳密なデータ転送確認要求を必要としないからである。
【0007】
ところが、クラス3のファイバチャネルでは、フレームロスが発生した場合、上位レイヤのプロトコルにより、エクスチェンジ単位でフレームを再送信するまで、タイムアウトを待つ必要がある。そのため、フレームロスが発生してから再送信されるまでに時間がかかる。
【0008】
関連する技術として特許文献1には、クラス3を用いた通信制御システムにおいて、フレームロスの発生から再送信までの時間を短縮する技術が開示されている。
【0009】
特許文献1の通信制御システムによれば、サーバが、まず、FC-SWへエクスチェンジ単位でフレームを送信する。次に、FC-SWが、受信したフレームにおいてCRC(Cyclic Redundancy Check)エラーを検出した場合、再送制御装置にフレームのヘッダを送信する。
【0010】
次に、再送制御装置は、受信したフレームのヘッダに基づいて、フレームロスの発生を表すエラー通知を生成し、生成したエラー通知をサーバへ送信する。そして、サーバは、受信したエラー通知に基づいて、エクスチェンジ単位でフレームを再送信する。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献1の通信制御システムでは、フレームロスが発生した場合、再送制御装置を用いて、エクスチェンジ単位でフレームを再送信している。そのため、再送信をするための処理時間が必要となる。また、再送信をするために、FC-SANに、新たなハードウェアとして再送制御装置を接続しなければならない。
【0013】
一つの側面として、ファイバチャネルを用いたストレージエリアネットワークにおいて、フレームロスが発生しても、フレームが復元できる場合、再送信なしで、通信ができる通信制御装置、通信制御方法、及びプログラム、更に、通信システムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するため、一つの側面における通信制御装置は、
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数のフレームを送信する場合、あらかじめ設定された数の前記フレームを集めて第一のグループを生成する、グループ生成部と、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成部と、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加部と、
を有することを特徴とする。
【0015】
また、上記目的を達成するため、一側面における通信制御方法は、
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成ステップと、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成ステップと、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加ステップと、
を有することを特徴とする。
【0016】
また、上記目的を達成するため、一側面におけるプログラムは、
コンピュータに、
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成ステップと、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成ステップと、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加ステップと、
を実行させることを特徴とする。
【0017】
さらに、上記目的を達成するため、一側面における通信システムは、
ファイバチャネルを用いたストレージエリアネットワークの通信システムであって、
第一の端末装置は、
ファイバチャネルスイッチを介して第二の端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成し、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成し、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加し
ファイバチャネルスイッチを介して第二の端末装置へ複数のフレームを送信し、
前記第二の端末装置は、
前記ファイバチャネルスイッチを介して前記第一の端末装置から複数のフレームを受信した場合、第二のグループごとにフレームロスがある否かを検出し、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元し、
フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除し、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて、送信元データを生成する
ことを特徴とする。
【発明の効果】
【0018】
一つの側面として、ファイバチャネルを用いたストレージエリアネットワークにおいて、フレームロスが発生しても、フレームが復元できる場合、再送信なしで、通信することができる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、FC通信システムの一例を説明するための図である。
【
図2】
図2は、通信制御装置の一例を説明するための図である。
【
図3】
図3は、データフレームロス時のFC通信システムの動作を説明するための図である。
【
図4】
図4は、正常時のFC通信システムの動作を説明するための図である。
【
図5】
図5は、パリティフレームロス時のFC通信システムの動作を説明するための図である。
【
図6】
図6は、通信制御装置の送信制御部の動作の一例を説明するための図である。
【
図7】
図7は、通信制御装置の受信制御部の動作の一例を説明するための図である。
【
図8】
図8は、通信制御装置を実現するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して実施形態について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0021】
(実施形態)
図1を用いて、本実施形態におけるFC-SANなどのネットワークで用いられる通信システムの構成について説明する。
図1は、FC通信システムの一例を説明するための図である。
【0022】
[システム構成]
図1に示すクラス3のFC通信システム10は、フレームロスが発生しても、フレームが復元できる場合には、再送信なしで通信ができるシステムである。
図1の例では、FC通信システム10は、端末装置11(第一の端末装置)、端末装置12(第二の端末装置)、FC-SW13を有している。なお、
図1の破線矢印はフレームの流れを示している。
【0023】
端末装置11、12は、通信制御装置20を含む。端末装置11、12は、例えば、サーバコンピュータなどの情報処理装置やストレージなどの記憶装置である。本実施形態では、端末装置11をサーバコンピュータとし、端末装置12をストレージとして説明する。なお、端末装置11、12は通信機能(不図示)も有している。
【0024】
FC-SW13は、FC通信システム10を構築するために用いる中継装置である。
図1の例では、FC-SW13は、端末装置11と端末装置12との間に設けられている。
【0025】
図2を用いて、本実施形態における通信制御装置の構成について説明する。
図2は、通信制御装置の一例を説明するための図である。
【0026】
通信制御装置20は、送信制御部21と、受信制御部22とを含む装置である。通信制御装置20は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路を有する。
【0027】
送信制御部21は、グループ生成部31と、パリティフレーム生成部32と、パリティフレーム付加部33とを有する。受信制御部22は、フレームロス検出部41と、フレーム復元部42と、パリティフレーム削除部43と、送信元データ生成部44とを有する。
【0028】
図3を用いて、フレームロス時の動作について説明する。
図3は、データフレームロス時のFC通信システムの動作を説明するための図である。
【0029】
送信制御部21について説明する。
グループ生成部31は、FC-SAN(ファイバチャネルを用いたストレージエリアネットワーク)において、FC-SWを介して端末装置(受信側の端末装置)へ複数のデータフレーム(第一のデータフレーム)を送信する場合、あらかじめ設定された数のデータフレームを集めてグループ(第一のグループ)を生成する。
【0030】
具体的には、端末装置11の送信制御部21のグループ生成部31は、
図3に示す処理T1を実行する。処理T1では、グループ生成部31は、まず、SCSI(Small Computer System Interface)などの上位層からデータD(送信元データ)を取得する。次に、グループ生成部31は、データDを、あらかじめ設定されたサイズのデータに分割する。
【0031】
次に、グループ生成部31は、分割したデータを用いて複数のデータフレームDFを生成する。その後、グループ生成部31は、あらかじめ設定された数のデータフレームDFを集めてグループGr1、Gr2・・・を生成する。なお、データフレームDFには、コマンド、ステータスなどのフレームを含まない。
【0032】
パリティフレーム生成部32は、グループに含まれるデータに基づいて、グループごとにパリティフレーム(第一のパリティフレーム)を生成する。そして、パリティフレーム付加部33は、生成されたパリティフレームを、グループ(第一のグループ)のあらかじめ設定された位置に付加する。
【0033】
具体的には、端末装置11の送信制御部21のパリティフレーム生成部32は、
図3に示す処理T2を実行する。処理T2では、まず、パリティフレーム生成部32は、グループGr1、Gr2・・・ごとに、グループに含まれる分割されたデータに基づいてパリティフレームPFを生成する。
【0034】
次に、端末装置11の送信制御部21のパリティフレーム付加部33は、パリティフレーム生成部32により、グループGr1、Gr2・・・ごとに生成されたパリティフレームPFを、対応するグループのあらかじめ設定された位置に付加する。
【0035】
なお、データフレームDF及びパリティフレームPFのヘッダには、シーケンス番号が含まれている。
【0036】
上述した処理T1、T2が完了すると、端末装置11は、グループ分けされたフレーム(データフレームDFとパリティフレームPF)を、あらかじめ決められた順に、FC-SW13を介して端末装置12へ送信する。
【0037】
受信制御部22について説明する。
フレームロス検出部41は、FC-SWを介して端末装置(送信側の端末装置)から複数のフレームを受信した場合、グループ(第二のグループ)ごとにフレームロスがある否かを検出する。
【0038】
具体的には、端末装置12の受信制御部22のフレームロス検出部41は、
図3に示す処理T3aを実行する。処理T3aでは、フレームロス検出部41は、まず、
図3に示すFC-SW13からフレーム(データフレームDFとパリティフレームPF)を取得する。
【0039】
次に、フレームロス検出部41は、端末装置11から送信された最新のフレームのヘッダに含まれるシーケンス番号と、既に受信しているフレームのヘッダに含まれるシーケンス番号とを比較する。
【0040】
次に、フレームロス検出部41は、グループGr1、Gr2・・・ごとに、比較結果に基づいて、端末装置11から送信されたフレームの中に、受信していないフレームがあるかを判定する。
【0041】
図3の例では、グループGr1に含まれるデータフレームDFが、FC-SW13から端末装置12へ送信されたときに消失して(
図3の×印)、端末装置12で受信できていない(
図3の破線範囲)。
【0042】
このような場合、フレームロス検出部41は、データフレームDFにフレームロスが発生したことを検出し、フレーム復元部42にデータフレームDFの復元指示をする。
【0043】
フレーム復元部42は、データフレームDFのフレームロスが検出された場合、グループに含まれるパリティフレームに基づいて、フレームロスしたフレームを復元する。具体的には、端末装置12の受信制御部22のフレーム復元部42は、
図3に示す処理T4を実行する。
【0044】
処理T4では、まず、フレーム復元部42は、データフレームDFの復元指示を取得した後、フレームロスが生じたフレームを含むグループGr1のパリティフレームPFを取得する。
【0045】
次に、フレーム復元部42は、誤り訂正処理により(
図3の黒矢印)、フレームロスしたデータフレームDF(太線範囲)を復元する。
【0046】
フレームロスしたデータフレームDFを復元するための処理としては、例えば、ハミング符号を用いた誤り訂正処理などがある。ただし、フレームロスしたデータフレームDFを復元するための処理は、ハミング符号を用いた誤り訂正処理に限定されるものではない。
【0047】
パリティフレーム削除部43は、グループからパリティフレームを削除する。具体的には、端末装置12の受信制御部22のパリティフレーム削除部43は、
図3に示す処理T5を実行する。
【0048】
処理T5では、パリティフレーム削除部43は、フレーム復元部42により、フレームロスしたデータフレームDFが復元されたことを検出すると、グループGr1、Gr2・・・からパリティフレームPF(破線範囲)を削除する。
【0049】
送信元データ生成部44は、グループそれぞれからパリティフレームが削除された後、グループのフレームを用いて送信元データを生成する。
【0050】
具体的には、送信元データ生成部44は、
図3に示す処理T6を実行する。処理T6では、送信元データ生成部44は、グループGr1、Gr2・・・が有するデータフレームDFのデータを用いて、端末装置11が送信したデータDを生成(復元)する。
【0051】
正常時の動作について説明する。
正常時には、フレームロスがないので、フレームを復元する必要がない。したがって、パリティフレーム削除部43は、正常時、グループからパリティフレームを削除する。
【0052】
具体的には、端末装置12の受信制御部22のフレームロス検出部41は、
図4に示す処理T3bを実行する。
図4は、正常時のFC通信システムの動作を説明するための図である。
【0053】
処理T3bでは、フレームロス検出部41は、まず、
図4に示すFC-SW13からフレーム(データフレームDFとパリティフレームPF)を取得する。
【0054】
次に、フレームロス検出部41は、端末装置11から送信された最新のフレームのヘッダに含まれるシーケンス番号と、既に受信しているフレームのヘッダに含まれるシーケンス番号とを比較する。
【0055】
次に、フレームロス検出部41は、比較結果に基づいて、グループGr1、Gr2・・・ごとに、端末装置11から送信されたフレームの中に、受信していないフレームがあるかを判定する。
【0056】
図4の例のように、フレームロスがないと判定した場合、フレームロス検出部41は、フレームロスが生じていないので、パリティフレーム削除部43と送信元データ生成部44に、データDの復元するための復元指示をする。
【0057】
次に、端末装置12の受信制御部22のパリティフレーム削除部43は復元指示を取得する。次に、パリティフレーム削除部43は、
図4に示す上述した処理T5を実行して、グループGr1、Gr2・・・それぞれからパリティフレームPFを削除する。
【0058】
次に、端末装置12の受信制御部22の送信元データ生成部44は、
図4に示す上述した処理T6を実行して、グループGr1、Gr2・・・が有するデータフレームDFのデータを用いて、端末装置11が送信したデータDを生成(復元)する。
【0059】
パリティフレームロス時の動作について説明する。
フレームロス検出部41により、対象のグループにおいて、パリティフレームのみのフレームロスが検出された場合、パリティフレーム削除部43は、対象のグループのパリティフレームPFはフレームロスしているので削除しなくてもよい。なお、対象のグループ以外のグループのパリティフレームPFは削除する。
【0060】
具体的には、端末装置12の受信制御部22のフレームロス検出部41は、
図5に示す処理T3cを実行する。
図5は、パリティフレームロス時のFC通信システムの動作を説明するための図である。
【0061】
処理T3cでは、フレームロス検出部41は、まず、
図5に示すFC-SW13からフレーム(データフレームDFとパリティフレームPF)を取得する。
【0062】
次に、フレームロス検出部41は、端末装置11から送信された最新のフレームのヘッダに含まれるシーケンス番号と、既に受信しているフレームのヘッダに含まれるシーケンス番号とを比較する。
【0063】
次に、フレームロス検出部41は、グループGr1、Gr2・・・ごとに、比較結果に基づいて、端末装置11から送信されたフレームの中に、受信していないフレームがあるかを判定する。
【0064】
図5の例のように、同じグループGr1において、データフレームDFにフレームロスがなく、パリティフレームPFだけがフレームロスをしていることを検出した場合、フレームロス検出部41は、パリティフレーム削除部43と送信元データ生成部44に、データDの復元指示をする。
【0065】
パリティフレーム削除部43は、フレームロス検出部41から上述した復元指示を取得した場合、グループGr1のパリティフレームPFは既にフレームロスしているので削除しなくてもよい。なお、グループGr1以外のグループGr2・・・それぞれのパリティフレームPFは削除する。
【0066】
次に、端末装置12の受信制御部22の送信元データ生成部44は、
図5に示す上述した処理T6を実行する。処理T6では、送信元データ生成部44は、グループGr1、Gr2・・・が有するデータフレームDFのデータを用いて、端末装置11が送信したデータDを生成(復元)する。
【0067】
このように、本実施形態においては、FC-SANにおいて、フレームロスが発生しても、フレームが復元できる場合、再送信なしで、通信ができる。
【0068】
また、フレームロスが発生した場合に、エクスチェンジ単位でフレームを再送信しなくてもフレームが復元できるので、再送信をするための処理時間を削減できる。
【0069】
また、FC-SWに新たにハードウェアを追加することなく、フレームロスしたデータフレームを復元できるため、コストを削減できる。
【0070】
[装置動作]
次に、本実施形態における通信制御装置の動作について
図6、
図7を用いて説明する。
図6は、通信制御装置の送信制御部の動作の一例を説明するための図である。
図7は、通信制御装置の受信制御部の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。
【0071】
また、本実施形態では、通信制御装置を動作させることによって、通信制御方法が実施される。よって、本実施形態における通信制御方法の説明は、以下の通信制御装置の動作説明に代える。
【0072】
送信制御部の動作について説明する。
図1に示した端末装置11の送信制御部21のグループ生成部31は、まず、
図3に示す処理T1を実行する。
【0073】
処理T1では、グループ生成部31は、FC-SANにおいて、FC-SW13を介して端末装置12(受信側の端末装置)へ複数のフレームを送信する場合、あらかじめ設定された数のフレームを集めてグループ(第一のグループ)を生成する。
【0074】
具体的には、グループ生成部31は、まず、SCSI(Small Computer System Interface)などの上位層からデータD(送信元データ)を取得する(ステップA1)。
【0075】
次に、グループ生成部31は、データDを、あらかじめ設定されたサイズのデータに分割し、分割したデータごとにデータフレームDFを生成する(ステップA2)。
【0076】
その後、グループ生成部31は、あらかじめ設定された数のデータフレームDFを集めてグループGr1、Gr2・・・を生成する(ステップA3)。
【0077】
次に、
図1に示した端末装置11の送信制御部21のパリティフレーム生成部32は、
図3に示す処理T2を実行する。
【0078】
処理T2では、パリティフレーム生成部32は、グループに含まれるデータに基づいて、グループごとにパリティフレーム(第一のパリティフレーム)を生成する(ステップA4)。そして、パリティフレーム付加部33は、生成されたパリティフレームを、グループのあらかじめ設定された位置に付加する(ステップA5)。
【0079】
具体的には、ステップA4において、パリティフレーム生成部32は、まず、グループGr1、Gr2・・・ごとに、グループに含まれる分割されたデータに基づいてパリティフレームPFを生成する。
【0080】
次に、ステップA5において、パリティフレーム付加部33は、パリティフレーム生成部32より、グループGr1、Gr2・・・ごとに生成されたパリティフレームPFを、対応するグループのあらかじめ設定された位置に付加する。
【0081】
なお、データフレームDF及びパリティフレームPFのヘッダには、シーケンス番号が含まれている。
【0082】
次に、端末装置11は、上述した処理T1、T2が完了すると、グループ分けされたフレーム(データフレームDFとパリティフレームPF)を、あらかじめ決められた順に、FC-SW13を介して端末装置12へ送信する(ステップA6)。
【0083】
受信制御部の動作について説明する。
図1に示した端末装置12の受信制御部22のフレームロス検出部41は、
図3に示す処理T3a、
図4に示す処理T3b、
図5に示す処理T3cを実行する。
【0084】
フレームロス検出部41は、FC-SW13を介して端末装置11(送信側の端末装置)から複数のフレームを受信した場合、グループ(第二のグループ)ごとにフレームロスがある否かを検出する。
【0085】
具体的には、フレームロス検出部41は、まず、FC-SW13からフレーム(データフレームDFとパリティフレームPF)を取得する(ステップB1)。
【0086】
次に、フレームロス検出部41は、受信したフレームにフレームロスがあるかを判定する(ステップB2)。
【0087】
具体的には、ステップB2において、フレームロス検出部41は、端末装置11から送信された最新のフレームのヘッダに含まれるシーケンス番号と、既に受信しているフレームのヘッダに含まれるシーケンス番号とを比較し、比較結果に基づいて、グループGr1、Gr2・・・ごとに、端末装置11から送信されたフレームの中に、受信していないフレームがあるかを判定する。
【0088】
次に、フレームロスがないと判定した場合(ステップB2:No)、すなわち正常である場合、フレームロス検出部41は、パリティフレーム削除部43と送信元データ生成部44に、データDの復元指示をする(処理T3b)。その後、ステップB5の処理を実行する。
【0089】
また、フレームロスがあると判定した場合(ステップB2:Yes)、同じグループにおいて、フレームロスしたフレームが、データフレームDFだけか、パリティフレームPFだけか、データフレームDFとパリティフレームPFの両方であるかを判定(フレームロスの種類を判定)する(ステップB3)。
【0090】
フレームロスがデータフレームDFだけの場合(ステップB3:判定1)、フレームロス検出部41は、フレーム復元部42とパリティフレーム削除部43と送信元データ生成部44に、データDの復元指示をする(処理T3a)。その後、ステップB4の処理を実行する。
【0091】
また、フレームロスしたフレームがパリティフレームPFだけの場合(ステップB3:判定2)、フレームロス検出部41は、パリティフレーム削除部43と送信元データ生成部44に、データDの復元指示をする(処理T3c)。その後、ステップB5の処理を実行する。
【0092】
また、フレームロスしたフレームがデータフレームDFとパリティフレームPFの両方である場合(ステップB3:判定3)、フレームロス検出部41は、フレームを破棄し、再送を待つ(ステップB7)。
【0093】
ステップB4では、フレーム復元部42は、データフレームのフレームロスが検出された場合、グループに含まれるパリティフレームに基づいて、フレームロスしたフレームを復元する。
【0094】
具体的には、ステップB4では、端末装置12の受信制御部22のフレーム復元部42は、
図3に示す処理T4を実行する。処理T4では、まず、フレーム復元部42は、データフレームDFの復元指示を取得した後、フレームロスが生じたフレームを含むグループGr1のパリティフレームPFを取得する。
【0095】
次に、フレーム復元部42は、誤り訂正処理(
図3の黒矢印)により、フレームロスしたデータフレームDF(太線範囲)を復元する。
【0096】
ステップB5では、パリティフレーム削除部43は、グループからパリティフレームを削除する。具体的には、ステップB5では、端末装置12の受信制御部22のパリティフレーム削除部43は、処理T5を実行する。
【0097】
フレームロスがない場合(正常時)、パリティフレーム削除部43は、グループそれぞれのパリティフレームを削除する。
【0098】
対象のグループにおいてデータフレームDFだけにフレームロスが発生した場合、フレーム復元部42により、フレームロスしたデータフレームDFが復元されてから、パリティフレーム削除部43は、対象のグループのパリティフレームPFは削除する。
【0099】
対象のグループにおいてパリティフレームPFだけにフレームロスが生じた場合、対象のグループのパリティフレームPFはフレームロスしているので削除しなくてもよい。なお、対象のグループ以外のグループのパリティフレームPFは削除する。
【0100】
ステップB6では、送信元データ生成部44は、グループそれぞれからパリティフレームが削除された後、グループのフレームを用いて送信元データを生成する。具体的には、ステップB6では、送信元データ生成部44は、処理T6を実行する。
【0101】
処理T6では、送信元データ生成部44は、グループそれぞれのデータフレームDFのデータを用いて、端末装置11が送信したデータDを生成(復元)する。
【0102】
ステップB7では、端末装置12はフレームを破棄し、端末装置11からフレームが再送されるのを待つ。具体的には、ステップB7では、端末装置12はタイムアウトの後、端末装置11から再送信されるフレームを待つ。その後、ステップB1に移行して処理を実行する。
【0103】
なお、上述した例では、端末装置11を送信側端末装置とし、端末装置12を受信側端末装置としたが、端末装置12を送信側端末装置とし、端末装置11を受信側端末装置としてもよい。
【0104】
[本実施形態の効果]
以上のように本実施形態によれば、ファイバチャネルを用いたストレージエリアネットワークにおいて、フレームロスが発生しても、フレームが復元できる場合、再送信なしで、通信ができる。
【0105】
また、フレームロスが発生した場合に、エクスチェンジ単位でフレームを再送信しなくてもフレームが復元できるので、再送信をするための処理時間を削減できる。
【0106】
また、FC-SWに新たにハードウェアを追加することなく、フレームロスしたデータフレームを復元できるため、コストを削減できる。
【0107】
[プログラム]
本発明の実施形態におけるプログラムは、コンピュータに、
図6に示すステップA1からA6、
図7に示すステップB1からB7を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施形態における通信制御装置と通信制御方法とを実現することができる。
【0108】
この場合、コンピュータのプロセッサは、送信制御部21(グループ生成部31、パリティフレーム生成部32、パリティフレーム付加部33)、受信制御部22(フレームロス検出部41、フレーム復元部42、パリティフレーム削除部43、送信元データ生成部44)として機能し、処理を行なう。
【0109】
また、本実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、送信制御部21(グループ生成部31、パリティフレーム生成部32、パリティフレーム付加部33)、受信制御部22(フレームロス検出部41、フレーム復元部42、パリティフレーム削除部43、送信元データ生成部44)のいずれかとして機能してもよい。
【0110】
[物理構成]
ここで、本実施形態におけるプログラムを実行することによって、通信制御装置を実現するコンピュータについて
図8を用いて説明する。
図8は、本実施形態における通信制御装置を実現するコンピュータの一例を示すブロック図である。
【0111】
図8に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU、又はFPGAを備えていてもよい。
【0112】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0113】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0114】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0115】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0116】
なお、本実施形態における通信制御装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、通信制御装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0117】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記18)により表現することができるが、以下の記載に限定されるものではない。
【0118】
(付記1)
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成部と、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成部と、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加部と、
を有する通信制御装置。
【0119】
(付記2)
付記1に記載の通信制御装置であって、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、第二のグループごとにフレームロスがある否かを検出する、フレームロス検出部と、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元する、フレーム復元部と、
を有する通信制御装置。
【0120】
(付記3)
付記2に記載の通信制御装置であって、
前記第二のグループにフレームロスがない場合、前記第二のグループから第二のパリティフレームを削除する、パリティフレーム削除部と、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて送信元データを生成する、送信元データ生成部と、
を有する通信制御装置。
【0121】
(付記4)
付記3に記載の通信制御装置であって、
前記パリティフレーム削除部は、フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除する、
通信制御装置。
【0122】
(付記5)
付記3又は4に記載の通信制御装置であって、
前記フレームロス検出部により、前記第二のグループにおいて、前記第二のパリティフレームのみのフレームロスが検出された場合、前記パリティフレーム削除部は、前記第二のパリティフレームのフレームロスが検出されていない第二のグループの第二のパリティフレームを削除する
通信制御装置。
【0123】
(付記6)
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成ステップと、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成ステップと、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加ステップと、
を有する通信制御方法。
【0124】
(付記7)
付記6に記載の通信制御方法であって、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、受信した前記第二のグループごとにフレームロスがある否かを検出する、フレームロス検出ステップと、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記データフレームを復元する、フレーム復元ステップと、
を有する通信制御方法。
【0125】
(付記8)
付記7に記載の通信制御方法であって、
前記プログラムが、前記コンピュータに、
前記第二のグループにフレームロスがない場合、前記第二のグループから第二のパリティフレームを削除する、パリティフレーム削除ステップと、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて送信元データを生成する、送信元データ生成ステップと、
を有する通信制御方法。
【0126】
(付記9)
付記8に記載の通信制御方法であって、
前記パリティフレーム削除ステップにおいて、フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除する
通信制御方法。
【0127】
(付記10)
付記8又は9に記載の通信制御方法であって、
前記フレームロス検出ステップにより、前記第二のグループにおいて、前記第二のパリティフレームのみのフレームロスが検出された場合、前記パリティフレーム削除ステップにおいて、前記第二のパリティフレームのフレームロスが検出されていない第二のグループの第二のパリティフレームを削除する
通信制御方法。
【0128】
(付記11)
コンピュータに、
ファイバチャネルを用いたストレージエリアネットワークにおいて、ファイバチャネルスイッチを介して受信側端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成する、グループ生成ステップと、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成する、パリティフレーム生成ステップと、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加する、パリティフレーム付加ステップと、
を実行させる命令を含むプログラム。
【0129】
(付記12)
付記11に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
前記ファイバチャネルスイッチを介して送信側端末装置から第二のグループごとにフレームを受信した場合、受信した前記第二のグループごとにフレームロスがある否かを検出する、フレームロス検出ステップと、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元する、フレーム復元ステップと、
を実行させる命令を含むプログラム。
【0130】
(付記13)
付記12に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
前記第二のグループにフレームロスがない場合、前記第二のグループから第二のパリティフレームを削除する、パリティフレーム削除ステップと、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて送信元データを生成する、送信元データ生成ステップと、
を実行させる命令を含むプログラム。
【0131】
(付記14)
付記13に記載のプログラムであって、
前記パリティフレーム削除ステップにおいて、フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除する
プログラム。
【0132】
(付記15)
付記13又は14に記載のプログラムであって、
前記フレームロス検出ステップにより、前記第二のグループにおいて、前記第二のパリティフレームのみのフレームロスが検出された場合、前記パリティフレーム削除ステップにおいて、前記第二のパリティフレームのフレームロスが検出されていない第二のグループの第二のパリティフレームを削除する
プログラム。
【0133】
(付記16)
ファイバチャネルを用いたストレージエリアネットワークの通信システムであって、
第一の端末装置は、
ファイバチャネルスイッチを介して第二の端末装置へ複数の第一のデータフレームを送信する場合、あらかじめ設定された数の前記第一のデータフレームを集めて第一のグループを生成し、
前記第一のグループに含まれる前記第一のデータフレームのデータに基づいて、前記第一のグループごとに第一のパリティフレームを生成し、
前記第一のパリティフレームを、前記第一のグループのあらかじめ設定された位置に付加し
ファイバチャネルスイッチを介して第二の端末装置へ複数のフレームを送信し、
前記第二の端末装置は、
前記ファイバチャネルスイッチを介して前記第一の端末装置から複数のフレームを受信した場合、第二のグループごとにフレームロスがある否かを検出し、
前記第二のグループに含まれる第二のデータフレームのフレームロスを検出した場合、前記第二のグループに含まれる第二のパリティフレームに基づいて、フレームロスした前記第二のデータフレームを復元し、
フレームロスした前記第二のデータフレームが復元された後、前記第二のグループから第二のパリティフレームを削除し、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて、送信元データを生成する
通信システム。
【0134】
(付記17)
付記16に記載の通信システムであって、
前記第二の端末装置は、
前記第二のグループにフレームロスがない場合、前記第二のグループから第二のパリティフレームを削除し、
前記第二のグループから前記第二のパリティフレームが削除された後、前記第二のグループの前記第二のデータフレームを用いて送信元データを生成する
通信システム。
【0135】
(付記18)
付記16又は17に記載の通信システムであって、
前記第二のグループにおいて、前記第二のパリティフレームのみのフレームロスが検出された場合、前記パリティフレーム削除部は、前記第二のパリティフレームのフレームロスが検出されていない第二のグループの第二のパリティフレームを削除する
通信システム。
【0136】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0137】
以上のように本発明によれば、ファイバチャネルを用いたストレージエリアネットワークにおいて、フレームロスが発生しても、フレームが復元できる場合、再送信なしで、通信ができる。本発明は、FC-SANを用いる分野において有用である。
【符号の説明】
【0138】
10 FC通信システム
11 端末装置(サーバ)
12 端末装置(ストレージ)
13 FC-SW
20 通信制御装置
21 送信制御部
22 受信制御部
31 グループ生成部
32 パリティフレーム生成部
33 パリティフレーム付加部
41 フレームロス検出部
42 フレーム復元部
43 パリティフレーム削除部
44 送信元データ生成部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス