(57)【特許請求の範囲】
【請求項１】
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
ブロックを圧縮した場合の圧縮率を算出する算出部と、
算出した前記圧縮率を予め設定された閾値と比較して、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、
当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するデータ処理情報作成部と、
前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納する格納処理部と、
前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出する第２の算出部と、
前記第２の算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部と
をそなえ、
該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記第２の算出部が、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率の算出を行なうことを特徴とする、データ処理装置。
【請求項２】
上位装置から送信されるデータ及び当該データを識別するデータ識別情報を受信する受信部と、
前記受信したデータ識別情報と、前記記録装置に格納されているデータ処理情報にかかるデータ識別情報とを照合し、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されているか否かを確認する確認部とをそなえ、
前記確認部による確認の結果、対応する前記データ処理情報が前記記録装置に格納されている場合に、該記録部が、当該データ処理情報の前記状態情報に従って、受信したデータを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録することを特徴とする、請求項１記載のデータ処理装置。
【請求項３】
前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されていない場合に、
該算出部が、前記データを形成するブロックを圧縮した場合の圧縮率を算出し、
該判断部が、該算出部が算出した圧縮率を予め設定された閾値と比較し、当該ブロックについて圧縮もしくは非圧縮を判断し、該記録部が、当該ブロックを、該判断部による判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録し、
該データ処理情報作成部が、該データ処理情報を作成し、該格納処理部が、前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納し、
該記録部が、前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されている場合に、該記録部が、当該データ処理情報の状態情報に従って、受信した前記データを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録することを特徴とする、請求項２記載のデータ処理装置。
【請求項４】
前記データ処理情報において、前記データの連続する複数のブロックにおける、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対して先頭識別情報を関連付けて記録する先頭識別情報記録部をそなえ、
前記第２の算出部が、前記先頭識別情報が設定された前記ブロックを始点として、前記データを構成する連続する各ブロックに対して、前記圧縮率の算出を順次行なうことを特徴とする、請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
ブロックを圧縮した場合の圧縮率を算出する算出部と、
算出した前記圧縮率を予め設定された閾値と比較して、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、
当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するデータ処理情報作成部と、
前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納する格納処理部と、
前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出する第２の算出部と、
前記第２の算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部と、
前記データ処理情報において、前記データの連続する複数のブロックにおける、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対して先頭識別情報を関連付けて記録する先頭識別情報記録部とをそなえ、
前記第２の算出部が、前記先頭識別情報が設定された前記ブロックを始点として、前記データを構成する連続する各ブロックに対して、前記圧縮率の算出を順次行なうことを特徴とする、データ処理装置。
【請求項６】
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、前回、前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報から、前記データ処理情報の前記状態情報を参照する参照部と、
参照した前記状態情報に従って、前記ブロックを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、
前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を算出する算出部と、
前記算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部と
をそなえ、
該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記算出部が、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率の算出を行なうことを特徴とする、データ処理装置。
【請求項７】
前記ストレージ装置に格納されたデータを記録媒体に移動させるマイグレーション処理を行なうに際して、
前記データに対応するデータ処理情報を参照するデータ処理情報参照部と、
当該データ処理情報の前記状態情報に従って、前記ストレージ装置に格納されたデータを、圧縮もしくは非圧縮のいずれかの状態で前記記録媒体に記録する媒体記録部と
をそなえることを特徴とする、請求項１〜６のいずれか１項に記載のデータ処理装置。
【請求項８】
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ記録方法であって、
ブロックを圧縮した場合の圧縮率を算出するステップと、
算出した圧縮率を予め設定された閾値と比較することにより、当該ブロックについて圧縮もしくは非圧縮を判断するステップと、
前記判断結果に基づき、当該ブロックを圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録するステップと、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するステップと、
前記データ処理情報を記録装置に格納するステップと、
前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出するステップと、
再度算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新するステップと
をそなえ、
該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率を再度算出することを特徴とする、データ記録方法。
【請求項９】
前記ストレージ装置に格納されたデータを記録媒体に移動させるマイグレーション処理を行なうに際して、
前記データに対応する前記データ処理情報を参照するステップと、
当該データ処理情報の前記状態情報に従って、前記ストレージ装置に格納されたデータを、圧縮もしくは非圧縮のいずれかの状態で前記記録媒体に記録するステップとをそなえることを特徴とする、請求項８記載のデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、データ処理装置及びデータ記録方法に関する。
【背景技術】
【０００２】
仮想テープライブラリ（Virtual Tape Library：VTL）は、ディスク装置上でテープドライブを仮想的に実行させることで、ホストコンピュータ等の上位装置に対して、あたかもテープドライブが接続されているかのように見せかける仕組みである（例えば、下記特許文献１参照）。この仮想テープライブラリの技術においては、データをディスク装置上にブロック単位で書き込む。
【０００３】
仮想テープライブラリは、従来の物理テープライブラリの運用に大きな変更を与えることなく容易に導入することができ、又、バックアップ等の処理の高速化を図ることができる。
また、仮想テープライブラリにおいては、ディスク装置やテープドライブにデータを書き込む際に、圧縮することも行なわれている（例えば、下記特許文献２，３）。仮想ディスクライブラリにおける従来のデータ圧縮手法においては、一般に、ファイル毎にデータの圧縮・非圧縮の判断を行なっている。例えば、ファイルのデータ部の先頭ブロックを圧縮して、その圧縮残存率を所定の閾値と比較し、圧縮残存率が閾値以下の場合に、そのファイルを構成する全てのブロックを圧縮してストレージ装置に記録する。
【０００４】
ここで、圧縮残存率とは、圧縮前のデータサイズに対する圧縮後のデータサイズの比率（割合）を示し、圧縮率ともいう。この圧縮残存率においては、数値が低い程、圧縮後のデータサイズが小さく、圧縮性能が良いことを表す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２２４３３号公報
【特許文献２】特開２００５−９９９７１号公報
【特許文献３】特開２００８−１５２７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１８は圧縮残存率と処理時間との関係を示す図である。この図１８に示すように、圧縮されたブロックを処理するために要する時間には、データ転送時間と圧縮復元時間とが含まれる。
ここで、データ転送時間は、データの転送に要する時間であり、データサイズに比例する。又、圧縮復元時間は、データの圧縮や復元を行なうために要する時間であり、例えば、圧縮・復元に用いる辞書テーブルの作成・保存や、この辞書テーブルの参照に要する時間等が含まれる。そして、この圧縮復元時間は、データサイズにかかわらず一定時間である。
【０００７】
従って、圧縮残存率が特定の値（図１８に示す例では９０％）を越える圧縮データは、圧縮復元時間が不要な非圧縮で記録する場合よりも処理時間がかかるという課題がある。
また、圧縮データにおいては圧縮辞書等の付随する情報も記録する必要があるので、圧縮残存率が特定値（例えば、９０％）を超えると、非圧縮で記録する場合よりもデータ量が多くなるという課題もある。
【０００８】
本件の目的の一つは、データ記録時の処理速度を速くするとともに、データ量を小さくできるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、データ処理装置は、連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、ブロックを圧縮した場合の圧縮率を算出する算出部と、算出した前記圧縮率を予め設定された閾値と比較して、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記
録する記録部と、前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するデータ処理情報作成部と、前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納する格納処理部と、前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出する第２の算出部と、前記第２の算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部とをそなえ、該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記第２の算出部が、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率の算出を行なう。
また、このデータ処理装置は、連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、ブロックを圧縮した場合の圧縮率を算出する算出部と、算出した前記圧縮率を予め設定された閾値と比較して、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するデータ処理情報作成部と、前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納する格納処理部と、前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出する第２の算出部と、前記第２の算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部と、前記データ処理情報において、前記データの連続する複数のブロックにおける、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対して先頭識別情報を関連付けて記録する先頭識別情報記録部とをそなえ、前記第２の算出部が、前記先頭識別情報が設定された前記ブロックを始点として、前記データを構成する連続する各ブロックに対して、前記圧縮率の算出を順次行なう。
【００１０】
また、このデータ処理装置は、連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、前回、前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報から、前記データ処理情報の前記状態情報を参照する参照部と、参照した前記状態情報に従って、前記ブロックを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を算出する算出部と、前記算出部により算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新する更新部とをそなえ、該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記算出部が、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率の算出を行なう。
【００１１】
さらに、このデータ記録方法は、連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ記録方法であって、ブロックを圧縮した場合の圧縮率を算出するステップと、算出した圧縮率を予め設定された閾値と比較することにより、当該ブロックについて圧縮もしくは非圧縮を判断するステップと、前記判断結果に基づき、当該ブロックを圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録するステップと、前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するステップと、前記データ処理情報を記録装置に格納するステップと、前記ストレージ装置に記録されている前記ブロックに対して所定のタイミングで圧縮率を再度算出するステップと、再度算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新するステップとをそなえ、該ブロックの記録が同一のブロックの２回目以降の記録であり、当該ブロックが前記ストレージ装置に圧縮状態で記録されている場合に、前記ストレージ装置に圧縮状態で記録されている当該ブロックに対して前記圧縮率を再度算出する。
【発明の効果】
【００１２】
開示の技術によれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）ストレージ装置へのデータのライト処理を高速化することができる。
（２）ブロックの圧縮もしくは非圧縮の判断に要する負荷を軽減することができる。
（３）データサイズを小さくすることができ、ストレージ装置や記録媒体を効率的に運用することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の一例としての仮想テープライブラリシステムの機能構成を模式的に示す図である。
【図２】実施形態の一例としての仮想テープライブラリシステムのハードウェア構成図である。
【図３】実施形態の一例としての仮想テープライブラリシステムにおいて用いられるテープフォーマットを例示する図である。
【図４】実施形態の一例としての仮想テープライブラリシステムにおいて用いられるテープフォーマットを例示する図である。
【図５】実施形態の一例としての仮想テープライブラリシステムにおいて用いられるテープフォーマットを例示する図である。
【図６】実施形態の一例としての仮想テープライブラリシステムにおいて用いられるテープフォーマットを例示する図である。
【図７】（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステムにおける管理テーブルを説明するための図である。
【図８】（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステムにおける管理テーブルを用いたライト処理を説明するための図である。
【図９】実施形態の一例としての仮想テープライブラリシステムにおけるディスクアレイ装置へのデータのライト処理を模式的に示す図である。
【図１０】（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステムにおけるパトロール処理を説明するための図である。
【図１１】（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステムにおけるパトロール処理を説明するための図である。
【図１２】実施形態の一例としての仮想テープライブラリシステムにおけるパトロール処理を模式的に示す図である。
【図１３】実施形態の一例としての仮想テープライブラリシステムにおけるマイグレーション処理を模式的に示す図である。
【図１４】実施形態の一例としての仮想テープライブラリシステムにおける、ホストからの一般ジョブについての圧縮／非圧縮制御にかかる処理の概要を説明するための図である。
【図１５】実施形態の一例としての仮想テープライブラリシステムにおけるライト処理を説明するためのフローチャートである。
【図１６】実施形態の一例としての仮想テープライブラリシステムにおけるパトロール処理を説明するためのフローチャートである。
【図１７】実施形態の一例としての仮想テープライブラリシステムにおけるマイグレーション処理を説明するためのフローチャートである。
【図１８】圧縮残存率と処理時間との関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本仮想テープライブラリシステムに係る実施の形態を説明する。
図１は実施形態の一例としての仮想テープライブラリシステムの機能構成を模式的に示す図、図２はそのハードウェア構成図である。
仮想テープライブラリシステム１は、ディスクアレイ（ストレージ装置）２４をそなえ、このディスクアレイ２４上においてテープ運用を仮想的に実現する。
【００１５】
この仮想テープライブラリシステム１は、図２に示すように、仮想ライブラリ装置２とテープライブラリ装置３とをそなえている。仮想テープライブラリシステム１は、上位装置であるホスト１００と通信回線５０を介して通信可能に接続され、ホスト１００から送信されるデータを、ディスクアレイ２４に格納する。
仮想テープライブラリシステム１は、ホスト１００から送信されるデータをテープフォーマットでディスクアレイ２４に格納する。例えば、ホスト１００のデータのバックアップジョブとして、ホスト１００で用いられる各種データをディスクアレイ２４に格納する。又、ディスクアレイ２４に格納されたデータは、マイグレーション処理により、必要に応じてテープライブラリ装置３の記録テープ３３に移動（セーブ）される。
【００１６】
ホスト１００は、例えば、バックアップサーバとしての機能をそなえ、予めスケジュール化されたバックアップジョブを行なう。このバックアップジョブは、ホスト１００が、保存対象のデータ（バックアップデータ）を仮想ライブラリ装置２に送信し、仮想ライブラリ装置２においてディスクアレイ２４に保存することにより行なう。ここでバックアップデータには、ジョブ毎に決まったファイル名が設定される。例えば、日々実施される曜日毎のバックアップにおいては、同じ曜日のバックアップデータには同一のファイル名が設定される。
【００１７】
一般に、バックアップジョブのような定常的に行なわれるジョブに関しては、ファイル名が一致すると、そのデータのデータ部を構成するブロックについて、ブロック数，圧縮／非圧縮のデータの性質はほとんどの部分において一致する傾向にある。
また、これらの同じファイル名が設定されたバックデータは、ディスクアレイ２４における同一もしくはほぼ同一の格納場所に決まったボリュームに決まった順番で処理される。
【００１８】
テープライブラリ装置３は、ロボットユニット３１，記録テープ３３及びドライブユニット３２をそなえている。このテープライブラリ装置３は、仮想ライブラリ装置２から送信されるデータを記録テープ３３に記録したり、又、記録テープ３３に記録されているデータを読み出し、仮想ライブラリ装置２に送信する。
記録テープ３３は、データを順次アクセス記憶する記録媒体であって、例えば、磁気テープ，カートリッジテープ，カセットテープ等が用いられる。図２に示す例においては、テープライブラリ装置３に複数の記録テープ３３が搭載される。
【００１９】
ロボットユニット３１は、図示しないアーム等を用いて記録テープ３３を把持して搬送する機構をそなえ、記録テープ３３を搬送してドライブユニット３２に取り付ける。ロボットユニット３１は、後述する仮想ライブラリ装置２の階層制御部２０からの制御に従って、複数の記録テープ３３の中から一の記録テープ３３を選択する。そして、この選択した記録テープ３３を搬送してドライブユニット３２に取り付ける。
【００２０】
ドライブユニット３２は、記録テープ３３に対してデータの読み書きを行なうものであり、ロボットユニット３１によって取り付けられた記録テープ３３に対して、テープフォーマットでデータの書き込みを行なう。
また、本仮想テープライブラリシステム１は、仮想ライブラリ装置２のディスクアレイ２４に格納されているデータを、テープライブラリ装置３の記録テープ３３に移動する、マイグレーション機能をそなえている。
【００２１】
仮想ライブラリ装置２は、階層制御部２０とディスクアレイ２４とをそなえる。この仮想ライブラリ装置２は、ホスト１００とテープライブラリ装置３との間にそなえられ、ホスト１００から送信されるデータをディスクアレイ２４の論理テープボリュームにテープフォーマットで記憶する。
本仮想テープライブラリシステム１において用いられるテープフォーマットには、ＩＳＯ，ＡＮＳＩ，ＪＩＳ等において標準化されているものを用いることが望ましい。
【００２２】
図３〜図６は、本仮想テープライブラリシステム１において用いられるテープフォーマットを例示する図である。図３はテープフォーマットにおけるボリュームフォーマットを例示する図、図４はそのボリュームラベルを例示する図、図５及び図６はそのファイルラベルを例示する図である。なお、図４〜図６中において、カッコ“（）”付きの符号はバイト数を示す。
【００２３】
図３に示すように、テープフォーマットにおいては、データ部においてデータがブロック（データブロック）単位で記録される。そして、データの書き込みや読み出しは、これらのブロックをその先頭位置から順番に処理することにより行なわれる。
図４に示す例においては、ラベル識別記号は４バイト（byte）の文字列であり、例えば“VOL1”である。又、ボリューム名は６バイトの文字列であり、例えば“AAAAAA” である。更に、所有者は１０バイトの文字列であり、例えば“FUJITSU-FS”である。
【００２４】
図５に示す例においては、ラベル識別記号は４バイトの文字列であり、例えば “ HDR1”である。又、ファイル名は１７バイトの文字列であり、例えば、“DATA-COMP-FILE”である。ファイル通番は６バイトの文字列であり、例えば、“123456”である。ボリューム順番は４バイトの文字列であり、例えば“0001”，“0002”，---，“9999”である。ファイル順番は６バイトの文字列であり、例えば、“0001”，“0002”，---，“9999”である。作成日は８バイトの文字列であり、例えば“20100506”である。有効期限は６バイトの文字列であり、例えば“200506”である。ブロックカウントは６バイトの文字列であり、例えば、“000001”，“000002”，----，“999999”である。    
【００２５】
図６に示す例においては、ラベル識別記号は４バイトの文字列であり、例えば“HDR2”である。レコード形式は１バイトの文字列であり、例えば“F（固定長レコード）”や“V（可変長レコード）”，“U（不定長レコード）”である。ブロック長は５バイトの文字列であり、例えば“32000”である。レコード長は５バイトの文字列であり、例えば、“32000”である。記録密度及びファイル位置はそれぞれ１バイトの文字列である。
【００２６】
なお、これらの図３〜図６に示すテープフォーマットは標準化されたものの一例であり、その詳細な説明は省略する。又、この例においては、一つのファイルをテープに記録例について示している。
そして、一般的なテープフォーマットにおいては、ボリューム名（図４参照）やファイル名（図５参照）が格納される。本実施形態においては、これらのボリューム名及びファイル名は、データを識別・特定するためのデータ識別情報として機能する。
【００２７】
ディスクアレイ２４は、例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置であり、複数のＨＤＤ（Hard Disk Drive）を組み合わせて、冗長化された１つのストレージとして管理するものである。このディスクアレイ２４は、階層制御部２０に対して仮想的なストレージを提供する。
階層制御部２０は、サーバの処理を複数の階層に分離して配置することで、ある階層へ変更を加える必要が生じた際にも柔軟に対応できるようにしたサーバ・コンピュータである。
【００２８】
この階層制御部２０は、ホスト１００からの指示に応じて、送信されるデータをテープフォーマットでディスクアレイ２４に格納する。又、階層制御部２０は、ホスト１００からの指示に応じて、ディスクアレイ２４に格納されているデータをホスト１００に送信する。更に、階層制御部２０は、ホスト１００からの指示に応じて、ディスクアレイ２４に格納されたデータをテープライブラリ装置３の記録テープ３３に移動するマイグレーションを行なう。
【００２９】
階層制御部２０は、図示しない、ＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ＨＤＤ（Hard Disk Drive）の他、メモリ２５等をそなえる。そして、ＣＰＵが、ＨＤＤ等に格納されたＯＳ（Operating System）や各種プログラムを実行することにより各種機能を実現する。又、メモリ（記録装置）２５は、例えば不揮発性メモリであり、このメモリ２５に後述する管理テープルＴを格納する。
【００３０】
なお、管理テーブルＴを格納するメモリ２５は不揮発性メモリに限定されるものではない。例えば、ＯＳやプログラムを実行するためにデータを一時的に格納・展開する上記ＲＡＭやＨＤＤ等の他の記録装置を用いてもよく、種々変形して実施することができる。
階層制御部２０は、図１に示すように、ライト処理部２１，パトロール処理部２２及びマイグレーション処理部２３としての機能をそなえる。
【００３１】
ライト処理部２１は、ホスト１００から受信したデータを、ディスクアレイ２４に上述したテープフォーマットで書き込むライト処理を行なう。このライト処理部２１は、図１に示すように、受信部２０１，確認部２０２，圧縮率算出部２０３，記録部２０４，判断部２０５，管理テーブル作成部２０６及び格納処理部２０７をそなえている。
受信部２０１は、ディスクアレイ２４に書き込むためのデータをブロック単位で受信する。受信したデータは、図示しないメモリ（バッファ）に格納される。以下、ブロック単位のデータを単にブロックという場合がある。
【００３２】
確認部２０２は、受信部２０１がホスト１００から受信したデータのヘッダ部（図３参照）から、ボリューム名及びファイル名を抽出する。そして、確認部２０２は、これらのホスト１００から受信したボリューム名及びファイル名と、メモリ２５に格納されている管理テーブル（データ処理情報）Ｔ（詳細は後述）に登録されているエントリのボリューム名及びファイル名とを照合する。これにより、確認部２０２は、受信したボリューム名及びファイル名に対応するエントリが管理テーブルＴに登録されているか否かを確認する。つまり、確認部２０２は、ホスト１００から送信されたデータのライト処理要求が、同一データについての２回目以降のライト処理であるか否かを確認する。
【００３３】
圧縮率算出部（算出部）２０３は、データ圧縮手法を用いてブロックを圧縮した場合の圧縮率を算出する。圧縮率とは、圧縮前のデータサイズに対する圧縮後のデータサイズの比率（割合）を示し、圧縮残存率ともいう。又、データ圧縮手法としては、例えば、ハフマン符号化、レンペルジブ符号化、ランレングス符号化等、既知の種々の手法を適宜用いることができる。
【００３４】
また、圧縮率算出部２０３は、上述したデータ圧縮手法を用いて、ブロックを実際に圧縮する圧縮処理部としての機能もそなえている。
圧縮率算出部２０３は、例えば、上述したデータ圧縮手法を用いてブロックを圧縮して、その圧縮後のデータサイズを測定し、この圧縮後のデータサイズと圧縮前のデータサイズとを用いて圧縮率を算出する。なお、圧縮率算出部２０３は、実際にブロックを圧縮することなく、ブロックの圧縮後のデータサイズをシミュレートすることにより圧縮後のデータサイズを取得してもよい。なお、このようなブロックの圧縮後のデータサイズは、既知の種々の手法を用いて算出することができ、その詳細な説明は省略する。
【００３５】
また、圧縮率算出部２０３は、前述した確認部２０２による確認の結果、受信したボリューム名及びファイル名に対応するエントリが管理テーブルＴに格納されていない場合に、そのデータを構成する各ブロックについて圧縮率の算出を行なう。
判断部２０５は、ホスト１００から受信したブロックをディスクアレイ２４に格納する際に、圧縮した状態で格納するか非圧縮の状態で格納するかを判断する。具体的には、判断部２０５は、圧縮率算出部２０３が算出した、そのブロックの圧縮率を予め設定された閾値と比較する。そして、算出された圧縮率が閾値よりも低い場合には、そのブロックを圧縮した状態でディスクアレイ２４に記録すると判断し、一方、算出された圧縮率が閾値以上の場合には、そのブロックを非圧縮でディスクアレイ２４に記録すると判断する。
【００３６】
ここで、前述したように、圧縮率がある特定値を超えると、非圧縮でデータを書き込んだ方が処理時間が短くなる。本実施形態においては、この圧縮率の特定値を判断部２０５が圧縮もしくは非圧縮を判断するための閾値として用いる。
なお、この閾値は階層制御部２０におけるデータバスの処理性能やデータ圧縮のアルゴリズム等により変化する値である。そこで、予め、データを、圧縮率を種々に変化させて圧縮してディスクアレイ２４に書き込み、各処理時間を測定する一方で、同一のデータを非圧縮状態でディスクアレイ２４に書き込んでその処理時間を測定する。これらの処理時間の比較を行ない、非圧縮のデータの処理（データ転送）に要する時間（テータ転送時間：処理時間）よりも、圧縮したデータの処理（圧縮復元及びデータ転送）に要する時間が長くなる、境界値としての圧縮率を上記閾値として採用することが望ましい。
【００３７】
本実施形態においては、ブロックをディスクアレイ２４に格納する際に、判断部２０５が圧縮した状態で格納するか非圧縮の状態で格納するかを判断するための閾値が９０％である場合について例示する。
この判断部２０５による判断結果は圧縮率算出部２０３に通知される。圧縮率算出部２０３は、この判断部２０５の判断結果が圧縮である場合に、受信したブロックを圧縮し、この圧縮した状態のブロックを記録部２０４に受け渡す。又、圧縮率算出部２０３は、判断部２０５の判断結果が非圧縮である場合に、受信したブロックを非圧縮の状態で記録部２０４に受け渡す。
【００３８】
管理テーブル作成部２０６は、管理テーブルＴに登録するエントリを作成するデータ処理情報作成部である。
図７（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステム１における管理テーブルＴを説明するための図であり、図７（ａ）はデータの一例を示す図、図７（ｂ）は図７（ａ）のデータについての管理テーブルＴのエントリを例示する図である。
【００３９】
図７（ａ）に示す例においては、データのデータ部がｎ個のブロックで構成されている。又、図７（ａ）に示す例においては、データ部を構成する各ブロックに対して、それぞれブロック番号ｋ（ｋ＝１〜ｎの自然数）をカッコ“（）”を付して示している。そして、データ部を構成するブロック列の先頭のブロックにブロック番号１（ｋ＝１）を付し、ブロック列の最後尾のブロックにブロック番号ｎ（ｋ＝ｎ）を付している。
【００４０】
そして、図７（ａ），（ｂ）に示す例においては、データ部のｎ個のブロックのうち、先頭から１番目と２番目のブロック（ｋ＝１，２）が圧縮状態で格納されており、先頭から３番目のブロック以降（ｋ＝３〜ｎ）が非圧縮で格納されている。
管理テーブルＴは、ディスクアレイ２４に格納したデータの処理状態を表すデータ処理情報としてのエントリを１以上格納する。図７（ｂ）に示す例においては、この管理テーブルＴのエントリとして、データを識別・特定するためのボリューム名及びファイル名に対して、圧縮・非圧縮状態，パトロールポインタ及びラストブロック（Last Block）を関連付けている。
【００４１】
ボリューム名及びファイル名は、データを識別するデータ識別情報である。圧縮・非圧縮状態は、データのデータ部を構成する各ブロックについて、圧縮もしくは非圧縮のいずれの状態で記録したかを示す状態情報である。図７（ｂ）に示す例においては、圧縮の状態を“０”で表し、非圧縮の状態を“１”で表している。
パトロールポインタは、後述するパトロール処理の始点となるブロックを特定する情報である。具体的には、ディスクアレイ２４に記録されたデータについて、そのデータ部を構成する連続する複数のブロックにおける、非圧縮の状態でディスクアレイ２４に記録された先頭のブロックを識別するブロック番号（先頭識別情報）がパトロールポインタとして登録される。
【００４２】
すなわち、管理テーブル作成部２０６は、管理テーブルＴにおいて、データのデータ部を構成するブロック列における、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対してパトロールポインタを関連付けて記録する先頭識別情報記録部として機能する。
ラストブロック（Last Block）は、後述するパトロール処理の終点となるブロックを特定する情報である。具体的には、データのデータ部を構成するブロック列の最終ブロックを識別するブロック番号（ｋ＝ｎ）がラストブロックとして登録される。
【００４３】
すなわち、管理テーブルＴには、データ識別情報としてのボリューム名及びファイル名に、状態情報としての圧縮・非圧縮状態を対応付けたエントリ（データ処理情報）が格納されている。
なお、図７（ｂ）に示す例においては、便宜上、管理テーブルＴにボリューム名“VOLAAA”、且つ、ファイル名“HDRAAA”の１つのデータについてのエントリのみ示しているが、これに限定されるものではなく、管理テーブルＴには他のデータについても登録される。
【００４４】
また、作成された管理テーブルＴはメモリ２５に格納される。
格納処理部２０７は、管理テーブル作成部２０６によって作成された管理テーブルＴをメモリ２５に格納する。
記録部２０４は、ブロックを圧縮もしくは非圧縮のいずれかの状態でディスクアレイ２４に記録する。記録部２０４は、圧縮率算出部２０３がブロックを圧縮した場合には圧縮した状態でそのブロックをディスクアレイ２４に記録し、圧縮率算出部２０３がブロックの圧縮を行なわなわなかった場合には、そのブロックを非圧縮の状態でディスクアレイ２４に記録する。
【００４５】
すなわち、記録部２０４は、判断部２０５の判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する。
また、記録部２０４は、前述した確認部２０２による確認の結果、管理テーブルＴにおいて、受信したボリューム名及びファイル名に対応するエントリ登録されている場合に、そのエントリの圧縮・非圧縮状態に従って、受信したブロックを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する。
【００４６】
すなわち、既にディスクアレイ２４に格納されているデータを、再度、ディスクアレイ２４に格納する場合には、記録部２０４は、管理テーブルＴに登録されたそのデータにかかるエントリの圧縮・非圧縮状態を参照する。
そして、記録部２０４は、そのデータのデータ部の各ブロックを、管理テーブルＴに登録されたそのデータにかかるエントリの圧縮・非圧縮状態に従って、圧縮もしくは非圧縮のいずれかの状態でディスクアレイ２４に格納する。
【００４７】
図８（ａ），（ｂ）は実施形態の一例としての仮想テープライブラリシステム１における管理テーブルＴを用いたライト処理を説明するための図であり、図８（ａ）は管理テーブルＴのエントリを例示する図、図８（ｂ）は図８（ａ）の管理テーブルＴに対応するデータの一例を示す図である。
例えば、ホスト１００からライト指令を受けた場合において、そのデータが、ボリューム名“VOLAAA”、ファイル名“HDRAAA”であった場合について例示する。図８（ａ）に示す例において、管理テーブルＴに、既にボリューム名“VOLAAA”、ファイル名“HDRAAA”のエントリが登録されている。この場合、確認部２０２が、受信したデータのボリューム名及びファイル名に対応するエントリがメモリ２５の管理テーブルＴに登録されていることを確認する。
【００４８】
圧縮率算出部２０３は、受信したデータのデータ部の先頭ブロックから順番に、各ブロックを、この管理テーブルＴのエントリにおける圧縮・非圧縮状態に従って、圧縮もしくは非圧縮の状態にする。すなわち、図８（ａ）に示す例においては、圧縮・非圧縮状態において、データ部の先頭ブロックが圧縮状態であり、２〜５番目のブロックは非圧縮状態であることを示している。圧縮率算出部２０３は、この圧縮・非圧縮状態に従って、データ部の先頭ブロックを圧縮状態とし、２〜５番目のブロックを非圧縮状態とする。
【００４９】
ただし、この際、管理テーブルＴのエントリに従って圧縮状態にしたブロックについては、判断部２０５が、その圧縮率に基づき、圧縮もしくは非圧縮のいずれの状態でディスクアレイ２４に書き込むかの判定を再度行なう。
すなわち、圧縮率算出部２０３は、管理テーブルＴのエントリに従って圧縮状態にしたブロックについては、その圧縮率を算出し、判断部２０５に受け渡す。判断部２０５は、圧縮率算出部２０３によって算出された圧縮率を予め設定された閾値と比較する。そして、この算出された圧縮率が閾値以上の場合には、そのブロックを非圧縮でディスクアレイ２４に記録することを判断する。
【００５０】
このように、管理テーブルＴのエントリにおいて、圧縮・非圧縮状態に圧縮が設定されているブロックであっても、圧縮率算出部２０３によって算出した圧縮率が閾値以上となったものについては、ディスクアレイ２４に非圧縮の状態で書き直す。これにより、ディスクアレイ２４に格納されているデータが何等かの理由で変わった場合であっても、管理テーブルＴのエントリの圧縮・非圧縮状態が、データの実際の状態に一致し、信頼性を向上させることができる。
【００５１】
なお、管理テーブルＴのエントリにおいて圧縮・非圧縮状態に非圧縮状態が設定されているブロックについては、圧縮率に基づく圧縮もしくは非圧縮の再判定は行なわない。これにより、処理の高速化を図るとともに、階層制御部２０の負荷を軽減することができる。
圧縮率算出部２０３は、このように圧縮／非圧縮の状態に生成した各ブロックのデータを、記録部２０４に受け渡し、記録部２０４は、これらの圧縮もしくは非圧縮の状態に成形されたブロックをディスクアレイ２４に記録する。
【００５２】
図９は実施形態の一例としての仮想テープライブラリシステム１におけるディスクアレイ２４へのデータのライト処理を模式的に示す図である。
ライト処理は、この図９に示すように、ファイルオープン（File Open）処理，データ部ライト処理及びファイルクローズ（File Close）処理をそなえる。
ファイルオープン処理においては、書き込み対象のデータのファイル名を取得し、ディスクアレイ２４にデータのヘッダ部の書き込みを行なう。データ部ライト処理においては、書き込み対象のデータのデータ部をブロック単位で圧縮率の算出を行なう。又、この圧縮率の算出結果に基づいて、ブロック毎に圧縮／非圧縮の判断を行ない、更に、その判断結果に基づいて、ブロックを圧縮状態でディスクアレイ２４に格納する圧縮処理や、ブロックを非圧縮状態でディスクアレイ２４に格納する非圧縮処理を行なう。なお、このデータ部ライト処理は、管理テーブルＴ及びブロックカウンタ（Block Counter）を参照しながら行なう。
【００５３】
ブロックカウンタは、ライト処理や後述するマイグレーション処理において、処理対象のブロックを特定する情報（カウンタ値）であり、データを構成するブロックのブロック番号に対応する。ファイルクローズ処理においては、ディスクアレイ２４にデータのEOF部の書き込みを行なう。
パトロール処理部２２は、管理テーブル作成部２０６が作成した管理テーブルＴを更新するパトロール処理を行なう。なお、パトロール処理は、例えば、ホスト１００からアンロードコマンドを受信したタイミングで開始される。又、望ましくは、パトロール処理は、前回にパトロール処理行なってから所定時間経過した後に行なうことが望ましい。
【００５４】
このパトロール処理部２２は、図１に示すように、再算出部２２１及び更新部２２２をそなえる。
再算出部２２１は、ディスクアレイ２４に記録されているデータのブロックの圧縮率を再算出する。この再計算部２２１は、圧縮率算出部２０３と同様の手法でブロックの圧縮率を算出する。
【００５５】
また、再算出部２２１は、パトロール処理を行なうに際して、管理テーブルＴにおけるパトロールポインタが示すブロックを始点として、データ部を構成する後続する各ブロックに対して圧縮率の算出（再算出）を順次行なう。
更新部２２２は、再算出部２２１により再度算出された圧縮率に基づいて、管理テーブルＴにおける、各ブロックに対応する圧縮・非圧縮状態を更新する。すなわち、更新部２２２は、再算出部２２１により再度算出された圧縮率に基づいて、そのブロックを圧縮した状態で格納するべきであるか非圧縮の状態で格納するべきであるかを判断する。
【００５６】
具体的には、更新部２２２は、再算出部２２１が算出した、そのブロックの圧縮率を予め設定された閾値と比較する。そして、再算出された圧縮率が閾値よりも低い場合には、そのブロックについて“圧縮”するべきブロックと判断する。又、再算出された圧縮率が閾値以上の場合には、そのブロックについて“非圧縮”とするべきブロックと判断する。
そして、この判断の結果が、その判断時点において、管理テーブルＴにおけるそのブロックの圧縮・非圧縮状態と異なっている場合には、更新部２２２は、管理テーブルＴにおけるそのブロックの圧縮・非圧縮状態を再算出された圧縮率に基づく判断結果で更新する。なお、この際、ディスクアレイ２４に格納されているブロックを圧縮もしくは非圧縮の状態に書き換えることまでは行なわず、管理テーブルＴの更新を行なうにとどめる。
【００５７】
図１０（ａ），（ｂ），図１１（ａ），（ｂ）は、それぞれ実施形態の一例としての仮想テープライブラリシステム１におけるパトロール処理を説明するための図である。図１０（ａ）はパトロール処理前のデータの一例を示す図、図１０（ｂ）は図１０（ａ）のデータについての管理テーブルＴのエントリを例示する図である。又、図１１（ａ）はパトロール処理後のデータの一例を示す図、図１１（ｂ）は図１１（ａ）のデータについての管理テーブルＴのエントリを例示する図である。
【００５８】
図１０（ａ），（ｂ），図１１（ａ），（ｂ）に示す例においては、データのデータ部がｎ個のブロックで構成されている。又、図１０（ａ），図１０（ｂ）に示す例においては、データ部を構成する各ブロックに対して、それぞれブロック番号ｋ（ｋ＝１〜ｎの自然数）をカッコ“（）”を付して示している。そして、データ部を構成するブロック列の先頭のブロックにブロック番号１（ｋ＝１）を付し、ブロック列の最後尾のブロックにブロック番号ｎ（ｋ＝ｎ）を付している。
【００５９】
パトロール処理前においては、図１０（ａ），（ｂ）に示すように、データ部のｎ個のブロックのうち、先頭から１番目と２番目のブロック（ｋ＝１，２）が圧縮状態で格納されており、先頭から３番目のブロック以降（ｋ＝３〜ｎ）が非圧縮で格納されている。
そして、上述したパトロール処理部２２によるパトロール処理において、図１１（ａ）に示すように、例えば、先頭からｎ−１番目のブロックの圧縮率が閾値よりも小さくなることが判明した場合には、図１１（ｂ）に示すように、管理テーブルＴにおける対応するデータのエントリの圧縮・非圧縮状態において、そのｎ−１番目のブロックに対して圧縮状態が設定される。
【００６０】
図１２は実施形態の一例としての仮想テープライブラリシステム１におけるパトロール処理を模式的に示す図である。
パトロール処理は、この図１２に示すように、タイマ（Timer）起動及びデータ部リード処理をそなえる。
タイマ起動においては、ホスト１００からのアンロードコマンドの受信を契機として、前回パトロール処理を行なってから所定期間経過した場合に、パトロール処理を開始する。
【００６１】
データ部リード処理は、パトロールポインタ及び管理テーブルＴを参照しながら行なう。このデータ部リード処理においては、管理テーブルＴにおける対象データのエントリを参照して、そのパトロールポインタを取得する。そして、このパトロールポインタによって表されるブロックを始点として、データ部を構成する、後続する各ブロックに対して圧縮率の算出（再算出）を行なう。そして、これらの再度算出された圧縮率に基づいて、管理テーブルＴにおける、各ブロックに対応する圧縮・非圧縮状態を更新する。
【００６２】
マイグレーション処理部２３は、ストレージ装置に格納されたデータを記録テープ（記録媒体）３３に移動させるマイグレーション処理を行なう。マイグレーション処理は、ホスト１００から、マイグレーションの実行指令とともに、マイグレーションの対象となるデータを識別するためのボリューム名及びファイル名（データ識別情報）を受信することにより開始する。
【００６３】
このマイグレーション処理部２３は、図１に示すように、データセーブ処理部２３１及び管理テーブル参照部２３２をそなえる。
管理テーブル参照部（データ処理情報参照部）２３２は、マイグレーションの実行指令とともに受信したボリューム名及びファイル名に基づいて管理テーブルＴを参照し、マイグレーション対象のデータに対応するエントリが登録されているか否かを確認する。すなわち、管理テーブル参照部２３２は、マイグレーション対象のデータのボリューム名及びファイル名が、管理テーブルＴに登録されているか否かを確認する。
【００６４】
データセーブ処理部（媒体記録部）２３１は、テープライブラリ装置３を制御して、ディスクアレイ２４に格納されているデータを記録テープ３３に格納する。このデータセーブ処理部２３１は、上述した管理テーブル参照部２３２による参照の結果、管理テーブルＴにマイグレーション対象のデータにかかるエントリが登録されていた場合に、そのエントリの圧縮・非圧縮状態を取得する。そして、データセーブ処理部２３１は、この圧縮・非圧縮状態に従って、ディスクアレイ２４に格納されているマイグレーション対象のデータを、圧縮もしくは非圧縮のいずれかの状態で記録テープ３３に記録する。
【００６５】
図１３は実施形態の一例としての仮想テープライブラリシステム１におけるマイグレーション処理を模式的に示す図である。
マイグレーション処理は、この図１３に示すように、ファイルオープン（File Open）処理，データ部セーブ処理及びファイルクローズ（File Close）処理をそなえる。
ファイルオープン処理においては、マイグレーション対象のデータをディスクアレイ２４から取得する。そして、そのデータのファイル名を取得し、記録テープ３３にデータのヘッダ（Header）部の書き込みを行なう。
【００６６】
データ部セーブ処理においては、管理テーブルＴにおける対象データのエントリを参照し、その圧縮・非圧縮状態に従って、マイグレーション対象のデータのデータ部を構成する各ブロックを処理する。すなわち、各ブロックを、管理テーブルＴの圧縮・非圧縮状態に従って、ブロックを圧縮状態で記録テープ３３に格納する圧縮処理や、ブロックを非圧縮状態で記録テープ３３に格納する非圧縮処理を行なう。なお、このデータ部セーブ処理は、管理テーブルＴ及びブロックカウンタ（Block Counter）を参照しながら行なう。ファイルクローズ処理においては、記録テープ３３にデータのEOF部の書き込みを行なう。
【００６７】
上述の如く構成された、実施形態の一例としての仮想テープライブラリシステム１における、ホスト１００からの一般ジョブについての圧縮／非圧縮制御にかかる処理の概要を、図１４を参照しながら説明する。なお、以下に示すかっこ“（）”付きの符号は処理の順番を示し、図１４中のかっこ“（）”付き符号に対応する。
（１）ホスト１００は非圧縮データを階層制御部２０に送付する。
【００６８】
（２）階層制御部２０において、ライト処理部２１は、データ部の先頭ブロックから順番に処理して、圧縮／非圧縮のいずれかの状態でディスクアレイ２４に書き込む。具体的には、ブロックを圧縮率が閾値（例えば、９０%）より低い場合に圧縮でディスクアレイ２４書き込み、圧縮率が閾値以上の場合に非圧縮でディスクアレイ２４に書き込む。又、データのボリューム名，ファイル名，圧縮・非圧縮状態及びパトロールポインタを階層制御部２０のメモリ２５に記憶しておく。ここで、圧縮率が閾値よりも高くなったブロックからはファイルの最後のブロックまで非圧縮で処理する。又、圧縮残存率が高くなった次のブロックのブロック番号はパトロールポインタとして階層制御部２０のメモリ２５の管理テーブルＴに記憶しておく。
【００６９】
（３）ホスト１００はジョブの終わりにアンロードコマンドを階層制御部２０に送付する。
（４）パトロール処理部２２は、アンロードコマンドを契機にディスクアレイ２４内のデータのパトロール処理を開始する。具体的には、パトロール処理部２２は、パトロールポインタが示すブロックの圧縮率を計測する。圧縮率が閾値よりも低い場合は、圧縮するべきブロックであるとして階層サーバ２０の管理テーブルＴ上で圧縮とマークする。同様に、圧縮率が閾値以上であった場合は、非圧縮とするべきブロックであるとして階層サーバ２０の管理テーブルＴ上で非圧縮とマークする。
【００７０】
（５）パトロール処理部２２は、一定時間間隔でディスクアレイ２４内のデータのパトロール処理を行ない、パトロールポインタが示すブロックの圧縮率の計測を繰り返し行なう。すなわち、パトロール処理部２２は、圧縮率が閾値よりも低い場合は、圧縮するべきブロックであるとして階層制御部２０の管理テーブルＴ上で、圧縮・非圧縮状態に圧縮とマーク更新する。同様に、圧縮率が閾値以上であった場合は、非圧縮とするべきブロックであるとして階層制御部２０の管理テーブルＴ上で、圧縮・非圧縮状態に非圧縮とマーク更新する。
【００７１】
（６）パトロール終了後、マイグレーション処理部２３が、階層制御部２０のメモリ２５に記憶した管理テーブルＴの圧縮・非圧縮状態に従って、データ部の各ブロックの圧縮／非圧縮制御を行ない、ドライブユニット３２を介して記録テープ３３にデータを格納（マイグレーション）する。具体的には、マイグレーション処理部２３は、管理テーブルＴの圧縮・非圧縮状態において、圧縮として登録されているブロックを圧縮状態で、又、非圧縮として登録されているブロックを非圧縮状態で、それぞれ格納する。又、この際、ディスクアレイ２４に格納されている圧縮／非圧縮の状態と管理テーブルＴの圧縮・非圧縮状態とが異なるブロックについては、管理テーブルＴに従って、非圧縮データの圧縮や圧縮データの非圧縮化の処理を行なう。従って、例えば、ディスクアレイ２４に圧縮状態で格納されているブロックが、管理テーブルＴにおいては非圧縮とすべきブロックとなっている場合には、そのブロックのデータを伸張して非圧縮化する処理を行なう。
【００７２】
（７）同一データの２回目以降のライト処理：ホスト１００は非圧縮データを階層制御部２０に送付する。
（８）同一データの２回目以降のライト処理：ライト処理部２１は、管理テーブルＴ上に記憶したボリューム名及びファイル名が一致すると、管理テーブルＴの圧縮・非圧縮状態の形式に従って、各ブロックを順次ディスクアレイ２４に書き込む。ファイル内のデータブロック数が増えたことが判明した場合は、最後のブロックまで非圧縮でディスクアレイ２４に書き込む。パトロールポインタは非圧縮の先頭ブロックに戻しておく。
【００７３】
（９）同一データの２回目以降のライト処理：ホスト１００はジョブの終わりにアンロードコマンドを階層制御部２０に送付する。
（１０）同一データの２回目以降のパトロール処理：パトロール処理部２２は、アンロードコマンドを契機にディスクアレイ２４内のデータのパトロールを開始する。具体的には、パトロールポインタが示すブロックの圧縮率を計測する。圧縮率が閾値よりも低い場合は階層制御部２０の管理テーブルＴ上で圧縮とマークする。同様に、圧縮率が閾値以上であった場合は階層制御部２０の管理テーブルＴ上で非圧縮とマークする。
【００７４】
（１１）同一データの２回目以降のマイグレーション処理：マイグレーション処理部２３は、パトロール処理終了後、階層制御部２０のメモリ２５に記憶した管理テーブルＴの圧縮・非圧縮状態に従い、記録テープ３３にデータを格納する。すなわち、マイグレーション処理部２３は、管理テーブルＴの圧縮・非圧縮状態において、圧縮として登録されているブロックを圧縮状態で、又、非圧縮として登録されているブロックを非圧縮状態で、それぞれ記録テープ３３に格納する。又、この際、ディスクアレイ２４に格納されている圧縮／非圧縮の状態と管理テーブルＴの圧縮・非圧縮状態とが異なるブロックについては、管理テーブルＴの圧縮・非圧縮状態に合わせて、非圧縮データの圧縮や圧縮データの非圧縮化（伸張）の処理を行なう。
【００７５】
次に、上述の如く構成された、実施形態の一例としての仮想テープライブラリシステム１におけるライト処理を、図１５に示すフローチャート（ステップＡ１０〜Ａ２８０）に従って説明する。
ホスト１００が非圧縮の状態のデータを階層制御部２０に送信すると、受信部２０１がそのデータを受信し、ファイルオープン処理を行なう（ステップＡ１０）。このファイルオープン処理において、データのヘッダ（Header）部がディスクアレイ２４に書き込まれる。
【００７６】
ライト処理部２１は、ブロックカウンタ（Block Count）を１に設定（Block Count=1）することによりカウンタリセットを行なう（ステップＡ２０）。なお、このブロックカウンタは、データ部を構成するブロックのブロック番号に対応する。
判断部２０５は、受信部２０１がホスト１００からライト指令とともに受信したデータのボリューム名及びファイル名に対応するエントリが、メモリ２５に格納されている管理テーブルＴに登録されているか否かを確認する（ステップＡ３０）。すなわち、判断部２０５は、ホスト１００から送信されたデータのライト処理要求が、同一データについての２回目以降のライト処理であるか否かを確認する（ステップＡ３０）。
【００７７】
管理テーブルＴにおいて同一のボリューム名及びファイル名のエントリが登録されてない場合、すなわち、ホスト１００から送信されたデータのライト処理要求が初回のライト処理である場合には（ステップＡ３０のＮルート参照）、管理テーブルＴに新たなエントリを作成して、受信したデータのボリューム名及びファイル名を登録する。
そして、このエントリにおいて、先ず、パトロールポインタの更新を行なう（ステップＡ４０）。具体的には、ブロックカウンタの値をパトロールポインタにセットすることにより、パトロールポインタを更新する。
【００７８】
次に、圧縮率算出部２０３が、ブロックカウンタによって特定されるデータ部のブロックの圧縮率を算出する（ステップＡ５０）。判断部２０５は、この算出された圧縮率を予め設定された閾値（９０％）と比較することにより、ブロックをディスクアレイ２４に格納する際に、圧縮した状態で格納するか非圧縮の状態で格納するかを判断する（ステップＡ６０）。
【００７９】
圧縮率が閾値よりも低い場合には（ステップＡ６０のＮルート参照）、記録部２０４が、そのブロックを圧縮状態でディスクアレイ２４に書き込む（ステップＡ７０）。そして、管理テーブル作成部２０６が、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて圧縮を示す“０”を設定することにより、管理テーブルＴの更新を行なう（ステップＡ８０）。
【００８０】
その後、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＡ９０）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＡ１００）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＡ１００のＮルート参照）、ステップＡ４０に戻る。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＡ１００のＹルート参照）、ファイルクローズ処理を行ない、ディスクアレイ２４にデータのEOF部の書き込みを行ない（ステップＡ２８０）、処理を終了する。
【００８１】
また、圧縮率が閾値以上である場合には（ステップＡ６０のＹルート参照）、記録部２０４が、そのブロックを非圧縮状態でディスクアレイ２４に書き込む（ステップＡ１１０）。又、管理テーブル作成部２０６が、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて非圧縮を示す“１”を設定することにより、管理テーブルＴの更新を行なう（ステップＡ１２０）。
【００８２】
その後、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＡ１３０）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＡ１４０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＡ１４０のＮルート参照）、ステップＡ１１０に戻る。すなわち、圧縮率が閾値よりも高くなったブロックからはファイルの最後のブロックまで非圧縮で処理する。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＡ１４０のＹルート参照）、ステップＡ２８０に移行し、処理を終了する。
【００８３】
管理テーブルＴにおいて同一のボリューム名及びファイル名のエントリが登録されている場合、すなわち、ホスト１００から送信されたデータのライト処理要求が２回目以降のライト処理である場合には（ステップＡ３０のＹルート参照）、管理テーブルＴにおける、受信したデータのボリューム名及びファイル名に相当するエントリを参照する。
ブロックカウンタに相当するブロックについて、管理テーブルＴを参照して圧縮ブロックであるかを確認する（ステップＡ１５０）。圧縮ブロックではない場合には（ステップＡ１５０のＮルート参照）、そのブロックを非圧縮でディスクアレイ２４に書き込む（ステップＡ２３０）。そして、管理テーブル作成部２０６が、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて非圧縮を示す“１”を設定することにより、管理テーブルＴの更新を行なう（ステップＡ２４０）。これにより、例えば、後述するステップＡ１８０の処理において、前回の処理時には圧縮データとして処理されたブロックが、圧縮率が閾値以上であると判断され、非圧縮と判断された場合においても、この非圧縮への変更を管理テーブルＴに正しく反映させることができる。
【００８４】
その後、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＡ２５０）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＡ２６０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＡ２６０のＮルート参照）、次に、データのデータ部のブロック数が管理テーブルＴに登録された状態から増えていないかの確認を行なう（ステップＡ２７０）。すなわち、ブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎよりも大きいか否かを確認する。
【００８５】
ブロック数が増えている場合、すなわち、ブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎよりも大きい場合には（ステップＡ２７０のＹルート参照）、ステップＡ２３０に戻る。すなわち、ブロック数が増加していることが判明した場合に、以降のブロックからはファイルの最後のブロックまで非圧縮で処理する。又、ブロック数が増えていない場合、すなわち、ブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎ以下の場合には（ステップＡ２７０のＮルート参照）、ステップＡ１５０に戻る。
【００８６】
そして、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＡ２６０のＹルート参照）、ステップＡ２８０に移行し、処理を終了する。
また、管理テーブルＴのエントリの確認の結果、ブロックが圧縮ブロックである場合には（ステップＡ１５０のＹルート参照）、このエントリにおいて、先ず、パトロールポインタの更新を行なう（ステップＡ１６０）。具体的には、ブロックカウンタの値をパトロールポインタにセットすることにより、パトロールポインタを更新する。これにより、圧縮ブロックの場合に、そのブロックを表すブロックカウンタの値によりパトロールポインタに設定される。すなわち、パトロールポインタが、圧縮状態から非圧縮状態へ切り替わる位置（非圧縮の先頭位置）を表すものとなる。
【００８７】
次に、圧縮率算出部２０３が、ブロックカウンタによって特定されるデータ部のブロックの圧縮率を算出する（ステップＡ１７０）。判断部２０５は、この算出された圧縮率を予め設定された閾値（９０％）と比較することにより、ブロックをディスクアレイ２４に格納する際に、圧縮した状態で格納するか非圧縮の状態で格納するかを判断する（ステップＡ１８０）。
【００８８】
ここで、圧縮率が閾値以上である場合には（ステップＡ１８０のＹルート参照）、ステップＡ２３０に移行する。
一方、圧縮率が閾値よりも低い場合には（ステップＡ１８０のＮルート参照）、記録部２０４が、そのブロックを圧縮状態でディスクアレイ２４に書き込む（ステップＡ１９０）。そして、管理テーブル作成部２０６が、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて圧縮を示す“０”を設定することにより、管理テーブルＴの更新を行なう（ステップＡ２００）。
【００８９】
その後、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＡ２１０）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＡ２２０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＡ２２０のＮルート参照）、ステップＡ１６０に戻る。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＡ２２０のＹルート参照）、ファイルクローズ処理を行ない、ディスクアレイ２４にデータのEOF部の書き込みを行ない（ステップＡ２８０）、処理を終了する。
【００９０】
次に、実施形態の一例としての仮想テープライブラリシステム１におけるパトロール処理を、図１６に示すフローチャート（ステップＢ１０〜Ｂ９０）に従って説明する。なお、このパトロール処理は、管理テーブルＴが存在しメモリ２５に格納されている状態において行なう。
パトロール処理は、ホスト１００がジョブの終了時に送信するアンロードコマンドを受信することを契機に開始される。すなわち、パトロール処理部２２は、ホスト１００からのアンロードコマンドの受信を待つべく待機する（ステップＢ１０，ステップＢ１０のＮルート参照）。そして、ホスト１００からアンロードコマンドを受信すると（ステップＢ１０のＹルート参照）、パトロール処理部２２は、次に、前回パトロール処理を行なってから所定の時間が経過したかを確認する（ステップＢ２０）。ここで、一定時間が経過していない場合には（ステップＢ２０のＮルート参照）、ステップＢ１０に戻る。
【００９１】
前回パトロール処理を行なってから一定時間が経過している場合には（ステップＢ２０のＹルート参照）、管理テーブルＴのエントリに登録されているパトロールポインタをパトロールカウンタ（P Count）に設定する（ステップＢ３０）。パトロールカウンタは、パトロール処理における処理対象のブロックを特定する情報（カウンタ値）であり、データを構成するブロックのブロック番号に対応する。
【００９２】
再計算部２２１が、パトロールカウンタによって特定されるデータ部のブロックの圧縮率を算出し（ステップＢ４０）、この算出した圧縮率が、予め設定された閾値（９０％）以上であるかを確認する（ステップＢ５０）。この比較の結果、算出した圧縮率が閾値（９０％）以上である場合には（ステップＢ５０のＹルート参照）、更新部２２２は、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて非圧縮を示す“１”を設定する。これにより、管理テーブルＴの更新を行なう（ステップＢ７０）。又、算出した圧縮率が閾値（９０％）より低い場合には（ステップＢ５０のＮルート参照）、更新部２２２は、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて圧縮を示す“０”を設定する。これにより、管理テーブルＴの更新を行なう（ステップＢ６０）。
【００９３】
その後、そのパトロールカウンタによって特定されるブロックが、データ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＢ８０）。すなわち、パトロールカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか（P Count=n）否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＢ８０のＮルート参照）、パトロールカウンタをインクリメント（P Count＋１）して（ステップＢ９０）、ステップＢ４０に戻る。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＢ８０のＹルート参照）、パトロール処理を終了する。
【００９４】
次に、実施形態の一例としての仮想テープライブラリシステム１におけるマイグレーション処理を、図１７に示すフローチャート（ステップＣ１０〜Ｃ２２０）に従って説明する。
ホスト１００から、マイグレーションの実行指令とともに、マイグレーションの対象となるデータを識別するためのボリューム名及びファイル名を受信すると、マイグレーション処理部２３は、ファイルオープン処理を行なう（ステップＣ１０）。このファイルオープン処理において、データセーブ処理部２３１が、データのヘッダ（Header）部を記録テープ３３にセーブする。
【００９５】
また、マイグレーション処理部２３は、ブロックカウンタ（Block Count）を１に設定（Block Count=1）に設定することによりカウンタリセットを行なう（ステップＣ２０）。なお、このブロックカウンタは、データを構成するブロックのブロック番号に対応する。
そして、マイグレーション処理部２３は、パトロール処理部２２によるパトロール処理が完了しているか否かを確認する（ステップＣ３０）。具体的には、パトロールカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか（P Count=n）否かを確認する。
【００９６】
この確認の結果、パトロール処理が完了している場合には（ステップＣ３０のＹルート参照）、ブロックカウンタに相当するブロックについて、管理テーブルＴを参照して圧縮ブロックであるかを確認する（ステップＣ１７０）。圧縮ブロックではない場合には（ステップＣ１７０のＮルート参照）、データセーブ処理部２３１が、そのブロックを非圧縮の状態で記録テープ３３に書き込む（ステップＣ１９０）。又、圧縮ブロックである場合には（ステップＣ１７０のＹルート参照）、データセーブ処理部２３１が、そのブロックを圧縮した状態で記録テープ３３に書き込む（ステップＣ１８０）。
【００９７】
その後、ブロックカウンタのインクリメントをインクリメント（Block Count＋１）して（ステップＣ２００）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＣ２１０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＣ２１０のＮルート参照）、ステップＣ１７０に戻る。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＣ２１０のＹルート参照）、ファイルクローズ処理を行ない、ディスクアレイ２４にデータのEOF部の書き込みを行ない（ステップＣ２２０）、処理を終了する。
【００９８】
また、パトロール処理が完了していない場合には（ステップＣ３０のＮルート参照）、マイグレーション処理を実行しながらパトロール処理を完了させる。
すなわち、ブロックカウンタに相当するブロックについて、管理テーブルＴを参照して圧縮ブロックであるかを確認する（ステップＣ４０）。圧縮ブロックではない場合には（ステップＣ４０のＮルート参照）、データセーブ処理部２３１が、そのブロックを非圧縮の状態で記録テープ３３に書き込む（ステップＣ１２０）。又、マイグレーション処理部２３は、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて非圧縮を示す“１”を設定することにより、管理テーブルＴの更新を行なう（ステップＣ１３０）。
【００９９】
その後、マイグレーション処理部２３は、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＣ１４０）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＣ１５０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
【０１００】
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＣ１５０のＮルート参照）、マイグレーション処理部２３は、データのデータ部のブロック数が管理テーブルＴに登録された状態から増えていないかの確認を行なう（ステップＣ１６０）。すなわち、ブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎよりも大きいか否かを確認する。
【０１０１】
ブロック数が増えている場合、つまりブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎよりも大きい場合には（ステップＣ１６０のＹルート参照）、ステップＣ１２０に戻る。すなわち、ブロック数が増加していることが判明した場合に、以降のブロックからはファイルの最後のブロックまで非圧縮で処理する。又、ブロック数が増えていない場合、つまり、ブロックカウンタの値（Block Count）が最後尾のブロックのブロック番号（Table Last Block）ｎ以下の場合には（ステップＣ１６０のＮルート参照）、ステップＣ４０に戻る。
【０１０２】
そして、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＣ１５０のＹルート参照）、ステップＣ２２０に移行し、処理を終了する。
また、管理テーブルＴのエントリの確認の結果、ブロックが圧縮ブロックである場合には（ステップＣ４０のＹルート参照）、このエントリにおいて、マイグレーション処理部２３は、先ず、パトロールポインタの更新を行なう（ステップＣ５０）。具体的には、ブロックカウンタの値をパトロールポインタにセットすることにより、パトロールポインタを更新する。
【０１０３】
次に、マイグレーション処理部２３は、ブロックカウンタによって特定されるデータ部のブロックの圧縮率を算出する（ステップＣ６０）。マイグレーション処理部２３は、この算出された圧縮率を予め設定された閾値（９０％）と比較することにより、ブロックを記録テープ３３に格納する際に、圧縮した状態で格納するか非圧縮の状態で格納するかを判断する（ステップＣ７０）。
【０１０４】
ここで、圧縮率が閾値以上である場合には（ステップＣ７０のＹルート参照）、ステップＣ１２０に移行する。
一方、圧縮率が閾値よりも低い場合には（ステップＣ７０のＮルート参照）、データセーブ処理部２３１が、そのブロックを圧縮状態で記録テープ３３にセーブする（ステップＣ８０）。そして、マイグレーション処理部２３は、管理テーブルＴのそのデータに対応するエントリについて、圧縮・非圧縮状態にそのブロックに対応させて圧縮を示す“０”を設定することにより、管理テーブルＴの更新を行なう（ステップＣ９０）。
【０１０５】
その後、ブロックカウンタをインクリメント（Block Count＋１）して（ステップＣ１００）、そのブロックがデータ部を構成するブロック列の最終ブロックであるか否かを確認する（ステップＣ１１０）。すなわち、ブロックカウンタがブロック列の最後尾のブロックのブロック番号ｎと一致しているか否かを確認する。
そのブロックがデータ部を構成するブロック列の最終ブロックでない場合には（ステップＣ１１０のＮルート参照）、ステップＣ５０に戻る。又、そのブロックがデータ部を構成するブロック列の最終ブロックである場合には（ステップＣ１１０のＹルート参照）、ステップＣ２２０に移行し、処理を終了する。
【０１０６】
このように、マイグレーション処理部２３は、前述した圧縮率算出部２０３のようにブロックの圧縮率を算出する機能や、判断部２０５のように算出した圧縮率を閾値と比較する機能や、管理テーブル作成部２０６のように管理テーブルＴを更新する機能もそなえている。
そして、階層制御部２０のＣＰＵが、データ処理プログラムを実行することにより、上述した、ライト処理部２１，パトロール処理部２２及びマイグレーション処理部２３として機能する。
【０１０７】
なお、これらのライト処理部２１，パトロール処理部２２及びマイグレーション処理部２３としての機能を実現するためのプログラム（データ処理プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【０１０８】
ライト処理部２１，パトロール処理部２２及びマイグレーション処理部２３としての機能を実現する際には、内部記憶装置（本実施形態では図示しないＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【０１０９】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、階層制御部２０がコンピュータとしての機能を有しているのである。
【０１１０】
このように、実施形態の一例としての仮想テープライブラリシステム１によれば、同一データについての２回目以降のジョブにおいては、管理テーブルＴを参照することにより、ブロック毎に圧縮率を算出することなく各ブロックの圧縮／非圧縮を判断することできる。これにより、ディスクアレイ２４へのデータのライト処理を高速化することができ、又、階層制御部２０の負荷を軽減することができる。特に、データのヘッダ部を読み込んだ時点で、各ブロックの圧縮／非圧縮を判断することができ、データのライト処理を高速化することができる。
【０１１１】
同様に、ディスクアレイ２４を記録テープ３３に移動させるマイグレーション処理においても、管理テーブルＴを参照することにより、記録テープ３３へのデータの書き込み（セーブ）処理を高速化することができ、又、階層制御部２０の負荷を軽減することができる。
また、データのブロック単位で圧縮／非圧縮の処理を行なうことができる。これにより、データ容量を小さくすることができ、ディスクアレイ２４や記録テープ３３を効率的に運用することができる。
【０１１２】
さらに、パトロール処理を行なうことにより、管理テーブルＴ作成後においてディスクアレイ２４に格納されたデータに何らかの変更が加えられた場合においても、管理テーブルＴを変更後のデータの状態に合わせることができ、データのライト処理性能の高速化やセーブ処理の高速化を維持することができる。
また、パトロール処理が何らかの理由により中断した場合であっても、マイグレーション処理において、パトロール処理が完了していないと判断した場合には、データのマイグレーション処理を行ないながら管理テーブルＴの更新を行なう。これにより未完了のパトロール処理を完了させることができ、利便性が高い。
【０１１３】
データのライト時やセーブ時において、データの圧縮率が閾値よりも高くなったブロックからはファイルの最後のブロックまで非圧縮で処理する。又、同一ファイルの２回目のライト時において、ブロック数が増加していることが判明した場合にも、以降のブロックからはファイルの最後のブロックまで非圧縮で処理する。ブロックを非圧縮で書き込むことにより、ブロックを未加工の状態で保存することができ、データの信頼性を向上させる。
【０１１４】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
例えば、上述した実施形態においては、データについてのボリューム名及びファイル名に対して、圧縮・非圧縮状態，パトロールポインタ及びラストブロックを、管理テーブルＴのエントリとして登録しているが、これに限定されるものではなく、種々の手法で管理することができる。
【０１１５】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
ブロックを圧縮した場合の圧縮率を算出する算出部と、
算出した前記圧縮率を予め設定された閾値と比較して、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、
当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部と、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するデータ処理情報作成部と、
前記データ処理情報作成部によって作成されたデータ処理情報を記録装置に格納する格納処理部とをそなえることを特徴とする、データ処理装置。
【０１１６】
（付記２）
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、前回、前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報から、前記データ処理情報の前記状態情報を参照する参照部と、
参照した状態情報に従って、前記ブロックを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する記録部とをそなえることを特徴とする、データ処理装置。
【０１１７】
（付記３）
上位装置から送信されるデータ及び当該データを識別するデータ識別情報を受信する受信部と、
前記受信したデータ識別情報と、前記記録装置に格納されているデータ処理情報にかかるデータ識別情報とを照合し、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されているか否かを確認する確認部とをそなえ、
前記確認部による確認の結果、対応する前記データ処理情報が前記記録装置に格納されている場合に、該記録部が、当該データ処理情報の前記状態情報に従って、受信したデータを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録することを特徴とする、付記１記載のデータ処理装置。
【０１１８】
（付記４）
前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されていない場合に、
該算出部が、前記データを形成するブロックを圧縮した場合の圧縮率を算出し、
該判断部が、該算出部が算出した圧縮率を予め設定された閾値と比較し、当該ブロックについて圧縮もしくは非圧縮を判断し、該記録部が、当該ブロックを、該判断部による判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録し、
該データ処理情報作成部が、該データ処理情報を作成し、該格納処理部が、前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納し、
該記録部が、前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されている場合に、該記録部が、当該データ処理情報の状態情報に従って、受信した前記データを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録することを特徴とする、付記３記載のデータ処理装置。
【０１１９】
（付記５）
前記ストレージ装置に記録されているブロックの圧縮率を再算出する再算出部と、
前記再算出部により再度算出された圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する状態情報を更新する更新部とをそなえることを特徴とする、付記１〜４のいずれか１項に記載のデータ処理装置。
【０１２０】
（付記６）
前記データ処理情報において、前記データの連続する複数のブロックにおける、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対して先頭識別情報を関連付けて記録する先頭識別情報記録部をそなえ、
前記再算出部が、前記先頭識別情報が設定された前記ブロックを始点として、前記データを構成する連続する各ブロックに対して、前記圧縮率の算出を順次行なうことを特徴とする、付記５記載のデータ処理装置。
【０１２１】
（付記７）
前記ストレージ装置に格納されたデータを記録媒体に移動させるマイグレーション処理を行なうに際して、
前記データに対応するデータ処理情報を参照するデータ処理情報参照部と、
当該データ処理情報の状態情報に従って、前記ストレージ装置に格納されたデータを、圧縮もしくは非圧縮のいずれかの状態で前記記録媒体に記録する媒体記録部とをそなえることを特徴とする、付記１〜６のいずれか１項に記載のデータ処理装置。
【０１２２】
（付記８）
上位装置から送信される連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ処理装置であって、
前記上位装置から送信されるデータ及び当該データを識別するデータ識別情報を受信する受信部と、
前記受信したデータ識別情報と、記録装置に格納されているデータ処理情報にかかるデータ識別情報とを照合し、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されているか否かを確認する確認部と、
前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されていない場合に、前記データを形成するブロックを圧縮した場合の圧縮率を算出する算出部と、
該算出部が算出した圧縮率を予め設定された閾値と比較し、当該ブロックについて圧縮もしくは非圧縮を判断する判断部と、
当該ブロックを、該判断部による判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する第１記録部と、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記第１記録部が前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けるデータ処理情報を作成するデータ処理情報作成部と、
前記データ処理情報作成部によって作成された前記データ処理情報を記録装置に格納する格納処理部と、
前記確認部による確認の結果、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されている場合に、当該データ処理情報の状態情報に従って、受信した前記データを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録する第２記録部とをそなえることを特徴とする、データ処理装置。
【０１２３】
（付記９）
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ記録方法であって、
ブロックを圧縮した場合の圧縮率を算出するステップと、
算出した圧縮率を予め設定された閾値と比較することにより、当該ブロックについて圧縮もしくは非圧縮を判断するステップと、
前記判断結果に基づき、当該ブロックを圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録するステップと、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、各ブロックを前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報を作成するステップと、
前記データ処理情報を記録装置に格納するステップとをそなえることを特徴とする、データ記録方法。
【０１２４】
（付記１０）
連続する複数のブロックによって形成されるデータを、ブロック単位で、順次、ストレージ装置に記録するデータ記録方法であって、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに、前回、前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けたデータ処理情報から、前記データ処理情報の前記状態情報を参照するステップと、
参照した前記状態情報に従って、前記ブロックを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録するステップとをそなえることを特徴とする、データ記録方法。
【０１２５】
（付記１１）
上位装置から送信されるデータ及び当該データを識別するデータ識別情報を受信するステップと、
前記受信したデータ識別情報と、前記記録装置に格納されている前記データ処理情報にかかるデータ識別情報とを照合し、前記受信したデータ識別情報に対応するデータ処理情報が前記記録装置に格納されているか否かを確認するステップと、
前記確認の結果、対応する前記データ処理情報が前記記録装置に格納されている場合に、当該データ処理情報の前記状態情報に従って、受信した前記データを、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録するステップとをそなえることを特徴とする、付記９記載のデータ記録方法。
【０１２６】
（付記１２）
前記確認の結果、対応する前記データ処理情報が前記記録装置に格納されていない場合に、
ブロックを圧縮した場合の圧縮率を算出し、
算出した前記圧縮率を予め設定された閾値と比較することにより、当該ブロックについて圧縮もしくは非圧縮を判断し、
当該ブロックを、判断結果に基づき、圧縮もしくは非圧縮のいずれかの状態で前記ストレージ装置に記録し、
前記データを識別するデータ識別情報に関連付けて、当該データを構成する各ブロックのそれぞれに前記ストレージ装置に記録した際の圧縮もしくは非圧縮のいずれかの状態を表す状態情報を対応付けるデータ処理情報を作成し、
前記データ処理情報を記録装置に格納する、ことを特徴とする、付記１１記載のデータ記録方法。
【０１２７】
（付記１３）
前記ストレージ装置に記録されている前記ブロックの圧縮率を再度算出するステップと、
再度算出された前記圧縮率に基づいて、前記データ処理情報における、当該ブロックに対応する前記状態情報を更新するステップとをそなえることを特徴とする、付記９〜１２のいずれか１項に記載のデータ記録方法。
【０１２８】
（付記１４）
前記データ処理情報において、前記データの連続する複数のブロックにおける、非圧縮の状態で前記ストレージ装置に記録された先頭のブロックに対して先頭識別情報を関連付けて記録するステップをそなえ、
前記圧縮率を再計算するステップにおいて、前記先頭識別情報が設定された前記ブロックを始点として、前記データを構成する連続する各ブロックに対して、前記圧縮率の算出を順次行なうことを特徴とする、付記１３記載のデータ記録方法。
【０１２９】
（付記１５）
前記ストレージ装置に格納されたデータを記録媒体に移動させるマイグレーション処理を行なうに際して、
前記データに対応する前記データ処理情報を参照するステップと、
当該データ処理情報の前記状態情報に従って、前記ストレージ装置に格納されたデータを、圧縮もしくは非圧縮のいずれかの状態で前記記録媒体に記録するステップとをそなえることを特徴とする、付記９〜１４のいずれか１項に記載のデータ記録方法。
【符号の説明】
【０１３０】
１    仮想テープライブラリシステム
２    仮想ライブラリ装置
３    テープライブラリ装置
２０    階層制御部（データ処理装置）
２１    ライト処理部
２２    パトロール処理部
２３    マイグレーション処理部
２４    ディスクアレイ（ストレージ装置）
２５    メモリ（記録装置）
３１    ロボットユニット
３２    ドライブユニット
３３    記録テープ（記録媒体）
５０    通信回線
１００    ホスト（上位装置）
２０１    受信部
２０２    確認部
２０３    圧縮率算出部（算出部）
２０４    記録部（第１記録部，第２記録部）
２０５    判断部
２０６    管理テーブル作成部（データ処理情報作成部）
２０７    格納処理部
２２１    再算出部
２２２    更新部
２３１    データセーブ処理部
２３２    管理テーブル参照部
Ｔ    管理テーブル（データ処理情報）
【図１】
0005712609.tif 000002
【図２】
0005712609.tif 000003
【図３】
0005712609.tif 000004
【図４】
0005712609.tif 000005
【図５】
0005712609.tif 000006
【図６】
0005712609.tif 000007
【図７】
0005712609.tif 000008
【図８】
0005712609.tif 000009
【図９】
0005712609.tif 000010
【図１０】
0005712609.tif 000011
【図１１】
0005712609.tif 000012
【図１２】
0005712609.tif 000013
【図１３】
0005712609.tif 000014
【図１４】
0005712609.tif 000015
【図１５】
0005712609.tif 000016
【図１６】
0005712609.tif 000017
【図１７】
0005712609.tif 000018
【図１８】
0005712609.tif 000019