(57)【特許請求の範囲】
【請求項１】
データを格納する第一の物理記憶領域を有する第一のストレージ装置と、データを格納する第二の物理記憶領域を有しデータの読出しあるいは書込みの処理命令の受信から該処理命令の応答の送信までの処理を該第一のストレージ装置よりも短い時間で実行可能な第二のストレージ装置と、該第一のストレージ装置および該第二のストレージ装置に格納されたデータにアクセスするホスト装置とに接続され、該第一の物理記憶領域と該第二の物理記憶領域とを有する仮想記憶領域を管理するとともに該仮想記憶領域を所定の大きさで区分した仮想ブロックへのホスト装置からのアクセスに対して該仮想ブロックに対応する第一の物理記憶領域のブロックまたは第二の物理記憶領域のブロックへのアクセス頻度およびアクセス時刻を記憶するスイッチ装置のデータ管理方法であって、
前記ホスト装置から前記仮想記憶領域の仮想ブロックへのアクセスがあると、該仮想記憶領域の仮想ブロックに対応する前記第一の物理記憶領域のブロックあるいは前記第二の物理記憶領域のブロックにアクセスするとともにアクセス頻度およびアクセス時刻を取得し、
前記ホスト装置から前記仮想記憶領域の仮想ブロックへの前記アクセスに対して取得されたアクセス頻度が、所定値以上か否かを判断し、
前記判断されたアクセス頻度が所定値以上の場合に、前記仮想記憶領域の仮想ブロックに対応する物理領域が前記第一の物理記憶領域のブロックの場合には、第二の物理記憶領域の中の最終アクセス時刻が、最も古いブロックを特定し、
前記所定値以上と判断されたアクセス頻度が、前記特定された最終アクセス時刻が最も古いブロックのアクセス頻度より大きく、かつ前記第二の物理記憶領域に空きがない場合には、前記所定値以上と判断されたアクセス頻度に対応する前記第一の物理記憶領域のブロックと前記第二の物理記憶領域の前記特定された最終アクセス時刻が最も古いブロックとの間で、該ブロックの入替処理を実行することを特徴とするデータ管理方法。
【請求項２】
前記ホスト装置から前記仮想記憶領域へのアクセスの回数によって前記アクセスの頻度を算出することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記アクセス頻度は、前記ホスト装置から前記仮想記憶領域へのアクセスの回数とともに、最終アクセス時刻からの経過時間によって前記アクセスの頻度を算出することを特徴とする請求項１に記載のデータ管理方法。
【請求項４】
データを格納する第一の物理記憶領域を有する第一のストレージ装置と、データを格納する第二の物理記憶領域を有しデータの読出しあるいは書込みの処理命令の受信から該処理命令の応答の送信までの処理を該第一のストレージ装置よりも短い時間で実行可能な第二のストレージ装置と、該第一のストレージ装置および該第二のストレージ装置に格納されたデータにアクセスするホスト装置とに接続可能なスイッチ装置であって、
前記第一の物理記憶領域と前記第二の物理記憶領域とから構成される仮想記憶領域情報と、前記ホスト装置から前記仮想記憶領域を所定の大きさで区分した仮想ブロックへの前記ホスト装置からのアクセスに対して該仮想ブロックに対応する前記第一の物理記憶領域のブロックまたは前記第二の物理記憶領域のブロックへのアクセス頻度およびアクセス時刻を記憶するメモリと、
前記ホスト装置から前記仮想記憶領域の仮想ブロックへのアクセスがあると、該仮想記憶領域の仮想ブロックに対応する前記第一の物理記憶領域のブロックあるいは前記第二の物理記憶領域のブロックにアクセスするとともに、アクセス頻度およびアクセス時刻を取得して前記メモリに記憶し、前記ホスト装置から前記仮想記憶領域の仮想ブロックへの前記アクセスに対して取得されたアクセス頻度が、所定値以上か否かを判断し、前記判断されたアクセス頻度が所定値以上の場合に、前記仮想記憶領域の仮想ブロックに対応する物理領域が前記第一の物理記憶領域のブロックの場合には、第二の物理記憶領域の中の最終アクセス時刻が、最も古いブロックを前記メモリの中から特定し、前記所定値以上と判断されたアクセス頻度が、前記特定された最終アクセス時刻が最も古いブロックのアクセス頻度より大きく、かつ前記第二の物理記憶領域に空きがない場合には、前記所定値以上と判断されたアクセス頻度に対応する前記第一の物理記憶領域のブロックと前記第二の物理記憶領域の前記特定された最終アクセス時刻が最も古いブロックとの間で、該ブロックの入替処理を実行する制御部と、を有することを特徴とするスイッチ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの読出しあるいは書込みのアクセスに対する処理速度の異なる複数のストレージ装置とホスト装置との間を接続するスイッチ装置のデータ管理方法に関する。
【背景技術】
【０００２】
ストレージシステムにおいて、スイッチ装置が複数のホスト装置と複数のストレージ装置とをネットワークを介して接続しデータの送受信の管理を行うものがある。
【０００３】
ストレージシステムの複数のストレージ装置の物理記憶領域を有効に使用するための技術としてストレージ装置の仮想化技術がある。ストレージ装置の仮想化によって、複数のストレージ装置を組み合わせた仮想記憶領域を設定することが可能となる。スイッチ装置がストレージ装置の仮想化を管理する場合がある。上記の記載に関連する技術が、特許文献１乃至特許文献４に開示されている。
【０００４】
スイッチ装置は、データの読出しあるいは書込みの処理命令の受信から該処理命令の応答の送信までの処理性能の異なるストレージ装置を管理する場合がある。スイッチ装置が管理する仮想記憶領域は、処理性能の異なるストレージ装置の物理記憶領域で構成される。このため、ホスト装置がデータの読出しあるいは書込みの処理命令をスイッチ装置に送信してからホスト装置が処理命令の結果をスイッチ装置から取得するまでの時間は、ストレージ装置の性能によって変化する。
【特許文献１】特開２００３−２７１４２５号公報
【特許文献２】特開２００６−３３１４５８号公報
【特許文献３】特開２００３−１５０４１４号公報
【特許文献４】特開平０７−１６０５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、処理性能の異なるストレージ装置とホスト装置とを接続可能とするスイッチ装置において、ホスト装置からのアクセスの多いデータに対する速い応答を可能にするスイッチ装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本スイッチ装置は、データを格納する第一の物理記憶領域を有する第一のストレージ装置と、データを格納する第二の物理記憶領域を有しデータの読出しあるいは書込みの処理命令の受信から該処理命令の応答の送信までの処理を該第一のストレージ装置よりも短い時間で実行可能な第二のストレージ装置と、ホスト装置とに接続される。また、本スイッチ装置は、前記第一の物理記憶領域と前記第二の物理記憶領域とから構成される仮想記憶領域情報と、前記ホスト装置から前記仮想記憶領域を所定の大きさで区分した仮想ブロックへの前記ホスト装置からのアクセスに対して該仮想ブロックに対応する前記第一の物理記憶領域のブロックまたは前記第二の物理記憶領域のブロックへのアクセス頻度およびアクセス時刻を記憶するメモリと、前記ホスト装置から前記仮想記憶領域の仮想ブロックへのアクセスがあると、該仮想記憶領域の仮想ブロックに対応する前記第一の物理記憶領域のブロックあるいは前記第二の物理記憶領域のブロックにアクセスするとともに、アクセス頻度およびアクセス時刻を取得して前記メモリに記憶し、前記ホスト装置から前記仮想記憶領域の仮想ブロックへの前記アクセスに対して取得されたアクセス頻度が、所定値以上か否かを判断し、前記判断されたアクセス頻度が所定値以上の場合に、前記仮想記憶領域の仮想ブロックに対応する物理領域が前記第一の物理記憶領域のブロックの場合には、第二の物理記憶領域の中の最終アクセス時刻が、最も古いブロックを前記メモリの中から特定し、前記所定値以上と判断されたアクセス頻度が、前記特定された最終アクセス時刻が最も古いブロックのアクセス頻度より大きく、かつ前記第二の物理記憶領域に空きがない場合には、前記所定値以上と判断されたアクセス頻度に対応する前記第一の物理記憶領域のブロックと前記第二の物理記憶領域の前記特定された最終アクセス時刻が最も古いブロックとの間で、該ブロックの入替処理を実行する制御部と、を有する。
【発明の効果】
【０００７】
本スイッチ装置は、処理性能の悪いストレージ装置に格納されたアクセス頻度の高いデータを処理性能の良いストレージ装置に移動するため、ホスト装置からのアクセスの多いデータに対する速い応答が可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一つの実施形態について詳細に説明する。
【０００９】
［ストレージシステム］
図１は、本実施形態のストレージシステムの例である。本実施形態のストレージシステムは、ホスト装置１００、ストレージ装置３００、ストレージ装置４００、ストレージ装置５００、および仮想化スイッチ装置２００を有する。ホスト装置１００と仮想化スイッチ装置２００との間、仮想化スイッチ装置２００とストレージ装置３００、ストレージ装置４００、およびストレージ装置５００との間は、それぞれ、例えば、ストレージエリアネットワークなどのネットワーク６００によって接続される。
【００１０】
［ホスト装置１００］
ホスト装置１００は、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト装置１００は、アプリケーションプログラムを実行する際、種々のファイルを使用する。ファイルはストレージ装置３００、ストレージ装置４００、ストレージ装置５００に格納される。
【００１１】
ホスト装置１００は、仮想化スイッチ装置２００を介してファイルが格納されたストレージ装置３００、ストレージ装置４００、ストレージ装置５００のデータ格納領域にアクセスすることにより、ファイルの読出し、あるいはファイルの書込みを行う。ファイルの読出し行う命令（読出命令）、あるいはファイルの書込みを行う命令（書込命令）は、読出命令か書込命令かを識別する情報、処理の対象のアドレス情報、書込みデータ情報等を含む。
【００１２】
ホスト装置１００は、制御部１１０、メモリ１２０、および入出力部１３０を有する。入出力部１３０は、ホスト装置１００を仮想化スイッチ装置２００にネットワーク６００を介して接続する。メモリ１２０は、ファイル処理プログラム１２１を格納する。制御部１１０は、ファイル処理プログラム１２１を実行することにより、ファイルシステムモジュール１１１として機能する。制御部１１０は、例えば、中央演算ユニット（ＣＰＵ）やその他の演算ユニットである。ファイルシステムモジュール１１１は、ストレージ装置に読出しアクセスあるいは書込みアクセスを実行する場合、仮想化スイッチ装置２００にデータの読出し命令、あるいはデータの書込み命令を送信する。
【００１３】
［ストレージ装置］
ストレージ装置３００、ストレージ装置４００、およびストレージ装置５００は、ホスト装置１００のファイルを格納する。本実施の形態のストレージ装置３００、ストレージ装置４００、およびストレージ装置５００は、製品の種別やストレージ装置内部の構成などによりアクセス性能が異なるものとする。本実施の形態では、ストレージ装置３００の性能が最もよく、ストレージ装置５００の性能が最も悪く、ストレージ装置４００の性能がストレージ装置３００とストレージ装置５００との中間程度であるとする。
【００１４】
ストレージ装置３００は、制御部３１０、メモリ３２０、データ格納部３３０、および入出力部３４０を有し、ストレージ装置４００は、制御部４１０、メモリ４２０、データ格納部４３０を有し、ストレージ装置５００は、制御部５１０、メモリ５２０、データ格納部５３０を有する。なお、以上の構成は、ストレージ装置３００、ストレージ装置４００、およびストレージ装置５００で共通するためストレージ装置３００のみを説明する。
【００１５】
入出力部３４０は、ストレージ装置３００を仮想化スイッチ装置２００にネットワーク６００を介して接続する。メモリ３２０は、制御部３１０が実行する制御プログラム、制御部３１０が実行する実行結果を記憶する。メモリ３２０は、例えば、データの読み書きが可能なメモリ（ＲＡＭ）やデータの読み出しのみ可能なメモリ（ＲＯＭ）である。
【００１６】
制御部３１０は、仮想化スイッチ装置２００から受信するデータの読出し命令、あるいはデータの書込み命令に応じて、データ格納部３３０へのデータの書込み、データ格納部３３０からのデータの読出しを実行する。制御部３１０は、例えば、中央演算ユニット（ＣＰＵ）やその他の演算ユニットである。
【００１７】
データ格納部３３０のデータ格納領域は、物理ボリューム３５０が予め設定されているものとする。物理ボリューム３５０はホスト装置１００がファイルの格納領域として使用可能な複数の物理ブロックのまとまりである。物理ボリューム３５０は、ストレージ装置のデータ格納領域を任意の大きさで区切ることが可能である。図１のＰａ、Ｐｂ、およびＰｃは、ストレージ装置３００のデータ格納部３３０に設定された物理ボリューム３５０である。
【００１８】
ここでファイルとブロックとの関係を説明する。ホスト装置１００は、ファイルを単位としてデータを管理する。仮想化スイッチ装置２００およびストレージ装置３００は、ブロックを単位としてデータを管理する。ホスト装置１００は、ファイルとブロックとの対応関係を示す情報を有する。ファイルは、複数のブロックに格納されたデータの組み合わせになる。ホスト装置１００は、ファイルに対応するブロックを特定することにより、仮想化スイッチ装置２００を介してストレージ装置に対してアクセスする。物理ブロックは、ストレージ装置のデータ格納領域のデータの読出しあるいは書込みの単位である。
【００１９】
［仮想化スイッチ装置２００］
仮想化スイッチ装置２００は、ホスト装置１００とストレージ装置３００、ストレージ装置４００、およびストレージ装置５００との間で送受信するデータを管理する。また、仮想化スイッチ装置２００は、ストレージ装置３００、ストレージ装置４００、およびストレージ装置５００の物理ボリュームを仮想化する。仮想化とは、複数のストレージ装置の物理ボリュームを組み合わせた仮想ボリュームを設定することである。
【００２０】
ホスト装置１００は、仮想化スイッチ装置２００により、ホスト装置１００に関連するストレージ装置３００、ストレージ装置４００、およびストレージ装置５００の物理ボリュームの構成の管理が不要になる。ホスト装置１００は、仮想化モジュール２１１が管理する仮想ブロックにアクセスするのみで、ストレージ装置３００、ストレージ装置４００、およびストレージ装置５００の物理ボリュームにアクセスすることが可能となる。一方、仮想化機能を有さない通常のスイッチ装置の場合、ホスト装置が各ストレージ装置の物理ボリュームを管理する必要がある。また、ホスト装置はストレージ装置の物理ボリュームを単位として管理する必要があるため、ホスト装置の管理者の負担が増大する。
【００２１】
仮想化スイッチ装置２００は、ホスト装置１００から仮想ボリュームへのアクセスの傾向から、仮想ボリュームに対応する物理ボリュームへのアクセスに要する時間がシステム全体で見た場合に高速になるように、物理ボリューム上のデータの再配置を行う。
【００２２】
ホスト装置１００のファイルシステムモジュール１１１が管理するボリューム上の多数のファイルデータは、アクセス頻度が均一とは限らない。ファイルには、アクセス頻度が非常に高いものや、ほとんどアクセスが行われないものがある。
【００２３】
ホスト装置１００がアクセスする頻度が高いファイルに対応するデータが仮想ブロックを介して性能の悪い物理ボリュームにあるものとする。一方、ホスト装置１００がアクセスする頻度が低いファイルに対応するデータが仮想ブロックを介して性能の良い物理ボリュームにあるものとする。
【００２４】
この場合、システム全体のアクセス性能の平均は、アクセス性能の悪い物理ボリュームになる。そこで、仮想化スイッチ装置２００は、アクセスの状況に応じて、仮想ブロックと物理ブロックとの対応関係を変更する。
【００２５】
再配置の処理の概要を図２から図４で説明する。図２乃至図４は再配置処理の概要を説明する図である。２５０は、仮想化スイッチ装置２００が管理する仮想ボリュームＶ１である。３５０はストレージ装置３００のデータ格納部３３０内の一つの物理ボリュームＰａである。４５０はストレージ装置４００のデータ格納部４３０内の一つの物理ボリュームＰｄである。５５０はストレージ装置５００のデータ格納部５３０内の一つの物理ボリュームＰｇである。仮想化スイッチ装置２００と物理ボリュームとの間のアクセス性能は、物理ボリュームＰａが最も良く、Ｐｇが最も悪く、ＰｄがＰａとＰｇとの中間であるとする。
【００２６】
仮想ボリュームＶ１の仮想ブロックは、各物理ボリュームＰａ、Ｐｄ、あるいはＰｇの物理ブロックに対応する。７０１は物理ボリュームＰｇの任意の物理ブロックである。７０２は仮想ボリュームＶ１の物理ブロック７０１に対応する仮想ブロックである。
【００２７】
ホスト装置１００から仮想ブロック７０２へのアクセスする場合、実際のデータが格納されているのは物理ブロック７０１であるため、仮想化スイッチ装置２００は仮想ブロック７０２に対応する物理ブロック７０１にアクセスする必要がある。したがって、仮想ブロック７０２へのアクセス回数が増加するとシステム全体のアクセス性能が低下する。
【００２８】
そこで、仮想化スイッチ装置２００は、図３のように、物理ブロック７０１に格納されたデータを物理ボリュームＰａにコピーする。その後、仮想化スイッチ装置２００は、図４のように、物理ブロック７０３と仮想ブロック７０２とを対応付ける。
【００２９】
以上の処理によって、仮想ブロック７０２に対応する物理ブロックが、物理ブロック７０１から物理ブロック７０３に更新される。物理ブロック７０３の物理ボリュームＰａは物理ブロック７０１の物理ボリュームＰｇよりもアクセス性能が良い。したがって、ホスト装置１００から仮想ブロック７０２へのアクセスについては、仮想化スイッチ装置２００と物理ボリュームとの間のアクセス性能が改善される。この結果、システム全体のアクセス性能が向上する。
【００３０】
仮想化スイッチ装置２００は、制御部２１０、メモリ２２０、入出力部２３１、および入出力部２３２を有する。入出力部２３１は、仮想化スイッチ装置２００をホスト装置１００にネットワーク６００を介して接続する。入出力部２３２は、仮想化スイッチ装置２００をストレージ装置３００、ストレージ装置４００、およびストレージ装置５００にネットワーク６００を介して接続する。
【００３１】
次に仮想化スイッチ装置２００の制御部２１０を説明する。制御部２１０は、メモリ２２０に格納されたデータ処理プログラム２２１を実行することにより、仮想化モジュール２１１、アクセス計測モジュール２１２、データ配置モジュール２１３として機能する。制御部２１０は、例えば、中央演算ユニット（ＣＰＵ）やその他の演算ユニットである。
【００３２】
メモリ２２０は、データ処理プログラム２２１、仮想ボリューム情報２２２、性能情報２２３、アクセス状況情報２２４等を格納する。メモリ２２０は、例えば、データの読み書きが可能なメモリ（ＲＡＭ）やデータの読み出しのみ可能なメモリ（ＲＯＭ）である。
【００３３】
［データ処理プログラム２２１］
データ処理プログラム２２１は、制御部２１０が、ストレージ装置の仮想化処理、ストレージ装置に格納されたデータの再配置処理、ホスト装置１００から仮想ブロックへのアクセス状況情報の取得処理などを実行するための手順が書かれたものである。
【００３４】
［仮想ボリューム情報２２２］
仮想ボリュームは、仮想化スイッチ装置２００で管理する仮想的なボリューム情報である。本実施の形態では、仮想ボリューム情報２２２は、予め登録されているものとする。仮想ボリューム情報２２２は例えば管理者によって登録される。
【００３５】
仮想ボリューム情報２２２は、仮想ボリュームと物理ボリュームとの関係を示す情報である。具体的には、仮想ボリューム情報２２２は、仮想ボリュームの仮想ブロックのアドレス情報（仮想ブロックアドレス）とストレージ装置の物理ブロックのアドレス情報（物理ブロックアドレス）とを関連付けた情報である。
【００３６】
仮想ボリュームを分割する仮想ブロックのサイズは、例えば、管理者が仮想ボリュームを作成する際に指定する。仮想化スイッチ装置２００は、仮想ボリュームの使用中に仮想ブロックのサイズを変更することはできない。なお、本実施の形態の仮想ブロックに対応するデータの大きさは物理ブロックに対応するデータの大きさに等しいものとする。
【００３７】
図５は、仮想ボリュームと物理ボリュームとの関係を示す図である。
２５０、２７０は、仮想化モジュール２１１が管理する仮想ボリュームである。３５０は、ストレージ装置３００のデータ格納部３３０の物理ボリュームである。４５０は、ストレージ装置４００のデータ格納部４３０の物理ボリュームである。５５０は、ストレージ装置５００のデータ格納部５３０の物理ボリュームである。仮想化モジュール２１１が管理する仮想ボリュームは、仮想ボリュームＶ１、仮想ボリュームＶ２であるとする。仮想ボリュームＶ１は、物理ボリュームＰａ、物理ボリュームＰｄ、および物理ボリュームＰｇが対応付けられる。仮想ボリュームＶ２は、物理ボリュームＰｂ、物理ボリュームＰｅが対応付けられる。なお、本実施の形態のホスト装置１００は、仮想ボリュームＶ１が割り当てられているものとする。
【００３８】
図６は、仮想ボリュームＶ１に関する仮想ボリューム情報２２２である。仮想ボリューム情報２２２は、仮想ボリュームの仮想ブロックと物理ボリュームの物理ブロックとを対応付けた情報である。仮想ブロック２２２１の項目は、仮想ボリュームＶ１の各仮想ブロックのアドレス情報である。物理ブロック２２２２の項目は、物理ボリュームＰａ、物理ボリュームＰｄ、物理ボリュームＰｇの各物理ブロックのアドレス情報である。ストレージ装置のアクセス性能が異なる場合に、ストレージ装置の物理ボリューム領域を組み合わせて仮想ボリュームを作成すると、仮想ボリューム内でアクセス性能が異なる仮想ブロックが生じる。
【００３９】
仮想化スイッチ装置２００は、仮想ボリューム情報２２２によって、仮想ブロックと物理ブロックとの対応関係を管理する。ホスト装置１００が仮想ブロックにアクセスすると、仮想化スイッチ装置２００は、仮想ブロックに対応する物理ブロックを仮想ボリューム情報２２２で特定する。その後、仮想化スイッチ装置２００は、ホスト装置１００のアクセスに対応する物理ブロックにアクセスする。
【００４０】
［仮想化モジュール２１１］
仮想化スイッチ装置２００の制御部２１０は、メモリ２２０に格納されたデータ処理プログラム２２１を実行することにより、仮想化モジュール２１１として機能する。仮想化モジュール２１１は、仮想化スイッチ装置２００に接続されたストレージ装置３００、ストレージ装置４００、およびストレージ装置５００の物理ボリュームの一部、あるいは全部を組み合わせた仮想ボリュームを管理する。
【００４１】
仮想化モジュール２１１は、仮想ボリュームをホスト装置１００に認識させる。仮想化モジュール２１１は、ホスト装置１００から仮想ブロックへのアクセスを受けると、仮想ボリューム情報２２２によって、仮想ブロックに対応するストレージ装置の対応する物理ブロックを特定する。その後、仮想化モジュール２１１は、特定した物理ブロックにアクセスする。
【００４２】
［性能情報２２３］
性能情報２２３は、仮想化スイッチ装置２００が管理するストレージ装置３００、ストレージ装置４００、およびストレージ装置５００のアクセス性能の情報を記憶する。
【００４３】
図７は性能情報２２３である。性能情報２２３は、ストレージ装置を識別する情報とストレージ装置の性能を数値化した情報とを対応付けて記憶する。ストレージ装置を識別する情報がストレージ装置２２３１の項目に格納される。ストレージ装置の性能値の情報が性能２２３２の項目に格納される。図７では、ストレージ装置３００の性能値は「５」であり、ストレージ装置４００の性能値は「３」であり、ストレージ装置３００の性能値は「１」である。本実施の形態のストレージ装置は、性能値が大きい程、良い性能であるものとする。図７では、ストレージ装置３００の性能が最も良く、ストレージ装置５００の性能が最も悪く、ストレージ装置４００の性能がストレージ装置３００とストレージ装置５００との中間程度になる。
【００４４】
仮想化スイッチ装置２００は、物理ボリュームのアクセス性能を計測することにより性能情報２２３を取得する。仮想化スイッチ装置２００は、アクセス対象のブロックのサイズやアクセスする方向を変えて予め定めた複数種類のパターンで行い、平均のアクセス性能を計測する。
【００４５】
仮想化スイッチ装置２００は、性能情報２２３を、物理ボリュームを単位として取得することも可能であり、ストレージ装置３００乃至５００を単位として取得することも可能である。
【００４６】
なお、本実施の形態の仮想化スイッチ装置２００は、物理ボリュームから仮想ボリュームを構築するときに、アクセス性能を計測する。仮想化スイッチ装置２００が、仮想化スイッチ装置２００から物理ボリュームへのデータのアクセスを実行中にアクセス性能を計測すると、アクセス性能を計測するための処理により、通常のデータのアクセスの性能が低下する可能性があるためである。また、仮想化スイッチ装置２００から物理ボリュームへのアクセス性能は、物理ボリュームに異常が発生した場合などの状態変化により一時的に大きく劣化する場合がある。性能のよい物理ボリュームのアクセス性能が内部の異常により一時的に劣化した場合、アクセス性能は異常の修復により回復する。したがって、一時的に劣化したアクセス性能に従って性能を判断する必要はない。以上から、仮想化スイッチ装置２００から物理ボリュームへのデータのアクセスを実行中にアクセス性能を計測することは、仮想ブロックと物理ブロックの入替処理を必要以上に実行する原因になる可能性がある。
【００４７】
［アクセス状況情報２２４］
アクセス状況情報２２４は、ホスト装置１００から仮想化スイッチ装置２００が管理する仮想ブロックへのアクセスの状況を示す情報である。アクセスの状況を示す情報は、例えば、ホスト装置１００が仮想ブロックにアクセスした回数を示す情報（アクセス回数情報）、ホスト装置１００が仮想ブロックに最後にアクセスした時刻を示す情報（アクセス時刻情報）である。
【００４８】
図８は、アクセス状況情報２２４である。アクセス状況情報２２４は、仮想ボリューム内の仮想ブロックの位置を特定する仮想ブロック情報、アクセス回数情報、およびアクセス時刻情報を有する。仮想ブロックのアドレス情報が仮想ブロック２２４１の項目に格納される。仮想ブロックにアクセスした回数がアクセス回数２２４２の項目に格納される。仮想ブロックに最後にアクセスした時刻がアクセス時刻２２４３の項目に格納される。仮想ブロックは、仮想ボリューム情報２２２の仮想ブロックに対応する。仮想化スイッチ装置２００は、仮想ブロック毎に、アクセス回数情報とアクセス時刻情報とを対応付けて格納する。
【００４９】
［アクセス計測モジュール２１２］
仮想化スイッチ装置２００の制御部２１０は、メモリ２２０に格納されたデータ処理プログラム２２１を実行することにより、アクセス計測モジュール２１２として機能する。
【００５０】
アクセス計測モジュール２１２は、ホスト装置１００が仮想ブロックにアクセスした状況をアクセス状況情報２２４に記憶する。アクセス計測モジュール２１２は、ホスト装置１００のアクセス情報を取得すると、取得したアクセス情報からアクセス対象の仮想ブロックを特定する。アクセス計測モジュール２１２は、特定した仮想ブロックに対応するアクセス状況情報２２４のアクセス回数情報を更新する。また、アクセス計測モジュール２１２は、特定した仮想ブロックに対応するアクセス状況情報２２４のアクセス時刻情報を更新する。
【００５１】
図９は、本実施の形態のアクセス計測処理のフローチャートである。アクセス計測モジュール２１２は、ホスト装置１００からのアクセスを取得する（Ｓ１０１）。アクセス計測モジュール２１２は、アクセス状況情報２２４を更新する（Ｓ１０２）。具体的には、アクセス計測モジュール２１２は、Ｓ１０１で取得したアクセス情報から仮想ブロック毎のアクセス回数を取得し、アクセス対象の仮想ブロックに対応するアクセス状況情報２２４のアクセス回数を１回分、増加させる。また、アクセス計測モジュール２１２は、アクセス対象の仮想ブロックに対応するアクセス状況情報２２４のアクセス時刻情報を、アクセスを受信した時刻に更新する。
【００５２】
アクセス計測モジュール２１２は、アクセス対象の仮想ブロックのアクセス回数が予め定めた回数を超えたか否かを判別する（Ｓ１０３）。なお、仮想ブロックに対応する物理ブロックの入替処理を実行するか否かを決定するためのアクセス回数の閾値は、例えば、管理者が登録する。
【００５３】
アクセス計測モジュール２１２は、アクセス対象の仮想ブロックのアクセス回数が予め定めた回数未満の場合（Ｓ１０３：Ｎｏ）、Ｓ１０１に戻り、ホスト装置１００からのアクセス情報を取得する。一方、アクセス計測モジュール２１２は、ブロックへのアクセス回数が予め定めた回数を以上になった場合（Ｓ１０３：Ｙｅｓ）、アクセス計測モジュール２１２は、アクセス対象の仮想ブロックのアクセス状況情報２２４のアクセス回数を初期化する（Ｓ１０４）。その後、仮想化スイッチ装置２００は、再配置処理の実行を開始する（Ｓ１０５）。再配置処理は、データ配置モジュール２１３が実行する。
【００５４】
［データ配置モジュール２１３］
仮想化スイッチ装置２００の制御部２１０は、メモリ２２０に格納されたデータ処理プログラム２２１を実行することにより、データ配置モジュール２１３として機能する。
【００５５】
データ配置モジュール２１３は、仮想ブロックに対応する物理ブロックをアクセスの状況によって変更する。アクセスは、ホスト装置１００から仮想化スイッチ装置２００へのアクセス、および仮想化スイッチ装置２００からストレージ装置３００乃至５００へのアクセスがある。データ配置モジュール２１３は、ホスト装置１００から仮想化スイッチ装置２００へのアクセスの状況によって、仮想ブロックに対応する物理ブロックを変更する。以下に、データ配置モジュール２１３が実行する再配置処理を説明する。
【００５６】
図１０は、本実施の形態の再配置処理のフローチャートである。
【００５７】
データ配置モジュール２１３は、再配置処理の対象の仮想ブロック（以下、再配置ブロックとする）に対応する物理ブロックの物理ボリュームよりも性能の良い物理ボリュームを、仮想ボリュームに有するか否かを判別する（Ｓ１１１）。再配置ブロックの対応する物理ブロックの物理ボリュームよりも性能の良い物理ボリュームが仮想ボリュームに無い場合（Ｓ１１１：Ｎｏ）、データ配置モジュール２１３は、再配置処理を終了する。例えば、再配置ブロックに対応する物理ブロックの物理ボリュームが仮想ボリュームの中で最も性能の良い物理ボリュームである場合に、性能の良い物理ボリュームが無いと判断される。
【００５８】
また、仮想化スイッチ装置２００は、再配置ブロックが属する物理ボリュームよりも性能の良い物理ボリュームを、仮想化スイッチ装置２００が管理する全ての物理ボリュームから検索することも可能である。仮想化スイッチ装置２００は、仮想ボリュームの物理ボリュームを単位として、検索した物理ボリュームと再配置ブロックが属する物理ボリュームとを入れ替えることも可能である。さらに、仮想化スイッチ装置２００は、検索した物理ボリュームと再配置ブロックが属する物理ボリュームとの記憶領域の大きさが一致する場合に物理ボリュームの入替の処理が可能である。
【００５９】
一方、データ配置モジュール２１３は、再配置ブロックに対応する物理ブロックの物理ボリュームよりも性能の良い物理ボリュームが仮想ボリュームにある場合（Ｓ１１１：Ｙｅｓ）、再配置ブロックに対応する物理ブロックが属する物理ボリュームよりも１段階性能が良い物理ボリュームを特定する（Ｓ１１３）。具体的には、データ配置モジュール２１３は、仮想ボリューム情報２２２から、再配置ブロックが属する仮想ボリュームが有する物理ボリュームを検索する。データ配置モジュール２１３は、検索した物理ボリュームの性能情報を比較することにより、再配置ブロックに対応する物理ブロックが属する物理ボリュームよりも１段階性能が良い物理ボリュームを特定する。
【００６０】
次に、データ配置モジュール２１３は、１段階性能が良い物理ボリュームの物理ブロックから最終アクセス時間が最も古い物理ブロックを検索する（Ｓ１１４）。具体的には、データ配置モジュール２１３は、仮想ボリューム情報２２２から、１段階性能が良い物理ボリュームの物理ブロック群に対応する仮想ブロック群を特定する。データ配置モジュール２１３は、特定した仮想ブロック群の内、最終アクセス時間が最も古い物理ブロックをアクセス状況情報２２４から検索する。
【００６１】
データ配置モジュール２１３は、最終アクセス時間が最も古い物理ブロックに対応する仮想ブロックのアクセス頻度および再配置処理の対象の仮想ブロックのアクセス頻度を算出する（Ｓ１１５）。アクセス頻度は、例えば、ホスト装置１００から仮想ブロックへのアクセスの回数によって求める。
【００６２】
［アクセス頻度の算出方法］
ここで、データ配置モジュール２１３が実行するＳ１１５のアクセス頻度の算出処理を説明する。データ配置モジュール２１３は、アクセスの回数だけでなく、最後にアクセスされてからの経過時間を加味してアクセス頻度を算出することも可能である。
【００６３】
図１１は、アクセス頻度を説明する図である。図１１の８０は、仮想ブロックＶ１（０２）の時間軸を示す。８１は、仮想ブロックＶ２（ｍ）の時間軸を示す。８２は、仮想ブロックＶ１（０２）に対するホスト装置１００からのアクセス群を示す。８３は、仮想ブロックＶ２（ｍ）に対するホスト装置１００からのアクセスを示す。
【００６４】
ホスト装置１００から仮想ボリュームへのアクセスは、時間に対して均一に行わるとは限らない。アクセス群８２は、ホスト装置１００から仮想ブロックＶ１（０２）に対するアクセスが短時間に集中していることを示す。仮想ブロックＶ１（０２）は、ホスト装置１００から一時的に非常に多くのアクセスが行われるが、その後ほとんどアクセスされない。一方、仮想ブロックＶ２（ｍ）は、アクセス８３は、ホスト装置１００から時間に対して分散したアクセスが行われる。
【００６５】
仮想ブロックＶ１（０２）のアクセス群８２のアクセス回数は、仮想ブロックＶ２（ｍ）のアクセス８３のアクセス回数よりも多いとする。ホスト装置１００から仮想ボリュームへのアクセス回数だけでアクセス頻度の計算を行うと、ほとんどアクセスされないデータであるにも関わらず、性能の良い物理ボリュームに配置される可能性がある。図１１では、アクセス回数のみで再配置の判断をすると、仮想ブロックＶ１（０２）が性能の良い物理ボリュームに配置される。
【００６６】
そこで、本実施の形態では、データ配置モジュール２１３は、ホスト装置１００から仮想ブロックへのアクセス回数と最後にアクセスがあってからの経過時間とからアクセス頻度を計算する。
【００６７】
データ配置モジュール２１３は、仮想ブロックへのアクセス回数を「Ａ」とし、最後にアクセスがあってからの経過時間を「Ｐ」とし、係数を「Ｎ」として、（数１）でアクセス頻度を算出する。
【００６８】
【数１】
0005186982.tif 000002
【００６９】
係数「Ｎ」は仮想ブロック毎に保持される値である。係数「Ｎ」の値が大きいと、（数１）のアクセス頻度は、アクセス回数の値が重要になる。係数「Ｎ」の値が小さいと、（数１）のアクセス頻度は、最終アクセスからの経過時間の値が重要になる。係数「Ｎ」の最適値は、仮想ボリュームの利用傾向により異なる。
【００７０】
データ配置モジュール２１３は、係数「Ｎ」の値を最適に調整するため、アクセス頻度の更新時に次回のアクセス頻度の算出で使用する係数「Ｎ」を、（数２）によって算出する。「Ｎ（ｎｅｘｔ）」は、次回のアクセス頻度の算出で使用する係数「Ｎ」である。「Ｎ（ｎｏｗ）」は今回のアクセス頻度の算出で使用する係数「Ｎ」である。「Ｔ」は、各仮想ブロックのアクセスに対する「Ｐ」の平均である。
【００７１】
【数２】
0005186982.tif 000003
【００７２】
一時的に非常に多くのアクセスが行われその後アクセスが行われない仮想ブロックのアクセス頻度は、（数２）により係数「Ｎ」が小さくなる結果、時間の経過に従って低くなる。一方、アクセス間隔は長いが定常的にアクセスが行われている仮想ブロックのアクセス頻度は、（数２）により係数「Ｎ」が一定に保持される結果、低下しにくい。
【００７３】
図１０のフローチャートの処理の説明に戻る。
【００７４】
データ配置モジュール２１３は、再配置ブロックのアクセス頻度が最終アクセス時間の最も古い物理ブロックに対応する仮想ブロックのアクセス頻度よりも大きいか否かを判別する（Ｓ１１６）。
【００７５】
データ配置モジュール２１３は、再配置ブロックのアクセス頻度が最終アクセス時間の最も古い物理ブロックに対応する仮想ブロックのアクセス頻度よりも大きい場合（Ｓ１１６：Ｙｅｓ）、アクセス特性の良い物理ボリュームに空きがない場合、入替処理を実行する（Ｓ１１７）。なお、アクセス特性の良い物理ボリュームに空きがある場合、データを物理ボリュームの空き領域にコピー（あるいは移動）する。アクセス特性の良い物理ボリュームに空きがある場合、Ｓ１１６の判定処理およびＳ１１７の入替処理は不要である。
【００７６】
一方、対象ブロックのアクセス頻度が最終アクセス時間の最も古い物理ブロックに対応する仮想ブロックのアクセス頻度よりも小さい場合（Ｓ１１６：Ｎｏ）、データ配置モジュール２１３は、処理を終了する。
【００７７】
なお、アクセス計測モジュール２１２は、アクセス状況情報２２４のアクセス回数のみを取得する構成とする場合は、所定時間毎にアクセス状況情報２２４を初期化する。この構成により、アクセス計測モジュール２１２は、所定期間内の各ブロックのアクセス頻度の傾向を取得することが可能になる。
【００７８】
［仮想ブロックに対応する物理ブロックの入替処理］
次に、データ配置モジュール２１３が実行するＳ１１７の仮想ブロックに対応する物理ブロックの入替処理を説明する。入替処理は、仮想ブロックと物理ブロックのアドレスの対応を変更する処理である。
【００７９】
図１２は、仮想ブロックに対応する物理ブロックの入替処理のフローチャートである。図１３は、入替処理による仮想ブロックと物理ブロックとデータとの関係を説明する図である。
【００８０】
仮想ブロックＶｉと仮想ブロックＶｊとがある。物理ブロックＸと物理ブロックＹとがある。仮想ブロックＶｉにデータＤ１が対応し、仮想ブロックＶｊにデータＤ２が対応する。また、空き物理ブロックＦがある。
【００８１】
空き物理ブロックＦは入替処理に使用する物理ブロックである。空き物理ブロックＦは、例えば、アクセス性能の悪い物理ボリューム、物理ディスクの論理的なサイズと物理的なサイズとの間の差から生じる切れ端の領域、仮想ボリュームに設定されていない物理ボリュームなどを用いることが可能である。
【００８２】
図１３の１００１は、初期状態の仮想ブロックと物理ブロックと物理ブロックに格納されたデータとの間の関係を示す。初期状態１００１では、仮想ブロックＶｉと物理ブロックＸとが対応し、仮想ブロックＶｊと物理ブロックＹとが対応する。初期状態１００１では、物理ブロックＸにはデータＤ１が格納され、物理ブロックＹにはデータＤ２が格納されている。
【００８３】
入替処理によって、データ配置モジュール２１１は、初期状態１００１から最終状態にブロックの対応関係を変更する。最終状態はＳ１２７の状態であり、仮想ブロックＶｉと物理ブロックＹとを対応し、仮想ブロックＶｊと物理ブロックＸとが対応する。最終状態では、物理ブロックＹにはデータＤ１が格納されており、物理ブロックＸにはデータＤ２が格納されている。
【００８４】
データ配置モジュール２１３は、物理ブロックＦを取得する（Ｓ１２１）。本実施の形態では、データ配置モジュール２１３は、仮想化スイッチ装置２００が管理する仮想ボリュームに属さない物理ボリュームの物理ブロックを物理ブロックＦとして取得する。データ配置モジュール２１３は、例えば、仮想ボリュームに属するボリュームか否かを、図５のようなボリュームの対応情報に基づき判断する。
【００８５】
データ配置モジュール２１３は、物理ブロックＸのデータＤ１を物理ブロックＦにコピーする（Ｓ１２２）。データ配置モジュール２１３は、仮想ボリューム情報２２２の仮想ブロックＶｉに対応する物理ブロックを物理ブロックＸから物理ブロックＦに更新する（Ｓ１２３）。図１３では、Ｓ１２３の状態１００２である。
【００８６】
データ配置モジュール２１３は、物理ブロックＹのデータＤ２を物理ブロックＸにコピーする（Ｓ１２４）。データ配置モジュール２１３は、仮想ボリューム情報２２２の仮想ブロックＶｊに対応する物理ブロックを物理ブロックＹから物理ブロックＸに更新する（Ｓ１２５）。図１３では、Ｓ１２５の状態１００３である。
【００８７】
データ配置モジュール２１３は、物理ブロックＦのデータＤ１を物理ブロックＹにコピーする（Ｓ１２６）。データ配置モジュール２１３は、仮想ボリューム情報２２２の仮想ブロックＶｉに対応する物理ブロックを物理ブロックＦから物理ブロックＹに更新する（Ｓ１２７）。図１３では、Ｓ１２７の状態１００４である。
【００８８】
データ配置モジュール２１３は、物理ブロックＦを開放する（Ｓ１２８）。
【００８９】
以上の入替処理によって、データ配置モジュール２１３は、ホスト装置１００のアクセスする対象の仮想ブロックは同一のままで、仮想ブロックに対応する物理ブロックを入れ替えることが可能になる。
【００９０】
仮想化スイッチ装置２００がアクセス計測処理と再配置処理を繰り返すことにより、ホスト装置１００からのアクセスの頻度が大きい仮想ブロックが性能の良い物理ボリュームに配置され、ホスト装置１００からのアクセスの頻度が小さい仮想ブロックが性能の悪い物理ボリュームに配置される。この結果、仮想化スイッチ装置２００は仮想ボリューム全体の平均アクセス性能を高速にすることが可能になる。
【００９１】
本実施例では、仮想化スイッチ装置２００がストレージ装置の仮想化を行う。このため、仮想化スイッチ装置２００にアクセス性能の良いストレージ装置が新たに増設された場合、システムを停止することなく、アクセス頻度の高いデータを移動することが可能になる。
【００９２】
［ファイルとブロックとの関係］
次に、ホスト装置１００で管理するファイルを物理ブロック上で連続させることによりアクセス性能を向上させる処理を説明する。
【００９３】
図１４はファイルとデータとの関係を示す図である。ファイルは、複数のデータによって構成される。１４０は、ホスト装置１００で扱われるファイルＦｎである。７００は、仮想化スイッチ装置２００、およびストレージ装置３００、４００、５００で扱うデータＤＰ、ＤＱ、ＤＲである。ファイルＦｎは、データＤＰ、データＤＱ、データＤＲから構成される。
【００９４】
ホスト装置１００のファイルシステムモジュール１１１は、図１４のファイルＦｎのデータを取得する場合、データＤＰ、ＤＱ、ＤＲにアクセスする。ホスト装置１００がアプリケーションプログラムを実行する際に使用するファイルは、複数のブロックのデータによって構成される。ホスト装置１００のファイルシステムモジュール１１１が管理する１つのファイルを構成する複数の仮想ブロックは、仮想ボリューム上に離散する場合がある。
【００９５】
さらに、離散した仮想ブロックに対応する物理ブロックが、異なる物理ボリュームに属する場合がある。この場合、ホスト装置１００から仮想化スイッチ装置２００へのアクセスは複数の仮想ブロックに対するアクセスになる。また、仮想化スイッチ装置２００は、複数の物理ボリュームへアクセスする必要がある。そのため、単一の物理ボリュームの連続領域にデータが存在する場合と比べてアクセス性能が悪くなる。
【００９６】
図１５は、データ配置の説明図である。１１１はファイルシステムモジュールであり、２５０は仮想ボリュームＶ１であり、３５０はストレージ装置３００の一つの物理ボリュームＰａであり、４５０はストレージ装置４００の一つの物理ボリュームＰｄであり、５５０はストレージ装置５００の一つの物理ボリュームＰｇである。仮想ボリュームＶ１は、仮想ブロックＶ１（ｐ）、仮想ブロックＶ１（ｑ）、仮想ブロックＶ１（ｒ）を有する。物理ボリュームＰａは物理ブロックＰａ（ｐ）を有する。物理ボリュームＰｄは物理ブロックＰｄ（ｑ）を有する。物理ボリュームＰｇは物理ブロックＰｇ（ｒ）を有する。物理ブロックＰａ（ｐ）は、データＤＰを格納する。仮想ブロックＶ１（ｐ）は、物理ブロックＰａ（ｐ）に対応付けられる。物理ブロックＰｄ（ｑ）は、データＤＱを格納する。仮想ブロックＶ１（ｑ）は、物理ブロックＰａ（ｑ）に対応付けられる。物理ブロックＰｇ（ｒ）は、データＤＲを格納する。仮想ブロックＶ１（ｒ）は、物理ブロックＰａ（ｒ）に対応付けられる。
【００９７】
そこで、データ配置モジュール２１３は、複数の物理ブロックに断片化されたファイルが物理ディスク上で連続領域となるように、物理ボリューム上のデータを再配置する。
【００９８】
図１６は、図１５の仮想ブロックと物理ブロックとデータとの関係を説明する図である。図１６は、ファイルＦｎのデータＤＰ、ＤＱ、ＤＲが離散した状態を示す。７１１は、仮想ブロックのアドレス情報を示す。７１２は、仮想ブロックのアドレス情報に対応する物理ブロックのアドレス情報を示す。７１３は、物理ブロックに格納されたデータを示す。仮想ボリュームＶ１は、３つの物理ボリューム（Ｐａ、Ｐｄ、Ｐｇ）で構成される。仮想ブロックＶ１（ｐ）は物理ボリュームＰａの物理ブロックＰａ（ｐ）に対応する。仮想ブロックＶ１（ｑ）は物理ボリュームＰｄの物理ブロックＰｄ（ｑ）に対応する。仮想ブロックＶ１（ｒ）は物理ボリュームＰｇの物理ブロックＰｇ（ｒ）に対応する。物理ボリュームＰａにおいて物理ブロックＰａ（Ｐ）、物理ブロックＰａ（Ｐ＋１）、物理ブロックＰａ（Ｐ＋２）は連続領域であるとする。仮想ブロックＶ１（ｐ）のデータをＤＰ、仮想ブロックＶ１（ｑ）のデータをＤＱ、および仮想ブロックＶ１（ｒ）のデータをＤＲとする。また、物理ブロックＰａ（Ｐ＋１）のデータをＤＰ＋１、物理ブロックＰａ（Ｐ＋２）のデータをＤＰ＋２とする。
【００９９】
仮想化スイッチ装置２００が管理するストレージ装置３００乃至５００には、仮想ボリューム対応付けられていない物理ボリュームＰｘがあるとする。物理ボリュームＰｘは、空き物理ブロックＰｆを有するとする。
【０１００】
図１７は、連続するブロックに再配置する処理のフローチャートである。
【０１０１】
データ配置モジュール２１３は、ホスト装置１００からファイルＦｎについて、仮想ボリュームＶ１上の配置情報（仮想ブロックのアドレス情報、ファイルサイズ情報（ファイルが使用するブロック数の情報））およびデフラグ指示を取得する（Ｓ１３１）。なお、ファイルＦｎは、データＤＰ、ＤＱ、ＤＱによって構成される。デフラグ指示は、例えば、ホスト装置１００のアクセス回数が少ないタイミング、あるいは、ホスト装置１００がデータへのアクセスに要する時間が所定値よりも増大したと判断した場合などに基づき、ホスト装置１００側で必要と判断した場合に実行する。
【０１０２】
データ配置モジュール２１３は、物理ブロックＰａ（ｐ）に隣接する物理ブロックＰａ（Ｐ＋１）のデータＤＰ＋１を空き物理ブロックＰｆにコピーする（Ｓ１３２）。データ配置モジュール２１３は、仮想ボリューム情報２２２を更新する。具体的には、データ配置モジュール２１３は、仮想ブロックＶ１（Ｐ＋１）に対応する物理ブロックを物理ブロックＰａ（ｐ＋１）から物理ブロックＰｆに更新する（Ｓ１３３）。
【０１０３】
データ配置モジュール２１３は、物理ブロックＰｄ（Ｑ）のデータＤＱを物理ブロックＰａ（Ｐ＋１）にコピーする（Ｓ１３４）。データ配置モジュール２１３は、仮想ボリューム情報２２２を更新する。具体的には、データ配置モジュール２１３は、仮想ブロックＶ１（Ｑ）に対応する物理ブロックを物理ブロックＰｄ（Ｑ）から物理ブロックＰａ（Ｐ＋１）に更新する（Ｓ１３５）。
【０１０４】
データ配置モジュール２１３は、物理ブロックＰｆのデータＤＰ＋１を物理ブロックＰｄ（Ｑ）にコピーする（Ｓ１３６）。データ配置モジュール２１３は、仮想ボリューム情報２２２を更新する。具体的には、データ配置モジュール２１３は、仮想ブロックＶ１（Ｐ＋１）に対応する物理ブロックを物理ブロックＰｆから物理ブロックＰｄ（Ｑ）に更新する（Ｓ１３７）。
【０１０５】
データ配置モジュール２１３は、ファイルＦｎの全てのデータの再配置が完了したか否かを判定する。ファイルＦｎの全てのデータの再配置が完了した場合（Ｓ１３８：Ｙｅｓ）、データ配置モジュール２１３は処理を終了する。ファイルＦｎの全てのデータの再配置が完了していない場合（Ｓ１３８：Ｎｏ）、データ配置モジュール２１３は、残りのデータについてもＳ１３２以降の処理を継続して実行する。具体的には、図１５ではデータ配置モジュール２１３は、データの物理ブロックＰａ（Ｐ＋２）および物理ブロックＰｇ（Ｒ）についても同様の処理を実行する。
【０１０６】
図１８は、再配置処理を実行した後の仮想ブロックと物理ブロックとデータとの関係を説明する図である。再配置処理によって、ファイルＦｎを構成するデータＤＰが物理ブロックＰａ（Ｐ）に格納され、データＤＱが物理ブロックＰａ（Ｐ＋１）に格納され、データＤＲが物理ブロックＰａ（Ｐ＋２）に格納された状態になる。よって、仮想ブロックのアドレスが離れている場合であっても、仮想化スイッチ装置２００から物理ボリューム内の連続する物理ブロックにアクセスすることが可能になる。
【０１０７】
なお、使用可能な空き物理ブロックＰｆが複数ある場合、データ配置モジュール２１３は、データＤＱに関する処理とデータＤＲに関する処理を並行して実行することが可能になる。なお、上記例では、物理ブロックＰａ（Ｐ）に連続するブロックに再配置する処理とした。再配置のブロックは物理ブロックＰａ（Ｐ）に連続する必要は無く、任意のブロックで連続する位置に配置すればよい。
【０１０８】
データ配置モジュール２１３は、仮想ブロック上で断片化したファイルを連続する物理ブロックに配置するため、ホスト装置１００からのアクセスが物理ブロックに対してシーケンシャルなアクセスになる。この結果、アクセス性能は向上する。
【０１０９】
仮想化スイッチ装置２００は、仮想ボリュームを構成する物理ボリュームに対してのみ、デフラグメントの処理を行なう。このため、ホスト装置１００はデータの再配置を意識する必要が無い。ホスト装置１００からデータへのアクセスが不要であるため、ホスト装置１００の負荷にならない。
【０１１０】
また、データの再配置を行う際の一時データ格納領域として空いている物理ボリュームを利用することにより、仮想スイッチ装置２００内に再配置処理に必要なメモリを用意する必要が無い。さらに、一時データ格納領域を増やすことにより容易に性能向上を実現できる。
【図面の簡単な説明】
【０１１１】
【図１】本実施形態のストレージシステムの例である。
【図２】再配置処理の概要を説明する図である
【図３】再配置処理の概要を説明する図である
【図４】再配置処理の概要を説明する図である
【図５】仮想ボリュームと物理ボリュームとの関係を示す図である。
【図６】仮想ボリュームＶ１に関する仮想ボリューム情報２２２である。
【図７】性能情報２２３である。
【図８】アクセス状況情報２２４である。
【図９】アクセス計測処理のフローチャートである。
【図１０】再配置処理のフローチャートである。
【図１１】アクセス頻度を説明する図である。
【図１２】仮想ブロックに対応する物理ブロックの入替処理のフローチャートである。
【図１３】入替処理による仮想ブロックと物理ブロックとデータとの関係を説明する図である。
【図１４】ファイルとデータとの関係を示す図である。
【図１５】データ配置の説明図である。
【図１６】図１５の仮想ブロックと物理ブロックとデータとの関係を説明する図である。
【図１７】連続するブロックに再配置する処理のフローチャートである。
【図１８】再配置処理を実行した後の仮想ブロックと物理ブロックとデータとの関係を説明する図である。
【符号の説明】
【０１１２】
１００  ホスト装置
１１０  制御部
１２０  メモリ
１２１  ファイル処理プログラム
１３０  入出力部
２００  仮想化スイッチ装置
２１０  制御部
２２０  メモリ
２２１  データ処理プログラム
２２２  仮想ボリューム情報
２２３  性能情報
２２４  アクセス状況情報
２３１  入出力部
２３２  入出力部
３００  ストレージ装置
３１０  制御部
３２０  メモリ
３３０  データ格納部
３４０  入出力部
４００  ストレージ装置
４１０  制御部
４２０  メモリ
４３０  データ格納部
５００  ストレージ装置
５１０  制御部
５２０  メモリ
５３０  データ格納部
６００  ネットワーク
【図１】
0005186982.tif 000004
【図２】
0005186982.tif 000005
【図３】
0005186982.tif 000006
【図４】
0005186982.tif 000007
【図５】
0005186982.tif 000008
【図６】
0005186982.tif 000009
【図７】
0005186982.tif 000010
【図８】
0005186982.tif 000011
【図９】
0005186982.tif 000012
【図１０】
0005186982.tif 000013
【図１１】
0005186982.tif 000014
【図１２】
0005186982.tif 000015
【図１３】
0005186982.tif 000016
【図１４】
0005186982.tif 000017
【図１５】
0005186982.tif 000018
【図１６】
0005186982.tif 000019
【図１７】
0005186982.tif 000020
【図１８】
0005186982.tif 000021