(57)【要約】【課題】ストレージシステムにおいて、ドメインを跨った記憶装置へのアクセスに要する時間を短縮させる。【解決手段】第二のストレージ制御装置１０−４が、第二のストレージ制御装置に備えられたメモリ１３におけるアドレス情報を第一のストレージ制御装置１０−８に通知する通知部４１と、記憶装置に対するデータアクセス要求を発行するデータアクセス要求発行部１１とを備え、第一のストレージ制御装置１０−８が、データアクセス要求発行部１１からの記憶装置に対するデータアクセス要求に応じて作成される応答データの送信先アドレスに、通知部４１によって通知されたアドレス情報を用いて第二のストレージ制御装置１０−４のメモリ１３におけるアドレスを設定する宛先設定部６１と、宛先設定部６１によって設定された送信先アドレスを指定して、応答データを、第二のストレージ制御装置１０−４のメモリ１３に送信する送信部６０とを備える。【選択図】図３
2020119325.tif 000002
【特許請求の範囲】
【請求項１】
第一のストレージ制御装置と、
前記第一のストレージ制御装置にインタフェースを介して接続され、前記第一のストレージ制御装置による制御下で動作する記憶装置と、
前記第一のストレージ制御装置と通信可能に接続される第二のストレージ制御装置とを備えるストレージシステムであって、
前記第二のストレージ制御装置が、
当該第二のストレージ制御装置に備えられたメモリにおけるアドレス情報を前記第一のストレージ制御装置に通知する通知部と、
前記記憶装置に対するデータアクセス要求を発行するデータアクセス要求発行部と
を備え、
前記第一のストレージ制御装置が、
前記データアクセス要求発行部からの前記記憶装置に対する前記データアクセス要求に応じて作成される応答データの送信先アドレスに、前記通知部によって通知された前記アドレス情報を用いて前記第二のストレージ制御装置の前記メモリにおけるアドレスを設定する宛先設定部と、
前記宛先設定部によって設定された前記送信先アドレスを指定して、前記応答データを、前記第二のストレージ制御装置の前記メモリに送信する送信部と
を備えることを特徴とする、ストレージシステム。
【請求項２】
前記宛先設定部が、
前記応答データに送信先アドレスとして設定された前記第一のストレージ制御装置のメモリにおけるアドレスを、前記通知部によって通知された前記アドレス情報を用いて前記第二のストレージ制御装置の前記メモリにおけるアドレスに書き換える
ことを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記第一のストレージ制御装置が、
前記第二のストレージ制御装置の生存確認を行なう確認部を備え、
前記第二のストレージ制御装置の生存を確認できない場合に、
前記宛先設定部が、
前記第二のストレージ制御装置におけるアドレス情報を、前記第二のストレージ制御装置を代行する第三のストレージ制御装置のメモリにおけるアドレス情報に置き換える
ことを特徴とする請求項１または２記載のストレージシステム。
【請求項４】
インタフェースを介して接続される記憶装置を制御するとともに、第二のストレージ制御装置と通信可能に接続される第一のストレージ制御装置であって、
前記第二のストレージ制御装置から、当該第二のストレージ制御装置に備えられたメモリにおけるアドレス情報を受信する通信部と、
前記第二のストレージ制御装置からの前記記憶装置に対するデータアクセス要求に応じて作成される応答データの送信先アドレスに、前記第二のストレージ制御装置から通知されたアドレス情報を用いて前記メモリにおけるアドレスを設定する宛先設定部と、
前記宛先設定部によって設定された前記送信先アドレスを指定して前記応答データを、前記第二のストレージ制御装置の前記メモリに送信する送信部と
を備えることを特徴とする、ストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、及びストレージ制御装置に関する。
【背景技術】
【０００２】
スケールアウト型のストレージ制御装置を複数備えるストレージシステムにおいて、アクセス先の記憶装置が他のストレージ制御装置の配下になり、ドメインを跨ったアクセスが必要とされる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１３４７７６号公報
【特許文献２】特開２０１０−２３８１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような従来のドメインを跨ったアクセスを実施する場合、中継装置、例えば、フロントエンドルータ（Front-end Router; ＦＲＴ）を介して通信を行なうと共に、アクセス先の記憶装置を管理するストレージ制御装置にアクセス処理を依頼することになる。そのため、ドメインを跨った記憶装置へのアクセスを実施する場合には、同一のドメイン内で記憶装置にアクセスするのに比べ、当該アクセスに要する時間が長くなる（レスポンスが遅くなる）場合がある。
【０００５】
１つの側面では、ドメインを跨った記憶装置へのアクセスに要する時間を短縮させることを目的とする。  
【課題を解決するための手段】
【０００６】
このストレージシステムは、第一のストレージ制御装置と、前記第一のストレージ制御装置にインタフェースを介して接続され、前記第一のストレージ制御装置による制御下で動作する記憶装置と、前記第一のストレージ制御装置と通信可能に接続される第二のストレージ制御装置とを備え、前記第二のストレージ制御装置が、当該第二のストレージ制御装置に備えられたメモリにおけるアドレス情報を前記第一のストレージ制御装置に通知する通知部と、前記記憶装置に対するデータアクセス要求を発行するデータアクセス要求発行部とを備え、前記第一のストレージ制御装置が、前記データアクセス要求発行部からの前記記憶装置に対する前記データアクセス要求に応じて作成される応答データの送信先アドレスに、前記通知部によって通知された前記アドレス情報を用いて前記第二のストレージ制御装置の前記メモリにおけるアドレスを設定する宛先設定部と、前記宛先設定部によって設定された前記送信先アドレスを指定して、前記応答データを、前記第二のストレージ制御装置の前記メモリに送信する送信部とを備える。
【発明の効果】
【０００７】
一実施形態によれば、ドメインを跨った記憶装置へのアクセスに要する時間を短縮させることができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の一例としてのストレージシステムのハードウェア構成を例示する図である。
【図２】実施形態の一例としてのストレージシステムにおけるＣＭのハードウェア構成を例示する図である。
【図３】実施形態の一例としてのストレージシステムにおけるＣＭの機能構成を例示する図である。
【図４】（ａ）は、実施形態の一例としての情報処理システムにおけるＬＣＭメモリの記憶領域の使用例を示す図であり、（ｂ）は、実施形態の一例としての情報処理システムにおけるＤＣＭメモリの記憶領域の使用例を示す図である。
【図５】実施形態の一例としてのストレージシステムにおけるアクセス用変換情報を例示する図である。
【図６】実施形態の一例としてのストレージシステムにおける割り込み用アドレス変換情報を例示する図である。
【図７】実施形態の一例としてのストレージシステムにおける起動時の処理を例示する図である。
【図８】実施形態の一例としてのストレージシステムにおけるドメインを跨ったアクセスの処理を例示する図である。
【図９】実施形態の一例としてのストレージシステムにおけるドメインを跨ったアクセスの処理を模式的に例示する図である。
【図１０】実施形態の一例としてのストレージシステムにおいて読み出し要求時に送受信される情報を例示する図である。
【図１１】実施形態の一例としてのストレージシステムにおいて書き込み要求時に送受信される情報を例示する図である。
【図１２】実施形態の一例としてのストレージシステムにおけるドメインを跨ったアクセスの処理と比較例とを比較する図である。
【図１３】実施形態の変形例としてのストレージシステムにおける切り替え処理の概要を説明するための図である。
【図１４】実施形態の変形例としてのストレージシステムにおける切り替え用情報を例示する図である。
【図１５】実施形態の変形例としてのストレージシステムにおける切り替え処理を説明するための図である。
【図１６】比較例としての異なるドメイン間でのアクセスを例示する図である。
【図１７】比較例としての同一ドメイン間での記憶装置へのアクセスを説明するためのシーケンスチャートである。
【図１８】比較例としての異なるドメイン間での記憶装置へのアクセスを説明するためのシーケンスチャートである。
【図１９】比較例としての異なるドメイン間での記憶装置へのアクセスの概要を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図等はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１０】
〔１〕比較例に係る異なるドメイン間での記憶装置へのアクセスについて
はじめに、図１６を用いて、一実施形態の比較例に係るストレージ制御装置間でのドメインを跨ったアクセス、すなわち、異なるドメイン間での記憶装置へのアクセスについて説明する。なお、以下の処理は、例えば、コンピュータにより実施されてよい。
【００１１】
図１６は、ストレージ制御装置間でのドメインを跨ったアクセスを例示するものである。
【００１２】
この図１６に例示するストレージシステム１００は、スケールアウト型のストレージ制御装置であるコントローラモジュール（Controller Module; ＣＭ）を１つ以上（ＣＭ１０１−０，・・・，ＣＭ１０１−ｎ；ｎは０以上の整数）備える。また、ＣＭ１０１−０，・・・，ＣＭ１０１−ｎは、それぞれ、ＣＭ＃０,・・・，ＣＭ＃ｎとも表される。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１０１−０，・・・，１０１−ｎを用いるが、任意のＣＭを指すときには符号１０１を用いる。
【００１３】
さらに、このストレージシステム１００は、これら複数のＣＭ１０１にそれぞれ接続されるＦＲＴ１０３を備える。
【００１４】
この図１６は、ＣＭ＃０とＣＭ＃１、ＣＭ＃４とＣＭ＃５、ＣＭ＃８とＣＭ＃９とでペアを構成することで本システム１００を冗長化することを例示する。
【００１５】
そして、ＣＭ＃０，ＣＭ＃４，ＣＭ＃８をプライマリ（現用系）のストレージ制御装置、ＣＭ＃１，ＣＭ＃５，ＣＭ＃９をセカンダリ（予備系）のストレージ制御装置として機能させる。例えば、プライマリのＣＭ＃４が故障した場合には、ＣＭ＃４のセカンダリのストレージ制御装置であるＣＭ＃５がＣＭ＃４の業務を引き継ぐ。これらセカンダリのストレージ制御装置を、ミラーＣＭ（Mirror Controller Module; ＭＣＭ）ともいう。
【００１６】
また、このストレージシステム１００では、記憶装置であるＳＳＤ（Solid State Drive）を１つ以上備え、このＳＳＤは、ＮＶＭｅ（Non-Volatile Memory express；登録商標）のインタフェースを用いるものとする。なお、このＮＶＭｅインタフェースを用いるＳＳＤをＮＶＭｅ−ＳＳＤと表す。
【００１７】
図１６に例示するように、ストレージシステム１００は１つ以上のＮＶＭｅ−ＳＳＤ（ＮＶＭｅ−ＳＳＤ１０２−０，・・・，ＮＶＭｅ−ＳＳＤ１０２−ｍ；ｍは０以上の整数）を備える。また、ＮＶＭｅ−ＳＳＤ１０２−０，・・・，ＮＶＭｅ−ＳＳＤ１０２−ｍは、それぞれ、ＮＶＭｅ−ＳＳＤ＃１,・・・，ＮＶＭｅ−ＳＳＤ＃ｍとも表される。以下、ＮＶＭｅ−ＳＳＤを示す符号としては、複数のＮＶＭｅ−ＳＳＤのうち１つを特定する必要があるときには符号１０２−１，・・・，１０２−ｍを用いるが、任意のＮＶＭｅ−ＳＳＤを指すときには符号１０２を用いる。
【００１８】
図１６に例示するように、ストレージシステム１００では、プライマリのＣＭ＃０とセカンダリＣＭ＃１とのペアに対して、ＮＶＭｅ−ＳＳＤ＃０を割り当て、プライマリのＣＭ＃４とセカンダリＣＭ＃５とのペアに対して、ＮＶＭｅ−ＳＳＤ＃２を割り当てる。また、プライマリのＣＭ＃８とセカンダリＣＭ＃９とのペアに対して、ＮＶＭｅ−ＳＳＤ＃４を割り当てる。すなわち、ＮＶＭｅ−ＳＳＤ＃０，ＮＶＭｅ−ＳＳＤ＃２，ＮＶＭｅ−ＳＳＤ＃４を、それぞれ、ＣＭ＃０，ＣＭ＃４，ＣＭ＃８の配下とする。
【００１９】
この割り当ては、ＮＶＭｅ−ＳＳＤ１０２へのアクセス制御を担当するプライマリのＣＭ１０１を決定するものである。図１６に示す例において、ＮＶＭｅ−ＳＳＤ＃０へのアクセス制御を担当するＣＭ１０１は、ＣＭ＃０であり、ＮＶＭｅ−ＳＳＤ＃２へのアクセス制御を担当するＣＭ１０１は、ＣＭ＃４である。また、ＮＶＭｅ−ＳＳＤ＃４へのアクセス制御を担当するＣＭ１０１は、ＣＭ＃８である。なお、これら各ＮＶＭｅ−ＳＳＤ１０２へのアクセス制御を担当するＣＭを、担当ＣＭともいう。
【００２０】
このようなストレージシステム１００では、ＮＶＭｅ−ＳＳＤ１０２に対して、当該ＮＶＭｅ−ＳＳＤ１０２の担当ＣＭからアクセスする場合、担当ＣＭはＮＶＭｅ−ＳＳＤ１０２に直接アクセスできる。
【００２１】
また、このようなストレージシステム１００に備えられるＣＭ１０１がスケールアウト型のストレージ制御装置である以上、一のＣＭ１０１から、他のＣＭ１０１が担当ＣＭとなるＮＶＭｅ−ＳＳＤ１０２へのアクセスが発生する場合がある。
【００２２】
ここで、図１６に例示するように、ＣＭ＃８が担当ＣＭであるＮＶＭｅ−ＳＳＤ＃４に対して、ＣＭ＃４がアクセスする場合を例にとる。図１６において、アクセス先であるＮＶＭｅ−ＳＳＤ＃４の担当ＣＭであるＣＭ＃８をドライブコントローラモジュール（Drive Controller Module; ＤＣＭ）ともいう。また、アクセス元のＣＭであるＣＭ＃４をローカルコントローラモジュール（Local Controller Module; ＬＣＭ）ともいう。
【００２３】
ＣＭ＃４がＮＶＭｅ−ＳＳＤ＃４にアクセスしようとしても、ＣＭ＃８が担当ＣＭであるため、ＣＭ＃４はＮＶＭｅ−ＳＳＤ＃４に直接アクセスすることができない。そこで、ＣＭ＃８は、自身のメモリ１０４上に備えたＢＥＣバッファ１０５に、ＮＶＭｅ−ＳＳＤ＃４のデータを移動させる。そして、ＣＭ＃４は、ＦＲＴ１０３を介してＢＥＣバッファ１０５内のデータを受信することにより当該データにアクセスする。
【００２４】
図１７は、同一ドメイン間での記憶装置へのアクセスを説明するためのシーケンスチャートである。具体的に、この図１７は、図１６に例示するストレージシステム１００において、ＣＭ＃４から自身の配下にあるＮＶＭｅ−ＳＳＤ＃２に対して読み出し（ＲＥＡＤ）によるアクセスを実施した場合のシーケンスチャートである。この図１７に例示する詳細なステップや、各ステップにおいて送受信されるコマンドについては後述する。
【００２５】
この図１７に例示するように、ＣＭ＃４のＣＰＵは、ＮＶＭｅ−ＳＳＤ＃２に対してＲＥＡＤコマンド（“ＳＱ＿Ｂｅｌｌ”コマンド，“ＳＱ”コマンド）を送信する。そして、ＮＶＭｅ−ＳＳＤ＃２は、ＣＭ＃４のＣＰＵに対して、ＲＥＡＤデータ（“ＲＤ”コマンド）を受信する。その後、ＮＶＭｅ−ＳＳＤ＃２は、ＣＭ＃４のＣＰＵに対して、ＲＥＡＤデータを送信した後、ＲＥＡＤコマンドの完了応答（“ＣＱ”コマンド，“ＭＳＩ−Ｘ”コマンド）を送信する。図１７に例示する、これらの各コマンドについては後述する。
【００２６】
次に、図１８は、異なるドメイン間での記憶装置へのアクセスを説明するためのシーケンスチャートである。具体的に、この図１８は、図１７に例示するストレージシステム１００において、ＣＭ＃４から、ＣＭ＃８の配下にあるＮＶＭｅ−ＳＳＤ＃４に対して読み出しによるアクセスを実行した場合のシーケンスチャートである。この図１８に例示する詳細なステップと、各ステップにおいて送受信されるコマンドについても後述する。
【００２７】
この図１８に例示する一連の処理を、図１９を参照しながら説明する。図１９は、異なるドメイン間での記憶装置へのアクセスの概要を説明するための図であり、図１８のシーケンスチャートに例示する処理を模式的に示したものである。この図１９に例示する詳細なステップ、各ステップにおいて送受信されるコマンド、ＣＭ＃８のメモリ１０４の構成についても後述する。
【００２８】
この図１８に例示するように、ＣＭ＃４のＣＰＵは、まず、ＦＲＴ１０３を介してＣＭ＃８のＣＰＵに対しＮＶＭｅ−ＳＳＤ＃４へのＲＥＡＤアクセス（“Ｒｄ  ｒｅｑ”コマンド）を依頼する。この処理を、図１９における矢印Ｗ１に示す。
【００２９】
続いて、ＣＭ＃８のＣＰＵが、ＮＶＭｅ−ＳＳＤ＃４に対して、ＲＥＡＤコマンド（“ＳＱ＿Ｂｅｌｌ”コマンド，“ＳＱ”コマンド）を送信すると、ＮＶＭｅ−ＳＳＤ＃４はこのＲＥＡＤコマンドを受信する。この処理を、図１９における矢印Ｗ２に示す。
【００３０】
続いて、ＮＶＭｅ−ＳＳＤ＃４は、ＣＭ＃８のＣＰＵに対して、ＲＥＡＤデータを送信した後、ＲＥＡＤコマンドの完了応答を送信する。そして、ＣＭ＃８のＣＰＵは、自身のメモリ上に備えたＢＥＣバッファ１０５に、ＮＶＭｅ−ＳＳＤ＃４に格納されるデータを移動させる。この処理を、図１９における矢印Ｗ３に示す。
【００３１】
その後、ＣＭ＃８のＣＰＵは、ＣＭ＃４のＣＰＵに対して、メモリへの書き込みコマンド（“ＲＤ”コマンド）を送信することにより、ＢＥＣバッファ１０５に格納されたデータが、ＦＲＴ１０３を介してＣＭ＃４のＣＰＵに移動される。これにより、ＣＭ＃４は、ＢＥＣバッファ内１０５のデータにアクセスすることになる。この処理を、図１９における矢印Ｗ４に示す。
【００３２】
図１７に例示するシーケンスチャートに比べ、図１８に例示するシーケンスチャートでは、ＣＭ＃４のＣＰＵがＣＭ＃８のＣＰＵに対してＲＥＡＤアクセスを依頼するステップ（図１９における矢印Ｗ１参照）が必要となる。さらに、ＣＭ＃８のＣＰＵが、ＣＭ＃４のＣＰＵに対して、メモリへの書き込みコマンドを送信して、ＢＥＣバッファ１０５に格納されたデータをＣＭ＃４のＣＰＵに移動させるステップ（図１９における矢印Ｗ４参照）も必要となる。
【００３３】
これらの結果、ドメインを跨った記憶装置へのアクセスを実行する場合には、同一のドメイン間でのアクセスを実行するのに比べて、当該アクセスに要する時間が長くなる（レスポンスが遅くなる）。
【００３４】
〔２〕一実施形態
一実施形態に係るストレージシステム１では、ドメインを跨った記憶装置へのアクセスに要する時間を短縮させる。
【００３５】
〔２−１〕一実施形態に係るストレージシステムのハードウェア構成例
図１は、実施形態の一例としてのストレージシステム１のハードウェア構成を例示する図である。
【００３６】
この図１に例示するように、ストレージシステム１は、スケールアウト型のストレージ制御装置であるＣＭを１つ以上（ＣＭ１０−０，・・・，ＣＭ１０−ｎ；ｎは０以上の整数）備える。また、ＣＭ１０−０，・・・，ＣＭ１０−ｎは、それぞれ、ＣＭ＃０,・・・，ＣＭ＃ｎとも表される。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１０−０，・・・，１０−ｎを用いるが、任意のＣＭを指すときには符号１０を用いる。なお、“＃”に続く数字（０，・・・，ｎ）は、識別子（ＩＤ）ともいい、ＣＭ１０の特定に用いる。
【００３７】
さらに、このストレージシステム１は、これら各ＣＭ１０に接続されるＦＲＴ３０を備える。
【００３８】
ＣＭ１０は、ＦＲＴ３０と接続され、種々の制御を行なうサーバである。このＣＭ１０は、図示しない管理装置に接続され、当該管理装置から記憶装置（後述するＮＶＭｅ−ＳＳＤ２０）のデータに対するアクセス要求を処理する。
【００３９】
ＮＶＭｅ−ＳＳＤ２０は、ＮＶＭｅインタフェースを用いるＳＳＤであり、種々のデータやプログラム等を格納するハードウェアの一例である。このＮＶＭｅ−ＳＳＤ２０は、トランザクション層のパケット（Transaction Layer Packet；ＴＬＰ）を生成する。なお、このＴＬＰは公知であるため、ここでの説明を省略する。
【００４０】
ＦＲＴ３０は、複数のＣＭ１０の各々を相互に通信可能にし、複数のＣＭ１０間で相互に送受信される情報を中継する、ルータ等の中継装置である。
【００４１】
この図１では、ＣＭ＃０とＣＭ＃１、ＣＭ＃４とＣＭ＃５、ＣＭ＃８とＣＭ＃９とでペアを構成することで本システム１を冗長化することを例示している。
【００４２】
そして、ＣＭ＃０，ＣＭ＃４，ＣＭ＃８をプライマリのストレージ制御装置、ＣＭ＃１，ＣＭ＃５，ＣＭ＃９をセカンダリのストレージ制御装置として機能させる。
【００４３】
また、図１に例示するストレージシステム１は、記憶装置として１つ以上のＮＶＭｅ−ＳＳＤ（ＮＶＭｅ−ＳＳＤ２０−０，・・・，ＮＶＭｅ−ＳＳＤ２０−ｍ；ｍは０以上の整数）を備える。また、ＮＶＭｅ−ＳＳＤ２０−０，・・・，ＮＶＭｅ−ＳＳＤ２０−ｍは、それぞれ、ＮＶＭｅ−ＳＳＤ＃０,・・・，ＮＶＭｅ−ＳＳＤ＃ｍとも表される。以下、ＮＶＭｅ−ＳＳＤを示す符号としては、複数のＮＶＭｅ−ＳＳＤのうち１つを特定する必要があるときには符号２０−０，・・・，２０−ｍを用いるが、任意のＮＶＭｅ−ＳＳＤを指すときには符号２０を用いる。
【００４４】
図１に例示するように、ストレージシステム１では、プライマリのＣＭ＃０とセカンダリＣＭ＃１とのペアに対して、ＮＶＭｅ−ＳＳＤ＃０を割り当て、プライマリのＣＭ＃４とセカンダリＣＭ＃５とのペアに対して、ＮＶＭｅ−ＳＳＤ＃２を割り当てる。また、プライマリのＣＭ＃８とセカンダリＣＭ＃９とのペアに対して、ＮＶＭｅ−ＳＳＤ＃４を割り当てる。
【００４５】
なお、図１では、ＣＭ１０のペアが、それぞれ１つのＮＶＭｅ−ＳＳＤ２０を備える場合を例示したが、複数のＮＶＭｅ−ＳＳＤ２０を備えてもよい。
【００４６】
〔２−２〕一実施形態に係るストレージシステムにおけるＣＭのハードウェア構成例
図２は、実施形態の一例としてのストレージシステム１におけるＣＭ１０のハードウェア構成を例示する図である。
【００４７】
この図２を用いて、図１に示すＣＭ１０のハードウェア構成を説明する。
【００４８】
ＣＭ１０は、例示的に、ＣＰＵ（Central Processing Unit）１１、記憶部１２、メモリ１３、ＩＦ部１４、入出力部１５、スイッチ１６、及び、変換部１７を備えてよい。また、この変換部１７は、変換部メモリ１８を備えてよい。
【００４９】
ＣＰＵ１１は、後述する記憶部１２に格納されるＯＳ（Operating System）やプログラムを実行し、例えば、図示しない管理装置から入力された要求に応じ、例えば、ＮＶＭｅ−ＳＳＤ２０へのアクセスを実行すべくＣＭ１０を制御する。本実施形態では、ＣＰＵ１１は、後述する制御プログラム９０を実行する。
【００５０】
記憶部１２は、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部１２は、ＣＭ１０の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。この記憶部１２としては、例えば、ＨＤＤ(Hard Disk Drive)の磁気ディスク装置の他、ＳＳＤやＳＣＭ(Storage Class Memories)が挙げられる。記憶部１２は、ＣＭ１０の各種機能の全部若しくは一部を実現するプログラム（後述する制御プログラム９０）を格納してもよい。
【００５１】
メモリ１３は、種々のデータやプログラム等を格納するハードウェアの一例である。メモリ１３としては、ＲＡＭ（Random Access Memory）等の揮発性メモリや、フラッシュメモリ、ＳＣＭ、ＲＯＭ（Read Only Memory）等の不揮発性メモリが挙げられる。また、メモリ１３は、制御プログラム９０を格納してもよい。なお、メモリ１３の一例として、後述する、ＤＣＭ１０が備えるＤＣＭメモリ、ＬＣＭ１０が備えるＬＣＭメモリ、及び、ＭＣＭ１０が備えるＭＣＭメモリがある。以下、ＬＣＭが備えるメモリ１３をＬＣＭメモリ１３Ｌといい、ＤＣＭ１０が備えるメモリ１３をＤＣＭメモリ１３Ｄという場合がある。
【００５２】
ＩＦ部１４は、他のＣＭ１０、ＮＶＭｅ−ＳＳＤ２０、ＦＲＴ３０、及び、図示しない管理装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えば、ＩＦ部１４は、図示しない管理装置を接続するためのアダプタ（ポート）を備えてもよい。なお、制御プログラム９０は、図示しないネットワークから当該ＩＦ部１４を介してダウンロードされてもよい。
【００５３】
入出力部１５は、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、の少なくともいずれか一つを含んでよい。
【００５４】
スイッチ１６は、ＣＭ１０、ＮＶＭｅ−ＳＳＤ２０、及び、ＦＲＴ３０との間の通信を制御する。このスイッチ１６は、ＣＰＵ１１が接続されるポートを１つ備え、ＮＶＭｅ−ＳＳＤ２０やＦＲＴ３０が接続されるポートを複数備えるものとする。また、スイッチ１６は、ＦＲＴ３０を介してＬＣＭ１０と通信する。なお、このスイッチ１６は、ＰＣＩｅ（PCI Express）のインタフェースを用いるものとする。
【００５５】
変換部１７は、ＤＣＭ１０において用いられるものであり、ＬＣＭ１０がＮＶＭｅ−ＳＳＤ２０に対してアクセスした場合に、情報（パケット）が含まれるＴＬＰの送信先アドレスをＬＣＭ１０側のアドレスに変換する。なお、この変換部１７はチップ化（ＦＰＧＡ等で集積回路化）することにより実現されてもよい。なお、ＦＰＧＡはField-Programmable Gate Arrayの略称である。また、ＤＣＭ１０が自身の配下にあるＮＶＭｅ−ＳＳＤ２０に対してアクセスした場合、アドレスの変換を行なわないものとする。
【００５６】
また、変換部１７が備える変換部メモリ１８は、種々のデータやプログラム等を格納するハードウェアの一例である。変換部メモリ１８としては、ＲＡＭ等の揮発性メモリや、フラッシュメモリ、ＳＣＭ、ＲＯＭ等の不揮発性メモリが挙げられる。
【００５７】
上述したＣＭ１０のハードウェア構成は例示である。したがって、ＣＭ１０内でのハードウェアの増減（例えば、任意のブロックの追加や省略）、分割、任意の組み合わせでの統合等は適宜行なわれてもよい。
【００５８】
〔２−３〕一実施形態にストレージシステムにおける機能構成例
本ストレージシステムに係るＣＭ１０の機能構成について、図３を用いて説明する。
【００５９】
図３は、図２に示す実施形態の一例としてのＣＭ１０の機能構成を例示する図である。
【００６０】
この図３では、ＬＣＭ１０がＣＭ＃４であり、ＤＣＭ１０がＣＭ＃8である場合の各機能構成を例示する。このＤＣＭ１０を第一のストレージ制御装置ともいい、ＬＣＭ１０を第二のストレージ制御装置ともいう。
【００６１】
図３に例示するように、ＬＣＭ１０（ＣＭ＃４）は、例示的に、解析部４０、及び、変換情報作成部４１を備えてもよい。そして、ＬＣＭメモリ１３Ｌは、例示的に、ＬＣＭ設定情報５０Ｌ、ＬＣＭ割り込み通知情報５１Ｌ、ＬＣＭアクセス情報５２Ｌ、及び、対ＤＣＭ領域５３を備えてもよい。また、この対ＤＣＭ領域５３は、例示的に、対ＤＣＭアクセス情報５４、アクセス用アドレス変換情報５５、及び、割り込み通知用アドレス変換情報５６を備えてもよい。
【００６２】
また、図３に例示するように、ＤＣＭ１０（ＣＭ＃８）は、例示的に、送受信部６０、及び、アドレス変換部６１を備えてもよい。そして、このアドレス変換部６１は、ＣＭアドレス情報６２を備えてもよい。さらに、ＤＣＭメモリ１３Ｄは、例示的に、ＤＣＭ設定情報５０Ｄ、ＤＣＭ割り込み通知情報５１Ｄ、及び、ＤＣＭアクセス情報５２Ｄを備えてもよい。
【００６３】
まず、ＬＣＭ（ＣＭ＃４）の機能構成について説明する。
【００６４】
ＬＣＭの解析部４０は、ＤＣＭ１０に対して、ＤＣＭ設定情報５０ＤとＤＣＭ割り込み通知情報５１Ｄとを含む設定情報の送信を依頼する。また、解析部４０は、ＤＣＭ１０の送受信部６０から設定情報を受信し、受信した設定情報を解析する。解析部４０は、受信した設定情報を解析して、例えば、ＤＣＭ１０のアドレスや、ＤＣＭ１０の配下にあるＮＶＭｅ−ＳＳＤ２０のアドレスを抽出する。なお、これらのＤＣＭ設定情報５０Ｄ、及び、ＤＣＭ割り込み通知情報５１Ｄについては、後述する。
【００６５】
ＬＣＭの変換情報作成部４１は、ＬＣＭメモリ１３Ｌ上に、変換情報（後述する、アクセス用アドレス変換情報５５と割り込み通知用アドレス変換情報５６）の領域を作成し、当該変換情報を作成する。また、このＬＣＭの変換情報作成部４１は、作成した変換情報を、後述するＤＣＭ１０のアドレス変換部６１に送信する。
【００６６】
次に、ＬＣＭメモリ１３Ｌが備える、ＬＣＭ設定情報５０Ｌ、ＬＣＭ割り込み通知情報５１Ｌ、ＬＣＭアクセス情報５２Ｌ、及び、対ＤＣＭアクセス情報５４について、図４の（ａ）を用いて説明する。
【００６７】
この図４の（ａ）は、ＬＣＭメモリ１３Ｌの記憶領域の使用例を示す図である。
【００６８】
この図４の（ａ）に例示するように、ＬＣＭメモリ１３Ｌには、一例として、ＬＣＭ設定情報５０Ｌ、ＬＣＭ割り込み通知情報５１Ｌ、ＬＣＭアクセス情報５２Ｌ、及び、対ＤＣＭアクセス情報５４がそれぞれ格納される。そのため、ＬＣＭメモリ１３Ｌ上には、図４の（ａ）に例示するような、これら各種情報の記憶領域が備えられるものとする。
【００６９】
ＬＣＭ設定情報５０Ｌは、ＬＣＭ１０の配下にあるＮＶＭｅ−ＳＳＤ２０の設定情報（ＰＣＩｅコンフィグ（config）情報）であり、例えば、配下のＮＶＭｅ−ＳＳＤ２０のアドレスを含む。図３に示す例において、ＣＭ＃４（ＬＣＭ１０）の備えるメモリ１３のＬＣＭ設定情報５０Ｌには、例えば、自身が担当ＣＭであるＮＶＭｅ−ＳＳＤ＃２の設定情報が格納される。なお、この設定情報には、他のドメインに属するＮＶＭｅ−ＳＳＤ２０の設定情報は含まれない。
【００７０】
ＬＣＭ割り込み通知情報５１Ｌは、ＬＣＭ１０が、自身の配下にあるＮＶＭｅ−ＳＳＤ２０から通知される割り込み（後述する“ＭＳＩ−Ｘ”コマンド）に関する情報である。例えば、図３の場合、ＣＭ＃４（ＬＣＭ１０）の備えるメモリ１３のＬＣＭ割り込み通知情報５１Ｌには、ＤＣＭ１０からＬＣＭ１０に対して送信される完了の通知が格納される。
【００７１】
ＬＣＭアクセス情報５２Ｌは、ＬＣＭ１０と、当該ＬＣＭ１０が担当ＣＭであるＮＶＭｅ−ＳＳＤ２０との間で送受信されるコマンド（例えば、“ＳＱ”コマンドや“ＣＱ”コマンド）を含む。このコマンドについては後述する。
【００７２】
このように、上述した、ＬＣＭ設定情報５０Ｌ、ＬＣＭ割り込み通知情報５１Ｌ、及び、ＬＣＭアクセス情報５２Ｌは、ＬＣＭ１０が、自身の配下にあるＮＶＭｅ−ＳＳＤ２０との間で送受信する情報や、当該送受信に必要な設定情報を格納するものである。一方、ＬＣＭメモリ１３Ｌにおける、対ＤＣＭ領域５３は、ＬＣＭ１０が、ＤＣＭ１０との間で送受信する情報や、当該送受信に必要な設定情報を格納するものである。この対ＤＣＭ領域５３について以下に説明する。
【００７３】
対ＤＣＭ領域５３は、上述したように、ＬＣＭ１０が、ＤＣＭ１０との間で送受信する情報や、当該送受信に必要な設定情報を格納するものである。
【００７４】
この対ＤＣＭ領域５３は、図３に例示するように、対ＤＣＭアクセス情報５４、アクセス用アドレス変換情報５５、及び、割り込み通知用アドレス変換情報５６を備える。図５，図６を参照しながら、これらの各情報について説明する。なお、図４の（ａ）中の「ＢＡＲ（α’）」は、ＬＣＭメモリ１３Ｌにおいて、対ＤＣＭ領域５３内に対ＤＣＭアクセス情報５４が格納される領域の先頭アドレスを示すものである。
【００７５】
対ＤＣＭアクセス情報５４は、ＬＣＭ１０が、ＤＣＭ配下のＮＶＭｅ−ＳＳＤ２０に対してアクセスした場合に、ＬＣＭ１０とＤＣＭ配下のＮＶＭｅ−ＳＳＤ２０との間で送受信されるコマンド（例えば、“ＳＱ”コマンド）を含む。例えば、図２に示す例の場合、ＣＭ＃４（ＬＣＭ１０）と、ＣＭ＃８（ＤＣＭ１０）が担当ＣＭであるＮＶＭｅ−ＳＳＤ＃４との間で送受信されるコマンド（例えば、“ＳＱ”コマンド）が格納される。このコマンドについては後述する。
【００７６】
図５は、アクセス用アドレス変換情報５５を例示するものである。また、図６は、割り込み通知用アドレス変換情報５６を例示するものである。なお、本実施形態では、図５，図６に示すように、アクセス用アドレス変換情報５５、及び、割り込み通知用アドレス変換情報５６をテーブル形式で表現している。しかしながら、アクセス用アドレス変換情報５５、及び、割り込み通知用アドレス変換情報５６に格納される情報の表現形式はテーブルに限られるものではなく、種々変形して実施することができる。
【００７７】
なお、図５に例示するこれらのアクセス用アドレス変換情報５５、及び、図６に例示する割り込み通知用アドレス変換情報５６では、ＤＣＭ１０（ＣＭ＃８），ＬＣＭ１０（ＣＭ＃４）に関する情報を取り上げて例示するが、これに限られるものではない。また、これらのアクセス用アドレス変換情報５５と割り込み通知用アドレス変換情報５６とを総称して、変換情報ともいう。
【００７８】
図５に例示するアクセス用アドレス変換情報５５は、“ＣＭ＿ＩＤ”、及び、“アクセス用アドレス”の各フィールドを備える。
【００７９】
アクセス用アドレス変換情報５５のフィールド“ＣＭ＿ＩＤ”は、ＣＭ１０を一意に特定するためのＩＤを格納するものである。なお、本実施形態において、この“ＣＭ＿ＩＤ”に格納される値は、管理者によって付与されるものとする。
【００８０】
アクセス用アドレス変換情報５５のフィールド“アクセス用アドレス”は、フィールド“ＣＭ＿ＩＤ”に格納される値により特定されるＣＭ１０の備えるメモリ１３において、コマンドを格納する領域の先頭アドレスである。このフィールド“アクセス用アドレス”に格納される値を、アドレス情報ともいう。
【００８１】
図５は、ＣＭ＃８（ＤＣＭ１０）が、自メモリ（ＤＣＭメモリ）１３上のアドレス「ＢＡＲ（α）」で始まる領域に、配下のＮＶＭｅ−ＳＳＤ２０に対するコマンド（ＤＣＭアクセス情報５２Ｄ）を格納することを示す（図４の（ｂ）参照）。
【００８２】
また、ＣＭ＃４（ＬＣＭ１０）が自メモリ（ＬＣＭメモリ）１３上のアドレス「ＢＡＲ（α’）」で始まる領域に、他ＣＭ１０配下のＮＶＭｅ−ＳＳＤ２０に対するコマンド（対ＤＣＭアクセス情報５４）を格納することを示す（図４の（ａ）参照）。
【００８３】
次に、図６に例示する割り込み通知用アドレス変換情報５６は、“ＣＭ＿ＩＤ”、及び、“割り込み通知用アドレス”の各フィールドを備える。
【００８４】
割り込み通知用アドレス変換情報５６のフィールド“ＣＭ＿ＩＤ”は、ＣＭ１０を一意に特定するためのＩＤを格納するものである。なお、本実施形態において、この“ＣＭ＿ＩＤ”に格納される値は、管理者によって付与されるものとする。
【００８５】
割り込み通知用アドレス変換情報５６のフィールド“割り込み通知用アドレス”は、フィールド“ＣＭ＿ＩＤ”に格納される値により特定されるＣＭ１０の備えるメモリ１３において、割り込み通知情報を格納する領域の先頭アドレスである。
【００８６】
図６は、ＣＭ＃８（ＤＣＭ１０）が、自メモリ（ＤＣＭメモリ）１３上のアドレス「ＢＡＲ（β）」で始まる領域に、配下のＮＶＭｅ−ＳＳＤ２０からのに対する割り込み通知情報を格納することを示す（図４の（ｂ）参照）。なお、このアドレス「ＢＡＲ（β）」については図示を省略する。
【００８７】
また、ＣＭ＃４（ＬＣＭ１０）が自メモリ（ＬＣＭメモリ）１３上のアドレス「ＢＡＲ（β’）」で始まる領域に、他ＣＭ１０配下のＮＶＭｅ−ＳＳＤ２０からの割り込み通知情報を格納することを示す（図４の（ａ）参照）。なお、このアドレス「ＢＡＲ（β’）」については図示を省略する。
【００８８】
次に、図３に例示するＣＭ１０の機能構成に関する説明に戻り、ＤＣＭ１０（ＣＭ＃８）の機能構成について説明する。
【００８９】
ＤＣＭ１０の送受信部６０は、ＤＣＭ１０だけでなく、ＬＣＭ１０に対してもＦＲＴ３０を介して情報を送受信できる機能を備える。この送受信部６０は、図２に例示するスイッチ１６によって実現されるものとする。また、ＬＣＭ１０によるアクセス要求の送信は、ＬＣＭ１０のＣＰＵ１１（データアクセス要求発行部）によって実行される。
【００９０】
この送受信部６０は、ＬＣＭ１０からのアクセス要求をＦＲＴ３０を介して受信し、受信したアクセス要求をアドレス変換部６１を介してＮＶＭｅ−ＳＳＤ２０に渡す。なお、本実施形態では、後述する、アクセス開始の通知（“ＳＱ＿Ｂｅｌｌ”コマンドの送信）や、フェッチしたコマンド（“ＳＱ”コマンド）の送信を総称してアクセス要求、又は、データアクセス要求ともいう。また、このアクセス要求には、読み出し要求と書き込み要求とが含まれるものとする。
【００９１】
また、送受信部６０は、ＬＣＭ１０からのアクセス要求に対するライトデータやリードデータをアドレス変換部６１を介してＮＶＭｅ−ＳＳＤ２０から受信し、要求元のＬＣＭ１０にＦＲＴ３０を介して送信する。
【００９２】
また、送受信部６０は、ＬＣＭ１０への指示や通知、及び、完了応答をアドレス変換部６１を介してＮＶＭｅ−ＳＳＤ２０から受信し、要求元のＬＣＭ１０にＦＲＴ３０を介して送信する。なお、本実施形態では、後述する、コマンドフェッチの指示（“ＭＲｄ”（ＴＬＰ）コマンドの送信）、完了応答（“ＣＱ”コマンドの送信）、及び、割り込み通知（“ＭＳＩ−Ｘ”コマンド）の送信を総称して応答データともいう。
【００９３】
また、送受信部６０は、ＬＣＭ１０の解析部４０から、ＤＣＭ設定情報５０ＤとＤＣＭ割り込み通知情報５１Ｄとの送信の依頼を受け、ＦＲＴ３０を介してＬＣＭ１０に対してこれらの情報を送信する。なお、これらのＤＣＭ設定情報５０ＤとＤＣＭ割り込み通知情報５１Ｄとを総称して、設定情報ともいう。
【００９４】
ＤＣＭ１０のアドレス変換部６１は、ＮＶＭｅ−ＳＳＤ２０に対するアクセス要求元がＬＣＭ１０である場合、当該アクセス要求に対する情報の送信先（返信先）を、要求元であるＬＣＭ１０（側）のアドレスに変換する機能を備える。そのために、アドレス変換部６１は、ＬＣＭ１０の変換情報作成部４１から、変換情報（アクセス用アドレス変換情報５５、及び、割り込み通知用アドレス変換情報５６）を受信し、後述するＣＭアドレス情報６２を設定（更新）する。そして、変換部１７は、設定したＣＭアドレス情報６２を用いて、応答データが含まれるＴＬＰの送信先アドレスをＬＣＭ１０（側）のアドレスに変換する。
【００９５】
なお、このアドレス変換部６１は、図２に例示する変換部１７によって実現されるものであり、また、ＣＰＵ１１が制御プログラム９０を実行することにより実現されるものとする。
【００９６】
また、アドレス変換部６１は、後述するＣＭアドレス情報６２を備える。このＣＭアドレス情報６２は、図２に例示する変換部メモリ１８に格納されてもよい。
【００９７】
ＣＭアドレス情報６２は、ＬＣＭ１０（側）とＤＣＭ１０とのアドレス情報であり、一例として、図５に例示するアクセス用アドレス変換情報５５、及び、図６例示する割り込み通知用アドレス変換情報５６と同等の情報を同形式で備えてもよい。具体的には、ＤＣＭ１０が、自身の配下であるＮＶＭｅ−ＳＳＤ２０に対するコマンドを格納する領域の先頭アドレスを備えてもよい。また、ＬＣＭ１０からＤＣＭ１０の配下のＮＶＭｅ−ＳＳＤ２０に対するコマンドを格納する領域の先頭アドレスを備えてもよい。
【００９８】
次に、ＤＣＭメモリ１３Ｄが備える、ＤＣＭ設定情報５０Ｄ、ＤＣＭ割り込み通知情報５１Ｄ、及び、ＤＣＭアクセス情報５２Ｄについて図４の（ｂ）を用いて説明する。
【００９９】
この図４の（ｂ）は、ＤＣＭメモリ１３Ｄの記憶領域の使用例を示す図である。
【０１００】
この図４の（ｂ）に例示するように、ＤＣＭメモリ１３Ｄには、ＤＣＭ設定情報５０Ｄ、ＤＣＭ割り込み通知情報５１Ｄ、及び、ＤＣＭアクセス情報５２Ｄが格納される。そのため、ＤＣＭメモリ１３Ｄ上には、図４の（ｂ）に例示するようなこれらの各種情報のための記憶領域がそれぞれ備えられるものとする。
【０１０１】
ＤＣＭ設定情報５０Ｄは、ＤＣＭ１０の配下にあるＮＶＭｅ−ＳＳＤ２０の設定情報（ＰＣＩｅコンフィグ（config）情報）であり、例えば、配下のＮＶＭｅ−ＳＳＤ２０のアドレスを含む。図２の場合、ＣＭ＃８（ＤＣＭ１０）の備えるメモリ１３の設定情報５０には、例えば、自身が担当ＣＭであるＮＶＭｅ−ＳＳＤ＃４の設定情報が格納される。なお、この設定情報には、他のドメインに属するＮＶＭｅ−ＳＳＤ２０の設定情報は含まれない。
【０１０２】
ＤＣＭ割り込み通知情報５１Ｄは、ＤＣＭ１０が、自身の配下にあるＮＶＭｅ−ＳＳＤ２０から通知される割り込み（後述する“ＭＳＩ−Ｘ”コマンド）に関する情報である。例えば、図２に示す例の場合、ＣＭ＃８（ＤＣＭ１０）の備えるメモリ１３のＤＣＭ割り込み通知情報５２Ｄには、ＤＣＭ１０の割り込み通知に関する情報が格納される。
【０１０３】
また、ＤＣＭアクセス情報５２Ｄは、ＤＣＭ１０配下のＮＶＭｅ−ＳＳＤ２０に対するコマンドが格納される。例えば、図２に示す例の場合、ＣＭ＃８（ＤＣＭ１０）が、自身が担当ＣＭであるＮＶＭｅ−ＳＳＤ＃４に対するコマンドが格納される。なお、図４の（ｂ）に示す「ＢＡＲ（α）」は、ＤＣＭメモリ１３Ｄ上に当該コマンドが格納される領域の開始アドレスを示す。
【０１０４】
なお、本実施形態では、上述したＬＣＭメモリ１３Ｌ内のＬＣＭ設定情報５０Ｌ，ＬＣＭ割り込み通知情報５１Ｌ，ＬＣＭアクセス情報５２Ｌに格納される情報は、ストレージシステム１の起動時に書き込まれるか、又は、当該情報が更新されるものとする。同様に、上述したＬＣＭメモリ１３Ｌの対ＤＣＭ領域５３内の情報（対ＤＣＭアクセス情報５４，アクセス用アドレス変換情報５５，割り込み通知用アドレス変換情報５６）は、本システム１の起動時に書き込まれるか、又は、当該情報が更新されるものとする。
【０１０５】
また、本実施形態では、変換部メモリ１８内のＣＭアドレス情報６２に格納される情報は、ストレージシステム１の起動時に当該情報が書き込まれるか、又は、当該情報が更新されるものとする。これは、ＣＰＵ１１が制御プログラム９０を実行することにより実現されるものとする。
【０１０６】
〔２−４〕一実施形態に係るストレージシステムにおける起動時の処理
上述の如く構成された実施形態の一例として、ストレージシステム１における起動時の処理を、図７に示すシーケンスチャート（ステップＳ１〜Ｓ９）に従って説明する。
【０１０７】
この図７は、一実施形態に係るストレージシステム１における起動時の処理を説明するためのシーケンスチャートである。図７では、ＣＭ＃４がＬＣＭ１０であり、ＣＭ＃８がＤＣＭ１０であり、ＣＭ＃８（ＤＣＭ１０）がＮＶＭｅ−ＳＳＤ＃４の担当ＣＭである場合のストレージシステム１における起動時の処理を例示する。
【０１０８】
なお、図７のステップＳ１に示す処理は、ストレージシステム１の起動を起点として開始するものとする。
【０１０９】
ステップＳ１において、ＤＣＭ１０は、自身が担当ＣＭであるＮＶＭｅ−ＳＳＤ２０を設定する。図７の例では、ステップＳ１において、ＣＭ＃８（ＤＣＭ１０）がＮＶＭｅ−ＳＳＤ＃４を設定する。
【０１１０】
続くステップＳ２において、ＬＣＭ（ＣＭ＃４）の解析部４０は、ＤＣＭ１０（ＣＭ＃８）に対して設定情報を依頼する。
【０１１１】
続くステップＳ３において、ＤＣＭ１０（ＣＭ＃８）の送受信部６０は、ＬＣＭ１０（ＣＭ＃４）に対して設定情報を送信する。具体的には、ＤＣＭ１０（ＣＭ＃８）の送受信部６０は、ＤＣＭ設定情報５０ＤとＤＣＭ割り込み通知情報５１ＤとをＬＣＭ１０（ＣＭ＃４）に対して送信する。
【０１１２】
続くステップＳ４において、ＬＣＭ１０（ＣＭ＃４）の解析部４０は、上記ステップＳ５にてＤＣＭ１０（ＣＭ＃８）が送信した設定情報を受信する。
【０１１３】
続くステップＳ５において、ＬＣＭ１０（ＣＭ＃４）の解析部４０は、上記ステップＳ４にて受信した設定情報を解析する。解析部４０は、受信した設定情報を解析して、例えば、ＤＣＭ１０のアドレスや、ＤＣＭ１０の配下にあるＮＶＭｅ−ＳＳＤ２０のアドレスを抽出する。
【０１１４】
続くステップＳ６において、ＬＣＭ１０（ＣＭ＃４）の変換情報作成部４１は、ＬＣＭメモリ１３Ｌ上に対ＤＣＭ領域５３を作成する。
【０１１５】
続くステップＳ７において、ＬＣＭ１０（ＣＭ＃４）の変換情報作成部４１は、例えば、上記ステップＳ５にて抽出した情報（ＤＣＭ１０のアドレス等）に基づき、変換情報を作成し、対ＤＣＭ領域５３に格納する。具体的に、変換情報作成部４１は、アクセス用アドレス変換情報５５（図５参照）、及び、割り込み通知用アドレス変換情報５６（図６参照）を生成し対ＤＣＭ領域５３に格納する。すなわち、ステップＳ７では、図５，図６に示すような、ＬＣＭ１０（ＣＭ＃４）とＤＣＭ１０（ＣＭ＃８）とのアドレスの対応情報を作成する。
【０１１６】
続くステップＳ８において、ＬＣＭ１０（ＣＭ＃４）の変換情報作成部４１は、上記ステップＳ７にて生成した変換情報をＤＣＭ１０（ＣＭ＃８）に対して送信する。
【０１１７】
続くステップＳ９において、ＤＣＭ１０（ＣＭ＃８）の送受信部６０は、上記ステップＳ８にて送信された変換情報を受信する。そして、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１は、この受信した変換情報に基づき変換部メモリ１８上のＣＭアドレス情報６２を設定する。なお、この処理は、ＣＰＵ１１が制御プログラム９０を実行することにより実現されるものとする。そして、処理を終了する。
【０１１８】
上述したステップＳ１〜Ｓ９に示す処理を経て、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）は、ＤＣＭ１０のアドレスだけでなく、ＬＣＭ１０（側）のアドレスをも取得することができる。これにより、ＬＣＭ１０から、ＤＣＭ１０が担当ＣＭであるＮＶＭｅ−ＳＳＤ２０に対するアクセス要求があった場合にも、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）により、ＴＬＰの送信先をＬＣＭ１０（側）宛に変更できる。そして、ＤＣＭ１０側では、ＤＣＭメモリ１３Ｄを介さずに、ＤＣＭ１０のスイッチ１６がＦＲＴ３０を介してＬＣＭ１０へ応答データを送受信することが可能となる。
【０１１９】
なお、図７に例示した起動処理では、ＬＣＭ１０（ＣＭ＃４）とＤＣＭ１０（ＣＭ＃８）との間で上記のような起動時の処理を行なう場合を例示したが、これに限られない。また、当該ストレージシステム１に上記以外のＣＭ１０も備えられる場合には、すべての又は一部のＣＭ１０の組み合わせについて図９に例示する起動時の処理を行なってもよい。
【０１２０】
また、上記図７のステップＳ１に示す処理は、ストレージシステム１の起動を起点として開始するものとしたが、当該ストレージシステム１に備える各種装置（例えば、ＣＭ１０やＮＶＭｅ−ＳＳＤ２０）の増減が発生したタイミングで開始するものとしてもよい。
【０１２１】
〔２−５〕一実施形態に係るストレージシステムにおけるドメインを跨ったアクセスの処理
上述の如く構成された実施形態の一例として、ストレージシステム１におけるドメインを跨ったアクセスの処理を、図９〜１２を参照しながら、図８に示すシーケンスチャート（ステップＴ１〜Ｔ６）に従って説明する。
【０１２２】
図８は、本実施形態におけるドメインを跨ったアクセスの処理を説明するためのシーケンスチャートである。具体的に、この図８は、図１に例示するストレージシステム１において、ＬＣＭ１０（ＣＭ＃４）から、ＤＣＭ１０（ＣＭ＃８）の配下にあるＮＶＭｅ−ＳＳＤ＃４に対して読み出しによるアクセスを実行した場合のシーケンスチャートである。
【０１２３】
図９は、本実施形態におけるドメインを跨ったアクセスの処理を模式的に説明するための図である。
【０１２４】
図１０は、本実施形態におけるドメインを跨ったアクセスの処理と比較例とを比較するための図である。
【０１２５】
図１１は、本実施形態における書き込み要求時に送受信される情報を例示する図である。この図１１は、ＬＣＭ１０であるＣＭ＃４からＤＣＭ１０であるＣＭ＃８配下のＮＶＭｅ−ＳＳＤ＃４に対してデータの読み出しを要求した際に、ＣＭ＃４とＮＶＭｅ−ＳＳＤ＃４との間で送受信される各情報を例示したものである。
【０１２６】
図８のステップＴ１において、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、ＦＲＴ１０３を介してＮＶＭｅ−ＳＳＤ＃４に対してアクセス開始を通知する（“ＳＱ＿Ｂｅｌｌ”コマンドを送信する）。なお、この“ＳＱ”は“Submission Queue”を表す。
【０１２７】
このステップＴ１に示す処理を、図９における矢印Ｐ１に示す。この矢印Ｐ１に示すように、ＬＣＭ１０（ＣＭ＃４）から送信されたアクセス開始の通知は、ＤＣＭ１０（ＣＭ＃８）の送受信部６０（スイッチ１６）で受信され、当該要求がＮＶＭｅ−ＳＳＤ＃４に送信される。なお、本実施形態では、ＬＣＭ１０（ＣＭ＃４）側での情報の送受信の処理は、当該ＬＣＭ１０（ＣＭ＃４）が備える送受信部６０（スイッチ１６）が行なうものとする。
【０１２８】
続くステップＴ２において、ＮＶＭｅ−ＳＳＤ＃４は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して、コマンドフェッチを指示する（“ＭＲｄ（ＳＱ）”コマンドを送信する）。なお、この“ＭＲｄ”は“Memory Read”（メモリリード）を表す。
【０１２９】
このステップＴ２に示す処理を、図９における矢印Ｐ２に示す。この矢印Ｐ２に示すように、ＮＶＭｅ−ＳＳＤ＃４から送信されたコマンドフェッチの指示は、ＴＬＰにてＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）に送信される。そして、このアドレス変換部６１（変換部１７）がＣＭアドレス情報６２を参照し、当該ＴＬＰの送信先アドレスを、当該要求元であるＣＭ（ＣＭ＃４）側のアドレスに変換する。そして、変換したアドレスが送信先アドレスとなったＴＬＰがＤＣＭ１０（ＣＭ＃８）の送受信部６０（スイッチ１６）へ送信され、送受信部６０（スイッチ１６）は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対してコマンドフェッチの指示を送信する。
【０１３０】
図５に示す例の場合、ステップＴ２において、アドレス変換部６１（変換部１７）は、ＲＥＡＤアクセス要求に対する返信の宛先アドレス（送信先アドレス）を、「ＢＡＲ（α）」から「ＢＡＲ（α’）」に変更する。
【０１３１】
このステップＴ２においてＮＶＭｅ−ＳＳＤ＃４から送信された情報を図１１の矢印Ｃ１で示す。この矢印Ｃ１で示す情報は、ＮＶＭｅ−ＳＳＤ＃４からＳＱ宛に発行されたコマンド“ＭＲｄ”（ＴＬＰ）を表す。なお、図１１の矢印Ｃ２に示す、送信先アドレス（「０ｘ００００Ｅ２３Ｃ０」）は、ＤＣＭメモリ１３ＤにおけるＤＣＭアクセス情報５２Ｄの領域内でＳＱコマンド用データが格納されるアドレスを示す。また、変換後の送信先アドレス（「０ｘ００００Ｅ２３Ｃ０’」）は、ＬＣＭメモリ１３Ｌにおける対ＤＣＭ領域５３の対ＤＣＭアクセス情報５４領域内でＳＱコマンド用データが格納されるアドレスを示す。このようにして、コマンド“ＭＲｄ”（ＴＬＰ）の送信先がＤＣＭ１０（ＣＭ＃８）からＬＣＭ１０（＃４）に変換されたことがわかる。
【０１３２】
続くステップＴ３において、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、上記ステップＴ２にて受信したコマンドフェッチの指示を受けて、当該ＬＣＭメモリ１３Ｌからコマンドをフェッチする。そして、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、フェッチしたコマンドを、ＦＲＴ１０３を介してＮＶＭｅ−ＳＳＤ＃４に対して送信する（“ＳＱ”コマンドを送信する）。また、このコマンドには、ＬＣＭ（ＣＭ＃４）のアドレスが含まれる。このように、ＮＶＭｅ−ＳＳＤ＃４は、ＬＣＭ１０（ＣＭ＃４）から“ＳＱ”コマンドを受信してはじめて、ＬＣＭ１０（ＣＭ＃４）が自身に対してどのようなコマンド（例えば、リードコマンドやライトコマンド）を送信したのかがわかる。
【０１３３】
続くステップＴ４において、ＮＶＭｅ−ＳＳＤ＃４は、リードデータを読み出して、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対し、読み出した情報を送信する（“ＲＤ”コマンドを送信する）。なお、この“ＲＤ”は“Read Data”を表す。
【０１３４】
このステップＴ４に示す処理を、図９における矢印Ｐ２に示す。この矢印Ｐ２に示すように、ＮＶＭｅ−ＳＳＤ＃４で読み出された情報は、ＴＬＰにてＤＣＭ１０（ＣＭ＃８）の送受信部６０（スイッチ１６）へ送信される。そして、送受信部６０（スイッチ１６）は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対してリードデータを送信する。このステップＴ４では、上述したステップＴ３において受信したＬＣＭ（ＣＭ＃４）のアドレスを用いてＬＣＭ（ＣＭ＃４）に対してリードデータを送信するため、アドレス変換部６１（変換部１７）においてはアドレス変換の処理は行なわない。
【０１３５】
続くステップＴ５において、ＮＶＭｅ−ＳＳＤ＃４は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して、ＲＥＡＤコマンドの完了応答（“ＣＱ”コマンド）を送信する。なお、この“ＣＱ”は“Completion Queue”を表す。
【０１３６】
このステップＴ５に示す処理も、上記ステップＴ２における処理と同様に、図９における矢印Ｐ２の流れとなる。すなわち、矢印Ｐ２に示すように、ＮＶＭｅ−ＳＳＤ＃４が送信した完了応答（“ＣＱ”コマンド）は、ＴＬＰにてＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）に送信される。そして、このアドレス変換部６１（変換部１７）がＣＭアドレス情報６２を参照し、当該ＴＬＰの送信先アドレスを、当該要求元であるＣＭ（ＣＭ＃４）のアドレスに変換する。そして、変換したアドレスが送信先アドレスとなったＴＬＰがＤＣＭ１０（ＣＭ＃８）の送受信部６０（スイッチ１６）へ送信され、送受信部６０（スイッチ１６）は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対してＲＥＡＤコマンドの完了応答を送信する。
【０１３７】
このステップＴ５においてＮＶＭｅ−ＳＳＤ＃４から送信された情報を図１１の矢印Ｃ３で示す。この矢印Ｃ３で示す情報は、ＮＶＭｅ−ＳＳＤ＃４からＳＱ宛に発行されたコマンド“ＣｐｌＱ”（“ＭＷｒ”；ＴＬＰ）を表す。なお、図１１の矢印Ｃ４に示す、送信先アドレス（「０ｘ００００Ｆ２０Ｆ０」）は、ＤＣＭメモリ１３ＤにおけるＤＣＭアクセス情報５２Ｄの領域内でＣＱコマンド用データが格納されるアドレスを示す。また、変換後の送信先アドレス（「０ｘ００００Ｆ２０Ｆ０’」）は、ＬＣＭメモリ１３Ｌにおける対ＤＣＭ領域５３の対ＤＣＭアクセス情報５４の領域内でＣＱコマンド用データが格納されるアドレスを示す。このようにして、コマンド“ＭＲｄ”（ＴＬＰ）の送信先がＤＣＭ１０（ＣＭ＃８）からＬＣＭ１０（＃４）に変換されたことがわかる。
【０１３８】
続くステップＴ６において、ＮＶＭｅ−ＳＳＤ＃４は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して、割り込み通知（“ＭＳＩ−Ｘ”コマンド）を送信する。なお、この“ＭＳＩ−Ｘ”は“Message Signaled Interrupts”を表す。
【０１３９】
このステップＴ６に示す処理も、上記ステップＴ２，Ｔ５における処理と同様に、図９における矢印Ｐ２の流れとなる。すなわち、矢印Ｐ２に示すように、ＮＶＭｅ−ＳＳＤ＃４が送信した割り込み通知（“ＭＳＩ−Ｘ”コマンド）は、ＴＬＰにてＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）に送信される。そして、このアドレス変換部６１（変換部１７）がＣＭアドレス情報６２を参照し、当該ＴＬＰの送信先アドレスを、当該要求元であるＣＭ（ＣＭ＃４）側のアドレスに変換する。そして、変換したアドレスが送信先アドレスとなったＴＬＰがＤＣＭ１０（ＣＭ＃８）の送受信部６０（スイッチ１６）へ送信される。そして、送受信部６０（スイッチ１６）は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して割り込み通知（“ＭＳＩ−Ｘ”コマンド）を送信する。そして、処理を終了する。
【０１４０】
このステップＴ６においてＮＶＭｅ−ＳＳＤ＃４から送信された情報を図１１の矢印Ｃ５で示す。この矢印Ｃ５で示す情報は、ＮＶＭｅ−ＳＳＤ＃４からＳＱ宛に発行されたコマンド“ＭＳＩ−Ｘ  Ｉｎｔｅｒｒｕｐｔ”（“ＭＷｒ”；ＴＬＰ）を表す。なお、図１１の矢印Ｃ６に示す、送信先アドレス（「０ｘＦＥＥ０００００」）は、ＤＣＭメモリ１３ＤにおけるＤＣＭ割り込み通知情報５１Ｄの領域内でＭＳＩ−Ｘコマンド用データが格納されるアドレスを示す。また、変換後の送信先アドレス（「０ｘＦＥＥ０００００’」）は、ＬＣＭメモリ１３Ｌにおける対ＤＣＭ領域５３の対ＤＣＭアクセス情報５４領域内でＭＳＩ−Ｘ用データが格納されるアドレスを示す。このようにして、コマンド“ＭＲｄ”（ＴＬＰ）の送信先がＤＣＭ１０（ＣＭ＃８）からＬＣＭ１０（＃４）に変換されたことがわかる。
【０１４１】
上記ステップＴ１〜Ｔ６に示す処理を経ることにより、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、ＤＣＭ１０（ＣＭ＃８）のＣＰＵ１１やＢＥＣバッファ（１０５）を介さず、リクエストの送受信を行なうことができる。
【０１４２】
図１０には、本実施形態におけるドメインを跨ったアクセス処理（右図）と、比較例におけるドメインを跨ったアクセス処理（左図）とを例示する。
【０１４３】
図１０を参照すると、本実施形態（右図）では、ステップＴ２のコマンドフェッチの指示、ステップＴ５のＲＥＡＤコマンドの完了応答、及び、ステップＴ６の割り込み通知が、ＮＶＭｅ−ＳＳＤ＃４からＬＣＭ１０（ＣＭ＃４のＣＰＵ１１）に送信される。これは、これらのメッセージ（ＴＬＰ）の送信先が、アドレス変換部６１（変換部１７）によってＬＣＭ１０（ＣＭ＃４）側のアドレスに変換されるからである。
【０１４４】
比較例（左図）では、以上のメッセージの送受信においてＣＭ＃８のＣＰＵ１１やＢＥＣバッファ（１０５）が介在することになる。これに対し、本実施形態では、ＣＭ＃８のＣＰＵ１１やＢＥＣバッファ（１０５）への通信を回避することができる。
【０１４５】
一方、比較例（左図）では、ＤＣＭ１０（ＣＭ＃８）のＣＰＵ１１がＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して、メモリ書き込み（“Ｍｅｍ  Ｗｒ”）コマンドを送信することにより、ＢＥＣバッファ１０５のデータがＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に移動される。これに対し、本実施形態では、ＢＥＣバッファ（１０５）を用いずに情報をＬＣＭ１０（ＣＭ＃４）へ送信できる。
【０１４６】
したがって、本実施形態におけるドメインを跨った記憶装置（ＮＶＭｅ−ＳＳＤ２０）へのアクセス時間を短縮することができる。
【０１４７】
また、図８〜図１１を用いてＬＣＭ１０（＃４）から読み出し要求を受信した場合を上述したが、書き込み要求を受信した場合においても、ＴＬＰの送信先アドレスは同様に変換される。この書き込み要求時に送受信される情報について図１２に例示する。図１２に例示する要求時に送受信される情報（コマンド（ＴＬＰ））は、図１１に例示した読み出し要求時に送受信される情報と概ね同様であるため説明を省略する。
【０１４８】
〔３〕実施形態の変形例
上記図１〜図１２ではドメインを跨った記憶装置（ＮＶＭｅ−ＳＳＤ２０）へのアクセス処理を説明したが、本変形例では、プライマリのＬＣＭ１０が故障した場合の切り替え処理について説明する。
【０１４９】
なお、本変形例に係るストレージシステム１やＣＭ１０のハードウェア構成（図１，図２参照）、及び、ＣＭ１０の機能構成（図３参照）については、上述した一実施形態と同様のため、説明を省略する。
【０１５０】
〔３−１〕実施形態の変形例に係るストレージシステムにおける切り替え処理の概要
本変形例に係るストレージシステム１における切り替え処理の概要について、図１４を参照しながら、図１３を用いて説明する。
【０１５１】
図１３は、本変形例に係るストレージシステム１における切り替え処理を説明する例示する図である。
【０１５２】
この図１３は、プライマリのＣＭ１０であるＣＭ＃４と、セカンダリのＣＭ１０であるＣＭ＃５（ＭＣＭ１０）とがペアを構成しており、ＣＭ＃４がＬＣＭ１０として、ＤＣＭ１０（ＣＭ＃８）配下のＮＶＭｅ−ＳＳＤ＃４にアクセスする場合を例示している。
【０１５３】
ここで、図１３に例示するように、ＬＣＭ１０（ＣＭ＃４）が、ＤＣＭ１０（ＣＭ＃８）配下のＮＶＭｅ−ＳＳＤ＃４に対してアクセス要求を送信した後にＬＣＭ１０（ＣＭ＃４）に故障が発生した場合を想定する。この場合、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１（変換部１７）で、応答データの送信先をＬＣＭ１０（ＣＭ＃４）側のアドレスに変換したとしても、ＬＣＭ１０（ＣＭ＃４）にて当該情報を受信することができないという課題が発生する。
【０１５４】
そこで、本変形例では、上述したような場合に、ＭＣＭ１０（＃５）がＬＣＭ１０（ＣＭ＃４）の代わりに処理を実行（代行）する。これを、切り替えともいう。この切り替えのために、ＬＣＭ１０（ＣＭ＃４）にて故障が発生していない間は、随時、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１が、ＬＣＭメモリ１３Ｌの対ＤＣＭ領域５３の情報を、ＭＣＭ１０（ＣＭ＃５）のメモリ１３にコピーする（ミラーリング；図１３参照）。なお、このＭＣＭ１０（ＣＭ＃５）のメモリ１３をＭＣＭメモリ１３Ｍともいう。
【０１５５】
また、変換部メモリ１８に備えるＣＭアドレス情報６２に、ＭＣＭ１０（＃５）のアドレスに関する情報をさらに備える。そして、ＤＣＭ１０（ＣＭ＃８）のＣＰＵ１１が、例えば、当該システム１の起動時に当該情報を取得して、変換部メモリ１８のＣＭアドレス情報６２に書き込んでもよい（更新してもよい）。このＭＣＭ１０（＃５）のアドレスに関する情報について、図１４を用いて説明する。
【０１５６】
図１４は、本変形例に係るストレージシステム１における切り替え用情報６３を説明する例示する図である。この図１４は、図１３に例示するように、プライマリのＣＭ１０としてＣＭ＃４を、ＭＣＭ１０としてＣＭ＃５を、そして、ＤＣＭ１０としてＣＭ＃８を設定した場合の切り替え用情報６３を例示する。なお、図１４は、ＣＭ＃４とＣＭ＃５とのペア（プライマリのＣＭがＣＭ＃４，ＭＣＭ１０がＣＭ＃５）に関する情報を例示したが、他のＣＭのペア毎に、図１４に例示する切り替え用情報６３を備えてもよい。
【０１５７】
この図１４に例示する切り替え用情報６３は、“プライマリのＣＭの状態”、“切り替え前アドレス”及び、“切り替え後アドレス”の各フィールドを備える。
【０１５８】
切り替え用情報６３のフィールド“プライマリのＣＭの状態”は、プライマリのＣＭ１０（ＣＭ＃４）の状態が、「生存状態」であるか、又は、「故障状態」であるかを示すものである。本変形例において、このフィールド“プライマリのＣＭの状態”に示す状態は、後述するアドレス変換部６１による生存確認により判断できる。
【０１５９】
切り替え用情報６３のフィールド“切り替え前アドレス”は、ＤＣＭ１０（ＣＭ＃８）メモリ１３における、ＤＣＭアクセス情報５２Ｄを格納する領域の先頭アドレス（「ＢＡＲ（α）」）を格納するものである。
【０１６０】
切り替え用情報６３のフィールド“切り替え後アドレス”は、ＬＣＭメモリ１３Ｌにおける、対ＤＣＭアクセス情報５４を格納する領域の先頭アドレスを格納する。プライマリのＣＭ１０（ＣＭ＃４）が「生存状態」である場合、ＤＣＭ１０との間で情報の送受信が可能であるため、“切り替え後アドレス”にはＬＣＭメモリ１３Ｌ上の対ＤＣＭアクセス情報５４が格納される領域の先頭アドレス（「ＢＡＲ（α’）」）を格納する。
【０１６１】
また、プライマリのＣＭ（ＬＣＭ１０；ＣＭ＃４）が「故障状態」である場合には、ＤＣＭ１０との間で情報の送受信が不可能である。したがって、フィールド“切り替え後アドレス”には、ＭＣＭメモリ１３Ｍ上の対ＤＣＭアクセス情報５４が格納される領域の先頭アドレス（「ＢＡＲ（α’’）」）を格納する。
【０１６２】
この図１４に例示した切り替え用情報６３に格納される各種情報は、図７に例示した起動時の処理と同様に、当該システム１の起動時に、ＬＣＭ１０（ＣＭ＃４）からＤＣＭ１０（＃８）に送信されてもよい。
【０１６３】
また、図１４は、対ＤＣＭアクセス情報５４を格納する領域の先頭アドレスの切り替えについて例示したが、割り込み通知情報を格納する領域の先頭アドレスの切り替えについても、同様に制御されてもよい。
【０１６４】
なお、図１３に例示するように、ＤＣＭメモリ１３Ｄ上には、ＬＣＭメモリ１３Ｌ上の対ＤＣＭアクセス情報５４を格納する領域の先頭アドレス（「ＢＡＲ（α’）」）が管理されてもよい。また、ＤＣＭメモリ１３Ｄにおいて、ＭＣＭメモリ１３Ｍ上の対ＤＣＭアクセス情報５４を格納する領域の先頭アドレス（「ＢＡＲ（α’’）」）も管理されてもよい。
【０１６５】
さらに、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１は、所定の間隔でＣＭ１０の故障の有無を検出すべく、ＣＭ１０に対してポーリングを行なう。このポーリングのことを生存確認ともいう。
【０１６６】
また、アドレス変換部６１は、生存確認の結果、プライマリのＣＭ１０から応答を受信しなかった場合には、このプライマリのＣＭ１０が故障状態（故障が発生している状態）であると判定する。そして、アドレス変換部６１は、ＴＬＰの送信先をＭＣＭ１０（側）に切り替える。
【０１６７】
一方、アドレス変換部６１は、プライマリのＣＭ１０から応答を受信した場合には、このプライマリのＣＭ１０が生存状態（故障が発生している状態ではない）であると判定する。そして、アドレス変換部６１は、引き続き、ＴＬＰの送信先をプライマリのＣＭ１０とする（に変換する）。
【０１６８】
このようにして、プライマリのＣＭ１０（ＣＭ＃４）において故障が発生した場合においても、セカンダリのＣＭ１０（ＣＭ＃５）に切り替えられるようになる。
【０１６９】
〔３−２〕実施形態の変形例に係るストレージシステムにおける切り替え処理
本変形例に係るストレージシステム１における切り替え処理について、図１５に例示するシーケンスチャート（Ｂ１〜Ｂ６）に従って説明する。
【０１７０】
図１５は、変形例に係るストレージシステム１における切り替え処理を説明するためのシーケンスチャートである。具体的に、この図１５は、図１に例示するストレージシステム１において、ＤＣＭ１０（ＣＭ＃８）によって、配下のＮＶＭｅ−ＳＳＤ＃４からの情報をＬＣＭ１０（ＣＭ＃４）に対して送信された後、切り替え処理を行なう場合のシーケンスチャートである。
【０１７１】
図１５のステップＢ１において、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１は、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１に対して“メモリリード”（ＭＲｄ）コマンドを送信する。そして、処理がステップＢ２とステップＢ４とに進む。
【０１７２】
ステップＢ２において、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、故障していない（生存している）場合、上記ステップＢ２にて受信した情報を読み出す。
【０１７３】
ステップＢ３において、ＬＣＭ１０（ＣＭ＃４）のＣＰＵ１１は、故障していない（生存している）場合、上記ステップＢ３にて行なった読み出しの処理が終了すると、ＤＣＭ１０（ＣＭ＃８）に対して完了応答を送信する。そして、処理がステップＢ４に進む。
【０１７４】
ステップＢ４において、ＤＣＭ１０（ＣＭ＃８）の送受信部６０は、ＬＣＭ１０（ＣＭ＃４）から完了応答を受信したか否かを判定する。ここで、ＤＣＭ１０（ＣＭ＃８）の送受信部６０は、所定時間の間に完了応答を受信したか否かを判定してもよい。完了応答を受信したと判定した場合（ステップＢ４における“Ｙｅｓ”ルート）、処理がステップＢ１に戻る。一方、完了応答を受信しなかったと判定した場合（ステップＢ４における“Ｎｏ”ルート）、処理がステップＢ５に移行する。
【０１７５】
ステップＢ５において、ＤＣＭ１０（ＣＭ＃８）のアドレス変換部６１は、図１４に例示する切り替え用情報６３に基づき、ＴＬＰの送信先をＭＣＭメモリ上の対ＤＣＭアクセス情報５４のアドレス（「ＢＡＲ（α’’）」）に切り替える。そして、切り替え処理を終了する。
【０１７６】
また、ＭＣＭ１０（Ｍ＃８）のＣＰＵ１１は、ＬＣＭ１０が故障したことを検知し、自身がＬＣＭ１０の処理を代行できるよう、ＬＣＭ１０の処理を切り替える（ステップＢ６参照）。そして、切り替え処理を終了する。
【０１７７】
以上のステップＢ１〜Ｂ６に示す処理を経ることにより、ＬＣＭ（ＣＭ＃４）に故障等の問題が発生して情報の送受信ができなくなった場合においても、ＤＣＭ１０（ＣＭ＃８）とＭＣＭ１０（Ｍ＃８）との間で情報の送受信が可能となる。
【０１７８】
〔４〕効果
上述のように、一実施形態及び変形例に係るストレージシステム１では、ＤＣＭ１０にアドレス変換部６１（変換部１７）を設け、さらに、変換部メモリ１８にＣＭアドレス情報６２を備え、当該ＣＭアドレス情報６２にてＬＣＭ１０側のアドレスを管理する。これにより、ＬＣＭ１０からＤＣＭ１０配下のＮＶＭｅ−ＳＳＤ２０に対してアクセス要求があった場合においても、アドレス変換部６１（変換部１７）において、ＣＭアドレス情報６２を参照してＴＬＰの送信先をＬＣＭ１０側のアドレスに変換する。そして、ＤＣＭ１０のスイッチ１６は、ＤＣＭメモリ１３Ｄを用いずに、変換したアドレスに基づき、ＦＲＴ３０を介してＬＣＭ１０に応答データを送信できる。
【０１７９】
したがって、ドメインを跨った記憶装置（ＮＶＭｅ−ＳＳＤ２０）へのアクセスに要する時間を短縮させることができる。
【０１８０】
また、変形例に係るストレージシステム１において、プライマリのＬＣＭ１０が故障した場合、ＤＣＭ１０のアドレス変換部６１（変換部１７）では、ＴＬＰの送信先をＭＣＭ１０側のアドレスに切り替える。これにより、プライマリのＬＣＭ１０が故障した場合にも、ＭＣＭ１０がＬＣＭ１０の処理を代行できると共に、ＤＣＭ１０とＭＣＭ１０との間で確実に情報の送受信を行なうことができる。
【０１８１】
また、一実施形態及び変形例に係るストレージシステム１において、ＤＣＭ１０のアドレス変換部６１（変換部１７）が、当該システムの起動時に変換部メモリ１８内のＣＭアドレス情報６２を生成する。これにより、新たにストレージ制御装置が追加された場合においても自動的にＣＭアドレス情報６２が更新される。したがって、工場出荷時の設定情報に限定されることなく、柔軟なスケールアウトが実現できる。
【０１８２】
〔５〕その他
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
【０１８３】
上述した一実施形態及び変形例では、ＣＭ１０のペアが、それぞれ１つの記憶装置であるＮＶＭｅ−ＳＳＤ２０を備えるものとしたが、各ペアが複数のＮＶＭｅ−ＳＳＤ２０を備えてもよい。
【０１８４】
上述した一実施形態及び変形例では、アクセス要求として読み出しの処理を例示したが、アクセス要求は読み出し要求に限られず、例えば、書き込み要求を含んでもよい。
【０１８５】
〔６〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１８６】
（付記１）
第一のストレージ制御装置と、
前記第一のストレージ制御装置にインタフェースを介して接続され、前記第一のストレージ制御装置による制御下で動作する記憶装置と、
前記第一のストレージ制御装置と通信可能に接続される第二のストレージ制御装置とを備えるストレージシステムであって、
前記第二のストレージ制御装置が、
当該第二のストレージ制御装置に備えられたメモリにおけるアドレス情報を前記第一のストレージ制御装置に通知する通知部と、
前記記憶装置に対するデータアクセス要求を発行するデータアクセス要求発行部と
を備え、
前記第一のストレージ制御装置が、
前記データアクセス要求発行部からの前記記憶装置に対する前記データアクセス要求に応じて作成される応答データの送信先アドレスに、前記通知部によって通知された前記アドレス情報を用いて前記第二のストレージ制御装置の前記メモリにおけるアドレスを設定する宛先設定部と、
前記宛先設定部によって設定された前記送信先アドレスを指定して、前記応答データを、前記第二のストレージ制御装置の前記メモリに送信する送信部と
を備えることを特徴とする、ストレージシステム。
【０１８７】
（付記２）
前記宛先設定部が、
前記応答データに送信先アドレスとして設定された前記第一のストレージ制御装置のメモリにおけるアドレスを、前記通知部によって通知された前記アドレス情報を用いて前記第二のストレージ制御装置の前記メモリにおけるアドレスに書き換える
ことを特徴とする付記１記載のストレージシステム。
【０１８８】
（付記３）
前記第一のストレージ制御装置が、
前記第二のストレージ制御装置の生存確認を行なう確認部を備え、
前記第二のストレージ制御装置の生存を確認できない場合に、
前記宛先設定部が、におけるアドレス情報を、前記第二のストレージ制御装置を代行する第三のストレージ制御装置のメモリにおけるアドレス情報に置き書き換える
ことを特徴とする付記１または２記載のストレージシステム。
【０１８９】
（付記４）
インタフェースを介して接続される記憶装置を制御するとともに、第二のストレージ制御装置と通信可能に接続される第一のストレージ制御装置であって、
前記第二のストレージ制御装置から、当該第二のストレージ制御装置に備えられたメモリにおけるアドレス情報を受信する通信部と、
前記第二のストレージ制御装置からの前記記憶装置に対するデータアクセス要求に応じて作成される応答データの送信先アドレスに、前記第二のストレージ制御装置から通知されたアドレス情報を用いて前記メモリにおけるアドレスを設定する宛先設定部と、
前記宛先設定部によって設定された前記送信先アドレスを指定して前記応答データを、前記第二のストレージ制御装置の前記メモリに送信する送信部と
を備えることを特徴とする、ストレージ制御装置。
【０１９０】
（付記５）
前記宛先設定部が、
前記第二のストレージ制御装置からの前記データアクセス要求に応じて前記記憶装置から読み出して作成された応答データに送信先アドレスとして設定された前記第一のストレージ制御装置のメモリにおけるアドレス情報を、前記通知部によって通知された前記アドレス情報を用いて書き換える
ことを特徴とする付記４記載のストレージ制御装置。
【０１９１】
（付記６）
前記第二のストレージ制御装置の生存確認を行なう確認部を備え、
前記第二のストレージ制御装置の生存を確認できない場合に、
前記宛先設定部が、
前記応答データの送信先アドレスにおけるアドレス情報を、前記第二のストレージ制御装置を代行する第三のストレージ制御装置のメモリにおけるアドレス情報を用いて書き換える
ことを特徴とする付記４または５記載のストレージ制御装置。
【符号の説明】
【０１９２】
１    ストレージシステム
１０    ＣＭ（ＤＣＭ，ＬＣＭ，ＭＣＭ）
２０    ＮＶＭｅ−ＳＳＤ
３０    ＦＲＴ
１１    ＣＰＵ
１２    記憶部
１３Ｌ    ＬＣＭメモリ（メモリ）
１３Ｄ    ＤＣＭメモリ（メモリ）
１３Ｍ    ＭＣＭメモリ（メモリ）
１４    ＩＦ部
１５    入出力部
１６    スイッチ
１７    変換部
１８    変換部メモリ
４０    解析部
４１    変換情報作成部
５０Ｄ    ＤＣＭ設定情報
５１Ｄ    ＤＣＭ割り込み通知情報
５２Ｄ    ＤＣＭアクセス情報
５０Ｌ    ＬＣＭ設定情報
５１Ｌ    ＬＣＭ割り込み通知情報
５２Ｌ    ＬＣＭアクセス情報
５３    対ＤＣＭ領域
５４    対ＤＣＭアクセス情報
５５    アクセス用アドレス変換情報
５６    割り込み通知用アドレス変換情報
６０    送受信部
６１    アドレス変換部
６２    ＣＭアドレス情報
６３    切り替え用情報
９０    制御プログラム
１００    ストレージシステム
１０１    ＣＭ
１０２    ＮＶＭｅ−ＳＳＤ
１０３    ＦＲＴ
１０４    メモリ
１０５    ＢＥＣバッファ
【図１】
2020119325.tif 000003
【図２】
2020119325.tif 000004
【図３】
2020119325.tif 000005
【図４】
2020119325.tif 000006
【図５】
2020119325.tif 000007
【図６】
2020119325.tif 000008
【図７】
2020119325.tif 000009
【図８】
2020119325.tif 000010
【図９】
2020119325.tif 000011
【図１０】
2020119325.tif 000012
【図１１】
2020119325.tif 000013
【図１２】
2020119325.tif 000014
【図１３】
2020119325.tif 000015
【図１４】
2020119325.tif 000016
【図１５】
2020119325.tif 000017
【図１６】
2020119325.tif 000018
【図１７】
2020119325.tif 000019
【図１８】
2020119325.tif 000020
【図１９】
2020119325.tif 000021