(57)【特許請求の範囲】
【請求項１】
計算機と接続するための１以上のインタフェースと、
複数の磁気ディスクと、
前記計算機から受信する指示に基づいて、前記複数の磁気ディスクを制御する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記複数の磁気ディスクの一部又は全部を、前記計算機が磁気ディスクとしてアクセスする第１のデバイスグループが管理されているディスク管理テーブルと、
前記複数の磁気ディスクの一部又は全部を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２のデバイスグループが管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、
前記第２のデバイスグループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、
前記磁気ディスクにデータを書き込むよう指示するための第１の命令を前記インタフェースを介して前記計算機から受信すると、該第１の命令に基づいて、前記第１のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第１の記憶領域に前記データを書き込み、
前記テープライブラリ装置に対して磁気テープを前記テープドライブに装填するよう指示するための第２の命令を前記インタフェースを介して前記計算機から受信すると、該第２の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第２の記憶領域を選択し、
前記テープライブラリ装置に対して前記磁気テープにデータを書き込むよう指示するための第３の命令を前記インタフェースを介して前記計算機から受信すると、該第３の命令を、対応する磁気ディスクにデータを書き込むよう指示するための第１の命令に変換し、該第１の命令に基づいて、前記データを前記第２の記憶領域に書き込む
ことを特徴とする記憶装置システム。
【請求項２】
請求項１記載の記憶装置システムにおいて、
前記制御装置は、
前記第２の記憶領域内の位置を示すポインタを管理しており、前記第３の命令に基づいて、前記データを前記ポインタが示す位置から前記第２の記憶領域に書き込み、書き込んだデータのサイズ分だけ前記ポインタが示す位置をずらすよう制御する
ことを特徴とする記憶装置システム。
【請求項３】
請求項１記載の記憶装置システムにおいて、
前記制御装置は、
前記テープライブラリ装置に対して他の磁気テープを前記テープドライブに装填するよう指示するための第４の命令を前記インタフェースを介して前記計算機から受信すると、該第４の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第３の記憶領域を選択し、
前記テープライブラリ装置に対して前記他の磁気テープにデータを書き込むよう指示するための第５の命令を、前記インタフェースが前記計算機から受信し、
前記第５の命令に基づいて前記データを前記第３の記憶領域に書き込む
ことを特徴とする記憶装置システム。
【請求項４】
請求項１記載の記憶装置システムであって、
前記第３の命令は、前記テープライブラリ装置に、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第４の記憶領域に格納されているファイルのバックアップを取得するよう指示するための命令であり、
前記制御装置は、前記第３の命令に基づいて、前記第４の記憶領域に格納されているファイルのデータを前記第２の記憶領域にコピーする
ことを特徴とする記憶装置システム。
【請求項５】
請求項４記載の記憶装置システムであって、
更に、前記複数の磁気ディスク内の記憶領域に格納されているデータの複製を、前記複数の磁気ディスク内の他の記憶領域内に作成するミラー／スプリット部を有しており、
前記制御装置は、前記ミラー／スプリット部を起動して、前記第３の命令に基づいて、前記第４の記憶領域に格納されているファイルのデータを前記第２の記憶領域にコピーする
ことを特徴とする記憶装置システム。
【請求項６】
請求項４記載の記憶装置システムであって、
前記制御装置は、
前記第２の記憶領域の容量が不足した場合に、前記計算機に前記磁気テープの最後の記憶領域までデータを書き込んだ旨を通知するテープエンドの通知を発行し、
前記テープエンドの通知に応答して、前記計算機から、前記テープライブラリ装置に磁気テープの交換を指示するための第４の命令を受信し、
前記第４の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第３の記憶領域を選択し、
前記第４の記憶領域に格納されているファイルのデータを前記第３の記憶領域にコピーする
ことを特徴とする記憶装置システム。
【請求項７】
計算機と接続するための１以上のインタフェースと、
複数の磁気ディスクと、
前記計算機から受信する指示に基づいて、前記複数の磁気ディスクを制御する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記複数の磁気ディスクの一部又は全部を、前記計算機が磁気ディスクとしてアクセスする第１のデバイスグループが管理されているディスク管理テーブルと、
前記複数の磁気ディスクの一部又は全部を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２のデバイスグループが管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、
前記第２のデバイスグループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、
前記磁気ディスクからデータを読み出すよう指示するための第１の命令を前記インタフェースを介して前記計算機から受信すると、該第１の命令に基づいて、前記第１のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第１の記憶領域から前記データを読み出し、
前記テープライブラリ装置に対して磁気テープを前記テープドライブに装填するよう指示するための第２の命令を前記インタフェースを介して前記計算機から受信すると、該第２の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第２の記憶領域を選択し、
前記テープライブラリ装置に対して前記磁気テープからデータを読み出すよう指示するための第３の命令を前記インタフェースを介して前記計算機から受信すると、該第３の命令を、対応する磁気ディスクにデータを読み出すよう指示するための第１の命令に変換し、該第１の命令に基づいて、前記データを前記第２の記憶領域から読み出す
ことを特徴とする記憶装置システム。
【請求項８】
請求項７記載の記憶装置システムにおいて、
前記制御装置は、
前記テープライブラリ装置に対して他の磁気テープを前記テープドライブに装填するよう指示するための第４の命令を前記インタフェースを介して前記計算機から受信すると、該第４の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスク内の記憶領域から構成される第３の記憶領域を選択し、
前記第３の命令を再び前記インタフェースを介して前記計算機から受信すると、該第３の命令に基づいて、前記第３の記憶領域からデータを読み出す
ことを特徴とする記憶装置システム。
【請求項９】
請求項８記載の記憶装置システムにおいて、
前記第３の命令は、一又は複数の前記磁気テープに格納されているバックアップデータを磁気ディスクにリストアするよう前記テープライブラリ装置に指示するための命令であり、
前記制御装置は、前記第３の命令に基づいて、前記第２の記憶領域および前記第３の記憶領域に格納されているバックアップデータを読み出して、前記第１のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第４の記憶領域に格納する
ことを特徴とする記憶装置システム。
【請求項１０】
請求項９記載の記憶装置システムにおいて、
更に、磁気ディスク内の記憶領域に格納されているデータの複製を、磁気ディスク内の他の記憶領域内に作成するミラー／スプリット部を有しており、
前記制御装置は、前記第３の命令に基づいて、前記ミラー／スプリット部を起動し、
前記ミラー／スプリット部が、前記第２の記憶領域に格納されているデータの複製、及び前記第３の記憶領域に格納されているデータの複製を、前記第４の記憶領域内に作成する
ことを特徴とする記憶装置システム。
【請求項１１】
請求項９記載の記憶装置システムにおいて、
前記制御装置は、
前記第２の記憶領域に格納されているデータの複製が前記第４の記憶領域内に作成された場合に、前記計算機に磁気テープの最後までリストア処理が終了したことを通知するためのテープエンドの通知を発行し、
前記テープエンドの通知に応答して、前記計算機からの前記第４の命令を前記インタフェースを介して受信する
ことを特徴とする記憶装置システム。
【請求項１２】
請求項１１記載の記憶装置システムにおいて、
前記制御装置は、前記第４の命令を前記インタフェースを介して受信した後に前記第３の命令を受信した場合に、前記第３の記憶領域に格納されているデータを前記第４の記憶領域にコピーするよう制御する
ことを特徴とする記憶装置システム。
【請求項１３】
計算機と接続される少なくとも１以上のインタフェースと、
複数の磁気ディスクと、
インタフェースを介して受信する要求に応じて、前記複数の磁気ディスクの記憶領域を制御する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記複数の磁気ディスクの記憶領域を、前記計算機が磁気ディスクとしてアクセスする第１の記憶領域グループに属する少なくとも１以上の第１の記憶領域が管理されているディスク管理テーブルと、
前記複数の磁気ディスクの記憶領域を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２の記憶領域グループに属する少なくとも１以上の第２の記憶領域が管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、
前記第２の記憶領域グループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、
前記インタフェースを介して前記テープライブラリ装置に対する命令を受信した場合には、当該命令を対応する磁気ディスクに対する命令に変換し、変換した当該命令に基づいて第１の記憶領域を選択し、選択した該第２の記憶領域に関する処理を、該変換した命令に従って実行し、
前記インタフェースを介して磁気ディスクに対する命令を受信した場合には、第２の記憶領域を選択し、選択した該第１の記憶領域に関する処理を、受信した命令に従って実行する
ことを特徴とする記憶装置システム。
【請求項１４】
請求項１３記載の記憶装置システムにおいて、
前記制御装置は、
前記第１の記憶領域グループに属する第１の記憶領域を前記第２の記憶領域グループに属する記憶領域に変更して第２の記憶領域として管理するよう、若しくは、前記第２の記憶領域グループに属する第２の記憶領域を前記第１の記憶領域グループに属する記憶領域に変更して第１の記憶領域として管理するよう制御する
ことを特徴とする記憶装置システム。
【請求項１５】
請求項１４記載の記憶装置システムにおいて、
前記複数の磁気ディスクは、第３の記憶領域グループに属する第３の記憶領域を有しており、
前記制御装置は、
前記第３の記憶領域グループに属する第３の記憶領域を前記第１の記憶領域グループに属する記憶領域に変更して第１の記憶領域として管理するよう、若しくは前記第３の記憶領域グループに属する第３の記憶領域を前記第２の記憶領域グループに属する記憶領域に変更して第２の記憶領域として管理するよう制御する
ことを特徴とする記憶装置システム。
【請求項１６】
請求項１３記載の記憶装置システムにおいて、
前記制御装置は、
前記テープライブラリ装置に対して前記テープドライブに磁気テープを装填するよう指示するための命令を、前記インタフェースを介して受信した場合に、前記第１の記憶領域を選択し、
その後、前記テープドライブに対するアクセス要求を前記インタフェースを介して受信した場合に、前記第１の記憶領域にアクセスする
ことを特徴とする記憶装置システム。
【請求項１７】
請求項１６記載の記憶装置システムにおいて、
前記制御装置は、
前記テープライブラリ装置に対して前記テープドライブに他の磁気テープを装填するよう指示するための命令を、前記インタフェースが受信した場合に、前記第１の記憶領域グループに属する他の第１の記憶領域を選択し、
その後、前記テープドライブに対するアクセス要求を前記インタフェースを介して受信した場合に、前記他の第１の記憶領域にアクセスする
ことを特徴とする記憶装置システム。
【請求項１８】
請求項１３記載の記憶装置システムにおいて、
前記制御装置は、前記テープライブラリ装置に対して前記テープドライブに磁気テープを装填するよう指示するための命令を、前記インタフェースを介して受信した場合に、前記第１の記憶領域を選択し、
前記磁気テープに格納されているデータのリストアを前記テープライブラリ装置に対して指示するためのリストア要求を、前記インタフェースを介して受信した場合に、前記第１の記憶領域を前記第２の記憶領域グループに属する記憶領域に変更して管理する
ことを特徴とする記憶装置システム。
【請求項１９】
請求項１８記載の記憶装置システムにおいて、
前記制御装置は、
前記リストア要求の対象となるデータが前記第１の記憶領域以外の第１の記憶領域に格納されていない場合に、前記第１の記憶領域を前記第２の記憶領域グループに属する記憶領域に変更して管理する
ことを特徴とする記憶装置システム。
【請求項２０】
請求項１９記載の記憶装置システムにおいて、
前記制御装置は、
前記リストア要求の対象となるデータが、前記第１の記憶領域以外の他の第１の記憶領域にも格納されている場合に、前記第１の記憶領域に格納されているデータ及び前記他の第１の記憶領域に格納されているデータを、前記第２の記憶領域グループに属する第２の記憶領域にコピーする
ことを特徴とする記憶装置システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理システム、計算機システムなどにおける記憶装置システムに係り、特に、仮想テープ装置、仮想テープライブラリ装置に関する。
【０００２】
【従来の技術】
一般に計算機システムにおいては、データの保存に磁気ディスク若しくは磁気テープの2種類の記憶媒体が用いられる。磁気ディスクは、磁気円盤上の任意位置に記録されたデータに対して直接アクセスできる、いわゆるランダムアクセスが可能なデバイスであるため、頻繁に使うデータを記録するのに用いられる。一方で磁気テープはテープの先頭から順にデータが読み書きされる、いわゆるシーケンシャルアクセスのみが可能な記憶媒体であることから、磁気ディスク上に記録されたデータのバックアップや、古いデータを長期保存しておくアーカイブなどの用途に用いられる使用形態が主であった。このように磁気テープをバックアップ・アーカイブ用途に用いるのは、磁気テープのビットコストが磁気ディスクよりも安く、大量のデータを保管する際に低コストで済むというのが主な理由であった。
【０００３】
ところが近年では、計算機システムで取り扱うデータの急激な増加に伴い磁気ディスクから磁気テープへのバックアップ、リストア処理が長時間化して、磁気テープにバックアップを取得する運用が現実的でなくなってきている。バックアップは通常、夜間などオンライン業務が行われない時間帯(オフライン時間帯)に実施するが、バックアップに時間がかかりすぎてオフライン時間帯内にバックアップ処理が終了しない場面も出てきている。また磁気ディスクのビットコストも下がってきて磁気テープのビットコストに近づいてきている事から、磁気ディスクをバックアップデータの保管に用いる方法も考えられてきている。
【０００４】
例えば特許文献１では、磁気ディスク装置を用いてテープ装置をエミュレートする装置が開示されている。特許文献１では、ホスト計算機からテープ装置用のコマンドを受け付けると、それを磁気ディスク用のコマンドに変換して磁気ディスクへのデータアクセスを行うことで、磁気ディスク装置をテープ装置として使用できるようにしている。このような装置を仮想テープ装置と呼ぶ。
【０００５】
【特許文献１】
米国特許6070224号公報
【０００６】
【発明が解決しようとする課題】
仮想テープ装置の目的は、従来テープ装置を用いていた既存の計算機環境において、従来のテープ装置を仮想テープ装置に置き換えるだけで、ホスト計算機やバックアップソフトウェアには変更を加えることなく、仮想テープ装置へのバックアップなどの運用が行えるようにすることにある。
【０００７】
しかし実際にバックアップなどの運用を行う場合、多くの計算機環境では複数の磁気テープを維持管理するテープライブラリ装置によってバックアップが運用されており、複数の磁気テープにまたがるデータのバックアップ作業では、バックアップソフトがテープライブラリ装置を操作する事で、テープ装置への磁気テープの装填、磁気テープの交換を、人手を介さずに実施する。そのため計算機システムにおいて実際に仮想テープ装置を利用したバックアップ処理を行うためには、仮想テープメディアを仮想テープ装置に装填したり、仮想テープを交換したりする処理を実現する、仮想的なライブラリ機構が必要となる。
【０００８】
特許文献１には、テープ装置のエミュレートについては開示されているが、ライブラリ・チェンジャロボットの操作等、ライブラリ機構については開示していない。
【０００９】
また仮想テープ装置はテープ装置の機能しか持たず、ディスク装置として使用することは出来ない。そのためバックアップの際には、別のディスク装置からホスト計算機経由でデータを仮想テープ装置へとバックアップする作業が発生する。従って、磁気ディスクのアクセス速度が磁気テープ装置のアクセス速度より若干速い場合でも、バックアップ速度はそれほど大きく向上しない。とくに近年、テープ装置のリード・ライト速度は高速化しており、ディスク装置のシーケンシャルリード・ライト性能と遜色ない性能が出ているため、テープ装置に代えて仮想テープ装置を用いたとしても、それほど性能上有利になるわけではない。
【００１０】
本発明の目的は、ライブラリ装置のエミュレートを実現することである。
【００１１】
また本発明の他の目的は、磁気ディスクとしての機能と仮想テープライブラリ装置としての機能の両方を持つ記憶装置システムを提供することである。
【００１２】
また本発明の他の目的は、より高速なバックアップ処理が可能な記憶装置システムを提供することである。
【００１３】
【課題を解決するための手段】
かかる課題を解決するため、本発明においては、計算機と接続するための１以上のインタフェースと、前記複数の磁気ディスクの一部又は全部を、前記計算機が磁気ディスクとしてアクセスする第１のデバイスグループが管理されているディスク管理テーブルと、前記複数の磁気ディスクの一部又は全部を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２のデバイスグループが管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、前記第２のデバイスグループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、前記磁気ディスクにデータを書き込むよう指示するための第１の命令を前記インタフェースを介して前記計算機から受信すると、該第１の命令に基づいて、前記第１のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第１の記憶領域に前記データを書き込み、前記テープライブラリ装置に対して磁気テープを前記テープドライブに装填するよう指示するための第２の命令を前記インタフェースを介して前記計算機から受信すると、該第２の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第２の記憶領域を選択し、前記テープライブラリ装置に対して前記磁気テープにデータを書き込むよう指示するための第３の命令を前記インタフェースを介して前記計算機から受信すると、該第３の命令を、対応する磁気ディスクにデータを書き込むよう指示するための第１の命令に変換し、該第１の命令に基づいて、前記データを前記第２の記憶領域に書き込むようにした。
また本発明においては、計算機と接続するための１以上のインタフェースと、複数の磁気ディスクと、前記計算機から受信する指示に基づいて、前記複数の磁気ディスクを制御する制御装置とを有する記憶装置システムにおいて、前記制御装置が、前記複数の磁気ディスクの一部又は全部を、前記計算機が磁気ディスクとしてアクセスする第１のデバイスグループが管理されているディスク管理テーブルと、前記複数の磁気ディスクの一部又は全部を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２のデバイスグループが管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、前記第２のデバイスグループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、前記磁気ディスクからデータを読み出すよう指示するための第１の命令を前記インタフェースを介して前記計算機から受信すると、該第１の命令に基づいて、前記第１のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第１の記憶領域から前記データを読み出し、前記テープライブラリ装置に対して磁気テープを前記テープドライブに装填するよう指示するための第２の命令を前記インタフェースを介して前記計算機から受信すると、該第２の命令に基づいて、前記第２のデバイスグループに属する対応する磁気ディスクの記憶領域から構成される第２の記憶領域を選択し、前記テープライブラリ装置に対して前記磁気テープからデータを読み出すよう指示するための第３の命令を前記インタフェースを介して前記計算機から受信すると、該第３の命令を、対応する磁気ディスクにデータを書き込むよう指示するための第１の命令に変換し、該第１の命令に基づいて、前記データを前記第２の記憶領域から読み出すようにした。
さらに本発明においては、計算機と接続される少なくとも１以上のインタフェースと、複数の磁気ディスクと、インタフェースを介して受信する要求に応じて、前記複数の磁気ディスクの記憶領域を制御する制御装置とを有する記憶装置システムにおいて、前記制御装置は、前記複数の磁気ディスクの記憶領域を、前記計算機が磁気ディスクとしてアクセスする第１の記憶領域グループに属する少なくとも１以上の第１の記憶領域が管理されているディスク管理テーブルと、前記複数の磁気ディスクの記憶領域を、前記計算機から磁気テープに書き込まれたデータとしてアクセスされる当該データを格納する第２の記憶領域グループに属する少なくとも１以上の第２の記憶領域が管理されているとともに、テープライブラリ装置における仮想的なテープドライブと前記磁気ディスクとの対応関係を管理する仮想テープドライブテーブルと、前記第２の記憶領域グループにおける仮想的なテープドライブに割り当てられた前記磁気ディスクの記憶領域の論理アドレスを管理する仮想テープ管理テーブルとを備え、前記インタフェースを介して前記テープライブラリ装置に対する命令を受信した場合には、当該命令を対応する磁気ディスクに対する命令に変換し、変換した当該命令に基づいて第１の記憶領域を選択し、選択した該第２の記憶領域に関する処理を、該変換した命令に従って実行し、前記インタフェースを介して磁気ディスクに対する命令を受信した場合には、第２の記憶領域を選択し、選択した該第１の記憶領域に関する処理を、受信した命令に従って実行するようにした。
【００１４】
【発明の実施の形態】
図１は、本発明を適用した計算機システムの一例を示す図である。
【００１５】
記憶装置システム0はディスクシステム1とフロントエンドサーバ6とで構成される。
【００１６】
ディスクシステム1は、ネットワークインタフェース11(図中ではLAN I/Fと略記)、ファイバチャネルインタフェース12(図中ではFC I/Fと略記)、CPU13、メモリ14、ディスクインタフェース15(図中ではディスクI/Fと略記)、1つ以上のディスク16で構成される。ディスクシステム1は、ネットワークインタフェース11及びファイバチャネルインタフェース12を介してフロントエンドサーバ6に接続される。
【００１７】
フロントエンドサーバ6は、LANに接続されるネットワークインタフェース61、ディスクシステム１に接続されるネットワークインタフェース65、ファイバチャネルスイッチに接続されるファイバチャネルインタフェース62、ディスクシステム１に接続されるファイバチャネルインタフェース66、CPU63、及びメモリ64とで構成される。ネットワークインタフェース61は、LANスイッチ5を介して1つ以上のNASクライアント計算機（以下NASクライアントとも言う。）3に接続され、NASクライアント3にファイルアクセスサービスを提供する。またファイバチャネルインタフェース62は、ファイバチャネルスイッチ4(図中ではFCスイッチと略記)を介して、複数のホスト計算機（以下、ホストとも言う。）2に接続され、ホスト2に対してディスクアクセスとテープアクセス処理を提供する。
【００１８】
管理コンソール7はLANスイッチ5、ネットワークインタフェース61を介してフロントエンドサーバ6に接続され、フロントエンドサーバ6の設定処理を行うとともに、ネットワークインタフェース65、ネットワークインタフェース11を経由してディスクシステム1の設定処理を行う。設定処理の具体的内容については後述する。
【００１９】
フロントエンドサーバ6では、ホスト2やNASクライアント3からのディスクアクセス要求、テープアクセス要求、ファイルアクセス要求の受け付けと、ディスクシステム1からのデータ読み出し、ディスクシステム1へのデータの書き込みを行う。これらの処理を行うプログラムはメモリ64に格納され、CPU63で実行される。
【００２０】
ディスクシステム1では、主としてフロントエンドサーバ6からディスクアクセス要求を受け付けて要求に従った処理を実行する。ディスクシステム１で実行される処理に必要なプログラムがメモリ14に格納されており、CPU13で実行される。またメモリ14はCPU13で動作するプログラムを格納する以外に、ホスト2やNASクライアント3からフロントエンドサーバ経由で受信するライトデータを一時的に格納するなどのキャッシュメモリとしての役割も持つ。ディスクインタフェース15は例えばSCSI (Small Computer Systems Interface)あるいはFibre Channelなどのプロトコルに従ったインタフェースであり、CPU13はディスクインタフェース１５を介してディスク16にアクセスする。
【００２１】
ディスク16は物理的な磁気ディスクドライブであってもよいし、ディスクアレイ装置のように、複数の磁気ディスクドライブをまとめて1つの論理的なディスクドライブに見せかけた形態のものであっても良い。本実施形態における説明ではディスク16はそれぞれが論理的なディスクであるものとし、以下とくに断りのない限り、ディスクという語は論理的なディスクを意味するものとする。磁気ディスク単体のような物理ディスクについては物理ディスクと表記する。
【００２２】
図2は記憶装置システム0の論理的な構成例を示した図である。とくにCPU13、CPU63で動作するプログラムの内容を中心に説明する。
【００２３】
ファイルサービス67はいわゆるNAS (Network Attached Storage)の機能を提供するプログラムで、ディスク16上のファイルを管理し、NASクライアント3からフロントエンドサーバが受信する、NFSやCIFSなどのプロトコルに従ったファイルアクセスリクエストを処理する際に実行される。以下、ファイルサービス67が管理するディスク16上のデータをNASデータと呼び、ディスク16のうち、NASデータの格納されたディスク16のことをNASデバイスと呼ぶ。
【００２４】
バックアップサービス69は、NASデータのバックアップ処理を専門に行うプログラムで、NASクライアント3上のバックアップサーバ31からフロントエンドサーバが受信するバックアップ・リストア要求に応答して動作する。
【００２５】
ブロックI/O受付部68は、ホスト2からディスクアクセスリクエストやテープアクセスリクエスト、ライブラリ制御のリクエスト等を受け付け、ディスクアクセスリクエストの場合にはそのままディスクシステム1に処理を出し、テープアクセスやライブラリ制御等のリクエストの場合には、仮想テープ・ライブラリ部114に処理を転送する。
【００２６】
仮想テープ・ライブラリ部114は、ブロックI/O受付部68からテープ装置又はライブラリ装置に対するコマンドを受け付けて、受け付けたコマンド処理する。例えばテープからのデータのリードを要求するコマンドを受け付けた場合には、仮想テープ・ライブラリ部114はこのコマンドをディスクに対するリードコマンドに変換して、ディスクシステム1にディスク16のリード要求を出し、ディスクシステム1からリードデータを受け取り、ブロックI/O受付部68へと渡す。
【００２７】
デバイス管理部115は、ディスク16と仮想テープとの対応付けと、仮想テープ装置、仮想ライブラリ装置の準備を行う。デバイス管理部115は、ディスク16をディスクデバイスグループ161、ファイルシステムグループ162、仮想テープデバイスグループ163、未割り当てデバイスグループ164の4つのグループに分けて管理する。ディスクデバイスグループ161はホスト2から磁気ディスクとしてアクセスされるディスクの集合、ファイルシステムグループ162はNASデータを格納するディスク、即ちNASデバイスの集合、仮想テープデバイスグループ163はホスト2などからテープ上のデータに対するアクセス要求を受けた際にアクセスされる、即ち仮想テープとしてアクセスされるデータを格納するディスクの集合、未割り当てデバイスグループ164は前述の3グループのいずれにも属さない、即ち未使用のディスクの集合である。以下、ディスクデバイスグループ161に属するディスクのことをディスクデバイスと呼ぶ。
【００２８】
尚、ファイルサービス６７及びバックアップサービス６９はフロントエンドサーバ6のメモリ64に格納されており、CPU63によって実行されるプログラムである。又、ブロックI／O受付部68、デバイス管理部115、及び仮想テープ・ライブラリ部114は各々、フロントエンドサーバ6のメモリ64に格納されているプログラムがCPU63によって実行されることにより実現される。
【００２９】
ディスクシステム1のディスクアクセス処理部111では、フロントエンドサーバ6からファイバチャネルインタフェース12を介してディスク16へのアクセス要求を受け付け、ディスク16に対するリード・ライト処理を行う。
【００３０】
またミラー/スプリット部112では、ディスク16に格納されたデータの複製データ、あるいはディスク16の一部の記憶領域に格納されたデータの複製データを作成して、ディスクシステム内の別ディスクに格納する処理を実行する。即ち、ミラー／スプリット部112が複製指示を受信すると、指示対象のディスクに複製指示を受信した時点で格納されていたデータ（スナップショットデータ）が複製されて、別ディスクに格納される。尚、ディスクシステム1においては、複製作業中もデータのリード・ライトが可能である。スナップショットを取得しながらデータのリード又はライトコマンドを受け付けるための具体的な実現方式は、例えば特開2002-7304号や特開2000-242437に開示されている。
【００３１】
尚、ディスクアクセス処理部111及びミラー／スプリット部112は、ディスクシステム1のメモリ14に格納されているプログラムがCPU13によって実行されることにより、実現される。
【００３２】
続いて図3から図6を用いて、デバイス管理部115、又は仮想テープ・ライブラリ部114で管理される情報を説明する。
【００３３】
まず図3は、ディスクデバイスグループ161若しくはファイルシステムグループ162に属するディスクを管理する、ディスク管理テーブル200の一例を示す図である。ディスクシステム1は、ディスク16の各々に一意な識別子を付与して管理する。識別子としては0以上の整数値が用いられる。この識別子をデバイス番号と呼ぶ。
【００３４】
ディスク管理テーブル200の各行には、それぞれのディスクのデバイス番号201、サイズ202、割当種別203、WWN 204、LUN 205が存在する。サイズ202はデバイス番号201に対応したディスクのサイズを表す。割当種別203は各ディスクがディスクデバイスグループ161若しくはファイルシステムグループ162のいずれに属するかを表し、ディスクデバイスグループ161に属するディスクには”FC”、ファイルシステムグループ162に属するディスクには”LAN”の識別子がつけられて、管理されている。
【００３５】
WWN 204とLUN 205は各ディスクに付与されるWWN(World Wide Name)とLUN (Logical Unit Number)であり、ホスト2からディスク16をアクセスするとき、そしてフロントエンドサーバ6のブロックI/O受付部68がディスク16をアクセスするときに用いられるものである。ホスト2がディスク16をアクセスするときに指定するWWNと、フロントエンドサーバ6がディスク16をアクセスするときに指定するWWNとは、ここでは同一の値であることとする。発明の実施の形態によってはそれぞれのWWNが異なる形態もありえるが、その場合にはディスク管理テーブル200でホスト2がディスクにアクセスする際に指定するWWNと、フロントエンドサーバ6がディスク16をアクセスするときに指定するWWNの両方を管理する。
【００３６】
マウント名206は、NASクライアント3がNASデバイスをマウントする際に指定するディレクトリ名であり、ファイルシステムグループ162に属するディスクにのみ関連する項目である。そのためディスクデバイスグループ161に属するディスクの場合には、マウント名206には何も値が入らない。
【００３７】
図4は仮想テープデバイスグループ163に属するディスクを管理する仮想テープ管理テーブル210の一例を示している。
【００３８】
仮想テープ管理テーブル210の説明の前に、まず一般的なテープライブラリ装置について説明する。テープライブラリ装置は、磁気テープを格納しておく複数のスロット、スロットからテープ装置へ、あるいはテープ装置からスロットへと磁気テープを搬送するロボット、及び磁気テープが装填されるテープ装置（以下、テープドライブとも言う。）で構成される。テープ装置とロボットは1台のテープライブラリ装置についてそれぞれ1台あるいは複数台存在する。テープライブラリ装置では、各磁気テープ、各スロットを一意に特定するために、各磁気テープ、各スロットに識別情報をもたせる。各テープに付いている識別情報をボリュームタグ、各スロットの識別情報をエレメントアドレスと呼ぶ。
【００３９】
本発明の実施形態では、実際の磁気テープの代わりに磁気ディスクを用い、ディスクを使用して磁気テープをエミュレートする。このエミュレートされた磁気テープのことを仮想テープと呼ぶ。また本実施形態においては、スロット、ロボット及びテープ装置をも記憶装置システム0がエミュレートし、記憶装置システム0はテープライブラリ装置として振舞うことができる。この様に記憶装置システム0によってエミュレートされたテープライブラリ装置を、仮想テープライブラリ装置と呼ぶ。仮想テープライブラリ装置においては、ホスト2などからテープデバイスに対するWRITEコマンドとライトデータが送られてきた場合、ライトデータはWRITEコマンドで指定される仮想テープに対応するディスク内の指定領域に格納される。本実施形態では、各仮想テープに付いている識別情報をテープ番号211とよび、各スロットの識別情報をスロット番号212と呼ぶ。
【００４０】
記憶装置システム0は、1つないしそれ以上のテープライブラリ装置をエミュレートし、仮想テープライブラリ装置1台について、1つの仮想テープ管理テーブル210を持つ。仮想テープ管理テーブル210の各行には、テープ番号211、スロット番号212、サイズ213、デバイス番号214、開始LBA215、終了LBA216、ポインタ217、そしてoptionフラグ218の項目がある。
【００４１】
テープ番号211は、仮想テープ・ライブラリ部114が生成する仮想テープの識別情報である。スロット番号212は仮想テープ・ライブラリ部114が生成する仮想テープライブラリ装置のスロットの番号である。各仮想テープに付与されるテープ番号は1以上の整数値であり、仮想テープ管理テーブル210のテープ番号211の欄が0の場合、その行に対応するスロットにはテープが格納されていない事を示す。そしてテープ番号211の欄の値が0でない行については、そのテープ番号211によって識別される仮想テープが、スロット番号212で示される番号のスロットに格納されている事を表している。
【００４２】
サイズ213は仮想テープの容量を表す。デバイス番号214は仮想テープのデータが実際に格納されるディスク16のデバイス番号を示し、開始LBA 215及び終了LBA 216は、当該デバイス番号で示されるディスク16のどの領域を用いて仮想テープをエミュレートしているかを示す。開始LBA215は仮想テープをエミュレートしているディスク上の記憶領域の先頭アドレスを、終了LBA216は末尾アドレスを各々示す。
【００４３】
ポインタ217は、仮想テープに対するリード若しくはライト要求が来たときに、データの読み書きが開始される位置(LBA)を示す。テープデバイスのようなシーケンシャルアクセスデバイスでは、ディスクのようにREAD若しくはWRITEコマンド内でアクセス対象のLBAが指定される事はなく、テープの先頭から順にアクセスされる。そのため仮想テープにおいては、仮想テープへのアクセスが終了するたびに、現在どの位置までアクセスがされたかを記録しておく必要があり、ポインタはそのために使用される。最後のoptionフラグ218は、NASデータのバックアップデータが格納された仮想テープについて使用されるもので、具体的な使われ方については後述する。
【００４４】
図5は、未割り当てデバイスグループ164に属するディスクを管理する、未割当デバイス管理テーブル220の一例を示す図である。未割当デバイス管理テーブル220の各エントリには、それぞれのディスクのデバイス番号221、サイズ222、開始LBA223、終了LBA224が存在する。サイズ222はデバイス番号221に相当するディスクの容量を表し、開始LBA223、終了LBA224は、当該ディスクの中で仮想テープとして使用されていない領域を表す。即ち、本発明の実施形態では、1つのディスクに複数の仮想テープが割り当てられることがある。また１つのディスクに仮想テープとして用いられる記憶領域と未割当の記憶領域が存在する場合もある。いずれの領域も使用されていないディスクについては、開始LBA223、終了LBA224に-1が入る。
【００４５】
図6は、仮想テープ・ライブラリ部114で管理される、仮想テープ装置の情報を管理するための仮想テープドライブテーブル230、及び仮想ロボットの情報を管理するための仮想ロボットテーブル240の一例を示す図である。本実施形態における仮想テープライブラリ装置では、各仮想テープ装置、各仮想ロボットそれぞれがWWNとLUNを持ち、ホスト2等は仮想テープ装置や仮想ロボットをファイバチャネルデバイスとしてアクセスできる。
【００４６】
仮想テープ管理テーブル210と同様、仮想テープドライブテーブル230、仮想ロボットテーブル240は、仮想テープライブラリ装置1台に対して1つ生成される。
【００４７】
まず仮想テープドライブテーブル230について説明する。ドライブ番号231は仮想テープライブラリにある仮想テープドライブそれぞれに付与される識別子である。図6の仮想テープドライブテーブル230では4つのエントリがあるので、本実施形態における仮想テープライブラリ装置では4台の仮想テープドライブ（即ち、仮想テープ装置）があることになる。WWN232及び LUN233はそれぞれ仮想テープドライブのWWN、LUNである。TAPE IN 234は、当該仮想テープドライブに仮想テープが装填されている場合に、どの仮想テープが装填されているかを示す。仮想テープが装填されていない仮想テープドライブについては、TAPE IN 234のエントリには0が入る。図6の例ではドライブ番号231が1の仮想テープドライブにテープ番号3の仮想テープが装填されている様子が示されている。
【００４８】
次に仮想ロボットテーブル240について説明する。ロボット番号241は、各仮想ロボットに割り当てられた識別番号である。WWN242及びLUN243は各々、仮想ロボットに割り当てられたWWN及びLUNである。
【００４９】
以上図3から図6に示す各テーブルは、フロントエンドサーバ6のメモリ64に格納されている。
【００５０】
続いて図7から図１０を用いて、ディスク、仮想テープドライブ、及び仮想ロボットの設定又は管理のための処理を説明する。図７から図１０に示す処理は、記憶装置システム0の利用者が管理コンソール7から指示を出す事で開始される。
【００５１】
図7は、ディスクシステム1に新規に物理ディスクを増設し、増設された物理ディスクから論理ディスクを形成して、この論理ディスクを未割当デバイスグループ164に登録する処理の一例を示す図である。
【００５２】
記憶装置システム0では、全てのディスク16は最初は未割当デバイスグループ164に所属する。また新たにディスクを増設した場合にも、そのディスクはまずは未割当デバイスグループ164に所属する。また、実際にディスクシステム1に増設されるディスクは物理ディスクであるため、物理ディスクから論理ディスクを形成する作業が最初に必要となる。
【００５３】
まずステップ1001において、利用者は管理コンソール7から、増設された物理ディスクを指定するための情報を入力する。続いてステップ1002では、管理者は管理コンソール7を用いて、ステップ1001で指定された物理ディスクからどのような論理ディスクを形成するかを指定する。具体的には論理ディスクの容量、RAID1やRAID5などの冗長モード等が指定される。
【００５４】
ステップ1002の論理ディスクの指定が完了すると、未割当デバイス管理テーブル220にエントリが追加され、指定された論理ディスクの容量が未割当デバイス管理テーブル220のサイズ222エントリに登録される。また、開始LBA223および終了LBA224には“−1”の値が登録される。さらに、当該論理ディスクにデバイス番号が付けられ、未割当デバイス管理テーブル220のデバイス番号欄221に登録される（ステップ1003）。以上により、未割当デバイスグループ164への登録処理が完了する。
【００５５】
尚、未割当デバイス管理テーブル220への情報の登録は、管理コンソール7から利用者の入力情報に基づいて、デバイス管理部115によって実行される。但し、論理ディスクの識別情報であるデバイス番号に関しては、ディスクシステム1が自動的に番号付けを行い、付与した番号をデバイス管理部115に通知する形態でもよいし、装置の利用者が管理コンソール7から番号を指定する形態でも良い。
【００５６】
図8は、未割当デバイスグループ164に登録されているディスクを、ディスクデバイスグループ161、ファイルシステムグループ162、あるいは仮想テープデバイスグループ163のいずれかに割り当てる処理の一例を示す図である。
【００５７】
まず利用者は管理コンソール7から、記憶装置システム0に対し、未割当デバイスグループに属するディスクを、ディスクデバイスグループ161またはファイルシステムグループ162のいずれかに割り当てるのか、又は仮想テープデバイスグループに割り当てるのかを指定する。記憶装置システム0ではこの指定情報を受け、デバイス管理部115が、利用者の指示がディスクデバイス若しくはNASデバイスの割当か、それとも仮想テープの割り当てかを判定し(ステップ1101)、ディスクデバイス若しくはNASデバイスの割当の場合にはステップ1102以降の処理を行う。
【００５８】
ステップ1102で、記憶装置システム0は、管理コンソール7を介して利用者から、割り当て対象ディスクの容量、WWN及びLUNの情報と、未割当デバイスグループ164に属するディスクをディスクデバイスグループ161若しくはファイルシステムグループ162のどちらに所属させるかを示す種別情報を受け取る。そして記憶装置システム0のデバイス管理部115では、これらの指定情報に問題がないかチェックし(ステップ1103)、問題がない場合にはステップ1104へと進む。問題がある場合、例えば別のディスクに割り当てられていたLUNと同一のLUNが指定された場合、あるいは未割り当てデバイスグループ164に属するディスクよりも大きい容量を指定された場合には、そのディスクデバイスは定義できないため、ステップ1102に戻って、利用者にふたたび容量、WWN、LUNを指定させる。
【００５９】
ステップ1104でデバイス管理部115は、未割当デバイス管理テーブル220を検索して、適切なディスクを選択する。適切なディスクとは、例えば指定された容量ともっとも近い容量を持つディスクなどである。そしてデバイス管理部115は、選択されたディスクにステップ1102で指定されたWWNやLUNを設定する。
【００６０】
そしてステップ1105でデバイス管理部115は、選択されたディスクのデバイス番号と、ステップ1102で指定された容量や、種別や、WWNや、LUNをディスク管理テーブル200に設定する。更にデバイス管理部115は、未割り当てデバイス管理テーブル220から当該ディスクのエントリを削除し、処理を終了する。
【００６１】
ステップ1101で記憶装置システム0が、利用者が未割当ディスクを、仮想テープデバイスグループに割り当てるよう指示したと判断した場合、ステップ1111以降の処理に進む。
【００６２】
ステップ1111では、記憶装置システム0は、管理コンソール7を介して利用者から、新たに割り当てたい仮想テープの数と容量の情報を受け取り、ステップ1112ではデバイス管理部115は受信したそれらの情報に問題がないかをチェックする。このチェックはステップ1103とほぼ同様であり、割り当てたい仮想テープの容量が、未割り当てデバイスグループ164にあるディスクの総容量よりも多い場合には仮想テープを利用者の指定通りに形成することができないために、ステップ1111に戻って再び利用者に仮想テープの数と容量を指定させる。
【００６３】
ステップ1113では、記憶装置システム0は管理コンソール7を介して利用者から、生成した仮想テープをどのライブラリに搬入するかについての指定情報を受け取る。記憶装置システム0では複数の仮想テープライブラリを定義でき、仮想テープライブラリ1台に対して1つの仮想テープ管理テーブル210が対応するので、ステップ1113での指定により、どの仮想テープ管理テーブル210に仮想テープを登録するかが決まる。
【００６４】
ステップ1114では、デバイス管理部115が、未割当デバイス管理テーブル220を検索して、適切なディスクを選択する。そして仮想テープ・ライブラリ部114が、選択されたディスクにテープ番号を付与すると共に、ステップ1112で利用者から指定された容量に合わせて開始LBAと終了LBAを決定し、さらにスロットを割り当てることにより、選択されたディスクに対する仮想テープの割り当てを行う。
【００６５】
そして、ステップ1115ではデバイス管理部115が、ステップ1114で仮想テープに割り当てられたテープ番号をステップ1113で指定された仮想テープライブラリに対応する仮想テープ管理テーブル210に登録する。更にデバイス管理部115は、ステップ1114で仮想テープに割り当てられたスロットの番号、ステップ1112で利用者から指定された仮想テープのサイズ、ステップ1114で選択されたディスクの番号、ステップ1114で割り当てられた開始LBAと終了LBAを仮想テープ管理テーブル２１０に登録する。また仮想テープ管理テーブルのポインタ217には初期値として“0”が格納される。そして、デバイス管理部115は、未割り当てデバイス管理テーブル220の内容も更新して、仮想テープの割り当て処理を終了する。
【００６６】
図9は、仮想テープライブラリ装置の定義処理の一例を示す図である。記憶装置システム0では、実際のテープライブラリ装置をエミュレートした仮想テープライブラリ装置を定義できる。テープライブラリ装置では、各ベンダの製品・モデルにより、格納できるテープ数やテープドライブ数、ロボット数が決まっているので、まずエミュレート対象の装置名を利用者が指定する必要がある。
【００６７】
ステップ1201では、管理コンソール7を通してエミュレート対象の装置名・モデルを利用者が指定し、記憶装置システム0はその情報を受信する。これによりスロット数、テープドライブ数、ロボット数が決まるため、ステップ1202では、受け取ったエミュレート対象装置名に基づき、仮想テープ・ライブラリ部114が、仮想テープ管理テーブル210を生成する。ステップ1203では、利用者は仮想テープドライブ及び仮想ロボットのWWNとLUNを管理コンソール7を介して指定し、記憶装置システム0はその情報を受信する。ステップ1204では仮想テープ・ライブラリ部114がそれらの情報に問題がないかチェックし、問題がない場合には仮想テープ・ライブラリ部114が仮想テープドライブテーブル230と仮想ロボットテーブル240とを生成して、ステップ1203で指定されたWWN及びLUNを登録し、処理が終了する。
【００６８】
記憶装置システム0では、ディスクデバイスグループ161、ファイルシステムグループ162に属するディスクや、仮想テープのなかで不要になったものについて、別のグループに割り当てなおす事もできる。例えばNASクライアント3の書き込みデータが増加してきた場合にはファイルシステムグループ162のディスクを増やす必要があるが、未割り当てデバイスグループ164に必要な容量のディスクがない場合には、仮想テープデバイスグループループ163に登録されているディスクの一部をファイルシステムグループ162に転用する事が可能である。この場合、仮想テープデバイスグループ163に属するディスクを一旦未割り当てデバイスグループに登録して、再度図8に示す割り当て処理を実行する。
【００６９】
図10は、ディスクデバイスグループ161、ファイルシステムグループ162、あるいは仮想テープデバイスグループ163に登録されているディスクを、未割当デバイスグループ164に返却する際の、デバイス管理部115の処理の一例を示す図である。
【００７０】
返却の要求は利用者が管理コンソール7を介して記憶装置システム0に指示することで行われる。
【００７１】
まずステップ1301では、利用者からの入力情報に基づいて、ディスクデバイスグループ161あるいはファイルシステムグループ162に属するディスクを未割り当てデバイスグループに返却するのかをデバイス管理部115が判定し、そうである場合には、返却されるディスクデバイス若しくはNASデバイスのデバイス番号を、管理コンソール7を介して利用者から受け取る(ステップ1302)。
【００７２】
そしてデバイス管理部115は、ディスク管理テーブル200から当該デバイス番号のエントリを削除し、未割り当てデバイス管理テーブル220のほうに当該デバイス番号のディスクの情報を登録して処理を終了する(ステップ1303)。
【００７３】
ステップ1301において、仮想テープとして使用しているディスクの返却だと判断された場合には、ステップ1305に進み、デバイス管理部115は利用者から管理コンソール7を介してテープ番号を受け取る。
【００７４】
続いてデバイス管理部115は、仮想テーブドライブテーブル230の各エントリのTAPE IN234の欄を参照して、当該仮想テープがテープドライブに装填されているか判定する（ステップ1306）。装填されている場合には、デバイス管理部115は、この仮想テープは現在使用中であると判断してエラー終了する。装填されていない場合には仮想テープ管理テーブル210から、ステップ1305で受信したテープ番号のエントリを削除し、未割り当てデバイス管理テーブル220に削除された仮想テープを構成していたディスクを登録して処理を終了する（ステップ1307）。
【００７５】
尚、返却対象の仮想テープがあるディスクの一部領域だけを使用していた仮想テープであり、未割り当てデバイス管理テーブル220にはすでに当該ディスクのエントリが存在する場合には、デバイス管理部115は当該ディスクのエントリの開始LBA223、終了LBA224を更新し、処理を終了する。
【００７６】
続いて図11以降では、仮想テープライブラリ装置がホスト2から操作されるときの処理の流れと、仮想テープライブラリ装置を使用したバックアップ・リストア処理の流れについて説明する。
【００７７】
まず図11では、ホスト2から記憶装置システム0に対して、テープライブラリ装置のテープドライブやロボットへの指示に関するコマンドが到着した時の処理の流れと、仮想テープライブラリ装置へのデータの書き込み処理を説明する。
【００７８】
仮想テープドライブと仮想ロボットは、ホスト2などからファイバチャネルインタフェース62を介して記憶装置システム0が受信する、ANSIにて規定されているSCSIシーケンシャルアクセス型デバイス用のコマンドであるSCSI Stream Commands、又はSCSIメディアチェンジャ型デバイス用のコマンドであるSCSI Media Changer Commandsコマンドに従って動作する。図11ではテープドライブへのテープの装填処理を要求するコマンドと、テープへのデータライト処理を要求するコマンドが発行された場合を例にとって説明する。
【００７９】
まずステップ1501で記憶装置システム0のブロックI/O受付部68は、ホスト2から、ライブラリ装置のスロットからテープを取り出して、テープドライブにテープを装填するよう要求する、MOVE MEDIUMコマンドを受信する。ブロックI/O受付部は受信したMOVE MEDIUMコマンドを仮想テープ・ライブラリ部114に引き渡す。
【００８０】
例えばこのときのコマンドが、図4の仮想テープ管理テーブル210中のスロット番号212が2のスロットに格納されている仮想テープ、即ちテープ番号211が3の仮想テープを、仮想テープドライブテーブル230で管理されている仮想テープドライブのうち、ドライブ番号231が1の仮想テープドライブに移動するよう指示するコマンドだったとする。
【００８１】
ステップ1502では、仮想テープドライブに仮想テープが装填された状態にするために、仮想テープ・ライブラリ部114が、仮想テープドライブテーブル230中のドライブ番号231が1の仮想テープドライブのTAPE IN 234のエントリに装填すべき仮想テープのテープ番号である3を書き込む。
【００８２】
ステップ1503では、記憶装置システム0のブロックI/O受付部68が、ホスト2から、ドライブ番号が1のテープドライブに対するWRITEコマンドを受信する。このWRITEコマンドは仮想テープドライブに対するコマンドであるから、ブロックI/O受付部はこのコマンドを仮想テープ・ライブラリ部114に引き渡す。
【００８３】
ステップ1504及びステップ１５０５では、ドライブ番号が1の仮想テープドライブに現在装填されている仮想テープにデータを書き込むため、仮想テープ・ライブラリ部114が仮想テープドライブに装填されている仮想テープのテープ番号を特定し、さらにテープ番号から、その仮想テープに対応するディスクのデバイス番号と、書き込みを開始するべきLBAを特定していく。そして特定されたLBAからライトデータが仮想テープに書き込まれる。
【００８４】
具体的には、仮想テープ・ライブラリ部114はまず、仮想テープドライブテーブル230を参照し、ドライブ番号231が1の仮想テープドライブに対応するTAPE IN 234には3が書き込まれている事から、テープ番号が3の仮想テープにデータを書き出せばよいことを把握する。続いて仮想テープ・ライブラリ部114は、仮想テープ管理テーブル210を参照してテープ番号211が3の仮想テープに相当するディスクのデバイス番号は102であるから、デバイス番号が102であるディスクにライトデータを書き込めばよいことを認識する（ステップ1504）。
【００８５】
ステップ1505では、仮想テープ・ライブラリ部114が仮想テープ管理テーブル210のポインタ217を参照して、書き込みを開始するLBAを決定する。そして、仮想テープ・ライブラリ部114が、決定されたLBAからライトデータを書き込むようディスクシステム1にライト要求を発行する。仮想テープ・ライブラリ部114からのライト要求を受信したディスクアクセス処理部111は、ライトデータをデバイス番号が214のディスクの決定されたLBAに続く記憶領域に書き込む。
【００８６】
書き込みが終了すると、ステップ1506で仮想テープ・ライブラリ部114が仮想テープ管理テーブル210のポインタ217の値を更新して、処理を終了する。即ち仮想テープ・ライブラリ部114はポインタ217を、ライトデータのサイズ分だけ後にずらす。
【００８７】
次に図12から図16を用いて、NASデータのバックアップ・リストア処理について説明する。
【００８８】
ファイルシステムグループ162に属するディスクは、ファイルサービス67によってファイルシステムが形成されNASクライアント3からファイルレベルでアクセスされる。NASデータのバックアップは、バックアップサーバ31からの指示に従ってバックアップサービス69が仮想テープへデータをバックアップすることによって実施される。本実施形態におけるバックアップ処理においては、バックアップサーバ31とバックアップサービス69との間でNDMP (Network Data Management Protocol)に従った命令を用いてバックアップ・リストア処理に必要な命令・情報をやり取りするものとするが、これに限定されるものではない。NDMPでは、バックアップサーバ31とバックアップサービス69との間でLANを介した通信を行い、LANを介してテープドライブやライブラリロボットの制御を行うためのSCSIコマンドをやりとりする方法と、バックアップ・リストアのコマンドに関する命令形式が規定されている。
【００８９】
図12及び図13は、NASデータのバックアップ処理において、主にバックアップサービス69が行う処理の一例を示す図である。バックアップ処理における最初の処理は図11における処理と同様、仮想テープの装填処理である。そのため図12及び図13に示すバックアップ処理ではまず、ブロックI/O受付部68と仮想テープ・ライブラリ部114が図11のステップ1501、1502と同様の処理を行い、仮想テープの準備を行う。
【００９０】
続いてバックアップサービス69は、バックアップサーバ31からバックアップを指示するコマンドを受信する。その時同時にバックアップサービス69は、バックアップ対象のファイルシステム名、バックアップに使用する仮想テープドライブの情報を、コマンドのパラメータあるいは環境変数などの手段で受け取る（ステップ2001）。
【００９１】
ステップ2002ではバックアップサービス69が、ステップ2001で受け取ったバックアップ対象ファイルシステム名をディスク管理テーブル200のマウント名206から検索し、バックアップ対象のデバイス番号を特定する。
【００９２】
ステップ2003では、バックアップサービス69が、ステップ2001で受け取っているバックアップに用いられる仮想テープドライブの情報から、仮想テープドライブテーブル230を参照して、当該仮想テープドライブに現在装填されているテープ番号を得る。さらにバックアップサービス69は、テープ番号から、仮想テープ管理テーブル210を参照して、その仮想テープに対応するディスクのデバイス番号を得る。その際、バックアップサービス69は、当該仮想テープをNASデータのバックアップに使用することを示すフラグとして、仮想テープ管理テーブル210のoptionフラグ218の値を1にする。
【００９３】
ステップ2004以降では、バックアップ対象のディスクからバックアップ先の仮想テープを構成するディスクへの複製処理を、ディスクシステム1のミラー/スプリット部112を利用して実施するよう、バックアップサービス69がディスクシステム1に対してミラー/スプリット部112の起動を指示する。ミラー/スプリット部112では、ディスク全体の複製だけでなく、ディスクの特定領域の複製を作成することもできる。従って、複製の指示にあたっては、バックアップサービス69は、バックアップ元のディスク（NASデバイス）のバックアップ開始LBAと終了LBA、そしてバックアップ先のディスク（仮想テープ）の開始LBAと終了LBAとを指定してミラー/スプリット部112の起動を指示する。
【００９４】
ステップ2004ではまず、仮想テープの容量がバックアップ対象のディスクの容量よりも大きいかどうかを、バックアップサービス69が判定する。大きい場合にはバックアップ元ディスクに格納されているデータ全体をバックアップ先のディスクに複製するよう、バックアップサービス69がディスクシステム1に対して指示する(ステップ2005)。
【００９５】
もし仮想テープの容量がバックアップ元ディスクの容量よりも小さい場合には、ステップ2006以降に進み、複数の仮想テープにまたがってバックアップデータをコピーする処理に移る。ステップ2006移行の処理は図13を用いて説明する。
【００９６】
ステップ2006ではバックアップ元のディスクの一部記憶領域に格納されたデータを、仮想テープを構成するバックアップ先ディスクに複製するよう、バックアップサービス69がディスクシステム1に指示する。複製を行うサイズは、仮想テープのサイズに合わせることになる。
【００９７】
ステップ2007では、バックアップサービス69が、仮想テープ管理テーブル210のバックアップ先の仮想テープのOptionフラグ218の値を2にする。このoptionフラグ218は、当該仮想テープにNASデータをバックアップした場合に、1ないし2の値をとる。バックアップサービス69が取得するバックアップデータが1巻の仮想テープに収まらない場合には、optionフラグ218の値が2になり、バックアップデータが1巻の仮想テープに収まる場合にはoptionフラグ281の値が1になる。
【００９８】
ステップ2008では、バックアップサービス69が、仮想テープの交換処理が必要か否かを判定する。バックアップ元のディスクに、仮想テープにコピーされていないデータがまだ存在する場合には、仮想テープの交換が必要と判定される。
【００９９】
交換が必要な場合、ステップ2009に進み、バックアップサービス６９はバックアップサーバ31に対して現在の仮想テープが終端に達したことを通知する。バックアップサーバ31はこの通知を受け、テープの交換処理の要求を記憶装置システム0に出し、バックアップサービス69がその要求を受け取る(ステップ2010)。この要求は具体的にはMOVE MEDIUMコマンドあるいはEXCHANGE MEDIUMコマンドなどをバックアップサーバ31が送信することで実現される。
【０１００】
ステップ2011では、バックアップサービス69からMOVE MEDIUMコマンド若しくはEXCHANGE MEDIUMコマンド等のコマンドを引き渡された仮想テープ・ライブラリ部114が、仮想ドライブテーブルを更新する。この処理は図10のステップ1502とほぼ同様である。
【０１０１】
ステップ2012にてバックアップサービス69がバックアップ処理の再開要求をバックアップサーバ31から受信すると、バックアップサービス69はバックアップ処理を再開する。
【０１０２】
ステップ2013ではステップ2003と同様の処理が実行され、仮想テープを構成するディスクが特定される。その後はステップ2006に戻って、バックアップ元のディスクに格納されているデータを仮想テープを構成するディスクへコピーする処理と、仮想テープの交換処理を、バックアップ元のディスクに格納されているデータがすべて仮想テープにコピーされるまで繰り返す。
【０１０３】
続いて図14、図15を用いて、仮想テープからファイルシステムグループ162に属するNASデバイスへNASデータをリストアする時の、バックアップサービス69における処理の流れを説明する。
【０１０４】
リストア処理でも図12及び図13に示すバックアップ処理と同様、仮想テープの装填処理を行う。そのため、最初に図11のステップ1501、1502の処理を行って仮想テープの準備を実施する。仮想テープの準備の完了後、バックアップサービス69はバックアップサーバ31よりリストアコマンドを受信し(ステップ2101)、これによりバックアップサービス69におけるリストア処理が開始される。
【０１０５】
ステップ2102及びステップ2103は、各々図12のステップ2002及びステップ2003とほぼ同様の処理で、これらの処理によってリストア先のディスクとリストア元の仮想テープを構成するディスクが特定される。
【０１０６】
ステップ2104では、バックアップデータすなわち仮想テープに格納されているこれからリストアすべきデータが、複数の仮想テープにまたがって格納されているか否かを、バックアップサービス69が仮想テープ管理テーブル210のoptionフラグ218をチェックすることにより判定する。
【０１０７】
バックアップデータが複数の仮想テープにまたがって格納されていない場合にはステップ2105に進み、当該仮想テープを構成するディスク内に他の仮想テープが定義されていないかを、バックアップサービス69が仮想テープ管理テーブル210を参照してチェックする。
【０１０８】
仮想テープを構成するディスクに他の仮想テープが定義されていない場合は、当該ディスクの中にはリストア対象のデータだけがそのまま格納されているはずなので、このディスクをそのままファイルシステムグループ162に属するNASデバイスに変更することでリストア処理を完了する事ができる。そのためステップ2106では、現在仮想テープ管理テーブル210で管理されているリストア元データの入っているディスクと現在ディスク管理テーブル200で管理されているリストア先のディスクとを、バックアップサービス69が入れ替えることで、リストア処理と同等の処理を実現し、リストア処理を終了する。具体的には、バックアップサービス69は、仮想テープ管理テーブル210に登録されているリストア元の仮想テープに対応するデバイス番号と、ディスク管理テーブル200に登録されているリストア先のNASデバイスに対応するデバイス番号とを入れ替え、仮想テープ管理テーブル210に現在NASデバイスとして管理されているディスクのデバイス番号を、ディスク管理テーブル200に現在仮想テープとして管理されているディスクのデバイス番号を各々登録する。
【０１０９】
リストア処理が終了すると、リストア前に仮想テープとして使用されていたディスクに対してNASクライアント3からアクセスできるようになり、NASクライアント3からアクセスされていたディスクは、仮想テープとして取り扱われることになる。
【０１１０】
ステップ2104においてバックアップデータが複数の仮想テープに跨って格納されていると判断された場合、若しくはステップ2105においてリストア元のディスクに他の仮想テープが定義されていると判断された場合には、図15に示すステップ2111移行の処理が実行される。
【０１１１】
ステップ2111以降では、リストア元のディスクからリストア先のディスクへのデータコピー処理を、図12及び図13に示すバックアップ処理と同様に、ディスクシステム1のミラー/スプリット部112を利用して行う。ディスクからディスクへのコピーを複数回行うため、バックアップサービス69はコピー位置を記憶するディスクポインタを用意してこれを管理する。
【０１１２】
ステップ2111ではバックアップサービス69がディスクポインタの値を0に初期化する。続いてステップ2112で、リストア元ディスクに格納されているデータを、ミラー/スプリット部112を利用してリストア先ディスクに複製するよう、バックアップサービス69がディスクシステム1に指示して、ミラー/スプリット部112を起動させる。この時リストア先ディスクにおける複製開始位置（即ち、バックアップデータの書き込みを開始する位置）はディスクポインタで示されたLBAであり、コピーのサイズは仮想テープの容量と同一であるものとして、バックアップサービス69からディスクシステム1にコピーの指示が発行される。
【０１１３】
ステップ2113ではバックアップサービス69が、ディスクポインタの値を仮想テープの容量に相当するブロック数の分だけ加算する。ステップ2114では、ディスクポインタがリストア先のディスクの終端に達したかをバックアップサービス69が判定し、ディスク終端まで達した場合にはリストア処理は終了する。
【０１１４】
ディスクポインタがリストア先のディスクの終端に達していない場合には、仮想テープを入れ替えてリストア処理を継続するため、バックアップサービス69はテープが終端まで達した事をバックアップサーバ31に通知し（ステップ2009）、バックアップサーバ31の指示に従った仮想テープの交換処理を行う（ステップ2010及びステップ2011）。これらの処理は図13のステップ2009からステップ2011の処理と同一である。
【０１１５】
仮想テープの交換処理が終了すると、バックアップサービス69は、バックアップサーバ31からリストア処理の再開要求を受信し(ステップ2115)、受信したリストア処理の再開要求に基づいて、リストア元の仮想テープを構成するディスクを特定する(ステップ2013)。その後は、ステップ2112に戻ってリストアすべきバックアップデータが全てリストアされるまでステップ2112以降の処理が繰り返される。
【０１１６】
図16では、ファイルシステムグループ162に属するディスクの内容、即ちNASデータをバックアップした仮想テープの内容を、ホスト2から読み出す場合の処理の流れを説明する。ステップ1501、ステップ1502は仮想テープ装填などの準備処理であり、図11に示す仮想テープへのライト処理におけるステップ1501からステップ1502までの処理と同じである。
【０１１７】
続いてステップ2303においてブロックI/O受付部68がホスト2から仮想テープドライブに対するREADコマンド受信する。するとこのREADコマンドは仮想テープ・ライブラリ部114に引き渡され、ステップ2304において仮想テープ・ライブラリ部114が、仮想テープドライブテーブルと仮想テープ管理テーブルを参照し、READコマンドにて指定されるドライブ番号に基づいてアクセス対象の仮想テープに対応するディスクのデバイス番号を特定する。
【０１１８】
ステップ2305にて、仮想テープ・ライブラリ部114は、リード対象の仮想テープの内容がファイルシステムグループ162に属するディスクのデータ（即ちNASデータ）をバックアップしたものであるか判定する。この判定は、仮想テープ管理テーブル210のoptionフラグ218を参照することによって可能である。
【０１１９】
NASデータのバックアップ内容をリードする場合には、ステップ2306でファイルサービス69は仮想テープを構成しているディスクをマウントし、当該ディスクにファイルシステムとしてアクセスできるようにする。ステップ2307では、ファイルサービス31において当該ディスクのデータを読み出し、一般的なバックアップ形式、例えばtarなどの形式のデータを生成し、仮想テープ・ライブラリ部114に順次データを渡し(ステップ2308)、仮想テープ・ライブラリ部114からブロックI/O受付部62を介してホスト2にデータを送出する（ステップ2311）。
【０１２０】
ステップ2305で、NASデータのバックアップデータのリード処理ではないと判定された場合には、ステップ2310に進み、仮想テープ・ライブラリ部114が通常の方法でデータを読み出す。即ちステップ2310で仮想テープ・ライブラリ部114は、仮想テープを構成しているディスクからデータを読み出して、読み出したデータをそのままの形でブロックI/O受付部を介してホスト2にデータを送出する。
【０１２１】
これまで説明してきた実施の形態では、図1のようにディスクシステム1とフロントエンドサーバ6とで、ディスクデバイス、ファイルサーバ、テープライブラリの機能を持った記憶装置システム0を実現しているが、必ずしも図1の構成には限定されない。例えば図1、図2のディスクシステム1とフロントエンドサーバ6が、1台の装置に搭載されるような形態や、ファイルサービス67やバックアップサービス69が別の装置で動作する形態などでも、本発明は適用可能である。
【０１２２】
以上で説明した記憶装置システムによれば、テープ装置のみならず、ライブラリ機構を有するライブラリ装置のエミュレートを実現し、磁気ディスクを有する記憶装置で大量のテープメディアを維持管理することができる。
【０１２３】
また、ディスクを磁気ディスクとしても仮想テープとしても取扱うことができ、磁気ディスクとして取扱われるディスクを仮想テープとして取扱われるように変更したり、逆に仮想テープとして取扱われるディスクを磁気ディスクとして取扱われるように変更することもできるので、磁気ディスク及び仮想テープの容量を自由に変更することができる。
【０１２４】
また、1つのストレージ装置にディスクデバイスとファイルサービスとテープライブラリ装置を統合化することができ、それぞれの間で自由な容量割り当てが可能になる。
【０１２５】
更に仮想テープ装置へのバックアップ処理や仮想テープ装置からのリストア処理に、ディスク装置の持つデータ複製機能を利用できるため、バックアップ処理やリストア処理の際にデータを一旦バックアップサーバに読み出す必要がなく、高速かつ低負荷なバックアップ処理やリストア処理が可能となる。また、仮想テープから磁気ディスクへのリストア処理を仮想テープとディスクのマッピングを変更することで実現することにより、リストア処理を高速かつ低負荷で実行することもできる。
【０１２６】
【発明の効果】
磁気テープを有する記憶装置システムにおいて、テープライブラリ装置をエミュレートし、磁気ディスクとしての機能と仮想テープとしての機能の双方を有する記憶装置を実現することができる。また、仮想テープを用いた高速なバックアップ処理及びリストア処理を実現することができる。
【図面の簡単な説明】
【図１】本発明が適用される計算機システムの構成例を示すブロック図である。
【図２】本発明が適用される計算機システムの論理的な構成例を示すブロック図である。
【図３】ディスク管理テーブル200の一例を示す図である。
【図４】仮想テープ管理テーブル210の一例を示す図である。
【図５】未割当デバイス管理テーブル220の一例を示す図である。
【図６】仮想テープドライブテーブル230、仮想ロボットテーブル240の一例を示す図である。
【図７】物理ディスクから論理ディスクを形成して、未割当デバイスグループ164に登録する処理の一例を示すフローチャートである。
【図８】未割当デバイスグループ164に登録されているディスクを、ディスクデバイスグループ161、ファイルシステムグループ162、あるいは仮想テープデバイスグループ163のいずれかに割り当てる処理の一例を示すフローチャートである。
【図９】仮想テープライブラリ装置の定義処理の一例を示すフローチャートである。
【図１０】ディスクデバイスグループ161、ファイルシステムグループ162、あるいは仮想テープデバイスグループ163に登録されているディスクを、未割当デバイスグループ164に返却する処理の一例を示すフローチャートである。
【図１１】仮想テープライブラリへのデータの書き込み処理の一例を示すフローチャートである。
【図１２】バックアップ処理の一例を示すフローチャートである。
【図１３】バックアップ処理の一例を示すフローチャートである。
【図１４】仮想テープからファイルシステムグループ162に属するディスクへデータをリストアする処理の一例を示すフローチャートである。
【図１５】仮想テープからファイルシステムグループ162に属するディスクへデータをリストアする処理の一例を示すフローチャートである。
【図１６】仮想テープライブラリからのデータの読み出し処理の一例を示すフローチャートである。
【符号の説明】
０…記憶装置システム
１…ディスクシステム
２…ホスト
３…NASクライアント
４…ファイバチャネルスイッチ
５…ネットワークスイッチ
６…フロントエンドサーバ
７…管理コンソール
１１…ネットワークインタフェイス
１２…ファイバチャネルインタフェース
１３…CPU
１４…メモリ
１５…ディスクインタフェース
１６…ディスク
３１…バックアップサーバ
６１…ネットワークインタフェイス
６２…ファイバチャネルインタフェース
６３…CPU
６４…メモリ
６５…ネットワークインタフェイス
６６…ファイバチャネルインタフェース
【図１】
0004559046.tif 000002
【図２】
0004559046.tif 000003
【図３】
0004559046.tif 000004
【図４】
0004559046.tif 000005
【図５】
0004559046.tif 000006
【図６】
0004559046.tif 000007
【図７】
0004559046.tif 000008
【図８】
0004559046.tif 000009
【図９】
0004559046.tif 000010
【図１０】
0004559046.tif 000011
【図１１】
0004559046.tif 000012
【図１２】
0004559046.tif 000013
【図１３】
0004559046.tif 000014
【図１４】
0004559046.tif 000015
【図１５】
0004559046.tif 000016
【図１６】
0004559046.tif 000017