説明

接続制御装置、ストレージシステム及び接続制御装置の制御方法

【課題】隣接する接続制御装置に障害が発生した場合に、隣接する接続制御装置に接続するデバイスへの通信を継続する接続制御装置、ストレージシステム及び接続制御装置の制御方法を提供する。
【解決手段】統括制御部101は、自装置のポートに接続されたデバイスのアドレスを基に、自装置に接続されたデバイスに対するデータのルーティングを行う。統括制御部102は、統括制御部101に障害が発生した場合、自装置に接続されたデバイスのアドレス及びセンタースイッチ2に接続されたデバイスの接続経路を示す接続経路情報を基に、自装置に接続されたデバイスに対するデータのルーティングを行い、センタースイッチ2がルーティング不能の場合、接続経路情報を用いて、センタースイッチ2に接続されたデバイスに対するデータのルーティングを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続制御装置、ストレージシステム及び接続制御装置の制御方法に関する。
【背景技術】
【0002】
近年、ストレージシステムでは、ファイバチャネルスイッチ(Fibre Channel Switch)を用いたSAN(Storage Area Network)構成が主流となりつつある。そして、SANでは、複数のサーバ、ストレージ装置及びその他の周辺機器がファイバチャネルを介して相互に接続されている。そして、SANにおいては、複数サーバのデータをまとめて格納するストレージ統合が行なわれている。
【0003】
そして、SANでは、センタースイッチ又はダイレクタ(Director)と呼ばれるファイバチャネルスイッチが用いられる。センタースイッチは、データのルーティングの中核を担う機能を有している。具体的には、センタースイッチは、自装置に接続されたデバイスに対してPID(Port ID)を割り当てる。この時、割り当てたPIDは、センタースイッチが有するネームサーバ(NameServer)に格納される。そして、センタースイッチは、ネームサーバに登録したPIDを用いて、あるデバイス(例えば、サーバなど)から送られてきたデータを指定されたデバイス(例えば、ストレージなど)へ転送する。他にも、センタースイッチは、指定されたデバイスからデータを取得し、データを要求したデバイスに取得したデータを転送する。また、近年では非常に多くのデバイスを接続することから、複数のセンタースイッチが接続されたSANが用いられる場合が多い。さらに、ファイバチャネルスイッチとしては、このようなセンタースイッチの下にさらに単にルーティングを行うスイッチが配置される場合もある。
【0004】
また、SANでは、通信障害を回避するため冗長構成を採用した構成が用いられる場合がある。例えば、複数のファイバチャネルスイッチを1つのデバイスに接続し、データ伝送の経路を二重化しておき、切替発生後にブロードキャストを用いて状態を監視して、ルーティングテーブルを更新する従来技術がある。
【0005】
また、冗長構成を採用する場合、冗長構成を備えたセンタースイッチが用いられることがある。冗長構成を備えたセンタースイッチとは、上述したセンタースイッチの機能を実行する各部が二重化されたものである。以下では、二重化された各部のうち、正常状態でルーティングを行う各部をアクティブ側と言い、アクティブ側に故障が発生した場合に切り替わりルーティングを行う各部をスタンバイ側と言う。
【0006】
冗長構成を備えたセンタースイッチは、アクティブ側及びスタンバイ側のいずれもネームサーバを有している。そこで、アクティブ側のネームサーバがダウンしても、スタンバイ側に切り替わり、スタンバイ側のネームサーバを用いてアクティブ側と同様のルーティングを提供することができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−242872号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、アクティブ側及びスタンバイ側の両方に障害が発生する二重故障などの場合、ネームサーバに登録されたデバイス情報は削除されてしまい、アドレス解決ができなくなってしまう。そのため、二重故障が発生したセンタースイッチではルーティングを行うことができなくなってしまう。そのため、例えば、センタースイッチに接続されているデバイスにはデータをルーティングすることができなくなってしまう。
【0009】
また、切替発生後にブロードキャストを用いて監視を行う従来技術を用いても、冗長化されたスイッチに二重故障が発生した場合、そのスイッチのみに接続されているデバイスへのデータのルーティングができなくなってしまう。
【0010】
開示の技術は、上記に鑑みてなされたものであって、隣接するファイバチャネルスイッチに障害が発生した場合に、隣接するファイバチャネルに接続するデバイスへの通信を継続する接続制御装置、ストレージシステム及び接続制御装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する接続制御装置、ストレージシステム及び接続制御装置の制御方法は、一つの態様において、第1アクティブ制御部は、自装置のポートに接続されたデバイスのアドレスを基に、自装置に接続されたデバイスに対するデータのルーティングを行う。スタンバイ制御部は、前記アクティブ制御部に障害が発生した場合、自装置に接続されたデバイスのアドレス及び自装置に接続する隣接接続制御装置に接続されたデバイスの接続経路を示す経路情報を基に、自装置に接続されたデバイスに対するデータのルーティングを行い、前記隣接接続制御装置がルーティング不能の場合、前記経路情報を用いて、前記隣接接続制御装置に接続されたデバイスに対するデータのルーティングを行う。
【発明の効果】
【0012】
本願の開示する接続制御装置、ストレージシステム及び接続制御装置の制御方法の一つの態様によれば、隣接するファイバチャネルスイッチに障害が発生した場合に、隣接するファイバチャネルに接続するデバイスへの通信を継続することができるという効果を奏する。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1に係るストレージシステムのシステム構成の一例を示す概観図である。
【図2】図2は、CPブレード、コアブレード及びポートブレードの接続状態を示す図である。
【図3】図3は、実施例1に係るストレージシステムのブロック図である。
【図4】図4は、実施例1における正常時のネームサーバ及び拡張ネームサーバの状態を説明するための図である。
【図5】図5は、FCフレームのデータ構成を示す図である。
【図6】図6は、実施例1における一方のセンタースイッチがダウンした場合の他方のセンタースイッチの拡張ネームサーバの状態を説明するための図である。
【図7】図7は、実施例1に係るストレージシステムにおける正常時の処理のシーケンス図である。
【図8】図8は、実施例1に係るストレージシステムにおけるセンタースイッチダウン時の処理のシーケンス図である。
【図9】図9は、実施例1に係るストレージシステムにおけるセンタースイッチダウン状態での転送処理のシーケンス図である。
【図10】図10は、センタースイッチダウン時の拡張ネームサーバによる処理のフローチャートである。
【図11】図11は、実施例2における正常時のネームサーバ及び拡張ネームサーバの状態を説明するための図である。
【図12】図12は、実施例2における一方のセンタースイッチがダウンした場合の他方のセンタースイッチの拡張ネームサーバの状態を説明するための図である。
【図13】図13は、実施例2に係るストレージシステムにおけるセンタースイッチダウン時の処理のシーケンス図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する接続制御装置、ストレージシステム及び接続制御装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する接続制御装置、ストレージシステム及び接続制御装置の制御方法が限定されるものではない。特に、以下の説明では、接続制御装置としてファイバチャネルスイッチを例に説明するが、これに限らない。また、以下の説明では、ファイバチャネルスイッチを、FCスイッチと呼ぶ。
【実施例1】
【0015】
図1は、実施例1に係るストレージシステムのシステム構成の一例を示す概観図である。図1に示すように、本実施例に係るストレージシステムは、センタースイッチ1、センタースイッチ2、ICL(Inter Chassis Link)3、ストレージ4及びサーバ5を有している。このセンタースイッチ1が、「第1接続制御装置」の一例にあたる。また、センタースイッチ2が、「第2接続制御装置」の一例にあたる。
【0016】
本実施例では、ストレージ4は、センタースイッチ1に接続されている。また、サーバ5は、センタースイッチ2に接続されている。ここで、図1では、説明の便宜上、センタースイッチ1及びセンタースイッチ2に接続されているデバイスをそれぞれ1つ記載しているが、実際には、いずれにも複数のデバイスを接続することができる。具体的には、後述するセンタースイッチ1及びセンタースイッチ2が有するポートの数を最大として、センタースイッチ1及びセンタースイッチ2にデバイスを接続することができる。また、図1では、センタースイッチ1及びセンタースイッチ2のいずれにも、サーバ及びストレージといった様々なデバイスを接続することができる。特に、接続するデバイスの数が多い場合には、センタースイッチ1及びセンタースイッチ2に単にルーティングを行うだけのFCスイッチを接続することもできる。
【0017】
センタースイッチ1とセンタースイッチ2とはICL3で接続されている。このICL3については、後で詳細に説明する。
【0018】
センタースイッチ1は、制御機能を備えたプロセッサを搭載したブレードであるCP(Control Processor)ブレード11、12、コアブレード13、14、及びポートブレード15〜18を有している。また、センタースイッチ2は、CPブレード21、22、コアブレード23、24、及びポートブレード25〜28を有している。本実施例では、センタースイッチ1とセンタースイッチ2とは同じ構成を有している。
【0019】
CPブレード11、12、コアブレード13、14、及びポートブレード15〜18は、薄型(ブレード型)の筐体を有している。センタースイッチ1の筐体の中にそれぞれ挿入されセンタースイッチ1の筐体の背面に配置されたボードに接続することで、相互に接続される。
【0020】
また、図1では、センタースイッチ1及び2のいずれも、ポートブレードを4つずつ有しているが、ポートブレードは1〜4台のいずれでもよい。また、図1に示すセンタースイッチ1及び2の筐体では、ポートブレードが最大4台までしか収納できないが、筐体のサイズが大きければ、さらに多くのポートブレードを配置することもできる。
【0021】
図2は、CPブレード、コアブレード及びポートブレードの接続状態を示す図である。図2に示すように、CPブレード11は、コアブレード13及び14と接続している。また、CPブレード12も、コアブレード13及び14と接続している。さらに、コアブレード13は、ポートブレード15〜18のそれぞれと接続している。また、コアブレード14も、ポートブレード15〜18のそれぞれと接続している。すなわち、CPブレード1及び2のいずれも、コアブレード13及び14のいずれとも通信可能である。また、コアブレード13及び14のいずれも、ポートブレード15〜18のいずれとも通信可能である。センタースイッチ2は、センタースイッチ1と同様の構成であるので、センタースイッチ2も図2に示す接続状態を有している。
【0022】
CPブレード11(Control Processor)は、CPU、ハードディスク及びメモリを有している。CPブレード12、21及び22は、本実施例では、CPブレード11と同様の構成を有している。そして、CPUブレード11及び12の一方がアクティブとなり、他方がスタンバイとなる。すなわち、CPUブレード11及び12は、通常はアクティブである一方が動作しており、アクティブ側に故障が発生した場合に、スタンバイである他方がアクティブ側に変わって動作する。これは、CPUブレード21及び22でも同様である。
【0023】
コアブレード13は、CPU及びメモリを有している。また、コアブレード13は、複数のICLポートを有している。コアブレード14、23及び24は、本実施例では、コアブレード13と同様の構成を有している。コアブレード13及びコアブレード14は、いずれもルーティング処理を行っている。そして、コアブレード13及びコアブレード14は、一方が故障した場合、他方がその処理を引き継ぐ。これは、コアブレード23及びコアブレード24でも同様である。また、コアブレード13は、自己のICLポートと他のセンタースイッチに搭載されたコアブレードのICLポートをICLで接続することで相互に高速な通信を行うことができる。本実施例では、コアブレード13は、コアブレード23とICL3で接続されている。またコアブレード14は、コアブレード24とICL3で接続されている。
【0024】
ポートブレード15〜18は、サーバ、ストレージ及びスイッチなどのデバイスを接続するためのポートを有している。例えば、ポートブレード15〜18は、それぞれが64個のポートを有する。ポートブレード15のポートには、例えば、ストレージ4が接続されている。
【0025】
図3は、実施例1に係るストレージシステムのブロック図である。統括制御部101は、例えば図1に示すCPブレード11によって実現される。統括制御部102は、例えば図1に示すCPブレード12によって実現される。ルーティング制御部103は、例えば図1に示すコアブレード13によって実現される。ルーティング制御部104は、例えば図1に示すコアブレード14によって実現される。ポート部105は、例えば図1に示すポートブレード15及び16によって実現される。また、ポート部106は、例えば図1に示すポートブレード17及び18によって実現される。また、統括制御部201は、例えば図1に示すCPブレード21によって実現される。統括制御部202は、例えば図1に示すCPブレード202によって実現される。ルーティング制御部203は、例えば図1に示すコアブレード23によって実現される。ルーティング制御部204は、例えば図1に示すコアブレード24によって実現される。ポート部205は、例えば図1に示すポートブレード25及び26によって実現される。また、ポート部206は、例えば図1に示すポートブレード27及び28によって実現される。
【0026】
また、図1では、接続するデバイスの代表例としてストレージ4及びサーバ5を表したが、図3では、センタースイッチ1にデバイス41〜44が接続し、センタースイッチ2にデバイス51〜54が接続しているものとする。センタースイッチ1とセンタースイッチ2とは同様の構成を有しており、相互に対称に動作するので、以下では、センタースイッチ1を例にその構成について主に説明する。以下の説明は、センタースイッチ2でも同様である。
【0027】
統括制御部101及び統括制御部102は、一方が通常処理を行うアクティブ側である。また、統括制御部101及び統括制御部102は、一方が故障した場合に処理を継続するスタンバイ側である。本実施例では、統括制御部101をアクティブ側とし、統括制御部102をスタンバイ側とする。また、ルーティング制御部103及びルーティング制御部104はいずれもアクティブとなってルーティング処理を実行するものであり、二重化された構成となっている。すなわち、ルーティング制御部103及びルーティング制御部104は通常は、それぞれがルーティング処理を行っているが、一方が故障した場合に、一方がそれまで行っていたルーティング処理を他方が代わりに行う。このように、ルーティング制御部103とルーティング制御部104とは同様の動作をするため、以下の説明では、ルーティング制御部103を例に説明する。
【0028】
統括制御部101は、ネームサーバ110を有している。統括制御部101は、ルーティング制御部103及び104からポート部105及び106に接続されているデバイスの情報を取得する。次に、統括制御部101は、ポート部105及び106に接続されたデバイス41〜44に対してPID(Port ID)を割り当てる。統括制御部101により生成されるPIDについて説明する。PIDは、例えば6桁の番号で構成されている。そして、PIDは、先頭の2桁で自装置のDIDを示し、続く2桁で隣接するスイッチと接続する自装置のポート番号を表しており、最後の2桁はリザーブとしている。例えば、センタースイッチ1のDIDが1で、デバイスがセンタースイッチ2とポート番号が81のポートで接続されている場合には、統括制御部101は、そのデバイス対して「018100」というPIDを割り当てる。
【0029】
そして、統括制御部101は、割り当てたPIDを自己が有するネームサーバ110が記憶しているアドレステーブルに登録する。アドレステーブルとは、各デバイスに対応させてそのデバイスに割り当てられたPIDが記載されたテーブルである。また、統括制御部101は、割り当てたPIDの情報を統括制御部102へ出力する。
【0030】
さらに、統括制御部101は、ルーティング制御部103からセンタースイッチ2に接続するデバイスに割り当てられたPIDを取得する。そして、統括制御部101は、センタースイッチ2に接続するデバイスに割り当てられたPIDを自己が有するネームサーバ110が記憶しているアドレステーブルに登録する。すなわち、アクティブ側である統括制御部101のネームサーバ110は、センタースイッチ1及び2に接続するデバイスに割り当てたPIDが登録されたアドレステーブルを有する。また、統括制御部101は、センタースイッチ2に接続されたデバイスに割り当てられたPIDの情報を統括制御部102へ出力する。
【0031】
図4は、実施例1における正常時のネームサーバ及び拡張ネームサーバの状態を説明するための図である。図4では、センタースイッチ1にストレージ4が接続されセンタースイッチ2にサーバ5が接続された状態を表している。ここで、ストレージ4のWWN(World Wide Name)は、50:00:00:0b:5d:42:01:6bである。また、サーバ5のWWNは20:01:00:0b:5c:61:03:3aである。図4に示すように、ネームサーバ110は、ストレージ4、及びサーバ5のPIDが登録されたアドレステーブル111を格納している。アドレステーブル111には、それぞれのデバイスに対応させて、Type、PID、WWN及びInfoが記載されている。Typeとは、本実施例では、登録されているPIDの種類を表している。TypeにおけるNは、ノードを表しており、デバイスに割り振られたPIDであることを表す。これに対して、TypeにおけるSは、スイッチを表しており、後述するように他のセンタースイッチが故障した場合にPIDの代替として用いるスイッチングPIDであることを表している。また、Infoは、デバイスの種類を表している。同様に、図4に示すように、センタースイッチ2の統括制御部201も、自己が有するネームサーバ210にアドレステーブル211を格納する。図4に示すように、アドレステーブル111及びアドレステーブル211は同じ内容となる。このネームサーバ110及びアドレステーブル111が、「第1テーブル」の一例にあたる。また、ネームサーバ210及びアドレステーブル211が、「第3テーブル」の一例にあたる。
【0032】
また、統括制御部101は、自装置に接続されたデバイスに割り当てたPIDの情報の送信要求をルーティング制御部103から受ける。そして、統括制御部101は、自装置に接続されたデバイスに割り当てたPIDの情報をルーティング制御部103へ出力する。
【0033】
ここで、自装置に接続されたデバイスのPIDの送信及びセンタースイッチ2に接続されたデバイスのPIDの受信は、ルーティング制御部103又はルーティング制御部104のいずれを介してもよい。本実施例では、ルーティング制御部103を介したPIDの授受を一例として説明している。
【0034】
統括制御部101は、FCフレームに含まれるFCフレームの転送先のDID(Destination ID)をルーティング制御部103から取得する。ここで、FCフレームについて説明する。図5は、FCフレームのデータ構成を示す図である。図5に示すように、FCフレーム300は、SOF(Start Of Frame)301、ヘッダ302、ペイロード303、CRC(Cyclic Redundancy Check)304及びEOF(End Of Frame)305を有している。SOF301は、フレーム開始を意味するデリミタである。SOF301のサイズ310は、例えば、4バイトである。また、ヘッダ302は、転送情報などを格納する領域であり、DIDやSID(Source ID)などが格納されている。ヘッダ302のサイズ320は、例えば、24バイトである。ペイロード303は、ユーザデータである。ペイロード303のサイズ330は、最大2112バイトである。CRC304は、巡回冗長検査を格納する領域である。CRC304のサイズ340は、例えば、4バイトである。また、EOF305は、フレーム終了を意味するデリミタである。EOF305のサイズ350は、例えば、4バイトである。そして、FCフレーム300の全体のサイズ360は、例えば、最大2148バイトである。FCフレーム300のDIDは、ヘッダ302から取得することができる。
【0035】
統括制御部101は、取得したDIDがネームサーバ110のアドレステーブルに登録されているか否かを判定する。登録されている場合、統括制御部101は、転送先のPIDをルーティング制御部103へ出力し、FCフレームの転送を指示する。これに対して、登録されていない場合には、統括制御部101は、FCフレームの破棄をルーティング制御部103に通知する。
【0036】
また、統括制御部101は、センタースイッチ2のダウンの通知をルーティング制御部103から受けた場合、センタースイッチ2のダウンを拡張ネームサーバ120に反映する指示を統括制御部102に通知する。
【0037】
ここで、センタースイッチ2がダウンした後に統括制御部102で障害が発生した場合の動作には、本実施例では、接続維持又は性能維持の2種類が設けられている。接続維持とは、スイッチングポートを用いたルーティングをそのまま維持する方法である。また、性能維持とは、スイッチングポートを用いたルーティングをあきらめ、統括制御部101が行なっている自装置に接続されたデバイスに対してのルーティングのみを継続する方法である。接続維持の場合、その時点で行っているルーティングが全て保証されるが、処理量が多くなるため、統括制御部101の負荷が高くなってしまう。また、性能維持の場合、統括制御部101は、それまでの処理と同様の処理しか行わないため性能は維持できるが、ダウンしたセンタースイッチ経由のルーティングは行なえなくなる。
【0038】
接続維持の場合、統括制御部101は、自己に障害が発生した場合には拡張ネームサーバを用いるように拡張ネームサーバ120の同期の通知を統括制御部102から受ける。この場合、統括制御部101は、統括制御部102から拡張アドレステーブル121を取得する。統括制御部102に障害が発生すると、統括制御部101は、拡張アドレステーブル121を用いてセンタースイッチ2を介して接続しているデバイスへのルーティングを行う。この統括制御部101が、「アクティブ制御部」の一例にあたる。
【0039】
統括制御部102は、拡張ネームサーバ120を有している。拡張ネームサーバ120が有する拡張アドレステーブルには、Type、PID、WWN、NativePID、生存フラグ及びInfoの欄がある。すなわち、拡張アドレステーブル121は、ネームサーバ110が有するアドレステーブルの各項目にNativePID及び生存フラグの項目が増えたテーブルである。NativePIDは、故障したセンタースイッチに接続するデバイスに割り当てられたオリジナルのPIDである。NativePIDは、故障したセンタースイッチに接続するデバイスに接続するために生成されるスイッチングPIDに対応するよう登録される。スイッチングPIDについては後で詳細に説明する。また、生存フラグは、その行に記載されたPIDを用いて接続することができるか否かを表す。具体的には、生存フラグは、デバイスにその行のPIDを用いてアクセスできるならば○、アクセスできないならば×の値を取る。統括制御部102は、自装置に接続されたデバイスに割り当てられたPID及びセンタースイッチ2に接続されたデバイスに割り当てられたPIDの情報を統括制御部101から取得する。
【0040】
統括制御部102は、取得した各PIDを拡張ネームサーバ120のアドレステーブルに登録する。さらに統括制御部102は、自装置に直接接続されているデバイス以外のデバイスについてスイッチングPIDの情報を生成しアドレステーブルに登録する。
【0041】
ここで、スイッチングPIDの生成及びアドレステーブルへの登録の一例について説明する。スイッチングPIDは、例えば、通常のPIDと同じ6桁とする。そして、スイッチングPIDは、先頭の2桁を自装置のDIDとする。また、スイッチングPIDの続く1桁を、自装置のコアブレードの搭載位置にICLが使用しているポートのポート番号を加えたものとする。また、スイッチングPIDの続く1桁を、隣接するセンタースイッチのポートブレードの搭載位置とする。さらに、最後の2桁を、隣接するセンタースイッチにおいて当該デバイスが接続されたポート番号とする。例えば、センタースイッチ1のDIDが1であり、自装置のコアブレードの搭載位置が3番目のスロットであり、隣接するセンタースイッチと接続するICLポートの番号が1番であるとする。さらに、隣接するセンタースイッチのポートブレードの搭載位置が1番目のスロットであり、デバイスが接続された隣接するセンタースイッチのポート番号が1であるとする。この場合、統括制御部102は、スイッチングPIDとして「014101」を生成する。このように、スイッチングPIDは、デバイスに割り当てられたオリジナルのPIDを用いずに、自装置からそのデバイスが接続しているポートにたどり着く経路を示している。すなわち、スイッチングPIDを用いることで、例えば、ルーティング制御部103は、FCフレームの転送先のデバイスが接続されているポートまでそのFCフレームを送信することができる。以下では、スイッチングPIDを用いたルーティングの対象となるポートを「スイッチングポート」と呼ぶ。このスイッチングPIDが、「自装置から前記隣接接続制御装置における該アドレスを有するデバイスが接続されているポートへの接続経路を示す経路情報」の一例にあたる。
【0042】
そして、統括制御部102は、拡張ネームサーバ120の拡張アドレステーブルのPIDの欄に生成したスイッチングPIDを登録する。また、統括制御部102は、そのスイッチングPIDのTypeにSを登録し、WWNにデバイスのWWAの値を登録する。さらに、統括制御部102は、そのスイッチングPIDのNativePIDの欄に該当するデバイスのオリジナルのPIDの値を登録する。さらに、生存フラグに、アクセスの状態を示す。さらに、統括制御部102はInfoとして、そのデバイスの種類を登録する。
【0043】
例えば、拡張ネームサーバ120のアドレステーブルは、図4の拡張アドレステーブル121のようになる。図4に示すように、拡張ネームサーバ120の拡張アドレステーブル121には、ストレージ4及びサーバ5のオリジナルのPIDが登録されている。さらに、拡張アドレステーブル121には、センタースイッチ2を介して接続されているデバイスであるサーバ5のスイッチングPIDが登録されている。PID122及びPID123が、サーバ5のスイッチングPIDである。PID122は、3番目のスロットに搭載されたコアブレードのポート番号が1のICL3を経由する経路を使用してサーバ5に接続するためのスイッチングPIDである。PID123は、6番目のスロットに搭載されたコアブレードのポート番号が1のICL3を経由する経路を使用してサーバ5に接続するためのスイッチングPIDである。これは、本実施例では、コアブレードが2つ搭載されており、それぞれがセンタースイッチ2とICL3で接続されているため、経路が2つとなるので、それぞれの経路を使用したスイッチングPIDが生成できるからである。例えば、コアブレードが1つであれば、スイッチングPIDは、1つのデバイスに対して1つしか生成されない。
【0044】
このようにして、統括制御部102は、自己が有する拡張ネームサーバ120に拡張アドレステーブル121を格納する。同様に、図4に示すように、センタースイッチ2の統括制御部202も、自己が有する拡張ネームサーバ220に拡張アドレステーブル221を格納する。スイッチングPIDは、自装置以外に接続されているデバイスに対して生成するので、図4に示すように、拡張アドレステーブル121と拡張アドレステーブル221とは内容が異なることになる。
【0045】
統括制御部102は、アクティブ側である統括制御部101に障害が発生した場合、故障を検知すると、アクティブとなり、統括制御部101が行っていたルーティングを引き継いで実行する。
【0046】
また、センタースイッチ2の統括制御部201及び統括制御部202が両方ともに障害が発生しセンタースイッチ2がダウンした場合、統括制御部102は、統括制御部201又は統括制御部202が行っていたルーティングを引き継ぐ。この場合、統括制御部102は、拡張ネームサーバ120を用いてルーティングを行う。そこで、次に、センタースイッチ2がダウンした場合の統括制御部102の動作について図6を参照して説明する。図6は、実施例1における一方のセンタースイッチがダウンした場合の他方のセンタースイッチの拡張ネームサーバの状態を説明するための図である。図6は、図4に示す状態で、センタースイッチ2がダウンした場合を表している。
【0047】
統括制御部102は、センタースイッチ2のダウンの拡張ネームサーバ120への反映の指示を統括制御部101から受ける。そして、統括制御部102は、拡張ネームサーバ120が有する拡張アドレステーブル121におけるセンタースイッチ2を介して接続されているデバイスの生存フラグの欄を×にする。図6では、センタースイッチ2を介して接続されているデバイスはサーバ5なので、統括制御部102は、サーバ5のWWNが記載されておりTypeがNの行の生存フラグを×にする。
【0048】
次に、統括制御部102は、生存フラグに×を付けた行のPIDをNativePIDとするスイッチングPIDが拡張アドレステーブル121登録されているか否かを判定する。具体的には、統括制御部102は、NativePIDから生存フラグに×をつけたPIDを検索することで、そのPIDに対応するスイッチングPIDがあるか否かを判定する。そして、統括制御部102は、生存フラグに×を付けたPIDに対応するスイッチングPIDがある場合、ルーティング制御部103に優先ポート設定の通知の指示を送信する。ここで、優先ポート設定とは、接続されているデバイスから受信したFCフレームのルーティング先を他のセンタースイッチに指定する設定である。例えば、センタースイッチ2に接続されているデバイスからセンタースイッチ2がFCフレームを受信した場合に、受信したFCフレームをセンタースイッチ1のルーティング制御部103に転送するように設定する優先ポート設定などがある。この優先ポートの設定については後で詳細に説明する。これに対して、生存フラグに×を付けたPIDに対応するスイッチングPIDがない場合、統括制御部102は、そのPIDが割り当てられたデバイスへのルーティングを断念する。
【0049】
さらに、統括制御部102は、スイッチングポートを用いたルーティングの設定の実施の通知をルーティング制御部103から受けると、自己に障害が発生した場合の動作の定義を確認する。ここで、スイッチングポートを用いたルーティングを行なっている状態で統括制御部102に障害が発生した場合の動作には、本実施例では、接続維持又は性能維持の2種類が設定されている。接続維持とは、スイッチングポートを用いたルーティングをそのまま維持する方法である。また、性能維持とは、スイッチングポートを用いたルーティングをあきらめ、統括制御部101が行なっている自装置に接続されたデバイスに対してのルーティングのみに限定する方法である。接続維持の場合、その時点で行っているルーティングが全て保証されるが、処理量が多くなるため、統括制御部101の負荷が高くなってしまう。また、性能維持の場合、統括制御部101は、それまでの処理と同様の処理しか行わないため性能は維持できるが、ダウンしたセンタースイッチ経由のルーティングは行なえなくなる。本実施例では、統括制御部102は、接続維持又は性能維持のいずれを選ぶかの指示を予め受けている。
【0050】
接続維持の場合、統括制御部102は、自己に障害が発生した場合には拡張ネームサーバを用いるように拡張ネームサーバ120の同期を統括制御部101へ通知する。これに対して、性能維持の場合には、統括制御部102は、統括制御部101に対して通知を行わない。これは、拡張ネームサーバ120の同期を指示しなければ、統括制御部102に障害が発生したとしても、統括制御部101はそれまで通りの処理を継続するからである。
【0051】
そして、スイッチングポートを用いたルーティングでは、統括制御部102は、受信したFCフレームに対する転送先の問合せをルーティング制御部103から受ける。このとき、統括制御部102は、転送先のDIDをルーティング制御部103から受ける。そして、統括制御部102は、拡張ネームサーバ120が有する拡張アドレステーブル121に転送先のDIDがNativePIDとして記載されたスイッチングPIDを検索する。そして、統括制御部102は、検索により抽出したスイッチングPIDをルーティング制御部103へ通知する。これに対して、受信したDIDがNativePIDとして記載されたスイッチングPIDが無い場合、統括制御部102は、ルーティング制御部103に対してFCフレームの破棄を通知する。
【0052】
例えば、図6の場合において、統括制御部102は、サーバ5に転送するFCフレームの転送先の問合せをルーティング制御部103から受ける。この場合、統括制御部102は、FCフレームにより指定されたDIDとして、028100をルーティング制御部103から受信する。そして、統括制御部102は、拡張アドレステーブル121から028500のNativePIDを検索する。図6では、センタースイッチ2に接続されたデバイスに向かう経路が2つあるので、統括制御部102は、2つの行を抽出する。そして、統括制御部102は、抽出した行の中から1つを抽出する。例えば、統括制御部102は、そのタイミングにおける負荷が低い経路を示すスイッチングPIDが記載された行を選択する。そして、統括制御部102は、選択した行に記載されているスイッチングPIDをルーティング制御部103へ通知する。この統括制御部102が、「スタンバイ制御部」の一例にあたる。また、拡張ネームサーバ120及び拡張アドレステーブル121が、「第2テーブル」の一例にあたる。
【0053】
ルーティング制御部103は、ポート部105又は106に入力されたFCフレームを取得する。次に、ルーティング制御部103は、取得したFCフレームからDIDを取得する。そして、優先ポートを用いたFCフレームの転送で無い場合、ルーティング制御部103は、取得したDIDを用いて統括制御部101に対して転送先の問合せを行う。その後、ルーティング制御部103は、FCフレームの転送先のPIDを統括制御部101から受ける。そして、ルーティング制御部103は、受信したPIDが割り当てられたデバイスに対してFCフレームをポート部105又は106を介して送信する。
【0054】
これに対して、優先ポートを用いたFCフレームの転送の場合、ルーティング制御部103は、取得したDIDを用いて統括制御部102に対して転送先の問合せを行う。その後、ルーティング制御部103は、FCフレームの転送先のスイッチングPIDを統括制御部102から受信する。そして、ルーティング制御部103は、受信したスイッチングPIDを参照し、FCフレームの転送先のデバイスが接続されているスイッチングポート及びそのスイッチングポートへの経路を取得する。その後、ルーティング制御部103は、取得した経路を経由してスイッチングポートへ到達するようにポート部105又は106を介してFCフレームを転送する。
【0055】
例えば、図6の場合において、ルーティング制御部103は、サーバ5に転送するFCフレームの転送先を統括制御部102へ問合せた場合、スイッチングPIDとして014810又は017810を統括制御部102から受信する。ここでは、ルーティング制御部103は、014810を取得したとする。この場合、ルーティング制御部103は、3番目のスロットに搭載されたポートブレードのポート番号1のポートを経由させて、センタースイッチ2の8番目のスロットに搭載されたポートブレードのポート番号10のポートから出力するようにFCフレームを送信する。
【0056】
また、ルーティング制御部103は、統括制御部101及び102の両方に障害が発生した場合、例えば、センタースイッチ2のルーティング制御部203又は204からスイッチングPIDを用いたルーティングを実施する指示を受ける。そして、ルーティング制御部103は、自装置に接続するデバイス(例えば、サーバ5など)からFCフレームを受信した場合、受信した受信フレームをセンタースイッチ2のルーティング制御部203へ転送する優先ポートの設定を行う。さらに、ルーティング制御部103は、センタースイッチ1に接続するデバイスへFCフレームが送信されてきた場合、センタースイッチ2のスタンバイ側の統括制御部202によりスイッチングPIDを用いた転送の制御を受けるスイッチングポートの設定を行う。すなわち、スイッチングポートの設定を行った場合、ルーティング制御部103は、センタースイッチ1に接続するデバイスへのFCフレームを受信すると、ルーティング制御部203へFCフレームを転送する。
【0057】
ポート部105及び106は、各ポートに接続されたデバイスからFCフレームの入力を受ける。そして、ポート部105及び106は、受信したFCフレームをルーティング制御部103又は104へ出力する。
【0058】
また、ポート部105及び106は、転送するFCフレームの入力をルーティング制御部103又は104から受ける。そして、ポート部105及び106は、受信したFCフレームを指定されたデバイス又はポートに向けて出力する。
【0059】
次に、図7〜図10を参照して、本実施例に係るストレージシステムにおける正常時の処理、センタースイッチダウン時の処理、センタースイッチダウン後の処理について説明する。ここで、本実施例における、各センタースイッチに搭載された2つのルーティング制御部及び2つのポート部は同様の動作を行う。そこで、以下の説明では、センタースイッチ1のルーティング制御部103及びポート部105、並びにセンタースイッチ2のルーティング制御部203及びポート部205を例に説明する。
【0060】
図7は、実施例1に係るストレージシステムにおける正常時の処理のシーケンス図である。図7を参照して、本実施例に係るストレージシステムにおける正常時の処理について説明する。
【0061】
ステップS101〜ステップS111は、ネームサーバ及び拡張ネームサーバの生成の処理である。ルーティング制御部103とルーティング制御部203とは、正常時には所定の周期でそれぞれのネームサーバが有する情報の交換をICL3を用いて行なっている(ステップS101)。
【0062】
そして、ルーティング制御部203は、取得したセンタースイッチ1のネームサーバ110が有するアドレステーブル111の情報を統括制御部201へ送信する(ステップS102)。統括制御部201は、ネームサーバ110が有するアドレステーブル111の情報をルーティング制御部203から取得する(ステップS103)。そして、統括制御部201は、自己が有するネームサーバ210のアドレステーブル211に、ネームサーバ110が有するアドレステーブル111の情報を反映させる(ステップS104)。さらに、統括制御部201は、ネームサーバ210のアドレステーブル211の情報を統括制御部202へ送信する(ステップS105)。
【0063】
統括制御部202は、自装置に接続されたデバイス及びセンタースイッチ1に接続されたデバイスの情報を拡張アドレステーブルに登録する。さらに、統括制御部202は、センタースイッチ1に接続されたデバイスに割り当てられたPIDからスイッチングPIDを生成し、NativePIDなどと共に拡張アドレステーブルに登録し拡張ネームサーバの情報を作成する(ステップS106)。
【0064】
同様に、ルーティング制御部103は、取得したセンタースイッチ2のネームサーバ210が有するアドレステーブル211の情報を統括制御部101へ送信する(ステップS107)。統括制御部101は、ネームサーバ210が有するアドレステーブル211の情報をルーティング制御部103から取得する(ステップS108)。そして、統括制御部101は、自己が有するネームサーバ110のアドレステーブル111に、ネームサーバ210が有するアドレステーブル211の情報を反映させる(ステップS109)。さらに、統括制御部101は、ネームサーバ110のアドレステーブル111の情報を統括制御部102へ送信する(ステップS110)。
【0065】
統括制御部102は、自装置に接続されたデバイス及びセンタースイッチ2に接続されたデバイスの情報を拡張アドレステーブルに登録する。さらに、統括制御部102は、センタースイッチ2に接続されたデバイスに割り当てられたPIDからスイッチングPIDを生成し、NativePIDなどと共に拡張アドレステーブルに登録し拡張ネームサーバの情報を作成する(ステップS111)。
【0066】
次に、ステップS112〜S122は、サーバ5からストレージ4へのデータ送信における処理である。サーバ5は、ストレージ4に送信するFCフレームをポート部205に送信する(ステップS112)。
【0067】
ポート部205は、受信したFCフレームをルーティング制御部203へ送信する(ステップS113)。
【0068】
ルーティング制御部203は、FCフレームのDIDを取得し、取得したDIDを用いて統括制御部201にFCフレームの転送先を問い合わせる(ステップS114)。
【0069】
統括制御部201は、ルーティング制御部203から受信したDIDを用いて、ネームサーバ210から転送先であるストレージ4のPIDを取得する(ステップS115)。そして、統括制御部201は、取得した転送先のPIDをルーティング制御部203へ送信する(ステップS116)。
【0070】
ルーティング制御部203は、転送先のPIDを統括制御部201から受信する。そして、ルーティング制御部203は、受信したPIDからセンタースイッチ1への送信を判定し、ICL3を用いてセンタースイッチ1のルーティング制御部103へFCフレームを送信する(ステップS117)。
【0071】
ルーティング制御部103は、受信したFCフレームからDIDを取得し、取得したDIDを用いてFCフレームの転送先を統括制御部101に問い合わせる(ステップS118)。
【0072】
統括制御部101は、ルーティング制御部103から受信したDIDを用いて、ネームサーバ110から転送先であるストレージ4のPIDを取得する(ステップS119)。そして、統括制御部101は、取得した転送先のPIDをルーティング制御部103へ送信する(ステップS120)。
【0073】
ルーティング制御部103は、統括制御部101から転送先のPIDを取得する。そして、ルーティング制御部103は、転送先のPIDが割り当てられたデバイスが接続されたポート部105にFCフレームを送信する(ステップS121)。
【0074】
ポート部105は、ルーティング制御部103から受信したFCフレームを転送先のデバイスであるストレージ4へ送信する(ステップS122)。
【0075】
次に、図8を参照して、本実施例に係るストレージシステムにおけるセンタースイッチダウン時の処理について説明する。図8は、実施例1に係るストレージシステムにおけるセンタースイッチダウン時の処理のシーケンス図である。ここでは、統括制御部201及び202に障害が発生し、センタースイッチ2がダウンした場合について説明する。
【0076】
ルーティング制御部203とルーティング制御部103とは、ICL3を用いて随時情報交換を行なっているので、障害が発生した時点においても、ルーティング制御部203とルーティング制御部103とは情報交換を行っている(ステップS201)。そして、統括制御部201及び統括制御部202に障害が発生した後、ルーティング制御部103は、ルーティング制御部203からの情報が受信できなくなる。
【0077】
ルーティング制御部103は、ルーティング制御部203からの情報が受信できない旨を統括制御部101に通知する(ステップS202)。
【0078】
統括制御部101は、ルーティング制御部203からの通知を受けて、センタースイッチ2のダウンを検知する(ステップS203)。そして、統括制御部101は、センタースイッチ2のネームサーバ210の情報の反映を統括制御部102へ指示する(ステップS204)。
【0079】
統括制御部102は、統括制御部101からの指示を受けて、センタースイッチ2のネームサーバ210の情報の反映の指示を統括制御部101から受ける(ステップS205)。統括制御部102は、自己が有する拡張ネームサーバ120が有する拡張アドレステーブル121におけるセンタースイッチ2に接続されたデバイスの生存フラグを×にする。そして、統括制御部102は、生存フラグを×にしたデバイスのPIDをNativePIDとするスイッチングPIDが拡張アドレステーブル121に登録されているか否かにより、スイッチングPIDを用いた通信が可能か否かを判定する(ステップS206)。ここでは、スイッチングPIDを用いた通信が可能な場合で説明する。統括制御部102は、スイッチングPIDを用いた通信が可能な旨を、ルーティング制御部103へ通知する(ステップS207)。
【0080】
ルーティング制御部103は、統括制御部102からの通知を受けて、ICL3を用いてルーティング制御部203にスイッチングPIDを用いた通信を通知する(ステップS208)。
【0081】
ルーティング制御部203は、ルーティング制御部103からの通知を受けて、ルーティング制御部103に接続されたポートを優先ポートとして設定する。すなわち、ルーティング制御部103は、デバイスから受信したFCフレームの転送先をセンタースイッチ1に設定する優先ポート設定を行う(ステップS209)。さらに、ルーティング制御部203は、ルーティング制御部103から受信したFCフレームの指定されたポートへの出力の設定であるスイッチングポート設定を実施する(ステップS210)。その後、ルーティング制御部203は、スイッチングポートを設定した旨をルーティング制御部103へ通知する(ステップS211)。
【0082】
ルーティング制御部103は、ルーティング制御部203からの通知を受けて、センタースイッチ2に転送されてきたFCフレームを受信しスイッチングポートに対するルーティングを行なえるようにスイッチングポート設定を実施する(ステップS212)。そして、ルーティング制御部103は、スイッチングポートの設定が完了したことを統括制御部102へ通知する(ステップS213)。
【0083】
統括制御部102は、ルーティング制御部103からの通知を受けて、スタンバイ側(統括制御部102)ダウン時の動作を接続維持か性能維持か定義する(ステップS214)。性能維持の場合、これ以降の処理は行わない。接続維持の場合、統括制御部102は、接続維持を統括制御部101へ通知する(ステップS215)。
【0084】
統括制御部101は、接続維持の通知を受けて、拡張ネームサーバ120と同期を取る(ステップS216)。すなわち、統括制御部101は、スタンバイ側(統括制御部102)がダウンした場合に拡張ネームサーバ120が有する拡張アドレステーブル121を使用したルーティングを引き継ぐように設定する。
【0085】
次に、図9を参照して、本実施例に係るストレージシステムにおけるセンタースイッチのダウン状態でのFCフレームの転送処理の流れについて説明する。図9は、実施例1に係るストレージシステムにおけるセンタースイッチダウン状態での転送処理のシーケンス図である。
【0086】
センタースイッチ2に接続しているサーバ5は、他のデバイスへ送信するFCフレームをセンタースイッチ2のポート部205へ出力する(ステップS301)。
【0087】
ポート部205は、サーバ5から入力されたFCフレームをルーティング制御部203へ送信する(ステップS302)。
【0088】
ルーティング制御部203は、ポート部205から受信したFCフレームを優先ポートへ転送する(ステップS303)。これにより、サーバ5が出力したFCフレームは、センタースイッチ2のルーティング制御部203からセンタースイッチ1へのルーティング制御部103へ転送される(ステップS304)。
【0089】
ルーティング制御部103は、ルーティング制御部203から受信したFCフレームが優先ポートを用いて転送されてきたことを判定する。また、ルーティング制御部103は、FCフレームからDIDを取得する。そして、ルーティング制御部103は、取得したDIDを用いて、スタンバイ側である統括制御部102にFCフレームの転送先を問い合わせる(ステップS305)。
【0090】
統括制御部102は、DIDを用いた転送先の問合せをルーティング制御部103から受ける(ステップS306)。そして、統括制御部102は、自己が有する拡張ネームサーバ120からサーバ5が出力したFCフレームの転送先のPIDを取得する(ステップS307)。その後、統括制御部102は、取得したPIDをルーティング制御部103へ通知する(ステップS308)。この時、統括制御部102は、通知したPIDがスイッチングPID又は自装置でデバイスに割り当てたPIDのいずれであるかを通知する。
【0091】
次に、ルーティング制御部103は、受信したPIDがスイッチングPIDであるか否かを判定する(ステップS309)。受信したPIDがセンタースイッチ1がデバイスに割り当てたPIDである場合(ステップS309:否定)、ルーティング制御部103は、転送先のPIDが割り当てられたデバイスが接続されたポート部105にFCフレームを送信する(ステップS310)。
【0092】
ポート部105は、ルーティング制御部103から受信したFCフレームを転送先のデバイスであるストレージ4へ送信する(ステップS311)。
【0093】
これに対して、受信したPIDがスイッチングPIDである場合(ステップS309:肯定)、ルーティング制御部103は、スイッチングPIDを参照して、FCフレームを転送する転送ポートを決定する(ステップS312)。そして、ルーティング制御部103は、スイッチングPIDに記載された経路を経由させてルーティング制御部203へFCフレームを送信する(ステップS313)。
【0094】
ルーティング制御部203は、スイッチングPIDを参照して、スイッチングPIDで指定された宛先のポート部205へFCフレームを転送する(ステップS314)。これにより、ルーティング制御部103から送信されたFCフレームは、ポート部205へ転送される(ステップS315)。
【0095】
ポート部205は、スイッチングPIDで指定されているポートからFCフレームを出力する(ステップS316)。
【0096】
例えば、FCフレームの宛先がサーバ5であった場合、スイッチングPIDで指定されているポートにはサーバ5が接続されているので、ルーティング制御部103から送信されたFCフレームはサーバ5へ送信される(ステップS317)。
【0097】
次に、図10を参照して、一方のセンタースイッチがダウンした時の他方のセンタースイッチの拡張ネームサーバによる処理について説明する。図10は、センタースイッチダウン時の拡張ネームサーバによる処理のフローチャートである。以下では、センタースイッチ2がダウンした時の拡張ネームサーバ120を例に説明する。
【0098】
拡張ネームサーバ120は、センタースイッチ2のルーティング制御部203から受信したFCフレーム内のDIDが拡張アドレステーブル121に存在するかをチェックする(ステップS401)。そして、拡張ネームサーバ120は、拡張アドレステーブル121のPIDの中に受信したDIDがあるか否かを判定する(ステップS402)。
【0099】
拡張アドレステーブル121内に受信したDIDがない場合(ステップS402:否定)、拡張ネームサーバ120は、拡張アドレステーブル121にFCフレームの宛先であるDIDが登録していない旨を統括制御部102に通知する。そして、統括制御部102は、FCフレームの破棄をルーティング制御部103へ指示する(ステップS408)。
【0100】
これに対して、拡張アドレステーブル121内に受信したDIDがある場合(ステップS402:肯定)、拡張ネームサーバ120は、該当PIDを含む行の生存フラグの欄が○になっているか否かを判定する(ステップS403)。生存フラグが○の場合(ステップS403:肯定)、拡張ネームサーバ120は、通常のFCフレーム転送をルーティング制御部103へ指示する(ステップS404)。
【0101】
一方、生存フラグが×の場合(ステップS403:否定)、拡張ネームサーバ120は、拡張アドレステーブルのネイティブPIDに該当PIDが登録されているか否かを判定する(ステップS405)。ネイティブPIDに該当PIDが登録されていない場合(ステップS405:否定)、統括制御部102は、FCフレームの破棄をルーティング制御部103へ指示する(ステップS408)。
【0102】
これに対して、ネイティブPIDに該当PIDが登録されている場合(ステップS405:肯定)、ネイティブPIDの欄に該当PIDが登録されている行の生存フラグが○か否かを判定する(ステップS406)。生存フラグが×の場合(ステップS406:否定)、統括制御部102は、FCフレームの破棄をルーティング制御部103へ指示する(ステップS408)。
【0103】
一方、生存フラグが○の場合(ステップS406:肯定)、拡張ネームサーバ120は、スイッチングPIDを用いてFCフレームを転送することをルーティング制御部103へ通知する。その後、統括制御部102及びルーティング制御部103は、スイッチングPIDを用いてFCフレームの転送を行う(ステップS407)。
【0104】
以上に説明したように、本実施例に係るセンタースイッチであるファイバチャネルスイッチは、接続されているセンタースイッチがダウンした場合に、拡張ネームサーバを用いて、ダウンしたセンタースイッチが行なっていたルーティングの処理を継続する。これにより、冗長化されたセンタースイッチに二重故障が発生してそのセンタースイッチがダウンしても、ダウンしたセンタースイッチに接続しているデバイスへの通信を継続することができる。
【実施例2】
【0105】
次に、実施例2に係るストレージシステムについて説明する。本実施例に係るストレージシステムは、センタースイッチに単なるルーティングを行うスイッチが接続され、そのスイッチに他のデバイスが接続されている構成であることが実施例1と異なるものである。以下では、単にルーティングを行うスイッチのことを、「転送スイッチ」と呼ぶ。また、本実施例に係るセンタースイッチは、図2及び図3で示した構成と同様の構成を有する。
【0106】
図11は、実施例2における正常時のネームサーバ及び拡張ネームサーバの状態を説明するための図である。本実施例に係るストレージシステムは、図11に記載するように、センタースイッチ2に転送スイッチ6が接続されている。そして、転送スイッチ6にサーバ7がさらに接続されている。
【0107】
センタースイッチとそれに接続する転送スイッチとは、互いに自己のネームサーバが有するアドレステーブルの内容を交換する。そして、アドレステーブルの内容を交換したスイッチは、交換した先のスイッチのネームサーバが有する情報を自装置のアドレステーブルに追加する。例えば、本実施例では、センタースイッチ2と転送スイッチ6とが接続されている。そこで、センタースイッチ2は、転送スイッチ6のネームサーバが有する情報、すなわち、本実施例では、サーバ7に関する情報を取得し、ネームサーバ210が有するアドレステーブル211へ登録する。逆に、転送スイッチ6は、ネームサーバ210が有する情報を、自己のネームサーバが有するアドレステーブルへ登録する。
【0108】
さらに、センタースイッチ2とセンタースイッチ1とは、互いのネームサーバが有するアドレステーブルの情報を交換するので、センタースイッチ1も転送スイッチ6のネームサーバが有するアドレステーブルの情報を取得することになる。このようにして、ストレージシステム上の全てのセンタースイッチ及び転送スイッチは同じ内容のネームサーバを有することになる。
【0109】
本実施例では、転送スイッチ6に接続されているサーバ7のWWNが、10:00:00:05:1e:9d:a2:00であるとする。この場合、図11に示すように、ネームサーバ110のアドレステーブル111とネームサーバ210のアドレステーブル211とは同じ内容となる。すなわち、アドレステーブル111及び211には、ストレージ4、サーバ5及びサーバ7のPID、WWN及びInfoが登録されている。また、転送スイッチ6のネームサーバもアドレステーブル111及び211と同内容のアドレステーブルを有している。
【0110】
さらに、本実施例では、拡張ネームサーバ220が有する拡張アドレステーブル221には、センタースイッチ1に接続されているストレージ4のスイッチングPIDが2つ登録されている。また、拡張ネームサーバ120が有する拡張アドレステーブル121には、センタースイッチ2に接続されているサーバ5及び転送スイッチ6を介して接続されているサーバ7のスイッチングPIDがそれぞれ2つずつ登録されている。例えば、図11のPID124及び125が、サーバ7のスイッチングPIDを表している。具体的には、PID124は、3番目のスロットに搭載されたコアブレードのポート番号が1のICL3を経由する経路を使用してサーバ7に接続するためのスイッチングPIDである。PID125は、6番目のスロットに搭載されたコアブレードのポート番号が1のICL3を経由する経路を使用してサーバ7に接続するためのスイッチングPIDである。この場合、サーバ7に接続するためのスイッチングPIDには、センタースイッチ2における転送スイッチ6が接続されているポート番号をサーバ7が接続されたポート番号として用いる。転送スイッチ6を介して接続されているサーバ7に接続するためのスイッチングPIDが、「前記隣接接続制御装置に他の接続制御装置経由で接続しているデバイスに対する経路情報」の一例にあたる。
【0111】
図12は、実施例2における一方のセンタースイッチがダウンした場合の他方のセンタースイッチの拡張ネームサーバの状態を説明するための図である。次に、図12を参照して、図11の状態においてセンタースイッチ2がダウンした場合について説明する。
【0112】
センタースイッチ2がダウンした場合、統括制御部102は、センタースイッチ2のネームサーバ210の情報を反映するよう統括制御部101から指示を受ける。そして、統括制御部102の拡張ネームサーバ120は、拡張アドレステーブル121におけるセンタースイッチ2に直接接続しているデバイス及び転送スイッチ6を介して接続しているデバイスの生存フラグを×とする。この場合、図12に示すように、拡張アドレステーブル121の2つのサーバの生存フラグが×になる。
【0113】
そして、この状態で、統括制御部102は、サーバ5又はサーバ7に対するFCデータの転送の要求を受けた場合、拡張ネームサーバ120から転送先となるスイッチングPIDを取得する。例えば、統括制御部102は、サーバ7に対するFCデータの転送の要求を受けた場合、PID124又はPID125を拡張ネームサーバ120から取得する。そして、統括制御部102は、取得したスイッチングPIDであるPID124又はPID125をルーティング制御部103に通知する。その後、ルーティング制御部103は、通知されたスイッチングPIDを用いて、転送スイッチ6が接続されているセンタースイッチ2のポートに向けてFCフレームを送信する。転送スイッチ6は、スイッチングPIDが示すセンタースイッチ2のポートからFCフレームを受信し、受信したFCフレームに記載されているDIDが示す宛先であるサーバ7に対してFCフレームを転送する。
【0114】
また、センタースイッチ2に直接又は転送スイッチ6を介して接続されているデバイスから出力されたFCフレームは、ルーティング制御部203により優先ポートの設定に従いルーティング制御部103へ転送される。その後、ルーティング制御部103は、拡張ネームサーバ120から指定されたPIDを用いてFCフレームの転送を行う。
【0115】
このように、転送スイッチを介してセンタースイッチとデバイスが接続されている構成でセンタースイッチがダウンしても、拡張ネームサーバによって、転送スイッチを介して接続されるデバイスにFCフレームを転送することができる。
【0116】
ここで、図13を参照して、センタースイッチ2がダウンした状態における、センタースイッチ及び転送スイッチを含む各スイッチ間のネームサーバの情報の交換について説明する。図13は、実施例2に係るストレージシステムにおけるセンタースイッチダウン時の処理のシーケンス図である。図13では、センタースイッチ1に転送スイッチ8が接続し、センタースイッチ2に転送スイッチ9が接続している場合で説明する。図13では、転送スイッチをSW(Switch)と表している。
【0117】
転送スイッチ9は、自己のネームサーバの情報をポート部205へ送信する(ステップS501)。
【0118】
ポート部205は、転送スイッチ9から受信したネームサーバの情報をルーティング制御部203へ転送する(ステップS502)。
【0119】
ルーティング制御部203は、ポート部205から受信したネームサーバの情報を優先ポートに転送する(ステップS503)。転送スイッチ9が出力したネームサーバの情報は、ルーティング制御部103へ送信される(ステップS504)。
【0120】
同様に、転送スイッチ8は、自己のネームサーバの情報をポート部105へ送信する(ステップS505)。
【0121】
ポート部105は、転送スイッチ8から受信したネームサーバの情報をルーティング制御部103へ転送する(ステップS506)。
【0122】
ルーティング制御部103は、センタースイッチ2がダウン状態であることから、ネームサーバの情報をスタンバイ側である統括制御部102と判定する(ステップS507)。そして、ルーティング制御部103は、ネームサーバの情報を統括制御部102へ送信する(ステップS508)。
【0123】
統括制御部102は、自己が有する拡張ネームサーバ120へ受信したネームサーバの情報を反映する(ステップS509)。すなわち、拡張ネームサーバ120は、拡張アドレステーブル121に受信したネームサーバの情報を登録する。そして、統括制御部102は、受信したネームサーバの情報を統括制御部101へ転送する(ステップS510)。
【0124】
統括制御部101は、自己が有するネームサーバ110へ受信したネームサーバの情報を反映する(ステップS511)。すなわち、ネームサーバ110は、アドレステーブル111に受信したネームサーバの情報を登録する。
【0125】
この後、統括制御部101は、ネームサーバの情報の交換に対する応答を行う処理を開始する。そこで、統括制御部101は、ネームサーバの情報交換先である転送スイッチがダウンしたセンタースイッチ経由であるか否かを判定する(ステップS512)。
【0126】
転送先がダウンしたセンタースイッチ経由である場合(ステップS512:肯定)、統括制御部101は、統括制御部102に対して転送先を問い合わせる。統括制御部101からの問合せを受けて、統括制御部102は、拡張ネームサーバ120に転送先のPIDであるスイッチングPIDを問い合わせる(ステップS513)。そして、統括制御部102は、拡張ネームサーバ120から取得した転送先のPIDをルーティング制御部103へ送信する。
【0127】
これに対して、転送先がダウンしたセンタースイッチ経由でない場合(ステップS512:否定)、統括制御部101は、自己のネームサーバ110から取得した転送先のPIDをルーティング制御部103へ送信する。そして、ルーティング制御部103は、統括制御部101又は統括制御部102から受信したPIDがスイッチングPIDか否かを判定する(ステップS514)。
【0128】
スイッチングPIDでない場合(ステップS514:否定)、ルーティング制御部103は、転送先のPIDが割り当てられたデバイスが接続されたポート部105に応答を送信する(ステップS515)。
【0129】
ポート部105は、ルーティング制御部103から受信した応答を転送スイッチ8へ送信する(ステップS516)。
【0130】
これに対して、スイッチングPIDの場合(ステップS514:肯定)、ルーティング制御部103は、スイッチングPIDを参照して、FCフレームを転送する転送ポートを決定する(ステップS517)。そして、ルーティング制御部103は、スイッチングPIDに記載された経路を経由させてルーティング制御部203へFCフレームを送信する(ステップS518)。
【0131】
ルーティング制御部203は、スイッチングPIDを参照して、スイッチングPIDで指定された宛先のポート部205へ応答を転送する(ステップS519)。これにより、ルーティング制御部103から送信された応答は、ポート部205へ転送される(ステップS520)。
【0132】
ポート部205は、スイッチングPIDで指定されているポートから応答を出力する(ステップS521)。
【0133】
例えば、応答の宛先が転送スイッチ9であった場合、スイッチングPIDで指定されているポートには転送スイッチ9が接続されているので、ルーティング制御部103から送信された応答は転送スイッチ9へ送信される(ステップS522)。
【0134】
以上に説明したように、本実施例に係るセンタースイッチであるファイバチャネルスイッチは、接続しているセンタースイッチが二重故障でダウンした場合に、単にルーティングを行うスイッチを介して接続しているデバイスに対する通信を継続することができる。すなわち、センタースイッチの下にスイッチを配置してそのスイッチにデバイスを接続したような、非常に大きな構成を有するストレージシステムにおいても、二重故障によるセンタースイッチダウン時に継続して通信を提供することができる。
【0135】
また、以上では、センタースイッチが2つの場合で説明したが、例えば、スター型のように接続されていればセンタースイッチはN台あっても動作可能である。すなわち、そのようにN台のセンタースイッチが配置されたストレージシステムであっても、二重故障によるセンタースイッチダウン時に継続して通信を提供することができる。
【符号の説明】
【0136】
1 センタースイッチ
2 センタースイッチ
3 ICL(Inter Chassis Link)
4 ストレージ
5 サーバ
6 転送スイッチ
7 サーバ
11、12、21、22 CPブレード
13、14、23、24 コアブレード
15〜18、25〜28 ポートブレード
101、102 統括制御部
103、104 ルーティング制御部
105、106 ポート部
110 ネームサーバ
120 拡張ネームサーバ
201、202 統括制御部
203、204 ルーティング制御部
205、206 ポート部
210 ネームサーバ
220 拡張ネームサーバ

