(57)【要約】【課題】  サーバに新たな機能を追加することなく、各ストレージ間のデータ通信頻度を低減する技術を提供する。【解決手段】  ストレージシステムは、複数のストレージ装置を備え、前記複数のストレージ装置の夫々は、制御手段と、データを記憶する記憶手段とを備え、要求を受信したストレージ装置の前記制御手段は、前記複数のストレージ装置のうち、前記要求の対象となる対象データが格納された記憶手段を有するストレージ装置を特定し、前記特定されたストレージ装置の前記制御手段は、前記対象データと、前記要求の送信先を示す送信先識別子を前記要求に対する応答の送信元識別子として設定し、かつ、前記要求の送信元を示す送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、前記応答として送信する。【選択図】      図７
2018163572.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置を備え、
前記複数のストレージ装置の夫々は、制御手段と、データを記憶する記憶手段とを備え、
要求を受信したストレージ装置の前記制御手段は、前記複数のストレージ装置のうち、前記要求の対象となる対象データが格納された記憶手段を有するストレージ装置を特定し、
前記特定されたストレージ装置の前記制御手段は、前記対象データと、前記要求の送信先を示す送信先識別子を前記要求に対する応答の送信元識別子として設定し、かつ、前記要求の送信元を示す送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、前記応答として送信するストレージシステム。
【請求項２】
前記複数のストレージ装置のうち、第１ストレージ装置の前記制御手段がサーバ装置から送信された前記要求を受信し、前記複数のストレージ装置のうち、前記第１ストレージ装置とは異なる第２ストレージ装置の前記記憶手段が前記対象データを格納する場合、
前記第１ストレージ装置の前記制御手段は、前記第２ストレージ装置を特定し、
前記第２ストレージ装置の前記制御手段は、前記対象データと、前記第１ストレージ装置を示す情報を前記応答の送信元識別子として設定し、前記サーバ装置を示す情報を前記応答の送信先識別子として設定し、かつ、前記要求を開始するオリジネータを識別するオリジネータ識別子を設定したヘッダ情報とを、前記応答として送信する請求項１に記載のストレージシステム。
【請求項３】
前記第１ストレージ装置の前記制御手段は、前記対象データを前記サーバ装置に転送する指示と、前記要求の送信先である第１ストレージ装置を示す情報と、前記要求の送信元であるサーバ装置を示す情報と、前記オリジネータ識別子とを、前記第２ストレージ装置に送信し、
前記第２ストレージ装置の前記制御手段は、前記指示に基づき、前記第２ストレージ装置の前記記憶手段から前記対象データを取得する請求項２に記載のストレージシステム。
【請求項４】
複数のストレージ装置を備えるストレージシステムの通信方法であって、
要求を受信したストレージ装置は、前記複数のストレージ装置のうち、前記要求の対象となる対象データが格納された記憶手段を有するストレージ装置を特定し、
前記特定されたストレージ装置は、前記対象データと、前記要求の送信先を示す送信先識別子を前記要求に対する応答の送信元識別子として設定し、かつ、前記要求の送信元を示す送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、前記応答として送信する通信方法。
【請求項５】
前記複数のストレージ装置のうち、第１ストレージ装置がサーバ装置から送信された前記要求を受信し、前記複数のストレージ装置のうち、前記第１ストレージ装置とは異なる第２ストレージ装置の前記記憶手段が前記対象データを格納する場合、
前記第１ストレージ装置は、前記第２ストレージ装置を特定し、
前記第２ストレージ装置は、前記対象データと、前記第１ストレージ装置を示す情報を前記応答の送信元識別子として設定し、前記サーバ装置を示す情報を前記応答の送信先識別子として設定し、かつ、前記要求を開始するオリジネータを識別するオリジネータ識別子を設定したヘッダ情報とを、前記応答として送信する請求項４に記載の通信方法。
【請求項６】
前記第１ストレージ装置は、前記対象データを前記サーバ装置に転送する指示と、前記要求の送信先である第１ストレージ装置を示す情報と、前記要求の送信元であるサーバ装置を示す情報と、前記オリジネータ識別子とを、前記第２ストレージ装置に送信し、
前記第２ストレージ装置は、前記指示に基づき、前記第２ストレージ装置の前記記憶手段から前記対象データを取得する請求項５に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ストレージシステム、および通信方法に関する。
【背景技術】
【０００２】
情報の電子化が進み、膨大な量の情報を管理する技術が注目されている。例えば、膨大な量の情報を管理する技術の１つとして、ストレージの性能や容量を拡張する技術がある。具体的に、複数のストレージで構成された１つの論理ディスクをサーバに割り当てる、スケールアウト型のストレージが提案されている。例えば、スケールアウト型のストレージに関連する技術として、特許文献１には、複数のノードへのライトアクセスの順序を制御し、ミラーデータ間の不整合の発生を防ぐ技術が開示されている。
【０００３】
なお、膨大な量の情報を管理する技術として、特許文献２には、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）を実現するシステムにおいて、ディスクアレイコントローラとディスク装置とホストとを１つのインターフェースによって接続することで、各装置間のインターフェースを減らし、低コストを実現する技術が記載されている。また特許文献３には、マスタディスクのコピーデータをリモートディスクに格納する技術が開示されている。また特許文献４には、ＫＶＳ（Ｋｅｙ−Ｖａｌｕｅ  Ｓｔｏｒｅ）の手法でデータを複数のストレージノードに分散配置する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０２４６７９号公報
【特許文献２】特開２００４−２８０８６２号公報
【特許文献３】特開２００３−０８５０１７号公報
【特許文献４】特開２０１３−０４５３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、サーバが複数のストレージのうち、一方のストレージに対して送信したＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）コマンドの対象となるデータが、他方のストレージに格納されている場合、対象となるデータは、他方のストレージから一方のストレージに送信された後、一方のストレージからサーバへと送信される。このため、各ストレージ間のデータ通信頻度が高くなる可能性がある。
【０００６】
また、サーバが、Ｉ／Ｏコマンドの対象となるデータを格納するストレージにＩ／Ｏコマンドを送信する場合、サーバが、全てのデータの格納場所を記憶する方法がある。しかしながら、この場合、サーバは記憶しているデータの格納場所から、Ｉ／Ｏコマンドを送信するストレージを特定する動作を行う必要がある。すなわち、サーバに新たな機能を追加する必要がある。
【０００７】
本開示は、上記問題を鑑みたものであって、サーバに新たな機能を追加することなく、各ストレージ間のデータ通信頻度を低減する技術を提供する。
【課題を解決するための手段】
【０００８】
本開示の一形態に係るストレージシステムは、複数のストレージ装置を備え、前記複数のストレージ装置の夫々は、制御手段と、データを記憶する記憶手段とを備え、要求を受信したストレージ装置の前記制御手段は、前記複数のストレージ装置のうち、前記要求の対象となる対象データが格納された記憶手段を有するストレージ装置を特定し、前記特定されたストレージ装置の前記制御手段は、前記対象データと、前記要求の送信先を示す送信先識別子を前記要求に対する応答の送信元識別子として設定し、かつ、前記要求の送信元を示す送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、前記応答として送信する。
【０００９】
本開示の一形態に係る通信方法は、複数のストレージ装置を備えるストレージシステムの通信方法であって、要求を受信したストレージ装置は、前記複数のストレージ装置のうち、前記要求の対象となる対象データが格納された記憶手段を有するストレージ装置を特定し、前記特定されたストレージ装置は、前記対象データと、前記要求の送信先を示す送信先識別子を前記要求に対する応答の送信元識別子として設定し、かつ、前記要求の送信元を示す送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、前記応答として送信する。
【発明の効果】
【００１０】
本開示によれば、サーバに新たな機能を追加することなく、各ストレージ間のデータ通信頻度を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態におけるストレージシステムの全体構成の一例を示す図である。
【図２】フレームを説明するための図である。
【図３】第１実施形態におけるストレージシステムの構成の一例を示す機能ブロック図である。
【図４】格納テーブルを説明するための図である。
【図５】変換テーブルを説明するための図である。
【図６】第１実施形態におけるストレージシステムの動作の一例を示すフローチャートである。
【図７】第２実施形態におけるストレージシステムの構成の一例を示す機能ブロック図である。
【図８】第２実施形態におけるストレージシステムの動作の一例を示すフローチャートである。
【図９】本開示の各実施形態に係るストレージシステムを実現する情報処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本開示の実施形態について図面を参照して詳細に説明する。
【００１３】
＜第１実施形態＞
図１は、第１実施形態におけるストレージシステム１の全体構成の一例を示す図である。ストレージシステム１は、サーバ装置１０と、スイッチ２０と、第１ストレージ装置３０と、第２ストレージ装置４０とを有する。スイッチ２０は、例えばＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチによって実現される。
【００１４】
サーバ装置１０と、スイッチ２０とは有線または無線のネットワークによって相互に接続されている。また、サーバ装置１０は、スイッチ２０を介して各ストレージ装置とデータ通信を行う。
【００１５】
スイッチ２０は、第１ストレージ装置３０と、第２ストレージ装置４０と、ＦＣによって相互に接続されている。また、第１ストレージ装置３０と、第２ストレージ装置４０とは、有線または無線のネットワークによって相互に接続されている。
【００１６】
ＦＣ通信では、ひとつのシーケンス（データ）は１個または複数個のフレームで伝送される。このとき、受信側は、最後のデータ列を含むフレーム（最終フレーム）を受信することにより、一連のフレームの伝送が完了したことを認識することができる。
【００１７】
図２は、フレームのヘッダ（ヘッダ情報）を説明するための図である。図２に示すように、フレームは、２１４８バイトの可変長であり、３６バイトのオーバーヘッド部分と２１１２バイトのペイロード部分とで構成される。オーバーヘッド部分は、始まりにつけられる４バイトのＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）、２４バイトのヘッダ、フレームの終わりにつけられる４バイトのＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）および４バイトのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を示す。また、ペイロード部分は、６４バイトのオプションと、２０４８バイトのデータとを示す。なお、ＣＲＣは、エラーをチェックするための符号を示す。以下、フレームのヘッダについて説明する。
【００１８】
Ｄ＿ＩＤ（Ｄｅｓｔｉｎａｔｉｏｎ＿Ｉｄｅｎｔｉｆｉｅｒ）は、送信先アドレス（送信先識別子とも呼ばれる）であり、例えばフレームの送信先のポートアドレスである。
【００１９】
Ｓ＿ＩＤ（Ｓｏｕｒｃｅ＿Ｉｄｅｎｔｉｆｉｅｒ）は、送信元アドレス（送信元識別子とも呼ばれる）であり、例えばフレームの送信元のポートアドレスである。
【００２０】
Ｆ＿ＣＴＬ（Ｆｒａｍｅ＿Ｃｏｎｔｒｏｌ）は、先頭フレームか、最終フレームか、送信側がオリジネータかレスポンダか等、エクスチェンジやシーケンスの属性を表す値である。
【００２１】
ＳＥＱ＿ＩＤ（Ｓｅｑｕｅｎｃｅ＿Ｉｄｅｎｔｉｆｉｅｒ）は、Ｄ＿ＩＤとＳ＿ＩＤとの組に対する、シーケンスごとの固有の番号である。ＳＥＱ＿ＣＮＴ（Ｓｅｑｕｅｎｃｅ  Ｃｏｕｎｔ）は、ひとつのシーケンス中の複数フレームの連続する番号、又はひとつのエクスチェンジ中の複数シーケンスの連続する番号である。
【００２２】
ＯＸ＿ＩＤ（Ｏｒｉｇｉｎａｔｏｒ  Ｅｘｃｈａｎｇｅ＿Ｉｄｅｎｔｉｆｉｅｒ）は、トランザクション処理の単位を示すエクスチェンジを開始したオリジネータ側（コマンドのフレームを送信する側）において、夫々のエクスチェンジを開始したオリジネータを識別するオリジネータ識別子である。
【００２３】
なお、トランザクション処理とは、例えば、サーバ装置１０からスイッチ２０を介して各ストレージ装置にＲｅａｄコマンドが送信されてから、各ストレージ装置からスイッチ２０を介してサーバ装置１０へＲｅａｄコマンドの対象データが返送されるまでの一連の処理を示す。
【００２４】
ＲＸ＿ＩＤ（Ｒｅｓｐｏｎｄｅｒ  Ｅｘｃｈａｎｇｅ＿Ｉｄｅｎｔｉｆｉｅｒ）は、オリジネータに応答するレスポンダ側（コマンドを構成するフレームを受信する側）において、夫々のエクスチェンジを特定する識別子である。
【００２５】
サーバ装置１０、第１ストレージ装置３０および第２ストレージ装置４０とはＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤに基づき、送信元と送信先とを判定すし、データの送信と受信とを行う。ＯＸ＿ＩＤは、夫々のエクスチェンジを開始したオリジネータを識別するオリジネータ識別子であるため、サーバ装置１０、第１ストレージ装置３０および第２ストレージ装置４０とはＯＸ＿ＩＤによって、どのエクスチェンジに関連するフレームなのかがわかる。
【００２６】
例えば、サーバ装置１０が第１ストレージ装置３０にＲｅａｄコマンドを送信する。そして、第１ストレージ装置３０はＲｅａｄコマンドの対象となるデータをサーバ装置１０に送信する。このとき、サーバ装置１０が送信したＲｅａｄコマンドのＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤと、第１ストレージ装置３０が送信したデータのＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとが対応しない場合、サーバ装置１０は、Ｒｅａｄコマンドの異常処理と判定し、データを受信しない。つまり、サーバ装置１０は、フレームに設定されるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤを用いて、データの送信先と送信元との関係を判定し、データを受信する、既存の手段を有する。
【００２７】
図３は、第１実施形態におけるストレージシステム１の構成の一例を示す機能ブロック図である。サーバ装置１０は、制御部１１と、記憶部１２とを有する。制御部１１は、スイッチ２０にデータまたはデータに対する処理の指示を含むコマンドを送信する。また制御部１１は、スイッチ２０からデータを受信する。また、制御部１１は、記憶部１２に対するデータの入出力を制御する。記憶部１２はデータを記憶する。これ以降、指示の対象となるデータを対象データと呼ぶ。
【００２８】
スイッチ２０は、送信されたフレームに設定されるＤ＿ＩＤに基づき、フレームの送信先を決定し、決定した送信先にフレームを送信する。
【００２９】
第１ストレージ装置３０は、第１サーバ通信部３１と、第１制御部３２と、第１ストレージ通信部３３と、第１記憶部３４と、第１ボリューム３５とを備える。第２ストレージ装置４０は、第２サーバ通信部４１と、第２制御部４２と、第２ストレージ通信部４３と、第２記憶部４４と、第２ボリューム４５とを備える。
【００３０】
第１サーバ通信部３１と、第２サーバ通信部４１とは、スイッチ２０とデータ通信を行う。第１ストレージ通信部３３と、第２ストレージ通信部４３とは、互いにデータ通信を行う。
【００３１】
また、第１ストレージ装置３０と第２ストレージ装置４０とは、第１ボリューム３５と、第２ボリューム４５とによって論理ディスク５０を構築する。そして、第１ストレージ装置３０と第２ストレージ装置４０とは、構築した論理ディスク５０をサーバ装置１０に割り当てる。また、論理ディスク５０は、ＬＤ（Ｌｏｇｉｃａｌ  Ｄｉｓｋ）とも呼ぶ。論理ディスク５０はデータを格納する。
【００３２】
第１記憶部３４と第２記憶部４４とは、図４に示す格納テーブル５１と図５に示す変換テーブル５２との両方を記憶する。格納テーブル５１と変換テーブル５２とは論理ディスク５０に格納されているデータを管理するための情報である。
【００３３】
図４は、格納テーブル５１を説明するための図である。格納テーブル５１は、データ５１０と、論理アドレス５１１とを含む。データ５１０は、論理ディスク５０に格納されるデータである。論理アドレス５１１は、論理ディスク５０の論理アドレス空間における、データ５１０の格納位置を示す位置情報である。
【００３４】
図５は、変換テーブル５２を説明するための図である。変換テーブル５２は、論理アドレス５１１と、物理アドレス５１２とを含む。物理アドレス５１２は、第１ボリューム３５または第２ボリューム４５における、論理アドレス５１１に対応する物理アドレス空間上の位置を示す位置情報である。
【００３５】
図５において論理アドレス５１１と、物理アドレス５１２とは対応付けられている。そのため、第１制御部３２と第２制御部４２とは、格納テーブル５１と変換テーブル５２とに基づき、対象データがどのストレージ装置に格納されているのかを特定することができる。また、第１制御部３２および第２制御部４２は、第１ストレージ通信部３３と第２ストレージ通信部４３とを介し、ストレージ間通信を行うことで、論理ディスク５０に格納されるデータの位置等を共有する。例えば、第１制御部３２は、論理ディスク５０に格納されるデータの位置が変更された場合、第１記憶部３４に格納される格納テーブル５１および変換テーブル５２を更新する。そして、第１制御部３２は、第１ストレージ通信部３３を介し、第１記憶部３４に格納される格納テーブル５１および変換テーブル５２を更新した情報を、第２ストレージ装置４０に送信する。第２制御部４２は、第２ストレージ通信部４３を介し、第１ストレージ装置３０から格納テーブル５１および変換テーブル５２を更新した情報を受信する。そして、第２制御部４２は、第２記憶部４４に格納される格納テーブル５１および変換テーブル５２を更新する。このように、各記憶部に格納される格納テーブル５１および変換テーブル５２の情報は同期される。
【００３６】
第１制御部３２は、スイッチ２０から受信したＲｅａｄコマンドに基づき、第１記憶部３４を参照し、対象データを格納しているストレージ装置を特定する。そして、第１制御部３２は、特定したストレージ装置が自装置以外である場合、特定したストレージ装置にＲｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤを転送する。
【００３７】
図６は、第１実施形態におけるストレージシステム１の動作の一例を示すフローチャートである。以下に示す動作は、サーバ装置１０が第１ストレージ装置３０に対して、第２ストレージ装置４０に格納されているデータ５１０「Ｄ３」を対象データとしたＲｅａｄコマンドを送信する場合の動作であるとする。図６では、サーバ装置１０の処理を左側に示し、サーバ装置１０の処理の右側にスイッチ２０の処理を示す。また、図６では、第２ストレージ装置４０の処理を右側に示し、第２ストレージ装置４０の処理の左側に第１ストレージ装置３０の処理を示す。
【００３８】
なお、サーバ装置１０の処理と第１ストレージ装置３０の処理との間と、第１ストレージ装置３０の処理と第２ストレージ装置４０の処理との間にある破線の矢印は、情報の流れを示している。
【００３９】
サーバ装置１０の制御部１１は、第１ストレージ装置３０を宛先とし、データ５１０「Ｄ３」を読み出すＲｅａｄコマンドをスイッチ２０に送信する（ステップＳ４０１）。具体的に、Ｒｅａｄコマンドを構成するフレームには、サーバ装置１０のアドレスを示すＳ＿ＩＤ、第１ストレージ装置３０のアドレスを示すＤ＿ＩＤ、サーバ装置１０のアドレスを示すＯＸ＿ＩＤおよびデータ５１０「Ｄ３」を対象データとして読み出す指示が含まれる。
【００４０】
スイッチ２０は、サーバ装置１０からＲｅａｄコマンドを受信する（ステップＳ４０２）。そして、スイッチ２０は、Ｄ＿ＩＤを参照し、第１ストレージ装置３０にＲｅａｄコマンドを送信する（ステップＳ４０３）。
【００４１】
第１ストレージ装置３０の第１サーバ通信部３１は、スイッチ２０からＲｅａｄコマンドを受信する（ステップＳ４０４）。そして、第１サーバ通信部３１は、受信したＲｅａｄコマンドを第１制御部３２に送信する。第１制御部３２は、第１サーバ通信部３１からＲｅａｄコマンドを受信する。
【００４２】
第１制御部３２は、受信したＲｅａｄコマンドに基づき、格納テーブル５１と、変換テーブル５２とを参照し、受信したＲｅａｄコマンドの対象データを格納するボリュームを有するストレージ装置を特定する（ステップＳ４０５）。
【００４３】
具体的に第１制御部３２は、対象データを用いて第１記憶部３４の格納テーブル５１を参照する。図５に示す格納テーブル５１を参照すると、データ５１０「Ｄ３」は、論理アドレス５１１「ＬＡ３」に格納されていることがわかる。したがって、第１制御部３２は、格納テーブル５１から、論理アドレス５１１「ＬＡ３」を取得する。そして、第１制御部３２は、論理アドレス５１１「ＬＡ３」を用いて、第１記憶部３４の変換テーブル５２を参照する。図４に示す変換テーブル５２を参照すると、論理アドレス５１１「ＬＡ３」は、物理アドレス５１２「ＰＡ３」と紐づいていることがわかる。また、図４に示すとおり、物理アドレス５１２「ＰＡ３」は第２ボリューム４５内のアドレスを示す。これにより、第１制御部３２は、対象データであるデータ５１０「Ｄ３」が、第２ストレージ装置４０にあることを検知する。したがって、ステップＳ４０５で特定されるストレージ装置は、第２ストレージ装置４０となる。
【００４４】
そして、第１制御部３２は、対象データをサーバ装置１０に転送する指示を含む転送コマンドとＲｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとを第１ストレージ通信部３３に送信する。その後、第１ストレージ通信部３３は、転送コマンドと、Ｒｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとを第２ストレージ装置４０に送信する（ステップＳ４０６）。
【００４５】
第２ストレージ装置４０の第２ストレージ通信部４３は、第１ストレージ装置３０から転送コマンドと、Ｒｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとを受信する（ステップＳ４０７）。第２ストレージ通信部４３は、転送コマンドと、Ｒｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとを第２制御部４２に送信する。
【００４６】
第２制御部４２は、受信した転送コマンドに基づき、第２ボリューム４５から対象データを取得する（ステップＳ４０８）。具体的に第２制御部４２は、第２ボリューム４５からデータ５１０「Ｄ３」を取得する。そして、第２制御部４２は、取得したデータ５１０「Ｄ３」と、受信したＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤとに基づき、Ｒｅａｄコマンドに対する応答となる応答フレームを設定する（ステップＳ４０９）。
【００４７】
具体的に、第２制御部４２は、第２ストレージ通信部４３から受信したＳ＿ＩＤ、Ｄ＿ＩＤ、ＯＸ＿ＩＤおよび転送コマンドに基づき、Ｓ＿ＩＤ、Ｄ＿ＩＤ、ＯＸ＿ＩＤを応答フレームのヘッダに設定する。このとき応答フレームのヘッダに設定されるＳ＿ＩＤは第１ストレージ装置３０である。また応答フレームのヘッダに設定されるＤ＿ＩＤはサーバ装置１０である。また応答フレームのヘッダに設定されるＯＸ＿ＩＤはサーバ装置１０である。そして第２制御部４２は、対象データであるデータ５１０「Ｄ３」を応答フレームに設定する。
【００４８】
そして第２制御部４２は、応答フレームを第２サーバ通信部４１に送信する。第２サーバ通信部４１は、応答フレームを第２制御部４２から受信する。そして、第２サーバ通信部４１は、応答フレームをスイッチ２０に送信する（ステップＳ４１０）。
【００４９】
スイッチ２０は、第２ストレージ装置４０から応答フレームを受信する（ステップＳ４１１）。そして、スイッチ２０は応答フレームに基づき、サーバ装置１０に応答フレームを送信する（ステップＳ４１２）。具体的にスイッチ２０は、応答フレームのヘッダに設定されているＤ＿ＩＤを参照し、応答フレームを送信する先を決定する。このとき、Ｄ＿ＩＤはサーバ装置１０であるため、スイッチ２０は、応答フレームをサーバ装置１０に送信する。
【００５０】
サーバ装置１０の制御部１１は、スイッチ２０から応答フレームを受信する（ステップＳ４１３）。このときＳ＿ＩＤは第１ストレージ装置３０である。また応答フレームのヘッダに設定されるＤ＿ＩＤはサーバ装置１０である。また応答フレームのヘッダに設定されるＯＸ＿ＩＤはサーバ装置１０である。このため、サーバ装置１０はＲｅａｄコマンドに対応する処理が、第１ストレージ装置３０にて正常に実行されたと判定する。
【００５１】
また第２制御部４２は、Ｒｅａｄコマンドの完了応答（後述）を構成するＲｅｓｐｏｎｓｅフレームに、応答フレームと同じＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤを設定する。そして、第２制御部４２は完了応答を第２サーバ通信部４１に送信する。第２サーバ通信部４１は、第２制御部４２から完了応答を受信する。そして、第２サーバ通信部４１は、スイッチ２０に完了応答を送信する（ステップＳ４１４）。
【００５２】
スイッチ２０は、第２ストレージ装置４０から完了応答を受信する（ステップＳ４１５）。そして、スイッチ２０は、完了応答を構成するＲｅｓｐｏｎｓｅフレームに設定されるＤ＿ＩＤに基づき、サーバ装置１０に完了応答を送信する（ステップＳ４１６）。
【００５３】
サーバ装置１０の制御部１１は、スイッチ２０から完了応答を受信する（ステップＳ４１７）。以上で処理は終了する。完了応答は、Ｒｅａｄコマンドに関連する処理が終了したことを示す通知である、したがって、制御部１１は、受信した完了応答に基づき、Ｒｅａｄコマンドに関連する処理が終了したと判定することができる。
【００５４】
なお、本実施形態ではサーバ装置１０は、２つのストレージ装置と接続しているが、サーバ装置１０は３つ以上のストレージ装置と接続してもよい。
【００５５】
またスイッチ２０は、第１ストレージ装置３０と、第２ストレージ装置４０と、ＦＣによって相互に接続されているが、ＦＣの代わりにｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）によって相互に接続されていてもよい。
【００５６】
上述したように、対象データであるデータ５１０「Ｄ３」を含む応答フレームは、第２ストレージ装置４０からスイッチ２０を介してサーバ装置１０に送信されるため、本来、対象データが設定された応答フレームのＳ＿ＩＤは、第２ストレージ装置４０となる。しかしながら、対象データが設定された応答フレームのＳ＿ＩＤに第２ストレージ装置４０を設定すると、応答フレームはサーバ装置１０が送信したＲｅａｄコマンドに対応しなくなる。このため、サーバ装置１０は、対象データが設定された応答フレームを受信しても、サーバ装置１０が送信したＲｅａｄコマンドの応答として認識しなくなってしまう。
【００５７】
このため、例えば、サーバ装置１０が送信したＲｅａｄコマンドの応答として認識させるために、第２ストレージ装置４０は、第１ストレージ装置３０を介し、応答フレームをサーバ装置１０に送るとする。この場合、サーバ装置１０がＲｅａｄコマンドのＤ＿ＩＤに設定したストレージ装置から、サーバ装置１０に応答フレームを送らなければならず、各ストレージ間のデータ通信頻度が高くなってしまう可能性がある。
【００５８】
よって、第２ストレージ装置４０は、第１ストレージ装置３０が送信したようにサーバ装置１０に見せかけるため、Ｒｅａｄコマンドに含まれるＳ＿ＩＤ、Ｄ＿ＩＤおよびＯＸ＿ＩＤに基づき、応答フレームを書き換える。これにより、サーバ装置１０は、第１ストレージ装置３０が送信したものとして、対象データを受信する。したがって、サーバ装置１０は特殊な対応をする必要がなく、通常のＲｅａｄコマンドとして対応することができる。
【００５９】
以上により、第１実施形態に係るストレージシステム１は、サーバ装置１０に新たな機能を追加することなく、各ストレージ間のデータ通信頻度を低減することができる。
【００６０】
＜第２実施形態＞
図７は第２実施形態におけるストレージシステムの構成の一例を示す機能ブロック図である。本実施形態に係るストレージシステム２は、本開示が解決しようとする課題を解決するための基本の構成である。
【００６１】
ストレージシステム２は、ストレージ装置６０Ａと、ストレージ装置６０Ｂとを備える。ストレージ装置６０Ａは、制御部６１Ａと、データを記憶する記憶部６２Ａとを備える。また、ストレージ装置６０Ｂは、制御部６１Ｂと、データを記憶する記憶部６２Ｂとを備える。以下、ストレージ装置６０Ａとストレージ装置６０Ｂとを区別しない場合、ストレージ装置６０と呼ぶ。また制御部６１Ａと制御部６１Ｂとを区別しない場合、制御部６１と呼ぶ。また、記憶部６２Ａと記憶部６２Ｂとを区別しない場合、記憶部６２と呼ぶ。
【００６２】
すなわち、ストレージシステム２は、複数のストレージ装置６０を備える。また複数のストレージ装置６０の夫々は、制御部６１と、データを記憶する記憶部６２とを備える。
【００６３】
複数のストレージ装置６０のうち、要求を受信したストレージ装置６０の制御部６１は、複数のストレージ装置６０のうち、要求の対象となる対象データが格納された記憶部６２を有するストレージ装置６０を特定する。要求は、要求の送信先を示す送信先識別子と要求の送信元を示す送信元識別子とを含む。
【００６４】
特定されたストレージ装置６０の制御部６１は、対象データと、送信先識別子を要求に対する応答の送信元識別子として設定し、かつ、送信元識別子を前記応答の送信先識別子として設定したヘッダ情報とを、応答として送信する。
【００６５】
図８は、第２実施形態におけるストレージシステム２の動作の一例を示すフローチャートである。
【００６６】
複数のストレージ装置６０のうち、要求に含まれる送信先識別子によって示される、要求の送信先であるストレージ装置６０の制御部６１が、要求を受信する（ステップＳ５０１）。例えば送信先識別子がストレージ装置６０Ａを示す場合、ストレージ装置６０Ａの制御部６１Ａは、要求を受信する。
【００６７】
そして、１つのストレージ装置６０の制御部６１は、受信した要求の対象となる対象データが格納された記憶部６２を有するストレージ装置６０を特定する（ステップＳ５０２）。例えば、ストレージ装置６０Ａの記憶部６２Ａに対象データが格納されている場合、ストレージ装置６０Ａの制御部６１Ａは、ステップＳ５０２にてストレージ装置６０Ａを特定する。また、ストレージ装置６０Ｂの記憶部６２Ｂに対象データが格納されている場合、ストレージ装置６０Ａの制御部６１Ａは、ステップＳ５０２にてストレージ装置６０Ｂを特定する。
【００６８】
その後、特定されたストレージ装置６０の制御部６１は、対象データと、要求の送信先を示す送信先識別子を要求に対する応答の送信元識別子として設定し、かつ、要求の送信元を示す送信元識別子を応答の送信先識別子として設定したヘッダ情報とを、応答として送信する（ステップＳ５０３）。
【００６９】
例えば、ステップＳ５０２にてストレージ装置６０Ａが特定された場合、ストレージ装置６０Ａの制御部６１Ａは、対象データと、送信先識別子であるストレージ装置６０Ａの情報を要求に対する応答の送信元識別子として設定し、かつ、要求の送信元を示す送信元識別子を応答の送信先識別子として設定したヘッダ情報とを、応答として送信する。
【００７０】
また、ステップＳ５０２にてストレージ装置６０Ｂが特定された場合、ストレージ装置６０Ｂの制御部６１Ｂは、対象データと、送信先識別子であるストレージ装置６０Ａの情報を要求に対する応答の送信元識別子として設定し、かつ、要求の送信元を示す送信元識別子を応答の送信先識別子として設定したヘッダ情報とを、応答として送信する。そして、処理は終了する。
【００７１】
このように、対象データが格納された記憶部６２を有するストレージ装置６０は、送信先識別子を要求に対する応答の送信元識別子として設定し、かつ、要求の送信元を示す送信元識別子を応答の送信先識別子として設定したヘッダ情報と対象データとを応答として送信する。
【００７２】
これにより、要求の送信元は、要求を受信したストレージ装置６０が応答を送信したとしたものとして、対象データが格納された記憶部６２を有するストレージ装置６０から応答を受信する。したがって、例えば、要求の送信元が、要求を送信したストレージ装置６０からの応答を、要求に対する応答と認識する場合であっても、要求の送信元は特殊な対応をする必要がなく、通常の応答として対応することができる。
【００７３】
以上により、第２実施形態に係るストレージシステム２は、要求の送信元に新たな機能を追加することなく、各ストレージ間のデータ通信頻度を低減することができる。
【００７４】
＜ハードウェア構成＞
本開示の各実施形態において、各システムの各構成要素は、機能単位のブロックを示している。各システムの各構成要素の一部又は全部は、例えば図９に示すような情報処理装置９００とプログラムとの任意の組み合わせにより実現される。情報処理装置９００は、一例として、以下のような構成を含む。
【００７５】
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３
・ＲＡＭ９０３にロードされるプログラム９０４
・プログラム９０４を格納する記憶装置９０５
・記録媒体９０６の読み書きを行うドライブ装置９０７
・通信ネットワーク９０９と接続する通信インターフェース９０８
・データの入出力を行う入出力インターフェース９１０
・各構成要素を接続するバス９１１
各実施形態における各システムの各構成要素は、これらの機能を実現するプログラム９０４をＣＰＵ９０１が取得して実行することで実現される。各システムの各構成要素の機能を実現するプログラム９０４は、例えば、予め記憶装置９０５やＲＡＭ９０３に格納されており、必要に応じてＣＰＵ９０１が読み出す。なお、プログラム９０４は、通信ネットワーク９０９を介してＣＰＵ９０１に供給されてもよいし、予め記録媒体９０６に格納されており、ドライブ装置９０７が当該プログラムを読み出してＣＰＵ９０１に供給してもよい。
【００７６】
各システムの実現方法には、様々な変形例がある。例えば、各システムは、構成要素毎にそれぞれ別個の情報処理装置９００とプログラムとの任意の組み合わせにより実現されてもよい。また、各システムが備える複数の構成要素が、一つの情報処理装置９００とプログラムとの任意の組み合わせにより実現されてもよい。
【００７７】
また、各システムの各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【００７８】
各システムの各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【００７９】
各システムの各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００８０】
以上、各実施形態を参照して本開示を説明したが、本開示は上記各実施形態に限定されものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８１】
１    ストレージシステム
２    ストレージシステム
１０    サーバ装置
１１    制御部
１２    記憶部
２０    スイッチ
３０    第１ストレージ装置
３１    第１サーバ通信部
３２    第１制御部
３３    第１ストレージ通信部
３４    第１記憶部
３５    第１ボリューム
４０    第２ストレージ装置
４１    第２サーバ通信部
４２    第２制御部
４３    第２ストレージ通信部
４４    第２記憶部
４５    第２ボリューム
５０    論理ディスク
５１    格納テーブル
５２    変換テーブル
６０    ストレージ装置
６１    制御部
６２    記憶部
９００    情報処理装置
９０１    ＣＰＵ
９０３    ＲＡＭ
９０４    プログラム
９０５    記憶装置
９０６    記録媒体
９０７    ドライブ装置
９０８    通信インターフェース
９０９    通信ネットワーク
９１０    入出力インターフェース
９１１    バス
【図１】
2018163572.tif 000003
【図２】
2018163572.tif 000004
【図３】
2018163572.tif 000005
【図４】
2018163572.tif 000006
【図５】
2018163572.tif 000007
【図６】
2018163572.tif 000008
【図７】
2018163572.tif 000009
【図８】
2018163572.tif 000010
【図９】
2018163572.tif 000011