(57)【特許請求の範囲】
【請求項１】
テープボリュームを含むテープドライブにより実行される方法であって、
記述データ構造を返すことを要求する記述読み出し要求をホスト装置から受信し、該記述データ構造が、オブジェクトと、該オブジェクトがテープマークであるかデータレコードであるかを示す該オブジェクトのための記述子とを含み、
前記テープボリュームに対して読み出しを行って前記オブジェクトを読み出し、
該オブジェクトを解析して該オブジェクトがテープマークであるかデータレコードであるかを示す記述子を生成し、及び、
前記記述読み出し要求に応じて該オブジェクト及び該記述子を含む記述データ構造を前記ホスト装置へ返す
ことからなる方法。
【請求項２】
前記記述読み出し要求が最大長を含み、
前記オブジェクトが複数のオブジェクトのうちの１つであり、該複数のオブジェクトが前記最大長以下の全長を有し、
前記オブジェクトを解析することが、前記複数のオブジェクトを解析して対応する複数の記述子を生成することを含み、該複数の記述子の各々が、該複数のオブジェクトのうちの対応する１つのオブジェクトが対応するテープマークであるか対応するデータレコードであるかを示すものであり、及び、
前記オブジェクト及び前記記述子を返すことが、前記複数のオブジェクト及び前記対応する複数の記述子を返すことを含む、
請求項１に記載の方法。
【請求項３】
前記複数のオブジェクトが所定の順序で前記テープボリューム上に格納されており、及び該複数のオブジェクトが該順序で返される、請求項２に記載の方法。
【請求項４】
前記データレコードが部分的なデータレコードである、請求項１に記載の方法。
【請求項５】
前記オブジェクトが一連の同一タイプの複数のオブジェクトのうちの１つであり、
前記オブジェクトを解析することが、前記複数のオブジェクトを解析して１つの記述子を生成することを含み、該１つの記述子が、前記一連のオブジェクトが一連のテープマークであるか一連のデータレコードであるかを示すものであり、及び、
前記オブジェクト及び前記記述子を返すことが、該複数のオブジェクト及び前記１つの記述子を返すことを含む、請求項１に記載の方法。
【請求項６】
前記記述子が前記オブジェクトの長さを更に示すものである、請求項１ないし請求項５の何れか一項に記載の方法。
【請求項７】
前記テープボリュームを含む前記テープドライブが、物理的なテープボリュームを含む物理的なテープドライブ、又は仮想的なテープボリュームを含む仮想的なテープドライブである、請求項１ないし請求項６の何れか一項に記載の方法。
【請求項８】
前記記述読み出し要求が所定のフォーマットを指定し、及び、
該指定されたフォーマットで前記オブジェクトを前記記述データ構造に含めることを更に含む、
請求項１に記載の方法。
【請求項９】
前記フォーマットが、圧縮状態及び／又は暗号化状態を含む、請求項８に記載の方法。
【請求項１０】
物理的なテープボリューム又は仮想的なテープボリュームを含むテープドライブであって、
オブジェクトと該オブジェクトがテープマークであるかデータレコードであるかを示す記述子とを含む記述データ構造をホスト装置から受信する入力と、
該記述子を解析して該オブジェクトがテープマークであるかデータレコードであるかを判定する解析手段と、
等価なテープマーク又は等価なデータレコードを前記テープドライブに固有の第１のフォーマットで前記物理的なテープボリューム又は前記仮想的なテープボリュームに書き込む書き込み手段であって、該等価なテープマーク又は該等価なデータレコードが前記オブジェクトと等価である、書き込み手段と
を備えている、テープドライブ。
【請求項１１】
前記記述データ構造が、複数の対をなす記述子及びそれに対応するオブジェクトを含み、
前記解析手段が、該複数の対のそれぞれの記述子を解析して該それぞれの記述子に対応するオブジェクトがそれぞれテープマークであるかデータレコードであるかを判定し、及び、
前記書き込み手段が、該それぞれのテープマーク又はデータレコードを書き込む、
請求項１０に記載のテープドライブ。
【請求項１２】
前記記述データ構造の複数の前記オブジェクトが所定の順序を有しており、及び、
前記書き込み手段が、前記それぞれのテープマーク又はデータレコードを該順序で前記物理的なテープボリューム又は前記仮想的なテープボリュームに書き込む、
請求項１１に記載のテープドライブ。
【請求項１３】
前記記述データ構造が、前記記述子を含むヘッダと前記オブジェクトを含むボディとを含む、請求項１０ないし請求項１２の何れか一項に記載のテープドライブ。
【請求項１４】
前記記述子が、後続の記述子のロケーションを含み、
前記解析手段が、該後続の記述子を解析して前記記述データ構造の後続のオブジェクトが後続のテープマークであるか後続のデータレコードであるかを判定する、
請求項１０ないし請求項１３の何れか一項に記載のテープドライブ。
【請求項１５】
前記記述子が、前記データレコードのフォーマットを示す、請求項１０ないし請求項１４の何れか一項に記載のテープドライブ。
【請求項１６】
前記記述データ構造内の前記オブジェクトが、前記第１のフォーマットとは異なる第２のフォーマットを有する、請求項１０ないし請求項１５の何れか一項に記載のテープドライブ。
【請求項１７】
複数の命令を格納したコンピュータ読み取り可能媒体であって、該命令が、その実行時に、
物理的なテープボリュームを含む物理的なテープドライブ又は仮想的なテープボリュームを含む仮想的なテープドライブからなる第１のドライブへ記述読み出し要求を送信し、該記述読み出し要求が、オブジェクトと、該オブジェクトがテープマークであるかデータレコードであるかを示す該オブジェクトのための記述子とを含む記述データ構造を該第１のドライブに返させるためのものであり、及び、
オブジェクトと該オブジェクトがテープマークであるかデータレコードであるかを示す記述子とからなる記述データ構造を該第１のドライブから受信する
ことをプロセッサに行わせるものである、コンピュータ読み取り可能媒体。
【請求項１８】
記述書き込み要求を物理的なテープボリュームを含む物理的なテープドライブ又は仮想的なテープボリュームを含む仮想的なテープドライブを含む第２のドライブへ送信し、及び、
前記記述データ構造を該第２のドライブへ送信する
ことを実行時に前記プロセッサに行わせる更なる命令を格納している、請求項１７に記載のコンピュータ読み取り可能媒体。
【請求項１９】
複数の記述読み出し要求を前記第１のドライブへ送信し及び複数の記述データ構造を前記第２のドライブへ送信することにより該第１のドライブの前記テープボリュームの内容を該第２のドライブの前記テープボリュームへ移行する
ことを実行時に前記プロセッサに行わせる更なる命令を格納している、請求項１８に記載のコンピュータ読み取り可能媒体。
【請求項２０】
前記プロセッサが、前記記述データ構造を前記第２のドライブへ送信する前に該記述データ構造を解析しない、請求項１８又は請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２１】
前記第１のドライブ及び前記第２のドライブが同じ暗号化プロトコルをサポートする場合に、前記オブジェクトを所定の暗号化状態で前記記述データ構造に含めることを前記記述読み出し要求において指定し、及び／又は、
前記第１のドライブ及び前記第２のドライブが同じ圧縮プロトコルをサポートする場合に、前記オブジェクトを所定の圧縮状態で前記記述データ構造に含めることを前記記述読み出し要求において指定する
ことを実行時に前記プロセッサに行わせる更なる命令を格納している、請求項１８ないし請求項２０の何れか一項に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
テープデータ移行（migration）は、ソーステープボリューム上のデータをターゲットテープボリュームへ移動するプロセスである。ソース又はデスティネーションテープボリュームは、仮想的又は物理的なテープボリュームとすることが可能である。例えば、データは、新たなバックアップソリューションに移行するために物理的なテープから仮想的なテープへと移行することが可能である。別の例として、データは、アーカイブを目的として仮想的なテープから物理的なテープへと移行することが可能である。更なる例として、データは、改良されたテープ技術を利用するために異なる物理的なテープ間で移行することが可能である。
【図面の簡単な説明】
【０００２】
【図１】記述（described）読み出し要求及び記述（described）書き込み要求を使用した例示的なデータ移行システムを示している。
【図２】記述読み出し要求に応答する例示的な方法を示している。
【図３】例示的な記述（described）データ構造を示している。
【図４】別の例示的な記述データ構造を示している。
【図５】記述（described）書き込み手段を含む例示的なドライブを示している。
【図６】移行命令を格納した持続性コンピュータ読み取り可能媒体を含むコンピュータを示している。
【発明を実施するための形態】
【０００３】
以下では、図面を参照して特定の実施形態について説明する。
【０００４】
データは、一連のオブジェクトとしてテープ上に格納することが可能である。複数の該オブジェクトは、様々なテープマークが散在する複数のデータレコードを含むことが可能である。例えば、テープマークは、データレコードを区切るファイルマーク、並びに、パーティション、ボリューム、テープの終わり、テープの始まり、ラベル、インデックス、及びその他の非ユーザデータ構造を示すマークを含むことが可能である。
【０００５】
情報の構造は、異なるテープ記憶装置の実施形態間で大きく異なり得るものである。例えば、異なるテープは、異なる容量を有する可能性があり、異なる符号化方法を使用する可能性があり、暗号化をサポートし又はサポートしない可能性があり、及びパーティションをサポートし又はサポートしない可能性がある。更なる例として、テープ記憶装置の一実施形態では固定サイズのデータレコードを使用してデータを格納する可能性があり、別の実施形態では可変サイズのデータレコードを使用してデータを格納する可能性がある。
【０００６】
ファイルシステム情報は、テープ上に格納されている情報から得ることができない可能性がある。テープ記憶装置の応用例では、ファイルシステム情報を別個の媒体上に維持する場合がある。更に、ハードディスク又はフラッシュドライブとは異なり、テープ上のデータはロケーションアドレスを有さない可能性があり、及び読み出しのためにシーケンシャルアクセス技術を必要とする可能性がある。
【０００７】
かかる特徴に適応するために、テープ移行アプリケーションは、データがソーステープボリュームから読み出される際に、該読み出されたデータからデータ構造又はファイルシステムを再作成するように該データをマッピングする場合がある。次いで該テープ移行アプリケーションは、該再作成されたデータ構造に従ってデータを処理し、及びターゲットドライブへ書き込みコマンドを発行して、該ターゲットテープドライブ上に該データ構造を再作成することが可能である。これは、テープ移行アプリケーションが複雑な命令を実行することを必要とし、及び該テープ移行アプリケーションをベンダ固有又はテープフォーマット固有の態様で実施することを必要とするものである。
【０００８】
本技術の一態様は、記憶ボリュームから読みだしを行うための記述読み出し要求及び応答を提供することが可能である。記述データ構造は、前記読み出し要求に応じて提供することが可能である。該記述データ構造は、オブジェクト及び該オブジェクトを記述する記述子を含むことが可能である。返されるオブジェクトは、複数のデータレコードに加えて複数のテープマークを含むことが可能である。例えば、該記述データ構造は、データレコードと、オブジェクトがデータレコードであることを示す記述子とを含むことが可能である。別の例として、該データ構造は、テープマークと、オブジェクトがテープマークであることを示す記述子とを含むことが可能である。この例では、該記述子は、テープマークのタイプも示すことが可能である。
【０００９】
前記記述データ構造は、記述書き込み要求の後にターゲットドライブへ提供することが可能である。該ターゲットドライブは、該ターゲットドライブに固有のフォーマットを用いた等価なオブジェクトを書き込むために、前記記述データ構造を使用することが可能である。例えば、対応するオブジェクトがテープマークであることを記述子が示す場合、ターゲットドライブは、等価なテープマークを書き込むことが可能である。例えば、ソーステープマークは、ターゲットテープマークとは異なるよう符号化されたものであることが可能である。同様に、対応するオブジェクトがデータレコードであることを記述子が示す場合、ターゲットドライブは、該ターゲットドライブに固有のフォーマットを使用してデータレコードを書き込むことが可能である。例えば、ターゲットドライブは、ソース媒体上で使用されているフォーマットとは異なる所与の符号化方法、圧縮方法、又は暗号化方法を使用してデータレコードを書き込むことが可能である。これにより、ユーザが、改良された記憶装置又は更なる利用可能な特徴を利用するために、新たなテープへデータを移行することが可能となる。
【００１０】
実施形態によっては、ソーステープの構造をターゲットテープ上で再作成することにより、ソーステープからデスティネーションテープへデータを移行することが可能である。この実施形態では、記述データ構造は、該ソーステープのフォーマットと該ターゲットテープのフォーマットとの間の中間フォーマットを提供することが可能である。これにより、移行アプリケーションがソースデータを解析し又はソースファイルシステムを再作成することを必要とすることなく、データを移行することが可能となる。
【００１１】
図１は、前記記述読み出し要求及び記述書き込み要求を用いた例示的なデータ移行システムを示している。この実施形態では、コンピュータ100は、入出力102（ネットワークインタフェイス又はSCSIストレージインタフェイスなど）を介してソースドライブ105及びターゲットドライブ109に接続されている。コンピュータ100は、ソースドライブ105のソースボリューム108からターゲットドライブ109のターゲットボリューム112へデータを移行するために移行アプリケーション104を実行することが可能である。該移行アプリケーション104は、持続性コンピュータ読み取り可能媒体103（ランダムアクセスメモリ（RAM）、フラッシュメモリ、又はストレージなど）上に格納することが可能である。実施形態によっては、ソースドライブ105又はターゲットドライブ109をテープドライブとし、ボリューム108,112をテープとすることが可能である。また、ソースドライブ105又はターゲットドライブ109を仮想的なテープドライブとし、ボリューム108,112を仮想的なテープとすることが可能である。
【００１２】
移行時に、コンピュータ100は、ソースドライブ105に対し、記述読み出し要求を発行することが可能である。ソースドライブ105は、該読み出し要求を入出力106（ネットワークインタフェイス又はSCSIストレージインタフェイスなど）を介して受信することが可能である。例えば、該記述読み出し要求は、ファイバチャネル（FC）、FCoE（FC over Ethernet）、iSCSI（Internet SCSI）、又はSAS（Serial Attached SCSI）接続を使用してSCSI（Small Computer System Interface）コマンドとしてソースドライブ105へ送信することが可能である。
【００１３】
コンピュータ100は、ソースドライブ105から記述データ構造を受信することが可能である。該記述データ構造は、ターゲットドライブ109へ送信することが可能である。例えば、コンピュータ100は、記述書き込み要求を入出力102を介してターゲットドライブ109へ送信することが可能であり、該記述書き込み要求は、入出力111を介してターゲットドライブ109により受信されることが可能である。実施形態によっては、該記述書き込み要求は、FC、FCoE、iSCSI、又はSAS接続を使用してSCSIコマンドとしてターゲットドライブ109へ送信することが可能である。可用性応答を受信した後、コンピュータ100は、前記記述データ構造をソースドライブへ送信することが可能となる。
【００１４】
ソースドライブ105は、ソース記憶ボリューム108及び入出力106に接続された記述読み出し手段107を含むことが可能である。例えば、該記述読み出し手段107は、ハードウェア（ASIC（Application Specific Integrated Circuit）及びFPGA（Field Programmable Gate Array）など）、持続性コンピュータ読み取り可能媒体に格納され及びコントローラにより実行されるソフトウェア、又はハードウェア及びソフトウェアの組み合わせを使用して実施することが可能である。該記述読み出し手段107は、コンピュータ100からの記述読み出し要求に応じてボリューム108を読み出して記述データ構造を提供することが可能である。実施形態によっては、該記述データ構造は、該ボリューム108から読み出されたオブジェクトと、該オブジェクトがテープマークであるかデータレコードであるかを示す記述子とを含むものとなる。
【００１５】
ターゲットドライブ109は、ターゲット記憶ボリューム112及び入出力111に接続された記述書き込み手段110を含むことが可能である。例えば、該記述書き込み手段110は、ハードウェア（ASIC及びFPGAなど）、持続性コンピュータ読み取り可能媒体に格納され及びコントローラにより実行されるソフトウェア、又はハードウェア及びソフトウェアの組み合わせを使用して実施することが可能である。該記述書き込み手段110は、受信した前記データ構造の記述子を解析して前記記述データ構造のオブジェクトがテープマークであるかデータレコードであるかを判定することが可能である。次いで、該記述書き込み手段110は、該オブジェクトをボリューム112に書き込むことが可能である。実施形態によっては、該記述書き込み手段110は、ソースボリューム108に該オブジェクトが書き込まれた態様とは異なるフォーマットでボリューム112に該オブジェクトを書き込むことが可能である。例えば、以前のLTO（Linear Tape-Open）規格フォーマットを使用してソースボリューム108にデータを格納することが可能であり、及び最近のLTO規格フォーマットを使用してターゲットボリューム112にデータを格納することが可能である。別の例として、ソースボリューム108は、ディスクアレイ、クラウドストレージシステム、又はNAS（Network Attached Storage）とすることが可能である。この例では、ソースボリューム108上のデータは、ディスクストレージのアドレス指定されたブロック内に物理的に格納されるが、仮想的なテープボリューム内に格納されたものとして提示することが可能である。ターゲットボリューム112は、ディスクアレイ、クラウドストレージシステム、又はNASを用いて実施されたもう１つの仮想的なテープボリュームとすることが可能であり、又はターゲットボリューム112はテープボリュームとすることが可能である。
【００１６】
図２は、記述読み出し要求に応答する例示的な方法を示している。例えば、該例示的な方法は、データ移行プロセス中にソースドライブ（図１のソースドライブ105など）により実行することが可能である。
【００１７】
該例示的な方法は、前記記述読み出し要求を受信するステップ201を含むことが可能である。例えば、該記述読み出し要求は、SCSIコマンドという形をとることが可能である。実施形態によっては、該記述読み出し要求は、更なるパラメータを含むことが可能である。例えば、該記述読み出し要求は、応答する記述データ構造の最大長を示すパラメータを含むことが可能である。別の例として、前記ソースドライブは、暗号化をサポートすることが可能であり、該記述読み出し要求は、暗号化されたデータを返すべきか復号化されたデータを返すべきかを示すパラメータを含むことが可能である。例えば、ターゲットドライブがソースドライブと同じ暗号化プロトコルをサポートする場合には、該ソースドライブから該ターゲットドライブへデータを復号化なしで移行することが可能である。更なる例として、ソースドライブは、該ソースドライブにデータを格納する前に該データを圧縮することが可能である。前記読み出し要求は、圧縮データを返すべきか非圧縮データを返すべきかを示すパラメータを含むことが可能である。ターゲットドライブがソースドライブと同じ圧縮プロトコルをサポートする場合には、圧縮データを返すことにより帯域幅要件を軽減させ又はデータ移行速度を上昇させることが可能となる。
【００１８】
前記例示的な方法はまた、ボリュームに対して読み出しを行って１つのオブジェクトを読み出すステップ202を含むことが可能である。例えば、該ボリュームは、テープボリューム又は仮想的なテープボリュームとすることが可能である。実施形態によっては、前記オブジェクトは、テープマーク又はデータレコードとすることが可能である。
【００１９】
実施形態によっては、該オブジェクトは、ドライブにより読み出されるべき次のオブジェクトとすることが可能である。例えば、ボリュームに対してシーケンシャルにアクセスし、前記オブジェクトを、該テープの現在のロケーションの後のシーケンス中の次のオブジェクトとすることが可能である。
【００２０】
実施形態によっては、前記オブジェクトがデータレコードである場合、該データレコードは、部分的なデータレコードとすることが可能である。例えば、該部分的なデータレコードは、２つのファイルマーク間に格納されているユーザデータの一部とすることが可能である。例えば、前記ステップ201で受信した前記読み出し要求が最大長を含み、１レコード全体を返すと該最大長を超えることになる場合、前記オブジェクトは該最大長を超えない部分的なデータレコードとすることが可能である。
【００２１】
更なる実施形態では、前記ステップ202は、ボリュームに対して読み出しを行って複数のオブジェクトを読み出すことを含むことが可能である。例えば、前記ステップ201で受信した前記記述読み出し要求が最大長を含んでいる場合、該複数のオブジェクトは、該最大長未満の全長を有する一組のオブジェクトとすることが可能である。
【００２２】
この例示的な方法はまた、前記オブジェクトを解析して、該オブジェクトがテープマークであるかデータレコードであるかを示す記述子を生成するステップ203を含むことが可能である。例えば、該オブジェクトがテープマークである場合、該記述子は、該オブジェクトが、ファイルマーク、パーティションマーク、テープ終わり指示子、テープ始まり指示子、ボリューム指示子、又はその他のタイプのテープマークであることを示すことが可能である。実施形態によっては、該記述子は、複数のオブジェクトタイプから複数のビットシーケンスへの所定のマッピング範囲内の１つのビットシーケンスとすることが可能である。例えば、１つの異なるビットシーケンスは、ファイルマーク、パーティションマーク、部分的なデータレコード、全データレコード、圧縮データレコード、非圧縮データレコード、暗号化データレコード、非暗号化データマーク、及び読み出すことが可能なオブジェクトの互いのタイプに関するものとすることが可能である。
【００２３】
実施形態によっては、該記述子はまた、該オブジェクトに関する他のパラメータを示すことが可能である。例えば、該記述子は、該オブジェクトがテープマークであるかデータレコードであるかを示す第１のフィールドを有することが可能であり、及び該オブジェクトの長さを示す第２のフィールドを有することが可能である。
【００２４】
前記ステップ202が、ボリュームに対して読み出しを行って複数のオブジェクトを読み出すことを含む場合には、前記ステップ203は、該複数のオブジェクトを解析してそれらに対応する複数の記述子を生成することを含むことが可能である。該複数の記述子の各々は、それに対応するオブジェクトがテープマークであるかデータレコードであるかを示すことが可能である。更に、該複数の記述子の各々は、後続する記述子のロケーションを含むことが可能である。例えば、各記述子がそれに対応するオブジェクトに先行する場合、該各記述子は、それに対応するオブジェクトの長さを示すフィールドを含むことが可能である。これは、後続する記述子のロケーションを示すことが可能なものである。
【００２５】
実施形態によっては、前記ステップ202が、ボリュームに対して読み出しを行って複数のオブジェクトを読み出すことを含む場合には、前記ステップ203は、該複数のオブジェクトを解析して、同一のオブジェクトタイプの各シーケンス毎に異なる記述子を生成することが可能である。例えば、該複数のオブジェクトが、複数のデータレコードからなる１つのシーケンスを含む場合、該複数のデータレコードからなる該１つのシーケンスを記述するために単一の記述子を生成することが可能である。別の例として、該複数のオブジェクトが、複数のファイルマークからなる１つのシーケンスを含む場合、該複数のファイルマークからなる該１つのシーケンスを記述するために単一の記述子を生成することが可能である。この実施形態では、生成された記述子は、該記述子により記述される該複数のオブジェクトの個数を示すフィールドを含むことが可能である。
【００２６】
この例示的な方法はまた、前記オブジェクト及び前記記述子を返すステップ204を含むことが可能である。例えば、前記オブジェクト及び前記記述子は、所定の記述データ構造で共に返すことが可能である。前記記述読み出し要求が、戻り（returned）データタイプを示すパラメータ（暗号化又は非暗号化、圧縮又は非圧縮など）を含む場合には、該パラメータにより示されるフォーマットでデータレコードを返すことが可能である。実施形態によっては、前記記述子は、前記データレコードのフォーマットを示すことが可能である。前記ステップ202が、前記ボリュームに対して読み出しを行って複数のオブジェクトを読み出すことを含む場合には、前記ステップ204は、該複数のオブジェクトとそれらに対応する複数の記述子とを返すことを含むことが可能である。実施形態によっては、該複数のオブジェクトは、前記記憶ボリューム上に格納されている順序と同じ順序で返すことが可能である。別の実施形態では、該複数のオブジェクトは、前記記憶ボリューム上に格納されている順序とは異なる順序で返すことが可能である。これら実施形態において、前記記述読み出し要求は、該複数のオブジェクトがそれらが格納されていた順序で返されるのか又はそれとは異なる順序で返されるのかを指定することが可能である。
【００２７】
図３は、前記ステップ204で返すことができる例示的な記述データ構造300を示している。例えば、該例示的なデータ構造300は、記述データ構造のペイロードの全部又は一部とすることが可能である。この例では、該データ構造300は、記述対象となるオブジェクト302,304がそれぞれ後続する記述子301,303からなる複数の対をなす１つのシーケンスとして編成されている。例えば、各記述子301,303はヘッダを形成することが可能であり、及び各オブジェクト302,304はボディを形成することが可能である。実施形態によっては、記述子301,303は、後続の記述子のロケーションの指示を含むことが可能である。例えば、第１の記述子301は、オブジェクト302の長さを示す長さフィールドを含むことが可能である。これは、第１のオブジェクト302の直後に続く第２の記述子のロケーションを示すことが可能である。更なる実施形態では、１つの記述子301,303が複数のオブジェクト303,304を記述することが可能である。例えば、１つの記述子301,303は、同じタイプを有する複数のオブジェクトからなる１つのシーケンスを記述することが可能である。これらの実施形態では、１つの記述子301,303は、該１つの記述子301,303により記述される対応する複数のオブジェクト302,304の個数を示すシーケンス長フィールドを含むことが可能である。
【００２８】
実施形態によっては、一組のオブジェクト302,304は、所定の最大長以下の全長を有する。実施形態によっては、該最大長は、ステップ201で受信した前記読み出し要求により設定することが可能である。別の実施形態では、該最大長は先験的に設定することが可能である。例えば、該最大長は、テープドライブの製造業者又はアプリケーションにより、固定サイズアクセスモードで使用するための固定転送サイズとして設定することが可能である。様々な実施形態において、部分的なデータレコードをオブジェクト302,304とすることが可能である。例えば、最後のオブジェクト304として１つのデータレコード全体を含むと最大長を超えてしまう場合、該最後のオブジェクト304を部分的なデータレコードとすることが可能である。別の例として、最大長は、１データレコード全体のサイズよりも小さくすることが可能であり、前記データ構造300は、オブジェクト302として単一の部分的なデータレコードのみを含むことが可能である。別の実施形態では、部分的なデータレコードをオブジェクト303,304としないことが可能である。かかる実施形態では、前記データ構造300は、前記最大長を超えることなく可能な限り多数のオブジェクト302,304を含むことが可能である。最後のオブジェクト304に続くオブジェクトは、後続のステップ204の後に返された後続のデータ構造300内に含めることが可能である。
【００２９】
図４は、前記ステップ204で返すことが可能なもう１つの例示的な記述データ構造400を示している。この例では、記述子401,402は、該データ構造400の第１の部分に含まれ、オブジェクト403,404は、該データ構造400の第２の部分に含まれる。例えば、該記述子401,402は、該データ構造400のヘッダ内に含めることが可能であり、オブジェクト403,404は、該データ構造400のボディ内に含めることが可能である。オブジェクト403,404及び記述子401,402は、それ以外の点では、データ構造300のオブジェクト302,304及び記述子301,303と同様のものとすることが可能である。
【００３０】
図５は、記述書き込み手段502を含む例示的なドライブ500を示している。例えば、該例示的なドライブ500は、テープ移行操作におけるターゲットドライブ（例えば、図１のドライブ109）とすることが可能である。様々な実施形態において、該例示的なドライブ500は、テープドライブ又は仮想的なテープドライブとすることが可能である。
【００３１】
該例示的なドライブ500は、記述データ構造を受信するための入力501を含むことが可能である。例えば、該入力501は、FCインタフェイス、FCoEインタフェイス、SATAインタフェイス、又はその他のストレージドライブインタフェイスといったインタフェイスとすることが可能である。前記記述データ構造は、オブジェクトと、該オブジェクトがテープマスクであるかデータレコードであるかを示す記述子とを含むことが可能である。実施形態によっては、該記述データ構造は、複数の対をなすオブジェクト及びそれに対応する記述子を含むことが可能である。例えば、前記記述データ構造は、図３又は図４に関して図示し説明したタイプのものとすることが可能である。
【００３２】
該例示的なドライブ500はまた、記述書き込み手段502を含むことが可能であり、該記述書き込み手段502は、解析手段503及び書き込み手段504を含むことが可能である。例えば、該記述書き込み手段502は、ドライブ109の記述書き込み手段110と同様のものとすることが可能である。実施形態によっては、該記述書き込み手段502は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実施することが可能である。例えば、該記述書き込み手段502は、ASIC、FPGA、又は持続性コンピュータ読み取り可能媒体に格納され及びコントローラにより実行されるソフトウェアを使用して実施することが可能である。
【００３３】
前記解析手段503は、前記記述データ構造の前記記述子を解析して、前記オブジェクトがテープマークであるかデータレコードであるかを判定することが可能である。実施形態によっては、該オブジェクトがテープマークである場合、該解析手段503は、該記述子を解析してそれが如何なるタイプのテープマークであるかを判定することが可能である。更に、該オブジェクトがデータレコードである場合、該解析手段503は、該記述子を解析して該データレコードのフォーマットを判定することが可能である。例えば、該解析手段503は、該データレコードが圧縮、非圧縮、暗号化、又は非暗号化されたものであることを判定することが可能である。該解析手段503は、該データレコードが圧縮されまたは暗号化されたものであると判定した場合、該解析手段503は、そうでない場合に生じるはずの圧縮又は暗号化をやめるよう書き込み手段502に命じることが可能である。
【００３４】
上述のように、実施形態によっては、前記記述データ構造は、複数対の記述子及びそれに対応するオブジェクトを含む。かかる実施形態では、解析手段503は、前記複数対のそれぞれの記述子を解析することが可能である。該解析手段503は、該複数対のそれぞれの記述子に対応するオブジェクトがテープマークであるかデータレコードであるかを判定することが可能である。更に、実施形態によっては、該記述子は、後続の記述子のロケーションを含むことが可能である。例えば、該記述子は、対応するオブジェクトの長さを示すフィールドを含むことが可能である。前記記述データ構造が、記述子とそれに対応するオブジェクトの交互配置を有する場合、この長さは、後続の記述子のロケーションを示すことが可能である。かかる実施形態では、解析手段503は、該記述子を解析して後続の記述子のロケーションを判定することが可能である。次いで、該解析手段503は、該後続の記述子を解析して後続のオブジェクトがテープマークであるかデータレコードであるかを判定することが可能である。
【００３５】
書き込み手段504は、記憶ボリューム505にテープマーク又はデータレコードを書き込むことが可能である。例えば、該記憶ボリューム505は、テープ上のボリュームとすることが可能であり、該書き込み手段504は、書き込みヘッドを含むことが可能である。別の例として、該記憶ボリューム505は、仮想的なテープドライブとすることが可能である。該書き込み手段504は、テープマーク又はデータレコードを、該テープマーク又はデータレコードが元々格納されていたフォーマットとは異なるフォーマットで記憶ボリューム505に書き込むことが可能である。例えば、データレコードが第１のLTO世代フォーマットで格納されており、該書き込み手段504が該データレコードを第２の異なるLTO世代フォーマットを使用して書き込むことが可能である。別の例として、データレコードは、非暗号化状態で格納されている場合があり、該書き込み手段504は、該データレコードを暗号化状態で格納することが可能である。更なる例として、データレコードは、ハードディスクアレイ上のデータブロックとして仮想的なテープドライブ内に格納されている場合があり、前記書き込み手段504は、該データレコードをテープボリューム505上に格納することが可能である。。
【００３６】
上述のように、実施形態によっては、前記記述データ構造は、複数対の記述子及びそれに対応するオブジェクトを含む。かかる実施形態では、書き込み手段504は、該複数対のそれぞれのテープマーク又はデータレコードを書き込むことが可能である。
【００３７】
図６は、移行命令604が格納された持続性コンピュータ読み取り可能媒体603を含むコンピュータ600を示している。様々な実施形態において、該持続性コンピュータ読み取り可能媒体603は、ランダムアクセスメモリ（RAM）、フラッシュメモリ、ストレージ、その他の不揮発性媒体、又はそれらの組み合わせ等の媒体を含むことが可能である。該コンピュータ600は、ソース又はターゲットドライブに接続するためのインタフェイス601を含むことが可能である。該コンピュータ600はまた、該インタフェイス601及び該持続性コンピュータ読み取り可能媒体603に接続されて前記移行命令604を実行するプロセッサ602を含むことが可能である。
【００３８】
該コンピュータ600は、該移行命令604を実行して、ソースドライブ上のソースボリュームの内容をターゲットドライブ上のターゲットボリュームへ移行することが可能である。例えば、該コンピュータ600は、図１のコンピュータ100と同様の態様で動作することが可能である。
【００３９】
前記移行命令604は、記述読み出し要求命令セット605を含むことが可能である。実行時に、該記述読み出し要求命令セット605は、プロセッサ602に記述読み出し要求をドライブへ送信させることが可能である。例えば、プロセッサ602は、前記インタフェイス601を使用して記述読み出し要求をソースドライブ（例えば、図１のソースドライブ105）に送信することが可能である。実施形態によっては、該記述読み出し要求は、所望の記述データ構造のパラメータを指定するフィールドを含むことが可能である。例えば、該記述読み出し要求は、最大戻り長、圧縮若しくは非圧縮データの要求、又は暗号化若しくは非暗号化データの要求を含むことが可能である。
【００４０】
前記移行命令604はまた、記述データ構造操作命令607を含むことが可能である。実行時に、該記述データ構造操作命令607は、プロセッサ602にドライブから記述データ構造608を受信させることが可能である。該プロセッサ602は、前記インタフェイス601を使用して該記述データ構造608を受信することが可能であり、及び該記述データ構造608を媒体603に格納することが可能である。例えば、該コンピュータ600は該記述データ構造608をRAM内に一時的に格納することが可能であり、一方、前記移行命令604は持続性記憶装置に格納される。該記述データ構造608は、オブジェクト610及び記述子609を含むことが可能である。該記述子609は、該オブジェクト610がテープマークであるかデータレコードであるかを示すことが可能である。例えば、該記述データ構造608は、記述読み出し方法（例えば、図２に関して説明した方法）を実行した後、ソースドライブ（例えば、ソースドライブ105）により生成することが可能である。実施形態によっては、該記述データ構造608は、図３及び図４に関して説明したフォーマットを有することが可能である。
【００４１】
実施形態によっては、移行命令604は、記述書き込み要求命令セット606を更に含むことが可能である。実行時に、該記述書き込み要求命令セット606は、プロセッサ602に第２のドライブへ記述書き込み要求を送信させることが可能である。例えば、該プロセッサ602は、前記インタフェイス601を使用して該記述書き込み要求をターゲットドライブへ送信することが可能である。例えば、該第２のドライブは、図１のドライブ109又は図５のドライブ500と同様のものとすることが可能である。かかる実施形態では、前記記述データ構造操作命令607は、該プロセッサ602に該第２のドライブへ前記記述データ構造608を送信させることが可能である。
【００４２】
実施形態によっては、実行時に、前記移行命令604は、プロセッサ602に第１のドライブのボリュームの内容を第２のドライブのボリュームへ移行させる。例えば、該移行命令604は、該プロセッサ602に前記記述読み出し要求命令セット605を繰り返し実行させて複数の記述読み出し要求を該第１のドライブへ送信することが可能である。該移行命令604はまた、該プロセッサ602に前記データ構造操作命令607を繰り返し実行させて複数の前記記述データ構造608を受信し及び該複数の記述データ構造608を前記第２のドライブへ送信することが可能である。実施形態によっては、該複数の記述データ構造608は、それらが受信された順序と同じ順序で送信することが可能である。更に、テープマーク及びデータレコードの順序は、該記述データ構造608内で維持することが可能である。したがって、コンピュータ600は、読み出されたデータを使用してソーステープデータ構造又はファイルシステムを再作成することなく、記述データ構造608を中間データ構造として使用することにより、ソースドライブの内容をターゲットドライブへ移行することが可能である。
【００４３】
上記説明では、本書で開示する要旨の理解を提供すべく多数の細部について説明した。しかし、本発明の実施形態は、それらの細部の一部又は全部を用いることなく実施することが可能である。他の実施形態は、上記で説明した細部に対する修正又は変更を含むことが可能である。特許請求の範囲は、かかる修正及び変更等を網羅することを意図したものである。
【図１】
0006277276.tif 000002
【図２】
0006277276.tif 000003
【図３】
0006277276.tif 000004
【図４】
0006277276.tif 000005
【図５】
0006277276.tif 000006
【図６】
0006277276.tif 000007