(57)【特許請求の範囲】
【請求項１】
サーバと接続されるストレージサブシステムの提供する仮想ボリュームに論理ボリュームの記憶領域を割り当てる方法であって、
前記ストレージサブシステムは、
前記サーバにおいて管理される複数のオブジェクトについての割り当て情報に基づいて、前記仮想ボリュームの任意の仮想ボリュームアドレスに格納されるデータの属するオブジェクトを、前記複数のオブジェクトのうちから特定することと、
前記複数のオブジェクトのオブジェクト名と複数の記憶階層の何れかとの対応が定められている第１の定義情報から、前記特定されたオブジェクトに対応づけられる前記複数の記憶階層のうちの特定の記憶階層を選択することと、
前記仮想ボリュームにプール情報によって対応づけられる前記論理ボリュームであって、前記選択された記憶階層に含まれる記憶領域を有する前記論理ボリュームを求め、当該論理ボリュームの前記記憶領域を前記仮想ボリュームの仮想ボリュームアドレスに割り当てること、
とを実行する方法。
【請求項２】
前記ストレージサブシステムは、前記サーバからのコマンドを受けると、当該コマンドによって特定される前記仮想ボリュームの仮想ボリュームアドレスを用いて当該仮想ボリュームアドレスへの前記論理ボリュームの記憶領域の割り当てを行う請求項１記載の方法。
【請求項３】
前記オブジェクト割り当て情報は、前記複数のオブジェクトの夫々について、前記オブジェクト名に対応するオブジェクトアドレス、並びに、前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスの情報を含む、請求項１に記載の方法。
【請求項４】
前記プール情報が、複数のプールのうちの各プールについて、プール名及び前記論理ボリュームの論理ボリューム名及び前記仮想ボリュームの仮想ボリューム名の対応情報を含む、請求項１に記載の方法。
【請求項５】
前記記憶領域はＳＳＤ（ソリッドステートドライブ）から提供される記憶領域を含む、請求項１に記載の方法。
【請求項６】
前記複数のオブジェクトの夫々に前記オブジェクト名及びオブジェクトアドレスが対応し、さらに、当該夫々のオブジェクトは前記仮想ボリュームの仮想ボリューム名と仮想ボリュームアドレスとに対応し、さらに、当該仮想ボリューム名と仮想ボリュームアドレスとに前記論理ボリュームの論理ボリューム名と論理ボリュームアドレスとが対応している、請求項１に記載の方法。
【請求項７】
前記複数の記憶階層のそれぞれに対応づけられる記憶媒体の定義情報又は前記第１の定義情報が変更される場合の階層移行プロセスを前記ストレージサブシステムがさらに実行する前記方法であって、当該階層移行プロセスは、
１の前記オブジェクトを選択し、前記第１の定義情報から前記選択されたオブジェクトに対応する前記記憶階層の情報を取得することと、
前記記憶媒体の定義情報から前記取得された記憶階層の情報に対応する第１の前記記憶媒体の種類情報を取得することと、
前記オブジェクトについての割り当て情報から前記選択されたオブジェクトに対応する前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを取得することと、
前記取得された仮想ボリューム名及び仮想ボリュームアドレスに割り当てられる前記論理ボリュームの論理ボリューム名及び論理ボリュームアドレスを取得することと、
前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する第２の前記記憶媒体の種類情報を取得することと、
を含み、
前記ストレージサブシステムは、
前記取得された第１の前記記憶媒体の種類情報が、前記取得された第２の前記記憶媒体の種類情報と同じ場合は、残りのオブジェクトに対して前記階層移行プロセスを継続することと、
前記取得された前記第１の記憶媒体の種類情報が、前記取得された前記第２の記憶媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された記憶階層の情報で特定された前記記憶階層に前記選択されたオブジェクトのデータを移動し、前記選択されたオブジェクトについて前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレス、並びに、前記論理ボリュームの論理ボリューム名及び論理ボリュームアドレスの対応情報を含む前記仮想ボリュームの情報を更新し、かつ、残りのオブジェクトに対して、前記階層移行プロセスを継続すること
とをさらに実行する、請求項１に記載の方法。
【請求項８】
前記オブジェクト割り当て情報は、ファイルのオブジェクト割り当て情報を含み、
前記ストレージサブシステムが前記仮想ボリュームの仮想ボリュームアドレスに格納されるデータの属するオブジェクトを特定することは、
前記コマンドとしての書込みコマンド及び前記ファイルのオブジェクト割り当て情報で特定された前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスに基づいてファイル位置を計算することと、
前記計算されたファイル位置と、前記オブジェクトの前記オブジェクト名及びオブジェクトアドレス、並びに、前記ファイルのファイル名及びファイルアドレスの対応情報を含む、前記ファイルについての前記オブジェクト割り当て情報とに基づいて、前記オブジェクトの前記オブジェクト位置を計算することとを含み、
前記論理ボリュームは、前記ファイル割り当て情報に基づいて選択される、請求項２に記載の方法。
【請求項９】
前記ファイル割り当て情報が、複数のファイルのうちの各ファイルについて、ファイル名及びファイルアドレス、並びに前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスの対応に係る情報を含む、請求項８に記載の方法。
【請求項１０】
前記複数のボリュームの夫々のオブジェクトが、前記オブジェクト名及びオブジェクトアドレスを含み、これらが前記ファイルのファイル名とファイルアドレスとの対応関係を有し、これらが前記仮想ボリュームの仮想ボリューム名と仮想ボリュームアドレスとの対応関係を有し、これらが前記論理ボリュームの論理ボリューム名と論理ボリュームアドレスとの対応関係を有する、請求項８に記載の方法。
【請求項１１】
前記複数の記憶階層の夫々に対応づけられる記憶媒体の定義情報、又は、前記第１の定義情報が変更される場合の階層移行プロセスを前記ストレージサブシステムがさらに実行する前記方法であって、
当該階層移行プロセスは、
１の前記オブジェクトを選択し、前記第１の定義情報から前記選択された１のオブジェクトに対応する前記記憶階層の情報を取得することと、
前記記憶媒体の定義情報から前記取得された記憶階層の情報に対応する第１の前記記憶媒体の種類情報を取得することと、
前記ファイル割り当て情報から前記選択されたオブジェクトに対応する前記ファイルのファイル名及びファイルアドレスを取得することと、
前記ファイルについての前記オブジェクト割り当て情報から前記取得されたファイルのファイル名及びファイルアドレスに対応する前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを取得することと、
前記取得された仮想ボリューム名及び仮想ボリュームアドレスに割り当てられている前記論理ボリュームの論理ボリューム名及び論理ボリュームアドレスを取得することと、
前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する第２の前記記憶媒体の種類情報を取得することと、
を含み、
前記ストレージサブシステムは、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じ場合は、残りのオブジェクトに対して前記階層移行プロセスを継続することと、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された記憶階層の情報で特定された前記階層に前記選択されたオブジェクトのデータを移動し、前記選択されたオブジェクトについて前記仮想ボリューム名及び仮想ボリュームアドレス、並びに、論理ボリューム名及び論理ボリュームアドレスの対応情報を含む仮想ボリューム情報を更新し、かつ残りのオブジェクトに対して、前記階層移行プロセスを継続すること
とをさらに実行する、請求項８に記載の方法。
【請求項１２】
前記複数の記憶階層のそれぞれに対応づけられる記憶媒体の定義情報、又は、前記第１の定義情報が変更される場合の階層移行プロセスを前記ストレージサブシステムがさらに実行する前記方法であって、
当該階層移行プロセスは、
１の前記オブジェクトを選択し、前記第１の定義情報から前記選択された１のオブジェクトに対応する前記記憶階層の情報を取得することと、
前記記憶媒体の定義情報から前記取得された記憶階層の情報に対応する第１の前記記憶媒体の種類情報を取得することと、
前記ファイル割り当て情報から前記選択されたオブジェクトに対応する前記ファイルのファイル名及びファイルアドレスを取得することと、
前記ファイルについての前記オブジェクト割り当て情報から前記取得されたファイルのファイル名及びファイルアドレスに対応する前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを取得することと、
前記取得された仮想ボリューム名及び仮想ボリュームアドレスに割り当てられている前記論理ボリュームの論理ボリューム名及び論理ボリュームアドレスを取得することと、
前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する第２の前記記憶媒体の種類情報を取得することと、
を含み、
前記ストレージサブシステムは、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じ場合は、残りのオブジェクトに対して前記階層移行プロセスを継続することと、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された記憶階層の情報で特定された前記階層に前記選択されたオブジェクトのデータを移動し、前記選択されたオブジェクトについて前記仮想ボリューム名及び仮想ボリュームアドレス、並びに、論理ボリューム名及び論理ボリュームアドレスの対応情報を含む仮想ボリューム情報を更新し、かつ残りのオブジェクトに対して、前記階層移行プロセスを継続すること
とをさらに実行する、請求項８に記載の方法。
【請求項１３】
前記オブジェクト割り当て情報が、ＶＨＤ（仮想ハードディスクドライブ）についてのオブジェクト割り当て情報を含み、前記ストレージサブシステムが前記仮想ボリュームの仮想ボリュームアドレスに格納されたデータの属するオブジェクトを特定することが、
前記コマンドとしての書込みコマンド及び前記ＶＨＤのオブジェクト割り当て情報に特定された前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスに基づいて前記ＶＨＤの位置を計算することと、
前記計算されたＶＨＤの位置と、前記オブジェクトのオブジェクト名及びオブジェクトアドレス、並びに、前記ＶＨＤのＶＨＤ名及びＶＨＤアドレスの対応情報を含む、前記ＶＨＤについての前記オブジェクト割り当て情報とに基づいて、前記オブジェクトの前記オブジェクト位置を計算することとを含み、
前記論理ボリュームが前記ＶＨＤの前記割り当て情報に基づいて選択される、請求項２に記載の方法。
【請求項１４】
前記ＶＨＤの前記割り当て情報は、複数のＶＨＤのうちの各ＶＨＤについて、ＶＨＤ名及びＶＨＤアドレス、並びに、前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスの対応に係る情報を含む、請求項１３に記載の方法。
【請求項１５】
前記複数のボリュームの各オブジェクトが、前記オブジェクト名及びオブジェクトアドレスを含み、これらが、対応する前記ＶＨＤのＶＨＤ名と前記ＶＨＤアドレスとの対応関係を有し、これらが、前記仮想ボリュームの仮想ボリューム名と仮想ボリュームアドレスとの対応関係を有し、これらが、前記論理ボリュームの論理ボリューム名と論理ボリュームアドレスとの対応関係を有する、請求項１３に記載の方法。
【請求項１６】
前記複数の記憶階層の夫々に対応づけられる記憶媒体の定義情報、又は、前記第１の定義情報が変更される場合の階層移行プロセスを前記ストレージサブシステムがさらに実行する前記方法であって、
当該階層移行プロセスは、
１の前記オブジェクトを選択し、前記第１の定義情報から前記選択された１のオブジェクトに対応する前記記憶階層の情報を取得することと、
前記記憶媒体の定義情報から前記取得された記憶階層の情報に対応する第１の前記記憶媒体の種類情報を取得することと、
前記ＶＨＤ割り当て情報から前記選択されたオブジェクトに対応する前記ＶＨＤのＶＨＤ名及びＶＨＤアドレスを取得することと、
前記ＶＨＤについての前記オブジェクト割り当て情報から前記取得されたＶＨＤのＶＨＤ名及びＶＨＤアドレスに対応する前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを取得することと、
前記取得された仮想ボリューム名及び仮想ボリュームアドレスに割り当てられる前記論理ボリュームの論理ボリューム名及び論理ボリュームアドレスを取得することと、
前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する第２の前記記憶媒体の種類情報を取得することと、
を含み、
前記ストレージサブシステムは、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じ場合は、残りのオブジェクトに対して前記階層移行プロセスを継続することと、
前記取得された第１の記憶媒体の種類情報が、前記取得された第２の記憶媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された記憶階層の情報で特定された前記階層に前記選択されたオブジェクトのデータを移動し、前記選択されたオブジェクトについて前記仮想ボリューム名及び仮想ボリュームアドレス、並びに、論理ボリューム名及び論理ボリュームアドレスの対応情報を含む仮想ボリューム情報を更新し、かつ残りのオブジェクトに対して、前記階層移行プロセスを継続すること
とをさらに実行する、請求項１３に記載の方法。
【請求項１７】
サーバと接続され、仮想ボリュームに論理ボリュームの記憶領域を割り当てるストレージサブシステムであって、
前記ストレージサブシステムは、
前記サーバにおいて管理される複数のオブジェクトについての割り当て情報に基づいて、前記仮想ボリュームの任意の仮想ボリュームアドレスに格納されるデータの属するオブジェクトを、前記複数のオブジェクトのうちから特定する手段と、
前記複数のオブジェクトのオブジェクト名と複数の記憶階層の何れかとの対応が定められている第１の定義情報から、前記特定されたオブジェクトに対応づけられる前記複数の記憶階層のうちの特定の記憶階層を選択する手段と、
前記仮想ボリュームにプール情報によって対応づけられる前記論理ボリュームであって、前記選択された記憶階層に含まれる記憶領域を有する前記論理ボリュームを求め、当該論理ボリュームの前記記憶領域を前記仮想ボリュームの仮想ボリュームアドレスに割り当てる手段と、
とを有するストレージサブシステム。
【請求項１８】
前記ストレージサブシステムは、前記サーバからのコマンドを受けると、当該コマンドによって特定される前記仮想ボリュームの仮想ボリュームアドレスを用いて当該仮想ボリュームアドレスへの前記論理ボリュームの記憶領域の割り当てを行う、請求項１７に記載のストレージサブシステム。
【請求項１９】
前記オブジェクト割り当て情報は、前記複数のオブジェクトの夫々について、前記オブジェクト名に対応するオブジェクトアドレス、並びに、前記仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスの情報を含む、請求項１７に記載のストレージサブシステム。
【請求項２０】
前記プール情報が、複数のプールのうちの各プールについて、プール名及び前記論理ボリュームの論理ボリューム名及び前記仮想ボリュームの仮想ボリューム名の対応情報を含む、請求項１７に記載のストレージサブシステム。
【請求項２１】
前記記憶領域はＳＳＤ（ソリッドステートドライブ）から提供される記憶領域を含む、請求項１７に記載のストレージサブシステム。
【請求項２２】
前記複数のオブジェクトの夫々に前記オブジェクト名及びオブジェクトアドレスが対応し、さらに、当該夫々のオブジェクトは前記仮想ボリュームの仮想ボリューム名と仮想ボリュームアドレスとに対応し、さらに、当該仮想ボリューム名と仮想ボリュームアドレスとに前記論理ボリュームの論理ボリューム名と論理ボリュームアドレスとが対応している、請求項１７に記載のストレージサブシステム。
【請求項２３】
サーバと接続されるストレージサブシステムの提供する仮想ボリュームに論理ボリュームの記憶領域を割り当てるための管理手段を有する管理システムであって、
前記ストレージサブシステムは、
前記サーバにおいて管理される複数のオブジェクトについての割り当て情報に基づいて、前記仮想ボリュームの任意の仮想ボリュームアドレスに格納されるデータの属するオブジェクトを、前記複数のオブジェクトのうちから特定する手段と、
前記複数のオブジェクトのオブジェクト名と複数の記憶階層の何れかとの対応が定められている第１の定義情報から、前記特定されたオブジェクトに対応づけられる前記複数の記憶階層のうちの特定の記憶階層を選択する手段と、
前記仮想ボリュームにプール情報によって対応づけられる前記論理ボリュームであって、前記選択された記憶階層に含まれる記憶領域を有する前記論理ボリュームを求め、当該論理ボリュームの前記記憶領域を前記仮想ボリュームの仮想ボリュームアドレスに割り当てる手段と、
を備え、
前記管理手段は、
前記複数のオブジェクトの各々について、前記複数の記憶階層のうちの特定の記憶階層の指定をユーザから受け取る手段と、
前記各オブジェクトのオブジェクト名と前記ユーザから受け取った対応する記憶階層との定義情報を表示する手段と、
を備える前記管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は概して、シン・プロビジョニング及び階層管理に関するものであり、特に、未割り当て領域への媒体の割り当てを改良するためにオブジェクトベースの階層を管理する方法及び装置に関する。
【背景技術】
【０００２】
０００２    近年、シン・プロビジョニングが普及してきている。シン・プロビジョニングとは、ストレージサブシステムが未割り当て領域への書込みコマンドを受信した場合に、領域を割り当てる方法である。現在、ストレージサブシステムは、頻繁にアクセスされる割り当て領域を高速かつ高価な媒体に移行し、稀にしかアクセスされない割り当て領域を低速かつ安価な媒体に移行している。しかし、ストレージサブシステムは、未割り当て領域にどの媒体を割り当てるかを判断することができない。なぜならば、ストレージサブシステムは未割り当て領域に対するアクセス情報を有していないからである。従って、ストレージサブシステムがアクセス頻度を取得するまで、間違った媒体が割り当てられるかもしれない。
【発明の概要】
【０００３】
０００３    本発明の例示的な実施形態は、未割り当て領域への媒体の割り当てを改良するためにオブジェクト単位の階層を管理する方法及び装置を提供する。特定の実施形態では、ストレージシステムは、オブジェクトとボリュームアドレスとの間のマッピング情報を定期的に取得し、そしてストレージシステムが未割り当て領域への書込みコマンドを受信した時に、オブジェクトと媒体の間のマッピング情報及び事前に定められた定義に基づいて階層を選択する。このようにして、ストレージシステムは、未割り当て領域に正しい媒体を割り当てることができる。
【０００４】
０００４    本発明の一態様に従って、書込みコマンドに対して論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てる方法は、仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを含む前記書込みコマンドと、オブジェクト割り当て情報とに基づいて、オブジェクトのオブジェクト位置を計算することと、前記計算されたオブジェクト位置と、オブジェクト及び階層定義情報とに基づいて、複数の階層から階層を選択することと、前記選択された階層と、階層及び媒体定義情報とに基づいて、複数の媒体の種類から媒体の種類を選択することと、前記書込みコマンドによって特定された前記仮想ボリュームと、前記オブジェクト割り当て情報と、プール情報と、前記選択された媒体の種類とに基づいて、複数の論理ボリュームから論理ボリュームを選択することとを含む。
【０００５】
０００５    いくつかの実施形態では、前記オブジェクト割り当て情報が、複数のオブジェクトのうちの各オブジェクトについて、オブジェクト名及びオブジェクトアドレス、並びに対応する仮想ボリューム名及び仮想ボリュームアドレスの情報を含む。前記プール情報が、複数のプールのうちの各プールについて、プール名及び対応する論理ボリューム名及び対応する仮想ボリューム名の情報を含む。前記媒体の種類が、ＨＤＤ（ハードディスクドライブ）、ＳＳＤ（ソリッドステートドライブ）、ＳＡＳ（シリアルアタッチドＳＣＳＩ）ＨＤＤ、及びＳＡＴＡ（シリアルＡＴＡ）ＨＤＤを含む。各オブジェクトがオブジェクト名及びオブジェクトアドレスを含み、これらが、対応する仮想ボリューム名と仮想ボリュームアドレスとの関係を有し、これらが、対応する論理ボリューム名と論理ボリュームアドレスとの関係を有する。
【０００６】
０００６    特定の実施形態では、前記方法は、前記階層及び媒体定義情報又は前記オブジェクト及び階層定義情報が変更される場合の階層移行プロセスをさらに含む。当該階層移行プロセスは、前記オブジェクト及び階層定義情報に含まれたオブジェクト名と関連付けられたオブジェクトを選択することと、前記オブジェクト及び階層定義情報から前記選択されたオブジェクトに対応する前記階層情報を取得することと、前記階層及び媒体定義情報から前記取得された階層情報に対応する前記媒体の種類情報を取得することと、前記オブジェクト割り当て情報から前記選択されたオブジェクトに対応する前記仮想ボリューム名及び仮想ボリュームアドレスを取得することと、前記取得された仮想ボリューム名及び仮想ボリュームアドレスに対応する前記論理ボリューム名及び論理ボリュームアドレスを取得することと、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記媒体の種類情報を取得することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じ場合は、すべての残りのオブジェクトに対して前記階層移行プロセスを継続することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された階層情報で特定された前記階層に前記選択されたオブジェクトを移動し、前記選択されたオブジェクトについて仮想ボリューム名及び仮想ボリュームアドレス、並びに対応する論理ボリューム名及び論理ボリュームアドレスの情報を含む仮想ボリューム情報を更新し、かつすべての残りのオブジェクトに対して、前記階層移行プロセスを継続することとを含む。
【０００７】
０００７    いくつかの実施形態では、前記オブジェクト割り当て情報は、ファイルのオブジェクト割り当て情報であり、オブジェクトの前記オブジェクト位置を計算することは、前記書込みコマンド及びファイル割り当て情報で特定された前記仮想ボリューム名及び仮想ボリュームアドレスに基づいてファイル位置を計算することと、前記計算されたファイル位置と、オブジェクト名及びオブジェクトアドレス、並びに対応するファイル名及びファイルアドレスの情報を含む、ファイルについての前記オブジェクト割り当て情報とに基づいて、前記オブジェクトの前記オブジェクト位置を計算することとを含む。前記論理ボリュームは、前記ファイル割り当て情報に基づいて選択される。前記ファイル割り当て情報が、複数のファイルのうちの各ファイルについて、ファイル名及びファイルアドレス、並びに対応する仮想ボリューム名及び仮想ボリュームアドレスの情報を含む。各オブジェクトが、オブジェクト名及びオブジェクトアドレスを含み、これらが、対応するファイル名とファイルアドレスとの関係を有し、これらが、対応する仮想ボリューム名と仮想ボリュームアドレスとの関係を有し、これらが、対応する論理ボリューム名と論理ボリュームアドレスとの関係を有する。前記方法は、前記階層及び媒体定義情報又は前記オブジェクト及び階層定義情報が変更される場合の階層移行プロセスをさらに含む。当該階層移行プロセスは、前記オブジェクト及び階層定義情報に含まれたオブジェクト名と関連付けられたオブジェクトを選択することと、前記オブジェクト及び階層定義情報から前記選択されたオブジェクトに対応する前記階層情報を取得することと、前記階層及び媒体定義情報から前記取得された階層情報に対応する前記媒体の種類情報を取得することと、前記ファイル割り当て情報から前記選択されたオブジェクトに対応する前記ファイル名及びファイルアドレスを取得することと、ファイルについての前記オブジェクト割り当て情報から前記取得されたファイル名及びファイルアドレスに対応する前記仮想ボリューム名及び仮想ボリュームアドレスを取得することと、前記取得された仮想ボリューム名及び仮想ボリュームアドレスに対応する前記論理ボリューム名及び論理ボリュームアドレスを取得することと、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記媒体の種類情報を取得することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じ場合は、すべての残りのオブジェクトに対して前記階層移行プロセスを継続することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された階層情報で特定された前記階層に前記選択されたオブジェクトを移動し、前記選択されたオブジェクトについて仮想ボリューム名及び仮想ボリュームアドレス、並びに対応��る論理ボリューム名及び論理ボリュームアドレスの情報を含む仮想ボリューム情報を更新し、かつすべての残りのオブジェクトに対して、前記階層移行プロセスを継続することとを含む。
【０００８】
０００８    特定の実施形態では、前記オブジェクト割り当て情報が、ＶＨＤ（仮想ハードディスクドライブ）についてのオブジェクト割り当て情報であり、オブジェクトの前記オブジェクト位置を計算することが、前記書込みコマンド及びＶＨＤ割り当て情報に特定された前記仮想ボリューム名及び仮想ボリュームアドレスに基づいてＶＨＤ位置を計算することと、前記計算されたＶＨＤ位置と、オブジェクト名及びオブジェクトアドレス、並びに対応するＶＨＤ名及びＶＨＤアドレスの情報を含む、ＶＨＤについての前記オブジェクト割り当て情報に基づいて、前記オブジェクトの前記オブジェクト位置を計算することとを含む。前記論理ボリュームは、前記ＶＨＤ割り当て情報に基づいて選択される。前記ＶＨＤ割り当て情報は、ＶＨＤ名及びＶＨＤアドレス、並びに対応する仮想ボリューム名及び仮想ボリュームアドレスの情報を含む。各オブジェクトが、オブジェクト名及びオブジェクトアドレスを含み、これらが、対応するＶＨＤ名とＶＨＤアドレスとの関係を有し、これらが、対応する仮想ボリューム名と仮想ボリュームアドレスとの関係を有し、これらが、対応する論理ボリューム名と論理ボリュームアドレスとの関係を有する。前記方法は、前記階層及び媒体定義情報又は前記オブジェクト及び階層定義情報が変更される場合の階層移行プロセスをさらに含む。当該階層移行プロセスは、前記オブジェクト及び階層定義情報に含まれたオブジェクト名と関連付けられたオブジェクトを選択することと、前記オブジェクト及び階層定義情報から前記選択されたオブジェクトに対応する前記階層情報を取得することと、前記階層及び媒体定義情報から前記取得された階層情報に対応する前記媒体の種類情報を取得することと、前記ＶＨＤ割り当て情報から前記選択されたオブジェクトに対応する前記ＶＨＤ名及びＶＨＤアドレスを取得することと、ＶＨＤについての前記オブジェクト割り当て情報から前記取得されたＶＨＤ名及びＶＨＤアドレスに対応する前記仮想ボリューム名及び仮想ボリュームアドレスを取得することと、前記取得された仮想ボリューム名及び仮想ボリュームアドレスに対応する前記論理ボリューム名及び論理ボリュームアドレスを取得することと、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記媒体の種類情報を取得することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じ場合は、すべての残りのオブジェクトに対して前記階層移行プロセスを継続することと、前記取得された階層情報に対応する前記取得された媒体の種類情報が、前記取得された論理ボリューム名及び論理ボリュームアドレスを有する前記論理ボリュームに対応する前記取得された媒体の種類情報と同じでない場合は、前記選択されたオブジェクトについて前記取得された階層情報で特定された前記階層に前記選択されたオブジェクトを移動し、前記選択されたオブジェクトについて仮想ボリューム名及び仮想ボリュームアドレス、並びに対応する論理ボリューム名及び論理ボリュームアドレスの��報を含む仮想ボリューム情報を更新し、かつすべての残りのオブジェクトに対して、前記階層移行プロセスを継続することとを含む。
【０００９】
０００９    本発明の他の態様は、書込みコマンドに対して論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てるために、アプリケーションサーバに結合されたストレージサブシステムを含む情報システムを対象とする。当該ストレージサブシステムは、プロセッサと、メモリと、複数の論理ボリュームと、仮想ボリュームの仮想ボリューム名及び仮想ボリュームアドレスを含む書込みコマンドと、オブジェクト割り当て情報とに基づいて、オブジェクトのオブジェクト位置を計算し、前記計算されたオブジェクト位置と、オブジェクト及び階層定義情報とに基づいて、複数の階層から階層を選択し、  前記選択された階層と、階層及び媒体定義情報とに基づいて、複数の媒体の種類から媒体の種類を選択するように構成された、オブジェクト割当てモジュールと、前記書込みコマンドによって特定された前記仮想ボリュームと、前記オブジェクト割り当て情報と、プール情報と、前記選択された媒体の種類とに基づいて、前記複数の論理ボリュームから論理ボリュームを選択する、ディスク制御モジュールとを備える。
【００１０】
００１０    本発明の他の態様は、書込みコマンドに対して論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てるシステムにおいて、複数のオブジェクトについて階層及び媒体の種類を管理するインタフェースであって、前記書込みコマンドに基づいて、前記複数のオブジェクトのうちのオブジェクトのオブジェクト位置を計算することと、前記計算されたオブジェクト位置と、オブジェクト及び階層定義情報とに基づいて、複数の階層から階層を選択することと、前記選択された階層と、階層及び媒体定義情報とに基づいて、複数の媒体の種類から媒体の種類を選択することによって、前記管理を行うインタフェースを対象とする。前記インタフェースは、前記複数のオブジェクトの各々について、前記オブジェクトのうちの一つに対応する階層をユーザから受け取り、前記オブジェクトのオブジェクト名、及び前記ユーザから受け取った対応する階層を含む、前記オブジェクト及び階層定義情報を表示し、前記複数の階層の各々について、前記階層の一つに対応する媒体の種類を前記ユーザから受け取り、かつ前記ユーザから受け取った前記階層及び対応する媒体の種類を含む前記階層及び媒体定義情報を表示するための、コンピュータ読取可能プログラムコード装置を備える。
【００１１】
００１１    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１２】
【図１】００１２    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図２】００１３    図２は、本発明の第１の実施形態に従った図１のアプリケーションサーバのメモリの一例を示す。
【図３】００１４    図３は、図１のストレージサブシステムのメモリ、読出しコマンド、及び書込みコマンドの一例を示す。
【図４】００１５    図４は、ＲＡＩＤグループ情報、論理ボリューム情報、及びプール情報の一例を示す。
【図５】００１６    図５は、仮想ボリューム情報、階層定義情報、及びオブジェクト及び階層定義情報の一例を示す。
【図６】００１７    図６は、階層管理画面の一例を示す。
【図７】００１８    図７は、第１の実施形態に従って、テーブルとファイル、ファイルと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの間の関係を説明する図の一例を示す。
【図８】００１９    図８は、第１の実施形態に従ったオブジェクト情報取得プログラムのプロセスを示す流れ図の一例である。
【図９】００２０    図９は、ストレージサブシステムのディスク制御プログラムの読出し及び書込みプロセスを示す流れ図の一例である。
【図１０】００２１    図１０は、第１の実施形態に従って、ディスク制御プログラムが論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である。
【図１１】００２２    図１１は、第１の実施形態に従って、階層及び媒体定義情報又はオブジェクト及び階層定義情報が階層管理画面を使用して変更される場合の階層移行を示す流れ図の一例である。
【図１２】００２３    図１２は、本発明の第２の実施形態に従った図１のアプリケーションサーバのメモリの一例を示す。
【図１３】００２４    図１３は、第２の実施形態に従って、テーブルと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの間の関係を説明する図の一例を示す。
【図１４】００２５    図１４は、第２の実施形態に従ったオブジェクト情報取得プログラムのプロセスを示す流れ図の一例である。
【図１５】００２６    図１５は、第２の実施形態に従って、ディスク制御プログラムが論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である。
【図１６】００２７    図１６は、第２の実施形態に従って、階層及び媒体定義情報又はオブジェクト及び階層定義情報が階層管理画面を使用して変更される場合の階層移行を示す流れ図の一例である。
【図１７】００２８    図１７は、本発明の第３の実施形態に従った図１のアプリケーションサーバのメモリの一例を示す。
【図１８】００２９    図１８は、第３の実施形態に従って、テーブルとＶＨＤ、ＶＨＤと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの間の関係を説明する図の一例を示す。
【図１９】００３０    図１９は、第３の実施形態に従ったオブジェクト情報取得プログラムのプロセスを示す流れ図の一例である。
【図２０】００３１    図２０は、第３の実施形態に従って、ディスク制御プログラムが論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である。
【図２１】００３２    図２１は、第３の実施形態に従って、階層及び媒体定義情報又はオブジェクト及び階層定義情報が階層管理画面を使用して変更される場合の階層移行を示す流れ図の一例である。
【発明を実施するための形態】
【００１３】
００３３    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示していない場合もある。
【００１４】
００３４    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的態様で示されている。これらのアルゴリズム記述及び記号表現は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１５】
００３５    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において提示するアルゴリズム及び態様は、特定のコンピュータ又はその他の装置に本質的に関係していない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１６】
００３６    以下により詳細に示す本発明の例示的実施形態は、未割り当て領域への媒体の割り当てを改良するためにオブジェクト単位の階層を管理するための装置、方法、及びコンピュータプログラムを提供する。
【００１７】
００３７    第１の実施形態
【００１８】
００３８    第１の実施形態は、オブジェクトと、ファイルシステムと、仮想ボリュームと、論理ボリュームと、ＲＡＩＤグループとに関わる関係を示す。
【００１９】
００３９    Ａ.  システム構成
【００２０】
００４０    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。このシステムは、アプリケーションサーバ１００と、ＳＡＮ（ストレージエリアネットワーク）１２０と、ＬＡＮ（ローカルエリアネットワーク）１４０と、ストレージサブシステム１６０とを含む。アプリケーションサーバ１００は、ＣＰＵ（中央処理装置）１０１と、メモリ１０２と、ＨＤＤ（ハードディスクドライブ）１０３と、ＳＡＮインタフェース１０４と、ＬＡＮインタフェース１０５とを含む。ＣＰＵ１０１は、メモリ１０２からプログラムを読み出し、プログラムを実行する。メモリ１０２は、アプリケーションサーバ１００がプログラム及びデータを起動かつ格納する時に、ＨＤＤ１０３からプログラム及びデータを読み出す。ＨＤＤ１０３は、プログラム及びデータを格納する。ＳＡＮインタフェース１０４は、アプリケーションサーバ１００とＳＡＮ１２０を接続する。ＬＡＮインタフェース１０５は、アプリケーションサーバ１００とＬＡＮ１４０を接続する。ＳＡＮ１２０は、アプリケーションサーバ１００とストレージサブシステム１６０を接続する。アプリケーションサーバ１００は、ＳＡＮ１２０を使用して、ストレージサブシステム１６０にアプリケーションデータを送信し、ストレージサブシステム１６０からアプリケーションデータを受信する。アプリケーションサーバ１００は、ＬＡＮ１４０を使用して、ストレージサブシステム１６０に管理データを送信し、ストレージサブシステム１６０から管理データを受信する。ＬＡＮ１４０は、アプリケーションサーバ１００とストレージサブシステム１６０を接続する。ストレージサブシステム１６０は、ＳＡＮインタフェース１６１と、ＬＡＮインタフェース１６２と、ＣＰＵ１６３と、メモリ１６４と、ディスクインタフェース１６５と、ＳＳＤ（ソリッドステートドライブ）１６６と、ＨＤＤ１６７とを含む。ＳＡＮインタフェース１６１は、ストレージサブシステム１６０とＳＡＮ１２０を接続する。ＬＡＮインタフェース１６２は、ストレージサブシステム１６０とＬＡＮ１４０を接続する。ＣＰＵ１６３は、メモリ１６４からプログラムを読み出し、プログラムを実行する。メモリ１６４は、ストレージサブシステム１６０がプログラム及びデータを起動かつ格納する時に、ＨＤＤ１６６及びＳＳＤ１６７からプログラム及びデータを読み出す。ディスクインタフェース１６５は、ストレージサブシステム１６０と、ＳＳＤ１６６と、ＨＤＤ１６７とを接続する。ＳＳＤ１６６は、プログラム及びデータを格納する。ＨＤＤ１６７はプログラム及びデータを格納する。
【００２１】
００４１    図２は、第１の実施形態に従った図１のアプリケーションのメモリの一例を示す。メモリ１０２は、ＯＳ（オペレーティングシステム）プログラム２０１と、アプリケーションプログラム２０２と、オブジェクト割り当て情報２２０と、ファイル割り当て情報２４０とを含む。ＯＳプログラム２０１は、アプリケーションプログラム２０２を実行し、かつファイル割り当て情報２４０を管理する。アプリケーションプログラム２０２（例えば、データベースプログラム）は、ストレージサブシステム１６０からデータを読み出し、データを処理し、その結果をストレージサブシステム１６０に書込み、オブジェクト割り当て情報２２０を管理する。オブジェクト割り当て情報２２０はテーブルであり、オブジェクト名２２１と、オブジェクトアドレス２２２と、ファイル名２２３と、ファイルアドレス２２４との欄を含む。例えば、行２２５は、「テーブルＡ」のアドレス「０」〜「９９」が「ファイルＡ」のアドレス「０」〜「９９」に割り当てられていることを示す。ファイル割り当て情報２４０はテーブルであり、ファイル名２４１と、ファイルアドレス２４２と、ボリューム名２４３と、ボリュームアドレス２４４との欄を含む。例えば、行２４５は、「ファイルＡ」のアドレス「０」〜「９９９」が「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９９」に割り当てられていることを示す。
【００２２】
００４２    図３は、図１のストレージサブシステム１６０のメモリ１６４、読出しコマンド３２０、及び書込みコマンド３４０の一例を示す。メモリ１６４は、ディスク制御プログラム３０１と、ＲＡＩＤ（Redundant Arrays of Inexpensive (or Independent) Disks）グループ情報３０２と、論理ボリューム情報３０３と、プール情報３０４と、仮想ボリューム情報３０５と、階層及び媒体定義情報３０６と、オブジェクト及び階層定義情報３０７と、オブジェクト情報取得プログラム３０８と、オブジェクト割り当て計算プログラム３０９とを含む。ディスク制御プログラム３０１は、アプリケーションサーバ１００から読出しコマンド及び書込みコマンドを受信し、ＳＳＤ１６６及びＨＤＤ１６７からデータを読み出し、ＲＡＩＤグループ情報３０２、論理ボリューム情報３０３、プール情報３０４、仮想ボリューム情報３０５、階層及び媒体定義情報３０６、及びオブジェクト及び階層定義情報３０７を使用して、ＳＳＤ１６６及びＨＤＤ１６７にデータを書き込む。オブジェクト情報取得プログラム３０８は、アプリケーションサーバ１００からオブジェクト情報を取得する。オブジェクト割り当て計算プログラム３０９は、オブジェクトがアプリケーションサーバ１００によって割り当てられる位置を計算する。
【００２３】
００４３    読出しコマンド３２０は、コマンドの種類３２１と、ボリューム名３２２と、ボリュームアドレス３２３とを含む。読出しコマンド３２０は、アプリケーションサーバ１００からストレージサブシステム１６０に送信される。
【００２４】
００４４    書込みコマンド３４０は、コマンドの種類３４１と、ボリューム名３４２と、ボリュームアドレス３４３と、データ３４４とを含む。書込みコマンド３４０は、アプリケーションサーバ１００からストレージサブシステム１６０に送信される。
【００２５】
００４５    図４は、ＲＡＩＤグループ情報３０２、論理ボリューム情報３０３、及びプール情報３０４の一例を示す。
【００２６】
００４６    ＲＡＩＤグループ情報３０２は、ＲＡＩＤグループ名４０１と、媒体名４０２と、媒体の種類４０３と、ＲＡＩＤレベル４０４との欄を含む。例えば、行４０５は、「ＲＧ  Ａ」が「ＳＳＤ  Ａ」、「ＳＳＤ  Ｂ」、「ＳＳＤ  Ｃ」、及び「ＳＳＤ  Ｄ」を有し、「ＲＧ  Ａ」の媒体の種類が「ＳＳＤ」であり、「ＲＧ  Ａ」のＲＡＩＤレベルが「ＲＡＩＤ  １０（２Ｄ＋２Ｄ）」であることを示す。
【００２７】
００４７    論理ボリューム情報３０３は、論理ボリューム名４２１と、論理ボリュームアドレス４２２と、媒体の種類４２３と、ＲＡＩＤグループ名４２４と、ＲＡＩＤグループアドレス４２５との欄を含む。例えば、行４２６は、「Ｌ−ＶＯＬ  Ａ」の媒体の種類が「ＳＳＤ」であり、「Ｌ−ＶＯＬ  Ａ」が「ＲＧ  Ａ」のアドレス「０」〜「９９９９」に割り当てられていることを示す。
【００２８】
００４８    プール情報３０４は、プール名４４１と、論理ボリューム名４４２と、仮想ボリューム名４４３との欄を含む。例えば、行４４４は、「プールＡ」が「Ｌ−ＶＯＬ  Ａ」、「Ｌ−ＶＯＬ  Ｂ」、及び「Ｌ−ＶＯＬ  Ｃ」を有し、「プールＡ」の領域が「Ｖ−ＶＯＬ  Ａ」及び「Ｖ−ＶＯＬ  Ｂ」によって使用されることを示す。
【００２９】
００４９    図５は、仮想ボリューム情報３０５、階層定義情報３０６、及びオブジェクト及び階層定義情報３０７の一例を示す。
【００３０】
００５０    仮想ボリューム情報３０５は、仮想ボリューム名５０１と、仮想ボリュームアドレス５０２と、論理ボリューム名５０３と、論理ボリュームアドレス５０４との欄を含む。例えば、行５０５は、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９」が「Ｌ−ＶＯＬ  Ａ」のアドレス「０」〜「９」に割り当てられていることを示す。
【００３１】
００５１    階層及び媒体定義情報３０６は、階層５２１と、媒体の種類５２２との欄を含む。例えば、行５２４は、オブジェクト及び階層定義情報３０７において階層が「０」と定義されているオブジェクトが「ＳＳＤ」媒体に割り当てられていることを示している。
【００３２】
００５２    オブジェクト及び階層定義情報３０７は、オブジェクト名５４１と、階層５４２との欄を含む。例えば、行５４３は、「テーブルＡ」が階層「０」に割り当てられていることを示す。行５４６は、デフォルトの階層を示す。オブジェクト名５４１で定義されていないオブジェクトは、階層「１」に割り当てられる。
【００３３】
００５３    図６は、階層管理画面６００の一例を示す。管理者は、階層６０１、媒体の種類６０２、オブジェクト名６２１、及び階層６２２を入力する。階層及び媒体定義情報３０６とオブジェクト及び階層定義情報３０７は、管理者が「ＯＫ」ボタン６４１を押した時に、管理者が入力したデータに更新される。
【００３４】
００５４    図７は、第１の実施形態に従った、テーブルとファイル、ファイルと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの関係を例示する図の一例を示す。図７は、テーブルＡ７０１、テーブルＢ７０２、ファイルＡ７０３、ファイルＢ７０４、ファイルＣ７０５、Ｖ−ＶＯＬ  Ａ７０６、Ｖ−ＶＯＬ  Ｂ７０７、Ｌ−ＶＯＬ  Ａ７０８、Ｌ−ＶＯＬ  Ｂ７０９、及びＲＧ  Ａ７１０を示す。
【００３５】
００５５    Ｂ.  プロセスのフロー
【００３６】
００５６    図８は、第１の実施形態に従って、オブジェクト情報取得プログラム３０９が、アプリケーションサーバ１００からオブジェクト割り当て情報２２０及びファイル割り当て情報２４０を定期的に取得することを示す流れ図の一例である。ステップ８０１では、オブジェクト情報取得プログラム３０９は、アプリケーションサーバ１００からオブジェクト割り当て情報２２０を取得する。ステップ８０２では、オブジェクト情報取得プログラム３０９は、アプリケーションサーバ１００からファイル割り当て情報２４０を取得する。
【００３７】
００５７    図９は、ストレージサブシステム１６０がアプリケーションサーバ１００から読出しコマンド３２０又は書込みコマンド３４０を受信した場合に、ストレージサブシステム１６０がＳＳＤ１６６及びＨＤＤ１６７からデータを読み出し、ＳＳＤ１６６及びＨＤＤ１６７にデータを書き込むことを示す流れ図の一例である。
【００３８】
００５８    ステップ９０１では、ディスク制御プログラム３０１は、アプリケーションサーバ１００から読出しコマンド３２０又は書込みコマンド３４０を受信する。ステップ９０２では、ステップ９０１でディスク制御プログラム３０１が受信したコマンドが書込みコマンド３４０である場合、プロセスは決定ステップ９０３に進む。ＮＯである場合、プロセスは決定ステップ９０６に進む。決定ステップ９０３では、ボリューム名３４２及びボリュームアドレス３４３が仮想ボリューム情報３０５に割り当てられている場合、プロセスはステップ９０５に進む。ＮＯである場合、プロセスはステップ９０４に進む。ステップ９０４では、ディスク制御プログラム３０１は、論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てる。ステップ９０５では、ディスク制御プログラム３０１は、書込みコマンド３４０からボリューム名３４２及びボリュームアドレス３４３を取得し、仮想ボリューム情報３０５から論理ボリューム名５０３及び論理ボリュームアドレスを取得し、論理ボリューム情報３０３からＲＡＩＤグループ名４２４及びＲＡＩＤグループアドレス４２５を取得し、ＲＡＩＤグループ情報３０２から媒体名４０２を取得し、データ３４４、ＳＳＤ１６６、及びＨＤＤ１６７を書き込む。決定ステップ９０６では、ボリューム名３２２及びボリュームアドレス３２３が仮想ボリューム情報３０５に割り当てられている場合、プロセスはステップ９０８に進む。ＮＯである場合、プロセスはステップ９０７に進む。ステップ９０７では、ディスク制御プログラム３０１は、ボリューム名３２２及びボリュームアドレス３２３によって特定される領域はデータが書き込まれる領域ではないので、アプリケーションサーバ１００に「０」を戻す。ステップ９０８では、ディスク制御プログラム３０１は、読出しコマンド３２０からボリューム名３２２及びボリュームアドレス３２３を取得し、仮想ボリューム情報３０５から論理ボリューム名５０３及び論理ボリュームアドレスを取得し、論理ボリューム情報３０３からＲＡＩＤグループ名４２４及びＲＡＩＤグループアドレス４２５を取得し、ＲＡＩＤグループ情報３０２から媒体名４０２を取得し、ＳＳＤ１６６及びＨＤＤ１６７からデータを読み出す。
【００３９】
００５９    図１０は、第１の実施形態に従ってディスク制御プログラム３０１が論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である。
【００４０】
００６０    ステップ１００１では、ストレージサブシステムのオブジェクト割り当て計算プログラム３０９は、書込みコマンド３４０によって特定されたファイル位置を計算する。書込みコマンド３４０及びファイル割り当て情報２４０に従って、アドレスは「ファイルＡ」の「２０」〜「２３」である。ステップ１００２では、オブジェクト割り当て計算プログラム３０９は、書込みコマンド３４０によって特定されたオブジェクト位置を計算する。ステップ１００１の結果及びオブジェクト割り当て情報２２０に従って、アドレスは「テーブルＡ」の「２０」〜「２３」である。ステップ１００３では、オブジェクト割り当て計算プログラム３０９は階層を選択する。ステップ１００２の結果及びオブジェクト及び階層定義情報３０７に従って、オブジェクト割り当て計算プログラム３０９は階層「０」を選択する。オブジェクトがオブジェクト及び階層定義情報で定義されていない場合は、オブジェクト割り当て計算プログラム３０９は、デフォルトの階層「１」を選択する。ステップ１００４では、オブジェクト割り当て計算プログラム３０９は、媒体の種類を選択する。ステップ１００３の結果及び階層及び媒体定義情報に従って、媒体の種類は「ＳＳＤ」である。ステップ１００５では、ディスク制御プログラム３０１は論理ボリュームを選択する。書込みコマンド３４０のボリューム名３４２は「Ｖ−ＶＯＬ  Ａ」である。プール情報３０４に従って、「Ｖ−ＶＯＬ  Ａ」は「プールＡ」に属する。「プールＡ」は、「Ｌ−ＶＯＬ  Ａ」と、「Ｌ−ＶＯＬ  Ｂ」と、「Ｌ−ＶＯＬ  Ｃ」とを含む。論理ボリューム情報３０３に従って、「Ｌ−ＶＯＬ  Ａ」の媒体の種類４２３はＳＳＤであり、「Ｌ−ＶＯＬ  Ｂ」の媒体の種類４２３はＳＳＤである。従って、ディスク制御３０１プログラムは、「Ｌ−ＶＯＬ  Ａ」又は「Ｌ−ＶＯＬ  Ｂ」を選択できる。ステップ１００６では、ディスク制御プログラム３０１は、仮想ボリューム情報３０５をステップ１００５の結果に更新する。
【００４１】
００６１    図１１は、第１の実施形態に従って、階層及び媒体定義情報３０６又はオブジェクト及び階層定義情報３０７が階層管理画面６００を使用して変更される場合の階層移行を示す流れ図の一例である。
【００４２】
００６２    ステップ１１０１では、オブジェクト割り当て計算プログラム３０９は、オブジェクト名５４１から一つのオブジェクトを選択する。ステップ１１０２では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で選択されたオブジェクトに対応する階層５４２を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で「テーブルＢ」が選択されると、階層「２」を取得する。ステップ１１０３では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０２で選択された階層に対応する媒体の種類５２２を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、ステップ１１０２で階層「２」が選択されると、「ＳＡＴＡ  ＨＤＤ」を取得する。ステップ１１０４では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で選択されたオブジェクトに対応するファイル名２２３及びファイルアドレス２２４を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で「テーブルＢ」が選択されると、ファイル名「ファイルＣ」及びアドレス「０」〜「１９」を取得する。ステップ１１０５では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０４で取得されたファイル名及びアドレスに対応するボリューム名２４３及びボリュームアドレス２４４を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、仮想ボリューム名「Ｖ−ＶＯＬ  Ｂ」及び仮想ボリュームアドレス「０」〜「１９」を取得する。ステップ１１０６では、ディスク制御プログラム３０１は、ステップ１１０５で取得されたボリューム名及びボリューム名に対応する論理ボリューム名５０３及び論理ボリュームアドレス５０４を取得する。例えば、ディスク制御プログラム３０１は、論理ボリューム名「Ｌ−ＶＯＬ  Ａ」及びアドレス「１０」〜「２９」を取得する。ステップ１１０７では、ディスク制御プログラム３０１は、ステップ１１０６で取得された論理ボリュームに対応する媒体の種類４２３を取得する。例えば、ディスク制御プログラム３０１は、媒体の種類「ＳＳＤ」を取得する。
【００４３】
００６３    判断ステップ１１０８では、ステップ１１０３で取得された媒体の種類がステップ１１０７で取得された媒体の種類と等しい場合は、プロセスは判断ステップ１１１０に進む。ＮＯである場合、プロセスはステップ１００９に進む。ステップ１１０９では、ディスク制御プログラム３０１は、選択されたオブジェクトを、オブジェクト及び階層定義情報３０７によって特定された階層に移動し、選択されたオブジェクトの仮想ボリューム情報３０５を更新する。判断ステップ１１１０では、オブジェクト名５４１のすべてのオブジェクトが処理されない場合は、プロセスはステップ１１０１に戻る。そうでない場合、プロセスは終了する。
【００４４】
００６４    第２の実施形態
【００４５】
００６５    本実施形態は、オブジェクトと、仮想ボリュームと、論理ボリュームと、ＲＡＩＤグループとに関わる関係を示す。第２の実施形態と第１の実施形態の差異のみを説明する。第２の実施形態では、オブジェクトは、ファイルシステムではなく、仮想ボリュームに直接格納される。アプリケーションプログラム２０２は、オブジェクト割り当てを管理する。
【００４６】
００６６    Ａ.  システム構成
【００４７】
００６７    図１２は、第２の実施形態に従った図１のアプリケーションサーバのメモリの一例を示す（第１の実施形態の図２を参照）。メモリ１０２は、ＯＳプログラム２０１と、アプリケーションプログラム２０２と、ファイルについてのオブジェクト割り当て情報１２００とを含む。ファイルについてのオブジェクト割り当て情報１２００はテーブルであり、オブジェクト名１２０１と、オブジェクトアドレス１２０２と、ボリューム名１２０３と、ボリュームアドレス１２０４との欄を含む。
【００４８】
００６８    図１３は、第２の実施形態に従ったテーブルと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの関係を説明する図の一例を示す（第１の実施形態の図７を参照）。図１３は、テーブルＡ１３０１、テーブルＢ１３０２、Ｖ−ＶＯＬ  Ａ１３０３、Ｖ−ＶＯＬ  Ｂ１３０４、Ｌ−ＶＯＬ  Ａ１３０５、Ｌ−ＶＯＬ  Ｂ１３０６、及びＲＧ  Ａ１３０７を示す。
【００４９】
００６９    Ｂ.  プロセスのフロー
【００５０】
００７０    図１４は、第２の実施形態に従って、オブジェクト情報取得プログラム３０９が、アプリケーションサーバ１００からオブジェクト割り当て情報１２００を定期的に取得することを示す流れ図の一例である（第１の実施形態の図８を参照）。ステップ１４０１では、オブジェクト情報取得プログラム３０９は、アプリケーションサーバ１００からオブジェクト割り当て情報１２００を取得する。
【００５１】
００７１    図１５は、第２の実施形態に従って、ディスク制御プログラムが、論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である（第１の実施形態の図１０を参照）。ステップ１５０１では、オブジェクト割り当て計算プログラム３０９は、書込みコマンド３４０によって特定されたボリューム位置を計算する。書込みコマンド３４０及びオブジェクト割り当て情報に従って、アドレスは「テーブルＡ」の「２０」〜「２３」である。
【００５２】
００７２    図１６は、第２の実施形態に従って、階層及び媒体定義情報３０６又はオブジェクト及び階層定義情報３０７が階層管理画面６００を使用して変更される場合の階層移行を示す流れ図の一例である（第１の実施形態の図１１を参照）。ステップ１６０１では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で選択されたオブジェクトに対応するボリューム名１２０３及びボリュームアドレス１２０４を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で「テーブルＢ」が選択された場合に、ファイル名「Ｖ−ＶＯＬ  Ｂ」及びアドレス「２０」〜「３９」を取得する。
【００５３】
００７３    第３の実施形態
【００５４】
００７４    本実施形態は、オブジェクトと、仮想ＨＤＤと、仮想ボリュームと、論理ボリュームと、ＲＡＩＤグループとに関わる関係を示す。第３の実施形態と第１の実施形態の差異のみを説明する。第３の実施形態では、オブジェクトは、ファイルシステムではくなく、ＶＨＤ（仮想ＨＤＤ）に格納される。ハイパーバイザプログラム１７０１は、オブジェクト割り当てを管理する。
【００５５】
００７５    Ａ.  システム構成
【００５６】
００７６    図１７は、第２の実施形態に従った図１のアプリケーションサーバのメモリの一例を示す（第１の実施形態の図２を参照）。メモリ１０２は、ＯＳプログラム２０１と、アプリケーションプログラム２０２と、ハイパーバイザプログラム１７０１と、仮想マシン１７０２と、ＶＨＤのオブジェクト割り当て情報１７２０と、ＶＨＤ割り当て情報１７４０とを含む。ハイパーバイザプログラム１７０１は、仮想マシン１７０２を実行する。仮想マシン１７０２は、アプリケーションプログラム２０２を実行する。ＶＨＤのオブジェクト割り当て情報１７２０はテーブルであり、オブジェクト名１７２１と、オブジェクトアドレス１７２２と、ＶＨＤ名１７２３と、ＶＨＤアドレス１７２４との欄を含む。例えば、行１７２５は、「テーブルＡ」のアドレス「０」〜「９９」が「ＶＨＤ  Ａ」のアドレス「０」〜「９９」に割り当てられていることを示す。ＶＨＤ割り当て情報１７４０はテーブルであり、ＶＨＤ名１７４１と、ＶＨＤアドレス１７４２と、ボリューム名１７４３と、ボリュームアドレス１７４４との欄を含む。例えば、行１７４５は、「ＶＨＤ  Ａ」のアドレス「０」〜「９９９」が「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９９」に割り当てられていることを示す。
【００５７】
００７７    図１８は、第３の実施形態に従って、テーブルとＶＨＤ、ＶＨＤと仮想ボリューム、仮想ボリュームと論理ボリューム、及び論理ボリュームとＲＡＩＤグループとの関係を説明する図の一例を示す（第１の実施形態の図２を参照）。図１８は、テーブルＡ１８０１、テーブルＢ１８０２、ＶＨＤ  Ａ１８０３、ＶＨＤ  Ｂ１８０４、ＶＨＤ  Ｃ１８０５、Ｖ−ＶＯＬ  Ａ１８０６、Ｖ−ＶＯＬ  Ｂ１８０７、Ｌ−ＶＯＬ  Ａ１８０８、Ｌ−ＶＯＬ  Ｂ１８０９、及びＲＧ  Ａ１８１０を示す。
【００５８】
００７８    Ｂ.  プロセスのフロー
【００５９】
００７９    図１９は、第３の実施形態に従って、オブジェクト情報取得プログラム３０９が、仮想マシン１７０２からオブジェクト割り当て情報１７２０及びファイル割り当て情報１７４０を定期的に取得することを示す流れ図の一例である（第１の実施形態の図８）。ステップ１９０１では、オブジェクト情報取得プログラム３０９は、アプリケーションサーバ１００からオブジェクト割り当て情報１７２０を取得する。ステップ１９０２では、オブジェクト情報取得プログラム３０９は、アプリケーションサーバ１００からＶＨＤ割り当て情報１７４０を取得する。
【００６０】
００８０    図２０は、第３の実施形態に従って、ディスク制御プログラムが、論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てることを示す流れ図の一例である（第１の実施形態の図１０を参照）。ステップ２００１では、オブジェクト割り当て計算プログラム３０９は、書込みコマンド３４０によって特定されたＶＨＤ位置を計算する。書込みコマンド３４０及びＶＨＤ割り当て情報１７４０に従って、アドレスは「ＶＨＤ  Ａ」の「２０」〜「２３」である。
【００６１】
００８１    図２１は、第３の実施形態に従って、階層及び媒体定義情報３０６又はオブジェクト及び階層定義情報３０７が階層管理画面６００を使用して変更される場合の、階層移行を示す流れ図の一例である（第１の実施形態の図１１を参照）。
【００６２】
００８２    ステップ２１０４では、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で選択されたオブジェクトに対応するＶＨＤ名１７２３及びＶＨＤアドレス１７２４を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、ステップ１１０１で「テーブルＢ」が選択された場合に、ＶＨＤ名「ＶＨＤ  Ｃ」及びアドレス「０」〜「１９」を取得する。ステップ２１０５では、オブジェクト割り当て計算プログラム３０９は、ステップ２１０４で取得されたＶＨＤ名及びアドレスに対応するボリューム名１７４３及びボリュームアドレス１７４４を取得する。例えば、オブジェクト割り当て計算プログラム３０９は、仮想ボリューム名「Ｖ−ＶＯＬ  Ｂ」及び仮想ボリュームアドレス「０」〜「１９」を取得する。
【００６３】
００８３    当然のことながら、図１に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明の前記データ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００６４】
００８４    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００６５】
００８５    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読出し可能媒体上に記憶された命令を用いて実施してもよく、当該態様がプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００６６】
００８６    上記により、本発明が、未割り当て領域への媒体の割り当てを改良するために、オブジェクト単位の階層を管理する方法、装置、及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出された構成を用いてよい。本開示は、本発明のあらゆる適合又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005608016.tif 000002
【図２】
0005608016.tif 000003
【図３】
0005608016.tif 000004
【図４】
0005608016.tif 000005
【図５】
0005608016.tif 000006
【図６】
0005608016.tif 000007
【図７】
0005608016.tif 000008
【図８】
0005608016.tif 000009
【図９】
0005608016.tif 000010
【図１０】
0005608016.tif 000011
【図１１】
0005608016.tif 000012
【図１２】
0005608016.tif 000013
【図１３】
0005608016.tif 000014
【図１４】
0005608016.tif 000015
【図１５】
0005608016.tif 000016
【図１６】
0005608016.tif 000017
【図１７】
0005608016.tif 000018
【図１８】
0005608016.tif 000019
【図１９】
0005608016.tif 000020
【図２０】
0005608016.tif 000021
【図２１】
0005608016.tif 000022