以下、図面を用いて本発明の第1の実施形態(キャッシュなしの場合)を説明する。
図1は、第1の実施形態のシステム構成図を示す。本システムは、3台のコンピュータ101,102,151と、3台のディスクアレイ装置201,202,203と、ライブラリ装置301と、ファイバチャネルスイッチ501とを備えている。コンピュータ101,102,151と、ディスクアレイ装置201,202,203と、ライブラリ装置301は、ファイバチャネル50を介して、ファイバチャネルスイッチ501に接続する。ファイバチャネルスイッチ501は、接続された各機器間のパスの確立と切り替えを行う。また、コンピュータ101,102,151は、イーサーネット60を用いて相互に接続する。
なお、第1の実施形態の後に第2および第3の実施形態について説明するが、第2および第3の実施形態のシステムも第1の実施形態のシステムと同様の構成であるので図1を用いて説明する。図1において、コンピュータ101,102中のキャッシュディスク90と情報受領手段91、並びに、コンピュータ101,102、ディスクアレイ装置201,202,203、およびライブラリ装置301中の稼働率計測手段82については、第2の実施形態のシステムに固有の構成であるので第1の実施形態では言及しない。同様に、クライアント70についても、第3の実施形態のシステムに固有の構成であるので第1および第2の実施形態では言及しない。
図1において、ファイバチャネル50を用いて構成したネットワークは一般的にSAN(Storage Area Network)と呼ばれ、イーサーネット60を用いて構成したネットワークは一般的にLAN(Local Area Network)と呼ばれる。図1では、ファイバチャネル50とイーサネット60の二つのネットワークを用いて構成したが、これらは、他のネットワークでもよいし、イーサネット60の機能をファイバチャネル50で肩代わりすることでも実現可能である。
3台のコンピュータのうち、コンピュータ151は、データの位置管理手段801と情報複製手段890を備える。位置管理手段801と情報複製手段890の詳細については後述する。
次に、ディスクアレイ装置と属性保持手段について説明する。ディスクアレイ装置は、一般的に複数のハードディスク装置を有し、RAID(Redundant Array of Inexpensive Disks)技術により、性能および信頼性の改善を図った記憶装置である。ディスクアレイ装置は、ディスクアレイ装置を構成するハードディスク装置の性能、台数、およびRAIDレベルによりその性能と信頼性が大きく異なってくる。たとえば、RAID0と呼ばれるレベルは、データを複数のハードディスクに分散することで性能は高くなるが、RAID0を構成する複数のハードディスクのうち1台でも故障するとデータを失う危険性がある。また、RAID5と呼ばれるレベルは、データを複数のハードディスクに分散することで性能を上げ、さらにパリティによる冗長データを付加することで、RAID5を構成する複数のハードディスクのうち1台が故障しても、データを復元可能な信頼性を提供している。RAID5は、RAID0に比べてパリティによる信頼性向上が見込まれるが、その分、書き込み時の性能が低下する。また、RAID0およびRAID5とも、構成するハードディスク装置の台数によりその性能が異なる。
本実施形態では、ディスクアレイ装置201と202をRAID0で構成し、ディスクアレイ装置203をRAID5で構成するものとする。それぞれのディスクアレイ装置には、属性保持手段80を設けた。ディスクアレイ装置201と202の属性保持手段80は、ハードディスク装置で構成されるRAID0であること、単位容量あたりの保持コスト、構成するハードディスク装置台数、ハードディスク装置の性能(回転数、シーク時間、転送速度など)を保持する。ディスクアレイ装置203の属性保持手段80は、ハードディスク装置で構成されるRAID5であること、単位容量あたりの保持コスト、構成するハードディスク装置台数、ハードディスク装置の性能(回転数、シーク時間、転送速度など)を保持する。よって、位置管理手段801は、属性保持手段80からこれらの属性情報を取り出せば、そのディスクアレイ装置がどのような性能と信頼性を有するかを容易に把握することができる。属性保持手段80の実現手段としては、ディスクアレイ装置内にある不揮発性の記憶手段が望ましい。たとえば、装置識別子や装置情報が格納されているメモリを用いて属性保持手段80を実現すればよい。また、属性保持手段80に格納されている情報の取出しには、SCSI(Small Computer System Interface)で定義されているINQUIRYコマンドやMODE SENSEコマンドを利用する。
次に、ライブラリ装置と属性保持手段について説明する。本実施形態において、ライブラリ装置301は、2台のDVD−RAMドライブ30と、メディアを格納可能な4個の棚31と、メディアをドライブ30と棚31との間で搬送する1つの搬送機構32を有する。ただし本発明は、ライブラリ装置におけるドライブ台数、棚の数、搬送機構の数などに依存しない。また、本発明は、複数のライブラリ装置を用いても構成できる。本実施形態では、4個の棚31それぞれに1枚ずつDVD−RAMメディアを格納するものとする。ライブラリ装置301は、搬送機構32を用いて、コンピュータからの指示に基づいて、指定されたメディアを、ドライブ−ドライブ間、ドライブ−棚間、および棚−棚間で搬送することができる。
ライブラリ装置301に格納されたメディアに記録されているデータを読み出すためには、コンピュータは、まずライブラリ装置に、読みたいデータの記録されているメディアを棚からドライブに搬送するように指示する。コンピュータは、ライブラリ装置301からの搬送終了の報告を待って、ドライブ30にデータの読み出しを指示する。このように、目的のデータを読み出すためには、搬送機構32によるメディアの搬送時間と、ドライブにおいてメディアが読み出し可能になるまでの時間(主にメディアが読み出し可能な回転数に達するまでのスピンアップ時間)がかかることになる。この時間を約10秒とすると、ディスクアレイ装置201,202,203などのデータ読み出しにかかる時間が数msであることと比べると、その差は3桁以上になる。
本実施形態では、ライブラリ装置301にも属性保持手段80を設けた。ライブラリ装置301の属性保持手段80は、DVD−RAMドライブで構成されるライブラリ装置であること、単位容量あたりの保持コスト、搬送時間、ライブラリ装置301に搭載されているドライブ30の台数および種類、メディアの枚数、種類および寿命、並びに、ドライブの性能(回転数、シーク時間、転送速度など)を保持する。属性保持手段80は、ライブラリ装置301内にある不揮発性の記憶手段を用いて実現するのが望ましい。
次に、位置管理手段と変換表について説明する。
コンピュータ151は、位置管理手段801を備える。具体的には、位置管理手段801は、コンピュータ151上で実行されるソフトウエアとして実装してある。位置管理手段801は、コンピュータ101や102とはLAN60を介して通信する。通信のためのプロトコルに関しては特に限定されることはないが、たとえばTCPやUDPなどが利用できる。位置管理手段801は、コンピュータ101や102からファイルネームを受け取ると、そのファイルネームのファイルのデータを必要に応じてロックし、そのデータの位置をコンピュータ151に報告する。このため、ファイルネームとデータの位置情報とを対応付けた変換表811を用意する。
図2は、変換表811の構成を示す。変換表811は、ホストコンピュータ151のメモリに格納される。変換表811は、1つのファイルネームに対してライトビット、リードカウント、制御情報、複数の位置情報、およびファイル履歴の各フィールドを備える(グループIDについては後述する)。また、各位置情報は、有効ビット、記憶装置番号、メディア番号、LBA(Logical Block Address)、およびデータ長を持つことができる。本実施形態の場合、記憶装置番号には、WWN(World Wide Name)を使用した。WWNは、ファイバチャネルアダプタ固有に割り当てられる番号である。本実施形態では、ディスクアレイ装置201のWWNを「201」、ディスクアレイ装置202のWWNを「202」、ディスクアレイ装置203のWWNを「203」、ライブラリ装置301のWWNを「301」とした。メディア番号は、対象となる記憶装置がライブラリ装置の場合にのみ有効で、そのデータが格納されているメディアの番号(または棚の番号)を保持する。LBAには、そのデータの格納されている論理ブロックアドレスを使用する。論理ブロックとは、記憶装置が管理するデータを記憶する最小単位である。ディスクアレイの場合には一般的に512バイトのデータを格納でき、DVD−RAMメディアの場合には一般的に2048バイトのデータを格納できる。論理ブロックアドレスとは、この論理ブロックに割り当てられた番号のことである。位置情報の有効ビットがセットされている場合に限り、これら位置情報が有効になる。
次に、位置管理手段と領域管理表について説明する。位置管理手段801には、領域管理表812を設けた。図3に領域管理表812の一例を示す。領域管理表812は、ディスクアレイ装置201,202,203の場合にはディスクアレイ装置毎に、ライブラリ装置301の場合にはメディア毎に用意する。領域管理表812は、その装置またはメディアにおいてどの論理ブロックが使われているかを示した表で、1つの論理ブロックあたり1ビットの情報で構成している。すなわち、論理ブロックに対応したビットが「1」の場合にはすでにその論理ブロックにデータがあり、「0」の場合には未使用であることを示す。領域管理表812は、コンピュータ151のメモリに格納される。
次に、新規書き込み処理について説明する。図5は、本システムにおいて、記憶装置にデータを新規に書き込む処理手順を示すフローチャートである。コンピュータ101を使用するユーザが、ワープロなどのアプリケーションを用いて新規に文書を作成し初めて保存する場合などに相当する(5000)。
コンピュータ101のファイルシステム10は、イーサネット60を介して、ファイルネーム「AAA」というデータに対する新規領域割り当てを、コンピュータ151の位置管理手段801に要求する(5001)。このとき、コンピュータ101は、データ「AAA」(データ「AAA」とは、ファイルネーム「AAA」のファイルの実体データである)のデータ長に加えて、データ「AAA」をどのように保存したいかを示す制御情報を数値化して付加する。制御情報の例としては、「高速に」、「高信頼に」、「長期に」、「低価格に」、「災害対応に」、「一時的に」、「並列に」、および「可搬に」などがある。これらは同時に設定可能としてもよいし、排他的な設定とすることもできる。ここでは、「高信頼に」を指定したとする。
位置管理手段801は、まず変換表811から空いている一行を探し出し(5002)、ライトビットを「1」にして(5003)書き込みの開始を宣言し、ファイルネームを書き込む(5004)。ここでは変換表811の1番目(#1)の位置情報を確保したとする。領域管理表812から、データ「AAA」を格納するのに必要な領域を検索する(5005)。ここでは、すべての記憶装置に十分な空き領域があるとすると(5006,5007)、位置管理手段801は、すべての記憶装置から割り当て可能位置を獲得することができる。位置管理手段801は、それぞれの記憶装置の属性保持手段80から、その記憶装置の属性情報を獲得する(5008)。位置管理手段801は、コンピュータ101が指示した「高信頼に」という制御情報をもとに、3台のディスクアレイ装置の中から、RAID5で構成されたディスクアレイ装置203を選択し(5009)、対応する領域管理表812のLBAを割り当て済みに変更し(5010)、位置情報をコンピュータ101に報告する(5011)。
コンピュータ101のファイルシステム10は、空き領域の報告を受けると、指定された空き領域にデータを書き込むためのライトコマンドをディスクアレイ203に発行し(5012)、データを書き込む(5014)。このライトコマンドの発行と書き込むデータの転送は、ファイバチャネル50を介して行う。コンピュータ101のファイルシステム10は、ディスクアレイ装置203から書き込み完了の報告(5015)を受け取ると、コンピュータ151の位置管理手段801に書き込みが完了したことを報告する(5016)。
位置管理手段801は、書き込み完了の報告を受け取ると、変換表811の当該位置情報、ここでは1番目の位置情報に、ディスクアレイ装置203のWWN、LBA、およびデータ長を書き込み(5017)、有効ビットを「1」にセットする(5018)ことで、1番目の位置情報が有効であることを示す。この場合、データをディスクアレイ装置に書き込んだので、メディア番号には値を入れる必要はない。また、ファイル履歴には、新規作成とその日時を書き込む(5019)。最後に、ライトビットを「0」にして(5020)、書き込みを完了する(5021)。ファイルシステム10は、位置管理手段801から書き込み完了の報告を受け取ると、アプリケーションに書き込み完了の報告をする(5022)。これにより、アプリケーションからの新規文書保存が完了する(5023)。
図5に示すフローチャートの処理ステップ5006において、割り当て可能な領域が無かった場合には、書き込み処理は失敗となる(5098,5099)。また処理ステップ5006で割り当て可能な領域はあるが、処理ステップ5007で複数の記憶装置に領域が無かったときは、処理ステップ5010に進む。
次に、読み出し処理について説明する。図6は、本システムにおいて記憶装置からデータを読み出す処理手順を示すフローチャートである。コンピュータ101を使用するユーザが、ワープロなどのアプリケーションを用いて、前回保存しておいた文書を再読み込みする場合などに相当する(6000)。
コンピュータ101のファイルシステム10は、イーサネット60を介して、ファイルネーム「AAA」のデータの読み出しを位置管理手段801に要求する(6001)。位置管理手段801は、変換表811からファイルネーム「AAA」に対応する行を選択し(6002)、ライトビットが「0」であることを確認する(6003)。もしライトビットが「1」の場合には、他のアプリケーション(他のコンピュータのアプリケーションでもよい)がデータ「AAA」を利用中であるので読み出しをすることができない(6098,6099)。
次に、リードカウントをインクリメント(1加算)し(6004)、データ「AAA」の入っている位置情報をコンピュータ101に報告する(6007)。データ「AAA」に対応する位置情報を1つしかもっていない場合には、その位置情報を報告するしかないが、もし、2つ以上の位置情報を有する場合には、コンピュータ101に最適な(たとえば、どこから読み出すのが最も速いかなど)位置情報を選択し(6006)、報告する(6007)。ここでは、上記新規書き込みで書き込んだデータ「AAA」の位置情報であるとする。
コンピュータ101のファイルシステム10は、位置情報(WWN、LBA、データ長)の報告を受けると、ディスクアレイ装置203にリードコマンドを発行し(6008)、データを読み出す(6009)。このリードコマンドの発行とリードデータの転送は、ファイバチャネル50を介して行う。コンピュータ101のファイルシステム10は、ディスクアレイ装置203から読み出し完了の報告(6010)を受け取ると、コンピュータ151の位置管理手段801に読み出しが完了したことを報告する(6011)。
位置管理手段801は、読み出し完了の報告を受け取ると、ファイル履歴に最終アクセス日時を書き込み(6012)、リードカウントをデクリメント(1減算)する(6013)。リードカウントが0であれば、誰もデータ「AAA」を参照していないことを示し、0でなければまだ読み出し中であることがわかる。ファイルシステム10は、位置管理手段801から読み出し完了の報告(6014)を受け取ると、アプリケーションに読み出しの完了を報告する(6015)。これにより、アプリケーションからの文書読み出しが完了する(6016)。
次に、制御情報の変更について説明する。ユーザは、コンピュータ101や102上に用意したユーティリティを用いて、設定した制御情報の参照および再設定が可能である。ここでは、先に書き込んだデータ「AAA」の制御情報を変更する例を示す。ユーザが、制御情報の再設定をユーティリティに要求すると、ファイルシステム10は、位置管理手段801に制御情報の読み出しを要求する。位置管理手段801は、変換表811よりデータ「AAA」の制御情報を読み出し、ファイルシステム10に報告する。ファイルシステム10は、制御情報を受け取ると、ユーティリティに対して制御情報を報告する。ここでは、位置管理手段801が、先に設定した「高信頼に」の制御情報を読み出したとする。
次に、ユーザが「高信頼に」の制御情報を「低価格に」に変更すると、ファイルシステム10は、位置管理手段801に制御情報の書き込みを要求する。位置管理手段801は、変換表811のデータ「AAA」に対応する制御情報を「低価格に」に変更し、変更完了をファイルシステム10に報告する。ファイルシステム10は、ユーティリティに変更の完了を報告し、制御情報の変更が終了する。
次に、位置管理手段801による監視と移動について説明する。図7と図8は、位置管理手段801におけるデータの監視と移動の処理手順を示すフローチャートである。ここでは、データ「AAA」をディスクアレイ装置203からライブラリ装置301に移動する例について説明する。位置管理手段801は、一定の周期で変換表811を繰り返し検索している(7000)。先ほど、制御情報を「高信頼に」から「低価格に」へ変更したデータ「AAA」についても、この一定周期の巡回で変更が発見される(7001)。位置管理手段801は、このデータの最終アクセス日時と現在の日時とを比較し(7002)、一定期間(たとえば90日とか)経っているか否かをチェックする(7003)。一定期間経っていた場合には、移動対象であるものとして、データ「AAA」をよりビットコストの安い記憶装置に移動する。本実施形態では、ディスクアレイ装置201と202の保持コストを「10」、ディスクアレイ装置203の保持コストを「15」、ライブラリ装置301の保持コストを「1」とすると、位置管理手段801は、ライブラリ装置301にデータ「AAA」を移動することでデータの保持コストの低減を図る。
そこで、位置管理手段801は、変換表811で、ライトビットが「0」で(7004)、リードカウントが「0」であることを確認し(7005)、ライトビットを「1」に設定し(7006)、次に領域管理表812を参照しライブラリ装置301のメディアからデータ「AAA」を格納するのに必要な領域を検索する。本実施形態の場合は、属性保持手段80の属性情報を獲得し(7007)、その情報をもとにデータ保持コストのより低い記憶装置を選択し(7008)、新規領域を割り当てる(7009)。
データ「AAA」を格納できる空き領域が見つかると(7010)、位置管理手段801は、対応する領域管理表812のLBAを割り当て済みに変更し(7011)、情報複製手段890にデータ「AAA」の複製を要求する(8000)。本実施形態では、情報複製手段890を、コンピュータ151に設けているが、ファイバチャネルスイッチ501に設けてもよいし、ファイバチャネルスイッチ501に接続される他の機器に設けてもよい。
図8に、情報複製手段890による複製処理の手順を示す。情報複製手段890は、まず、ライブラリ装置301に対して、空き領域が見つかったメディアをドライブ30に搬送するように搬送命令を発行する(8002)。すでに対象のメディアがドライブにある場合には、メディアを搬送する必要はない(8001)。搬送機構32は、指定されたメディアを、それが格納された棚から指定された目的のドライブへ搬送する(8003,8004)。情報複製手段890は、搬送したドライブで読み書きができる状態になるまで待つ(8005)。次に、情報複製手段890は、すでにデータ「AAA」が書き込まれているディスクアレイ装置203に対してリードコマンドを発行し(8006)、データを読み出し(8007,8008)、搬送されたメディアが装着されたドライブにライトコマンドを発行し(8009)、データを書き込む(8010,8011)。情報複製手段890は、ライトコマンドを完了すると、位置管理手段801に複製が完了したことを報告する(8012)。
再び図7に戻って、位置管理手段801は、複製完了の報告を受け取ると、変換表811の空いている行、ここでは2番目の位置情報に、ライブラリ装置301のWWN、メディア番号、LBA、およびデータ長を書き込み(7013)、有効ビットを「1」にセットする(7014)。次に、位置管理手段801は、1番目の位置情報の有効ビットを「0」にすることで(7015)、1番目の位置情報を無効にし、1番目の位置情報に対応する領域管理表812のLBAを未使用にする。最後に、位置管理手段801は、ファイル履歴に移動日時を書き込み、ライトビットを「0」にして移動を完了する(7016)。
このデータ「AAA」の移動の後、たとえば、コンピュータ102からデータ「AAA」の読み出しが要求されたとしても、位置管理情報801は、ライブラリ301に格納されたデータ「AAA」の位置を正しく報告することができる。これは、位置管理手段801が、変換表811の位置情報を一元的に管理しているためである。データをディスクアレイ装置203からライブラリ装置301に移動したことを、コンピュータ101と102に報告する必要はない。
また、もしデータ「AAA」が、「低価格に」に加えて「高信頼に」の制御情報をもっていた場合、位置管理手段801は、2枚のメディアに対して空き領域を検索し、各々にデータを移動する。これにより、1枚のメディアが障害を発生して読めなくなったり、1枚のメディアを紛失した場合でもデータの読み出しが可能になり、「高信頼に」の制御ができる。
次に、ライブラリ装置301に格納されたデータの参照について説明する。図15と図16は、ライブラリ装置301に格納されたデータ「AAA」の読み出し処理手順を示すフローチャートである。たとえば、上記ディスクアレイ装置203からライブラリ装置301へのデータ「AAA」の移動後、コンピュータ102が、データ「AAA」の読み出しを要求したとする(15000)。コンピュータ102のファイルシステム10は、イーサネット60を介して、ファイルネーム「AAA」というデータの読み出しを要求する(15001)。
位置管理手段801は、変換表811からファイルネーム「AAA」に対応する行を選択し(15002)、ライトビットが「0」であることを確認し(15003)、リードカウントをインクリメントし読み出し処理を開始する(15004)。位置管理手段801は、ディスクアレイ装置201にデータ「AAA」を格納可能な空き領域を検索する(15005)。空き領域が見つかると、対応する領域管理表812のLBAを割り当て済みに変更し(15006)、情報複製手段890に対しデータ「AAA」をライブラリ装置301からディスクアレイ装置201に複製するように要求する(16000)。
図16に、情報複製手段890による複製処理の手順を示す。情報複製手段890は、データ「AAA」の格納されたメディアをドライブ30に搬送するようにライブラリ装置301に指示する(16002)。もし、データ「AAA」の格納されているメディアがすでにドライブ内にあるのであれば搬送する必要はない(16001)。搬送機構32は、指定されたメディアの格納された棚から指定された目的のドライブへメディアを搬送する(16003,16004)。ドライブに搬送したメディアが読み出し可能になるのを待って(16005)、ライブラリ装置301に対してリードコマンドを発行してデータを読み出し(16007,16008)、ディスクアレイ装置201にライトコマンドを発行し(16009)、データを書き込む(16010,16011)。情報複製手段890は、ライトコマンドを完了すると、位置管理手段801に複製が完了したことを報告する(16012)。
再び図15に戻って、位置管理手段801は、複製完了の報告を受け取ると、変換表811の空いている位置情報にディスクアレイ装置201のWWN、LBA、およびデータ長を書き込み(15007)、有効ビットを「1」にセットし(15008)、この位置情報をコンピュータ102のファイルシステム10に報告する(15009)。
コンピュータ102のファイルシステム10は、位置情報(WWN、メディア番号、LBA、データ長)の報告を受けると、ディスクアレイ装置201にリードコマンドを発行し(15010)、データを読み出す(15011,15012)。コンピュータ102のファイルシステム10は、ディスクアレイ装置201から読み出し完了の報告を受け取ると、コンピュータ151の位置管理手段801に読み出しが完了したことを報告する(15013)。位置管理手段801は、読み出し完了の報告を受け取ると、変換表811のファイル履歴に最終アクセス日時と複製日時を書き込み(15014)、リードカウントをデクリメントし(15015)、読み出しが完了する(15016,15017,15018)。
この場合、たとえデータ「AAA」に「高信頼に」の制御情報が与えられていたとしても、RAID5で構成されているディスクアレイ203にファイル「AAA」を複製する必要性は必ずしもない。なぜなら、ライブラリ装置301とRAID0のディスクアレイ装置201の2箇所にデータが保持されているためである。
ここで、位置管理手段801は、複製したディスクアレイ装置201上のデータが一定期間アクセスされていないことを確認すると、変換表811の位置情報の有効ビットを「0」にリセットする。この際、この位置情報に対応する領域管理表812のLBAは未使用に戻される。
次に、制御情報のバリエーションについて説明する。これまでに「低価格に」と「高信頼に」の2つの制御情報について記載してきたが、その他の制御情報が設定された場合の動作について記載する。
「高速に」の制御情報が与えられた場合には、2台のRAID0ディスクアレイ装置201と202の2箇所にデータを記録する。RAID0は信頼性がRAID5に比べて劣るため、RAID0のディスクアレイ装置2台にデータを記録することで信頼性を維持する。「高速に」の制御情報に加えて、「一時的に」の制御情報が付加されていた場合には、1台のRAID0ディスクアレイ装置にのみデータを記録する。
「長期に」の制御情報が与えられた場合には、DVD−RAMメディアなど、取り外し可能な光記録メディアにデータを記録する。DVD−RAMメディアは、30年の保存が可能であるといわれており、ハードディスク装置に比べ長期間に渡りデータを保管するのに向いている。「長期に」の制御情報に加えて、「高信頼に」の制御情報が付加されている場合には、2枚のメディアにデータを記録する。また、「長期に」の制御情報に加えて、「高速に」の制御情報が付加されている場合には、ディスクアレイ装置にもデータを記録しておく。ディスクアレイ装置に記録したデータは、アクセスの遅いライブラリ装置に対するキャッシュとして働く。
「災害対応に」の制御情報が与えられた場合には、遠隔地に設置されている記憶装置にデータを複写する。この場合、属性情報には記憶装置の設置場所を保持し、位置管理手段801は、異なる設置場所の2台以上の記憶装置にデータを記憶する。たとえば、ディスクアレイ装置201の設置場所が「東京」で、ディスクアレイ装置202の設置場所が「横浜」で、ディスクアレイ装置203の設置場所が「大阪」の場合、位置管理手段801は、設置場所の地理関係を把握し、「東京」のディスクアレイ装置201と「大阪」のディスクアレイ装置203の2箇所にデータを記録する。地震などの大災害時に、東京と横浜の距離では災害対応にならないことを位置管理手段801に設定しておく。
ファイバチャネル50の接続距離は最大10kmとなっており、実際に東京と横浜および大阪を接続するためには、ファイバチャネル50をATM(Asynchronous Transfer Mode)51など他のネットワークに変換して接続する必要があるのはいうまでもない。
「並列に」の制御情報が与えられた場合には、ディスクアレイ装置201と202の2箇所にデータを記録し、ディスクアレイ装置201に記録したデータをコンピュータ101専用とし、ディスクアレイ装置202に記録したデータをコンピュータ102専用とする。位置管理手段801は、読み出しを要求したコンピュータを判断して、対応する位置情報を報告する。
「可搬に」の制御情報が与えられた場合には、媒体の取り外しが可能なライブラリ装置301にデータを記録する。このとき、制御情報にグループID(図2)を付加して位置管理手段801に与えることで、位置管理手段801は、同じグループIDをもつデータをひとつのメディアに集めるようにデータを記録する。「可搬に」の制御情報を扱うためには、変換表811にグループIDを保持する領域を設ける必要がある。
また、これまで記載してきた実施形態では、データを新規に書き込むときに制御情報を与えることが必要であった。もちろん、ユーティリティを用いて途中で制御情報を変更することもできる。以下では、別の制御情報の与え方について説明する。
図4は、ディレクトリ構造の例を示す図である。コンピュータシステムでは、ディレクトリ構造によるファイル管理を用いることが多い。これは、ファイルをフォルダに分類することにより、ユーザによるファイルの検索を容易にするためである。たとえば図4のような構成では、出発点になるルートフォルダ1には2つのサブフォルダ2と3があり、フォルダ3にはさらに2つのサブフォルダ4と5がある。データ「AAA」が、このフォルダ4に収められているとすると、データ「AAA」は、「/1/3/4/AAA」となる。このようなディレクトリ構成では、フォルダに基本的な制御情報を与えておき、そのフォルダに格納されるファイルやサブフォルダには、そのフォルダの制御情報が継承されるように構成する。たとえば、フォルダ1には「制御情報なし」、フォルダ2には「高速に」、フォルダ3には「高信頼に」の制御情報を与えておけば、これらのフォルダに格納されるファイルについてはそれぞれの制御情報が継承される。また、フォルダ3にフォルダ4と5を作成すると、自動的にフォルダ3の制御情報である「高信頼に」がフォルダ4と5にも与えられる。継承させずに新規に制御情報を与えなおすこともできる。フォルダ4に「長期に」の制御情報を追加すると、フォルダ4に保持されるデータ「AAA」には、デフォルトの制御情報として、「高信頼に」と「長期に」の制御情報が与えられることになる。
また、フォルダ3の制御情報を変更すると、それ以下のフォルダとファイルすべての制御情報を一括して変更することも可能である。また、フォルダ4からフォルダ2にデータ「AAA」を移動したときに、すでにデータ「AAA」の持っている制御情報を維持することもできるし、フォルダ2の制御情報を与えなおすこともできる。本実施形態の場合、このような制御情報の継承に関するすべての設定は、位置管理手段801に対して設定できる。
上記実施形態のシステムによれば、位置管理手段は、属性保持手段に保持された属性情報と、データに設定された制御情報によって、複数のコンピュータによって共有された複数の記憶装置の中から適切な記憶装置を選択し、データを保持することができる。位置管理手段は、データを記録する複数の位置情報をもつことができるので、データを複数の記憶装置に記録することができ、ユーザの設定したさまざまな制御情報にあわせたデータの記録が可能になる。またデータの位置は、すべて位置管理手段によって一元的に管理されるので、データの移動や複写を行うたびに位置管理手段が複数のコンピュータにその処理を報告する必要がない。
次に、本発明の第2の実施形態(キャッシュありの場合)を説明する。
図1は、第2の実施形態のシステム構成図を示す。第1の実施形態のシステムとの違いは、コンピュータ101と102にキャッシュディスク90と情報受領手段91を設けている点と、コンピュータ101,102、ディスクアレイ装置201,202,203、およびライブラリ装置301に稼働率計測手段82を設けている点である。コンピュータ101と102に設けたキャッシュディスク90は、ファイルシステム10とファイバチャネルスイッチ501から1つのWWNを持つハードディスク装置として認識されるように構成されている。
次に、稼働率測定手段82について説明する。コンピュータに設けた稼働率測定手段82は、キャッシュディスク90の処理性能を測定する。また、ディスクアレイ装置201,202,203に設けた稼働率測定手段82は、ディスクアレイ装置の処理性能を測定する。本実施形態における処理性能とは、リードまたはライトにかかった平均処理時間である。ある記憶装置の平均処理時間が長くなると、その記憶装置にアクセスが集中していることが判る。ライブラリ装置301に設けた稼働率測定手段82は、メディアごとのアクセス頻度を測定する。
次に、位置管理手段801について説明する。第2の実施形態の位置管理手段801は、第1の実施形態と同様に図2の変換表811を用いる。領域管理表812は、ディスクアレイ装置201,202,203とライブラリ装置301のメディアに加えて、コンピュータ101と102に設けたキャッシュディスク90の空き領域も管理する。
次に、新規書き込み処理について説明する。図9と図10は、記憶装置にデータを新規に書き込む処理手順を示すフローチャートである。コンピュータ101のファイルシステム10は、イーサネット60を介して、ファイルネーム「AAA」というデータに対する新規領域割り当てをコンピュータ151の位置管理手段801に要求する(9001)。位置管理手段801は、まず、変換表811の空いている一行を探し出し(9002)、ライトビットを「1」にして書き込みの開始を宣言し(9003)、ファイルネームを書き込む(9004)。ここでは、変換表811の1番目の位置情報に書き込んだとする。コンピュータ101のキャッシュディスク90から、データ「AAA」を格納するのに必要な領域を領域管理表812より検索する(9005)。ここでは、十分な空き領域があるとすると、割り当て可能位置を獲得することができる。位置管理手段801は、対応する領域管理表812のLBAを割り当て済みに変更し(9006)、位置情報をコンピュータ101に報告する(9007)。
コンピュータ101のファイルシステム10は、空き領域の報告を受けると、指定された空き領域にデータを書き込むためのライトコマンドをコンピュータ101のキャッシュディスク90に発行する(9008)。この書き込みは同一コンピュータ内で処理されるため、きわめて高速である(9009)。ファイルシステム10は、キャッシュディスク90から書き込み完了の報告(9010)を受け取ると、位置管理手段801に書き込みが完了したことを報告する(9011)。位置管理手段801は、書き込み完了の報告を受けとると、変換表811の1番目の位置情報に、コンピュータ101のキャッシュディスク90のWWN、LBA、およびデータ長を書き込み(9012)、有効ビットを「1」にセットする(9013)。
次に、位置管理手段801は、コンピュータ101以外のコンピュータ上のキャッシュディスク90とディスクアレイ装置201,202,203の稼働率測定手段82から、それぞれ稼働率を獲得し(9014)、一番稼働率の低い記憶装置を選択し(9015)、空き領域を検索する。ここでは、ディスクアレイ装置201の稼動率が一番低いとすると、ディスクアレイ装置201に対しデータ「AAA」を格納するのに必要な領域を検索する。データ「AAA」を格納できる空き領域が見つかると(9016)、対応する領域管理表812のLBAを割り当て済みに変更し(9017)、情報複製手段890にデータ「AAA」の複製を要求する(10000)。
図10に、情報複製手段890による複製処理の手順を示す。情報複製手段890は、すでにデータ「AAA」が書き込まれているコンピュータ101のキャッシュディスク90に対して情報受領手段91を介してリードコマンドを発行し(10001)、データ「AAA」を読み出し(10002,10003)、ディスクアレイ装置201にライトコマンドを発行し(10004)、データを書き込む(10005,10006)。情報複製手段890は、ライトコマンドを完了すると、位置管理手段801に複製が完了したことを報告する(10007)。
再び図9に戻って、位置管理手段801は、複製完了の報告を受け取ると、変換表811の空いている行、ここでは2番目の位置情報に、ディスクアレイ装置201のWWN、LBA、およびデータ長などの情報を書き込み(9019)、有効ビットを「1」にセットする(9020)。そして、ファイル履歴には、新規作成とその日時、複製日時を書き込む(9021)。最後に、ライトビットを「0」にして(9022)、書き込みを完了する(9023,9024,9025)。
次に、読み出し処理について説明する。図11と図12は、記憶装置からデータを読み出す処理手順を示すフローチャートである。上記書き込み処理において、データ「AAA」は、ホストコンピュータ101のキャッシュディスク90と、ディスクアレイ装置201上にある。ここで、ホストコンピュータ102がデータ「AAA」を読み出す場合(11000)、ホストコンピュータ102のファイルシステム10が、イーサネット60を介してファイルネーム「AAA」のデータの読み出しを位置管理手段801に要求する(11001)。位置管理手段801は、変換表811からファイルネーム「AAA」に対応する行を選択し(11002)、ライトビットが立っていないことを確認し(11003)、リードカウントをインクリメントする(11004)。
次に、位置管理手段801は、データ「AAA」の格納されているホストコンピュータ101のキャッシュディスク90とディスクアレイ装置201の稼働率計測手段82から稼働率を獲得し(11006)、一番稼働率の低い記憶装置を選択する(11007)。ここでは、コンピュータ101のキャッシュディスク90の稼働率が低かったとする。位置管理手段801は、領域管理表812のコンピュータ102のキャッシュディスク90からデータ「AAA」を格納するのに必要な領域を検索する(11008)。ここでは、十分な空き領域があるとすると、割り当て可能位置を獲得することができる。位置管理手段801は、対応する領域管理表812のLBAを割り当て済みに変更し(11009)、情報複製手段890に対し、コンピュータ101のキャッシュディスク90からコンピュータ102のキャッシュディスク90にデータ「AAA」をコピーするように要求する(12000)。
図12に、情報複製手段890による複製処理の手順を示す。情報複製手段890は、すでにデータ「AAA」が書き込まれているコンピュータ101のキャッシュディスク90に対してリードコマンドを発行し(12001)、データを読み出し(12002,12003)、コンピュータ102のキャッシュディスク90にライトコマンドを発行し(12004)、データを書き込む(12005,12006)。情報複製手段890は、ライトコマンドを完了すると、位置管理手段801に複製が完了したことを報告する(12007)。
再び図11に戻って、位置管理手段801は、情報複製手段890から複製の完了を受け取ると、変換表811の空いている行、ここでは3番目の位置情報にホストコンピュータ102のキャッシュディスク90のWWN、LBA、およびデータ長などの情報を書き込み(11011)、有効ビットを「1」にセットする(11012)。また、位置管理手段801は、ファイル履歴に複製日時を書き込む(11013)。そしてデータ「AAA」の入っているホストコンピュータ102のキャッシュディスク90の位置情報をコンピュータ102に報告する(11014)。
コンピュータ102のファイルシステム10は、位置情報(WWN、LBA、データ長)の報告を受けると、コンピュータ102のキャッシュディスク90にリードコマンドを発行し(11015)、データを読み出す(11016)。コンピュータ102のファイルシステム10は、キャッシュディスク90から読み出し完了の報告(11017)を受け取ると、コンピュータ151の位置管理手段801に読み出しが完了したことを報告する(11018)。位置管理手段801は、読み出し完了の報告を受け取ると、ファイル履歴に最終アクセス日時を書き込み(11019)、リードカウントをデクリメントし(11020)、読み出しが完了する(11021,11022,11023)。
次に、データの更新処理について説明する。図13と図14は、データを上書きし更新する処理手順を示すフローチャートである。上記書き込み処理と読み出し処理において、データ「AAA」は、ホストコンピュータ101と102のキャッシュディスク90と、ディスクアレイ装置201上の3箇所にある。ここで、ホストコンピュータ102がデータ「AAA」を更新する場合(13000)、ホストコンピュータ102のファイルシステム10は、イーサネット60を介して、ファイルネーム「AAA」のデータの更新を位置管理手段801に要求する(13001)。位置管理手段801は、変換表811からファイルネーム「AAA」に対応する行を選択し(13002)、ライトビットが「0」でリードカウントが「0」であることを確認する(13003,13004)。ライトビットが「0」でない場合、またはリードカウントが「0」でない場合は、更新失敗となる(13090,13091,13098,13099)。
次に、位置管理手段801は、ライトビットを「1」にして更新の開始を宣言する(13005)。もしデータ「AAA」のデータ長が大きくなっていた場合には、領域管理表812を用いて再度空き領域を検索する必要があるが(13006,13007)、ここではデータ長が不変とする。位置管理手段801は、コンピュータ102のファイルシステム10に、変換表811の3番目の位置情報(コンピュータ102のキャッシュディスク90内のデータ「AAA」を示す)を報告する(13008)。
コンピュータ102のファイルシステム10は、位置情報の報告を受けると、指定された位置にデータを書き込むためのライトコマンドをコンピュータ102のキャッシュディスク90に発行する(13009)。コンピュータ102のキャッシュディスク90は、データを書き込み(13010)、書き込み完了を報告する(13011)。ファイルシステム10は、キャッシュディスク90から書き込み完了の報告を受け取ると、コンピュータ151の位置管理手段801に書き込みが完了したことを報告する(13012)。
位置管理手段801は、書き込み完了の報告を受けとると、変換表811の1番目(コンピュータ101のキャッシュディスク90内のデータ「AAA」を示す)と2番目(ディスクアレイ201内のデータ「AAA」を示す)の位置情報に、更新したデータ「AAA」を複製するように、情報複製手段890に要求する(14000)。
図14に、情報複製手段890による複製処理の手順を示す。情報複製手段890は、すでにデータ「AAA」が書き込まれているコンピュータ102のキャッシュディスク90に対してリードコマンドを発行し(14001)、データを読み出し(14002,14003)、コンピュータ101のキャッシュディスク90とディスクアレイ装置201にライトコマンドを同時に発行し(14004)、データを書き込む(14005,14006,14005’,14006’)。情報複製手段890は、二つのライトコマンドを完了すると、位置管理手段801に複製が完了したことを報告する(14007)。本実施形態における情報複製手段890は、ファイバチャネルスイッチ501と連携し、1つのデータを複数の記憶装置に同時に複製することができる。もし、情報複製手段890が、1つの記憶装置にしかデータを複製できない場合には2回に分けて処理する。この場合、処理時間が長くなることが予想されるので、コピー先が多くなればなるほど不利になる。本発明の実施には、複数の記憶装置にデータを複製可能な情報複製手段890を用いることが望ましい。
再び図13に戻って、位置管理手段801は、情報複製手段890から複製完了の報告を受け取ると、ファイル履歴に最終更新日時を書き込み(13014)、ライトビットを「0」にして(13015)、書き込みを完了する(13016,13017,13018)。
上記第2の実施の形態のシステムによれば、ホストコンピュータにディスクキャッシュを設けることで、ホストコンピュータ上に書き込みして間もないデータを保持できるので、高速にアクセスできるようになる。位置管理手段は、各記憶装置に設けた稼動率測定手段からアクセス頻度の少ない記憶装置を選択してデータを2箇所以上に保存するので、ホストコンピュータが停止するようなことがあってもデータを失うことはない。
次に、本発明の第3の実施形態(ストレージプロバイダにおける保存データの課金方式)について説明する。
図1は、第3の実施形態のシステム構成図を示す。第3の実施形態では、イーサネット61に複数のクライアント70を接続している。コンピュータ101と102は、これらクライアント70からのデータの書き込みおよび読み出し要求を受け付けるファイルサーバとして機能する。本実施形態ではクライアント70との接続にイーサネット61を用いて説明を行うが、本発明はこの接続手段によらず実現可能である。
本実施形態ではコンピュータ101と102はストレージサービスプロバイダ側に設置されているとして説明を行うが、もちろんコンピュータ101や102を各事業所や支店に設置することもできる。もし、コンピュータ102とファイバチャネルスイッチ501との距離が10km以上離れる場合には、図1に記載のように、エクステンダ52を介し、ATM(Asynchronous Transfer Mode)51を介して接続する。もちろんATM51に代えて他の接続手段を用いても問題ない。
次に、運用形態について説明する。クライアント70はたとえば各事業所や支店などに用意された端末であり、ユーザは、これらの端末から、保存を希望するデータをイーサネット61を介してコンピュータ101または102に送りつける。この際、データをどのように保存するかを指定する(データ毎に指定する保存の仕方をデータポリシーと称す)。第1の実施形態に記載した制御情報がこれにあたる。ユーザは、アクセス頻度の高いデータはより高速な記憶装置に、アクセス頻度の低いデータはアクセスが遅くても低コストな記憶装置に、また、大切なデータは、コストがかかっても災害でデータを失うことのないように遠隔地の記憶装置にも複製を保持することを希望する。よって、データの保持される記憶装置の属性(性能や信頼性)が、データの保持コストに反映されることが望ましい。
次に、課金について説明する。本実施形態のシステムでは、記憶装置毎の属性保持手段80に保持した単位容量あたりの保持コストと、位置管理情報の変換表811に保持したデータ長、ファイル履歴、および位置情報をもとに、保持データに対して課金する。たとえば、データ「AAA」がディスクアレイ装置201と202に10日間保持され、次にディスクアレイ装置203に移動されて10日間保存され、次にライブラリ装置301に移動されて10日間保存された場合、この30日間のデータ保持コストは、
データ保持コスト={(RAID0の保持コスト10)×10日×2
+(RAID5の保持コスト15)×10日
+(ライブラリの保持コスト1)×10日}×データ長
で求めることができる。ここで、RAID0の保持コストが2倍されているのは、2台のディスクアレイにデータが二重に保持されていたことを反映するためである。位置管理手段801は、一ヶ月ごとにすべてのデータのコストを算出し、ユーザに請求する。コスト算出後、位置管理手段801は、ファイル履歴のうち、データの移動と複製に関する情報は消去する。上記コストの算出に必要な情報は、第1の実施形態および第2の実施形態に含まれている。
また、別の例として、データ「BBB」が、2枚のDVD−RAMメディアに30日間保持され、一度参照したために、ディスクアレイ装置201に3日間キャッシュされた場合、この30日間のデータ保持コストは、
データ保持コスト={(RAID0の保持コスト10)×3日
+(ライブラリの保持コスト1)×30日×2}×データ長
で求めることができる。
ユーザ毎のデータコストを算出するには、WWNを用いる。たとえば、ユーザAがコンピュータ101を介してデータを保存し、ユーザBがホストコンピュータ102を介してデータを保持した場合、ホストコンピュータ101と102は異なるWWNを有するので、目的のホストコンピュータのWWNで変換表811を検索すれば、そのホストコンピュータを使用するユーザの総データ保持コスト算出することができる。
次に、グローバルポリシーの適用について説明する。上述したように本実施形態のシステムでは、データ単位でのコストを容易に算出することが出来る。そこで、ユーザからたとえば一ヶ月あたりのデータ保持コストが指定されていた場合には、そのコストを満足できるように、データを移動させる。当然ながらデータ量が多くなると性能が犠牲になる。
このような指定を、データポリシーに対して、グローバルポリシーと称す。コスト以外にも性能最優先のグローバルポリシーなどが考えられる。また、データポリシーとグローバルポリシーのどちらを優先するかも指定可能である。もし、データポリシーが優先されていて、ユーザから指定されたデータ保持コスト(グローバルポリシー)を満たすことが出来ない場合には、その旨をユーザに報告する。 通常、グローバルポリシーの設定は、ユーザ側のクライアント70からホストコンピュータ101または102を介してコンピュータ151に通知するが、ユーザとストレージサービスプロバイダが書面により交換したグローバルポリシーの設定基準に基づき、ストレージサービスプロバイダ側の管理者がコンピュータ151に設定することもできる。
上記第3の実施形態のシステムによれば、ユーザから保持要求のあったデータを、ユーザの指定した制御情報と、属性保持手段、位置管理手段、および情報複製手段とにより、よりきめ細かく位置管理することができる。これにより、データのアクティビティや信頼性に対し、データ保持にかかるコストを関連付けることができ、ユーザは、高いアクティビティや高い信頼性を必要とするデータ対しては高い保持コストを、低いアクティビティや低い信頼性のデータには安い保持コストを割り当てることができる。一般的に、高いアクティビティを必要とするデータは少ないと言えるが、本実施形態のシステムでは、上述したようにデータのアクティビティや信頼性に応じたコストを関連付けることができるので、全体としてユーザはデータを保持しつづけるコストを低減できる。
10…ファイルシステム、30…ドライブ、31…棚、32…搬送機構、50…ファイバチャネル、51…ATM、52…エクステンダ、60…イーサネット、61…イーサネット、70…クライアント、80…属性保持手段、82…稼働率測定手段、90…キャッシュディスク、91…情報受領手段、101…コンピュータ、102…コンピュータ、151…コンピュータ、201…ディスクアレイ装置、202…ディスクアレイ装置、203…ディスクアレイ装置、301…ライブラリ装置、501…ファイバチャネルスイッチ、801…位置管理手段、811…変換表、812…領域管理手段、890…情報複製手段。