(57)【要約】【課題】階層型ストレージ管理（ＨＳＭ）システム内の１つまたは複数のデータ単位のコピー動作を実行するための方法を提供する。【解決手段】ＨＳＭシステムは、上位レイヤおよび下位レイヤを含んでいる。上位レイヤは、グリッド構成を有している複数のストレージ・ノードを含む。この方法は、複数のデータ単位のコピー動作をスケジューリングすることであって、これらのデータ単位の各々が、複数のデータ単位が格納される複数のストレージ・ノード間でコピー動作の負荷が分散されるように、複数のストレージ・ノードのうちの少なくとも１つに格納される、スケジューリングすることと、スケジューリングに従って複数のデータ単位を下位レイヤにコピーすることとを含む。【選択図】図５
2021513137.tif 000002
【特許請求の範囲】
【請求項１】
階層型ストレージ管理システム内のデータ単位に対するコピー動作を管理するコンピュータ実装方法であって、前記管理システムが上位レイヤおよび下位レイヤを含んでおり、前記上位レイヤが、多重化されたグリッド構成で通信するためにストレージ・ノードが配置されたドメインを含んでおり、各データ単位が、前記ストレージ・ノードのうちの１つまたは複数に格納され、前記方法が、
ローカルに格納されたデータ単位ごとに、各ストレージ・ノードによって、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数にそれぞれ格納されている前記データ単位の各々のコピーの最小数を決定することであって、前記決定が、前記多重化されたグリッドを経由して、前記コピーをそれぞれ格納している前記ストレージ・ノードのうちの１つまたは複数から受信されたデータに基づいて行われる、前記決定することと、
対応するデータ単位のコピーの最小数が格納されている対応するストレージ・ノードによる実行のために、各データ単位に対するコピー動作をスケジューリングすることと、
前記下位レイヤへの各データ単位の各マイグレーションのために、各データ単位に対する前記スケジューリングに従って前記コピー動作を実行することとを含む、コンピュータ実装方法。
【請求項２】
前記管理システムに接続されたコンピューティング・デバイスから、前記ストレージ・ノードのうちの１つまたは複数に格納されたデータ単位に対応する書き込み要求を受信することであって、前記データ単位が、前記データ単位のコピーが格納され得る１つまたは複数の許可されたストレージ・ノードを指定する、関連付けられたコピー・ポリシーを含んでおり、前記コピー・ポリシーが、前記コピーが前記１つまたは複数の許可されたストレージ・ノードに格納され得る期間をさらに指定する、受信することと、
前記書き込み要求を実行して、前記コピー・ポリシーに従って、前記１つまたは複数の許可されたストレージ・ノードに関して、前記データ単位に対して対応する書き込み動作を実行することとをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
各データ単位に対して、前記スケジューリングに従って前記コピー動作を実行することが、それぞれ対応するストレージ・ノードから各データ単位がコピーされる回数を１に制限することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記下位レイヤが、前記上位レイヤ内の前記１つまたは複数のストレージ・ノードのいずれのデータ取得速度および可用性のレベルよりも低いデータ取得速度および可用性のレベルをそれぞれ有するストレージ・ノードを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記下位レイヤが、メモリ・プールを提供するように抽象化された、仮想化されたメモリ・リソースを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記仮想化されたメモリ・リソースが、クラウド・コンピューティング層によって抽象化される、請求項５に記載のコンピュータ実装方法。
【請求項７】
各ストレージ・ノードが、対応するデータ単位が格納されている前記ストレージ・ノードのうちの１つまたは複数を識別するために、前記ストレージ・ノードの各々の個別のデータベースと通信するための前記多重化されたグリッドに接続されたデータベースを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、コピーされる前記データ単位のコピーが、前記ストレージ・ノードのうちの１つまたは複数に格納されており、コピー動作が、既定のしきい値を超える時間の間、前記データ単位に対して実行されていないということの決定に基づいて選択される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、前記ストレージ・ノード自体が、コピーされる前記データ単位のコピーを格納しており、前記ストレージ・ノード自体に格納されている前記データ単位のコピーの数が、前記ドメイン内の前記他のストレージ・ノードのいずれに格納されている前記データ単位のコピーの数よりも少ないということの決定に基づいて選択される、請求項１に記載のコンピュータ実装方法。
【請求項１０】
階層型ストレージ管理システム内のデータ単位に対するコピー動作を管理するためのコンピュータ・システムであって、前記管理システムが上位レイヤおよび下位レイヤを含んでおり、前記上位レイヤが、多重化されたグリッド構成で通信するためにストレージ・ノードが配置されたドメインを含んでおり、各データ単位が、前記ストレージ・ノードのうちの１つまたは複数に格納され、前記コンピュータ・システムが、
１つまたは複数のコンピュータ・プロセッサと、１つまたは複数のコンピュータ可読ストレージ媒体と、前記１つまたは複数のコンピュータ・プロセッサのうちの少なくとも１つによって実行するために前記コンピュータ可読ストレージ媒体のうちの１つまたは複数に格納されたプログラム命令とを備えており、前記プログラム命令が、前記１つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも１つによって実行された場合に、前記コンピュータ・システムに、
ローカルに格納されたデータ単位ごとに、各ストレージ・ノードによって、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数にそれぞれ格納されている前記データ単位の各々のコピーの最小数を決定することであって、前記決定が、前記多重化されたグリッドを経由して、前記コピーをそれぞれ格納している前記ストレージ・ノードのうちの１つまたは複数から受信されたデータに基づいて行われる、前記決定することと、
対応するデータ単位のコピーの最小数が格納されている対応するストレージ・ノードによる実行のために、各データ単位に対するコピー動作をスケジューリングすることと、
前記下位レイヤへの各データ単位の各マイグレーションのために、各データ単位に対する前記スケジューリングに従って前記コピー動作を実行することとを含む方法を実行させる、コンピュータ・システム。
【請求項１１】
前記方法が、
前記管理システムに接続されたコンピューティング・デバイスから、前記ストレージ・ノードのうちの１つまたは複数に格納されたデータ単位に対応する書き込み要求を受信することであって、前記データ単位が、前記データ単位のコピーが格納され得る１つまたは複数の許可されたストレージ・ノードを指定する、関連付けられたコピー・ポリシーを含んでおり、前記コピー・ポリシーが、前記コピーが前記１つまたは複数の許可されたストレージ・ノードに格納され得る期間をさらに指定する、受信することと、
前記書き込み要求を実行して、前記コピー・ポリシーに従って、前記１つまたは複数の許可されたストレージ・ノードに関して、前記データ単位に対して対応する書き込み動作を実行することとをさらに含む、請求項１０に記載のコンピュータ・システム。
【請求項１２】
各データ単位に対して、前記スケジューリングに従って前記コピー動作を実行することが、それぞれ対応するストレージ・ノードから各データ単位がコピーされる回数を１に制限することを含む、請求項１０に記載のコンピュータ・システム。
【請求項１３】
前記下位レイヤが、前記上位レイヤ内の前記１つまたは複数のストレージ・ノードのいずれのデータ取得速度および可用性のレベルよりも低いデータ取得速度および可用性のレベルをそれぞれ有するストレージ・ノードを含む、請求項１０に記載のコンピュータ・システム。
【請求項１４】
前記下位レイヤが、メモリ・プールを提供するように抽象化された、仮想化されたメモリ・リソースを含む、請求項１０に記載のコンピュータ・システム。
【請求項１５】
前記仮想化されたメモリ・リソースが、クラウド・コンピューティング・レイヤによって抽象化される、請求項１４に記載のコンピュータ・システム。
【請求項１６】
各ストレージ・ノードが、対応するデータ単位が格納されている前記ストレージ・ノードのうちの１つまたは複数を識別するために、前記ストレージ・ノードの各々の個別のデータベースと通信するための前記多重化されたグリッドに接続されたデータベースを含む、請求項１０に記載のコンピュータ・システム。
【請求項１７】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、コピーされる前記データ単位のコピーが、前記ストレージ・ノードのうちの１つまたは複数に格納されており、コピー動作が、既定のしきい値を超える時間の間、前記データ単位に対して実行されていないということの決定に基づいて選択される、請求項１０に記載のコンピュータ・システム。
【請求項１８】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、前記ストレージ・ノード自体が、コピーされる前記データ単位のコピーを格納しており、前記ストレージ・ノード自体に格納されている前記データ単位のコピーの数が、前記ドメイン内の前記他のストレージ・ノードのいずれに格納されている前記データ単位のコピーの数よりも少ないということの決定に基づいて選択される、請求項１０に記載のコンピュータ・システム。
【請求項１９】
階層型ストレージ管理システム内のデータ単位に対するコピー動作を管理するためのコンピュータ・プログラム製品であって、前記管理システムが上位レイヤおよび下位レイヤを含んでおり、前記上位レイヤが、多重化されたグリッド構成で通信するためにストレージ・ノードが配置されたドメインを含んでおり、各データ単位が、前記ストレージ・ノードのうちの１つまたは複数に格納され、前記コンピュータ・プログラム製品が、
１つまたは複数のコンピュータ可読ストレージ・デバイスと、コンピュータ・システムの少なくとも１つまたは複数のコンピュータ・プロセッサによって実行するために前記１つまたは複数のコンピュータ可読ストレージ・デバイスのうちの少なくとも１つに格納されたプログラム命令とを備えており、前記プログラム命令が、前記１つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも１つによって実行された場合に、前記コンピュータ・システムに命令を実行させ、
ローカルに格納されたデータ単位ごとに、各ストレージ・ノードによって、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数にそれぞれ格納されている前記データ単位の各々のコピーの最小数を決定することであって、前記決定が、前記多重化されたグリッドを経由して、前記コピーをそれぞれ格納している前記ストレージ・ノードのうちの１つまたは複数から受信されたデータに基づいて行われる、前記決定することと、
対応するデータ単位のコピーの最小数が格納されている対応するストレージ・ノードによる実行のために、各データ単位に対するコピー動作をスケジューリングすることと、
前記下位レイヤへの各データ単位の各マイグレーションのために、各データ単位に対する前記スケジューリングに従って前記コピー動作を実行することとを含む方法を実行する、コンピュータ・プログラム製品。
【請求項２０】
前記方法が、
前記管理システムに接続されたコンピューティング・デバイスから、前記ストレージ・ノードのうちの１つまたは複数に格納されたデータ単位に対応する書き込み要求を受信することであって、前記データ単位が、前記データ単位のコピーが格納され得る１つまたは複数の許可されたストレージ・ノードを指定する、関連付けられたコピー・ポリシーを含んでおり、前記コピー・ポリシーが、前記コピーが前記１つまたは複数の許可されたストレージ・ノードに格納され得る期間をさらに指定する、受信することと、
前記書き込み要求を実行して、前記コピー・ポリシーに従って、前記１つまたは複数の許可されたストレージ・ノードに関して、前記データ単位に対して対応する書き込み動作を実行することとをさらに含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
各データ単位に対して、前記スケジューリングに従って前記コピー動作を実行することが、それぞれ対応するストレージ・ノードから各データ単位がコピーされる前記回数を１に制限することを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２２】
前記下位レイヤが、前記上位レイヤ内の前記１つまたは複数のストレージ・ノードのいずれのデータ取得速度および可用性のレベルよりも低いデータ取得速度および可用性のレベルをそれぞれ有するストレージ・ノードを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２３】
前記下位レイヤが、メモリ・プールを提供するように抽象化された、仮想化されたメモリ・リソースを含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２４】
前記仮想化されたメモリ・リソースが、クラウド・コンピューティング・レイヤによって抽象化される、請求項２３に記載のコンピュータ・プログラム製品。
【請求項２５】
各ストレージ・ノードが、対応するデータ単位が格納されている前記ストレージ・ノードのうちの１つまたは複数を識別するために、前記ストレージ・ノードの各々の個別のデータベースと通信するための前記多重化されたグリッドに接続されたデータベースを含む、請求項１９に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、階層型ストレージ管理に関連しており、より詳細には、階層型ストレージ管理システムにおけるデータ・マイグレーション管理に関連している。
【背景技術】
【０００２】
階層型ストレージ管理（ＨＳＭ：Hierarchical Storage Management）は、二次ストレージなどのための低速、低コストのストレージ媒体に加えて、一次ストレージなどのための高速、高コストのストレージ媒体を利用することによって、効率的かつコスト効率の高いデータ管理を可能にするデータ・ストレージ手法である。一次ストレージおよび二次ストレージは、データの取り出し、読み取り動作／書き込み動作などを容易にするために、例えば、それぞれアクセス速度の高い上位レイヤおよびアクセス速度の低い下位レイヤなどに、階層化（tiered）、階層化（layered）、またはその他の方法で階層的に配置されることがある。例えば、ＩＢＭ（Ｒ）ＴＳ７７００ストレージ・システムおよびＩＢＭ（Ｒ）Ｓｐｅｃｔｒｕｍ  Ａｒｃｈｉｖｅ  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ  ＨＳＭシステムは、ＳＳＤまたはＨＤＤデータ・ストレージ・デバイスを一次ストレージに利用し、テープ・ストレージ・デバイスを二次ストレージに利用することができる。特定のＨＳＭシステムは、ＩＢＭ（Ｒ）ＴＳ７７００シリーズのテープ仮想化製品などのクラウド技術を使用して、クラウド・データ・ストレージを二次ストレージに使用することを可能にする。
【０００３】
従来のＨＳＭ手法は、データの高可用性を促進し、データのアクセスを容易にするために、頻繁にアクセスされるデータを、例えばＨＳＭシステムの上位レイヤに配置された一次ディスク・ストレージ・デバイスに格納できるＨＳＭ方式を提供することがある。頻繁にアクセスされるデータは、例えば、データのアクセス要求の頻度が既定のしきい値を下回るまで、上位レイヤにとどまってよい。例えば、データのアクセス要求の頻度が既定のしきい値を下回る場合、データをコピーできるマイグレーション前動作が実行されてよく、その後、データを除去して格納のために下位レイヤに転送することができるマイグレーション動作が実行されてよい。このデータは、下位レイヤに格納されたアクセス頻度の低い他のデータと共に、リコール動作によって、上位レイヤに転送されてよい。したがって、効率的かつ高速なデータ・アクセスをＨＳＭシステムのユーザに提供するために、マイグレーション前動作、マイグレーション動作、およびリコール動作が実施されることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
階層型ストレージ管理システムにおけるデータ・マイグレーションのためのコンピュータ実装方法を提供する。
【課題を解決するための手段】
【０００５】
一実施形態では、階層型ストレージ管理システム内の１つまたは複数のデータ単位のコピー動作を実行するための方法が提供される。階層型ストレージ管理システムは、上位レイヤおよび下位レイヤを含んでよい。上位レイヤは、グリッド構成を有している複数のストレージ・ノードを含む。この方法は、複数のデータ単位のコピー動作をスケジューリングすることを含み、これらのデータ単位の各々は、コピー動作の負荷が、複数のデータ単位が格納される複数のストレージ・ノード間で分散されるように、複数のストレージ・ノードのうちの少なくとも１つに格納される。この方法は、スケジューリングに従って、下位レイヤへの複数のデータ単位のコピー動作を実行することをさらに含む。有利には、この動作は、ストレージ・ノードの各々に対して適用されるワークロードの管理および個々のストレージ・ノードの動作の協調によって、階層型ストレージ管理システムのシステム・レベルの性能およびスループットの最適化を可能にする。
【０００６】
一実施形態では、階層型ストレージ管理システムに接続可能なストレージ・コントローラが提供される。階層型ストレージ管理システムは、上位レイヤおよび下位レイヤを含んでよい。上位レイヤは、グリッド構成を有している複数のストレージ・ノードを含んでよい。コントローラは、メモリ、およびメモリに通信するように結合されたプロセッサを備えている。メモリは命令を含んでおり、これらの命令は、プロセッサによって実行された場合に、プロセッサに、複数のデータ単位のコピー動作をスケジューリングすることであって、これらのデータ単位の各々が、複数のデータ単位が格納される複数のストレージ・ノード間でコピー動作の負荷が分散されるように、複数のストレージ・ノードのうちの少なくとも１つに格納される、スケジューリングすることと、スケジューリングに従って複数のデータ単位を下位レイヤにコピーすることとを実行させる。有利には、この動作は、ストレージ・ノードの各々に対して適用されるワークロードの管理および個々のストレージ・ノードの動作の協調によって、階層型ストレージ管理システムのシステム・レベルの性能およびスループットの最適化を可能にする。
【０００７】
一実施形態では、階層型ストレージ管理システムにおいて使用するためのコンピュータ・プログラム製品が提供される。このコンピュータ・プログラム製品は、１つまたは複数のコンピュータ可読ストレージ・デバイスと、コンピュータ・システムの少なくとも１つまたは複数のコンピュータ・プロセッサによって実行するために、１つまたは複数のコンピュータ可読ストレージ・デバイスのうちの少なくとも１つに格納されたプログラム命令とを含んでよい。これらのプログラム命令は、開示された方法を実行するために、コンピュータ・システムの少なくとも１つまたは複数のコンピュータ・プロセッサによって実行されてよい。
【０００８】
一実施形態では、提供される方法は、管理システムに接続されたコンピューティング・デバイスから、データ単位に対応する書き込み要求を受信することであって、このデータ単位が、関連付けられたコピー・ポリシーを含んでいる、受信することと、この要求を実行して、データ単位に対応する書き込み動作を実行することであって、この要求が、コピー・ポリシーに従って、ストレージ・ノードのうちの１つまたは複数に対して実行される、実行することとをさらに含んでよい。有利には、コピー・ポリシーは、管理システム内の対応するデータ単位のストレージの冗長性に対するデータ固有の制御を可能にする。
【０００９】
一実施形態では、提供される方法は、ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対するコピー動作の実行のために、ドメイン内のストレージ・ノードのうちの１つまたは複数を選択することをさらに含んでよく、これらのストレージ・ノードは、コピーされるデータ単位のコピーが、ストレージ・ノードのうちの１つまたは複数に格納されており、コピー動作が、既定のしきい値を超える時間の間、データ単位に対して実行されていない、ということの決定に基づくか、またはストレージ・ノード自体が、コピーされるデータ単位のコピーを格納しており、データ単位のコピーの数が、ドメイン内の他のストレージ・ノードのいずれに格納されているデータ単位のコピーの数よりも少ない、ということの決定に基づいて、選択される。有利には、これによって、例えば、別のクラスタが識別されたデータ・ボリュームのコピーを含んでおり、何らかの理由でこのボリュームをマイグレーションできないという状況のための、「安全網」を提供する。
【００１０】
本発明の前述の態様は、本発明の必要な特徴のすべてを列挙するよう意図されておらず、本発明が、これらの構成要素のすべての組み合わせおよび部分的組み合わせを含んでいるということが、理解されるべきである。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に従って、ＨＳＭシステムを示す図である。
【図２】本発明の一実施形態に従って、ＨＳＭシステムの一次ストレージ・グリッドを構成するストレージ・クラスタ１２０のブロック図を示す図である。
【図３】本発明の一実施形態に従って、ＨＳＭシステムに格納されるデータ・ボリュームのコピー・ポリシーを設定するための動作を表すフローチャートを示す図である。
【図４】本発明の一実施形態に従って、ＨＳＭシステムに接続されたホスト・コンピュータ１１５から書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームを格納し、コピーする動作を表すフローチャートを示す図である。
【図５】本発明の一実施形態に従って、ＨＳＭシステム内のクラウド・ストレージへの、一次ストレージ・レイヤ内の複数のクラスタに格納されたデータ・ファイルのコピー動作を表すフローチャートを示す図である。
【図６】本発明の一実施形態に従って、ＨＳＭシステムに接続されたホスト・コンピュータから書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームを格納し、コピーする動作を説明するための図である。
【図７】本発明の一実施形態に従って、ＨＳＭシステムに接続されたホスト・コンピュータから書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームを格納し、コピーする動作を説明するための図である。
【図８】本発明の一実施形態に従って、ＨＳＭシステム内のクラウド・ストレージへの、一次ストレージ・レイヤ内の複数のクラスタに格納されたデータ・ファイルのコピー動作を説明するための図である。
【図９】本発明の一実施形態に従って、ホスト・コンピュータ、ストレージ・クラスタ、またはコンピューティング・プラットフォーム、あるいはその組み合わせによって具現化されてよい、データ処理デバイスの好ましいハードウェア構成の例を示す図である。
【図１０】本発明の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【図１１】本発明の実施形態に従ってクラウドの抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【００１２】
本明細書では、さまざまな形態で具現化されてよい請求される構造および方法を説明し、例示する目的で、本発明の詳細な実施形態が開示されるが、これらの実施形態は網羅的であるよう全く意図されておらず、開示された実施形態に限定されない。添付の特許請求の範囲およびそれらと同等のものによって定義されている、開示された実施形態の範囲および思想を逸脱することなく、多くの変更および変形が、当業者に明らかになるであろう。本明細書で使用された用語は、１つまたは複数の実施形態の原理、実際の適用、または従来技術を超える技術的改良を最も適切に説明するため、あるいは当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。説明されるとき、周知の特徴および手法の詳細は、説明を容易にするため、または本発明の実施形態を不必要に曖昧にするのを防ぐために、一般化されるか、または省略されることがある。
【００１３】
本明細書において明示的に、またはその他の方法で定義されない限り、すべての用語には、暗示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味を含む、最も広い妥当な解釈が与えられる。さらに、本明細書において使用されるとき、「ａ」、「ａｎ」、「ｔｈｅ」などの単数形は、必要に応じて、またはその他の方法で指定されたときに、その複数形も含む。さらに、「備える」または「備えている」あるいはその両方の用語は、本明細書において使用されるとき、記載された特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組み合わせの存在を示しており、１つまたは複数のその他の特徴、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していない。
【００１４】
本明細書における「一実施形態」、「実施形態」、「実施形態例」などへの参照は、説明される実施形態が、１つまたは複数の特定の特徴、構造、または特性を含んでよいということを示すが、そのような特定の特徴、構造、または特性が、本明細書において開示された本発明の実施形態の各々およびすべてに共通していることもあれば、共通していないこともあるということが、理解されなければならない。さらに、そのような語句は、必ずしもそれ自体が、いずれか１つの特定の実施形態を指していない。そのため、１つまたは複数の特定の特徴、構造、または特性がある実施形態に関連して説明される場合、明示的に説明されるかどうかにかかわらず、該当する場合に、他の実施形態に関連してそのような１つまたは複数の特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内にあると考えられる。
【００１５】
データの完全性、冗長性などに関するコストを削減し、性能を改善しようとする取り組みにおいて、さまざまなストレージ・システムがＨＳＭを実装することがある。そのようなシステムの上位レイヤは、高速なデータ取得および高可用性を実現するために、ＳＳＤ、ＨＤＤなどの形態で高価なストレージ媒体を含むことがある。下位レイヤは、コストを削減するために、テープ・ドライブなどの形態で安価なストレージ媒体を含むことがある。
【００１６】
本明細書において以下で説明されるように、上位レイヤは「一次ストレージ」、「一次ストレージ・ティア」などと呼ばれることがある。さらに、下位レイヤは「二次ストレージ」、「二次ストレージ・ティア」などと呼ばれることがある。当業者によって理解されるであろうように、そのような参照が、本発明の実施形態に従って他の種類のデバイスを含むということが、理解されるべきである。さらに、本発明のさまざまな実施形態において、３つ以上のストレージ・ティアが含まれてよいということ、およびそのような実施形態が、さまざまなストレージ・ティアのうちの１つまたは複数に個別に、またはさまざまな組み合わせで、適用可能であるということが、理解されるべきである。
【００１７】
本発明のさまざまな実施形態では、一次ストレージ・ティアが、１つまたは複数のノードによって多重化され、サポートされ得る、ストレージ・デバイスおよびコンピューティング・プラットフォームの「グリッド」構成を含んでよい。本明細書において以下で説明されるように、各ノードは「クラスタ」と呼ばれることがある。さらに、グリッド構成で配置されたクラスタのグループは「ドメイン」と呼ばれることがある。
【００１８】
本発明のさまざまな実施形態では、二次ストレージが、クラウド・データ・ストレージ（以下では、「クラウド・ストレージ」）であるか、クラウド・データ・ストレージを含むか、またはその他の方法でクラウド・データ・ストレージを実装してよい。通常、クラウド・ストレージは、クラウド・コンピューティング環境を含んでよく、クラウド・コンピューティング環境によってデータ・ストレージ機能が提供されてよい。クラウド・コンピューティング環境は、異種コンピューティング・デバイスが単一のシームレスなリソースのプール（単一のメモリ・プール、処理プールなど）であるように見えるように、例えば、クラウド・レイヤによって抽象化され得る仮想計算リソースまたは論理計算リソースを含んでよい。これらのリソースは、本発明の実施形態に従って、例えば、さまざまな種類の物理処理リソースまたは論理処理リソース、データ・リソースまたはメモリ・リソース、サーバ、ネットワーク、あるいはストレージ・デバイスを含んでよい。言い換えると、クラウド・ストレージは、例えば、接続されたユーザのコンピューティング・プラットフォームなどによって観測可能であるか、またはその他の方法で知覚可能であるように、単一のターゲット、オブジェクト、または実体であるように見えてよい。
【００１９】
本発明の一実施形態では、ＨＳＭシステムに接続されたホスト・コンピューティング・プラットフォームなどのコンピューティング・プラットフォームまたはデバイスが、一次ストレージ・ティアのクラスタのうちの少なくとも１つにデータを書き込むための要求を作成するか、提出するか、またはその他の方法で伝達してよい。この要求は、１つまたは複数のデータ書き込み命令を含んでよい。この実施形態では、要求が、格納されたデータ・ボリューム、データ単位などを含んでよい。この実施形態では、格納されたデータ・ボリュームが、１つまたは複数の事前に定義されたコピー・ポリシーに従って一次ストレージ・ティアのドメイン内のクラスタのうちの少なくとも１つに格納するために、コピーされてよい。本明細書において説明されているように、ホストが、データ・ボリュームごとに、またはデータ・ボリュームを単位としてデータを書き込むが、本発明の実施形態が、いずれかの特定の単位または種類のデータ測定またはデータ計測に限定されないということが仮定される。したがって、本発明の実施形態は、固定サイズのデータ単位、可変サイズのデータ単位、ボリューム、ファイル、ブロック、オブジェクト、セグメント、レコードなどの、任意の種類のデータ単位またはデータ測定を実装してよい。
【００２０】
本発明の一実施形態では、ユーザによってコピー・ポリシーが事前に定義されてよい。この実施形態では、コピー・ポリシーが、データ・ボリュームの１つまたは複数のコピーを格納できるＨＳＭシステムの特定のクラスタを定義するか、識別するか、指定するか、許可するか、またはその他の方法で規定してよい。さらにコピー・ポリシーは、対応する条件またはイベントなどに関連して、特定の期間を規定してよく、この期間の間に、特定のクラスタがコピーを格納できる。ボリュームのコピーは、ユーザに関連付けられてよい。有利には、このようにして、コピー・ポリシーによって、一次ストレージのドメイン内に格納できるボリュームのコピーの数を制御することができ、さらに、ＨＳＭシステム内のコピーの格納に関する冗長性のレベルを制御することができる。１つの例では、各ボリュームに関連付けられたコピー・ポリシーに従って規定されているように、ボリュームＡなどのボリュームが、クラスタ２、クラスタ４、およびクラスタ６に格納されてよく、ボリュームＢなどのボリュームが、クラスタ２およびクラスタ４に格納されてよく、ボリュームＣなどのボリュームが、クラスタ２のみに格納されてよい。
【００２１】
本発明のさまざまな実施形態では、事前に定義されたマイグレーション・アルゴリズムに従って、データ・ボリュームが、ＨＳＭシステム内のクラウド・ストレージにマイグレーションされてよい。さまざまな実施形態では、例えば、特定の期間の間に、ホスト・コンピュータなどによる対象のデータ・ボリュームのアクセスの数が既定のしきい値を下回ったときに、一次ストレージに格納された対象のデータ・ボリュームが二次ストレージにコピーされて（すなわち、マイグレーション前動作が実行されて）よく、その後、一次ストレージから除去されて（すなわち、マイグレーションされて）よい。
【００２２】
さまざまな実施形態では、例えば、新しい書き込み要求のために一次ストレージ・ティア内に空きディスク領域を確保する必要があるなどの場合に、対象のデータ・ボリュームが、代替として遅延され、除去されてよい。対応するデータ・ボリュームのマイグレーション動作の完了後に、それらのデータ・ボリュームが、二次ストレージのみに格納されてよい。本発明の実施形態に従って、さまざまなマイグレーション・アルゴリズムがＨＳＭシステムにおいて使用されてよい。
【００２３】
前述した例では、クラウド・ストレージへの転送のために、クラスタ２がボリュームＡ、ボリュームＢ、およびボリュームＣに対してそれぞれ、順番にマイグレーション動作を実行する場合、クラスタ４およびクラスタ６は、これらのボリュームに対してコピー動作を実行しなくてよい。この例では、このような実行によって、ボリュームごとのコピー動作の実行の結果として、クラスタ２に負荷（すなわち、ワークロード）の集中が生じ、それによって完了に必要な時間の増加を引き起こす。したがって、そのような状況におけるデータのマイグレーションに関連して、そのようなタスクの最適化された実行に対する必要性が存在する。
【００２４】
これを実現するために、本発明の実施形態に従って、ＨＳＭシステムの各クラスタが、データ・ボリュームに対するコピー動作（すなわち、マイグレーション前動作）をスケジューリングするために、階層型ストレージ・コントローラを利用してよく、各データ・ボリュームが、１つまたは複数のクラスタに格納されてよい。このコントローラを使用して、ドメイン内のクラスタ間で、コピー動作の実行から生じる負荷を分散することができる。したがって、第２のストレージ・ティアのクラウド・ストレージへのコピー動作は、第１のストレージ・ティアのクラスタによるスケジューリングに従って実行されてよい。前述した例では、これによって、クラスタ６からボリュームＡのクラウド・ストレージへのマイグレーション、クラスタ４からボリュームＢのクラウド・ストレージへのマイグレーション、およびクラスタ２からボリュームＣのクラウド・ストレージへのマイグレーションを可能にする。その後、前述したように、一次ストレージに格納された各ボリュームが除去されてよい。そのため、コピー動作の実行から生じる負荷、およびデータのマイグレーションにおいて実行されるその他の関連する動作から生じる負荷の効率的な分散によって、最適化された実行が実現される。
【００２５】
ここで、添付の図面を参照して、本発明の実施形態について説明する。
【００２６】
図１は、本発明の一実施形態に従ってＨＳＭシステムを示している。この実施形態では、ネットワーク１２５を介して、ホスト・コンピュータ１１５がＨＳＭシステム１００に接続されている。ネットワーク１２５は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）、ＳＣＳＩ（Small Computer System Interface：小型コンピュータ・システム・インターフェイス）、ファイバ・チャネル、ＥＳＣＯＮ、ＦＩＣＯＮ、ＵＳＢ（Universal Serial Bus：ユニバーサル・シリアル・バス）を含むが、これらに限定されない、データ交換またはデータ通信に適している任意の種類のデータ・ネットワークであることができる。例えば、ＨＳＭシステムは、ＦＩＳＣＯＮ通信チャネルを介してホスト・コンピュータに接続されてよい。図１に示されているように、ホスト・コンピュータ１１５ａおよび１１５ｂなどのホスト・コンピュータは、それぞれネットワーク１２５ａおよび１２５ｂを介してＨＳＭシステムに接続されてよい。各ホスト・コンピュータ１１５は、メインフレーム・コンピュータ、サーバ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、ノート型コンピュータ、パーソナル・コンピュータ（ＰＣ：personal computer）、デスクトップ・コンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ：personal digital assistant）、スマートフォン、シン・クライアント、またはネットワーク１２５を介してＨＳＭシステム１００と通信できる任意のその他のプログラム可能な電子デバイスなどの、個別の異なるコンピューティング・デバイスであってよい。各ホスト・コンピュータ１１５は、さまざまなデータ・処理タスクを実行するために、ＨＳＭシステム１００にデータを書き込むための要求、およびＨＳＭシステム１００からデータを読み取るための要求を伝達してよい。前述したように、各ホスト・コンピュータ１１５は、ボリュームを単位としてデータを書き込むための要求およびデータを読み取るための要求を伝達してよい。各ホスト・コンピュータ１１５は、図９に関して示され、詳細に説明されるハードウェア・コンポーネントなどの、内部または外部のハードウェア・コンポーネントを含んでよい。
【００２７】
本発明の一実施形態では、ＨＳＭシステム１００は、一次ストレージ・ティア１０５および第２のストレージ・ティア１１０を含んでよい。第２のストレージ・ティア１１０は、他に、本開示において二次ストレージ１１０およびクラウド・ストレージ１１０と呼ばれることがある。この実施形態では、一次ストレージ・ティア１０５および第２のストレージ・ティア１１０は、例えば、ＨＳＭシステム１００の上位レイヤおよび下位レイヤをそれぞれ表してよい。この実施形態では、一次ストレージ・ティア１０５はグリッド構成を含んでよく、グリッド構成では、１つまたは複数のストレージ・ノードまたはクラスタによって、ストレージ・デバイスおよびサーバが多重化されてよい。ＨＳＭシステム１００のドメインは、ホスト・コンピュータ１１５などのコンピューティング・デバイスには、単一のノードであるように見えてよい。この実施形態では、このドメインは、グリッド・ネットワーク５によってそれぞれ相互接続された６つのストレージ・クラスタ１２０ａ〜ｆを利用してよい。この実施形態では、各クラスタは、例えばＩＢＭ（Ｒ）ＴＳ７７００  Ｖｉｒｔｕａｌ  Ｔａｐｅ  Ｓｙｓｔｅｍによって実装されてよい。
【００２８】
本発明の一実施形態では、クラスタ１２０ａ〜ｆのうちの１つまたは複数が、対応するデータ・ボリュームなどに対する読み取り／書き込み要求の伝達のために、ネットワーク１２５を介してホスト・コンピュータ１１５に接続されてよい。例えば、図１に示されているように、クラスタ１２０ａ（クラスタ１）および１２０ｆ（クラスタ６）は、ネットワーク１２５ａを介してホスト１１５ａに接続されてよく、クラスタ１２０ｃ（クラスタ３）および１２０ｄ（クラスタ４）は、ネットワーク１２５ｂを介してホスト１１５ｂに接続されてよい。さらに、クラスタ１２０ａ〜ｆは、グリッド・ネットワーク１３０を介してグリッド構成内で通信するために、接続されてよい。
【００２９】
クラスタ１２０ａ〜ｆは、データ・ボリュームの伝達、マイグレーション前動作、マイグレーション、またはリコール、あるいはその組み合わせのために、ネットワーク１３５を介して第２のストレージ・ティア１１０に接続されてよい。第２のストレージ・ティア１１０は、例えば、クラウド・ストレージ・システムであるか、またはその他の方法でクラウド・ストレージ・システムを含んでよい。ＨＳＭシステム１００のドメインと同様に、第２のストレージ・ティア１１０は、ホスト・コンピュータ１１５などのコンピューティング・デバイスには、単一のノードであるように見えてよい。第２のストレージ・ティア１１０は、例えば、ストレージ・サブシステム、相互接続ファブリック（ファイバ・チャネル、インフィニバンド、イーサネット（Ｒ）など）、ストレージ・ノード、インターフェイス・ノード、ファイル・システムなどを含んでよい。第２のストレージ・ティア１１０は、クラウド・ストレージ・サービスの一部としてストレージ・リソースを提供することにおいて使用されてよい。ＨＳＭシステム１００は、本発明の実施形態に従って、その他の方法で他のコンポーネントおよび構成を含んでよい。
【００３０】
図２は、本発明の一実施形態に従って、ＨＳＭシステムの一次ストレージ・グリッドを構成するストレージ・クラスタ１２０のブロック図を示している。
【００３１】
図２を参照すると、ストレージ・クラスタ１２０が、テープ・ドライブ、テープ・ライブラリなどのエミュレーション用の仮想ノード２０５およびディスク・ストレージ２２０を含んでよい。各クラスタ１２０は、ディスク・ストレージ２２０と二次ストレージ１１０の間のデータ移動またはデータ転送を管理するため、およびディスク・ストレージ２２０とリモート・ストレージ・クラスタのディスク・ストレージの間でデータを移動またはコピーするために、階層型ストレージ・コントローラ２２５を含んでよい。リモート・ストレージ・クラスタのディスク・ストレージは、例えば、ＲＡＩＤ（redundant array of independent disks）、ＪＢＯＤ（justa bunch of disks）、ＳＳＤ（solid-state drives）などの、１つまたは複数のディスク・ドライブを含んでよい。
【００３２】
本発明の一実施形態では、ディスク・ストレージ２２０は、従来のテープ・ボリュームに基づいてエミュレートされることがある論理ボリュームを含んでいる仮想ボリューム・キャッシュを提供するように機能してよい。ディスク・ストレージ２２０は、ローカル・アクセスおよびリモート・アクセスのための論理ボリュームを格納してよい。この実施形態では、仮想化ノード２０５は、仮想ボリューム・ファイルに対して動作するために、テープ・デーモン２１０および２１５などのテープ・デーモンを含んでよく、そのため、ディスク・ストレージ２２０上またはリモート・キャッシュ・ディスク・ストレージ上に存在してよい。ディスク・ストレージ２２０は、例えば、ローカル・キャッシュ・ディスク・ストレージであってよい。仮想化ノード２０５は、最大４９６のテープ・デーモン・インスタンスを同時にサポートできるＩＢＭ（Ｒ）ＴＳ７７００システムなど、仮想テープ・デバイスを並列に処理するために、その他の方法で任意の数のテープ・デーモンを含んでよい。
【００３３】
図２に示されているように、階層型ストレージ・コントローラ２２５は、グリッド・マネージャ２３０、リモート・ファイル・アクセス・サーバ２３５、データ・ムーバー２４０、ディスク・ストレージ・マネージャ２４５、リコール・マネージャ２５０、データベース２５５、および管理インターフェイス２６０を含んでよい。
【００３４】
グリッド・マネージャ２３０は、各クラスタ１２０のデータベース２５５に格納されたデータに基づいてクラスタ１２０間で動作を調整し、特定の時点でどのクラスタ１２０がドメイン内のすべてのデータ・ボリュームの現在のコピーを格納するか、含むか、またはその他の方法で処理するかを決定するように機能してよい。グリッド・マネージャ２３０は、例えば各クラスタのデータベース２５５に格納されてよい１つまたは複数のコピー・ポリシーに従って、クラスタ間でデータのコピーを調整するようにさらに機能してよい。リモート・ファイル・アクセス・サーバ２３５は、リモート・クラスタなどのディスク・ストレージ２２０のキャッシュへのリンクを提供するように機能してよい。データ・ムーバー２４０は、クラスタ１２０間で実行されるコピーのデータ転送動作、およびディスク・ストレージ２２０と二次ストレージ１１０の間でのデータ・ボリュームの転送を制御するように機能してよい。
【００３５】
ディスク・ストレージ・マネージャ２４５は、ディスク・ストレージ２２０と二次ストレージ１１０の間のデータ・ボリュームのコピーを制御するように機能してよく、ディスク・ストレージ２２０内のデータの冗長なコピーのその後の除去をさらに制御してよい。ディスク・ストレージ・マネージャ２４５は、ディスク・ストレージ２２０とデータベース２５５の他のコンポーネントの間で負荷およびデータ・フローのバランスを調整するために、制御信号を伝達するようにさらに機能してよい。リコール・マネージャ２５０は、仮想化ノード２０５およびグリッド・マネージャ２３０の代わりに、ディスク・ストレージ２２０および二次ストレージ１１０に対するデータのリコールをキューに入れて制御するように機能してよい。
【００３６】
データベース２５５は、一次ストレージ・ティア１０５のドメイン内のすべてのデータ・ボリュームに関して、データ・ボリュームの１つまたは複数のコピーを格納する１つまたは複数のクラスタを識別することにおいて使用されるデータを格納するように機能してよい。データベース２５５は、データ・ボリュームの各々に対応するコピー・ポリシーを格納する１つまたは複数のクラスタを識別することにおいて使用されるデータを格納するようにさらに機能してよい。各コピー・ポリシーは、一意の識別子に関連付けられてよい。管理インターフェイス２６０は、ユーザ制御およびその構成を可能にするために、各ストレージ・クラスタ１２０に関する情報を提供するように機能してよい。
【００３７】
ストレージ・クラスタ１２０は、例えば、さまざまな種類のＨＳＭシステムにおいて仮想テープ・ストレージ機能を提供するように実装され得るＩＢＭ（Ｒ）ＴＳ７７００システムであってよい。本発明の実施形態に従って、異なる種類のストレージ・システムが、その他の方法で実装されてよい。
【００３８】
図３は、本発明の一実施形態に従って、ＨＳＭシステムに格納されるデータ・ボリュームのコピー・ポリシーを設定するための動作を表すフローチャート３００を示している。
【００３９】
ステップＳ３０５で、プロセスが開始される。
【００４０】
ステップＳ３１０で、ホスト・コンピュータ１１５のうちの１つなどのホスト・コンピュータで、新しいデータ・ボリュームが作成されてよい。
【００４１】
ステップＳ３１５で、コピー・ポリシー・データがデータ・ボリュームに添付されてよい。本発明の一実施形態では、コピー・ポリシー・データが、コピー・ポリシーに関連付けられた識別子であるか、またはその他の方法でそのような識別子を含んでよく、そのため、ストレージ・クラスタ１２０のデータベース２５５に格納されてよい。コピー・ポリシー・データの添付は、データ・ボリュームが、関連付けられたコピー・ポリシーに対して事前に定義された条件を満たすかどうかを判定できるコンピュータ・プログラムなどによって、関連付けられたアーカイブ動作を実行することを含んでよい。これらのアーカイブ動作は、ユーザによって、その他の方法で実行されてよい。事前に定義された条件は、個別のデータ・ボリュームに関連付けられた１つまたは複数の属性に関連していてよく、例えば、データ・ボリュームのファイルの種類（例えば、動画ファイル、画像ファイル、テキスト・ファイル、アプリケーション・ファイルなど）、あるいは重要性の分類またはレベル、サイズ、著者／作成者、セキュリティ・レベル、ボリューム名、内容、メタ・タグ、添付されたコメント、バージョン、作成時間、変更時間などに関する、データ・ボリュームに添付されたラベルなどを含んでよい。
【００４２】
ステップＳ３２０で、ホスト・コンピュータ１１５が、次に、作成されたデータ・ボリュームに対応する書き込み要求を、ボリューム・データ自体と共に、ネットワーク１２５を介してＨＳＭシステム１００に送信してよい。
【００４３】
ステップＳ３２５で、ＨＳＭシステム１００のストレージ・クラスタ１２０のうちの１つまたは複数によって、プロセスが続行される。
【００４４】
本発明の一実施形態では、図６に示されているように、ホスト・コンピュータ１１５ａが、ボリュームＡに関連する書き込み要求をクラスタ６（１２０ｆ）に送信してよい。図６は、本発明の一実施形態に従って、ＨＳＭシステムに接続されたホスト・コンピュータから書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームを格納する動作を説明するための図を示している。
【００４５】
図４は、本発明の実施形態に従って、ホスト・コンピュータ１１５から書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームを格納し、コピーすることに関連付けられた動作を表すフローチャートを示している。
【００４６】
ステップＳ４０５で、プロセス４００が開始する。ステップＳ４１０で、ドメイン１１５内のストレージ・クラスタ１２０のうちの１つが、ホスト・コンピュータ１１５から送信された、対応するデータ・ボリュームを含んでいる書き込み要求を受信する。この書き込み要求は、図６に示されているように、クラスタ６  １２０ｆなどのストレージ・クラスタによって受信されてよい。ステップＳ４１５で、ストレージ・クラスタ１２０が、受信された書き込み要求に対応するデータ・ボリュームに関連するコピー・ポリシーをチェックする。このコピー・ポリシーは、データ・ボリュームに添付されたコピー・ポリシー識別子を使用することによって、データベース２５５に格納されたコピー・ポリシーから識別される。ステップＳ４２０で、書き込み要求に対応するコピー・ポリシーが識別された場合、データ・ボリュームがこのクラスタに書き込まれるかどうかに関する判定が行われる。対応するコピー・ポリシーが識別された場合、プロセスがステップＳ４２５に進む。対応するコピー・ポリシーが識別されなかった場合、プロセスがステップＳ４３５に進む。ステップＳ４２５で、識別されたコピー・ポリシーに従って、データ・ボリュームがストレージ・クラスタのローカル・ディスク・ストレージ２２０に格納される。ステップＳ４３０で、データ・ボリュームがストレージ・クラスタに書き込まれたことを示す情報が、ローカル・ディスク・ストレージ２２０に格納され、ローカル・データベース２５５に記録される。この情報は、それに応じてクラスタの各々のデータベースを更新するために、一次ストレージ・ティア１０５のドメイン内の他のすべてのストレージ・クラスタ１２０にも送信されるか、またはブロードキャストされる。ステップ４３５で、一次ストレージ・ティア１０５のドメイン内の他のクラスタのうちの１つまたは複数にボリュームが書き込まれるかどうかに関する判定が行われてよい。本発明の一実施形態では、この判定は、データ・ボリュームに適用できる場合は、ステップＳ４１５で識別されたコピー・ポリシーに基づいて、および一次ストレージ・ティア１０５のドメイン内のどのクラスタが、各クラスタのデータベース２５５に格納されていることがあるデータ・ボリュームのコピーを現在格納しているかを示す情報に基づいて、行われてよい。ステップＳ４４５で、ステップ４３５で行われた判定に従って、書き込み要求が転送される。ステップＳ４５０で、プロセスが終了する。
【００４７】
本発明の一実施形態では、コピー・ポリシーが、即時のコピー、延期されるコピー、遅延されるコピー、または同期コピーを表す命令であるか、またはその他の方法でこれらの命令を含んでよい。コピー・ポリシーが即時のコピーである場合、ボリュームが、書き込み要求を受信した現在のストレージ・クラスタ内で閉じられたときに、ボリュームが他のストレージ・クラスタに書き込まれるということが決定される。コピー・ポリシーが延期されるコピーである場合、ボリュームが現在のストレージ・クラスタ内で閉じられた後に、特定の期間が経過したときに、ボリュームが他のストレージ・クラスタに書き込まれるということが決定される。コピー・ポリシーが遅延されるコピーである場合、プログラムによって自動的に指定された時間またはユーザによって指定された時間になったときに、ボリュームが他のストレージ・クラスタに書き込まれるということが決定される。コピー・ポリシーが同期コピーである場合、ボリュームが現在のストレージ・クラスタおよび他のストレージ・クラスタに同時に書き込まれるように、ボリュームが現在のストレージ・クラスタ内で閉じられる前に、ボリュームが他のストレージ・クラスタに書き込まれるということが決定される。
【００４８】
本発明の一実施形態では、図７に示されているように、識別されたコピー・ポリシーに従って、クラスタ６（１２０ｆ）に格納されたボリュームＡがクラスタ２（１２０ｂ）およびクラスタ４（１２０ｄ）にコピーされる。図７は、本発明の一実施形態に従って、ＨＳＭシステムに接続されたホスト・コンピュータから書き込み要求を受信することに応答して、一次ストレージ・ティアにデータ・ボリュームをコピーする動作を説明するための図を示している。
【００４９】
図５は、本発明の実施形態に従って、ＨＳＭシステム内のクラウド・ストレージへの、一次ストレージ・レイヤ内の複数のクラスタに格納されたデータ・ファイルのマイグレーション動作を表すフローチャートを示している。マイグレーション動作は、データ・ボリューム・マイグレーション・プロセス５００の一部として実行されてよい。
【００５０】
ステップＳ５０５で、データ・ボリューム・マイグレーション・プロセス５００が開始する。本発明のさまざまな実施形態では、規則的間隔で、または特定のイベントまたは条件の発生に応答して、プロセス５００がトリガーされてよい。例えば、ストレージ・クラスタ１２０のうちの１つのディスク・ストレージの空き領域の量が事前に定義されたしきい値未満になったときに、プロセス５００がトリガーされてよい。
【００５１】
ステップＳ５１０で、次に、各ストレージ・クラスタが、ローカルに格納されたデータ・ボリュームを、作成時間、最後のアクセス時間、またはその他の属性に従って並べ替え、それはそのようなものが、各データ・ボリュームに関連付けられてよいからである。データ・ボリュームは、並べ替え時に、各ストレージ・クラスタのローカル・ディスク・ストレージ２２０に格納されてよく、二次ストレージ１１０にマイグレーションされることが決定されたデータ・ボリュームを含んでよい。データ・ボリュームは、特定の期間の間、使用されず、アクセスされてもいない場合に、クラウド・ストレージ１１０にマイグレーションされることが決定されてよい。
【００５２】
ステップＳ５１５で、各クラスタが、各クラスタに格納されたデータ・ボリュームごとに、一次ストレージ・ティア１０５のドメイン内のコピーの最小数（「Ｎ」）を数える。前述したように、各クラスタは、どのクラスタが、一次ストレージ・ティア１０５のドメイン内の各データ・ボリュームの現在のコピーを含んでいるか、または格納しているかを決定するために、ブロードキャストされたデータに基づいてコピーの数を数えてよい。
【００５３】
ステップＳ５２０で、各クラスタが、まだ処理されていないドメイン内のデータ・ボリュームのうちの１つまたは複数を識別する（Ｓ５２０）。
【００５４】
ステップＳ５２５で、各クラスタが、ステップＳ５２０で識別されたデータ・ボリュームごとに、そのボリュームが既定のしきい値より古いかどうかを判定する。本発明の一実施形態では、ステップＳ５２５での判定が真または「はい」の結果をもたらす場合、プロセスがステップ５３５に進み、それによって、識別されたデータ・ボリュームが二次ストレージ１１０のマイグレーション・キューに追加されてよい。有利には、ステップＳ５２５およびＳ５３５は、例えば、識別されたデータ・ボリュームのコピーを格納している別のクラスタが、他のクラスタに影響を与える局所的なエラーに起因して、このボリュームをマイグレーションできないという状況のための、「安全網」として役立つ。この実施形態では、ステップＳ５２５での判定が偽または「いいえ」の結果をもたらす場合、プロセスが代わりにステップ５３０に進み、それによって、ストレージ・クラスタ１２０が、識別されたデータ・ボリュームのコピーの数が「Ｎ」に等しいかどうかを判定する。ステップＳ５３０での判定が真または「はい」の結果をもたらす場合、関連付けられたマイグレーション動作のスケジューリングのために、データ・ボリュームが、二次ストレージ１１０のマイグレーション・キューに追加されてよい。ステップＳ５３０での判定が偽または「いいえ」の結果をもたらす場合、プロセスがステップＳ５２０に戻り、別の未処理のデータ・ボリュームに対してプロセスを繰り返す。
【００５５】
ステップＳ５４０で、各ストレージ・クラスタによって、未処理のデータ・ボリュームがまだ残っているかどうかがそれぞれ判定される。本発明の一実施形態では、この判定が真または「はい」の結果をもたらす場合、それに応じてプロセスがステップＳ５１０に戻り、未処理のデータ・ボリュームを処理し、この判定が偽または「いいえ」の結果をもたらす場合、プロセスがステップＳ５４５で終了する。コピー動作の後の特定の期間の間、ＨＳＭシステムに接続されたホスト・コンピュータが、プロセス５００の間にコピーされたボリュームを使用しない場合、それらのボリュームが一次ストレージから除去されるということに、注意するべきである（図５に示されていない）。
【００５６】
ここで、本発明の一実施形態に従って、図８を参照して例示的なコピー動作が詳細に説明される。図８は、本発明の一実施形態に従って、ＨＳＭシステム内のクラウド・ストレージへの、一次ストレージ・レイヤまたは一次ストレージ・ティア内の複数のクラスタに格納されたデータ・ボリュームのマイグレーション動作を説明するための図を示している。
【００５７】
なお、この例は、本開示の前述の例に基づいており、一次ストレージ・ティア１０５のドメイン内に６つのストレージ・クラスタ１２０ａ〜１２０ｆが存在し、クラスタ２（１２０ｂ）がボリュームＡ、ボリュームＢ、およびボリュームＣを格納し、クラスタ４がボリュームＡおよびボリュームＢを格納し、クラスタ６がボリュームＡのみを格納し、さらに、特定の期間の間、各ボリュームの各々へのユーザによって要求されたアクセスがないということなどによって、クラウド・ストレージ１１０にマイグレーションされるデータ・ボリュームが決定されて選択される。さらに、以下の例では、ボリュームＡが最も古くない（すなわち、最も新しい）作成時間を含んでおり、ボリュームＢが２番目に古い作成時間を含んでおり、ボリュームＣが、ボリュームＡおよびボリュームＢの作成時間と相対的に、最も古い作成時間を含んでいるということも仮定される。したがって、この例では、ステップＳ５１０などにおいて、クラスタ６（１２０ｆ）がボリュームＣ、ボリュームＢ、および次いでボリュームＡと並べ替え、さらにクラスタ４（１２０ｄ）がボリュームＢおよびボリュームＡと並べ替え、ボリュームの各セットが、各クラスタによって前述の順序で並べ替えられる。クラスタ２は、ボリュームＡしか含んでいないため、そのような並べ替え動作を実行しない。
【００５８】
この例では、一次ストレージ・ティア１０５のドメイン内のボリュームＡの３つのコピー、ボリュームＢの２つのコピー、およびボリュームＣの１つのコピーという結果が得られる。したがって、ステップＳ５１５で、ボリュームＡの「Ｎ」が「３」、ボリュームＢの「Ｎ」が「２」、ボリュームＣの「Ｎ」が「１」であるため、ストレージ・クラスタ２は、クラスタ２に格納されたボリュームのコピーの数「Ｎ」の最小数が１であるということを認識する。同様に、ステップＳ５１５で、ストレージ・クラスタ４は、ボリュームのコピーの数「Ｎ」の最小数が２であるということを認識し、クラスタ６は、ボリュームのコピーの数「Ｎ」の最小数が１であるということを認識する。
【００５９】
この例では、ステップＳ５２０〜Ｓ５３５で、一次ストレージ・ティア１０５のドメイン内のボリュームＣのコピーの数が、クラスタ２によって認識された最小数（すなわち、１）に等しいため、クラスタ２がボリュームＣをマイグレーション・キューに追加する。一次ストレージ・ティア１０５のドメイン内のボリュームＢのコピーの数が、クラスタ４によって認識された最小数（すなわち、２）に等しいため、クラスタ４がボリュームＢをマイグレーション・キューに追加する。最後に、一次ストレージ・ティア１０５のドメイン内のボリュームＡのコピーの数が、クラスタ６によって認識された最小数（すなわち、３）に等しいため、クラスタ６がボリュームＡをマイグレーション・キューに追加する。
【００６０】
この例では、二次ストレージ１１０（すなわち、クラウド・ストレージ）に、クラスタ６からボリュームＡがコピーされ、クラスタ４からボリュームＢがコピーされ、クラスタ２からボリュームＣがコピーされる。本発明の実施形態の実装の結果として、マイグレーション動作から生じる負荷が、ドメイン内のストレージ・クラスタ間で効率的に分散され、マイグレーションの性能が最大化される。この場合も、一実施形態では、コピー動作の後の特定の期間の間、ＨＳＭシステムに接続されたホスト・コンピュータが、ボリュームＡ、Ｂ、およびＣを使用しない場合、それらのボリュームが一次ストレージから除去されるということに、注意するべきである。
【００６１】
本発明のさまざまな実施形態では、前述したように、二次ストレージがクラウド内の単一のターゲットであるということが仮定されてよい。本発明の他の実施形態では、二次ストレージが、２つ以上のクラウド・ストレージ・ノードを含んでいるクラウド・サービスを提供してよく、それらのノードの各々が、固有のユニフォーム・リソース・ロケータ（ＵＲＬ：uniform resource locator）を有している単一のターゲットであってよい。そのような実施形態では、例えば、日本国内および米国内に、それぞれストレージ・クラウド・ノードが確立されてよく、クラウド・サービスのベンダーが、ストレージ・クラウド・ノード間のデータの複製の責任を負ってよい。そのような複数のクラウド・ストレージ・ノードの状況では、ボリュームがストレージ・クラウド・ノードのうちの１つに書き込まれた後に、クラウド・サービスが、そのボリュームをクラウド・サービスの他のストレージ・クラウド・ノードにコピーしてよい。二次ストレージが複数のクラウド・サービスを含んでいる場合、一次ストレージのストレージ・クラスタが、マイグレーションされるボリュームを各クラウド・サービスの二次ストレージにコピーしてよい。
【００６２】
図９は、本発明の一実施形態に従って、ホスト・コンピュータ１１５、ストレージ・クラスタ１２０、または第２のストレージ・ティア１１０などのコンピューティング・プラットフォーム、あるいはその組み合わせによって具現化されてよい、データ処理デバイス１０の好ましいハードウェア構成の例を表す図を示している。データ処理デバイス１０は、例えば、汎用コンピューティング・デバイス、サーバ、または図１を参照して説明された任意のその他の種類のコンピューティング・プラットフォームなどの、コンピューティング・プラットフォームであってよい。図９に示されているように、データ処理デバイス１０は、例えば、コンピュータ・システム／サーバ１２であるか、コンピュータ・システム／サーバ１２を含むか、またはその他の方法でコンピュータ・システム／サーバ１２によってサポートされてよい。コンピュータ・システム／サーバ１２のコンポーネントは、例えば、１つまたは複数のプロセッサまたはプロセッシング・ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含むさまざまなシステム・コンポーネントをプロセッサ１６に結合するためのバス１８を含んでよい。
【００６３】
バス１８は、さまざまなバス・アーキテクチャのいずれかを使用する、メモリ・バス、メモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、プロセッサまたはローカル・バスなどを含む、任意の種類のバス構造またはデバイスを表す。例えば、バス構造は、ＩＳＡ（industry standard architecture）バス、ＭＣＡ（micro-channel architecture）バス、ＥＩＳＡ（enhanced ISA）バス、ＶＥＳＡ（video electronics standards association）ローカル・バス、ＰＣＩ（peripheral component interconnect）バスなどであるか、これらを含んでよい。
【００６４】
コンピュータ・システム／サーバ１２は、通常、例えばさまざまなコンピュータ・システム可読媒体を含んでよい。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセスできる任意の使用可能な種類の媒体であってよく、例えば、揮発性および不揮発性媒体、ならびに取り外し可能および取り外し不可の媒体を含んでよい。
【００６５】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性コンピュータ・システム可読媒体を含んでよい。コンピュータ・システム／サーバ１２は、その他の取り外し可能／取り外し不可、および揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体（図示されておらず、通常は「ハード・ドライブ」と呼ばれる）に対する読み取りと書き込みを行うために、ストレージ・システム３４が提供されてよい。図示されていないが、取り外し可能、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、各々が、１つまたは複数のデータ媒体インターフェイスによってバス１８に接続されてよい。下で詳細に示され、説明されているように、メモリ２８は、本明細書に記載された本発明のさまざまな機能を実行するように構成され得る実行用の一連の（すなわち、少なくとも１つのセットの）プログラム・モジュールまたは命令を備える少なくとも１つのプログラム製品を含んでよい。
【００６６】
コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体であってよい。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、電磁気、光、赤外線、または半導体システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせであってよい。例えば、コンピュータ可読ストレージ媒体は、１つまたは複数のワイヤを含む電気的接続、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の適切な組み合わせであるか、あるいはこれらを含んでよい。本発明との関連においてコンピュータ可読ストレージ媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって、またはこれらに関連して使用するためのプログラムを含むか、または格納することができる任意の有形の媒体であってよい。
【００６７】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが具現化された伝搬データ信号を（例えば、ベースバンドに、または搬送波の一部として）含んでよい。そのような伝搬信号は、電磁気、光、これらの任意の適切な組み合わせなどの、さまざまな形態をとってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、またはデバイスによって、またはそれらに関連して使用または実行するために、プログラムまたはプログラム命令を伝達、伝搬、または搬送するため使用できる、任意のコンピュータ可読媒体であってよい。
【００６８】
コンピュータ可読媒体上で具体化されたプログラム・コードは、例えば、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ：radio-frequency）など、またはこれらの任意の適切な組み合わせを含む、任意の適切な媒体を使用して送信されてよい。
【００６９】
一連の（すなわち、少なくとも１つのセットの）プログラム・モジュール４２を含んでいるプログラム／ユーティリティ４０が、例えば、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、プログラム・モジュール、または任意のその他の形態のプログラム・データなどによって、メモリ２８に格納されてよく、ネットワーク環境の実装において、個別に、またはさまざまな組み合わせで、使用されてよい。通常、プログラム・モジュール４２は、本明細書において説明されている本発明のさまざまな機能または方法を実行することにおいて使用されてよい。
【００７０】
コンピュータ・システム／サーバ１２は、ディスプレイ２４、または１つまたは複数の外部デバイス１４（キーボード、ポインティング・デバイス、または任意のその他の種類のユーザ・インターフェイスもしくは入出力（Ｉ／Ｏ：input/output）デバイスなど）、あるいはその両方と通信してよい。ディスプレイ２４は、例えば、データまたは情報をユーザに表示するためのインターフェイスまたはメカニズムを提供するために使用されてよく、例えば、ディスプレイ、モニタ、テレビ画面などであってよい。
【００７１】
通常、コンピュータ・システム／サーバ１２は、ユーザの対話を可能にすることにおいて使用される任意の種類のデバイスと通信してよい。さらに、コンピュータ・システム／サーバ１２は、コンピュータ・システム／サーバ１２、１つまたは複数の他のコンピューティング・デバイス、またはプラットフォームの間での通信を可能にすることにおいて使用され得る、ネットワーク・カード、モデムなどを含む、任意の種類のデバイスと通信してよい。そのような通信は、例えば、Ｉ／Ｏインターフェイス２２によって発生してよい。さらに、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、パブリック・ネットワーク（例えば、インターネット）などの１つまたは複数のネットワークと、ネットワーク・アダプタ２０などによって通信してよい。図９に示されているように、ネットワーク・アダプタ２０は、バス１８によってコンピュータ・システム／サーバ１２の他のコンポーネントと通信してよい。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム／サーバ１２によって、またはコンピュータ・システム／サーバ１２と共に、使用され得るということが、理解されるべきである。そのようなハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方は、例えば、１つまたは複数のマイクロコード、デバイス・ドライバ、冗長なプロセッシング・ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ保管ストレージ・システムなどを含んでよい。
【００７２】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【００７３】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー（Ｒ）・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００７４】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【００７５】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate array）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic array）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズするためのコンピュータ可読プログラム命令を実行してよい。
【００７６】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００７７】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【００７８】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００７９】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００８０】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【００８１】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００８２】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス：クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する。
リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、高い抽象レベルで場所（例えば、国、州、またはデータセンター）を指定できる場合がある。
迅速な順応性：クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【００８３】
サービス・モデルは、次のとおりである。
ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザなどのシン・クライアント・インターフェイスを介して（例えば、Ｗｅｂベースの電子メール）、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御できる。
【００８４】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド：このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項）を共有している特定のコミュニティをサポートする。これらの組織またはサードパーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションのポータビリティを可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト）によって固有の実体を残したまま互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００８５】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【００８６】
ここで図１０を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、パーソナル・デジタル・アシスタント（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組み合わせなど）が通信できる１つまたは複数のクラウド・コンピューティング・ノード１２を含んでいる。ノード１２は、互いに通信してよい。ノード１２は、１つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい（図示されていない）。これによって、クラウド・コンピューティング環境５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはＳａａＳ、あるいはその組み合わせを提供できる。図１０に示されたコンピューティング・デバイス５４Ａ〜Ｎの種類は、例示のみが意図されており、コンピューティング・ノード１２およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【００８７】
ここで図１１を参照すると、クラウド・コンピューティング環境５０（図１０）によって提供される機能的抽象レイヤのセットが示されている。図１１に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【００８８】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーク・コンポーネント６６を含む。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００８９】
仮想化レイヤ７０は、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５などの仮想的実体を提供できる抽象レイヤを備える。
【００９０】
一例を挙げると、管理レイヤ８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書送付（billing）またはインボイス送付（invoicing）を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのＩＤ検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理８４は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行８５は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００９１】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育の配信９３、データ解析処理９４、トランザクション処理９５、および階層型ストレージ管理９６が挙げられる。階層型ストレージ管理９６は、本発明の実施形態に従って、クラウド・コンピューティング環境を、階層型ストレージ管理システムでのデータ・マイグレーション管理において使用できるようにする機能を含んでよい。
【００９２】
本発明は、その特定の実施形態例を参照して示され、説明されたが、本明細書での形態および詳細におけるさまざまな変更が、添付の特許請求の範囲およびそれらと同等のものによって定義された本発明の範囲を逸脱することなく行われてよいということが、当業者によって理解されるであろう。したがって本発明は、制限ではなく、説明の目的で、例として開示された。
【図１】
2021513137.tif 000003
【図２】
2021513137.tif 000004
【図３】
2021513137.tif 000005
【図４】
2021513137.tif 000006
【図５】
2021513137.tif 000007
【図６】
2021513137.tif 000008
【図７】
2021513137.tif 000009
【図８】
2021513137.tif 000010
【図９】
2021513137.tif 000011
【図１０】
2021513137.tif 000012
【図１１】
2021513137.tif 000013
【手続補正書】
【提出日】令和3年3月24日(2021.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
階層型ストレージ管理システム内のデータ単位に対するコピー動作を管理するコンピュータ実装方法であって、前記管理システムが上位レイヤおよび下位レイヤを含んでおり、前記上位レイヤが、多重化されたグリッド構成で通信するためにストレージ・ノードが配置されたドメインを含んでおり、各データ単位が、前記ストレージ・ノードのうちの１つまたは複数に格納され、前記方法が、
前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数にそれぞれ格納されている前記データ単位のコピーの最小数を決定することであって、前記決定が、前記多重化されたグリッドを経由して、前記コピーをそれぞれ格納している前記ストレージ・ノードのうちの１つまたは複数から受信されたデータに基づいて行われる、前記決定することと、
データ単位のコピーの最小数が格納されているストレージ・ノードによるコピー動作の実行のために、対応する各データ単位に対するコピー動作をスケジューリングすることと、
前記下位レイヤへの各データ単位の各マイグレーションのために、各データ単位に対する前記スケジューリングに従って前記コピー動作を実行することとを含む、コンピュータ実装方法。
【請求項２】
前記管理システムに接続されたコンピューティング・デバイスから、前記ストレージ・ノードのうちの１つまたは複数に格納されたデータ単位に対応する書き込み要求を受信することであって、前記データ単位が、前記データ単位のコピーが格納され得る１つまたは複数の許可されたストレージ・ノードを指定する、関連付けられたコピー・ポリシーを含んでおり、前記コピー・ポリシーが、前記コピーが前記１つまたは複数の許可されたストレージ・ノードに格納され得る期間をさらに指定する、受信することと、
前記書き込み要求を実行して、前記コピー・ポリシーに従って、前記１つまたは複数の許可されたストレージ・ノードに関して、前記データ単位に対して対応する書き込み動作を実行することとをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
各データ単位に対して、前記スケジューリングに従って前記コピー動作を実行することが、それぞれ対応するストレージ・ノードから各データ単位がコピーされる回数を１に制限することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記下位レイヤが、前記上位レイヤ内の前記１つまたは複数のストレージ・ノードのいずれのデータ取得速度および可用性のレベルよりも低いデータ取得速度および可用性のレベルをそれぞれ有するストレージ・ノードを含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記下位レイヤが、メモリ・プールを提供するように抽象化された、仮想化されたメモリ・リソースを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記仮想化されたメモリ・リソースが、クラウド・コンピューティング層によって抽象化される、請求項５に記載のコンピュータ実装方法。
【請求項７】
各ストレージ・ノードが、対応するデータ単位が格納されている前記ストレージ・ノードのうちの１つまたは複数を識別するために、前記ストレージ・ノードの各々の個別のデータベースと通信するための前記多重化されたグリッドに接続されたデータベースを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、コピーされる前記データ単位のコピーが、前記ストレージ・ノードのうちの１つまたは複数に格納されており、コピー動作が、既定のしきい値を超える時間の間、前記データ単位に対して実行されていないということの決定に基づいて選択される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記コピー動作をスケジューリングすることが、
前記ドメイン内のストレージ・ノードによって、コピーされる対応するデータ単位に対する前記コピー動作の前記実行のために、前記ドメイン内の前記ストレージ・ノードのうちの１つまたは複数を選択することを含んでおり、前記ストレージ・ノードが、前記ストレージ・ノード自体が、コピーされる前記データ単位のコピーを格納しており、前記ストレージ・ノード自体に格納されている前記データ単位のコピーの数が、前記ドメイン内の前記他のストレージ・ノードのいずれに格納されている前記データ単位のコピーの数よりも少ないということの決定に基づいて選択される、請求項１に記載のコンピュータ実装方法。
【請求項１０】
請求項１乃至９のいずれか一項に記載のコンピュータ実装方法を実行するプロセッサを備えたコンピュータ・システム。
【請求項１１】
プロセッサに、請求項１乃至９のいずれか一項に記載のコンピュータ実装方法を実行させるためのプログラム。
【国際調査報告】
2021513137.tif 000014
2021513137.tif 000015