(57)【特許請求の範囲】
【請求項１】
エミュレートされたストレージのためのコンピュータ実施方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
仮想テープの作成要求を受信し、
ストレージサービスにおける論理データコンテナの作成を要求し、
前記論理データコンテナと前記仮想テープとを対応付け、
前記仮想テープを仮想テープドライブへ搭載する旨の要求を受信し、
前記仮想テープに対応付けられた前記論理データコンテナを、前記仮想テープドライブに対応付けられた仮想テープドライブ入力／出力インターフェイスにマッピングし、
前記仮想テープドライブ入力／出力インターフェイスを通して受信した要求を、前記仮想テープドライブにマッピングされた前記仮想テープに対応付けられた前記論理データコンテナに対する要求に変換し、
前記仮想テープの保存要求を受信したことに応じて、
前記仮想テープドライブ入力／出力インターフェイスへの前記論理データコンテナのマッピングを取除き、
前記仮想テープの保存要求がアーカイブストレージサービスへの保存要求である場合には、
前記仮想テープを仮想インポート／エクスポートスロットへマッピングし、
前記仮想テープを仮想テープライブラリから削除し、
前記仮想テープに対応付けられた前記論理データコンテナを、前記ストレージサービスのアクティブストレージからアーカイブストレージサービスのアーカイブ論理データコンテナへ送る
ことを含み、
前記仮想テープに対応付けられた前記論理データコンテナを、前記ストレージサービスのアクティブストレージからアーカイブストレージサービスのアーカイブ論理データコンテナへ送ることは、
前記仮想テープドライブ入力／出力インターフェイスを通して、前記アーカイブストレージサービスのアーカイブ論理データコンテナを使用するための準備に関する許容応答時間を決定し、
前記アーカイブストレージサービスのストレージ階層のセットの中から、それぞれのストレージ階層のアーカイブ論理データコンテナへのアクセス応答時間と、前記決定と、に少なくとも基づいて、ストレージ階層を選び、
前記論理データコンテナを、前記仮想テープドライブ入力／出力インターフェイスを通して使用される前記ストレージサービスのある階層のアクティブストレージから、選択された前記ストレージ階層の前記アーカイブ論理データコンテナへ移し、
前記仮想テープを前記アーカイブ論理データコンテナに対応付ける
ことを含む、コンピュータ実施方法。
【請求項２】
前記論理データコンテナと仮想テープを対応付けることは、メタデータストアにおいて実行され、
前記仮想テープの仮想保存場所へのマッピングを、前記メタデータストアに保存する
ことをさらに含む請求項１に記載のコンピュータ実施方法。
【請求項３】
データを保存するためのコンピュータ実施方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
仮想テープと仮想テープドライブが対応付けられている間、前記仮想テープドライブの入力／出力インターフェイスからのテープ処理要求を、前記仮想テープドライブに対応付けられた論理データコンテナに対する要求に変換し、
前記仮想テープを前記仮想テープドライブから取除く旨の要求を受信したことに応じて、前記仮想テープと前記論理データコンテナとから前記仮想テープドライブとの対応付けを解除し、
各ストレージ階層がアクセススピード属性及びコスト属性を有するストレージ階層のセットから、ストレージ階層を選択することであって、
前記入力／出力インターフェイスを通して、前記ストレージ階層の論理データコンテナを使用するための準備に関する許容応答時間を決定し、
前記ストレージ階層のセットの中から、それぞれのストレージ階層の論理データコンテナへのアクセス応答時間と、前記決定と、に少なくとも基づいて、ストレージ階層を選ぶことを含む、ことと、
前記論理データコンテナを、前記入力／出力インターフェイスが対応付けられている論理データコンテナを備える現在の階層から、前記選択したストレージ階層の論理データコンテナへ移す
ことを含むコンピュータ実施方法。
【請求項４】
前記入力／出力インターフェイスからのテープ処理要求を、前記仮想テープドライブに対応付けられた前記論理データコンテナに対する要求に変換することは、
クライアントインターフェイスから前記テープ処理要求を受信し、
前記テープ処理要求を一以上のストレージサービス要求に変換し、
前記一以上のストレージサービス要求を、クライアントネットワークから、公衆ネットワークそしてストレージサービスインターフェイスを通して、ストレージサービスへ送信する
ことを含む請求項３に記載のコンピュータ実施方法。
【請求項５】
前記クライアントインターフェイスからテープ処理要求を受信することは、
仮想テープライブラリ装置を前記クライアントネットワーク上に配置すること、および
テープ処理要求を受信し、ストレージサービス要求を送信するように、前記仮想テープライブラリ装置を構成する
ことを含む請求項４に記載のコンピュータ実施方法。
【請求項６】
前記論理データコンテナを、前記入力／出力インターフェイスが対応付けられている論理データコンテナを備える現在の階層から、前記選択したストレージ階層の論理データコンテナへ移すことの後に、
前記ストレージサービスの前記選択したストレージ階層の論理データコンテナと前記仮想テープとをメタデータストアにおいて対応付けることをさらに含む請求項４に記載のコンピュータ実施方法。
【請求項７】
前記ストレージサービスの前記選択したストレージ階層の論理データコンテナと前記仮想テープとをメタデータストアにおいて対応付けることは、
前記ストレージサービスにおける論理データコンテナの作成を要求し、
前記メタデータストアにおいて、前記論理データコンテナと前記仮想テープを対応付ける、
ことを含む請求項６に記載のコンピュータ実施方法。
【請求項８】
前記仮想テープドライブが第二仮想テープドライブに対しデータを提供するように要求された場合、前記仮想テープ及び前記仮想テープドライブと対応付けられた前記論理データコンテナと、第二仮想テープ及び前記第二仮想テープドライブと対応付けられた第二論理データコンテナとの間で、論理データコンテナの移動処理を行うことをさらに含む請求項３〜７のいずれかに記載のコンピュータ実施方法。
【請求項９】
仮想テープライブラリを管理するコンピュータシステムであって、
一以上のプロセッサ及び、実行可能命令を含むメモリを含む一以上のコンピューティングリソースを備え、前記実行可能命令が前記一以上のプロセッサにより実行されると、前記実行可能命令により前記一以上のプロセッサは少なくとも、
クライアントアーカイブシステムにインターフェイスを提供する仮想テープライブラリシステムを実装し、前記仮想テープライブラリシステムは、
各仮想テープが、要求によりストレージ論理データコンテナを提供するストレージサービスのストレージ論理データコンテナを備える仮想テープのセット、
各仮想テープドライブと対応付けられた仮想テープと通信するために前記クライアントアーカイブシステムにインターフェイスを各仮想テープドライブが提供する仮想テープドライブのセット、
仮想テープと仮想テープドライブを対応付けるように構成された媒体チェンジャインターフェイス、及び、
仮想テープと前記ストレージ論理データコンテナとを対応付けるメタデータストア
を備え、
テープライブラリシステムのエミュレーションを行なうことを特徴とするコンピュータシステムであって、
前記仮想テープライブラリは、前記ストレージ論理データコンテナを前記ストレージサービスからアーカイブストレージサービスのアーカイブ論理データコンテナへ移すように構成される一以上の仮想インポート／エクスポートスロットまたは一以上の仮想ストレージスロットをさらに備え、
前記仮想テープの前記アーカイブストレージサービスへの保存要求を受信したことに応じて、
前記仮想テープと前記仮想テープドライブとの対応付けを解除し、
前記仮想テープを前記仮想インポート／エクスポートスロットまたは前記仮想ストレージスロットへマッピングし、
前記仮想テープを前記仮想テープライブラリから削除し、
前記仮想テープが備える前記ストレージ論理データコンテナを、前記ストレージサービスから前記アーカイブストレージサービスの前記アーカイブ論理データコンテナへ送ることを実行し、
前記仮想テープが備える前記ストレージ論理データコンテナを、前記ストレージサービスから前記アーカイブストレージサービスの前記アーカイブ論理データコンテナへ送ることは、
前記インターフェイスを通して、前記アーカイブストレージサービスのアーカイブ論理データコンテナを使用するための準備に関する許容応答時間を決定し、
前記アーカイブストレージサービスのストレージ階層のセットの中から、それぞれのストレージ階層のアーカイブ論理データコンテナへのアクセス応答時間と、前記決定と、に少なくとも基づいて、ストレージ階層を選び、
前記ストレージ論理データコンテナを、前記インターフェイスを通して使用される前記ストレージサービスのある階層のストレージから、選択された前記ストレージ階層の前記アーカイブ論理データコンテナへ移し、
前記仮想テープを前記アーカイブ論理データコンテナに対応付ける
ことをさらに含む、コンピュータシステム。
【請求項１０】
第一仮想テープに対応付けられた論理データコンテナが、第二仮想テープに対応付けられた論理データコンテナへ移動されることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１１】
新規仮想テープを作成し、前記新規仮想テープを前記仮想テープライブラリシステムに搭載するように構成されたストレージサービスインターフェイスをさらに備える請求項９または１０に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連出願の相互参照）
本出願は、「仮想テープライブラリシステム」と題する２０１２年１２月２０日に出願された米国特許出願第１３／７２２．７４３号（整理番号００９７７４９−１５２ＵＳ０（Ｐ６２７３））、及び「論理データコンテナを利用した仮想テープ」と題する２０１２年１２月２２日に出願された米国特許出願第１３／７２２．８１４号の優先権を主張する。
【０００２】
企業等の組織は、データの消失や破損に備えてデータをバックアップする。例えばクライアントデータは、環境上の脅威、セキュリティ上の脅威、事故及び／または障害を含む、様々な脅威にさらされていると言える。環境上の危険としては、クライアントシステムを中断させるまたは損害を与えうる嵐やその他自然災害がある。セキュリティ上の脅威としては、ハッカーが不正に生産システムに侵入し、データ及び／またはソフトウェアを破損または破壊しうることが挙げられる。事故的脅威としては、ソフトウェアのバグによるデータの破損または不整合なデータの生成がある。障害的脅威としては、重要なデータを含む複数の記憶装置の相関障害といったハードウェアシステムの障害がある。バックアップされていれば、少なくともデータ及び／またはソフトウェアは、既知の望ましい時点まで回復可能であろう。
【０００３】
データをバックアップする一つの手法として、テープバックアップシステムが挙げられる。テープバックアップシステムは、データを保存するのにテープカートリッジを使用する。企業によっては、テープバックアップシステムは一部または全体的に自動化され、ロボティックアームによってテープを保存場所からテープドライブに移し、その後再び保存場所に戻すように構成されている。例えばクライアントアーカイブシステムは、前記ロボティックシステムに命令しテープをある場所から他の場所へ移動させ、前記テープの移動を記録する。また前記クライアントアーカイブシステムは、復元処理が必要な場合にファイルや他の情報をリコールするために、前記テープに書込まれた情報を記録できる。これらロボティックシステムは、効率的に作業を行うために広いシステム室及び機械システムのメンテナンスが必要であろう。
【図面の簡単な説明】
【０００４】
本開示における様々な実施形態は、以下の図面を参照しながら説明される。
【０００５】
【図１】少なくとも一実施形態における仮想テープライブラリの実施例を図示する。
【図２】少なくとも一実施形態における仮想テープライブラリシステムの実施例を図示する。
【図３】少なくとも一実施形態における仮想テープライブラリシステムの実施例を図示する。
【図４】少なくとも一実施形態における仮想テープライブラリシステムの実施例を図示する。
【図５】少なくとも一実施形態における仮想テープライブラリシステムの操作プロセスの実施例を図示する。
【図６】少なくとも一実施形態における仮想テープライブラリシステムへのデータバックアッププロセスの実施例を図示する。
【図７】少なくとも一実施形態における仮想テープライブラリシステムからのデータ復元プロセスの実施例を図示する。
【図８】少なくとも一実施形態における仮想テープライブラリシステムの操作プロセスの実施例を図示する。
【図９】少なくとも一実施形態における仮想テープの実施例を図示する。
【図１０】少なくとも一実施形態における仮想テープヘッダーの実施例を図示する。
【図１１】少なくとも一実施形態における仮想テープのデータブロックグループの実施例を図示する。
【図１２】少なくとも一実施形態における仮想テープの作成プロセスの実施例を図示する。
【図１３】修正データを論理データコンテナに保存するプロセスの実施例を図示する。
【図１４】少なくとも一実施形態における仮想テープへの書込プロセスの実施例を図示する。
【図１５】少なくとも一実施形態における仮想テープを使用したレコード検索プロセスの実施例を図示する。
【図１６】少なくとも一実施形態における仮想テープを使用したファイル検索プロセスの実施例を図示する。
【図１７】少なくとも一実施形態における仮想テープの読込プロセスの実施例を図示する。
【図１８】少なくとも一実施形態における仮想テープで発生した事象から復旧するプロセスの実施例を図示する。
【図１９】様々な実施形態を実施可能な環境例を図示する。
【発明を実施するための形態】
【０００６】
以下の記述では、様々な実施形態について説明する。説明の適用上、前記実施形態の完全な理解のために特定的な構成及び詳細が明らかにされる。しかしながら、前記実施形態はこれらの特定的な詳細なしに実施可能であることは、当業者にとって明白であろう。さらに、説明されている前記実施形態が理解しがたいものにならないように、周知の特徴は省略または簡略化される。
【０００７】
ここに記載及び提案される技術は、ストレージサービスの論理データコンテナ及び／またはメタデータストアに対して物理テープ処理を要求するクライアントアーカイブシステムのデータを、前記物理テープ処理をエミュレートすることによってバックアップするように、仮想テープライブラリシステムを実装することを含む。例えば仮想テープライブラリ装置は、クライアントアーカイブシステムとインターフェイス経由で接続できるように、クライアント宅内に設置される。クライアントアーカイブシステムが仮想テープにクライアントデータをアーカイブできるように、前記仮想テープライブラリは物理テープライブラリをエミュレートする。前記仮想テープライブラリ装置は、テープドライブや媒体チェンジャインターフェイスといった物理テープライブラリのサブシステムのような仮想インターフェイスを提供する。そしてこれら仮想インターフェイスは、ストレージサービスの論理データコンテナ及びメタデータストアにより対応される。前記仮想テープライブラリシステムにより、前記クライアントアーカイブシステムは、新規の仮想テープのインポート、アーカイブ用の仮想テープのエクスポート、仮想位置における仮想テープの保存、仮想テープドライブの仮想テープの搭載及び排出、そして仮想テープドライブ内の仮想テープの処理、といった要求が可能となる。
【０００８】
仮想テープドライブの仮想テープに対する処理には、検索、読込み、書込み、初期化、マーキング、及び前記仮想テープライブラリシステムによってエミュレートされたその他の物理テープ処理が含まれる。前記クライアントアーカイブシステムからのテープカートリッジに関するこれらの操作要求は、前記仮想テープライブラリシステムによって変換され、ストレージサービスのメタデータストア及び／または論理データコンテナに対し処理が行われる。仮想テープをある仮想位置から他の仮想位置へ移動する等の移動処理は、メタデータストアにおける仮想テープと仮想位置の対応付けを変更することによって達成される。仮想テープの読込み、書込み等のデータ処理は、前記論理データコンテナの前記ストレージサービスと連動するインターフェイスを通して達成される。前記ストレージサービスは、必要に応じ論理データコンテナがプロビジョニングされるオンデマンド型ストレージサービスでありうる。いくつかの実施形態において、前記ストレージサービスと前記仮想テープライブラリ装置は、インターネット等の公衆ネットワークを介して分離した状態でありうる。前記仮想テープライブラリシステムにより、クライアントはテープハードウェアのメンテナンスに要する費用を削減しつつ、データのバックアップ用リソースを必要に応じて積極的に管理できるようになるであろう。例えば、ストレージのニーズと費用に合わせて、要求に応じて仮想テープを構築または削除可能である。
【０００９】
一実施形態において、クライアントは仮想テープにデータをバックアップし、そして前記仮想テープをアーカイブストレージに保存する。クライアントは新規仮想テープを、アクティブストレージのプロビジョニングインターフェイスを通して要求する。前記仮想テープの作成は、前記ストレージサービスにおいて新たな論理データコンテナをプロビジョニングし、メタデータストアにおける対応付けを始め、前記論理データコンテナと仮想テープ識別子（ＩＤ）を対応付けることで行われる。そして前記新規仮想テープは、前記仮想テープライブラリの仮想インポート／エクスポートスロット内に仮想的に配置される。当該仮想テープの移動は、前記メタデータストアにおいて前記仮想テープＩＤと仮想インポート／エクスポートスロットを対応付けることにより達成される。前記仮想テープが前記仮想インポート／エクスポートスロットに配置されることで、前記クライアントアーカイブシステムは前記仮想テープを制御可能となる。そして前記クライアントアーカイブシステムは、前記仮想テープを仮想テープドライブへ移動するよう、前記仮想テープライブラリシステムの仮想媒体チェンジャを通して要求できる。当移動は、前記仮想テープＩＤと前記仮想インポート／エクスポートスロットの対応付けを取除き、前記仮想テープＩＤと仮想テープドライブを対応付けることによって達成される。インターネット小コンピュータシステムインターフェイス（ｉＳＣＳＩ）等、特定の選択された仮想テープドライブに対応付けられた仮想テープドライブインターフェイスは、前記仮想テープＩＤに対応付けられた前記論理データコンテナに対応付けられる。そして前記新規仮想テープは初期化処理が行われ、グローバルヘッダー等の基本仮想テープ構成が前記論理データコンテナへ書込まれる。初期化後、前記クライアントシステムは前記クライアントアーカイブシステムを通して前記仮想テープにデータをバックアップ可能となる。前記データのバックアップは、前記仮想テープライブラリ装置がテープコマンドを受取り、前記テープコマンドを処理要求として変換し、前記ストレージサービスにおいて、前記仮想テープドライブに対応付けられた前記論理データコンテナの仮想テープ構造に処理を行うことによって達成される。これらの処理には、データの書込み、レコードの作成、ファイルマークの作成が含まれる。前記バックアップが完了した後、前記クライアントアーカイブシステムは、アーカイブストレージのために、前記仮想テープを前記仮想テープドライブから前記仮想インポート／エクスポートスロットへ移動するよう要求可能となる。これに応じて、前記仮想テープライブラリ装置は、前記仮想テープドライブと前記仮想テープＩＤの対応付けを取除き、そして前記仮想テープドライブインターフェイスを前記論理データコンテナに割当てる。そして前記論理データコンテナは、前記ストレージサービスの前記アクティブストレージからアーカイブサービスへ移動するようにステージされる。
【００１０】
他実施形態において、クライアントはアーカイブストレージの仮想テープのデータから復元する。前記クライアントはプロバイダストレージシステムを通して、仮想テープをアーカイブストレージから仮想インポート／エクスポートスロットへ移動するよう要求しうる。これに応じて、前記プロバイダは前記仮想テープに対応付けられた前記論理データコンテナを、アーカイブストレージからアクティブストレージへ移動する。前記移動が完了したら、前記仮想テープライブラリシステムは、前記仮想テープＩＤと前記仮想インポート／エクスポートスロットを対応付ける。前記仮想テープが前記仮想インポート／エクスポートスロットに配置されることで、前記クライアントアーカイブシステムは前記仮想テープを制御可能となる。そして前記クライアントアーカイブシステムは、前記仮想テープを仮想テープドライブへ移動するよう、前記仮想テープライブラリシステムの仮想媒体チェンジャを通して要求しうる。当移動は、前記仮想テープＩＤと前記仮想インポート／エクスポートスロットの対応付けを取除き、前記仮想テープＩＤと仮想テープドライブを対応付けることによって達成される。特定の選択された前記仮想テープドライブに対応付けられた仮想テープドライブインターフェイスは、前記仮想テープＩＤに対応付けられた前記論理データコンテナに対応付けられる。そして前記クライアントアーカイブシステムは前記仮想テープに対し、位置特定、スペース処理、読込み、その他テープ処理等を行える。これらの処理は、前記論理データコンテナからどのデータを取得するか特定するのに使用される。データの復元が完了した後、前記クライアントアーカイブシステムは、前記仮想テープを前記仮想テープドライブから、アーカイブストレージのために前記仮想インポート／エクスポートスロットへ、またはさらなる処理を受けるために仮想テープスロット位置へ移動するよう要求しうる。これに応じて、前記仮想テープライブラリ装置は、前記仮想テープドライブと前記仮想テープＩＤの対応付けを取除き、そして前記仮想テープドライブインターフェイスを前記論理データコンテナに割当てうる。再アーカイブの場合は、前記論理データコンテナは、ストレージサービスの前記アクティブストレージからアーカイブサービスへ移されるようにステージされる。仮想テープスロット位置に移動する場合、前記仮想テープＩＤと仮想テープスロット位置の対応付けが保存される。
【００１１】
他実施形態において、仮想テープは再初期化または破壊されてもよい。仮想テープの再初期化では、仮想テープが現在保持しているデータは消去される。前記クライアントアーカイブシステムは、仮想テープを仮想テープドライブにロードするよう、仮想媒体チェンジャを通して要求しうる。前述の前記仮想テープのロード要求により、前記仮想テープに対応付けられた論理データコンテナは、仮想テープドライブのインターフェイスに対応付けられる。そして前記クライアントアーカイブシステムは、前記仮想テープドライブに前記仮想テープを再初期化するよう要求しうる。いくつかの実施形態において、当再初期化は、前記論理データコンテナのグローバルヘッダーに含まれる生成識別子を変更し、前記論理データコンテナの全てのデータを無効化することで達成される。再初期化後、前記クライアントアーカイブシステムは、前記仮想テープを使用、またはこれから使用されるために前記仮想テープを仮想テープスロット位置に戻すよう要求できる。また前記クライアントアーカイブシステムは、仮想テープを破壊するよう要求してもよい。前記クライアントアーカイブシステムは、テープを破壊するため、前記仮想テープを前記仮想テープドライブから前記仮想インポート／エクスポートスロットへ移動するよう要求しうる。これに応じて、前記仮想テープライブラリ装置は、前記仮想テープドライブと前記仮想テープＩＤの対応付けを取除き、そして前記仮想テープドライブインターフェイスを前記論理データコンテナに割当てる。そして前記論理データコンテナは、プロビジョン解除される。
【００１２】
現行のシステムの利点は、費用が実際のシステムの使用に比例することである。例えば、クライアントは仮想テープへのバックアップを毎時、毎日、毎週、毎月、毎年、その他の期間毎に行うことが可能である。１週間後、クライアントは毎日行う夜間のバックアップを除く、残り全ての毎時バックアップの破壊を希望するかもしれない。夜間のバックアップ以外の全ての毎時バックアップを破壊することで、その破壊される仮想テープの費用が削減される。
【００１３】
ストレージサービスは、仮想テープを保存するために多階層のストレージを提供しうる。前記ストレージサービスには、オブジェクトストレージやブロックストレージを含む異なるストレージシステムを使用可能である。一実施形態において、アクティブストレージとアーカイブストレージが使用される。前記アクティブストレージは、データの読込み、書込みに適切な応答を行える。前記アーカイブストレージは、待ち時間が長すぎるサービスを提供するため、データの読込み、書込みには適さないが、長期にわたるストレージに適したサービスを提供できる。例えばアクティブストレージ論理データコンテナは、確認や読込または書込処理のデータ等、同時に読込処理と書込処理の応答を提供できる。アーカイブストレージ論理データコンテナは、各要求に対するジョブ識別子等、非同時性応答を提供できる。前記ジョブ識別子は、前記ジョブが完了しているか判断するための問合わせに使用される。また両論理データコンテナは、一以上の論理データコンテナを含む異なるサイズのデータオブジェクトを含んでもよい。前記仮想インポート／エクスポートスロットに仮想テープが配置されると、使用上、前記仮想テープに対応付けられた前記論理データコンテナは、前記アクティブストレージとアーカイブストレージ間を移動するためにステージされる。
【００１４】
他実施形態において、三階層のストレージが使用される。前記三階層ストレージは、仮想テープに対応付けられた論理データコンテナがデータ転送可能になるまでにどのくらいの時間が必要かといった点で検討される。例えば三つの論理データコンテナが、前記仮想ライブラリ内の位置に配置される。第一論理データコンテナは、今すぐアクセス可能な第一階層に配置される。前記クライアントアーカイブシステムが前記第一論理データコンテナに対応付けられた前記仮想テープを前記仮想テープドライブにロードするよう要求した場合、前記論理データコンテナは、前記仮想テープドライブインターフェイスが前記論理データコンテナに対応付けられることで、アクセス可能となる。第二論理データコンテナは、数分でアクセス可能な第二階層に配置される。前記クライアントアーカイブシステムが前記第二論理データコンテナに対応付けられた前記仮想テープを前記仮想テープドライブにロードするよう要求した場合、前記仮想テープがデータ受取可能となる前に、前記第二論理データコンテナはより高次階層のストレージに移動される。前記第二論理データコンテナは、その並みのストレージ階層パフォーマンスにより数分でアクセス可能となる。第三論理データコンテナは、数時間かそれ以上でアクセス可能となる第三階層に配置される。前記クライアントアーカイブシステムが前記第三論理データコンテナに対応付けられた前記仮想テープを前記仮想テープドライブにロードするよう要求した場合、前記仮想テープがデータ受取可能となる前に、前記第三論理データコンテナはより高次階層のストレージに移動される。前記第三論理データコンテナは、その低いストレージ階層パフォーマンスにより数時間かそれ以上でアクセス可能となる。いくつかの実施形態において、前記第二または第三論理データコンテナは、前記仮想ライブラリストレージ位置ではなく仮想インポート／エクスポートスロットを通してルーティングされる。前記多階層構造の利点は、クライアントがバックアップデータの利用程度に応じて、どの階層を使用するか決定できることである。長期にわたるストレージデータの場合は、より長い応答時間でより安く保存可能であり、一方アクティブデータの場合は、より高いコストをかけてすぐに利用可能な状態で保存される。
【００１５】
プロビジョニングという用語は、概して使用するコンピューティングリソースの割当ての意味を含む。いくつかの実施形態において、当プロビジョニングは、使用するコンピューティングリソースを準備することを含む。一実施形態において、リソースのプロビジョニングには、サーバの割当て、オペレーティングシステムのインストール、前記リソースに置くソフトウェアのインストールと設定、そして前記構築したリソースを使用可能にすることが含まれる。例えばプロビジョニングシステムは、メタデータストアのデータベースとして使用するサーバを選択する。そして前記プロビジョニングシステムは、サーバがデータベースとして使用されるようにワークフローを作成しうる。前記ワークフローの一部として、マシンイメージがサーバにロードされてもよい。前記マシンイメージには、オペレーティングシステム、データベースソフトウェア、及び／または設定が含まれる。前記マシンイメージをロードした後、前記サーバは前記オペレーティングシステムを起動し、さらなるソフトウェア及び／または設定を受取るように構成される。このような設定には、ドメイン名及び／または初期メタデータ、そしてセキュリティ設定が含まれる。プロビジョニングの完了後、前記サーバは、メタデータストアとして前記仮想テープライブラリシステムに含まれるように、マネジメントシステムとして転用される。
【００１６】
以下の記述では、様々な実施形態について説明する。説明の適用上、前記実施形態の完全な理解のために特定的な構成及び詳細が明らかにされる。しかしながら、前記実施形態はこれらの特定的な詳細なしに実施可能であることは、当業者にとって明白であろう。さらに、説明されている前記実施形態が理解しがたいものにならないように、周知の特徴は省略または簡略化される。
【００１７】
ここに記載及び提案される技術は、論理データコンテナに仮想テープを構築し、テープの機能性、速い検索性能、及び障害時のより速い復旧機能を提供することを含む。例えば、前記論理データコンテナは、一以上のデータブロックグループを従えるグローバルヘッダーを備える。論理データコンテナは、ブロックストレージボリューム、ファイルストレージ論理データコンテナ、またはオブジェクトストレージ論理データコンテナ等の、アドレス指定可能なデータコンテナでありうる。前記グローバルヘッダーは、レコード位置、ファイルマーク位置、メモリにおける仮想テープデータ、データ検証情報、そして仮想テープヘッド位置を記録するメタデータを提供する。前記グローバルテープヘッダーの当メタデータにより、前記論理データコンテナにおけるレコードやファイルマークのより速い検索、メモリにある最新の既知データ位置を利用したより速い復旧、データの無効化による仮想テープの迅速な消去が可能となり、そしてテープヘッド位置情報が提供される。物理テープをエミュレートするために、リニアアクセスもエミュレートされる。磁気媒体をテープヘッドの上に移動させることで、物理テープにアクセスできる。テープヘッド位置は、磁気媒体に保存されるデータ内の前記テープヘッドの位置を示す。仮想テープにおいて、仮想テープヘッド位置は、データブロックグループのデータブロックの参照に相応する。データブロックグループは、データ検証、エラー修正、レコードとファイルマークに関する情報提供、データブロックにおけるクライアントデータのストレージ情報提供を行う情報を含みうる。データブロックグループはさらに、グループとしてメモリにロードされるメガブロックとしてまとめられる。
【００１８】
いくつかの実施形態において、前記グローバルヘッダーは、さらにグローバル生成識別子（グローバル生成ＩＤ）、ジャーナル、グローバルレコードフラグ、そしてグローバルファイルマークフラグを含みうる。前記グローバルヘッダーは、前記仮想テープにあるデータの迅速な位置特定を可能にする情報を提供する。物理テープには、前記テープをリニアスキャンすることでデータにインラインで記されたレコードまたはファイルマークを特定する、リニアアクセスが利用される。前記グローバルレコードフラグ等のグローバルメタデータを使用すると、論理データコンテナ全体が走査される代わりにメタデータが走査されるため、位置特定がさらに迅速に行える。例えば、検索処理においてテープ始端（ＢＯＴ）から十番目のレコードが要求されるとする。物理テープはテープ始端まで巻き戻され、十番目のレコードマークが見つかるまで順方向に走査される一方、仮想テープは前記グローバルレコードフラグにおける少量のメタデータが走査される。前記グローバルレコードフラグの始端から数えて十番目のフラグがＴＲＵＥに設定されていることが検知される。レコードの位置が特定され、特定された位置に合わせて前記ジャーナルの仮想テープヘッド位置が更新される。メタデータは、前記仮想テープ全体のデータサイズに比べてデータサイズが小さく、またランダムにアクセスされるため、前記論理データコンテナにおける検索時間は、同等の物理テープにおける検索時間より短縮される。ファイルマークの場合も、グローバルファイルマークフラグを使って同様なプロセスが行われる。
【００１９】
仮想テープの復旧は、前記グローバルヘッダーのジャーナルを使用することで向上される。前記ジャーナルは、処理において前記仮想テープのどのメタデータがメモリにロードされたか特定するのに使用される。一実施形態において、前記ジャーナルは、メモリにロードされたメガブロックメタデータを特定する。メガブロックは、連続する複数のデータブロックグループに相当する。メガブロックに書込まれたデータは論理データコンテナに同期的に保存される一方で、メモリからメガブロックを削除する際等、前記メガブロックメタデータへの変更は前記グローバルヘッダーに非同期的に保存される。前記グローバルヘッダーの当非同期更新により、グローバルヘッダーは、同期的に保存される前記メガブロックデータとは同期しない状態になりうる。時として、仮想テープと対応付けられた論理データコンテナのホストサーバに障害が起こりうる。前記ジャーナルが調査され、前記ジャーナル内で参照された前記メガブロックが復旧の対象とされる。メモリ内の前記メガブロックに関する前記メタデータは、前記グローバルヘッダーのメタデータと照合される。前記メモリ内のメガブロックのメタデータと前記グローバルヘッダーのメタデータの差異は、データブロックグループメタデータに合わせて前記グローバルメタデータを更新することで解消される。いくつかの実施形態において、各データブロックグループのエラー修正メタデータで破損したデータを復元することで、データ破損問題は解消される。
【００２０】
いくつかの実施形態において、データブロックグループは標準サイズで形成される。標準サイズにすることによってオフセットの計算が可能になり、データブロックグループの位置特定は数学的に計算され、前記論理データコンテナ内の位置におけるデータ読込要求として処理される。前記データブロックグループにおけるメタデータとデータブロックもまた同じオフセット計算のために、標準サイズで形成される。一実施形態において、各セクションのデータはハードウェアのデータ境界において開始するといったように、データはハードウェアに合わせて配置される。実施例のように、ディスクドライブは４キロバイトのセクターを使用しうる。データブロックグループは、４キロバイトのメタデータと、それに続く各４キロバイトの１６データブロックを備えうる。従って各データブロックグループは、６８キロバイトのサイズになりうる。当サイズを使用することで、４番目のデータブロックグループは、最初の前記データブロックグループの開始から２０４キロバイトの位置にあると計算される。前記メタデータは、前記ディスクドライブのセクターを占有し、当該セクターの位置に合わせて配置されるため、前記メタデータへのアクセスは、単一読込コマンドによって行われる。同様の理由で、それぞれの前記データブロックのアクセスは、単一読込コマンドによって行われる。
【００２１】
一実施形態において、レコードは可変サイズである一方、データブロックは標準サイズでありうる。当可変的サイズと標準サイズブロックの採用により、前記仮想テープは可変サイズデータを許可することでスペースを有効利用でき、また標準サイズのストレージコンテナを使用するハードウェアも有効利用できる。またレコードはその最大サイズが設定される。前記ブロックサイズより小さいレコードの場合、１ブロックを利用する。前記ブロックサイズより大きいレコードの場合、複数のブロックを利用する。前記最大レコードサイズより大きいレコードの場合、複数のレコードを利用する。例えばハードドライブといった記憶装置は、４キロバイトといった標準サイズのセクターを使用する。前記データブロックサイズは、４キロバイトの前記ハードウェアストレージの最小アクセスを有効利用するために、４キロバイトに設定される。１キロバイトのレコードはブロックの最初の１キロバイトを使用し、残りのブロックは未使用のまま残され、次のレコードが４キロバイトのブロックに位置を配置される。しかし前記データブロックグループの前記レコードを記述するメタデータ内に、前記１キロバイトというサイズが記録される。５キロバイトのレコードは２つのブロックを使用し、第一ブロックを全て使い、残りの１キロバイト用に第二ブロックを一部使いうる。５キロバイトブロックの第一ブロックは、前記レコードの開始位置としてデータブロックグループメタデータに記録される。最大レコードサイズが４メガバイトと設定されている中、４メガバイトと１キロバイトのサイズのデータが保存されるとすると、２レコードが使用される。第一レコードは１０２４個のデータブロックを含み、第二レコードは残りの１キロバイトを保存する１ブロックを含みうる。
【００２２】
このように前記仮想テープ構造は、物理テープより有利な点をいくつか備えうる。一実施形態において、前記仮想テープ構造は、レコード、テープヘッド位置、ファイルマーク、検索、書込み、その他テープデータ構造または処理等の仮想テープ機能のエミュレートを支援するように論理データコンテナに保存される。前記論理データコンテナは、物理テープの順次アクセスではなく、前記データへのランダムアクセスを行う。他の実施形態において、前記仮想テープ構造は、エラーの修復を速めるように構成される。例えば前記仮想テープ構造は、修復における潜在的な不整合データを特定するジャーナルを備えうる。いくつかの実施形態において、前記仮想テープ構造は、検索処理を速めるメタデータ構造を備える。例えば前記ヘッダーにおけるメタデータは、前記データにおけるレコード及び／またはファイルマーク位置を特定し、マーカー検索のために全データセットを走査することを回避する。一実施形態において、いくつかの前記仮想テープ構造は、前記仮想テープ構造ではなく、メタデータストアの中に存在しうる。例えば、前記仮想テープヘッド位置は、グローバルヘッダーのメタデータではなく、前記メタデータストアに保存される。他の実施形態において、前記仮想テープ構造は可変サイズレコードも提供する。例えば小さいレコードの場合、前記テープの１データブロックを占める一方、より大きなレコードの場合、複数のデータブロックグループに渡る多数のデータブロックを占める。
【００２３】
図１を参照すると、少なくとも一実施形態における仮想テープライブラリ１００の実施例が図示される。示された前記実施形態において、クライアントアーカイブシステム１０２は物理テープメディアではなくストレージサービス１０５を使用するよう、前記クライアントアーカイブシステム１０２は仮想テープライブラリ装置１０４と通信する。クライアントアーカイブシステム１０２は、物理テープメディアに対応して動作するように構成される。仮想テープライブラリ装置１０４は、前記クライアントアーカイブシステム１０２と接続され、ストレージサービス１０５を使用する物理テープライブラリをエミュレートする。前記仮想テープライブラリ装置１０４は、前記ストレージサービス１０５に対する処理要求に変換されるコマンドを受取りうる。前記コマンドには、アプリケーションプログラミングインターフェイス（ＡＰＩ）コール等のストレージシステム１１０とのコミュニケーションを通じた、メタデータストア１０８における仮想構造物間の対応付けや、プロバイダストレージシステム１１２における仮想テープ構造へのデータの保存等がある。前記仮想テープライブラリ装置１０４は、論理データコンテナの作成または破壊といった管理タスクを管理システム１０６に要求しうる。
【００２４】
例えばクライアントアーカイブシステム１０２は、論理データコンテナ内の情報を検索する。前記クライアントアーカイブシステム１０２は前記仮想テープライブラリ装置１０４に対し、仮想テープを仮想テープドライブにロードするよう要求しうる。前記仮想テープライブラリ装置１０４は、前記仮想テープＩＤに対応付けられた論理データコンテナ識別子を返すように前記メタデータストア１０８に要求しうる。そして前記仮想テープライブラリ装置１０４は、前記論理データコンテナと前記仮想テープドライブを対応付けうる。前記仮想テープドライブに割当てられたインターフェイスは、前記論理データコンテナにも割当てられる。前記論理データコンテナの仮想テープ構造を使用して、前記仮想テープライブラリ装置１０４は要求を変換し、前記論理データコンテナに対し処理を行う。前記要求には、特定されたレコードの読込みも含まれる。前記仮想テープの使用が完了した後、前記クライアントアーカイブシステム１０２は、前記仮想テープを前記仮想テープドライブからさらなる処理を受けるために仮想ライブラリ位置へ移動するよう要求しうる。これに応じて、前記仮想テープライブラリ装置１０４は、前記仮想テープドライブと前記仮想テープＩＤの対応付けと、前記仮想テープドライブインターフェイスの前記論理データコンテナへの割当てを取除かせる。
【００２５】
図２〜４を参照すると、仮想テープライブラリシステム２００の基本構造の仮想実施形態が図示され、そして、前記仮想テープライブラリ３００の基本構造の物理実施形態が図示される。図３のデータストアで示されるような、図３の論理データコンテナの図２の仮想位置へのマッピング４００の実施例が図４に図示される。一実施形態において、クライアントアーカイブシステムは、物理テープストレージシステムとインターフェイスを通じて接続するよう要求する。しかしながら、仮想テープライブラリシステムが、前記物理システムの代わりに、仮想媒体チェンジャ２２８、仮想テープドライブ２２２、２２４、２２６、仮想インポート／エクスポートスロット２０４〜２０６、仮想テープスロット位置２３２、２３４、２３６を備える仮想テープスロット２３１、及び図２で示されるその他仮想テープシステム等、要求される物理システムの仮想バージョンを提供する。仮想テープライブラリ装置３０４は、前記クライアントアーカイブシステム３０２にインターフェイスを提供し、図３に示されるプロバイダストレージシステム３１２、３１４、及びメタデータストア３１０のストレージの使用を通して、これらの仮想システムを利用可能とする。前記プロバイダストレージシステム３１２及び３１４は、テープコマンドへの応答を支援する仮想テープ構造における仮想テープ用のストレージスペースを提供する。前記メタデータストアは、仮想テープ、論理データコンテナ、及び前記仮想テープライブラリにおける位置の対応付けを提供する。クライアントアーカイブシステムは、仮想媒体チェンジャ２２８を通して位置変更を要求しうる。これらの対応付けには、「位置」、「論理データコンテナＩＤ」、「仮想テープＩＤ」に対する、前記メタデータストアのエントリが含まれる。例えばクライアントは、前記仮想媒体チェンジャ２２８を通して、仮想テープ２１４を仮想インポート／エクスポートスロット２０４から仮想テープドライブ２２６へ移動するよう要求する。これに応じて、仮想テープ２１４に対応するプロバイダアクティブストレージシステム３１２の論理データコンテナは物理的に同じ場所に留まる中、前記仮想テープ２１４は、前記メタデータストア３１０内の前記仮想テープ２１４の「位置」の値を変更することによって、前記仮想インポート／エクスポートスロット２０４から前記仮想テープドライブ２２６へ移動される。前記仮想テープライブラリ装置は、仮想テープドライブや仮想媒体チェンジャといったインターフェイスを提供し、前記クライアントアーカイブシステムから前記メタデータストアまたはプロバイダストレージシステム３１２及び３１４に対する要求を変換する。例えば仮想テープドライブ２２２のインターフェイスは同じままだが、データは前記インターフェイスから、前記メタデータストア３１０の前記仮想テープドライブに現在対応付けられている論理データコンテナへリダイレクトされる。これらの仮想システムの使用を通して、クライアントは、仮想テープの作成、仮想テープへのデータのバックアップ、仮想テープからデータの復元、仮想テープの保存、及び仮想テープの破壊が可能となる。
【００２６】
一実施形態において、クライアントは仮想テープを作成しうる。物理テープシステムにおいて、物理テープは要求に応じて作成されるのではなく、前記物理テープシステムに挿入される。しかしながら、図２の前記仮想テープライブラリシステム２００において、管理システム２０２に新規の仮想テープの作成を要求することで、その要求に応じて仮想テープが作成される。図２の当アクティブ管理システム２０２は、図３の前記仮想テープライブラリ装置３０４または管理サーバ３０６の一部でありうる。一実施形態において、図３の前記クライアントアーカイブシステム３０２には新規仮想テープを要求する方法がなく、前記新規仮想テープは、管理コンソールを通す等、前記クライアントアーカイブシステム３０２の外部から要求される必要がありうる。前記要求に応じてデータサーバ３０８が、仮想テープとして使用するために、プロバイダアクティブストレージシステム３１２において新規アクティブストレージ論理データコンテナをプロビジョニングしうる。前記クライアントアーカイブシステム３０２は、前記新規論理データコンテナに対応付ける仮想テープＩＤを提供しうる。前記仮想テープライブラリ装置３０４は、メタデータストア３１０において、前記仮想テープＩＤを、前記新規アクティブストレージ論理データコンテナに対応付ける。前記新規アクティブストレージ論理データコンテナのプロビジョニング後、前記仮想テープライブラリ装置３０４は、前記メタデータストア３１０において、図３の前記新規アクティブストレージ論理データコンテナを図２の仮想インポート／エクスポートスロット２０４にも対応付ける。図２において、前記仮想テープ２１４が前記仮想インポート／エクスポートスロット２０４に対応付けられると、前記クライアントアーカイブシステム２３０は前記仮想テープ２１４を、スロット位置２３４等の他の位置、または仮想テープドライブ２２６等の仮想テープドライブへ移動する。
【００２７】
他の実施形態において、クライアントは仮想テープにデータをバックアップしうる。前記クライアントアーカイブシステム２３０は、図２の前記仮想テープライブラリ２０９に示されるように、仮想テープ２０８を、仮想テープスロット２３１の仮想テープスロット位置２３４等の位置から、仮想テープドライブ２２２へ移動するよう要求しうる。前記仮想テープ２１４の移動は、図３の前記メタデータストア３１０における前記仮想テープ２１４に対する「位置」エントリを、仮想テープスロット位置２３４から仮想テープドライブ２２６へ変更することによって達成される。前記仮想テープライブラリ装置３０４によって前記クライアントアーカイブシステム３０２に提供される仮想テープドライブインターフェイスは、図３の前記メタデータストア３１０において図２の前記仮想テープ２１４と対応付けられた前記アクティブストレージ論理データコンテナに割当てられる。前記クライアントアーカイブシステム３０２のデータのバックアップは、前記仮想テープライブラリ装置３０４がテープコマンドを受信し、前記テープコマンドを処理要求として変換し、図２の前記仮想テープドライブ２２２に対応付けられた図３の前記プロバイダアクティブストレージシステム３１２の前記アクティブストレージ論理データコンテナの仮想テープ構造に処理を行うことによって達成される。これらの処理には、データの書込み、レコードの作成、ファイルマークの作成が含まれる。データのバックアップが完了した後、前記クライアントアーカイブシステム２３０は、前記仮想テープを前記仮想テープドライブから図２の仮想テープスロット位置２３４等の他の位置へ移動するよう要求できる。
【００２８】
いくつかの実施形態において、クライアントは仮想テープからデータを復元しうる。図２に示されるように、前記クライアントアーカイブシステム２３０は、仮想媒体チェンジャ２２８を通して、仮想テープ２０８を仮想インポート／エクスポートスロット２０６等の位置から仮想テープドライブ２２２へ移動するよう要求しうる。前記仮想テープ２１４の移動は、図３の前記メタデータストア３１０における前記仮想テープ２１４に対する「位置」エントリを、仮想テープ位置２３４から仮想テープドライブ２２６へ変更することによって達成される。前記仮想テープライブラリ装置３０４によって前記クライアントアーカイブシステム３０２に提供される仮想テープドライブインターフェイスは、図３の前記メタデータストア３１０において図２の前記仮想テープ２１４と対応付けられた前記アクティブストレージ論理データコンテナに割当てられる。そして前記クライアントアーカイブシステム２３０は、前記仮想テープ２１４に対し、位置特定、スペース処理、読込みや、その他テープ処理等を行える。これらの処理は、図３の前記アクティブストレージ論理データコンテナからどのデータを取得するか特定するのに使用される。データの復元が完了した後、図２の前記クライアントアーカイブシステム２３０は、前記仮想テープ２１４を前記仮想テープドライブ２２２から、アーカイブストレージのために前記仮想インポート／エクスポートスロット２０６へ、またはさらなる処理を受けるために仮想テープスロット位置２３４へ移動するよう要求してもよい。
【００２９】
一実施形態において、クライアントは仮想テープを保存しうる。図２の前記クライアントアーカイブシステム２３０は、仮想テープ２０８を、仮想テープドライブ２２２等の位置からメタデータストア３１０で示されるような仮想インポート／エクスポートスロット２０６へ移動するよう要求しうる。そして前記クライアントは、プロバイダストレージシステム２４０を通して、仮想インポート／エクスポートスロット２０６に前記仮想テープ２０８をアーカイブするよう要求しうる。その後、前記仮想テープライブラリ２０９から前記仮想テープ２０８を取外される。前記移動が行われることで、図３においてプロバイダアクティブストレージシステム３１２は、アクティブストレージ論理データコンテナを、データサーバ３０８によるアーカイブストレージ論理データコンテナとして、プロバイダアーカイブストレージシステム３１４へ移動するようにステージしうる。前記アーカイブストレージ論理データコンテナの移動が完了すると、前記アーカイブストレージ論理データコンテナは、前記メタデータストア３１０において図２の仮想テープ棚２３８の位置と対応付けられる。いくつかの実施形態において、前記仮想テープ棚２３８と前記棚２３８内の仮想テープ２１６と２２０は、前記クライアントアーカイブシステム２３０へ直接アクセス不可能である。図３のプロバイダアーカイブストレージシステム３１４のアーカイブストレージ論理データコンテナが、プロバイダアクティブストレージシステム３１２のアクティブストレージ論理データコンテナへ移動されるよう、図２のプロバイダストレージシステム２４０に要求することによって、前記プロセスは逆行される。前記移動が完了すると、図３の前記アクティブストレージ論理データコンテナと図２の仮想テープ２１４は、図２の仮想インポート／エクスポートスロット２０４に対応付けられる。
【００３０】
一実施形態において、仮想テープに対応する論理データコンテナに使用される多階層のストレージが存在しうる。前述のようないくつかの実施形態において、図３のプロバイダアクティブストレージシステム３１２とプロバイダアーカイブストレージシステム３１４のように、二階層のストレージが存在しうる。前記プロバイダアーカイブストレージシステム３１４におけるアーカイブストレージ論理データコンテナは適切な応答時間で動作できず及び／または非同期的に動作しうるため、図２に示されているように、仮想テープ２１６と２２０は長い応答時間を要する仮想テープ棚２３８に配置されているように表される。前記アーカイブストレージ論理データコンテナよりも短い応答時間を要し、ただし前記アクティブストレージ論理データコンテナよりも長い応答時間を要する第三階層ストレージは、仮想ライブラリ２２１に配置されているように表される。前記クライアントアーカイブシステム２３０は、数分で完了する図２の前記仮想テープ２１２を仮想テープドライブ２２６にロードする要求を許容するため、前記第三階層ストレージの論理データコンテナは、図３のアクティブストレージ論理データコンテナといった高次階層のストレージに移動され、図２の仮想テープドライブ２２６に対応付けられる。前記第三階層のおかげで、クライアントは素早くアクセス可能なストレージを、いつでもアクセス可能なストレージよりも安く、少ない費用で保有することができる。
【００３１】
他の実施形態において、クライアントは仮想テープを破壊しうる。図２において、仮想テープ２１４は、仮想インポート／エクスポートスロット２０４へ仮想的に移動される。図３において当仮想移動は、メタデータストア３１０において仮想テープＩＤ、位置、及びアクティブストレージ論理データコンテナを対応付けることによって達成される。そして図２の前記仮想テープ２１４は、図３の前記メタデータストア３１０から位置情報を削除することによって、前記仮想テープライブラリ２０９から取除かれる。そして前記仮想テープ２１４に対応付けられた前記アクティブストレージ論理データコンテナは、データサーバ３０８によってプロビジョン解除される。実施形態及び前記クライアントアーカイブシステム３０２に応じて、前記メタデータストア３１０は前記仮想テープ２１４のエントリを削除可能または不可能である。
【００３２】
なお、いくつかの図３で示されるような実施形態において、前記仮想テープライブラリ装置３０４は、クライアント宅内に設置される。前記クライアント宅は、前記メタデータストア３１０やアクティブストレージ論理データコンテナを管理する前記管理サーバ３０６やデータサーバ３０８を収容するデータセンターから、インターネット等の公衆ネットワークを介して分離した状態でありうる。
【００３３】
図４において、メタデータストアに保存されている仮想位置の前記データセンターの物理論理データコンテナへのマッピングが示される。図３の前記メタデータストア３１０によって提供されるマッピングは、図４において仮想位置として含まれているのが示される。仮想テープ２０８、２１０、２１２、２１４、２１６、２１８、２２０の仮想マッピングは、論理データコンテナ４０４、４０６、４０８、４１０、４１２、４１４、４１６のマッピングに対応する。前記仮想テープライブラリ４１５は、前記プロバイダストレージシステム４４０を通して、前記アクティブストレージ４０２と通信しあう。前記仮想テープライブラリ４１５は、前記プロバイダストレージシステム４４０を通して、前記アーカイブストレージ４３８の論理データコンテナとも通信しあえる。論理データコンテナは、前記プロバイダストレージシステム４４０を通して、前記アーカイブストレージ４３８と前記アクティブストレージ４０２の間を移動可能である。アクティブストレージ４０２の論理データコンテナは、前記仮想テープライブラリ４１５と前記クライアントアーカイブシステム４２８によって利用可能に示される。いくつかの実施形態において、アーカイブストレージ４３８の記憶ボリュームは、論理データコンテナがアクティブストレージ４０２へ移動されるまで利用不可能なように示される。
【００３４】
図５を参照すると、少なくとも一実施形態における仮想テープライブラリシステムの操作プロセス５００の実施例が図示される。当プロセス５００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、及びプロバイダアーカイブストレージシステム３１４を含む、図３に示されたこれらの適切なコンピューティングリソースによって集団的に達成される。仮想テープは、前記仮想テープと論理データコンテナの対応付けをメタデータストアに保存する（５０２）ことによって作成される。そして前記仮想テープは、仮想テープドライブに対応付けられる（５０４）。前記仮想テープと前記仮想テープドライブの対応付けは、図３に関して前述されているように、メタデータストアによる等、様々な適切な方法で行われる。前記仮想テープドライブの対応付けは、クライアントアーカイブシステムと前記論理データコンテナをつなぐＩ／Ｏパスを作動させうる。前記仮想テープライブラリ装置は、前記クライアントアーカイブシステムが要求するテープ処理を、前記仮想テープドライブにロードされた前記仮想テープに対応付けられた前記論理データコンテナへのアクセス要求へと変換しうる（５０６）。例えば、テープ始端（ＢＯＴ）から４番目のレコードを要求する検索処理は、ＴＲＵＥが設定された４番目のレコードフラグを求めて走査するために、論理データコンテナに対する、前記論理データコンテナの前記グローバルヘッダー内のグローバルレコードフラグメタデータの検索要求として変換される。そしてＴＲＵＥが設定された４番目のレコードフラグの位置は前記論理データコンテナ内の前記レコード位置を計算するために使われ、そして前記グローバルヘッダー内のジャーナルにおけるテープヘッド位置は前記レコード位置によって更新される。前記クライアントアーカイブシステムによって要求される前記テープ処理が完了した後、前記仮想テープは、前記仮想テープドライブから前記仮想テープライブラリの他の位置へ移動される。前記仮想テープの移動により、前記論理データコンテナは、前記仮想テープドライブのＩ／Ｏインターフェイスから解放される（５０８）。例えば、前記仮想テープを違う位置へ移動する要求により、前記仮想テープと前記仮想テープドライブの対応付けが前記メタデータストアから削除される。前記仮想テープドライブＩ／ＯインターフェイスによるＩ／Ｏ要求に基づくルーティングも削除され、以降Ｉ／Ｏ要求に対し、前記仮想テープに対応付けられた前記論理データコンテナへのルーティングは行われなくなる。
【００３５】
一部または全ての前記プロセス５００（またはここで記述される他のプロセス、またはそれらのバリエーション及び／または組合せ）は、実行可能命令で構成された一以上のコンピュータシステムの制御の下で実行され、そしてハードウェアまたはそれらの組合せにより、一以上のプロセッサにより集団的に実行されるコード（例えば、実行可能命令、一以上のコンピュータプログラム、または一以上のアプリケーション）として実施される。前記コードは、例えば一以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形で、コンピュータ可読記憶媒体に保存される。前記コンピュータ可読記憶媒体は、非一時的媒体でありうる。
【００３６】
図６において、少なくとも一実施形態における仮想テープライブラリシステムのバックアッププロセスの実施例が図示される。当プロセス６００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、及びプロバイダアーカイブストレージシステム３１４を含む、図３に示されたこれらのコンピューティングリソースによって集団的に達成される。仮想テープは、メタデータストアにおける前記仮想テープと論理データコンテナの対応付け（６０２）によって作成される。そして前記仮想テープは、前記メタデータストアにおける前記仮想テープと仮想インポート／エクスポートスロットの対応付け（６０４）によって、前記仮想インポート／エクスポートスロットに仮想的にロードされる。前記仮想テープライブラリ装置は、媒体チェンジャインターフェイスを通して、仮想テープを仮想テープドライブへ移すよう要求を受信しうる（６０６）。当要求に応じて、前記仮想テープに対応付けられた論理データコンテナは、前記仮想テープドライブの仮想テープドライブＩ／Ｏインターフェイスにも対応付けられる（６０８）。そして前記クライアントアーカイブシステムは、前記論理データコンテナが初期化されていない場合は、前記論理データコンテナの初期化も含むバックアップ処理を行いうる（６１０）。データのバックアップ後、前記媒体チェンジャインターフェイスは前記クライアントアーカイブシステムから、前記仮想テープを前記仮想テープドライブから移動するよう要求を受信しうる（６１２）。当要求に応じて、前記論理データコンテナは、前記仮想テープドライブのＩ／Ｏインターフェイスから解放される（６１４）。前記論理データコンテナが前記インポート／エクスポートスロットに移動される場合（６１６）、前記仮想テープは、仮想インポート／エクスポートスロットへ移動され、前記メディアストアにおいて前記論理データコンテナ、仮想インポート／エクスポートスロット、及び仮想テープが対応付けられる（６１８）。そして前記仮想テープは、仮想テープ棚へ移され、前記仮想テープライブラリから削除される。そして前記論理データコンテナは、アーカイブストレージへ移動されるようにステージされる（６２０）。しかしながら、前記仮想テープが前記ストレージスロットへ移され（６１６）いつでもアクセス可能な状態となる場合、前記仮想テープは、メタデータストアにおいてライブラリ位置に対応付けられ（６２２）、アクティブストレージに保持される（６２４）。アクティブストレージにおける保持後、前記仮想テープライブラリ装置は、前記論理データコンテナをアーカイブストレージへ送るよう要求を受信しうる。そして前記仮想テープは、前記インポート／エクスポートスロットと対応付けられ（６１８）、アーカイブストレージに移動される（６２０）。いくつかの実施形態において、前記要求は前記仮想テープと前記インポート／エクスポートスロットを対応付けることが暗黙に定義される。
【００３７】
図７に示されるように、前記クライアントアーカイブシステムに仮想テープを復元する準備をするのに、同様のステップが実行される。クライアントは、アーカイブストレージからアクティブストレージに仮想テープを復元する要求を受信しうる（７０２）。前記クライアントは、どのスロットへ前記仮想テープを仮想的に移すか決定しうる（７０３）。前記仮想テープは、仮想テープスロットにインポートされるか（７０５）、または仮想インポート／エクスポートスロットへインポートされる（７０４）。前記仮想テープは前記仮想テープドライブにロードされ（７０６）、そして前記仮想テープに対応付けられた論理データコンテナと前記仮想テープドライブＩ／Ｏインターフェイスが対応付けられる（７０８）。そして前記クライアントアーカイブシステムは前記仮想テープに対し、位置特定、スペース処理、読込みや、その他テープ処理等の復元処理を行いうる（７１０）。これらの処理は、前記論理データコンテナからどのデータを取得するか特定するのに使用される。データの復元が完了した後、前記クライアントアーカイブシステムは、アーカイブストレージのために（７２０）前記仮想テープを前記仮想テープドライブから前記仮想インポート／エクスポートスロットへ移動して（７１８）前記仮想テープを前記仮想テープドライブＩ／Ｏインターフェイスから解放する（７１４）、もしくは前記論理データコンテナをアーカイブする要求を受けるまでアクティブストレージに保存する（７２４）ように前記仮想テープを前記仮想テープドライブから仮想ライブラリ位置へ移す（７２２）ように要求しうる（７１２）。前記要求後、前記仮想テープは、仮想テープドライブから前記仮想インポート／エクスポートスロットへ移され（７１８）、アーカイブストレージへ送られる（７２０）。いくつかの実施形態において、前記要求は、前記仮想テープと前記インポート／エクスポートスロットを対応付けることが暗黙に定義される。
【００３８】
図８を参照すると、少なくとも一実施形態における仮想テープライブラリシステムの操作プロセス８００の実施例が図示される。当プロセス８００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、及びプロバイダアーカイブストレージシステム３１４を含む、図３に示されたこれらのコンピューティングリソースによって達成される。新規仮想テープは、ストレージサービスにおいて論理データコンテナをプロビジョニングし、メタデータストアにおいて前記論理データコンテナと仮想テープを対応付けることで作成される（８０２）。そして前記仮想テープは、前記メタデータストアにおいて仮想インポート／エクスポートスロットに対応付けられる（８０４）。前記仮想テープが前記クライアントアーカイブシステムにより使用可能となり、前記クライアントアーカイブシステムは前記仮想テープを保存、アーカイブまたは使用するか決定しうる（８０６）。新規テープの作成後、前記クライアントアーカイブシステムは前記テープをバックアップ用に使用することを要求しうる。前記クライアントアーカイブシステムは、媒体チェンジャインターフェイスを通して、前記仮想テープを仮想テープドライブに移動するよう要求しうる（８１０）。当仮想移動によって、前記メタデータストアは、前記仮想テープに対応付けられた論理データコンテナと、仮想テープドライブＩ／Ｏインターフェイスを対応付ける（８１２）。そして前記仮想テープライブラリ装置は、前記クライアントアーカイブシステムによるテープＩ／Ｏコマンドを、論理データコンテナへのアクセスコマンドに変換しうる（８１４）。前記クライアントアーカイブシステムがコマンドを送信する（８１６）限り、前記仮想テープライブラリ装置は前記コマンドを前記論理データコンテナ用に変換し続けうる。前記クライアントアーカイブシステムのコマンドが完了した後（８１６）、前記仮想テープ及び対応する論理データコンテナは前記仮想テープドライブＩ／Ｏインターフェイスと切り離される（８１８）。そして前記クライアントアーカイブシステムは、前記仮想テープをアーカイブ、使用、または保存するかを決定する処理（８０６）に戻りうる。前記仮想テープが保存される場合（８０６）、さらなる使用、保存、またはアーカイブ処理をされるために（８０６）前記仮想テープは仮想ライブラリ位置と対応付けられる（８０８）。
【００３９】
前記仮想テープがアーカイブされるよう選択された場合（８０６）、前記仮想テープは、仮想インポート／エクスポートスロットへ移動される（８２０）。そして前記仮想テープは前記仮想ライブラリから仮想ライブラリ棚へ移動され、そして前記仮想テープに対応付けられた前記論理データコンテナはアーカイブストレージへ移される（８２２）。前記仮想テープ及び／または論理データコンテナが前記仮想テープライブラリと前記対応付けられたアクティブストレージに復元されるよう（８２４）要求されるまで、前記論理データコンテナはアーカイブストレージに保存される。前記論理データコンテナがアーカイブストレージから移動されると（８２６）、前記仮想テープは前記仮想テープライブラリの仮想インポート／エクスポートスロットに対応付けられる（８２８）。そして前記仮想テープは、保存、使用、またはアーカイブされる（８０６）。
【００４０】
図９〜１１を参照すると、仮想テープ構造の実施例が図示される。前記仮想テープ構造は、物理テープより有利な点をいくつか備えうる。一実施形態において、前記仮想テープ構造は、レコード、テープヘッド位置、ファイルマーク、検索、書込み、その他テープデータ構造または処理等の仮想テープ機能のエミュレートを支援するように論理データコンテナに保存される。前記論理データコンテナは、物理テープの順次アクセスではなく、前記データへのランダムアクセスを行う。他の実施形態において、前記仮想テープ構造は、エラー修復を速めるように構成される。例えば前記仮想テープ構造は、修復において潜在的な不整合データを特定するジャーナルを備える。いくつかの実施形態において、前記仮想テープ構造は、検索処理を速めるメタデータ構造を備える。例えば、前記ヘッダーにおけるメタデータは、前記データにおけるレコード及び／またはファイルマーク位置を特定し、マーカー検索のために全データセットを走査することを回避する。一実施形態において、いくつかの前記仮想テープ構造は、前記仮想テープ構造ではなく、メタデータストアの中に存在しうる。例えば前記仮想テープヘッド位置は、グローバルヘッダーメタデータではなく、前記メタデータストアに保存される。他の実施形態において、前記仮想テープ構造は可変サイズレコードも提供する。例えば小さいレコードの場合、前記テープの１データブロックを占める一方、より大きなレコードの場合、複数のデータブロックグループに渡る多数のデータブロックを占める。
【００４１】
図９を参照すると、少なくとも一実施形態における仮想テープ９０２の実施例が図示される。図３においてクライアントアーカイブシステム３０２が扱う仮想テープ９０２は、仮想テープ構造９０６を持つ論理データコンテナ９０４を備えうる。前記仮想テープ構造９０６は、テープ機能をエミュレートし、論理データコンテナ９０４の能力を活用して、データへのランダムアクセスを行うのに使用される。前記仮想テープ構造９０６は、グローバルヘッダー９０８と一以上のデータブロックグループを備えうる。いくつかの実施形態において、複数の前記データブロックグループ９１０がメガブロック９１２にまとめられる。いくつかの実施形態において、データブロックグループ９１０とメガブロック９１２は一貫したサイズを保つ。当サイズ割当てにより、前記グローバルヘッダーの終端から、データブロックグループ９１０及び／またはメガブロック９１２の位置特定計算が可能となり、データブロックグループ９１０及び／またはメガブロック９１２へのランダムアクセスが容易になる。記述のサブ構造ではデータ整列も順守されているため、メガブロック始端、データブロック始端、またはその他の計算された位置に対するオフセットによりサブ構造も一貫して見つかる。いくつかの実施形態において、前記データ整列はハードウェアの仕様に依存する。例えば、前記論理データコンテナが保存されているハードドライブは、４，９０６バイトセクター（４ｋ）を使用しうる。４ｋのデータは前記ドライブに書込みまたは読込みを行う最少のデータ量である（そして切捨てられていない）ため、前記論理データコンテナに保存されるメタデータ及びデータは４ｋの境界に整列させられる。しかしながら、その他のハードウェアに基づいた境界には、５１２バイト、２０４８バイト、４ｋ、８ｋ、１６ｋ、３２ｋ、６４ｋ、１２８ｋ、２５６ｋが使用されることを認識する必要がある。
【００４２】
一実施形態において、メガブロックサイズは、サーバメモリに応じて選択される。例えば、サイズ５１２ＭＢのメガブロックが選択されると、二つのメガブロック９１２がメモリにロードされ全部で１ＧＢの情報となる。一実施形態において、二つのメガブロック９１２がメモリにロードされ、最初に操作される第一メガブロック９１２と、前記第一メガブロック９１２の直後に続く第二メガブロック９１２が保存される。これら二つのメガブロック９１２をロードすることにより、書込みまたは読込み処理が前記第一メガブロック境界を越えた場合には、前記第二メガブロック９１２が利用可能となる。そして前記第一メガブロック９１２はディスクに保存され、そして第二メガブロック９１２に続く第三メガブロック９１２がロードされる。
【００４３】
図１０に示される一実施形態において、前記グローバルヘッダー９０６は、グローバル生成識別子（グローバル生成ＩＤ）９１４、ジャーナル９１６、グローバルレコードメタデータ９１８、及びグローバルファイルマークメタデータ９２０を含みうる。前記生成ＩＤは、有効な前記仮想テープ構造９０６内の情報を特定するのに使用される。例えば、各データブロックグループ９１０は、さらにデータブロック生成識別子（データブロック生成ＩＤ）９２４を備える。前記データブロックグループ生成ＩＤ９２４が前記グローバル生成ＩＤ９１４と一致しない場合には、前記データブロック生成ＩＤ９２４を備えるデータブロックグループ９１０のデータは無効とみなされる。一実施形態において、前記グローバル生成ＩＤ９１４が前記データブロックグループ９１０のデータブロックグループ生成ＩＤ９２４と一致しない値で置換えられることが原因で、前記仮想テープのデータが無効になりうる。
【００４４】
前記ジャーナル９１６は、前記仮想テープ９０２のステータス情報を特定するのに使用される。図１０において、前記ジャーナル９１６の内訳がさらに図示される。当ステータス情報には、テープヘッド位置１００１に関する情報や、メガブロック識別子（メガブロックＩＤ）１００２といったメモリにロードされたデータに関する情報が含まれる。テープはリニアアクセス装置であることから、前記テープヘッド位置はテープのエミュレート処理を支援しうる。例えば、前記テープヘッドは次の検索処理が開始する場所を特定する。クライアントアーカイブシステムは、前記テープが次のレコードまで進むよう要求しうる。前記テープヘッド位置は、前記テープデータの前記テープヘッドから次のレコードの位置まで調整される。検索処理に関するより完全な説明は、図１０のレコードフラグ１００６の紹介後に記述される。
【００４５】
メモリにロードされた前記データのレコードは、復旧の際役に立ちうる。図１０に示された実施形態において、前記ジャーナル９１６はメガブロックＩＤ１００２を備える。前記メガブロックＩＤ１００２は、処理のためにメモリにロードされたメガブロック９１２を示す。メモリに前記メガブロック９１２がロードされると、メガブロックＩＤ１００２が前記ジャーナルに記載される。メモリから前記メガブロック９１２がアンロードされると、前記メガブロック９１２に関する情報はストレージに保存され、そして前記メガブロック９１２の前記ジャーナルエントリは削除される。一以上のメガブロック９１２がメモリにある時に前記論理データコンテナに障害が起こった場合、どのメガブロック９１２に検査及び／または修復が必要かを特定するのに、前記ジャーナルが使用される。前記メガブロック９１２の特定により、全テープデータの完全走査ではなく、注意を必要とするデータのみに集中した復旧プロセスが可能となり、前記ジャーナル９１６が存在しないか使用されていなかった場合に比べて前記仮想テープの復旧が早くなる。メガブロックの復旧については、図１１と共に説明されるデータブロックグループ９２２に関連しながら、より具体的に記載される。
【００４６】
グローバルレコードメタデータ９１８は、前記論理データコンテナにおけるレコード開始位置を特定しうる。レコードは、割当てられたサイズを持つ、個別のバックアップエントリでありうる。一実施形態において、前記グローバルレコードメタデータ９１８はメガブロックに関連する複数のセクションへさらに細分化される。前記グローバルレコードメタデータ９１８は複数のメガブロックヘッダー１００４を備え、それぞれの後に該当ヘッダーに対応付けられた前記メガブロック９１２のレコードフラグ１００６のセットが続く。前記メガブロックヘッダー１００４はさらにレコード生成ＩＤ１０１２とエラー修正情報１０１４を備えうる。前記レコード生成ＩＤ１０１２が前記グローバル生成ＩＤ９１４と一致しない場合、対応付けられた前記メガブロック９１２のレコードは無効とみなされる。エラー修正情報１０１４は、前記エラー修正情報１０１４に続く前記レコードフラグ１００６内にエラーが発生したかを判断するのに使用される。いくつかの実施形態において、前記エラー修正情報は、前記レコードフラグ１００６及び／またはエラー修正情報自体を修正するのにも使用され、チェックサム及び／またはエラー修正コードなどである。レコードフラグ１００６は対応付けられるメガブロック９１２のデータブロックを示す。各データブロックは、前記データブロックがレコードの開始であるかどうか判断するための個別のフラグを持ちうる。一実施形態において、前記レコードフラグは独自のビットから成り、データブロックごとに１ビット使用する。前記データブロックがレコードの開始である場合、前記ビットはＴＲＵＥに設定され、前記データブロックがレコードの開始でない場合、前記ビットはＦＡＬＳＥに設定される。
【００４７】
前記レコードフラグは、レコードの位置特定に使用される。例えばクライアントアーカイブシステムは、前記仮想テープ９０２の開始から２００番目のレコードを要求する。前記仮想テープライブラリ装置は、前記レコードフラグ１００６を走査し、ＴＲＵＥが設定された２００番目のレコードフラグが特定されるまでレコードを検索する。そして特定された前記レコードフラグは、メガブロック９１２内のデータブロック位置を特定するのに使用される。いくつかの実施形態において、データブロック、そして結果的にはメガブロックも、標準サイズで形成される。前記仮想テープライブラリ装置はこれを効果的に利用し、そして前記グローバルヘッダーの長さ、メガブロックの数、及び／またはデータブロックの数の少なくとも一部に基づいて、前記論理データコンテナにおけるオフセットを計算しうる。他の実施例において、前記クライアントアーカイブシステムからスペース要求を受取りうる。前記スペース要求は、仮想テープヘッド位置１００１の現在の位置から離れた位置までのレコード数を要求しうる。
【００４８】
グローバルファイルマークメタデータ９２０は、グローバルレコードメタデータ９１８と同様に保存され使用される。ファイルマークは対応付けられたレコード群を特定しうる。前記グローバルファイルマークメタデータ９２０には、メガブロックヘッダー１００８とファイルマークフラグ１０１０が含まれる。前記グローバルファイルマークメタデータの前記メガブロックヘッダー１００８は、生成ＩＤとエラー修正情報を含みうる。グローバルファイルマークメタデータ９２０は、前記論理データコンテナにおけるファイルマーク位置を特定しうる。ファイルマークフラグは、レコードフラグと同様に、ファイル開始位置が記されたデータブロックを特定しうる。いくつかの実施形態において、前記ファイルマークフラグ１０１０は前記仮想テープの各データブロックを表すのに１ビットずつ使用しうる。前記ファイルマークフラグ１０１０はメガブロック９１２に応じてまとめられ、前記論理データコンテナにおけるファイルマークの位置を特定するのに使用される。例えば、クライアントアーカイブシステムは、前記仮想テープ９０２の開始から１０番目のファイルを要求する。前記ファイルマークフラグ１０１０を使用することで、前記仮想テープライブラリ装置は、ＴＲＵＥが設定された１０番目のファイルマークフラグまで検索する。前記１０番目のファイルマークフラグの位置により、メガブロック９１２のデータブロックグループ９１０における対応付けられたデータブロックの位置が特定される。その特定された位置を使用することで、前記グローバルヘッダー９０８から前記データブロックが存在する位置までのオフセットが求められる。また前記テープヘッド位置１００１は、前記１０番目のファイルマークに更新される。
【００４９】
一実施形態において、図９のデータブロックグループ９２２は、データブロック生成ＩＤ９２４、データブロックグループメタデータ９２６、及びデータブロック９２８を備えうる。前記データブロック生成ＩＤ９２４は、前記データブロックグループ９２２のデータの有効性を示す。前記データブロック生成ＩＤ９２４が前記グローバル生成ＩＤ９１４と一致する場合、データは有効とみなされる。一実施形態において、前記データブロック生成ＩＤ９２４が前記グローバル生成ＩＤ９１４と一致しない場合、データは削除された及び／またはブランクであるとみなされる。データブロックグループメタデータ９２６は、前記データブロックグループ９２２のデータブロック９２８について記述する。図１１で図示されるように、前記データブロックグループメタデータは、エラー修正情報９２５及び、前記データブロックグループ９２２の各データブロック９２８のレコードフラグ、ファイルマークフラグ、前記レコードのサイズを含むデータブロックメタデータ１１０２を備えうる。エラー修正情報９２５は、前記データブロックグループ９２２内にエラーが発生したか判断するのに使用される。いくつかの実施形態において、前記エラー修正情報は、前記データブロックグループ９２２及び／またはデータブロック９２８におけるデータの不整合を修復するのに使用される。前記レコードフラグは、レコード開始位置であるデータブロック９２８を特定しうる。前記ファイルマークフラグは、ファイルの開始位置を特定しうる。前記サイズとは、レコードのサイズを示しうる。前記データブロックグループ９２２は、クライアントデータを含むデータブロック９２８も含みうる。
【００５０】
前記データブロックグループメタデータ９２６により、前記仮想テープは可変レコードサイズに対応可能となる。いくつかの実施形態において、データブロックサイズは、４ｋブロックサイズ等、ストレージハードウェアが対応する最小データサイズに一致する。例えば、レコードは一以上のデータブロックグループ９２２に書込まれる。前記レコードの第一データブロックグループは、前記データブロックグループメタデータ９２６に前記レコードフラグセットを含みうる。前記レコードがファイル開始位置でもある場合、前記ファイルマークにもＴＲＵＥが設定される。そして前記レコードのサイズは、前記データブロックグループメタデータ９２６の前記サイズフィールドに記録される。前記サイズが一ブロックサイズより小さい場合、前記レコードは一つのデータブロック９２８に含まれる。前記サイズが一ブロックサイズより大きい場合、前記レコードは二つ以上のデータブロック９２８に含まれる。前記第一のデータブロック９２８の前記レコードフラグにはＴＲＵＥが設定される一方、後続のブロックにはＦＡＬＳＥが設定される。前記サイズフィールドには前記レコードのサイズが書込まれ、前記レコードの一部を含む各データブロック９２８に対する各サイズフィールドに前記レコードのサイズが繰返し記録される。いくつかの実施形態において、レコードは最大サイズにより制限される。当制限により、仮想テープ９０２に保存されているいくつかのデータは複数のレコードに保存される。レコードを読込む場合、前記サイズ値を使って、どのくらいのボリュームのデータを返すか決定する。例えば一つのレコードのサイズが２００バイトで、一つのデータブロックのサイズは４ｋバイトとする。そして前記レコードを読込むには５１２バイトが必要であるとする。前記レコードは２００バイトであるため、前記レコードのサイズ値と読込みに必要とされる値のうち、小さい方の値が返される。複数のより大きなブロックを読込む場合、処理はまとめられ、組み合わされる。
【００５１】
エラー修復を促進するため、メモリ内のメガブロックのジャーナルエントリ及び前記データブロックグループ９２２のメタデータが使用される。例えば、二つのメガブロック９１２がメモリにロードされる。前記論理データコンテナ内の位置等の前記メガブロック識別子は、前記グローバルヘッダー９０６の前記ジャーナル９１６に記載される。これらのメガブロック９１２に対し処理を行っている間に、前記論理データコンテナ９０４のホストストレージサーバにエラーが起こりうる。前記エラーを修復するにあたって、前記エラーが起こった際のメモリの前記メガブロックを特定するために、前記ジャーナル９１６が調査される。前記障害により、グローバルレコードメタデータ９１８とグローバルファイルマークメタデータ９２０は、前記データブロックグループメタデータ９２６と非同期の状態になりうる。前記ジャーナル９１６に記載される前記メガブロックを構成する前記データブロックグループ９２２は、前記エラー修正情報９２５との不整合を含む前記データの不整合を検索するために走査される。そして前記データの整合性を取る等の修正処理が行われる。前記走査が完了すると、前記データブロックグループ９２２のレコードフラグ及び／またはファイルマークフラグを使用して、前記グローバルレコードメタデータ９１８及び前記グローバルファイルマークメタデータ９２０を、前記データブロックグループ９２２に保存されている情報と整合性があるよう修正される。いくつかの実施形態において、メモリのメガブロックに書込まれたデータは前記論理データコンテナに同期的に保存される一方、前記メガブロック９１２がメモリから削除された場合、データは前記グローバルヘッダー９０８に非同期的に保存される。メモリからの前記メガブロックの削除は、読込処理や書込処理がメガブロックの境界を越えてしまった時に起こりうることであり、起こった場合、次のメガブロック９１２をメモリにロードするよう要求される。同様に、対応付けられていないメガブロックの要求処理もまた、前記メタデータを前記グローバルヘッダーに保存するトリガーとなる。これらのデータ保存の違いは、メモリにメガブロックが存在している間にエラーが発生した場合、データの不整合をもたらしうる。
【００５２】
一実施例において、最少ストレージ増加量が４キロバイトであるハードウェアにおいて、仮想テープのサイズは１テラバイトである。データブロックは、各データブロックのストレージサイズが４キロバイトである前記ハードウェアストレージにより対応される。データブロックグループは、１６データブロックと４キロバイトのデータブロックメタデータを含み、各データブロックグループは合計６８キロバイトになる。メガブロックは５１２メガバイトでありうる。グローバルファイルマークメタデータは３０メガバイトであり、そしてグローバルレコードメタデータも３０メガバイトでありうる。最大レコードサイズは４メガバイトであり、これは１０２４データブロックに相当しうる。
【００５３】
拡張性のある仮想テープドライブを使用可能としてもよい。一実施形態において、論理データコンテナの最大サイズはクライアントにより設定される。そして前記グローバルヘッダーは、前記論理データコンテナの最大サイズに合わせてサイズが決定され、そして必要に応じてデータブロックグループのスペースが追加される。この方法により、前記仮想テープは論理データコンテナの最大サイズまで増大または減少可能となり、最初から全ての前記論理データコンテナを割当てる必要がなくなる。他の実施形態において、論理データコンテナの最大サイズはプロバイダによって設定される。前記グローバルヘッダーは、前記論理データコンテナの最大サイズに合わせてサイズが決定され、必要に応じてデータブロックグループのスペースが追加される。前記論理データコンテナの最大サイズを超えるまたは超えると予想される場合、新規論理データコンテナが作成され、これにより前記グローバルヘッダーサイズは増大し、グローバルヘッダー情報のコピーが行われ、そして論理データコンテナのデータは前記新規論理データコンテナへ移動される。
【００５４】
図１２は、少なくとも一実施形態における仮想テープの作成プロセスの実施例を図示する。当プロセス１３００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。前記ストレージサービスにより、論理データコンテナが要求される。そして前記論理データコンテナは、メタデータストアにおいて仮想テープに対応付けられる（１３０２）。グローバルヘッダーのシグネチャが無効な場合（１３０３）、グローバルヘッダーを作成することで（１３０４）、前記論理データコンテナは、初期化される。そして作成された前記グローバルヘッダー（１３０４）は、グローバル生成ＩＤの作成（１３０６）及びグローバルファイルマークメタデータとグローバルレコードメタデータの初期化（１３０８）によって設定される。前記グローバルファイルマークメタデータの初期化には、全ての前記グローバルファイルマークフラグをＦＡＬＳＥに設定し、対応付けられた生成ＩＤを前記グローバル生成ＩＤに設定することを含みうる。前記グローバルレコードメタデータの初期化には、全ての前記グローバルレコードフラグをＦＡＬＳＥに設定し、対応付けられた生成ＩＤを前記グローバル生成ＩＤに設定することを含みうる。そして前記仮想テープは使用可能な状態となりうる（１３１０）。しかし前記グローバルヘッダーのシグネチャが有効な場合には（１３０３）、前記グローバルヘッダーの前記ジャーナルは空であるか、前記ジャーナルが確認される（１３１２）。前記ジャーナルが空の場合、前記仮想テープは使用可能な状態となりうる（１３１０）。前記ジャーナルが空でない場合、前記仮想テープライブラリ装置は、図１８に示される復旧プロセスを開始しうる（１３１４）。
【００５５】
前記実施形態により、処理１３０２〜１３１４は様々な時間に行われる。例えば処理１３０２は、クライアントにより新規仮想テープが要求された時に行われる。処理１３０４〜１３１０は、仮想テープを仮想テープドライブに対応付けると同時にフォーマットするよう要求された時に行われる。他の実施形態において、処理１３０２、１３０４及び１３０８は、新規仮想テープが要求された時に行われる。しかしグローバル生成ＩＤは、前記仮想テープを仮想テープドライブに搭載した際フォーマット化するよう要求された時に作成され、前記仮想テープに保存される。他の実施形態において、全ての処理１３０２〜１３１０は、新規仮想テープの作成及びフォーマット化が要求されたときに行われる。
【００５６】
図１３を参照すると、少なくとも一実施形態における仮想テープの操作プロセスの実施例が図示される。当プロセス１２００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。仮想テープライブラリ装置は、仮想テープ内の位置にあるデータへのアクセス要求を受信しうる（１２０２）。前記グローバルヘッダーメタデータは走査され、前記仮想テープ内の位置に少なくとも一部基づいて特定される位置を決定する（１２０４）。前記システムは仮想テープを使用するため、相対的または絶対的な位置が提供される。例えば相対的要求としては、前記テープヘッド位置１００１から特定数のレコード分離れた位置のレコード要求がある。絶対的要求としては、前記仮想テープの終端または仮想テープ９０２の始端から特定数のレコード分離れた位置のレコード要求がありうる。前記位置が決定されると、論理データコンテナ内の位置が計算され、前記グローバルヘッダーからのオフセットが特定され、そして決定された前記データブロック９２８に到達するのに使用される。決定された前記メガブロックメタデータは、メモリにロードされる（１２０６）。前記メガブロックメタデータがメモリに存在することを特定するジャーナルエントリが書込まれる（１２０８）。そして前記メガブロックは処理される（１２１０）。前記データは、前記論理データコンテナに同期的に保存されつつ（１２１２）、さらなる処理命令を待ちうる。前記データ処理がメガブロック境界を越えた時またはメガブロックへの書込みが完了した際、メモリに前記新規メガブロックを反映させるため前記ジャーナルは更新され、そして前記グローバルメタデータに変更が保存される。
【００５７】
図１４は、少なくとも一実施形態における仮想テープの書込みプロセスの実施例を図示する。当プロセス１４００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。いくつかの実施形態において、仮想テープドライブは、４または１６メガバイト等の最大レコード長が設定される。前記最大レコードサイズより小さい受取データは、１レコードとして書込まれる。前記最大レコードサイズより大きい受取データは、複数のレコードに渡って書込まれる。また一実施形態において、レコードはメガブロックの境界を越えうる。メガブロックの境界を越えて書込む場合、グローバルファイルマークフラグやグローバルレコードフラグ等の第一メガブロックに関わるグローバルメタデータは、前記グローバルヘッダーに保存される。前記第一メガブロックメタデータはメモリから削除され、そして続きのメガブロックメタデータがメモリにロードされる。例えば、２つのメガブロックのメタデータはメモリにロードされ、前記グローバルヘッダー内のジャーナルにおいて参照される。前記第一メガブロックは、書込処理の開始位置を含みうる。前記第二メガブロックは、前記第一メガブロックに引き続き、書込処理は前記第二メガブロックで終わりうる。前記書込処理が前記第一メガブロックから前記第二メガブロックに移動した時、グローバルファイルマークフラグやグローバルレコードフラグ等の第一メガブロックに関わるグローバルヘッダー情報を保存するために、前記第一メガブロックが使用される。前記第二メガブロックへ書込処理が続く場合、前記第一メガブロックメタデータは、メモリからアンロードされ、前記ジャーナルから削除される。そして前記第二メガブロックに続く第三メガブロックは、そのメタデータがメモリにロードされ、前記ジャーナルにおいて参照される。
【００５８】
仮想テープドライブに仮想テープが搭載されると、前記仮想テープライブラリ装置は、前記仮想テープへのデータ書込要求を、論理データコンテナに対するデータ読込及びデータ書込要求に変換する。前記書込要求に応じて、物理テープのリニアアクセスより早くテープの終端等のデータが見つかるよう、前記論理データコンテナのメタデータを使ってランダムアクセスが行われる。例示される前記実施形態において、データ書込要求が受取られた後、前記仮想テープに対応付けられた前記論理データコンテナのグローバルヘッダー内のファイルマークメタデータ及び／またはレコードメタデータを使って、メガブロック位置が特定される（１４０２）。例えば書込要求は、テープデータの終端にデータを書込もうとする。いくつかの仮想テープドライにおいて、テープデータの終端は２つの連続するファイルマークで表されるとする。前記仮想テープライブラリ装置は、前記グローバルファイルマークメタデータを走査し、２つの連続するグローバルファイルマークフラグを見つけ出し、そして前記ジャーナルの前記仮想テープヘッド位置情報に前記位置情報を保存しうる。前記書込要求により特定された位置に対応付けられたメガブロックのメタデータが、メモリにロードされる（１４０４）。前記書込位置に対応付けられたデータブロックグループは、前記データブロックグループ生成ＩＤが前記グローバル生成ＩＤと一致するか確認するために再調査される（１４０６）。一致しない場合は、前記グローバル生成ＩＤは前記データブロックグループ生成ＩＤにコピーされ、前記書込データが有効化される。前記メガブロックメタデータがメモリにロードされた後、前記グローバルヘッダーのジャーナルにおいてもメモリにロードされた前記メガブロックメタデータが参照される（１４０８）。データブロックの始端は、対応付けられたデータブロックグループメタデータにおいてレコードの始端として記録される（１４１０）。前記書込処理に関係するデータブロックグループに対し、各メタデータエントリに前記レコードサイズが記録される。前記レコードサイズには、残りのデータ及び最大許容レコードサイズのうち、小さい方の値が適用される。そして前記レコードサイズの上限まで、または前記メガブロックの終端まで、データが書込まれる（１４１２）。残りのデータが存在し（１４１４）、前記書込処理がメガブロックの終端を超えない場合（１４１６）、続きのレコードが作成され（１４１０）さらなる処理が行われる。残りのデータが存在し（１４１４）、前記書込処理がメガブロックの境界を超える場合（１４１６）、前記メガブロックの前記データは前記論理データコンテナに同期的に保存され、グローバルファイルマークフラグ、グローバルレコードフラグ、及びテープヘッド位置等の前記グローバルヘッダーのメタデータは非同期的に更新される（１４１８）。また前記メガブロックのメモリからの撤収とメモリへの連続するメガブロックのロード（１４０４）及びさらなる処理に伴い、前記ジャーナルも更新される（１４２２）。残りのデータが存在しない場合は（１４１４）、前記書込処理の終わりを示すように、前記データブロックグループメタデータにおいてファイルマークが更新される（１４２４）。いくつかの実施形態において、２つのファイルマークがデータの終わりを記すために使用される。メモリにおけるいかなる変更も失われないように、書込処理の発生に伴い、データは同期的に前記論理データコンテナに保存され（１４２６）、その後次のコマンドまで待機状態となる（１４２８）。
【００５９】
図１５を参照すると、少なくとも一実施形態における仮想テープを使用したレコード検索プロセスの実施例が図示される。当プロセス１５００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。仮想テープドライブに仮想テープが搭載されると、前記仮想テープライブラリ装置は、前記仮想テープに対するデータ検索要求を、論理データコンテナに対するデータ要求に変換する。前記検索要求に応じて、物理テープのリニアアクセスより早くデータを見つけられるよう、前記論理データコンテナのメタデータを使ってランダムアクセスが行われる。例示される前記実施形態において、前記テープヘッドから相対的位置にあるデータへのアクセス要求が受取られる（１５０２）。そして前記テープヘッド位置がグローバルレコードメタデータから読取られる（１５０４）。前記テープヘッド位置に基づいて、前記グローバルレコードフラグにおいて検索すべき位置が決定される（１５０６）。そしてグローバルレコードフラグは走査され、前記テープヘッド位置からテープ終端に向かって五番目のレコードといった相対的位置が特定されるまで検索される（１５０８）。与えられた検索コマンドに応じて、前記走査処理は前方（テープの終端向き）または後方（テープの始端向き）に行われる。前記グローバルレコードフラグにおいて特定された相対的位置を使用することで、前記論理データコンテナ内のデータブロック及びメガブロックの位置も特定される。そしてこの特定された位置は、前記グローバルメタデータにおいて前記テープヘッド位置として保存される（１５１０）。
【００６０】
図１６を参照すると、少なくとも一実施形態における仮想テープを使用したファイルマーク検索プロセスの実施例が図示される。当プロセス１６００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。当プロセスは、レコードに関して、図１５に示されるプロセスに類似しうる。例示される前記実施形態において、前記テープヘッドから相対的位置にあるファイルマークの検索要求が受取られる（１６０２）。そして前記テープヘッド位置がグローバルファイルマークメタデータから読取られる（１６０４）。前記テープヘッド位置に基づいて、前記グローバルファイルマークフラグにおいて検索すべき位置が決定される（１６０６）。そしてグローバルファイルマークフラグは走査され、前記テープヘッドからテープ終端に向かって五番目のファイルマークといった相対的位置が特定されるまで検索される（１６０８）。与えられた検索コマンドに応じて、前記走査処理は前方（テープの終端向き）または後方（テープの始端向き）に行われる。前記グローバルファイルマークフラグにおいて特定された相対的位置を使用することで、前記論理データコンテナ内のデータブロック及びメガブロックの位置も特定される。そしてこの特定された位置は、前記グローバルメタデータにおいて前記テープヘッド位置として保存される（１６１０）。絶対的位置特定においても同様なプロセスが行われ、テープ始端やテープ終端が使用される。前記テープヘッドの開始位置の代わりに、テープ始端またはテープ終端が使用される。
【００６１】
図１７を参照すると、少なくとも一実施形態における仮想テープの読込プロセスの実施例が図示される。そしてテープヘッド位置に基づいて、メガブロックメタデータがメモリにロードされる（１７０２）。そしてデータブロックグループ生成ＩＤがグループ生成ＩＤと一致するか確認される（１７０４）。一致しない場合は（１７０６）、前記データブロックグループは無効とみなされ（１７２０）、そしていくつかの実施形態においては読込まれていないとみなされる。次のコマンドまで待機状態となる（１７２２）。前記生成ＩＤがお互いに一致する場合（１７０６）、グローバルヘッダーのジャーナルは更新され（１７０８）、メモリにメガブロックのメタデータが存在すると示される。レコードサイズ分を読切ったか、または前記メガブロックの終端まで読んだかを判断するために、前記レコードサイズが確認される。前記レコードサイズには、残りのデータ及び最大許容レコードサイズのうち、小さい方の値が適用される。そして前記レコードサイズの上限まで、または前記メガブロックの終端まで、データが読まれる（１７１０）。残りのデータが存在し（１７１２）、前記読込処理がメガブロックの終端を超えない場合（１７１４）、続きのレコードが読込まれる（１７１０）。残りのデータが存在し（１７１２）、前記読込処理がメガブロックの境界を超える場合（１７１４）、前記メガブロックの前記データは前記論理データコンテナに同期的に保存され、グローバルファイルマークフラグ、グローバルレコードフラグ、及びテープヘッド位置等の前記グローバルヘッダーのメタデータは非同期的に更新される（１７１６）。また前記メガブロックのメモリからの撤収とメモリへの連続するメガブロックのロード（１７０２）及びさらなる処理に伴い、前記ジャーナルが更新される（１７１８）。残りのデータが存在しない場合は（１７１２）、次のコマンドまで待機状態となる（１４２８）。
【００６２】
図１８は、少なくとも一実施形態における仮想テープで発生した事象から復旧するプロセスの実施例を図示する。当プロセス１８００は、クライアントアーカイブシステム３０２、仮想テープライブラリ装置３０４、管理サーバ３０６、データサーバ３０８、メタデータストア３１０、プロバイダアクティブストレージシステム３１２、プロバイダアーカイブストレージシステム３１４、仮想テープ９０２、グローバルヘッダー９０６、メガブロック９１２、及びデータブロックグループ９１０を含む、図３〜９に示されたこれらのコンピューティングリソースによって達成される。仮想テープに対応付けられた論理データコンテナのホストサーバに、電源障害等の障害事象が起こりうる。前記サーバは前記電源障害からの復旧に際し、管理サーバに対し、前記事象が発生し、復旧プロセスが開始されたことを知らせる。いくつかの実施形態において、メモリのメガブロックに対する変更は前記論理データコンテナの対応するメガブロックと同期的に保存される。しかしメガブロックがメモリからアンロードされた時等、グローバルメタデータは非同期的に更新される。このように前記論理データコンテナの各部における前記同期特性と非同期特性が原因で、例えば前記グローバルヘッダーのジャーナルに記載されるメモリのメガブロックに関する情報は、グローバルヘッダーのメタデータと不整合なものになる。従って、障害事象における復旧プロセスでは、前記ジャーナルに記載されるメガブロックに関する情報をグローバルメタデータと再同期化する必要があるだろう。
【００６３】
前記論理データコンテナに影響がありうる事象が発生したと判断した後（１８０２）、前記論理データコンテナの前記グローバルヘッダー内の前記ジャーナルが再調査される（１８０４）。前記ジャーナルにエントリがない場合、修復の必要がないということで、前記論理データコンテナは通常動作に戻りうる。しかし前記ジャーナルに記載されているメガブロックが、メモリにロードされた可能性がある（１８０６）。前記第一メガブロックの第一データブロックグループから開始して（１８０７）、前記グローバルヘッダーの前記グローバル生成ＩＤとデータブロックグループ生成ＩＤを照合する。前記生成ＩＤがお互いに一致する場合、前記データブロックグループはエラーがないかさらに検査される。前記生成ＩＤがお互いに一致しない場合、前記データブロックグループは無効とみなされる。いくつかの実施形態においては、エラー修正情報が使用され、前記エラー修正により前記生成ＩＤがお互いに一致するようになったら、さらなる復旧処理が続けられる。確実にデータの完全性を実現するために、前記データブロックグループに対しエラー修復及び／または検知が行われる（１８１０）。データブロックグループメタデータはグローバルヘッダーのメタデータと比較され、前記グローバルヘッダーのメタデータとの不整合が前記グローバルヘッダーのメタデータにおいて修復される。例えば、不一致が検知された前記事象において、データブロックグループのレコードフラグとファイルマークフラグは、グローバルレコードフラグとグローバルファイルマークフラグ内に保存される（１８１２）。まだ走査するデータブロックグループがある場合（１８１６）、各メガブロックに対し処理１８０８〜１８１２が続行される。前記復旧処理が完了したら、前記ジャーナルの内容はクリアされる（１８１８）。いくつかの実施形態において、前記論理データコンテナはまた使用可能な状態となりうる（１８２０）。
【００６４】
図１９は、様々な実施形態における実行環境１９００の実施例を図示する。ウェブベースの環境が説明のために使用されているが、上記の記述からわかるように様々な実施形態を実行するのに種々の適切な環境が使用される。前記環境には電子クライアント装置１９０２が含まれ、当電子クライアント装置１９０２は、要求、メッセージまたは情報を適当なネットワーク１９０４を通じて送受信し、そして装置のユーザーへ情報を伝達することが可能な適切な装置を備えうる。そのようなクライアント装置の例としては、パーソナルコンピュータ、携帯電話、手持通信装置、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダなどがある。前記ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワークやそのような他のネットワークやこれらネットワークの組合せといった、適当なネットワークがある。このようなシステムに使用される構成要素は、少なくとも一部において選択されたネットワーク及び／または環境のタイプに依存しうる。このようなネットワークを経由して通信するためのプロトコル及び構成要素は明白であるため、ここでは詳細について論じない。前記ネットワークを通じた通信は、有線または無線接続、そしてそれらの組合せによって行われる。この例では、前記環境には要求の受信、それに応じたコンテンツの送信を行うウェブサーバ１９０６が使用され、前記ネットワークにはインターネットが使用されているが、当技術分野における通常の知識を有する者にとっては明らかであるように、他のネットワークにおいてはその他の同様の目的の装置を使用することも可能である。
【００６５】
前記環境例には、少なくとも一つのアプリケーションサーバ１９０８及びデータストア１９１０が含まれる。前記環境例には複数のアプリケーションサーバ、レイヤーまたはその他の要素、プロセスまたは構成要素が含まれ、連結または設定され、適切なデータストアからデータを取得するといったタスクを実行するのに相互に作用する。ここで使用される「データストア」という用語は、保存、アクセス、データ取得が可能な装置または装置の組合せを指し、また、標準環境、分散環境またはクラスタ環境における多数のデータサーバ、データベース、データ記憶装置及びデータ記憶媒体、そしてそれらの組合せも指しうる。前記アプリケーションサーバには、前記データストアと統合するため、またデータアクセス及びアプリケーションのビジネスロジックの大部分を統御する前記クライアント装置に対し一以上のアプリケーションを実行するために必要な適切なハードウェア及びソフトウェアが含まれる。前記アプリケーションサーバは、データストアと共同してアクセスコントロールサービスを提供し、また前記ユーザーに伝送するテキスト、画像、オーディオ及び／または映像の生成が可能である。生成されたコンテンツは、当例ではハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）またはその他の適切な構造化言語の形式で、前記ウェブサーバから前記ユーザーに提供される。前記クライアント装置１９０２と前記アプリケーションサーバ１９０８間のコンテンツ配信と同様に、全ての要求及び応答の統御は前記ウェブサーバによって行われる。前記ウェブ及びアプリケーションサーバは必須ではなく、構成要素の例にすぎず、ここで論ずる構造化コードは、本文の他の箇所に記載される適切な装置またはホストマシンのいずれにおいても実行可能であることを理解されたい。
【００６６】
前記データストア１９１０は、特定の態様に関連したデータを保存するための複数の個別のデータテーブル、データベースまたはその他データストレージ機構及び媒体を備えうる。例えば図示される前記データストアには、生産側に対してコンテンツを提供する際使用される生産データ１９１２及びユーザー情報１９１６を保存するための機構が含まれる。また前記データストアには、報告、分析またはそのような他の目的のために使用されるログデータ１９１４を保存するための機構も含まれることが図示される。ページ画像情報やアクセス権情報といったその他数多くの態様に関するデータが前記データストアに保存される必要があり、それらは前記データストア１９１０の上記の適切な機構または追加機構に保存されることを理解されたい。前記データストア１９１０は、対応付けられたロジックを通して、前記アプリケーションサーバ１９０８からの命令の受信、それに応じたデータ取得、更新またはその他プロセスを実行可能である。一例において、ユーザーがある種類の項目に関する情報の検索を要求したとする。この場合、前記データストアは、前記ユーザー情報にアクセスして前記ユーザーの本人確認を行い、そして指定された種類の項目に関する情報を取得するために、カタログ詳細情報にアクセスしうる。そして取得された情報は、ウェブページの結果一覧として前記ユーザーに返され、前記ユーザーは前記ユーザー装置１９０２のブラウザを通して見ることができる。特定の注目項目に関する情報は、前記ブラウザにおいて専門ページまたは専門ウィンドウで見ることが可能である。
【００６７】
サーバは各自、サーバ自身の一般管理及び動作に関する実行可能なプログラム命令を提供するオペレーティングシステムを一般的に備え、そして命令を保存するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読取専用メモリ等）を一般的に備え、当サーバのプロセッサによって命令が実行されると、当サーバはその求められる機能を実行する。前記サーバの前記オペレーティングシステム及び一般機能の適切な実装は、公知または商業的に利用可能であり、そして当技術分野における通常の知識を有する者は、特に本開示を踏まえて今すぐ実装可能である。
【００６８】
一実施形態における環境として、一以上のコンピュータネットワークまたは直接接続による通信リンクを通して相互接続された複数のコンピュータシステム及び構成要素を利用する分散コンピューティング環境がある。図１９に図示される構成要素より少ないまたは多い構成要素を備えるシステムにおいても、このようなシステムは同等に作動することが、当技術分野における通常の知識を有する者によって理解されるだろう。すなわち、図１９の前記システム１９００の描写は、本来図例として理解されるべきであり、本開示の範囲に限定されるものではない。
【００６９】
さらに前記の様々な実施形態は、多種の動作環境において実装可能であり、場合によって前記環境には、多くのアプリケーションのいずれかを動作させるのに使用される一以上のユーザーコンピュータ、コンピューティング装置または制御装置が含まれる。ユーザーまたはクライアント装置には、標準のオペレーティングシステムが作動するデスクトップまたはラップトップコンピュータや、モバイルソフトウェアが作動し多くのネットワーク及びメッセージ通信プロトコルに対応するセルラー、無線及び手持装置といった、多くの汎用パーソナルコンピュータのいずれかが含まれる。またこのようなシステムには多くのワークステーションが含まれ、各ワークステーションにおいて、開発及びデータベース管理用に様々な市販のオペレーティングシステム及びその他の公知のアプリケーションのいずれかが作動している。これらの装置はまた、ネットワーク経由で通信可能なダミー端末、シンクライアント、ゲーム機及びその他装置といった、他の電子装置も備えうる。
【００７０】
前述の内容は以下の項目を参照することで、より理解されるだろう。
（１）コンピュータにより実施されるストレージ方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
仮想テープの作成要求を受信し、
ストレージサービスにおける論理データコンテナの作成を要求し、
前記論理データコンテナと仮想テープを対応付け、
前記仮想テープを前記仮想保存場所から移し、仮想テープドライブへ搭載する旨の要求を受信し、
前記仮想テープに対応付けられた前記論理データコンテナを、前記仮想テープドライブに対応付けられた入力／出力インターフェイスにマッピングし、
前記入力／出力インターフェイスを通して受信した要求を前記仮想テープドライブにマッピングされた前記仮想テープに対応付けられた前記論理データコンテナに対する要求に変換し、
前記仮想テープの保存要求を受信したことに応じて、
前記入力／出力インターフェイスへの前記論理データコンテナのマッピングを取除き、
前記仮想テープのアーカイブストレージサービスへの保存要求を受信したことに応じて、
前記仮想テープをインポート／エクスポート位置へマッピングし、
前記仮想テープを前記仮想テープライブラリから取除き、
前記仮想テープに対応付けられた前記ストレージ論理データコンテナを、アクティブストレージから前記アーカイブストレージサービスのアーカイブ論理データコンテナへ送る
ことを含むコンピュータ実施ストレージ方法。
【００７１】
（２）メタデータストアにおいて、前記論理データコンテナと仮想テープを対応付け、
前記仮想テープの仮想保存場所へのマッピングを、前記メタデータストアに保存する
ことをさらに含む（１）に記載のコンピュータ実施方法。
【００７２】
（３）前記入力／出力インターフェイスを通して受信した要求を前記論理データコンテナに対する要求に変換することは、クライアントインターフェイスから受信したデータを保存することを含む（１）または（２）に記載のコンピュータ実施方法。
【００７３】
（４）前記仮想テープに対応付けられた前記論理データコンテナを、第二仮想テープドライブに対応付けられた第二入力／出力インターフェイスにマッピングし、
前記論理データコンテナからの保存データを、前記第二入力／出力インターフェイスを通して、前記クライアントインターフェイスへ送信する
ことをさらに含む（２）または（３）に記載のコンピュータ実施方法。
【００７４】
（５）前記仮想テープの前記アーカイブストレージサービスへの保存要求を受信することは、
前記入力／出力インターフェイスを通して、使用する前記論理データコンテナの準備に関する許容応答時間を決定し、
各ストレージ階層の論理データコンテナへのアクセス応答時間に少なくとも一部定義されるストレージ階層のセットから、前記決定に少なくとも基づいて、ストレージ階層を選び、
前記論理データコンテナを、前記入力／出力インターフェイスを通して使用されるアクティブ階層から、選択したストレージ階層へ移し、
前記仮想テープを仮想ライブラリ位置に対応付ける
ことを含む前述のいずれかの項目に記載のコンピュータ実施方法。
【００７５】
（６）前記仮想テープのインポート／エクスポート位置へのマッピングを行うことは、前記仮想テープのインポート／エクスポートスロットへのマッピングをメタデータストアに保存することを含む前述のいずれかの項目に記載のコンピュータ実施方法。
【００７６】
（７）データを保存するためのコンピュータ実施方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
仮想テープと仮想テープドライブが対応付けられている間、入力／出力インターフェイスからのテープ処理要求を、前記仮想テープドライブに対応付けられた論理データコンテナに対する要求に変換し、
前記仮想テープを前記仮想テープドライブから取除く旨の要求を受信したことに応じて、前記仮想テープと前記論理データコンテナから前記仮想テープドライブとの対応付けを解除し、
各ストレージ階層がアクセススピード属性及びコスト属性を備えるストレージ階層のセットから、ストレージ階層を選択し、
前記論理データコンテナを、前記入力／出力インターフェイスを含む現在の階層から、選択したストレージ階層の論理データコンテナへ移す
ことを含むコンピュータ実施方法。
【００７７】
（８）前記入力／出力インターフェイスを通して受信したテープ処理要求を前記論理データコンテナに対する要求に変換することは、
クライアントインターフェイスからテープ処理要求を受信し、
前記テープ処理要求を一以上のストレージサービス要求に変換し、
前記一以上のストレージサービス要求を、クライアントネットワークから、公衆ネットワークそしてストレージサービスインターフェイスを通して、前記ストレージサービスへ送信する
ことを含む（７）または（８）に記載のコンピュータ実施方法。
【００７８】
（９）前記クライアントインターフェイスからテープ処理要求を受信することは、
仮想テープライブラリ装置を前記クライアントネットワーク上に配置することと、
テープ処理要求を受信し、ストレージサービス要求を送信するように、前記仮想テープライブラリ装置を構成する
ことを含む（７）または（８）に記載のコンピュータ実施方法。
【００７９】
（１０）ストレージサービスの前記論理データコンテナ、前記仮想テープ及び前記仮想テープドライブをメタデータストアにおいて対応付けることをさらに含む（７）〜（９）のいずれかに記載のコンピュータ実施方法。
【００８０】
（１１）メタデータストアにおいて、前記ストレージサービスの前記論理データコンテナ、前記仮想テープ及び前記仮想テープドライブを対応付けることは、
ストレージサービスにおける論理データコンテナの作成を要求し、
メタデータストアにおいて、前記論理データコンテナと仮想テープを対応付け、
前記仮想テープの仮想インポート／エクスポートスロットへのマッピングを、前記メタデータストアに保存する
ことを含む（９）または（１０）に記載のコンピュータ実施方法。
【００８１】
（１２）前記仮想テープドライブが第二仮想テープドライブに対しデータを提供するように要求された場合、前記仮想テープ及び前記仮想テープドライブと対応付けられた前記論理データコンテナと、第二仮想テープ及び前記第二仮想テープドライブと対応付けられた第二論理データコンテナとの間で、論理データコンテナのコピー処理を行う
ことをさらに含む（７）〜（１１）のいずれかに記載のコンピュータ実施方法。
【００８２】
（１３）前記ストレージ階層のセットからストレージ階層を選択することは、
前記仮想テープのストレージスロットへの移動要求を受信し、
前記ストレージスロットに少なくとも一部基づいたストレージ階層のセットからストレージ階層を選択する
ことを含む（７）〜（１２）のいずれかに記載のコンピュータ実施方法。
【００８３】
（１４）前記ストレージ階層のセットからストレージ階層を選択することは、
前記仮想テープのインポート／エクスポートスロットへの移動要求を受信し、
前記インポート／エクスポートスロットに少なくとも一部基づいたストレージ階層のセットからストレージ階層を選択する
ことを含む（７）〜（１３）のいずれかに記載のコンピュータ実施方法。
【００８４】
（１５）仮想テープライブラリを管理するコンピュータシステムであって、
一以上のプロセッサ及び、実行可能命令を含むメモリを含む一以上のコンピューティングリソースを備え、前記実行可能命令が前記一以上のプロセッサにより実行されると、前記実行可能命令により前記一以上のプロセッサは少なくとも、
クライアントアーカイブシステムにインターフェイスを提供する仮想テープライブラリシステムを実装し、前記仮想ライブラリシステムは、
各仮想テープが、要求によりストレージ論理データコンテナを提供するストレージサービスのストレージ論理データコンテナを備える仮想テープのセット、
各仮想テープドライブと対応付けられた仮想テープと通信するために前記クライアントアーカイブシステムにインターフェイスを各仮想テープドライブが提供する仮想テープドライブのセット、
仮想テープと仮想テープドライブを対応付けるように構成された媒体チェンジャインターフェイス、及び、
仮想テープとストレージ論理データコンテナとを対応付けるメタデータストアを備え、
テープライブラリシステムのエミュレーションを行なうことを特徴とするコンピュータシステム。
【００８５】
（１６）前記仮想テープライブラリは、前記ストレージ論理データコンテナを前記ストレージサービスからアーカイブストレージサービスのアーカイブ論理データコンテナへ移すように構成される一以上の仮想インポート／エクスポートスロットを備えることを特徴とする（１５）に記載のコンピュータシステム。
【００８６】
（１７）前記仮想テープライブラリは、前記ストレージ論理データコンテナを前記ストレージサービスからアーカイブストレージサービスのアーカイブ論理データコンテナへ移すように構成される一以上の仮想ストレージスロットを備えることを特徴とする（１５）または（１６）に記載のコンピュータシステム。
【００８７】
（１８）前記仮想テープライブラリシステムは、前記仮想テープドライブのセットのインターアクションをキャッシュするローカルストレージ論理データコンテナを備えることを特徴とする（１５）〜（１７）のいずれかに記載のコンピュータシステム。
【００８８】
（１９）第二仮想テープライブラリシステムをさらに備え、前記第二仮想テープライブラリシステムは、前記第二仮想テープライブラリにより管理される第一仮想テープの複製を、前記仮想テープライブラリシステムによって管理されている第二仮想テープに保存するために、前記第一仮想テープに対応付けられた論理データコンテナに対し、前記第二仮想テープに対応付けられた論理データコンテナへコピーされるよう要求するように構成されることを特徴とする（１５）〜（１８）のいずれかに記載のコンピュータシステム。
【００８９】
（２０）新規仮想テープを作成し、前記新規仮想テープを前記仮想テープライブラリシステムに搭載するように構成されたストレージサービスインターフェイスをさらに備える（１５）〜（１９）のいずれかに記載のコンピュータシステム。
【００９０】
（２１）前記ストレージサービスは、オブジェクトストレージサービスであることを特徴とする（１５）〜（２０）のいずれかに記載のコンピュータシステム。
【００９１】
（２２）一以上のコンピュータ可読記憶媒体であって、実行可能命令をまとめて保存しており、コンピュータシステムの一以上のプロセッサにより前記実行可能命令が実行されると、前記実行可能命令により前記コンピュータシステムは少なくとも
クライアントアーカイブシステムに仮想テープライブラリインターフェイスを提供し、
仮想テープライブラリの仮想テープのセットを、ストレージサービスにより提供される論理データコンテナのセットにマッピングし、
論理データコンテナを、仮想テープドライブに対応付けられた入力／出力インターフェイスにマッピングし、
前記クライアントアーカイブシステムからのテープ処理要求を前記論理データコンテナに対する要求に変換する
ことを特徴とするコンピュータ可読記憶媒体。
【００９２】
（２３）前記命令は、実行されると、コンピュータシステムに少なくとも、
前記一以上の論理データコンテナの中の論理データコンテナを仮想ライブラリ位置に再度マッピングし、
前記仮想テープのセットの中の仮想テープに対応付けられた第二論理データコンテナを、前記入力／出力インターフェイスにマッピングする
ことを実行させる命令をさらに含むことを特徴とする（２２）に記載のコンピュータ可読記憶媒体。
【００９３】
（２４）前記命令は、実行されると、コンピュータシステムに少なくとも、
前記仮想テープライブラリインターフェイスを通して、仮想テープのインポート／エクスポートスロットへの移動要求を受信し、
前記論理データコンテナを仮想ライブラリ位置へ再度マッピングし、
前記ストレージサービスに、前記論理データコンテナをアーカイブストレージサービスに移すように依頼する
ことを実行させる命令をさらに含むことを特徴とする（２２）または（２３）に記載のコンピュータ可読記憶媒体。
【００９４】
（２５）前記命令は、実行されると、コンピュータシステムに少なくとも、
アーカイブストレージサービスに、アーカイブ論理データコンテナを前記ストレージサービスの第二論理データコンテナへ移すように依頼し、
前記第二論理データコンテナを、前記仮想テープライブラリのインポート／エクスポートスロットへマッピングする
ことを実行させる命令をさらに含むことを特徴とする（２２）〜（２４）のいずれかに記載のコンピュータ可読記憶媒体。
【００９５】
（２６）前記仮想テープライブラリの前記仮想テープのセットを、前記ストレージサービスにより提供される前記論理データコンテナのセットにマッピングすることは、前記マッピングの結果をメタデータストアに保存することを含むことを特徴とする（２２）〜（２５）のいずれかに記載のコンピュータ可読記憶媒体。
【００９６】
前述の内容は以下の項目を参照することで、より理解されるだろう。
（１）仮想テープを使用するコンピュータ実施方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
ストレージサービスの論理データコンテナを使用する仮想テープを構築し、前記仮想テープの構築は、
前記ストレージサービスにおける新規論理データコンテナの作成を要求し、
前記論理データコンテナに一以上のデータブロックグループを保存し、当該データブロックグループには、
データストレージを含む一以上のデータブロックが含まれ、データブロックヘッダーには、
一以上のデータブロックセットの始端を示す、前記データブロックグループの各データブロックのレコードフラグ、
レコードグループの始端を示す、前記データブロックグループの各データブロックのファイルマークフラグ、
前記レコードのデータブロックセットのデータブロック数を示す、前記データブロックグループの各データブロックのレコードサイズが含まれ、
前記論理データコンテナにテープヘッダーを保存し、当該テープヘッダーには、
前記仮想テープの各データブロックのレコードフラグを持ったグローバルレコードメタデータ、及び、
前記仮想テープの各データブロックのファイルマークフラグを持ったグローバルファイルマークメタデータが含まれる
ことを特徴とするコンピュータ実施方法。
【００９７】
（２）前記テープヘッダーを保存することは、一以上のデータブロックグループを示すグローバルメタデータの一部を参照する前記テープヘッダーのジャーナルを保存することを含む（１）に記載のコンピュータ実施方法。
【００９８】
（３）前記仮想テープにおけるデータの位置特定要求を受信し、
前記要求及び前記グローバルレコードメタデータまたは前記グローバルファイルマークメタデータに少なくとも一部基づいて、前記データを含むデータブロックを持つデータブロックグループのデータ位置を特定し、
前記グローバルメタデータの一部を、一以上の隣接データブロックグループを示すグローバルメタデータの第二部と共にメモリにロードし、
前記グローバルメタデータの一部と前記グローバルメタデータの第二部を前記ジャーナルにおいて参照し、
特定された前記データ位置に対応付けられた前記データブロックヘッダーのレコードサイズに少なくとも一部基づいて、前記データのレコードサイズを特定する
ことをさらに含む（２）に記載のコンピュータ実施方法。
【００９９】
（４）前記仮想テープへのデータの書込要求を受信し、
前記要求及び前記グローバルレコードメタデータまたは前記グローバルファイルマークメタデータに少なくとも一部基づいて、書込みを行う前記仮想テープ内のデータ位置を特定し、
特定された前記データ位置に基づいて、前記グローバルメタデータの一部を、一以上の隣接データブロックグループを示すグローバルメタデータの第二部と共にメモリにロードし、
前記一以上の隣接データブロックグループを、前記ジャーナルにおいて確認し、
前記データブロックグループにデータを書込み、
前記データ位置を含む前記データブロックに対応付けられたレコードフラグ及び／またはファイルマークフラグを更新し、
前記書込処理に少なくとも一部基づいて、前記グローバルレコードメタデータまたは前記グローバルファイルマークメタデータを更新する
ことをさらに含む（２）または（３）に記載のコンピュータ実施方法。
【０１００】
（５）前記データブロックグループに少なくとも前記データを同期的に保存し、
前記グローバルレコードメタデータまたは前記グローバルファイルマークメタデータを非同期的に保存する
ことをさらに含む（４）または（５）に記載のコンピュータ実施方法。
【０１０１】
（６）前記データ位置に前記データを書込むことは、データブロックグループメタデータにおいて少なくとも一レコードフラグ及びサイズ値を更新する
ことを含む（４）または（５）に記載のコンピュータ実施方法。
【０１０２】
（７）仮想テープを管理するコンピュータ実施方法であって、
実行可能命令により構成された一以上のコンピュータシステムの制御の下、
仮想テープの初期化要求を受信し、
前記仮想テープのストレージとして使用するストレージサービスの論理データコンテナを初期化し、前記論理データコンテナにおけるレコード位置を特定するグローバルレコードメタデータ及び、前記論理データコンテナにおけるファイルマーク位置を特定するグローバルファイルマークメタデータを含むテープヘッダーを保存する
ことを含むコンピュータ実施方法。
【０１０３】
（８）前記テープヘッダーのグローバル生成識別子を初期化することをさらに含む（７）または（８）に記載のコンピュータ実施方法。
【０１０４】
（９）前記仮想テープへのデータの書込要求を受信し、
前記データを保存するための一以上のデータブロックグループは、前記データを保存する各データブロックグループが前記グローバル生成識別子に一致するデータブロック生成識別子を含み、そして前記データブロックグループにおける一以上のデータブロック及び各データブロックのデータブロックメタデータがレコードの始端データブロックを特定するレコードフラグ、レコードグループの始端を特定するファイルマークフラグ、及びレコードの長さを特定するレコードサイズエントリを含むように、構築される
ことをさらに含む（７）または（８）に記載のコンピュータ実施方法。
【０１０５】
（１０）テープに対応する論理データコンテナの削除要求を受信し、
前記論理データコンテナの一以上のデータブロック生成識別子と一致しないように前記グローバル生成識別子を修正する
ことをさらに含む（９）に記載のコンピュータ実施方法。
【０１０６】
（１１）最近アクセスされたデータブロックに少なくとも一部基づいて、現行のテープヘッド位置を更新することをさらに含む（９）または（１０）に記載のコンピュータ実施方法。
【０１０７】
（１２）前記論理データコンテナの隣接データブロックグループセットを含むメガブロックの、前記一以上のデータブロックグループを示すグローバルメガブロックエントリをメモリにロードし、
前記グローバルメガブロックメタデータを確認するために、前記テープヘッダーのジャーナルに前記グローバルメガブロックメタデータを書込み、
前記メガブロックの一以上のデータブロックに少なくともいくつかの前記データを書込み、
少なくとも一部の前記一以上のデータブロックグループにおいて、前記書込処理に少なくとも一部基づいて、前記データブロックメタデータを更新し、
前記書込処理に少なくとも一部基づいて、グローバルファイルマークメタデータ及びグローバルレコードメタデータを更新し、
前記データブロックグループに変更を同期的に保存する
ことをさらに含む（９）〜（１１）のいずれかに記載のコンピュータ実施方法。
【０１０８】
（１３）第二メガブロックメタデータエントリをメモリにロードし、
前記第二メガブロックメタデータを確認するために、前記テープヘッダーのジャーナルに前記第二メガブロックメタデータを書込み、
前記第二メガブロックメタデータエントリをメモリにロードしたことに応じて、前記グローバルファイルマークメタデータ及びレコードメタデータに変更を保存する
ことをさらに含む（１２）に記載のコンピュータ実施方法。
【０１０９】
（１４）仮想テープを使用するコンピュータシステムであって、一以上のプロセッサ及び、実行可能命令を含むメモリを含む一以上のコンピューティングリソースを備え、前記実行可能命令が前記一以上のプロセッサにより実行されると、前記実行可能命令により前記一以上のプロセッサは少なくとも、
要求に応じストレージ論理データコンテナを提供するストレージサービスのストレージ論理データコンテナを含む仮想テープを少なくとも実装し、当該ストレージ論理データコンテナは、
テープヘッダーを備え、当該テープヘッダーには、
前記ストレージ論理データコンテナにおけるメモリにロードされた現行のデータブロックを特定するジャーナル、
レコードの始端位置を特定するグローバルレコードフラグセット、及び、
レコードグループの始端位置を特定するグローバルファイルマークフラグセットが含まれ、
また一以上のデータブロックグループを備え、当該一以上のデータブロックグループには、
データを含むデータブロックセット、及び、
データヘッダーが含まれ、当該データヘッダーには、
各データグループメタデータエントリがファイルマークフラグ、レコードフラグ及びレコードサイズを含み、データブロックグループの前記データブロックセットに対応する、データグループメタデータエントリのセットが含まれる
ことを特徴とするコンピュータシステム。
【０１１０】
（１５）ストレージ論理データコンテナは、オブジェクトストレージ論理データコンテナであることを特徴とする（１４）に記載のコンピュータシステム。
【０１１１】
（１６）前記テープヘッダーは、最近アクセスされたレコードを特定するテープヘッド位置を含むことを特徴とする（１４）または（１５）に記載のコンピュータシステム。
【０１１２】
（１７）グローバルレコードフラグセットは、
それぞれが複数のデータブロックからなるメガブロックを示すレコードメタデータセクションのセットを含み、当該レコードメタデータセクションセットの各レコードメタデータセクションには、
前記メガブロックが有効情報を含む時前記グローバル生成識別子に一致するレコード生成識別子、及びエラー修正情報を含むメガブロックレコードヘッダー、及び、
前記メガブロックの前記データブロックに対応付けられたグローバルレコードフラグセットのサブセットが含まれる
ことを特徴とする（１４）〜（１６）のいずれかに記載のコンピュータシステム。
【０１１３】
（１８）論理データコンテナは、前記グローバルレコードフラグによって示されるサイズまでサイズを動的に変更できることを特徴とする（１４）〜（１７）のいずれかに記載のコンピュータシステム。
【０１１４】
（１９）前記論理データコンテナのサイズを動的に変更するために、少なくとも、
前記グローバルメタデータセクションを前記データストレージコンテナの終端に配置し、
前記ストレージコンテナにストレージを追加することで、前記データストレージコンテナのストレージ容量を増やし、
前記グローバルメタデータセクションを追加された前記ストレージの終端にコピーする
ことを特徴とする（１８）に記載のコンピュータシステム。
【０１１５】
（２０）前記論理データコンテナと仮想テープ識別子を対応付けるメタデータストアをさらに備える（１４）に記載のコンピュータシステム。
【０１１６】
（２１）一以上のコンピュータ可読記憶媒体であって、実行可能命令をまとめて保存しており、コンピュータシステムの一以上のプロセッサにより前記実行可能命令が実行されると、前記実行可能命令により前記コンピュータシステムは少なくとも、
仮想テープのデータ構造に相応する論理データコンテナにおけるエラー事象の発生を特定し、
それぞれのメガブロックがデータブロックグループセットを備える一以上のメガブロックのグローバルメタデータを特定するテープヘッダーから、ジャーナル情報を取得し、
特定された各メガブロックの各データグループメタデータエントリにおいてデータブロックと対応付けられているレコードフラグ及びファイルマークフラグを使用する、前記グローバルレコードフラグ及びグローバルファイルマークフラグを復元する
ことを特徴とするコンピュータ可読記憶媒体。
【０１１７】
（２２）前記グローバルレコードフラグを復元することは、
前記一以上のメガブロックの各データブロックグループにアクセスすることであって、当該データブロックグループには、
アーカイブデータを含むデータブロックセット、及び、
データヘッダーが含まれ、当該データヘッダーには、
有効データセクションに関しては前記グローバル生成識別子に一致する前記データセクションにおけるデータ生成識別子、及び、
それぞれのデータブロックグループメタデータエントリがファイルマークフラグ、レコードフラグ及びレコードサイズを含み、対応付けられたデータブロックグループの前記データブロックセットに対応する、データグループメタデータエントリのセットが含まれることと、
前記グローバルレコードフラグ及びグローバルファイルマークフラグを復元するために、前記データブロックグループメタデータエントリを使用することと
を含むことを特徴とする（２１）に記載のコンピュータ可読記憶媒体。
【０１１８】
（２３）前記命令は、実行されると、コンピュータシステムに少なくとも、
前記一以上のメガブロックの各メガブロックをスキャンするために、
前記一以上のメガブロックのデータブロックグループ毎に、
前記一以上のメガブロックの各データブロックグループに対し、前記データヘッダーからエラー修正情報を取得し、
前記エラー修正情報を前記データブロックグループに適用する
ことを実行させる命令をさらに含むことを特徴とする（２２）に記載のコンピュータ可読記憶媒体。
【０１１９】
（２４）前記命令は、実行されると、コンピュータシステムに少なくとも、前記論理データコンテナを利用可能にすることを実行させる命令をさらに含むことを特徴とする（２１）〜（２３）のいずれかに記載のコンピュータ可読記憶媒体。
【０１２０】
（２５）エラー事象は停電であることを特徴とする（２１）〜（２４）のいずれかに記載のコンピュータ可読記憶媒体。
【０１２１】
伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、開放型システム間相互接続（ＯＳＩ）、ファイル転送プロトコル（ＦＴＰ）、ユニバーサルプラグアンドプレイ（ＵｐｎＰ）、ネットワーク  ファイル  システム（ＮＦＳ）、共通インターネットファイルシステム（ＣＩＦＳ）及びアップルトーク等の、様々な商業的に利用可能なプロトコルを使用する通信に対応するために、大半の実施形態は、当業者によく知られる少なくとも一つのネットワークを利用する。例えば、前記ネットワークには、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの組合せがある。
【０１２２】
ウェブサーバを使用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバ、ＦＴＰサーバ、共通ゲートウェイインターフェイス（ＣＧＩ）サーバ、データサーバ、ジャバサーバ、及びビジネスアプリケーションサーバを含む、様々なサーバまたは中階層アプリケーションを運行可能である。前記サーバはまた、ジャバ（Ｊａｖａ（登録商標））、Ｃ、Ｃ＃またはＣ＋＋等のプログラミング言語、またはパール（Ｐｅｒｌ）、パイソン（Ｐｙｔｈｏｎ）またはツールコマンド言語（ＴＣＬ）等のスクリプト言語、またはそれらの組合せで書かれた一以上のスクリプトやプログラムとして実装された、一以上のウェブアプリケーションを実行することによって、ユーザー装置からの要求に応じて、プログラムまたはスクリプトを実行可能である。また前記サーバには、これらに限らないが、オラクル（Ｏｒａｃｌｅ（登録商標））、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ（登録商標））、サイベース（Ｓｙｂａｓｅ（登録商標）、及びアイビーエム（ＩＢＭ（登録商標）の商業的に利用可能なデータサーバや、その他のデータベースサーバが含まれる。
【０１２３】
前記環境には、前に論述されたように様々なデータストア及びその他メモリや記憶媒体が含まれる。一以上の前記コンピュータの局所にある（及び／または一以上の前記コンピュータに属する）記憶媒体、または一部または全ての前記コンピュータの遠隔にあるネットワーク越しの記憶媒体といった、様々な位置に情報が保存される。特定の実施形態の一式においては、当業者によく知られるストレージエリアネットワーク（ＳＡＮ）に情報が保存される。同様に、前記コンピュータ、サーバまたは他のネットワークサービスに属する機能を実行するのに必要なファイルは、局所的及び／または遠隔的に保存される。システムがコンピュータ化装置を含む場合、各コンピュータ化装置は、例えば少なくとも一中央処理装置（ＣＰＵ）、少なくとも一入力装置（例、マウス、キーボード、コントローラー、タッチスクリーンまたはキーパッド）、及び少なくとも一出力装置（例、ディスプレイ装置、プリンターまたはスピーカー）を含む、バスにより電気的に結合されるハードウェア要素を含む。このようなシステムはまた、ディスクドライブ、光学記憶装置、及び、ランダムアクセスメモリ（ＲＡＭ）や読出専用メモリ（ＲＯＭ）やリムーバブルメディア装置、メモリーカード、フラッシュカード等の固体記憶装置といった、一以上の記憶装置を含みうる。
【０１２４】
このような装置はまた、上記のようにコンピュータ可読記憶媒体リーダ、通信装置（例、モデム、ネットワークカード（無線または有線）、赤外線通信装置、等）、及び作業メモリを含みうる。前記コンピュータ可読記憶媒体リーダは、遠隔型、局所型、固定型及び／または着脱可能の記憶装置や一時的及び／またはより永久的にコンピュータ可読情報を含み、保存、送信、取得する記憶媒体に相当する、コンピュータ可読記憶媒体と接続、またはコンピュータ可読記憶媒体を受けるように構成される。また前記システム及び様々な装置は通常、クライアントアプリケーションやウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む、数多くのソフトウェアアプリケーション、モジュール、サービス、他要素を少なくとも一作業メモリ装置に備えうる。代替実施形態には前述以外に多数のバリエーションがありうることは、理解されるべきである。例えば、カスタマイズされたハードウェアも使用され、及び／または特定要素がハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）または両方に実装される。さらに、ネットワーク入力／出力装置等の他のコンピューティング装置への接続が運用される。
【０１２５】
コードやコードの一部を含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既知または既に使用されている様々な適切な媒体が含まれる。前記適切な媒体として、コンピュータ可読命令、データ構造、ブログラムモジュール、その他データといった情報の記憶及び／または送信に関する様々な方法または技術において実装される、これに限ったものではないが揮発性及び不揮発性、着脱可能及び着脱不可能媒体といった記憶媒体及び通信媒体が含まれる。例えば、ＲＡＭ、ＲＯＭ、電気的消去再書込可能な読出専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリやその他メモリ技術、  読取専用コンパクトディスク  （ＣＤ−ＲＯＭ）、  デジタル多用途ディスク  （ＤＶＤ）やその他光学ストレージ、磁気カセット、磁気テ−プ、磁気ディスクストレージやその他磁気ストレージ装置、または所望の前記情報を保存するために使用され、システム装置によってアクセス可能なその他媒体がある。ここで提供される本開示及び教示に基づいて、当技術分野における通常の知識を有する者は、前記の様々な実施形態を実現する他の手法及び／または手段を理解するであろう。
【０１２６】
明細書及び図面は適宜、制限的な意味ではなく実例的な意味で見られるべきである。しかしながら、特許請求の範囲に記載された広い意図と本発明の範囲から逸脱しない程度に、それらに対する様々な修正及び変更が行われることは明白であろう。
【０１２７】
他の変更は、本開示の意図の範囲内で行われる。すなわち、開示される技術は様々な修正及び代替構造に影響を受けやすいとしても、それらの例示的実施形態は図面に示され、前に詳述されている。特定の形式や開示された形式に本発明を限定する意図はなく、それとは逆に、全ての修正、代替構造、及び添付の請求項で定義されているような本発明の意図と範囲に一致する同等物まで含める意図がある。
【０１２８】
開示された前記実施形態を記述する文脈（特に以下の請求項の文脈）において使用される、「ａ」、「ａｎ」、「前記」といった用語は、ここで示されていないかまたは文脈と明らかに矛盾していない限り、単数と複数の両方を対象にしていると解釈されるべきである。「備える」、「持つ」、「含む」という用語は、言及されていない限り、制限のない用語（例、「含むが、それに限定されない」という意味）として解釈されるべきである。用語「連結される」は、何かが介在しているとしても、一部または全部が含まれる、装着される、結合される、という意味で解釈されるべきである。ここにおける値の範囲の詳述は、ここで示されていない限り前記範囲と一致する個々の値を個別に参照する簡略手段として使用されることを単に目的とし、そして個々の値は、ここで個別に詳述されるものとして、明細書に組み込まれていない。ここで記述される全ての方法は、ここで示されていないまたは文脈と明らかに矛盾していない限り、様々な適切な順番で行うことが可能である。ここで提供される一部または全ての例や例示語（例、「等」）の使用は、単に本発明の実施形態をより分かり易くするためであり、請求されない限り本発明の範囲を限定するものではない。明細書におけるどの専門用語も、請求されていない要素が本発明の実行に必要であるかのように解釈されるべきではない。
【０１２９】
ここで記述される本開示の好ましい実施形態には、本発明を実行するにあたって当発明者が知る最適な形態が含まれる。当技術分野における通常の知識を有する者にとって、これらの好ましい実施形態のバリエーションは、前述の説明を読むことで明らかである。当発明者は、当業者がこれらのバリエーションを適切なものとして採用することを望み、また当発明者は本発明が、ここで具体的に記載された以外の方法で実行されることを想定する。従って、本発明は、全ての修正、及びここに添付される請求項に詳述される内容の同等物を、適用法令により認可されたものとして含む。さらに、これらの全ての可能なバリエーションにおける前述の要素の様々な組合せが、ここで示されていない限りまたは文脈に矛盾していない限り、本発明に含まれる。
【０１３０】
本明細書に記載した論文及び出版物、特許出願及び特許を含む全ての参考文献は、それぞれが個別にそして具体的に示されるように引用により組み入れられ、またその全体がここで明らかになるように、引用により本明細書に組み入れられる。
【図１】
0006271581.tif 000002
【図２】
0006271581.tif 000003
【図３】
0006271581.tif 000004
【図４】
0006271581.tif 000005
【図５】
0006271581.tif 000006
【図６】
0006271581.tif 000007
【図７】
0006271581.tif 000008
【図８】
0006271581.tif 000009
【図９】
0006271581.tif 000010
【図１０】
0006271581.tif 000011
【図１１】
0006271581.tif 000012
【図１２】
0006271581.tif 000013
【図１３】
0006271581.tif 000014
【図１４】
0006271581.tif 000015
【図１５】
0006271581.tif 000016
【図１６】
0006271581.tif 000017
【図１７】
0006271581.tif 000018
【図１８】
0006271581.tif 000019
【図１９】
0006271581.tif 000020