(57)【要約】ストレージ・プール情報は、複数のストレージ・ユニットの複数のストレージ・プールへの割当てを示す。各プールには、０台またはそれ以上のストレージ・ユニットが割り当てられ、あるストレージ・プールのデータは、そのストレージ・プールに割り当てられたストレージ・ユニットに格納される。また、各プールのストレージ・プール情報は、閾値やターゲット・ストレージ・プールを示し、ターゲット・ストレージ・プールは、ストレージ・プールと異なるストレージ・プールを示すことができる。あるソース・ストレージ・プールに割り当てられた１つのストレージ・ユニットが選択され、そのソース・ストレージ・プールのストレージ・プール情報から閾値が決定される。選択されたストレージ・ユニットが、決定された閾値を満たしているかかどうかの判断がなされる。選択されたストレージ・ユニットが決定された閾値を満たしている場合は、ソース・ストレージ・プールのストレージ・プール情報がソース・ストレージ・プールと異なるターゲット・ストレージ・プールを示している場合に、ターゲット・ストレージ・プールのターゲット・ストレージ・ユニットが選択される。選択されたストレージ・ユニットのデータは、選択されたターゲット・ストレージ・ユニットにコピーされる。
2005537554.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ・ユニットのデータを管理する方法であって、
複数のストレージ・ユニットの複数のストレージ・プールへの割当てを示すストレージ・プール情報を維持するステップであって、各プールには０台またはそれ以上のストレージ・ユニットが割り当てられ、あるストレージ・プールに関連するデータは前記ストレージ・プールに割り当てられたストレージ・ユニットに格納され、各プールの前記ストレージ・プール情報が閾値とターゲット・ストレージ・プールとを示し、前記ターゲット・ストレージ・プールは前記ストレージ・プールと異なることが可能である、維持するステップと、
あるソース・ストレージ・プールに関連する１つのストレージ・ユニットを選択するステップと、
前記ソース・ストレージ・プールの前記ストレージ・プール情報から前記閾値を決定するステップと、
前記選択されたストレージ・ユニットが前記決定された閾値を満たしているかどうかを判断するステップと、
前記選択されたストレージ・ユニットが前記決定された閾値を満たし、前記ソース・ストレージ・プールの前記ストレージ・プール情報が前記ソース・ストレージ・プールと異なるターゲット・ストレージ・プールを示している場合に、前記ターゲット・ストレージ・プールのターゲット・ストレージ・ユニットを選択するステップと、
前記選択されたストレージ・ユニットから前記選択されたターゲット・ストレージ・ユニットにデータをコピーするステップと
を含む方法。
【請求項２】
前記ストレージ・プールのうちの少なくとも２つが異なる閾値を有する、請求項１に記載の方法。
【請求項３】
前記選択されたストレージ・ユニットのアクティブ・データの量が前記決定された閾値よりも少ない場合に、前記選択されたストレージ・ユニットが前記閾値を満たす、請求項１に記載の方法。
【請求項４】
前記ソース・ストレージ・プールの前記ストレージ・プール情報に他のターゲット・ストレージ・プールが示されていない場合には、前記ソース・ストレージ・プールから前記ターゲット・ストレージ・ユニットを選択するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記ソース・ストレージ・プールの前記閾値が、前記ターゲット・ストレージ・プールの前記閾値より低い、請求項１に記載の方法。
【請求項６】
前記ソース・ストレージ・プールの前記ストレージ・ユニットが、前記ターゲット・ストレージ・プールの前記ストレージ・ユニットより小さいストレージ容量を有する、請求項１に記載の方法。
【請求項７】
前記ソース・ストレージ・プールが第１のストレージ・プールを備え、前記ターゲット・ストレージ・プールが第２のストレージ・プールを備え、第３のストレージ・プールが前記第２のストレージ・プールの前記ストレージ・プール情報のターゲット・ストレージ・プールとして識別され、それによって前記第２のストレージ・プールが前記閾値に達したときに、前記第２のストレージ・プールの１つの選択されたストレージ・ユニットのデータが前記第３のストレージ・プールに移される、請求項１に記載の方法。
【請求項８】
前記ソース・ストレージ・プールがストレージ・デバイスから転送されたデータを格納する、請求項１に記載の方法。
【請求項９】
前記ストレージ・デバイスが前記ストレージ・ユニットより速いデータ・アクセス速度を有する、請求項８に記載の方法。
【請求項１０】
前記ストレージ・ユニットがテープ・カートリッジを備え、前記ストレージ・デバイスが、テープ入／出力コマンドを使用してデータが書き込まれるテープ・バッファとして動作する、請求項８に記載の方法。
【請求項１１】
前記ストレージ・ユニットが仮想テープ・サーバにテープ・カートリッジを備え、前記ストレージ・デバイスが前記仮想テープ・サーバに仮想テープ・バッファを備える、請求項８に記載の方法。
【請求項１２】
前記ストレージ・ユニットがシーケンシャル・アクセス・テープ・カートリッジを備える、請求項１に記載の方法。
【請求項１３】
データを管理するシステムであって、
ストレージ・ユニットと、
複数のストレージ・ユニットの複数のストレージ・プールへの割当てを示すストレージ・プール情報を維持する手段であって、各プールに０台またはそれ以上のストレージ・ユニットが割り当てられ、あるストレージ・プールに関連するデータが前記ストレージ・プールに割り当てられたストレージ・ユニットに格納され、各プールの前記ストレージ・プール情報が閾値およびターゲット・ストレージ・プールを示し、前記ターゲット・ストレージ・プールが前記ストレージ・プールと異なることが可能である、維持する手段と、
あるソース・ストレージ・プールに関連する１つのストレージ・ユニットを選択する手段と、
前記ソース・ストレージ・プールの前記ストレージ・プール情報から前記閾値を決定する手段と、
前記選択されたストレージ・ユニットが前記決定された閾値を満たすかどうかを判断する手段と、
前記選択されたストレージ・ユニットが前記決定された閾値を満たし、前記ソース・ストレージ・プールの前記ストレージ・プール情報が前記ソース・ストレージ・プールと異なるターゲット・ストレージ・プールを示している場合に、前記ターゲット・ストレージ・プールのターゲット・ストレージ・ユニットを選択する手段と、
前記選択されたストレージ・ユニットから前記選択されたターゲット・ストレージ・ユニットにデータをコピーする手段と
を備えるシステム。
【請求項１４】
前記ストレージ・プールのうちの少なくとも２つが異なる閾値を有する、請求項１３に記載のシステム。
【請求項１５】
前記選択されたストレージ・ユニットのアクティブ・データの量が前記決定された閾値よりも少ない場合に、前記選択されたストレージ・ユニットが前記閾値を満たす、請求項１３に記載のシステム。
【請求項１６】
前記ソース・ストレージ・プールの前記ストレージ・プール情報に他のターゲット・ストレージ・プールが示されていない場合には、前記ソース・ストレージ・プールから前記ターゲット・ストレージ・ユニットを選択する手段をさらに含む、請求項１３に記載のシステム。
【請求項１７】
前記ソース・ストレージ・プールの前記閾値が、前記ターゲット・ストレージ・プールの前記閾値より低い、請求項１３に記載のシステム。
【請求項１８】
前記ソース・ストレージ・プールの前記ストレージ・ユニットが、前記ターゲット・ストレージ・プールの前記ストレージ・ユニットより小さいストレージ容量を有する、請求項１３に記載のシステム。
【請求項１９】
前記ソース・ストレージ・プールが第１のストレージ・プールを備え、前記ターゲット・ストレージ・プールが第２のストレージ・プールを備え、第３のストレージ・プールが前記第２のストレージ・プールの前記ストレージ・プール情報のターゲット・ストレージ・プールとして識別され、それによって前記第２のストレージ・プールが前記閾値に達したときに、前記第２のストレージ・プールの１つの選択されたストレージ・ユニットのデータが前記第３のストレージ・プールに移される、請求項１３に記載のシステム。
【請求項２０】
前記ソース・ストレージ・プールがストレージ・デバイスから転送されたデータを格納する、請求項１３に記載のシステム。
【請求項２１】
前記ストレージ・デバイスが、前記ストレージ・ユニットより速いデータ・アクセス速度を有する、請求項２０に記載のシステム。
【請求項２２】
前記ストレージ・ユニットがテープ・カートリッジを備え、前記ストレージ・デバイスがテープ入／出力コマンドを使用してデータが書き込まれるテープ・バッファとして動作する、請求項２１に記載のシステム。
【請求項２３】
前記ストレージ・ユニットが仮想テープ・サーバにテープ・カートリッジを備え、前記ストレージ・デバイスが前記仮想テープ・サーバに仮想テープ・バッファを備える、請求項２０に記載のシステム。
【請求項２４】
前記ストレージ・ユニットがシーケンシャル・アクセス・テープ・カートリッジを備える、請求項１３に記載のシステム。
【請求項２５】
コンピュータ・システム上で実行されるとき、請求項１ないし１２のいずれかに記載の方法を実施するよう前記コンピュータ・システムに命令を出す、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・ユニット間でのデータの移動に関する。
【背景技術】
【０００２】
テープ・ライブラリ・システムにおいて、テープ・コントローラはテープ・ストレージ・ユニットの使用率を高めるためにレクラメーション（再利用：reclamation）処理を実施する。レクラメーション処理には、非アクティブ・データとアクティブ・データの両方を有する１つまたは複数のテープからアクティブ・データだけを有する少数のテープにアクティブ・データをコピーすることが含まれる。データがコピーされた元のテープは、次いで使用可能なテープからなるスクラッチ（消去用）プールに追加される。今後のデータを格納するために、そのプールからテープを選択し使用することができる。空のテープはスクラッチ・プールに戻すことも、現在のプールで保持して専用に使用することもできる。この処理は、アクティブ・データを複数のテープから、より大きな比率でアクティブ・データを格納する単一のテープに集約することによってストレージ容量使用率（storagecapacity utilization）を高める。レクラメーションが必要なのは、データが修正されると様々なテープ上の旧バージョンのデータが期限切れまたは非アクティブになるからである。非アクティブ・データとアクティブ・データの両方を含むテープは、完全に使用されることはない。その理由は、データがシーケンシャルに書き込まれているので、単純に非アクティブ・データをアクティブ・データに置き換えることができないからである。
【０００３】
あるテープのアクティブ・データの量がレクラメーション閾値に達すると、そのテープのレクラメーションがスケジュール設定される。テープの使用率を最適化するには、レクラメーション閾値をより高いレベルに設定して、低い使用率の複数のテープから高い使用率の単一のテープにデータをより頻繁に集約すればよい。しかし、レクラメーション処理は、かなりのテープ・ライブラリ・リソースを消費してデータをテープからテープに移動するので、他のテープ・ライブラリ動作に影響を与える可能性がある。例えば、レクラメーション中に行われるデータ移動により、階層的ストレージ管理（ＨＳＭ）システムにおいて、ハード・ディスク・ドライブ・アレイなど高速アクセスのストレージ・デバイスからテープなど低速のストレージ・デバイスにデータをマイグレーションする際に行われる、テープへのデータ移動が妨げられる恐れがある。テープの使用率を高めるためにレクラメーション閾値をより高いレベルに設定するとレクラメーション処理の頻度が増し、それによってかなりのテープ・ライブラリ・リソースが消費されることになり、例えば階層的ストレージ管理システムでテープ・ライブラリが使用されるときに、データ・マイグレーションなど他のテープ・ライブラリ動作が妨げられる恐れがある。
【０００４】
一方、レクラメーション閾値を低く設定すると、アクティブ・データの量がかなり低いレベルにまで下がらないとレクラメーションが始まらないので、レクラメーションの頻度が下がる。レクラメーションの頻度が下がると、テープ・ライブラリ・リソースの消費が減り、ディスクからテープへのデータ・マイグレーションなど他のテープ・ライブラリ動作との干渉が最小限に抑えられる。しかし、レクラメーションの頻度を下げると、テープ・ストレージ容量使用率がより低い閾値レベルに下がるまでレクラメーションが実施されないので、テープはストレージ容量使用可能比率が低いままの状態になる恐れがある。ストレージ容量使用可能比率が低下した場合、データは容量使用可能比率の低い多数のテープに分散される。
【０００５】
したがって、テープ・ライブラリ性能とストレージ容量使用可能比率の間には常にトレードオフが存在するので、レクラメーション閾値をどの程度の値にするかを決定する際には、このことを考慮する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような理由から当技術分野では、ストレージ・システムにおいてデータ・レクラメーションを処理するための改良された技術が求められている。
【課題を解決するための手段】
【０００７】
ストレージ・ユニットのデータを管理するための、請求項１に記載の方法ならびに対応するシステムおよびプログラムが提供される。
【０００８】
ストレージ・プールのうちの少なくとも２つは異なる閾値を有することが好ましい。
【０００９】
ソース・ストレージ・プールのストレージ・ユニットは、ターゲット・ストレージ・プールのストレージ・ユニットより少ないストレージ容量を有することが好ましい。
【００１０】
ソース・ストレージ・プールは第１のストレージ・プールを備え、ターゲット・ストレージ・プールは第２のストレージ・プールを備え、第３のストレージ・プールは第２のストレージ・プールのストレージ・プール情報中のターゲット・ストレージ・プールとして識別され、それによって、第２のストレージ・プール内の１つの選択されたストレージ・ユニットが第２のストレージ・プールの閾値に達したときに、そのユニットからのデータが第３のストレージ・プールに移されることが好ましい。
【００１１】
記載の実装形態は、ストレージ・プールのデータを管理し、あるソース・プールのストレージ・ユニットのデータを他のターゲット・ストレージ・プールのストレージ・ユニットにレクラメーション処理する（reclaim）ための技術を提供する。この場合、ソース・ストレージ・プールおよびターゲット・ストレージ・プールは異なる属性を有することができる。
【００１２】
次に図面を参照すると、全図を通し類似の参照番号は類似の部品を表す。
【発明を実施するための最良の形態】
【００１３】
図１は本発明の各態様を実装できるコンピュータ環境を示す。テープ・サーバ２は各ホスト・システム４ａ、４ｂ、．．．４ｎに、（物理ボリュームとも呼ばれる）テープ・カートリッジ６ａ、６ｂ、６ｃ、６ｄ、６ｅ、６ｆ、６ｇに格納された論理ボリュームへのアクセスを提供する。ある実装形態では、テープ・カートリッジ６ａ、６ｂ、．．．６ｇはプール８ａ、８ｂと呼ばれる論理グループにまとめられる。テープ・コントローラ１０は、本明細書に記載の実装形態による、各プール８ａ、８ｂのテープ・カートリッジ６ａ、６ｂ、．．．６ｇへのアクセスを管理しレクラメーションを実施するためのハードウェアおよび／またはソフトウェアを含む。スクラッチ・プール８ｃは、テープ・カートリッジ６ｈ、６ｉ、および６ｊを含む。このテープ・カートリッジは、空で（empty）、解放されており、あるプールの論理ボリュームに追加のテープ・ストレージが必要な場合には、他のプールで使用することができる。
【００１４】
図１には、いくつかのテープ・カートリッジおよびストレージ・プールが示されているが、任意の数のテープ・カートリッジおよびストレージ・プールを使用することができる。また、ストレージ・プールには任意の数のテープ・カートリッジを含めることができる。テープ・サーバ２は自動化されたテープ・ライブラリを備え、テープ・カートリッジ６ａ、６ｂ、．．．６ｊにアクセスし１つまたは複数のアクセス可能なテープ・ドライブ（図示せず）にロードするためのグリッパ・アセンブリ（図示せず）を含み、各テープ・カートリッジを格納するためのカートリッジ・スロット（図示せず）を含むことができる。さらに他の実装形態では、テープ・カートリッジをテープ・サーバ２からアクセス可能な１つまた複数のテープ・ドライブに手動でロードすることもできる。
【００１５】
テープ・サーバ２は、当技術分野で周知の任意のテープ・ライブラリまたはテープ・コントローラ・システムを備えることができる。テープ・カートリッジ６ａ、６ｂ、．．．６ｊは、ＤＬＴ（デジタル・リニア・テープ）やＬＴＯ（リニア・テープ・オープン）など、当技術分野で周知の任意の種類のシーケンシャル・アクセス磁気ストレージ・メディアを含むことができる。ホスト４ａ、４ｂ、．．．４ｎは、、パーソナル・コンピュータ、ラップトップ・コンピュータ、ワークステーション、メインフレーム、電話装置、ハンドヘルド・コンピュータ、サーバ、ネットワーク装置など、当技術分野で周知の任意のコンピュータ装置で構成することができる。ホスト４ａ、４ｂ、．．．４ｎは、直接ケーブル接続で、またはＬＡＮ（ローカル・エリア・ネットワーク）、ＷＡＮ（ワイド・エリア・ネットワーク）、ＳＡＮ（ストレージ・エリア・ネットワーク）、インターネット、イントラネットなどのネットワークを介してテープ・サーバ２に接続することができる。
【００１６】
図２は代替実装形態を示す。この図では、図１に示されたテープ・サーバ２が、階層ストレージ管理（ＨＳＭ）システムの中にテープ・サーバ３２として組み込まれている。ホスト３４ａ、３４ｂ、．．．３４ｎは、ストレージ・サーバ３８を介してディスク・アレイ３６に対する入／出力（Ｉ／Ｏ）動作を行う。ディスク・アレイ３６は、テープ・サーバ３２によって管理されるストレージ・メディアより高速なアクセスが可能な、単一のハード・ディスク・ドライブ、ＲＡＩＤ（Redundant Array of Independent Disks）、ＪＢＯＤ（Just a Bunch of Disks）、または任意の他の記憶メディアで構成することができる。ストレージ・サーバ３８は、複数のソースからの入／出力要求を処理するのに適した任意のサーバ・クラスのマシン、例えばエンタープライズ・クラスのストレージ・サーバなどで構成することができる。ある実装形態では、ストレージ・サーバ３８はストレージ管理ソフトウェア４０を含む。このソフトウェアは、ディスク・アレイ３６からテープ・サーバ３２へのデータ・マイグレーションを管理して、そのデータをストレージ・プール４２、例えば図１に示されたストレージ・プール８ａ、８ｂなどのテープ（物理ボリューム）に格納する。ある実装形態では、ストレージ管理ソフトウェア４０は、例えばＴｉｖｏｌｉ（登録商標）スペース・マネージャ製品に実装された階層ストレージ管理（ＨＳＭ）動作など、当技術分野で周知のＨＳＭアルゴリズムおよび技術を使用してディスク・アレイ３６からテープ・サーバ３２へデータをマイグレーションすることができる（Ｔｉｖｏｌｉは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である）。
【００１７】
他の実装形態では、ストレージ管理ソフトエア４０は、ホスト３４ａ、３４ｂ、．．．３４ｎがテープ・アクセス動作を使用してディスク・アレイ３６のデータにアクセスするための仮想テープ・サーバ機能を実装することができる。この場合、ディスク・アレイ３６は、低速アクセスのテープ・カートリッジ媒体に対する、テープ・ストレージ用大容量高速バッファとして動作する。ホスト３４ａ、３４ｂ、．．．３４ｎは、テープ入／出力コマンドを使用して、テープ論理ボリュームとしてのディスク・アレイのデータにアクセスすることができる。ストレージ管理ソフトウェア４０は、ＨＳＭアルゴリズムを使用してデータをディスク・アレイ３６からテープ・サーバ３２にマイグレーションさせる。ストレージ管理ソフトウェア４０は仮想テープ・サーバ環境を実装するために、当技術分野で周知の仮想テープ・サーバ・ソフトウェア、例えばＩＢＭ  ＴｏｔａｌＳｔｏｒａｇｅ（商標）仮想テープ・サーバ（ＴｏｔａｌＳｔｏｒａｇｅはＩＢＭの商標）などで使用されるソフトウェアを含むことができる。
【００１８】
したがって、レクラメーション動作を実施中のテープ・サーバ２、３２は、テープ動作を実施中のホストに直接接続することもできるし、またはＨＳＭマイグレーション、仮想テープ・サーバ・システム、バックアップ、その他ディスク・アレイ・レベルで実施されるデータ管理動作などの一部としてディスク・アレイからデータを受信することもできる。さらに、テープ・サーバ３２をストレージ・サーバ３８の内部に含めることもできる。
【００１９】
ある実装形態では、システム管理者は物理ボリュームを各プールに割り当てることによって、ある既定の基準に従ってテープを分類できるようにすることができる。例えばある組織では、組織内部の個々のユニットに対するテープ・カートリッジからなる個別のストレージ・プールを設けることができる。企業組織では、例えば、経理、マーケティング、財務、技術などの個々の部門ごとに個別のストレージ・プールを設けて、特定の部門のデータを、その特定のクラスのデータだけを格納するテープ・カートリッジに格納することもできる。あるいは、ストレージ・プールを異なる使用頻度を有するデータごとに定義することもできる。例えば、あるプールを最近修正またはアクセスされたデータ用とし、他のプールをアーカイブ・データまたはバックアップ・データ用に使用することもできる。さらに、異なるユーザ・グループ、例えば、高レベルのアクセス権を有するグループ、限定されたアクセス権を有するグループなどごとにプールを指定することもできる。したがって、ストレージ・プールを使用して、クラスまたはタイプ別に各テープ・カートリッジにグループ・データを割り当てることができる。
【００２０】
ある実装形態では、テープ・コントローラ１０は、メモリ１２内に論理ボリューム・レコード１４、物理ボリューム・レコード１６、およびプール・レコード１８を含むデータ構造を維持する。メモリ１２は、例えばＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリ・デバイス、または、例えばハード・ディスク・ドライブなどの不揮発性メモリで構成することができる。これらのレコードは、リレーショナルまたはオブジェクト指向データベース、テーブル、または当技術分野で周知の他の任意のデータ構造の形で維持することができる。
【００２１】
図３は各論理ボリューム・レコード５０で維持される情報を示す。この図で、論理ボリューム・レコード５０は、テープ・カートリッジ６ａ、６ｂ、．．．６ｇに格納される各論理グループごとに維持され、以下の各項目を含む。
ＩＤ５２：論理ボリュームの識別子。
現在の物理ボリューム５４：論理ボリュームを含む１つまたは複数の物理ボリューム（テープ・カートリッジ６ａ、６ｂ、．．．６ｊ）を示す。論理ボリュームは、複数の物理ボリュームにまたがることができる。また、複数の論理ボリュームを単一の物理ボリュームに格納することもできる。論理ボリュームに割り当てられるプールは、その論理ボリュームを含む現在の物理ボリュームに対応するストレージ・プールから決定することができる。
物理ボリューム上のロケーション５６：論理ボリュームを含む１つまたは複数の物理ボリューム上での論理ボリュームのロケーションを示す。
【００２２】
図４は、各物理ボリューム・レコード７０における情報を示す。この場合、物理ボリューム・レコード７０は、各物理ボリュームごと、またはテープ・サーバ２がテープ・ドライブを介してアクセス可能である各テープ・カートリッジ６ａ、６ｂ、．．．６ｊごとに維持される。各物理ボリューム・レコード７０は以下の項目を含む。
ＩＤ７２：物理ボリュームの一意の識別子を示す。
ホーム・プール７４：物理ボリュームが割り当てられたホーム・プールを示す。物理ボリューム（テープ・カートリッジ）が、あるプールから他のプールに移された場合には、ホーム・プールは、物理ボリュームが再割り当てされたターゲット・プールに再割り当てされる。「借用（borrow）」の場合は、現在のプールだけを変更し、ホーム・プールはそのまま維持する。テープ・カートリッジが２回以上借用された場合は、ホーム・プールはやはり、スクラッチ・プールなどそのテープを最初に借用してきたプールと同一のプールを指定するが、現在のプールは変更される。
現在のプール７６：物理ボリュームが割り当てられている現在のプールを示す。物理ボリュームは、この現在のプールに対応するタイプのデータを格納する。
メディア・タイプ７８：物理ボリュームのメディア・タイプを示す。例えば、「Ｊ」や「Ｋ」などで示される。
ターゲット・プール８０：デフォルトでは、ターゲット・プールは示されない。このフィールドに既知のストレージ・プールが示されている場合、このフィールドは、物理ボリュームが移動動作待ち状態にあり、アクティブ・データがその物理ボリュームから空のテープにコピーされた後で、その物理ボリュームが指定されたターゲット・プールに移されることを示す。
優先レクラメーション８２：物理ボリュームに対するレクラメーションはスケジュール設定されたレクラメーション期間中に行われるが、この物理ボリュームにはレクラメーション処理される他のカートリッジより高いレクラメーション優先度が割り当てられる。その結果、この物理ボリュームは他のテープ・カートリッジがレクラメーション処理されるより前にレクラメーションされるようにスケジュール設定される。デフォルトで優先レクラメーションをオフにすることもできる。その場合、レクラメーションは通常にスケジュール設定されたレクラメーション期間中に、通常に割り当てられたレクラメーション優先度で行われることを示す。
インヒビット抑制レクラメーション・スケジュール８４：優先レクラメーション８２に優先レクラメーションが示されている場合に、このフィールドによりレクラメーションを即時、すなわちスケジュール設定されたレクラメーション期間以外のクリティカルな使用時間にレクラメーションが行われることになる場合でもスケジュール設定を行うよう示すことができる。このインヒビット・オプションが選択されていない場合、優先レクラメーションは通常にスケジュール設定されたレクラメーション期間中に行われる。
【００２３】
図５は、プール・レコード９０で維持される情報を示す。ただし、定義された各プールに対して１つのプール・レコード９０が存在する。このプール・レコードには以下の項目が含まれる。
ＩＤ９２：プールの一意の識別子を示す。このＩＤは、プールに格納されたデータのタイプまたはクラスを示す記述的な名前、例えば、会計データ、マーケティング・データ、研究開発、アーカイブ・データ、高セキュリティ・ユーザなどの名前を有することができる。プール・レコード９０がスクラッチ・プール用に維持される場合、スクラッチ・プールは一意のスクラッチ・プール識別子を有することができる。
ボロー（借用：Borrowing）９４：このプールが、スクラッチ・プールから物理ボリューム（テープ・カートリッジ）を借用できるかどうかを示す。
リターン・ポリシー９６：テープがレクラメーション処理されたとき、または解放されたとき、すなわちテープにアクティブ・データが存在しなくなったときに、あるプールから他のプールに移された物理ボリューム（テープ・カートリッジ）をホーム・プールに戻す必要があるかどうかを示す。
メディア・タイプ９８：そのプールに対する物理ボリュームのメディア・タイプを示すフィールド。
レクラメーション閾値１００：プールのレクラメーション閾値を示す。この閾値は、あるプール内のテープに対してレクラメーション処理を起動する容量使用可能比率を示すものである。そのプール内のテープ（物理ボリューム）は、テープのアクティブ・データがそのプールのレクラメーション閾値を下回った場合にレクラメーション処理される。各プールは、異なるレクラメーション閾値を有することができる。
ターゲット・レクラメーション・プール１０２：レクラメーション中に、現在のプールのテープ・カートリッジからデータがコピーされる、コピー先のストレージ・プールを示す。例えば、レクラメーションが行われるとき、あるストレージ・プール内のカートリッジのデータは、レクラメーション・プール・フィールド１０２で示されたストレージ・プール内のテープ・カートリッジに移される。これにより、異なるレクラメーション閾値でレクラメーション処理される他のストレージ・プールにデータを移すことが可能になる。フィールド１０２に他のストレージ・プールが示されていない場合、またはフィールド１０２にデフォルトの「未定義」値が示されている場合は、データは同じストレージ・プールにレクラメーション処理される。
【００２４】
レクラメーション閾値１００およびターゲット・レクラメーション・プール１０２の値はどちらも、定義されたストレージ・プールのシステム管理者によって設定することができる。
【００２５】
ある実装形態では、プール・レコード１８に示されるレクラメーション閾値１００は、個々のプールごとに異なるレベルに設定することができる。したがって、あるプールのレクラメーション閾値を他のプールより低く設定することができる。一実装形態では、データを最初に低いレクラメーション閾値１００を有するストレージ・プールに格納しておき、ターゲット・レクラメーション・プール１０２を、それより高いレクラメーション閾値１００を有する次のストレージ・プールに示すことができる。例えば、データを最初に、低いレクラメーション閾値、例えば１０％の閾値を有するストレージ・プールＡ内のテープに格納しておくことができる。ストレージ・プールＡのターゲット・レクラメーション・プール１０２には、高いレクラメーション閾値、例えば９０％の閾値を有するストレージ・プールＢを示すことができる。したがって、ストレージ・プールＡ内のテープからレクラメーション処理された論理ボリュームはストレージ・プールＢ内のテープに格納される。この結果、レクラメーションによって、あるストレージ・プールから他のストレージ・プールに論理ボリュームが移動させられる。
【００２６】
低いレクラメーション閾値のストレージ・プールのテープから高いレクラメーション閾値のストレージ・プールのテープにデータを移動させる実装形態においては、ストレージ容量使用可能比率が最適化されるとともに、レクラメーション動作のテープ・サーバ２、３２性能への影響が、以下の理由で最小限に抑えられる。第１のストレージ・プールＡに格納するデータには、頻繁に更新され、したがって速いペースで期限が切れるデータ、および更新頻度の低いデータ、例えばアーカイブ・データなどを含めることができる。第１のストレージ・プールＡのレクラメーション閾値を低く設定することで、レクラメーションが、アーカイブ・データなどアクセス頻度の低いデータに対して行われることが保証される。その理由は、アクセス頻度が高いデータのほとんどは、低いレクラメーション閾値に達する前に期限が切れる（すなわち、修正される）ので非アクティブになるからである。したがって、低いレクラメーション閾値を有するストレージ・プールＡでのレクラメーションにより、最もアクセス頻繁の低い（アーカイブ）データがストレージ・プールＢに移される可能性が高くなる。ストレージ・プールＢのデータは、より高いレクラメーション閾値でレクラメーション処理されて、比較的アクセス頻度の低いデータのストレージ容量使用可能比率が高くなる。しかし、たとえストレージ・プールＢのレクラメーション閾値が高い場合でも、レクラメーションによって実質的にテープ・サーバ４、３４の性能が低下することはない。その理由は、ストレージ・プールＢにあるデータはアクセス頻度が低く、したがって頻繁に期限が切れて、高いレクラメーション閾値で性能を低下させるような頻度でレクラメーションを起動する可能性が低いからである。
【００２７】
異なるレクラメーション閾値を有する複数のストレージ・プールを使用することによって、最初のストレージ・プールでは使用頻度の高いデータを効果的に除去して、アクセス頻度の低いデータを次のストレージ・プールに移動させ、次のストレージ・プールでは、高いレクラメーション閾値を使用してストレージ容量使用率を高めるとともに、性能への影響を最小限に抑えることができる。
【００２８】
他の実装形態では、３つ以上のプールを介してデータをレクラメーション処理することもできる。この場合、データが移される先の各プールはレクラメーション閾値が徐々に高くなっていて、アクセス頻度の低いデータがストレージ容量を使用できる比率が徐々に高くなる。このようにして、各ストレージ・プールでのレクラメーションによって比較的アクセス頻度の高いデータが除去され、その結果そのストレージ・プールでの比較的使用頻度の低いデータを次のストレージ・プールに移動させることによって、より高いストレージ容量使用率でテープに格納する。
【００２９】
図６は、ストレージ・プール８ａ、８ｂの一方からテープ６ａ、６ｂ、．．．６ｇを選択し、レクラメーション処理を行うために、テープ・コントローラ１０に実装されたロジックを示す。制御はブロック２００で始まる。このブロックでテープ・コントローラ１０は、ストレージ・プール８ａ、８ｂの一方を選択し、そのプールでテープのレクラメーション処理を行う。この処理は、空のテープ（物理ボリューム）６ｈ、６ｉ、６ｊを含むスクラッチ・プール８ｃを除いた各ストレージ・プール８ａ、８ｂに対して行われる。ブロック２０２〜２０８で、選択されたストレージ・プール８ａ、８ｂの各テープ・カートリッジｉごとにループが実行される。（ブロック２０４で）アクティブ・データの割合が、選択されたストレージ・プール８ａ、８ｂのプール・レコード９０（図５）に示されたレクラメーション閾値１００以下である場合は、テープ・コントローラ１０は、（ブロック２０６で）テープｉに対するレクラメーション・プロセスを呼び出す。この場合テープｉは、あらかじめ指定されたレクラメーション期間中に図７のロジックに従ってレクラメーション処理されることになる。このレクラメーション期間は、通常は使用頻度の低い時間帯に設定される。レクラメーション処理されるテープを指定した後で、またはテープｉのアクティブ・データがレクラメーション閾値１００以下に下がっていない場合に、制御はブロック２０８に進みレクラメーション処理のために選択されたプールで次のテープを検討する。
【００３０】
先に述べたように、レクラメーション閾値１００は各個別のストレージ・プール８ａ、８ｂに対して異なる値を設定できるので、個々のストレージ・プール内の各テープを、各プールのレクラメーション閾値に応じて異なる頻度でレクラメーション処理することができる。
【００３１】
図７は、図６のロジックに従ってレクラメーション処理されるテープに対してレクラメーションを実施するためにテープ・コントローラ１０に実装されたロジックを示す。ブロック２５０で制御が開始され、レクラメーション処理の初期化が行われる。レクラメーション処理は定期的にスケジュール設定されたレクラメーション期間中に行われる。多くの場合レクラメーション処理は、通常のテープ・ドライブ動作を妨げないように、経験的にテープ・サーバ２、３２の使用率が低下する時間枠に行われるようスケジュール設定される。あるいはレクラメーションは、テープ・コントローラ１０が、図６でテープ・カートリッジ６ａ、６ｂ、．．．６ｇをレクラメーション処理すると決めた直後に行うこともできる。ブロック２５２〜２６６で、レクラメーション処理される各テープ（物理ボリューム）ｉに対してループが実行される。（ブロック２５４で）テープｉのストレージ・プールが、テープｉの物理ボリューム・レコード７０（図４）の現在のプール７６フィールドから決定される。（ブロック２５６で、）テープｉを含むこの決定されたストレージ・プールのプール・レコード９０が、テープｉを含むストレージ・プールとは異なるターゲット・レクラメーション・プール１０２を有している場合は、（ブロック２５８で）テープ・コントローラ１０は、ターゲット・レクラメーション・プール・フィールド１０２に示されたストレージ・プールのターゲット・テープにアクセスする。そうでない場合、すなわちターゲット・レクラメーション・プール・フィールド１０２に他のストレージ・プールへのレクラメーション処理が示されていない場合は、（ブロック２６０で）テープ・コントローラ１０は、テープｉの現在のストレージ・プールのターゲット・テープにアクセスする。空のターゲット・テープにアクセスした後で、（ブロック２６２で）テープ・コントローラ１０は、テープｉからそのアクセスしたターゲット・テープにデータを移動しまたは順に書き込み、次いで（ブロック２６４で）テープｉを空のテープとして解放する。次に、（ブロック２６６で）制御はブロック２５２に戻って、レクラメーションがスケジュール設定されている次のテープに対するレクラメーションを実施する。
【００３２】
前述のように、ストレージ管理者は、データを最初に比較的低いレクラメーション閾値を有するストレージ・プールに格納して、アクセス頻度の高いデータ、すなわち速いペースで有効期限が切れるデータを除去し、次いでそのデータを最初のストレージ・プールから、より高いレクラメーション閾値を有する次のストレージ・プールにレクラメーション処理する。次のストレージ・プールはより高いレクラメーション閾値を有しているが、データがより頻繁にレクラメーション処理されることはない。その理由は、次のストレージ・プールのデータがより遅いペースで期限切れになるので、レクラメーション閾値に達するまでにより長い時間かかるからである。さらに、前述のように、次のストレージ・プールが、フィールド１０２でさらに次のレクラメーション・ストレージを指定して、各次のプールが以前のプールより高いレクラメーション閾値を持つ一連の異なるストレージ・プールを介して、データのレクラメーション処理を行うこともできる。
【００３３】
他の実装形態では、低いレクラメーション閾値を有する最初のストレージ・プールと高いレクラメーション閾値の次に続くプールとは異なる容量のテープを有することができる。一実装形態では、初期ストレージ・プールが「Ｊ」テープを備え、次のストレージ・プールが「Ｋ」テープを備えることができる。この場合、「Ｋ」メディア・テープの方が大きいストレージ容量を有する。このように、低い閾値での最初のレクラメーションは、データをより小さな容量のテープに置くことによってより頻繁に行われ、それによってより効率的にリコール（recall）を提供する。アクセス頻度の少ないデータ、例えばアーカイブ・データなどを次のストレージ・プールである大容量テープに格納することで、データをより高い使用率で大容量テープにパックすることによって体積効率を高める。
【００３４】
記載の実装形態は、システム性能を阻害するような頻度でレクラメーションを起動することを避けるような方法により高いレクラメーション閾値の使用を可能にすることによって、ストレージ容量使用率を高める技術を提供する。
【００３５】
ストレージ・プールの物理ボリュームをレクラメーション処理する記載の技術は、標準的なプログラミングおよび／またはエンジニアリング技術を使用して、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する方法、装置、または製品として実装できる。「製品（article of manufacture）」という用語は、本明細書ではハードウェア・ロジック（例えば、集積回路チップ、ＰＧＡ（プログラマブル・ゲート・アレイ）、ＡＳＩＣ（特定用途向け集積回路）他）、またはコンピュータ可読媒体、例えば磁気記憶媒体（例えば、ハード・ディスク・ドライブ、フロッピー・ディスク、テープ他）、光記憶装置（ＣＤ−ＲＯＭ、光ディスク他）、揮発および不揮発メモリ装置（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジック他）などの形で実装されたコードまたはロジックを意味する。コンピュータ可読媒体上のコードはプロセッサによってアクセスされ実行される。好ましい実施形態が実装されたコードにはさらに、伝送メディアを介して、またはネットワーク上のファイル・サーバを介してアクセス可能である。この場合、コードが実装された製品には、ネットワーク伝送ライン、無線伝送メディアなどの伝送媒体、無線波、赤外信号など空間を介して伝えられる信号などを含めることができる。したがって、「製品」にはコードが実施された媒体を含めることができる。さらに「製品」には、コードが実施され、処理され、実行される、ハードウェア・コンポーネントとソフトウェア・コンポーネントの組合せを含めることもできる。もちろん、当業者なら、この構成に本発明の範囲を逸脱することなく多くの修正形態を実施し得ること、およびこの製品に、情報が記録された当技術分野で周知の任意の媒体を含め得ることを理解されよう。
【００３６】
記載の実装形態では、レクラメーションなど本明細書に記載のストレージ・プール管理動作の対象となる物理ボリュームはテープ・カートリッジの形で格納されていた。しかし、代替実装形態では、ストレージ・プール管理動作の対象となる物理ボリュームを、光ディスク、ハード・ディスク・ドライブ、ＮＶＲＡＭ（不揮発性ランダム・アクセス・メモリ）デバイスなど、当技術分野で周知の任意の不揮発性ストレージ・ユニット媒体に格納することができる。この代替ストレージ・ユニット媒体に対し、サーバは、その代替ストレージ・ユニット・コンポーネント中のデータにアクセスするための、必要なドライブまたはインターフェースを含むことになる。
【００３７】
記載の実装形態では、ターゲット・レクラメーション・プール・フィールド１０２に示された次のストレージ・プールはそれぞれ、データの送り元である前のストレージ・プールより高いレクラメーション閾値を有する。しかし、代替実装形態では、データがレクラメーション処理される先である次のターゲット・ストレージ・プールは、それ以下のレクラメーション閾値を有することもできる。さらに、各次のターゲット・ストレージ・プールは、それ以前のいずれのターゲット・ストレージ・プールの閾値よりも高い、または低いレクラメーション閾値を有することもできる。
【００３８】
記載の実装形態では、テープ・カートリッジのデータが閾値量より少ない場合に、レクラメーション閾値は満たされる。代替実装形態では、代替の閾値および閾値測定を使用することもできる。
【００３９】
図３、４、および５に示したデータ構造は、特定の種類の情報を有する場合のレコードを示したものである。代替実装形態では、論理ボリューム、物理ボリューム、およびストレージ・プール・レコードは、図示のフィールドより少ない、それより多い、またはそれとは異なるフィールドを有することもできる。
【００４０】
他の実装形態では、図７のテープ選択シーケンスは、インデックスではなくテープ上のアクティブ・データの量に基づくこともできる。
【００４１】
記載の実装形態では、ｎやｉなど特定の変数を使用して、各要素の特定の番号を示す整数値を表す。これらの変数は、同一のまたは異なる要素を有する他の例で使用されるときには、任意の数を表すことができる。
【００４２】
図６および７に示されたロジックは、ある特定の順序で行われる特定のイベントを示す。代替実装形態では、特定の動作を異なる順序で、その動作を修正して、あるいはその動作を削除して実施できる。さらに、上記のロジックにいくつかのステップを追加して、やはり記載の実装形態に従うようにすることもできる。さらに、本明細書に記載の動作は、順次処理することも、あるいはいくつかの動作を平行処理することもできる。さらに、各動作は単一の処理ユニットによっても、あるいは分散処理ユニットによっても実施することができる。
【００４３】
図８は、ホスト４ａ、４ｂ．．．４ｎやテープ・サーバ２（図１）に使用できるコンピュータ・アーキテクチャ６００の一実装形態を示す。このアーキテクチャ６００は、プロセッサ６０２（例えば、マイクロプロセッサ）、メモリ６０４（例えば、揮発性メモリ装置）、およびストレージ６０６（例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性記憶装置）を含むことができる。ストレージ６０６は内部ストレージ・デバイス、または外部接続もしくはネットワーク・アクセス可能なストレージを含むことができる。ストレージ６０６中の各プログラムは、当技術分野で周知の方法でメモリ６０４にロードされ、プロセッサ６０２によって実行される。このアーキテクチャはさらに、ネットワークによる通信を可能にするネットワーク・カード６０８を含むこともできる。入力装置６１０は、ユーザ入力をプロセッサ６０２に提供するために使用され、例えばキーボード、マウス、スタイラスペン、マイクロフォン、タッチ・センシティブ表示スクリーン、あるいは当技術分野で周知の他の任意の起動または入力機構を含むことができる。出力装置６１２は、プロセッサ６０２や他のコンポーネントから送信された情報を提供できるものであり、例えば表示モニタ、プリンタ、ストレージなどの装置である。
【図面の簡単な説明】
【００４４】
【図１】本発明の各態様が実装されるコンピュータ環境を示す図である。
【図２】本発明の各態様が実装される代替のコンピュータ環境を示す図である。
【図３】本発明の実装形態による、論理ボリュームの情報を維持するデータ構造を示す図である。
【図４】本発明の実装形態による、物理ボリュームの情報を維持するデータ構造を示す図である。
【図５】本発明の実装形態による、記憶プールの情報を維持するデータ構造を示す図である。
【図６】本発明の実装形態による、テープ・レクラメーション動作を実施するためのロジックを示す図である。
【図７】本発明の実装形態による、テープ・レクラメーション動作を実施するためのロジックを示す図である。
【図８】ホスト、テープ・サーバ、その他のコンピュータ装置などのコンピュータ環境における各コンピュータ・コンポーネントのアーキテクチャを示す図である。
【図１】
2005537554.tif 000003
【図２】
2005537554.tif 000004
【図３】
2005537554.tif 000005
【図４】
2005537554.tif 000006
【図５】
2005537554.tif 000007
【図６】
2005537554.tif 000008
【図７】
2005537554.tif 000009
【図８】
2005537554.tif 000010
【手続補正書】
【提出日】平成16年10月16日(2004.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージ・ユニット（６ａ、６ｂ）のデータを管理する方法であって、
複数のストレージ・ユニットの複数のストレージ・プールへの割当てを示すストレージ・プール情報（９０）を維持するステップであって、各プールには０台またはそれ以上のストレージ・ユニットが割り当てられ、あるストレージ・プールに関連するデータは前記ストレージ・プールに割り当てられたストレージ・ユニットに格納され、各プールの前記ストレージ・プール情報が閾値（１００）とターゲット・ストレージ・プール（１０２）とを示し、前記ターゲット・ストレージ・プールは前記ストレージ・プールと異なることが可能であり、前記ストレージ・プールのうちの少なくとも２つが異なる閾値を有する、維持するステップと、
あるソース・ストレージ・プールに関連する１つのストレージ・ユニットを選択するステップと、
前記ソース・ストレージ・プールの前記ストレージ・プール情報から前記閾値を決定するステップと、
前記選択されたストレージ・ユニットが前記決定された閾値を満たしているかどうかを判断するステップと、
前記選択されたストレージ・ユニットが前記決定された閾値を満たし、前記ソース・ストレージ・プールの前記ストレージ・プール情報が前記ソース・ストレージ・プールと異なるターゲット・ストレージ・プールを示している場合に、前記ターゲット・ストレージ・プールのターゲット・ストレージ・ユニットを選択するステップと、
前記選択されたストレージ・ユニットから前記選択されたターゲット・ストレージ・ユニットにデータをコピーするステップと
を含む方法。
【請求項２】
前記選択されたストレージ・ユニットのアクティブ・データの量が前記決定された閾値よりも少ない場合に、前記選択されたストレージ・ユニットが前記閾値を満たす、請求項１に記載の方法。
【請求項３】
前記ソース・ストレージ・プールの前記ストレージ・プール情報に他のターゲット・ストレージ・プールが示されていない場合には、前記ソース・ストレージ・プールから前記ターゲット・ストレージ・ユニットを選択するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記ソース・ストレージ・プールの前記閾値が、前記ターゲット・ストレージ・プールの前記閾値より低い、請求項１に記載の方法。
【請求項５】
前記ソース・ストレージ・プールの前記ストレージ・ユニットが、前記ターゲット・ストレージ・プールの前記ストレージ・ユニットより小さいストレージ容量を有する、請求項１に記載の方法。
【請求項６】
前記ソース・ストレージ・プールが第１のストレージ・プールを備え、前記ターゲット・ストレージ・プールが第２のストレージ・プールを備え、第３のストレージ・プールが前記第２のストレージ・プールの前記ストレージ・プール情報のターゲット・ストレージ・プールとして識別され、それによって前記第２のストレージ・プールが前記閾値に達したときに、前記第２のストレージ・プールの１つの選択されたストレージ・ユニットのデータが前記第３のストレージ・プールに移される、請求項１に記載の方法。
【請求項７】
前記ソース・ストレージ・プールがストレージ・デバイスから転送されたデータを格納する、請求項１に記載の方法。
【請求項８】
前記ストレージ・デバイスが前記ストレージ・ユニットより速いデータ・アクセス速度を有する、請求項７に記載の方法。
【請求項９】
前記ストレージ・ユニットがテープ・カートリッジを備え、前記ストレージ・デバイスが、テープ入／出力コマンドを使用してデータが書き込まれるテープ・バッファとして動作する、請求項７に記載の方法。
【請求項１０】
前記ストレージ・ユニットが仮想テープ・サーバにテープ・カートリッジを備え、前記ストレージ・デバイスが前記仮想テープ・サーバに仮想テープ・バッファを備える、請求項７に記載の方法。
【請求項１１】
前記ストレージ・ユニットがシーケンシャル・アクセス・テープ・カートリッジを備える、請求項１に記載の方法。
【請求項１２】
データを管理するシステムであって、
ストレージ・ユニット（６ａ、６ｂ）と、
複数のストレージ・ユニットの複数のストレージ・プール（８ａ、８ｂ）への割当てを示すストレージ・プール情報（９０）を維持する手段であって、各プールに０台またはそれ以上のストレージ・ユニットが割り当てられ、あるストレージ・プールに関連するデータが前記ストレージ・プールに割り当てられたストレージ・ユニットに格納され、各プールの前記ストレージ・プール情報が閾値（１００）およびターゲット・ストレージ・プール（１０２）を示し、前記ターゲット・ストレージ・プールが前記ストレージ・プールと異なることが可能であり、前記ストレージ・プールのうちの少なくとも２つが異なる閾値を有する、維持する手段と、
あるソース・ストレージ・プールに関連する１つのストレージ・ユニットを選択する手段と、
前記ソース・ストレージ・プールの前記ストレージ・プール情報から前記閾値を決定する手段と、
前記選択されたストレージ・ユニットが前記決定された閾値を満たすかどうかを判断する手段と、
前記選択されたストレージ・ユニットが前記決定された閾値を満たし、前記ソース・ストレージ・プールの前記ストレージ・プール情報が前記ソース・ストレージ・プールと異なるターゲット・ストレージ・プールを示している場合に、前記ターゲット・ストレージ・プールのターゲット・ストレージ・ユニットを選択する手段と、
前記選択されたストレージ・ユニットから前記選択されたターゲット・ストレージ・ユニットにデータをコピーする手段と
を備えるシステム。
【請求項１３】
前記選択されたストレージ・ユニットのアクティブ・データの量が前記決定された閾値よりも少ない場合に、前記選択されたストレージ・ユニットが前記閾値を満たす、請求項１２に記載のシステム。
【請求項１４】
前記ソース・ストレージ・プールの前記ストレージ・プール情報に他のターゲット・ストレージ・プールが示されていない場合には、前記ソース・ストレージ・プールから前記ターゲット・ストレージ・ユニットを選択する手段をさらに含む、請求項１２に記載のシステム。
【請求項１５】
前記ソース・ストレージ・プールの前記閾値が、前記ターゲット・ストレージ・プールの前記閾値より低い、請求項１２に記載のシステム。
【請求項１６】
前記ソース・ストレージ・プールの前記ストレージ・ユニットが、前記ターゲット・ストレージ・プールの前記ストレージ・ユニットより小さいストレージ容量を有する、請求項１２に記載のシステム。
【請求項１７】
前記ソース・ストレージ・プールが第１のストレージ・プールを備え、前記ターゲット・ストレージ・プールが第２のストレージ・プールを備え、第３のストレージ・プールが前記第２のストレージ・プールの前記ストレージ・プール情報のターゲット・ストレージ・プールとして識別され、それによって前記第２のストレージ・プールが前記閾値に達したときに、前記第２のストレージ・プールの１つの選択されたストレージ・ユニットのデータが前記第３のストレージ・プールに移される、請求項１２に記載のシステム。
【請求項１８】
前記ソース・ストレージ・プールがストレージ・デバイスから転送されたデータを格納する、請求項１２に記載のシステム。
【請求項１９】
前記ストレージ・デバイスが、前記ストレージ・ユニットより速いデータ・アクセス速度を有する、請求項１８に記載のシステム。
【請求項２０】
前記ストレージ・ユニットがテープ・カートリッジを備え、前記ストレージ・デバイスがテープ入／出力コマンドを使用してデータが書き込まれるテープ・バッファとして動作する、請求項１９に記載のシステム。
【請求項２１】
前記ストレージ・ユニットが仮想テープ・サーバにテープ・カートリッジを備え、前記ストレージ・デバイスが前記仮想テープ・サーバに仮想テープ・バッファを備える、請求項１８に記載のシステム。
【請求項２２】
前記ストレージ・ユニットがシーケンシャル・アクセス・テープ・カートリッジを備える、請求項１２に記載のシステム。
【請求項２３】
コンピュータ・システム上で実行されるとき、請求項１ないし１１のいずれかに記載の方法を実施するよう前記コンピュータ・システムに命令を出す、コンピュータ・プログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・ユニット間でのデータの移動に関する。
【背景技術】
【０００２】
テープ・ライブラリ・システムにおいて、テープ・コントローラはテープ・ストレージ・ユニットの使用率を高めるためにレクラメーション（再利用：reclamation）処理を実施する。レクラメーション処理には、非アクティブ・データとアクティブ・データの両方を有する１つまたは複数のテープからアクティブ・データだけを有する少数のテープにアクティブ・データをコピーすることが含まれる。データがコピーされた元のテープは、次いで使用可能なテープからなるスクラッチ（消去用）プールに追加される。今後のデータを格納するために、そのプールからテープを選択し使用することができる。空のテープはスクラッチ・プールに戻すことも、現在のプールで保持して専用に使用することもできる。この処理は、アクティブ・データを複数のテープから、より大きな比率でアクティブ・データを格納する単一のテープに集約することによってストレージ容量使用率（storagecapacity utilization）を高める。レクラメーションが必要なのは、データが修正されると様々なテープ上の旧バージョンのデータが期限切れまたは非アクティブになるからである。非アクティブ・データとアクティブ・データの両方を含むテープは、完全に使用されることはない。その理由は、データがシーケンシャルに書き込まれているので、単純に非アクティブ・データをアクティブ・データに置き換えることができないからである。
【０００３】
あるテープのアクティブ・データの量がレクラメーション閾値に達すると、そのテープのレクラメーションがスケジュール設定される。テープの使用率を最適化するには、レクラメーション閾値をより高いレベルに設定して、低い使用率の複数のテープから高い使用率の単一のテープにデータをより頻繁に集約すればよい。しかし、レクラメーション処理は、かなりのテープ・ライブラリ・リソースを消費してデータをテープからテープに移動するので、他のテープ・ライブラリ動作に影響を与える可能性がある。例えば、レクラメーション中に行われるデータ移動により、階層的ストレージ管理（ＨＳＭ）システムにおいて、ハード・ディスク・ドライブ・アレイなど高速アクセスのストレージ・デバイスからテープなど低速のストレージ・デバイスにデータをマイグレーションする際に行われる、テープへのデータ移動が妨げられる恐れがある。テープの使用率を高めるためにレクラメーション閾値をより高いレベルに設定するとレクラメーション処理の頻度が増し、それによってかなりのテープ・ライブラリ・リソースが消費されることになり、例えば階層的ストレージ管理システムでテープ・ライブラリが使用されるときに、データ・マイグレーションなど他のテープ・ライブラリ動作が妨げられる恐れがある。
【０００４】
一方、レクラメーション閾値を低く設定すると、アクティブ・データの量がかなり低いレベルにまで下がらないとレクラメーションが始まらないので、レクラメーションの頻度が下がる。レクラメーションの頻度が下がると、テープ・ライブラリ・リソースの消費が減り、ディスクからテープへのデータ・マイグレーションなど他のテープ・ライブラリ動作との干渉が最小限に抑えられる。しかし、レクラメーションの頻度を下げると、テープ・ストレージ容量使用率がより低い閾値レベルに下がるまでレクラメーションが実施されないので、テープはストレージ容量使用可能比率が低いままの状態になる恐れがある。ストレージ容量使用可能比率が低下した場合、データは容量使用可能比率の低い多数のテープに分散される。
【０００５】
したがって、テープ・ライブラリ性能とストレージ容量使用可能比率の間には常にトレードオフが存在するので、レクラメーション閾値をどの程度の値にするかを決定する際には、このことを考慮する必要がある。
【０００６】
米国特許第５８７５４８１号（ＩＢＭ）、１９９９年２月２３日には、データ・ストレージ・サブシステムが開示されており（３欄、５７〜６０行）、そのサブシステムでは複数の入力データ・ストレージ・ボリュームから１つまたは複数の出力データ・ストレージ・ボリュームにその時点で有効なデータがコピーされる。
【０００７】
米国特許第５５８４００８号（株式会社日立製作所）、１９９６年１２月１０日には、ストレージ・システムが示されており（１欄１２〜２０行、図１）、そのシステムでは複数のストレージ・デバイスが２つのプールに分割される（２欄６２行〜３欄４行）。少なくとも所定の時間アクセスされていないデータは第１のプールから第２のプールに移されて（３欄４９〜５５行）、より最近に使用されたデータのためにより多くの空間を提供する。このようにして、ホストから直接アクセスできる第１のプールのデータへのアクセス効率を高める（２欄４６〜５４行）。
【特許文献１】米国特許第５８７５４８１号
【特許文献２】米国特許第５５８４００８号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このような理由から当技術分野では、ストレージ・システムにおいてデータ・レクラメーションを処理するための改良された技術が求められている。
【課題を解決するための手段】
【０００９】
ストレージ・ユニットのデータを管理するための、請求項１に記載の方法ならびに対応するシステムおよびプログラムが提供される。
【００１０】
ソース・ストレージ・プールのストレージ・ユニットは、ターゲット・ストレージ・プールのストレージ・ユニットより少ないストレージ容量を有することが好ましい。
【００１１】
ソース・ストレージ・プールは第１のストレージ・プールを備え、ターゲット・ストレージ・プールは第２のストレージ・プールを備え、第３のストレージ・プールは第２のストレージ・プールのストレージ・プール情報中のターゲット・ストレージ・プールとして識別され、それによって、第２のストレージ・プール内の１つの選択されたストレージ・ユニットが第２のストレージ・プールの閾値に達したときに、そのユニットからのデータが第３のストレージ・プールに移されることが好ましい。
【００１２】
記載の実装形態は、ストレージ・プールのデータを管理し、あるソース・プールのストレージ・ユニットのデータを他のターゲット・ストレージ・プールのストレージ・ユニットにレクラメーション処理する（reclaim）ための技術を提供する。この場合、ソース・ストレージ・プールおよびターゲット・ストレージ・プールは異なる属性を有することができる。
【００１３】
次に図面を参照すると、全図を通し類似の参照番号は類似の部品を表す。
【発明を実施するための最良の形態】
【００１４】
図１は本発明の各態様を実装できるコンピュータ環境を示す。テープ・サーバ２は各ホスト・システム４ａ、４ｂ、．．．４ｎに、（物理ボリュームとも呼ばれる）テープ・カートリッジ６ａ、６ｂ、６ｃ、６ｄ、６ｅ、６ｆ、６ｇに格納された論理ボリュームへのアクセスを提供する。ある実装形態では、テープ・カートリッジ６ａ、６ｂ、．．．６ｇはプール８ａ、８ｂと呼ばれる論理グループにまとめられる。テープ・コントローラ１０は、本明細書に記載の実装形態による、各プール８ａ、８ｂのテープ・カートリッジ６ａ、６ｂ、．．．６ｇへのアクセスを管理しレクラメーションを実施するためのハードウェアおよび／またはソフトウェアを含む。スクラッチ・プール８ｃは、テープ・カートリッジ６ｈ、６ｉ、および６ｊを含む。このテープ・カートリッジは、空で（empty）、解放されており、あるプールの論理ボリュームに追加のテープ・ストレージが必要な場合には、他のプールで使用することができる。
【００１５】
図１には、いくつかのテープ・カートリッジおよびストレージ・プールが示されているが、任意の数のテープ・カートリッジおよびストレージ・プールを使用することができる。また、ストレージ・プールには任意の数のテープ・カートリッジを含めることができる。テープ・サーバ２は自動化されたテープ・ライブラリを備え、テープ・カートリッジ６ａ、６ｂ、．．．６ｊにアクセスし１つまたは複数のアクセス可能なテープ・ドライブ（図示せず）にロードするためのグリッパ・アセンブリ（図示せず）を含み、各テープ・カートリッジを格納するためのカートリッジ・スロット（図示せず）を含むことができる。さらに他の実装形態では、テープ・カートリッジをテープ・サーバ２からアクセス可能な１つまた複数のテープ・ドライブに手動でロードすることもできる。
【００１６】
テープ・サーバ２は、当技術分野で周知の任意のテープ・ライブラリまたはテープ・コントローラ・システムを備えることができる。テープ・カートリッジ６ａ、６ｂ、．．．６ｊは、ＤＬＴ（デジタル・リニア・テープ）やＬＴＯ（リニア・テープ・オープン）など、当技術分野で周知の任意の種類のシーケンシャル・アクセス磁気ストレージ・メディアを含むことができる。ホスト４ａ、４ｂ、．．．４ｎは、、パーソナル・コンピュータ、ラップトップ・コンピュータ、ワークステーション、メインフレーム、電話装置、ハンドヘルド・コンピュータ、サーバ、ネットワーク装置など、当技術分野で周知の任意のコンピュータ装置で構成することができる。ホスト４ａ、４ｂ、．．．４ｎは、直接ケーブル接続で、またはＬＡＮ（ローカル・エリア・ネットワーク）、ＷＡＮ（ワイド・エリア・ネットワーク）、ＳＡＮ（ストレージ・エリア・ネットワーク）、インターネット、イントラネットなどのネットワークを介してテープ・サーバ２に接続することができる。
【００１７】
図２は代替実装形態を示す。この図では、図１に示されたテープ・サーバ２が、階層ストレージ管理（ＨＳＭ）システムの中にテープ・サーバ３２として組み込まれている。ホスト３４ａ、３４ｂ、．．．３４ｎは、ストレージ・サーバ３８を介してディスク・アレイ３６に対する入／出力（Ｉ／Ｏ）動作を行う。ディスク・アレイ３６は、テープ・サーバ３２によって管理されるストレージ・メディアより高速なアクセスが可能な、単一のハード・ディスク・ドライブ、ＲＡＩＤ（Redundant Array of Independent Disks）、ＪＢＯＤ（Just a Bunch of Disks）、または任意の他の記憶メディアで構成することができる。ストレージ・サーバ３８は、複数のソースからの入／出力要求を処理するのに適した任意のサーバ・クラスのマシン、例えばエンタープライズ・クラスのストレージ・サーバなどで構成することができる。ある実装形態では、ストレージ・サーバ３８はストレージ管理ソフトウェア４０を含む。このソフトウェアは、ディスク・アレイ３６からテープ・サーバ３２へのデータ・マイグレーションを管理して、そのデータをストレージ・プール４２、例えば図１に示されたストレージ・プール８ａ、８ｂなどのテープ（物理ボリューム）に格納する。ある実装形態では、ストレージ管理ソフトウェア４０は、例えばＴｉｖｏｌｉ（登録商標）スペース・マネージャ製品に実装された階層ストレージ管理（ＨＳＭ）動作など、当技術分野で周知のＨＳＭアルゴリズムおよび技術を使用してディスク・アレイ３６からテープ・サーバ３２へデータをマイグレーションすることができる（Ｔｉｖｏｌｉは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である）。
【００１８】
他の実装形態では、ストレージ管理ソフトエア４０は、ホスト３４ａ、３４ｂ、．．．３４ｎがテープ・アクセス動作を使用してディスク・アレイ３６のデータにアクセスするための仮想テープ・サーバ機能を実装することができる。この場合、ディスク・アレイ３６は、低速アクセスのテープ・カートリッジ媒体に対する、テープ・ストレージ用大容量高速バッファとして動作する。ホスト３４ａ、３４ｂ、．．．３４ｎは、テープ入／出力コマンドを使用して、テープ論理ボリュームとしてのディスク・アレイのデータにアクセスすることができる。ストレージ管理ソフトウェア４０は、ＨＳＭアルゴリズムを使用してデータをディスク・アレイ３６からテープ・サーバ３２にマイグレーションさせる。ストレージ管理ソフトウェア４０は仮想テープ・サーバ環境を実装するために、当技術分野で周知の仮想テープ・サーバ・ソフトウェア、例えばＩＢＭ  ＴｏｔａｌＳｔｏｒａｇｅ（商標）仮想テープ・サーバ（ＴｏｔａｌＳｔｏｒａｇｅはＩＢＭの商標）などで使用されるソフトウェアを含むことができる。
【００１９】
したがって、レクラメーション動作を実施中のテープ・サーバ２、３２は、テープ動作を実施中のホストに直接接続することもできるし、またはＨＳＭマイグレーション、仮想テープ・サーバ・システム、バックアップ、その他ディスク・アレイ・レベルで実施されるデータ管理動作などの一部としてディスク・アレイからデータを受信することもできる。さらに、テープ・サーバ３２をストレージ・サーバ３８の内部に含めることもできる。
【００２０】
ある実装形態では、システム管理者は物理ボリュームを各プールに割り当てることによって、ある既定の基準に従ってテープを分類できるようにすることができる。例えばある組織では、組織内部の個々のユニットに対するテープ・カートリッジからなる個別のストレージ・プールを設けることができる。企業組織では、例えば、経理、マーケティング、財務、技術などの個々の部門ごとに個別のストレージ・プールを設けて、特定の部門のデータを、その特定のクラスのデータだけを格納するテープ・カートリッジに格納することもできる。あるいは、ストレージ・プールを異なる使用頻度を有するデータごとに定義することもできる。例えば、あるプールを最近修正またはアクセスされたデータ用とし、他のプールをアーカイブ・データまたはバックアップ・データ用に使用することもできる。さらに、異なるユーザ・グループ、例えば、高レベルのアクセス権を有するグループ、限定されたアクセス権を有するグループなどごとにプールを指定することもできる。したがって、ストレージ・プールを使用して、クラスまたはタイプ別に各テープ・カートリッジにグループ・データを割り当てることができる。
【００２１】
ある実装形態では、テープ・コントローラ１０は、メモリ１２内に論理ボリューム・レコード１４、物理ボリューム・レコード１６、およびプール・レコード１８を含むデータ構造を維持する。メモリ１２は、例えばＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリ・デバイス、または、例えばハード・ディスク・ドライブなどの不揮発性メモリで構成することができる。これらのレコードは、リレーショナルまたはオブジェクト指向データベース、テーブル、または当技術分野で周知の他の任意のデータ構造の形で維持することができる。
【００２２】
図３は各論理ボリューム・レコード５０で維持される情報を示す。この図で、論理ボリューム・レコード５０は、テープ・カートリッジ６ａ、６ｂ、．．．６ｇに格納される各論理グループごとに維持され、以下の各項目を含む。
ＩＤ５２：論理ボリュームの識別子。
現在の物理ボリューム５４：論理ボリュームを含む１つまたは複数の物理ボリューム（テープ・カートリッジ６ａ、６ｂ、．．．６ｊ）を示す。論理ボリュームは、複数の物理ボリュームにまたがることができる。また、複数の論理ボリュームを単一の物理ボリュームに格納することもできる。論理ボリュームに割り当てられるプールは、その論理ボリュームを含む現在の物理ボリュームに対応するストレージ・プールから決定することができる。
物理ボリューム上のロケーション５６：論理ボリュームを含む１つまたは複数の物理ボリューム上での論理ボリュームのロケーションを示す。
【００２３】
図４は、各物理ボリューム・レコード７０における情報を示す。この場合、物理ボリューム・レコード７０は、各物理ボリュームごと、またはテープ・サーバ２がテープ・ドライブを介してアクセス可能である各テープ・カートリッジ６ａ、６ｂ、．．．６ｊごとに維持される。各物理ボリューム・レコード７０は以下の項目を含む。
ＩＤ７２：物理ボリュームの一意の識別子を示す。
ホーム・プール７４：物理ボリュームが割り当てられたホーム・プールを示す。物理ボリューム（テープ・カートリッジ）が、あるプールから他のプールに移された場合には、ホーム・プールは、物理ボリュームが再割り当てされたターゲット・プールに再割り当てされる。「借用（borrow）」の場合は、現在のプールだけを変更し、ホーム・プールはそのまま維持する。テープ・カートリッジが２回以上借用された場合は、ホーム・プールはやはり、スクラッチ・プールなどそのテープを最初に借用してきたプールと同一のプールを指定するが、現在のプールは変更される。
現在のプール７６：物理ボリュームが割り当てられている現在のプールを示す。物理ボリュームは、この現在のプールに対応するタイプのデータを格納する。
メディア・タイプ７８：物理ボリュームのメディア・タイプを示す。例えば、「Ｊ」や「Ｋ」などで示される。
ターゲット・プール８０：デフォルトでは、ターゲット・プールは示されない。このフィールドに既知のストレージ・プールが示されている場合、このフィールドは、物理ボリュームが移動動作待ち状態にあり、アクティブ・データがその物理ボリュームから空のテープにコピーされた後で、その物理ボリュームが指定されたターゲット・プールに移されることを示す。
優先レクラメーション８２：物理ボリュームに対するレクラメーションはスケジュール設定されたレクラメーション期間中に行われるが、この物理ボリュームにはレクラメーション処理される他のカートリッジより高いレクラメーション優先度が割り当てられる。その結果、この物理ボリュームは他のテープ・カートリッジがレクラメーション処理されるより前にレクラメーションされるようにスケジュール設定される。デフォルトで優先レクラメーションをオフにすることもできる。その場合、レクラメーションは通常にスケジュール設定されたレクラメーション期間中に、通常に割り当てられたレクラメーション優先度で行われることを示す。
インヒビット抑制レクラメーション・スケジュール８４：優先レクラメーション８２に優先レクラメーションが示されている場合に、このフィールドによりレクラメーションを即時、すなわちスケジュール設定されたレクラメーション期間以外のクリティカルな使用時間にレクラメーションが行われることになる場合でもスケジュール設定を行うよう示すことができる。このインヒビット・オプションが選択されていない場合、優先レクラメーションは通常にスケジュール設定されたレクラメーション期間中に行われる。
【００２４】
図５は、プール・レコード９０で維持される情報を示す。ただし、定義された各プールに対して１つのプール・レコード９０が存在する。このプール・レコードには以下の項目が含まれる。
ＩＤ９２：プールの一意の識別子を示す。このＩＤは、プールに格納されたデータのタイプまたはクラスを示す記述的な名前、例えば、会計データ、マーケティング・データ、研究開発、アーカイブ・データ、高セキュリティ・ユーザなどの名前を有することができる。プール・レコード９０がスクラッチ・プール用に維持される場合、スクラッチ・プールは一意のスクラッチ・プール識別子を有することができる。
ボロー（借用：Borrowing）９４：このプールが、スクラッチ・プールから物理ボリューム（テープ・カートリッジ）を借用できるかどうかを示す。
リターン・ポリシー９６：テープがレクラメーション処理されたとき、または解放されたとき、すなわちテープにアクティブ・データが存在しなくなったときに、あるプールから他のプールに移された物理ボリューム（テープ・カートリッジ）をホーム・プールに戻す必要があるかどうかを示す。
メディア・タイプ９８：そのプールに対する物理ボリュームのメディア・タイプを示すフィールド。
レクラメーション閾値１００：プールのレクラメーション閾値を示す。この閾値は、あるプール内のテープに対してレクラメーション処理を起動する容量使用可能比率を示すものである。そのプール内のテープ（物理ボリューム）は、テープのアクティブ・データがそのプールのレクラメーション閾値を下回った場合にレクラメーション処理される。各プールは、異なるレクラメーション閾値を有することができる。
ターゲット・レクラメーション・プール１０２：レクラメーション中に、現在のプールのテープ・カートリッジからデータがコピーされる、コピー先のストレージ・プールを示す。例えば、レクラメーションが行われるとき、あるストレージ・プール内のカートリッジのデータは、レクラメーション・プール・フィールド１０２で示されたストレージ・プール内のテープ・カートリッジに移される。これにより、異なるレクラメーション閾値でレクラメーション処理される他のストレージ・プールにデータを移すことが可能になる。フィールド１０２に他のストレージ・プールが示されていない場合、またはフィールド１０２にデフォルトの「未定義」値が示されている場合は、データは同じストレージ・プールにレクラメーション処理される。
【００２５】
レクラメーション閾値１００およびターゲット・レクラメーション・プール１０２の値はどちらも、定義されたストレージ・プールのシステム管理者によって設定することができる。
【００２６】
ある実装形態では、プール・レコード１８に示されるレクラメーション閾値１００は、個々のプールごとに異なるレベルに設定することができる。したがって、あるプールのレクラメーション閾値を他のプールより低く設定することができる。一実装形態では、データを最初に低いレクラメーション閾値１００を有するストレージ・プールに格納しておき、ターゲット・レクラメーション・プール１０２を、それより高いレクラメーション閾値１００を有する次のストレージ・プールに示すことができる。例えば、データを最初に、低いレクラメーション閾値、例えば１０％の閾値を有するストレージ・プールＡ内のテープに格納しておくことができる。ストレージ・プールＡのターゲット・レクラメーション・プール１０２には、高いレクラメーション閾値、例えば９０％の閾値を有するストレージ・プールＢを示すことができる。したがって、ストレージ・プールＡ内のテープからレクラメーション処理された論理ボリュームはストレージ・プールＢ内のテープに格納される。この結果、レクラメーションによって、あるストレージ・プールから他のストレージ・プールに論理ボリュームが移動させられる。
【００２７】
低いレクラメーション閾値のストレージ・プールのテープから高いレクラメーション閾値のストレージ・プールのテープにデータを移動させる実装形態においては、ストレージ容量使用可能比率が最適化されるとともに、レクラメーション動作のテープ・サーバ２、３２性能への影響が、以下の理由で最小限に抑えられる。第１のストレージ・プールＡに格納するデータには、頻繁に更新され、したがって速いペースで期限が切れるデータ、および更新頻度の低いデータ、例えばアーカイブ・データなどを含めることができる。第１のストレージ・プールＡのレクラメーション閾値を低く設定することで、レクラメーションが、アーカイブ・データなどアクセス頻度の低いデータに対して行われることが保証される。その理由は、アクセス頻度が高いデータのほとんどは、低いレクラメーション閾値に達する前に期限が切れる（すなわち、修正される）ので非アクティブになるからである。したがって、低いレクラメーション閾値を有するストレージ・プールＡでのレクラメーションにより、最もアクセス頻繁の低い（アーカイブ）データがストレージ・プールＢに移される可能性が高くなる。ストレージ・プールＢのデータは、より高いレクラメーション閾値でレクラメーション処理されて、比較的アクセス頻度の低いデータのストレージ容量使用可能比率が高くなる。しかし、たとえストレージ・プールＢのレクラメーション閾値が高い場合でも、レクラメーションによって実質的にテープ・サーバ４、３４の性能が低下することはない。その理由は、ストレージ・プールＢにあるデータはアクセス頻度が低く、したがって頻繁に期限が切れて、高いレクラメーション閾値で性能を低下させるような頻度でレクラメーションを起動する可能性が低いからである。
【００２８】
異なるレクラメーション閾値を有する複数のストレージ・プールを使用することによって、最初のストレージ・プールでは使用頻度の高いデータを効果的に除去して、アクセス頻度の低いデータを次のストレージ・プールに移動させ、次のストレージ・プールでは、高いレクラメーション閾値を使用してストレージ容量使用率を高めるとともに、性能への影響を最小限に抑えることができる。
【００２９】
他の実装形態では、３つ以上のプールを介してデータをレクラメーション処理することもできる。この場合、データが移される先の各プールはレクラメーション閾値が徐々に高くなっていて、アクセス頻度の低いデータがストレージ容量を使用できる比率が徐々に高くなる。このようにして、各ストレージ・プールでのレクラメーションによって比較的アクセス頻度の高いデータが除去され、その結果そのストレージ・プールでの比較的使用頻度の低いデータを次のストレージ・プールに移動させることによって、より高いストレージ容量使用率でテープに格納する。
【００３０】
図６は、ストレージ・プール８ａ、８ｂの一方からテープ６ａ、６ｂ、．．．６ｇを選択し、レクラメーション処理を行うために、テープ・コントローラ１０に実装されたロジックを示す。制御はブロック２００で始まる。このブロックでテープ・コントローラ１０は、ストレージ・プール８ａ、８ｂの一方を選択し、そのプールでテープのレクラメーション処理を行う。この処理は、空のテープ（物理ボリューム）６ｈ、６ｉ、６ｊを含むスクラッチ・プール８ｃを除いた各ストレージ・プール８ａ、８ｂに対して行われる。ブロック２０２〜２０８で、選択されたストレージ・プール８ａ、８ｂの各テープ・カートリッジｉごとにループが実行される。（ブロック２０４で）アクティブ・データの割合が、選択されたストレージ・プール８ａ、８ｂのプール・レコード９０（図５）に示されたレクラメーション閾値１００以下である場合は、テープ・コントローラ１０は、（ブロック２０６で）テープｉに対するレクラメーション・プロセスを呼び出す。この場合テープｉは、あらかじめ指定されたレクラメーション期間中に図７のロジックに従ってレクラメーション処理されることになる。このレクラメーション期間は、通常は使用頻度の低い時間帯に設定される。レクラメーション処理されるテープを指定した後で、またはテープｉのアクティブ・データがレクラメーション閾値１００以下に下がっていない場合に、制御はブロック２０８に進みレクラメーション処理のために選択されたプールで次のテープを検討する。
【００３１】
先に述べたように、レクラメーション閾値１００は各個別のストレージ・プール８ａ、８ｂに対して異なる値を設定できるので、個々のストレージ・プール内の各テープを、各プールのレクラメーション閾値に応じて異なる頻度でレクラメーション処理することができる。
【００３２】
図７は、図６のロジックに従ってレクラメーション処理されるテープに対してレクラメーションを実施するためにテープ・コントローラ１０に実装されたロジックを示す。ブロック２５０で制御が開始され、レクラメーション処理の初期化が行われる。レクラメーション処理は定期的にスケジュール設定されたレクラメーション期間中に行われる。多くの場合レクラメーション処理は、通常のテープ・ドライブ動作を妨げないように、経験的にテープ・サーバ２、３２の使用率が低下する時間枠に行われるようスケジュール設定される。あるいはレクラメーションは、テープ・コントローラ１０が、図６でテープ・カートリッジ６ａ、６ｂ、．．．６ｇをレクラメーション処理すると決めた直後に行うこともできる。ブロック２５２〜２６６で、レクラメーション処理される各テープ（物理ボリューム）ｉに対してループが実行される。（ブロック２５４で）テープｉのストレージ・プールが、テープｉの物理ボリューム・レコード７０（図４）の現在のプール７６フィールドから決定される。（ブロック２５６で、）テープｉを含むこの決定されたストレージ・プールのプール・レコード９０が、テープｉを含むストレージ・プールとは異なるターゲット・レクラメーション・プール１０２を有している場合は、（ブロック２５８で）テープ・コントローラ１０は、ターゲット・レクラメーション・プール・フィールド１０２に示されたストレージ・プールのターゲット・テープにアクセスする。そうでない場合、すなわちターゲット・レクラメーション・プール・フィールド１０２に他のストレージ・プールへのレクラメーション処理が示されていない場合は、（ブロック２６０で）テープ・コントローラ１０は、テープｉの現在のストレージ・プールのターゲット・テープにアクセスする。空のターゲット・テープにアクセスした後で、（ブロック２６２で）テープ・コントローラ１０は、テープｉからそのアクセスしたターゲット・テープにデータを移動しまたは順に書き込み、次いで（ブロック２６４で）テープｉを空のテープとして解放する。次に、（ブロック２６６で）制御はブロック２５２に戻って、レクラメーションがスケジュール設定されている次のテープに対するレクラメーションを実施する。
【００３３】
前述のように、ストレージ管理者は、データを最初に比較的低いレクラメーション閾値を有するストレージ・プールに格納して、アクセス頻度の高いデータ、すなわち速いペースで有効期限が切れるデータを除去し、次いでそのデータを最初のストレージ・プールから、より高いレクラメーション閾値を有する次のストレージ・プールにレクラメーション処理する。次のストレージ・プールはより高いレクラメーション閾値を有しているが、データがより頻繁にレクラメーション処理されることはない。その理由は、次のストレージ・プールのデータがより遅いペースで期限切れになるので、レクラメーション閾値に達するまでにより長い時間かかるからである。さらに、前述のように、次のストレージ・プールが、フィールド１０２でさらに次のレクラメーション・ストレージを指定して、各次のプールが以前のプールより高いレクラメーション閾値を持つ一連の異なるストレージ・プールを介して、データのレクラメーション処理を行うこともできる。
【００３４】
他の実装形態では、低いレクラメーション閾値を有する最初のストレージ・プールと高いレクラメーション閾値の次に続くプールとは異なる容量のテープを有することができる。一実装形態では、初期ストレージ・プールが「Ｊ」テープを備え、次のストレージ・プールが「Ｋ」テープを備えることができる。この場合、「Ｋ」メディア・テープの方が大きいストレージ容量を有する。このように、低い閾値での最初のレクラメーションは、データをより小さな容量のテープに置くことによってより頻繁に行なわれ、それによってより効率的にリコール（recall）を提供する。アクセス頻度の少ないデータ、例えばアーカイブ・データなどを次のストレージ・プールである大容量テープに格納することで、データをより高い使用率で大容量テープにパックすることによって体積効率を高める。
【００３５】
記載の実装形態は、システム性能を阻害するような頻度でレクラメーションを起動することを避けるような方法により高いレクラメーション閾値の使用を可能にすることによって、ストレージ容量使用率を高める技術を提供する。
【００３６】
ストレージ・プールの物理ボリュームをレクラメーション処理する記載の技術は、標準的なプログラミングおよび／またはエンジニアリング技術を使用して、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する方法、装置、または製品として実装できる。「製品（article of manufacture）」という用語は、本明細書ではハードウェア・ロジック（例えば、集積回路チップ、ＰＧＡ（プログラマブル・ゲート・アレイ）、ＡＳＩＣ（特定用途向け集積回路）他）、またはコンピュータ可読媒体、例えば磁気記憶媒体（例えば、ハード・ディスク・ドライブ、フロッピー・ディスク、テープ他）、光記憶装置（ＣＤ−ＲＯＭ、光ディスク他）、揮発および不揮発メモリ装置（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジック他）などの形で実装されたコードまたはロジックを意味する。コンピュータ可読媒体上のコードはプロセッサによってアクセスされ実行される。好ましい実施形態が実装されたコードにはさらに、伝送メディアを介して、またはネットワーク上のファイル・サーバを介してアクセス可能である。この場合、コードが実装された製品には、ネットワーク伝送ライン、無線伝送メディアなどの伝送媒体、無線波、赤外信号など空間を介して伝えられる信号などを含めることができる。したがって、「製品」にはコードが実施された媒体を含めることができる。さらに「製品」には、コードが実施され、処理され、実行される、ハードウェア・コンポーネントとソフトウェア・コンポーネントの組合せを含めることもできる。もちろん、当業者なら、この構成に本発明の範囲を逸脱することなく多くの修正形態を実施し得ること、およびこの製品に、情報が記録された当技術分野で周知の任意の媒体を含め得ることを理解されよう。
【００３７】
記載の実装形態では、レクラメーションなど本明細書に記載のストレージ・プール管理動作の対象となる物理ボリュームはテープ・カートリッジの形で格納されていた。しかし、代替実装形態では、ストレージ・プール管理動作の対象となる物理ボリュームを、光ディスク、ハード・ディスク・ドライブ、ＮＶＲＡＭ（不揮発性ランダム・アクセス・メモリ）デバイスなど、当技術分野で周知の任意の不揮発性ストレージ・ユニット媒体に格納することができる。この代替ストレージ・ユニット媒体に対し、サーバは、その代替ストレージ・ユニット・コンポーネント中のデータにアクセスするための、必要なドライブまたはインターフェースを含むことになる。
【００３８】
記載の実装形態では、ターゲット・レクラメーション・プール・フィールド１０２に示された次のストレージ・プールはそれぞれ、データの送り元である前のストレージ・プールより高いレクラメーション閾値を有する。しかし、代替実装形態では、データがレクラメーション処理される先である次のターゲット・ストレージ・プールは、それ以下のレクラメーション閾値を有することもできる。さらに、各次のターゲット・ストレージ・プールは、それ以前のいずれのターゲット・ストレージ・プールの閾値よりも高い、または低いレクラメーション閾値を有することもできる。
【００３９】
記載の実装形態では、テープ・カートリッジのデータが閾値量より少ない場合に、レクラメーション閾値は満たされる。代替実装形態では、代替の閾値および閾値測定を使用することもできる。
【００４０】
図３、４、および５に示したデータ構造は、特定の種類の情報を有する場合のレコードを示したものである。代替実装形態では、論理ボリューム、物理ボリューム、およびストレージ・プール・レコードは、図示のフィールドより少ない、それより多い、またはそれとは異なるフィールドを有することもできる。
【００４１】
他の実装形態では、図７のテープ選択シーケンスは、インデックスではなくテープ上のアクティブ・データの量に基づくこともできる。
【００４２】
記載の実装形態では、ｎやｉなど特定の変数を使用して、各要素の特定の番号を示す整数値を表す。これらの変数は、同一のまたは異なる要素を有する他の例で使用されるときには、任意の数を表すことができる。
【００４３】
図６および７に示されたロジックは、ある特定の順序で行われる特定のイベントを示す。代替実装形態では、特定の動作を異なる順序で、その動作を修正して、あるいはその動作を削除して実施できる。さらに、上記のロジックにいくつかのステップを追加して、やはり記載の実装形態に従うようにすることもできる。さらに、本明細書に記載の動作は、順次処理することも、あるいはいくつかの動作を平行処理することもできる。さらに、各動作は単一の処理ユニットによっても、あるいは分散処理ユニットによっても実施することができる。
【００４４】
図８は、ホスト４ａ、４ｂ．．．４ｎやテープ・サーバ２（図１）に使用できるコンピュータ・アーキテクチャ６００の一実装形態を示す。このアーキテクチャ６００は、プロセッサ６０２（例えば、マイクロプロセッサ）、メモリ６０４（例えば、揮発性メモリ装置）、およびストレージ６０６（例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性記憶装置）を含むことができる。ストレージ６０６は内部ストレージ・デバイス、または外部接続もしくはネットワーク・アクセス可能なストレージを含むことができる。ストレージ６０６中の各プログラムは、当技術分野で周知の方法でメモリ６０４にロードされ、プロセッサ６０２によって実行される。このアーキテクチャはさらに、ネットワークによる通信を可能にするネットワーク・カード６０８を含むこともできる。入力装置６１０は、ユーザ入力をプロセッサ６０２に提供するために使用され、例えばキーボード、マウス、スタイラスペン、マイクロフォン、タッチ・センシティブ表示スクリーン、あるいは当技術分野で周知の他の任意の起動または入力機構を含むことができる。出力装置６１２は、プロセッサ６０２や他のコンポーネントから送信された情報を提供できるものであり、例えば表示モニタ、プリンタ、ストレージなどの装置である。
【図面の簡単な説明】
【００４５】
【図１】本発明の各態様が実装されるコンピュータ環境を示す図である。
【図２】本発明の各態様が実装される代替のコンピュータ環境を示す図である。
【図３】本発明の実装形態による、論理ボリュームの情報を維持するデータ構造を示す図である。
【図４】本発明の実装形態による、物理ボリュームの情報を維持するデータ構造を示す図である。
【図５】本発明の実装形態による、記憶プールの情報を維持するデータ構造を示す図である。
【図６】本発明の実装形態による、テープ・レクラメーション動作を実施するためのロジックを示す図である。
【図７】本発明の実装形態による、テープ・レクラメーション動作を実施するためのロジックを示す図である。
【図８】ホスト、テープ・サーバ、その他のコンピュータ装置などのコンピュータ環境における各コンピュータ・コンポーネントのアーキテクチャを示す図である。
【国際調査報告】
2005537554.tif 000011
2005537554.tif 000012