(57)【特許請求の範囲】
【請求項１】
実ディスクで管理するアドレス情報と仮想的なアドレス情報の対応関係および削除禁止情報を管理するデータマッピングテーブルと、
仮想的なアドレス情報を指定した書き込み要求に応じて、指定された仮想的なアドレス情報が前記データマッピングテーブルに管理されていない場合には、実ディスクの領域を順次割り当ててデータマッピングテーブルを更新し、管理されていてかつ削除禁止でない場合には、実ディスクで割り当て済みの領域を開放すると共に実ディスクの領域を順次割り当ててデータマッピングテーブルを更新し、管理されていてかつ削除禁止の場合には、実ディスクの領域を順次割り当ててデータマッピングテーブルを過去の履歴を消さずに更新する割り当て処理手段と
前記割り当て処理手段によって割り当てられた領域に要求されたデータを書き込む書き込み手段と
を有する仮想ディスク制御システム。
【請求項２】
コンピュータに、
仮想的なアドレス情報を指定した書き込み要求に応じて、指定された仮想的なアドレス情報が、実ディスクで管理するアドレス情報と仮想的なアドレス情報の対応関係および削除禁止情報を管理するデータマッピングテーブルに管理されていない場合には、実ディスクの領域を順次割り当ててデータマッピングテーブルを更新し、管理されていてかつ削除禁止でない場合には、実ディスクで割り当て済みの領域を開放すると共に実ディスクの領域を順次割り当ててデータマッピングテーブルを更新し、管理されていてかつ削除禁止の場合には、実ディスクの領域を順次割り当ててデータマッピングテーブルを過去の履歴を消さずに更新する割り当て処理手段と
前記割り当て処理手段によって割り当てられた領域に要求されたデータを書き込む書き込み手段と
として機能させるための仮想ディスク制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データをランダムにディスク装置にライトする仮想ディスク制御システムおよび仮想ディスク制御プログラムに関するものである。
【０００２】
【従来の技術】
従来、ディスク装置へのライト（データの書き込み）は、図７に示すように、ディスク装置のヘッドを所定位置に位置付け（ｓｅｅｋ）、次に、データをライト（ｗｒｉｔｅ）するということを繰り返し、データをランダムな位置に書き込んでいた。
【０００３】
また、バックアップは磁気テープなどの外部媒体に退避してデータを保存するようにしていた。
【０００４】
【発明が解決しようとする課題】
上述したように、従来のディスク装置へのデータのライトは、図７に示すように、ｓｅｅｋ、ｗｒｉｔｅという動作をデータの書き込み毎に繰り返す必要があり、ｓｅｅｋが毎回発生して高速にライトできないという問題があった。
【０００５】
また、ディスク装置上のデータをバックアップするには、ディスク装置上のあちこちのデータをｓｅｅｋ、ｒｅａｄして磁気テープなどの外部媒体にシーケンシャルに連続して書き込む必要があり、長時間を要するという問題もあった。
【０００６】
本発明は、これらの問題を解決することを目的としている。
【０００７】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、仮想ディスク装置４は、アプリ２，３などがデータをランダムな位置に書き込もうとする仮想的なディスク装置である。
【０００８】
乱ライト・順ライト変換機構５は、仮想ディスク装置４への乱ライトを、実ディスク装置１２に順ライトなどするものであって、データマッピングテーブル８、バックアッププログラム１０などから構成されるものである。
【０００９】
データマッピングテーブル８は、仮想ディスク装置４上のランダムなライト位置と、実ディスク装置１２上の順のライト位置とを対応づけて記憶するものである。
【００１０】
バックアッププログラム１０は、実ディスク装置１２上のデータをバックアップするものである。
次に、動作を説明する
アプリ２，３から仮想ディスク装置４へのランダムな位置へのライトがあると、乱ライト・順ライト変換機構５が実ディスク装置１２の所定位置から順にライトすると共に、仮想ディスク装置４のランダムに書き込む位置と、実ディスク装置１２に順に書き込んだ位置とを対応つけてデータマッピングテーブル８に記憶するようにしている。
【００１１】
この際、仮想ディスク装置４のランダムな位置に書き込む位置と、実ディスク装置１２に順に書き込んだ位置とを対応づけてデータマッピングテーブル８に書き込む際に、データマッピングテーブル８に既に仮想ディスク装置４の書き込む位置に対応づけて実ディスク装置１２の位置が記憶されていた場合には今回の実ディスク装置１２の位置で更新し、一方、記憶されていなかった場合には今回の実ディスク装置１２の位置を新規に書き込むようにしている。
【００１２】
また、バックアッププログラム１０がバックアップ指示時に、データマッピングテーブル８をコピーして保存すると共に、データマッピングテーブル８上のエントリに登録されている実ディスク装置１２の位置のデータを削除禁止とセットするようにしている。
【００１３】
従って、仮想ディスク装置４上の任意の位置にライトしたデータについて実ディスク装置１２上で順に書き込むと共にデータマッピングテーブル８に両者の対応関係を記憶して高速ライトを実現すると共に、バックアップ時にデータマッピングテーブル８をコピーして保存および退避データの削除禁止にして高速バックアップを実現することが可能となる。
【００１４】
【発明の実施の形態】
次に、図１から図６を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１５】
図１は、本発明のシステム構成図を示す。
図１において、処理装置１は、プロセッサおよびメモリを有するコンピュータであって、プログラムに従い各種処理を実行するものであり、ここでは、アプリケーションプログラム（以下単にアプリという）２，３、仮想ディスク装置４、および乱ライト・順ライト変換機構５などから構成されるものである。
【００１６】
アプリ２，３は、データを仮想ディスク装置４のランダムな位置にライトして各種処理を実行するものである。
仮想ディスク装置４は、アプリ２，３がランダムな位置にデータをライトする対象の仮想的なディスク装置４である。アプリ２，３からの当該仮想ディスク装置４へのランダムな位置へのライトは、乱ライト・順ライト変換機構５によって取り込まれて、順ライトに変換されて実ディスク装置１２に順に書き込まれる。
【００１７】
乱ライト・順ライト変換機構５は、アプリ２，３から仮想ディスク装置４のランダムな位置にライトされたデータを取り込み、順ライトに変換して実ディスク装置１２に書き込むと共に、仮想ディスク装置４上のライト位置と、実ディスク装置１２に書き込んだ位置とを対応づけてデータマッピングテーブル８に記憶して管理したりなどするものであって、ここでは、データマッピング管理プログラム６、データビットマップ管理プログラム７、データマッピングテーブル８、データビットマップテーブル９、バックアッププログラム１０、実ディスクＩ／Ｏ管理プログラム１１などから構成されるものである。
【００１８】
データマッピング管理プログラム６は、データマッピングテーブル８を管理するものであって、仮想ディスク装置４のランダムにデータをライトした位置と、実ディスク装置１２の所定位置から順にライトした位置とを対応づけて書き込んで記憶させるものである。例えば新規にデータを書き込む場合には、仮想ディスク装置４のライト位置と、実ディスク装置１２の今回のライト位置とを対応づけて新規に記憶し、一方、データの更新を行う場合には、仮想ディスク装置４のライト位置に対応づけて記憶されている実ディスク装置１２のライト位置を今回の当該実ディスク装置１２のライト位置で更新する（図２から図５を用いて後述する）。
【００１９】
データビットマップ管理プログラム７は、実ディスク装置１２内の空セクタを管理するテーブルであって、ディスク番号、セクタ番号に対応づけて空き領域か、使用中領域かの区別を設定して管理するものである（図３の（ｂ）参照）。
【００２０】
データマッピングテーブル８は、仮想ディスク装置４のランダムなライト位置と、実ディスク装置１２の順なライト位置とを対応づけて記憶するものである（図３の（ａ）参照）。
【００２１】
データビットマップテーブル９は、実ディスク装置１２の空きセクタを管理するテーブルである（図３の（ｂ）参照）。
バックアッププログラム１０は、実ディスク装置１２上のデータをバックアップするものであって、データマッピングテーブル８をコピーして保存すると共にデータマッピングテーブル８のセクタの削除禁止フラグをセット（あるいは該当セクタを削除禁止にセット）などしてバックアップするものである（図６を用いて後述する）。
【００２２】
実ディスクＩ／Ｏ管理プログラム１１は、実ディスク装置１２にデータを順にライトするものである（図２から図６を用いて後述する）。
実ディスク装置１２は、仮想ディスク装置４上のランダムな位置にライトしたデータを、実際に順にライトする対象のディスク装置である。
【００２３】
図４は、本発明の説明図を示す。
図４において、データマッピングテーブル８は、図示のように、仮想ディスク装置４の先頭から分割した領域（仮想アドレス、例えばセクタ番号）に対応づけてエントリを設け、当該エントリに実ディスク装置１２上で当該データを順にライトした位置（実アドレス、セクタ番号）を記憶するものである。図示の状態では、
・仮想ディスク装置４上の仮想アドレスＶＡ４，ＶＡ２，ＶＡ５のランダムの位置順でデータがライトされたので、
・１回目に、データマッピングテーブル８には仮想ディスク装置４のＶＡ４から矢印で示す位置に実ディスク装置１２に順にデータをライトした実アドレスＲＡ１が記憶され、
・２回目に、データマッピングテーブル８には仮想ディスク装置４のＶＡ２から矢印で示す位置に実ディスク装置１２に順にデータをライトした実アドレスＲＡ２が記憶され、
・３回目に、データマッピングテーブル８には仮想ディスク装置４のＶＡ５から矢印で示す位置に実ディスク装置１２に順にデータをライトした実アドレスＲＡ３が記憶される。
【００２４】
・次に、仮想ディスク装置４上の仮想アドレスＶＡ２のデータに、新たなデータがライトされたので、
・４回目に、データマッピングテーブル８には仮想ディスク装置４のＶＡ２から矢印で示す位置に実ディスク装置１２に順にデータをライトした実アドレスＲＡ４で更新する（図示のＲＡ２からＲＡ４に更新する）。
【００２５】
以上のように、仮想ディスク装置４にライトしたときにそのデータを実ディスク装置１２で新規の実アドレスに順にライトして当該ライトした実アドレスＲＡを、仮想ディスク装置４からポイントされるデータマッピングテーブル８の該当位置に実アドレスを書き込むあるいは更新することにより、仮想ディスク装置４ではランダムライトが、実ディスク装置１２で順ライトと変換されて実行され、その仮想アドレスと実アドレスはデータマッピングテーブル８に記憶して管理でき、順ライトによる高速ライトが可能となる。
【００２６】
図３は、本発明のテーブル例を示す。
図３の（ａ）は、データマッピングテーブル８の例を示す。このデータマッピングテーブル８は、仮想ディスク装置４と実ディスク装置１２の対応セクタの管理テーブルであって、例えば図示の下記の情報を対応づけて書き込んで管理するものである。
【００２７】
・フラグ（Ｓｈａｒｅｄ  Ｆｌａｇ）：
・１：セクタが旧バージョンと共有している（バックアップ済である）
・０：セクタが旧バージョンと共有していない（バックアップ未である）
・ディスク番号：
・セクタ番号：
ここで、フラグ（Ｓｈａｒｅｄ  Ｆｌａｇ）は実ディスク装置１２の当該セクタのデータの退避の有無を表し、１の場合には旧バージョンのデータと共有しており、削除禁止と設定されている旨を表し、０の場合は旧バージョンのデータと共有していなく、削除禁止と設定されていない旨を表す。ディスク番号、セクタ番号は、仮想ディスク装置４と、実ディスク装置１２とのデータをライトした位置（領域、ここでは、セクタ）の対応を記憶するものである（図４参照）。
【００２８】
以上のように、データマッピングテーブル８にフラグ（削除禁止フラグ）とディスク番号、セクタ番号を登録し、仮想ディスク装置４のランダムにライトした位置（セクタ）と、実ディスク装置１２の実際に順にライトした位置（セクタ）とを対応づけて記憶し、管理することが可能となる。尚、両者のセクタの対応管理は、仮想ディスク装置４のセクタと、実ディスク装置１２のセクタとを対にして記憶したり、仮想ディスク装置４のセクタに対応するエントリに実ディスク装置１２の対応するセクタを記憶したりなどすればよい。
【００２９】
図３の（ｂ）は、データビットマップテーブル９の例を示す。このデータビットマップテーブル９は、実ディスク装置１２の空セクタの管理テーブルであって、図示の下記の情報を対応づけて記憶したものである。
【００３０】
・セクタ番号：
・ビット０あるいは１：
・０：空領域
１：使用中
ここで、セクタ番号に対応づけてビット０（空領域）あるいはビット１（使用中領域）を記憶することにより、実ディスク装置１２について順に終わりまでデータをライトした後、先頭に近い空領域を順に探してライトし、領域の再利用を高速かつ簡易に行い、実ディスク装置１２の効率的な順ライトを行うことが可能となる。
【００３１】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、ライト要求を受け付ける。
Ｓ２は、初めての書き出しか判別する。これは、後述する図４のデータマッピングテーブル８に仮想ディスク装置４のランダムなライト位置と、実ディスク装置１２の順のライト位置との対応づけが記憶されていなく、初めての書き出し（ライト）か判別する。ＹＥＳの場合には、初めての書き出しと判明したので、Ｓ５に進む。一方、ＮＯの場合には、既にデータマッピングテーブル８に記憶されていると判明したので、Ｓ３に進む。
【００３２】
Ｓ３は、Ｓ２で初めての書き出しでないと判明したので、更に、既にバックアップとなっているか判別する。これは、Ｓ１で受け付けたライト位置のデータが、既にバックアップ済と、データマッピングテーブル８の該当セクタのフラグ（削除禁止フラグ、Ｓｈａｒｅｄ  ｆｌａｇ）がセットされているか判別する。ＹＥＳの場合には、バックアップされており削除禁止にセットされていると判明したので、Ｓ５に進む。一方、ＮＯの場合には、バックアップされていなく削除禁止とセットされていないと判明したので、Ｓ４で既にライトしているセクタの割り当て情報を解放し（データビットマップテーブル９の対応するエントリに０をセットする）、Ｓ５に進む。
【００３３】
Ｓ５は、新しいセクタを割り当てる。
図５は、本発明の動作説明フローチャート（セクタ割当）を示す。
図５において、Ｓ１１は、空き領域があるか判別する。これは、実ディスク装置１２に、順にライトする空き領域があるか判別する。ＹＥＳの場合には、Ｓ１２で新しいセクタを割り当て（実ディスク装置１２中の空の新しいセクタを割当て）、これに続いて割り当てたセクタにデータを順にライトする。一方、Ｓ１１のＮＯの場合には、実ディスク装置１２に割り当てる空領域がないと判明したので、Ｓ１３に進む。
【００３４】
Ｓ１３は、実ディスク装置１２の先頭にちかい空きセクタを探す。これは、既述した図３の（ｂ）のデータビットマップテーブル９を参照し、先頭から空きのセクタを探す（先頭からビット０の空のセクタを探す）。
【００３５】
Ｓ１４は、空のセクタがあるか判別する。ＹＥＳの場合には、空のセクタが見つかったので、Ｓ１５で空のセクタを割り当て、これに続いて割り当てたセクタにデータを順にライトする。一方、Ｓ１４のＮＯの場合には、空セクタがないと判明したので、Ｓ１６で空領域不足でライト要求をエラーにする。
【００３６】
以上のように、実ディスク装置１２に順に空領域（空セクタ）があればそれを割り当ててデータを順にライトし、一方、空領域がなくなったときはデータビットマップテーブル９を参照して先頭から空領域（空セクタ）を探して見つけた空領域（空セクタ）を割り当ててデータを順にライトし、実ディスク装置１２の空領域を有効利用することが可能となる。
【００３７】
図２のＳ６は、データマッピングテーブル８を更新する。これは、仮想ディスク装置４のランダムに書き込む当該位置と、実ディスク装置１２に順に書き込む当該位置とを対応づけて書き込み（更新し）、記憶する。
【００３８】
Ｓ７は、データを実ディスク装置にライトする。
以上の手順によって、仮想ディスク装置４のランダムな任意の位置へのライト要求を受け付け、データマッピングテーブル８を参照して、既にライトした位置のデータのときで、かつバックアップ未の場合にはそのデータの領域（セクタ）を再利用できるように解放した後、実ディスク装置１２の所定の位置からヘッドの移動方向が一定方向となる方向へ新しい領域（セクタ）を割り当てデータを順にライトすると共にデータマッピングテーブル８に仮想ディスク装置４のランダムにライトする位置と、実ディスク装置１２の順にライトした位置とを対応づけて記憶することにより、アプリなどからの仮想ディスク装置４のランダムな位置へのライトを、実際には実ディスク装置１２の順の領域の位置へのライトに変換して実行し、順ライトによる高速ライトを実現することが可能となる。
【００３９】
図６は、本発明のバックアップ説明図を示す。これは、既述した図１の構成でデータをバックアップするときの手順およびその動作を説明するものである。
図６の（ａ）は、バックアップフローチャートを示す。
【００４０】
図６の（ａ）において、Ｓ２１は、バックアップ要求を受け付ける。これは、アプリ２，３あるいは管理者からバックアップ要求を、図１の乱ライト・順ライト変換機構５が受け付ける。
【００４１】
Ｓ２２は、データマッピングテーブル８をコピーする。これは、既述した図１、図３の（ａ）、図４のデータマッピングテーブル８をコピーして保存する。
Ｓ２３は、コピー元のデータマッピングテーブル８の全てのエントリのフラグを”１”にする。これは、コピー元（カレント）のデータマッピングテーブル８の全てのエントリのセクタのフラグ、例えば図３の（ａ）の全てのエントリのセクタのフラグ（Ｓｈａｒｅｄ  Ｆｌａｇ）を”１”（セクタが旧バージョンと共有しているを表す）にセットする。これにより、カレントのデータマッピングテーブル８の全てのエントリのセクタのフラグ（削除禁止フラグ）がセットされたので、当該データマッピングテーブル８で管理されている全てのセクタのデータが削除禁止と設定され、Ｓ２２でコピーして保存したデータマッピングテーブル２２のセクタのデータが全て保存（退避）されたこととなる。このように、データマッピングテーブル２２をコピーして保存およびデータマッピングテーブル２２の全エントリのセクタのフラグをセットするのみで全セクタのデータのバックアップを実現でき、極めて迅速かつ簡易に全セクタのデータのバックアップが可能となる。
【００４２】
図６の（ｂ）は、バックアップ説明図を示す。図中の上段のカレント（コピー元）のデータマッピングテーブル８を、下段に示すようにコピーして保存すると共に、上段のカレントのデータマッピングテーブル８の実アドレスの登録されている全てのエントリのセクタのフラグ（削除禁止フラグ）を１（削除禁止）にセットすることにより、全データをバックアップすることが可能となる。
【００４３】
そして、バックアップ後に、仮想ディスク装置４の仮想アドレスＶＡ４のデータを更新したので、当該データを実ディスク装置１２の順のセクタ（実アドレスＲＡ５）にライトすると共に、仮想ディスク装置４の仮想アドレスＶＡ４に対応するデータマッピングテーブル８のエントリ中で、右向きの矢印で示す５（ＲＡ５）に更新する（尚、旧のセクタＲＡ１のフラグ（削除禁止フラグ）が１にセットされており、削除されなく、バックアップされている）。このように、バックアップ後にもカレントのデータマッピングテーブル８を使用してデータの更新を行うことが可能となると共に、バックアップしたデータ（セクタ）の削除禁止フラグがセットされ、いずれのデータ（セクタ）をバックアップしたかはコピーして保存したデータマッピングテーブル８により判明する。
【００４４】
尚、バックアップ時に、データマッピングテーブル８をコピーしていずれのデータを保存したかを記憶すると共に、保存したデータが書き込まれている実ディスク装置１２上のセクタ自身あるいは別途設けたセクタ管理テーブルに当該セクタの削除禁止ビット（バックアップ済ビット）をセットするようにしてもよい。
【００４５】
【発明の効果】
以上説明したように、本発明によれば、仮想ディスク装置４でランダムな位置にライトするデータを、実ディスク装置１２上では順に書き込むと共にデータマッピングテーブル８に両者の対応位置を記憶する構成を採用しているため、ランダムライトを高速に実行できると共に、バックアップ時にデータマッピングテーブル８をコピーして保存および削除禁止にセットし、高速かつ簡易にバックアップできる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明のテーブル例である。
【図４】本発明の説明図である。
【図５】本発明の動作説明フローチャート（セクタ割当）である。
【図６】本発明のバックアップ説明図である。
【図７】従来技術の説明図である。
【符号の説明】
１：処理装置
２、３：アプリ（アプリケーションプログラム）
４：仮想ディスク装置
５：乱ライト・順ライト変換機構
６：データマッピング管理プログラム
７：データビットマップ管理プログラム
８：データマッピングテーブル
９：データビットマップテーブル
１０：バックアッププログラム
１１：実ディスクＩ／Ｏ管理プログラム
１２：実ディスク装置
【図１】
0003967080.tif 000002
【図２】
0003967080.tif 000003
【図３】
0003967080.tif 000004
【図４】
0003967080.tif 000005
【図５】
0003967080.tif 000006
【図６】
0003967080.tif 000007
【図７】
0003967080.tif 000008