【特許請求の範囲】
【請求項1】
自装置のポートに接続されたデバイスのアドレスを基に、自装置に接続されたデバイスに対するデータのルーティングを行うアクティブ制御部と、
前記アクティブ制御部に障害が発生した場合、自装置に接続されたデバイスのアドレス及び自装置に接続する隣接接続制御装置に接続されたデバイスの接続経路を示す経路情報を基に、自装置に接続されたデバイスに対するデータのルーティングを行い、前記隣接接続制御装置がルーティング不能の場合、前記経路情報を用いて、前記隣接接続制御装置に接続されたデバイスに対するデータのルーティングを行うスタンバイ制御部と
を備えたことを特徴とする接続制御装置。
【請求項2】
前記アクティブ制御部は、自装置のポートに接続されたデバイスにアドレスを割り当て、割り当てたアドレスを基に、第1テーブルを生成し、
前記スタンバイ制御部は、前記隣接接続制御装置のポートに接続するデバイスに対して前記隣接接続制御装置が割り当てたアドレスを取得し、前記アクティブ制御部が割り当てたアドレス及び前記隣接接続制御装置から取得したアドレスを基に、第2テーブルを生成する
ことを特徴とする請求項1に記載の接続制御装置。
【請求項3】
前記スタンバイ制御部は、
前記隣接接続制御装置から取得した前記隣接接続制御装置のポートに接続しているデバイスのアドレスに対応させて、自装置から前記隣接接続制御装置における該アドレスを有するデバイスが接続されているポートへの接続経路を示す経路情報を生成し、前記隣接接続制御装置から取得したアドレスに前記経路情報を対応させて前記第2テーブルに登録し、
前記隣接接続制御装置がルーティング不能の場合、前記隣接接続制御装置に接続されたデバイスに対するデータのルーティングが要求されると、該デバイスのアドレスに対応する経路情報を前記第2テーブルから取得し、取得した経路情報により示される経路を用いて該デバイスが接続されている前記ポートまでデータを転送することでデータのルーティングを行う
ことを特徴とする請求項2に記載の接続制御装置。
【請求項4】
前記スタンバイ制御部は、前記隣接接続制御装置に他の接続制御装置経由で接続しているデバイスのアドレスも前記隣接接続制御装置から取得し、自装置から前記他の接続制御装置が接続している前記隣接接続制御装置のポートへの接続を示す接続経路を、該アドレスを有するデバイスに対する経路情報として、該アドレスに対応させて生成することを特徴とする請求項3に記載の接続制御装置。
【請求項5】
互いにデータの送受信が可能に接続された第1接続制御装置及び第2接続制御装置とを有するストレージシステムであって、
前記第1接続制御装置は、
前記第1接続制御装置に接続されたデバイスのアドレスが登録された第1テーブルを基に、前記第1接続制御装置に接続されたデバイスに対するデータのルーティングを行う第1アクティブ制御部と、
前記第1アクティブ制御部に障害が発生した場合、前記第1接続制御装置に接続されたデバイスのアドレス及び前記第2接続制御装置に接続されたデバイスの接続経路を示す経路情報が登録された第2テーブルを基に、前記第1接続制御装置に接続されたデバイスに対するデータのルーティングを行う第1スタンバイ制御部とを備え、
第2接続制御装置は、
前記第2接続制御装置に接続されたデバイスのアドレスが登録された第3テーブルを基に、前記第2接続制御装置に接続されたデバイスに対するデータのルーティングを行う第2アクティブ制御部と、
前記第2アクティブ制御部に障害が発生した場合、前記第3テーブルを基に、前記第2接続制御装置に接続されたデバイスに対するデータのルーティングを行う第2スタンバイ制御部とを備え、
前記第1スタンバイ制御部は、前記第2アクティブ制御部及び前記第2スタンバイ制御部の故障により前記第2接続制御装置がルーティング不能の場合、前記第2テーブルを用いて、前記第2接続制御装置に接続されたデバイスに対するデータのルーティングを行う
ことを特徴とするストレージシステム。
【請求項6】
前記第1アクティブ制御部は、前記第1接続制御装置に接続されたデバイスにアドレスを割り当て、割り当てたアドレスを基に、前記第1テーブルを生成し、
前記第2アクティブ制御部は、前記第2接続制御装置に接続されたデバイスにアドレスを割り当て、
前記第1スタンバイ制御部は、前記第1アクティブ制御部及び前記第2アクティブ制御部が割り当てたアドレスを基に、前記第2テーブルを生成し、
前記第2アクティブ制御部及び前記第2スタンバイ制御部は、前記第2アクティブ制御部が割り当てたアドレスを基に、前記第3テーブルを生成する
ことを特徴とする請求項5に記載のストレージシステム。
【請求項7】
第1制御部及び第2制御部を有する接続制御装置の制御方法であって、
自装置のポートに接続されたデバイスのアドレスを基に、前記自装置に接続されたデバイスに対するデータのルーティングを前記第1制御部に行なわせ、
前記第1制御部障害が発生した場合、自装置に接続されたデバイスのアドレス及び自装置に接続する隣接接続制御装置に接続されたデバイスの接続経路を示す経路情報を基に、自装置に接続されたデバイスに対するデータのルーティングを第2制御部に行わせ、
前記隣接接続制御装置がルーティング不能の場合、前記経路情報を用いて、前記隣接接続制御装置に接続されたデバイスに対するデータのルーティングを前記第2制御部に行わせる
ことを特徴とする接続制御装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−97683(P2013−97683A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−241578(P2011−241578)
【出願日】平成23年11月2日(2011.11.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】