(57)【要約】【課題】仮想ディスクライブラリ装置などに係わり、ＬＵ単位でのディスクからテープへの高速アーカイビングを維持したまま、テープ格納データへのアクセスを高速に可能とする技術を提供する。またテープ格納データの更新の効率を向上できる技術を提供する。【解決手段】本システムでは、ＬＵ単位でのディスクからテープへの高速アーカイビングを維持したまま、テープ格納データにアクセスしたい場合に、ＬＵ単位よりも細粒度であるページ単位で、ディスクステージング処理することで、高速アクセス可能とする。また、テープ格納データ（ＬＵ）に対する更新時は、ＬＵのうちデータ更新対象のページのみをステージングしてホストへ応答し、バックグラウンドで当該ＬＵ内の残りのページを事前ディスクステージング処理しておく。再びテープ格納する時には、ステージング処理無しですぐにテープへの格納が可能である。【選択図】図５
2010102492.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより利用されるデータアーカイブシステムであって、
ランダムアクセス型の第１種の記憶装置群と、シーケンシャルアクセス型の第２種の記憶装置群とを内蔵または接続され、前記コンピュータからのアクセスのコマンドを処理する記憶制御部を有し、
前記記憶制御部は、
１つ以上の前記第１種の記憶装置に、データが格納可能な１つ以上の論理記憶領域を設定する処理と、
前記論理記憶領域単位に対し、それよりも細かい所定のサイズの複数のページ単位を対応付け、前記ページに対し、実記憶領域として、前記第１種の記憶装置側の第１の実記憶領域、または前記第２種の記憶装置側の第２の実記憶領域、を対応付けて管理する処理と、
所定の判断または指示に従い、前記論理記憶領域単位のデータを、前記第１種の記憶装置側の第１の実記憶領域から、前記第２種の記憶装置側の第２の実記憶領域へ、移動またはコピーする処理と、
前記コンピュータから前記論理記憶領域のデータに対するリードまたはライトのアクセスのコマンドを受けると、当該アクセスの対象データが前記第２種の記憶装置側に格納されている場合、前記第２種の記憶装置側の第２の実記憶領域における、当該対象データを含むページに対応付けられる領域から、当該ページ単位でデータを前記第１種の記憶装置側の第１の実記憶領域に読み出して、前記コンピュータへ応答する処理と、を行うこと、を特徴とするデータアーカイブシステム。
【請求項２】
請求項１記載のデータアーカイブシステムにおいて、
前記記憶制御部は、前記応答する処理のバックグラウンドまたは後で、前記第２種の記憶装置側の第２の実記憶領域における、前記論理記憶領域のうちの前記対象データを含むページ以外の残りのページに対応付けられる領域からデータを前記第１種の記憶装置側の第１の実記憶領域に読み出しておく処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項３】
請求項２記載のデータアーカイブシステムにおいて、
前記記憶制御部は、前記コンピュータにより前記応答する処理またはその後のアクセスにより更新された前記論理記憶領域のデータを、所定の判断または指示を契機として、前記第１種の記憶装置側の第１の実記憶領域から前記第２種の記憶装置側の第２の実記憶領域へ再度格納する際、前記更新されたページを含む前記論理記憶領域単位でデータを前記第２種の記憶装置側の第２の実記憶領域に格納する処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項４】
コンピュータと、前記コンピュータにより利用される記憶制御装置とを含んで成るデータアーカイブシステムであって、
前記記憶制御装置は、
ランダムアクセス型の第１種の記憶装置群と、シーケンシャルアクセス型の第２種の記憶装置群とを内蔵または接続し、
１つ以上の前記第１種の記憶装置に、データが格納可能な１つ以上の論理記憶領域を設定する処理と、
１つ以上の前記第２種の記憶装置に、前記論理記憶領域のデータが格納可能なグループを設定する処理と、
前記論理記憶領域単位よりも細かい所定のサイズの複数のページ単位から構成される仮想ボリュームを前記コンピュータに提供する処理と、
前記仮想ボリュームに対し前記論理記憶領域を対応付けて管理し、前記仮想ボリュームのページに対し、実記憶領域として、前記第１種の記憶装置側の前記論理記憶領域のうちの第１の実記憶領域、または前記第２種の記憶装置側の前記グループのうちの第２の実記憶領域、を対応付けて管理する処理と、
所定の判断または指示に従い、前記仮想ボリュームのデータを、前記論理記憶領域単位で、前記第１種の記憶装置側の前記論理記憶領域の前記第１の実記憶領域から、前記第２種の記憶装置側の前記グループの前記第２の実記憶領域へ、移動またはコピーする第１の処理と、
所定の判断または指示に従い、前記仮想ボリュームの実記憶領域のデータを、前記論理記憶領域単位で、前記第２種の記憶装置側の前記グループの前記第２の実記憶領域から、前記第１種の記憶装置側の前記論理記憶領域の前記第１の実記憶領域へ、移動またはコピーする第２の処理と、
前記コンピュータから前記論理記憶領域のデータに対するリードまたはライトのアクセスのコマンドを受けると、当該アクセスの対象データが前記第２種の記憶装置側に格納されている場合、前記第２種の記憶装置側の第２の実記憶領域における、当該対象データを含むページに対応付けられる領域から、当該ページ単位でデータを前記第１種の記憶装置側の第１の実記憶領域に読み出して、前記コンピュータへ応答する第３の処理と、を行うこと、を特徴とするデータアーカイブシステム。
【請求項５】
請求項４記載のデータアーカイブシステムにおいて、
前記記憶制御装置は、前記第３の処理のバックグラウンドまたは後で、前記第２種の記憶装置側の前記グループの前記第２の実記憶領域における、前記論理記憶領域の前記対象データを含むページ以外の残りのページに対応付けられる領域からデータを前記第１種の記憶装置側の前記論理記憶領域の前記第１の実記憶領域に読み出しておく第４の処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項６】
請求項５記載のデータアーカイブシステムにおいて、
前記記憶制御装置は、前記コンピュータにより前記第３の処理またはその後のアクセスにより更新された前記仮想ボリュームのデータを、所定の判断または指示を契機として、前記第１種の記憶装置側の第１の実記憶領域から前記第２種の記憶装置側の第２の実記憶領域へ再度格納する際、前記更新されたページを含む前記論理記憶領域単位でデータを前記第２種の記憶装置側の前記グループの前記第２の実記憶領域に格納する第５の処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項７】
請求項４記載のデータアーカイブシステムにおいて、
前記記憶制御装置は、前記仮想ボリュームのページごとに、実記憶領域への割り当ての状態を示すステータス情報と、前記第１種の記憶装置側のデータと前記第２種の記憶装置側のデータとにおける内容の一致／不一致を示すデータ状態情報とを管理すること、を特徴とするデータアーカイブシステム。
【請求項８】
請求項４記載のデータアーカイブシステムにおいて、
前記記憶制御装置は、前記第２種の記憶装置に格納される前記論理記憶領域のデータごとに、破棄フラグを管理し、
最初に前記第１の実記憶領域から前記第２の実記憶領域へデータを格納する前記第１の処理の際、前記破棄フラグをオフとし、
前記第２の実記憶領域から前記第１の実記憶領域へ読み出されたデータが更新され、当該更新されたデータを前記第２種の記憶装置へ格納する際、格納元の第２種の記憶装置とは別の第２種の記憶装置へ格納して当該格納元の前記破棄フラグをオンとし、
前記グループにおける前記破棄フラグがすべてオンとなった場合、当該グループを他のデータのために利用可能に開放すること、を特徴とするデータアーカイブシステム。
【請求項９】
請求項４記載のデータアーカイブシステムにおいて、
前記記憶制御装置は、前記仮想ボリュームのページごとにデータが格納されているか否かをビットマップで管理し、前記第１種の記憶装置側から前記第２種の記憶装置側に前記仮想ボリュームのデータを格納する際には、前記ビットマップの参照に基づき、データが格納されているページのデータと、当該ビットマップ自体のデータとを格納する処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項１０】
請求項４記載のデータアーカイブシステムにおいて、
前記第１種の記憶装置側から前記第２種の記憶装置側へ前記論理記憶領域のデータを格納する際、当該論理記憶領域のうち前記コンピュータから指定されたページのデータを、前記第１種の記憶装置側の第１の実記憶領域上に常駐させる処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項１１】
請求項４記載のデータアーカイブシステムにおいて、
前記コンピュータは、
前記仮想ボリュームまたは論理記憶領域に対応付けてファイルシステムを管理する処理と、
前記仮想ボリュームまたは論理記憶領域のデータを前記第１の実記憶領域から第２の実記憶領域へ移行させる前記第１の処理を行うか否かを判定し、行う場合、当該第１の処理の指示を前記記憶制御装置へ発行する処理と、を行うこと、を特徴とするデータアーカイブシステム。
【請求項１２】
請求項１１記載のデータアーカイブシステムにおいて、
前記コンピュータは、
前記仮想ボリュームまたは論理記憶領域のデータに対するアクセスの際、前記第２種の記憶装置へのアクセスの場合に、前記第１種の記憶装置へのアクセスの場合のタイムアウト時間よりも長いタイムアウト時間によるコマンドを発行し、
前記記憶制御装置は、前記第２種の記憶装置側のデータに対するアクセスの場合、前記タイムアウト時間内に前記コンピュータへ応答処理すること、を特徴とするデータアーカイブシステム。
【請求項１３】
請求項４記載のデータアーカイブシステムにおいて、
前記コンピュータは、異なる複数のファイルシステムを１つのファイルシステムとして構成し、ファイルの利用状況に合わせてファイルシステム間を移動させる階層ストレージ管理の処理を行い、
前記コンピュータは、前記コンピュータから前記記憶制御装置の記憶資源に対して格納するファイルにおいて、一定期間以上アクセスされなくなったファイルを、前記仮想ボリュームのアドレス空間に順番に格納してゆくことにより、ファイルを最適に配置する処理を行い、
前記記憶制御装置は、所定の仮想ボリュームが前記一定期間以上アクセスされなくなったファイルで一杯になった場合、当該仮想ボリュームに対応付けられる前記論理記憶領域のデータに対して前記第１の処理を行うこと、を特徴とするデータアーカイブシステム。
【請求項１４】
ファイルシステムを備えるコンピュータと、前記コンピュータにより利用される仮想ディスクライブラリ装置とを含んで成るデータアーカイブシステムであって、
前記仮想ディスクライブラリ装置は、コントローラと、ランダムアクセス型の第１種の記憶装置群である磁気ディスク装置群を備えるディスクアレイ装置と、シーケンシャルアクセス型の第２種の記憶装置群である磁気テープ装置群を備えるテープライブラリ装置と、を備え、
前記コントローラは、プロセッサと、制御メモリと、前記コンピュータに対する通信Ｉ/ＦであるフロントエンドＩ/Ｆ部と、前記磁気ディスク装置群に対する第１の通信Ｉ/Ｆ部と、前記磁気テープ装置群に対する第２の通信Ｉ/Ｆ部と、キャッシュメモリとを備え、
前記コントローラは、
１つ以上の前記磁気ディスク装置に、データが格納可能な１つ以上の論理記憶領域を設定する処理と、
１つ以上の前記磁気テープ装置に、前記論理記憶領域のデータが格納可能なグループを設定する処理と、
前記論理記憶領域単位よりも細かい所定のサイズの複数のページ単位から構成される仮想ボリュームを前記コンピュータに提供する処理と、
前記仮想ボリュームに対し前記論理記憶領域を対応付けて管理し、前記仮想ボリュームのページに対し、実記憶領域として、前記磁気ディスク装置側の前記論理記憶領域のうちの第１の実記憶領域、または前記磁気テープ装置側の前記グループのうちの第２の実記憶領域、を対応付けて管理する処理と、
所定の判断または指示に従い、前記仮想ボリュームのデータを、前記論理記憶領域単位で、前記磁気ディスク装置側の前記論理記憶領域の前記第１の実記憶領域から、前記磁気テープ装置側の前記グループの前記第２の実記憶領域へ、移動またはコピーする第１の処理と、
所定の判断または指示に従い、前記仮想ボリュームの実記憶領域のデータを、前記論理記憶領域単位で、前記磁気テープ装置側の前記グループの前記第２の実記憶領域から、前記磁気ディスク装置側の前記論理記憶領域の前記第１の実記憶領域へ、移動またはコピーする第２の処理と、
前記第１及び第２の処理において適宜前記キャッシュメモリを用いてデータをキャッシュする処理と、
前記コンピュータから前記仮想ボリュームまたは前記論理記憶領域のデータに対するリードまたはライトのアクセスのコマンドを受けると、当該アクセスの対象データが前記磁気テープ装置側に格納されている場合、前記磁気テープ装置側の第２の実記憶領域における、当該対象データを含むページに対応付けられる領域から、当該ページ単位でデータを前記磁気ディスク装置側の第１の実記憶領域に読み出して、前記コンピュータへ応答する第３の処理と、を行うこと、を特徴とするデータアーカイブシステム。
【請求項１５】
請求項１４記載のデータアーカイブシステムにおいて、
前記コントローラは、前記第３の処理のバックグラウンドまたは後で、前記磁気テープ装置側の前記グループの前記第２の実記憶領域における、前記論理記憶領域の前記対象データを含むページ以外の残りのページに対応付けられる領域からデータを前記磁気ディスク装置側の前記論理記憶領域の前記第１の実記憶領域に読み出しておく第４の処理を行い、
前記コントローラは、前記コンピュータにより前記第３の処理またはその後のアクセスにより更新された前記仮想ボリュームのデータを、所定の判断または指示を契機として、前記磁気ディスク装置側の第１の実記憶領域から前記磁気テープ装置側の第２の実記憶領域へ再度格納する際、前記更新されたページを含む前記論理記憶領域単位でデータを前記磁気テープ装置側の前記グループの前記第２の実記憶領域に格納する第５の処理を行うこと、を特徴とするデータアーカイブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのテープアーカイブのための技術に関し、特に、ディスクアレイ装置とテープライブラリ装置とを備える仮想ディスクライブラリ装置に関する。
【背景技術】
【０００２】
仮想ディスクライブラリ装置（システム）は、装置内に、ランダムアクセス型デバイス、例えば磁気ディスクデバイス（以下、ディスク）と、シーケンシャルアクセス型デバイス、例えば磁気テープデバイス（以下、テープ）とを備え、必要に応じて、ディスクとテープとの間（「ディスク−テープ」等と表記）でデータのコピー／移動を行うことができる。
【０００３】
そのような技術に関して、例えば特許文献１（特開２００７−３０５０７５号公報）に開示されている。
【特許文献１】特開２００７−３０５０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、法規制などにより、長期間保管しなければならない電子データが増加している。大容量のデータを長期間保管するには、例えば、コストの面で、ディスクよりもテープが有効であると考えられる。一般的に、ビットコスト（１ビット当たりのコスト）がディスクに比べて低いためである。そのため、古くなり殆どアクセスされなくなったデータについては、ディスクではなくテープに格納することにより、データ保管コストを低減することができ有効である。
【０００５】
データをディスクからテープにアーカイブ（格納）する契機は、例えば、当該データが一定期間アクセスされなくなった場合が考えられる。この場合、前記特許文献１の技術では、ＬＵ（論理的ディスクデバイス）単位でディスク−テープ間（ディスク→テープ）のデータコピーを行うため、高速に実行可能である。
【０００６】
しかしながら、上記テープ格納データにアクセス（読み書き）したい場合は、ＬＵ単位でのディスクステージング処理（テープからディスクへデータをステージング（コピー）する処理）を行ってからアクセス可能となる。そのため、ＬＵの容量（サイズ）が大きい場合などには、当該コピー（ディスクステージング）時間が長くなるため、アクセス可能となるまでに長い時間がかかってしまうという問題が発生する。
【０００７】
この場合、ＬＵの容量が大きい場合には、ディスクステージング（コピー）処理に数時間以上かかる場合がある。そのため、ホスト（ホストシステム、ホストコンピュータ）からの当該テープ格納データへのアクセス（例えばリード）の際に、例えばタイムアウト時間を延長しただけでは、ホストからのリードコマンドを処理（受領及び応答）することはできない。なお上記タイムアウト時間は、通常のディスクアクセス応答に応じた時間であり、上記テープアクセスの場合はディスクよりも時間がかかるので、当該時間を延長してアクセスするように、例えばホストにより指定または設定される。
【０００８】
よって、この場合、例えば、ホストからのアクセスよりも前に、ディスクステージング指示コマンド（ディスクステージング処理）などにより、当該ＬＵ単位のテープ格納データについてのディスクステージングを完了しておく等の対処が必要であり、そうでなければ、ホストからのリードコマンドを受領及び応答することができなかった。
【０００９】
上記問題の１つの解決策として、ファイル単位でディスク−テープ間でのデータコピーを行うことが考えられる。しかし、ファイルを扱うことによるオーバーヘッドにより性能が低下してしまう。
【００１０】
また、アーカイブ先の媒体がシーケンシャルアクセス型デバイスであるテープであるため、テープの一部分のみを上書き（更新）することはできない。そのため、テープ格納データを更新したい場合は、ＬＵ単位でテープからディスクへステージングし、当該ディスク上のデータに対して更新を行ってから、再度、当該ＬＵ単位でテープにコピーする必要がある。よって、このような更新処理には時間がかかってしまう。
【００１１】
本発明は以上のような問題に鑑みてなされたものであり、その主な目的は、仮想ディスクライブラリ装置などの計算機システム（情報処理システム）に係わり、第１に、ＬＵ単位（サイズが大きい記憶領域単位）でのディスクからテープへの高速アーカイビングを維持したまま、テープ格納データへのアクセスを高速に可能とする技術を提供することである。第２に、テープ格納データの更新（更新反映）の効率を向上できる技術を提供することである。更には、ディスク−テープ間のデータコピーに関するホストの負荷を低減できる技術を提供することである。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。前記目的を達成するために、本発明の代表的な実施の形態は、複数のディスクを備えるディスクアレイ装置（ストレージ装置）、複数のテープを備えるテープライブラリ装置、それらを備える仮想ディスクライブラリ装置、それらのデータへアクセス（読み出し（リード）・書き込み（ライト））するコンピュータ（ホストシステム）、などから成る計算機システムにおけるデータアーカイブの技術であって、以下に示す構成を有することを特徴とする。
【００１３】
本形態は、ＬＵ単位（サイズが大きい記憶領域単位）でのデータのディスク（ＲＡＩＤグループ等）からテープ（テープグループ等）への高速アーカイビング（移動／コピー（ライト））を維持したまま、テープ格納データにアクセスしたい場合には、ＬＵ単位よりも細粒度であるページ単位（サイズが小さい記憶領域単位）でのデータのディスクステージング処理（テープからディスクへのコピー（リード））を行うことにより、テープ格納データに対する高速アクセスを可能とする。
【００１４】
これにより、テープ格納データに対するアクセスの前のディスクステージング指示及び処理を不要とする。例えばホストは単にテープ格納データへのアクセスコマンドを発行するだけで済む。また例えば、タイムアウト時間を例えば数分に延長すること（あるいは従来よりも短い所定のタイムアウト時間の設定）によって、テープ格納データに対してもホストからのリードコマンド等を受領して正常に応答処理することが可能となる。
【００１５】
また、上記処理に関してファイルを扱わずにＬＵ単位及びページ単位での処理を行うことにより、ホストを経由せずに、仮想ディスクライブラリ装置内でディスク−テープ間のデータコピーを行うことで、ホストの負荷が低減される。
【００１６】
また、テープ格納データに対するデータ更新時（例えばホストからのライト）は、ＬＵ単位ではなくデータ更新対象のページのみをテープからディスクへステージングしてホストへすぐに応答し、それと共にそのバックグラウンド等で、当該ＬＵ内の残りのページ（更新されない部分）をテープからディスクへステージング処理しておく（従来はこのような事前ステージングは行われていない）。これにより、再び当該データをテープへ格納（更新反映）したい場合に、ディスクステージング処理（ホスト等からあらためて指示を発行して当該ＬＵ単位でディスクステージング処理すること等）を必要とすること無く、ＬＵ単位で効率的にテープへの格納（コピー）を可能とする。これにより当該更新及び反映が効率的に実現される。
【００１７】
また、一形態では、仮想ボリューム機能を有する仮想ディスクライブラリ装置とホストとを有するシステムにおいて、仮想ボリュームについて、前記ＬＵ単位でのディスクからテープへの高速アーカイビングを行い、ホストからのテープ格納データ（仮想ボリュームのページ）へのアクセス時には、前記ページ単位でのデータのテープからディスクへのステージングを可能とする。これにより、ホストからの高速なアクセスが実現される。
【００１８】
本形態のシステムは、例えば、ホストコンピュータと、それにより利用される記憶制御装置（仮想ディスクライブラリ装置など）とを含んで成るデータアーカイブシステム（計算機システム）であって、記憶制御装置は、ランダムアクセス型の第１種の記憶装置群（例えばディスク）と、シーケンシャルアクセス型の第２種の記憶装置群（例えばテープ）とを内蔵または接続し、１つ以上の第１種の記憶装置に、データが格納可能な１つ以上の論理記憶領域（ＬＵ）を設定する処理と、１つ以上の第２種の記憶装置に、論理記憶領域のデータを格納可能なグループ（例えばテープグループ）を設定する処理と、論理記憶領域単位よりも細かい所定のサイズの複数のページ単位から構成される、ＬＵよりも大きい仮想サイズを持つ仮想ボリュームをホストコンピュータに提供する処理とを行う。
【００１９】
そして、記憶制御装置は、仮想ボリュームに対し論理記憶領域を対応付けて管理し、仮想ボリュームのページに対し、実記憶領域として、第１種の記憶装置側の論理記憶領域のうちの第１の実記憶領域（セグメント）、または第２種の記憶装置側のグループのうちの第２の実記憶領域、を対応付けて管理する処理を行う。
【００２０】
そして、記憶制御装置は、所定の判断または指示（インアクティベートコマンドやホストアクセス等）に従い、仮想ボリュームのデータを、論理記憶領域単位で、第１種の記憶装置側の論理記憶領域の第１の実記憶領域から、第２種の記憶装置側のグループの第２の実記憶領域へ、移動またはコピー（アーカイブ）する第１の処理（インアクティベート処理）と、所定の判断または指示（アクティベートコマンドやホストアクセス等）に従い、仮想ボリュームの実記憶領域のデータを、論理記憶領域単位で、第２種の記憶装置側のグループの第２の実記憶領域から、第１種の記憶装置側の論理記憶領域の第１の実記憶領域へ、移動またはコピー（ステージング）する第２の処理（アクティベート処理）とを行う。
【００２１】
そして、記憶制御装置は、ホストコンピュータから仮想ボリュームのデータに対するリードまたはライトのアクセスのコマンドを受けると、当該アクセスの対象データが第２種の記憶装置側に格納されている場合、第２種の記憶装置側のグループの第２の実記憶領域における、当該対象データを含むページに対応付けられる領域から、当該ページ単位でデータを第１種の記憶装置側の論理記憶領域の第１の実記憶領域に読み出して、ホストコンピュータへ応答する第３の処理を行う。
【００２２】
更に、本システムにおいて、記憶制御装置は、前記第３の処理のバックグラウンドまたは後で、ホストからの関与無しで自動的に、第２種の記憶装置側のグループの第２の実記憶領域における、論理記憶領域の対象データを含むページ以外の残りのページに対応付けられる領域からデータを第１種の記憶装置側の論理記憶領域の第１の実記憶領域に読み出しておく第４の処理（事前ステージング処理）を行う。
【００２３】
そして、本システムにおいて、記憶制御装置は、ホストコンピュータにより第３の処理またはその後のアクセスにより更新された仮想ボリュームのデータを、所定の判断または指示を契機として、第１種の記憶装置側の第１の実記憶領域から第２の記憶装置側の第２の実記憶領域へ再度格納する際、前記第４の処理の後で、ホストからの関与無しで、更新されたページを含む論理記憶領域単位でデータを第２種の記憶装置側のグループの第２の実記憶領域に格納する第５の処理を行う。
【発明の効果】
【００２４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明の代表的な実施の形態によれば、仮想ディスクライブラリ装置などの計算機システムに係わり、第１に、ＬＵ単位でのディスクからテープへの高速アーカイビングを維持したまま、テープ格納データへのアクセスを高速に可能とする。第２に、テープ格納データの更新（更新反映）の効率を向上できる。更には、ディスク−テープ間のデータコピーに関するホストの負荷を低減できる。
【００２５】
特に、テープへのデータの格納（アーカイブ）については、従来技術と同様に高速にＬＵ単位で格納し、ホストからのテープ格納データへのアクセス時には、ＬＵ単位よりも細粒度であるページ単位（更新対象ページ）でディスクへステージングして応答できるため、従来技術よりも高速にホストへ応答が可能である。また、テープ格納データの更新（更新反映）時には、上記ＬＵの更新対象ページのみのステージングによりホストへ応答すると共に、そのバックグラウンドで残りページを事前ステージング処理しておくので、当該データを再度テープ格納（更新反映）する場合に効率的に可能である。更に、上記ディスク−テープ間のデータコピーに関する処理の際、ホストによるステージング指示等による介在が不要であるので、ホストの負荷を低減できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。説明上、プログラムまたは機能が主語となる場合、実際には、プログラムを実行するプロセッサや回路によって処理が実行される。
【００２７】
（実施の形態１）
図１〜図１９を用いて、本発明の実施の形態１の計算機システム（仮想ディスクライブラリ装置を含んで成るデータアーカイブシステム）について説明する。
【００２８】
実施の形態１では、概要としては、ディスクアレイ装置１２０とテープライブラリ装置１３０とを備える仮想ディスクライブラリ装置１０がホスト２０に接続されるシステムにおいて（図１）、仮想ディスクライブラリ装置１０のコントローラ１１０は、ホスト２０に対し仮想ボリューム３１０を提供する機能を持つ（図３，図４）。そして、仮想ボリューム３１０におけるディスク−テープ間のデータの移動／コピーの処理（インアクティベート／アクティベート処理）に関し、ＬＵ単位及びページ単位で管理する。ディスク１２２からテープ１３３へはＬＵ１２２単位で高速にアーカイブ処理する（図５、（１））。テープ格納データのアクセス時には、テープ１３３からディスク（ＬＵ）１２２へは、ページ３１１（１３５）単位でステージングしてホスト２０へ高速に応答可能に処理する（図５、（２））。また、そのバックグラウンドでは、当該ＬＵ１２２の残りのページ１３５を事前ステージング処理しておく（図６、（３））。また、テープ格納データの更新時には、当該ＬＵ１２２の事前ステージング処理済みにより、高速に応答でき（図６、（３））、再度テープ格納（更新反映）時にもＬＵ１２２単位で高速に処理できる（図６、（４））。
【００２９】
＜システム＞
図１は、本発明の実施の形態１の計算機システムの構成例を示している。本システムは、ホスト（ホストシステム）２０と、仮想ディスクライブラリ装置（記憶制御装置）１０とが、ファイバチャネル（ネットワーク）５０を用いて接続される構成である。ホスト２０及び仮想ディスクライブラリ装置１０は、ファイバチャネル５０を介して、データや処理要求等の受け渡しを行う。ホスト２０と仮想ディスクライブラリ装置１０は、ＬＡＮ等の通信ネットワークで接続されていても良いし、専用線などで接続されても良い。
【００３０】
ホスト２０は、ユーザが使用する何らかの計算機システム（ＰＣ、サーバ、メインフレームコンピュータ等）である。ホスト２０は、例えば、マイクロプロセッサ（ＭＰＵ）２１等のプロセッサと、メモリ２２と、通信インターフェース（Ｉ／Ｆ）２３と、ユーザインターフェース（ＵＩ）２４とを備えて構成することができる。
【００３１】
メモリ２２には、例えば、ファイル管理プログラム２２０と、ファイル管理プログラム２２０が管理するファイル管理テーブル２２１及びファイルシステム管理テーブル２２２とが記憶される。メモリ２２には各種ドライバソフトウェア等のプログラムも記憶されるが省略する。
【００３２】
メモリ２２に記憶されたファイル管理プログラム２２０は、ＭＰＵ２１に読み込まれて実行される。ファイル管理プログラム２２０は、インアクティベートコマンドやアクティベートコマンドを発行することができる。
【００３３】
仮想ディスクライブラリ装置１０は、コントローラ（制御装置）１１０と、ディスクアレイ装置１２０と、テープライブラリ装置１３０とを備えて構成される。これら（１１０，１２０，１３０）は、同一の筐体に設ける形態も可能であるし、それぞれを別々の筐体に設ける形態も可能である。
【００３４】
コントローラ１１０は、仮想ディスクライブラリ装置１０の動作を制御する。コントローラ１１０は、例えば、マイクロプロセッサ（ＭＰＵ）１１１と、制御メモリ１１２と、キャッシュメモリ１１３と、フロントエンド通信インターフェース（フロントエンドＩ/Ｆ）１１４と、ディスクインターフェース（ディスクＩ/Ｆ）１１５と、テープインターフェース（テープＩ/Ｆ）１１６とを備える。
【００３５】
図２に示すように、制御メモリ１１２には、各種のプログラム（２０１，２０２，２１０，２１１）やテーブル（２０３，２０４，２０５，２０６，２０７，２０９）が記憶される。制御メモリ１１２に、例えば、ディスク制御プログラム２０１、テープライブラリ制御プログラム２０２、仮想ボリューム管理テーブル２０３、仮想ボリューム−ページ情報テーブル２０４、ページマッピングビットマップ２０５、ディスクプール管理テーブル２０６、ＴＧ（Tape Group）管理テーブル２０７、ＴＧプール管理テーブル２０９、インアクティベートプログラム２１０が記憶されている。
【００３６】
ＭＰＵ１１１がプログラム（２０１，２０２，２１０等）を読み込んで実行することにより、仮想ボリューム３１０を生成してホスト２０へ提供する機能（仮想ボリューム機能）や、ディスク−テープ間でデータをコピー／移動する機能（アクティベート／インアクティベート）等が実現される。
【００３７】
キャッシュメモリ１１３には、ホスト２０から受信したライトデータや、ディスクアレイ装置１２０のディスク１２１（ＬＵ１２２）から読み出されたデータや、テープライブラリ装置１３０のテープ１３３から読み出されたデータ、等が適宜記憶（キャッシュ）される。キャッシュメモリ１１３は各部が共用する。
【００３８】
フロントエンドＩ/Ｆ１１４は、ホスト２０側と通信するためのインターフェースである。フロントエンドＩ/Ｆ１１４は、例えばファイバチャネルに対応している。ディスクＩ/Ｆ１１５は、ディスクアレイ装置１２０内のディスク１２１（ＬＵ１２２）と通信（データ入出力）するためのインターフェースである。ディスクＩ/Ｆ１１５は、ＲＡＩＤに対応している。テープＩ/Ｆ１１６は、テープライブラリ装置１３０内のテープ１３３と通信（データ入出力）するためのインターフェースである。
【００３９】
ディスクアレイ装置１２０は、複数のＨＤＤ（ハードディスクドライブ）１２１を備える（以下、ＨＤＤを単にディスクともいう）。ディスク１２１のそれぞれに有する物理的記憶領域を１つにまとめてＲＡＩＤグループを構成することができる。ＲＡＩＤグループの物理的記憶領域には、固定サイズまたは可変サイズのＬＵ１２２を設けることができる。あるいは、１つのディスク１２１の物理的記憶領域に、１つまたは複数のＬＵ１２２を設定することもできる。ＬＵ１２２は、論理的記憶領域（論理ユニット、論理ボリュームなどともいう）である。ＬＵ１２２は、コントローラ１１０により管理される。
【００４０】
前述のように、ランダムアクセス型記憶デバイスの一例としてＨＤＤ（ディスク）１２１を示しているが、これに限定されず、フラッシュメモリデバイス等の他のデバイスを用いても良いし、例えばＨＤＤとフラッシュメモリデバイスを混在させる形態としても良い。
【００４１】
テープライブラリ装置１３０は、例えば、ロボット１３１と、テープドライブ１３２と、複数のテープ（磁気テープデバイス）１３３とを備える。また複数のテープ１３３によりテープグループ（ＴＧ）１３４を構成できる。ロボット１３１は、テープ１３３の移動を制御する。ロボット１３１は、テープ１３３をテープドライブ１３２にセットすることや、テープドライブ１３２からテープ１３３を取り出して所定の場所に保管することを行う。テープドライブ１３２は、テープ１３３にデータを書き込む駆動や、テープ１３３からデータを読み出す駆動を行う。テープ１３３は、磁気テープ領域にデータを記憶する、シーケンシャルアクセス型記憶デバイスの一例である。
【００４２】
＜仮想ボリューム＞
図３，図４は、仮想ディスクライブラリ装置１０が備える仮想ボリューム３１０についての説明図である。図３は、仮想ボリューム３１０とディスクとの対応付けを示し、図４は、図３に対応して、仮想ボリューム３１０とテープとの対応付け（ディスクからテープへの対応付けの変更）を示す。
【００４３】
仮想ボリューム３１０は、ホスト２０に対して見せる仮想的な記憶ボリュームであり、そのデータの実体（実記憶領域）は、ディスク１２１（ＬＵ１２２，ディスクプール３２０）や、テープ１３３（ＴＧ１３４、ＴＧプール３３０）側に存在する。
【００４４】
ディスク制御プログラム２０１は、各管理情報（２０３，２０４，２０５，２０６，２０７，２０９）を使用して、ホスト２０側（例えばファイル管理プログラム２２０）に仮想ボリューム３１０を見せる仮想ボリューム機能を有する。仮想ボリューム３１０（ＶＶで表すとする）として、例えばＶＶ＃１（３２０−１），ＶＶ＃２（３２０−２）を示す。＃数字は、同種のものが複数存在する場合の識別番号とする。例えばＶＶ＃１は第１番目の仮想ボリュームとする。
【００４５】
ディスクプール３２０は、ディスク制御プログラム２０１によって、ディスクプール管理テーブル２０６を使用してプール管理される、ディスク（ＨＤＤ）１２１の集合体である。ディスクプール３２０においてディスク１２１上に設定されるＬＵ１２２を有する。ＬＵ１２２として、例えばＬＵ＃１（１２２−１）、ＬＵ＃２（１２２−２）を示す。
【００４６】
ＴＧプール３３０は、ディスク制御プログラム２０１（テープライブラリ制御プログラム２０２）によって、ＴＧプール管理テーブル２０９を使用してプール管理される、テープ１３３の集合体である。ＴＧプール３３０は、複数のテープ１３３からなるＴＧ１３４を有する。ＴＧ１３４は、ディスク１２１からテープ１３３へのデータコピー（アーカイブ）時に使用可能なように、必要な本数分のテープ１３３がグループ化されたセットである。ＴＧ１３４として、例えばＴＧ＃１（１３４−１），ＴＧ＃２（１３４−２）を示す。
【００４７】
仮想ボリューム３１０は、複数のアドレス範囲（ページ）を持つことができる。１つのアドレス範囲をページと称する。例えば図３のＶＶ＃１（３１０−１）は、ページとして、ページ３１１ａ，３１１ｂ，３１１ｃ，３１１ｄを含む。ＶＶ＃２（３１０−２）は、ページ３１１ｅを含む。
【００４８】
仮想ボリューム３１０における複数のアドレス範囲（ページ）の各々には、そのアドレス範囲に対するアクセス（例えばリード（Ｒ）／ライト（Ｗ））に応じて、ディスクプール３２０のディスク１２１（対応ＬＵ１２２）を構成する複数のセグメント（物理記憶領域、第１の実記憶領域）のうちの未使用のセグメントが割り当てられる。上記ディスク１２１側の物理記憶領域に関しては、ディスク１２１（ＬＵ１２２）におけるセグメント（ページ）１２３と表記する（図５）。
【００４９】
例えば、図３のＶＶ＃１（３１０−１）のページ３１１ａは、ＬＵ＃１（１２２−１）の対応ディスク１２１のセグメント１２３ａに対応付けられる。同様に、ＶＶ＃１−ＬＵ＃１において、ページ３１１ｂ−セグメント１２３ｂ、ページ３１１ｃ−セグメント１２３ｃ、ページ３１１ｄ−セグメント１２３ｄがそれぞれ対応付けられる。ＶＶ＃２−ＬＵ＃２において、ページ３１１ｅ−セグメント１２３ｅが対応付けられる。割り当て（対応付け）は後述のテーブルで管理される。
【００５０】
また図４のように、インアクティベート処理（機能）では、例えば、仮想ボリューム３１０−１（ＶＶ＃１）のデータ（図３のＬＵ＃１のデータ）が、ＬＵ１２２単位で高速にＴＧ１３４、例えばＴＧ１３４−１（ＴＧ＃１）にコピー（アーカイブ）される。当該コピーの完了後、図３のＬＵ＃１（１２２−１）のセグメント（ページ）１２３ａ，１２３ｂ，１２３ｃ，１２３ｄは、ＶＶ＃１（３１０−１）から解放され、別の仮想ボリューム３１０への再割り当て（利用）が可能となる。
【００５１】
そして、ＶＶ＃１（３１０−１）の各ページ（３１１ａ〜３１１ｄ）は、図４のＴＧ＃１（１３４−１）（対応テープ１３３）における、連続する各テープ領域（物理記憶領域、第２の実記憶領域）１３５ａ，１３５ｂ，１３５ｃ，１３５ｄに対して対応付けられるように変更される。上記テープ１２２側の物理記憶領域に関しては、ＴＧ１３４（ＬＵ１２２）における領域（ページ）１３５と表記する（図５）。
【００５２】
このように、仮想ボリューム３１０（ページ３１１）に対して割り当てられる実記憶領域（物理記憶領域）は、ディスク１２１（ＬＵ１２２）のセグメント（ページ）１２３、またはＴＧ１３４（ＬＵ１２２）の領域（ページ）１３５のいずれかである。ホスト２０はこれらの区分を気にせずに仮想ボリューム３１０を利用できる。ホスト２０に対しては、仮想ボリューム３１０のサイズ（容量）として、実サイズ以上のサイズ（仮想サイズ）が提供される。実サイズとは、仮想ボリューム３１０に対して割り当てられた実記憶領域の合計サイズである。
【００５３】
ディスク制御プログラム２０１は、ホスト２０が仮想ボリューム３１０のうちの空いているページ３１１にデータを書き込む場合、そのページ３１１にＬＵ１２２のセグメント１２３を割り当てる。さらに、ディスク制御プログラム２０１は、ＬＵ１２２を制御する機能を有する。
【００５４】
テープライブラリ制御プログラム２０２は、テープライブラリ装置１３０を制御するプログラムである。また、インアクティベートプログラム２１０は、ディスク制御プログラム２０１及びテープライブラリ制御プログラム２０２と連携し、ディスク１２１（ＬＵ１２２）のデータをＬＵ１２２単位でテープ１３３（ＴＧ１３４）にコピーするインアクティベート処理を行う機能を有する。ディスク１２１（ＬＵ１２２）−テープ１３３（ＴＧ１３４）間でデータをコピーする場合、インアクティベートプログラム２１０などが実行される。インアクティベートプログラム２１０は、必要に応じて適宜テープライブラリ制御プログラム２０２を呼び出して実行させる。インアクティベート処理において、テープ１３３の領域へのデータの書き込み、及びテープ１３３の領域からのデータの読み出しの際には、テープライブラリ制御プログラム２０２が使用される。なお、以下の説明では、簡単のため、上記テープライブラリ制御プログラム２０２の呼び出し等に関する説明を省略する。
【００５５】
なお、各単位のサイズを比較すると、概略的に、仮想ボリューム＞ＬＵ＞ページ、等である。
【００５６】
＜特徴＞
本システムにおける基本的な特徴や処理（機能）をまとめると以下である。処理の詳細は後述される。
【００５７】
ホスト２０は、ファイル及びディレクトリ等に対応付けられる形で、仮想ボリューム（ＬＵ）に対してアクセス可能である。特に、ホスト２０は、テープ格納判定処理（言い換えればインアクティベート判定、図１５）を行う。コントローラ１１０は、仮想ボリューム機能、ＬＵ制御機能、インアクティベート及びアクティベート機能などを有する。コントローラ１１０は、インアクティベート処理を行う（図１６）。また、コントローラ１１０は、テープ格納データ等に対するリード処理（図１７）及びライト処理（図１８）、ホストアクセスデータについての事前ステージング処理（図１９）などを行う。コントローラ１１０は、仮想ボリュームのデータについてのディスク−テープ間での移行においては、適宜、キャッシュメモリ１１３を用いて仮想ボリュームのデータをキャッシュする処理を行う。
【００５８】
なお、インアクティベートは、データをインアクティブ状態（テープ格納状態）にすることであり、アクティベートは、データをアクティブ状態（ディスク格納状態）にすることである。インアクティブ状態は保管コスト等の点で有利であり、アクティブ状態はアクセス効率等の点で有利である。
【００５９】
図５の（１）では、ディスク１２１からテープ１３３へのＬＵ単位のアーカイブ（インアクティベート）、及び仮想ボリューム３１０等について示している。ホスト２０からアクセス（Ｒ／Ｗ）されるデータが格納される仮想ボリューム３１０に対して、ＬＵ１２２及びその各ページ３１１が対応付けられる。インアクティベートの実行の際には、当該仮想ボリューム３１０のデータは、ＬＵ１２２単位で、ディスク１２１側の各セグメント１２３のデータが、テープ１３３（ＴＧ１３４）側の領域１３５へコピー（アーカイブ）される。テープ領域へのコピー（書き込み）動作はシーケンシャルである。ディスク−テープ間のデータコピー動作は、ディスクＩ/Ｆ１１５やテープＩ/Ｆ１１６等により行われ、その際、キャッシュメモリ１１３を利用して行われてもよく、ホスト２０による動作を介在する必要は無い。
【００６０】
図５の（２）では、テープ１３３からディスク１２１へのページ単位のステージング（ディスクステージング）処理について示している。ホスト２０からの仮想ボリューム３１０へのアクセスの際、対応するＬＵ１２２のアクセス対象データを含むページ３１１に対応するデータが、テープ１３３（ＴＧ１３４）の対応する領域（ページ）１３５からディスク１２１（ないしキャッシュメモリ１１３）上へ読み出される（ステージング）。読み出されたページ３１１のデータを用いて、すぐにホスト２０へ応答される。ホスト２０からのテープ格納データへのアクセス（Ｒ／Ｗ）の際、例えばタイムアウト時間をディスクアクセスの場合よりも延長するようにコマンドで指定される。あるいはシステムで予め所定のタイムアウト時間が設定される。これによりコントローラ１１０でホスト２０からのコマンドを受領してタイムアウト時間内に正常に処理が可能である。
【００６１】
図６の（３）では、ホスト２０によるディスク１２１（ＬＵ１２２）上のページ３１１対応のデータの更新（ライト）と、当該ＬＵ１２２の残りのページ３１１のデータについての事前ステージング処理について示している。図５の（２）のようにＬＵ１２２のうちのアクセス対象のページのデータがステージングされるが、そのバックグラウンドで、即ちタイミング的には同時または直後において、当該ＬＵ１２２のうちの残りのページのデータがテープ領域からディスク（ないしキャッシュメモリ１１３）上へ読み出される（事前ステージング）。
【００６２】
図６の（４）では、ディスク１２１上の更新されたＬＵ１２２のデータ（図６の（３））に対する再度テープ格納（更新反映）について示している。ディスク１２１上の更新されたＬＵ１２２のデータ（図６の（３））は、ホスト２０によるアクセス（Ｒ／Ｗ）に備えてディスク１２１側にアクティブ状態として存在する。そして、ホスト２０からの再格納指示が発行された時や、しばらくアクセスされなくなった契機などによって、テープ１３３側へ再度格納（即ち更新反映）されてインアクティブ状態となる。特定のページのみが更新されている場合でも、再度格納の際には、ＬＵ単位でテープへの格納（シーケンシャルな書き込み）を行う必要があるが、既に事前ステージング処理（図６の（３））が行われていることにより、すぐに当該ＬＵ単位でテープ領域への格納（コピー）を実行できる。
【００６３】
次に各種管理情報について説明する。
【００６４】
＜仮想ボリューム管理テーブル＞
図７は、仮想ボリューム管理テーブル２０３の構成例を示す。仮想ボリューム管理テーブル２０３は、仮想ボリューム３１０に実記憶領域として割り当てられる各セグメント（ページ）１２３などを管理する。仮想ボリューム管理テーブル２０３は、例えば、仮想ボリューム３１０毎に、仮想ＬＵＮ５１０、サイズ５２０、格納先ＴＧ番号５３０、論理アドレス５４０、ページ番号５５０、セグメント番号５６０をそれぞれ記録する。
【００６５】
仮想ＬＵＮ（または単にＬＵＮ）５１０は、ディスク制御プログラム２０１によってホスト２０に提供される、各仮想ボリューム３１０（対応ＬＵ１２２）を識別するための一意な番号である。なお仮想ＬＵＮを仮想ボリューム番号（ＶＶ＃）と言い換えることもできる。本実施の形態では、仮想ボリューム３１０が、ＬＵ１２２に対応付けられる形で、ホスト２０へ提供される。即ち、ホスト２０は、ファイルシステム管理においてＬＵＮ（ＬＵ番号）を管理して指定することで、仮想ボリューム３１０へアクセスできる。
【００６６】
サイズ５２０は、仮想ボリューム３１０の容量（サイズ）である。サイズ５２０は、前述のように、ホスト２０に対して仮想的に提供するサイズ（仮想サイズ）である。例えば、仮想ＬＵＮが「０１」のＶＶ＃１は、２ＴＢである。
【００６７】
格納先ＴＧ番号５３０は、インアクティベート処理により当該仮想ボリューム３１０のデータが格納されているＴＧ１３４（格納先ＴＧ）を表す。格納先ＴＧ番号５３０が無し（未登録）の場合、ディスク側に格納されている。
【００６８】
論理アドレス（ＬＢＡ）５４０は、ディスク１２１（ＬＵ１２２）のセグメント１２３におけるアドレス範囲（即ちＬＢＡ範囲）に対応付けられる、仮想ボリューム３１０の領域（特にページ３１１）を示す。例えば、論理アドレス５４０における「０−９９９」は、論理ブロックアドレス（ＬＢＡ：Logical Block Address）における０から９９９までの範囲を示す。
【００６９】
ページ番号５５０は、仮想ボリューム３１０の有する各ページ３１１を一意に識別するための番号である。上記の通り、各ページ３１１は、それぞれ論理アドレス５４０（ＬＢＡ範囲）として定義される。例えば、１ページを１０００ブロックとし、１０００ブロックを１セグメントとしている。
【００７０】
セグメント番号５６０は、ディスクプール管理テーブル２０６で管理されている実記憶領域（ディスク１２１上のセグメント１２３）を一意に特定する番号である。従って、セグメント番号５６０の参照によって、あるＬＵ１２１のあるページ３１１について、どのディスク１２１（ＬＵ１２２）のどのセグメント１２３であるかが特定できる。
【００７１】
図７の例では、仮想ＬＵＮ５１０が「０１」である仮想ボリューム３１０（対応ＬＵ１２２）は、インアクティベート処理によりＴＧ１３４に格納されていない仮想ボリューム３１０（ＬＵ１２２）、即ちディスク１２１側にデータが存在するものを表している。この場合、その格納先ＴＧ番号５３０には何も値が格納されていない。また、当該ボリュームでは、ホスト２０からライト（更新）があったページ３１１（例えばページ１，３，４，６）のみに対してディスク１２１のセグメント番号５６０が割り当てられている。また、仮想ＬＵＮ５１０が「０２」である仮想ボリューム３１０（対応ＬＵ１２２）は、インアクティベート処理によりＴＧ１３４に格納されている仮想ボリューム３１０を表している。この場合、格納先ＴＧ番号５３０には例えば「１０」が格納されており、それに対応するＴＧ１３４の領域に、当該仮想ボリューム３１０のデータが格納されている。また、仮想ＬＵＮ５１０が「０３」である仮想ボリューム３１０（対応ＬＵ１２２）は、インアクティベート処理によりＴＧ１３４（格納先ＴＧ番号５３０が「１１」）に格納された後、ホスト２０からのアクセスによりページがディスクステージングされているものを表している。例えば、当該仮想ボリューム３１０（ＬＵ１２２）のうちページ３，４，５に対しホスト２０からアクセスがあったため、当該ページ３，４，５のデータのみがテープ領域からディスク１２１上へ読み出されている。
【００７２】
＜仮想ボリューム−ページ管理テーブル＞
図８は、仮想ボリューム−ページ管理テーブル２０４の構成例を示す。仮想ボリューム−ページ管理テーブル２０４は、仮想ボリューム３１０の各ページ３１１の状態などを管理する。仮想ボリューム−ページ管理テーブル２０４は、各仮想ボリューム３１０（対応ＬＵ１２２）を示す仮想ＬＵＮ６１０において、ページ３１１を示すページ番号６２０毎に、ステータス６３０、データ状態６４０を記録する。
【００７３】
ステータス６３０は、各ページ３１１のデータの状態を表す。例えば、ホスト２０から一度も書き込みが行われていないページ３１１は「未割当」とする。当該「未割当」のページに対してホスト２０からリードコマンドを受領した場合は「０」（エラー応答）が返却される。また、ホスト２０から書き込み（及び割り当て）が行われたページ３１１において、ディスク１２１上にある場合を「アクティブ」、ディスク１２１上に無い場合で例えばテープ１３３に格納されている場合を「インアクティブ」として表す。
【００７４】
データ状態（更新フラグ）６４０は、ＴＧ１３４に格納されたデータがディスク１２１上にステージングされ、更新されることによって、ディスク１２１上のデータとテープ１３３に格納されているデータとで不一致が生じた状態を「不一致」（更新有り）とし、それ以外の状態を「一致」（更新無し）として表す。
【００７５】
＜ページマッピングビットマップ＞
図９は、ページマッピングビットマップ２０５の例を示す。ページマッピングビットマップ２０５は、仮想ボリューム３１０の各ページ３１１に対しディスク１２１の物理記憶領域（セグメント１２３）が割り当てられているか否かをビットで示すものである。７０１ａ，７０１ｂ等は、ページ単位の状態を示すビットである。例えば、７０１ａで示すページ１にはセグメント１２３が割り当てられている状態（ビット「１」）、７０１ｂで示すページ２にはセグメント１２３が割り当てられていない状態（ビット「０」）を示す。なお、ページマッピングビットマップ２０５の内容を、仮想ボリューム−ページ管理テーブル２０４の中に統合した形も可能である。
【００７６】
ページマッピングビットマップ２０５を用いた制御により、テープ１３３（ＴＧ１３４）の資源を節約することができる。即ち、コントローラ１１０は、ディスク１２１からテープ１３３へのデータのコピーの際は、ＬＵ１２２の全ページ３１１のデータをコピーするのではなく、セグメント１２３が割り当てられている状態（ビット「１」）のページ３１１のみをテープ１３３側へコピーし、かつページマッピングビットマップ２０５の内容自体をテープ１３３側へコピーする。ビット「０」のページ３１１のデータについてはコピーする必要が無いので、その分、テープ１３３の領域が節約できる。
【００７７】
＜ディスクプール管理テーブル＞
図１０は、ディスクプール管理テーブル２０６の構成例を示す。ディスクプール管理テーブル２０６は、ディスク１２１（ＬＵ１２２）によって提供される実記憶領域を、ディスクプール３２０として、プール管理するためのものである。コントローラ１１０において、仮想ボリューム３１０で実記憶領域が必要となった場合（ホスト２０からのアクセス（書き込み）が発生した場合）、仮想ボリューム３１０（ページ３１１）への割り当てが可能な実記憶領域（セグメント１２３）がディスクプール３２０から選択され、選択された実記憶領域（セグメント１２３）が仮想ボリューム３１０（ページ３１１）に割り当てられる。
【００７８】
ディスクプール管理テーブル２０６は、ＬＵＮ（内部ＬＵＮ）８１０、セグメント番号８２０、スタートＬＢＡ８３０、サイズ８４０、使用フラグ８５０を記録する。
【００７９】
ＬＵＮ８１０は、仮想ディスクライブラリ装置１０内部においてＬＵ１２２を識別する番号（ＬＵ番号）である。ＬＵＮ８１０は、例えば、ディスク制御プログラム２０１によって決定される。ＬＵＮ８１０とＬＵ１２２は、一対一に対応付けられる形に限定される必要は無く、公知技術を用いて、１つのＬＵ１２２に複数のＬＵＮ８１０が割り当てられる形としてもよいし、複数のＬＵ１２２にまたがって１つのＬＵＮ８１０が割り当てられる形としてもよい。
【００８０】
セグメント番号８２０は、ディスク制御プログラム２０１がセグメント１２３を管理するための一意な識別番号である。セグメント番号８２０で示すセグメント１２３は、ＬＵ１２２（ディスク１２１）の領域を分けて管理するための最小単位である。セグメント１２３は、ディスク制御プログラム２０１によって管理される。
【００８１】
スタートＬＢＡ８３０は、ＬＵＮ８１０で特定されるＬＵ１２２内において、当該セグメント１２３が開始される物理的な位置をＬＢＡで示す（なお論理アドレス５４０のようにＬＢＡ範囲で定義しても同様である）。例えば、ＬＵＮ８１０が「０１」のＬＵ１２２の領域の先頭は、セグメント番号が「１」のセグメント１２３におけるＬＢＡ「０」である。
【００８２】
サイズ８４０は、当該セグメント１２３のサイズを、ＬＢＡ単位（スタートＬＢＡ８３０から始まるＬＢＡの個数）によって表している。
【００８３】
使用フラグ８５０は、当該セグメント１２３の利用状況を示す。例えば、使用フラグ８５０は、そのセグメント１２３がディスク制御プログラム２０１によって使用されているか否かを、２つの値によって示す。使用中の場合は「１」、未使用の場合は「０」が設定される。
【００８４】
なお、ディスクプール管理テーブル２０６では示していないが、コントローラ１１０により、ＬＵＮ８１０（ＬＵ１２２）とディスク１２１（ＨＤＤ識別情報など）とが対応付けて管理されている。
【００８５】
＜ＴＧ管理テーブル＞
図１１は、ＴＧ管理テーブル２０７の構成例を示す。ＴＧ管理テーブル２０７は、ＴＧ１３４に格納されているデータを管理する。ＴＧ管理テーブル２０７は、ＴＧ番号９１０、ファイルマーク間隔９２０、テープ番号（構成テープ番号）９３０、格納ＬＵＮ９４０、ＬＵ容量９５０、破棄フラグ９６０を記録する。
【００８６】
ＴＧ番号９１０は、ＴＧ１３４を一意に識別する番号である。ファイルマーク間隔９２０は、テープ１３３からのリード時の位置決めを行うためのファイルマーク（一般的技術）が、当該テープ１３３に記録されている間隔である（例えばＧＢ単位）。ＴＧ１３４のテープ１３３の領域へのデータのライト時には、ファイルマーク間隔９２０に対応してファイルマークが書き込みされる。これにより、後でテープ１３３からリードする際に、ファイルマークの位置での頭出しが可能である。
【００８７】
テープ番号９３０は、当該ＴＧ１３４を構成しているテープ１３３を一意に識別する番号である。格納ＬＵＮ９４０は、当該テープ１３３に格納されているＬＵ１２２（その対応データ）を示す。ＬＵ容量９５０は、当該テープ１３３に格納されている各ＬＵ１２２の容量（サイズ）を示す。
【００８８】
例えば図１１では、「０００１」のＴＧ１３４において、「００００１」のテープ１３３には、「０００１」のＬＵ１２２の容量５００ＧＢ分のデータと、次に、「０００２」のＬＵ１２２のうちの先頭から３００ＧＢ分のデータとが格納されている。また、次の「００００２」のテープ１３３には、「０００２」のＬＵ１２２の続きの容量２００ＧＢ分のデータと、次に、「０００３」のＬＵ１２２の容量４００ＧＢ分のデータとが格納されている。
【００８９】
破棄フラグ９６０は、最初「０」とし、当該テープ領域に格納されているＬＵ１２２のデータが破棄（上書き）可能な状態をフラグ「１」で示す。あるＴＧ１３４に格納されているすべてのＬＵ１２２のデータについての破棄フラグが「１」となった場合に、当該ＴＧ１３４のデータが破棄可能となり、即ち当該ＴＧ１３４を構成していたテープ１３３が他のデータのために再利用（上書き）可能となる。
【００９０】
この制御例としては、コントローラ１１０は、あるＴＧ１３４において、破棄フラグ９６０が「０」の状態のＬＵ１２２のデータに対し、ホスト２０からのアクセス（ライト）による更新が発生すると、その更新後のデータを別のＴＧ１３４の領域へ格納し、元の格納領域の破棄フラグ９６０を「１」にする。ＴＧ１３４単位ですべての破棄フラグ９６０が「１」になった場合（既に別のＴＧ１３４へ全データが格納済みの状態）、当該ＴＧ１３４が破棄（再利用）可能となる。
【００９１】
上記破棄フラグ９６０を用いた制御により、コピー時間を少なくできる利点がある。また、上記制御とは異なり、更新の際に元の位置のＴＧ１３４へ書き戻す制御も可能である。この場合、コピー時間は少しかかるが、空きＴＧ１３４が無くとも可能である利点がある。
【００９２】
＜ＴＧプール管理テーブル＞
図１２は、ＴＧプール管理テーブル２０９の構成例を示す。ＴＧプール管理テーブル２０９は、テープ１３３によって提供される実記憶領域を、ＴＧプール３３０としてプール管理するためのものである。ＴＧプール管理テーブル２０９は、複数のＴＧ１３４に関し、登録ＴＧ番号１０１０、使用フラグ１０２０を記録する。
【００９３】
登録ＴＧ番号１０１０は、当該番号で識別されるＴＧ１３４を、本特徴であるアーカイブ等の用途に使用するために登録することを示す。使用フラグ１０２０は、当該ＴＧ１３４が当該用途に使用されているかどうかを示す。仮想ボリューム３１０のデータを、ディスク１２１（ＬＵ１２２）からＴＧ１３４（テープ１３３）へコピーする場合には、ＴＧプール３３０に登録されている複数のＴＧ１３４のうち、未使用（使用フラグ１０２０が「０」）のＴＧ１３４を使用する。
【００９４】
＜ファイルシステム管理テーブル、ファイル管理テーブル＞
図１３は、ファイルシステム管理テーブル２２２、図１４は、ファイル管理テーブル２２１の構成例を示す。ホスト２０のファイル管理プログラム２２０は、ディレクトリやファイルを管理するためにこれらのテーブル（２２２，２２１）を保持して使用し、これらに基づき、インアクティベートコマンド発行の判断（テープ格納判定処理、図１５）などを行う。ディレクトリに対してはＬＵ１２２（ＬＵＮ）が対応付けられる。なおファイルよりもＬＵ１２２（ディレクトリ）の方がサイズが大きい。
【００９５】
ファイルシステム管理テーブル２２２は、ディレクトリ１１１０、格納ファイルシステム１１２０、パス名１１３０、ディレクトリ容量１１４０、空き容量１１５０、テープ格納しきい値１１６０、ＬＵＮ１１７０を記録する。さらに、ファイル管理テーブル２２１には、ファイル１２１０、格納ファイルシステム１２２０、パス名１２３０の他、各ファイル１２１０の最終アクセス時刻１２４０が記録される。
【００９６】
ディレクトリ１１１０は、ファイル管理プログラム２２０がディレクトリを識別するためのものであり、格納ファイルシステム１１２０とパス名１１３０により一意に識別される。格納ファイルシステム１１２０は、当該ディレクトリが存在するファイルシステムを一意に識別可能なものである。パス名１１３０は、当該ディレクトリのファイルシステムにおけるパス名である。ディレクトリ容量１１４０は、当該ディレクトリの容量である（例えばＧＢ単位）。空き容量１１５０は、当該ディレクトリの空き容量である（例えばＧＢ単位）。テープ格納しきい値１１６０は、ファイル管理プログラム２２０が当該ディレクトリのデータをテープ１３３側に格納するべきかの判定（テープ格納判定処理）を行うためのしきい値である。ＬＵＮ１１７０は、当該ディレクトリに対応付けられるＬＵ１２２のＬＵＮである。
【００９７】
判定の例として、ファイル管理プログラム２２０は、空き容量１１５０がテープ格納しきい値１１６０よりも小さくなった場合、かつ、当該ディレクトリに格納されている全ファイルが、最終アクセス時刻１２４０を参照して一定期間以上アクセスされていない場合に、仮想ディスクライブラリ装置１０（コントローラ１１０）に対しテープ格納指示コマンド（インアクティベートコマンド）を発行する。
【００９８】
なお、上記ではホスト２０側で判定する形態としているが、仮想ディスクライブラリ装置１０（コントローラ１１０）側で上記のような管理情報（２２１，２２２）を保持して判定する形態とすることも可能である。
【００９９】
次に、各処理（機能）の詳細例について示す。以下の説明で処理の主体が省略されている場合、当該主体は前述のプログラム（それを実行するプロセッサ）等である。
【０１００】
＜テープ格納判定処理＞
図１５は、テープ格納判定処理（インアクティベート処理の契機の判定の処理）のフローを示している。テープ格納判定処理は、概ねファイル管理プログラム２２０によって行われる。Ｓは処理ステップを表す。
【０１０１】
Ｓ１３１０では、ファイルシステム管理テーブル２２２を使用して、ＴＧ１３４への格納を行うべきディレクトリ（ＬＵ１２２）を判定する。例えば、［ディレクトリ容量１１４０］×（１−［テープ格納しきい値１１６０］）＞［空き容量１１５０］の条件を満たすディレクトリがある場合はＳ１３２０へ進み、無い場合は終了する。
【０１０２】
Ｓ１３２０では、ファイル管理テーブル２２１を使用して、Ｓ１３１０の該当ディレクトリに格納されているファイルが全て一定期間以上アクセスされていない場合は、Ｓ１３３０へ進み、そうでない場合は終了する。例えば、該当ディレクトリの全ファイルが半年間や一年間以上アクセスされていない場合である。このようなファイル（ディレクトリ）に対応付けられるＬＵ１２２（仮想ボリューム３１０）のデータを、ディスク１２１側からテープ１３３側にコピー／移動し、これによりデータ保管コストの低減を図る。
【０１０３】
Ｓ１３３０では、ファイルシステム管理テーブル２２２に基づき、Ｓ１３２０の条件を満たす該当ディレクトリ（ディレクトリ１１１０）に対応付けられるＬＵＮ（ＬＵＮ１１７０）を指定して、ホスト２０から仮想ディスクライブラリ装置１０に指示（インアクティベートコマンド）を発行する。当該指示には、実行対象となるＬＵ１２２の情報などが含まれる。
【０１０４】
上記テープ格納判定処理を、一定間隔、例えば一ヶ月に一回などで行う。Ｓ１３１０とＳ１３２０に該当する全ディレクトリに関して、インアクティベートコマンドを発行し、テープ格納判定処理を終了する。
【０１０５】
＜インアクティベート処理＞
図１６は、インアクティベート処理（仮想ボリューム３１０のデータをディスク１２１側からテープ１３３側へアーカイブする処理）のフローを示している。インアクティベート処理は、仮想ディスクライブラリ装置１０がファイル管理プログラム２２０から指示（インアクティベートコマンド）を受領したことを契機として、概ねインアクティベートプログラム２１０によって実行される。
【０１０６】
Ｓ１４１０では、仮想ボリューム管理テーブル２０３の格納先ＴＧ番号５３０が参照され、指示（コマンド）で指定されたＬＵ１２２が格納されているＴＧ１３４があるかどうか判断される。ある場合はＳ１４２０へ、無い場合はＳ１４６０へ進む。
【０１０７】
Ｓ１４２０では、仮想ボリューム−ページ管理テーブル２０４が参照され、当該ＬＵ１２２のページ３１１においてデータ状態６４０が「不一致」（更新有り）のページがあるかどうか判断される。ある場合はＳ１４３０へ、無い場合はＳ１４９１へ進む。
【０１０８】
Ｓ１４３０では、ＴＧ管理テーブル２０７において、当該ＬＵ１２２の破棄フラグ９６０を「１」とする。
【０１０９】
Ｓ１４４０では、当該ＬＵ１２２が格納されていたＴＧ１３４に格納されている全ＬＵ１２２の破棄フラグが「１」であるか判断される。すべて「１」の場合はＳ１４５０へ、そうでない場合はＳ１４６０へ進む。
【０１１０】
Ｓ１４５０では、当該ＴＧ１３４がリセット（データ破棄状態）され、当該ＴＧ１３４が当該ＬＵ１２２のコピー先として使用され、Ｓ１４８０へ進む。
【０１１１】
Ｓ１４６０では、ＴＧプール管理テーブル２０９が参照され、使用フラグ１０２０が「０」のＴＧ１３４（空きＴＧ）が存在するかどうか判断される。存在する場合はＳ１４７０へ、存在しない場合はＳ１４９３へ進み、Ｓ１４９３ではホスト２０にエラー応答して終了する。
【０１１２】
Ｓ１４７０では、ＴＧプール管理テーブル２０９が参照され、使用フラグが「０」のＴＧ１３４（空きＴＧ）が１つ選択され、当該１つのＴＧ１３４が、当該ＬＵ１２２のコピー先として使用される。そして、当該ＴＧ１３４の使用フラグを「１」に変更する。例えば使用フラグが「０」のＴＧ１３４のうち、最もＴＧ番号の小さいＴＧ１３４が選択される。
【０１１３】
Ｓ１４８０では、ディスクへのステージング時に必要となる管理情報と当該ＬＵのページマッピングビットマップ２０５とがテープにコピーされる。
【０１１４】
Ｓ１４９０では、当該ＬＵのページマッピングビットマップ２０５を参照しながら、ビットオン（物理領域割り当て有り状態）のページのみがテープにコピーされる。これにより、ホスト２０から書き込みが行われていないページ（ビットオフのページ）の０データをテープに格納する必要が無く、テープ使用容量が低減できる。
【０１１５】
Ｓ１４９１では、全ページのコピー完了後、当該ＬＵのページに割り当てられていたセグメントが開放され、ページマッピングビットマップ２０５も全てビットオフ（物理領域割り当て無し状態）される。これにより、テープに格納した容量分、ディスク物理領域が解放され、別の仮想ボリューム３１０等のために再利用可能となる。
【０１１６】
Ｓ１４９２では、各種管理テーブルが更新され、終了する。例えば、仮想ボリューム管理テーブル２０３において、格納先ＴＧ番号５３０が記録され、セグメント番号５６０がすべて解放される。仮想ボリューム−ページ管理テーブル２０４において、アクティブであったステータス６３０がインアクティブに変更され、データ状態６４０が「不一致」のページがあった場合は「一致」に変更される。ディスクプール管理テーブル２０６において、当該ＬＵに割り当てられていたセグメントの使用フラグ８５０が「０」に変更される。ＴＧ管理テーブル２０７において、ファイルマーク間隔９２０、テープ番号９３０、格納ＬＵＮ９４０、ＬＵ容量９５０、破棄フラグ９６０が記録される。以上でインアクティベート処理を終了する。
【０１１７】
＜ディスク常駐機能＞
また、上記インアクティベート処理に関し、ホスト２０から仮想ディスクライブラリ装置１０へのインアクティベートコマンド発行時に、ディスク上へ常駐させたいＬＢＡ範囲（対応するページ）を指定することにより、当該ＬＢＡ範囲（対応するページ）をディスク上に常駐させる処理（ページ単位のディスク常駐機能）を行ってもよい。この場合、指定されたＬＢＡ範囲に対応するページ（ディスク常駐ページ）についてはページ開放（破棄）を行わず、当該ページ以外をページ開放するように制御する。これにより、例えば、ホスト２０からのインアクティベートコマンド発行時に、メタデータが格納されているＬＢＡ範囲を指定することで、メタデータについてはディスク上で保持したまま、ファイルのデータのテープ格納を行うことができる。
【０１１８】
＜リード処理＞
図１７は、リード処理の処理フローを示している。リード処理は、概ねディスク制御プログラム２０１によって行われる。
【０１１９】
Ｓ１５１０では、ホスト２０から仮想ディスクライブラリ装置１０がリードコマンドを受領する。Ｓ１５２０では、リードコマンドにおけるリード対象ＬＢＡから、対象ページ（ページ３１１）が判定される。例えば、ブロックサイズが５１２バイト、ページサイズが３２ＭＢの場合、ＬＢＡ１〜６５５３６がページ１、６５５３７〜１３１０７２がページ２、１３１０７３〜１９６６０８がページ３となる。
【０１２０】
Ｓ１５３０では、仮想ボリューム−ページ管理テーブル２０４が参照され、対象ページのステータス６３０が確認される。ステータス６３０がインアクティブの場合はＳ１５４０へ、インアクティブでない場合はＳ１５９１へ進む。
【０１２１】
Ｓ１５４０では、ディスクプール管理テーブル２０６が参照され、対象ページに割り当てられる未使用セグメント（セグメント１２３）があるかどうか判断される。ある場合はＳ１５５０へ、無い場合はＳ１５４５に進む。Ｓ１５４５ではホスト２０にエラー応答して終了する。
【０１２２】
Ｓ１５５０では、ディスクプール管理テーブル２０６が参照され、未使用セグメントが対象ページに割り当てられる。
【０１２３】
Ｓ１５６０では、ＴＧ管理テーブル２０７が参照され、対象ページのデータが格納されているテープ１３３がロボット１３１によりテープドライブ１３２にセットされる。複数テープ１３３にまたがって格納されているＬＵ１２２に関しては、ＴＧ管理テーブル２０７の各テープ（テープ番号９３０）に格納されているＬＵ（格納ＬＵＮ９４０）のＬＵ容量９５０を参照することで、対象ページが格納されているテープ１３３が判別可能である。
【０１２４】
Ｓ１５７０では、セットされている対象テープ１３３の駆動において、対象ページの手前のファイルマークまで位置付けが行われる。
【０１２５】
Ｓ１５８０では、対象テープ１３３において、ファイルマーク位置からテープ格納データの読み出しが行われ、対象ページのデータが、ディスク側のＳ１５５０で割り当てられたセグメントにコピーされる。なお、ファイルマーク間隔９２０が大きくない場合は、対象ページの領域のデータのみをコピーする時間と、ファイルマーク間隔分の領域のデータをコピーする時間とにおいて大きな差は無いため、対象ページを含むファイルマーク間隔分の領域のデータをコピー（ステージング）してしまってもよい。
【０１２６】
Ｓ１５９０では、各種管理テーブルが更新する。例えば、仮想ボリューム管理テーブル２０３において、セグメント番号５６０が記録される。仮想ボリューム−ページ管理テーブル２０４において、ステージングされたページのステータス６３０がアクティブに変更される。ディスクプール管理テーブル２０６において、Ｓ１５５０で割り当てられたセグメントの使用フラグ８５０が「１」に変更される。Ｓ１５９１では、ステージングされたページのデータを用いて、ホスト２０にリード応答が行われ、終了する。
【０１２７】
＜ライト処理＞
図１８は、ライト処理の処理フローを示している。ライト処理は、概ねディスク制御プログラム２０１によって行われる。
【０１２８】
Ｓ１６１０では、ホスト２０から仮想ディスクライブラリ装置１０がライトコマンドを受領する。Ｓ１６２０では、ライトコマンドにおけるライト対象ＬＢＡから対象ページが判定される（リード処理と同様）。
【０１２９】
Ｓ１６３０では、仮想ボリューム−ページ管理テーブル２０４が参照され、対象ページのステータス６３０がアクティブの場合はＳ１６９２へ、アクティブでない場合はＳ１６４０へ進む。
【０１３０】
Ｓ１６４０では、ディスクプール管理テーブル２０６が参照され、対象ページに割り当てられる未使用セグメントがある場合はＳ１６５０へ、無い場合はＳ１６４５に進む。Ｓ１６４５ではホスト２０にエラー応答して終了する。
【０１３１】
Ｓ１６５０では、ディスクプール管理テーブル２０６が参照され、未使用セグメントが対象ページに割り当てられる。
【０１３２】
Ｓ１６６０では、仮想ボリューム管理テーブル２０３が参照され、対象ＬＵが格納されているＴＧ１３４が存在する場合はＳ１６７０へ、存在しない場合はＳ１６９２へ進む。
【０１３３】
Ｓ１６７０では、ＴＧ管理テーブル２０７が参照され、対象ページのデータが格納されているテープ１３３がロボット１３１によりテープドライブ１３２にセットされる（リード処理と同様）。
【０１３４】
Ｓ１６８０では、セットされている対象テープ１３３の駆動において、対象ページの手前のファイルマークまで位置付けが行われる。
【０１３５】
Ｓ１６９０では、対象テープ１３３において、ファイルマーク位置からテープ格納データの読み出しが行われ、対象ページのデータが、Ｓ１６５０で割り当てられたセグメントにコピーされる（リード処理と同様）。
【０１３６】
Ｓ１６９１では、各種管理テーブルが更新される。例えば、仮想ボリューム管理テーブル２０３において、セグメント番号５６０が記録される。仮想ボリューム−ページ管理テーブル２０４において、ステージングされたページのステータス６３０がアクティブに変更される。ディスクプール管理テーブル２０６において、Ｓ１５５０で割り当てられたセグメントの使用フラグ８５０が「１」に変更される。
【０１３７】
Ｓ１６９２では、ステージングされたページを用いて、ホスト２０にライト応答が行われる。即ち当該ページにライト対象データが書き込まれる。そして、仮想ボリューム−ページ管理テーブル２０４の当該ページのデータ状態６４０が「不一致」に変更され、終了する。
【０１３８】
＜テープ格納データの更新処理＞
テープ格納データの更新（更新反映）処理については、リード処理後にライト処理が行われることで実現される。前記Ｓ１６９２の処理により、仮想ボリューム−ページ管理テーブル２０４のデータ状態６４０が「不一致」（更新有り）で管理されている。
【０１３９】
ディスク側の当該ＬＵの対象ページのデータ（更新済み）について、一定期間アクセスが行われていないこと、あるいはホスト２０からの再格納指示などの契機により、再度、インアクティベート処理によってテープ側へ格納（更新反映）する処理が行われる。
【０１４０】
その場合、従来技術では、テープへのシーケンシャルな書き込みの必要から、当該ＬＵの残りのページ（対象ページ以外の更新されていないページのデータ）のディスクステージングが必要となる。対象ページのみをテープ１３３へ書き込むことはできない。従来技術では、ページデータの更新及びテープ格納のためには、ＬＵ単位でのコピーを、テープからディスクへのコピーと、ディスクからテープへのコピーとで、計２回行う必要があるため、全体として時間がかかる。
【０１４１】
あるいは、従来技術では、ホストからのアクセスよりも前に、ディスクステージング指示コマンド（ディスクステージング処理）などを発行して、当該ＬＵ単位のテープ格納データについてのディスクステージングを完了しておく必要があるが、ホストに負荷がかかる。
【０１４２】
そこで、本実施の形態では、事前ステージング処理によって、再インアクティベート（再度テープ格納）時よりも事前に、当該ＬＵの残りのページをディスクステージングしておく。これにより、上記契機による再インアクティベート時には、事前ステージング済みであるので、あらためてのディスクステージング処理が不要であり、すぐにＬＵ単位でテープ格納が実行可能であり、全体として時間短縮が図られる。
【０１４３】
＜事前ステージング処理＞
図１９は、事前ステージング処理のフローを示している。事前ステージング処理は、概ねディスク制御プログラム２０１によって行われる。
【０１４４】
Ｓ１７１０では、仮想ボリューム−ページ管理テーブル２０４が参照され、データ状態６４０が「不一致」になっているページが存在するＬＵがあるかどうか判断される。ある場合はＳ１７２０へ、無い場合は終了する。
【０１４５】
Ｓ１７２０では、ディスクプール管理テーブル２０６が参照され、当該ＬＵの各ページにおいて、ステータス６３０が「インアクティブ」となっているページに割り当てられる未使用のセグメントがあるかどうか判断される。ある場合はＳ１７３０へ、無い場合は終了する。
【０１４６】
Ｓ１７３０では、ディスクプール管理テーブル２０６が参照され、当該ＬＵの各ページにおいて、ステータス６３０が「インアクティブ」となっているページに対して、未使用セグメントが割り当てられる。
【０１４７】
Ｓ１７４０では、ＴＧ管理テーブル２０７が参照され、対象ページのデータが格納されているテープ１３３がロボット１３１によりテープドライブ１３２にセットされる。ＴＧ管理テーブル２０７の参照により、対象ページが格納されているテープ１３３が判別可能である。
【０１４８】
Ｓ１７５０では、セットされている対象テープ１３３の駆動において、対象ページの手前のファイルマークまで位置付けが行われる。
【０１４９】
Ｓ１７６０では、対象テープ１３３において、対象ページのデータが、Ｓ１７３０で割り当てられたセグメントにコピーされる。
【０１５０】
Ｓ１７７０では、各種管理テーブルが更新される。例えば、仮想ボリューム管理テーブル２０３において、セグメント番号５６０が記録される。仮想ボリューム−ページ管理テーブル２０４において、ステージングされたページのステータス６３０が「アクティブ」に変更される。ディスクプール管理テーブル２０６において、Ｓ１５５０で割り当てられたセグメントの使用フラグ８５０が「１」に変更される。
【０１５１】
前述の図６の（３）の事前ステージング処理は、図５の（２）のディスクステージング処理のバックグラウンドで開始されている場合である。しかしながら、事前ステージング処理は、再インアクティベート処理（図６の（４））までに完了すればよい。よって例えば、事前ステージング処理は、夜間など仮想ディスクライブラリ装置１０の性能に余裕がある時間帯などに行われてもよい（この場合、再インアクティベートの指示のタイミングは１日単位など）。
【０１５２】
（実施の形態２）
次に、図２０を用いて実施の形態２のシステムについて説明する。実施の形態２以下は、実施の形態１の変形例である。
【０１５３】
本発明の構成では、基本として、殆どアクセスされなくなったデータを、ディスク側ではなくテープ側に格納すること（インアクティベート処理）により、データ保管コストの低減を図っている。実施の形態１に例示したように、ディレクトリに格納されているファイルが一定期間アクセスされておらず、かつ空き容量がしきい値を超えた場合などにおいて、ホスト２０から仮想ディスクライブラリ装置１０に当該ディレクトリに対応付けられるＬＵＮを指定してインアクティベートコマンドを発行することにより、インアクティベート処理が実行される。
【０１５４】
そのため、仮想ディスクライブラリ装置１０のディレクトリ（仮想ボリューム３１０に対応付けられるＬＵ１２１）が順番に使用され、かつアクセスされなくなったファイルが格納される場合（ファイル最適配置の場合）においては、効率よくテープ格納を行うことができる。
【０１５５】
そのため、実施の形態２では、「階層ストレージ管理（ＨＳＭ：Hierarchical Storage Management）」の技術を用いて、ホスト２０にそのＨＳＭプログラムを備えたシステムにおいて、ホスト２０からファイルの最適配置を制御する。これにより、効率よくテープ格納を行うことができる。
【０１５６】
「階層ストレージ管理（ＨＳＭ）」は、性能や機能が異なる複数のファイルシステムを１つのファイルシステムとして構成し、ファイルの利用状況に合わせてファイルシステム間を移動させる技術である。
【０１５７】
実施の形態２では、ホスト１０に、ＨＳＭプログラム１８１０、ＨＳＭ管理テーブル１８２０、ファイル管理プログラム２２０、ファイル管理テーブル２２１、ファイルシステム管理テーブル２２２が備えられる。ホスト１０は、ファイバチャネル（ネットワーク）５０を介して、ディスクアレイ装置３０、仮想ディスクライブラリ装置１０と接続されている。
【０１５８】
図２１に、ＨＳＭ管理テーブル１８２０の構成例を示す。ＨＳＭ管理テーブル１８２０は、ファイルシステム１９１０、ディレクトリ１９２０、パス名１９３０、ストレージ装置識別番号１９４０、ストレージタイプ１９５０を記録する。ファイルシステム１９１０は、ＨＳＭプログラム１８１０がファイルシステムを一意に識別するためのものである。ディレクトリ１１１０は、ＨＳＭプログラム１８１０とファイル管理プログラム２２０がディレクトリを識別するためのものである。パス名１９３０は、当該ディレクトリのファイルシステムにおけるパスである。ストレージ装置識別番号１９４０は、ファイルシステムを構成しているストレージ装置（ファイルシステムのデータの格納先）を一意に識別するためのものである。ストレージタイプ１９５０は、当該ストレージの属性を決めるものであり、ストレージタイプ１９５０毎に異なったポリシー設定を可能とする。ストレージタイプ１９５０は、例えば「ＦＣ」（ファイバチャネル）、「ＳＡＴＡ」（シリアルＡＴＡ）、「tape」（テープ）等である。
【０１５９】
ＨＳＭプログラム１８１０は、各管理情報（１８２０，２２１，２２２）を用いて、仮想ディスクライブラリ装置１０の資源に対して、ファイルの最適配置を行う。例えば、一定期間以上アクセスされていないファイルｆを、ディスクアレイ装置３０（その内部の例えば第１の仮想ボリュームＴ１）から、仮想ディスクライブラリ装置１０（その内部の例えば第２の仮想ボリュームＴ２）に移動する。このとき、ＨＳＭプログラム１８１０は、ＨＳＭ管理テーブル１８２０、及びファイルシステム管理テーブル２２２を参照し、ストレージタイプ１９５０が「tape」、空き容量１１５０がテープ格納しきい値１１６０を超えていないディレクトリ１１１０のうち、ディレクトリ名の最も小さいディレクトリに、当該ファイルを移動する。例えば、「dir01」と「dir02」の場合、「dir01」が選択される。また例えば、「adir01」と「bdir01」の場合、「adir01」が選択される。目的はディレクトリ（ＬＵ）を順番に使用することであるため、ディレクトリ名から使用順番が決まればよい。そして、ファイルｆの移動により、空き容量１１５０がテープ格納しきい値１１６０を超えた場合、当該ＬＵＮを指定してインアクティベートコマンドを発行することで、実施の形態１と同様に、テープ格納が行われる。
【０１６０】
このように、ＨＳＭプログラム１８１０を用いることで、テープ格納を行う仮想ディスクライブラリ装置１０のディレクトリ（仮想ボリューム３１０に対応付けられるＬＵ１２２）が順番に使用され、ファイルの最適配置（仮想ボリュームのアドレス空間に連続的にデータが配置される）により、ディスクからテープへのデータの格納を効率的に行うことができる。
【０１６１】
実施の形態２の詳しい構成例としては、ホストシステム２０において、クライアントとＮＡＳ（Network Attached Server）を有する。ＮＡＳに対し、ディスクアレイ装置３０と、仮想ディスクライブラリ装置１０とが接続される。ＮＡＳは、ＨＳＭプログラム１８１０を備え、階層管理されるファイルシステムを有する。ディスクアレイ装置３０の第１の仮想ボリュームＴ１から、仮想ディスクライブラリ装置１０の第２の仮想ボリュームＴ２に、ファイルｆのデータが移動され、Ｔ１に順番に格納されてゆく。
【０１６２】
ホスト２０のＨＳＭ管理では、Ｔ１からＴ２へのファイルｆのデータの移動の際、ファイルｆを第１のファイルシステムから第２のファイルシステムへ移動させ、ＨＳＭ管理テーブル１８２０を更新する。Ｔ２がファイルデータで一杯になった場合は、ＮＡＳから仮想ディスクライブラリ装置１０へＬＵＮを指定して前述の指示（インアクティベートコマンド）を発行する。これにより、仮想ディスクライブラリ装置１０では、ＬＵ単位でディスクからテープへのデータコピー（アーカイブ）を行う。アーカイブ後のＴ１のページは開放される。クライアントからファイルアクセスが発生した場合、ＮＡＳ側では、例えばタイムアウト時間を延長して仮想ディスクライブラリ装置１０へファイルリードコマンドを発行する。仮想ディスクライブラリ装置１０は、ページ単位でディスクステージング処理を行い、ホスト（クライアント）側へ応答する。
【０１６３】
以上のように各実施の形態によれば、ディスク−テープ間のデータコピー処理に関して、ＬＵ単位及びページ単位で効率的に処理することができ、ホストに対して高速に応答することができる。
【０１６４】
前述した各処理部（機能）は、ハードウェア、コンピュータプログラム、またはそれらの組み合わせ等により構成できる。プログラムは、所定のプロセッサに読み込まれて実行され、また、その際、適宜、メモリ等のハードウェア資源上に存在する記憶領域が使用されてもよい。また、プログラムは、ＣＤ−ＲＯＭ等の記録媒体からコンピュータにインストール等されてもよいし、通信ネットワークを介してダウンロード等されてもよい。
【０１６５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１６６】
本発明は、ディスク装置とテープ装置を両方含む計算機システムなどに利用可能である。
【図面の簡単な説明】
【０１６７】
【図１】本発明の実施の形態１の計算機システムの構成例を示す。
【図２】仮想ディスクライブラリ装置のコントローラの制御メモリに格納されるプログラム等の例を示す図である。
【図３】仮想ボリュームとディスクプール及びＴＧプールの関係を示す説明図（その１）である。
【図４】仮想ボリュームとディスクプール及びＴＧプールの関係を示す説明図（その２）である。
【図５】本システムにおける主な特徴や処理について示す説明図（その１）であり、（１）はアーカイブ及び仮想ボリューム等、（２）はディスクステージングを示す。
【図６】本システムにおける主な特徴や処理について示す説明図（その２）であり、（３）は更新及び事前ステージング、（４）は再度テープ格納を示す。
【図７】仮想ボリューム管理テーブルの構成例を示す図である。
【図８】仮想ボリューム−ページ管理テーブルの構成例を示す図である。
【図９】ページマッピングビットマップの構成例を示す図である。
【図１０】ディスクプール管理テーブルの構成例を示す図である。
【図１１】ＴＧ管理テーブルの構成例を示す図である。
【図１２】ＴＧプール管理テーブルの構成例を示す図である。
【図１３】ファイルシステム管理テーブルの構成例を示す図である。
【図１４】ファイル管理テーブルの構成例を示す図である。
【図１５】テープ格納判定処理のフローの一例を示す図である。
【図１６】インアクティベート処理のフローの一例を示す図である。
【図１７】リード処理のフローの一例を示す図である。
【図１８】ライト処理のフローの一例を示す図である。
【図１９】事前ステージング処理のフローの一例を示す図である。
【図２０】本発明の実施の形態２の計算機システムの構成例を示す図である。
【図２１】ＨＳＭ管理テーブルの構成例を示す図である。
【符号の説明】
【０１６８】
１０…仮想ディスクライブラリ装置、２０…ホスト（ホストシステム）、２１…ＭＰＵ、２２…メモリ、２３…ＵＩ、２４…Ｉ/Ｆ、３０…ディスクエリア装置、５０…ファイバチャネル（ネットワーク）、１１０…コントローラ、１１１…ＭＰＵ、１１２…制御メモリ、１１３…キャッシュメモリ、１１４…フロントエンドＩ/Ｆ、１１５…ディスクＩ/Ｆ、１１６…テープＩ/Ｆ、１２０…ディスクアレイ装置、１２１…ＨＤＤ（ディスク）、１２２…ＬＵ（論理的ディスクデバイス）、１２３…セグメント（ページ）、１３０…テープライブラリ装置、１３１…ロボット、１３２…テープドライブ、１３３…テープ、１３４…ＴＧ（テープグループ）、１３５…領域（ページ）、２０１…ディスク制御プログラム、２０２…テープライブラリ制御プログラム、２０３…仮想ボリューム管理テーブル、２０４…仮想ボリューム−ページ管理テーブル、２０５…ページマッピングビットマップ、２０６…ディスクプール管理テーブル、２０７…ＴＧ管理テーブル、２０９…ＴＧプール管理テーブル、２１０…インアクティベートプログラム、２２０…ファイル管理プログラム、２２１…ファイル管理テーブル、２２２…ファイルシステム管理テーブル、３１０…仮想ボリューム、３１１…ページ、５１０…仮想ＬＵＮ、５２０…サイズ、５３０…格納先ＴＧ番号、５４０…論理アドレス（ＬＢＡ）、５５０…ページ番号、５６０…セグメント番号、６１０…仮想ＬＵＮ、６２０…ページ番号、６３０…ステータス、６４０…データ状態、７０１ａ，７０２ｂ…ビット、８１０…ＬＵＮ、８２０…セグメント番号、８３０…スタートＬＢＡ、８４０…サイズ、８５０…使用フラグ、９１０…ＴＧ番号、９２０…ファイルマーク間隔、９３０…テープ番号、９４０…格納ＬＵＮ、９５０…ＬＵ容量、９６０…破棄フラグ、１０１０…登録ＴＧ番号、１０２０…使用フラグ、１１１０…ディレクトリ、１１２０…格納ファイルシステム、１１３０…パス名、１１４０…ディレクトリ容量、１１５０…空き容量、１１６０…テープ格納しきい値、１１７０…ＬＵＮ、１２１０…ファイル、１２２０…格納ファイルシステム、１２３０…パス名、１２４０…最終アクセス時刻、１８００…ディスクアレイ装置、１８１０…ＨＳＭ管理プログラム、１８２０…ＨＳＭ管理テーブル。
【図１】
2010102492.tif 000003
【図２】
2010102492.tif 000004
【図３】
2010102492.tif 000005
【図４】
2010102492.tif 000006
【図５】
2010102492.tif 000007
【図６】
2010102492.tif 000008
【図７】
2010102492.tif 000009
【図８】
2010102492.tif 000010
【図９】
2010102492.tif 000011
【図１０】
2010102492.tif 000012
【図１１】
2010102492.tif 000013
【図１２】
2010102492.tif 000014
【図１３】
2010102492.tif 000015
【図１４】
2010102492.tif 000016
【図１５】
2010102492.tif 000017
【図１６】
2010102492.tif 000018
【図１７】
2010102492.tif 000019
【図１８】
2010102492.tif 000020
【図１９】
2010102492.tif 000021
【図２０】
2010102492.tif 000022
【図２１】
2010102492.tif 000023