(57)【要約】  動作は、テープボリュームコンテナ内にデータを格納しおよび／またはそれにアクセスすることを含む。システムは、データストレージテープ内のテープブロックにアクセスするための要求を受信する。システムは、データストレージテープ内の要求されたテープブロックをコンテナ内のオブジェクトにマッピングする。システムはそして、コンテナ内のオブジェクトからデータを取得する。システムは、取得されたデータから、テープアーカイブ形式のデータストリームを生成する。システムは、データストレージテープ内のテープブロックにアクセスするための要求に応答して、データストリームをテープアーカイブ形式で送信する。
2020509481.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のハードウェアプロセッサが実行したときに動作を実行させる命令を備える非一時的なコンピュータ読み取り可能な媒体であって、前記動作は、
データストレージテープ内のテープブロックにアクセスするための要求を受信することと、
前記データストレージテープ内の前記テープブロックを複数のコンテナのうちのコンテナ内のオブジェクトにマッピングすることと、
前記コンテナ内の前記オブジェクトからデータを取得することと、
前記取得されたデータからテープアーカイブ形式のデータストリームを生成することと、
前記テープアーカイブ形式の前記データストリームを前記要求に応答して送信することとを備える、媒体。
【請求項２】
前記動作は、前記オブジェクトから前記データを取得する前に、前記取得動作のために前記オブジェクトをオフラインストレージシステムからオンラインストレージシステムに復元することをさらに備える、請求項１に記載の媒体。
【請求項３】
前記動作は、
前記テープブロックにアクセスするための前記要求を受信したことに応答して、
前記テープブロックに関連する複数のテープブロックを識別することと、
各前記複数のテープブロックを対応する複数のオブジェクトにマッピングすることと、
取得のために前記複数のオブジェクトを前記オンラインストレージシステムに復元することをさらに備える、請求項２に記載の媒体。
【請求項４】
前記複数のコンテナは、前記送信動作を実行するデバイスからリモートにあるクラウドストレージシステム内に実装される、請求項１に記載の媒体。
【請求項５】
前記動作は、前記要求を前記クラウドストレージシステムに対応する形式へと変換することをさらに備える、請求項４に記載の媒体。
【請求項６】
前記複数のコンテナは、前記送信動作を実行するデバイスに対してローカルにあるストレージシステム内に実装される、請求項１に記載の媒体。
【請求項７】
前記複数のコンテナは、特定のコンテナに関連付けられたメタデータをさらに備え、
前記メタデータは、前記特定のコンテナの前記名称およびオフセットを備えるデータ位置情報を備え、
前記動作は、前記メタデータを、前記データ位置情報を用いて更新することをさらに備える、請求項１に記載の媒体。
【請求項８】
前記メタデータは、前記データストレージテープ上の前記データのための識別情報および前記データストレージテープ上の前記データにアクセスするための命令をさらに備える、請求項７に記載の媒体。
【請求項９】
１つまたは複数のハードウェアプロセッサが実行したときに動作を実行させる命令を備える非一時的なコンピュータ読み取り可能な媒体であって、前記動作は、
データストリームをデータストレージテープ内のテープブロックに書き込むための命令を受信することと、
前記データストリームに基づきオブジェクトを生成することと、
前記データストレージテープを複数のコンテナのうちのコンテナにマッピングすることと、
前記オブジェクトを前記複数のコンテナの前記コンテナに関連付けて格納するために送信することとを備える、媒体。
【請求項１０】
前記複数のコンテナは、特定のコンテナに関連付けられたメタデータをさらに備え、
前記メタデータは、前記特定のコンテナの前記名称およびオフセットを備えるデータ位置情報を備え、
前記動作は、前記メタデータを、前記データ位置情報を用いて更新することをさらに備える、請求項９に記載の媒体。
【請求項１１】
ハードウェアプロセッサを含む少なくとも１つのデバイスを備えるシステムであって、
前記システムは、請求項１〜請求項８のいずれか１項に記載の動作を実行するように構成される、システム。
【請求項１２】
ハードウェアプロセッサを含む少なくとも１つのデバイスを備えるシステムであって、
前記システムは、請求項９または請求項１０に記載の動作を実行するように構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本発明は、データストレージ管理システムに関する。特に、本発明は、テープブロックをオブジェクトベースストレージシステム内のオブジェクトにマッピングすることに関する。
【０００２】
優先権主張
この出願は、２０１７年２月１３日に出願された米国特許非仮出願第１５／４３１，６１５号の利益と優先権とを主張し、それは参照によりここに組み込まれる。
【発明の概要】
【０００３】
背景
ストレージシステムは、さまざまな対応するストレージアーキテクチャに従いデータを格納する。ストレージアーキテクチャの例は、オブジェクトベースストレージ、テープベースのストレージ、ファイルシステム、ブロックストレージ、および／またはデータベースを含む。
【０００４】
オブジェクトベースストレージは、データをオブジェクトとして管理する。各オブジェクトは、データおよびメタデータと関連付けられる。データは、たとえば、エンドユーザおよび／またはビジネスアプリケーションによって使用される情報を含む。例として、セールスアプリケーションのためのデータは、顧客、製品、および販売についての情報を含み得る。別の例として、人事アプリケーションのためのデータは、従業員、部門、および給料についての情報を含み得る。メタデータは、データが設定されおよび／または保存される方法、またはデータそれ自体についての他の特徴を記述する。メタデータは、ストレージシステム内のオブジェクトを操作しおよび／または管理するために使用され得る。オブジェクトベースストレージシステムでは、データは、シーケンシャル方式で読み込まれるのとは対照的に、要求されるとおりに直接的に読み込まれる。
【０００５】
コンテナ（ここでオブジェクトコンテナとも称される）は、１つまたは複数のオブジェクトを格納する。コンテナは、たとえば、クラス、データ構造、または抽象データ種類であり得る。
【０００６】
テープドライブは、データをデータストレージテープ（たとえば、磁気的テープ、または仮想テープボリューム）に読み書きするデータストレージデバイスである。テープベースストレージは、安定しており、したがって、オフラインのアーカイブ用データストレージのために一般的に使用される。テープドライブは、シーケンシャルアクセスストレージを使用する。このため、テープドライブは、データの特定の断片にアクセスするために物理的に巻き取られることを要し得る。テープボリューム上のデータは、テープアーカイブ（ＴＡＲ）形式で典型的に格納される。典型的に、データストレージテープは、テープ上に何が格納されるかについての情報を含む情報領域を有する。
【０００７】
テープデータ、並びに他の種類のデータストレージでは、ブロック（ここで「テープブロック」とも称される）は、一般的に構造データに対して使用される。ブロックは、データの集合である。ブロックにされたデータは、１回に１ブロックずつ読み込まれまたは書き込まれ得、これは、データストリーミングを高速化する。磁気的テープストレージの場合、ブロック化はまた、必要とされるストレージ量を減らす。このため、ブロック化は、磁気的テープストレージのためにほぼ常に使用される。
【０００８】
このため、テープドライブは、テープドライブをテープ上の選択された位置にロードすることからの遅延といった、データをシーケンシャルに読み込むことに関連付けられる特有の欠点を有する。典型的に、オブジェクトベースストレージシステムは、データが直接的にアクセスされることができるので、これらの問題を有さない。しかし、いくらかの遅延は、より複雑なオブジェクトベースストレージシステムと関連付けられる。たとえば、マルチティアのストレージシステムが存在し、そこではデータがアクセス可能になる前に、データは、リモート位置から取得されることを要し得る。取得処理は、遅延を生み出す可能性がある。このため、テープドライブストレージの制約をオブジェクトベースストレージへと持ち込むことは、直感に反するように見えるが、テープドライブシステムは、オブジェクトベースストレージシステムにも適用可能な長い遅延に対処する性能を有する。
【０００９】
この章で記載する手法は、請求可能な手法であり、必ずしも過去に考案または請求された手法ではない。したがって、特に明記しない限り、この節に記載されている手法のいずれかが、単にこの節に含まれているという理由だけで、先行技術として認められると想定されるべきではない。
【００１０】
図面の簡単な説明
実施形態は、添付の図面の図において限定ではなく例として示される。本開示における「ある」または「１つ」の実施形態への言及は、必ずしも同じ実施形態に対するものではなく、少なくとも１つを意味することに留意されるべきである。
【図面の簡単な説明】
【００１１】
【図１】１つまたは複数の実施形態に従うデータ管理のためのシステムを示す。
【図２Ａ】１つまたは複数の実施形態に従い、テープボリュームコンテナ内のデータを読み込むためにデータ管理エンジンによって実行される動作セット例を示す。
【図２Ｂ】１つまたは複数の実施形態に従い、テープボリュームコンテナ内のデータを読み込むためにオブジェクトベースストレージシステムによって実行される動作セット例を示す。
【図３】１つまたは複数の実施形態に従い、テープボリュームコンテナにデータを書き込むためにデータ管理エンジンによって実行される動作セット例を示す。
【図４】１つまたは複数の実施形態に従い、メタデータを更新するための動作セット例を示す。
【図５】１つまたは複数の実施形態に従うシステムのブロック図を示す。
【発明を実施するための形態】
【００１２】
詳細な説明
以下の説明では、説明の目的で、完全な理解を提供するために多くの特定の詳細が述べられる。１つまたは複数の実施形態は、これら特定の詳細なしに実現され得る。１つの実施形態において記載された特徴は、異なる実施形態において記載された特徴と組み合わされ得る。いくつかの例では、既知の構造およびデバイスは、本発明を不必要に不明瞭にすることを避けるためにブロック図形式を参照して記載される。
【００１３】
１．一般概要
２．データ管理フレームワーク
３．テープボリュームコンテナからのデータ取得
Ａ．データ管理動作
Ｂ．ストレージシステム動作
４．テープボリュームコンテナへのデータ格納
５．例示的実施形態
Ａ．メタデータ
Ｂ．復元動作
Ｃ．効率的なテープブロックサイズ、暗号化
Ｄ．物理的なテープボリュームとのインターフェース
６．その他、拡張
７．ハードウェア概要
１．概要
データストリームを、テープアーカイブ形式で、テープベースのストレージシステムに読み書きするためのテープ駆動コマンドは、データストレージテープを参照し得る。参照されたデータストレージテープは、データストリームがそこから読み込まれるべき、またはデータストリームがそこに書き込まれるべきデータストレージテープである。
【００１４】
１つまたは複数の実施形態は、データストリームをデータストレージテープ内に格納するためのテープ駆動コマンドを受信したことに応答して、データストリームを、テープアーカイブ形式で、オブジェクトベースストレージシステムに格納することを含む。データ管理エンジンは、テープ駆動コマンド内で参照されたデータストレージテープを、オブジェクトベースストレージシステム内のオブジェクトのコンテナにマッピングする。データ管理システムは、データストリームを、テープアーカイブ形式で、識別されたコンテナの１つまたは複数のオブジェクトの組に格納する。データストリームをテープアーカイブ形式で格納するコンテナは、ここでは「テープボリュームコンテナ」とも称され得る。
【００１５】
実施形態では、データ管理エンジンは、データストレージテープ内のテープブロックにアクセスするためのテープ駆動コマンドを受信したことに応答して、データをオブジェクトベースストレージシステムから読み込む。システムは、データストレージテープ内の要求されたテープブロックをコンテナ内の対応するオブジェクトにマッピングする。システムは、データを、テープアーカイブ形式で、コンテナ内の対応するオブジェクトから取得する。システムは、取得されたデータから、テープアーカイブ形式のデータストリームを生成する。システムは、テープ駆動コマンドに応答して、データストリームを、テープアーカイブ形式で、送信する。
【００１６】
本明細書に記載されるおよび／または特許請求の範囲に記載される１つまたは複数の実施形態は、この概要の章に含まれない場合がある。
【００１７】
２．データ管理フレームワーク
図１は、１つまたは複数の実施形態に従うデータ管理フレームワーク１００を示す。データ管理フレームワーク１００は、テープベースストレージシステムにアクセスするためのまたはそこにデータを書き込むための要求に応答して、データをオブジェクトベースストレージシステムにマッピングする。図１において示されるように、データ管理フレームワーク１００は、オブジェクトベースストレージシステム１１０、データ管理エンジン１４０、およびテープブロッククライアント１５０を含む。１つまたは複数の実施形態では、データ管理フレームワーク１００は、図１に示されたコンポーネントよりも多いまたは少ないコンポーネントを含み得る。図１に示されたコンポーネントは、互いにローカルにあり得、または互いからリモートにあり得る。図１に示されたコンポーネントは、ソフトウェアおよび／またはハードウェアにおいて実装され得る。各コンポーネントは、複数のアプリケーションおよび／またはマシンにわたって配置され得る。複数のコンポーネントは、１つのアプリケーションおよび／またはマシンへと組み合わされ得る。１つのコンポーネントに対して記載された動作は、代替的に別のコンポーネントによって実行され得る。
【００１８】
実施形態では、オブジェクトベースストレージシステム１１０は、データをコンテナ内のオブジェクトとして管理するストレージシステムである。オブジェクトベースストレージシステム１１０は、複数の異なるストレージユニットおよび／またはデバイスを含み得る。複数の異なるストレージユニットおよび／またはデバイスは、同じ種類であり得もしくは同じ種類でなくともよく、または同じ物理箇所に配置され得もしくは配置されなくともよい。さらに、オブジェクトベースストレージシステム１１０は、データ管理エンジン１４０およびテープブロッククライアント１５０と同じコンピューティングシステム上に実装され得、またはその上で実行し得る。代替的にまたは追加的に、オブジェクトベースストレージシステム１１０は、データ管理エンジン１４０およびテープブロッククライアント１５０とは別個のコンピューティングシステム上で実装され得、または実行され得る。オブジェクトベースストレージシステム１１０は、データ管理エンジン１４０またはテープブロッククライアント１５０に直接接続を介して、またはネットワークを介して通信可能に結合され得る。
【００１９】
実施形態では、コンテナ（たとえば、コンテナ１２０およびコンテナ１３０）は、オブジェクトの組のための組織的構造である。コンテナの各インスタンスは、対応するオブジェクトの集合を含み得る。オブジェクトの組は、コンテナ識別子によって参照される特定のコンテナに属するとも言及され得る。コンテナのサイズは、コンテナ内のオブジェクトの数に依存する。コンテナは、サイズおよび複雑さにおいて変化し得る。実施形態では、コンテナは、データストレージテープにマッピングされる。データストレージテープにマッピングされるコンテナは、ここではテープボリュームコンテナとも称され得る。 データストレージテープに対応するテープブロックは、テープボリュームコンテナの１つまたは複数のオブジェクトにマッピングされ得る。ポリシーは、所与のコンテナが２０ＭＢのデータを保持するべきであると特定し得る。別の例として、ポリシーは、特定のインターネットプロトコル（ＩＰ）アドレスから来るすべてのデータが特定のコンテナに格納されるべきであると特定し得る。
【００２０】
上記のように、コンテナは、オブジェクト（たとえば、オブジェクト１２１ａ−１２１ｎおよびオブジェクト１３１ａ−１３１ｎ）を含む。オブジェクトは、オブジェクトベースストレージシステム１１０の連続的なメモリ位置または非連続的なメモリ位置に格納され得る。例として、オブジェクトは、上述のように、データおよびメタデータといった複数の部分を含み得る。データおよびメタデータは、連続的なメモリ位置に一緒に格納され得る。代替的に、データは、メタデータとは別個の位置に格納され得る。データおよびメタデータは、同じデバイス上または異なるデバイス上に実装され得る。代替的に、データは、データティア内に格納され得、メタデータは、別個のメタデータティア内に格納され得る。データティアおよびメタデータティアは、同じデバイス上または異なるデバイス上に実装され得る。さらに、オブジェクトに対応するデータそれ自体は、データティア内の連続的なメモリ位置または別個の非連続的なメモリ位置に格納され得る。
【００２１】
実施形態では、メタデータは、コンテナ内に何が格納されているか、およびそれをどのように見つけるかを記述する。メタデータ内の情報は、ブロック数、オフセット、どのデータが関連付けられたデータストレージテープに格納されているか、およびデータにアクセスするための方法についての命令を含み得る。メタデータは、サイズおよび形式といったデータについての識別情報をさらに特定し得る。
【００２２】
実施形態では、データ管理エンジン１４０は、１つまたは複数のソフトウェアおよび／またはハードウェアコンポーネントを管理するために使用されるデータを含む。データ管理エンジン１４０は、いつどのようにデータがオブジェクトベースストレージシステム１１０に格納され、またはそこから取得されるべきかを決定するための機能を含み得る。データ管理エンジン１４０は、データの読み込みおよび／またはデータの書き込みを制御し得る。データ管理エンジン１４０は、テープブロックインターフェース１４２、マッピングエンジン１４４、および変換エンジン１４６を含む。
【００２３】
実施形態では、テープブロックインターフェース１４２は、テープブロッククライアント１５０と通信するための機能を含む。たとえば、テープブロックインターフェース１４０は、テープブロッククライアント１５０からテープブロック内のデータに関連する要求を受信する機能を含み得る。テープブロックインターフェース１４２は、データのストリーミングを、テープアーカイブ形式で、テープブロッククライアント１５０へと制御するための機能をさらに含み得る。
【００２４】
テープブロックインターフェース１４２は、データを組織化するための機能をさらに含み得る。例として、テープブロックインターフェースは、ＴＡＲデータをテープブロックへと組織化し、１つまたは複数のテープブロックを特定のテープボリュームへと組織化するための機能を含み得る。
【００２５】
マッピングエンジン１４４は、オブジェクトベースストレージシステム内のデータ構造をテープベースのストレージシステム内のデータ構造へとまたはそれからマッピングするための機能を含む。マッピングは、ハードウェア／およびまたはソフトウェアによって達成され得る。たとえば、マッピングエンジンは、テープブロックに対応するオブジェクトベースストレージシステム内のオブジェクトを作成するソフトウェアレイヤとして実装され得る。マッピングエンジンは、対応するテープブロックの識別子に基づきオブジェクトに名称を付し得る。マッピングエンジンは、データストレージテープをオブジェクトベースストレージシステム内の対応するテープボリュームコンテナにマッピングし得る。マッピングエンジンは、データストレージテープ内のテープブロックをオブジェクトベースストレージシステムのテープボリュームコンテナ内の対応するコンテナブロックにさらにマッピングし得る。データストレージテープ内の特定のテープブロックに関する要求は、テープボリュームコンテナ内の対応するブロック内のデータを使用してアドレス特定され得る。
【００２６】
変換エンジン１４６は、コマンドを１つの形式から別のものに変換するための機能を含む。変換エンジン１４６は、コマンドを変換するためにソフトウェアおよび／またはハードウェアを使用し得る。たとえば、データ管理エンジン１４０は、テープドライブからデータを取得するためのコマンドを受信する。このコマンドは、データを取得するためにオブジェクトベースストレージシステムに送られる。このため、変換エンジン１４６は、まずコマンドをオブジェクトベースストレージシステムによって理解可能な形式に変換する。実施形態では、変換エンジン１４６は、データを１つの形式から別のものに変換する。たとえば、変換エンジン１４６は、データＴＡＲ形式に変換し得る。
【００２７】
実施形態では、テープブロッククライアント１５０は、データをテープブロックとして送受信するための任意の種類のシステムおよび／またはデバイスである。テープブロッククライアントは、アーカイブエンジンを含み得る。アーカイブエンジンは、データをアーカイブするためのプログラムである。アーカイブエンジンは、ポリシーに基づき、いつデータをテープブロックにアーカイブすべきかを決定するソフトウェアレイヤとして実装され得る。たとえば、ポリシーは、ディスクストレージシステムに保存されたデータがテープドライブに、重複して、隔週ごとにアーカイブされるべきであると指令し得る。このポリシーに基づき、アーカイブエンジンは、データをテープブロックにアーカイブするための要求を送信する。
【００２８】
実施形態では、アーカイブエンジンは、階層的ファイル管理システムの一部である。新たに保存されたまたは最近アクセスされたデータは、簡易的なアクセスのために、ディスクストレージといったストレージシステムに保存される。アーカイブエンジンは、データをオブジェクトベースストレージシステムに定期的にアーカイブする。例として、アーカイブエンジンは、ファイルを５分毎に保存する。
【００２９】
実施形態では、テープブロッククライアント１５０は、ユーザからの要求に応答して動作し得る。例として、テープブロッククライアント１５０は、ユーザ入力を受信するための機能を有するユーザインターフェース（ＵＩ）を含む。たとえば、テープブロッククライアントは、テープブロッククライアントがユーザからの命令を受信し、選択されたデータをテープブロックから取得することを可能とするラジオボタンおよび入力可能なフィールドを有するＵＩを含み得る。実施形態では、テープブロッククライアント１５０は、ストレージシステムである。たとえば、テープブロッククライアント１５０は、そのデータをテープブロックに定期的にバックアップするローカルなファイルベースのストレージシステムである。ローカルストレージシステムは、データコンテナの名称、コンテナ内のオフセット、テープ上のデータのための識別情報、およびテープ上のデータにアクセスするための命令といった、データ位置情報を特定するメタデータを含み得る。
【００３０】
３．テープボリュームコンテナからのデータ取得
Ａ．データ管理動作
図２Ａは、１つまたは複数の実施形態に従い、テープボリュームコンテナからデータを取得するための動作セット例を示す。図２Ａにおいて示される１つまたは複数の動作は、変形され、再配置され、または全て省略され得る。従って、図２Ａにおいて示される特定の動作の順序は、１つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【００３１】
実施形態では、データ管理エンジンは、データストレージテープ内のテープブロックに対応するデータにアクセスするためのテープ駆動要求を受信する（動作２０２）。たとえば、データ管理エンジンは、アーカイブエンジンから、ユーザによって要求されたファイルのための要求を受信し得る。要求は、ユーザが開こうとしている、アーカイブエンジンによって過去にアーカイブされたファイルを特定し得る。要求は、ファイルを見つけるためのテープボリューム、テープブロック、およびオフセットを参照するメタデータをさらに含み得る。
【００３２】
実施形態では、データ管理エンジンは、データストレージテープとの関係において参照された要求されたデータが、データストレージテープ内よりもむしろコンテナオブジェクト内に格納されているかを決定する（動作２１０）。要求されたデータがコンテナオブジェクト内に格納されているかを決定することは、テープブロックオブジェクトとコンテナオブジェクトとの間のマッピングを使用することを含み得る。具体的には、データ管理システムは、要求において識別されたテープブロックを使用して、（テープブロック、データストレージテープ）対（ブロック、コンテナ）のマッピングを照会する。テープブロックが対応するコンテナブロックとのマッピング内に見つけられると、データ管理エンジンは、データが対応するコンテナブロック内に格納されていると決定する。データがコンテナブロック内に格納されているかを決定することは、データを格納する特定のコンテナブロックを識別することを含み得る。テープブロックがマッピング内に見つからない場合は、データは、いずれのコンテナブロック内にも格納されていない。
【００３３】
別の例として、データ管理エンジンは、データがコンテナオブジェクト内に格納されているかをデータに対応するファイル名に基づき決定する。特定のファイル名形式またはファイル名コンテンツは、コンテナオブジェクト内に格納されるデータに対して使用され得る。要求されたファイルのファイル名が、コンテナオブジェクト内に格納されたデータに対して使用された特定のファイル名形式またはファイル名コンテンツを有する場合は、対応するデータは、コンテナオブジェクト内に格納されていると決定される。一度データがコンテナオブジェクト内に格納されていると決定されると、（テープブロック、データストレージテープ）対（ブロック、コンテナ）マッピングは、データを含むコンテナオブジェクトを識別するために使用され得る。
【００３４】
データがコンテナ内のオブジェクトにマッピングされると、データ管理エンジンは、コンテナからオブジェクトを取得する（動作２２０）。コンテナからオブジェクトを取得することは、オブジェクトに対する要求をオブジェクトベースストレージシステムに送信することを含み得る。複数のオブジェクトにまたがって格納されたデータは、オブジェクトベースストレージシステムから複数のオブジェクトを取得することを必要とする。複数のオブジェクトを取得することは、特定の開始点から特定の終点のオブジェクトのシーケンシャル取得を特定することを含み得る。
【００３５】
実施形態では、データ管理エンジンは、１つまたは複数の実施形態に従い、データストリームを、テープアーカイブ形式で、取得されたデータから生成する（動作２２２）。例として、データ管理エンジンは、データをオブジェクトベースストレージシステムから取得された複数のオブジェクトから抽出し得る。データ管理エンジンは、複数のオブジェクトから取得されたデータを連結し、要求しているテープクライアントにストリームされるべきファイルを、ファイルアーカイブ形式で、生成し得る。
【００３６】
実施形態では、データ管理エンジンは、テープ駆動要求に応答して、データストリームをテープアーカイブ形式で送信する（動作２２４）。データ管理エンジンは、データストリームを、インターネットを介して無線で、および／または配線またはバスを介して物理的に送信し得る。データ管理エンジンは、データストリームをシーケンシャルにテープアーカイブ形式で送信し得る。データストリームの受信者は、テープボリュームのテープブロックから抽出されたデータストリームを受信するのと同様の方法で、データストリームを受信する。
【００３７】
データがコンテナ内のオブジェクト内にマッピングされない場合は、データ管理エンジンは、データストレージテープからデータにアクセスすることを試みる（動作２３０）。データストレージテープからデータにアクセスするための試行は、テープ駆動要求内で識別されたデータストレージテープをロードすることを含み得る。
【００３８】
要求内で識別されたデータストレージテープが存在しない、またはそうでなければ利用不可である場合、データ管理エンジンは、エラーを生成する（動作２４０）。たとえば、データ管理エンジンは、そのようなデータおよび／またはデータストレージテープが存在しないというメッセージを送信する。
【００３９】
データストレージテープが正常にロードされると、データ管理エンジンは、格納されたテープ駆動要求内で識別されたテープブロック内のデータを取得する（動作２３２）。データ管理エンジンは、テープ駆動要求内で特定されたテープブロックに対応するテープボリューム内の開始オフセットに移動する。開始オフセットに移動することは、テープボリュームを巻き戻しまたは早送りことを含み得る。一度オフセットにおけるデータがアクセス可能となると、データ管理エンジンは、終端オフセットに対応するテープブロックの終端までデータのシーケンシャル読み込みを実行し得る。
【００４０】
実施形態では、データ管理エンジンは、テープブロックから取得されたデータをストリーミングする（動作２３４）。データは、シーケンシャルデータストリームとして、たとえば、無線または有線接続を介してストリームされ得る。このため、システムは、データストレージテープ（物理または仮想）、並びにオブジェクトベースストレージシステムの両方にアクセスすることをサポートすることができる。
【００４１】
例として、ローカルファイルベースデータシステムのユーザが「ファイルＸ」というファイルを開くことを要求する。ファイルベースデータシステムは、ファイルＸが５０ＭＢのサイズであり、テープボリュームに格納されていることを示す、ファイルＸのためのメタデータを含む。ファイルベースデータシステムは、データストレージテープ（ｔｐ２０００）内のテープブロック（５００）内のファイルＸのデータにアクセスするための要求を送信する。データ管理エンジンは、データストレージテープ内のテープブロック内のファイルＸにアクセスするための要求を受信する。
【００４２】
ファイルＸにアクセスするための要求を受信したことに応答して、データ管理エンジンは、要求されたデータがコンテナ内のオブジェクトにマッピングされているかを決定する。データ管理エンジンは、受信されたテープブロックおよびテープボリューム情報に基づき、オブジェクトベースストレージシステムを検索する。データ管理エンジンは、ブロック５００においてテープｔｐ２０００に対応するコンテナ内のオブジェクト、すなわち「ｄａｔａ＠ｔｐ２０００／ｂｌｏｃｋ．０００５００」を識別する。
【００４３】
次に、データ管理エンジンは、オブジェクトをコンテナから取得する。データ管理エンジンは、データストレージテープ内のテープブロックにアクセスするための要求を受信したが、実際にはオブジェクトベースストレージシステム内のオブジェクトにアクセスする必要がある。変換エンジンは、受信された要求をオブジェクトベースストレージシステムに対応する形式に変換しなければならない。一度要求がオブジェクトベースストレージシステムによって理解可能な形式になると、データ管理エンジンは、変換された要求をオブジェクトベースストレージシステムに送信する。変換された要求を受信したことに応答して、オブジェクトベースストレージシステムは、ストリーミングのために要求されたオブジェクトをロードする。この時点で、オブジェクトは、コンテナから取得された。
【００４４】
コンテナからオブジェクトを取得したときに、データ管理エンジン１４０は、オブジェクトベースストレージシステムから、ブロック５００において始まる「ｄａｔａ＠ｔｐ２０００」というコンテナ内の読み込みを開始するよう準備する。データ管理エンジンは、ファイルＸに対応するデータ量が読み込まれるまで、ブロックの読み込みを継続する。
【００４５】
データ管理エンジンは、オブジェクトベースストレージシステムにオブジェクトの読み込みを開始するように命令することによってブロック読み込みを開始する。データ管理エンジンは、データを「ｄａｔａ＠ｔｐ２０００／ｂｌｏｃｋ．０００５００」というオブジェクトから取得する。次に、データ管理エンジンは、次のブロックにマッピングされた「ｄａｔａ＠ｔｐ２０００／ｂｌｏｃｋ．０００５０１」というオブジェクトからデータを要求することによって次のブロックを読み込む。５０ＭＢのデータが要求されたため、データ管理エンジン１４０は、５０ＭＢのデータが読み込まれるまでブロックの読み込みを継続する。
【００４６】
次に、データ管理エンジンは、要求に応答してデータストリームをテープアーカイブ形式で送信する。データ管理エンジンが各ブロックを読み込むと、それは、データを、テープアーカイブ形式で、要求しているファイルベースストレージシステムに返却する。データ管理エンジンは、ファイルＸを構成するデータを、読み込まれた各テープブロックに対してローカルストレージシステムにシーケンシャルに書き込む。ファイルＸのためのすべてのデータが正常に書き込まれた後に、ファイルは、ローカルストレージシステムから通常のファイルとして利用可能である。
【００４７】
Ｂ．ストレージシステム動作
図２Ｂは、１つまたは複数の実施形態に従い、オブジェクトベースストレージシステム１１０から見て、テープボリュームコンテナからデータを取得するための動作セット例を示す。図２Ｂにおいて示される１つまたは複数の動作は、変形され、再配置され、または全て省略され得る。従って、図２Ｂにおいて示される特定の動作の順序は、１つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【００４８】
実施形態では、オブジェクトベースストレージシステムは、コンテナ内のオブジェクト内のデータにアクセスするための要求を受信する（動作２５０）。データ管理エンジンは、要求をオブジェクトベースストレージシステムに転送する前に、要求をオブジェクトベースストレージシステムが理解可能な形式に変換しておき得る。オブジェクトベースストレージシステムは、要求をコンテナ内のオブジェクト内のデータにアクセスするための通常の要求として考える。これは、たとえば、特定のオブジェクトへのポインタ、およびオフセットを含み得る。
【００４９】
次に、オブジェクトベースストレージシステムは、データがコンテナ内のオブジェクトからアクセスされることができるかを決定する（動作２５２）。オブジェクトベースストレージシステムは、要求されたデータが特定された位置に配置されているかを確認する。実施形態では、システムは、チェックサムを実行して、要求されたデータと関連付けられたメタデータ内で特定されたように、オブジェクト内のデータが要求されたデータと一致するかどうかを確認する。チェックサムが一致する場合、システムは、要求されたデータを取得することに進む。
【００５０】
データがコンテナ内のオブジェクトからアクセスされることができる場合、オブジェクトベースストレージシステムは、データをコンテナ内のオブジェクトから送信する（動作２５４）。オブジェクトベースストレージシステムは、データストリームを無線でインターネットを介して、および／または配線またはバスを介して物理的に送信し得る。オブジェクトベースストレージシステムは、特定のオブジェクトのための要求に応答して、１回に１つのオブジェクトのデータを送信し得る。
【００５１】
データがコンテナ内のオブジェクトからアクセスされることができない場合、オブジェクトベースストレージシステムは、エラーを返却する（動作２５６）。たとえば、オブジェクトベースストレージシステムは、データが特定された位置にないことを示す情報をデータ管理エンジンに送信する。オブジェクトベースストレージシステムは、データが破損している、またはそうでなければアクセス不可能であることを示すエラーメッセージを送信し得る。
【００５２】
４．テープボリュームコンテナへのデータ格納
図３は、１つまたは複数の実施形態に従いテープボリュームコンテナにデータを格納するための動作セット例を示す。図３において示される１つまたは複数の動作は、変形され、再配置され、または全て省略され得る。従って、図３において示される特定の動作の順序は、１つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【００５３】
実施形態では、データ管理エンジンは、データストリームをデータストレージテープ内のテープブロックに書き込むための命令を受信する（動作３０２）。たとえば、データ管理エンジンは、命令をユーザから受信し、ファイルをテープブロックに保存する。別の例として、アーカイブエンジンは、テープブロックにデータをアーカイブするための命令を送信する。変換エンジンは、受信された命令をオブジェクトベースストレージシステムに対応する形式に変換し、要求の少なくとも一部をオブジェクトベースストレージシステムに転送し得る。
【００５４】
実施形態では、データ管理エンジンは、データストリームと関連付けられたコンテナ内に既存のオブジェクトが存在するかを決定する（動作３０４）。たとえば、データ管理エンジンは、要求をオブジェクトベースストレージシステムに送信して、特定されたデータがオブジェクトベースストレージシステム内に存在するかを決定する。実施形態では、データ管理エンジンに対してローカルにあるメタデータは、オブジェクトベースストレージシステム内のテープボリュームコンテナの一覧を作成する。データ管理エンジンは、ローカルメタデータをチェックして既存のオブジェクトがテープブロックに対応するかを決定する。データ管理エンジンは、チェックサムを実行し、オブジェクトに格納されたデータを検証し得る。
【００５５】
データストリームと関連付けられたコンテナ内に既存のオブジェクトが存在する場合、データ管理エンジンは、オブジェクトデータを更新する（動作３２０）。実施形態では、データ管理エンジンは、データストリームをオブジェクトベースストレージシステムに、オブジェクトを上書きするための命令とともに送信する。代替的にまたは追加的に、データ管理エンジンは、オブジェクトデータを既存のデータに付け加え得る。送信する前に、データ管理エンジンは、データをＴＡＲ形式に変換し得る。
【００５６】
データストリームと関連付けられたコンテナ内に既存のオブジェクトが存在しない場合、データ管理エンジンは、オブジェクトをデータストリームに基づき生成する（動作３０６）。実施形態では、データ管理エンジンは、データブロックに対応するオブジェクトを作成する。ファイルシステム内のファイルまたはファイルフォルダと関連付けられ得る従来のオブジェクトとは対照的に、オブジェクトは、データストレージテープ内の特定のテープブロックと関連付けられる。オブジェクトは、データストレージテープ内のテープブロックとして認識可能な形式の名称を付され得る。たとえば、オブジェクトの名称は、対応するテープブロックの名称を含む。テープブロックは、オブジェクト上へとマッピングされる。他の実施形態では、オブジェクトは、既存であり得、またはオブジェクトベースストレージシステムによって生成され得る。
【００５７】
データ管理エンジンは、オブジェクトを対応するデータストリームとさらに関連付ける。データ管理エンジンは、いくつかのまたはすべてのデータストリームをオブジェクトに格納する。実施形態では、データストリーム全体は、オブジェクトに格納される。別の実施形態では、データストリームは、いくつかのデータブロックに対応するいくつかのオブジェクトに分割される。たとえば、ポリシーは、各データブロックがある量のデータ、たとえば１０、１５、１６、または２０ＭＢを保持するべきと指令し得る。比較的大きいファイルに対して、データ管理エンジンは、データをいくつかのオブジェクトに分割しなければならない。比較的小さいファイルに対して、データ管理エンジンは、複数のファイルをオブジェクトに格納する。
【００５８】
データ管理エンジンは、データストレージテープをコンテナにマッピングする（動作３０８）。システムは、テープボリュームコンテナをオブジェクトベースストレージシステム内に作成する。代替的に、システムは、オブジェクトベースストレージシステム内の既存のコンテナを使用し得る。いずれの場合でも、データ管理エンジンは、コンテナをブロック３０２での命令において特定されたデータストレージテープにマッピングする。実施形態では、データ管理エンジンは、コンテナに特定されたデータストレージテープを参照する名称を与える。
【００５９】
データストレージテープをコンテナにマッピングした後に、データ管理エンジンは、オブジェクトをコンテナと関連付けられたストレージのために送信する（動作３１０）。例として、オブジェクトは、オブジェクトベースストレージシステムにＳｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）を介して、オブジェクトをコンテナに格納するための命令とともに送信される。実施形態では、データ管理エンジンは、送信する前に、データを別の形式からＴＡＲ形式に変換する。データ管理エンジンはそして、オブジェクトベースストレージシステム内のコンテナ内に格納するためのデータを、シーケンシャルデータストリームで、ＴＡＲ形式で送信する。
【００６０】
例として、ユーザは「ファイルＹ」というファイルをローカルファイルシステムに保存する。ローカルファイルシステムは、階層的ファイル管理システムの一部であり、アーカイブエンジンは、ローカルファイルシステムを定期的に検索して、アーカイブされるべきファイルを探す。ファイルは、リモートクラウドストレージ（オブジェクトベースストレージシステム１１０）にアーカイブされる。階層的ファイル管理システムは、先週編集されていないファイルをアーカイブするためのポリシーを有し、アーカイブされるファイルのローカルコピーを消去する。ローカルコピーの定期的消去は、ローカルストレージが制限されているときに必要であり得る。ファイルＹは、１週間、アクセスされておらず、したがって、アーカイブエンジンは、ファイルＹをアーカイブされるべきファイルとして識別する。アーカイブエンジンは、命令をデータ管理エンジンに送信し、データストリームをデータストレージテープ内のテープブロックに書き込む。特に、データ管理エンジンは、ファイルＹのためのデータを含むデータストリームをデータストレージテープ「ｔｐ２０００」にブロック１において書き込むための命令を受信する。
【００６１】
データ管理エンジンは、データストリームと関連付けられるコンテナ内に既存のオブジェクトが存在するかをチェックする。データ管理エンジンは、対応するオブジェクトがファイルＹのうちのいくらかのまたはすべての含むと示すメタデータを検索することによって、クラウドストレージシステムに対してデータストリームと関連付けられるオブジェクトを照会する。データ管理エンジンは、そのようないずれのオブジェクトも存在しないという応答を受信する。データ管理エンジンは、データストリームと関連付けられるコンテナ内に既存のオブジェクトが存在しないと決定する。
【００６２】
データストリームと関連付けられるコンテナ内に既存のオブジェクトが存在しないと決定したことに応答して、データ管理エンジンは、オブジェクトをデータストリームに基づき生成する。データ管理エンジンは、新たなオブジェクトを作成する。データ管理エンジンは、オブジェクトをテープブロック１にマッピングする。データ管理エンジンは、オブジェクト名称が「ｔｐ２０００」および「１」を含むようにオブジェクトに名称を付与する。オブジェクト名称は、データストレージテープおよびテープブロック、それぞれを参照する。オブジェクトは、ファイルＹと関連付けられる。
【００６３】
次に、データ管理エンジンは、データストレージテープをコンテナにマッピングする。データ管理エンジンは、コンテナ名称に「ｔｐ２０００」を含む新たなオブジェクトに対応するコンテナを生成する。データ管理エンジンは、データストレージテープ、ｔｐ２０００を、コンテナにマッピングする。コンテナは、テープブロッククライアントによってデータストレージテープとして認識可能である。
【００６４】
次に、データ管理エンジンは、ｔｐ２０００，ブロック１にマッピングされたオブジェクトのオブジェクトベースストレージシステムへの送信を始動する。オブジェクトは、ＴＡＲ形式で、オブジェクトベースストレージシステムにストリームされる。
【００６５】
データ管理エンジンは、テープブロックへのデータ送信のすべてのマーカーを有するデータストリームを始動した。実施形態では、一度データストリームが始動されると、データ管理エンジンは、テープブロッククライアントへの制御を送信することができる。テープブロッククライアントは、それがデータをｔｐ２０００と称される標準的なテープに書き込むかのように、書き込み動作に進むことができる。
【００６６】
５．例示的実施形態
Ａ．メタデータ
１つの例では、システムは、メタデータを使用してデータ動作を管理する。システムは、ローカルのファイルベースストレージおよびリモートのクラウドストレージシステム（オブジェクトベースストレージシステム１１０）を含む。アーカイブエンジンは、ポリシーに基づき、所与のファイルがオブジェクトベースストレージシステムにアーカイブされるべきと定期的に決定する。ローカルおよびリモートストレージシステム間でファイルを共有することを容易にするために、２つのレイヤのメタデータは、使用される。
【００６７】
ローカルストレージでは、データ管理エンジンは、ファイルを格納し、ファイルシステム内に各ファイルと関連付けられたメタデータをアーカイブする。アーカイブメタデータは、所与のファイルが配置されたデータの位置を記述する情報を含む。たとえば、アーカイブメタデータは、（データストレージテープにマップされた）コンテナの名称、そのテープボリュームコンテナ内の位置、およびオフセットを含む。オブジェクトベースストレージシステム内に格納されたデータを記述するメタデータをローカルに格納することは、データがリモートに格納されるときに特に有用である。たとえば、多くのクラウドストレージシステムでは、データを取得するのに最大４時間かかり得る。したがって、リモートに格納されたデータを記述するメタデータを、情報が即時取得のために利用可能であるローカルに格納することが望ましい。
【００６８】
オブジェクトベースストレージシステムでは、コンテナメタデータは、いくつかのメタデータコンテナのうちの１つに格納される。コンテナメタデータは、どの情報がコンテナ内にあり、それをどのように見つけるかについての情報を含む。コンテナメタデータは、コンテナに格納された既存のファイルおよびブロックの数を含む。コンテナメタデータは、各ファイルのための対応するブロックとともに、ファイルのリストを含む、過去の書き込みセッションに対するマニフェストをさらに含む。コンテナメタデータはまた、チェックサムを含み得る。メタデータコンテナは、従来のテープ上の情報領域と同様に構成され、メタデータコンテナは、テープブロック上のデータについての情報、および対応するチェックサムを含む。チェックサムは、テープドライブの内部および外部ＣＲＣコードと同様であり、これは、テープブロックをスプールする前に長さチェックを可能とする。コンテナメタデータはこのようにして、テープブロッククライアントによって理解可能であるように構成される。
【００６９】
たとえば、システムは、「ファイルＡ」というファイルをローカルのファイルベースストレージシステムへと書き込むための要求をユーザから受信する。ファイルＡは、１００ＭＢのサイズである。初期的に、ファイルＡのためのアーカイブメタデータは空である。
【００７０】
アーカイブエンジンは、ローカルストレージシステムを検索してアーカイブされるべきファイルを探す。アーカイブエンジンは、ファイルＡがアーカイブされる必要があると識別する。アーカイブエンジンは、データストリームをデータストレージテープ内のテープブロックに書き込むための命令をデータ管理エンジンに送信する。命令は、データを「ｔｐ１０００」というテープボリュームに書き込むことを特定する。アーカイブエンジンは、ローカルストレージシステムからのファイルを、各ファイルが５１２バイトＴＡＲヘッダを有するＴＡＲ形式へと変換することを開始する。
【００７１】
データ管理エンジンは、ファイルＡを一緒にアーカイブされるべきファイルのグループへとＴＡＲ形式で配置する。ＴＡＲデータストリームは、所与のサイズのテープブロックへと分割される。ファイルは、データが１６ＭＢブロックへとグループ化されることを指令するポリシーに従い、一緒にグループ化される。
【００７２】
データ管理エンジンは、データストレージテープをコンテナにマッピングする。データ管理エンジンは、コンテナを生成し、それを特定されたテープボリュームであるｔｐ１０００と関連付ける。データ管理エンジンは、従ってコンテナに「ｃｌｏｕｄｌｉｂ．ｄａｔａ＠ｔｐ１０００」という名称を付与する。
【００７３】
データ管理エンジンが、オブジェクトをコンテナと関連付けられたストレージに対して送信するときに、データ管理エンジンは、メタデータを更新する。図４は、１つまたは複数の実施形態に従いメタデータを更新するための動作セット例を示す。図４において示される１つまたは複数の動作は、変形され、再配置され、または全て省略され得る。従って、図４において示される特定の動作の順序は、１つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【００７４】
データ管理エンジンは、データストレージテープにマッピングされたメタデータコンテナを識別する（動作４０２）。データストレージテープの名称は、関連付けられたデータおよびメタデータコンテナを識別するために使用される。ファイルＡは、「ｃｌｏｕｄｌｉｂ．ｄａｔａ＠ｔｐ１０００」というデータコンテナに関連付けられ、ｔｐ１０００にマッピングされる。同様に、メタデータコンテナは、「ｃｌｏｕｄｌｉｂ．ｍｅｔａ＠ｔｐ１０００」と称される。
【００７５】
次に、データ管理エンジンは、チェックサムを実行およびチェックして、データ保護を確実にする（動作４０４）。チェックサム情報は、アーカイブメタデータおよびコンテナメタデータの両方に格納される。データ管理エンジンはそして、チェックサムを比較する。
【００７６】
データ管理エンジンは、メタデータマニフェストを読み込んで、データの付加を開始すべきブロック数を決定する（動作４０６）。ｔｐ１０００に対して、メタデータマニフェストは、下記のいくつかのファイル、およびこれらのファイルのためのデータを含む仮想テープブロックを含む。
【００７７】
ｆｉｌｅ−０００００１．００００００（ブロック０−４０９）
ｆｉｌｅ−０００００２．０００４１０（ブロック４１０−６４１）
ｆｉｌｅ−０００００３．０００６４２（ブロック６４２−９６５）
ｆｉｌｅ−０００００４．０００９６６（ブロック９６６−１００６）
ｆｉｌｅ−０００００５．００１００７（ブロック１００７−１０５０）
データ管理エンジンは、メタデータマニフェストを読み込み、ファイルＡに対して付加されるべきデータが、ブロック１０５１において開始すると決定する。
【００７８】
次に、データ管理エンジンは、コンテナと関連付けられたストレージに対してオブジェクトを送信する。データ管理エンジンは、ｔｐ１０００にシーケンシャルＴＡＲ形式でデータの付加を開始する。データ管理エンジンは、各テープブロックをオブジェクトベースストレージシステムに、順に、非同期送信で送信する。第１に、データ管理エンジンは、ファイルＡ内の第１のデータブロックをブロック１０５１に送信する。
【００７９】
データ管理エンジンが新たなブロックを書き込むときに、それは、対応するメタデータマニフェストを更新する（動作４０８）。データ管理エンジンがデータをブロック１０５１に正しく送信したので、データ管理エンジンは、
ｆｉｌｅ−０００００６．００１０５１（ブロック１０５１）
をメタデータマニフェストに追加する。ファイルＡは、オブジェクトベースストレージシステム内の使用のために所与の数値名称を与えられる。メタデータはまた、このファイルがファイルＡと称されることを示す。
【００８０】
データ管理エンジンは、テープブロックの書き込みを継続し、ファイル全体が送信されるまでメタデータを更新する。１０２個のブロックが送信された後に、ファイルＡは、完全に送信され、テープ書き込みセッションが完了される。
【００８１】
すべてのテープブロックが送信された後に、クローズ動作が実行される。クローズ動作は、データ管理エンジンが任意の未処理のオブジェクト送信を停止させることを引き起こす。データコンテナへの現在の書き込みセッションは、クローズされる。
【００８２】
次に、データ管理エンジンは、完了したメタデータマニフェストオブジェクトである「ｃｌｏｕｄｌｉｂ．ｍｅｔａ＠ｔｐ１０００／ｆｉｌｅ−０００００６．００１０５１」を書き込み、これは、ブロック１０５１−１１５２のためのマニフェストエントリを含む。データが書き込まれると、ｃｌｏｕｄｌｉｂ．ｍｅｔａ＠ｔｐ１０００というメタデータコンテナは、以下の情報を含む。
６個の既存のファイル、合計１１５３ブロック
過去の書き込みセッションに対するマニフェスト：
ｆｉｌｅ−０００００１．００００００（ブロック０−４０９）
ｆｉｌｅ−０００００２．０００４１０（ブロック４１０−６４１）
ｆｉｌｅ−０００００３．０００６４２（ブロック６４２−９６５）
ｆｉｌｅ−０００００４．０００９６６（ブロック９６６−１００６）
ｆｉｌｅ−０００００５．００１００７（ブロック１００７−１０５０）
ｆｉｌｅ−０００００６．００１０５１（ブロック１０５１−１１５２）
新たに更新されたメタデータマニフェストは、ファイルＡがブロック１０５１−１１５２に格納されていることを示す。書き込みが正常だったので、データ管理エンジンは、アーカイブメタデータを更新して、ファイル位置を特定する（動作４１０）。ファイルＡに対して、アーカイブメタデータは、以下を特定する。
【００８３】
媒体種類：ｃｌ
ｖｓｎ：ｔｐ１０００
位置：１０５１
オフセット：５１２
種類「ｃｌ」は、ファイルがクラウド内のテープボリュームコンテナに格納されていることを示す。Ｖｓｎ  ｔｐ１０００は、ファイルがデータストレージテープｔｐ１０００にマッピングされたコンテナ内に格納されていることを示す。位置１０５１、およびオフセット５１２は、ファイルＡがそのクラウドコンテナ内のブロック１０５１、オフセット５１２で始まることを示す。
【００８４】
メタデータはまた、読み込み動作のために使用される。今やファイルＡがテープボリュームコンテナに書き込まれたので、ファイルＡは、以下のようにメタデータを使用して読み込みのために取得されることができる。
【００８５】
第１に、システムは、ユーザがファイルＡをローカルストレージシステムから読み込むことを試みたことを示す情報を受信する。ユーザがファイルＡを読み込もうとしたという通知を受信したときに、データ管理エンジンは、ファイルＡのためのアーカイブメタデータをチェックする。アーカイブメタデータは、ファイルＡがクラウド内のテープボリュームコンテナに格納されていると意味する「ｃｌ」という符号を含む。データ管理エンジンは、チェックサムを実行して、ファイルＡが特定された位置に格納されていることを確かめる。
【００８６】
オブジェクトをコンテナから取得するために、データ管理エンジンは、「１０５１に位置決める」とのコマンドをオブジェクトベースストレージシステムに送信する。これは、オブジェクトベースストレージシステムに、データブロック１０５１にマッピングされたオブジェクトからの取得を始動するように指示する。オブジェクトベースストレージシステムは、ブロック１０５１にマッピングされたオブジェクトの読み込み開始を準備するために、その内部状態を設定する。
【００８７】
次に、データ管理エンジンは、「ｃｌｏｕｄｌｉｂ．ｄａｔａ＠ｔｐ．１０００ｂｌｏｃｋ．００１５１」から開始してオブジェクトの読み込みを開始する。各ブロックがロードされると、データ管理エンジンは、チェックサムを計算し、チェックサムをロード時間中に読み込まれるマニフェストからの対応するチェックサムに対してチェックする。
【００８８】
検証後に、データ管理エンジンは、各ブロックからのデータをシーケンシャルに送信する。ブロックを読み込むと、データ管理エンジンは、次のシーケンシャルブロックに進む。ブロック１５１に対するデータを送信した後に、データ管理エンジンは、「ｃｌｏｕｄｌｉｂ．ｄａｔａ＠ｔｐ．１０００ｂｌｏｃｋ．００１０５２」に対するデータを返却する。その後に、データ管理エンジンは、「ｃｌｏｕｄｌｉｂ．ｄａｔ＠ｔｐ．１０００／ｂｌｏｃｋ．００１０５３」というオブジェクトからのデータを返却する。データ管理エンジンは、すべてのブロックが送信されるまでシーケンシャルにブロックの送信を継続する。
【００８９】
各ブロックを読み込んだ後に、データ管理エンジンは、予期されたＴＡＲヘッダを、アーカイブメタデータに従い検証する。正常である場合、データ管理エンジンは、データをローカルストレージシステムに各テープブロックの読み込みに対してシーケンシャルに書き込む。１００ＭＢであるファイルＡのために、７個のテープブロックが読み込まれる。ファイルＡのデータは、第１のブロックのオフセット５１２から開始し、最終ブロックのオフセット４１９４８１６で終了する。
【００９０】
ファイルＡのすべてのデータがローカルストレージに正常に書き込まれた後に、データ管理エンジンは、ファイルをローカルストレージシステム内でオンラインとしてアーカイブメタデータ内に印す。アーカイブメタデータ内で、媒体種類は「ｆｉ」に変更され、ファイルがローカルに格納されたファイルであることを示す。ファイルは、今や、ローカルファイルシステムを通してローカルファイルとして使用するために利用可能である。
【００９１】
Ｂ．復元動作
例では、動作は、復元動作をさらに含み、オブジェクトは、取得のためにオフラインストレージシステムからオンラインストレージシステムに復元される。
【００９２】
実施形態では、復元動作は、データを読み込むときに実行される。データをオブジェクトベースストレージシステムから取得するときに、データは、オフラインまたはオンライン（復元された）のいずれかであり得る。データがオフラインである場合は、データは、それが取得可能となる前に、復元されなければならない。この処理は、数時間もかかり得る。たとえば、クラウドストレージシステムでは、クラウド内に格納されたいくらかのデータを有することが一般的であり、そこではデータは、直接アクセス可能である。その他のデータは、オフラインストレージセンタ内に格納され、そこではデータが直接アクセス可能になる前に、データは、クラウドに復元されなければならない。
【００９３】
テープブロックにアクセスするための要求を受信するときに、データ管理エンジンは、要求されたテープブロックがオンラインかオフラインかを決定する。データ管理エンジンは、（章５Ａで説明されたように）ローカルメタデータをチェックして、要求されたデータブロックと関連付けられたオブジェクトの状態を決定し得る。データがオンラインである場合、復元動作は必要とされない。データがオフラインである場合は、復元動作が必要とされる。
【００９４】
実施形態では、要求されたデータがオフラインである場合、システムは、取得動作のためにオブジェクトをオフラインストレージシステムからオンラインストレージシステムに復元する。このステップは、データ管理エンジンからの要求に応答して、オブジェクトベースストレージシステムによって実行され得る。たとえば、データ管理エンジンは、要求を、オブジェクトベースストレージシステムに送信して、データブロックを復元する。要求に応答して、オブジェクトベースストレージシステムは、要求されたデータブロックにマッピングされたオブジェクトを、リモートストレージシステムからオンラインストレージにコピーする。
【００９５】
システムは、いくつかのデータブロックについて一度に復元動作を実行し得る。たとえば、データ管理エンジンは、復元動作を実行する前に、それがデータを取得するためのある数の要求を受信するまで待機する。データ管理エンジンはそして、データブロックのグループに対して復元動作を同時に始める。
【００９６】
実施形態では、データ管理エンジンは、テープブロックにアクセスするための要求を受信し、そして、要求されたテープブロックに関連付けられた１つまたは複数のテープブロックを識別する。たとえば、データ管理エンジンは、テープブロックＢ上のファイルＢにアクセスするための要求を受信するデータ管理エンジンは、テープブロックＣ上のファイルＣがファイルＢの更新されたバージョンであると決定する。データ管理エンジンはまた、テープブロックＢおよびテープブロックＣを復元することによって、ファイルＣをファイルＢとともに、復元する。
【００９７】
復元のためのテープブロックを識別することに続いて、データ管理エンジンは、テープブロックの各々を対応するオブジェクトにマッピングする。データ管理エンジンは、取得のために、要求されたテープブロックと関連付けられたオブジェクトをオンラインストレージシステムに復元する。データ管理エンジンは、同時に復元されるべきオブジェクトを単一のコマンドのように要求し得る。データ管理エンジンは、互いにかなり近接して復元されるべきオブジェクトを、連続して実行されたオブジェクト毎に１つのコマンドのように要求し得る。
【００９８】
たとえば、データ管理エンジンは、１０個のファイルが、オブジェクトベースストレージから取得されなければならないと決定する。１０個のファイルの各々は、異なるテープブロックと関連付けられる。データ管理エンジンは、１０個のファイルの各々と関連付けられた１０個のテープブロックが取得されるべきと識別する。アーカイブエンジンはそして、１０個のテープブロックの各々がそれぞれマッピングされた１０個のオブジェクトを決定する。データ管理エンジンは、１０個の要求されたブロックが復元されるのを待ち、そしてブロックの読み込みを開始する。
【００９９】
たとえば、復元処理は、４時間かかる。この遅延のために、複数の関連付けられた復元動作を一度に実行することが有利である。そうでなければ、各オフラインオブジェクトが要求されたときに、復元が始動され、各オブジェクトに対して別個の４時間の遅延がもたらされるだろう。データ管理エンジンにとって一緒に実行されるべきいくつかの復元動作を要求することがより効率的である。
【０１００】
Ｃ．効率的なテープブロックサイズ、暗号化
実施形態では、データ管理エンジンは、効率性の考慮に基づき、データを特定のサイズのテープブロックへとグループ分けする。たとえば、多くのクラウドストレージシステムでは、小さいデータブロックについて複数の動作を実行するよりもむしろ、大きいデータブロックを送受信する方が、コスト対効果が高い。いくつかのクラウドストレージシステムは、１０ＭＢよりも小さいファイルを送信することに対してペナルティを課す。
【０１０１】
実施形態では、データ管理エンジンは、１６ＭＢのオブジェクトサイズを使用する。このオブジェクトサイズは、比較的小さいファイルを送信することにより被るペナルティを回避するということが分かる。オブジェクトサイズは、十分なストリーミング性能を達成するために依然として十分に小さい。各オブジェクトが１６ＭＢに可能な限り近くなることを確実にするために、データ管理エンジンは、読み込みまたは書き込み動作を実行する前に、データを１６ＭＢブロックへと組み立てる。
【０１０２】
たとえば、アーカイブエンジンは、１０個のファイルがアーカイブされるべきと決定する。１０個の選択されたファイルの各々は、４ＭＢのサイズである。データ管理エンジンは、１０個のファイルを一緒にアーカイブされるべきファイルのグループへとＴＡＲ形式で配置する。アーカイブエンジンは、データブロックが１６ＭＢのデータを含むように、４個のファイルをデータブロックへとグループ分けする。
【０１０３】
実施形態では、データ管理エンジンは、データをデータオブジェクトベースストレージシステムに送信する前に暗号化する。今日既知のまたは後に開発された任意の技法は、データを暗号化するために使用され得る。任意の数のコンポーネントは、データを暗号化することに関わり得る。データの暗号化は、任意の特定の技法またはコンポーネントに限定されない。たとえば、データブロックは、参照によって組み込まれる米国特許第８８９２９０５Ｂ２号(Method and Apparatus for Performing Selective Encryption/Decryption in a Data Storage System)において説明されるように選択的に暗号化され得る。
【０１０４】
Ｄ．物理的なテープボリュームとのインターフェース
実施形態では、システムは、物理テープボリュームからオブジェクトベースストレージシステムへのまたはオブジェクトベースストレージシステムからの、データの物理的インポートまたはエクスポート可能とする。オブジェクトおよびコンテナがテープブロックおよびテープボリュームにマッピングされているので、その内部のデータは、物理テープボリュームからおよび物理テープボリュームへと容易に送信されることができる。
【０１０５】
たとえば、８ＴＢのデータがオブジェクトベースストレージシステムにアーカイブされるとする。ネットワークを介してよりもむしろ、そのような大きい量のデータをオブジェクトベースストレージシステムに物理的に送信する方が、はるかにより効率的である。データストレージテープをオブジェクトベースストレージシステムへとマッピングすることは、システムが物理テープボリュームを占有し、テープボリュームをオブジェクトベースストレージシステム内のコンテナにマッピングすることを可能とする。システムは、データをオブジェクトベースストレージシステムにより効率的に移動することができる。同様に、システムは、物理テープボリュームをテープボリュームコンテナから生成することができる。
【０１０６】
６．その他、拡張
実施形態は、ハードウェアプロセッサを含み、ここで説明されるおよび／または下記の請求項のいずれか１項に記載される任意の動作を実行するように構成される１つまたは複数のデバイスを有するシステムに向けられる。
【０１０７】
実施形態では、非一時的コンピュータ可読記憶媒体は、１つまたは複数のハードウェアプロセッサによって実行されると、ここで説明されるおよび／または請求項のいずれか１項に記載される動作の任意を実行させる命令を備える。
【０１０８】
本明細書で説明される特徴および機能の任意の組み合わせは、１つまたは複数の実施形態に従い使用され得る。上述の明細書において、実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書と図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。
【０１０９】
７．ハードウェア概要
１つの実施形態に従って、ここで説明される技法は、１つまたは複数の特定用途のコンピューティングデバイスによって実装される。特定用途コンピューティングデバイスは、技法を実行するために有線であり得、または技法を実行するために永続的にプログラムされた１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはネットワーク処理ユニット（ＮＰＵ）といったデジタル電子デバイスを含み得、またはファームウェア、メモリ、他のストレージ、または組み合わせにおけるプログラム命令に従って技法を実行するようにプログラムされた１つまたは複数の汎用ハードウェアプロセッサを含み得る。そのような特定用途コンピューティングデバイスは、カスタム有線ロジック、ＡＳＩＣ、ＦＰＧＡ、またはＮＰＵをカスタムプログラミングと組み合わせて、技法を実現し得る。特定用途コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピューターシステム、ハンドヘルドデバイス、ネットワークデバイス、または技法を実装するための有線および／またはプログラムロジックを組み込んだ任意の他のデバイスであり得る。
【０１１０】
たとえば、図５は、本発明の実施形態がその上に実装され得るコンピュータシステム５００を示すブロックダイアグラムである。コンピュータシステム５００は、情報を通信するためのバス５０２または他の通信機構、および情報を処理するためにバス５０２と結合されたハードウェアプロセッサ５０４を含む。ハードウェアプロセッサ５０４は、たとえば、汎用マイクロプロセッサであり得る。コンピュータシステム５００はまた、プロセッサ５０４によって実行される情報および命令を格納するためにバス５０２に結合されたランダムアクセスメモリ（ＲＡＭ）または他の動的ストレージデバイスなどのメインメモリ５０６含む。メインメモリ５０６はまた、プロセッサ５０４によって実行される命令の実行中に一時変数または他の中間情報を格納するために使用され得る。そのような命令は、プロセッサ５０４がアクセス可能な非一時的記憶媒体に格納されると、コンピュータシステム５００を、命令において特定された動作を実行するようにカスタマイズされた特定用途マシンにする。
【０１１１】
コンピュータシステム５００は、プロセッサ５０４に対する静的情報および命令を格納するためにバス５０２に結合された読み出し専用メモリ（ＲＯＭ）５０８または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどの記憶装置５１０が提供され、情報および命令を格納するためにバス５０２に結合される。
【０１１２】
コンピュータシステム５００は、情報をコンピュータユーザに表示するために、バス５０２を介して陰極線管（ＣＲＴ）などのディスプレイ５１２に結合され得る。英数字および他のキーを含む入力デバイス５１４は、情報およびコマンド選択をプロセッサ５０４に伝達するためにバス５０２に結合される。別の種類のユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ５０４に伝達し、ディスプレイ５１２上のカーソル移動を制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御５１６である。この入力デバイスは典型的に、第１軸（ｘなど）および第２軸（ｙなど）の２つの軸において２つの自由度があり、デバイスが平面内の位置を特定可能にする。
【０１１３】
コンピュータシステム５００は、カスタマイズされた有線ロジック、１つまたは複数のＡＳＩＣまたはＦＰＧＡ、ファームウェアおよび／またはプログラムロジックを使用して本明細書に記載の技法を実装し、これらはコンピュータシステムと組み合わせてコンピュータシステム５００を特定用途マシンにするまたはプログラムする。一実施形態によれば、本明細書の技法は、プロセッサ５０４がメインメモリ５０６に含まれる１つまたは複数の命令の１つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム５００によって実行される。そのような命令は、ストレージデバイス５１０などの別の記憶媒体からメインメモリ５０６に読み込まれ得る。メインメモリ５０６に含まれる命令のシーケンスの実行により、プロセッサ５０４は本明細書に記載の処理ステップを実行する。代替実施形態では、ソフトウェア命令の代わりに、またはそれと組み合わせて、有線回路を使用することができる。
【０１１４】
本明細書で使用される「記憶媒体」という用語は、マシンを特定の方法で動作させるデータおよび／または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および／または揮発性媒体を含み得る。不揮発性媒体は、たとえば、ストレージデバイス５１０などの光ディスクまたは磁気ディスクが含まれる。揮発性媒体は、メインメモリ５０６などの動的メモリを含む。記憶媒体の一般的な形態は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の磁気データ記憶媒体、ＣＤ−ＲＯＭ、その他の光学データ記憶媒体、穴のパターンを備えた物理媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、その他のメモリチップまたはカートリッジ、連想メモリ（ＣＡＭ）、およびＴｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ（ＴＣＡＭ）を含む。
【０１１５】
記憶媒体は、伝送媒体と別のものであるが、これと組み合わせて使用されることができる。伝送メディアは、記憶媒体間の情報の送信に関与する。たとえば、伝送媒体は、バス５０２を構成するワイヤを含む同軸ケーブル、銅線、光ファイバーを含む。伝送媒体は、電波および赤外線データ通信中に生成される音波などの音響波または光波の形態を取ることができる。
【０１１６】
さまざまな形態の媒体が、実行のためにプロセッサ５０４に１つまたは複数の命令の１つまたは複数のシーケンスを運ぶことに関与し得る。たとえば、命令は、初期的にリモートディスクの磁気ディスクまたはソリッドステートドライブで実行されることができる。リモートコンピュータは、命令を動的メモリにロードし、モデムを使用して電話回線で命令を送信することができる。コンピュータシステム５００に対してローカルなモデムは、電話線でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で運ばれるデータを受信でき、適切な回路は、データをバス５０２に配置することができる。バス５０２は、データをメインメモリ５０６に運び、プロセッサ５０４は、そこから命令を取り出して実行する。メインメモリ５０６によって受信された命令は、プロセッサ５０４による実行の前または後のいずれかに、ストレージデバイス５１０に任意に格納され得る。
【０１１７】
コンピュータシステム５００はまた、バス５０２に結合された通信インターフェース５１８を含む。通信インターフェース５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に結合する双方向データ通信を提供する。例えば、通信インターフェース５１８は、統合サービスデジタルネットワーク（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または対応する種類の電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース５１８は、互換性のあるＬＡＮへのデータ通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線はまた、実装され得る。そのような実装では、通信インターフェース５１８は、さまざまな種類の情報を表すデジタルデータストリームを運ぶ電気信号、電磁信号、または光信号を送受信する。
【０１１８】
ネットワークリンク５２０は、典型的に、１つまたは複数のネットワークを介して他のデータデバイスへのデータ通信を提供する。たとえば、ネットワークリンク５２０は、ローカルネットワーク５２２を介してホストコンピューター５２４またはインターネットサービスプロバイダー（ＩＳＰ）５２６によって運営されるデータ機器への接続を提供することができる。ＩＳＰ５２６は、今日一般に「インターネット」５２８と呼ばれる世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを次いで提供する。ローカルネットワーク５２２およびインターネット５２８は両方とも、デジタルデータストリームを運ぶ電気信号、電磁信号または光信号を使用する。コンピュータシステム５００へとまたはそこへとデジタルデータを搬送する、さまざまなネットワークを介した信号、およびネットワークリンク５２０および通信インターフェース５１８を介した信号は、伝送媒体の例示的な形態である。
【０１１９】
コンピュータシステム５００は、ネットワーク（複数可）、ネットワークリンク５２０、および通信インターフェース５１８を通じて、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ５３０は、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２、および通信インターフェース５１８を介して、アプリケーションプログラムに要求されたコードを送信する。
【０１２０】
受信されたコードは、プロセッサ５０４が受信されたときにそれによって実行され、および／または後で実行するためにストレージデバイス５１０または他の不揮発性ストレージに格納され得る。
【０１２１】
上述の明細書では、本発明の実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書と図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。
【図１】
2020509481.tif 000003
【図２Ａ】
2020509481.tif 000004
【図２Ｂ】
2020509481.tif 000005
【図３】
2020509481.tif 000006
【図４】
2020509481.tif 000007
【図５】
2020509481.tif 000008
【国際調査報告】
2020509481.tif 000009
2020509481.tif 000010