(57)【要約】  １以上の記憶デバイス部の各々は、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継し複数のスイッチポートを有するスイッチデバイスを有する。コントローラ部は、複数のイニシエータポートを有するストレージコントローラを有する。ストレージコントローラが、複数のイニシエータポートの各々経由でそのイニシエータポートに接続されている記憶デバイス部のＩＤを取得する。ストレージコントローラが、複数のイニシエータポートと取得された複数のＩＤとの関係であるポートＩＤ関係を基に、システム構成を判定する。ストレージコントローラが、１以上のスイッチデバイスの各々に対して、そのスイッチデバイスに接続されている少なくとも１つのイニシエータポート経由で、判定したシステム構成に対応したスイッチ設定を行う。
2018051386.tif 000002
【特許請求の範囲】
【請求項１】
１以上の記憶デバイス部と、
コントローラ部と
を有し、
前記１以上の記憶デバイス部の各々は、
１以上の記憶デバイスと、
前記１以上の記憶デバイスにそれぞれ接続された１以上のスイッチポートを含む複数のスイッチポートを有し、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継するスイッチデバイスと
を有し、
前記コントローラ部は、
複数のイニシエータポートと、
前記複数のイニシエータポートを有するストレージコントローラと
を有し、
前記複数のイニシエータポートに、前記１以上の記憶デバイス部における１以上のスイッチデバイスが接続され、
前記ストレージコントローラが、システム構築処理を実行し、
前記システム構築処理は、
前記複数のイニシエータポートの各々経由でそのイニシエータポートに接続されている記憶デバイス部のＩＤを取得すること、
前記複数のイニシエータポートと取得された複数のＩＤとの関係であるポートＩＤ関係を基に、システム構成を判定すること、及び、
前記複数のイニシエータポートに接続されている前記１以上のスイッチデバイスの各々に対して、そのスイッチデバイスに接続されている少なくとも１つのイニシエータポート経由で、前記判定したシステム構成に対応したスイッチ設定を行うこと、
を含む、
ストレージシステム。
【請求項２】
前記システム構築処理は、更に、
前記判定したシステム構成に従い、前記１以上のスイッチデバイスの各々について、そのスイッチデバイスに接続されている１以上のイニシエータポートのうちの少なくとも１つを、そのスイッチデバイスに対する設定のためのコマンドである構成変更コマンドの発行元となるイニシエータポートである発行ポートに決定すること、
を含み、
前記１以上のスイッチデバイスの各々について、前記スイッチ設定は、そのスイッチデバイスに対応した発行ポート経由で、前記判定したシステム構成に対応した設定のための構成変更コマンドを送信することである、
請求項１記載のストレージシステム。
【請求項３】
前記システム構築処理は、更に、
前記１以上のスイッチデバイスの各々について、前記スイッチ設定後のスイッチデバイスについての設定を表す情報を基に、そのスイッチデバイスが前記構成変更コマンドに従う設定が行われたか否かをチェックすること、
を含む、
請求項２記載のストレージシステム。
【請求項４】
前記ストレージコントローラは、前記システム構築処理を、電源がオンとなった場合に開始する、
請求項１記載のストレージシステム。
【請求項５】
前記ストレージコントローラは、前記システム構築処理を、記憶デバイス部の増設又は減設を検出した場合に開始する、
請求項１記載のストレージシステム。
【請求項６】
前記ストレージコントローラは、記憶デバイス部の増設を検出した場合に開始したシステム構築処理において、増設前の記憶デバイス部における未稼働の記憶デバイスと、増設された記憶デバイス部における少なくとも１つの記憶デバイスとを含んだＲＡＩＤグループを構築する、
請求項５記載のストレージシステム。
【請求項７】
前記通信インターフェースは、ＰＣＩｅ（PCI-Express）である、
請求項１記載のストレージシステム。
【請求項８】
１以上の記憶デバイス部とコントローラ部とを有するストレージシステムのシステム構築方法であって、
前記１以上の記憶デバイス部の各々は、
１以上の記憶デバイスと、
前記１以上の記憶デバイスにそれぞれ接続された１以上のスイッチポートを含む複数のスイッチポートを有し、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継するスイッチデバイスと
を有し、
前記コントローラ部は、
複数のイニシエータポートと、
前記複数のイニシエータポートを有するストレージコントローラと
を有し、
前記複数のイニシエータポートに、前記１以上の記憶デバイス部における１以上のスイッチデバイスが接続され、
前記システム構築方法は、
前記複数のイニシエータポートの各々経由でそのイニシエータポートに接続されている記憶デバイス部のＩＤを取得し、
前記複数のイニシエータポートと取得された複数のＩＤとの関係であるポートＩＤ関係を基に、システム構成を判定し、
前記複数のイニシエータポートに接続されている前記１以上のスイッチデバイスの各々に対して、そのスイッチデバイスに接続されている少なくとも１つのイニシエータポート経由で、前記判定したシステム構成に対応したスイッチ設定を行う、
システム構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ストレージシステムのシステム構築に関する。
【背景技術】
【０００２】
１つのコントローラボックスと、それぞれＰＣＩｅ（PCI-Express）スイッチデバイスを有する１以上のＰＤＥＶボックスとを備えたストレージシステムが知られている。コントローラボックスは、ストレージコントローラを有する。ＰＤＥＶボックスは、ＰＣＩｅ（PCI-Express）スイッチデバイスと、そのＰＣＩｅスイッチデバイスに接続された複数のＰＤＥＶとを有する。この種のストレージシステムでは、少なくとも１つのＰＤＥＶボックス（ＰＣＩｅスイッチデバイス）に、コントローラボックス（ストレージコントローラ）が接続される。ＰＤＥＶは、不揮発性の物理記憶デバイスであり、例えば、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。ＰＣＩｅスイッチデバイスは、ＰＣＩｅというインターフェースに従い通信を中継するスイッチ機能を含んだデバイスである。ストレージコントローラは、アクセス先のＰＤＥＶに、そのＰＤＥＶが接続されているＰＣＩｅスイッチデバイスを介してアクセスする。【０００３】
各ＰＣＩｅスイッチデバイスは、複数のポートを有する。以下、ＰＣＩｅスイッチデバイスが有するポートを「ＳＷポート」と表記する。複数のＳＷポートには、下位デバイス（ここでは下位のスイッチデバイス）に接続されるＤＳＰ（ダウンストリームポート）と、上位デバイス（ここでは上位のスイッチデバイス又はストレージコントローラ）に接続されるＵＳＰ（アップストリームポート）とが含まれる。ＤＳＰは、属性がダウンストリームであるポートである。ＵＳＰは、属性がアップストリームであるポートである。【０００４】
ＳＷポートの属性を設定する技術として、特許文献１に開示の技術が知られている。特許文献１によれば、各スイッチノード（ＰＣＩスイッチデバイス）に複数のＣＰＵ（Central Processing Unit）ノードが接続されている。スイッチノード内のコントローラが、ＣＰＵノードが接続されているいずれかのＳＷポートをＵＳＰとし、他のＳＷポートをＤＳＰとする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】US 7,461,194
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のシステム構成（ストレージシステムの構成）が考えられる。【０００７】
例えば、ＰＤＥＶの技術進歩に伴い、少ないＰＤＥＶボックスでストレージシステムの最大性能を引き出すことが期待できる。そのため、例えば、採用されるＰＤＥＶボックスは１つだけとされること、すなわち、１つのＰＣＩｅスイッチにストレージコントローラの全てのイニシエータポートを接続するシステム構成が考えられる。このシステム構成によれば、省スペースで高性能なストレージシステムが期待できる。【０００８】
また、例えば、複数のＰＤＥＶボックスに、同一ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループを構成する複数のＰＤＥＶが分散されているシステム構成が考えられる。この場合、高冗長度及び大容量のうちの少なくとも１つを有するストレージシステムが期待できる。【０００９】
ストレージコントローラとＰＤＥＶ間の通信を中継するスイッチデバイスとしてＰＣＩｅスイッチデバイスが採用される場合、システム構成毎に、そのシステム構成に適したＰＣＩｅスイッチデバイスが必要とされる。なぜなら、１ドメインにつきＲＣ（Root Complex）は１つというＰＣＩｅ規格が存在するためである。ＲＣは、マスタデバイスの一例である。ＲＣの一例が、ストレージコントローラのイニシエータポートである。１つのＰＣＩｅデバイスに複数のイニシエータポートの各々が接続されている場合、イニシエータポート毎にドメイン（パーティション）が必要になる。【００１０】
１つのＰＣＩｅスイッチデバイスに接続されるイニシエータポートの数は、言い換えれば、１つのＰＣＩｅスイッチデバイスが有するＵＳＰの数は、システム構成に依存する。システム構成に応じた構成のＰＣＩｅスイッチデバイスが必要である。例えば、省スペースで高性能なストレージシステムの実現のためには、ＰＤＥＶボックスには、ストレージコントローラが有するイニシエータポートの数と同数のポート分のコネクタが必要である。一方、高冗長度及び大容量のうちの少なくとも１つを有するストレージシステムの実現のためには、ＰＤＥＶボックスには、ストレージコントローラが有するイニシエータポートのうちそのＰＤＥＶボックスに接続されるイニシエータポートの数と同数のポート分のコネクタが必要である。【００１１】
故に、１つのＰＣＩｅスイッチデバイスを複数のシステム構成のいずれにも使用可能であること、言い換えれば、ＰＣＩｅスイッチデバイスに汎用性があることが望ましい。【００１２】
しかし、特許文献１に開示の技術を利用しても、１つのＰＣＩｅスイッチデバイスを複数のシステム構成のいずれにも使用可能とすることはできない。なぜなら、特許文献１によれば、１つのスイッチノードにおいてＵＳＰの数は１に維持されるからである。【００１３】
この種の課題は、ＰＣＩｅスイッチデバイスに限らず、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継するスイッチデバイス全般にあり得る。
【課題を解決するための手段】
【００１４】
ストレージシステムが、１以上の記憶デバイス部（例えばＰＤＥＶボックス）と、コントローラ部（例えばコントローラボックス）とを有する。１以上の記憶デバイス部の各々は、１以上の記憶デバイスと、その１以上の記憶デバイスにそれぞれ接続された１以上のスイッチポートを含む複数のスイッチポートを有するスイッチデバイスとを有する。スイッチデバイスは、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継するデバイスである。コントローラ部は、複数のイニシエータポートと、複数のイニシエータポートを有するストレージコントローラとを有する。複数のイニシエータポートに、１以上の記憶デバイス部における１以上のスイッチデバイスが接続される。ストレージコントローラが、複数のイニシエータポートの各々経由でそのイニシエータポートに接続されている記憶デバイス部のＩＤを取得する。ストレージコントローラが、複数のイニシエータポートと取得された複数のＩＤとの関係であるポートＩＤ関係を基に、システム構成を判定する。ストレージコントローラが、複数のイニシエータポートに接続されている前記１以上のスイッチデバイスの各々に対して、そのスイッチデバイスに接続されている少なくとも１つのイニシエータポート経由で、判定したシステム構成に対応したスイッチ設定を行う。
【発明の効果】
【００１５】
同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継する１つのスイッチデバイスを複数のシステム構成のいずれにも使用可能とすることができる。
【図面の簡単な説明】
【００１６】
【図１】実施例に係る計算機システムの構成の一例を示す。
【図２】ＭＰモジュール、Ｉ／Ｏモジュール及びイニシエータポートの関係を示す。
【図３】システム構築処理の流れを示す。
【図４】構成１〜４にそれぞれ対応した製番格納テーブルを示す。
【図５】構成１に対応したスイッチ設定（ＰＣＩｅスイッチデバイスに対する設定）を示す。
【図６】構成２に対応したスイッチ設定を示す。
【図７】構成３に対応したスイッチ設定を示す。
【図８】構成４に対応したスイッチ設定を示す。
【図９】構成１に対応したシステム構成を示す。
【図１０】構成３に対応したシステム構成を示す。
【発明を実施するための形態】
【００１７】
以下、一実施例を説明する。
【００１８】
なお、以下の説明では、「ｘｘｘテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００１９】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central Processing Unit））によって実行されることで、定められた処理を、適宜に記憶部（例えばメモリ）及び／又はインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語が、プロセッサ（或いは、そのプロセッサを有する装置又はシステム）とされてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な（例えば非一時的な）記録媒体であってもよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００２０】
また、以下の説明では、「ホストシステム」は、１以上の物理的なホスト計算機（例えばホスト計算機のクラスタ）であってもよいし、少なくとも１つの仮想的なホスト計算機（例えばＶＭ（Virtual Machine））を含んでもよい。以下、ホストシステムを、単に「ホスト」と呼ぶ。
【００２１】
また、以下の説明では、「ストレージシステム」は、１以上の物理的なストレージ装置であってもよいし、少なくとも１つの仮想的なストレージ装置（例えばＳＤＳ（Software Defined Storage））を含んでもよい。
【００２２】
また、以下の説明では、「ＰＤＥＶ」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）である。ＰＤＥＶは、例えば、ＨＤＤ又はＳＳＤである。
【００２３】
また、以下の説明では、「ＲＡＩＤグループ」は、複数のＰＤＥＶで構成され関連付けられたＲＡＩＤレベル（ＲＡＩＤ構成）に従いデータを記憶するグループでもよいし、複数のＰＤＥＶに基づく複数の記憶領域で構成され関連付けられたＲＡＩＤレベル（ＲＡＩＤ構成）に従いデータを記憶するグループでもよい。
【００２４】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号（又は参照符号における共通部分）を使用し、同種の要素を区別して説明する場合は、要素のＩＤ（又は要素の参照符号）を使用することがある。
【００２５】
また、以下の説明では、要素の識別子として番号が使用されるが、番号に代えて又は加えて他種の符号が使用されてもよい。
【００２６】
図１は、実施例に係る計算機システムの構成の一例を示す。
【００２７】
計算機システムは、１又は複数のホスト１０２と、ストレージシステム１１０と、管理システム１０１とを有する。ホスト１０２及び管理システム１０１とストレージシステム１１０５、通信ネットワーク１０３に接続される。ホスト１０２及びストレージシステム１１０５間の通信ネットワークと、管理システム１０１及びストレージシステム１１０５間の通信ネットワークは、異なっていてもよい。例えば、前者は、ＳＡＮ（Storage Area Network）でよく、後者は、ＬＡＮ（Local Area Network）でよい。
【００２８】
ホスト１０２は、ストレージシステム１１０にＩ／Ｏ（Input/Output）リクエストを送信する。Ｉ／Ｏリクエストは、Ｉ／Ｏ先の場所を表すＩ／Ｏ先情報を含む。Ｉ／Ｏ先情報は、例えば、Ｉ／Ｏ先のＬＵ（Logical Unit）のＬＵＮ（Logical Unit Number）と、そのＬＵにおける領域のＬＢＡ（Logical Block Address）とを含む。ＬＵは、ストレージシステム１１０から提供される論理ボリューム（論理的な記憶デバイス）である。Ｉ／Ｏ先情報を基に、Ｉ／Ｏ先の論理領域が特定され、その論理領域に基づくＰＤＥＶ（ドライブ）２が特定される。
【００２９】
管理システム１０１は、ストレージシステム１１０を管理する１以上の計算機である。管理システム１０１は、例えば、ストレージシステム１１０の保守用の端末（ＳＶＰ（Service Processor）である。）
【００３０】
ストレージシステム１１０は、コントローラボックス１１１と、１以上のＰＤＥＶボックス１２１とを含む。図示の例では、コントローラボックス１１１に、２つのＰＤＥＶボックス１２１Ａ及び１２１Ｂが接続されている。コントローラボックス１１１には、二重化されたストレージコントローラ１０（１０Ａ及び１０Ｂ）が格納される。ＰＤＥＶボックス１２１には、二重化されたスイッチモジュール１４と、二重化されたスイッチモジュール１４の両方に接続される複数（又は１つ）のＰＤＥＶ２とが格納される。
【００３１】
本実施例の説明では、ストレージコントローラ１０ｘ（ｘは、Ａ、Ｂ、…といった大文字アルファベット）内の構成要素の参照符号には、ｘが含まれる。また、ＰＤＥＶボックス１２１ｙ（ｙは、Ａ、Ｂ、…といった大文字アルファベット）内の構成要素の参照符号には、ｙが含まれる。また、スイッチモジュール１４ｙｎ（ｙは、Ａ、Ｂ、…といった大文字アルファベットであり、ｎは、１、２、…といった自然数）内の構成要素の参照符号には、ｙｎが含まれる。
【００３２】
スイッチモジュール１４Ａ１を例に取り、スイッチモジュール１４の構成を説明する。
【００３３】
スイッチモジュール１４Ａ１は、ＰＣＩｅスイッチデバイス１５Ａ１を含む。ＰＣＩｅスイッチデバイス１５Ａ１は、複数のＳＷポートと、メモリ１６Ａ１とを有する。メモリ１６Ａ１は、構成テーブル１７Ａ１を記憶する。構成テーブル１７Ａ１は、ＰＣＩｅスイッチデバイス１５Ａ１が有する複数のＳＷポートの各々について、ポート属性と、そのＳＷポートに接続されているデバイスのＩＤ（例えばアドレス）とを表す情報を含む。ＳＷポートに接続されるデバイスは、後述のイニシエータポート３、ＰＤＥＶ２、及び、他のＰＣＩｅスイッチのうちの少なくとも１つである。また、メモリ１６Ａ１は、スイッチモジュール１４Ａ１を含むＰＤＥＶボックス１２１Ａの製番（ＩＤ（識別情報）の一例）を記憶する。
【００３４】
ストレージコントローラ１０Ａを例に取り、ストレージコントローラ１０の構成を説明する。
【００３５】
ストレージコントローラ１０Ａは、ＭＰモジュール１１Ａを有する。また、ストレージコントローラ１０Ａには、複数（又は１つ）のＩ／Ｏモジュール７Ａが接続されている。
【００３６】
ＭＰモジュール１１は、プロセッサの一例であるＭＰ（Micro Processor）（図示せず）と、メモリ１２Ａとを有する。メモリ１２Ａは、製番格納テーブル１１３Ａと、スイッチ設定管理テーブル１１４Ａとを記憶する。製番格納テーブル１１３Ａは、各ＰＤＥＶボックス１２１から取得された製番を格納する。スイッチ設定管理テーブル１１４Ａは、各ＰＣＩｅスイッチデバイス１５から取得されたスイッチ設定情報（スイッチ構成を表す情報）を格納する。
【００３７】
Ｉ／Ｏモジュール７Ａは、ストレージコントローラ１０Ａのインターフェースデバイスの一例である。Ｉ／Ｏモジュール７Ａは、複数（又は１つ）のイニシエータポート３を有する。
【００３８】
ストレージコントローラ１０Ａの動作の一例は次の通りである。すなわち、ストレージコントローラ１０Ａは、ホスト１０２から受信したＩ／Ｏリクエストを処理する。具体的には、例えば、ストレージコントローラ１０Ａは、そのＩ／ＯリクエストのＩ／Ｏ先に基づきデータのＩ／Ｏ先となるＰＤＥＶ２を特定し、特定したＰＤＥＶ２にＩ／Ｏコマンドを送信する。ストレージコントローラ１０Ａは、Ｉ／Ｏリクエストに従いＰＤＥＶ２に対して書き込まれる又は読み出されたデータをメモリ１２にキャッシュする。
【００３９】
図２は、ＭＰモジュール１１、Ｉ／Ｏモジュール７及びイニシエータポート３の関係を示す。図２の例では、ＭＰモジュール＃（番号）として、ＭＰモジュール１１の参照符号が採用されており、Ｉ／Ｏモジュール＃（番号）として、Ｉ／Ｏモジュール７の参照符号が採用されており、ポート＃（番号）として、イニシエータポート３のＩＤが採用されている。
【００４０】
図２（及び図１）によれば、下記の通りである。
【００４１】
すなわち、ＭＰモジュール１１Ａに、４つのＩ／Ｏモジュール７Ａ１、７Ａ２、７Ａ３及び７Ａ４がある。４つのＩ／Ｏモジュール７Ａ１〜７Ａ４の各々に、２つのイニシエータポート３があり、結果として、４つのＩ／Ｏモジュール７Ａ１〜７Ａ４に、８つのイニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１がある。
【００４２】
同様に、ＭＰモジュール１１Ｂに、４つのＩ／Ｏモジュール７Ｂ１、７Ｂ２、７Ｂ３及び７Ｂ４がある。４つのＩ／Ｏモジュール７Ｂ１〜７Ｂ４の各々に、２つのイニシエータポート３があり、結果として、４つのＩ／Ｏモジュール７Ｂ１〜７Ｂ４に、８つのイニシエータポートＡ２、Ｂ２、Ｃ２、Ｄ２、Ｅ２、Ｆ２、Ｇ２及びＨ２がある。
【００４３】
以下、本実施例で行われる処理を説明する。
【００４４】
図３は、システム構築処理の流れを示す。この処理は、ストレージシステム１１０（例えばコントローラボックス１１１）の電源がオンとなった場合、及び、システム構成の変更（例えば、ＰＤＥＶボックス１２１の増設又は減設）がストレージコントローラ１０により検出された場合、のうちの少なくとも１つの場合に、開始される。以下、ストレージコントローラ１０として、ストレージコントローラ１０Ａを例に取る。ストレージコントローラ１０Ｂも、ストレージコントローラ１０Ａと同様の処理を行う。
【００４５】
ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々から、そのイニシエータポートに接続されているＰＤＥＶボックス１２１の製番を取得し、製番格納テーブル１１３Ａを更新する（Ｓ３０１）。具体的には、例えば、ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、次の処理を行う。すなわち、ストレージコントローラ１０Ａは、イニシエータポートから、製番問合せを送信する。その製番問合せを、そのイニシエータポートに接続されているＰＣＩｅスイッチデバイス１５Ａが受信する。ＰＣＩｅスイッチデバイス１５Ａは、その製番問合せに応答して、メモリ１６Ａ１に格納されている製番（そのＰＣＩｅスイッチデバイス１５Ａを有するＰＤＥＶボックス１２１の製番）を含んだ応答を返す。ストレージコントローラ１０Ａは、製番問合せの送信元イニシエータポートを介して、製番を含んだ応答を受信する。ストレージコントローラ１０Ａは、製番格納テーブル１１３Ａにおける該当欄（その送信元イニシエータポートに対応した欄）に、受信した応答に含まれている製番を格納する。なお、製番格納テーブル１１３Ａは、図４に示す通りである。すなわち、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、「製番」、「発行フラグ」及び「システム構成」といった情報が関連付けられる。「製番」は、取得された製番を表す。Ｓ３０１の結果として、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、「製番」が格納される。「発行フラグ」及び「システム構成」は、次のＳ３０２の結果として格納される。「発行フラグ」は、対応するイニシエータポートが発行ポート（構成変更コマンドの発行元となるポート）であるか否かを表す。“１”が、発行ポートを意味する。「システム構成」は、複数のシステム構成のうち次のＳ３０２で判定されたシステム構成を表す。
【００４６】
ストレージコントローラ１０Ａは、ポート製番関係（イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１と製番との関係）を基に、システム構成を判定し、判定されたシステム構成に基づき発行ポートを決定する（Ｓ３０２）。ここで言う「システム構成」は、いずれのイニシエータポートにいずれのＰＤＥＶボックスが接続されているかの接続構成に相当する。以下、幾つかの具体例を、図４〜図１０を参照して説明する。
【００４７】
第１の例として、ポート製番関係が、図４における１番目の製番格納テーブル１１３Ａにより示される関係（第１の関係）であるとする。第１の関係によれば、８つのイニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１にそれぞれ対応した製番は同じである。このため、第１の関係によれば、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１のいずれも同一のＰＤＥＶボックス１２１に接続されている。第１の関係に従うシステム構成を、便宜上、「構成１」と呼ぶ。図９がシステム構成が、構成１に該当する。ストレージコントローラ１０Ａは、ポート製番関係が第１の関係の場合、システム構成として構成１を判定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、“構成１”を「システム構成」として製番格納テーブル１１３Ａに格納する。構成１によれば、図５に示すように、１つのＰＣＩｅスイッチデバイス（１５Ａ１）に、８つのイニシエータポート（Ａ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１）が接続される。故に、８つのイニシエータポートのうちの１つが発行ポートであればよい。発行ポートは２以上でもよいが、発行ポートが１つであることで、ストレージコントローラ１０Ａの処理をより単純にすることができる。ここでは、ストレージコントローラ１０Ａは、イニシエータポートＡ１を発行ポートに決定し、イニシエータポートＡ１について、「発行フラグ」を“１”に更新する。結果として、図４に示す１番目の製番格納テーブル１１３Ａが構築される。なお、図４において、ＮＴＢは、Non-Transparent Bridgeの略であり、ＥＰは、End Pointの略であり、Ｐ２Ｐは、Point to Pointの略である。ＥＰは、本実施例では、典型的にはＰＤＥＶである。ＮＴＢの存在により、イニシエータポート（ＲＣ）が属するドメインと異なるドメインに属するＰＤＥＶ（ＥＰ）に、そのイニシエータポート経由でアクセスすることが可能である。
【００４８】
第２の例として、ポート製番関係が、図４における２番目の製番格納テーブル１１３Ａにより示される関係（第２の関係）であるとする。第２の関係によれば、４つのイニシエータポートＡ１、Ｂ１、Ｃ１及びＤ１にそれぞれ対応した製番が同じであり、残りの４つのイニシエータポートＥ１、Ｆ１、Ｇ１及びＨ１にそれぞれ対応した製番が同じである。このため、第２の関係によれば、イニシエータポートＡ１、Ｂ１、Ｃ１及びＤ１が第１のＰＤＥＶボックス１２１Ａに接続されており、イニシエータポートＥ１、Ｆ１、Ｇ１及びＨ１が第２のＰＤＥＶボックス１２１Ｂに接続されている。第２の関係に従うシステム構成を、便宜上、「構成２」と呼ぶ。図１が示すシステム構成が、構成２に該当する。ストレージコントローラ１０Ａは、ポート製番関係が第２の関係の場合、システム構成として構成２を判定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、“構成２”を格納する。構成２によれば、図６に示すように、１つのＰＣＩｅスイッチデバイス（１５Ａ１）に、４つのイニシエータポート（Ａ１、Ｂ１、Ｃ１及びＤ１）が接続される。故に、４つのイニシエータポートのうちの１つが発行ポートであればよい。ここでは、ストレージコントローラ１０Ａは、４つのイニシエータポートＡ１、Ｂ１、Ｃ１及びＤ１のうちのイニシエータポートＡ１を発行ポートに決定し、残りの４つのイニシエータポートＥ１、Ｆ１、Ｇ１及びＨ１のうちのイニシエータポートＥ１を発行ポートに決定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１及びＥ１の各々について、「発行フラグ」を“１”に更新する。結果として、図４に示す２番目の製番格納テーブル１１３Ａが構築される。
【００４９】
第３の例として、ポート製番関係が、図４における３番目の製番格納テーブル１１３Ａにより示される関係（第３の関係）であるとする。第３の関係によれば、２つのイニシエータポートＡ１及びＢ１にそれぞれ対応した製番が同じであり、別の２つのイニシエータポートＣ１及びＤ１にそれぞれ対応した製番が同じであり、また別の２つのイニシエータポートＥ１及びＦ１にそれぞれ対応した製番が同じであり、残りの２つのイニシエータポートＧ１及びＨ１にそれぞれ対応した製番が同じである。このため、第３の関係によれば、イニシエータポートＡ１及びＢ１が第１のＰＤＥＶボックス１２１Ａに接続されており、イニシエータポートＣ１及びＤ１が第２のＰＤＥＶボックス１２１Ｂに接続されており、イニシエータポートＥ１及びＦ１が第３のＰＤＥＶボックス１２１Ｃに接続されており、イニシエータポートＧ１及びＨ１が第４のＰＤＥＶボックス１２１Ｄに接続されている。第３の関係に従うシステム構成を、便宜上、「構成３」と呼ぶ。図１０が示すシステム構成が、構成３に該当する。ストレージコントローラ１０Ａは、ポート製番関係が第３の関係の場合、システム構成として構成３を判定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、“構成３”を格納する。構成３によれば、図７に示すように、１つのＰＣＩｅスイッチデバイス（１５Ａ１）に、２つのイニシエータポート（Ａ１及びＢ１）が接続される。故に、２つのイニシエータポートのうちの１つが発行ポートであればよい。ここでは、ストレージコントローラ１０Ａは、２つのイニシエータポートＡ１及びＢ１のうちのイニシエータポートＡ１を発行ポートに決定し、２つのイニシエータポートＣ１及びＤ１のうちのイニシエータポートＣ１を発行ポートに決定し、２つのイニシエータポートＥ１及びＦ１のうちのイニシエータポートＥ１を発行ポートに決定し、２つのイニシエータポートＧ１及びＨ１のうちのイニシエータポートＧ１を発行ポートに決定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｃ１、Ｅ１及びＧ１の各々について、「発行フラグ」を“１”に更新する。結果として、図４に示す３番目の製番格納テーブル１１３Ａが構築される。
【００５０】
第４の例として、ポート製番関係が、図４における４番目の製番格納テーブル１１３Ａにより示される関係（第４の関係）であるとする。第４の関係によれば、８つのイニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１に対応した製番はいずれも異なる。このため、第４の関係によれば、８つのイニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１がそれぞれ８つのＰＤＥＶボックス１２１Ａに接続されていることになる。第４の関係に従うシステム構成を、便宜上、「構成４」と呼ぶ。ストレージコントローラ１０Ａは、ポート製番関係が第４の関係の場合、システム構成として構成４を判定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、“構成４”を格納する。構成４によれば、図８に示すように、１つのＰＣＩｅスイッチデバイス（１５Ａ１）に、１つのイニシエータポート（Ａ１）が接続される。故に、ストレージコントローラ１０Ａは、８つのイニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々を発行ポートに決定する。ストレージコントローラ１０Ａは、イニシエータポートＡ１、Ｂ１、Ｃ１、Ｄ１、Ｅ１、Ｆ１、Ｇ１及びＨ１の各々について、「発行フラグ」を“１”に更新する。結果として、図４に示す４番目の製番格納テーブル１１３Ａが構築される。
【００５１】
次に、図３のＳ３０３及びＳ３０４、すなわち、発行ポートからの構成変更コマンドの発行と、その構成変更コマンドに従う設定（ＰＣＩｅスイッチデバイス１５Ａに対する設定）が行われる。
【００５２】
Ｓ３０３では、ストレージコントローラ１０Ａは、発行ポートから、ポート属性変更のための構成変更コマンドである属性変更コマンドを送信する。属性変更コマンドは、発行ポートに接続されているＳＷポート（その属性変更コマンドを受信したＳＷポート）のポート属性をアップストリームとすること、つまり、そのＳＷポートをＵＳＰとすることのコマンドである。ＰＣＩｅスイッチデバイス１５Ａは、属性変更コマンドに応答して、属性変更コマンドを受信したＳＷポートをＵＳＰとし、属性変更の完了応答をストレージコントローラ１０に返す。属性変更コマンドを受信しないＳＷポートはＤＳＰである。属性変更コマンドを受信しないＳＷポートのうち、特定のＳＷポートのポート属性は、Disableとされる。また、各ＳＷポートについて、ポート属性を表す情報が、ＰＣＩｅスイッチデバイス１５Ａの構成管理テーブル１７Ａに格納される。
【００５３】
Ｓ３０４では、ストレージコントローラ１０Ａは、発行ポートから、パーティション変更（設定）のための構成変更コマンドであるパーティション変更コマンドを送信する。ＰＣＩｅスイッチデバイス１５Ａは、パーティション変更コマンドに応答して、パーティション変更コマンドを受信したＳＷポート（ＵＳＰ）が属するパーティションを設定し、パーティション変更の完了応答をストレージコントローラ１０に返す。各ＳＷポートについて、そのＳＷポートの所属先のパーティションを表す情報（例えばパーティション番号）が、ＰＣＩｅスイッチデバイス１５Ａの構成管理テーブル１７Ａに格納される。パーティション変更の完了応答は、パーティション変更後（設定後）のスイッチ設定を表す情報（例えば、各ＳＷポートについてポート属性及びパーティション番号を表す情報）を含んでよい。
【００５４】
Ｓ３０３及びＳ３０４により、判定されたシステム構成に応じたポート属性及びパーティションの設定が行われる。Ｓ３０３及びＳ３０４の結果の一例が、図５〜図８に示されるポート属性及びパーティション構成である。
【００５５】
その後、ストレージコントローラ１０Ａは、スイッチ設定情報が、Ｓ３０３及びＳ３０４のコマンド通りに変更（設定）されたポート属性及びパーティションを表しているか否かをチェックする（Ｓ３０５）。つまり、正しくスイッチ設定が行われているかどうかが確認される。「スイッチ設定情報」とは、Ｓ３０３及びＳ３０４後のスイッチ構成（スイッチ設定）を表す情報、具体的には、例えば、各ＳＷポートについてポート属性及びパーティション番号を表す情報である。スイッチ設定情報は、発行ポートに接続されているＰＣＩｅスイッチデバイスから受信する情報である。スイッチ設定情報は、パーティション変更の完了応答に含まれていてもよいし、Ｓ３０５で発行ポートからＰＣＩｅスイッチデバイス１５に問合せが発行されてその問合せに応答して受信する情報であってもよい。なお、取得されたスイッチ設定情報は、スイッチ設定管理テーブル１１４Ａに格納され、スイッチ設定管理テーブル１１４Ａを参照して、上述のチェックが行われてよい。チェックの結果が肯定であれば、システム構築処理が終了してよい。チェックの結果が否定であれば、所定のエラー処理が実行されてよい。
【００５６】
以上が、システム構築処理の流れである。Ｓ３０３及びＳ３０４の各々では、構成変更コマンドが発行されるが、Ｓ３０３及びＳ３０４は一体でもよい。すなわち、１つの構成変更コマンドで、ポート属性変更とパーティション設定が行われてもよい。
【００５７】
システム構成の変更（例えば、ＰＤＥＶボックス１２１の増設又は減設）がストレージコントローラ１０により検出される都度に、システム構築処理が実行される。このため、システム構成の変更の都度に、変更後のシステム構成に適したポート属性及びパーティションが設定される。
【００５８】
以上、一実施例を説明したが、その説明を基に、下記のように総括することができる。なお、下記の総括では、上述の説明に無い事項が含まれていてもよいし、逆に上述の説明に存在する事項が含まれていなくてもよい。
【００５９】
ＰＤＥＶボックス１２１が比較的少ないシステム構成によれば、省スペースで高性能のストレージシステム１１０が期待できる。具体的には、例えば、ＰＤＥＶボックス１２１が比較的少ないため、省スペースが期待できる。１つのＰＤＥＶボックス１２１に接続されるイニシエータポートが比較的多いため、高性能が期待できる。
【００６０】
一方、ＰＤＥＶボックス１２１が比較的多いシステム構成によれば、高冗長度及び大容量のうちの少なくとも１つを有するストレージシステム１１０が期待できる。具体的には、例えば、ＰＤＥＶボックス１２１が比較的多いため、ＰＤＥＶ２も比較的多く、故に、大容量が期待できる。異なるＰＤＥＶボックス１２１に存在する複数のＰＤＥＶ２に基づきＲＡＩＤグループを構成することで、いずれかのＰＤＥＶボックス１２１に障害が発生しても、他のＰＤＥＶボックス１２１内の２以上のＰＤＥＶ２からデータを復元することが期待でき、結果として、高冗長度が期待できる。
【００６１】
このような複数のシステム構成を、同一ハードウェア構成のＰＣＩｅスイッチで実現することができる。具体的には、ストレージコントローラ１０が、各イニシエータポート３からＰＤＥＶボックス１２１の製番（アドレス）を取得し、複数のイニシエータポートにそれぞれ対応した複数の製番の異同関係を基にシステム構成を判定し、判定したシステム構成に応じたポート属性及びパーティションを各ＰＣＩｅスイッチデバイス１５に対して設定する。このため、ＰＣＩｅスイッチデバイスのハードウェア構成を、ストレージシステムのシステム構成毎に用意する必要が無い。言い換えれば、同一ハードウェア構成のＰＣＩｅスイッチデバイス１５で、複数のシステム構成のいずれにも対応可能である。つまり、ＰＣＩｅスイッチデバイス１５は、汎用性のあるＰＣＩｅスイッチデバイスである。
【００６２】
また、本実施例によれば、一般的なストレージシステムと同等の手順でユーザ（例えばエンドユーザ又は保守員）は作業を行うことが可能となる。具体的には、一般的なストレージシステムでは、ユーザは、予め決められたシステム構成の構築のためにコントローラボックスとＰＤＥＶボックスをケーブルで接続して電源をオンする。これにより、ストレージシステムにおいて初期化が開始され、ストレージシステムが使用可能な状態となる。本実施例に係るストレージシステム１１０も、同一のＰＣＩｅスイッチデバイス１５で異なる複数のシステム構成のいずれを実現しつつも、所望のシステム構成を構築するためにコントローラボックス１１１とＰＤＥＶボックス１２１をケーブルでつないで電源をオンするだけでよい。
【００６３】
また、本実施例によれば、ＰＣＩｅスイッチデバイス１５の設定をシステム稼働中に変更することで様々なシステム構成の構築が可能である。例えば、ＰＤＥＶボックス１２１Ａが稼働中のときにＰＤＥＶボックス１２１Ｂが増設されてよく、その場合、ストレージコントローラ１０Ａが、稼働中のＰＤＥＶボックス１２１Ａのうちの未稼働のＰＤＥＶ２Ａを特定し、特定した未稼働のＰＤＥＶ２Ａと、ＰＤＥＶボックス１２１Ｂの少なくとも１つのＰＤＥＶ２Ｂとで、１つのＲＡＩＤグループを構成してよい。
【００６４】
また、ＰＣＩｅ規格によれば、１ドメインにつきＲＣ（Root Complex）は１つであり、また、１ドメインに接続可能なＥＰ（End Point）の数にも上限がある。ストレージシステムのようにたくさんのＥＰ（ＰＤＥＶ）を必要とすると、１ドメインにつき許可されているＥＰ数では足りないといった制約を受けやすい。故に、本実施例のように、ストレージシステムのシステム構成を柔軟に変更できることの有用性は大きい。そして、システム構成を柔軟に変更可能であっても、上述したように、ユーザにとっての利便性は低下しない。
【００６５】
更に、一般には、性能を向上するためには、新しいハードウェアが使用される。しかし、本実施例では、ストレージボックス及びＰＤＥＶボックスという一般的な構成要素で性能向上が期待できる。例えば、構成Ｐ（Ｐ＝２〜４のいずれかの整数）に代えて構成Ｑ（Ｑ＝１〜３のいずれかの整数、且つ、Ｑ＜Ｐ）を採用することで、性能向上が期待できる。一方、構成Ｑに代えて構成Ｐを採用することで、冗長度の向上及び容量の増加のうちの少なくとも１つが期待できる。
【００６６】
以上、一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
【００６７】
例えば、ＰＤＥＶボックス１２１は、ＰＤＥＶ２とそのＰＤＥＶ２に接続されたＰＣＩｅスイッチデバイス１５とを有する記憶デバイス部の一例である。コントローラボックス１１１は、複数のイニシエータポート３とその複数のイニシエータポート３を有するストレージコントローラ１０とを有するコントローラ部の一例である。ＰＤＥＶ２、ＰＣＩｅスイッチデバイス１５及びストレージコントローラ１０の少なくとも１つは、必ずしもボックスのような閉空間に収容されていなくてもよい。
【００６８】
また、例えば、本発明は、ＰＣＩｅスイッチデバイスに代えて、同一ドメインに存在可能なマスタデバイスの数が規定されている通信インターフェースに従い通信を中継する他種のスイッチデバイスが採用されても、適用することができる。
【００６９】
また、上記実施例では、１つのコントローラボックス１１１に複数のＰＤＥＶボックス１２１の各々が接続されるが、それに代えて、１つのコントローラボックス１１１に、カスケード接続された複数のＰＤＥＶボックス１２１のうちの先頭のＰＤＥＶボックス１２１のみが接続されてもよい。前者の場合、各イニシエータポート３にＰＣＩｅスイッチデバイス１５が直接的に（他のＰＣＩｅスイッチデバイス１５非経由で）接続され、後者の場合、少なくとも１つのイニシエータポート３にＰＣＩｅスイッチデバイス１５が間接的に（他のＰＣＩｅスイッチデバイス１５経由で）接続される。
【符号の説明】
【００７０】
１１０…ストレージシステム
【図１】
2018051386.tif 000003
【図２】
2018051386.tif 000004
【図３】
2018051386.tif 000005
【図４】
2018051386.tif 000006
【図５】
2018051386.tif 000007
【図６】
2018051386.tif 000008
【図７】
2018051386.tif 000009
【図８】
2018051386.tif 000010
【図９】
2018051386.tif 000011
【図１０】
2018051386.tif 000012
【国際調査報告】
2018051386.tif 000013
2018051386.tif 000014