(57)【要約】【課題】本発明の課題は、仮想ボリュームに対するアクセスに従うマッピング情報の追加によるマッピングテーブルの膨張を抑止し、有効時間内でのマッピング情報の検索処理が確保され、よって、システムパフォーマンスの低下を防止することである。【解決手段】本発明は、動的な記憶領域の割り当てを行うための仮想ボリュームを定義したストレージ装置において、仮想ボリュームと実ボリュームとの間におけるデータ・マイグレーション機能を提供する。このデータ・マイグレーション機能では、移行したデータに関するマッピング情報はマッピングテーブルから削除され、これによって、マッピングテーブルのサイズが制限されることになる。【選択図】図１
2008146536.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するコントローラユニットと、を備えるストレージ装置であって、
前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の物理記憶領域に対応付けられた第１の実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含む第１のデータボリュームと、
前記記憶媒体の他の物理記憶領域に対応付けられた第２の実ボリュームを含む第２のデータボリュームと、
前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに関わるデータを格納するための記憶領域が割り当てられたプールボリュームと、
前記仮想ボリュームに割り当てられた記憶領域と前記プールボリュームに割り当てられた記憶領域とを関連付けるエントリからなるプールボリューム管理テーブルと、
前記仮想ボリュームの使用率を監視する監視部と、
前記監視部の指示に従い、前記プールボリューム管理テーブルのエントリに基づいて、前記プールボリュームに割り当てられた記憶領域に格納されたデータを前記第２の実ボリュームに転送する転送部と、
を備えることを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記転送部により転送された前記データに関する前記プールボリューム管理テーブルのエントリを削除することを特徴とするストレージ装置。
【請求項３】
請求項１記載のストレージ装置であって、
前記転送部により転送された前記データを前記プールボリュームの記憶領域から削除することを特徴とするストレージ装置。
【請求項４】
請求項１記載のストレージ装置であって、
前記仮想ボリュームの使用率に関する情報を収集する収集部をさらに備えることを特徴とするストレージ装置。
【請求項５】
請求項４記載のストレージ装置であって、
前記監視部は、前記収集部により収集された前記使用率に関する情報に基づいて、前記転送部に指示を出すことを特徴とするストレージ装置。
【請求項６】
請求項４記載のストレージ装置であって、
予め指定された時点における前記仮想ボリュームの使用率を予測する予測部をさらに備え、
前記監視部は、前記予測部により予測された前記使用率に関する情報に基づいて、前記転送部に指示を出すことを特徴とするストレージ装置。
【請求項７】
データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するコントローラユニットと、を備えるストレージ装置であって、
前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の物理記憶領域に対応付けられた第１の実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含む第１のデータボリュームと、
前記記憶媒体の他の物理記憶領域に対応付けられた第２の実ボリュームを含む第２のデータボリュームと、
前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに関わるデータを格納する記憶領域が割り当てられたプールボリュームと、
前記仮想ボリュームに割り当てられた記憶領域と前記プールボリュームに割り当てられた記憶領域とを関連付けるエントリからなるプールボリューム管理テーブルと、
前記プールボリュームの使用率を監視する監視部と、
前記監視部の指示に従い、前記プールボリューム管理テーブルのエントリに基づいて、前記プールボリュームに割り当てられた記憶領域に格納されたデータを前記第２の実ボリュームに転送する転送部と、
を備えることを特徴とするストレージ装置。
【請求項８】
請求項７記載のストレージ装置であって、
前記プールボリュームの使用率に関する情報を収集する収集部をさらに備えることを特徴とするストレージ装置。
【請求項９】
請求項８記載のストレージ装置であって、
前記監視部は、前記収集部により収集された前記使用率に関する情報に基づいて、前記転送部に指示を出すことを特徴とするストレージ装置。
【請求項１０】
請求項８記載のストレージ装置であって、
予め指定された時点における前記プールボリュームの使用率を予測する予測部をさらに備え、
前記監視部は、前記予測部により予測された前記使用率に関する情報に基づいて、前記転送部に指示を出すことを特徴とするストレージ装置。
【請求項１１】
ストレージ装置におけるデータの管理方法であって、
前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の物理記憶領域に対応付けられた第１の実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含む第１のデータボリュームを提供するステップと、
前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに関わるデータを格納する記憶領域が割り当てられたプールボリュームを提供するステップと、
前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに基づいて、前記仮想ボリュームに割り当てられた記憶領域と前記プールボリュームに割り当てられた記憶領域とを関連付けたエントリをプールボリューム管理テーブルに追加するステップと、
前記仮想ボリュームの使用率が所定のしきい値を超えているか否かを判断するステップと、
前記仮想ボリュームの使用率が所定のしきい値を超えていると判断される場合に、前記仮想ボリュームに対応する、前記記憶媒体の固有記憶領域に対応付けられた第２の実ボリュームを含む第２のデータボリュームを特定するステップと、
前記プールボリューム管理テーブルのエントリに基づいて、前記プールボリュームに格納されたデータを前記特定した第２の実ボリュームに転送するステップと、
を備えることを特徴とするデータの管理方法。
【請求項１２】
請求項１１記載のデータ管理方法であって、
前記転送されたデータに関する前記プールボリューム管理テーブルのエントリを削除するステップをさらに備えることを特徴とするデータ管理方法。
【請求項１３】
請求項１１記載のデータ管理方法であって、
前記転送されたデータを前記プールボリュームの記憶領域から削除するステップをさらに備えることを特徴とするデータ管理方法。
【請求項１４】
請求項１１記載のデータ管理方法であって、
前記仮想ボリュームの使用率に関する情報を収集するステップをさらに備えることを特徴とするデータ管理方法。
【請求項１５】
請求項１４記載のデータ管理方法であって、
前記収集された使用率に関する情報に基づいて、前記転送が行われることを特徴とするデータ管理方法。
【請求項１６】
請求項１４記載のデータ管理方法であって、
予め指定された時点における前記仮想ボリュームの使用率を予測するステップをさらに備え、
前記予測された使用率に関する情報に基づいて、前記転送が行われることを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びこれを用いたデータ管理方法に関し、特に、動的な記憶領域の割り当てを行うための仮想ボリュームを定義したストレージ装置及びこの仮想ボリュームに対するデータを管理するデータ管理方法に関する。
【背景技術】
【０００２】
ディスクアレイは、複数のハードディスクドライブを論理的にまとめることによって、速度、記憶容量、信頼性等を高めるための技術として知られている。ＲＡＩＤは、ディスクアレイの代表的な実装形態である。
【０００３】
ディスクアレイが提供する論理ボリュームの記憶領域は、一般に、時間の経過とともに、消費されていく。このため、ある論理ボリュームの記憶領域を使い切った場合、ディスクアレイ内部の未使用の他の領域を任意の長さで切り出して当該論理ボリュームに結合することにより記憶領域を拡張する論理ボリュームの拡張技術が提案されている。
【０００４】
下記特許文献１は、複数のディスク記憶装置を管理するボリューム提供装置が、個々のホスト計算機に、対応する論理ボリュームを提供する技術を開示している。具体的には、ボリューム提供装置は、Ｉ／Ｏアクセスが示す論理ブロックアドレスの記憶領域が論理ボリューム上に存在しない場合、ディスク記憶装置から未使用の記憶領域を動的に割り当てることによって、論理ボリュームの記憶領域を拡張する。
【０００５】
また、ディスクアレイにおいては、システムの円滑な運用のため、システムの稼働状況を把握する必要がある。下記特許文献２は、記憶制御システムの稼働情報をメモリに蓄積していき、この蓄積した稼働情報を保守用端末装置に出力する技術を開示している。
【特許文献１】特開２００３-１５９１５号公報
【特許文献２】特開２００５-１９６６７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ストレージ装置が提供する記憶容量は、そこに実装されるハードディスクドライブ等に代表される物理的なデバイスの記憶容量に依存するため、大容量のストレージ装置が要求される場合には、多数のデバイスを実装する必要がある。ストレージ装置の実際の運用に際しては、将来的に必要となるであろう記憶容量を予め用意しておくよりも、記憶容量の消費状況を見ながら、段階的に増設した方がコスト的に有利である。
【０００７】
また、記憶領域を動的に割り当てることが可能なストレージ装置においては、記憶領域が動的に割り当てられるごとに、その割り当てを示すマッピング情報を作成して、マッピングテーブルに追加していく必要がある。したがって、そのような動的に割り当てられた記憶領域が増加していくにつれて、マッピングテーブルのサイズが大きくなっていき、マッピング情報の検索処理に負担がかかることになる。これは、マッピング情報の検索処理が遅延し、ストレージ装置全体のパフォーマンスが低下を招くおそれがある。
【課題を解決するための手段】
【０００８】
本発明は、動的な記憶領域の割り当てを行うための仮想ボリュームを定義したストレージ装置において、仮想ボリュームと実ボリュームとの間におけるデータ・マイグレーション機能を提供する。このデータ・マイグレーション機能は、これらのボリュームの使用状態に応じて、ボリュームに格納されたデータの配置を最適化することを含む。このデータ・マイグレーション機能では、移行したデータに関するマッピング情報はマッピングテーブルから削除され、これによって、マッピングテーブルのサイズが制限されることになる。
【０００９】
すなわち、ある一つの観点によれば、本発明は、仮想ボリュームに割り当てられている使用中の記憶領域の容量を監視し、当該容量が所定のしきい値を超えている又は超えそうな場合に、仮想ボリューム上の実データを実ボリュームに移動させるストレージ装置及びデータ管理方法である。
【００１０】
具体的には、本発明は、データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するコントローラユニットと、を備えるストレージ装置であって、前記記憶媒体の固有記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の物理記憶領域に対応付けられた第１の実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含む第１のデータボリュームと、前記記憶媒体の他の物理記憶領域に対応付けられた第２の実ボリュームを含む第２のデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに関わるデータを格納する記憶領域が割り当てられたプールボリュームと、前記仮想ボリュームに割り当てられた記憶領域と前記プールボリュームに割り当てられた記憶領域とを関連付けるエントリからなるプールボリューム管理テーブルと、前記仮想ボリュームの使用率を監視する監視部と、前記監視部の指示に従い、前記プールボリューム管理テーブルのエントリに基づいて、前記プールボリュームに割り当てられた記憶領域に格納されたデータを前記第２の実ボリュームに転送する転送部と、を備えるストレージ装置である。
【００１１】
また、ある一つの観点によれば、本発明は、仮想ボリュームに割り当てられている使用中の記憶領域に対する実データを実際に格納するプールボリュームの記憶容量を監視し、当該容量が所定のしきい値を超えている又は超えそうな場合に、仮想ボリューム上の実データを実ボリュームに移動させるストレージ装置及びデータ管理方法である。
【００１２】
具体的には、本発明は、データを格納する記憶媒体を有するディスクデバイスと、前記ディスクデバイスを制御するコントローラユニットと、を備えるストレージ装置であって、前記記憶媒体の物理記憶容量よりも大きな記憶容量が定義され、前記記憶媒体の物理記憶領域に対応付けられた第１の実ボリューム及び前記実ボリューム以外の記憶領域が割り当てられた仮想ボリュームを含む第１のデータボリュームと、前記記憶媒体の物理記憶領域に対応付けられた第２の実ボリュームを含む第２のデータボリュームと、前記仮想ボリュームに割り当てられた記憶領域に対するアクセスに関わるデータを格納する記憶領域が割り当てられたプールボリュームと、前記仮想ボリュームに割り当てられた記憶領域と前記プールボリュームに割り当てられた記憶領域とを関連付けるエントリからなるプールボリューム管理テーブルと、前記プールボリュームの使用率を監視する監視部と、前記監視部の指示に従い、前記プールボリューム管理テーブルのエントリに基づいて、前記プールボリュームに格納されたデータを前記第２の実ボリュームに転送する転送部と、を備えるストレージ装置である。
【００１３】
なお、上記のような装置発明は、方法の発明としても把握することができる。
【発明の効果】
【００１４】
マッピング情報の追加によるマッピングテーブルの膨張を抑止し、有効時間内でのマッピング情報の検索処理が確保され、よって、システムパフォーマンスの低下を防止することができるようになる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００１６】
本発明の一実施形態に係るストレージ装置は、動的な記憶領域の割り当てを行うための仮想ボリュームを定義したストレージ装置であって、仮想ボリュームと実ボリュームとの間のデータ・マイグレーション機能を備える。このデータ・マイグレーション機能では、移行したデータに関するマッピング情報はマッピングテーブルから削除され、これによって、マッピングテーブルのサイズが制限されることになる。
【００１７】
すなわち、本発明の一実施形態に係るストレージ装置は、仮想ボリュームに割り当てられている記憶領域の使用容量を監視し、当該容量が所定のしきい値を超える又は超えそうな場合に、仮想ボリューム上の実データを実ボリュームに移動させるストレージ装置及びデータ管理方法である。
【００１８】
また、本発明の他の実施形態に係るストレージ装置は、仮想ボリュームに割り当てられている使用中の記憶領域に対する実データを実際に格納するプールボリュームの記憶領域の使用容量を監視し、当該容量が所定のしきい値を超える又は超えそうな場合に、仮想ボリューム上の実データを実ボリュームに移動させるストレージ装置及びデータ管理方法である。
【００１９】
図１は、本発明の一実施形態に係るストレージシステム１の構成を示している。同図に示すように、ストレージシステム１は、ネットワークシステム２を介して接続されたホスト装置３及びストレージ装置４を含んで構成されている。ストレージ装置４は、例えば、ホスト装置３から受信した書み込みコマンドに従ってアプリケーションデータを格納し、また、読み込みコマンドに従って格納されたアプリケーションデータを読み出して、ホスト装置３に送信する。
【００２０】
ネットワーク２は、例えばＬＡＮ、インターネット、ＳＡＮ（Storage Area Network）、又は公衆回線等である。ネットワーク２は、典型的には、ネットワークスイッチやハブ等を含んで構成される。ネットワーク２を介したホスト装置３とストレージ装置４との間の通信は、所定のプロトコルをベースにして行われる。ネットワーク２が、例えば、ＬＡＮやインターネットであれば、ＴＣＰ／ＩＰをベースにした通信が行われる。また、ネットワーク２がＳＡＮであれば、ファイバーチャネルプロトコルが採用されるかもしれない。本実施形態においては、ネットワーク２は、ＳＡＮであるものとし、ファイバーチャネルプロトコルベースの通信が行われるものとする。
【００２１】
ホスト装置３は、典型的には、汎用のパーソナルコンピュータやワークステーション、メインフレームコンピュータ等が該当する。ホスト装置３は、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成されている。各ホスト装置３は、異なるユーザに属してもよく、各ホスト装置３においてユーザごとの業務システムが運用されるかもしれない。
【００２２】
ホスト装置３は、ＣＰＵ３１、メインメモリ３２、通信インターフェース（Ｉ／Ｆ）３３およびローカル入出力（Ｉ／Ｏ）装置３４等のハードウェア資源を備え、これらは内部バス３５により相互に接続されている。同図では、複数のホスト装置３のうち代表する一台について、その内部構成が示されている。
【００２３】
ホスト装置３はまた、デバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備えている。これによって、ホスト装置３は、ＣＰＵ３１の制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置３は、ＣＰＵ３１の制御の下、ＯＳ上で業務アプリケーションプログラムを実行することにより、上述した業務システムを実現する。
【００２４】
ストレージ装置４は、一又は複数のディスクデバイス４１と、ディスクデバイス４１に対する書き込み又は読み込みといったＩ／Ｏアクセスを制御するコントローラユニット４２と、ストレージ装置４に対する管理を行う管理装置４３と、を含んでいる。ディスクデバイス４１とコントローラユニット４２とは、内部バスにより直接的に接続されてもよいし、外部ネットワークを介して接続されてもよい。
【００２５】
ディスクデバイス４１は、例えばハードディスクドライブや不揮発性メモリ等の記憶媒体を含んで構成されるデバイスである。ディスクデバイス４１は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成している。ディスクデバイス４１によって提供される記憶領域群は、一又は複数の論理的なボリュームＬＵとして定義される。各論理ボリュームＬＵは、使用目的等に応じた属性ごとに分類することができ、本実施形態では、論理ボリュームＬＵとして、データボリューム及びプールボリュームが定義される。後述するように、データボリュームは、実ボリューム及び仮想ボリュームを含んで構成されるが、仮想ボリュームを含まずに実ボリュームのみから構成されてもよいし、実ボリュームを含まずに仮想ボリュームのみから構成されてもよい。各論理ボリュームＬＵには、識別子ＬＵＮ（Logical Unit Number）が割り当てられる。論理ボリュームＬＵはさらに、Ｉ／Ｏアクセスの最小単位であるセグメントに分割され、各セグメントには、論理ブロックアドレス（ＬＢＡ：Logical Block Address）が割り当てられる。これにより、ホスト装置３は、識別子ＬＵＮおよび論理ブロックアドレスＬＢＡからなる論理アドレスをストレージ装置４のコントローラユニット４２に与えることにより、特定の論理ボリュームＬＵ上における任意の記憶領域に記憶されたデータに対してアクセスを行うことができる。論理ボリュームＬＵに関する上述した情報は、システム構成情報の一部としてコントローラユニット４２に保持される。
【００２６】
ストレージ装置４がホスト装置３に対して提供可能な記憶領域は、そこに実装される物理的なデバイスであるディスクデバイス４１が有する固有の記憶容量に依存する。本実施形態では、後述する仮想ボリューム提供機能により、ストレージ装置４は、ディスクデバイス４１の固有の記憶容量よりも大きな記憶容量、例えば、将来的に拡張可能な最大記憶容量の記憶領域をホスト装置３に対して提供する。実装されたディスクデバイス４１が提供するある論理ボリュームＬＵにおける実際の（物理的に存在する）記憶領域は、実ボリュームとして定義され、実際の記憶領域以外の記憶領域は仮想ボリュームとして定義される。また、仮想ボリュームに対するアクセスを実現するための実際の記憶領域として、プールボリュームが定義される。
【００２７】
コントローラユニット４２は、ホスト装置３とディスクデバイス４１との間の入出力処理（Ｉ／Ｏアクセス）を統括的に制御するシステム回路である。具体的には、コントローラユニット４２は、複数のチャネルアダプタ（ＣＨＡ）４２１と、キャッシュメモリ（ＣＭ）４２２と、複数のディスクアダプタ（ＤＫＡ）４２３と、共有メモリ（ＳＭ）４２４とを備え、これらのモジュール乃至はコンポーネントは、例えばクロスバースイッチ等で構成された接続部４２５を介して相互に接続されている。コントローラユニット４２は、上述の仮想ボリューム提供機能を実装している。
【００２８】
チャネルアダプタ４２１は、ネットワーク２を介して接続されたコンピュータ３との間でＩ／Ｏアクセスに関するコマンド及びデータ（Ｉ／Ｏデータ）を送受する通信インターフェースとして機能するシステム回路である。チャネルアダプタ４２１は、管理装置４３と内部通信線４２６を介して接続され、管理装置４３との間で所定の通信ができるように構成されている。
【００２９】
キャッシュメモリ４２２は、ホスト装置３とディスクデバイス４１との間でやり取りされるＩ／Ｏデータを一時的に記憶する。すなわち、キャッシュメモリ４２２は、チャネルアダプタ４２１とディスクアダプタ４２３との間のＩ／Ｏデータの受け渡しに利用される。
【００３０】
ディスクアダプタ４２３は、ディスクデバイス４１に対するアクセスの制御を行う入出力インターフェースとして機能するシステム回路である。ディスクアダプタ４２３は、管理装置４３と内部通信線４２６を介して接続され、管理装置４３との間で所定の通信ができるように構成されている。
【００３１】
共有メモリ４２４は、ストレージ装置４に関する情報、例えば、ストレージ装置４のシステム構成情報及び稼働情報を記憶する。システム構成情報は、ストレージ装置４のシステム構成に関わる情報である。また、稼働情報は、ストレージ装置４の動作中に各モジュールから収集される、ストレージ装置４の動作状況に関わる情報である。共有メモリ４２４は、管理装置４３と内部通信線４２６を介して接続され、管理装置４３は、共有メモリ４２４を参照することができる。
【００３２】
接続部４２５は、上述したように、クロスバースイッチ等により構成される。接続部４２４は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。
【００３３】
図２は、本発明の一実施形態に係るストレージ装置４のチャネルアダプタ４２１の構成を示す図である。同図に示すように、チャネルアダプタ４２１は、例えば、複数のポート４２１１と、ＤＭＡ４２１２と、メモリ４２１３と、マイクロプロセッサ４２１４と、を備える。
【００３４】
ポート４２１１は、ネットワーク２上のネットワークスイッチに設けられたポートに、光ファイバ等のネットワークケーブルを介して接続される。各ポート４２２１には、ネットワークアドレス（ＷＷＮ等）が割り当てられ、これにより、ホスト装置３は、特定のポートを一意に識別できるようになっている。各ポート４２２１は、バッファメモリを有し（図示せず）、これによってホスト装置３との間で送受されるＩ／Ｏデータ（データパケット）をバッファする。ＤＭＡ４２２２は、ポート４２１１内のバッファメモリとメモリ４２１３との間のデータフレームの転送を司っている。ネットワーク２から取り込まれ、バッファメモリに蓄積されたデータパケットは、ＤＭＡ４２１２の制御の下、メモリ４２１３に転送される。
【００３５】
マイクロプロセッサ４２１４は、メモリ４２１３に保持されたデータパケットに対してプロトコル変換を行った後、キャッシュメモリ４２２（図１）に書き込む。すなわち、受信したデータパケットについては、マイクロプロセッサ４２１１は、ヘッダ等を取り除いてＩ／Ｏコマンド及びデータを取り出して、接続部４２４に送出する。また、ディスクデバイス４１から読み出され、キャッシュメモリ４２２に保持されたデータについては、プロセッサ４２２１は、所定のプロトコルに従ってカプセル化を行う。マイクロプロセッサ４２２１は、周期的に又は所定のタイミングで、キャッシュメモリ４２２を参照し、自身が処理すべきＩ／Ｏデータをキャッシュメモリ４２２から取り込む。また、マイクロプロセッサ４２２１は、自身の稼働情報を取得し、共有メモリ４２４に書き込む。
【００３６】
図３は、本発明の一実施形態に係るストレージ装置４のディスクアダプタ４２３の構成を示す図である。上述したように、ディスクアダプタ４２３は、ディスクデバイス４１に対するアクセスの制御を行う入出力インターフェースとして機能する。同図に示すように、ディスクアダプタ４２３は、複数のＩ／Ｆ部４２３１と、マイクロプロセッサ４２３２と、メモリ４２３３と、を備える。また、ディスクアダプタ４２３は、チャネルアダプタと同様に、ＤＭＡを備えていてもよい。
【００３７】
複数のＩ／Ｆ部４２３１は、ディスクデバイス４１に設けられたインターフェースに、所定のケーブルを介して接続される。各Ｉ／Ｆ部４２３１には、所定のディスクＩＤが割り当てられ、個々のディスクデバイス４１を識別できるようになっている。Ｉ／Ｆ部４２３１は、内部にバッファメモリを有している（図示せず）。
【００３８】
マイクロプロセッサ４２３１は、Ｉ／Ｏデータが示す論理アドレスに基づいて、アクセスすべき論理ボリュームＬＵを決定し、その論理ボリュームＬＵに対してアクセスを行う。すなわち、マイクロプロセッサ４２３１は、周期的に又は所定のタイミングで、キャッシュメモリ４２２を参照し、自身が処理すべきＩ／Ｏデータをキャッシュメモリ４２２から取り込み、そのＩ／Ｏデータのターゲットデバイスであるディスクデバイス４１に送出する。例えば、Ｉ／Ｏデータが書き込み要求であれば、論理アドレスを物理アドレスに変換し、その物理アドレスで示される記憶領域にデータの実体を書き込む。一方、Ｉ／Ｏデータが読み込み要求であれば、論理アドレスを物理アドレスに変換し、その物理アドレスで示される記憶領域からデータの実体を読み出し、キャッシュメモリ４２２に書き込む。本実施形態では、Ｉ／Ｏデータが示す論理アドレスが、仮想ボリュームに割り当てられた論理アドレスである場合、マイクロプロセッサ４２３１は、データの実体がプールボリューム上に書き込まれるように、アドレス変換を行う。また、マイクロプロセッサ４２３１は、自身の稼働情報を取得し、共有メモリ４２４に書き込む。
【００３９】
図４は、本発明の一実施形態に係るストレージ装置４の共有メモリ４２４の内容を示している。共有メモリ４２４は、ストレージ装置４の構成に関わる情報（システム構成情報）及びストレージ装置４の稼働状況に関わる情報（稼働情報）を記憶する。システム構成情報は、例えば、セグメント管理テーブル４２４１、アドレス管理テーブル４２４２、及びプールボリューム管理テーブル４２４３を含む。また、稼働情報は、稼働情報テーブル４２４４を含む。
【００４０】
図５は、本発明の一実施形態に係るセグメント管理テーブル４２４１の一例を示している。セグメント管理テーブル４２４１は、ストレージ装置４が提供する論理ボリュームＬＵ上の空間（記憶領域）を管理するためのテーブルである。同図に示すように、セグメント管理テーブル４２４１は、ディスクＩＤ、セグメント番号、ＬＢＡ開始アドレス、ＬＢＡ終了アドレス、及びセグメントの使用状況に関するカラムを有する。ディスクＩＤは、ディスクデバイス４１を構成する記憶媒体を一意に識別するための識別子である。セグメント番号は、セグメントを一意に識別するための番号である。セグメントは、コントローラユニット４２が管理するディスクデバイス４１上の記憶領域の最小単位である。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスは、ディスクデバイス４１上のセグメントの物理的な開始位置及び終了位置を示す。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスより、セグメントの大きさが求められる。使用状況は、セグメントが使用されているか否かを示す。セグメントが使用中の場合は“１”、未使用の場合は“０”の値が書き込まれる。
【００４１】
図６は、本発明の一実施形態に係るアドレス管理テーブル４２４２の一例を示している。アドレス管理テーブル４２４２は、ストレージ装置４が提供する論理ボリュームＬＵ上の記憶領域（すなわち、論理アドレス空間）とディスクデバイス４１上の実際の記憶領域（すなわち、物理アドレス空間）とを対応付けるテーブルである。ディスクアダプタ４２３は、アドレス管理テーブル４２４２を参照することによって、キャッシュメモリから取得したＩ／Ｏデータにおいて指定された論理アドレスを、ディスクデバイス４１上の物理アドレスに変換し、その物理アドレスに従ってアクセスを行う。また、アドレス管理テーブルは、論理ボリュームＬＵのうち、プールボリュームＰＬＵとして使用されるセグメントを定義する。
【００４２】
すなわち、同図に示すように、アドレス管理テーブル４２４２は、論理ユニット番号（ＬＵＮ）、セグメント番号、ＬＢＡ開始アドレス、ＬＢＡ終了アドレス、及びプール割り当てに関するカラムを有する。論理ユニット番号は、ストレージ装置４がホスト装置３に提供する論理ボリュームを一意に識別するための番号である。セグメント番号は、セグメント管理テーブル４２４１において管理されている記憶領域を一意に識別するための番号である。論理ボリュームＬＵは、複数のセグメントから構成される。ＬＢＡ開始アドレス及びＬＢＡ終了アドレスは、セグメントの論理的な開始アドレス及び終了アドレスを示す。プール割り当ては、そのセグメントがプールボリュームとして使用されるか否かを示す。セグメントがプールボリュームとして使用される場合には、“１”が書き込まれる。
【００４３】
図７は、本発明の一実施形態に係るストレージ装置におけるデータボリュームを説明するための図である。同図に示すように、データボリュームＤＬＵ０は、０〜９９９９９の論理アドレス空間を有し、第１のディスクデバイス４１及び第２のディスクデバイス４１におけるそれぞれのセグメントが割り当てられている。第１のディスクデバイス４１は、図５に示されたように、ディスクＩＤ「０」が割り当てられた物理デバイスＰＤＥＶであり、第２のディスクデバイス４１は、ディスクＩＤ「１」が割り当てられた物理デバイスＰＤＥＶである。また、図６に示されるように、セグメント番号「１」で示されるセグメントは、データボリュームＤＬＵ０上の０〜１２９９の論理アドレス空間を提供する。また、セグメント番号「３」で示されるセグメントは、１３００〜１９９９の論理アドレス空間を提供する。このようにして、データボリュームＤＬＵ０は、あたかも１つのディスクデバイスのように扱われる。
【００４４】
データボリュームＤＬＵ０の論理アドレス空間２０００〜９９９９９は、物理デバイスであるディスクデバイス４１が割り当てられていない。ただし、ストレージ装置４は、データボリュームＬＵ０のその空間に対しても、ホスト装置３から、通常通り、アクセスを受け付ける。このため、ストレージ装置４は、プールボリュームＰＬＵと呼ばれる論理ボリュームＬＵをさらに備え、データボリュームＤＬＵ内の記憶領域であって、ディスクデバイス４１上のセグメントが割り当てられていない記憶領域（仮想記憶領域）に対して格納されるべきデータを、このプールボリュームＰＬＵに格納する。つまり、本実施形態では、データボリュームＤＬＵ０の論理アドレス空間２０００〜４９９９９に格納されるデータの実体は、プールボリュームＰＬＵに格納されることになる。このため、データボリュームの仮想ボリュームに対するアクセスは、内部的には、プールボリューム管理テーブル４２４３に従って、プールボリュームＰＬＵに対して行われることになる。
【００４５】
図８は、本発明の一実施形態に係るストレージ装置４における記憶領域の動的割り当てを概念的に説明するための図である。
【００４６】
上述したように、本実施形態に係るストレージ装置４のディスクデバイス４１には、データボリュームＤＬＵ及びプールボリュームＰＬＵが定義される。データボリュームＤＬＵは、ホスト装置３乃至はユーザごとに提供される論理ボリュームＬＵである。データボリュームＤＬＵは、実際に実装されているディスクデバイス４１の固有記憶容量に依存して、実ボリュームと仮想ボリュームとに分けられている。つまり、実ボリュームは、ディスクデバイス４１により実際に提供されるセグメント上に形成された記憶領域に対応する。これに対して、仮想ボリュームは、実際に提供されるセグメント以外の記憶領域に対応する論理ボリュームＬＵであって、データの実体は格納されない。また、プールボリュームＰＬＵは、仮想ボリュームに格納されるべきデータの実体を、将来的にディスクデバイスが追加的に実装されて物理領域が確保されてデータボリュームＤＬＵが定義されるまでの間、一時的に格納する記憶領域を提供する論理ボリュームである。
【００４７】
ストレージ装置４は、データボリュームＤＬＵにおける実ボリューム上の記憶領域に対しては、ホスト装置２が認識する論理アドレス（ＬＵＮおよびＬＢＡ）と、ディスクデバイス４１における記憶領域上の物理アドレスとを一対一に関連付けている。これによって、ホスト装置２は、所定の論理アドレスを指定することによって、ディスクデバイス４１上の所望の記憶領域にアクセスすることができる。
【００４８】
一方、プールボリュームＰＬＵ上の記憶領域については、ホスト装置３が認識する論理アドレスと、実際にデータにアクセスするためのディスクデバイス４１上の物理アドレスとを直接的に関連付けていない。ストレージ装置４は、データボリュームＤＬＵにおける仮想ボリューム上の記憶領域を指定した書き込み要求が新たにホスト装置３から与えられると、その書き込み要求に従う記憶領域をプールボリュームＰＬＵに動的に割り当てている。また、ストレージ装置４は、データボリュームＤＬＵにおける仮想ボリューム上の記憶領域を指定した読み込み要求がホスト装置３から与えられると、その読み込み要求に従うプールボリュームＰＬＵ上の記憶領域からデータを読み出す。
【００４９】
このように、ストレージ装置４は、プールボリューム管理テーブル４２４３を保持し、仮想ボリュームとプールボリュームとの間の動的な割り当てを管理している。プールボリューム管理テーブル４２４３は、例えば、コントローラユニット４２の共有メモリ４２４に保持される。ストレージ装置４は、データボリュームＤＬＵ内であるが実ボリューム以外の論理アドレスを指定したデータの書き込み要求を受け取った場合には、データの実体をプールボリュームＰＬＵに格納するとともに、指定された論理アドレスとプールボリュームのアドレスを示すポインタとを関連付けて、プールボリューム管理テーブル４２４３に登録する。
【００５０】
図９は、本発明の一実施形態に係る稼働情報管理テーブル４２４４の一例を示す図である。同図に示すように、稼働情報管理テーブル４２４４は、ストレージ装置４内の各種のプロパティ及びその値を含んでいる。なお、同図に示されたプロパティは例示であって、これらに限定されるものではない。
【００５１】
「実ボリューム」は、各データボリュームＤＬＵにおける実ボリュームに対する、例えば、「スループット」、「データ転送量」、及び「使用率」といった項目を含んでいる。「スループット」は、単位時間当たりにストレージ装置４が受け付けたＩ／Ｏデータのうち、ターゲットとされた実ボリュームに対するＩ／Ｏデータの数である。「データ転送量」は、単位時間当たりに転送されたデータ量である。チャネルアダプタ４２１またはディスクアダプタ４２３は、Ｉ／Ｏデータを処理する際に、これらスループット及びデータ転送量を算出し、共有メモリ４２４に書き込む。「使用率」は、実ボリューム全体に対してデータが格納された領域が占める割合である。
【００５２】
「仮想ボリューム」は、各データボリュームＤＬＵにおける仮想ボリュームに対する、例えば、「使用率」といった項目を含んでいる。「使用率」は、仮想ボリューム全体に対してデータが仮想的に格納された領域が占める割合である。上述したように、仮想ボリュームに対する実際のアクセスは、プールボリューム管理テーブル４２４３に従って、プールボリュームに対して行われるため、ここでは、「スループット」や「データ転送量」といった評価項目を設けていない。
【００５３】
「プールボリューム」は、仮想ボリュームに対するデータの実体を格納するプールボリュームに対する、例えば「スループット」、「データ転送量」、「使用率」、及び「テーブルサイズ」といった項目を含んでいる。「使用率」は、プールボリューム全体に対してデータが格納された領域が占める割合である。「テーブルサイズ」は、プールボリューム管理テーブル４２４３のデータサイズである。
【００５４】
図１０は、本発明の一実施形態に係る管理装置４３の構成を示す図である。管理装置４３は、典型的にはサービスプロセッサ（ＳＶＰ）と呼ばれる端末装置であり、例えば汎用のパーソナルコンピュータを適用することができる。管理装置４３は、通信ポートを介して、コントローラユニット４２内のモジュール、すなわち、チャネルアダプタ４２１、ディスクアダプタ４２３、及び共有メモリ４２４に接続されている。
【００５５】
管理装置４３は、同図に示すように、ＣＰＵ４３１、メモリ４３２、通信インターフェース４３３、ローカルＩ／Ｏ装置４３４、及びローカル記憶装置４３５等のハードウェア資源を備え、また、オペレーティングシステム及びデバイスドライバ、管理プログラム等のソフトウェア資源を備えている。ソフトウェア資源は、ローカル記憶装置に格納されており、必要に応じて、メモリ上に展開され、ＣＰＵ４３１により実行される。すなわち、管理装置４３は、ＣＰＵ４３１の制御の下、各種の管理プログラムを実行することにより、所望の機能を実現する。管理プログラムは、共有メモリ４２４内の稼働情報管理テーブル４２４４を参照し、必要なプロパティの値を取得して、ローカルＩ／Ｏ装置４３４を介してシステム管理者に提供する。システム管理者は、ローカルＩ／Ｏ装置４３４を介して管理装置４３に指示を与えることにより、ストレージ装置４のシステム構成情報を設定し、及び／または変更することができる。
【００５６】
図１１は、本発明の一実施形態に係る管理装置４３による稼働情報の収集処理を説明するためのシーケンスである。
【００５７】
チャネルアダプタ（ＣＨＡ）４２１及びディスクアダプタ（ＤＫＡ）４２３は、周期的に又は所定のタイミングで、自身で取得されるプロパティの値を共有メモリ（ＳＭ）４２４に書き込む。
【００５８】
管理装置（ＳＶＰ）４３は、周期的に、またはシステム管理者による指示に応答して、共有メモリ４２４の稼働情報管理テーブル４２４４を参照し、必要なプロパティの値を取得し、ローカル記憶装置４３５に格納する。これにより、管理装置４３は、取得したプロパティの値に基づいて、さまざまな処理を行うことができる。例えば、管理装置４３は、仮想ボリュームの使用率を取得し、所定のしきい値を超えている場合には、その仮想ボリュームに対応するプールボリュームＰＬＵの内容を、未使用の他のデータボリュームＤＬＵに移行するための制御を行う。なお、ここでいう未使用の他のデータボリュームＤＬＵは、ディスクデバイス４１により提供される実際のセグメントが割り当てられた実ボリュームであり、仮想ボリュームを含んでいなくてもよい。
【００５９】
図１２は、本発明の一実施形態に係る管理装置４３のローカルＩ／Ｏ装置４３４上に表示される画面例を示す図である。具体的には、同図は、ディスクデバイス４１上に定義された論理ボリュームＬＵについての各種のプロパティを表示するウィンドウを示しており、ここでは、プールボリュームＰＬＵについての各種のプロパティの詳細が表示されている。
【００６０】
管理装置４３は、ＣＰＵ４３１の制御の下、共有メモリ４２４に記憶されたシステム構成情報や稼働情報を収集し、ローカル記憶装置４３５に蓄積し、ローカルＩ／Ｏ装置４３４により実現されるユーザインターフェースを介して、収集した各種の情報をシステム管理者に提供する。
【００６１】
同図に示すように、ボリューム構成領域１２０１は、ディスクデバイス４１上に定義された論理ボリュームを、その属性ごとに、階層的に表示する領域である。本例では、データボリュームＤＬＵ０〜ＤＬＵ２及びプールボリュームＰＬＵ０が階層的に示され、プールボリュームＰＬＵ０が選択された状態が示されている。また、例えば、ボリューム構成領域１２０１においてデータボリュームＤＬＵ０が選択が選択された場合、データボリュームＤＬＵ０を構成する実ボリュームＲＬＵ０及び仮想ボリュームＶＬＵが、そのデータボリュームＤＬＵ０の下層に表示される。
【００６２】
ボリューム詳細領域１２０２は、ボリューム構成領域１２０１で選択されたボリュームＬＵに関する詳細なシステム構成情報を表示する領域である。ボリューム詳細領域１２０２には、タブ１２０２ａが設けられ、例えば、タブ１２０２ａが選択されることによって、セグメント管理テーブル４２４１やアドレス管理テーブル４２４２等が表示されるようになっている。
【００６３】
稼働情報領域１２０３は、共有メモリ４２４に記憶された稼働情報管理テーブル４２４４から収集した各種のプロパティを表示する領域である。また、稼働情報領域１２０３には、選択された論理ボリュームＬＵについての使用率が、例えば、グラフによって表示される。
【００６４】
また、上述したウィンドウは、仮想ボリュームのデータが移行されるタイミングを提示するように構成してもよい。
【００６５】
図１３及び図１４は、本発明の一実施形態に係るストレージ装置４の仮想ボリューム提供機能を説明するための図である。具体的には、図１３は、書き込み要求時の仮想ボリューム提供機能を説明するフローチャートであり、図１４は、読み出し要求要求時の仮想ボリューム提供機能を説明するためのフローチャートである。本実施形態においては、仮想ボリューム提供機能は、ディスクアダプタ４２３におけるプロセッサ４２３２の制御の下、実現される。
【００６６】
チャネルアダプタ４２３は、キャッシュメモリ４２２からＩ／Ｏデータを取得すると、Ｉ／Ｏデータ内のオペレーションコードを解釈する。その結果、書き込み要求であると判断すると、チャネルアダプタ４２３は、アドレス管理テーブル４２４２を参照して、Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスであるか否かをチェックする（図１３のＳＴＥＰ１３０１）。Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスであると判断する場合、チャネルアダプタ４２３は、セグメント管理テーブル４２４１を参照して、その指定された論理アドレスに基づいて物理アドレスを算出する（ＳＴＥＰ１３０２）。そして、チャネルアダプタ４２３は、算出された物理アドレスに基づいて、ディスクデバイス４１上の所定の記憶領域にＩ／Ｏデータの実体を格納する（ＳＴＥＰ１３０３）。
【００６７】
一方、Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスでない場合、その指定された論理アドレスは仮想ボリューム内の論理アドレスであることから、チャネルアダプタ４２３は、プールボリューム管理テーブル４２４３を参照し、プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがあるか否かを検索する（ＳＴＥＰ１３０４）。プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがある場合（ＳＴＥＰ１３０５の‘Ｙｅｓ’）、チャネルアダプタ４２３は、ヒットしたエントリから取得したポインタ値に基づいて物理アドレスを算出する（ＳＴＥＰ１３０６）。そして、チャネルアダプタ４２３は、同様に、算出した物理アドレスに基づいて、ディスクデバイス４１上の所定の記憶領域にＩ／Ｏデータの実体を格納する（ＳＴＥＰ１３０３）。
【００６８】
また、プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがない場合（ＳＴＥＰ１３０５の‘Ｎｏ’）、チャネルアダプタ４２３は、仮想ボリュームのその記憶領域に対する新たな書き込みであると判断する。したがって、チャネルアダプタ４２３は、プールボリューム内の利用可能な記憶領域を特定して、その物理アドレスを算出し（ＳＴＥＰ１３０７）、新たなエントリを作成した後、プールボリューム管理テーブル４２４３にこれを追加する（１３０８）。プールボリューム内の利用可能な記憶領域は、典型的には、最後にデータが格納された記憶領域の次の記憶領域である。そして、チャネルアダプタ４２３は、同様に、算出した物理アドレスに基づいて、ディスクデバイス４１上の所定の記憶領域にＩ／Ｏデータの実体を格納する（ＳＴＥＰ１３０３）。このように、仮想ボリュームに対する新たな書き込み要求があった場合には、プールボリューム管理テーブル４２４３に新たなエントリが追加されることになる。
【００６９】
また、キャッシュメモリ４２２から取得したＩ／Ｏデータ内のオペレーションコードが読み込み要求である場合、チャネルアダプタ４２３は、アドレス管理テーブル４２４２を参照して、Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスであるか否かをチェックする（図１４のＳＴＥＰ１４０１）。Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスであると判断する場合、チャネルアダプタ４２３は、セグメント管理テーブル４２４１を参照して、その指定された論理アドレスに基づいて物理アドレスを算出する（ＳＴＥＰ１４０２）。そして、チャネルアダプタ４２３は、算出された物理アドレスに基づいて、ディスクデバイス４１上の所定の記憶領域からデータを読み出して（ＳＴＥＰ１４０３）、その読み出したデータをキャッシュメモリ４２２に書き込む（ＳＴＥＰ１４０４）。キャッシュメモリ４２２に書き込まれたデータは、チャネルアダプタ４２１により取り出され、読み出し要求を送出したホスト装置３に送出されることになる。
【００７０】
一方、Ｉ／Ｏデータが指定する論理アドレスが実ボリューム内の論理アドレスでない場合、その指定された論理アドレスは仮想ボリューム内の論理アドレスであることから、チャネルアダプタ４２３は、プールボリューム管理テーブル４２４３を参照し、プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがあるか否かを検索する（ＳＴＥＰ１４０５）。プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがある場合（ＳＴＥＰ１４０６の‘Ｙｅｓ’）、チャネルアダプタ４２３は、ヒットしたエントリから取得したポインタ値に基づいて物理アドレスを算出する（ＳＴＥＰ１４０７）。そして、チャネルアダプタ４２３は、同様に、算出された物理アドレスに基づいて、ディスクデバイス４１上の所定の記憶領域からデータを読み出して（ＳＴＥＰ１４０３）、ホスト装置３に送出するため、その読み出したデータをキャッシュメモリ４２２に書き込む（ＳＴＥＰ１４０４）。
【００７１】
一方、プールボリューム管理テーブル４２４３のエントリに指定された論理アドレスがない場合（ＳＴＥＰ１４０６の‘Ｎｏ’）、仮想ボリュームのその指定された論理アドレスには、まだ書き込みがないことになる。したがって、チャネルアダプタ４２３は、例外処理として、Ｎｕｌｌデータ（例えば、“０”）を読み出したデータとみなして、これをキャッシュメモリ４２２に書き込む（ＳＴＥＰ１４０４）。
【００７２】
次に、ストレージ装置４におけるデータ・マイグレーション機能について説明する。ここいうデータ・マイグレーションは、プールボリュームから実ボリュームへのデータの移行のことである。
【００７３】
図１５は、本発明の一実施形態に係るストレージ装置４のデータ・マイグレーション機能を説明するための概念図である。
【００７４】
すなわち、ディスクデバイス４１上に複数のデータボリュームＤＬＵ及び複数のプールボリュームＰＬＵが定義されているものとする。データボリュームＤＬＵ０及びデータボリュームＤＬＵ１はそれぞれ、実ボリューム及び仮想ボリュームを有している。なお、図中、データボリュームＤＬＵの実ボリュームは、網掛けの模様が施されている。
【００７５】
仮想ボリュームの記憶領域に対する新たな書き込み要求があるごとに、プールボリュームＰＬＵ０の記憶領域にデータの実体が書き込まれ、プールボリューム管理テーブル４２４３にエントリが追加される。例えば、エントリ番号“０”における論理アドレス“ＤＬＵ０，ＬＢＡx0”上のデータ“ａ”は、論理アドレス“ＰＬＵ０，ＬＢＡx0”に対応付けられ、ポインタ（図示せず）で示される物理記憶領域に書き込まれる。つまり、この物理記憶領域は、プールボリュームＰＬＵ０を構成する特定のディスクデバイス４１のセグメント上の記憶領域である。また、エントリ番号“１”における論理アドレス“ＤＬＵ１，ＬＢＡx1”上のデータ“ｇ”は、論理アドレス“ＰＬＵ０，ＬＢＡx1”に対応付けられている。
【００７６】
管理装置４３は、ＣＰＵ４３１の制御の下で実行される稼働情報管理プログラムにより、稼働情報に関するプロパティを収集する。また、管理装置４３は、ＣＰＵ４３１の制御の下で実行されるデータ移行制御プログラムにより、収集した稼働情報に基づいて、データボリュームＤＬＵの仮想ボリュームの使用率を監視し、使用率が所定のしきい値を超える仮想ボリュームについては、プールボリュームの対応する記憶領域に格納されたデータが、実ボリュームに移動されるように制御する。なお、仮想ボリュームの使用率に基づくのではなく、プールボリュームＰＬＵの使用率に基づいて、データを移行させるようにしてもよい。
【００７７】
図１６は、本発明の一実施形態に係る管理装置４３によるデータ移行管理を説明するための図である。このデータ移行管理は、例えば管理装置４３のＣＰＵ４３１の制御の下、データ移行管理プログラムを実行することにより、実現される。
【００７８】
システム管理者は、まず、仮想ボリュームの使用率をチェックするためのプランニングを作成する。すなわち、管理装置４３には、データ移行管理プログラムの実行に先立ち、仮想ボリュームの使用率をチェックするタイムインターバルが設定される。タイムインターバルは、例えば、「２４時間おき」というように設定される。また、毎２４時というように、特定の時刻を設定してもよい。
【００７９】
同図に示すように、管理装置４３は、予め指定されたタイミングになると（ＳＴＥＰ１６０１の‘Ｙｅｓ’）、収集した稼働情報のプロパティに基づいて、使用率が所定のしきい値を超えた仮想ボリュームがあるか否かをチェックする（ＳＴＥＰ１６０２）。しきい値は、例えば、使用率８０％というように予め設定されている。所定のしきい値を超える仮想ボリュームがある場合、管理装置４３は、当該仮想ボリュームＶＬＵの内容を移行させるデータボリュームの実ボリュームを特定する（ＳＴＥＰ１６０３）。管理装置４３は、例えば、未使用のデータボリュームＤＬＵであって、当該仮想ボリュームと同一またはそれ以上の記憶容量を有する実ボリュームを含むデータボリュームを特定する。そして、管理装置４３は、当該仮想ボリュームの内容が、特定したデータボリュームの実ボリュームＲＬＵに移行されるように、チャネルアダプタ４２１に指示を出す（ＳＴＥＰ１６０４）。
【００８０】
なお、使用率が所定のしきい値を超える仮想ボリュームが複数ある場合、管理装置４３は、その全ての仮想ボリュームの内容が移行されるように、指示を出してもよい。または、管理装置４３は、最も使用率が高い仮想ボリュームの内容が移行されるように、指示を出してもよい。または、管理装置４３は、例えば、ユーザインターフェースを介してシステム管理者にデータ移行の対象となる仮想ボリュームを提示して、選択させるようにしてもよい。
【００８１】
図１７は、本発明の一実施形態に係るチャネルアダプタ４２１によるデータ移行処理を説明するための図である。このデータ移行処理は、例えばチャネルアダプタ４２１のＣＰＵ４２１４の制御の下、データ移行処理プログラムを実行することにより、実現される。
【００８２】
チャネルアダプタ４２１は、管理装置４３からデータ移行の指示が与えられると、アドレス管理テーブル４２４２を参照して、データ移行処理をすべき仮想ボリュームの開始論理アドレス及び終了論理アドレスを取得し、開始論理アドレスから終了論理アドレスまでの記憶領域に格納されたデータを順番に実ボリュームに転送する。
【００８３】
すなわち、同図に示すように、チャネルアダプタ４２１は、まず、参照すべき論理アドレスをセットして（ＳＴＥＰ１７０１）、その論理アドレスに従って、プールボリューム管理テーブル４２４３を参照する（ＳＴＥＰ１７０２）。チャネルアダプタ４２１は、その論理アドレスを持つエントリが、プールボリューム管理テーブル４２４３にあるか否かをチェックする（ＳＴＥＰ１７０３）。
【００８４】
そのエントリがプールボリューム管理テーブル４２４３にある場合（ＳＴＥＰ１７０３の‘Ｙｅｓ’）、プールボリュームＰＬＵの記憶領域がすでに割り当てられていることを意味する。従って、そのエントリがプールボリューム管理テーブル４２４３にある場合（ＳＴＥＰ１７０３の‘Ｙｅｓ’）、そのエントリの内容に従って当該記憶領域からデータが読み出されるように、キャッシュメモリ４２２に読み出し要求をセットする（ＳＴＥＰ１７０４）。これにより、ディスクアダプタ４２３は、その読み出し要求に従ってデータを読み出して、キャッシュメモリ４２２に書き込む。チャネルアダプタ４２１は、キャッシュメモリ４２２に書き込まれたデータが移動先の実ボリュームの対応する記憶領域に書き込まれるように、キャッシュメモリ４２２に書き込み要求をセットする（ＳＴＥＰ１７０５）。これにより、ディスクアダプタ４２３は、その書き込み要求に従って、移動先の実ボリュームの対応する記憶領域にデータを格納する。仮想ボリュームの参照している論理アドレス上のデータの移動が完了すると、チャネルアダプタ４２１は、移動したデータのエントリをプールボリューム管理テーブル４２４３から削除する（ＳＴＥＰ１７０６）。また、ディスクアダプタ４２３は、プールボリュームＰＬＵ上のデータの実体を格納している記憶領域を解放する。
【００８５】
これに対して、チャネルアダプタ４２１は、参照している論理アドレスを持つエントリがプールボリューム管理テーブル４２４３にない場合（ＳＴＥＰ１７０３の‘Ｎｏ’）、移動先の実ボリュームの対応する記憶領域にＮｕｌｌデータが書き込まれるように、キャッシュメモリ４２２に書き込む要求をセットする（ＳＴＥＰ１７０７）。これにより、ディスクアダプタ４２３は、その書き込み要求に従って、移動先の実ボリュームの対応する記憶領域にＮｕｌｌデータを格納する。
【００８６】
チャネルアダプタ４２１は、以上の処理を終了論理アドレスまで行った後、プールボリューム管理テーブル４２４３から削除されなかったエントリにより、プールボリューム管理テーブル４２４３を再構成して、プールボリューム管理テーブル４２４３のサイズの圧縮を図る。（ＳＴＥＰ１７０７）また、このとき、ディスクアダプタ４２３は、プールボリュームＰＬＵに対してでフラグメンテーション処理またはガベージコレクション処理を実行して、プールボリュームＰＬＵ上の有効な記憶領域を確保するようにしてもよい。
【００８７】
このようにして、仮想ボリュームＶＬＵ内の記憶領域に格納された全てのデータが、実ボリュームＲＬＵの対応する記憶領域に移行されることになる。また、データの移行に伴い、プールボリューム管理テーブル４２４３内のエントリが削除されるため、プールボリューム管理テーブル４２４３のサイズを小さくすることができる。さらに、プールボリューム管理テーブル４２４３の再構成が行われるので、プールボリューム管理テーブル４２４３に対する検索処理のパフォーマンスが低下することはない。
【００８８】
図１８乃至図２１は、本発明の一実施形態に係るデータ移行処理を時系列に説明している。
【００８９】
まず、図１８に示すように、データボリュームＤＬＵ１は、その仮想ボリュームの使用率が所定のしきい値を超えたため、データボリュームＤＬＵ９にデータの移行が行われるものとする。また、データボリュームＤＬＵ９は、実ボリュームのみによって定義された論理ボリュームである。
【００９０】
コントローラユニット４２は、プールボリューム管理テーブル４２４３を参照し、エントリの内容に従って、プールボリュームＰＬＵ０の記憶領域から順番にデータを読み出して、データボリュームＤＬＵ９の対応する記憶領域に書き込む。コントローラユニット４２は、プールボリュームＰＬＵ０上のデータをデータボリュームＤＬＵ９に書き込むと、仮想ボリューム及びプールボリュームＰＬＵ上のデータを削除するとともに、プールボリューム管理テーブル４２４３のエントリを削除する（図１９）。
【００９１】
仮想ボリュームＶＬＵ上のすべてのデータの移動が完了すると（図２０）、コントローラユニット４２は、プールボリューム管理テーブル４２４３を再構成するとともに、プールボリュームＰＬＵ上のデータを再配置する（図２１）。
【００９２】
次に、本実施形態の変形例について説明する。上述した例では、管理装置４３は、定期的に、仮想ボリュームの使用率が所定のしきい値を超えたか否かを監視したが、以下に示す例では、管理装置４３は、現在までの使用率の推移に基づいて、システム管理者により指定されたα日後に、その使用率が所定のしきい値を超えるか否かを予測する。予測の手法としては、例えば、最小二乗法を用いることができる。
【００９３】
すなわち、図２２に示すように、あるボリュームにおける使用率の推移が、（Ｘ1，Ｙ1），（Ｘ2，Ｙ2），…，（Ｘn，Ｙn）であり、当てはめる予測式をＹ＝ａＸ＋ｂとすると、係数ａ及びｂは、それぞれ以下の式で求められる。
【数１】
2008146536.tif 000003
【数２】
2008146536.tif 000004
【００９４】
上記数式１及び２を用いて、管理装置４３は、システム管理者が指定したα日後に使用率が所定のしきい値を超えることが予想されると判断する場合に、データの移行が実行されるように、チャネルアダプタ４２１に指示を出す。なお、本例では、最小二乗法を予測式に用いたが、特にこれにこだわるものではない。
【００９５】
図２３は、本発明の一実施形態に係る管理装置４３によるデータ移行管理を説明するための図である。このデータ移行管理は、例えば管理装置４３のＣＰＵ４３１の制御の下、データ移行管理プログラムを実行することにより、実現される。
【００９６】
システム管理者は、α日後の仮想ボリュームＶＬＵの使用率を予測するためのプランニングを作成する。すなわち、管理装置４３には、データ移行管理プログラムの実行に先立ち、仮想ボリュームの使用率をチェックするタイムインターバル及び所定のしきい値に到達するまでの日数αが設定される。
【００９７】
すなわち、同図に示すように、管理装置４３は、予め指定されたタイミングになると（ＳＴＥＰ２３０１の‘Ｙｅｓ’）、収集した稼働情報のプロパティに基づいて、α日後に仮想ボリュームの使用率が所定のしきい値を超えるか否かの予測式を実行し（ＳＴＥＰ２３０２）、α日後に使用率が所定のしきい値を超える仮想ボリュームがあるか否かをチェックする（ＳＴＥＰ２３０３）。所定のしきい値を超える仮想ボリュームがある場合、管理装置４３は、当該仮想ボリュームＶＬＵの内容を移行させるデータボリュームの実ボリュームＲＬＵを特定する（ＳＴＥＰ２３０４）。管理装置４３は、例えば、未使用のデータボリュームであって、当該仮想ボリュームと同一またはそれ以上の記憶容量を有する実ボリュームを有するデータボリュームを特定する。そして、管理装置４３は、当該仮想ボリュームの内容が特定したデータボリュームの実ボリュームに移行されるように、チャネルアダプタ４２１に指示を出す（ＳＴＥＰ２３０５）。
【００９８】
以上のように、本例によれば、仮想ボリュームの使用率が所定のしきい値を超える日を予測されるので、ストレージ装置４の使用実績により即した運用が可能となる。
【００９９】
次に、他の実施形態について説明する。上記実施形態では、仮想ボリュームの使用率に着目したが、以下の実施形態では、プールボリュームの使用率に着目している。
【０１００】
図２４は、本発明の一実施形態に係る管理装置４３によるデータ移行管理を説明するための図である。このデータ移行管理は、例えば管理装置４３のＣＰＵ４３１の制御の下、データ移行管理プログラムを実行することにより、実現される。
【０１０１】
システム管理者は、プールボリュームの使用率をチェックするためのプランニングを作成する。すなわち、管理装置４３には、データ移行管理プログラムの実行に先立ち、プールボリュームの使用率をチェックするタイムインターバル（例えば、「２４時間おき」）が設定される。
【０１０２】
同図に示すように、管理装置４３は、予め指定されたタイミングになると（ＳＴＥＰ２４０１の‘Ｙｅｓ’）、収集した稼働情報のプロパティに基づいて、使用率が所定のしきい値を超えたプールボリュームがあるか否かをチェックする（ＳＴＥＰ２４０２）。しきい値は、例えば、使用率８０％というように設定されている。所定のしきい値を超えるプールボリュームがある場合、管理装置４３は、そのプールボリュームＰＬＵをデータの格納先に関連づけられている仮想ボリュームであって、最も使用率が高い仮想ボリュームを検索する（ＳＴＥＰ２４０３）。次に、管理装置４３は、当該仮想ボリュームの内容を移行させるデータボリュームの実ボリュームＲＬＵを特定する（ＳＴＥＰ２４０４）。管理装置４３は、例えば、未使用のデータボリュームであって、当該仮想ボリュームと同一またはそれ以上の記憶容量を有する実ボリュームを有するデータボリュームを特定する。そして、管理装置４３は、当該仮想ボリュームの内容が特定したデータボリュームの実ボリュームＲＬＵに移行されるように、チャネルアダプタ４２１に指示を出す（ＳＴＥＰ１６０５）。
【０１０３】
このように本実施形態によれば、プールボリュームＰＬＵの使用率が所定のしきい値を超えた場合、そのプールボリュームＰＬＵに関連づけられている仮想ボリュームのデータを実ボリュームに移行させているので、プールボリュームＰＬＵの記憶容量不足を回避することができる。
【０１０４】
次に、本実施形態の変形例について説明する。以下に示す例では、管理装置４３は、現在までの使用率の推移に基づいて、システム管理者により指定されたα日後に、使用率が所定のしきい値を超えるか否かを予測する。予測の手法としては、例えば、最小二乗法を用いることができる。
【０１０５】
図２５は、本発明の一実施形態に係る管理装置４３によるデータ移行管理を説明するための図である。このデータ移行管理は、例えば管理装置４３のＣＰＵ４３１の制御の下、データ移行管理プログラムを実行することにより、実現される。
【０１０６】
システム管理者は、α日後の仮想ボリュームＶＬＵの使用率を予測するためのプランニングを作成する。すなわち、管理装置４３には、データ移行管理プログラムの実行に先立ち、仮想ボリュームの使用率をチェックするタイムインターバル及び所定のしきい値に到達するまでの予想日数αが設定される。
【０１０７】
すなわち、同図に示すように、管理装置４３は、予め指定されたタイミングになると（ＳＴＥＰ２５０１の‘Ｙｅｓ’）、収集した稼働情報のプロパティに基づいて、α日後にプールボリュームの使用率が所定のしきい値を超えるか否かの予測式を実行し（ＳＴＥＰ２５０２）、α日後に使用率が所定のしきい値を超える仮プールボリュームがあるか否かをチェックする（ＳＴＥＰ２５０３）。所定のしきい値を超えるプールボリュームがある場合、管理装置４３は、そのプールボリュームＰＬＵをデータの格納先に関連づけられている仮想ボリュームであって、最も使用率が高い仮想ボリュームを検索する（ＳＴＥＰ２５０４）。次に、管理装置４３は、当該仮想ボリュームＶＬＵの内容を移行させるデータボリュームの実ボリュームを特定する（ＳＴＥＰ２５０５）。管理装置４３は、例えば、未使用のデータボリュームであって、当該仮想ボリュームと同一またはそれ以上の記憶容量を有する実ボリュームを有するデータボリュームを特定する。そして、管理装置４３は、当該仮想ボリュームの内容が特定したデータボリュームの実ボリュームに移行されるように、チャネルアダプタ４２１に指示を出す（ＳＴＥＰ２５０５）。
【０１０８】
このように、本例によれば、プールボリュームの使用率が所定のしきい値を超える日を予測されるので、ストレージ装置４の使用実績により即した運用が可能となる。
【産業上の利用可能性】
【０１０９】
本発明は、複数のディスクデバイスを備えるストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施形態に係るストレージシステムの構成を示す図である。
【図２】本発明の一実施形態に係るストレージ装置のチャネルアダプタの構成を示す図である。
【図３】本発明の一実施形態に係るストレージ装置のディスクアダプタの構成を示す図である。
【図４】本発明の一実施形態に係るストレージ装置の共有メモリの内容を示す図である。
【図５】本発明の一実施形態に係るストレージ装置におけるセグメント管理テーブルの一例を示す図である。
【図６】本発明の一実施形態に係るストレージ装置におけるアドレス管理テーブルの一例を示す図である。
【図７】本発明の一実施形態に係るストレージ装置におけるデータボリュームを説明するための図である。
【図８】本発明の一実施形態に係るストレージ装置における記憶領域の動的割り当てを概念的に説明するための図である。
【図９】本発明の一実施形態に係るストレージ装置における稼働情報管理テーブルの一例を示す図である。
【図１０】本発明の一実施形態に係る管理装置の構成を示す図である。
【図１１】本発明の一実施形態に係る管理装置による稼働情報の収集処理を説明するためのシーケンスである。
【図１２】本発明の一実施形態に係る管理装置上に表示される画面例を示す図である。
【図１３】本発明の一実施形態に係るストレージ装置における仮想ボリューム提供機能を説明するための図である。
【図１４】本発明の一実施形態に係るストレージ装置における仮想ボリューム提供機能を説明するための図である。
【図１５】本発明の一実施形態に係るストレージ装置におけるデータ・マイグレーション機能を説明するための概念図である。
【図１６】本発明の一実施形態に係る管理装置によるデータ移行管理を説明するための図である。
【図１７】本発明の一実施形態に係るチャネルアダプタによるデータ移行処理を説明するための図である。
【図１８】本発明の一実施形態に係るストレージ装置におけるデータ移行処理を時系列に説明する図である。
【図１９】本発明の一実施形態に係るストレージ装置におけるデータ移行処理を時系列に説明する図である。
【図２０】本発明の一実施形態に係るストレージ装置におけるデータ移行処理を時系列に説明する図である。
【図２１】本発明の一実施形態に係るストレージ装置におけるデータ移行処理を時系列に説明する図である。
【図２２】本発明の一実施形態に係るストレージ装置におけるデータ使用率の推移の一例を示す図である。
【図２３】本発明の一実施形態に係る管理装置によるデータ移行管理を説明するための図である。
【図２４】本発明の一実施形態に係る管理装置によるデータ移行管理を説明するための図である。
【図２５】本発明の一実施形態に係る管理装置によるデータ移行管理を説明するための図である。
【符号の説明】
【０１１１】
１…ストレージシステム
２…ネットワーク
３…ホスト装置
４…ストレージ装置
４１…ディスクデバイス
４２…コントローラユニット
４２１…チャネルアダプタ
４２２…キャッシュメモリ
４２３…ディスクアダプタ
４２４…共有メモリ
４２５…接続部
４２６…内部接続線
【図１】
2008146536.tif 000005
【図２】
2008146536.tif 000006
【図３】
2008146536.tif 000007
【図４】
2008146536.tif 000008
【図５】
2008146536.tif 000009
【図６】
2008146536.tif 000010
【図７】
2008146536.tif 000011
【図８】
2008146536.tif 000012
【図９】
2008146536.tif 000013
【図１０】
2008146536.tif 000014
【図１１】
2008146536.tif 000015
【図１２】
2008146536.tif 000016
【図１３】
2008146536.tif 000017
【図１４】
2008146536.tif 000018
【図１５】
2008146536.tif 000019
【図１６】
2008146536.tif 000020
【図１７】
2008146536.tif 000021
【図１８】
2008146536.tif 000022
【図１９】
2008146536.tif 000023
【図２０】
2008146536.tif 000024
【図２１】
2008146536.tif 000025
【図２２】
2008146536.tif 000026
【図２３】
2008146536.tif 000027
【図２４】
2008146536.tif 000028
【図２５】
2008146536.tif 000029