(57)【要約】【課題】  データを保存し、したがってトランザクションの喪失および顧客の離反を防ぐ。【解決手段】  本発明にかかる記憶システムは、記憶装置、バッファおよびジャーナリング装置を結合するコントローラと、コントローラ上で実行可能なプロセスとを備える。実行可能プロセスは、記憶装置上の選択ファイルの論理単位、トラックおよびセクタ識別が可能な解決ユーティリティと、ユーザが、所定の時点または書き込みシーケンスまでリストアする記憶装置上のトラックおよびセクタを選択できるようにするユーザインタフェースと、リストアユーティリティとを備える。リストアユーティリティは、選択されたトラックおよびセクタに対応するデータに、最新の書き込み動作の場合には直接、これ以外のときにはバッファを介してジャーナリング装置からアクセスして、データをリストアする。【選択図】図１
2006059347.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの記憶装置（１０２Ａ、１０２Ｂ）と、バッファと、少なくとも１つのジャーナリング装置（１０４）とに結合可能なコントローラ（１０６）と、
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記少なくとも１つの記憶装置（１０２Ａ、１０２Ｂ）上の選択ファイルの位置識別を求める解決ユーティリティと、
所定の時点または書き込みシーケンスまでリストアする前記少なくとも１つの記憶装置（１０２Ａ、１０２Ｂ）上のデータ記録を選択するユーザインタフェース（１１２）と、
前記選択された記録に対応するデータに、最新書き込み動作の場合には、前記バッファから直接、前記ジャーナリング装置（１０４）からアクセスし、または、これ以外の書き込みの場合には、前記バッファを介して前記ジャーナリング装置（１０４）からアクセスし、前記データを前記識別された位置までリストアするリストアユーティリティと
を備えたプロセスと
を備える記憶システム（１００）。
【請求項２】
前記ユーザインタフェース（１１２）は、メタコマンドインタフェース、コマンドラインインタフェース（ＣＬＩ）およびグラフィカルユーザインタフェース（ＧＵＩ）の中から選択され、リストアするトラックおよびセクタのいずれか、または、これらの集合を選択し、前記時点を選択する
請求項１記載の記憶システム。
【請求項３】
前記コントローラ（１０６）に結合された複数の記憶装置（１０２Ａ、１０２Ｂ）と、
前記コントローラ（１０６）と、前記複数の記憶装置（１０２Ａ、１０２Ｂ）とに結合されたディレクトリおよびバッファ記憶装置（２１０）と、
前記コントローラ（１０６）と、前記複数の記憶装置（１０２Ａ、１０２Ｂ）と、前記ディレクトリおよびバッファ記憶装置（２１０）とに結合された少なくとも１つのジャーナリングテープドライブと
をさらに備える請求項１記載の記憶システム。
【請求項４】
前記コントローラ（１０６）に結合された第１および第２のデータディスクと、
前記コントローラ（１０６）と、前記第１および第２のデータディスクとに結合されたメタファイルディレクトリおよびバッファディスクと、
前記コントローラ（１０６）と、前記第１および第２のデータディスクと、前記メタファイルディレクトリおよびバッファディスクとに結合された第１および第２のジャーナリングテープドライブと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記第１または第２のデータディスクへの書き込み動作に応答して、書き込まれない前記ディスクから旧データを読み出し、
前記旧データを、前記書き込み動作のデータと併せて前記メタファイルディレクトリおよびバッファディスクに保存し、
前記旧データを、前記第１または第２のジャーナリングテープドライブのテープドライブにコピーする
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
テープが、前記第１または第２のジャーナリングテープドライブで満杯になったときに、代替のテープドライブに切り替える
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
書き込まれたテープそれぞれを、
テープ番号、記録番号、日付、時刻、書き込まれたディスクトラックおよびセクタによって識別する
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
論理単位、トラック、セクタおよび長さに基づき、書き込み動作を表す記憶装置書き込み単位の精度で、ジャーナリング動作を記録するプロセスと
をさらに備える請求項１記載の記憶システム。
【請求項５】
コントローラ（１０６）と、
前記コントローラ（１０６）に結合された複数のデータ記憶装置（１０２Ａ、１０２Ｂ）と、
前記コントローラ（１０６）に結合されたディレクトリおよびバッファ記憶装置（２１０）と、
前記コントローラ（１０６）に結合された少なくとも１つのジャーナリング記憶装置（２１４Ａ、２１４Ｂ）と、
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）のうちの１つへの書き込み動作に応答して、書き込まれないデータ記憶装置から旧データを読み出し、
前記旧データを、前記書き込み動作のデータおよびタイムスタンプと併せて前記ディレクトリおよびバッファ記憶装置（２１０）に保存し、
少なくとも１つのジャーナリング記憶装置（２１４Ａ、２１４Ｂ）のいずれかのジャーナリング記憶装置にコピーする
プロセスと
を備える記憶システム（２００）。
【請求項６】
前記コントローラ（１０６）上で実行可能なプロセスであって、
媒体要素が前記少なくとも１つのジャーナリング記憶装置（２１４Ａ、２１４Ｂ）のいずれかで満杯になると、代替のジャーナリング記憶装置に切り替える
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
書き込まれた個々の媒体要素を媒体要素番号、記録番号、日付、時刻、および、書き込まれた記憶装置のトラックおよびセクタによって識別するプロセスと
をさらに備える請求項５記載の記憶システム。
【請求項７】
前記コントローラ（１０６）は、ディスクコントローラであり、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）は、論理装置であり、
前記ディレクトリおよびバッファ記憶装置（２１０）は、メタファイルディレクトリおよびバッファ論理装置であり、
少なくとも１つのジャーナリング記憶装置（２１４Ａ、２１４Ｂ）は、ローカルまたはリモートテープライブラリ（２１２）内の一対のジャーナリングテープドライブである
請求項５記載の記憶システム。
【請求項８】
前記コントローラ（１０６）は、独立ディスク冗長アレイ（ＲＡＩＤ−１）構成のディスクを制御するディスクコントローラであり、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）は、
２つのデータディスクまたは論理装置ディスク部分
を備え、
前記ディレクトリおよびバッファ記憶装置（２１０）は、メタファイルディレクトリ、および、バッファディスクまたは論理装置ディスク部分であり、
前記少なくとも１つのジャーナリング記憶装置は、ローカルまたはリモートテープライブラリ（２１２）内の１対のジャーナリングテープドライブである
請求項５記載の記憶システム。
【請求項９】
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）のうちの１つのデータ記憶装置への書き込み動作を検出し、
前記検出に応答して、前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）のうちの代替のデータ記憶装置から旧データを読み出し、
前記旧データを、前記ディレクトリおよびバッファ記憶装置（２１０）にログ記録する
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
ログからリストアする状況に応答して、前記少なくとも１つのジャーナリング記憶装置からの適切な媒体の装填を要求し、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）に向けられた新規書き込み動作を留保し、
指定されたデータを、前記少なくとも１つのジャーナリング記憶装置から前記データ記憶装置（１０２Ａ、１０２Ｂ）のログ記録前の位置にコピーし、書き込み動作を再イネーブルする
プロセスと、
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記ログからのリストア動作の完了後に、リストア媒体を前記少なくとも１つのジャーナリング記憶装置内に再収納し、
適切なジャーナリング媒体が装填された状態でのジャーナリングを再イネーブルすることを要求する
プロセスと
をさらに備えた請求項５記載の記憶システム。
【請求項１０】
前記コントローラ（１０６）へのホスト接続と、
前記ホスト接続を介して前記コントローラ（１０６）に結合されたホスト（１１０）と、
前記ホスト（１１０）で実行可能なユーザインタフェース（１１２）プロセスであって、
記憶装置全体および記憶装置内に収納された選択されたトラックおよびセクタアドレス範囲に対して、ジャーナリングを選択的に行えるようにする
プロセスと
をさらに備える請求項５記載の記憶システム。
【請求項１１】
前記コントローラ（１０６）上で実行可能なプロセスであって、
前記複数のデータ記憶装置（１０２Ａ、１０２Ｂ）の内のデータ記憶装置への新規データの書き込み動作中、前記新規データ書き込み位置からの旧データを、生成されたシーケンス番号および現在日時の識別子と併せてコピーし、
前記ディレクトリおよびバッファ記憶装置（２１０）上の永続ディレクトリに、ジャーナリング記録を入力する
プロセス
をさらに備える請求項５記載の記憶システム。
【請求項１２】
前記コントローラ（１０６）上で実行可能なプロセスであって、
ジャーナルデータを、第１のジャーナリング記憶装置の末尾から、現在アクティブな第２のジャーナリング記憶装置に、データストリーミングに適切なデータレートで書き込み、
前記現在アクティブな第２のジャーナリング記憶装置の媒体が満杯になった場合、代替のジャーナリング記憶装置に書き込みを切り替え、
前記少なくとも１つのジャーナリング記憶装置に、前記満杯になった媒体を格納して交換するように通知する
プロセス
をさらに備える請求項５記載の記憶システム。
【請求項１３】
前記コントローラ（１０６）上で実行可能なプロセスであって、
永続ディレクトリを、前記ディレクトリおよびバッファ記憶装置（２１０）に保持し、
データリストア要求があると、指定された媒体識別子および記録番号を見つけて読み出せるようにするプロセス
をさらに備える請求項５記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジャーナリングを使用した記憶システムに関する。
【背景技術】
【０００２】
現代のデータベースは、リドゥログ(redo-logs)等のジャーナリングを使用して、論理データセットを特定の時点まで再構築できるようにする。
ファイルシステムおよび非オラクルアプリケーションのユーザは、同様には保護されない。
たとえば、ＩＢＭからのジャーナルファイルシステム（ＪＦＳ）技術だけが、永続的なリドゥログではなく一時的な「インテント」ログを有する。
Ｗ３２．Ｎｉｍｄａ．Ａ等のウィルスやワームは、論理オブジェクトに関わりなく、オペレーティングシステム内のランダムな重要セクタおよびディスクストレージ上のデータセット、たとえば、ファイルおよびトランザクションを破壊する危険性があり、これはオペレーティングシステムおよびデータセットのデータ一貫性を即座に無効化させる。
攻撃により、システムは再起動することができず、ファイルを破壊せずにはファイルにアクセスすることができず、データベースをマウントまたはアクセスすることができなくなる。
【０００３】
通常、リドゥログを有するデータベースであっても、ログに記録されたトランザクションスレッドをバックアップすることでダメージを修復することはできない。
これは、権限のないセクタ削除はファイル／記録トランザクションとして行われないためである。
さらに、削除によっては、ファイルが表すエリア内のものもあれば、論理単位識別（ＬＵＮ  ＩＤ）エリア等、ＬＵＮの他のエリア内のものもある。
したがって、顧客は通常、ＬＵＮをフォーマットし、論理オブジェクトバックアップからリロードするか、影響を受けたディスクＬＵＮの完全で破損のない最新のそのままのコピーまで後退する以外に選択肢はない。
顧客は、オンラインまたはオフラインのバックアップによって置き換えることができない１時間のアクティビティ毎に１ＬＵＮあたり最大で９００，０００の最新の、したがって価値のあるトランザクションを失う可能性がある。
したがって、ディスクＬＵＮのミラーを１時間毎に複製する最も熱心なタイプのファイルシステム顧客であっても、略数百万という顧客トランザクションを失う可能性がある。
【０００４】
同期オンラインミラーリングは、破損部分がディスクミラーに忠実にコピーされるため助けにならない。
ジャーナルデータベースは、制御ファイルが手動で変更された（誤りが発生し易く、危険性のある動作である）場合に、より新しいトランザクションをデータベースの旧い、破損されていないコピーにリドゥすることしかできない。
ジャーナルデータベースのないユーザは、完全に保護されない状態であり、最新のバックアップ後に行われたすべてのトランザクションを失う可能性がある。
最も要求が厳しく裕福な金融サービスの顧客であっても、この問題に対する現在の解決策はいずれの価格であっても存在しない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データを保存することができ、したがってトランザクションの喪失および顧客の離反に起因する、関連する金額を節減することができる２段階ジャーナリング機能が必要である。
【課題を解決するための手段】
【０００６】
各種実施形態では、ジャーナリングを備えた記憶システムは、少なくとも１つの記憶装置、バッファ、および少なくとも１つのジャーナリング装置を結合することが可能なコントローラと、コントローラ上で実行可能なプロセスと、を備える。
実行可能プロセスは、少なくとも１つの記憶装置上の選択ファイルの論理単位、トラック、およびセクタ識別を求めることが可能な解決ユーティリティと、ユーザが、所定の時点または書き込みシーケンスまでリストアする、少なくとも１つの記憶装置上のトラックおよびセクタを選択できるようにするユーザインタフェースと、リストアユーティリティと、を備える。
リストアユーティリティは、選択されたトラックおよびセクタに対応するデータに、最新の書き込み動作の場合にはバッファから直接、または最新以前の書き込みの場合にはバッファを介してジャーナリング装置からアクセスして、少なくとも１つの記憶装置のトラック位置およびセクタ位置までデータをリストアする。
【０００７】
他の実施形態によれば、記憶システムは、コントローラと、コントローラに結合された複数のデータ記憶装置と、コントローラに結合されたディレクトリおよびバッファ記憶装置と、コントローラに結合された少なくとも１つのジャーナリング記憶装置と、を備える。
本記憶システムはさらに、コントローラ上で実行可能なプロセスであって、複数のデータ記憶装置のうちの１つへの書き込み動作に応答して、書き込まれないデータ記憶装置から旧データを読み出し、旧データを、書き込み動作のデータおよびタイムスタンプと併せてディレクトリおよびバッファ記憶装置に保存し、ジャーナリング記憶装置のうちの１つのジャーナリング記憶装置にコピーするプロセスを備える。
【０００８】
さらなる実施形態によれば、記憶装置のトラックおよびセクタにあるデータを或る時点までリカバリさせる方法は、１つまたは複数の記憶装置上の選択されたファイルの論理単位、トラック、およびセクタ情報を識別すること、ユーザからリストア指示を受け取ること、およびリストア指示に基づいて、所定の時点までリストアする、少なくとも１つの記憶装置上のトラックおよびセクタを選択すること、とを含む。
この方法は、選択されたトラックおよびセクタに対応するデータに、最新の書き込みの場合にはバッファから、またはその他の場合にはジャーナリング装置からアクセスすること、記憶装置のトラック位置およびセクタ位置までのデータを所定の時点までリストアすること、とをさらに含む。
【０００９】
さらに他の実施形態では、データをジャーナリングする方法は、複数のデータ記憶装置のうちの１つに向けられた書き込み動作を検出すること、書き込み動作の検出に応答して、書き込まれないデータ記憶装置から旧データを読み出すこと、旧データを、書き込み動作データおよびタイムスタンプと併せてディレクトリおよびバッファ記憶装置に保存すること、旧データをジャーナリング記憶装置にコピーすること、とを含む。
【００１０】
構造および動作方法の両方に関連する本発明の各種実施形態は、以下の説明および添付図面を参照することによって最良に理解することができる。
【発明を実施するための最良の形態】
【００１１】
図１を参照して、概略ブロック図に、２段階ジャーナリング機能を備えた記憶システム１００を示す。
記憶システム１００は、独立ディスク冗長アレイ（ＲＡＩＤ−１）構成内の単一の装置を表す複数の記憶装置１０２Ａおよび１０２Ｂ、１つまたは複数のジャーナリング装置１０４、およびコントローラ１０６を備える。
コントローラ１０６は、様々なプロセス、プロシージャ、およびメソッドを実行することが可能である。
記憶システム１００は、コントローラ１０６および記憶構成要素と通信することができるホスト１１０も備える。
ホスト１１０は、コンピュータ要素、プロセッサ要素、またはコントローラ要素を利用して、様々なユーティリティおよびインタフェース１１２を実行し、記憶システム１００の管理を容易にする。
代表的な実施形態では、ホスト１１０および／またはコントローラ１０６において動作するように様々に構成される実行可能プロセスとしては、１つまたは複数の記憶装置１０２Ａおよび１０２Ｂ上の選択ファイルの論理単位、トラック、およびセクタ識別を求める解決ユーティリティが挙げられる。
記憶装置１０２Ａ、１０２Ｂは一般に、情報を一時的に記憶するバッファリング機能を備える。
ユーザインタフェースにより、ユーザは、所定の時点または書き込みシーケンスまでリストアする、１つまたは複数の記憶装置１０２Ａおよび１０２Ｂ上のトラックおよびセクタを選択することができる。
選択されたトラックおよびセクタに対応するデータに、最新書き込みの場合には記憶装置１０２Ａ、１０２Ｂに関連するバッファから、または最新以前の書き込みの場合にはバッファを介してジャーナリング装置１０４からアクセスし、記憶装置１０２Ａおよび１０２Ｂのトラック位置およびセクタ位置までのデータを所定の時点までリストアするリストアユーティリティが備えられる。
【００１２】
ユーザインタフェースは、メタコマンドインタフェース、コマンドラインインタフェース（ＣＬＩ）、およびグラフィカルユーザインタフェース（ＧＵＩ）を含む、様々な形態の中から選択することができる。
ユーザインタフェースは、リストアする個々の、また集合的なトラックおよびセクタを選択するとともに、時点を選択できるようにする。
【００１３】
ユーザインタフェースは一般に、ホストコンピュータ１１０、または記憶システム１００と通信可能な他のコンピュータもしくはプロセッサ上で実行される。
ユーザインタフェースが、個々のファイルではなく記憶装置または論理単位（ＬＵ）に関連する情報を利用し、この情報に基づいて動作する場合、記憶アレイを制御するパーソナルコンピュータ等のコンピュータを使用することができる。
別法として、ファイルレベルを利用し、ファイルレベルでより適切に動作するユーザインタフェースは、ファイルを検出して識別することができるホストコンピュータ１１０上で実行される。
【００１４】
適したユーザインタフェースは、いくつかの形態のうちの１つまたは複数をとることができる。
ユーザインタフェースは、たとえば、スーパーユーザ特権を有する高度な管理者ユーザが、ファイル名によって明示的または暗黙的に識別されるトラック、セクタ、および長さのトリプレット要求を介してリストア動作を都合よく要求できるようにする形態で有用性を向上させる。
スーパーユーザ特権は、特別なディレクトリ管理者にディレクトリ情報への全アクセスを認める。
各種実施形態では、ユーザインタフェースは、指定された範囲内の単一のトリプレット（複数可）へのアクセスを可能にする。
具体的な例では、解決ユーティリティを使用して、ファイル「ｆｏｏ」の現在のトラック／セクタ／長さのトリプレット情報を供給することができる。
ユーザは指定されたトリプレットを使用して、ファイルエリア全体のリストアを要求することができる。
一例では、ユーザは、時刻、たとえば今日の午前１０時５１分に基づいてファイルエリアを要求することができる。
別の例では、ユーザは、特定の書き込みシーケンス番号を要求することができる。
詳細には、ウィルス攻撃の時間がわからない場合、ユーザは、ウィルスによって生成されたｔｒｋ０／ｓｅｃｔｏｒ０への最新の書き込み動作のキャンセルを要求することができる。
さらなる例では、ユーザは、誤った書き込み動作によって影響を受けたことがわかっているファイルの特定の部分を操作することができる。
暗黙的な場合、ユーザは、ファイルがジャーナルエリア内に完全に含まれる限り、選択された時間以後のファイル全体のリストアを要求することができる。
記憶システムの操作により、広範囲の他の使用も可能である。
【００１５】
ディレクトリ構造がどの程度高度化されているかにより、特定のリストア動作の作業および時間が決まる。
一般に、リストア動作が必要になることは希であり、リストア動作に関連するいずれの遅延も許容できるような価値のかなり高いデータが喪失した状況に限られる。
【００１６】
図２を参照して、テープジャーナリング機能を有する記憶システム２００の代替の実施形態を概略ブロック図に示す。
記憶システム２００は、コントローラ１０６、記憶装置１０２Ａおよび１０２Ｂ、ディレクトリおよびバッファ記憶装置２１０、ならびに１つまたは複数の（通常は複数であるが）ジャーナリング記憶装置２１４Ａおよび２１４Ｂを備える。
例示的な実施形態では、コントローラ１０６は、独立ディスク冗長アレイ（ＲＡＩＤ−１）構成内のディスクを制御するディスクコントローラである。
記憶装置１０２Ａおよび１０２Ｂは、２つのデータディスク、またはＲＡＩＤ−１構成内の単一の論理ボリュームを表すディスクの論理装置ディスク部分である。
ディレクトリおよびバッファ記憶装置２１０はメタファイルディレクトリ、およびバッファディスクまたは論理装置ディスク部分である。
例示的な１つまたは複数のジャーナリング記憶装置２１４Ａおよび２１４Ｂは、ローカルまたはリモートのテープライブラリ２１２内の一対のジャーナリングテープドライブである。
【００１７】
書き込み動作の場合、メタディレクトリおよびバッファ記憶装置２１０は、新規データ、新規データに関連するタイムスタンプ、およびジャーナリング記憶装置２１４Ａ、２１４Ｂ上の旧データへのポインタを一時的に記憶する。
したがって、記憶システムは、たとえば、プライマリディスクが故障した場合に、たとえば誤った書き込みに応答して、最新の書き込みを、より旧い書き込みに加えてリストアすることができる。
リストアは、最新のまたは現在の書き込みの場合には、メタディレクトリおよびバッファ記憶装置２１０から直接、あるいはより旧い書き込みの場合には、メタディレクトリおよびバッファ記憶装置２１０の発見機能によって指示されるように、ジャーナリング記憶装置２１４Ａ、２１４Ｂから行うことができる。
したがって、ジャーナリングプロセスまたは方法は、最新データを処理する段階およびより旧データを処理する段階という２つの段階を含む。
細心のデータ管理を行うことにより、メタディレクトリおよびバッファ記憶装置２１０の定期的なバックアップを提供して、ダウンタイムをなくす、または短縮する。
【００１８】
記憶システム１００および２００は、ジャーナリング動作を行って、記憶アレイＬＵＮトラックおよびセクタを特定の状態、状況、または時点までリカバリすることを容易にする。
説明のための例では、記憶システム２００は、標準のＲＡＩＤ−１に、ジャーナリング機能を追加する構成要素を加える。
標準のＲＡＩＤ−１システムは、ディスクコントローラおよび２枚のデータディスクを備える。
例示的な改良された記憶システム１００および２００は、ジャーナリング装置１０４、およびジャーナリング装置１０４を利用し操作する実行可能プロセス、プロシージャ、メソッド、ユーティリティ、およびユーザインタフェースを追加している。
ジャーナリング装置１０４は、記憶装置、ディスク、論理装置（ＬＤＥＶ）、またはディスク部分等の記憶装置部分として例示的に実施されるメタディレクトリおよびバッファ２１０を備える。
【００１９】
通常、コントローラ１０６上で実行可能なプロセスおよびメソッドは、第１のデータディスク１０２Ａおよび第２のデータディスク１０２Ｂのうちの１つへの書き込み動作に応答して、書き込まれないディスクから旧データを読み出し、この旧データを、書き込み動作データと併せてメタファイルディレクトリおよびバッファディスク２１０に保存するように動作する。
このプロセスは、新規データをタイムスタンプと共にメタディレクトリに保持しながら、旧データを第１のジャーナリングテープドライブ２１４Ａおよび第２のジャーナリングテープドライブ２１４Ｂのうちの一方のテープドライブにコピーする。
プロセスは、書き込まれる特定のＲＡＩＤ−１スピンドルへの論理単位番号（ＬＵＮ）、トラック、セクタ、および長さのみを指示し、旧データを他のスピンドルから読み出してディレクトリおよびバッファ装置２１０に、そして最終的にテープドライブ２１４Ａおよび２１４Ｂに転送されるディスクドライバ書き込み単位の精度で、記憶装置１０２Ａおよび１０２Ｂにアクセスすることができる。
【００２０】
旧データは、テープライブラリ２１２にコピーされ、たとえば、電子コピーされる。
具体的な例では、旧データは、ファイバチャネル光リンクを介して、ディスクアレイ記憶システム１００に直接リンクされた高速テープライブラリ２１２に第三者のＳＣＳＩ（小型コンピュータシステムインタフェース）コピーによってコピーすることができる。
他の例では、任意の適切な種類の構成、インタフェース、および通信リンクを使用することができる。
電子コピーは、ディスクアレイコントローラ１０６によって制御することができる。
【００２１】
記憶システム２００上で実行可能な別のプロセスによれば、現在の第１のテープが満杯になると、テープドライブ２１４Ａおよび２１４Ｂへの書き込みをテープライブラリ２１２内の第２の代替のドライブおよび媒体テープに切り替えることができる。
前の、すなわち第１のテープを交換し、テープライブラリ２１２内のロボット制御（robotic）ドライブによって置き換えることができる。
ディレクトリおよびバッファ装置２１０内のメタディレクトリは、たとえば、あらゆるテープ書き込みを、書き込まれたテープ番号、テープ記録番号、日付、時刻、ならびにトラックおよびセクタによってテープ書き込みを追跡する。
具体的な例では、１６テープドライブロボット制御ライブラリ２１２によって８つのディスクアレイＬＵＮを保護することができる。
【００２２】
ディスクコントローラ１０６は、現在のディスクアレイ内部コントローラの基本的な機能および特徴を実行し、基本動作に、ジャーナリング機能を可能にする追加の新規動作を加える。
実施形態によっては、いずれかへの、通常は最も忙しくないＲＡＩＤ−１ディスクへの新規データの書き込み中、コントローラ１０６は、旧データを、生成されたシーケンス番号および生成日時の識別と併せて、バッファディスク２１０にコピーする。
コントローラ１０６は、ジャーナル動作の記録を生成してバッファディスク２１０の永続ディレクトリに記憶し、この記録は、通常のゼロダウンタイムディスクバックアップの実行に従って定期的にバックアップされる。
【００２３】
別の動作では、ディスクコントローラ１０６は、ジャーナルデータをジャーナルスプールの「末尾」から現在アクティブなテープドライブ２１４Ａまたは２１４Ｂに、テープドライブのストリーミングに適したデータサイズおよびレートで書き込む。
テープ媒体要素が満杯になると、コントローラ１０６は、書き込みを代替のテープドライブに切り替え、満杯になったテープ媒体を格納し、空テープまたはスクラッチテープ等の別のテープで置き換えるようにテープライブラリ２１２に通知する。
【００２４】
さらなる動作では、ディスクコントローラ１０６は、最新の書き込み以前のデータのリストアが要求される場合に、正確なテープ番号およびテープ内の記録番号の位置を識別して読み出せるようにして、データリストアを容易にする永続ディレクトリをバッファディスク２１０に保持することができる。
最新の書き込みをリストアする場合、対応する書き込みデータはバッファディスク２１０から直接供給される。
【００２５】
例示的な実施形態では、ディレクトリおよびバッファ装置２１０は、ジャーナリングに使用されるものとして指定され、適切なヘッダおよびトレイラ情報、またはジャーナルデータのジャーナリングまたは識別を助ける他の有用な情報と併せて、ディレクトリおよびバッファリングデータ書き込みアクティビティを含む、空いているディスク、ディスク部分、論理装置（ＬＤＥＶ）等である。
一般に、段階付きバッファリングとしての使用を容易にするために、またジャーナリング装置２１４Ａおよび２１４Ｂへのデータの書き込みを効率的に行えるようにし、テープ動作の効率およびスループットを向上させることができるように、より大きなディレクトリおよびバッファ装置２１０が好ましい。
【００２６】
例示的な実施形態では、記憶装置１０２Ａおよび１０２Ｂは、標準のＲＡＩＤ−１構成で組み立てられる標準のディスクドライブであることができる。
記憶システム１００または２００およびコントローラ１０６の動作により、説明したデータジャーナリング機能および改良を行えるようにするディスクの機能が追加される。
ジャーナリング記憶システム１００または２００では、１枚のディスク、通常は最も忙しくないディスクへの書き込み動作中、旧データが内部ディスクコントローラ１０６によって他方のディスクから読み出され、同じデータが両方のディスク１０２Ａおよび１０２Ｂに書き込まれる前にバッファディスク２１０に移される。
他の適した記憶装置としては、他の種類のディスクドライブ、または磁気テープドライブ等、他の磁気記憶技術を使用したドライブを挙げることができる。
他の実施形態では、記憶装置をさらに追加し、ジャーナリング記憶システム１００または２００によってサポートすることができる。
【００２７】
各種実施形態では、テープライブラリ２１２およびテープドライブ２１４Ａおよび２１４Ｂは、業界標準のテープドライブである。
具体的な例では、テープドライブは、純正では１５ＭＢ／秒（メガバイト／秒）での書き込みを許容することができ、１本のテープが１００ＭＢを保持する、カリフォルニア州パロアルトに所在のHewlett-Packard Company製造販売のUltrium（登録商標）テープドライブであることができる。
２：１圧縮時では、一般アクセス速度は２４ＭＢ／秒であり、一般容量はテープ１本あたり２００ＭＢである。
他の場合では、他の多くのテープドライブおよびテープ媒体を使用することも可能である。
一般に現在利用可能なライブラリは、２〜１６個のテープドライブを備え、何十〜何千個ものテープ格納スロットを備えている。
本明細書において説明するように、ジャーナリング用途専用のテープライブラリは通常、２の倍数個のテープドライブを備えることができ、各対のドライブが１つの生のディスクＲＡＩＤ−１ディスク対または１つのディスク部分をジャーナリングすることができる。
【００２８】
各種実施形態では、ライブラリの容量は、ジャーナリングするディスク空間量、たとえばジャーナル書き込みが１つのトラックに対してであるのか、それとも１０００のトラックに対してであるのか、および投影される書き込みアクティビティ、たとえば書き込みレートが毎秒２５回なのか、それとも２５０回なのかに従って構成することができる。
考慮事項には、テープをライブラリから別の場所に移す管理者のポリシー、および見込まれる場所の遠さも含まれる。
考慮事項には、所望のアーカイブ期間、すなわちどの時点まで戻ってリストアを行うことができるか、たとえばＸ回の書き込み前またはＸ分前も含むことができる。
【００２９】
距離という考慮事項により、テープドライブまでのデータパスは一般に、光学的である、たとえば純正ファイバチャネル（ＦＣ）である、またはＦＣ／ＳＣＳＩコンバータを介することが望ましい。
テープライブラリの高度さに応じて、テープ変更要求を、データパスを通してインバンドで、または１００ｂＴローカルエリアネットワーク（ＬＡＮ）接続等の別ルートを介してアウトバンドで渡すことができる。
離れた場所にある格納庫に格納されているテープに対する要求は一般に、ライブラリ２１２に人間の介入要求を掲示するように促すことで行われる。
【００３０】
単一ＲＡＩＤ−１システムは、１つまたは複数の論理単位（ＬＵＮ）および１つまたは複数のファイルをサポートすることができる。
したがって、ユーザには、生のＬＵＮジャーナリングをディスク全体で行うか、それとも選択されたトラックおよびディスク内に含まれるセクタアドレス範囲で行うかという選択肢を与えることができる。
解決ユーティリティを使用して、ファイルあるいは生のＬＵＮによって使用されるアドレス範囲を報告することができる。
各種解決ユーティリティが当業者に既知である。
ジャーナリングするディスクエリアが狭いほど、ジャーナルデータテープを変更する必要のある頻度は低くなる。
【００３１】
システムによって行われる、または実行される各種機能、プロセス、方法、および動作は、様々な種類のプロセッサ、コントローラ、中央演算処理装置、マイクロプロセッサ、デジタル信号プロセッサ、状態機械、プログラマブル論理アレイ等で実行可能なプログラムとして実施することができる。
プログラムは、任意のコンピュータ関連システムまたは方法によって使用される、またはこれと併せて使用される任意のコンピュータ可読媒体に記憶することができる。
コンピュータ可読媒体は、コンピュータ関連システム、メソッド、プロセス、またはプロシージャによって使用される、またはこれと併せて使用されるコンピュータプログラムを収納する、または記憶することができる電気的、磁気的、光学的、または他の物理的な装置または手段である。
プログラムは、コンピュータまたはプロセッサに基づいたシステム、または任意の適切な種類の命令メモリまたは記憶装置から命令をフェッチすることができる他のシステム等、命令実行システム、機器、構成要素、要素、または装置によって使用される、またはこれと併せて使用されるコンピュータ可読媒体に具現することができる。
コンピュータ可読媒体は、命令実行システム、装置、または機器によって使用される、またはこれと併せて使用されるプログラムの記憶、通信、伝搬、または搬送を行うことができる任意の構造、機器、構成要素、製品、または他の手段であることができる。
【００３２】
例示的なブロック図およびフローチャートには、プロセス中の特定の論理機能またはステップを実施する１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコード部分を表すことができるプロセスステップまたはブロックを示す。
具体的な例には特定のプロセスステップまたは行為を示すが、多くの代替の実施が可能であり、単に設計の選択によって一般に行われる。
行為およびステップは、機能、目的、規格への準拠、レガシー構造等の考慮事項に基づいて、本明細書における特定の説明とは別の順序で実行することが可能である。
【００３３】
図２と併せて図３を参照して、フローチャートに、記憶装置のトラックおよびセクタにあるデータを或る時点にリカバリする方法の一例３００を示す。
この方法またはプロセス３００は、ディスクコントローラ等のプロセッサまたはコントローラによって実行することができ、１つまたは複数の記憶装置上の選択ファイルの論理単位、トラック、およびセクタ情報を識別すること（３０１）を含む。
ユーザからリストア指示を受け取ると、リストア指示に基づいて、所定の時点までリストアする、少なくとも１つの記憶装置上のトラックおよびセクタを選択する。
方法は、選択されたトラックおよびセクタに対応するデータにバッファディスクまたはテープジャーナリング装置からアクセスすること、およびデータを、記憶装置のトラック位置およびセクタ位置に所定の時点までリストアすることをさらに含む。
【００３４】
ログからリストアされる状況に応答して、内部ディスクコントローラ１０６は、正確なテープ（複数可）を装填する（３０２）ようにテープライブラリ２１２に通知する。
状況によっては、通知によってライブラリロボット制御がアクティブ化され、テープ（複数可）が自動的に装填される場合もあれば、管理者に通知が送られ、リモートストレージまたは格納庫から正確なテープ媒体をリカバリし、ライブラリ２１２内に戻せるようにする場合もある。
コントローラ１０６は、記憶装置１０２Ａおよび１０２Ｂ、たとえばＲＡＩＤ−１ディスクへの新規のホスト書き込みから保護する（３０４）。
コントローラ１０６は、顧客指定データ３０６をテープ２１４Ａおよび／または２１４ＢからＲＡＩＤ−１ディスク１０２Ａおよび１０２Ｂの、ディスク上のデータの元の位置にコピーする。
コントローラ１０６は、データリストア後にホスト書き込みを再イネーブルする（３０８）。
【００３５】
リストア動作が完了すると、コントローラ１０６は、リストアテープをテープライブラリ２１２内に戻す、すなわち再格納させる（３１０）信号を送る。
コントローラ１０６は、適切なテープが装填された状態でデータのジャーナリングを再イネーブルする（３１２）。
【００３６】
図２と併せて図４を参照して、フローチャートに、データをジャーナリングする方法の一例４００を示す。
この方法またはプロセスは、コントローラ１０６によって実行することができ、データ記憶装置１０２Ａまたは１０２Ｂのうちの一方に向けられた書き込み動作を検出すること（４０２）、および書き込み動作の検出に応答して、書き込まれないデータ記憶装置から旧データを読み出すこと（４０４）を含む。
コントローラ１０６は、旧データを書き込み動作データと併せてディレクトリおよびバッファ記憶装置２１０に保存する（４０６）。
旧データは、ジャーナリング記憶装置１０４内のジャーナリングドライブ２１４Ａおよび２１４Ｂにコピーされる（４０８）。
最新の書き込みはメタディレクトリに保持される。
【００３７】
いくつかの実施形態では、このプロセスは、データがドライブに書き込まれているときに、テープドライブ２１４Ａまたは２１４Ｂ内の媒体要素、たとえばテープが満杯になったことを検出すること（４１０）を含むこともできる。
媒体要素が満杯になった場合、プロセスは、代替のテープドライブまたは代替のテープに切り替えること（４１２）、および書き込まれた媒体を媒体要素番号、記録番号、日付、時刻、ならびにトラックおよびセクタの識別子によって識別することを含むことができる。
【００３８】
本開示において各種実施形態を説明したが、これら実施形態は特許請求の範囲を限定するものではなく、例示的なものとして理解されたい。
説明した実施形態の多くの変形、変更、追加、および改良が可能である。
たとえば、当業者は、本明細書において開示した構造および方法を提供するために必要なステップを容易に実施し、プロセスパラメータ、材料、および寸法は単に例として与えられていることを理解するであろう。
パラメータ、材料、および寸法は、所望の構造ならびに変更を行うために変更することが可能であり、こういった変更は特許請求の範囲内である。
本明細書において開示した実施形態の変形および変更はまた、添付の特許請求の範囲内にありながら行うことが可能である。
たとえば、開示した装置および技法はＲＡＩＤ−１構成を参照して説明されているが、他の装置は他の適切な構成および規格を使用することができる。
開示したシステムでは、特定の種類の記憶要素およびコントローラについて説明したが、他の適切な記憶技術およびコントローラ技術を使用することも可能である。
特定の数の要素、たとえば２つのディスクドライブまたはＬＤＥＶ、および２つのテープドライブは、行われる動作を最も明確に説明するために単純な構成を表している。
記憶動作に関与する構成要素数を増やした他の適した実施形態を行うことも可能である。
【図面の簡単な説明】
【００３９】
【図１】ジャーナリング機能を備えた記憶システムの一実施形態を示す概略ブロック図である。
【図２】テープジャーナリング機能を備えた記憶システムの代替の実施形態を示す概略ブロック図である。
【図３】データを時間インデックスログからリストアする、たとえば、コントローラにより実行可能な制御動作を示すフローチャートである。
【図４】データをジャーナリングする方法の一例を示すフローチャートである。
【符号の説明】
【００４０】
１００，２００・・・記憶システム，
１０２Ａ，１０２Ｂ・・・記憶装置，
１０４・・・ジャーナリング装置，
１０６・・・コントローラ，
１１０・・・ホスト，
１１２・・・ユーティリティインタフェース，
２１２・・・テープ記憶装置，
２１４Ａ，２１４Ｂ・・・テープドライブ，
【図１】
2006059347.tif 000003
【図２】
2006059347.tif 000004
【図３】
2006059347.tif 000005
【図４】
2006059347.tif 000006