(57)【要約】【課題】テープ処理をオブジェクト・ストレージにオフロードするためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステムを提供する。【解決手段】一実施形態によれば、コンピュータ実装方法は、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、このデータ・ボリューム内のデータを、データの部分に対応するメタデータからのテナント識別子を使用してオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、オブジェクトをオブジェクト・ストレージに格納することとを含む。追加の実施形態では、他のシステム、方法、およびコンピュータ・プログラム製品が説明される。【選択図】図６
2020504861.tif 000002
【特許請求の範囲】
【請求項１】
複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記オブジェクトをオブジェクト・ストレージに格納することと
を含んでいる、コンピュータ実装方法。
【請求項２】
前記データ・ボリュームがクラウドベースの分散システムで受信され、前記クラウドベースの分散システム内で動作する少なくとも１つのプログラムが、前記ボリューム内の前記データを前記オブジェクトに分離するために使用される、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記仮想テープ・ライブラリが前記ボリューム内の前記データを前記オブジェクトに分離する、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記データ・ボリュームが、メインフレームから受信された仮想テープ・ライブラリ・ボリュームを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記データ・ボリュームが前記仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納され、前記オブジェクト・ストレージが前記仮想テープ・ライブラリ内のメモリの第２の指定された部分である、請求項４に記載のコンピュータ実装方法。
【請求項６】
テナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することが、
テナント識別子が前記オブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することと、
前記テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、前記テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することと、
前記テナント識別子に関連付けられた前記データの部分を前記新しいオブジェクトに追加することと、
前記テナント識別子が既存のオブジェクトに対応するということの決定に応答して、前記既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定することと、
前記既存のオブジェクトの前記オブジェクト・サイズがしきい値を超えているということの決定に応答して、前記テナント識別子を使用して新しいオブジェクトを作成することと、
前記テナント識別子に関連付けられた前記データの前記部分を前記新しいオブジェクトに追加することと、
前記既存のオブジェクトの前記オブジェクト・サイズが前記しきい値を超えていないということの決定に応答して、前記テナント識別子に関連付けられた前記データの前記部分を前記既存のオブジェクトに追加することと
を含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項７】
新しいテナント・アカウントを作成することが、
新しいオブジェクトの認証情報を作成することと、
新しいファイルの認証情報を作成することと、
ストレージ・ポリシーを作成することと、
暗号化ポリシーを作成することと、
ファイル・アクセス制御リストを変更することと、
ファイル・アクセス・プロトコルを有効化することと
を含んでいる、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記テナントのうちの１つからデータ要求を受信することに応答して、前記データ・ボリューム内の前記データがオブジェクトに分離される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記データ・ボリューム内の前記データの分離先になった前記オブジェクトに関する情報で前記メタデータを更新することを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１０】
プログラム命令が具現化されているコンピュータ可読記憶媒体を備えているコンピュータ・プログラム製品であって、前記プログラム命令が、プロセッサに、
前記プロセッサによって、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記プロセッサによって、前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記プロセッサによって、前記オブジェクトをオブジェクト・ストレージに格納することと
を実行させるように、前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項１１】
前記データ・ボリュームがクラウドベースの分散システムで受信され、前記クラウドベースの分散システム内で動作する少なくとも１つのプログラムが、前記ボリューム内の前記データを前記オブジェクトに分離するために使用される、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記仮想テープ・ライブラリが前記ボリューム内の前記データを前記オブジェクトに分離する、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１３】
前記データ・ボリュームが、メインフレームから受信された仮想テープ・ライブラリ・ボリュームを含んでいる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１４】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記データ・ボリュームが前記仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納され、前記オブジェクト・ストレージが前記仮想テープ・ライブラリ内のメモリの第２の指定された部分である、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１５】
テナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することが、
テナント識別子が前記オブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することと、
前記テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、前記テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することと、
前記テナント識別子に関連付けられた前記データの部分を前記新しいオブジェクトに追加することと、
前記テナント識別子が既存のオブジェクトに対応するということの決定に応答して、前記既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定することと、
前記既存のオブジェクトの前記オブジェクト・サイズがしきい値を超えているということの決定に応答して、前記テナント識別子を使用して新しいオブジェクトを作成することと、
前記テナント識別子に関連付けられた前記データの前記部分を前記新しいオブジェクトに追加することと、
前記既存のオブジェクトの前記オブジェクト・サイズが前記しきい値を超えていないということの決定に応答して、前記テナント識別子に関連付けられた前記データの前記部分を前記既存のオブジェクトに追加することと
を含んでいる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１６】
新しいテナント・アカウントを作成することが、
新しいオブジェクトの認証情報を作成することと、
新しいファイルの認証情報を作成することと、
ストレージ・ポリシーを作成することと、
暗号化ポリシーを作成することと、
ファイル・アクセス制御リストを変更することと、
ファイル・アクセス・プロトコルを有効化することと
を含んでいる、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記データ・ボリューム内の前記データの分離先になった前記オブジェクトに関する情報で前記メタデータを更新することを含んでいる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１８】
プロセッサと、
前記プロセッサと統合されたか、前記プロセッサによって実行可能であるか、または前記プロセッサと統合され、かつ前記プロセッサによって実行可能である論理と
を備えているシステムであって、前記論理が、
複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記オブジェクトをオブジェクト・ストレージに格納することと
を実行するよう構成されている、システム。
【請求項１９】
前記データ・ボリュームがメインフレームから受信された仮想テープ・ライブラリ・ボリュームを含んでおり、前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記データ・ボリュームが前記仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納され、前記オブジェクト・ストレージが前記仮想テープ・ライブラリ内のメモリの第２の指定された部分である、請求項１８に記載のシステム。
【請求項２０】
テナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することが、
テナント識別子が前記オブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することと、
前記テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、前記テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することと、
前記テナント識別子に関連付けられた前記データの部分を前記新しいオブジェクトに追加することと、
前記テナント識別子が既存のオブジェクトに対応するということの決定に応答して、前記既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定することと、
前記既存のオブジェクトの前記オブジェクト・サイズがしきい値を超えているということの決定に応答して、前記テナント識別子を使用して新しいオブジェクトを作成することと、
前記テナント識別子に関連付けられた前記データの前記部分を前記新しいオブジェクトに追加することと、
前記既存のオブジェクトの前記オブジェクト・サイズが前記しきい値を超えていないということの決定に応答して、前記テナント識別子に関連付けられた前記データの前記部分を前記既存のオブジェクトに追加することと
を含んでいる、請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ・ストレージに関連し、より詳細には、本発明は接続されたデータ・ストレージ・システム全体でデータ・ストレージを管理することに関連する。
【背景技術】
【０００２】
従来のコンピュータ・ファイル・システムは、ツリー構造を使用して情報をデータベースに格納する。それらの従来のシステムは、ローカル・ハード・ドライブ上のデータなどの、少量のデータに対しては問題ないが、大量のデータを処理するように設計されておらず、したがって、大量のデータを処理することができない。したがって、企業がますます増える大量の構造化されていないコンテンツに対して、収集、格納、アクセス、転送などを行い続けるにつれて、従来のコンピュータ・ファイル・システムは、企業の要求を満たすことができなくなる。
【０００３】
ストレージ・エリア・ネットワーク（ＳＡＮ：storage area network）は、統合されたブロック・レベルのデータ・ストレージへのアクセスを提供するネットワークである。ＳＡＮは、ディスク・アレイやテープ・ライブラリなどのストレージ・デバイスが、オペレーティング・システムにとって、ローカルに取り付けられたデバイスのように見えるように、サーバがストレージ・デバイスにアクセスできるようにすることによって、ストレージ・デバイスを拡張するために主に使用される。したがって、データ・ストレージ・システムに含まれているデータを管理するために、さまざまなレベルの処理能力を有するストレージ・デバイスが集合的に使用されてよい。さらに、ＳＡＮは、広い地理的領域をカバーする広域ネットワーク（ＷＡＮ：wide area network）上で実装されてよい。ＳＡＮに含まれる物理データ・ストレージ・インフラストラクチャは、クラウドベースのネットワークと統合されてもよい。したがって、ストレージ・デバイス同士の近接性に関わらず、それらのストレージ・デバイス間のアクセスを容易にすることができる。
【０００４】
オブジェクト・ストレージは、情報がオブジェクトして格納される、情報を格納する高度な技術を提供する。各オブジェクトは、ユーザまたはシステムあるいはその両方によって定義されたタグを含むことができるメタデータに加えて、データ自体（例えば、ビットおよびバイト）を格納する。メタデータは、対応するオブジェクトが他のオブジェクトにどのように関連しているか、データがどのように処理、複製、またはバックアップされるべきかなどの、データの内容を説明することができる。
【０００５】
さまざまなレベルの処理能力を有するデータ処理デバイスが集合的に使用されることがあるが、既存のデータ・ストレージ・システムは、多様なスループットを効率的に利用して、データ処理を実行することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、テープ処理をオブジェクト・ストレージにオフロードするためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステムを提供する。
【課題を解決するための手段】
【０００７】
一実施形態によれば、コンピュータ実装方法は、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、このデータ・ボリューム内のデータを、データの部分に対応するメタデータからのテナント識別子を使用してオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、オブジェクトをオブジェクト・ストレージに格納することとを含む。
【０００８】
別の実施形態によれば、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含んでおり、それらのプログラム命令は、プロセッサによって、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、プロセッサによって、データの部分に対応するメタデータからのテナント識別子を使用して、データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、プロセッサによって、オブジェクトをオブジェクト・ストレージに格納することとを、プロセッサに実行させるために、プロセッサによって実行可能である。
【０００９】
さらに別の実施形態によれば、システムは、プロセッサと、このプロセッサと統合されたか、このプロセッサによって実行可能であるか、またはこのプロセッサと統合され、かつこのプロセッサによって実行可能である論理とを含んでおり、この論理は、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、データの部分に対応するメタデータからのテナント識別子を使用して、データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、オブジェクトをオブジェクト・ストレージに格納することとを実行するように、構成されている。
【００１０】
本発明のその他の態様および実施形態は、本発明の原理を図面と併せて例として説明する、以下の詳細な説明から明らかになる。
【００１１】
ここで、添付の図面を単に例として参照し、本発明の実施形態について説明する。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に記載されたクラウド・コンピューティング・ノードを示す図である。
【図２】一実施形態に記載されたクラウド・コンピューティング環境を示す図である。
【図３】一実施形態に記載された抽象モデル・レイヤを表す図である。
【図４】一実施形態に記載された層型データ・ストレージ・システムを示す図である。
【図５】一実施形態に記載されたデータ・ストレージ・ネットワーク・アーキテクチャを示す図である。
【図６】一実施形態に記載された方法のフローチャートを示す図である。
【図７】一実施形態に記載された、図６の方法のサブプロセスのフローチャートを示す図である。
【図８】一実施形態に記載された、図７のサブプロセスの下位の動作のフローチャートを示す図である。
【発明を実施するための形態】
【００１３】
以下の説明は、本発明の一般的原理を説明する目的で行われるのであり、本明細書において請求される本発明の概念を制限するように意図されていない。さらに、本明細書に記載された特定の特徴を、さまざまな可能な各組み合わせおよび並べ替えで、その他の説明された特徴と組み合わせて使用することができる。
【００１４】
本明細書では、特に定義されない限り、すべての用語には、本明細書から示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味、あるいはその両方を含む、最も広い可能な解釈が与えられる。
【００１５】
本明細書および添付の特許請求の範囲において使用されるとき、単数形「ａ」、「ａｎ」および「ｔｈｅ」が、特に規定されない限り、複数の指示対象を含むということにも注意しなければならない。「備える（ｃｏｍｐｒｉｓｅ）」または「備えている（ｃｏｍｐｒｉｓｉｎｇ）」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組み合わせの存在を示すが、１つまたは複数のその他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していないということが、さらに理解されるであろう。
【００１６】
以下の説明は、接続されたデータ・ストレージ・システム全体でデータ・ストレージを管理するためのシステム、方法、およびコンピュータ・プログラム製品の複数の好ましい実施形態を開示する。本明細書に記載されたさまざまな実施形態は、ストレージ・ネットワーク全体で異なるデバイスによって提供されるさまざまなレベルの処理能力の効率的な使用を実現できる。結果として、システム・リソースを効率的に使用することができ、それによって、下でさらに詳細に説明されているように、データ・ストレージ・ネットワークの性能を全体的に向上させる。
【００１７】
１つの一般的な実施形態では、コンピュータ実装方法は、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、このデータ・ボリューム内のデータを、データの部分に対応するメタデータからのテナント識別子を使用してオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、オブジェクトをオブジェクト・ストレージに格納することとを含む。
【００１８】
別の一般的な実施形態では、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含んでおり、それらのプログラム命令は、プロセッサによって、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、プロセッサによって、データの部分に対応するメタデータからのテナント識別子を使用して、データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、プロセッサによって、オブジェクトをオブジェクト・ストレージに格納することとを、プロセッサに実行させるために、プロセッサによって実行可能である。
【００１９】
さらに別の一般的な実施形態では、システムは、プロセッサと、このプロセッサと統合されたか、このプロセッサによって実行可能であるか、またはこのプロセッサと統合され、かつこのプロセッサによって実行可能である論理とを含んでおり、この論理は、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、データの部分に対応するメタデータからのテナント識別子を使用して、データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応する、分離することと、オブジェクトをオブジェクト・ストレージに格納することとを実行するように、構成されている。
【００２０】
本開示にはクラウド・コンピューティングの詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないということが、あらかじめ理解される。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【００２１】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００２２】
特徴は、次のとおりである。
【００２３】
オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【００２４】
幅広いネットワーク・アクセス：クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する。
【００２５】
リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所（例えば、国、州、またはデータセンター）を指定できる場合がある。
【００２６】
迅速な順応性：クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、無制限に見え、任意の量をいつでも購入できる。
【００２７】
測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）に適した何らかの抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【００２８】
サービス・モデルは、次のとおりである。
【００２９】
ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザ（例えば、Ｗｅｂベースの電子メール）などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【００３０】
ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御する。
【００３１】
ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御し、場合によっては、選択されたネットワーク・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御する。
【００３２】
デプロイメント・モデルは、次のとおりである。
【００３３】
プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【００３４】
コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、および適合性に関する考慮事項）を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【００３５】
パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【００３６】
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷バランスを調整するためのクラウド・バースティング）によって固有の実体を残したまま互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００３７】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【００３８】
ここで図１を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード１０は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【００３９】
クラウド・コンピューティング・ノード１０内には、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に使用するのに適した周知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【００４０】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
【００４１】
図１に示されているように、クラウド・コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つまたは複数のプロセッサまたはプロセッシング・ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含むさまざまなシステム・コンポーネントをプロセッサ１６に接続するバス１８を含んでよいが、これらに限定されない。
【００４２】
バス１８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、複数の種類のバス構造のうちのいずれか１つまたは複数を表す。例として、そのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＰＣＩ（Peripheral Component Interconnects）バスを含むが、これらに限定されない。
【００４３】
コンピュータ・システム／サーバ１２は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【００４４】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、その他の取り外し可能／取り外し不可、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体（図示されておらず、通常は「ハード・ドライブ」と呼ばれる）に対する読み取りと書き込みを行うために、ストレージ・システム３４を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク（例えば、「フロッピー・ディスク」）に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、１つまたは複数のデータ媒体インターフェイスによってバス１８に接続することができる。下で詳細に示され、説明されているように、メモリ２８は、本発明の実施形態の機能を実行するように構成された一連の（例えば、少なくとも１つの）プログラム・モジュールを備える少なくとも１つのプログラム製品を含んでよい。
【００４５】
例えば、一連の（少なくとも１つの）プログラム・モジュール４２を含んでいるプログラム／ユーティリティ４０がメモリ２８に格納されてよいが、これに限定されず、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの何らかの組み合わせは、それぞれネットワーク環境の実装を含んでよい。プログラム・モジュール４２は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【００４６】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と情報をやりとりできるようにする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、あるいはその組み合わせと通信してもよい。そのような通信は、入出力（Ｉ／Ｏ：Input/Output）インターフェイス２２を介して行うことができる。さらに、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）、一般的な広域ネットワーク（ＷＡＮ：wide area network）、またはパブリック・ネットワーク（例えば、インターネット）、あるいはその組み合わせなどの１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。図示されているように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム／サーバ１２と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【００４７】
ここで図２を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、ＰＤＡ（personal digital assistant）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組み合わせなど）が通信できる１つまたは複数のクラウド・コンピューティング・ノード１０を含んでいる。ノード１０は、互いに通信してよい。ノード１０は、１つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい（図示されていない）。これによって、クラウド・コンピューティング環境５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはＳａａＳ、あるいはその組み合わせを提供できる。図２に示されたコンピューティング・デバイス５４Ａ〜Ｎの種類は、例示のみが意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【００４８】
ここで図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能的抽象レイヤのセットが示されている。図３に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【００４９】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーク・コンポーネント６６が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００５０】
仮想化レイヤ７０は、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５などの仮想的実体を提供できる抽象レイヤを備える。
【００５１】
一例を挙げると、管理レイヤ８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定８２は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのＩＤ検証を行うと共に、データおよびその他のリソースの保護を行う。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理８４は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行８５は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００５２】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育の配信９３、データ分析処理９４、トランザクション処理９５、および例えば下でさらに詳細に説明されている、クラウドベースの分散システム９６が挙げられる。
【００５３】
ここで図４を参照すると、一実施形態に従ってストレージ・システム３００が示されている。さまざまな実施形態に従って、図４に示された要素の一部が、ハードウェアまたはソフトウェアあるいはその両方として実装されてよいということに注意する。ストレージ・システム３００は、少なくとも１つの上位ストレージ層３０２上および少なくとも１つの下位ストレージ層３０６上の複数の媒体と通信するために、ストレージ・システム・マネージャ３１２を含んでよい。上位ストレージ層３０２は、好ましくは、ハード・ディスク・ドライブ（ＨＤＤ：hard disk drive）内のハード・ディスク、不揮発性メモリ（ＮＶＭ：nonvolatilememory）、半導体ドライブ（ＳＳＤ：solid state drive）内の半導体メモリ、フラッシュ・メモリ、ＳＳＤアレイ、フラッシュ・メモリ・アレイなど、または本明細書に記載されたか、もしくは従来技術において知られているその他の媒体、あるいはその組み合わせなどの、１つまたは複数のランダム・アクセスまたは直接アクセスあるいはその両方の媒体３０４を含むことができる。下位ストレージ層３０６は、好ましくは、テープ・ドライブ内の磁気テープもしくは光媒体またはその両方、低速アクセスＨＤＤ（slower accessing HDDs）、低速アクセスＳＤＤ（slower accessing SSDs）など、または本明細書に記載されたか、もしくは従来技術において知られているその他の順次アクセス媒体、あるいはその組み合わせなどの順次アクセス媒体を含む、１つまたは複数の下位で実行されるストレージ媒体３０８を含むことができる。１つまたは複数の追加ストレージ層３１６は、システム３００の設計者の要求に従って、ストレージ・メモリ媒体の任意の組み合わせを含むことができる。また、上位ストレージ層３０２または下位ストレージ層３０６あるいはその両方のうちのいずれかは、ストレージ・デバイスまたはストレージ媒体あるいはその両方の何らかの組み合わせを含むことができる。
【００５４】
ストレージ・システム・マネージャ３１２は、図４に示されたストレージ・エリア・ネットワーク（ＳＡＮ：storage area network）またはその他の何らかの適切なネットワーク・タイプなどのネットワーク３１０を介して、上位ストレージ層３０２上および下位ストレージ層３０６上のストレージ媒体３０４、３０８と通信することができる。ストレージ・システム・マネージャ３１２は、ストレージ・システム・マネージャ３１２の一部であってもなくてもよいホスト・インターフェイス３１４を介して、１つまたは複数のホスト・システム（図示されていない）と通信することもできる。ストレージ・システム３００のストレージ・システム・マネージャ３１２または任意のその他のコンポーネントあるいはその両方は、ハードウェア内またはソフトウェア内またはその両方に実装されてよく、従来技術において知られているタイプのコマンドを実行するために、中央処理装置（ＣＰＵ：central processing unit）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field programmable gate array）、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）などのプロセッサ（図示されていない）を利用することができる。当然、当業者が本説明を読んだときに明らかであろうように、ストレージ・システムの任意の配置が使用されてよい。
【００５５】
その他の実施形態では、ストレージ・システム３００は、任意の数のデータ・ストレージ層を含むことができ、各ストレージ層内の同じであるか、または異なるストレージ・メモリ媒体を含むことができる。例えば、各データ・ストレージ層は、ＨＤＤ、ＳＳＤ、順次アクセス媒体（テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど）、直接アクセス媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなど）、または媒体のストレージ・タイプの任意の組み合わせなどの、同じタイプのストレージ・メモリ媒体を含むことができる。そのような１つの構成において、上位ストレージ層３０２は、上位で実行されるストレージ環境内にデータを格納するためのＳＳＤストレージ媒体の大部分を含むことができ、下位ストレージ層３０６および追加ストレージ層３１６を含む残りのストレージ層は、データを下位で実行されるストレージ環境内に格納するために、ＳＳＤ、ＨＤＤ、テープ・ドライブなどの任意の組み合わせを含むことができる。このようにして、より頻繁にアクセスされるデータ、優先度の高いデータ、より素早くアクセスされる必要のあるデータなどは、上位ストレージ層３０２に格納されてよく、これらの属性のいずれかを持たないデータは、下位ストレージ層３０６を含む追加ストレージ層３１６に格納されてよい。当然、当業者は、本説明を読んだときに、本明細書において提示された実施形態に従って、異なるストレージ方式で実装するために、ストレージ媒体のタイプの多くのその他の組み合わせを考案することができる。
【００５６】
一部の実施形態に従って、ストレージ・システム（３００など）は、データ・セットを開くための要求を受信するように構成された論理、要求されたデータ・セットが、複数の関連する部分において、層型データ・ストレージ・システム３００の下位ストレージ層３０６に格納されているかどうかを判定するように構成された論理、要求されたデータ・セットの関連する各部分を層型データ・ストレージ・システム３００の上位ストレージ層３０２に移動するように構成された論理、および層型データ・ストレージ・システム３００の上位ストレージ層３０２上の要求されたデータ・セットを関連する部分から組み立てるように構成された論理を含むことができる。
【００５７】
当然、この論理は、さまざまな実施形態に従って、任意のデバイス上またはシステム上あるいはその両方での方法として、またはコンピュータ・プログラム製品として実装されてよい。
【００５８】
前述したように、さまざまなレベルの処理能力（例えば、スループット）を有するデータ処理デバイスが集合的に使用されることがあるが、既存のデータ・ストレージ・システムは、それらの多様なスループットを効率的に利用しない。より大きいスループットを有しているデバイスは、より多くのシステム・リソースを使用する。例えば、メインフレーム・タイプのデバイスは、特により低いスループットを有している他の分散型デバイスと比較して、膨大な処理能力を有しているが、それに相当する量のシステム・リソースも使用する。しかし、高スループットのデバイスを使用して重要でないタスクを実行する場合、かなりの量のシステム・リソースが非効率的に使用される。
【００５９】
それとは際立って対照的に、本明細書に記載されたさまざまな実施形態は、ネットワーク全体で異なるデバイスによって提供されるさまざまなレベルの処理能力の効率的な使用を実現するデータ・ストレージ・ネットワークを含んでよい。結果として、システム・リソースを節約し、効率的に使用することができ、それによって、データ・ストレージ・ネットワークの性能を全体的に向上させる。さらに、下でさらに詳細に説明されているように、データを格納する方法によって、データ・アクセス要求のシステム性能をさらに向上させることができる。
【００６０】
一部の実施形態によれば、高スループットのデバイスからデータをオフロードし、そのデータに対して特定の動作を実行することによって、システム・リソースをより効率的に使用することができる。図５を参照すると、一実施形態に従って、データ・ストレージ・ネットワーク４００が示されている。任意選択として、本データ・ストレージ・ネットワーク４００は、他の図を参照して説明されている特徴などの、本明細書に示されている任意の他の実施形態からの特徴と共に、実装されてよい。ただし、そのようなデータ・ストレージ・ネットワーク４００および本明細書において提示されている他のものは、本明細書に示されている例示的な実施形態において具体的に説明されていることもあれば、説明されていないこともあるさまざまな応用または並べ替えあるいはその両方において、使用されてよい。さらに、本明細書において提示されているデータ・ストレージ・ネットワーク４００は、任意の望ましい環境内で使用されてよい。図５（および他の図）は、可能性のある任意の並べ替えを含むと見なされてよい。
【００６１】
データ・ストレージ・ネットワーク４００は、データ処理デバイス４０４に接続された高スループットのデバイス４０２と、クラウドベース、ＷＡＮベースなどであってよい分散システム４０６とを含む。次に、分散システム４０６は、いずれかの望ましいオペレーティング・システムを使用して動作してよい任意の数の分散ハードウェア・プラットフォーム（distributed hardware platforms）４０８に接続されてよい。高スループットのデバイス４０２は、ユーザ、テナント、他のストレージ・システム、またはネットワーク、あるいはその組み合わせなどからデータのストリームを受信する、メインフレームであってよく、それによって、データ処理デバイス４０４よりも高いスループットを有してよい。本発明を限定するよう全く意図されていない例示的なアプローチによれば、高スループットのデバイス４０２は、ｚ／ＯＳ、ｚ／ＴＰＦ、ｚ／ＶＭ、ｚ／ＶＳＥなどのオペレーティング・システムを実装するＩＢＭ  ｚ  Ｓｙｓｔｅｍｓメインフレームであってよい。さらに、別のアプローチによれば、データ処理デバイス４０４は、例えば図４を参照して上で説明されたような、仮想テープ・システムであってよい。したがって、高スループットのデバイス４０２が、大量のリソースを使用するデータ処理動作を実行するために使用されてよく、一方、デバイス４０４が、あまりリソースを使用しない処理動作を実行するために使用される。
【００６２】
本発明を限定するよう全く意図されていない１つのアプローチによれば、高スループットのデバイス４０２は、重要でないデータ・ボリューム処理を、データ処理デバイス４０４にオフロードするか、または分散システム４０６を介して、他の分散システムもしくはハードウェア・プラットフォーム４０８にオフロードするか、あるいはその両方にオフロードしてよい。このデータ・ボリューム処理のオフロードは、高スループットのデバイス４０２での、そのような処理の実行に関連付けられたシステム・リソースの不必要な利用を防ぐために、実行されてよい。代替として、重要でないデータ・ボリューム処理は、この処理を実行するためにシステム・リソースをあまり利用しないデータ処理デバイスを使用して、実行されてよい。一部のアプローチによれば、データ・ボリュームは、１つまたは複数の仮想テープ・ライブラリ・ボリュームとして、ストレージ・システム内の位置間で移動されてよい。
【００６３】
一部の実施形態によれば、例えばデータが処理された後に、データが格納され得る方法をさらに改善するために、オブジェクト・ストレージが利用されてよい。下でさらに詳細に説明されているように、データをオブジェクトとしてオブジェクト・ストレージに格納することによって、アクセス時間を短縮し、データ・ストリームの汚染のリスクをさらに低下させることができる。
【００６４】
ここで図６を参照すると、一実施形態に従って、コンピュータ実装方法５００のフローチャートが示されている。方法５００は、他の図（図５など）を参照して説明されている環境などの、本明細書において示されているいずれかの環境内で、本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図６において具体的に説明された動作よりも多いか、または少ない動作が方法５００に含まれてよい。
【００６５】
方法５００の各ステップは、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな実施形態では、方法５００は、コントローラ、プロセッサなど、または１つまたは複数のプロセッサを備えているその他の何らかのデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを含んでいるプロセッサ（例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ）が、方法５００の１つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。プロセッサの例は、中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスを含むが、これらに限定されない。
【００６６】
図６に示されているように、方法５００の動作５０２は、複数のテナントからのデータを含んでいる１つまたは複数のデータ・ボリュームを受信することを含む。前述したように、メインフレームなどの高スループットのデバイスは、ユーザ、テナント、他のストレージ・システム、またはネットワーク、あるいはその組み合わせなどから、データを受信してよい。さらに、データは、１つまたは複数の仮想テープ・ライブラリ・ボリュームとして受信されてよい。本説明を参照するときに、「テナント」は、例えば図５に示されているシステムを使用して、方法５００のプロセスのいずれかに従って格納されるか、または処理されるか、あるいはその両方が実行されるようにデータをサブミットする、任意の人または実体であってよい。
【００６７】
本発明を限定するよう全く意図されていない例によれば、クレジット・カード会社が、複数の小売業に対応するデータを含んでいる１つまたは複数のデータ・ボリュームを送信してよい。この例では、複数の小売業が、テナントであると見なされる。したがって、クレジット・カード会社から受信されたデータ・ボリュームには、複数のテナントからのデータが含まれている。したがって、例えば間もなく明らかになるであろうように、含まれている複数の異なるテナントに従って、動作５０２で受信された１つまたは複数のデータ・ボリュームを分離することが望ましいことがある。
【００６８】
さらに図６を参照すると、動作５０４が、受信されたデータに対応するメタデータからテナント識別子を抽出することを含んでいる。やはり、データ・ボリュームは、複数のテナントからのデータを含んでよい。したがって、受信された１つまたは複数のデータ・ボリュームが、各データ・ボリュームに含まれている各テナントに対応するメタデータも含むのが好ましい。１つのアプローチによれば、テナント識別子を含んでいるメタデータが、受信された仮想テープ・ライブラリ・ボリュームの一部（例えば、仮想ボリュームのヘッダーまたはトレーラーあるいはその両方）に含まれてよい。
【００６９】
テナント識別子は、各テナントに関連付けられたデータを区別するために使用されてよい。したがって、動作５０６は、メタデータからのテナント識別子を使用してデータ・ボリューム内のデータをオブジェクトに分離することを含んでいる。やはり、各テナント識別子は、特定のテナントに関連付けられたデータの部分に対応しており、したがって、データが関連付けられているテナントに従う部分によって、データ・ボリュームを分離するために使用されてよい（例えば、図７を参照）。したがって、各オブジェクトが各テナントに対応するのが好ましい。さらに、データ・ボリューム内のデータがオブジェクトに分離された後に、方法５００が、オブジェクトをオブジェクト・ストレージに格納することを含む動作５０８に進む。
【００７０】
オブジェクト・ストレージは、情報がオブジェクトして格納される、情報を格納する高度な技術を提供する。各オブジェクトは、ユーザまたはシステムあるいはその両方によって定義されたタグを含むことができるメタデータに加えて、データ自体（例えば、ビットおよびバイト）を格納する。メタデータは、対応するオブジェクトが他のオブジェクトにどのように関連しているか、データがどのように処理、複製、またはバックアップされるべきかなどの、データの内容を説明することができる。好ましいアプローチによれば、特定のオブジェクトのメタデータは、データが関連付けられているテナントを含む。
【００７１】
オブジェクト・ストレージの価値を高め、オブジェクト内のデータにアクセスできる速度を向上するように、オブジェクト・ストレージが開発されているという進歩を考慮して、分離されたデータはオブジェクト・ストレージに格納されてよい。一実施形態によれば、通常は「ストアレット（storlet）」と呼ばれる組み込みの計算エンジンが、オブジェクト・ストレージ内で実装されてよい。したがって、ストアレットは、計算コンポーネントが内部に格納されているデータ・ストレージ・オブジェクトであり、これによって、オブジェクト・ストレージがデータに対して計算を実行できるようにする。これは、データを計算ノードまたはサーバに移動して任意の望ましい計算を実行する別の従来のプロセスと比較した場合に、特に望ましい。例示的なアプローチによれば、Ｏｐｅｎｓｔａｃｋ  Ｓｗｉｆｔストアレットが使用されてよい。Ｓｗｉｆｔオブジェクト・ストレージに関しては、動的な大きいオブジェクトをサポートする機能が存在してよく、この機能を使用して、ＯｐｅｎＳｔａｃｋ  Ｓｗｉｆｔが、固定されたセグメント・サイズに従って大きいオブジェクトをより小さい複数のオブジェクトに分離できるようにしてよく、この機能は、読み取り要求の受信時に、複数のセグメントを１つのオブジェクトに再び組み立てる能力を提供する。
【００７２】
ストアレットは、さまざまな構文解析モジュールを受け入れるように一般化されてよく、これらの構文解析モジュールを使用して、データを構文解析する方法に関する基準を決定し、テナント識別子に基づいてデータをサブオブジェクトに分離することができる。例えば、データの形式または分離されたデータ（オブジェクト）の分散あるいはその両方に関連付けられたさまざまなキーが提供されてよい。上で示唆したように、ストアレットを使用してデータ・ボリュームを構文解析し、提供されること、メモリに格納されることなどが行われてよい構文解析キーに従って、一意のテナント・レコード（tenant records）を検出することができる。一部のアプローチによれば、関連付けられたテナントに基づいてデータを分離するために使用される構文解析キーは、使用できるテープのヘッダー情報またはトレーラー情報あるいはその両方に格納されてよい。
【００７３】
呼び出し方法と共にストアレットの計算タスクを登録するためのフレームワークが、提供されてもよい。一部のアプローチによれば、ストアレットは、計算ノードによる実行のために、計算ノード上でプロビジョニングされるか、またはデプロイされるか、あるいはその両方を実行され得る。ストアレットが実行される場合、計算ノード上でストアレットを実行する効率が、ストアレットが実行する動作のタイプ、または計算ノードの機能および役割、あるいはその両方によって決まってよい、ということにも注意するべきである。
【００７４】
図６に含まれている動作の実行は、方法５００が実行される（executed）（例えば、実行される（performed））場所または方法あるいはその両方に応じて変化してよい。例えば、オブジェクトをオブジェクト・ストレージに格納するプロセスは、データ・ボリュームが受信されるか、または処理される（分離される）か、あるいはその両方が実行される場所に応じて、オブジェクト・ストレージの場所または実装あるいはその両方に関して、変化してよい。
【００７５】
図５および６を一緒に参照すると、本発明を限定するよう全く意図されていない１つの実施形態例によれば、動作５０２で受信される１つまたは複数のデータ・ボリュームは、高スループットのデバイス４０２（例えば、メインフレーム）からデータ処理デバイス４０４（例えば、仮想テープ層（virtual tape tier））で受信されてよい。したがって、データ・ボリュームは、高スループットのデバイス４０２ではなく、データ処理デバイス４０４で分離されてよく、それによって、前述したように、システム・リソースを節約するのが望ましい。一実施形態によれば、データ処理デバイス４０４は仮想テープ・ライブラリであってよく、１つまたは複数のデータ・ボリュームが、ファイバ接続（ＦＩＣＯＮ：fibre connection）のテープを使用して受信されてよい。ただし、本説明を読んでいる当業者によって理解されるであろうように、異なる実施形態では、任意のその他の望ましいタイプのプロトコルが使用されてよい。さらに、一部のアプローチでは、仮想テープ・ライブラリは二重機能性を有してよい。例えば、受信されたデータ・ボリュームは、仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納されてよく、一方、オブジェクト・ストレージは、仮想テープ・ライブラリ内のメモリの第２の指定された部分であってよい。したがって、データ処理デバイス４０４によってデータ・ボリューム内のデータがオブジェクトに分離された後に、それらのオブジェクトは、データ処理デバイス４０４内のメモリの第２の指定された部分で、オブジェクト・ストレージに格納されてよい。
【００７６】
引き続き図５および６を一緒に参照すると、やはり本発明を限定するよう全く意図されていない別の実施形態例によれば、動作５０２で受信される１つまたは複数のデータ・ボリュームは、データ処理デバイス４０４（例えば、仮想テープ層）または高スループットのデバイス４０２（例えば、メインフレーム）あるいはその両方から分散システム４０６で受信されてよい。したがって、分散システム４０６で動作する少なくとも１つのプログラムが、動作５０６を実行するために使用されてよく、それによって、ボリューム内のデータをオブジェクトに分離する。前述したように、少なくとも１つのプログラムは、分散システム４０６自体のオブジェクト・ストレージ内に実装されたストアレットであってよい。したがって、やはりデータ・ボリュームは、高スループットのデバイス４０２ではなく、分散システム４０６によって分離されてよく、それによって、システム・リソースを節約するのが望ましい。
【００７７】
一部の実施形態によれば、分離された部分が格納される場所とは異なる場所で、データ・ボリュームが分離されてよい、ということにも注意するべきである。例えば、仮想テープ・ライブラリは、１つまたは複数の仮想テープ・ライブラリ・ボリュームをメインフレームから受信してよく、これらの仮想テープ・ライブラリ・ボリュームは複数のテナントからのデータを含んでいる。仮想テープ・ライブラリ自体は、例えばテナント識別子を使用して、仮想テープ・ライブラリ・ボリューム内のデータをオブジェクトに分離してよい。一部のアプローチでは、それらのオブジェクトは、仮想テープ・ライブラリに（例えば、前述したように、オブジェクト・ストレージとして指定されている、仮想テープ・ライブラリ内のメモリの一部に）格納されてよい。ただし、他のアプローチでは、データがオブジェクトに分離された後に、それらのオブジェクトは、１つまたは複数の異なるストレージの場所で、オブジェクト・ストレージに送信されてよい。１つのアプローチによれば、それらのオブジェクトは、クラウドベースの分散システム内のオブジェクト・ストレージに送信されてよい。ただし、例えば冗長性の目的で、オブジェクトのコピーが仮想テープ・ライブラリで保持されてもよい。
【００７８】
ここで図７を参照すると、一実施形態に従ってサブプロセスが示されており、それらのサブプロセスうちの１つまたは複数が、方法５００の動作５０６を実行するために使用されてよい。上で提示されたように、動作５０６は、メタデータからのテナント識別子を使用してデータ・ボリューム内のデータをオブジェクトに分離することを含んでいる。
【００７９】
したがって、動作５０６で説明されているように、データを分離することは、まず、動作５０４で抽出されたテナント識別子のうちの特定の１つがオブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することを含んでよい。判定５２０を参照する。１つのアプローチによれば、判定５２０は、テナントに関連付けられた一意の識別子（例えば、テナントの名前）を構文解析し、オブジェクト・ストアに問い合わせて、テナント識別子がすでにオブジェクト・ストア内に存在するかどうかを確認することによって、実行されてよい。サブプロセス５２２は、テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することを含む。例示的なアプローチによれば、新しいテナント・アカウントおよび新しいオブジェクトは、下でさらに詳細に説明されている図８に含まれている下位の動作のうちのいずれか１つまたは複数を使用して作成されてよい。
【００８０】
さらに図７を参照すると、サブプロセス５２４は、テナント識別子に関連付けられたデータの部分を新たに作成されたオブジェクトに追加することを含む。前述したように、データ・ボリューム内のデータは、テナント識別子を使用してオブジェクトに分離されてよい。したがって、新たに作成されたオブジェクトに追加されるデータの部分は、オブジェクトの形態であってよい。やはり、各テナント識別子は、特定のテナントに関連付けられたデータの部分に対応しており、したがって、部分によってデータ・ボリュームを分離してオブジェクトを作成するために使用されてよい。
【００８１】
判定５２０に戻り、テナント識別子が既存のオブジェクトに対応するということの決定に応答して、動作５０６のフローが判定５２６に進む。そこで、判定５２６が、既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定する。異なるアプローチによれば、しきい値は、既定の値、ユーザによって設定される値、時間と共に更新される値、リアルタイムに計算される値、などの値であってよい。オブジェクト・サイズのしきい値は、オブジェクトがオーバーフローすることによって引き起こされる追加動作の失敗を防ぐように実装されてよい。ただし、「しきい値を超える」は、本発明を限定するよう全く意図されていないということに、注意するべきである。値がしきい値を超えているかどうかを判定するのではなく、同等の判定が、望ましいアプローチに応じて、例えば、値が既定の範囲内であるかどうか、値が既定の範囲外であるかどうか、絶対値がしきい値を超えているかどうか、値がしきい値を下回っているかどうか、などに関して行われてよい。
【００８２】
サブプロセス５２８は、既存のオブジェクトのオブジェクト・サイズがしきい値を超えているということの決定に応答して、テナント識別子を使用して新しいオブジェクトを作成することを含む。オブジェクト自体は、本説明を読んでいる当業者にとって明らかであろうように、任意の方法を実装することによって作成されてよい。さらに、サブプロセス５３０は、テナント識別子に関連付けられたデータの部分を新しいオブジェクトに追加することを含む。
【００８３】
判定５２６に戻り、動作５０６を実行するフローチャートが、既存のオブジェクトのオブジェクト・サイズがしきい値を超えていないということの決定に応答して、サブプロセス５３２に進む。そこで、サブプロセス５３２は、テナント識別子に関連付けられたデータの部分を既存のオブジェクトに追加することを含む。１つのアプローチによれば、このデータの部分は、オブジェクトの末尾に追加されてよい。
【００８４】
図７は、各下位の動作５２４、５３０、および５３２からそれぞれ下位の動作５３４に進むように、動作５０６を実行するフローチャートを示している。下位の動作５３４は、データの部分がオブジェクト・ストレージに格納された位置に関する情報でメモリを更新することを含む。１つのアプローチによれば、下位の動作５３４で更新されるメモリは、データの部分が分離された元の受信されたデータ・ボリュームに対応するメタデータであってよい。別のアプローチによれば、更新されるメモリは、オブジェクト・ストレージ、メインフレーム、仮想テープ・ライブラリ、クラウドベースまたはＷＡＮベースあるいはその両方の分散システム、分散されたストレージの場所などに格納されたルックアップ・テーブルであってよい。
【００８５】
図７に示されたサブプロセスが、特定のデータ・ボリュームから抽出されたテナント識別子ごとに繰り返されるのが好ましい、ということにも注意するべきである。したがって、判定５３６は、オブジェクトに分離する必要があるデータがデータ・ボリューム内にまだあるかどうかを判定することを含む。示されているように、図７のプロセスは、まだオブジェクトに分離されていないデータがデータ・ボリューム内に存在するということの決定に応答して、判定５２０に戻り、それによって、前述のサブプロセスが繰り返されてよい。ただし、図７のプロセスは、データ・ボリューム内のすべてのデータがオブジェクトに分離されたということの決定に応答して、例えば方法５００の残りの部分を実行できるように、図６の動作５０８に進んでよい。
【００８６】
前述したように、テナント識別子は、テナント識別子が既存のオブジェクトに対応しないということの決定に応答して、新しいオブジェクトを作成するために使用されてよい（例えば、サブプロセス５２２を再び参照）。図８を参照すると、一実施形態に従って、新しいオブジェクトを作成する例示的な下位の動作が示されており、これらの下位の動作のうちの１つまたは複数が、図７のサブプロセス５２８を実行するために使用されてよい。ただし、図８の下位の動作が、本発明を限定するよう全く意図されていない一実施形態に従って示されているということに、注意するべきである。
【００８７】
図８に示されているように、下位の動作５５０が、新しいオブジェクトの認証情報を作成することを含んでおり、下位の動作５５２が、新しいファイルの認証情報を作成することを含んでいる。ファイルの認証情報またはオブジェクトの認証情報あるいはその両方は、本説明を読んでいる当業者にとって明らかであろうように、任意の方法に従って作成されてよい。本発明を限定するよう全く意図されていない例によれば、ファイルの認証情報またはオブジェクトの認証情報あるいはその両方を作成することは、Ｏｐｅｎｓｔａｃｋ  ＳｗｉｆｔストアレットのＫｅｙｓｔｏｎｅコンポーネント（Keystone component）を利用することによって実現されてよい。別の例では、Ｋｅｙｓｔｏｎｅサーバ（Keystone server）がライトウェイト・ディレクトリ・アクセス・プロトコル（ＬＤＡＰ：Lightweight Directory Access Protocol）サーバと統合されてよく、これらが、Ｓｐｅｃｔｒｕｍ  Ｓｃａｌｅファイル・プロトコルと統合されてよい。
【００８８】
新しいオブジェクトを作成するプロセスは、ストレージ・ポリシーを作成することを含んでもよい。下位の動作５５４を参照する。ストレージ・ポリシーは、新しいオブジェクトに関連付けられた新しいテナントの認証情報に関して、統一されたファイルおよびオブジェクトのストレージ・ポリシーを形成することによって、作成されてよい。したがって、例示的なアプローチによれば、Ｓｐｅｃｔｒｕｍ  Ｓｃａｌｅファイルセットまたは新しいストアレット・デバイス・リングあるいはその両方が作成されてよく、これらがファイルセットにマッピングされる。
【００８９】
下位の動作５５６は、暗号化ポリシーを作成することを含んでもよい。一部のアプローチでは、マルチテナントの適合性を有するオブジェクト・ストレージに関連して実装されたオブジェクトが、オブジェクトの相互汚染を防ぐために暗号化されるのが、望ましいことがある。例えば、テナント固有の機密データの相互汚染を防ぐために、暗号化ポリシーが使用されてもよい。
【００９０】
さらに、下位の動作５５８は、テナント識別子を使用して新しいオブジェクトを作成することを含む。新しいオブジェクトは、上で確立された認証情報および暗号化の境界内でテナント・レコードを使用して作成されるのが好ましい。一部のアプローチでは、テナント識別子は、例えば図７の判定５２０において判定されているように、オブジェクト・ストレージ内に存在する他のどのオブジェクトにも対応しないテナント固有のレコードであってよい。したがって、特定のテナント識別子を使用して作成された新しいオブジェクトは、一意であってよい。ただし、他のアプローチでは、新しいオブジェクトの作成に使用されるテナント識別子は、しきい値を超えるサイズを有していると決定された既存のオブジェクトに対応してよい（例えば、判定５２６を参照）。
【００９１】
さらに、下位の動作５６０は、下位の動作５５８で作成された新しいオブジェクトに対応するファイル・アクセス制御リスト（ＡＣＬ：file access control lists）を変更することを含む。ＡＣＬを適切に変更して、正しい認証情報を持つテナントのみが適切なデータにアクセスできることを保証するのが望ましい。一部のアプローチによれば、ＡＣＬを変更することは、特定のオブジェクトに関連付けられたアクセス認証情報を追加することまたは調整することあるいはその両方を実行することを含んでよい。下位の動作５６２は、例えば特定のテナント・アカウントに対して、ファイル・アクセス・プロトコルを有効化することも含む。ファイル・アクセス・プロトコルは、ユーザによって指定されたファイル・アクセス・プロトコルを使用して有効化されてよい。例えば、ストレージ・ポリシーに関連付けられたファイルセットまたは特定のテナントに関連付けられた認証情報、あるいはその両方に関して、ネットワーク・ファイル・システム（ＮＦＳ：network file system）のエクスポートが構成されてよい。前述したように、マルチテナントの適合性を有するオブジェクト・ストレージの場合、オブジェクトの相互汚染を防ぐことが望ましい。一部のアプローチによれば、本説明を読んでいる当業者よって理解されるであろうように、ＡＣＬを変更すること、またはファイル・アクセス・プロトコルを有効化すること、あるいはその両方を実行することが、オブジェクトの相互汚染を防ぐために利用されてよい。
【００９２】
代替の実施形態では、データ・ボリュームと、それに対応する格納されたテナント・オブジェクトとの間の関係に関連付けられたメタデータが、オブジェクト・ストア内のメタデータ検索データベース内に配置されてよい。一部のアプローチによれば、この関係に関連付けられたメタデータが新しいオブジェクト内に配置されてよく、他の例では、要求に応答してこの情報を返すように、ＲＥＳＴ（Representational State Transfer）アプリケーション・プログラム・インターフェイス（ＡＰＩ：Application Program Interface）が拡張されてよい。他のアプローチによれば、仮想テープ・ライブラリが、テナントとオブジェクトをマッピングするデータ・ボリュームのメタデータを、内部データベースに、または仮想テープ・ライブラリの基盤になるファイル・システム内のデータ・ボリューム・ファイルのｉノードに、あるいはその両方に格納してよい。さらに、一部のアプローチでは、オブジェクト・ストレージのストアレットによって実行されるアルゴリズムは、例えば前述したように、仮想テープ・ライブラリ自体によって実行されてよい。
【００９３】
本明細書に記載されたさまざまな実施形態は、既定の条件が満たされること（例えば、メインフレームが特定の量のデータを受信したこと）に応答する、（例えば、ホストから）要求を受信することに応答する、一定の時間が経過した後、などによって、実施されてよい。一部の実施形態によれば、受信されたデータ・ボリュームに含まれているデータは、それらのデータにアクセスすることのデータ要求をテナントのうちの１つまたは複数から受信することに応答して、テナント固有のオブジェクトに分離されてよい。例えば、仮想テープ・ライブラリ（例えば、図５の４０４を参照）は、複数のデータ・ボリュームをメインフレームから受信してよく、それらのデータ・ボリュームは、複数の異なるテナントに対応するデータを含んでいる。その後、仮想テープ・ライブラリは、データ・ボリュームをメモリに格納してよい。ただし、テナントのうちの１つによる、そのテナントに対応するデータ・ボリューム内のデータにアクセスすることの要求の受信時に、仮想テープ・ライブラリは、テナントのデータ要求が満たされるように、図６〜８に含まれているプロセスのうちのいずれか１つまたは複数を実行して、テナント別にデータを分離してよい。
【００９４】
さらに、テナント別にデータが分離された後に、読み取り要求またはデータ・アクセス要求あるいはその両方に対応するオブジェクトが、要求によって指定されたとおりに、例えば要求元のテナントにとって利用可能になるのが好ましい。これは、ストレージの場所から、受信された要求に関連付けられたリモート・ホストの場所にオブジェクトを転送することによって、達成されてよい。このデータの転送は、従来技術において知られているタイプのファイル転送プロトコル（ＦＴＰ：file transfer protocol）を使用して達成されてよい。さらに、例えば望ましいアプローチに応じて、顧客関係管理（ＣＲＭ：customer relationship management）アプリケーションが、オブジェクトが転送される前に、オブジェクトに対してさらに実行されてよい。
【００９５】
他の実施形態によれば、受信されたデータ・ボリュームに含まれているデータが、受信時にのみ、テナント固有のオブジェクトに分離されてよい。例えば、クラウドベースの分散システム（例えば、図５の分散システム４０６を参照）は、複数のデータ・ボリュームをメインフレームまたは仮想テープ・ライブラリあるいはその両方から受信してよく、それらのデータ・ボリュームは、複数の異なるテナントに対応するデータを含んでいる。その後、クラウドベースの分散システムは、図６〜８に含まれているプロセスのうちのいずれか１つまたは複数を実行して、テナント別にデータを分離してから、メモリに格納するためにデータを分散してよい。したがって、最初にデータを分離する必要なしに、テナントからのデータ要求を満たすことができ、それによって、データ・アクセス時間を削減する。
【００９６】
本発明を限定するよう全く意図されていない使用中の例によれば、システムでの処理の利用を全体的に減らすために、ｚ／ＴＰＦボリューム処理が、メインフレーム・システムから分散システムに移動されてよい。具体的には、ユーザは、ｚ／ＴＰＦアプリケーションでＦＩＣＯＮテープ・プロトコルを使用して、大量のデータをメインフレームの仮想テープ・ライブラリに書き込んでよい。データの書き込みは、複数の異なるテナント・アカウントからのデータを同じ仮想テープ・カートリッジに結合することを伴ってよい。ＣＲＭアプリケーション（例えば、Ｓｉｅｂｅｌ）は、データに対して分析を実行し、付加価値および競争優位性を提供するために使用されてよい。ただし、処理が、アカウントが分離され、異なるテナントからのデータの汚染がないように、規格に準拠することを保証するために、レコードが、最初に仮想テープ・ライブラリに書き込まれた後に、ＣＲＭアプリケーションに提供される前に分離されるのが好ましい。したがって、前述したように、本明細書に記載された実施形態のうちのいずれか１つまたは複数が、テナント別にデータを分離するように実装されてよい。
【００９７】
本明細書に記載されたマルチテナントの方法は、データ・ボリュームを安全に処理するように分散システムを有効化して、（例えば、メインフレームの使用を減らすことによって）システム・リソースを節約するだけでなく、仮想テープ・リソースも節約する。ＴＳ７７００仮想テープは、仮想テープ・ライブラリ・ボリュームを、オブジェクトとして、クラウドベースの分散システム内のオブジェクト・ストアにエクスポートすることができる。そこではオブジェクト・ストアは、ストアレットを実装してよく、このストアレットは、仮想テープ・ライブラリ・ボリュームに含まれているデータを、それに対応するテナントに従って、別々のアクセス認証情報および暗号化を使用して別々のオブジェクトに分離する。作成された各オブジェクトは、各仮想テープ・ライブラリ・ボリュームに関連付けられた各ボリューム・シリアル（ｖｏｌｓｅｒ）番号と同じ名前を有してもよい。新たに作成されたテナント固有のオブジェクトの名前は、それに対応するｖｏｌｓｅｒと同じ名前を使用して、オブジェクトのメタデータ内で修正されてよい。その後、オブジェクトは、ＦＴＰ、ネットワーク・ファイル・システム（ＮＦＳ：Network File System）、ＣＩＦＳ（Common InternetFile System）などの１つまたは複数のプロトコルを使用して、アクセス可能にされてよい。さらに、これらのプロトコルは、ＣＲＭアプリケーション（例えば、Ｓｉｅｂｅｌ）とシームレスに統合するために、同じ名前空間内で実行されてよい。
【００９８】
結果として、システムは、処理をメインフレーム・サーバおよびＴＳ７７００仮想テープから分散システムにオフロードすることができ、それによって、データ転送およびネットワーク通信を最小限に抑える。システムは、環境内の既存のアプリケーションとシームレスに統合しながら、安全なマルチテナントの、規格に準拠する処理を保証することができる。さらに、本明細書に記載された実施形態の一部は、他のプロトコルを介してデータをアクセス可能にするために、データの追加コピーを作成する必要なしに、統一されたファイルまたはオブジェクト・アクセス機能あるいはその両方を利用することができてよい。
【００９９】
さらに、データの柔軟な分離が、異なるテナント・レコードに従って、安全でマルチテナントの方法で実現されてよい。さらに、追加のカスタム・データ属性（例えば、テナント別の分離後にデータを移動せずに、ファイル・プロトコルを直接使用して、分離されたレコードをファイルとして読み取る能力など）が実現されてもよい。
【０１００】
再び、本発明を限定するよう全く意図されていない使用中の例によれば、ｚ／ＴＰＦアプリケーションがＦＩＣＯＮテープ上でデータをＴＳ７７００仮想テープに転送してよく、ＴＳ７７００が、レコードを含んでいるデータ・ボリュームをローカルのＳｐｅｃｔｒｕｍ  Ｓｃａｌｅ（ＧＰＦＳ）ファイル・システムに書き込む。ただし、テナントが、ｚ／ＴＰＦレコード・データをＣＲＭアプリケーションで使用できるようにすることを要求した場合、ＴＳ７７００は、好ましくはデータ・ボリュームと、対応するオブジェクトとを１対１にマッピングして、（例えば、ＭＣＳｔｏｒｅを使用して）データ・ボリュームをオブジェクト・ストアにエクスポートしてよい。テナントの要求の受信時に、オブジェクト・ストアは、ストアレットを呼び出して、テナントに従ってデータ・ボリューム内のレコードを分離してよい。その後、テナント・レコードのセットごとに、新しいマルチテナントのセキュリティ境界およびオブジェクトが作成されてよい。元のオブジェクトに対応するメタデータが、テナント別に分離されたオブジェクトの名前、場所、セキュリティ認証情報、サイズなどによって、更新されてもよい。さらに、Ｓｐｅｃｔｒｕｍ  Ｓｃａｌｅの統一されたファイルおよびオブジェクト・アクセスを実装することにより、分散システムのＣＲＭアプリケーションが、従来のファイル・プロトコルを介して、ストアレットによって作成されたオブジェクトに直接アクセスすることを可能にしてよい。
【０１０１】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【０１０２】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスにすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-onlymemory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasableprogrammable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
【０１０３】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【０１０４】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行されてよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide areanetwork）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【０１０５】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【０１０６】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【０１０７】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ実装プロセスを生成するべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれて、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【０１０８】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【０１０９】
さらに、さまざまな実施形態に従うシステムは、プロセッサ、およびプロセッサに統合された論理またはプロセッサによって実行可能な論理あるいはその両方を含むことができ、この論理は、本明細書において列挙された処理ステップのうちの１つまたは複数を実行するように構成される。プロセッサは、処理ハードウェア、メモリ、Ｉ／Ｏインターフェイスなどの多くのコンポーネントを含んでいる、個別のプロセッサまたは処理回路などの、本明細書に記載されているような任意の構成であってよい。統合されるということは、つまり、プロセッサに論理が、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、ＦＰＧＡなどのハードウェア論理として組み込まれるということである。プロセッサによって実行可能であるということは、つまり、論理が、プロセッサによってアクセス可能なハードウェア論理、ソフトウェア論理（ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部など）など、またはハードウェア論理とソフトウェア論理の何らかの組み合わせであり、プロセッサによって実行されたときに何らかの機能をプロセッサに実行させるように構成されているということである。ソフトウェア論理は、従来技術において知られた任意のメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに格納されてよい。ＡＳＩＣ、ＦＰＧＡ、中央処理装置（ＣＰＵ：central processing unit）、集積回路（ＩＣ：integratedcircuit）、グラフィック処理装置（ＧＰＵ：graphics processing unit）といった、ソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方などの、従来技術において知られた任意のプロセッサが使用されてよい。
【０１１０】
上で提示された説明から複数の組み合わせを作成して、前述のシステムまたは方法あるいはその両方のさまざまな特徴が任意の方法で組み合わせられてよいということが明らかである。
【０１１１】
本発明の実施形態が、サービスをオンデマンドで提供するように顧客のために展開されるサービスの形態で提供されてよいということが、さらに理解されるであろう。
【０１１２】
上ではさまざまな実施形態が説明されたが、これらの実施形態は単に例として提示されており、これらに限定されないということが理解されるべきである。したがって、好ましい実施形態の広さおよび範囲は、前述された実施形態例のいずれによっても限定されるべきではなく、添付の特許請求の範囲およびそれらと均等なもののみに従って定められるべきである。
【図１】
2020504861.tif 000003
【図２】
2020504861.tif 000004
【図３】
2020504861.tif 000005
【図４】
2020504861.tif 000006
【図５】
2020504861.tif 000007
【図６】
2020504861.tif 000008
【図７】
2020504861.tif 000009
【図８】
2020504861.tif 000010
【手続補正書】
【提出日】令和1年8月23日(2019.8.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記オブジェクトをオブジェクト・ストレージに格納することと
を含んでいる、コンピュータ実装方法。
【請求項２】
前記データ・ボリュームがクラウドベースの分散システムで受信され、前記クラウドベースの分散システム内で動作する少なくとも１つのプログラムが、前記ボリューム内の前記データを前記オブジェクトに分離するために使用される、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記仮想テープ・ライブラリが前記ボリューム内の前記データを前記オブジェクトに分離する、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記データ・ボリュームが、メインフレームから受信された仮想テープ・ライブラリ・ボリュームを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記データ・ボリュームが前記仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納され、前記オブジェクト・ストレージが前記仮想テープ・ライブラリ内のメモリの第２の指定された部分である、請求項４に記載のコンピュータ実装方法。
【請求項６】
テナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することが、
テナント識別子が前記オブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することと、
前記テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、前記テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することと、
前記テナント識別子に関連付けられた前記データの部分を前記新しいオブジェクトに追加することと、
前記テナント識別子が既存のオブジェクトに対応するということの決定に応答して、前記既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定することと、
前記既存のオブジェクトの前記オブジェクト・サイズがしきい値を超えているということの決定に応答して、前記テナント識別子を使用して新しいオブジェクトを作成することと、
前記テナント識別子に関連付けられた前記データの前記部分を前記新しいオブジェクトに追加することと、
前記既存のオブジェクトの前記オブジェクト・サイズが前記しきい値を超えていないということの決定に応答して、前記テナント識別子に関連付けられた前記データの前記部分を前記既存のオブジェクトに追加することと
を含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項７】
新しいテナント・アカウントを作成することが、
新しいオブジェクトの認証情報を作成することと、
新しいファイルの認証情報を作成することと、
ストレージ・ポリシーを作成することと、
暗号化ポリシーを作成することと、
ファイル・アクセス制御リストを変更することと、
ファイル・アクセス・プロトコルを有効化することと
を含んでいる、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記テナントのうちの１つからデータ要求を受信することに応答して、前記データ・ボリューム内の前記データがオブジェクトに分離される、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記データ・ボリューム内の前記データの分離先になった前記オブジェクトに関する情報で前記メタデータを更新することを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１０】
コンピュータ・プログラム製品であって、
前記プログラム命令が、プロセッサに、
前記プロセッサによって、複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記プロセッサによって、前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記プロセッサによって、前記オブジェクトをオブジェクト・ストレージに格納することと、
を前記プロセッサに実行させる、コンピュータ・プログラム製品。
【請求項１１】
プロセッサと、
前記プロセッサと統合されたか、前記プロセッサによって実行可能であるか、または前記プロセッサと統合され、かつ前記プロセッサによって実行可能である論理と
を備えているシステムであって、前記論理が、
複数のテナントからのデータを含んでいるデータ・ボリュームを受信することと、
前記データの部分に対応しているメタデータからのテナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することであって、各オブジェクトが各テナントに対応している、前記分離することと、
前記オブジェクトをオブジェクト・ストレージに格納することと
を実行するよう構成されている、システム。
【請求項１２】
前記データ・ボリュームがメインフレームから受信された仮想テープ・ライブラリ・ボリュームを含んでおり、前記データ・ボリュームが仮想テープ・ライブラリで受信され、前記データ・ボリュームが前記仮想テープ・ライブラリ内のメモリの第１の指定された部分に格納され、前記オブジェクト・ストレージが前記仮想テープ・ライブラリ内のメモリの第２の指定された部分である、請求項１１に記載のシステム。
【請求項１３】
テナント識別子を使用して前記データ・ボリューム内のデータをオブジェクトに分離することが、
テナント識別子が前記オブジェクト・ストレージ内の既存のオブジェクトに対応するかどうかを判定することと、
前記テナント識別子が既存のオブジェクトに対応していないということの決定に応答して、前記テナント識別子を使用して、新しいオブジェクトを含んでいる新しいテナント・アカウントを作成することと、
前記テナント識別子に関連付けられた前記データの部分を前記新しいオブジェクトに追加することと、
前記テナント識別子が既存のオブジェクトに対応するということの決定に応答して、前記既存のオブジェクトのオブジェクト・サイズがしきい値を超えているかどうかを判定することと、
前記既存のオブジェクトの前記オブジェクト・サイズがしきい値を超えているということの決定に応答して、前記テナント識別子を使用して新しいオブジェクトを作成することと、
前記テナント識別子に関連付けられた前記データの前記部分を前記新しいオブジェクトに追加することと、
前記既存のオブジェクトの前記オブジェクト・サイズが前記しきい値を超えていないということの決定に応答して、前記テナント識別子に関連付けられた前記データの前記部分を前記既存のオブジェクトに追加することと
を含んでいる、請求項１１に記載のシステム。
【国際調査報告】
2020504861.tif 000011
2020504861.tif 000012