(57)【要約】  計算機システムが、第１のストレージ制御モジュールと、少なくとも1のサーバモジュールとを有する。第１のストレージ制御モジュールは、複数のストレージプロセッサを有する。各サーバモジュールが、サーバプロセッサと、そのサーバプロセッサと複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバＩ／Ｆとを有する。少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバＩ／Ｆは、発行サーバのサーバプロセッサから発行されたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによってストレージプロセッサの特定し、特定されたストレージプロセッサにＩ／Ｏリクエストに基づくコマンドを送出する。
2015068239.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、  サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有し、  前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバの前記サーバプロセッサが、Ｉ／Ｏリクエストを発行し、  前記発行サーバのサーバＩ／Ｆは、    前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、    前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサを特定し、    前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくコマンドを送出する、計算機システム。
【請求項２】
前記振り分け情報を、前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサが生成し、  前記生成された振り分け情報を、前記発行サーバの前記サーバＩ／Ｆが参照する、請求項１記載の計算機システム。
【請求項３】
前記第１のストレージ制御モジュールは、更に複数のストレージメモリを有し、  前記サーバモジュールはさらにサーバメモリを有し、  前記発行サーバの前記サーバメモリと前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、請求項１記載の計算機システム。
【請求項４】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、請求項１記載の計算機システム。
【請求項５】
前記サーバＩ／Ｆと前記ストレージプロセッサの接続はＰＣＩｅｘｐｒｅｓｓプロトコルによって行われる、請求項１記載の計算機システム。
【請求項６】
前記Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報は前記ストレージ制御モジュールに接続される少なくとも１の記憶デバイスの記憶領域によって提供されるボリュームの識別情報であって、  前記振り分け情報は、前記ボリューム毎に当該ボリュームを担当する前記ストレージプロセッサを対応づけ、  複数の前記ボリュームの間で異なる前記ストレージプロセッサが割り当てられている、請求項１記載の計算機システム。
【請求項７】
前記振り分け情報は、何れかの前記ストレージプロセッサの障害時と、何れかの前記ボリュームの構成が変更された時との少なくとも何れかの場合に更新される請求項６記載の計算機システム。
【請求項８】
前記サーバＩ／Ｆは、    前記Ｉ／Ｏリクエストの指定するデータの前記サーバメモリ上の格納先アドレスを、前記発行サーバからの前記Ｉ／Ｏリクエストから取得し、    前記Ｉ／Ｏリクエストに基づいて生成したＩ／Ｏコマンドを前記特定されたストレージ制御プロセッサに送信した返信として、前記Ｉ／Ｏリクエストの指定するデータの前記ストレージメモリ上の格納先アドレスを、前記特定された前記ストレージプロセッサから取得し、    取得した前記サーバメモリ上の格納先アドレスと前記ストレージメモリ上の格納先アドレスとの間で前記データのメモリ間転送を行う、請求項１記載の計算機システム。
【請求項９】
前記第１のストレージ制御モジュールは、更に転送Ｉ／Ｆを有し、  前記第１のストレージ制御モジュールの前記ストレージプロセッサは、前記転送Ｉ／Ｆを介して、第２の前記ストレージ制御モジュールに含まれる複数のストレージプロセッサの何れかと接続されており、  前記サーバＩ／Ｆは、前記Ｉ／Ｏリクエストを処理する前記ストレージプロセッサとして前記第２のストレージ制御モジュール内の前記ストレージプロセッサを特定する場合がある、請求項１記載の計算機システム。
【請求項１０】
前記転送Ｉ／Ｆは、前記Ｉ／Ｏリクエスト基づいて前記サーバＩ／Ｆが発行したコマンドを受信し、  前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれる場合には、当該Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前記ストレージメモリにおける非転送用領域に書き込み、  前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれない場合には、前記Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前前記ストレージメモリにおける転送用領域に書き込む、請求項９記載の計算機システム。
【請求項１１】
前記少なくとも１のサーバモジュールと前記第１のストレージ制御モジュールの間にポート拡張モジュールを有し、  前記ポート拡張モジュールを介して別の前記少なくとも１のサーバモジュールが前記第１のストレージ制御モジュールに接続されており、  前記ポート拡張モジュールが、そのポート拡張モジュールに接続されている複数台のサーバモジュールのうちのどれを前記第１のストレージ制御モジュールに接続するかを制御する、請求項１記載の計算機システム。
【請求項１２】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、  サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有する計算機システムにおいて実行されるデータ制御方法であって、  前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサにより、Ｉ／Ｏリクエストを発行し、  前記発行サーバのサーバＩ／Ｆにより、前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、  前記発行サーバのサーバＩ／Ｆにより、前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサの特定し、  前記発行サーバのサーバＩ／Ｆにより、前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくコマンドを送出する、データ制御方法。
【請求項１３】
前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサにより、前記振り分け情報を生成し、  前記発行サーバの前記サーバＩ／Ｆにより、前記生成された振り分け情報を参照する、請求項１２記載のデータ制御方法。
【請求項１４】
前記発行サーバのサーバメモリと前記第１のストレージ制御モジュールが有する複数のストレージメモリのうち前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、請求項１２記載のデータ制御方法。
【請求項１５】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、請求項１２記載のデータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、概して、記憶制御に関し、例えば、サーバからストレージに対するＩ／Ｏ（Input/Output）に関する。
【背景技術】
【０００２】  一般に、サーバ装置とストレージ装置とを有する計算機システムでは、異なるベンダーによって製造されたサーバ装置とストレージ装置とを、通信ネットワーク（例えばＦＣ（Fibre  Channel）ネットワーク或いはＩＰ（Internet  Protocol））を介して接続することで構成する。サーバ装置からのＩ／Ｏの処理に際して、ストレージ装置内に複数搭載されているＭＰ（Micro  Processor）（データ格納処理を実施するプロセッサ）及び各ＭＰが利用するメモリに偏りが発生するとＩ／Ｏ性能が思うように向上しない。これに対し、ストレージのコントローラが動的に処理実行ＭＰを変更できる技術がある（例えば特許文献１参照）。【０００３】  又、複数サーバ装置毎にストレージ装置を接続する構成とすると、各サーバ装置のアクセス範囲が限定されるために、情報が分散して管理コストの増加及び利便性の低下が生じる。また、サーバ装置のメンテナンスやストレージ容量の追加などの管理タスクによって、特定の格納データにアクセスできない状態が発生する。そのため通信ネットワークに、ネットワークスイッチ（例えばＦＣスイッチ或いはルータ）を介在させ、サーバ装置からストレージ装置に対するＩ／Ｏは、ネットワークスイッチデバイスによるルーティングにより複数のサーバを同じストレージ装置に接続することが可能となる。複数のサーバ装置でストレージ装置を共有することで、どのサーバ装置からも同じデータにアクセス可能となり、例えば、サーバ装置の故障時も他のサーバ装置からデータにアクセスできる。また、ストレージ容量の一元管理などが可能となり、管理コスト及び利便性の面で有益である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国公報２００８/０２６３１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】  サーバ及びストレージそれぞれの性能向上及び、フラッシュメモリ記憶装置のストレージ利用によるバックエンドの広帯域化に合わせて、サーバとストレージ間の接続帯域も、より広帯域化が必要となってきている。また、サーバ性能向上に合わせて、ストレージからのレスポンタイム向上することも課題である。この解決策としてＦＣのポート数増加や次世代品の利用などがあるが、高コストとなってしまう。より広帯域、低レイテンシを低コストで実現することを目指すと、バス接続のようなシンプルでより太く接続できる方法が適している。よって、サーバとストレージをネットワークスイッチのフォワード機能に頼らずに直接接続（直結）し、一体型シャーシ構成とすることで、帯域とレイテンシの課題解決を狙う。又、本構成においてストレージＭＰの負荷低減を図りつつＭＰ間の負荷均等化も考慮する。更に、サーバとストレージが直結される構成をとりつつ、システムの柔軟性、拡張性を保持することを課題とする。【０００６】  本発明の目的は、サーバとストレージ間のより密接な接続を実現しつつ計算システムの柔軟性又は拡張性の低下を軽減することにある。
【課題を解決するための手段】
【０００７】  計算機システムが、第１のストレージ制御モジュールと、少なくとも１のサーバモジュールとを有する。第１のストレージ制御モジュールは、複数のストレージプロセッサを有する。各サーバモジュールが、サーバプロセッサと、そのサーバプロセッサと複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とを有する。少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサが、Ｉ／Ｏリクエストを発行する。発行サーバのサーバＩ／Ｆは、発行サーバのサーバプロセッサからＩ／Ｏリクエストを受け、受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによってストレージプロセッサの特定し、特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくコマンドを送出する。
【発明の効果】
【０００８】  サーバとストレージ間のより密接な接続を実現しつつ計算システムの柔軟性又は拡張性の低下を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係る計算機システムの構成を示す。
【図２】ＳＶＩＦの構成を示す。
【図３】発行元ＩＤ及び発行先ＩＤの構成を示す。
【図４】ＭＰ検索テーブルの構成を示す。
【図５】初期化処理の流れを示す。
【図６】実施例１に係るライト処理の流れを示す。
【図７】実施例１に係るリード処理の流れを示す。
【図８】実施例２に係る計算機システムの構成を示す。
【図９】実施例２に係るストレージメモリの構成を示す。
【図１０】実施例２に係るライト処理の流れを示す。
【図１１】キャッシュ判定結果処理の詳細を示す。
【図１２】実施例２に係るリード処理の流れを示す。
【図１３】実施例３に係る計算機システムの構成を示す。
【図１４】ＢＥＩＦ部のポート番号とＭＰの番号との対応付けの第１及び第２の例を示す。
【発明を実施するための形態】
【００１０】  以下、幾つかの実施例を説明する。
【００１１】  以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。
【００１２】  また、以下の説明では、種々の対象（例えば、筐体、ポート）の識別情報として、番号が使用されるが、番号に代えて又は加えて他種の識別情報が使用されてもよい。
【００１３】  また、以下の説明では、「ＶＯＬ」は、論理ボリュームの略であり、論理的な記憶デバイスである。ＶＯＬは、実体的なＶＯＬ（ＲＶＯＬ）であってもよいし、仮想的なＶＯＬ（ＶＶＯＬ）であってもよい。また、ＶＯＬは、そのＶＯＬを提供するストレージ装置に接続されている外部の装置（例えばサーバ装置）に提供されるオンラインＶＯＬと、外部の装置には提供されない（外部の装置からは認識されない）オフラインＶＯＬとがあってよい。「ＲＶＯＬ」は、そのＲＶＯＬを有するストレージ装置が有する物理的な記憶資源（例えば、複数のＰＤＥＶで構成されたＲＡＩＤ（Redundant  Array  of  Independent  (or  Inexpensive)  Disks）グループ）に基づくＶＯＬである。「ＶＶＯＬ」としては、例えば、そのＶＶＯＬを有するストレージ装置に接続されている外部のストレージ装置の記憶資源（例えばＶＯＬ）に基づいておりストレージ仮想化技術に従うＶＯＬである外部接続ＶＯＬ（ＥＶＯＬ）と、複数の仮想ページ（仮想的な記憶領域）で構成されており容量仮想化技術（典型的にはThin  Provisioning）に従うＶＯＬ（ＴＰＶＯＬ）と、オリジナルのＶＯＬのスナップショットとして提供されるスナップショットＶＯＬとがあってよい。ＴＰＶＯＬは、典型的にはオンラインＶＯＬである。スナップショットＶＯＬは、ＲＶＯＬであってもよい。「ＰＤＥＶ」は、不揮発性の物理的な記憶デバイスの略である。複数のＰＤＥＶで複数のＲＡＩＤグループが構成されてよい。ＲＡＩＤグループはパリティグループと呼ばれてもよい。「プール」は、論理的な記憶領域（例えば複数のプールＶＯＬの集合）であり、用途ごとに用意されてよい。例えば、プールとして、ＴＰプールと、スナップショットプールとがあってよい。ＴＰプールは、複数の実ページ（実体的な記憶領域）で構成された記憶領域である。ＴＰプールからＴＰＶＯＬの仮想ページに実ページが割り当てられてよい。スナップショットプールは、オリジナルのＶＯＬから退避されたデータが格納される記憶領域でよい。「プールＶＯＬ」は、プールの構成要素となるＶＯＬである。プールＶＯＬは、ＲＶＯＬであってもよいしＥＶＯＬであってもよい。プールＶＯＬは、典型的にはオフラインＶＯＬである。
【実施例１】
【００１４】  図１は、実施例１に係る計算機システムの構成を示す。【００１５】  まず、実施例１の概要を説明する。【００１６】  計算機システムは、サーバモジュール（以下、サーバ）１１１と、サーバ１１１にバスで接続されたストレージ制御モジュール１１３とを有する。本実施例においてはサーバモジュールは複数存在し、全てがストレージ制御モジュールと接続されている。ストレージ制御モジュール１１３が、複数のＭＰ（Micro  Processor）１４１を有する。また、複数のサーバ１１１のそれぞれは、ストレージ制御モジュール１１３内の複数コントローラ１３１のそれぞれと接続され、１つのコントローラ１３１（例えばＣＴＬ  Ａ）へのパスと、別のコントローラ１３１（例えばＣＴＬ  Ｂ）への冗長パスとを確保してもよい。各サーバ１１１が、Ｉ／Ｏ（Input/Output）リクエストを発行するＣＰＵ（Central  Processing  Unit）１２２と、通信インタフェース回路であるサーバＩ／Ｆ（以下、ＳＶＩＦ）１２３とを有する。ＳＶＩＦ１２３が、発行されたＩ／Ｏリクエストに基づきＭＰ検索テーブル（ＭＰ検索用の管理テーブル）を使って複数のＭＰ１４１からターゲットとなるＭＰ１４１を特定し、そのターゲットＭＰ１４１に対するＩ／ＯコマンドをターゲットＭＰ１４１に対して発行する。つまり、ＳＶＩＦ１２３が、Ｉ／Ｏリクエスト毎にＩ／Ｏコマンドを処理するＭＰ１４１を指定する。そのＩ／Ｏコマンドは、指定されたターゲットＭＰ１４１により処理される。これにより、ＳＶＩＦ１２３は、冗長パスを含めた複数パスのうち使用するパス、及び、そのパスの先にあるＩ／Ｏコマンドを処理するターゲットＭＰ１４１までを指定し、Ｉ／Ｏコマンドを送ることで、複数のサーバ１１１とストレージ制御モジュール１１３をネットワークスイッチ無しに接続することができ、且つ、計算機システムの柔軟性又は拡張性の低下を軽減することができる。なお、Ｉ／Ｏコマンドに従うＩ／Ｏ対象データの転送は、ＤＭＡ（Direct  Memory  Access）により行われる。また、Ｉ／Ｏコマンド本体もＤＭＡによって転送されてもよい。ＤＭＡにより、サーバメモリ１２１からストレージメモリ１４３へデータ又はコマンドが直接転送される。【００１７】  以下、実施例１を詳細に説明する。【００１８】  計算機システムが、シャーシ１０１を有する。シャーシ１０１が、Ｎ台のサーバ１１１と、Ｎ台のサーバ１１１に接続されたストレージモジュール（以下、ストレージ）１１２とを有する。つまり、計算機システムは、予め、サーバ１１１及びストレージ１１２が結合された形で同一シャーシ１０１に入った統合型システムであって、構成済みによる導入容易化、運用管理の一元化を提供する。実施例１では、Ｎ＝８であるが、Ｎは２以上の整数であればよく、Ｎ台のサーバ１１１はストレージ１１２を共有する。ストレージ１１２は、ストレージ制御モジュール１１３と、ストレージ制御モジュール１１３に接続された複数のＰＤＥＶ１３２を有する。ストレージ制御モジュール１１３は、ＰＤＥＶ１３２に対するＩ／Ｏ（Input/Output）を制御するコントローラ（以下、ＣＴＬ）１３１を有する。【００１９】  各サーバ１１１は、例えばプリント基板（例えばいわゆるブレードサーバ）である。各サーバ１１１は、サー��メモリ１２１と、ＳＶＩＦ１２３と、それらに接続されたＣＰＵ１２２とを有する。サーバメモリ１２１は、コンピュータプログラム及びデータを格納する。ＣＰＵ１２２は、サーバメモリ１２１に格納されたコンピュータプログラムを実行する。コンピュータプログラムとして、例えば、サーバ仮想化プログラム（例えばハイパバイザ）、及び、アプリケーションプログラムがある。ＣＰＵ１２２は、サーバ仮想化プログラムを実行し、結果として、１又は複数の仮想マシン（以下、ＶＭ）を実行することができる。また、ＣＰＵ１２２は、アプリケーションプログラムを実行することもできる。ＣＰＵ１２２は、それらのようなコンピュータプログラムを実行することで、Ｉ／Ｏ先情報を含んだＩ／Ｏリクエストを発行することができる。Ｉ／Ｏ先情報は、ＶＯＬにおける領域を表す情報であり、例えば、ＬＵＮ（Logical  Unit  Number）とＬＢＡ（Logical  Block  Address）を含んだ情報でよい。ＳＶＩＦ１２３は、通信インタフェース回路であり、例えばＡＳＩＣ（Application  Specific  Integrated  Circuit）である。ＳＶＩＦは、発行されたＩ／Ｏリクエストに基づきそのＩ／Ｏリクエストが有するＩ／Ｏ先情報を有するＩ／Ｏコマンドを送信することができる。【００２０】  ＣＴＬ１３１は、例えばプリント基板である。ＣＴＬ１３１は、ストレージポート１４２と、ストレージメモリ１４３と、ＰＤＥＶ  Ｉ／Ｆ（以下、ＰＩＦ）１４５と、ストレージＩ／Ｆ（以下、ＳＴＩＦ）１４４と、それらに接続されたＭＰ（Micro  Processor）１４１とを有する。ＰＩＦ１４５に、１以上のＰＤＥＶ１３２が接続される。ストレージメモリ１４３が、コンピュータプログラム及びデータを格納する。データとして、例えば、ＭＰ検索テーブルがある。ＭＰ検索テーブルは、後述するようにＭＰ１４１が作成する。ＭＰ１４１が、ストレージメモリ１４３に格納されたコンピュータプログラムを実行することで、Ｉ／Ｏコマンドに従いＰＩＦ１４５を介してＰＤＥＶ１３２に対するＩ／Ｏを行うことができる。ＰＩＦ１４５とＰＤＥＶ１３２間は、所定のプロトコル、例えば、ＦＣ（Fibre  Channel）或いはＳＡＳ（Serial  Attached  SCSI）で通信することができる。ストレージメモリ１４３が、ＭＰ１４１毎に設けられてよい。ＰＩＦ１４５及びＳＴＩＦ１４４のうちの少なくとも１つが、ＭＰ１４１毎に設けられてよい。ＳＴＩＦ１４４は、通信インタフェース回路であり、例えばＡＳＩＣである。ＳＴＩＦ１４４は、別のストレージ制御モジュール（図示せず）内のＳＴＩＦに接続可能である。これにより、ストレージ制御モジュール１１３のスケールアウトが可能である（スケールアウトされたストレージ制御モジュールを有する計算機システムの一例を実施例２で説明する）。なお、実施例１及び実施例３では、ＳＴＩＦ１４４は無くてもよい。また、ＳＴＩＦの代わりにＰＩＦだけの構成でもよい。なお、ＳＴＩＦとＳＶＩＦは同じハードウェアでもよい。【００２１】  ＣＴＬ１３１は、１又は複数のＭＰ１４１を有する。ＭＰ１４１毎に担当ＶＯＬ（Ｉ／Ｏ先とできるＶＯＬ）が異なっていてよい。また、ＣＴＬ１３１は二重化されており、故に、ＭＰ１４１が二重化されている。二重化されているＭＰ１４１間（二重化されているＣＴＬ１３１間）��通信が行われてよく、１つのＭＰ１４１に障害が生じた場合、二重化されている他方のＣＴＬとの間でフェイルオーバが行われてよい。【００２２】  ８台のサーバ１１１がストレージ制御モジュール１１３にバスで接続されている。このバスは各サーバ１１１若しくはストレージ制御モジュール１１３における要素間接続にも用いられる内部バス接続であるため、一般的に外部接続に比べて、広帯域を得ることが可能である。例として、ＰＣＩｅ（PCI-Express）プロトコルが用いられる。内部バスを利用することで、ＦＣフレームの作成などは不要となるために処理負荷の軽減が可能である。更に、サーバメモリ１２１からストレージメモリ１４３へ直接データ転送を可能にすることでＭＰの負荷を低減し、低レイテンシを実現することができる。さらに、サーバ１１１とストレージ１１２をＰＣＩｅで直接接続することで、従来必要とされていたＦＣスイッチのようなネットワークスイッチが不要となり、又、一筺体とすることでケーブルの長さも削減できるために、コスト低減のメリットも得ることが可能である。【００２３】  各ＳＶＩＦ１２３が、Ｆ個のバックエンドインタフェース部（以下、ＢＥＩＦ部）（図１では図示せず）を有している。このため、Ｎ台のサーバ１１１が、（Ｎ×Ｆ）個のＢＥＩＦ部を有する。また、各ＣＴＬ１３１が、Ｇ個のストレージポート１４２を有している。ＣＴＬ１３１がＨ重化（実施例１ではＨ＝２）されているので、ストレージ制御モジュール１１３が、（Ｇ×Ｈ）個のストレージポート１４２を有する。（Ｎ×Ｆ）と（Ｇ×Ｈ）は同じ値でなくてもよいが、実施例１では、（Ｎ×Ｆ）と（Ｇ×Ｈ）は同じ値であり、Ｎ＝８、Ｆ＝２、Ｇ＝Ｎ＝８、Ｈ＝Ｆ＝２である。各ＳＶＩＦ１２３が有する２つのＢＥＩＦ部は、２つのＣＴＬ１３１のストレージポート１４２にそれぞれ接続される。なお、Ｈは２以上の整数ではなく１でもよい。また、ＳＶＩＦ１２３は、必ずしもサーバ１１１内でなく、サーバ１１１とコントローラ１３１間にあって、本実施例で説明する機能を果たせばよい。ＳＶＩＦ１２３をサーバ１１１内におけば、サーバ１１１とストレージ１１２間の冗長化を担保でき、信頼性を高めることが可能である。１つのサーバ１１１につき複数のＳＶＩＦ１２３が備えられてもよい。【００２４】  各ＣＴＬ１３１が、ｐ個のＭＰ１４１を有し（ｐは１以上の整数）、故に、ストレージ制御モジュール１１３が、（ｐ×Ｈ）個のＭＰ１４１を有する。ストレージ制御モジュール１１３がＭＰ１４１を複数持つことで、複数サーバ１１１のＩ／Ｏ処理を分散して処理し、レスポンスタイムの向上が期待できる。（ｐ×Ｈ）個のＭＰ１４１が（Ｇ×Ｈ）個のストレージポート１４２に接続されている。１個のＭＰ１４１が、そのＭＰ１４１を有するＣＴＬ１３１が有するＧ個のストレージポート１４２のうちのＧ／ｐ個のストレージポート１４２に接続される。実施例１では、ｐ＝２、Ｇ＝８なので、１個のＭＰ１４１が４個のストレージポート１４２に接続される。【００２５】  さて、図１では、同種の要素を区別するために、同種の要素に通し番号が割り振られている。例えば、サーバ１１１には、０１、０２、…のように通し番号が割り振られ、ＣＴＬ１３１には、Ａ、Ｂのよう���通し番号が割り振られている。また、図１では、親要素と子要素（親要素が有する要素）の関係を分かり易くするために、子要素に、親要素に割り振られている通し番号と同じ通し番号が割り振られている。例えば、通し番号「０１」が割り振られているサーバ１１１のサーバメモリ１２１、ＣＰＵ１２２及びＳＶＩＦ１２３には、それぞれ、同じ通し番号「０１」が割り振られており、通し番号「Ａ」が割り振られているＣＴＬ１３１のＭＰ１４１、ストレージメモリ１４３、ＰＩＦ１４５及びＳＴＩＦ１４４には、それぞれ、同じ通し番号「Ａ」を含んだ通し番号が割り振られている。以下、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合には、通し番号を使用することがある。【００２６】  幾つかの要素を例に取り実施例１を更に詳細に説明する。なお、その要素についての説明は、同種の他の要素についても同様とすることができる。【００２７】  ＭＰ  Ａ１に、ストレージメモリＡ１及びＡ２と、ＰＩＦ  Ａ１と、ＳＴＩＦ  Ａ１とがある。ＭＰ  Ａ１とＭＰ  Ａ２の各々は、図示の通りＭＰ  Ｂ１及びＭＰ  Ｂ２とに二重化されていてよい。二重化されているＰＩＦ  Ａ１及びＰＩＦ  Ｂ１に、同じＰＤＥＶ（例えばＰＤＥＶ  １及び２）が接続される。二重化されているＭＰ  Ａ１及びＢ１が通信可能に接続されている。【００２８】  ＭＰ  Ａ１（又はＡ２）とＭＰ  Ｂ１（又はＢ２）がＭＰクラスタを構成する。一方のＭＰ  Ａ１（又はＡ２）に障害が生じると他方のＭＰ  Ｂ１（又はＢ２）へのフェイルオーバが行われてよい。ＭＰ  Ａ１及びＡ２の各々に、１以上の担当ＶＯＬが関連付けられてよい。例えば、ＶＯＬ１〜４（図示せず）のうち、ＭＰ  Ａ１の担当ＶＯＬがＶＯＬ１及び２であって、ＭＰ  Ａ２の担当ＶＯＬがＶＯＬ３及び４であってよい。言い換えれば、ＶＯＬ１及び２の各々の担当ＭＰがＭＰ  Ａ１であり、ＶＯＬ３及び４の各々の担当ＭＰがＭＰ  Ａ２でよい。各ストレージポート１４２に、そのストレージポート１４２から提供可能なＶＯＬが関連付けられていてよい。ストレージポート１４２に関連付けられているＶＯＬは、そのストレージポートに接続されているＭＰ１４１の担当ＶＯＬでよい。【００２９】  ＭＰ  Ａ１は、例えば前述したＭＰ検索テーブルを作成し、各ＳＶＩＦ１２３が一部又は全てを参照可能とする。なお、ＭＰ検索テーブルの一部又は全てをＳＦＩＶ１２３、サーバ、ストレージのいずれか又は任意の組合せで格納又は複製してそちらを参照してもよい。【００３０】  図１の破線は、ライト対象データ（以下、ＷＲデータ）の流れを示している。ＣＰＵ０１が、ＰＤＥＶ２に基づくＶＯＬ（例えば、ＰＤＥＶ２が基になっているＲＶＯＬ、又は、ＰＤＥＶ  ２に基づく領域が割り当てられるＴＰＶＯＬ）をライト先としたライトリクエスト及びＷＲデータをサーバメモリ０１に格納する。ライトリクエストは、発行元ＩＤ（図３参照）、ストレージポート番号及びライト先ＬＵＮを含んでいる。ＳＶＩＦ０１が、サーバメモリ０１からライトリクエストを取得し、そのライトリクエスト中の発行元ＩＤとライト先ＬＵＮとに基づきＭＰ検索テーブルからターゲットのＭＰ  Ａ１を特定する。ＳＶＩＦ０１が、タ��ゲットのＭＰ  Ａ１の番号を含んだ発行先ＩＤ（図３参照）を含んだライトコマンドを、ターゲットＭＰ  Ａ１に対応するＢＥＩＦ部から送信、又は、発行先ＩＤから特定したターゲットＭＰ  Ａ１用のライトコマンド処理待ちメモリ領域（例えばキューイングメモリ）に、ライトコマンドを、ターゲットＭＰ  Ａ１に対応するＢＥＩＦ部を介して格納する。後者の場合、ライトコマンドは、ターゲットＭＰ  Ａ１の番号を含んでいなくてよく、そのライトコマンドが、ターゲットＭＰ  Ａ１の番号に関連付けられているライトコマンド処理待ちメモリ領域に格納される。ライトコマンド処理待ちメモリ領域は、ターゲットＭＰ  Ａ１のストレージメモリＡ１（又はＡ２）に設けられている。例えば、図９に示すストレージメモリＡ１の中にコマンド用領域９０２があり、その中にＭＰ  Ａ１用、ＭＰ  Ａ２用の領域がある。もし、ＭＰ検索テーブルの更新が間に合わずに、更新前のＭＰ検索テーブルを基にＩ／ＯコマンドのターゲットＭＰが決定された場合、Ｉ／Ｏコマンドが誤ったメモリ領域（更新後のＭＰ検索テーブルに基づき決定されたターゲットＭＰに対応したメモリ領域）に格納されてしまうことがある。例えば、処理するＭＰを有するＣＴＬとそのＭＰをターゲットとしたＩ／Ｏコマンドを格納したメモリ領域を有するＣＴＬが異なってしまうことがある。このようなケースを考慮し、ストレージメモリＡ１に、ＭＰ  Ｂ１またはＢ２用のコマンドが詰まれてもよいように、ストレージメモリＡ１のコマンド用領域９０２（例えば転送用領域９１２及び９１４）には、ＭＰ  Ｂ１、ＭＰ  Ｂ２用の領域があってもよい。この場合、そのＣＴＬ  Ａの代表ＭＰ（例えば、ＭＰ  Ａ１）がＣＴＬ  Ｂ側のメモリのＭＰ  Ｂ１又はＢ２用のメモリにコマンドを転送してもよい。コマンド処理待ちメモリ領域に格納されたデータは、ストレージ側から順番に読み出される。なお、優先順位がＩ／Ｏコマンド（及びメモリ領域の少なくとも一方）に規定されて格納されている場合は、それを加味してＩ／Ｏコマンドが読み出されてもよい。ターゲットＭＰ  Ａ１が、そのライトコマンドを取得し、転送リクエストをＳＶＩＦ０１に送信する。ＳＶＩＦ０１が、その転送リクエストに従い、サーバメモリ０１からストレージメモリＡ１（又はＡ２）にＷＲデータをＤＭＡ転送する。なお、転送リクエストも上記したＩ／Ｏコマンドと同様に、例えばＳＶＩＦ０１に対応した処理待ちメモリ領域（例えば、ストレージメモリＡ１に設けられた、ＳＶＩＦ０１に対応するメモリ領域）に格納され、ＳＶＩＦ０１がそのメモリ領域から転送リクエストを読み出してもよい。また、上記したＭＰ検索テーブルの更新が間に合わなく、処理するＭＰを有するＣＴＬとＩ／Ｏコマンドを格納したメモリ領域を有するＣＴＬが違ってしまった場合や、ＳＶＩＦ０１がＣＴＬ  Ａに対してＩ／Ｏコマンドを発行したときにＣＴＬ  Ｂのメモリでキャッシュヒットしてしまった場合などは、ストレージ制御モジュール１１３は、ＳＶＩＦ０１に対し、Ｉ／Ｏコマンドを受けたストレージポートを有するＣＴＬ（例えばＣＴＬ  Ａ）と別のＣＴＬ（例えばＣＴＬ  Ｂ）のストレージポートから転送リクエストを発行してもよい。また、転送リクエストのメモリ領域とＩ��Ｏコマンドレスポンスのメモリ領域は同じメモリ領域でよく、同様に、転送レスポンスのメモリ領域とＩ／Ｏコマンドリクエストのメモリ領域は同じメモリ領域（キューイングメモリ）でよく、ＭＰがメモリ領域からオブジェクトを引き抜くときに引き抜いたオブジェクトがリクエストであるかレスポンスであるか判定してよい。これにより、メモリ容量に対して、キューイングメモリ本数（メモリ領域数）を少なくし、１つのキューイングメモリのキューイング数（１つのキューイングメモリに格納可能なオブジェクトの数）を多く取るような構成が採用されてもよい。ターゲットＭＰ  Ａ１は、ライトコマンドに対するレスポンスをサーバ０１に返す前又は返した後に、ストレージメモリＡ１内のＷＲデータを、ライト先ＶＯＬ（ライト先ＬＵＮに関連付けられているＶＯＬ）の基になっているＰＤＥＶ２に書き込む。【００３１】  なお、ライト先ＶＯＬと同じＶＯＬをリード元とするリードリクエストがＣＰＵ０１により発行された場合、そのリードリクエストに基づきリードコマンドがＳＶＩＦ０１からターゲットＭＰ  Ａ１に対して送信され、ターゲットＭＰ  Ａ１により、そのリードコマンドに従うリード対象データ（以下、ＲＤデータ）がストレージメモリＡ１（又はＡ２）にＰＤＥＶ２から読み出される。そして、ＳＶＩＦ０１が、ＲＤデータを、ストレージメモリＡ１（又はＡ２）からサーバメモリ０１にＤＭＡ転送する。このように、ＷＲデータもＲＤデータもＤＭＡによりサーバ１１１とストレージ制御モジュール１１３間でメモリからメモリへ直接転送されるので、ＦＣのようなフレーム作成負荷を削減でき、Ｉ／Ｏレイテンシを削減することができる。また、ターゲットＭＰを指定して転送処理させるため、ＭＰ負荷分散によりＩ／Ｏレイテンシを削減し、かつ帯域を効率的に利用することになると共に、ターゲットのＭＰを有するＣＴＬと別のＣＴＬへＩ／Ｏリクエストを発行したために、一旦、ターゲットＭＰを有するＣＴＬへＩ／Ｏリクエストを転送するなどの処理がなくなる、更に、Ｉ／Ｏリクエストを直接ターゲットＭＰ用のメモリ領域に格納することで、Ｉ／Ｏリクエストを一旦バッファ用のメモリに受けて、改めてターゲットＭＰ用のメモリ領域に配置し直すなどのオーバヘッドを削減することができるため、Ｉ／Ｏの高速化が期待される。サーバ１１１及びストレージ１１２が直接結合された（ネットワークスイッチ無しに結合された）本システム構成においては、全てのサーバ１１１が全てのＭＰ１４１と接続されているが、サーバ１１１及びＭＰ１４１間のパスは複数ある。例えば、ＣＴＬ  ＢのＭＰ  Ｂ１にＩ／Ｏコマンドを発行する方法としては、サーバ１１１からＣＴＬ  ＡのＭＰ  Ａ１にＩ／Ｏコマンドを発行し、ＭＰ  Ａ１がＣＴＬ  ＡとＣＴＬ  Ｂの間のパスを使ってＭＰ  Ｂ１へＩ／Ｏコマンドを横振り（転送）し、ＭＰ  Ｂ１へＩ／Ｏコマンドを処理させる方法と、サーバ１１１からＣＴＬ  ＢのＭＰ  Ｂ１にＩ／Ｏコマンドを発行し、そのまま処理させる方法がある。また、スケールアウトした場合はさらに経由方法は複数通りになる。複数のポート（ＢＥＩＦ部）より、どのポートを使ってコマンドを発行するかによって、コマンドが経由するパスが変わり、目標のＭ��に到達するまでのレイテンシ、及び、使用するパスの帯域が増加する。さらに、ＭＰで上記のような横振りを実施するとＭＰ負荷が増加し、Ｉ／Ｏ低下の要因となる。構成は固定的であるために、レイテンシ低減のためには適切なＭＰに最初からコマンドを送出することが望ましい。このために、本システムでは、コマンド送出前にデータアクセスするストレージの記憶領域（ＶＯＬ）とＭＰの関係を把握し、ターゲットとすべきＭＰを特定してから適切なＢＥＩＦ部を介してコマンドをやりとりすることとする。【００３２】  図２は、ＳＶＩＦ１２３の構成を示す。【００３３】  ＳＶＩＦ１２３は、前述したようにＡＳＩＣであり、フロントエンドインタフェース部（以下、ＦＥＩＦ部）２０３と、内部プロセッサ２０２と、レジスタ部２０１と、ＢＥＩＦ部２０４と、それらに接続された内部スイッチ２０５とを有する。ＳＶＩＦ１２３が有する要素のうち、内部プロセッサ２０２及びＢＥＩＦ部２０４が、それぞれ２つ以上存在するが、それらの要素のうちの少なくとも一方が１つであってもよい。また内部プロセッサ２０２及びＢＥＩＦ部２０４以外の少なくとも１つの要素が複数存在してもよい。【００３４】  ＦＥＩＦ部２０３は、前段デバイスに接続される通信インタフェース部（例えばポート）であり、ＢＥＩＦ部２０４は、後段デバイスに接続される通信インタフェース部（例えばポート）である。具体的には、ＦＥＩＦ部２０３は、このＳＶＩＦ１２３を有するサーバ１１１内のＣＰＵ１２２に接続され、ＢＥＩＦ部２０４は、ＭＰ１４１（ストレージポート１４２）に接続される。レジスタ部２０１は、ＭＰ検索テーブルの一部又は全部を記憶する。レジスタ部２０１は、ＤＭＡ転送されるデータを記憶することもできる。内部スイッチ２０５は、ＳＶＩＦ１２３内の要素間の接続を切り替える。【００３５】  内部プロセッサ２０２は、ファームウェアのようなコンピュータプログラムを実行することにより、振分け部２１１、ＤＭＡ部２１２及び制御部２１３として機能する。振分け部２１１は、振分け処理を行う。振分け処理は、ＣＰＵ１２２により発行されたＩ／Ｏリクエストに基づきターゲットのＭＰ１４１を特定すること、特定したＭＰ１４１に対するＩ／Ｏコマンドを２つのＢＥＩＦ部２０４のうちのいずれから送信するかを決定することを含む。ＤＭＡ部２１２は、Ｉ／Ｏコマンドに従うＩ／Ｏ対象データをＤＭＡ転送する。制御部２１３は、障害系や初期化処理など、ＳＦＩＶ１２３全体の制御を行う。その他、内部プロセッサの処理をサポートする専用ハードウェアがあってもよい。また、図示していないが、Ｉ／Ｏコマンドやそのほか制御データを行うＤＭＡ部が別にあってもよい。更に、各内部プロセッサが共通で使うＤＭＡ部が別にあってもよい。なお、ＦＥＩＦ部やＢＥＩＦ部にＤＭＡ部があってもよいし、キューイングインタフェースとして動作する専用ハードウェアがあってもよいし、プロトコル変換を行うハードウェアがあってもよい。【００３６】  以上がＳＶＩＦ１２３の構成であるが、ＳＶＩＦ１２３の構成とＳＴＩＦ１４４の構成が同じでよい。すなわち、同じ構成の通信インタフェース回路（ＡＳＩＣ）が、各サーバ１１１とストレージ制御モジュール１１３���に搭載されてよい。また、ＳＶＩＦ１２３及びＳＴＩＦ１４４が各サーバ１１１とストレージ制御モジュール１１３とに複数搭載されてもよい。また、ＳＶＩＦ１２３が分離して、一部がサーバ、もう一部がストレージに置かれていてもよい。ただし、この場合も、振分け部など主要な機能はサーバ側とし、ＳＶＩＦ１２３のストレージ側ポートは２つ以上とし、複数ＣＴＬへ接続されているものとする。【００３７】  図３は、発行元ＩＤ及び発行先ＩＤの構成を示す。【００３８】  発行元ＩＤは、ＣＰＵ１２２により発行されたＩ／Ｏリクエストに含まれるＩＤであり、例えばサーバ識別子（Ｓ＿ＩＤ）と呼ばれてよい。以下、Ｉ／Ｏリクエストを発行したＣＰＵを「発行ＣＰＵ」と言い、発行ＣＰＵを有するサーバを「発行サーバ」と言い、発行サーバが有するサーバメモリを「発行サーバメモリ」と言い、発行サーバが有するＳＶＩＦを「発行ＳＶＩＦ」と言うことがある。発行元ＩＤは、例えば、シャーシ番号、ブレード番号及びサーバポート番号などを含む。シャーシ番号は、発行サーバを有するシャーシの番号である。ブレード番号は、発行サーバの番号である。サーバポート番号は、発行ＣＰＵにより実行されＩ／Ｏリクエストを発行したＶＭのポートの番号である。また、ＶＭを利用しないような環境においては、サーバポート番号はＳＶＩＦ１２３のＢＥＩＦ部２０４の番号でもよい。ＢＥＩＦ部２０４が複数ある場合には、それぞれにサーバポート番号を関連付けて、内部プロセッサ２０２が、サーバ１１１（ＣＰＵ１２２）には複数のＢＥＩＦ部２０４をそれぞれ複数ポートとして認識させる、又は、サーバ１１１（ＣＰＵ１２２）には１つのＢＥＩＦ部２０４を１ポートとして認識させて、他のＢＥＩＦ部２０４を冗長ポート（冗長パス）として、ＳＶＩＦ１２３が冗長化に利用してもよい。なお、内部プロセッサ２０２が、サーバ１１１に複数ポートを認識させた場合には、サーバ１１１（ＣＰＵ１２２）が、任意のポートを冗長ポートとして利用してもよいし、ＳＶＩＦ１２３に任意のポートを冗長ポートとして利用させてもよい。【００３９】  本実施例においては、ＣＴＬ  Ａのストレージメモリ１４３内に、ＭＰ  Ａ１用の領域とＭＰ  Ａ２用の領域を設ける。これらの領域はそれぞれＭＰ  Ａ１とＭＰ  Ａ２の処理待ちコマンドを格納する領域として利用される。【００４０】  発行先ＩＤは、例えば、シャーシ番号、クラスタ番号、プロセッサ番号及びストレージポート番号などＩ／Ｏコマンドのパスを特定できる番号を含む。シャーシ番号は、Ｉ／Ｏコマンドを処理するＭＰを有するシャーシの番号である。クラスタ番号は、上記シャーシ内のＩ／Ｏコマンドを処理するＭＰを有するクラスタの番号である。プロセッサ番号は、上記クラスタ内のストレージポートに対応したＭＰの番号であり、必ずしもＩ／Ｏコマンドを処理するＭＰ番号と一致しなくてもよい。ストレージポート番号は、プロセッサ番号に関連付けられているストレージポートの番号である。これにより、一体型構成のため、あらかじめ構成によりそれぞれの配置状況から番号（他種の識別情報でもよい）が一意に決められるため、スイッチなどを使って調停しなくとも唯一の発行先ＩＤを設定できる。また、発行先ＩＤ���ポート番号そのものでもよく、上記にならえば、構成により、ポート番号も一意に決定することができる。例えば、サーバ０１がＭＰ  Ａ２にＩ／Ｏリクエストを発行する場合は、パス上のＭＰのプロセッサ番号であるＭＰ  Ａ１の番号をプロセッサ番号として含んだ発行先ＩＤを有するＩ／Ｏコマンドを、そのパス上のＭＰ  Ａ１に対応したストレージメモリＡ１（又はＡ２）におけるターゲットＭＰ  Ａ２用のコマンド処理待ちメモリ領域（例えばキューイングメモリ）に格納する。これにより、ＭＰ  Ａ１に関連付けられたポートを経由して、ＭＰ  Ａ２にＩ／Ｏコマンドを処理させることができる。よって、必ずしも発行先ＩＤ内のプロセッサ番号はＩ／Ｏコマンドを処理するＭＰのプロセッサ番号と一致させずに、Ｉ／Ｏコマンドを処理するターゲットのキューで最終目的地がわかるようにしてもよい。この場合は、ＳＶＩＦ１２３とストレージ１１２の間のＩ／Ｆとなるキューは振分け対象のＭＰ数と同じとなる。なお、発行先ＩＤ中のプロセッサ番号は、直接Ｉ／Ｏコマンドを処理するＭＰのプロセッサ番号としてもよい。この場合は、ターゲットＭＰが異なる複数のＩ／Ｏコマンドが１つのキューに混在してよく、すなわち、キューがＭＰ数分なくてもよい。ＳＶＩＦ１２３は、後述する初期化処理で得た情報により発行先ＩＤを決定することが可能となる。【００４１】  図４は、ＭＰ検索テーブルの構成を示す。【００４２】  ＭＰ検索テーブル４０１は、１つのテーブル又は複数のテーブルで構成されてもよい。本実施例では、ＭＰ検索テーブル４０１は、複数のテーブル、例えば、第１サブテーブル４１１と第２サブテーブル４１２とを含む。【００４３】  第１サブテーブル４１１は、複数のレコードを有し、各レコードが、ソース情報（サーバ１１１及びそのサーバ１１１上のＶＭ（仮想サーバ）の識別番号）と当該ソース情報を記録するアドレス（第１アドレス）を記憶する。第２サブテーブル４１２は、複数のレコードを有し、各レコードが、アドレス（第２アドレス）と、デスティネーション情報（ストレージ１１２側の情報）を記憶する。【００４４】  ソース情報（例えばＶＭの識別番号）を記録する第１アドレスと、例えば、ＬＵＮとから、第２サブテーブル４１２の第２アドレスが作成され、その第２アドレスに対応したレコードにデスティネーション情報としてストレージ１１２側の情報が格納される。ストレージ１１２側の情報は、ＶＯＬ情報(例えば、ＶＯＬ番号、容量)と、対応するストレージポート１４２に関するポート情報（例えばストレージポート番号）と、対応するストレージポート１４２に接続されているＭＰ１４１に関する情報（例えばＭＰ番号（ＭＰのプロセッサ番号））とを含む。なお、ＭＰ検索テーブル４０１は、１つのテーブルで構成されていてもよい。また、ＭＰ検索テーブル４０１は、さらに他のテーブルを関連付けて持っていてもよい。例えば、第２サブテーブル４１２のＭＰ番号が仮想化され、別途、仮想ＭＰ番号（仮想化されたＭＰ番号）と実ＭＰ番号との対応関係を表すテーブル（第３サブテーブル）が用意され、実ＭＰが故障した際は、第３サブテーブルのみが更新され（例えば、故障した実ＭＰの実ＭＰ番号に対応した仮想ＭＰ番号に別の実ＭＰ番号が対応付けられ）、第２サブテーブル４１２は更新されないことで、テーブル検索負荷低減などが行われてもよい。また、ＭＰ検索テーブル４０１には、検索メモリのようなロジックメモリが利用されてもよいし、通常メモリと組み合わせた利用がされてもよい。【００４５】  ＭＰ１４１は、サーバ１１１のログイン処理時に、そのサーバ１１１を識別する識別子（識別情報）より、第１サブテーブル４１１を作成し、ＳＶＩＦ１２３に、作成した第１サブテーブル４１１を設定する。ストレージメモリ１４３の一部は共有メモリとして利用することができ、この共有メモリは全てのＭＰ１４１からアクセス可能である。ストレージ１１２のＭＰ１４１は、予め、そのストレージ１１２の共有メモリに、すべてのＶＯＬに関する制御情報を格納している。制御情報には、ストレージ１１２が提供している各ＶＯＬの情報と、そのＶＯＬのオーナ権を有するＭＰを特定する情報（例えばＭＰ番号）が含まれている。冗長性担保のために、複数のＭＰ１４１が１のＶＯＬへアクセス可能であるが、オーナ権は、通常において何れのＭＰ１４１が主体的にそのＶＯＬについての処理を担当するかを意味する。又、複数のＭＰ１４１間で負荷を分散させるために、提供される複数のＶＯＬについて、異なる複数のＭＰ１４１が主担当として関連づけられていることが望ましい。これにより、サーバ１１１からのＩ／Ｏリクエストについて必要とされる処理がＭＰ間で分散される。特に、複数のサーバ１１１で１のストレージ１１２を共有する本実施例構成においても、ＭＰ１４１間での負荷均衡化が図られるため、システム全体としての性能低下を防止することができる。ＭＰ１４１は、共有メモリ内の制御情報より、第１サブテーブル４１１のサーバ識別子より引かれる第１アドレスとＬＵＮとをアドレスとした第２アドレスを有する第２サブテーブル４１２を作成し、第２サブテーブル４１２をストレージメモリ１４３の所定の位置へ配置する。第２サブテーブル４１２には、第２アドレスに対応付けられるデスティネーション情報（ストレージ側の情報）として、サーバ識別子とＬＵＮに関連付いたＶＯＬ情報とそのＶＯＬ情報が表すＶＯＬに対するＩ／Ｏを処理するＭＰのＭＰ番号を格納する。各ＶＯＬについてストレージ側の認識している識別情報と、サーバ側に認識している識別情報（ＬＵＮ）とは必ずしも一致しない。例えば、異なる２つのＶＯＬが２つのサーバによってそれぞれ同じＬＵＮで管理されていることもありうる。よって、本実施例においては、サーバの識別情報とサーバからのＩ／Ｏリクエストで指定される宛先記録領域の識別情報（より具体的にはボリュームの識別情報であるＬＵＮ）とから一つのＶＯＬを特定して、当該ＶＯＬのオーナＭＰを特定することとする。【００４６】  ＭＰ検索テーブル４０１の更新は、ストレージ状況を把握できるＭＰ１４１によって行うことができる。ストレージ１１２に関する情報をＳＶＩＦ１２３がストレージ１１２から受けて、制御部２１３が、その情報を基に、ＭＰ検索テーブル４０１を作成又は更新してもよい。第１サブテーブル４１１は、参照時のレイテンシ軽減のためにＳＶＩＦ１２３のレジスタ部２０１に記憶され、サーバ１１１毎に異なっていてよい��第２サブテーブル４１２は、少なくとも１つのストレージメモリ１４３に記憶され、サーバ０１〜０８に共通であってもよい。第２サブテーブル４１２のサイズが大きいためである。なお、ＳＶＩＦ１２３が参照可能な範囲であれば、第１及び第２サブテーブル４１２及び４１２の両方又は片方がレジスタ部２０１に記憶されてもよいし、ストレージメモリ１４３に記憶されてもよいし、サーバメモリ１２１に記憶されてもよい。なお、複数の場所に同じ第１サブテーブル４１１と同じ第２サブテーブル４１２の両方又は片方があり、それぞれ同期していてもよい。本実施例においては、ストレージ１１２がサーバ１１１からのアクセス状況や負荷状況を参照した上で、ＭＰ１４１がＭＰ検索テーブル４０１を作成することが可能となる。よって、複数のサーバ１１１がストレージ１１２を共有するシステム構成において、Ｉ／Ｏコマンドの処理を複数のＭＰ１４１で負荷分散可能となる。【００４７】  ＭＰ検索テーブル４０１の更新タイミングとしては、例えば、データ伝送を始める前の初期化時や、ストレージ側の構成が変更される時が考えられる。具体的には、データの位置が変更されＩ／Ｏの分布が変更し得るデータマイグレーション時、上記した任意のボリュームに対するオーナー権の変更時（例えば後述のＭＰ振分けテーブルの更新時）、何れかのＭＰの負荷が所定値を超えた場合、何れかのＭＰ障害時に更新されてもよい。ＭＰ１４１がＭＰ振分けテーブル（ＶＯＬとそのＶＯＬのオーナ権を有するＭＰとの対応関係を表すテーブル）の更新は、何れかのＭＰの負荷が所定値を超えた場合、ボリューム構成が変更された場合含めて、任意のタイミングで行われてよい。上記構成により、ストレージの状況にあわせた適切な振り分けが可能となる。もし、ＭＰ検索テーブル４０１の更新の前にＩ／Ｏコマンドが発行されてしまった場合は、Ｉ／Ｏコマンドを送られたＭＰ１４１がそのＩ／Ｏコマンド中の発行先ＩＤ（又はそのＩ／Ｏコマンドが格納されたコマンド処理待ちメモリ領域（例えばキューイングメモリ）に関連付けられたＭＰの番号）に合わせて、自分で処理または担当のＭＰに処理を横振りする。なお、ＬＵＮが無いリクエストの場合は、そのリクエストの内容にしたがって、処理するＭＰ１４１が決定されてもよいし、あらかじめその場合の処理ＭＰが決められていてもよい。【００４８】  振分け部２１１（ＳＶＩＦ１２３）が、Ｉ／Ｏリクエスト中の発行元ＩＤをキーとし、そのキーに対応する第１アドレスを第１サブテーブル４１１から特定する。なお、サーバ１１１は仮想化されている場合があり、１つのサーバ１１１について複数の発行元のサーバ識別子を持つことがある。振分け部２１１（ＳＶＩＦ１２３）が、第１アドレスとＩ／Ｏリクエスト中のＬＵＮとの組合せをキーとし、そのキーに対応するデスティネーション情報を第２サブテーブル４１２から特定する。特定されたデスティネーション情報は、ＭＰ番号を含む。これにより、発行元ＩＤと発行先ＬＵＮとに対応するターゲットのＭＰ１４１が特定され、振分け部２１１は、特定されたＭＰ番号を含んだ発行先ＩＤを生成、又は、特定されたＭＰ番号に対応したコマンド処理待ちメモリ領域（例えばキューイングメモリ）を取得���ることができる。また、ＭＰ番号を取得することで、振分け部２１１は、どちらのＢＥＩＦ部２０４からＩ／Ｏコマンドを発行するかも決定する。例えば、ＢＥＩＦ部２０４が２個（２ポート）で、ＭＰが４個（ＭＰ  Ａ１、Ａ２、Ｂ１、Ｂ２）ある場合、ＭＰ  Ａ１（又はＡ２）は第１ポート（一方のＢＥＩＦ部２０４）、ＭＰ  Ｂ１（又はＢ２）なら第２ポート（他方のＢＥＩＦ部２０４）という対応付けをＳＶＩＦ１２３が予め保持しておくことで（例えば図１４の対応付けテーブル１４０１のような情報をＳＶＩＦ１２３のレジスタ部２０１が予め保持しておくことで）、振分け部２１１は、Ｉ／Ｏコマンドが経由するＢＥＩＦ部２０４を決定することができる。また、ポート番号とＭＰの関係は一体型構成のためあらかじめ決まることから、ポート番号のビットとＭＰの任意のビット位置を対応させることで（例えば図１４の参照符号１４０２で示す対応関係を振分け部２１１に設定しておくことで）、どちらのポートにどのＭＰが対応しているかを表現するようにし、対応付けテーブルを持たない構成としてもよい。なお、本システムはサーバ１１１とストレージ１１２が予め接続された構成をとるために、ＢＥＩＦ部２０４とそれに接続されるＭＰ１４１の構成は決まっており、そのために、ＢＥＩＦ部２０４とＭＰ１４１の対応付けは予め設定しておくことができる。また、ＭＰ１４１の障害等を想定して、ＭＰ１４１が、最適なＢＥＩＦ部２０４とＭＰ１４１との関連付けを表す情報を生成してＳＶＩＦ１２３の参照可能な位置（例えば、ストレージメモリ１４３、ＳＶＩＦ１２３内のレジスタ部２０１等）に格納してもよい。なお、ＭＰ検索テーブル４０１は、上記のようにＳＶＩＦ１２３とストレージ１１２に分けて配置してもよいし、ＳＶＩＦ１２３とサーバ１１１に分けて配置してもよいなど、サーバ１１１、ＳＶＩＦ１２３、ストレージ１１２の任意の組合せまたは任意の場所に設置してもよい。なお、各デスティネーション情報は、発行先ＩＤの要素であるシャーシ番号、クラスタ番号及びストレージポート番号を含んでいてよい。【００４９】  以下、本実施例で行われる処理の流れを説明する。なお、以下の説明では、ＳＶＩＦ０１を例に取るが、ＳＶＩＦ０２〜０８のいずれについても同様の処理が行われる。本実施例では、初期化処理が行われ、その初期化処理において、ＭＰ検索テーブル４０１が作成され、計算機システムがＩ／Ｏ開始可能な状態となる。その後、いずれのサーバ１１１も、Ｉ／Ｏリクエストを発行し、そのＩ／Ｏリクエストに従うＩ／Ｏ対象データを、Ｉ／Ｏ先ＶＯＬに格納することができる。Ｉ／Ｏ先ＶＯＬに格納されたＩ／Ｏ対象データは、実際には、１又は複数のＰＤＥＶに書き込まれる。本実施例では、説明を簡単にするために、１つのＶＯＬに格納されたＩ／Ｏ対象データが１つのＰＤＥＶに格納されるものとする。【００５０】  図５は、初期化処理の流れを示す。【００５１】  サーバ０１とＣＴＬ  Ａとの間で、物理層での通信が可能となるよう物理層での初期化が行われる（Ｓ５０１）。なお、この初期化は、通信における一般的な物理層初期化と同じなので、詳細を省略する。また、サーバ０１とＣＴＬ  Ｂとの間の処理については図示省略する。【００５２】  物理層初期化の完了後、ＳＶＩＦ０１に接続されているＭＰ  Ａ１が、ＳＶＩＦ０１に対するログイン処理を行う（Ｓ５０２）。また、ＣＰＵ０１（例えばＶＭ）も、ＳＶＩＦ０１に対するログイン処理を行う（Ｓ５０３）。このログイン処理において、ＣＰＵ０１は、指定し得る発行元ＩＤをＳＶＩＦ０１に送信する。サーバはＳＶＩＦ０１に対するログイン処理（Ｓ５０３）が完了した後、ストレージ１１２に対するログイン処理を行う（Ｓ５０４）。【００５３】  ＭＰ  Ａ１は、例えば一般的なＬＵ設定機構により、ユーザがＬＵを生成し、ストレージ、サーバの初期化処理により生成したＬＵとサーバの対応付けを行い、ストレージ１１２内の全てのＭＰ１４１が共有しているメモリで管理しているＶＯＬ制御情報とサーバ識別子が関連付けられた後に、その関連付けを基に前述したＭＰ検索テーブル４０１を作成し（Ｓ５０５）、そのＭＰ検索テーブル４０１のうちの少なくとも第１サブテーブル４１１をＳＶＩＦ０１のレジスタ部２０１に格納する。また、ＳＶＩＦ０１の制御部２１３は、前記したようにＭＰ１４１とＢＥＩＦ部２０４とを関連付けることができる。なお、ＭＰ１４１とＢＥＩＦ部２０４の関連付け情報を基に、制御部２１３は、パス管理テーブル（図１４）を生成しレジスタ部２０１に格納してもよい。パス管理テーブルは、ＢＥＩＦ部２０４とＭＰ番号との対応付けを表してよい。パス管理テーブルから、どのＭＰに対するＩ／ＯコマンドをどのＢＥＩＦ部２０４から送信すべきかが特定可能でもよい。また、上記したようにテーブルを持たずにポート番号とＭＰ番号が対応付けられてもよい。【００５４】  ＭＰ検索テーブル４０１作成の後、サーバ０１とＣＴＬ  Ａとの間で所定の処理が行われることで、計算機システムがＩ／Ｏ開始可能状態となる（Ｓ５０６）。【００５５】  図６は、ライト処理の流れの一例を示す。【００５６】  データ準備が行われる（Ｓ６０１）。具体的には、ＣＰＵ０１（ＶＭ）が、ライトリクエスト及びＷＲデータをサーバメモリ０１に格納する。ライトリクエストが、発行元ＩＤを含む。ＳＶＩＦ０１のＤＭＡ部２１２が、サーバメモリ０１からライトリクエストを取得する（Ｓ６０２）。そのライトリクエストは、一時的にレジスタ部２０１に格納されてよい。ライトリクエストには、発行元のサーバＩＤ、ライトデータの格納先を示す転送元アドレス、更にライトデータ格納先のＬＵＮが含まれている。この転送元アドレスの指定方法は限定せず、転送元アドレスが格納されたサーバ側のメモリアドレスのポインタでもよい。また、ライトデータの格納先が複数の領域に分散していてもよく、この場合、複数の領域（あて先）を指定できるようなリスト構造（例えば、転送元アドレスを複数持つリスト構造、転送元アドレスと次のアドレスが格納されたポインタを持つリスト構造、又は、転送元アドレス及び次の転送元アドレスへのポインタが格納されているアドレスを示すポインタを持つリスト構造、又は、転送元アドレスへのポインタ及び転送元アドレスへのポインタが格納されているアドレスを示すポインタを持つリスト構造）がライトリクエストに含まれていてもよい。ＳＶＩＦ０１は実際にデータ転送を実施するまでの任意のタイミン��でリスト構造よりデータの転送元アドレスを取得してもよい。【００５７】  ＳＶＩＦ０１の振分け部２１１が、振分け処理を行う（Ｓ６０３）。振分け処理では、振分け部２１１が、ライトリクエスト中の発行元ＩＤと、ライトリクエスト中のＬＵＮとを用いて、ＭＰ検索テーブル４０１からターゲットのＭＰ  Ａ１を特定し、ライトコマンドを２つのＢＥＩＦ部２０４のうちのいずれから送信するかを決定する。なお、ライトコマンドが、特定したＭＰ  Ａ１の番号を含んだ発行先ＩＤを有してもよいし、ＭＰ  Ａ１用のライトコマンド処理待ちメモリ領域（例えばキューイングメモリ）に格納されてもよい。そのライトコマンドは、レジスタ部２０１に格納されてよい。ＳＶＩＦ０１のＤＭＡ部２１２が、ライトコマンドを、決定されたＢＥＩＦ部２０４を介してＭＰ  Ａ１のストレージメモリＡ１（例えばＭＰ  Ａ１用のライトコマンド処理待ちメモリ領域（例えばキューイングメモリ））に転送（格納）し、ターゲットＭＰ  Ａ１が、ストレージメモリＡ１からライトコマンドを取得する（Ｓ６０４）。ライトコマンドは、ライト先情報（例えば、ＬＵＮ、ＶＯＬ番号及びＬＢＡ）を含む。ＭＰ  Ａ１が、格納先準備を行う（Ｓ６０５）。例えば、ＭＰ  Ａ１が、ライトコマンドから特定されるライト先と同じライト先のデータがストレージメモリＡ１にキャッシュされているか否かのキャッシュ判定を行い、その判定結果が真か偽かに応じて、ストレージメモリＡ１（及び、その冗長メモリＢ１）からキャッシュ領域を確保する。【００５８】  ＭＰ  Ａ１が、転送リクエストをストレージメモリＡ１に格納し、ＳＶＩＦ０１のＤＭＡ部２１２が、ストレージメモリＡ１から転送リクエストを取得する（Ｓ６０６）。その転送リクエストは、ＷＲデータの転送先アドレス又は転送先アドレスを特定するためのポインタ又はその両方を含む。また、ＷＲデータの転送先アドレスは、ストレージメモリＡ１における確保されたキャッシュ領域のアドレスである。なお、ＳＶＩＦ０１に冗長化先のストレージメモリＢ１のキャッシュ領域のアドレスを教えて、転送処理を肩代わりしてもらってもよい（つまり、ＳＶＩＦ０１が、ストレージメモリＢ１のキャッシュ領域にＷＲデータを格納してよい）。ＳＶＩＦ０１のＤＭＡ部２１２が、転送リクエスト中のコマンドＩＤから、ＳＶＩＦ０１がサーバから取得した転送元アドレスを特定し、転送元アドレスが表す領域（サーバメモリ０１の領域）から、転送元リクエスト中の転送先アドレスが表す領域（ストレージメモリＡ１の領域）へ、ＷＲデータを転送する（Ｓ６０７）。これにより、ＷＲデータが、ストレージメモリＡ１における確保されたキャッシュ領域に格納される。なお、ＳＶＩＦ０１のライトリクエスト処理に必要な転送元アドレス、転送先アドレスは複数個に分割されて送受信されてもよい。例えば、分割されたアドレス情報及び次のアドレス情報へのポインタを格納したメモリへのポインタを含ませたリスト構造（ＳＧＬ）としたり、分割されたアドレス情報と次のアドレス情報へのポインタをからなるリスト構造としたりすることができる。【００５９】  ＳＶＩＦ０１のＤＭＡ部２１２が、転送レスポンス（転送リクエストに対するレスポンス）をストレージメ��リＡ１に格納し、ＭＰ  Ａ１が、転送レスポンスをストレージメモリＡ１から取得する（Ｓ６０８）。ＭＰ  Ａ１が、ストレージメモリＡ１におけるＷＲデータを、冗長メモリＡ１における確保されたキャッシュ領域にコピーする（Ｓ６０９）。なお、ＳＶＩＦ０１がストレージメモリＡ１と冗長メモリＡ１の両方にデータをライトしてもよい。この場合は、転送レスポンス（Ｓ６０８）はデータ冗長化（Ｓ６０９）の後になる。ＭＰ  Ａ１が、コマンドレスポンス（ライトコマンドに対するレスポンス）をストレージメモリＡ１に格納し、ＳＶＩＦ０１のＤＭＡ部２１２が、そのコマンドレスポンスをストレージメモリＡ１から取得する（Ｓ６１０）。ＳＶＩＦ０１のＤＭＡ部２１２が、リクエストレスポンス（ライトリクエストに対するレスポンス）をサーバメモリ０１に転送（格納）し、ＣＰＵ０１が、リクエストレスポンスをサーバメモリ０１から取得する（Ｓ６１１）。また、ＳＶＩＦ０１は、コマンドレスポンス処理が完了したことをＭＰ  Ａ１に通知する（Ｓ６１２）。【００６０】  なお、ストレージ用のデータ保障コードとして利用される、ＤＩＦ（Data  Integrity  Feature）などの計算、付与、チェック、及び削除をＳＶＩＦ１２３が実施されてもよく、この場合、内部プロセッサ２０２で実施されてよい。ライト時のＤＩＦ計算及び付与は、例えばＳ６０７でサーバメモリ０１からＳＶＩＶ０１がデータを読んだときに実施されてもよい。【００６１】  図７は、リード処理の流れの一例を示す。【００６２】  格納先準備が行われる（Ｓ７０１）。具体的には、ＣＰＵ０１（ＶＭ）が、リードリクエストをサーバメモリ０１に格納する。リードリクエストが、発行元ＩＤを含む。ＳＶＩＦ０１のＤＭＡ部２１２が、サーバメモリ０１からリードリクエストを取得する（Ｓ７０２）。そのリードリクエストは、一時的にレジスタ部２０１に格納されてよい。リードリクエストには、リードしたデータを格納する転送先アドレスが含まれていてもよい。この転送先アドレスの形式は、ライトデータの送付にならった形式としてもよい。ＳＶＩＦ０１は、実際にデータ転送を実施するまでの任意のタイミングで、リスト構造よりデータの転送先アドレスを取得してもよい。【００６３】  ＳＶＩＦ０１の振分け部２１１が、振分け処理を行う（Ｓ７０３）。振分け処理では、振分け部２１１が、リードリクエスト中の発行元ＩＤと、リードリクエスト中のＬＵＮとを用いて、ＭＰ検索テーブル４０１からターゲットのＭＰ  Ａ１を特定し、リードコマンドを２つのＢＥＩＦ部２０４のうちのいずれから送信するかを決定する。また、ＭＰ  Ａ１又はＭＰ  Ａ２のそれぞれの担当メモリのうち、どちらに格納するかも決定する。なお、リードコマンドが、特定したＭＰ  Ａ１の番号を含んだ発行先ＩＤを有してもよいし、ＭＰ  Ａ１用のリードコマンド処理待ちメモリ領域（例えばキューイングメモリ）に格納されてもよい。そのリードコマンドは、レジスタ部２０１に格納されてよい。ＳＶＩＦ０１のＤＭＡ部２１２が、リードコマンドを、決定されたＢＥＩＦ部２０４を介してＭＰ  Ａ１のストレージメモリＡ１（（例えばＭＰ  Ａ１用のリードコマンド処理待ちメモリ領域（例えばキューイングメモリ）））に転送（格納）し��ターゲットＭＰ  Ａ１が、ストレージメモリＡ１からリードコマンドを取得する（Ｓ７０４）。リードコマンドは、リード元の情報（例えば、ＬＵＮ、ＶＯＬ番号及びＬＢＡ）を含む。ＭＰ  Ａ１が、データ準備を行う（Ｓ７０５）。例えば、ＭＰ  Ａ１が、リードコマンドから特定されるリード元のＲＤデータがストレージメモリＡ１にキャッシュされているか否かのキャッシュ判定を行い、その判定結果が真か偽かに応じて、ストレージメモリＡ１（及び、その冗長メモリＡ１）からキャッシュ領域を確保する。その判定結果が偽の場合、ＭＰ  Ａ１が、キャッシュ領域をストレージメモリＡ１に確保し、ＲＤデータを、リード元の基になっているＰＤＥＶ１３２から読み出し、読み出したＲＤデータを、確保したキャッシュ領域に格納する。【００６４】  ＭＰ  Ａ１が、転送リクエストをストレージメモリＡ１に格納し、ＳＶＩＦ０１のＤＭＡ部２１２が、ストレージメモリＡ１から転送リクエストを取得する（Ｓ７０６）。その転送リクエストは、ＲＤデータの転送元アドレス又は転送元アドレスを特定するためのポインタ又はその両方を含む。ＲＤデータの転送元アドレスは、ストレージメモリＡ１における確保されたキャッシュ領域のアドレスである。ＳＶＩＦ０１のＤＭＡ部２１２が、転送リクエスト中のコマンドＩＤから、ＳＶＩＦ０１がサーバから取得した転送先アドレスを特定し、転送元アドレスが表す領域（ストレージメモリＡ１の領域）から、転送先アドレスが表す領域（サーバメモリ０１の領域）へ、ＲＤデータをＤＭＡ転送する（Ｓ７０７）。これにより、ＲＤデータが、サーバメモリ０１における確保された領域に格納される。ＳＶＩＦ０１のＤＭＡ部２１２が、転送レスポンスをストレージメモリＡ１に格納し、ＭＰ  Ａ１が、転送レスポンスをストレージメモリＡ１から取得する（Ｓ７０８）。ＭＰ  Ａ１が、コマンドレスポンス（リードコマンドに対するレスポンス）をストレージメモリＡ１に格納し、ＳＶＩＦ０１のＤＭＡ部２１２が、そのコマンドレスポンスをストレージメモリＡ１から取得する（Ｓ７０９）。ＳＶＩＦ０１のＤＭＡ部２１２が、リクエストレスポンス（リードリクエストに対するレスポンス）をサーバメモリ０１に格納し、ＣＰＵ０１が、リクエストレスポンスをサーバメモリ０１から取得する（Ｓ７１０）。なお、ＳＶＩＦ０１のリードリクエスト処理に必要な転送元アドレス、転送先アドレスは複数個に分割されて送受信されてもよい。例えば、分割されたアドレス情報及び次のアドレス情報へのポインタを格納したメモリへのポインタを含ませたリスト構造（ＳＧＬ）としたり、分割されたアドレス情報と次のアドレス情報へのポインタをからなるリスト構造としたりすることができる。また、ＳＶＩＦ０１は、コマンドレスポンス処理が完了したことをＭＰ  Ａ１に通知する（Ｓ７１１）。【００６５】  また、ストレージ用のデータ保障コードとして利用される、ＤＩＦ（Data  Integrity  Feature）などの計算、付与、チェック、及び削除が、ＳＶＩＦ１２３で実施されてもよく、この場合、内部プロセッサ２０２で実施されてよい。リード時のＤＩＦチェック及び削除は、例えばＳ７０７でストレージメモリＡ１からＳＶＩＶ０１がデータを読んだときに実施されてもよい。【００６６】  なお、本実施例では、オートレスポンスが採用されてよい。オートレスポンスとは、転送リクエストがリクエストであるが疑似的なレスポンスでもあることである。オートレスポンスが採用されている場合、前述した転送リクエストに代えて特殊転送リクエストが発行される。特殊転送リクエストは、オートレスポンスを意味する値が関連付けられた転送リクエストである。また、特殊転送リクエストは、コマンドレスポンスを生成するための情報も含む。具体的には、ＭＰ  Ａ１が発行した特殊転送リクエストはＳＶＩＦ  ０１により取得されるが、ＳＶＩＦ０１は、転送リクエストが特殊転送リクエストであることを認識した場合、ＲＤデータのＤＭＡ転送が完了したら、リクエストレスポンスをサーバメモリ０１に格納する。つまり、Ｓ７０６の転送リクエストが特殊転送リクエストの場合、Ｓ７０７の後、Ｓ７０９が行われること無く、Ｓ７１０が行われる。なお、転送レスポンス（Ｓ７０８）は、転送が正常に完了したことを伝えるためにコマンドレスポンス（Ｓ７０９）の前又は後に実施されてもよいし、ＳＶＩＦ０１の転送が完了したことを示すカウンタなどを設けて、必要に応じてＭＰ  Ａ１がそのカウンタなどを参照してもよい。これにより、オートレスポンスが無効の場合に比べてリード処理を高速に行うことができる。また、ＷＲデータのＤＭＡ転送時も同様に、データ冗長化（Ｓ６０９）をＳＶＩＦ０１が実施した後、コマンドレスポンス（Ｓ６１０）を実施しないで、リクエストレスポンス（Ｓ６１１）を発行してもよい。このとき、転送レスポンス（Ｓ６０８）は、リクエストレスポンス(Ｓ６１１)の前又は後に実施されてもよいし、ＳＶＩＦ０１の転送が完了したことを示すカウンタなどを設けて、必要に応じてＭＰ  Ａ１がそのカウンタなどを参照してもよい。なお、オートレスポンスを実施し、ＳＶＩＦ０１が、ＣＰＵ０１のコマンドレスポンスの後に、ＭＰ  Ａ１にリクエストレスポンスを返す場合は、完了通知はリクエストレスポンスに含んでもよい。【００６７】  リード処理およびライト処理において、オートレスポンスを採用するか否かが、ＭＰにより判定されてよい。【００６８】  以上、実施例１によれば、ＳＶＩＦ１２３が、ターゲットのＭＰ１４１を特定し、ターゲットのＭＰ１４１を指定したＩ／Ｏコマンドを送信する。本システムはサーバとストレージとを広帯域なバス接続した一体型システムである。よってＳＶＩＦ１２３がコマンド送出時にＭＰ１４１側を特定する情報を参照することが可能であり、特定したＭＰへのコマンド送出が可能となる。これにより、複数のサーバ１１１とストレージ１１２間をネットワークスイッチ無しに接続することができる。なお、各ＳＶＩＦ１２３には、ＣＴＬ  ＡのＭＰに接続されるパス（物理パス）と、ＣＴＬ  ＢのＭＰに接続されるパス（物理パス）とがあるが、各ＳＶＩＦ１２３は、一方のパスに障害が生じた場合、Ｉ／Ｏコマンドを他方のパスから送信する。その場合、ＭＰ（例えばＭＰ  Ｂ１）が、そのＩ／ＯコマンドのターゲットＭＰ（例えばＭＰ  Ａ１）でなくても、そのターゲットＭＰの冗長ＭＰであるので、そのＩ／Ｏコマンドを処理することができる。これに合わせて、ＭＰ検索テーブル４０１���おける振分け先ＭＰが書き換えられてもよい。前術したように第２サブテーブル４１２のＭＰ番号が仮想化され前述した第３サブテーブルが用意されていれば、第３サブテーブルの実ＭＰ番号のみ書き換えることで、例えば第２サブテーブルは更新しなくてもよく、テーブル更新負荷を低減できる。また、ＭＰ検索テーブル４０１の全部又は一部（例えば第２サブテーブル４１２）をストレージメモリＡ１とストレージメモリＢ１の両方に互いに同期して格納することで、ＣＴＬ  Ａの閉塞時は、ＭＰ検索テーブル４０１の参照先を、閉塞前の参照先であるストレージメモリＡ１からストレージメモリ  Ｂ１に切り替えることで、ＳＶＩＦ０１はストレージメモリ  Ｂ１のＭＰ検索テーブル４０１（例えば第２サブテーブル４１２）より情報を取得し、適切なＭＰ振分け処理を継続することができる。【００６９】  また、実施例１によれば、転送されるＩ／Ｏコマンドが、ターゲットＭＰのプロセッサ番号を含んでいてもよいし、複数のＭＰ（ＭＰ番号）にそれぞれ関連付けられている複数のコマンド処理待ちメモリ領域のうちのターゲットＭＰに関連付けられているコマンド処理待ちメモリ領域（例えばキューイングメモリ）に格納されてもよい。後者の場合、Ｉ／Ｏコマンドが、宛先のポート（ストレージポート）に接続されているＭＰの番号を含んでいるものの、ターゲットＭＰのプロセッサ番号を含んでいてもいなくてもよい。また、複数のＭＰ（ＭＰ番号）にそれぞれ関連付けられている複数のコマンド処理待ちメモリ領域は、転送先のメモリ（例えばストレージメモリＡ１又はＡ２）に設けられていて、転送元のＩ／Ｆ（例えばＳＶＩＦ０１の振分け部２１１）によって、複数のコマンド処理待ちメモリ領域のうちのターゲットＭＰに関連付けられているコマンド処理待ちメモリ領域に格納される。このため、転送元のＩ／Ｆは、ＭＰのプロセッサ番号とコマンド処理待ちメモリ領域のアドレス（転送先メモリにおけるアドレス）との対応関係を表す情報（例えばアドレスマップ）を記憶していてよく、その情報を基に転送先のコマンド処理待ちメモリ領域が特定されてよい。また、ＭＰ毎のコマンド処理待ちメモリ領域は、ライトコマンド処理待ちメモリ領域とリードコマンド処理待ちメモリ領域等のようにコマンド種類毎のコマンド処理待ちメモリ領域を含んでいてもよいし、複数のコマンド種類に共通の領域であってもよい。
【実施例２】
【００７０】  以下、実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。【００７１】  実施例２では、ストレージ１１２（ストレージ制御モジュール１１３）がスケールアウトされる。具体的には、直列に（多段に）Ｋ個のストレージ制御モジュール１１３を接続し、且つ、Ｎ台のサーバ１１１（Ｎは２以上の整数、例えばＮ＝８））に、Ｋ個のストレージ制御モジュール１１３の１番目のストレージ制御モジュール１１３を接続することができる。例えば、Ｐ個のシャーシ１０１を有し（Ｐは２以上の整数）、各シャーシ１０１が、少なくとも１つのストレージ制御モジュールを有していてよい。ＳＴＩＦ１４４同士を接続することでＰ個のシャーシ１０１内のＫ個のストレージ制御モジュール１１３を直列（多段）に接続することが可能である。【００７２】  実施例１ではＫ＝１（及びＰ＝１）であるが、Ｋは２以上の整数でよく、実施例２ではＫ＝２である。以下、実施例２を詳細に説明する。なお、以下の説明では、「ｎ番目のストレージ制御モジュール」という表現を使用することがあるが、ｎの値は、先頭のストレージ制御モジュールが最も小さく（ｎ＝１）、末尾のストレージ制御モジュールが最も大きい（ｎ＝Ｋ＝２）。【００７３】  図８は、実施例２に係る計算機システムの構成を示す。なお、図８では、ストレージポートの図示は省略されている。また、シャーシの参照符号以外の参照符号も図示が省略されている。【００７４】  ストレージ制御モジュールを含んだ計算機サブシステムのスケールアウトにより計算機システムが構築されている。１つの計算機サブシステムは、１つのシャーシ１０１内の複数の要素で構成されている。本実施例では、実施例１で説明した構成のシャーシ（計算機サブシステム）が２個用意され、２個のシャーシ（以下、第１及び第２シャーシ）１０１Ａ及び１０１ＢにおけるＳＴＩＦ同士が接続される。図８では、第１シャーシ１０１Ａ内の各要素の通し番号は、実施例１と同じであり、第２シャーシ１０１Ｂ内の各要素の通し番号は、第１シャーシ内の要素の通し番号と重複しない番号である。第２シャーシ１０１Ｂでも、ストレージ制御モジュール（二重化されたＣＴＬ  Ｃ、Ｄ）に、８台のサーバ１１〜１８が接続されている。第１シャーシ１０１Ａ内のＳＴＩＦ  Ａ１、Ａ２、Ｂ１及びＢ２が、第２シャーシ１０１Ｂ内のＳＴＩＦ  Ｃ１、Ｃ２、Ｄ１及びＤ２にそれぞれ接続されている。ＳＴＩＦ１４４の構成はＳＶＩＦ１２３の構成と同じであり、故に、ＳＴＩＦ１４４の２つのＢＥＩＦ部２０４には、別のＳＴＩＦ１４４の２つのＢＥＩＦ部２０４がそれぞれ接続されている。なお、１つのＳＴＩＦ１４４の２つのＢＥＩＦ部２０４に、異なる２つのストレージ制御モジュールのＳＴＩＦ１４４が接続されてもよい。以下の説明では、ｎ番目のストレージ制御モジュールにとっての（ｎ＋１）番目のストレージ制御モジュール（又は、サーバ１１１にとっての１番目のストレージ制御モジュール）を、「後段モジュール」と言うことがある。また、ｎ番目のストレージ制御モジュールにとっての（ｎ−１）番目のストレージ制御モジュール（又は、１番目のストレージ制御モジュールに��ってのサーバ１１１）を、「前段モジュール」と言うことがある。サーバ０１〜０８にとっての１番目のストレージ制御モジュールは、ＣＴＬ  Ａ、Ｂを有するストレージ制御モジュールであり、サーバ１１〜１８にとっての１番目のストレージ制御モジュールは、ＣＴＬ  Ｃ、Ｄを有するストレージ制御モジュールである。【００７５】  ＳＴＩＦの接続は図示しているＣＴＬ  ＡとＣＴＬ  Ｃ、ＣＴＬ  ＢとＣＴＬ  Ｄの接続以外にも、ＣＴＬ  ＡとＣＴＬ  Ｄ、ＣＴＬ  ＢとＣＴＬ  Ｃと接続されてもよい。また、接続するポート数は任意の数でもよい。【００７６】  後段モジュールのＭＰ１４１は、前段モジュールを介してＳＶＩＦ１２３に対し、ログイン処理を実施する。例えば、ＭＰ  Ｃ１が、ＭＰ検索テーブル４０１を作成し、作成したＭＰ検索テーブル４０１の全部又は一部（例えば第２サブテーブル４１２）をストレージメモリＡ１に対し、ＳＴＩＦ  Ｃ１及びＳＴＩＦ  Ａ１を介して送信してよいし、作成したＭＰ検索テーブル４０１の全部又は一部（例えば第１サブテーブル４１１）をＳＶＩＦ０１に対し、ＳＴＩＦ  Ｃ１、ＳＴＩＦ  Ａ１、及び、ＭＰ  Ａ１が接続されているストレージポートを介して、送信してもよい。そのＭＰ検索テーブル４０１（第２サブテーブル４１２）中のデスティネーション情報は、ＭＰ  Ｃ１が担当するＶＯＬに関する情報を含んでよい。ＭＰ  Ｃ１が、ＭＰ検索テーブル４０１を、前段モジュールのＭＰ  Ａ１同様に作成することができる。つまり、２番目のストレージ制御モジュールにおけるＭＰ  Ｃ１が、そのＭＰ  Ｃ１が担当するＶＯＬに関する情報を、１番目のストレージ制御モジュールを介してサーバ０１に提供することができる。すなわち、ＳＶＩＦ０１及びストレージメモリＡ１の少なくとも一方には、前段ＭＰ検索テーブル４０１と後段ＭＰ検索用のＭＰ検索テーブル４０１が格納される。それらのＭＰ検索テーブル４０１がマージされたＭＰ検索テーブル４０１が生成されてもよい。ＳＶＩＦ０１は、ＭＰ  Ｃ１に特定されるＶＯＬがＩ／Ｏ先となるＩ／ＯコマンドについてはターゲットＭＰがＭＰ  Ｃ１となるように振り分けることになる。また、ＳＶＩＦ０１が、ストレージ１１２から情報をもらってＭＰ検索テーブル４０１を作成又は更新してもよいし、ＳＴＩＦ  Ｃ１が、ストレージ１１２から情報をもらってＭＰ検索テーブル４０１を作成又は更新してもよい。前段と後段のストレージメモリの複数の場所に同じＭＰ検索テーブル４０１があり、それぞれ同期していてもよい。【００７７】  互いに接続されているＳＴＩＦ１４４同士において、一方のＳＴＩＦ（イニシエータとなるＳＴＩＦ）１４４からＩ／Ｏコマンド又はＩ／Ｏ対象データを受信する他方のＳＴＩＦ１４４は、そのコマンド又はデータをブリッジするだけでよい。例えば、ＳＴＩＦ  Ａ１とＳＴＩＦ  Ｃ１同士において、ＳＴＩＦ  Ａがイニシエータの場合、ＭＰ  Ｃ１が、Ｉ／ＯコマンドをＳＴＩＦ  Ａ１から受けそのＩ／Ｏコマンドをブリッジする。ブリッジされたＩ／Ｏコマンドは、ストレージメモリＣ１に転送され格納される。【００７８】  図９は、実施例２に係るストレージメモリ１４３の構成を示す。ここでは、ストレージメモリＡ１を例に取る。【００７９】  ストレージメモリＡ１が、コマンド用領域９０２と、レスポンス用領域９０３と、残り領域９０１とを有する。コマンド用領域９０２に、Ｉ／Ｏコマンドが格納され、レスポンス用領域９０３に、コマンドレスポンスが格納される。なお、転送リクエスト、転送レスポンスについても同様にコマンド用領域に転送リクエスト、レスポンス用領域に転送レスポンスが格納されてもよい。また、キューイングメモリ領域をＩ／Ｏコマンドと転送で共用し、例えば、コマンド用領域にＩ／Ｏコマンドと転送レスポンス、レスポンス用領域にＩ／Ｏレスポンス、転送リクエストが格納され、ストレージへのインバウンドかアウトバウンドかによって、キューイングメモリ領域が分けられてもよい。また、残り領域９０１に、転送リクエスト、転送レスポンス等の他のコマンドが格納されてもよく、更に残り領域に制御系のリクエスト、レスポンスが格納されてもよい。また、残り領域９０１から、キャッシュ領域が確保されてよい。更に、残り領域に制御系の情報やテーブル情報を格納していてもよい。【００８０】  コマンド用領域９０２が、非転送用領域９１３と転送用領域９１２とを有し、同様に、レスポンス用領域９０３、非転送用領域９１５と転送用領域９１４とを有する。非転送用領域９１３に、ＭＰ  Ａ１がターゲットＭＰであるＩ／Ｏコマンドが格納され、非転送用領域９１５に、ＭＰ  Ａ１からのＩ／Ｏレスポンスが格納される。転送用領域９１２に、ＭＰ  Ａ１がターゲットＭＰではないＩ／Ｏコマンド（後段モジュールへの転送を必要とするＩ／Ｏコマンド）が格納され、転送用領域９１４に、ＭＰ  Ａ１がターゲットＭＰでない上記Ｉ／Ｏコマンドのリクエストが格納される。ＭＰ  Ａ１は、非転送用領域９１３に格納されているＩ／Ｏコマンドを処理する。ＭＰ  Ａ１は、転送用領域９１２に格納されているＩ／Ｏコマンドを後段モジュールに転送するようＳＴＩＦ  Ａ１のＤＭＡ部２１２に指示してよい。或いは、転送用領域９１２内のＩ／Ｏコマンドは、後段モジュールのＳＴＩＦ１４４からのポーリングにより取得されてもよい。更に、ＭＰ  Ａ１は、レスポンスに関しても、ＳＶＩＦ０１のＤＭＡ部に転送するように指示してもよいし、ＳＶＩＦからのポーリングにより取得されてもよい。このように、Ｉ／Ｏコマンド、レスポンスを受けたＭＰ１４１ではなく、Ｉ／Ｏコマンド、レスポンスを送信、受信するＩ／Ｆ（ＳＶＩＦ１２３又はＳＴＩＦ１４４）がＩ／Ｏコマンドの転送の要否を判定する。これにより、後段モジュールの転送処理負荷、又は後段モジュールからの転送処理を軽減することができる。ＳＶＩＦ１２３は、どちらのＣＴＬ１３１経由で後段のターゲットＭＰに対してＩ／Ｏコマンドを発行するかは、どのＭＰに振り分けるかの上記ＭＰ検索テーブル４０１を参照することで決定する。ＭＰ  Ａ１（又はＭＰ  Ａ２とし、どちらかがＭＰを代表して処理を実施してもよいし、それぞれが行ってもよい）は、後段ストレージ（ストレージ制御モジュール）の増設時のキュー初期化を行い、キュー初期化において、ＭＰ  Ｃ１とＭＰ  Ｃ２があることを認識し、ストレージメモリＡ１（又はＡ２）に、ＳＶＩＦ０１からのＩ／ＯコマンドでありＭＰ  Ｃ１へ転送されるＩ／Ｏコマンドが格納される転送キュー（��えばＭＰ  Ｃ１に関連付けられたコマンド処理待ちメモリ領域）を作成する。そして、ＳＶＩＦ０１がＭＰ  Ｃ１へアクセスするときはＭＰ  Ａ１が処理する転送キューへ対応付けるための設定がＳＶＩＦ０１に対して行われる。これにより、ＳＶＩＦ０１がＭＰ  Ｃ１用の転送キューを認識する。同様に、例えば、ＭＰ  Ｄ１へのアクセスはＭＰ  Ｂ１の転送キューと対応付ける設定がＳＶＩＦ０１に対して行われる。なお設定は、ＭＰ  Ａ１が代表して実施してもよいし、ＭＰ  Ｂ１が実施してもよいし、それぞれが実施してもよい。これにより、どちらのポートから出せばよいかが決まる。キューが認識されたところで、ＭＰ  Ｃ１からＳＶＩＦ０１へのログイン処理が実施され、ＭＰ  Ｃ１とＳＶＩＦ０１間でポート番号などを交換しあう。また、ＭＰ  Ｃ１は、ＭＰ検索テーブル４０１を作成し、ＳＶＩＦ０１がＭＰ  Ｃ１のＭＰ検索テーブル４０１を参照できるように、ＭＰ  Ａ１のＭＰ検索テーブル４０１が記憶されているメモリにおける領域として、ＭＰ  Ｃ１のＭＰ検索テーブル４０１の領域を、ＭＰ  Ａ１により確保してもらい、確保されたメモリ領域に、ＭＰ  Ｃ１のＭＰ検索テーブル４０１をセットする。ＭＰ  Ｃ１がセットしたＭＰ検索テーブル４０１には、サーバ０１から後段ストレージのどのＶＯＬへのアクセスはどのＭＰ（Ｃ１又はＣ２、登録は片方のＭＰ  Ｃ１、Ｃ２のどちらかが代表して行ってもよいし、それぞれが行ってもよい）が担当するかが設定されている。なお、ＭＰ  Ｄ１及びＤ２についてのＭＰ検索テーブル４０１はＭＰ  Ｂ１（又はＢ２）が設定してもよいし、代表してＭＰ  Ｃ１（又はＣ２）が設定してもよい。ＭＰ  Ｂ１（又はＢ２）が設定したときは、ＭＰ  Ｂ１（又はＢ２）が他のＭＰ検索テーブル４０１を記憶しているメモリと同じメモリにコピーしてもよい。複数の場所に同じＭＰ検索テーブル４０１があってよく、例えば、ＣＴＬ  ＡとＣＴＬ  Ｂに同じＭＰ検索テーブル４０１があってよく、それぞれは同期しており、片方を設定（又は更新）した後に、もう片方へ設定（又は更新）のためのコピーが行われてもよい。上記例であれば、ＭＰ  Ｃ１（又はＣ２）のＭＰ検索テーブルがＣＴＬ  Ａのストレージメモリに設定され、ＭＰ  Ｄ１（又はＤ２）のＭＰ検索テーブルがＣＴＬ  Ｂのストレージメモリに設定され、お互いにコピーしあって、最終的に、ＣＴＬ  ＡのストレージメモリとＣＴＬ  Ｂのストレージメモリに同じ全てのＭＰ検索テーブルが登録されてよい。もしくは、ＭＰ  Ｃ１（又はＣ２）とＭＰ  Ｄ１（又はＤ２）のＭＰ検索テーブルがＣＴＬ  Ａのストレージメモリに設定され、そのＭＰ検索テーブルがＣＴＬ  Ｂへコピーされてもよい。これらの処理において、ＭＰ検索テーブル４０１の設定及びコピーは、コピー元のＣＴＬ及びコピー先のＣＴＬのうちの少なくとも１つにおける１又は複数のＭＰにより行われてよい。なお、転送処理はそれぞれの転送キューを担当するＭＰが実施してよい。これにより、ＳＶＩＦ０１が上気した後段のストレージのＶＯＬにアクセスするときは、上記発行先ＩＤ中のプロセッサ番号に対応するＭＰ経由でＭＰ  Ｃ１のキューにＩ／Ｏコマンドがセットされる。なお、転送用領域にＭＰ  Ｃ１のキューが設定されてもよい。これにより、ＳＶＩＦが振分けによりＩ／Ｏコマンドの処理ＭＰを一意に指定でき、長いパスを通ることによるレイテンシの増加や、無駄なパスを占有することによる利用帯域の増加、及び、無駄なＭＰ横振りによるＭＰ負荷を低減できる。なお、ＣＴＬ  ＡのＳＴＩＦ  Ａ１（又はＡ２）とＣＴＬ  ＢのＳＴＩＦ  Ｂ１（又はＢ２）が接続されていてもよく、上記振分け処理をＳＴＩＦ  Ａ１、Ａ２、Ｂ１及びＢ２のうちの少なくとも１つが実施してもよい。この場合、前段の振分けでＤ１（又は、Ｄ２）への振分けはＡ１（又は、Ｂ１）の転送領域にセットする。【００８１】  ストレージ制御モジュールが直列（多段）の構成では、ＤＭＡの連携により、Ｉ／Ｏコマンド及びＩ／Ｏ対象データが転送される。このため、サーバ、前段ストレージ、後段ストレージをそれぞれＰＣＩｅ直結することで、前段ストレージ制御モジュール同様に、ＭＰは低負荷で、かつ、プロトコル処理のオーバヘッド少なく低レイテンシでデータ転送できる。また、広帯域を維持しつつ、ストレージ及びサーバのリソースを増設できる。よって、サーバ及びストレージのスケールアウト時も低レイテンシ、広帯域なＩ／Ｏの高速化が期待される。【００８２】  図１０は、実施例２に係るライト処理の流れを示す。【００８３】  図６のＳ６０１〜Ｓ６０４及びＳ６０６〜Ｓ６０８と同様の処理が行われることで、ライトコマンド及びＷＲデータがストレージメモリＡ１に格納される。なお、本実施例に係る振分け処理では、ＳＶＩＦ０１の振分け部２１１が、ターゲットＭＰの番号を含んだ発行先ＩＤ中のシャーシ番号から（図３参照）、ターゲットＭＰが１番目のストレージ制御モジュールに存在するか否かを判定する。その判定結果が真の場合、振分け部２１１が、ライトコマンドの格納先をストレージメモリＡ１における非転送用領域９１３に決定する。その判定結果が偽の場合、振分け部２１１が、ライトコマンドの格納先をストレージメモリＡ１における転送用領域９１２に決定する。ＳＶＩＦ０１のＤＭＡ部２１２は、その決定に従いライトコマンドを格納する。なお、各ＳＶＩＦ（及び各ＳＴＩＦ）のレジスタ部２０１には、後段モジュールのシャーシ番号が記憶されていて、ＳＶＩＦ０１は、発行先ＩＤ中のシャーシ番号がＳＶＩＦ０１のレジスタ部２０１に記憶されているか否かを基に、ターゲットＭＰが後段モジュールにあるか否かを判定することができる。また、各ＳＴＩＦ（及び各ＳＶＩＦのレジスタ部２０１が後段モジュールのシャーシ番号を記憶しないで、各ＳＴＩＦ（及び各ＳＶＩＦの振分け部２１１が、自シャーシの番号でなく、記憶していないシャーシ番号のＩ／Ｏコマンドが来た場合は後段モジュールに転送することとしてもよい。【００８４】  ライトコマンドがストレージメモリＡ１における非転送用領域９１３に格納されている場合、実施例１と同様の流れでライト処理が終了する。【００８５】  ライトコマンドがストレージメモリＡ１における転送用領域９１２に格納されている場合、ＳＴＩＦ  Ａ１のＤＭＡ部２１２が、ストレージメモリＡ１における転送用領域９１２からライトコマンドを取得し、ＳＴＩＦ  Ａ１の振分け部２１１が、ライトコマンド内の発行先ＩＤ中のシャーシ番号から、後段モジュールにターゲットＭＰがあるか否かを判定する（Ｓ１００１）。その判定結果が真の場合（例えばターゲットＭＰがＭＰ  Ｃ１の場合）、振分け部２１１が、ライトコマンドの格納先をストレージメモリＣ１における非転送用領域９１３に決定する。その判定結果が偽の場合、振分け部２１１が、ライトコマンドの格納先をストレージメモリＣ１における転送用領域９１２に決定する。ここでは、非転送用領域９１３に決定されたとする。ＳＴＩＦ  Ａ１のＤＭＡ部２１２は、その決定に従いライトコマンドをＳＴＩＦ  Ｃ１を介してストレージメモリＣ１の非転送用領域９１３に転送（格納）し、ＭＰ  Ｃ１が、そのライトコマンドをストレージメモリＣ１の非転送用領域９１３から取得する（Ｓ１００２）。そして、格納先準備が行われる（Ｓ１００３）。例えば、ターゲットＭＰ  Ｃ１が、ストレージメモリＣ１にライト先が同じデータがキャッシュされているか否かのキャッシュ判定を行う。そのキャッシュ判定の結果に応じて、キャッシュ領域の確保、及び、ＷＲデータのＤＭＡ転送が行われる（キャッシュ判定結果処理）（Ｓ１００４）。これにより、ストレージメモリＣ１における確保されたキャッシュ領域にＷＲデータが格納される。ＭＰ  Ｃ１が、そのＷＲデータを、ストレージメモリＣ１の冗長メモリＤ１における確保されたキャッシュ領域にコピーする（Ｓ１００５）。なお、図８のＳＴＩＦ  Ａ１とＳＴＩＦ  Ｄ１をクロスして接続し、データ冗長化（Ｓ１００５）の処理をＳＴＩＦ  Ａ１が実施してもよい。その後、ＭＰ  Ｃ１は、コマンドレスポンスをストレージメモリＣ１に格納し、ＳＴＩＦ  Ａ１が、そのコマンドレスポンスをストレージメモリＣ１から取得し、コマンドレスポンスをストレージメモリＡ１に格納する（Ｓ１００６）。ＳＶＩＦ０１が、ストレージメモリＡ１からコマンドレスポンスを取得する（Ｓ１００７）。そして、ＳＶＩＦ０１が、リクエストレスポンスをサーバメモリ０１に格納し、ＣＰＵ０１が、サーバメモリ０１からリクエストレスポンスを取得する（Ｓ１００８）。なお、Ｓ１００４のフローはＳ６０５〜Ｓ６０８と同様の処理であり、フロントエンドのサーバからのリクエストか、バックエンドのストレージからのリクエストかが異なる。なお、図６はキャッシュミスの例を示している。また、フロントエンドとバックエンドの処理を区別するために、別々の処理待ちメモリ領域（例えばキューイングメモリ）にリクエストやレスポンスなどを配置するもしくは、リクエストやレスポンス内に区別できる識別子を設定してもよい。【００８６】  図１１は、キャッシュ判定結果処理の詳細を示す。【００８７】  キャッシュ判定結果処理によれば、キャッシュヒットの場合（キャッシュ判定の結果が真の場合）に行われる処理であるキャッシュヒット処理と、キャッシュミスの場合（キャッシュ判定の結果が偽の場合）に行われるキャッシュミス処理とがある。キャッシュヒット処理としては、通常ヒット処理と、短縮ヒット処理とがある。通常ヒット処理は、図１１に示される全ての処理を含んだ処理であり、短縮ヒット処理及びキャッシュミス処理は、それぞれ、通常ヒット処理の一部の処理である。【００８８】  通常ヒット処理では、以下の処理が行われる。すなわ��、ターゲットＭＰ  Ｃ１が、ストレージメモリＣ１からキャッシュ領域を一時的に確保する（Ｓ１１０１）。一時的に確保されたキャッシュ領域（以下、一時領域）は、例えばバッファ領域として管理されるような領域である。ＭＰ  Ｃ１は、転送リクエストをストレージメモリＣ１に格納し、ＳＴＩＦ  Ａ１が、転送リクエストをストレージメモリＣ１から取得する。転送リクエストにおいて、転送先アドレスは、一時領域のアドレスであり、転送元アドレスは、ストレージメモリＡ１における領域（ＷＲデータが格納されている領域）のアドレスである。ＳＴＩＦ  Ａ１が、転送リクエストに従いストレージメモリＡ１からストレージメモリＣ１の一時領域にＷＲデータをＤＭＡ転送し（Ｓ１１０３）、転送レスポンスをストレージメモリＣ１に格納し、ＭＰ  Ｃ１が、転送レスポンスをストレージメモリＣ１から取得する（Ｓ１１０４）。その後、Ｓ１１０１〜Ｓ１１０４とほぼ同様の処理が再度行われる。具体的には、ＭＰ  Ｃ１が、ストレージメモリＣ１からキャッシュ領域を正式に確保する（Ｓ１１１１）。確保されたキャッシュ領域は、ライト先が同じデータがキャッシュされている領域である。ＭＰ  Ｃ１は、転送リクエストをストレージメモリＣ１に格納し、ＳＴＩＦ  Ａ１が、転送リクエストをストレージメモリＣ１から取得する（Ｓ１１１２）。ＳＴＩＦ  Ａ１は、その転送リクエストに従いストレージメモリＡ１からストレージメモリＣ１の確保されたキャッシュ領域にＷＲデータをＤＭＡ転送し（Ｓ１１１３）、転送レスポンスをストレージメモリＣ１に格納し、ＭＰ  Ｃ１が、転送レスポンスをストレージメモリＣ１から取得する（Ｓ１１１４）。なお、Ｓ１１１３のＷＲデータをストレージメモリＡ１からではなく、ストレージメモリＣ１に一時確保された領域からのＤＭＡ転送としてもよい。これにより、前段ストレージに障害が発生しても、後段に転送済みのデータを使って処理を完了できる。また、Ｓ１１１２〜Ｓ１１１４はＭＰ  Ｃ１が実施してもよい。これにより、前段ストレージに障害が発生し、ＳＴＩＦ  Ｃ１が利用できない場合でも、ＭＰ  Ｃ１のＤＭＡと後段に転送済みのデータを使って処理を完了できる。【００８９】  通常ヒット処理として２段階を実施することより、キャッシュ上のデータを書き換えるときに、一時領域にデータを格納することとなる。よって、キャッシュヒットの上書き時には、ＳＴＩＦ  Ａ１とＳＴＩＦ  Ｃ１との接続が切れた等でライトデータが途切たりした場合に新旧データが混ざった半端な状態となり、リカバリ不能となることを防ぐことができる。また、キャッシュを複数のサーバで共有しているために、複数のＩ／Ｏコマンドを同時に発行した場合のキャッシュへのアクセスを排他制御が必要となるが、一時領域にデータを格納することにより、ＭＰ  Ｃ１のタイミングで上書き処理を実施できるようになり、処理のハンドリングがしやすくなる。なお、Ｓ１１０３で実際にデータを転送せずに、正式確保の後、Ｓ１１１３でデータを転送してもよい。これにより、帯域の利用率を上げることができ、上記データ破壊などの問題も回避できる。通常ヒット処理によれば、キャッシュ領域におけるキャッシュ済のデータがＷＲデータにより更新される。通���ヒット処理の後、ＭＰ  Ｃ１は、コマンドレスポンスを発行する前又は発行した後、キャッシュ領域に格納されている更新済みデータを、ＰＤＥＶに格納することができる。【００９０】  短縮ヒット処理では、通常ヒット処理においてキャッシュ領域を正式に確保することが行われない。つまり、短縮ヒット処理は、通常ヒット処理のＳ１１０１〜Ｓ１１０４で構成され、通常ヒット処理におけるＳ１１１１〜Ｓ１１１４を含まない。短縮ヒット処理によれば、コマンドレスポンスを通常ヒット処理時に対して早く返すことができる。図８のＳＴＩＦ  Ａ１とＳＴＩＦ  Ｄ１をクロスして接続し、データ冗長化はＳＴＩＦ  Ａ１が実施してもよい。なお、短縮ヒット処理の後、ＭＰ  Ｃ１は、コマンドレスポンスを発行する前又は発行した後、一時領域に格納されているＷＲデータと、ライト先が同じデータがキャッシュされている領域内のデータとに基づくデータ（キャッシュ済のデータがＷＲデータにより更新されたデータ）を、ＰＤＥＶに格納することができる。なお、任意のタイミングで、ＭＰ  Ｃ１又はＳＴＩＦ  Ａ１がストレージメモリＣ１の一時確保の領域から正式確保の領域へデータ転送を実施してもよい。通常ヒット処理と短縮ヒット処理のどちらを行うかをターゲットＭＰが選択してよい。例えば、フラッシュメモリなどの比較的高速な媒体にデータを格納する際は、レスポンス重視で短縮ヒットを選択したり、ＨＤＤなどの比較的低速な媒体に格納する際はレスポンスタイムよりキャッシュヒットを優先し、通常ヒット処理を実施したりしてよい。これは、短縮ヒットの場合は、複数箇所にデータが置かれるため、更新前のデータと更新後のデータをマージした後のデータをヒットさせる必要があり、ヒット処理に若干の処理を含んでしまうためである。また、シーケンシャルアクセス、ランダムアクセスの違いによっても通常ヒット処理と短縮ヒット処理を選択してもよい。ターゲットＭＰ  Ｃ１（或いは他のＭＰ（例えばＣ２））は、ストレージメモリＣ１のダーティ割合が所定割合未満の場合に、短縮ヒット処理を選択し、ダーティ割合が所定割合以上の場合に、通常ヒット処理を選択してよい。「ダーティ割合」とは、キャッシュ領域群の容量に対するダーティ容量の割合である。「ダーティ容量」は、ダーティのキャッシュ領域（ＰＤＥＶに未だ格納されていないデータが格納されているキャッシュ領域）の総容量である。【００９１】  キャッシュミス処理では、通常ヒット処理においてキャッシュ領域を一時的に確保することが行われない。つまり、キャッシュミス処理は、通常ヒット処理のＳ１１１１〜Ｓ１１１４で構成され、通常ヒット処理におけるＳ１１０１〜Ｓ１１０４を含まない。キャッシュミス処理において確保されるキャッシュ領域は、フリーのキャッシュ領域か、或いは、クリーンのキャッシュ領域（ＰＤＥＶに格納済のデータのみを記憶したキャッシュ領域）である。ヒットミス処理の後、ＭＰ  Ｃ１は、コマンドレスポンスを発行する前又は発行した後、確保されたキャッシュ領域に格納されているＷＲデータを、ＰＤＥＶに格納することができる。【００９２】  図１２は、実施例２に係るリード処理の流れを示す。なお、実施例２では、オートレスポンスが採用された例を���している。【００９３】  リードコマンドは、図１０に示したライト処理におけるライトコマンドと同じように、ストレージメモリＣ１に格納される。具体的には、実施例１のＳ７０１〜Ｓ７０４と同様の処理が行われる。その後、ＳＴＩＦ  Ａ１の振分け部２１１が、振分け処理により（Ｓ１２０１）、ターゲットＭＰ  Ｃ１を有するモジュールが後段モジュールであるため、リードコマンドをストレージメモリＣ１の非転送用領域９１３に転送（格納）し、ＭＰ  Ｃ１が、ストレージメモリＣ１の非転送用領域９１３からリードコマンドを取得する（Ｓ１２０２）。そして、データ準備が行われる（Ｓ１２０３）。例えば、ターゲットＭＰ  Ｃ１が、ストレージメモリＣ１にＲＤデータがキャッシュされているか否かのキャッシュ判定を行う。キャッシュ判定の結果が偽であれば、ＭＰ  Ｃ１が、ストレージメモリＣ１にキャッシュ領域を確保し、ＰＤＥＶからキャッシュ領域にＲＤデータを読み出す。ＭＰ  Ｃ１は、特殊転送リクエストをストレージメモリＣ１に格納し、ＳＴＩＦ  Ａ１が、特殊転送リクエストをストレージメモリＣ１から取得する（Ｓ１２０４）。ＳＴＩＦ  Ａ１が、特殊転送リクエストに従いストレージメモリＣ１のキャッシュ領域からストレージメモリＡ１にＲＤデータをＤＭＡ転送する（Ｓ１２０５）。ＳＴＩＦ  Ａ１が、転送レスポンスをストレージメモリＣ１に格納し、ＭＰ  Ｃ１が、転送レスポンスをストレージメモリＣ１から取得する（Ｓ１２０６）。ＳＴＩＦ  Ａ１が、コマンドレスポンスをストレージメモリＡ１に格納し、ＭＰ  Ａ１が、コマンドレスポンスをストレージメモリＡ１から取得する（Ｓ１２０７）。ＭＰ  Ａ１が、特殊転送リクエストをストレージメモリＡ１に格納し、ＳＶＩＦ０１が、特殊転送リクエストをストレージメモリＡ１から取得する（Ｓ１２０８）。ＳＶＩＦ０１が、特殊転送リクエストに従いストレージメモリＡ１からサーバメモリ０１にＲＤデータをＤＭＡ転送する（Ｓ１２０９）。ＳＶＩＦ０１が、転送レスポンスをストレージメモリＡ１に格納し、ＭＰ  Ａ１が、転送レスポンスをストレージメモリＡ１から取得する（Ｓ１２１０）ＳＶＩＦ０１が、リクエストレスポンスをサーバメモリ０１に格納し、ＣＰＵ０１が、リクエストレスポンスをサーバメモリ０１から取得する（Ｓ１２１１）。【００９４】  以上、Ｋ＝２（ストレージ制御モジュールが２つ）のケースを例に取ったが、Ｋ＝３以上の整数となっても、サーバ１１１とターゲットＭＰ間のコマンド及びデータの流れは同様である。すなわち、サーバ１１１とターゲットＭＰ間においてＤＭＡ転送の連携により、コマンド及びデータが転送される。具体的には、転送モジュールが、順次後段側へとシフトしていくことになる。従って、転送モジュールは、サーバ１１１、又は、ｎ番目のストレージ制御モジュール（ｎは１乃至（Ｋ−１）までのいずれかの整数）である。また、全てのシャーシ内の構成が同じでなくてもよい。例えば、ストレージ制御モジュール１１３を有しているがサーバ１１１を有していないシャーシが混在していてもよいし、複数のシャーシにおいてサーバ１１１の数が異なっていてもよい。
【実施例３】
【００９５】  以下、実施例３を説明する。その際、実施例１及び２との相違点を主に説明し、実施例１及び２との共通点については説明を省略或いは簡略する。【００９６】  実施例３では、サーバ１１１がスケールアウトされる（更に、実施例２のようにストレージもスケールアウトされてよい）。具体的には、ストレージ制御モジュールに、Ｎ台のサーバ１１１（実施例１及び２ではＮ＝８）に加えて、Ｑ台のサーバ１１１が接続される（Ｑは１以上の整数）。（Ｎ＋Ｑ）台のサーバ１１１は、複数のポート拡張モジュール経由でストレージ制御モジュールに接続される。ポート拡張モジュールは、例えば、ストレージからＰＣＩｅ  ｘ４が１６本出ているものから１２本を別シャーシに出す切り替えを行い、残りの４本のポートでもとのサーバ８台を支える。別シャーシに出した１２本はそれぞれ３つシャーシに４本ずつ接続し、それぞれのシャーシはサーバ８台でそれを利用する。図１３では、ＳＣＭ（Server-Storage Connect Module）１３０２とＳＣＭ１３０１の接続はＰＣＩｅ  ｘ４を２本まとめて、ＰＣＩｅ  ｘ８で接続しているように記載している。このように、帯域を分割して、ポートを増やす目的でスイッチを利用する。なお、ストレージ制御モジュール１１３とＳＣＭ１３０２の間もＰＣＩｅ  ｘ８とし、８本で接続してもよい。このスイッチは、内部バススイッチであり、ＦＣスイッチなどに比べて低コストである。また、別筐体へ接続する線は、ＳＣＭ内で内部バススイッチを経由する前にマルチプレクサのようにハードウェア回路で経路を切り替えて別筐体のＳＣＭ内の内部バススイッチに接続されてもよく、内部バススイッチが多段になる構成をせけて、機構がシンプルなものになるようにしてもよい。なお、ＳＣＭの内部バス同士を接続して、筐体を増やしていける構成としてもよい。各ポート拡張モジュール（内部バススイッチ）は、ＰＣＩｅで通信可能である。すなわち、各ポート拡張モジュールは、ＣＰＵとＳＶＩＦ間の通信のプロトコルと同じ通信プロトコルで通信可能である。以下の例では、ポート拡張モジュールは、信号の調整処理を行うＳＣＭ内に搭載されている。【００９７】  図１３は、実施例３に係る計算機システムの構成を示す。【００９８】  図１３によれば、Ｑ＝Ｎ＝２４である。すなわち、ストレージ制御モジュールに、８台のサーバ０１〜０８に加えて、別の２４台のサーバ２１〜４８が接続される。サーバ２１〜２８は、サーバ０１〜０８を搭載したシャーシ１０１Ｃとは別のシャーシ１０１Ｄに搭載されている。サーバ３１〜３８はシャーシ１０１Ｅ、サーバ４１〜４８はシャーシ１０１Ｆに搭載されている。図１３ではシャーシ１０１Ｅ、１０１Ｆの内部はシャーシ１０１Ｄと同様の構成とし、省略している。シャーシ１０１Ｄには、サーバ２１〜２８が搭載されているが、ストレージ制御モジュールは搭載されていない。つまり、このシャーシ１０１Ｄは、サーバ拡張用のシャーシでよい。シャーシ１０１Ｅ、シャーシ１０１Ｆも同様である。このシャーシは、サーバ２１〜２８と、それらに接続された複数のＳＣＭ１３０１を有する。ＳＣＭ１３０１は、前述したように複数のポート拡張モジュールを内部に搭載している。なお、シャーシ１０１Ｄ、１０１Ｅ、１０１Ｆは１０１Ｃと同様にストレージ制御モジュール１１３を搭載したシャーシでもよい。この場合、内部構成は１０１Ｃと同様になる。また、図１３ではシャーシが１０１Ｃ、１０１Ｄ、１０１Ｅ、１０１Ｆの４台の場合を示しているが、シャーシの数は任意の台数でもよい。また、図１３では、ストレージ制御モジュール１１３に接続された複数のＰＤＥＶ１３２は省略している。また、ストレージとＳＣＭの接続ポート数、ＳＣＭとＳＣＭの接続のポート数、サーバとＳＣＭの接続ポート数は任意の数でもよい。また、ＳＣＭからポートを引き出し、外接用のポートとして、たとえばＦＣを用いてストレージ等を接続してもよい。【００９９】  シャーシ１０１Ｃは、サーバ０１〜０８とストレージ制御モジュール１１３との間に介在する複数のＳＣＭ１３０２を有する。ＳＣＭ１３０２は、ポート拡張モジュールを内部に有するＳＣＭである。複数のＳＣＭ１３０２に、別のシャーシ１０１Ｄ内の複数のＳＣＭ１３０１が接続される。なお、例えばポート拡張モジュールに上記シンプルなスイッチを利用した場合は、ＳＣＭ１３０１とＳＣＭ１３０２でスイッチが２段にならないようにＳＣＭ１３０１とＳＣＭ１３０２の接続ポート間は直接ストレージ制御モジュールが接続される形を取る。これにより、スイッチ多段化による障害処理系の複雑化を回避する。複数のＳＣＭ１３０１と複数のＳＣＭ１３０２間の通信のプロトコルもＰＣＩｅである。【０１００】  各ＳＣＭ１３０２は、複数の前段ポートと複数の後段ポートとを有する。前段ポートは、いずれかのサーバ１１１に接続されるポートであり、後段ポートは、ストレージ制御モジュール１１３のストレージポートに接続されるポートである。各ＳＣＭ１３０２において、ポート拡張モジュールにスイッチ回路を利用した場合、前段ポートと後段ポートとの間の接続を切り替える、すなわち、どのサーバ１１１をＫ個のストレージ制御モジュール（Ｋは１以上の整数）のうちの１番目のストレージ制御モジュールに接続するかを制御する。このスイッチ回路は、例えば内部バススイッチとマルチプレクサの組合せである。【０１０１】  図１３の構成時の各サーバのライト及びリードのＩ／Ｏフローは間にＳＣＭをはさむが、基本的には図６、図７に従う。本実施例のように１台の共有ストレージに複数のサーバを接続することにより、サーバ負荷が高く、ストレージへのＩ／Ｏが比較的軽い用途に対してサーバとストレージのコストバランスを最適化する効果がある。なお、ストレージ制御モジュールのサーバ側をフロントエンドとした場合、ＳＡＳ側のバックエンド側に、ＳＣＭを接続し、サーバ及びストレージをスケールしてもよい。【０１０２】  以上、一実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。【０１０３】  例えば、ＳＶＩＦ１２３及びＳＴＩＦ１４４のうちの少なくも１つが、ＡＳＩＣに代えて、ＦＰＧＡ（Field  Programmable  Gate  Array）のような回路であってもよい。【０１０４】  また、Ｉ／ＯコマンドとＩ／Ｏ対象データのうちＩ／ＯコマンドはＤＭＡとは異なる方法で転送されてもよい。【０１０５】  また、各ＳＶＩＦ１２３の複数のＢＥＩＦ部��０４が、ＭＰクラスタを構成する複数のＭＰにそれぞれ接続されてもよい。ＭＰ１４１は、取得されたＩ／ＯコマンドのターゲットＭＰがＭＰクラスタ内の別のＭＰであることを特定した場合、そのＩ／ＯコマンドをターゲットＭＰに転送してよい。【０１０６】  また、ＳＶＩＦ１２３及びＳＴＩＦ１４４がコマンド又はリクエスト等をメモリ１２１又は１４３から取得することは、ポーリングにより行われてもよいし、ＣＰＵ１２２又はＭＰ１４１からの指示に応答して行われてもよい。【０１０７】  また、実施例２のストレージ制御モジュール同士の接続において、ＳＴＩＶのＢＥＩＦ部の数が増え、２台以上のストレージ制御モジュールに接続されてもよい。
【符号の説明】
【０１０８】  １１１：サーバモジュール  １１３：ストレージ制御モジュール 
【図１】
2015068239.tif 000003
【図２】
2015068239.tif 000004
【図３】
2015068239.tif 000005
【図４】
2015068239.tif 000006
【図５】
2015068239.tif 000007
【図６】
2015068239.tif 000008
【図７】
2015068239.tif 000009
【図８】
2015068239.tif 000010
【図９】
2015068239.tif 000011
【図１０】
2015068239.tif 000012
【図１１】
2015068239.tif 000013
【図１２】
2015068239.tif 000014
【図１３】
2015068239.tif 000015
【図１４】
2015068239.tif 000016
【手続補正書】
【提出日】平成28年8月9日(2016.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールと
を有し、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバの前記サーバプロセッサが、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆは、
前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記Ｉ／Ｏリクエストの指定するデータの前記サーバメモリ上の格納先アドレスを、前記発行サーバからの前記Ｉ／Ｏリクエストから取得し、
前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサを特定し、
前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記Ｉ／Ｏリクエストに基づいて生成したＩ／Ｏコマンドを前記特定されたストレージプロセッサに送信した返信として、前記Ｉ／Ｏリクエストの指定するデータの前記ストレージメモリ上の格納先アドレスを、前記特定された前記ストレージプロセッサから取得し、
取得した前記サーバメモリ上の格納先アドレスと前記ストレージメモリ上の格納先アドレスとの間で前記データのメモリ間転送を行う、
計算機システム。
【請求項２】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールと
を有し、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバの前記サーバプロセッサが、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆは、
前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサを特定し、
前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記第１のストレージ制御モジュールは、更に転送Ｉ／Ｆを有し、
前記第１のストレージ制御モジュールの前記ストレージプロセッサは、前記転送Ｉ／Ｆを介して、第２の前記ストレージ制御モジュールに含まれる複数のストレージプロセッサの何れかと接続されており、
前記サーバＩ／Ｆは、前記Ｉ／Ｏリクエストを処理する前記ストレージプロセッサとして前記第２のストレージ制御モジュール内の前記ストレージプロセッサを特定する場合があり、
前記転送Ｉ／Ｆは、前記Ｉ／Ｏリクエスト基づいて前記サーバＩ／Ｆが発行したＩ／Ｏコマンドを受信し、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれる場合には、当該Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前記ストレージメモリにおける非転送用領域に書き込み、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれない場合には、前記Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前前記ストレージメモリにおける転送用領域に書き込む、
計算機システム。
【請求項３】
前記振り分け情報を、前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサが生成し、
前記生成された振り分け情報を、前記発行サーバの前記サーバＩ／Ｆが参照する、
請求項１又は２記載の計算機システム。
【請求項４】
前記第１のストレージ制御モジュールは、更に複数のストレージメモリを有し、
前記サーバモジュールはさらにサーバメモリを有し、
前記発行サーバの前記サーバメモリと前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、
請求項１乃至３のうちのいずれか１項に記載の計算機システム。
【請求項５】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、
請求項１乃至４のうちのいずれか１項に記載の計算機システム。
【請求項６】
前記サーバＩ／Ｆと前記ストレージプロセッサの接続はＰＣＩｅｘｐｒｅｓｓプロトコルによって行われる、
請求項１乃至５のうちのいずれか１項に記載の計算機システム。
【請求項７】
前記Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報は前記ストレージ制御モジュールに接続される少なくとも１の記憶デバイスの記憶領域によって提供されるボリュームの識別情報であって、
前記振り分け情報は、前記ボリューム毎に当該ボリュームを担当する前記ストレージプロセッサを対応づけ、
複数の前記ボリュームの間で異なる前記ストレージプロセッサが割り当てられている、
請求項１乃至６のうちのいずれか１項に記載の計算機システム。
【請求項８】
前記振り分け情報は、何れかの前記ストレージプロセッサの障害時と、何れかの前記ボリュームの構成が変更された時との少なくとも何れかの場合に更新される
請求項７記載の計算機システム。
【請求項９】
前記少なくとも１のサーバモジュールと前記第１のストレージ制御モジュールの間にポート拡張モジュールを有し、
前記ポート拡張モジュールを介して別の前記少なくとも１のサーバモジュールが前記第１のストレージ制御モジュールに接続されており、
前記ポート拡張モジュールが、そのポート拡張モジュールに接続されている複数台のサーバモジュールのうちのどれを前記第１のストレージ制御モジュールに接続するかを制御する、
請求項１乃至８のうちのいずれか１項に記載の計算機システム。
【請求項１０】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有する計算機システムにおいて実行されるデータ制御方法であって、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサにより、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆにより、前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記発行サーバのサーバＩ／Ｆにより、前記Ｉ／Ｏリクエストの指定するデータの前記サーバメモリ上の格納先アドレスを、前記発行サーバからの前記Ｉ／Ｏリクエストから取得し、
前記発行サーバのサーバＩ／Ｆにより、前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサの特定し、
前記発行サーバのサーバＩ／Ｆにより、前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記発行サーバのサーバＩ／Ｆにより、前記Ｉ／Ｏリクエストに基づいて生成したＩ／Ｏコマンドを前記特定されたストレージプロセッサに送信した返信として、前記Ｉ／Ｏリクエストの指定するデータの前記ストレージメモリ上の格納先アドレスを、前記特定された前記ストレージプロセッサから取得し、
前記発行サーバのサーバＩ／Ｆにより、取得した前記サーバメモリ上の格納先アドレスと前記ストレージメモリ上の格納先アドレスとの間で前記データのメモリ間転送を行う、
データ制御方法。
【請求項１１】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有する計算機システムにおいて実行されるデータ制御方法であって、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサにより、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆにより、前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記発行サーバのサーバＩ／Ｆにより、前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサの特定し、
前記発行サーバのサーバＩ／Ｆにより、前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記第１のストレージ制御モジュールは、更に転送Ｉ／Ｆを有し、
前記第１のストレージ制御モジュールの前記ストレージプロセッサは、前記転送Ｉ／Ｆを介して、第２の前記ストレージ制御モジュールに含まれる複数のストレージプロセッサの何れかと接続されており、
前記サーバＩ／Ｆは、前記Ｉ／Ｏリクエストを処理する前記ストレージプロセッサとして前記第２のストレージ制御モジュール内の前記ストレージプロセッサを特定する場合があり、
前記転送Ｉ／Ｆにより、前記Ｉ／Ｏリクエスト基づいて前記サーバＩ／Ｆが発行したＩ／Ｏコマンドを受信し、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方により、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれる場合には、当該Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前記ストレージメモリにおける非転送用領域に書き込み、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方により、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれない場合には、前記Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前前記ストレージメモリにおける転送用領域に書き込む、
データ制御方法。
【請求項１２】
前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサにより、前記振り分け情報を生成し、
前記発行サーバの前記サーバＩ／Ｆにより、前記生成された振り分け情報を参照する、
請求項１０又は１１記載のデータ制御方法。
【請求項１３】
前記発行サーバのサーバメモリと前記第１のストレージ制御モジュールが有する複数のストレージメモリのうち前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、
請求項１０乃至１２のうちのいずれか１項に記載のデータ制御方法。
【請求項１４】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、
請求項１０乃至１３のうちのいずれか１項に記載のデータ制御方法。
【手続補正書】
【提出日】平成28年11月24日(2016.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールと
を有し、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバの前記サーバプロセッサが、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆは、
前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記Ｉ／Ｏリクエストの指定するデータの格納先アドレスであって前記発行サーバのサーバメモリ上の格納先アドレスを、前記発行サーバからの前記Ｉ／Ｏリクエストから取得し、
前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサを特定し、
前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記Ｉ／Ｏリクエストに基づいて生成したＩ／Ｏコマンドを前記特定されたストレージプロセッサに送信した返信として、前記Ｉ／Ｏリクエストの指定するデータの格納先アドレスであって前記第１のストレージ制御モジュールのストレージメモリ上の格納先アドレスを、前記特定された前記ストレージプロセッサから取得し、
取得した前記サーバメモリ上の格納先アドレスと前記ストレージメモリ上の格納先アドレスとの間で前記データのメモリ間転送を行う、
計算機システム。
【請求項２】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールと
を有し、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバの前記サーバプロセッサが、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆは、
前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサを特定し、
前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記第１のストレージ制御モジュールは、更に転送Ｉ／Ｆを有し、
前記第１のストレージ制御モジュールの前記ストレージプロセッサは、前記転送Ｉ／Ｆを介して、第２のストレージ制御モジュールに含まれる複数のストレージプロセッサの何れかと接続されており、
前記サーバＩ／Ｆは、前記Ｉ／Ｏリクエストを処理する前記ストレージプロセッサとして前記第２のストレージ制御モジュール内の前記ストレージプロセッサを特定する場合があり、
前記転送Ｉ／Ｆは、前記Ｉ／Ｏリクエストに基づいて前記サーバＩ／Ｆが発行したＩ／Ｏコマンドを受信し、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれる場合には、当該Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内のストレージメモリにおける非転送用領域に書き込み、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方が、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれない場合には、前記Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前記ストレージメモリにおける転送用領域に書き込む、
計算機システム。
【請求項３】
前記振り分け情報を、前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサが生成し、
前記生成された振り分け情報を、前記発行サーバの前記サーバＩ／Ｆが参照する、
請求項１又は２記載の計算機システム。
【請求項４】
前記発行サーバの前記サーバメモリと前記第１のストレージ制御モジュールが有する複数のストレージメモリのうち前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、
請求項１乃至３のうちのいずれか１項に記載の計算機システム。
【請求項５】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、
請求項１乃至４のうちのいずれか１項に記載の計算機システム。
【請求項６】
前記サーバＩ／Ｆと前記ストレージプロセッサの接続はＰＣＩｅｘｐｒｅｓｓプロトコルによって行われる、
請求項１乃至５のうちのいずれか１項に記載の計算機システム。
【請求項７】
前記Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報は前記第１のストレージ制御モジュールに接続される少なくとも１の記憶デバイスの記憶領域によって提供されるボリュームの識別情報であって、
前記振り分け情報は、前記ボリューム毎に当該ボリュームを担当する前記ストレージプロセッサを対応づけ、
複数の前記ボリュームの間で異なる前記ストレージプロセッサが割り当てられている、
請求項１乃至６のうちのいずれか１項に記載の計算機システム。
【請求項８】
前記振り分け情報は、何れかの前記ストレージプロセッサの障害時と、何れかの前記ボリュームの構成が変更された時との少なくとも何れかの場合に更新される
請求項７記載の計算機システム。
【請求項９】
前記少なくとも１のサーバモジュールと前記第１のストレージ制御モジュールの間にポート拡張モジュールを有し、
前記ポート拡張モジュールを介して別の前記少なくとも１のサーバモジュールが前記第１のストレージ制御モジュールに接続されており、
前記ポート拡張モジュールが、そのポート拡張モジュールに接続されている複数台のサーバモジュールのうちのどれを前記第１のストレージ制御モジュールに接続するかを制御する、
請求項１乃至８のうちのいずれか１項に記載の計算機システム。
【請求項１０】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有する計算機システムにおいて実行されるデータ制御方法であって、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサにより、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆにより、前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記発行サーバのサーバＩ／Ｆにより、前記Ｉ／Ｏリクエストの指定するデータの格納先アドレスであって前記発行サーバのサーバメモリ上の格納先アドレスを、前記発行サーバからの前記Ｉ／Ｏリクエストから取得し、
前記発行サーバのサーバＩ／Ｆにより、前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサの特定し、
前記発行サーバのサーバＩ／Ｆにより、前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記発行サーバのサーバＩ／Ｆにより、前記Ｉ／Ｏリクエストに基づいて生成したＩ／Ｏコマンドを前記特定されたストレージプロセッサに送信した返信として、前記Ｉ／Ｏリクエストの指定するデータの格納先アドレスであって前記第１のストレージ制御モジュールが有するストレージメモリ上の格納先アドレスを、前記特定された前記ストレージプロセッサから取得し、
前記発行サーバのサーバＩ／Ｆにより、取得した前記サーバメモリ上の格納先アドレスと前記ストレージメモリ上の格納先アドレスとの間で前記データのメモリ間転送を行う、
データ制御方法。
【請求項１１】
複数のストレージプロセッサを有する第１のストレージ制御モジュールと、
サーバプロセッサと、前記サーバプロセッサと前記複数のストレージプロセッサのうちの少なくとも２のストレージプロセッサとに接続するサーバインタフェースデバイス（サーバＩ／Ｆ）とをそれぞれが有する少なくとも１のサーバモジュールとを有する計算機システムにおいて実行されるデータ制御方法であって、
前記少なくとも１のサーバモジュールのうちのいずれか１のサーバである発行サーバのサーバプロセッサにより、Ｉ／Ｏリクエストを発行し、
前記発行サーバのサーバＩ／Ｆにより、前記発行サーバの前記サーバプロセッサからＩ／Ｏリクエストを受け、
前記発行サーバのサーバＩ／Ｆにより、前記受けたＩ／Ｏリクエストの発行サーバ識別情報と当該Ｉ／Ｏリクエストの宛先ストレージ記憶領域の識別情報と当該宛先ストレージ記憶領域を担当する前記ストレージプロセッサの識別情報とを対応付ける振り分け情報を参照することによって前記ストレージプロセッサの特定し、
前記発行サーバのサーバＩ／Ｆにより、前記特定されたストレージプロセッサに前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドを送信し、
前記第１のストレージ制御モジュールは、更に転送Ｉ／Ｆを有し、
前記第１のストレージ制御モジュールの前記ストレージプロセッサは、前記転送Ｉ／Ｆを介して、第２のストレージ制御モジュールに含まれる複数のストレージプロセッサの何れかと接続されており、
前記サーバＩ／Ｆは、前記Ｉ／Ｏリクエストを処理する前記ストレージプロセッサとして前記第２のストレージ制御モジュール内の前記ストレージプロセッサを特定する場合があり、
前記転送Ｉ／Ｆにより、前記Ｉ／Ｏリクエストに基づいて前記サーバＩ／Ｆが発行したＩ／Ｏコマンドを受信し、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方により、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれる場合には、当該Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内のストレージメモリにおける非転送用領域に書き込み、
前記発行サーバの前記サーバＩ／Ｆ、及び、前記転送Ｉ／Ｆのうちの少なくとも一方により、前記Ｉ／Ｏリクエストに基づくＩ／Ｏコマンドについて特定されたストレージプロセッサが前記第１のストレージ制御モジュールに含まれない場合には、前記Ｉ／Ｏコマンドを、前記第１のストレージ制御モジュール内の前記ストレージメモリにおける転送用領域に書き込む、
データ制御方法。
【請求項１２】
前記複数のストレージプロセッサのうちの少なくとも１のストレージプロセッサにより、前記振り分け情報を生成し、
前記発行サーバの前記サーバＩ／Ｆにより、前記生成された振り分け情報を参照する、
請求項１０又は１１記載のデータ制御方法。
【請求項１３】
前記発行サーバの前記サーバメモリと前記第１のストレージ制御モジュールが有する複数のストレージメモリのうち前記特定されたストレージプロセッサの管理する前記ストレージメモリとの間で前記Ｉ／Ｏリクエストの指定するデータをメモリ間転送する、
請求項１０乃至１２のうちのいずれか１項に記載のデータ制御方法。
【請求項１４】
前記サーバプロセッサと前記サーバI/Fを接続するバスによって、前記サーバＩ／Ｆと前記ストレージプロセッサは接続される、
請求項１０乃至１３のうちのいずれか１項に記載のデータ制御方法。
【国際調査報告】
2015068239.tif 000017
2015068239.tif 000018
2015068239.tif 000019