(58)【調査した分野】(Int.Cl.,DB名)
前記管理部は、前記ファイルの更新回数を管理し、前記バックアップ制御部は、前記第1の記憶部が記憶するファイルのうち前記更新回数が所定の閾値以上であるファイルを、第1のバックアップデータとして前記第2の記憶部に記憶することを特徴とする請求項1記載のストレージ装置。
書き込まれたファイルを一時的に記憶するとともに、所定時間更新がない前記ファイルを削除する第1の記憶部と、前記第1の記憶部が記憶するファイルのバックアップデータを記憶する第2の記憶部と、を備えるストレージ装置の制御方法であって、
前記ストレージ装置は、
前記第1の記憶部が記憶する前記第1の記憶部に前記ファイルが作成されてから前記第1の記憶部に滞留している前記ファイルの滞留時間と、前記滞留時間が閾値以上である場合に前記第1の記憶部が記憶するファイルを前記第2の記憶部にバックアップする条件を示すバックアップ条件を管理し、
前記第1の記憶部が記憶するファイルのうち前記バックアップ条件を満足したファイルを、第1のバックアップデータとして前記第2の記憶部に記憶する、
ことを特徴とするストレージ装置の制御方法。
書き込まれたファイルを一時的に記憶するとともに、所定時間更新がない前記ファイルを削除する第1の記憶部と、前記第1の記憶部が記憶するファイルのバックアップデータを記憶する第2の記憶部と、を備えるストレージ装置の制御方法であって、
前記ストレージ装置は、
前記第1の記憶部が記憶する前記第1の記憶部に前記ファイルが作成されてから前記第1の記憶部に滞留している前記ファイルの滞留時間と、前記ファイルの更新回数と、前記滞留時間が閾値以上であり、かつ前記更新回数が閾値以上である場合に前記第1の記憶部が記憶するファイルを前記第2の記憶部にバックアップする条件を示すバックアップ条件を管理し、
前記第1の記憶部が記憶するファイルのうち前記バックアップ条件を満足したファイルを、第1のバックアップデータとして前記第2の記憶部に記憶する、
ことを特徴とするストレージ装置の制御方法。
【発明を実施するための形態】
【0012】
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ装置について
図1を用いて説明する。
図1は、第1の実施形態のストレージ装置の構成の一例を示す図である。
【0013】
ストレージ装置1は、ファイル単位でデータを記憶保持するとともに、記憶保持するファイルを定期または不定期にバックアップする。ストレージ装置1は、管理部2と、バックアップ制御部3と、第1の記憶部4と、第2の記憶部5とを備える。
【0014】
第1の記憶部4は、書き込まれたファイルを一時的に記憶する。第1の記憶部4は、ライトキャッシュとして機能する。なお、第1の記憶部4は、第2の記憶部5と比較して高速なアクセス性能を有する記憶部であることが望ましい。
【0015】
第2の記憶部5は、第1の記憶部4が記憶するファイルのバックアップデータを記憶する。第2の記憶部5は、バックアップディスクとして機能する。第2の記憶部5は、第1の記憶部4と比較して大容量の記憶領域を有する記憶部であることが望ましい。
【0016】
管理部2は、ファイル更新状態6と、バックアップ条件7を管理する。ファイル更新状態6は、第1の記憶部4が記憶するファイルの更新状態を含む情報である。バックアップ条件7は、第1の記憶部4が記憶するファイルを第2の記憶部5にバックアップする条件を含む情報である。
【0017】
バックアップ制御部3は、第1の記憶部4が記憶するファイルのうちファイル更新状態6がバックアップ条件7を満足したファイルを、第1のバックアップデータ8として第2の記憶部5に記憶する。
【0018】
これにより、ストレージ装置1は、バックアップデータの管理工数を過大にすることなく、更新頻度の高いデータをバックアップすることができる。
ここで、時系列t(タイミングT0からタイミングT3まで)におけるファイル更新とファイルバックアップについて説明する。なお、図示する一点鎖線矢印は、ファイル更新状態6がバックアップ条件7を満足したときにおこなわれる第1のバックアップ(不定期バックアップ)であることを示す。また、図示する二点鎖線矢印は、定期的におこなわれる第2のバックアップ(定期バックアップ)であることを示す。バックアップ制御部3は、第1の記憶部4が記憶するファイルを、第2のバックアップデータ9として第2の記憶部5に定期的に記憶する。
【0019】
タイミングT0において、第1の記憶部4は、ファイルA0およびファイルB0を記憶している。ストレージ装置1は、定期バックアップタイミングであるタイミングT0、すなわちバックアップ条件7の成立と関係なくおこなわれるバックアップタイミングで、ファイルA0およびファイルB0を第2の記憶部5にバックアップする。
【0020】
タイミングT1においてファイルA0がファイルA1に更新され、ファイル更新状態6がバックアップ条件7を満足した場合、ストレージ装置1は、ファイルA1を第2の記憶部5にバックアップする。同様に、タイミングT2においてファイルA1がファイルA2に更新され、ファイル更新状態6がバックアップ条件7を満足した場合、ストレージ装置1は、ファイルA2を第2の記憶部5にバックアップする。なお、ファイル更新状態6は、第1の記憶部4が記憶するファイルの更新があった場合に更新される。
【0021】
そして定期バックアップタイミングであるタイミングT3において、第1の記憶部4は、ファイルA2およびファイルB0を記憶している。ストレージ装置1は、定期バックアップタイミングであるタイミングT3で、ファイルA2およびファイルB0を第2の記憶部5にバックアップする。
【0022】
したがって、第2の記憶部5は、タイミングT0のファイルA0,B0、タイミングT1のファイルA1、タイミングT2のファイルA2、およびタイミングT3のファイルA2,B0を記憶する。これにより、ストレージ装置1は、定期バックアップと定期バックアップとの間にある更新ファイル(たとえば、ファイルA1)をバックアップすることができる。また、ストレージ装置1は、タイミングT0とタイミングT3の定期バックアップでファイルB0を重複してバックアップしている。しかしながら、ストレージ装置1は、定期バックアップを短い時間に設定しなくても更新ファイルをバックアップすることができることから重複したバックアップの発生を抑制できる。
【0023】
なお、第1の記憶部4は、第2の記憶部5と比較して高速なアクセス性能を有する場合、たとえば、第1の記憶部4がSSD(Solid State Drive:フラッシュメモリドライブ)であり、第2の記憶部5がHDD(Hard Disk Drive)である。あるいは、第1の記憶部4がオンラインディスクであり、第2の記憶部5がニアラインディスクである。この場合、第1の記憶部4、第2の記憶部5ともに、性能の異なるHDD、あるいは性能の異なるSSDであることがある。
【0024】
[第2の実施形態]
次に、第2の実施形態のストレージシステムについて
図2を用いて説明する。
図2は、第2の実施形態のストレージシステムの構成の一例を示す図である。
【0025】
ストレージシステム10は、複数のクライアント端末(情報処理端末)11と、NAS装置20と、LAN(Local Area Network)12とを含む。クライアント端末11は、NAS装置20が提供するファイル接続機能を利用して、ユーザごとまたはアプリケーションごとのデータ処理をおこなう。NAS装置20は、クライアント端末11にファイル接続機能を提供するファイルサーバである。NAS装置20は、複数のディスク(記憶装置)21を備え、大容量の記憶領域を有する。LAN12は、有線または無線、あるいはその両方を含む通信路であり、クライアント端末11とNAS装置20とを接続する。なお、LAN12は、クライアント端末11とNAS装置20とを接続するネットワークの一例であり、公衆回線等を含むものであってもよい。
【0026】
次に、第2の実施形態のNAS装置20について
図3を用いて説明する。
図3は、第2の実施形態のNAS装置のハードウェア構成の一例を示す図である。
NAS装置20は、プロセッサ22によって装置全体が制御されている。プロセッサ22には、バス28を介してRAM(Random Access Memory)23と複数の周辺機器が接続されている。
【0027】
プロセッサ22は、マルチプロセッサであってもよい。プロセッサ22は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ22は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0028】
RAM23は、NAS装置20の主記憶装置として使用される。RAM23には、プロセッサ22に実行させるOSのプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM23には、プロセッサ22による処理に必要な各種データが格納される。また、RAM23には、クライアント端末11とNAS装置20との間で転送されるデータが一時的に格納される。なお、RAM23は、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。RAM23は、バッテリ24に電力供給がバックアップされる。バッテリ24は、たとえば、リチウムイオン電池などがある。
【0029】
バス28に接続されている周辺機器としては、ROM(Read Only Memory)25、ディスク制御部26、および外部インタフェース部27がある。
ROM25は、NAS装置20の電源遮断時においても記憶内容を保持する。ROM25は、たとえば、EEPROM(Electrically Erasable and Programmable ROM)やフラッシュメモリなどの半導体記憶装置や、HDDなどである。また、ROM25は、NAS装置20の補助記憶装置として使用される。ROM25には、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。ROM25は、たとえば、データのバックアップ手順(バックアッププログラム)やリストア手順(リストアプログラム)を格納する。
【0030】
ディスク制御部26は、ファイルを格納するディスク(HDD211、HDD212、SSD213)を制御する。なお、ディスク(HDD211、HDD212、SSD213)は、NAS装置20が内蔵するものであってもよいし、外部接続するものであってもよい。また、ディスク制御部26は、ディスクとバス28との間のデータ転送を制御する。
【0031】
外部インタフェース部27は、LAN12と接続するインタフェース(たとえば、Ethernet(登録商標))を制御する。外部インタフェース部27は、冗長性を有するため、あるいは負荷分散のために複数設けられる。
【0032】
HDD211は、クライアント端末11にファイル接続機能を提供するためのデータを格納する記憶装置である。たとえば、HDD211は、複数備えられ、RAID(Redundant Array of Inexpensive Disks)を構築可能にしている。HDD212は、HDD211およびSSD213のバックアップデータを格納する記憶装置である。
【0033】
SSD213は、HDD211にデータが書き込まれる前にデータを一時的に格納する記憶装置であり、ライトキャッシュとして機能する。SSD213は、クライアント端末11からHDD211へのデータの書き込みが発生した場合に、HDD211への書き込み前のライトキャッシュとして使用される。
【0034】
たとえば、ディスク制御部26は、クライアント端末11からHDD211へのデータの書き込み要求を受けて、SSD213に空き領域がある場合にSSD213に一時的にデータを書き込み、後でHDD211へのデータの書き込みをおこなう。ディスク制御部26は、SSD213に書き込まれたデータの滞留時間をタイマ(たとえば、インクリメントタイマ)で監視する。ディスク制御部26は、所定時間内に同一データへの書き込み、すなわちデータ更新が発生した場合に、タイマをリセットする。ディスク制御部26は、所定時間内に同一データへの書き込みがない場合には、すなわちタイマのタイムアップによりSSD213に書き込まれたデータをHDD211に書き出し、SSD213の領域を解放する。したがって、SSD213が一時的に記憶するデータのうち頻繁に更新されるデータは、更新されないデータと比較してより滞留時間が長い。
【0035】
このように、ディスク制御部26は、SSD213をライトキャッシュとして用いることで、NAS装置20の高速なデータ書き込みを実現している。
以上のようなハードウェア構成によって、第2の実施形態のNAS装置20の処理機能を実現することができる。なお、NAS装置20におけるプロセッサ22の他、ディスク制御部26、第1の実施形態に示したストレージ装置1も、図示したNAS装置20と同様のハードウェアにより実現することができる。
【0036】
NAS装置20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。NAS装置20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、NAS装置20に実行させるプログラムをROM25に格納しておくことができる。プロセッサ22は、ROM25内のプログラムの少なくとも一部をRAM23にロードし、プログラムを実行する。またNAS装置20に実行させるプログラムを、図示しない光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。メモリ装置は、外部インタフェース部27あるいは図示しない機器接続インタフェースとの通信機能を搭載した記録媒体である。たとえば、メモリ装置は、メモリリーダライタによりメモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなうことができる。メモリカードは、カード型の記録媒体である。
【0037】
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ22からの制御により、ROM25にインストールされた後、実行可能となる。またプロセッサ22が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0038】
次に、第2の実施形態の定期バックアップ処理について
図4を用いて説明する。
図4は、第2の実施形態の定期バックアップ処理のフローチャートを示す図である。
定期バックアップ処理は、SSD213が記憶するデータを定期的にHDD212にバックアップする処理である。定期バックアップ処理は、所定時間(たとえば、あらかじめ設定された時間)ごとにプロセッサ22により実行される。
【0039】
[ステップS11]プロセッサ22は、SSD213が記憶するキャッシュデータをHDD212にバックアップする。
[ステップS12]プロセッサ22は、削除対象となるバックアップファイルの有無を判定する。プロセッサ22は、削除対象となるバックアップファイルがある場合にステップS13にすすみ、削除対象となるバックアップファイルがない場合に定期バックアップ処理を終了する。プロセッサ22は、あらかじめ設定する定義ファイルにより削除対象となるバックアップファイルの有無を判定する。定義ファイルは、たとえば、上書き更新、追加更新、バック保持世代数など、バックアップファイルの保持条件(あるいは削除条件)が記録されている。
【0040】
[ステップS13]プロセッサ22は、削除対象となるバックアップファイルを削除して定期バックアップ処理を終了する。
このような定期バックアップ処理によれば、NAS装置20は、SSD213が記憶するキャッシュデータをHDD212に定期的にバックアップすることができる。なお、定期バックアップ処理は、SSD213が記憶するキャッシュデータに加えて、HDD211が記憶するデータをバックアップ対象としてもよい。
【0041】
次に、
図5を用いて定期バックアップ処理の実行例を説明する。
図5は、第2の実施形態の定期バックアップの一例を示す図である。なお、ファイルA0,A1,A2,A3,A4は、同じinodeのファイルであり、世代の区別を容易にするためにファイル名を便宜的に異ならせている。
【0042】
[タイミングT00]NAS装置20は、ライトキャッシュ上にファイルA0を作成する。これにより、SSD213は、ファイルA0を記録する。HDD212は、未だバックアップタイミングに至っていないためファイルA0をバックアップしていない。
【0043】
[タイミングT01]NAS装置20は、ライトキャッシュの定期バックアップを作成する。これにより、HDD212は、ファイルA0のバックアップファイルA0−b1を記録する。
【0044】
[タイミングT02]NAS装置20は、ライトキャッシュ上のファイルA0をファイルA1に更新する。これにより、SSD213は、ファイルA1を記録する。HDD212は、バックアップファイルA0−b1を保持するが、未だバックアップタイミングに至っていないためファイルA1をバックアップしていない。
【0045】
[タイミングT03]NAS装置20は、ライトキャッシュ上のファイルA1をファイルA2に更新する。これにより、SSD213は、ファイルA2を記録する。HDD212は、バックアップファイルA0−b1を保持するが、未だバックアップタイミングに至っていないためファイルA2をバックアップしていない。
【0046】
[タイミングT04]NAS装置20は、ライトキャッシュ上のファイルA2をファイルA3に更新する。これにより、SSD213は、ファイルA3を記録する。HDD212は、バックアップファイルA0−b1を保持するが、未だバックアップタイミングに至っていないためファイルA3をバックアップしていない。
【0047】
[タイミングT05]NAS装置20は、ライトキャッシュ上のファイルA3をファイルA4に更新する。これにより、SSD213は、ファイルA4を記録する。HDD212は、バックアップファイルA0−b1を保持するが、未だバックアップタイミングに至っていないためファイルA4をバックアップしていない。
【0048】
[タイミングT06]NAS装置20は、ライトキャッシュの定期バックアップを作成する。これにより、HDD212は、ファイルA0のバックアップファイルA0−b1に加えて、ファイルA4のバックアップファイルA4−b1を記録する。
【0049】
[タイミングT07]NAS装置20は、ライトキャッシュの定期バックアップを作成する。これにより、HDD212は、ファイルA0のバックアップファイルA0−b1、およびファイルA4のバックアップファイルA4−b1に加えて、ファイルA4のバックアップファイルA4−b2を記録する。なお、NAS装置20は、削除対象となるバックアップファイルがある場合、削除対象となるバックアップファイルを削除する。
【0050】
このように、NAS装置20は、定期バックアップ処理だけによるバックアップでは、バックアップ間隔の間で第2世代から第4世代までのファイル(ファイルA1,A2,A3)がバックアップされていない。なお、NAS装置20は、バックアップ間隔を小さく設定することで、第2世代から第4世代までのファイルのバックアップ機会を得ることができるが、多くの場合、バックアップファイルA4−b1,A4−b2のようにバックアップファイルが重複する。また、NAS装置20は、バックアップファイルの世代数が過大となり、管理工数が増大する。
【0051】
そこで、NAS装置20は、
図5に例示したファイルA(A0,A1,A2,A3,A4)のように更新を繰り返すファイル、すなわちライトキャッシュに長時間滞留するファイルのバックアップ機会を得る。以下に、このようなバックアップ機会を得るための処理について説明する。
【0052】
まず、第2の実施形態のキャッシュデータ更新処理について
図6を用いて説明する。
図6は、第2の実施形態のキャッシュデータ更新処理のフローチャートを示す図である。
キャッシュデータ更新処理は、SSD213が記憶するデータ(キャッシュデータ)を更新する処理である。キャッシュデータ更新処理は、SSD213が記憶するデータの更新タイミングにプロセッサ22により実行される。更新タイミングは、ファイルの作成、ファイルの更新、ファイルの削除、ファイルの移動(ライトキャッシュからの追い出し)などがある。
【0053】
[ステップS21]プロセッサ22は、ライトキャッシュにファイルを作成するか否かを判定する。プロセッサ22は、ライトキャッシュにファイルを作成する場合にステップS22にすすみ、ライトキャッシュにファイルを作成しない場合にステップS24にすすむ。
【0054】
[ステップS22]プロセッサ22は、ライトキャッシュにファイルを作成する。
[ステップS23]プロセッサ22は、管理テーブル作成処理を実行する。管理テーブル作成処理は、ライトキャッシュに作成したファイルの管理テーブルを作成する処理である。管理テーブルおよび管理テーブル作成処理については、
図7および
図8を用いて後で説明する。プロセッサ22は、管理テーブル作成処理の実行後にキャッシュデータ更新処理を終了する。
【0055】
[ステップS24]プロセッサ22は、ライトキャッシュに記録しているファイルを更新するか否かを判定する。プロセッサ22は、ライトキャッシュに記録しているファイルを更新する場合にステップS25にすすみ、ライトキャッシュに記録しているファイルを更新しない場合にステップS27にすすむ。
【0056】
[ステップS25]プロセッサ22は、ライトキャッシュに記録しているファイルを更新する。
[ステップS26]プロセッサ22は、不定期バックアップ処理を実行する。不定期バックアップ処理は、ライトキャッシュに記録している更新ファイルをバックアップする処理である。不定期バックアップ処理については、
図9を用いて後で説明する。プロセッサ22は、不定期バックアップ処理の実行後にキャッシュデータ更新処理を終了する。
【0057】
[ステップS27]プロセッサ22は、ライトキャッシュに記録しているファイルを削除するか否かを判定する。プロセッサ22は、ライトキャッシュに記録しているファイルを削除する場合にステップS28にすすみ、ライトキャッシュに記録しているファイルを削除しない場合にステップS29にすすむ。
【0058】
[ステップS28]プロセッサ22は、ライトキャッシュに記録しているファイルを削除する。
[ステップS29]プロセッサ22は、ライトキャッシュに記録しているファイルを移動するか否かを判定する。プロセッサ22は、ライトキャッシュに記録しているファイルを移動する場合にステップS30にすすみ、ライトキャッシュに記録しているファイルを移動しない場合にキャッシュデータ更新処理を終了する。
【0059】
[ステップS30]プロセッサ22は、ライトキャッシュに記録しているファイルを移動する。すなわち、プロセッサ22は、HDD211にファイルをコピーし、SSD213からファイルを削除する。
【0060】
[ステップS31]プロセッサ22は、ライトキャッシュから削除したファイルの管理テーブル、またはライトキャッシュから移動したファイルの管理テーブルを削除して、キャッシュデータ更新処理を終了する。
【0061】
次に、第2の実施形態の管理テーブル作成処理について
図7を用いて説明する。
図7は、第2の実施形態の管理テーブル作成処理のフローチャートを示す図である。
ここで、管理テーブル作成処理を説明する前に、管理テーブルについて
図8を用いて説明する。
図8は、第2の実施形態の管理テーブルの一例を示す図である。
【0062】
管理テーブル50は、ファイルまたはディレクトリごとに設定されるバックアップ条件に関する条件情報と、ライトキャッシュに保持されているファイルまたはディレクトリごとの状態に関する状態情報とが記録される。
【0063】
管理テーブル50の項目「対象ファイル/ディレクトリ識別子」は、ライトキャッシュに保持されているファイルまたはディレクトリを一意に識別可能な識別情報である。項目「対象ファイル/ディレクトリ識別子」は、たとえば、inode番号である。プロセッサ22は、たとえば、対象ファイル/ディレクトリ識別子「12345678」からファイルまたはディレクトリを特定することができる。
【0064】
管理テーブル50の項目「バックアップ要否」は、条件情報の1つである。項目「バックアップ要否」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップの要否を示す情報(フラグ)である。項目「バックアップ要否」は、たとえば、「1」、または「2」を格納する。バックアップ要否「1」はバックアップを要することを示し、バックアップ要否「2」はバックアップが不要であることを示す。
【0065】
管理テーブル50の項目「更新回数設定値」は、条件情報の1つである。項目「更新回数設定値」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップ条件の1つであり、ファイルまたはディレクトリの更新回数の設定値である。項目「更新回数設定値」は、たとえば、整数を格納する。更新回数設定値「1」は1回目の更新でバックアップをおこなうことを示し、更新回数設定値「10」は10回目の更新でバックアップをおこなうことを示す。
【0066】
管理テーブル50の項目「滞留時間設定値」は、条件情報の1つである。項目「滞留時間設定値」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップ条件の1つであり、ファイルまたはディレクトリの滞留時間の設定値である。項目「滞留時間設定値」は、たとえば、整数を格納する。滞留時間設定値「100」は100秒間のライトキャッシュ滞在でバックアップをおこなうことを示し、滞留時間設定値「600」は600秒間のライトキャッシュ滞在でバックアップをおこなうことを示す。
【0067】
管理テーブル50の項目「バックアップ対象区分」は、条件情報の1つである。項目「バックアップ対象区分」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリがファイルであるかディレクトリであるかを示す情報(フラグ)である。項目「バックアップ対象区分」は、たとえば、「1」、または「2」を格納する。バックアップ対象区分「1」はバックアップ対象がファイルであることを示し、バックアップ対象区分「2」はバックアップ対象がディレクトリであることを示す。
【0068】
管理テーブル50の項目「必要保持世代数」は、条件情報の1つである。項目「必要保持世代数」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップ条件の1つであり、ファイルまたはディレクトリの必要保持世代数の設定値である。項目「必要保持世代数」は、たとえば、整数を格納する。必要保持世代数「1」は1世代のバックアップをおこなうことを示し、必要保持世代数「3」は3世代のバックアップをおこなうことを示す。
【0069】
管理テーブル50の項目「バックアップ先」は、条件情報の1つである。項目「バックアップ先」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップ条件の1つであり、ファイルまたはディレクトリのバックアップ先の設定値である。項目「バックアップ先」は、たとえば、整数を格納する。バックアップ先「1」はHDD212にバックアップをおこなうことを示し、バックアップ先「2」はライトキャッシュと異なるSSDにバックアップをおこなうことを示す。なお、項目「バックアップ先」は、は外部接続された記憶装置など、
図3に図示したディスク以外の記憶装置を設定可能であってもよい。
【0070】
管理テーブル50の項目「現在の更新回数」は、状態情報の1つである。項目「現在の更新回数」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリの更新回数を示す。項目「現在の更新回数」は、たとえば、整数を格納する。現在の更新回数「1」はファイルまたはディレクトリの更新回数が1回であることを示し、現在の更新回数「2」はファイルまたはディレクトリの更新回数が2回であることを示す。
【0071】
管理テーブル50の項目「現在の滞留時間」は、状態情報の1つである。項目「現在の滞留時間」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリがライトキャッシュに滞留している時間を示す。項目「現在の滞留時間」は、たとえば、整数を格納する。現在の滞留時間「10」はファイルまたはディレクトリがライトキャッシュに滞留している時間(滞留時間)が10秒であることを示し、現在の滞留時間「40」は滞留時間が40秒であることを示す。
【0072】
管理テーブル50の項目「現在の保持世代数」は、状態情報の1つである。項目「現在の保持世代数」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップが保持されている世代数を示す。項目「現在の保持世代数」は、たとえば、整数を格納する。現在の保持世代数「0」はファイルまたはディレクトリのバックアップが保持されていないことを示し、現在の保持世代数「2」はファイルまたはディレクトリのバックアップが保持されている世代数が2世代であることを示す。
【0073】
管理テーブル50の項目「バックアップ取得条件」は、条件情報の1つである。項目「バックアップ取得条件」は、項目「対象ファイル/ディレクトリ識別子」で特定されるファイルまたはディレクトリのバックアップ条件の1つであり、ファイルまたはディレクトリのバックアップ開始の条件式である。項目「バックアップ取得条件」は、たとえば、整数を格納する。バックアップ取得条件「1」は更新回数の条件成立と滞留時間の条件成立の論理和であることを示し、バックアップ取得条件「2」は更新回数の条件成立と滞留時間の条件成立の論理積であることを示す。
【0074】
なお、管理テーブル50は、RAM23に保持されるが、その他の記憶装置に保持されるものであってもよい。たとえば、管理テーブル50は、ライトキャッシュであるSSD213が保持するファイルのメタデータとしてもよい。また、プロセッサ22に代わってディスク制御部26がバックアップに係る処理の一部または全部を分担する場合、管理テーブル50は、ディスク制御部26が有する記憶領域に保持されるものであってもよい。
【0075】
ここで、管理テーブル作成処理の説明に戻る。管理テーブル作成処理は、SSD213が記憶するデータの管理テーブルを作成する処理である。プロセッサ22は、SSD213が記憶するファイルごとのバックアップタイミングの決定に管理テーブルを用いる。管理テーブル作成処理は、キャッシュデータ更新処理のステップS23で実行される。
【0076】
[ステップS41]プロセッサ22は、管理テーブル作成対象のデータにバックアップ条件が設定されているか否かを判定する。プロセッサ22は、管理テーブル作成対象のデータにバックアップ条件が設定されている場合にステップS43にすすみ、バックアップ条件が設定されていない場合にステップS42にすすむ。
【0077】
[ステップS42]プロセッサ22は、デフォルト設定を取得する。
[ステップS43]プロセッサ22は、管理テーブル作成対象のデータに設定されているバックアップ条件が、ユーザ毎のユーザ設定であるか、ユーザが属するグループ毎のグループ設定であるかを判定する。プロセッサ22は、バックアップ条件がユーザ設定である場合にステップS44にすすみ、バックアップ条件がグループ設定である場合にステップS45にすすむ。
【0078】
[ステップS44]プロセッサ22は、ユーザ設定を取得する。
[ステップS45]プロセッサ22は、グループ設定を取得する。
[ステップS46]プロセッサ22は、管理テーブルを作成する。プロセッサ22は、管理テーブルに1行追加し、管理テーブル作成対象のデータを特定可能なinodeを記録し、取得した設定を条件情報に複写し、状態情報を初期化して、管理テーブルを作成する。
【0079】
次に、第2の実施形態の不定期バックアップ処理について
図9を用いて説明する。
図9は、第2の実施形態の不定期バックアップ処理のフローチャートを示す図である。
不定期バックアップ処理は、SSD213が記憶するデータ(キャッシュデータ)をバックアップする処理である。不定期バックアップ処理は、キャッシュデータ更新処理のステップS26で実行される。
【0080】
[ステップS51]プロセッサ22は、ファイル更新のあったファイルについて、管理テーブル50の項目「現在の更新回数」を更新する。なお、管理テーブル50の項目「現在の滞留時間」は、図示しない更新処理により所定時間ごとに更新されるものであってもよいし、管理テーブル50の項目「現在の更新回数」とともに更新されるものであってもよい。
【0081】
[ステップS52]プロセッサ22は、管理テーブル50の項目「バックアップ要否」を参照して、ファイル更新のあったファイルがバックアップ対象か否かを判定する。プロセッサ22は、ファイル更新のあったファイルがバックアップ対象である場合にステップS53にすすみ、バックアップ対象でない場合に不定期バックアップ処理を終了する。
【0082】
[ステップS53]プロセッサ22は、管理テーブル50の項目「バックアップ取得条件」を参照して、バックアップ取得条件を判別する。プロセッサ22は、バックアップ取得条件が「OR(論理和)」の場合にステップS54にすすみ、バックアップ取得条件が「AND(論理積)」の場合にステップS56にすすむ。
【0083】
[ステップS54]プロセッサ22は、管理テーブル50の項目「現在の滞留時間」の値と、管理テーブル50の項目「滞留時間設定値」の値を比較する。プロセッサ22は、管理テーブル50の項目「現在の滞留時間」の値が、管理テーブル50の項目「滞留時間設定値」の値より大きい場合にステップS58にすすみ、大きくない場合にステップS55にすすむ。
【0084】
[ステップS55]プロセッサ22は、管理テーブル50の項目「現在の更新回数」の値と、管理テーブル50の項目「更新回数設定値」の値を比較する。プロセッサ22は、管理テーブル50の項目「現在の更新回数」の値が、管理テーブル50の項目「更新回数設定値」の値より大きい場合にステップS58にすすみ、大きくない場合に不定期バックアップ処理を終了する。
【0085】
[ステップS56]プロセッサ22は、管理テーブル50の項目「現在の滞留時間」の値と、管理テーブル50の項目「滞留時間設定値」の値を比較する。プロセッサ22は、管理テーブル50の項目「現在の滞留時間」の値が、管理テーブル50の項目「滞留時間設定値」の値より大きい場合にステップS57にすすみ、大きくない場合に不定期バックアップ処理を終了する。
【0086】
[ステップS57]プロセッサ22は、管理テーブル50の項目「現在の更新回数」の値と、管理テーブル50の項目「更新回数設定値」の値を比較する。プロセッサ22は、管理テーブル50の項目「現在の更新回数」の値が、管理テーブル50の項目「更新回数設定値」の値より大きい場合にステップS58にすすみ、大きくない場合に不定期バックアップ処理を終了する。
【0087】
[ステップS58]プロセッサ22は、SSD213が記憶するキャッシュデータ(ファイル更新のあったファイル)をHDD212にバックアップする。
[ステップS59]プロセッサ22は、管理テーブル50の項目「現在の保持世代数」の値と、管理テーブル50の項目「必要保持世代数」の値を比較する。プロセッサ22は、管理テーブル50の項目「現在の保持世代数」の値と、管理テーブル50の項目「必要保持世代数」の値とが等しい場合にステップS60にすすみ、等しくない場合にステップS61にすすむ。
【0088】
[ステップS60]プロセッサ22は、HDD212にバックアップデータのうち、最も古い世代のバックアップデータを削除して不定期バックアップ処理を終了する。
[ステップS61]プロセッサ22は、管理テーブル50の項目「現在の保持世代数」を更新(たとえば、1インクリメント)して不定期バックアップ処理を終了する。
【0089】
このような不定期バックアップ処理によれば、NAS装置20は、SSD213が記憶するキャッシュデータのうち、短期間で更新されるデータをHDD212にバックアップすることができる。
【0090】
次に、
図10を用いて不定期バックアップ処理の実行例を説明する。
図10は、第2の実施形態の定期バックアップおよび不定期バックアップの一例を示す図である。なお、ファイルA0,A1,A2,A3,A4は、同じinodeのファイルであり、世代の区別を容易にするためにファイル名を便宜的に異ならせている。また、特に世代を区別しない場合、ファイルAを用いる。
【0091】
[タイミングT10]NAS装置20は、クライアント端末11から外部インタフェース部27を介して受信したファイルA0を、バス28を介してRAM23に書き込む。NAS装置20は、SSD213にライトキャッシュとしての空き領域がある場合に、SSD213にファイルA0を作成する。また、NAS装置20は、ファイルAの管理テーブルを作成する。NAS装置20は、SSD213へのファイルA0の作成後に、クライアント端末11に書き込み終了を通知する。このようにして、SSD213は、ファイルA0を記録する。HDD212は、未だバックアップタイミングに至っていないためファイルA0をバックアップしていない。
【0092】
なお、ファイルAの管理テーブルは、項目「バックアップ要否」にバックアップ要否「1(バックアップ要)」、項目「更新回数設定値」に更新回数設定値「1(1回)」、項目「滞留時間設定値」に滞留時間設定値「120(120秒)」を設定したとする。さらに、ファイルAの管理テーブルは、項目「バックアップ対象区分」にバックアップ対象区分「1(ファイル)」、項目「必要保持世代数」に必要保持世代数「2(2世代)」を設定したとする。さらに、ファイルAの管理テーブルは、項目「バックアップ先」にバックアップ先「1(HDD212)」、管理テーブル50の項目「バックアップ取得条件」にバックアップ取得条件「2(論理積)」を設定したとする。
【0093】
[タイミングT11]NAS装置20は、クライアント端末11からの指示、あるいは内部設定により、管理下にある記憶領域内のファイルのバックアップ(定期バックアップ)を取得する。NAS装置20は、ライトキャッシュにあるファイルA0の定期バックアップとしてファイルA0−b1を作成し、バックアップ用ディスクであるHDD212に記録する。
【0094】
[タイミングT12]タイミングT12は、タイミングT10から120秒以上が経過したタイミングである。したがって、ライトキャッシュにおけるファイルA0の滞留時間は、滞留時間設定値「120(120秒)」を超えている。
【0095】
NAS装置20は、クライアント端末11から外部インタフェース部27を介して受信したファイルA1(ファイルA0の更新ファイル)を、バス28を介してRAM23に書き込む。NAS装置20は、SSD213にライトキャッシュとしての空き領域がある場合に、SSD213のファイルA0をファイルA1に更新する。NAS装置20は、ファイルAの管理テーブルを更新して、SSD213へのファイルA1の作成後に、クライアント端末11に書き込み終了を通知する。このようにして、SSD213は、ファイルA1を記録する。
【0096】
NAS装置20は、項目「現在の更新回数」の値をインクリメントして、管理テーブルを更新する。これにより、項目「現在の更新回数」は、更新回数「1」となる。更新回数「1」は、更新回数設定値「1」より大きくないため、更新回数の条件が不成立である。滞留時間の条件は成立しているが、項目「バックアップ取得条件」は、バックアップ取得条件「2」であるため、バックアップ開始条件を満たさない。したがって、HDD212は、バックアップファイルA0−b1を保持するが、未だバックアップタイミングに至っていないためファイルA1をバックアップしていない。
【0097】
[タイミングT13]NAS装置20は、タイミングT12のファイル更新と同様にして、SSD213のファイルA1をファイルA2に更新する。NAS装置20は、項目「現在の更新回数」の値をインクリメントして、ファイルAの管理テーブルを更新する。これにより、項目「現在の更新回数」は、更新回数「2」となる。更新回数「2」は、更新回数設定値「1」より大きいため、更新回数の条件が成立する。滞留時間の条件は成立し、項目「バックアップ取得条件」は、バックアップ取得条件「2」であるから、バックアップ開始条件を満たす。したがって、HDD212は、定期バックアップファイルA0−b1に加えて、ファイルA2をバックアップした不定期バックアップファイルA2−zを保持する。NAS装置20は、項目「現在の保持世代数」の値をインクリメントして、ファイルAの管理テーブルを更新する。
【0098】
このように、NAS装置20は、ファイルの使用状態や、ユーザやアプリケーションのニーズに応じてファイルAのバックアップ開始条件を設定できる。したがって、NAS装置20は、必要とされるバックアップをおこないながらもバックアップファイルの容量や管理工数が過大になることを抑制できる。
【0099】
[タイミングT14]NAS装置20は、タイミングT12のファイル更新と同様にして、SSD213のファイルA2をファイルA3に更新する。NAS装置20は、項目「現在の更新回数」の値をインクリメントして、ファイルAの管理テーブルを更新する。これにより、項目「現在の更新回数」は、更新回数「3」となる。更新回数「3」は、更新回数設定値「1」より大きいため、更新回数の条件が成立する。滞留時間の条件は成立し、項目「バックアップ取得条件」は、バックアップ取得条件「2」であるから、バックアップ開始条件を満たす。したがって、HDD212は、定期バックアップファイルA0−b1、不定期バックアップファイルA2−zに加えて、ファイルA3をバックアップした不定期バックアップファイルA3−zを保持する。NAS装置20は、項目「現在の保持世代数」の値をインクリメントして、ファイルAの管理テーブルを更新する。
【0100】
[タイミングT15]NAS装置20は、タイミングT12のファイル更新と同様にして、SSD213のファイルA3をファイルA4に更新する。NAS装置20は、項目「現在の更新回数」の値をインクリメントして、ファイルAの管理テーブルを更新する。これにより、項目「現在の更新回数」は、更新回数「4」となる。更新回数「4」は、更新回数設定値「1」より大きいため、更新回数の条件が成立する。滞留時間の条件は成立し、項目「バックアップ取得条件」は、バックアップ取得条件「2」であるから、バックアップ開始条件を満たす。したがって、HDD212は、定期バックアップファイルA0−b1、不定期バックアップファイルA3−zに加えて、ファイルA4をバックアップした不定期バックアップファイルA4−zを保持する。NAS装置20は、項目「現在の保持世代数」の値をインクリメントして、ファイルAの管理テーブルを更新する。
【0101】
なお、NAS装置20は、ファイルAの項目「必要保持世代数」が必要保持世代数「2」であるから、不定期バックアップファイルA2−zを削除する。
このように、NAS装置20は、ファイルの使用状態や、ユーザやアプリケーションのニーズに応じてファイルAのバックアップの必要保持世代数を設定できる。したがって、NAS装置20は、必要とされるバックアップをおこないながらもバックアップファイルの容量や管理工数が過大になることを抑制できる。
【0102】
[タイミングT16]NAS装置20は、タイミングT11と同様にして、ライトキャッシュの定期バックアップを作成する。なお、NAS装置20は、定期バックアップを追加生成するが、過去のバックアップを更新して生成するものであってもよい。
【0103】
これにより、HDD212は、定期バックアップファイルA0−b1に加えて、ファイルA4をバックアップした定期バックアップファイルA4−b1を保持する。なお、NAS装置20は、ファイルA4の定期バックアップにより不定期バックアップファイルA3−z,A4−zを削除する。
【0104】
このように、NAS装置20は、定期バックアップタイミングで不定期バックアップファイルを削除するので、必要とされるバックアップをおこないながらもバックアップファイルの容量や管理工数が過大になることを抑制できる。なお、次回の定期バックアップタイミングでの不定期バックアップファイルの削除は、不定期バックファイルの削除条件の一例であって、次々回の定期バックアップタイミングや、対象ファイルのライトキャッシュからの追い出しタイミングなどであってもよい。
【0105】
また、NAS装置20は、ライトキャッシュにあるデータのうち更新頻度の高いファイルを選択して不定期のバックアップを生成することができる。これにより、更新のないファイルを含めてデータをバックアップする無駄を抑制できる。
【0106】
また、NAS装置20は、定期バックアップの間隔を狭くすることなく、短い間隔で更新されるデータをバックアップすることができる。したがって、NAS装置20は、必要とされるバックアップをおこないながらもバックアップファイルの容量や管理工数が過大になることを抑制できる。
【0107】
なお、第2の実施形態のNAS装置20は、バックアップ開始条件成立後のファイル更新時にバックアップファイルを毎回生成するようにしたが、所定条件が成立したファイル更新ごとにバックアップファイルを生成するようにしてもよい。たとえば、NAS装置20は、所定回数(たとえば、10回)のファイル更新ごとにバックアップファイルを生成するようにしてもよいし、所定のユーザによるファイル更新ごとにバックアップファイルを生成するようにしてもよい。
【0108】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、NAS装置20、第1の実施形態に示したストレージ装置1が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0109】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0110】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0111】
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。