JP4548717B2 - 記憶装置の計算機および記憶装置の管理方法 - Google Patents

記憶装置の計算機および記憶装置の管理方法 Download PDF

Info

Publication number
JP4548717B2
JP4548717B2 JP2004277048A JP2004277048A JP4548717B2 JP 4548717 B2 JP4548717 B2 JP 4548717B2 JP 2004277048 A JP2004277048 A JP 2004277048A JP 2004277048 A JP2004277048 A JP 2004277048A JP 4548717 B2 JP4548717 B2 JP 4548717B2
Authority
JP
Japan
Prior art keywords
file
data
range
computer
worm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004277048A
Other languages
English (en)
Other versions
JP2006092276A (ja
Inventor
純一 原
洋司 中谷
隆裕 中野
陽介 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004277048A priority Critical patent/JP4548717B2/ja
Priority to US10/986,379 priority patent/US20060085487A1/en
Publication of JP2006092276A publication Critical patent/JP2006092276A/ja
Application granted granted Critical
Publication of JP4548717B2 publication Critical patent/JP4548717B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/181Append-only file systems, e.g. using logs or journals to store data providing write once read many [WORM] semantics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数のディスク装置を備えるディスクアレイ装置、およびディスクアレイ装置の制御方法に関する。
近年、ストレージアレイ装置に格納されているデータについて、長期間にわたってデータの内容の維持を保証することが要求されている。例えば、ファイル単位にて、ファイルをWORM(Write-Once, Read-Many)化を実現する技術が知られている(例えば、非特許文献1参照)。
"WORM Storage on Magnetic Disks Using Snaplock Compliance and SnapLock Enterprise", Network Appliance社 Technical Report [TR3263] 9/2003, http://www.netapp.com/tech_library/3263.html
しかしながら、従来のWORM化技術では、新規作成ファイルや追記中のファイルについては、全データの書き込みが完了し、ファイルの内容が確定してからでなければWORM化することができなかった。したがって、ファイルの内容が確定していない、例えば、書き込み途中のファイルについては、データを保証することができないという問題があった。すなわち、ログファイルのように、1つのファイルについて継続して追記が実行されるファイルでは、WORM化によってデータを保護することができないという問題があった。
また、ファイルをWORM化するか否かをボリューム単位にて管理しなければならず、使い勝手が悪いという問題があった。さらに、従来のWORM化技術では、ファイル全体をWORM化するかしないか決定しなければならず、ファイルの一部のデータについてWORM化することができないという問題があった。
本発明は上記課題を解決するためになされたものであり、ファイルのデータを保護すると共にファイルに対する追記を許容すること、ファイルの特定範囲についてデータの保護を可能にすることを目的とする。
上記課題を解決するために本発明の第1の態様は、記憶装置に格納されているファイルに対するアクセスを管理する計算機を提供する。本発明の第1の態様に係る計算機は、前記記憶装置に格納されている前記ファイルに対するデータの書き込み要求があった場合には、前記ファイルに関連づけられている情報であって、ファイルにおける変更が許容されない範囲を示す変更非許容範囲についての情報を少なくとも含む属性情報を取得する属性情報取得部と、取得された前記属性情報を参照して、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲以外の範囲であるか否かを判定する判定手段と、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれると判定された場合には、前記ファイルに対するデータの書き込みを実行しないアクセス制御手段とを備えることを特徴とする。
本発明の第1の態様に係る計算機によれば、ファイルに対するデータの書き込みの対象範囲が変更非許容範囲以外の範囲であるか否かを判定し、ファイルに対するデータの書き込みの対象範囲が変更非許容範囲に含まれると判定された場合には、ファイルに対するデータの書き込みを実行しないので、ファイルの特定範囲についてデータの保護を可能にすることができる。
本発明の第1の態様に係る計算機はさらに、前記ファイルに対するデータの書き込みの要求が追記の要求であるか否かを判定する追記判定手段を備え、前記属性情報にはさらに、前記ファイルに対するデータの追記を許容するか否かを示す追記許容情報が含まれており、前記アクセス制御手段は、前記ファイルに対するデータの書き込みの要求が追記の要求であると共に、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれないと判定され、さらに前記ファイルの前記追記許容情報が前記ファイルに対する追記の許容を示す場合には、前記ファイルに対するデータの追記を実行しても良い。
この構成を備えることにより、ファイルのデータを保護すると共にファイルに対する追記を許容することができる。
本発明の第2の態様は、記憶装置に対するアクセスを管理する計算機を提供する。本発明の第2の態様に係る計算機は、前記記憶装置にファイルを作成するファイル作成手段と、前記作成されたファイルに対してデータを書き込むデータ書き込み手段と、前記ファイルに対するデータの書き込み毎に、前記ファイルにおける前記書き込まれたデータの格納位置についてデータの変更を許可しない変更不許可を設定する設定手段とを備えることを特徴とする。
本発明の第2の態様に係る計算機によれば、ファイルのデータを保護すると共にファイルに対する追記を許容すること、ファイルの特定範囲についてデータの保護を可能にすることができる。
本発明の第3の態様は、記憶装置に対するアクセスを管理する計算機を提供する。本発明の第3の態様に係る計算機は、1または複数のデータから構成されると共に、前記記憶装置における前記1または複数のデータの格納位置の情報および前記記憶装置における識別情報とを有するファイルを前記記憶装置に作成するファイル作成手段と、前記ファイルに関連づけられている情報であって、ファイルにおいて変更が許容されない前記データの格納位置を示す変更非許容情報を少なくとも含む属性情報を格納する記憶部と、前記記憶装置に対するアクセス要求命令を受信する受信手段と、前記受信されたアクセス要求命令が前記記憶装置に対するデータの書き込み要求であるか否かを判定する命令判定手段と、前記受信されたアクセス要求命令が前記記憶装置に対するデータの書き込み要求である場合には、前記識別情報を用いてデータの書き込み対象となるファイルを特定し、前記記憶部から前記属性情報を取得して前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複するか否かを判定する格納位置判定手段と、前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複すると判定された場合には、前記ファイルに対するデータの書き込みを実行しないアクセス制御手段とを備えることを特徴とする。
本発明の第3の態様に係る計算機によれば、ファイルの特定範囲についてデータの保護を可能にすることができる。
本発明の第1〜第3の態様に係る計算機は、この他に記憶装置の管理方法、記憶装置の管理制御プログラム、および記憶装置の管理制御プログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
以下、本発明に係る計算機および記憶装置の管理方法について図面を参照しつつ、いくつかの実施例に基づいて説明する。
・第1の実施例:
システムの構成:
図1〜図2を参照して第1の実施例に係る計算機について説明する。図1は第1の実施例に係る計算機を含む記憶システムの概略構成を示す説明図である。図2は第1の実施例に係る計算機が備えるメモリに格納されるモジュールを示す説明図である。
第1の実施例における計算機10は、いわゆるNAS(Network Attached Storage)ヘッドとして機能する記憶装置を内蔵しないサーバコンピュータであり、外部の記憶装置20およびネットワーク40と接続されている。ネットワーク40は、イーサネット(登録商標)によって構築されているローカルエリアネットワーク(LAN)であり、通信プロトコルとしてTCP/IPプロトコルを用いてデータの伝送が実行される。ネットワーク40には、クライアントコンピュータ30、31、32が接続されており、クライアントコンピュータ30〜32は、計算機10を介して記憶装置20に対してアクセスして、記憶装置20に格納されている情報資源を活用する。なお、ネットワーク40はルータ41を介して、インターネット41に接続されていても良く、この場合、計算機10は、インターネット42を介してクライアントコンピュータ30〜31からのアクセスを受け付ける。
計算機10は、CPU11、メモリ12、リアエンドI/Oインターフェース13、フロントエンドI/Oインターフェース14を備えている。CPU11、メモリ12、リアエンドI/Oインターフェース13、フロントエンドI/Oインターフェース14は相互にバスを介して接続されている。CPU11は、メモリ12に格納されている各種プログラム、モジュールを実行する演算処理装置である。メモリ12は、いわゆる内部記憶装置であり、各種モジュール等を記憶する不揮発性メモリおよび演算処理結果を一時的に格納する揮発性メモリの双方を含む。リアエンドI/Oインターフェース13は、例えば、ストレージアリアネットワーク(SAN)を介して記憶装置20と接続されている。SANではファイバチャネル、iSCSIといった通信プロトコルが用いられる。フロントエンドI/Oインターフェース14は、ネットワーク40に接続されており、TCP/IPプロトコルによってクライアントコンピュータ30〜32との間でコマンド、データの授受を実行する。
記憶装置20は、ディスアレイコントローラ21、接続インターフェース22、複数のディスク装置23、I/Oインターフェース24を備えている。ディスクアレイコントローラ21は、制御プログラムを実行することによって、記憶装置20における各種制御処理を実行する制御回路である。ディスクアレイコントローラ21、接続インターフェース22を介して複数のディスク装置23と接続されている。
ディスク装置23は、複数の磁気ハードディスクドライブによって構成されるディスクアレイ装置であり、複数のハードディスクドライブによって1または複数の論理ボリュームを提供し、あるいは、1つのハードディスクドライブによって1または複数の論理ボリュームを提供する。I/Oインターフェース24は、計算機10のリアI/Oインターフェース13と信号線を介して接続されている。
クライアントコンピュータ30〜32は、例えば、各種データを入力または出力するための端末装置であり、記憶装置20に対するデータの書き込み、記憶装置20からのデータの読み出しを実行する。なお、クライアントコンピュータ30〜32は、1つであってもよく、あるいは、4つ以上備えられてもよい。
図2を参照して、メモリ12に格納されている各種プログラム、モジュールについて説明する。メモリ12には、コマンド処理プログラムPr1、I/O処理プログラムPr2、WORM制御プログラムPr3、オブジェクト管理テーブルTb1、WORM範囲管理テーブルTb2が格納されている。なお、各種プログラムおよびモジュールは、所定のオペレーティングシステム上において作動する。
コマンド処理プログラムPr1は、クライアントコンピュータ30〜32から受信したコマンドの解釈、コマンド実行モジュールに対するコマンドの転送を実行するプログラムであり、例えば、実行すべきコマンドがデータの上書きコマンドであるか、追記コマンドであるか、読み出しコマンドであるかを判定する。
I/O処理プログラムPr2は、クライアントコンピュータ30〜32、記憶装置20との間におけるデータおよびコマンドの送受信を制御するためのプログラムである。
WORM制御プログラムPr3は、本実施例において主要な各種制御を実行するためのプログラムであり、ファイルの一部または全部について、1度書き込みを行った後は読み出しのみを許容するWORM処理を実行するための各種処理を実行する。WORM制御プログラムPr3は、属性情報取得モジュールMd1、判定モジュールMd2、アクセス制御モジュールMd3、変更非許容範囲設定モジュールMd4、属性情報変更モジュールMd5、追記判定モジュールMd6、属性情報付与モジュールMd7、ファイル作成モジュールMd8、格納位置判定モジュールMd9を備えている。
属性情報取得モジュールMd1は、アクセスの対象となっているファイルに関連付けられている、ファイルの種々の属性、例えば、変更が許容されない範囲を示す変更非許容範囲についての情報を含むオブジェクト管理テーブルTb1を介して、WORM範囲管理テーブルTb2を取得するためのモジュールである。判定モジュールMd2は、ファイルに対するデータの書き込み先がWORM範囲管理テーブルTb2に記述されているWORM範囲外であるか否かを判定するためのモジュールである。アクセス制御モジュールMd3は、ファイルに対するデータの書き込み先がWORM範囲に含まれる場合にはファイル(記憶装置20)に対するデータの書き込みを実行せず、ファイルに対するデータの書き込み先がWORM範囲に含まれない場合にはファイル(記憶装置20)に対するデータの書き込みを実行するモジュールである。アクセス制御モジュールMd3はまた、ファイルに対する書き込み要求が追記の要求の場合には、オブジェクト管理テーブルTb1においてファイルに対する追記が許可されている場合にはファイルに対するデータの追記を実行し、追記が許可されていない場合には、ファイルに対するデータの追記を実行しない。
変更非許容範囲設定モジュールMd4は、ファイルにおけるWORM範囲(変更非許容範囲)を設定するためのモジュールである。属性情報変更モジュールMd5は、変更非許容範囲設定モジュールMd4により設定されたWORM範囲をWORM範囲管理テーブルTb2に反映させたり、変更非許容範囲設定モジュールMd4により設定されたWORM属性をオブジェクト管理テーブルTb1に反映させるためのモジュールである。追記判定モジュールMd6は、ファイルに対する書き込み要求が追記の要求であるか否かを判定するモジュールである。属性情報付与モジュールMd7は、WORM設定されているディレクトリにおいて新規のファイルが生成された場合には、新規のファイルに対して所定のWORM属性を付与するモジュールである。ファイル作成モジュールMd8は、所定のディレクトリに、新規のファイル(オブジェクト管理テーブルTb1f)を作成(オープン)するためのモジュールである。格納位置判定モジュールMd9は、ファイルに対するデータの書き込み位置がWORM範囲管理テーブルTb2に記述されているWORM範囲の格納範囲外であるか否かを判定するためのモジュールである。
オブジェクト管理テーブルTb1は、ファイルを構成するデータ(データブロック)を指し示すポインタ、あるいは、サブディレクトリを指し示すポインタを備えるテーブルとして機能する。オブジェクト管理テーブルTb1およびWORM範囲管理テーブルTb2について図3〜図7を参照して説明する。図3はファイル用のオブジェクト管理テーブルTb1fの一例を示す説明図である。図4はWORM属性の組合せと可能なファイル操作との対応関係を示す説明図である。図5はWORM範囲管理テーブルTb2の一例を示す説明図である。図6はディレクトリ用のオブジェクト管理テーブルTb1dの一例を示す説明図である。図7はWORM属性の組合せと可能なディレクトリ操作との対応関係を示す説明図である。
図3に示すファイル用のオブジェクト管理テーブルTb1fは、ファイルを一意に識別するための識別番号、オブジェクト管理テーブルが管理する種類、ファイルのサイズ、権限情報、所有者情報、作成および更新日時といった一般的なファイルの属性、WORMの対象がファイルの全部(1)、一部(2)、なし(0)のいずれであるかを示すWORM対象範囲、設定されたWORMの有効期限を示すWORM有効期限、WORM化されたファイルに対する追記が許可(1)、不許可(0)のいずれであるかを示すWORM追記許可、追記されたデータのWORM化を行う(1)、行わない(0)のいずれであるかを示す更新後WORM属性といったWORMに関する属性を有している。
WORM属性の組み合わせと可能なファイル操作の関係について図4を参照して説明する。WORM対象範囲が(0)に設定される場合には、ファイルにはWORMの対象となる対象範囲がないことを意味し、通常のファイルと同様にしてファイル全体への上書・追記・削除が可能となる。WORM対象範囲が(1)に設定される場合には、ファイルの全部がWORMの対象となっていることを意味し、WORM有効期限には無期限を示す(−1)または具体的な年月日が記述される。この場合には、従来のWORM化ファイルと同様にしてファイル全体への上書・追記・削除ができない。
WORM対象範囲が(2)に設定される場合には、ファイルの一部がWORMの対象となっていることを意味し、WORM有効期限は各範囲毎にWORM範囲管理テーブルTb2によって規定されるためNULLとされる。WORM範囲管理テーブルTb2は、各ファイルに対応するWORM範囲管理テーブルTb2へのポインタによって特定される。WORM追記許可の値が(0)の場合には、追記が許可されないためファイルの一部(WORM化されている部分)への上書・追記・削除ができない。一方、WORM追記許可の値が(1)の場合には、追記が許可されるためファイルの一部(WORM化されている部分)への上書・削除はできないものの、追記は許される。さらに、この場合、更新後WORM属性の値が(0)の場合には、追記部分はWORM化されず、更新後WORM属性の値が(1)の場合には、追記部分はWORM化される。
ファイル用のオブジェクト管理テーブルTb1fはさらに、ファイルのWORM範囲を示すWORM範囲管理テーブルTb2へのポインタ、ファイルに属するデータブロックへのポインタをそれぞれ備えている。これら各ポインタは、例えば、論理ブロックアドレス(LBA)の基準値、例えば、0値からのオフセット値として記述されている。すなわち、論理ブロックアドレスとオフセット値によって、論理ボリュームにおける、各データブロックまたはWORM範囲管理テーブルTb2の論理的な格納位置(アドレス)が特定される。特定された論理アドレスは記憶装置20におけるディスクアレイコントローラ21によって物理アドレスに変換され、所定のディスク装置23の物理的なアドレス(格納位置)が特定される。なお、1のファイルを構成するデータブロックが複数の場合には、直接複数のデータブロックをポイントするための複数のオフセット値が格納されていてもよく、あるいは、間接的に複数のデータブロックをポイントするために多段のポインタ群をポイントするためのオフセット値が格納されていても良い。
図5に示すWORM範囲管理テーブルTb2は、ファイルを構成するデータのうち、WORM化する範囲を開始オフセットと終了オフセットで特定する。開始オフセットと終了オフセットで特定される各範囲には、有効期限が設定されている。有効期限が切れた後であっても、直ちには上書・削除は有効とならず、WORM属性解除処理を実行して初めて、制限なく上書・削除が可能となる。
図6に示すディレクトリ用のオブジェクト管理テーブルTb1dは、ファイル用のオブジェクト管理テーブルTb1fと同様の構成を備えており、ディレクトリを一意に識別するための識別番号、オブジェクト管理テーブルが管理する種類、ディレクトリのサイズ、権限情報、所有者情報、作成および更新日時といった一般的なディレクトリの属性、WORMの対象がディレクトリの全部(1)、一部(2)、なし(0)のいずれであるかを示すWORM対象範囲、設定されたWORMの有効期限を示すWORM有効期限、WORM化されたディレクトリに含まれるファイルに対する追記が許可(1)、不許可(0)のいずれであるかを示すWORM追記許可、ディレクトリに含まれるファイルに追記されたデータのWORM化を行う(1)、行わない(0)のいずれであるかを示す更新後WORM属性といったWORMに関する属性を有している。
WORM属性の組み合わせと可能なディレクトリ操作との関係について図7を参照して説明する。WORM対象範囲が(0)に設定される場合には、ディレクトリにはWORMの対象でないことを意味し、通常のディレクトリと同様にしてディレクトリ内部への新規ファイル・ディレクトリの作成・削除が可能となる。WORM対象範囲が(1)に設定される場合には、ディレクトリの全部がWORMの対象となっていることを意味し、WORM有効期限には無期限を示す(−1)または具体的な年月日が記述される。この場合には、ディレクトリ内部への新規ファイル・ディレクトリの作成・削除ができない。
WORM対象範囲が(2)に設定される場合には、ディレクトリの一部がWORMの対象となっていることを意味し、WORM有効期限には無期限を示す(−1)または具体的な年月日が記述される。対象がディレクトリの場合には、ファイルにおけるWORM範囲を示すWORM範囲管理テーブルTb2へのポインタは無効(NULL)とされる。WORM追記許可の値は(1:許可)に設定され、ディレクトリ内部への新規ファイル・ディレクトリの作成はできるが削除はできない。更新後WORM属性の値が(0)の場合には、ディレクトリ内部に新規に作成されたファイルには通常ファイルの属性が与えられる。一方、更新後WORM属性の値が(1)の場合には、ディレクトリ内部に新規に作成されたファイルにはWORMの属性が与えられる。
ディレクトリ用のオブジェクト管理テーブルTb1dはさらに、ディレクトリに含まれるサブディレクトリまたはファイルを特定するポインタをそれぞれ備えている。これら各ポインタは、例えば、論理ブロックアドレス(LBA)の基準値、例えば、0値からのオフセット値として記述されている。すなわち、論理ブロックアドレスとオフセット値によって、論理ボリュームにおける、ディレクトリまたはファイルの論理的な格納位置(アドレス)が特定される。
図8を参照して、ファイルシステムの論理構造について説明する。図8はファイルシステムの論理構造の一例を示す説明図である。図8に示すように、識別番号2のディレクトリ内にあるファイルhogeに対するアクセスが実行される際には、クライアントコンピュータ30〜32から、ファイルhogeを特定するための識別番号、ファイルhogeを格納するディレクトリを特定するためのファイル名およびモード(read-only、read-write等)がファイルシステムを備える計算機10に送られてくる。計算機10のオペレーティングシステム(OS)は、該当ファイルのopenに成功すると、該当ファイルの識別番号を返す。なお、新規ファイルの場合には対応するオブジェクト管理テーブルが作成される。
計算機10は、ルートディレクトリ(そのディレクトリに含まれるファイル、ディレクトリの名前、オブジェクト管理テーブルTb1を示すポインタのリストを格納するデータブロック)を通じて、指定されたディレクトリの識別番号に基づき該当する識別番号、図8の例では識別番号2、のオブジェクト管理テーブルをポイント(取得)する。続いて、識別番号2のディレクトリのオブジェクト管理テーブルによって、対応するディレクトリデータブロックがポイントされる。ポイントされたディレクトリデータブロックにはファイルhogeのオブジェクト管理テーブル(識別番号26)に対するポインタが用意されており、かかるポインタによって識別番号26のオブジェクト管理テーブルがポイントされる。識別番号26のオブジェクト管理テーブルには既述のようにファイルを構成する実データを格納するデータブロックに対するポインタが記述されているので、かかるポインタによってファイルhogeが特定される。
一方、識別番号2のディレクトリ内にある識別番号17のサブディレクトリ内に格納されているファイルgccに対するアクセスが実行される際には、識別番号2のディレクトリのオブジェクト管理テーブルによって、ディレクトリデータブロックがポイントされ、リストデータによって識別番号32のサブディレクトリのオブジェクト管理テーブルがポイントされる。識別番号32のサブディレクトリのオブジェクト管理テーブルによって、識別番号17のサブディレクトリのオブジェクト管理テーブルがポイントされ、識別番号17のサブディレクトリのオブジェクト管理テーブルによって、ファイルgccのオブジェクト管理テーブル(識別番号42)がポイントされる。識別番号42のオブジェクト管理テーブルに記述されているファイルgccを構成する実データを格納するデータブロックに対するポインタによってファイルgccが特定される。
特定したファイルに対するデータの書き込み処理において、既存ファイルの一部に書き込み対象範囲が存在する場合や、新規ファイルの先頭や中間部分を空の状態にして穴あきファイルを作成する場合には、識別番号とオフセットを指定してseek操作が行われてから、実データの書き込み処理が実行される。この場合、新規ファイルに対して、先頭アドレスから1KBの実データを書き込む際には、オブジェクト管理テーブルTb1上のファイルサイズは1KBであるが、たとえば、2TBまでseekした後に実データを書き込む場合には、ファイルサイズは2TB+1KBとなる。
図9を参照して第1の実施例におけるデータの書き込み処理について説明する。図9は第1の実施例に係る計算機10によって実行されるデータの書き込み処理の処理ルーチンを示すフローチャートである。
本処理は、クライアントコンピュータ30〜32におけるキーボード、マウス等の入力機器を介して、ユーザからデータの書き込み要求(コマンド)が計算機10に入力され、CPU11によってコマンド処理プログラムPr1、WORM制御プログラムPr3が実行されることによって開始される。クライアントコンピュータ30〜32から要求(コマンド)を受け取ると、CPU11はコマンドの種別を判断し、書き込みコマンドであると判断した場合には、以下の書き込み処理を実行する。
CPU11は、書き込みが要求されているデータ、クライアントコンピュータ30〜32から入力されたファイル名に対応する、データを書き込むべきファイルのオブジェクト管理テーブルTb1fを取得する(ステップS100)。CPU11は取得したオブジェクト管理テーブルTb1fを参照してWORM判定値を判定する(ステップS101)。CPU11は、オブジェクト管理テーブルTb1fにおけるWORM判定値が全部(1)の場合には(ステップS101:全部)、ファイル全体へのデータの上書・追記が許容されないので、書き込み権限エラーをクライアントコンピュータ30〜32に返して(ステップS102)、本処理ルーチンを終了する。
CPU11は、オブジェクト管理テーブルTb1fにおけるWORM判定値が一部(2)の場合には(ステップS101:一部)、書き込み要求がファイルに対する追記の要求であるか否かを判定する(ステップS103)。すなわち、書き込み要求が、ファイルを構成する既存データの書き換え(上書き)であるのか、ファイルを構成する既存データに対する追記であるのかを判定する。具体的には、書き込みが要求されている開始オフセット値(論理アドレス)が、ファイルにおける既存データの最終オフセット値(論理アドレス)よりも大きいか否かによって判定される。
CPU11は、書き込み要求がファイルに対する上書きの要求である、すなわち、開始オフセット値がファイルサイズ以下であると判定した場合には(ステップS103:No)、データの書き込み対象範囲がWORM範囲に含まれているか否かを判定する(ステップS104)。具体的には、CPU11は対象となるファイルのオブジェクト管理テーブルTb1fによってポイントされるWORM範囲管理テーブルTb2を参照し、データの書き込み対象範囲が、WORM範囲と重複するか否かを判定する。ここで、書き込み対象範囲は、開始オフセット値およびデータサイズによって定まる書き込み終了オフセット値によって規定され、WORM範囲は、WORM管理テーブルTb2中の開始オフセット値〜終了オフセット値によって規定される。
CPU11は、書き込み対象範囲がWORM範囲に含まれないと判定した場合には(ステップS104:No)、データの書き込みを行う(ステップS105)。具体的には、CPU11は記憶装置20のディスクアレイコントローラ21に対して、ディスク装置23に対するデータの書き込みを指示すると共に、オブジェクト管理テーブルTb1fにおけるポインタを更新する。CPU11から書き込み指示を受けたディスクアレイコントローラ21は、指示された論理的な書き込み対象範囲(アドレス)を物理的な書き込み対象範囲(アドレス)に変換してディスク装置23に対するデータ(データブロック)の書き込みを実行すると共に、その対応関係をアドレス変換テーブルに記録する。
CPU11は、書き込み対象範囲がWORM範囲に含まれると判定した場合には(ステップS104:Yes)、WORM範囲に対するデータの上書きは許容されていないので、書き込み権限エラーをクライアントコンピュータ30〜32に返して(ステップS102)、本処理ルーチンを終了する。書き込み対象範囲がWORM範囲に含まれる態様として、書き込みがファイル全体への上書きである場合、書き込みがファイルの一部への上書きであるが、対象となる書き込み範囲はWORM設定されている場合の2つの態様がある。
CPU11は、ステップS103にて、書き込み要求が追記の要求であると判定した場合には(ステップS103:Yes)、オブジェクト管理テーブルTb1fを参照してWORM追記許可値を判定する(ステップS106)。CPU11は、オブジェクト管理テーブルTb1fにおけるWORM追記許可値が不許可(0)であると判定した場合には(ステップS106:No)、対象ファイルに対する追記が許容されていないので、書き込み権限エラーをクライアントコンピュータ30〜32に返して(ステップS102)、本処理ルーチンを終了する。
CPU11は、オブジェクト管理テーブルTb1fにおけるWORM追記許可値が許可(1)であると判定した場合には(ステップS106:Yes)、ステップS105に移行して、ファイルに対する追記データの書き込みを実行する。具体的には、CPU11は記憶装置20のディスクアレイコントローラ21に対して、ディスク装置23に対するデータの書き込みを指示すると共に、追記したデータ(データブロック)に対するポインタをオブジェクト管理テーブルTb1fに追記する。
データの書き込みを終えると、CPU11は、対象ファイルのオブジェクト管理テーブルTb1fを参照して、更新後WORM値を判定する(ステップS107)。CPU11はオブジェクト管理テーブルTb1fにおける更新後WORM値がWORM(1)の場合には(ステップS107:WORM)、ファイルの一部またはファイルに追記されたデータについてWORMの設定を行うためにWORM範囲管理テーブルTb2の更新を行って(ステップS108)、本処理ルーチンを終了する。
WORM範囲管理テーブルTb2の更新は、ファイルの一部またはファイルに追記されたデータの開始オフセット値と終了オフセット値とをWORM範囲管理テーブルTb2に追記し、追記されたWORM範囲に対する有効期限として、ファイル作成時における有効期限が記述される。なお、後述するように、有効期限を延長することは可能である。
CPU11はオブジェクト管理テーブルTb1fにおける更新後WORM値が通常(0)の場合には(ステップS107:通常)、ファイルの一部またはファイルに追記されたデータをWORM化することなく、すなわち通常データとして、本処理ルーチンを終了する。
図10を参照して第1の実施例における新規ファイルオープン処理について説明する。図10は第1の実施例に係る計算機10によって実行される新規ファイルオープン処理の処理ルーチンを示すフローチャートである。
本処理は、クライアントコンピュータ30〜32におけるキーボード、マウス等の入力機器を介して、ユーザから新規ファイルの作成(オープン)要求が計算機10に入力され、CPU11によってコマンド処理プログラムPr1、WORM制御プログラムPr3が実行されることによって開始される。クライアントコンピュータ30〜32から要求(コマンド)を受け取ると、CPU11はコマンドの種別を判断し、ファイルオープンコマンドであると判断した場合には、以下のファイルオープン処理を実行する。
CPU11は、ファイル名、有効期限の入力を受け(ステップS200)、ファイルが関連する上位ディレクトリ、すなわち、ファイルが作成されるディレクトリ、あるいは、ファイル作成ディレクトリがサブディレクトリの場合には上位のディレクトリ、のオブジェクト管理テーブルTb1dを参照してWORM判定値を判定する(ステップS201)。ここで、ファイル名については必須の入力項目であるが、有効期限についてはWORM設定をしないファイルについては必ずしも必須の入力項目ではない。
CPU11は、上位ディレクトリのオブジェクト管理テーブルTb1dにおけるWORM判定値が全部(1)の場合には(ステップS201:全部)、上位ディレクトリ内への新規ファイルの作成は許されないので、クライアントコンピュータ30〜32に返す新規ファイルオープンエラーのステータスを発行して(ステップS202)、本処理ルーチンを終了する。
CPU11は、上位ディレクトリのオブジェクト管理テーブルTb1dにおけるWORM判定値が一部(2)の場合には(ステップS201:一部)、上位ディレクトリのオブジェクト管理テーブルTb1dにおける更新後WORM値を判定する(ステップS203)。CPU11は上位ディレクトリのオブジェクト管理テーブルTb1dにおける更新後WORM値がWORM(1)の場合には(ステップS203:WORM)、新規作成ファイルはWORMファイルとして作成されるので、新規ファイル用のオブジェクト管理テーブルTb1fをオープンして(ステップS204)、本処理ルーチンを終了する。
新規ファイル用のオブジェクト管理テーブルTb1fの初期値は、WORM対象範囲:一部(2)、WORM追記許可:許可(1)、更新後WORM属性:WORM(1)に設定される。また、有効期限には、有効期限の入力があった場合には入力された有効期限が設定され、有効期限の入力がなかった場合には上位ディレクトリに規定されている有効期限が承継される。
CPU11は、上位ディレクトリのオブジェクト管理テーブルTb1dにおける更新後WORM値が通常(0)の場合には(ステップS203:通常)、新規作成ファイルは通常ファイルとして作成されるので、新規作成ファイルを通常ファイルとしてオープンし(ステップS205)、本処理ルーチンを終了する。
CPU11は、上位ディレクトリのオブジェクト管理テーブルTb1dにおけるWORM判定値がなし(0)の場合には(ステップS201:なし)、新規作成ファイルは通常ファイルとして作成されるので、新規作成ファイルを通常ファイルとしてオープンし(ステップS205)、本処理ルーチンを終了する。
図11を参照して第1の実施例におけるWORM属性設定処理について説明する。図11は第1の実施例に係る計算機10によって実行されるWORM属性設定処理の処理ルーチンを示すフローチャートである。
本処理は、例えば、クライアントコンピュータ30〜32におけるキーボード、マウス等の入力機器を介して、ユーザから既存ファイルに対するWORM化の要求が計算機10に入力され、CPU11によってコマンド処理プログラムPr1、WORM制御プログラムPr3が実行されることによって開始される。クライアントコンピュータ30〜32から要求(コマンド)を受け取ると、CPU11はコマンドの種別を判断し、WORM属性設定コマンドであると判断した場合には、以下のWORM属性設定処理を実行する。
CPU11は、クライアントコンピュータ30〜32から、設定の対象となるファイル名、ファイルの対象範囲(開始・終了オフセット)、有効期限を取得し(ステップS300)、WORMの設定範囲がファイルに対して適切であるか否かを判定する(ステップS301)。具体的には、入力されたファイルの対象範囲(オフセット範囲)が対象ファイルのサイズ(オフセット範囲)以下であるか否かが判定される。なお、有効期限の入力は任意である。
CPU11は、WORMの設定範囲がファイルに対して適切でない、すなわち、入力されたオフセット範囲が対象ファイルサイズよりも大きいと判定した場合には(ステップS301:No)、以降の処理を実行することができないので、クライアントコンピュータ30〜32に対してWORM属性設定エラーを返して(ステップS302)、本処理ルーチンを終了する。
CPU11は、WORMの設定範囲がファイルに対して適切である、すなわち、入力されたオフセット範囲が対象ファイルサイズ以下であると判定した場合には(ステップS301:Yes)、対象ファイルのオブジェクト管理テーブルTb1fを参照してWORM対象範囲値を判定する(ステップS303)。CPU11は、WORM対象範囲値が一部(2)であると判定した場合は(ステップS303:一部)、WORM範囲管理テーブルTb2を更新して本処理ルーチンを終了する。具体的には、入力されたオフセット範囲をWORM範囲管理テーブルTb2に記述し、有効期限が入力されている場合には入力された有効期限を、有効期限が入力されていない場合には無限(−1)を有効期限として記述する。
CPU11は、WORM対象範囲値が全部(1)またはなし(0)であると判定した場合は(ステップS303:全部/なし)、オブジェクト管理テーブルTb1fを更新して本処理ルーチンを終了する。具体的には、オブジェクト管理テーブルTb1fにおける、WORM対象範囲を一部(2)に、WORM追記許可を許可(1)に、更新後WORM属性をWORM(1)に変更する。また、入力されたオフセット範囲をWORM範囲管理テーブルTb2に記述し、有効期限が入力されている場合には入力された有効期限を、有効期限が入力されていない場合には無限(−1)を有効期限として記述する。
図12を参照して第1の実施例におけるWORM属性解除処理について説明する。図12は第1の実施例に係る計算機10によって実行されるWORM属性解除処理の処理ルーチンを示すフローチャートである。
本処理は、例えば、クライアントコンピュータ30〜32におけるキーボード、マウス等の入力機器を介して、ユーザから既存ファイルに対するWORM属性の解除の要求が計算機10に入力され、CPU11によってコマンド処理プログラムPr1、WORM制御プログラムPr3が実行されることによって開始される。クライアントコンピュータ30〜32から要求(コマンド)を受け取ると、CPU11はコマンドの種別を判断し、WORM属性解除コマンドであると判断した場合には、以下のWORM属性解除処理を実行する。
CPU11は、クライアントコンピュータ30〜32から、設定の対象となるファイル名、ファイルの対象範囲(開始・終了オフセット)、有効期限を取得し(ステップS400)、WORMの解除範囲がファイルに対して適切であるか否かを判定する(ステップS401)。具体的には、入力されたファイルの対象範囲(オフセット範囲)が対象ファイルのサイズ(オフセット範囲)以下であるか否かが判定される。なお、有効期限の入力は任意である。
CPU11は、WORMの解除範囲がファイルに対して適切でない、すなわち、入力されたオフセット範囲が対象ファイルサイズよりも大きいと判定した場合には(ステップS401:No)、以降の処理を実行することができないので、クライアントコンピュータ30〜32に対してWORM属性解除権限エラーを返して(ステップS402)、本処理ルーチンを終了する。
CPU11は、WORMの解除範囲がファイルに対して適切である、すなわち、入力されたオフセット範囲が対象ファイルサイズ以下であると判定した場合には(ステップS401:Yes)、対象ファイルのオブジェクト管理テーブルTb1fを参照してWORM対象範囲値を判定する(ステップS403)。
CPU11は、WORM対象範囲値がなし(0)であると判定した場合には(ステップS403:なし)、対象ファイルにはWORM属性が設定されていないので、本処理ルーチンを終了する。
ステップS403において、CPU11は、WORM対象範囲値が一部(2)であると判定した場合は(ステップS403:一部)、WORM範囲管理テーブルTb2を参照して入力されたオフセット範囲がWORM範囲に含まれるか否かを判定する(ステップS404)。CPU11は、入力されたオフセット範囲がWORM範囲に含まれていないと判定した場合には(ステップS404:No)、解除すべきWORM範囲が存在しないので、本処理ルーチンを終了する。
CPU11は、入力されたオフセット範囲がWORM範囲に含まれていると判定した場合には(ステップS404:Yes)、入力されたオフセット範囲に対応するWORM範囲の有効期限値を判定する。CPU11は、入力されたオフセット範囲に対応するWORM範囲の有効期限値が有効であると判定した場合には(ステップS405:有効)、クライアントコンピュータ30〜32に対してWORM属性解除権限エラーを返して(ステップS402)、本処理ルーチンを終了する。すなわち、本実施例においては、有効期限が有効である場合には、WORM属性を解除することができない。
CPU11は、入力されたオフセット範囲に対応するWORM範囲の有効期限値が無効であると判定した場合には(ステップS405:無効)、入力されたオフセット範囲をWORM範囲管理テーブルTb2から削除して(ステップS406)、本処理ルーチンを終了する。
ステップS403において、CPU11は、対象範囲値が全部(1)であると判定した場合には(ステップS403:全部)、オブジェクト管理テーブルTb1fのWORM有効期限値を判定する(ステップS407)。CPU11は、WORM有効期限値が有効であると判定した場合には(ステップS407:有効)、クライアントコンピュータ30〜32に対してWORM属性解除権限エラーを返して(ステップS402)、本処理ルーチンを終了する。すなわち、既述の通り、本実施例においては、有効期限が有効である場合には、WORM属性を解除することができない。
CPU11は、WORM有効期限値が無効であると判定した場合には(ステップS407:無効)、オブジェクト管理テーブルTb1fを更新して(ステップS408)、本処理ルーチンを終了する。具体的には、オブジェクト管理テーブルTb1fにおけるWORM対象範囲を一部(2)に、有効期限をNULLに変更し、入力されたオフセット範囲以外のファイル範囲をWORM範囲管理テーブルTb2に記述する。WORM範囲管理テーブルTb2における有効期限は、有効期限が入力されている場合には入力された有効期限に設定され、入力されていない場合にはオブジェクト管理テーブルTb1fに記述されていた有効期限を承継する。
図13を参照して第1の実施例におけるWORM有効期限設定処理について説明する。図13は第1の実施例に係る計算機10によって実行されるWORM有効期限設定処理の処理ルーチンを示すフローチャートである。
本処理は、クライアントコンピュータ30〜32におけるキーボード、マウス等の入力機器を介して、ユーザから既存のファイルに対してWORM有効期限設定の要求が計算機10に入力され、CPU11によってコマンド処理プログラムPr1、WORM制御プログラムPr3が実行されることによって開始される。クライアントコンピュータ30〜32から要求(コマンド)を受け取ると、CPU11はコマンドの種別を判断し、WORM有効期限設定コマンドであると判断した場合には、以下のWORM有効期限設定処理を実行する。
CPU11は、クライアントコンピュータ30〜32から、設定の対象となるファイル名、ファイルの対象範囲(開始・終了オフセット)、有効期限を取得し(ステップS500)、WORMの有効期限設定範囲がファイルに対して適切であるか否かを判定する(ステップS501)。具体的には、入力されたファイルの対象範囲(オフセット範囲)が対象ファイルのサイズ(オフセット範囲)以下であるか否かが判定される。
CPU11は、WORMの有効期限設定範囲がファイルに対して適切でない、すなわち、入力されたオフセット範囲が対象ファイルサイズよりも大きいと判定した場合には(ステップS501:No)、以降の処理を実行することができないので、クライアントコンピュータ30〜32に対してWORM有効期限設定エラーを返して(ステップS502)、本処理ルーチンを終了する。
CPU11は、WORMの有効期限設定範囲がファイルに対して適切である、すなわち、入力されたオフセット範囲が対象ファイルサイズ以下であると判定した場合には(ステップS501:Yes)、対象ファイルのオブジェクト管理テーブルTb1fを参照してWORM対象範囲値を判定する(ステップS503)。
CPU11は、WORM対象範囲値が全部(1)または、なし(0)であると判定した場合には(ステップ503:全部/なし)、クライアントコンピュータ30〜32に対してWORM有効期限設定エラーを返して(ステップS502)、本処理ルーチンを終了する。すなわち、WORM対象範囲が全部の場合には一旦設定された有効期限の変更は許されず、一方、WORM対象範囲がなしの場合には有効期限はNULLな項目だからである。
CPU11は、WORM対象範囲値が一部(2)であると判定した場合には(ステップ503:一部)、入力されたオフセット範囲がWORM範囲と一致するか否かを判定する(ステップS504)。具体的には、対象ファイルのオブジェクト管理テーブルTb1fを介してWORM範囲管理テーブルTb2を参照し、入力されたオフセット範囲が設定されているWORM範囲と一致するか否かを判定する。
CPU11は、入力されたオフセット範囲がWORM範囲と一致しないと判定した場合には(ステップS504:No)、クライアントコンピュータ30〜32に対してWORM有効期限設定エラーを返して(ステップS502)、本処理ルーチンを終了する。すなわち、入力されたオフセット範囲とWORM範囲とが一致しない場合には、入力されたオフセット範囲は、対象ファイルに対して適切なオフセット範囲ではないからである。
CPU11は、入力されたオフセット範囲がWORM範囲と一致すると判定した場合には(ステップS504:Yes)、既設定の有効期限が入力された有効期限よりも新しいか否かを判定する(ステップS505)。具体的には、CPU11は、WORM範囲管理テーブルTb2を参照して、入力された有効期限と入力されたオフセット範囲に対応するWORM範囲の有効期限とを用いて判定する。
CPU11は、入力された有効期限が既設定の有効期限よりも古いと判定した場合には(ステップS505:No)、クライアントコンピュータ30〜32に対してWORM有効期限設定エラーを返して(ステップS502)、本処理ルーチンを終了する。すなわち、本実施例では、有効期限を短縮する変更は認められず、有効期限を延長する変更のみが認められるからである。
CPU11は、入力された有効期限が既設定の有効期限よりも新しいと判定した場合には(ステップS505:Yes)、WORM範囲管理テーブルTb2を更新して、本処理ルーチンを終了する。具体的には、CPU11は、WORM範囲管理テーブルTb2における、入力されたオフセット範囲に対応するWORM範囲の有効期限を、入力された有効期限に設定する。
以上説明したように、第1の実施例に係る計算機10によれば、WORM範囲をオフセット単位にてWORM範囲管理テーブルTb2に記述するので、ファイル全体に対してのみならず、ファイルの一部について変更非許容範囲(WORM範囲)を設定することができる。したがって、ファイルの使用形態に応じて、柔軟に上書きを許容するWORMファイルを作成することができる。例えば、変更非許容な(WORM化されている)ファイルに対してデータを追記することができる。
また、ファイルを部分単位にて変更非許容範囲を設定することができるので、ファイルに対して書き込まれた部分(データ)から順次、WORM化することができる。この結果、例えば、ログファイルのように、随時、追記されるタイプのファイルについても追記されるたびに追記部分をWORM化することが可能となり、不用意な上書き、削除からデータを保護することができる。
さらに、ディレクトリに対してWORMの属性を持たせることによって、新規に作成されるファイルについて、作成と同時にWORM化することができる。また、通常ファイルとして生成された既存のファイルに対しても、ファイルを所定の単位、例えば、データブロック単位にてWORM化することができる。
既存のWORMファイルについてWORM属性を解除することができると共に、有効期限を延長することができる。なお、既存のWORMファイルについてWORM属性を解除する場合には、有効期限が過ぎている(無効となっている)ことを条件としているので、一旦設定された有効期限前にWORM属性が解除されてデータが変更されることはなく、データを保護することができる。
・第2の実施例:
図14を参照して第2の実施例に係る計算機10aについて説明する。図14は第2の実施例に係る計算機を含む記憶システムの概略構成を示す説明図である。第2の実施例に係る計算機10aは、記憶装置20を内蔵する計算機サーバコンピュータ、いわゆるNASとして機能する。
計算機10aは、CPU11、メモリ12、リアエンドI/Oインターフェース13、フロントエンドI/Oインターフェース14、ディスクアレイコントローラ15、接続インターフェース16、複数のディスク装置17を備えている。CPU11、メモリ12、リアエンドI/Oインターフェース13、フロントエンドI/Oインターフェース14は相互にバスを介して接続されている。リアI/Oインターフェース13は、ディスクアレイコントローラ15と接続されており、CPU11からのディスク装置17に対するアクセスコマンドは、ディスクアレイコントローラ15によって実行される。
ディスクアレイコントローラ15は、CPU11から受け取ったコマンドに従い、制御プログラムを実行することによって、接続インターフェース16を介して複数のディスク装置17に対するデータの書き込み、データの読み出しを実行する。
第1の実施例において説明した、WORM制御プログラムPr3は、第2の実施例においても同様に実行され、同様の作用・効果を得ることができる。
以上説明したように、第2の実施例係る計算機10aは、複数のディスク装置により構成されるディスクアレイ装置を備えるNASサーバコンピュータにおいて、ファイルに対する部分的なWORM範囲の設定、WORMファイルに対する追記を実現することができる。
・その他の実施例:
(1)第1の実施例における、ファイルオープン時またはファイル用オブジェクト管理テーブルTb1f更新時における、ファイル用オブジェクト管理テーブルTb1fの各WORM属性項目の設定値は例示であり、他の設定値が設定されても良い。例えば、ファイルオープン時には、追記を不許可(0)、更新後WORM属性を通常(0)に設定し、後にこれらWORM属性を変更するようにしても良い。
(2)第1の実施例では、例示的に、計算機10に対して1つの記憶装置20が接続されているが、計算機10は、複数の記憶装置から構成されるストレージエリアネットワーク(SAN)に接続されていても良い。また、計算機10は、単一の記憶装置と専用回線を介して1対1にて接続されていても良い。専用回線における通信プロトコルは、例えば、ファイバチャネル、iSCSIが用いられる。
(3)第2の実施例では、計算機10aのCPU11によってWORM制御プログラムPr3が実行されているが、ディスクアレイコントローラ15によって実行されても良い。すなわち、ディスクアレイコントローラ15が備えるメモリ152上に、WORM制御プログラムPr3、オブジェクト管理テーブルTb1、WORM範囲管理テーブルTb2が格納され、ディスクアレイコントローラ15が備えるCPU151によって、WORM制御プログラムPr3が実行されても良い。
(4)上記実施例では、WORM化されたファイルに対する書き込みについて説明したが、読み出しに当たっては、WORM範囲の設定にかかわらず、随時、所定のデータの読み出しが可能であることは言うまでもない。
(5)上記実施例では、WORM制御処理がWORM制御処理プログラムの態様にて実行されているが、上記各処理(ステップ)を実行する論理回路を備えたWORM制御処理ハードウェア回路を用いて実行されてもよい。かかる場合には、CPU11の負荷を軽減することができると共に、より高速な処理を実現することができる。
以上、実施例に基づき本発明に係る計算機、記憶装置の管理方法および記憶装置の管理プログラムを説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
第1の実施例に係る計算機を含む記憶システムの概略構成を示す説明図である。 第1の実施例に係る計算機が備えるメモリに格納されるモジュールを示す説明図である。 ファイル用のオブジェクト管理テーブルTb1fの一例を示す説明図である。 WORM属性の組合せと可能なファイル操作との対応関係を示す説明図である。 WORM範囲管理テーブルTb2の一例を示す説明図である。 ディレクトリ用のオブジェクト管理テーブルTb1dの一例を示す説明図である。 WORM属性の組合せと可能なディレクトリ操作との対応関係を示す説明図である。 ファイルシステムの論理構造の一例を示す説明図である 第1の実施例に係る計算機10によって実行されるデータの書き込み処理の処理ルーチンを示すフローチャートである。 第1の実施例に係る計算機10によって実行される新規ファイルオープン処理の処理ルーチンを示すフローチャートである。 第1の実施例に係る計算機10によって実行されるWORM属性設定処理の処理ルーチンを示すフローチャートである。 第1の実施例に係る計算機10によって実行されるWORM属性解除処理の処理ルーチンを示すフローチャートである。 第1の実施例に係る計算機10によって実行されるWORM有効期限設定処理の処理ルーチンを示すフローチャートである。 第2の実施例に係る計算機を含む記憶システムの概略構成を示す説明図である。
符号の説明
10…計算機
11、151…CPU(中央演算装置)
12、152…メモリ
13…リアエンドI/Oインターフェース
14…フロントエンドI/Oインターフェース
20…記憶装置
15、21…ディスクアレイコントローラ
16、22…接続インターフェース
17、23…ディスク装置
30、31、32…クライアントコンピュータ
40…ネットワーク
41…ルータ
42…インターネット
Pr1…コマンド処理プログラム
Pr2…I/O処理プログラム
Pr3…WORM制御プログラム
Tb1…オブジェクト管理テーブル
Tb2…WORM範囲管理テーブル
Md1…属性情報取得モジュール
Md2…判定モジュール
Md3…アクセス制御モジュール
Md4…変更非許容範囲設定モジュール
Md5…属性情報変更モジュール
Md6…追記判定モジュール
Md7…属性情報付与モジュール
Md8…ファイル作成モジュール
Md9…格納位置判定モジュール

Claims (12)

  1. 記憶装置に格納されているファイルに対するアクセスを管理する計算機であって、
    前記ファイルに対して、ファイルにおける変更が許容されない範囲を示す変更非許容範囲を設定する変更非許容範囲設定手段と、
    前記設定された変更非許容範囲を、前記ファイルに関連づけられている情報であって、前記ファイルに対するデータの追記を許容するか否かを示す追記許容情報および前記変更非許容範囲についての情報を少なくとも含む属性情報に反映する属性情報変更手段と、
    前記記憶装置に格納されている前記ファイルに対するデータの書き込み要求があった場合には、前記ファイルに関連づけられている前記属性情報を取得する属性情報取得部と、
    取得された前記属性情報を参照して、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲以外の範囲であるか否かを判定する判定手段と、
    前記ファイルに対するデータの書き込みの要求が追記の要求であるか否かを判定する追記判定手段と、
    前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれると判定された場合には、前記ファイルに対するデータの書き込みを実行せず、前記ファイルに対するデータの書き込みの要求が追記の要求であると共に、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれないと判定され、さらに前記ファイルの前記追記許容情報が前記ファイルに対する追記の許容を示す場合には、前記ファイルに対するデータの追記を実行するアクセス制御手段とを備える計算機。
  2. 請求項1に記載の計算機において、
    前記アクセス制御手段は、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれないと判定された場合には、前記ファイルに対するデータの書き込みを実行する計算機。
  3. 請求項2に記載の計算機はさらに、
    前記ファイルに対するデータの書き込みが実行された場合に、前記ファイルにおける対象範囲について変更を許容しない変更非許容範囲を設定する変更非許容範囲設定手段と、
    前記設定された変更非許容範囲を前記属性情報に反映する属性情報変更手段とを備える計算機。
  4. 請求項に記載の計算機はさらに、
    前記ファイルに対するデータの追記が実行された場合に、前記ファイルにおける対象範囲について変更を許容しない変更非許容範囲を設定する変更非許容範囲設定手段と、
    前記設定された変更非許容範囲を前記属性情報に反映する属性情報変更手段とを備える計算機。
  5. 請求項1に記載の計算機はさらに、
    前記記憶装置は、1または複数の前記ファイルを含むディレクトリを有し、
    前記ディレクトリにはディレクトリに含まれる前記1または複数のファイルに対する変更を許容するか否かを示すディレクトリ属性情報が関連づけられており、
    前記計算機はさらに、
    前記ディレクトリ属性情報が前記変更を許容しないことを示すディレクトリにおいて新規のファイルが生成された場合には、前記新規に生成されたファイルに対して前記属性情報を付与する属性情報付与手段を備える計算機。
  6. 請求項1に記載の計算機はさらに、
    前記属性情報を格納する属性情報記憶部を備え、
    前記属性情報取得手段は、前記属性情報記憶部から前記ファイルに関連づけられている前記属性情報を取得する計算機。
  7. 請求項1ないし請求項のいずれかに記載の計算機において、
    前記記憶装置は複数の記憶ディスク装置から構成されていると共に、前記計算機内部に配置されている計算機。
  8. 請求項1ないし請求項のいずれかに記載の計算機において、
    前記記憶装置は複数の記憶ディスク装置から構成されていると共に、前記計算機の外部に配置されている計算機。
  9. 記憶装置に対するアクセスを管理する計算機であって、
    1または複数のデータから構成されると共に、前記記憶装置における前記1または複数のデータの格納位置の情報および前記記憶装置における識別情報とを有するファイルを前記記憶装置に作成するファイル作成手段と、
    前記作成されたファイルに対して、ファイルにおける変更が許容されない範囲を示す変更非許容範囲を設定する変更非許容範囲設定手段と、
    前記設定された変更非許容範囲を、前記ファイルに関連づけられている情報であって、前記ファイルに対するデータの追記を許容するか否かを示す追記許容情報および前記変更非許容範囲についての情報を少なくとも含む属性情報に反映する属性情報変更手段と、
    前記属性情報を格納する記憶部と、
    前記記憶装置に対するアクセス要求命令を受信する受信手段と、
    前記受信されたアクセス要求命令が前記記憶装置に対するデータの書き込み要求であるか否かを判定する命令判定手段と、
    前記受信されたアクセス要求命令が前記記憶装置に対するデータの書き込み要求である場合には、前記識別情報を用いてデータの書き込み対象となるファイルを特定し、前記記憶部から前記属性情報を取得して前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複するか否かを判定する格納位置判定手段と、
    前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複すると判定された場合には、前記ファイルに対するデータの書き込みを実行せず、前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複しないと判定されると共に、前記データの書き込み位置が前記データの格納位置の情報に記述されている前記ファイルを構成するデータの最終格納位置よりも大きい場合には、前記ファイルに対する追記処理としてのデータの書き込みを実行する、アクセス制御手段とを備える計算機。
  10. 請求項に記載の計算機において、
    前記アクセス制御手段は、前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複しないと判定されると共に、前記データの書き込み位置が前記データの格納位置の情報に記述されている前記ファイルを構成するデータの最終格納位置よりも小さい場合には、前記ファイルに対する上書き処理としてのデータの書き込みを実行する計算機。
  11. 計算機によって実行される記憶装置に格納されているファイルに対するアクセスの管理方法であって、
    前記計算機が、前記ファイルに対して、ファイルにおける変更が許容されない範囲を示す変更非許容範囲を設定し、
    前記計算機が、前記設定された変更非許容範囲を、前記ファイルに関連づけられている情報であって、前記変更非許容範囲についての情報を少なくとも含む属性情報に反映し、
    前記計算機が、前記記憶装置に格納されている前記ファイルに対するデータの書き込み要求があった場合には、前記ファイルに関連づけられている前記属性情報を取得し、
    前記計算機が、取得した前記属性情報を参照して、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲以外の範囲であるか否かを判定し、
    前記ファイルに対するデータの書き込みの要求が追記の要求であるか否かを判定し、
    前記計算機が、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれると判定した場合には、前記ファイルに対するデータの書き込みを実行せず、前記ファイルに対するデータの書き込みの要求が追記の要求であると共に、前記ファイルに対するデータの書き込みの対象範囲が前記変更非許容範囲に含まれないと判定され、さらに前記ファイルの前記追記許容情報が前記ファイルに対する追記の許容を示す場合には、前記ファイルに対するデータの追記を実行する管理方法。
  12. 計算機によって実行される記憶装置に対するアクセスの管理方法であって、
    前記計算機が、1または複数のデータから構成されると共に、前記記憶装置における前記1または複数のデータの格納位置の情報および前記記憶装置における識別情報とを有するファイルを前記記憶装置に作成し、
    前記作成されたファイルに対して、ファイルにおける変更が許容されない範囲を示す変更非許容範囲を設定し、
    前記設定された変更非許容範囲を、前記ファイルに関連づけられている情報であって、前記ファイルに対するデータの追記を許容するか否かを示す追記許容情報および前記変更非許容範囲についての情報を少なくとも含む属性情報に反映し、
    前記計算機が、前記記憶装置に対するアクセス要求命令を受信し、
    前記計算機が、前記受信したアクセス要求命令が前記記憶装置に対するデータの書き込み要求であると判定した場合には、前記ファイルに関連づけられている情報であって、ファイルにおいて変更が許容されない前記データの格納位置を示す変更非許容情報を少なくとも含む属性情報を取得し、
    前記計算機が、前記識別情報を用いてデータの書き込み対象となるファイルを特定し、
    前記計算機が、前記記憶部から前記属性情報を取得して前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複するか否かを判定し、
    前記計算機が、前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複すると判定した場合には、前記ファイルに対するデータの書き込みを実行せず、前記ファイルに対するデータの書き込み位置が前記変更非許容情報に含まれる前記格納位置と重複しないと判定されると共に、前記データの書き込み位置が前記データの格納位置の情報に記述されている前記ファイルを構成するデータの最終格納位置よりも大きい場合には、前記ファイルに対する追記処理としてのデータの書き込みを実行する、管理方法。
JP2004277048A 2004-09-24 2004-09-24 記憶装置の計算機および記憶装置の管理方法 Expired - Fee Related JP4548717B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004277048A JP4548717B2 (ja) 2004-09-24 2004-09-24 記憶装置の計算機および記憶装置の管理方法
US10/986,379 US20060085487A1 (en) 2004-09-24 2004-11-12 Computer for storage device and method of control for storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004277048A JP4548717B2 (ja) 2004-09-24 2004-09-24 記憶装置の計算機および記憶装置の管理方法

Publications (2)

Publication Number Publication Date
JP2006092276A JP2006092276A (ja) 2006-04-06
JP4548717B2 true JP4548717B2 (ja) 2010-09-22

Family

ID=36182076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004277048A Expired - Fee Related JP4548717B2 (ja) 2004-09-24 2004-09-24 記憶装置の計算機および記憶装置の管理方法

Country Status (2)

Country Link
US (1) US20060085487A1 (ja)
JP (1) JP4548717B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4585330B2 (ja) * 2005-02-18 2010-11-24 株式会社日立製作所 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
JP2008009485A (ja) 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
US9984080B2 (en) * 2006-08-01 2018-05-29 International Business Machines Corporation Efficient non-database file-expiration management for document retention
US7958166B2 (en) * 2007-08-15 2011-06-07 Emc Corporation System and method for providing write-once-read-many (WORM) storage
JP5320557B2 (ja) * 2008-03-25 2013-10-23 株式会社日立製作所 ストレージシステム
WO2010103566A1 (en) 2009-03-10 2010-09-16 Hitachi, Ltd. Storage apparatus, management apparatus, and method of controlling storage apparatus
JP2011022875A (ja) * 2009-07-17 2011-02-03 Sanyo Electric Co Ltd データアクセス装置
US9639540B2 (en) * 2011-02-25 2017-05-02 Hewlett Packard Enterprise Development Lp Retention management in a worm storage system
US9424432B2 (en) * 2012-09-20 2016-08-23 Nasdaq, Inc. Systems and methods for secure and persistent retention of sensitive information
JP6279770B2 (ja) * 2015-01-30 2018-02-14 株式会社日立製作所 ファイルサーバ装置
US20180189301A1 (en) * 2015-07-17 2018-07-05 Hewlett Packard Enterprise Development Lp Managing appendable state of an immutable file
US10762041B2 (en) * 2015-08-31 2020-09-01 Netapp, Inc. Event based retention of read only files
JP6493258B2 (ja) * 2016-03-11 2019-04-03 日本電気株式会社 ストレージ制御装置、ストレージ装置、ストレージ制御方法及びプログラム
US11226929B2 (en) * 2016-09-14 2022-01-18 International Business Machines Corporation WORM data falsification detection
KR101954421B1 (ko) * 2016-10-11 2019-03-06 임장식 하드디스크나 ssd 기반의 worm 저장장치에서 실시간으로 위변조를 방지하는 데이터 기록 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293123A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd ファイル編集装置
JP2000148404A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd コンピュータシステム
JP2003015933A (ja) * 2001-07-05 2003-01-17 Hitachi Ltd 記憶装置のファイルレベルリモートコピー方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1493258B1 (en) * 2002-04-05 2011-11-02 Panasonic Corporation Content using system
US7565509B2 (en) * 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
JP2004310621A (ja) * 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293123A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd ファイル編集装置
JP2000148404A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd コンピュータシステム
JP2003015933A (ja) * 2001-07-05 2003-01-17 Hitachi Ltd 記憶装置のファイルレベルリモートコピー方法

Also Published As

Publication number Publication date
JP2006092276A (ja) 2006-04-06
US20060085487A1 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4548717B2 (ja) 記憶装置の計算機および記憶装置の管理方法
JP4799936B2 (ja) 条件別スナップショット取得方法及びシステム
US8549051B2 (en) Unlimited file system snapshots and clones
US7469327B2 (en) System and method for restricting access to logical volumes
US8135677B2 (en) File management system and method
JP5082310B2 (ja) データ移行装置及びプログラム
US7243189B2 (en) Data processing system and method
US8635419B2 (en) Methods for implementation of worm mode on a removable storage system
US8280858B2 (en) Storage pool scrubbing with concurrent snapshots
US20150006581A1 (en) Method for a Storage Device Accessing a File and Storage Device
US7673096B2 (en) Control apparatus for controlling virtual storage
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US8024532B2 (en) Data management method for erasing data in computer system
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
JP4691209B2 (ja) アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム
JP4521865B2 (ja) ストレージシステム、計算機システムまたは記憶領域の属性設定方法
US10277678B2 (en) Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
JP2007233638A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20140331007A1 (en) Virtual library controller and control method
KR20210076828A (ko) 키-값 장치 및 이의 블록 인터페이스 에뮬레이션 방법
US20060221721A1 (en) Computer system, storage device and computer software and data migration method
WO2015101083A1 (zh) 一种存储数据的保护方法及装置
US20100131469A1 (en) Storage management device and file deletion control method
US7451279B2 (en) Storage system comprising a shared memory to access exclusively managed data
EP3136245B1 (en) Computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees