JP6919249B2 - ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム - Google Patents

ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム Download PDF

Info

Publication number
JP6919249B2
JP6919249B2 JP2017055493A JP2017055493A JP6919249B2 JP 6919249 B2 JP6919249 B2 JP 6919249B2 JP 2017055493 A JP2017055493 A JP 2017055493A JP 2017055493 A JP2017055493 A JP 2017055493A JP 6919249 B2 JP6919249 B2 JP 6919249B2
Authority
JP
Japan
Prior art keywords
frame
exchange
error
port address
header
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.)
Active
Application number
JP2017055493A
Other languages
English (en)
Other versions
JP2018159988A (ja
Inventor
健太郎 原
健太郎 原
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP2017055493A priority Critical patent/JP6919249B2/ja
Publication of JP2018159988A publication Critical patent/JP2018159988A/ja
Application granted granted Critical
Publication of JP6919249B2 publication Critical patent/JP6919249B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、ファイバチャネル通信を制御するための、ファイバチャネル制御システム、管理装置、及びファイバチャネルの制御方法に関し、更には、これらを実現するためのプログラムに関する。
ファイバチャネル(以下「FC(Fibre Channel)」と表記する。)通信は、データ転送方式の1つであり、主に、高速な回線を必要とするサーバ装置とストレージとの接続に利用されている。また、FC通信には、データ転送の制御の違いにより、サービスクラスが規定されている。サービスクラスには、1、2、3、4、6、Fが存在する。このうち、サービスクラス3が現在の主流となっている。
ここで、図17及び図18を用いて、従来からのFC通信について説明する。図17は、従来からのファイバチャネル通信の仕組みを示す図である。図18は、ファイバチャネル通信で用いられるフレームヘッダの構造を示す図である。
図17に示すように、FC通信では、サーバがストレージに対してRead又はWriteを指示する場合、「エクスチェンジ」と呼ばれる単位で指示が行なわれる。また、1つのエクスチェンジは、複数のシーケンスで構成され、1つのシーケンスは、複数のフレーム(図18参照)で構成される。
ところで、サービスクラス3では、通信経路上でCRC(Cyclic Redundancy Check)エラーが発生した場合に、そのフレームは破棄されるが、送信元へのエラー通知は行なわれない仕様となっている。このため、上位のプロトコルレイヤーのタイムアウトによる再送が行われるまで、エラーリカバリ処理は行われず、その間、サーバとストレージとの間でのデータの送受信(I/O)が停止するという問題が発生してしまう。
このような問題に対応するため、例えば、特許文献1は、図19に示すシステムを提案している。図19は、特許文献1に開示されたシステムの構成を示す図である。図20は、図19に示すシステムにおいてエクスチェンジの先頭フレームが検出された際の動作を示す図である。図21は、図19に示すシステムにおいてフレームエラーが検出された際の動作を示す図である。
図19に示すように、特許文献1に開示されたシステムは、サーバとストレージとがFCスイッチを介して接続されたFC通信環境を備え、管理コントローラが、LANを経由して、サーバとFCスイッチとに接続されている。
図20に示すように、サーバは、ファブリック接続時に取得したサーバのポート番号と、接続先のストレージのポート番号と、サーバのIPアドレスとを、管理コントローラに送信する。管理コントローラは、これらの情報を管理テーブルに保持する。
また、図20に示すように、FCスイッチは、エクスチェンジの先頭フレームを検出すると、先頭フレームのヘッダを管理コントローラに送信する。管理コントローラは、先頭フレームヘッダのS_ID(フレーム送信元のポート番号)とD_ID(フレーム送信先のポート番号)との組から管理テーブルのエントリを検索して、見つかったエントリに先頭フレームヘッダを格納する。
更に、図21に示すように、FCスイッチは、CRCエラーなどのフレームエラーを検出すると、エラーフレームのヘッダを管理コントローラに送信し、エラーフレームは破棄する。管理コントローラは、エラーフレームのヘッダと、管理テーブルに保持しているS_ID、D_ID、及びエクスチェンジの先頭ヘッダに含まれるOX_IDを比較して、これらが一致するエントリを検索する。なお、OX_IDは、エクスチェンジごとに一意に与えられる値であり、エクスチェンジ番号を示している(図18参照)
エントリが見つかった場合、管理コントローラは、IPアドレスがエントリに登録されているサーバ(エラーフレームの発信元サーバ)に対して、再送指示を発行する。エントリが見つからなかった場合、管理コントローラは、エラーフレームの処理を中止する。(したがってこのエラーフレームは破棄扱いになる)
このように、特許文献1に開示されたシステムでは、伝送中のフレームでエラーが発生した場合に、エラーフレームのヘッダのS_ID、D_ID、及びOX_IDと、エクスチェンジ開始時のフレームのヘッダのS_ID、D_ID、及びOX_IDとを比較する。そして、特許文献1に開示されたシステムは、比較の結果から、エラーフレームの送信元のサーバを特定し、再送指示を発行する。つまり、特許文献1に開示されたシステムは、エクスチェンジ内の全てのフレームのヘッダのS_ID、D_ID、OX_IDが同一の値になるという特徴を利用して、エラー発生時の再送までの時間を短縮化している。
特開2014−182739号公報
しかしながら、特許文献1に開示されたシステムは、エラーフレームの送信元サーバを特定するために、エラーフレームヘッダのS_ID、D_ID、及びOX_IDをキーにして管理テーブルを検索している。このため、特許文献1に開示されたシステムでは、エラーフレームヘッダのS_ID、D_ID、OX_IDが壊れていた場合に、管理テーブルからエラーフレームの送信元サーバを特定できず、再送指示を出すことができないという問題が発生してしまう。
本発明の目的の一例は、上記問題を解消し、ファイバチャネル通信において、エラーフレームのフレームヘッダが壊れていた場合に、壊れているフレームヘッダの修正を行ない得る、ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面におけるファイバチャネル制御システムは、ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを備え、
前記スイッチ装置は、
フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、エラーフレーム通知部を備え、
前記管理装置は、
前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、フレーム修復部と、
を備えている、ことを特徴とする。
上記目的を達成するため、本発明の一側面における管理装置は、サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するための装置であって、
前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、フレーム修復部と、
を備えていることを特徴とする。
また、上記目的を達成するため、本発明の一側面におけるファイバチャネルの制御方法は、ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを用い、
(a)前記スイッチ装置によって、
フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、ステップと、
(b)前記管理装置によって、前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、ステップと、
(c)前記管理装置によって、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、ステップと、
を有する、ことを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するためのプログラムであって、
前記コンピュータに、
(a)前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、ステップと、
(b)前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、ステップと、
を実行させることを特徴とする。
以上のように、本発明によれば、ファイバチャネル通信において、エラーフレームのフレームヘッダが壊れていた場合に、壊れているフレームヘッダの修正を行なうことができる。
図1は、本発明の実施の形態におけるファイバチャネル制御システム及び管理装置の概略構成を示すブロック図である。 図2は、本発明の実施の形態におけるファイバチャネル制御システム及び管理装置の具体的構成を示すブロック図である。 図3は、本発明の実施の形態における管理装置が備える管理テーブルの一例を示す図である。 図4は、本発明の実施の形態におけるファイバチャネル制御システムにおいてフレームエラーが復旧された場合の動作を示す図である。 図5は、本発明の実施の形態におけるファイバチャネル制御システムにおいてフレームエラーが復旧されなかった場合の動作を示す図である。 図6は、本発明の実施の形態におけるサーバ装置のストレージ装置との通信を開始する前の動作を示すフロー図である。 図7は、本発明の実施の形態における管理装置がサーバ装置の処理に応じて行なう動作を示すフロー図である。 図8は、本発明の実施の形態におけるスイッチ装置が管理装置に対して行なう動作を示すフロー図である。 図9は、本発明の実施の形態における管理装置がスイッチ装置の処理に応じて行なう動作を示すフロー図である。 図10は、本発明の実施の形態におけるスイッチ装置のフレームエラー発生時の動作を示すフロー図である。 図11は、本発明の実施の形態における管理装置のフレーム受信部における動作を示すフロー図である。 図12は、本発明の実施の形態における管理装置のフレーム修復部における動作を示すフロー図である。 図13は、本発明の実施の形態におけるスイッチ装置のエラーフレームが修復された場合の動作を示すフロー図である。 図14は、本発明の実施の形態における管理装置の開始機器特定部における動作を示すフロー図である。 図15は、本発明の実施の形態において管理装置からサーバ装置に再送が指示された場合のサーバ装置における動作を示すフロー図である。 図16は、本発明の実施の形態における管理装置を実現するコンピュータの一例を示すブロック図である。 図17は、従来からのファイバチャネル通信の仕組みを示す図である。 図18は、ファイバチャネル通信で用いられるフレームヘッダの構造を示す図である。 図19は、特許文献1に開示されたシステムの構成を示す図である。 図20は、図19に示すシステムにおいてエクスチェンジの先頭フレームが検出された際の動作を示す図である。 図21は、図19に示すシステムにおいてフレームエラーが検出された際の動作を示す図である。
(発明の概要)
本発明では、FCスイッチは、フレームエラーを検出すると、エラーフレーム全体(最大2148バイト)を管理装置に送信する。これにより、管理装置は、管理テーブルにおける、エクスチェンジの先頭フレームヘッダを格納する全てのエントリそれぞれ毎に、送信元のポートアドレスS_ID、送信先のポートアドレスD_ID、及びエクスチェンジの先頭ヘッダに含まれるエクスチェンジ番号OX_IDを取り出す。
そして、管理装置は、エントリ毎に、取り出した、送信元のポートアドレスS_ID、送信先のポートアドレスD_ID、及びエクスチェンジの先頭ヘッダに含まれるエクスチェンジ番号OX_IDをエラーフレームに埋め込み、エラーフレームのCRCを計算する。
そして、いずれかのエントリにおいて、計算したCRCの値が、エラーフレーム内のCRCの値と一致した場合は、管理装置は、その場合のS_ID、D_ID、及びOX_IDが補完されたフレームをFCスイッチに送信する。これにより、FCスイッチは、次段にフレームを送信する。
一方、いずれのエントリにおいても、計算したCRCの値が、エラーフレーム内のCRCの値と一致しなかった場合は、管理装置は、フレームの破損個所はS_ID、D_ID、OX_IDではないと判断する。そして、管理装置は、エラーフレームのヘッダと、管理テーブルに保持されている全てのS_ID、D_ID及びOX_IDとを比較して、両者が一致するエントリを検索する。いずれかのエントリにおいて両者が一致する場合、管理装置は、一致しているエントリにおいてIPアドレスが登録されたサーバに対して、再送指示を発行する。
このように、本発明では、ファイバチャネル通信において、エラーフレームのフレームヘッダの S_ID、D_ID、OX_ID のいずれかが壊れていたとしても、フレームヘッダを修正することができる。
(実施の形態)
以下、本発明の実施の形態における、ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラムについて、図1〜図17を参照しながら説明する。
[システム構成]
最初に、本実施の形態における、ファイバチャネル制御システムの概略構成について説明する。図1は、本発明の実施の形態におけるファイバチャネル制御システム及び管理装置の概略構成を示すブロック図である。
図1に示す本実施の形態におけるファイバチャネル制御システム10は、サーバ装置2とストレージ装置4とがスイッチ装置3を介して接続されたFC通信環境において、サーバ装置2とストレージ装置4との間のデータ通信を制御するためのシステムである。
なお、図1の例では、サーバ装置2及びスイッチ装置3は、それぞれ1つであるが、本実施の形態はこの態様に限定されることはない。本実施の形態では、1台の管理装置1は、任意の台数のサーバ装置2とスイッチ装置3とを管理できる。また、ストレージ装置4の数も特に限定されることはない。
また、図1に示すように、実施の形態におけるファイバチャネル制御システム10は、スイッチ装置3と、管理装置1とを備えている。スイッチ装置3は、FCスイッチであり、サーバ装置2とストレージ装置4とはファイバチャネルによって接続されている。また、スイッチ装置3は、サーバ装置2とストレージ装置4との間で、フレームを含むエクスチェンジを仲介している。
更に、スイッチ装置3は、エラーフレーム通知部32を備えている。エラーフレーム通知部32は、フレームエラーを検出すると、フレームエラーが発生したフレームを管理装置1に送信する。
管理装置1は、LAN(Local Area Network)5を経由して、サーバ装置2とスイッチ装置3とに接続されている。また、管理装置1は、フレーム受信部12と、フレーム修復部13とを備えている。このうち、フレーム受信部12は、スイッチ装置3から送信されてきた、フレームエラーが発生したフレームを受信する。
フレーム修復部13は、サーバ装置2から取得した、エクスチェンジの送信元のポートアドレスS_ID、送信先のポートアドレスD_ID、及びエクスチェンジ番号OX_IDで、フレームエラーが発生したフレーム(以下「エラーフレーム」と表記する。)のヘッダにおける、送信元のポートアドレスS_ID、送信先のポートアドレスD_ID、及びエクスチェンジ番号OX_IDを置換する。また、フレーム修復部13は、置換後のフレームのCRCを算出する。更に、フレーム修復部13は、算出したCRCとエラーフレームのCRCとが一致している場合に、スイッチ装置3に、置換後のフレームを次段(送信先の装置)へと送信させる。
このように、本実施の形態では、管理装置1は、保持しているエクスチェンジの送信元のポートアドレスS_ID、送信先のポートアドレスD_ID、及びエクスチェンジ番号OX_IDを用いて、エラーフレームを補完することができる。本実施の形態によれば、ファイバチャネル通信において、エラーフレームのフレームヘッダの S_ID、D_ID、OX_ID のいずれかが壊れていたとしても、フレームヘッダを修正することができる。
続いて、図2〜図5を用いて、本実施の形態におけるファイバチャネル制御システム10をより具体的に説明する。図2は、本発明の実施の形態におけるファイバチャネル制御システム及び管理装置の具体的構成を示すブロック図である。図3は、本発明の実施の形態における管理装置が備える管理テーブルの一例を示す図である。図4は、本発明の実施の形態におけるファイバチャネル制御システムにおいてフレームエラーが復旧された場合の動作を示す図である。図5は、本発明の実施の形態におけるファイバチャネル制御システムにおいてフレームエラーが復旧されなかった場合の動作を示す図である。
[管理装置の構成]
図2に示すように、管理装置1は、上述したフレーム受信部12及びフレーム修復部13に加えて、機器情報管理部11と、開始機器特定部14と、エラーフレームバッファ15と、フレーム修復バッファ16と、フレームヘッダバッファ17と、管理テーブル18とを備えている。
機器情報管理部11は、サーバ装置2の機器情報通知部21から、サーバ装置2のIPアドレスと、サーバ装置2のHBA(Host Bus Adapter)のポート番号と、そのHBAの通信先のストレージ装置4のポートのポート番号とを、組データとして受け取る。また、機器情報管理部11は、図3に示すように、管理テーブル18に新規エントリを作成し、受け取った組データを新規エントリとして格納する。なお、図3において、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドは、エントリ作成時においては、空となっている。
また、機器情報管理部11は、スイッチ装置3のフレームヘッダ通知部31から、LAN5を経由して、エクスチェンジの先頭フレームのヘッダを受け取り、受け取った先頭フレームのヘッダを、フレームヘッダバッファ17に格納する。
その後、機器情報管理部11は、フレームヘッダバッファ17に格納されたフレームヘッダのS_ID及びD_IDと、管理テーブル18の「サーバ装置のポート番号」フィールド及び「ストレージのポート番号」フィールドそれぞれの値とを比較する。そして、機器情報管理部11は、比較結果に基づいて、これらが一致するエントリを検索する。その後、機器情報管理部11は、見つかったエントリの「エクスチェンジの先頭フレームヘッダ」フィールドに、フレームヘッダバッファ17に格納されているフレームヘッダを格納する。
フレーム受信部12は、本実施の形態では、スイッチ装置3のエラーフレーム通知部32から、エラーフレーム全体を受け取り、これを、エラーフレームバッファ15とフレーム修復バッファ16とに格納する。その後、フレーム受信部12は、フレーム修復部13に修復開始指示を発行する。
フレーム修復部13は、図4に示すように、本実施の形態では、まず、管理テーブル18のエントリのうち、「エクスチェンジの先頭フレームヘッダ」フィールドにヘッダが格納されているエントリの1つを参照する。
次に、フレーム修復部13は、図4に示すように、参照しているエントリの「サーバ装置のポート番号」フィールドの値と、「ストレージ装置のポート番号」フィールドの値と、「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とを取得する。続いて、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_IDに「サーバ装置のポート番号」を埋め込み、D_IDに「ストレージ装置のポート番号」を埋め込む。また、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のOX_IDには、「エクスチェンジの先頭フレームヘッダ」のOX_IDを埋め込む。そして、フレーム修復部13は、埋め込みが行なわれたフレームのCRCを計算する。
そして、CRCの計算結果が、フレーム修復バッファ16に格納されたフレームのCRCと一致しなかった場合、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_ID、D_IDに埋め込まれている値を入れ替える。つまり、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_IDに「ストレージ装置のポート番号」を埋め込み、D_IDに「サーバ装置のポート番号」を埋め込む。続いて、フレーム修復部13は、再度CRCを計算する。
再度のCRCの計算結果でも、フレーム修復バッファ16に格納されたフレームのCRCと一致しなかった場合は、フレーム修復部13は、管理テーブル18の他のエントリを参照し、他のエントリの値を使用して、同様の処理を行う。
一方、いずれかのエントリにおいて、CRCの計算結果が、フレーム修復バッファ16に格納されたフレームのCRCと一致した場合、フレーム修復部13は、図4に示すように、フレーム修復バッファ16に格納されているフレームを、スイッチ装置3の修復フレーム受信部33にLAN5を経由して送信する。
また、管理テーブル18の全てのエントリにおいて、CRCの計算結果が、フレーム修復バッファ16に格納されたフレームのCRCと一致しなかった場合、フレーム修復部13は、開始機器特定部14に処理開始指示を発行する。
開始機器特定部14は、フレーム修復部13から処理開始指示を受け取ると、図5に示す、処理を開始する。開始機器特定部14は、まず、エラーフレームバッファ15に格納されたフレームのヘッダ部分のS_IDと、管理テーブル18の「サーバ装置のポート番号」フィールドの値とを比較し、更に、ヘッダ部分のD_IDと、管理テーブル18の「ストレージのポート番号」フィールドの値とを比較する。また、開始機器特定部14は、ヘッダ部分のOX_IDと、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とも比較する。そして、開始機器特定部14は、比較の結果から、全てが一致するエントリを検索する。
エントリが見つからなかった場合、比較するS_IDとD_IDとを入れ替えて、エントリを検索する。すなわち、開始機器特定部14は、エラーフレームバッファ15の格納されたフレームのヘッダ部分のS_IDと、管理テーブル18の「ストレージ装置のポート番号」フィールドの値とを比較し、更に、ヘッダ部分のD_IDと、管理テーブル18の「サーバ装置のポート番号」フィールドの値とを比較する。そして、開始機器特定部14は、ヘッダ部分のOX_IDと、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とも比較する。そして、開始機器特定部14は、比較の結果から、全てが一致するエントリを検索する。
管理テーブル18からエントリが見つかった場合、開始機器特定部14は、図5に示すように、エントリの「サーバ装置のIPアドレス」フィールドのIPアドレスを特定し、特定したIPアドレスのサーバ装置2の再送コマンド発行部22に対して、LAN5を経由して、再送指示を発行する。
一方、管理テーブル18からエントリが見つからなかった場合、開始機器特定部14は、エラーフレームバッファ15とフレーム修復バッファ16との内容を破棄し、処理を終了する。
エラーフレームバッファ15は、スイッチ装置3のエラーフレーム通知部32から受け取ったフレームが格納されるバッファである。管理装置1は、エラーフレームバッファ15を複数個備えていても良い。また、エラーフレームバッファ15は、開始機器特定部14の処理対象のバッファである。
フレーム修復バッファ16は、スイッチ装置3のエラーフレーム通知部32から受け取ったフレームと、フレームを送信したスイッチ装置3のIPアドレスとが、格納されているバッファである。管理装置1は、フレーム修復バッファ16も複数個備えていても良い。また、フレーム修復バッファ16は、フレーム修復部13の処理対象のバッファである。
管理テーブル18は、サーバ装置2の機器情報通知部21から受け取った、サーバ装置2のIPアドレスと、サーバ装置のHBAのポート番号と、そのHBAの通信先のストレージ装置4のポート番号とが、組データとして格納されるテーブルである。また、管理テーブル18には、スイッチ装置3のフレームヘッダ通知部31から受け取ったエクスチェンジの先頭フレームヘッダも格納される。管理装置1は、管理テーブル18については1つだけ備えている。
[サーバ装置の構成]
図2に示すように、サーバ装置2は、本実施の形態では、機器情報通知部21と、再送コマンド発行部22とを備えている。
機器情報通知部21は、サーバ装置2を管理装置1に接続するためのネットワークインタフェースのIPアドレスと、サーバ装置2のHBAのポート番号と、そのHBAの通信先のストレージ装置4のポート番号との組データを、管理装置1の機器情報管理部11にLAN5を経由して送信する。
サーバ装置2に複数個のHBAが実装されている場合は、実装されている複数個のHBAそれぞれ毎に、上述した情報が、管理装置1の機器情報管理部11に送信される。
再送コマンド発行部22は、管理装置1の開始機器特定部14から再送指示を受けると、SCSIプロトコルレイヤーに対して、再送要求を発行する。
[スイッチ装置の構成]
図2に示すように、本実施の形態では、スイッチ装置3は、上述したエラーフレーム通知部32に加えて、フレームヘッダ通知部31と、修復フレーム受信部33と、修復フレーム送信部34と、修復フレームバッファ35とを備えている。
フレームヘッダ通知部31は、スイッチ装置3が、前段の装置(送信元の装置)から受信したフレームのヘッダが、エクスチェンジの先頭フレームかどうかを判別する。エクスチェンジの先頭フレームである場合は、フレームヘッダ通知部31は、フレームヘッダを管理装置1の機器情報管理部11にLAN5を経由して送信する。
また、フレームヘッダ通知部31は、以下の条件(1)及び(2)を全て満たしている場合に、エクスチェンジの先頭フレームであると判断する。
条件(1):フレームヘッダのF_CTLのFirstSequenceビットが1である。
条件(2):フレームヘッダのRX_IDの値が0xFFFFである。
エラーフレーム通知部32は、本実施の形態では、スイッチ装置3が、前段の装置から受信したフレームに基づいてCRCエラー等のエラーを検出した場合に、起動する。その際、エラーフレーム通知部32は、受信したフレーム全体と、スイッチ装置3を管理装置1に接続するためのネットワークインタフェースのIPアドレスとを、管理装置1のフレーム受信部12にLAN5を経由して送信する。また、エラーフレーム通知部32は、管理装置1にエラーフレームを送信した後、エラーフレームを破棄する。
修復フレーム受信部33は、管理装置1のフレーム修復部13からLAN5を経由してフレームを受け取ると、受け取ったフレームを修復フレームバッファ35に格納する。そして、修復フレーム受信部33は、修復フレーム送信部34に対して、格納したフレームの送信指示を発行する。
修復フレーム送信部34は、修復フレームバッファ35に格納されているフレームが、フレームヘッダのD_IDのポート番号の装置に到着するように、スイッチ装置3に接続された次段の装置に送信する。修復フレームバッファ35は、管理装置1のフレーム修復部13から受け取った修復済フレームが格納されるバッファである。
本実施の形態において、ストレージ装置4は、サーバ装置2にファイバチャネルによって接続可能なストレージ装置であれば良く、既存のストレージ装置であっても良い。
[システム動作]
次に、本発明の実施の形態におけるファイバチャネル制御システムの動作について図6〜図16を用いて説明する。以下の説明においては、適宜図1〜図5を参酌する。また、本実施の形態では、ファイバチャネル制御システム10を動作させることによって、ファイバチャネルの制御方法が実施される。よって、本実施の形態におけるファイバチャネルの制御方法の説明は、以下のファイバチャネル制御システム10の動作説明に代える。
[サーバ装置とストレージ装置との通信開始前の動作]
最初に、サーバ装置2とストレージ装置4との通信が開始される前のサーバ装置2及び管理装置1の動作について、図6及び図7を用いて説明する。
まず、前提として、ファイバチャネルでは、サーバ装置2は、データ伝送を始める前に行うログイン手順により、HBAに動的に割り当てられるポート番号を取得し、接続先のストレージのポート情報を取得する。即ち、サーバ装置2がスイッチ装置3に接続され、ストレージ4と通信を行う場合、サーバ装置2が実行するログイン手順により、サーバ装置2のHBAに動的にポート番号が割り当てられ、サーバ装置2はストレージ装置4のHBAのポート番号を取得する。
そして、図6に示すように、サーバ装置2においては、ログイン手順の実行後、機器情報通知部21は、サーバ装置2と管理装置1を接続するネットワークインタフェースのIPアドレスを取得する(ステップA1)。
次に、機器情報通知部21は、サーバ装置2のHBAのポート番号と、そのHBAの通信先のストレージ装置4のポート番号との組データを取得する(ステップA2)。
次に、機器情報通知部21は、ステップA1及びA2で取得した情報を、管理装置1の機器情報管理部11に対して、LAN5を経由して送信する(ステップA3)。
続いて、機器情報通知部21は、サーバ装置2に複数個のHBAが実装されている場合は、全てのHBAについて同様の情報を管理装置1の「機器情報管理部11」に送信したかどうかを判定する(ステップA4)。
ステップA4の判定の結果、全てのHBAについて情報を送信していない場合は、機器情報通知部21は、再度ステップA2を実行する。一方、ステップA4の判定の結果、全てのHBAについて情報を送信している場合は、サーバ装置2における処理は終了する。
図7に示すように、管理装置1においては、最初に、機器情報管理部11は、サーバ装置2から送信されてきた、サーバ装置2のIPアドレスと、サーバ装置2のHBAのポート番号と、そのHBAの通信先のストレージ装置4のポート番号との組データを受信する(ステップB1)。
次に、機器情報管理部11は、管理テーブル18に新規エントリを作成する(ステップB2)。続いて、機器情報管理部11は、受信した情報を新規エントリの各フィールドに格納する(ステップB3)。なお、「管理テーブル18」の「エクスチェンジの先頭フレームヘッダ」フィールドは、テーブルのエントリ作成時には空である。
[エクスチェンジの先頭フレームの送信時の動作]
続いて、サーバ装置2とストレージ装置4との間で通信が行なわれている場合のスイッチ装置3と管理装置1との動作について、図8及び図9を用いて説明する。図8は、本発明の実施の形態におけるスイッチ装置が管理装置に対して行なう動作を示すフロー図である。図9は、本発明の実施の形態における管理装置がスイッチ装置の処理に応じて行なう動作を示すフロー図である。
図8に示すように、最初に、スイッチ装置3において、サーバ装置2及びストレージ装置4のいずれかが送信したフレームが受信されると、フレームヘッダ通知部31は、受信したフレームがエクスチェンジの先頭フレームであるかどうかを判定する(ステップC1)。
具体的には、フレームヘッダ通知部31は、フレームヘッダ(図18参照)の内容が、上述した条件(1)及び(2)を全て満たしているかどうかを判定する。
ステップC1の判定の結果、受信したフレームが先頭フレームでない場合は、スイッチ装置3における処理は終了する。一方、ステップC1の判定の結果、受信したフレームが先頭フレームである場合は、フレームヘッダ通知部31は、フレームヘッダを管理装置1の機器情報管理部11にLAN5を経由して送信する(ステップC2)。
図9に示すように、最初に、管理装置1において機器情報管理部11は、ステップC2で送信されたフレームヘッダを受信すると、受信したフレームヘッダをフレームヘッダバッファ17に格納する(ステップD1)。
次に、機器情報管理部11は、フレームヘッダバッファ17に格納されたフレームヘッダのS_ID及びD_IDと、管理テーブル18の「サーバ装置のポート番号」フィールド及び「ストレージのポート番号」フィールドそれぞれの値とを比較して、これらが一致するエントリを検索する(ステップD2)。
次に、機器情報管理部11は、ステップD2で検索されたエントリの「エクスチェンジの先頭フレームヘッダ」フィールドに、フレームヘッダバッファ17に格納されたフレームヘッダを格納する(ステップD3)
[フレームエラー検出時の動作]
続いて、フレームエラーが発生した場合のスイッチ装置3と管理装置1との動作について図10〜図15を用いて説明する。
図10は、本発明の実施の形態におけるスイッチ装置のフレームエラー発生時の動作を示すフロー図である。図10に示すように、最初に、スイッチ装置3が、前段の装置からフレームを受信する(ステップE1)。
次に、エラーフレーム通知部32は、受信したフレームにエラーが発生しているかどうかを判定する(ステップE2)。
ステップE2の判定の結果、CRCエラー等のエラーが発生している場合は、エラーフレーム通知部32は、受信したフレーム全体と、スイッチ装置3を管理装置1に接続するためのネットワークインタフェースのIPアドレスとを、管理装置1のフレーム受信部12にLAN5経由して送信する(ステップE3)。また、ステップE3の実行後、エラーフレーム通知部32は、エラーフレームを破棄する。
一方、ステップE2の判定の結果、エラーが発生していない場合は、スイッチ装置3は、フレームを次段の機器に送信する(ステップE4)。
図11は、本発明の実施の形態における管理装置のフレーム受信部における動作を示すフロー図である。図11に示すように、エラーフレームがLAN5を経由してスイッチ装置3から送信されてくると、管理装置1において、フレーム受信部12は、エラーフレームを受信する(ステップF1)。
次に、フレーム受信部12は、スイッチ装置3から受け取ったエラーフレームを、エラーフレームバッファ15とフレーム修復バッファ16とに格納する(ステップF2)。
次に、フレーム受信部12は、フレーム修復部13に対して、修復開始指示を発行する(ステップF3)。これにより、図12に示す各ステップが実行される。
図12は、本発明の実施の形態における管理装置のフレーム修復部における動作を示すフロー図である。図12に示すように、最初に、フレーム修復部13は、管理テーブル18のエントリのうち、「エクスチェンジの先頭フレームヘッダ」フィールドにヘッダが格納されているエントリの1つを参照する(ステップG1)。
次に、フレーム修復部13は、最終のエントリまで参照したかどうかを判定する(ステップG2)。ステップG2の判定の結果、最終のエントリまで参照している場合は、フレーム修復部13は、後述するステップG11を実行する。
一方、ステップG2の判定の結果、最終のエントリまで参照していない場合は、フレーム修復部13は、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドにヘッダが格納されているかどうかを判定する(ステップG3)。
ステップG3の判定の結果、ヘッダが格納されていない場合は、フレーム修復部13は、再度ステップG1を実行する。一方、ステップG3の判定の結果、ヘッダが格納されている場合は、フレーム修復部13は、エントリの「サーバ装置のポート番号」フィールドの値と、「ストレージのポート番号」フィールドの値と、「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とを取得する。そして、フレーム修復部13は、取得した値を、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_ID、D_ID、OX_IDに埋め込む(ステップG4)。
具体的には、ステップG4では、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_IDに「サーバ装置のポート番号」を埋め込み、D_IDに「ストレージ装置のポート番号」を埋め込む。また、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のOX_IDには、「エクスチェンジの先頭フレームヘッダ」のOX_IDを埋め込む。
次に、フレーム修復部13は、ステップG4による埋め込みが行なわれたフレームのCRCを計算する(ステップG5)。
次に、フレーム修復部13は、CRCの計算結果がフレーム修復バッファ16に格納されたフレームのCRCと一致しているかどうかを判定する(ステップG6)。ステップG6の判定の結果、一致している場合は、フレーム修復部13は、後述のステップG10を実行する。
一方、ステップG6の判定の結果、一致していない場合は、フレーム修復部13は、「フレーム修復バッファ16」に格納されたフレームのヘッダ部分のS_ID、D_IDに埋め込んだ値を入れ替える(ステップG7)。
具体的には、フレーム修復部13は、フレーム修復バッファ16に格納されたフレームのヘッダ部分のS_IDに「ストレージ装置のポート番号」を埋め込み、D_IDに「サーバ装置のポート番号」を埋め込む。
次に、フレーム修復部13は、ステップG7の実行後のフレームに対して、CRCを計算する(ステップG8)。
次に、フレーム修復部13は、ステップG8のCRCの計算結果がフレーム修復バッファ16に格納されたフレームのCRCと一致しているかどうかを判定する(ステップG9)。ステップG9の判定の結果、一致していない場合は、フレーム修復部13は、再度ステップG1を実行する。
一方、ステップG8のCRCの計算結果がフレーム修復バッファ16に格納されたフレームのCRCと一致している場合は、フレーム修復部13は、ステップG10を実行する。
ステップG10では、フレーム修復部13は、フレーム修復バッファ16のフレームを、スイッチ装置3の修復フレーム受信部33に、LAN5を経由して送信する。
上述のステップG2において、Yesと判定される場合は、管理テーブル18の全てのエントリにおいて、CRCの計算結果がフレーム修復バッファ16に格納されたフレームのCRCと一致しなかった場合である。よって、ステップG11では、フレーム修復部13は、開始機器特定部14に対して、処理開始指示を発行する。
図13は、本発明の実施の形態におけるスイッチ装置のエラーフレームが修復された場合の動作を示すフロー図である。図13は、図12に示したステップG10が実行された場合にスイッチ装置3で行なわれる動作を示している。
図13に示すように、管理装置1のフレーム修復部13によるフレーム修復が成功し、ステップG10が実行されると、スイッチ装置3において、修復フレーム受信部33は、送信されてきたフレームを受信し、これを修復フレームバッファ35に格納する(ステップH1)。
次に、修復フレーム受信部33は、修復フレーム送信部34に送信指示を発行する(ステップH2)。
次に、スイッチ装置3の修復フレーム送信部34は、修復フレームバッファ35に格納されているフレームを、フレームヘッダのD_IDのポート番号の装置に到着するように、スイッチ装置3に接続された次段の装置に送信する(ステップH3)。
図14は、本発明の実施の形態における管理装置の開始機器特定部における動作を示すフロー図である。図14は、図12に示したステップG11が実行された場合、即ち、フレーム修復部13によるフレーム修復が失敗していた場合に管理装置1で行なわれる動作を示している。
図14に示すように、最初に、管理装置1において、開始機器特定部14は、管理テーブル18のエントリのうち、「エクスチェンジの先頭フレームヘッダ」フィールドにヘッダが格納されているエントリの1つを参照する(ステップI1)。
次に、開始機器特定部14は、最終のエントリまで参照したかどうかを判定する(ステップI2)。ステップI2の判定の結果、最終のエントリまで参照している場合は、開始機器特定部14は、後述するステップI9を実行する。
一方、ステップI2の判定の結果、最終のエントリまで参照していない場合は、開始機器特定部14は、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドにヘッダが格納されているかどうかを判定する(ステップI3)。
ステップI3の判定の結果、ヘッダが格納されていない場合は、開始機器特定部14は、再度ステップI1を実行する。一方、ステップI3の判定の結果、ヘッダが格納されている場合は、開始機器特定部14は、エラーフレームバッファ15に格納されたフレームのヘッダ部分のS_ID、D_ID、OX_IDと、管理テーブル18の「サーバ装置のポート番号」フィールドの値と、「ストレージのポート番号」フィールドの値と、「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とを比較する(ステップI4)。
具体的には、開始機器特定部14は、エラーフレームバッファ15に格納されたフレームのヘッダ部分のS_IDと、管理テーブル18の「サーバ装置のポート番号」フィールドの値とを比較し、更に、ヘッダ部分のD_IDと、管理テーブル18の「ストレージのポート番号」フィールドの値とを比較する。また、開始機器特定部14は、ヘッダ部分のOX_IDと、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とも比較する。
次に、開始機器特定部14は、ステップI4の比較の結果に基づき、全てが一致しているかどうかを判定する(ステップI5)。ステップI5の判定の結果、全てが一致している場合は、開始機器特定部14は、後述するステップI8を実行する。
一方、ステップI5の判定の結果、全てが一致していない場合は、開始機器特定部14は、比較するS_IDとD_IDを入れ替えて、再度、比較を実行する(ステップI6)。
具体的には、開始機器特定部14は、エラーフレームバッファ15の格納されたフレームのヘッダ部分のS_IDと、管理テーブル18の「ストレージ装置のポート番号」フィールドの値とを比較し、更に、ヘッダ部分のD_IDと、管理テーブル18の「サーバ装置のポート番号」フィールドの値とを比較する。そして、開始機器特定部14は、ヘッダ部分のOX_IDと、管理テーブル18の「エクスチェンジの先頭フレームヘッダ」フィールドに格納されたヘッダのOX_IDの値とも比較する。
次に、開始機器特定部14は、ステップI6の比較の結果に基づき、全てが一致しているかどうかを判定する(ステップI7)。ステップI7の判定の結果、全てが一致していない場合は、開始機器特定部14は、再度ステップI1を実行する。一方、ステップI7の判定の結果、全てが一致している場合は、開始機器特定部14は、ステップI8を実行する。
ステップI8では、開始機器特定部14は、ステップI5またはI7で一致していると判定されたエントリの「サーバ装置のIPアドレス」フィールドのIPアドレスのサーバ装置2を特定する。そして、開始機器特定部14は、そのサーバ装置2の再送コマンド発行部22に対して、再送指示を、LAN5を経由して発行する(ステップI8)。
上述のステップI2において、Yesと判定された場合は、管理テーブル18の全てのエントリにおいて、対応するエントリが見つからなかった場合である。従って、ステップI9では、開始機器特定部14は、エラーフレームバッファ15とフレーム修復バッファ16との内容を破棄し、処理を終了する。
図15は、本発明の実施の形態において管理装置からサーバ装置に再送が指示された場合のサーバ装置における動作を示すフロー図である。図14に示したステップI8が実行されると、図15に示す各ステップは、実行される。
図15に示すように、サーバ装置2において、再送コマンド発行部22は、図14に示したステップI8が実行されると、管理装置1の開始機器特定部14からの再送指示を受信する(ステップJ1)。
次に、再送コマンド発行部22は、SCSIプロトコルレイヤーに対して、再送要求を発行する(ステップJ2)。
(実施の形態における効果)
「発明が解決しようとする課題」の欄で述べたように、特許文献1に開示されたシステムでは、エラーフレームのヘッダの S_ID、D_ID、OX_ID のいずれかが壊れていた場合、エラーフレームを復旧することは不可能である。これに対して、本実施の形態では、S_ID、D_ID、OX_ID のいずれかが壊れていた場合でもエラーフレームを復旧することができるので、送信元のサーバ装置に再送処理を行わせることなく、フレーム送信を継続することができる。また、エラーフレームを復旧できた場合は、スイッチ装置と管理装置との間で処理が完結するため、特許文献1に開示されたシステムに比べて、該当フレームのエラーリカバリ時間を短縮できる。
[プログラム]
本実施の形態におけるプログラムは、コンピュータに、図9に示すステップD1〜D3、図11に示すステップF1〜F3、図12に示すステップG1〜G11、及び図14に示すステップI1〜I9を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における管理装置とファイバチャネルの制御方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、機器情報管理部11、フレーム受信部12、フレーム修復部13、及び開始機器特定部14として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、機器情報管理部11、フレーム受信部12、フレーム修復部13、及び開始機器特定部14のいずれかとして機能しても良い。
ここで、本実施の形態におけるプログラムを実行することによって、管理装置1を実現するコンピュータについて図16を用いて説明する。図16は、本発明の実施の形態における管理装置を実現するコンピュータの一例を示すブロック図である。
図16に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
なお、本実施の形態における管理装置1は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、管理装置1は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記12)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを備え、
前記スイッチ装置は、
フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、エラーフレーム通知部を備え、
前記管理装置は、
前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、フレーム修復部と、
を備えている、ことを特徴とするファイバチャネル制御システム。
(付記2)
前記管理装置が、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、開始機器特定部を、更に備えている、
付記1に記載のファイバチャネル制御システム。
(付記3)
前記管理装置が、
前記サーバ装置から、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を取得し、これらを1つのエントリとして、管理テーブルに登録する、機器情報管理部を更に備え、
前記フレーム修復部が、前記エントリ毎に、置換を行なって、置換後のフレームのCRCを算出する、
付記1または2に記載のファイバチャネル制御システム。
(付記4)
サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するための装置であって、
前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、フレーム修復部と、
を備えている、ことを特徴とする管理装置。
(付記5)
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、開始機器特定部を、更に備えている、
付記4に記載の管理装置。
(付記6)
前記サーバ装置から、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を取得し、これらを1つのエントリとして、管理テーブルに登録する、機器情報管理部を更に備え、
前記フレーム修復部が、前記エントリ毎に、置換を行なって、置換後のフレームのCRCを算出する、
付記4または5に記載の管理装置。
(付記7)
ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを用い、
(a)前記スイッチ装置によって、
フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、ステップと、
(b)前記管理装置によって、前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、ステップと、
(c)前記管理装置によって、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、ステップと、
を有する、ことを特徴とするファイバチャネルの制御方法。
(付記8)
(d)前記管理装置によって、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、ステップを、更に有する、
付記7に記載のファイバチャネルの制御方法。
(付記9)
(e)前記管理装置によって、前記サーバ装置から、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を取得し、これらを1つのエントリとして、管理テーブルに登録する、ステップを更に有し、
前記(c)のステップにおいて、前記エントリ毎に、置換を行なって、置換後のフレームのCRCを算出する、
付記7または8に記載のファイバチャネルの制御方法。
(付記10)
コンピュータによって、サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するためのプログラムであって、
前記コンピュータに、
(a)前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、ステップと、
(b)前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、前記スイッチ装置に置換後のフレームを送信させる、ステップと、
を実行させるプログラム。
(付記11)
前記コンピュータに、
(c)算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、ステップを更に実行させる、
付記10に記載のプログラム。
(付記12)
前記コンピュータに、
(d)前記サーバ装置から、エクスチェンジの送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を取得し、これらを1つのエントリとして、管理テーブルに登録する、ステップを更に実行させ、
前記(b)のステップにおいて、前記エントリ毎に、置換を行なって、置換後のフレームのCRCを算出する、
付記10または11に記載のプログラム。
以上のように、本発明によれば、ファイバチャネル通信において、エラーフレームのフレームヘッダが壊れていた場合に、壊れているフレームヘッダの修正を行なうことができる。本発明は、ファイバチャネル通信が用いられる種々のシステムに有用である。
1 管理装置
2 サーバ装置
3 スイッチ装置
4 ストレージ装置
5 LAN
10 ファイバチャネル制御システム
11 機器情報管理部
12 フレーム受信部
13 フレーム修復部
14 開始機器特定部
15 エラーフレームバッファ
16 フレーム修復バッファ
17 フレームヘッダバッファ
18 管理テーブル
21 機器情報通知部
22 再送コマンド発行部
31 フレームヘッダ通知部
32 エラーフレーム通知部
33 修復フレーム受信部
34 修復フレーム送信部
35 修復フレームバッファ
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

Claims (6)

  1. ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを備え、
    前記スイッチ装置は、
    エクスチェンジの先頭フレームを検出すると、前記エクスチェンジの先頭フレームヘッダを前記管理装置に送信する、フレームヘッダ通知部と、
    フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、エラーフレーム通知部を備え、
    前記管理装置は、
    前記サーバ装置から、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレスを取得し、前記スイッチ装置から、エクスチェンジの先頭フレームヘッダを取得し、これらを1つのエントリとして、管理テーブルに登録する、機器情報管理部と、
    前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
    前記エントリ毎に、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレス前記スイッチ装置から取得した、エクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
    前記エントリのいずれかにおいて、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、一致しているエントリにおいて置換した置換後のフレームを、前記スイッチ装置に送信させる、フレーム修復部と、
    を備えている、ことを特徴とするファイバチャネル制御システム。
  2. 前記管理装置が、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、開始機器特定部を、更に備えている、
    請求項1に記載のファイバチャネル制御システム。
  3. サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するための装置であって、
    前記サーバ装置から、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレスを取得し、前記スイッチ装置から、エクスチェンジ番号を含むエクスチェンジの先頭フレームヘッダを取得し、これらを1つのエントリとして、管理テーブルに登録する、機器情報管理部と、
    前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、フレーム受信部と、
    前記エントリ毎に、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレス前記スイッチ装置から取得した、エクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
    前記エントリのいずれかにおいて、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、一致しているエントリにおいて置換した置換後のフレームを、前記スイッチ装置に送信させる、フレーム修復部と、
    を備えている、ことを特徴とする管理装置。
  4. 算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致していない場合に、前記フレームエラーが発生したフレームの送信元のサーバ装置を特定し、特定したサーバ装置に、フレームの再送を指示する、開始機器特定部を、更に備えている、
    請求項に記載の管理装置。
  5. ファイバチャネルによって接続されているサーバ装置とストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、管理装置とを用い、
    (a)前記スイッチ装置によって、
    エクスチェンジの先頭フレームを検出すると、前記エクスチェンジの先頭フレームヘッダを前記管理装置に送信する、ステップと、
    (b)前記スイッチ装置によって、
    フレームエラーを検出すると、前記フレームエラーが発生したフレームを前記管理装置に送信する、ステップと、
    (c)前記管理装置によって、前記サーバ装置から、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレスを取得し、前記スイッチ装置から、エクスチェンジ番号を含むエクスチェンジの先頭フレームヘッダを取得し、これらを1つのエントリとして、管理テーブルに登録する、ステップと、
    )前記管理装置によって、前記スイッチ装置から送信されてきた、前記フレームエラーが発生したフレームを受信する、ステップと、
    )前記管理装置によって、前記エントリ毎に、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレス前記スイッチ装置から取得した、エクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
    前記エントリのいずれかにおいて、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、一致しているエントリにおいて置換した置換後のフレームを、前記スイッチ装置に送信させる、ステップと、
    を有する、ことを特徴とするファイバチャネルの制御方法。
  6. コンピュータによって、サーバ装置と、ファイバチャネルによって前記サーバ装置に接続されているストレージ装置と、前記サーバ装置と前記ストレージ装置との間で、フレームを含むエクスチェンジを仲介するスイッチ装置と、を管理するためのプログラムであって、
    前記コンピュータに、
    (a)前記管理装置によって、前記サーバ装置から、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレスを取得し、前記スイッチ装置から、エクスチェンジ番号を含むエクスチェンジの先頭フレームヘッダを取得し、これらを1つのエントリとして、管理テーブルに登録する、ステップと、
    (b)前記スイッチ装置によって、フレームエラーが検出され、前記フレームエラーが発生したフレームが送信されてきた際に、前記フレームエラーが発生したフレームを受信する、ステップと、
    前記エントリ毎に、前記サーバ装置から取得した、エクスチェンジの送信元のポートアドレス及び送信先のポートアドレス前記スイッチ装置から取得した、エクスチェンジ番号で、前記フレームエラーが発生したフレームのヘッダにおける、送信元のポートアドレス、送信先のポートアドレス、及びエクスチェンジ番号を置換し、置換後のフレームのCRCを算出し、
    前記エントリのいずれかにおいて、算出したCRCと前記フレームエラーが発生したフレームのCRCとが一致している場合に、一致しているエントリにおいて置換した置換後のフレームを、前記スイッチ装置に送信させる、ステップと、
    を実行させるプログラム。
JP2017055493A 2017-03-22 2017-03-22 ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム Active JP6919249B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017055493A JP6919249B2 (ja) 2017-03-22 2017-03-22 ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017055493A JP6919249B2 (ja) 2017-03-22 2017-03-22 ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018159988A JP2018159988A (ja) 2018-10-11
JP6919249B2 true JP6919249B2 (ja) 2021-08-18

Family

ID=63795650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017055493A Active JP6919249B2 (ja) 2017-03-22 2017-03-22 ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6919249B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6595678B1 (ja) * 2018-08-29 2019-10-23 株式会社サイオクス 窒化物半導体基板、窒化物半導体基板の製造方法および積層構造体
JP6595731B1 (ja) * 2018-10-26 2019-10-23 株式会社サイオクス 窒化物半導体基板の製造方法、窒化物半導体基板および積層構造体
JP6595689B1 (ja) * 2018-11-08 2019-10-23 株式会社サイオクス 窒化物半導体基板の製造方法、窒化物半導体基板および積層構造体
JP7279891B2 (ja) * 2019-01-23 2023-05-23 Necソリューションイノベータ株式会社 管理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3801879B2 (ja) * 2001-06-13 2006-07-26 日本電信電話株式会社 再送制御動作抑制方法および再送制御動作抑制装置
JP6136418B2 (ja) * 2013-03-21 2017-05-31 日本電気株式会社 通信制御システム、通信制御装置、通信制御方法、及びそのためのプログラム

Also Published As

Publication number Publication date
JP2018159988A (ja) 2018-10-11

Similar Documents

Publication Publication Date Title
JP6919249B2 (ja) ファイバチャネル制御システム、管理装置、ファイバチャネルの制御方法、及びプログラム
US8872638B2 (en) Controlling communication among multiple industrial control systems
JP4929808B2 (ja) ネットワーク機器接続装置およびネットワーク機器接続方法
JP5076488B2 (ja) 情報処理装置、履歴管理方法、履歴管理プログラム
US10884886B2 (en) Copy-on-read process in disaster recovery
JP2003288270A (ja) データ検証方法およびホストコンピュータおよび記憶制御装置
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
JP5112246B2 (ja) ストレージシステム及び通信方法
JP2009217484A (ja) リモートコピーシステム及び確認方法
JP4413806B2 (ja) 障害切り分け方法、障害切り分け機能を有する通信装置及びプログラム
US7010650B2 (en) Multiple data management method, computer and storage device therefor
US20110191641A1 (en) Raid device, abnormal device detecting apparatus, and abnormal device detecting method
JP4394533B2 (ja) ディスクアレイシステム
JP2002525894A (ja) ファイバチャネルネットワークにおいてi/o送信を管理する方法およびシステム
US20160080111A1 (en) Receiver, transmitter and data transmission system
JP6136418B2 (ja) 通信制御システム、通信制御装置、通信制御方法、及びそのためのプログラム
JP6565506B2 (ja) 受信装置、受信制御方法および受信制御プログラム
JP2021099723A (ja) 分散ストレージシステム、データ制御方法及び記憶媒体
JP6260361B2 (ja) データ転送システム及び方法
JP2019016987A (ja) 通信システム、管理装置、端末装置、通信方法、及びプログラム
JP7279891B2 (ja) 管理装置
WO2016038722A1 (ja) ストレージシステム及びデータ書込み方法
WO2022003975A1 (ja) 通信装置、方法、およびプログラム
JP4874211B2 (ja) 計算機システム、同期稼動化方法、ノード、及びプログラム
JP2019144961A (ja) ファイバチャネル通信システム、スイッチ装置、末端装置、ファイバチャネル通信方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210705

R150 Certificate of patent or registration of utility model

Ref document number: 6919249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150