JP5586892B2 - 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法 - Google Patents

階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法 Download PDF

Info

Publication number
JP5586892B2
JP5586892B2 JP2009182991A JP2009182991A JP5586892B2 JP 5586892 B2 JP5586892 B2 JP 5586892B2 JP 2009182991 A JP2009182991 A JP 2009182991A JP 2009182991 A JP2009182991 A JP 2009182991A JP 5586892 B2 JP5586892 B2 JP 5586892B2
Authority
JP
Japan
Prior art keywords
file
storage device
client computer
storage
stub
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
JP2009182991A
Other languages
English (en)
Other versions
JP2011034525A (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 JP2009182991A priority Critical patent/JP5586892B2/ja
Priority to US12/575,138 priority patent/US20110035409A1/en
Publication of JP2011034525A publication Critical patent/JP2011034525A/ja
Application granted granted Critical
Publication of JP5586892B2 publication Critical patent/JP5586892B2/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/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、アプリケーションが利用する、階層化されたストレージ装置のストレージ装置間でのファイルのリコールを制御するシステム、方法に関する。
大容量かつ高速なストレージ装置を低コストで構築するための技術として階層化ストレージ管理技術(HSM)が提案されている。HSMでは、格納されたファイルに高速にアクセス可能だが容量の小さいプライマリストレージと、アクセス速度は遅いが大容量なセカンダリストレージを階層化して、1つのストレージ装置とする。頻繁に参照されるファイルをプライマリストレージに格納し、参照回数の少ないデータをセカンダリストレージに格納することで、大容量かつ高速なストレージ装置を低コストで実現する。ファイルサーバを利用するクライアントは各階層のストレージ装置に格納されているファイルに、透過的にアクセスすることができる。
特許文献1では、異なる特徴をもつ複数のストレージ装置を階層化して、1つのストレージ装置とする技術が公開されている。
米国特許7225211号公報
従来の技術ではプライマリストレージに格納されているファイルに対して、一定期間、ファイルサーバを利用するクライアントからアクセスがなかった場合、そのファイルをセカンダリストレージに移動する。セカンダリストレージに移動されたファイルにアクセスがあった場合、そのファイルは以後、複数回アクセスされる可能性が高いため、HSMはそのファイルを、高速にアクセス可能なプライマリストレージにコピーバック(以後、リコールと記述する)する。このように、クライアントから暫くアクセスされなくなったファイルはセカンダリストレージに移動し、次のアクセスの際に高速なプライマリストレージにリコールすることで、ファイルへの高速アクセスと大容量化を低コストで実現する。
しかし、従来の階層化ストレージにおいて、セカンダリストレージに移動されたファイルに対してアクセスがあったとき、アクセスがあった全てのファイルをリコールするのが適切ではない場合がある。全てのファイルをリコールすると、再度アクセスされる可能性が低いファイルが、容量の限られたプライマリストレージに格納される場合がある。また、プライマリストレージにリコールする必要がないファイルのコピーが発生することで、ストレージ装置の性能が低下する。
本発明では、階層化ストレージを利用するクライアント上のアプリケーションが、ファイルのリコールを抑止するためのインタフェースを提供する。即ち、ファイルのリコールが不要であることを階層化ストレージに通知する手段をアプリケーションに対して提供する。そして、そのアプリケーションからの通知を受け取り、ファイルのリコールを抑止する機能を階層化ストレージに提供する。
階層化ストレージを利用するアプリケーションが、ファイルにアクセスする際、そのファイルのリコールを抑止することを、階層化ストレージに通知する。
本発明によって、階層化ストレージを利用するアプリケーションが、セカンダリストレージに格納されたファイルへアクセスする際に、ファイルのリコールを抑止することができる。その結果、ファイルの不要なコピーと再アクセスされる可能性の低いファイルがプライマリストレージに格納されるのを防止することができる。
本発明の概要を示す図である。 本発明の実施例のハードウェア構成を示す図である。 プライマリファイルストレージのソフトウェア構成を示す図である。 セカンダリファイルストレージのソフトウェア構成を示す図である。 クライアントのソフトウェア構成を示す図である。 inodeの構造及びinodeの格納領域を示す図である。 スタブと通常ファイルを示す図である。 ディレクトリファイルの構造を示す図である。 ファイルマイグレーション処理のフローチャートである。 アプリケーションがプライマリファイルサーバ上のファイルに通常のファイル操作を行う際の処理概要を示す図である。 アプリケーションがプライマリファイルサーバ上のファイルにリコール制御を行う際の処理概要を示す図である。 リコール抑止リストの構造を示す図である。 リコール抑止リストへの登録処理のフローチャートである。 リコール処理のフローチャートである。 ファイルへのリード/ライト処理のフローチャートである。 レポーティングログの例である。 レポーティング情報を管理者に提示するGUI図である。 レポーティング情報を表示するファイルを選択するためのGUI図である。
以下に、本発明の実施形態を説明する。
図1は本発明が想定する階層化ストレージの概要を説明する模式図である。
プライマリファイルサーバ10はセカンダリファイルサーバ20と連携し、階層化ストレージを構築する。プライマリファイルサーバ10が持つプライマリストレージ11には、クライアント30上のアプリケーション31が頻繁にアクセスするファイルが格納され、セカンダリファイルサーバ20が持つセカンダリストレージ21には、アプリケーション31が一定時間アクセスしなくなったファイルが格納される。ファイルサーバ10とファイルサーバ20はファイル共有サービス22を用いて、ファイルのマイグレーションとリコールを行う。
マイグレーション制御部13はプライマリストレージ11に保存されたファイルのマイグレーションを制御する。マイグレーション制御部13はプライマリストレージ11に保存されたファイルの最終アクセス時刻を定期的に監視する。マイグレーション制御部13は現在時刻とファイルの最終アクセス時刻を比較し、一定時間当該ファイルにアクセスがなかった場合、そのファイルを、ファイルサーバ20の提供するファイル共有サービス22を用いて、セカンダリストレージ21にコピーする。マイグレーション制御部13はマイグレーション終了後、当該ファイルをプライマリストレージ11から削除する。セカンダリストレージ21に移動されたファイルに、クライアント30上のアプリケーション31がアクセスする手段を提供するため、マイグレーション制御部13は当該ファイルに対応するスタブを作成する。スタブは、アプリケーション31がセカンダリストレージ21に移動されたファイルにアクセスするための情報を有する特別なファイルである。スタブには、移動されたファイルのセカンダリファイルサーバ20上でのパスが記録される。以後、アプリケーション31は、スタブをセカンダリストレージ21に移動されたファイルと認識する。上述した一連の処理をマイグレーション処理と定義する。
リコール制御部14はファイルのリコールを制御する。リコール制御部14は、ファイル共有サービス12を通じて、アプリケーション31からプライマリストレージ11に格納されているスタブにアクセスがあった場合、対応するファイルをセカンダリストレージ21からリコールする。リコールの際、スタブに記録されたパスを用いて、ファイルのセカンダリファイルサーバ21上での格納場所を認識する。また、リコール制御部14はアプリケーション31からファイルのリコールを抑止するように、通知があった場合はそのファイルのリコールを行わない。アプリケーション31から通知があったかどうかはリコール抑止リスト15を参照して判断する。
ファイル共有サービス12はアプリケーション31からのプライマリストレージ上のファイルに対するリード/ライト、作成/削除、属性の変更/確認等の操作を処理する。また、アプリケーション31からリコールの抑止指示を受領し、リコール抑止リストを更新する。
レポーティング制御部16はクライアントごとに、ファイルへのアクセス時刻、リコールの抑止開始時刻、リコール抑止解除時刻をログとして記録し、レポーティング情報に加工して管理者に提示する。また、ログに基づいて、リコール抑止の強制解除を実行する。
図1では1台のクライアントがプライマリファイルサーバに接続しているが、複数台のクライアントが接続する形をとってもよい。
図2は本発明の階層化ストレージのハードウェア構成図を示す。
プライマリファイルサーバ100はCPU(Central Processing Unit)101とメモリ102、記憶装置103とNIC(Network Interface Card)104、105から構成される。それぞれの構成部位は内部バス又は内部ネットワークにて接続される。CPU、メモリ、NIC、記憶装置の数は図中に示す個数に限定されるものではない。また、プライマリファイルサーバ100は、画面表示装置を備える。画面表示装置には、後述するレポーティング情報等が表示される。
CPU101はメモリ102に格納されたプログラムを実行する。例えば、CPU101はファイル共有サービスを提供するプログラムを実行し、記憶装置103に格納されたファイルをクライアント計算機300へ提供する。以下、プログラムが処理を行うと記載している場合は、実際にはCPU101が実行していることを意味するものとする。
メモリ102は、例えば半導体メモリであり、CPU101が実行するプログラムやプログラムが参照するデータが格納される主記憶装置である。
NIC104はプライマリファイルサーバ100がセカンダリファイルサーバ200とデータの送受信を行うために用いる。また、NIC105はプライマリファイルサーバ100が、LAN(Local Area Network)400を介して、クライアント計算機300とデータを送受信するために用いる。
記憶装置103はプライマリファイルサーバ100が使用するプログラムやファイルを格納するための二次記憶装置である。プライマリファイルサーバは、SSD(Solid State Drive)、HDD(Hard Disk Drive)、テープ装置等を二次記憶装置として、利用することができる。記憶装置103は図中では内部バスによって、他の構成部位と接続しているが、 RAID(Redundant Array of Independent Disks)コントローラのようなストレージコントローラを介して、他の構成部位と接続してもよい。また、FC(Fiber Channel) HBA(Host Bus Adaptor)を介して、SAN(Storage Area Network)上の記憶装置103と他の構成部位が接続してもよい。
セカンダリファイルサーバ200はCPU201とメモリ202、記憶装置203とNIC204から構成される。それぞれの構成部位は内部バス又は内部ネットワークにて接続される。CPU、メモリ、記憶措置、NIC、の数は図中に示す個数に限定されるものではない。
CPU201はメモリ202に格納されたプログラムを実行する。例えば、CPU201はファイル共有サービスを提供するプログラムを実行し、記憶装置203に格納されたファイルをプライマリファイルサーバ100へ提供する。
メモリ202は、例えば半導体メモリであり、CPU201が実行するプログラムやプログラムが参照するデータが格納される主記憶装置である。
NIC204はセカンダリファイルサーバ200がプライマリファイルサーバ100とデータの送受信を行うために用いる。
記憶装置203はセカンダリファイルサーバ200が使用するプログラムやファイルを格納するための二次記憶装置である。セカンダリファイサーバはSSD、HDD、テープ装置等を二次記憶装置として、利用することができる。記憶装置203は図中では内部バスによって、他の構成部位と接続しているが、RAIDコントローラのようなストレージコントローラを介して、他の構成部位と接続してもよい。また、FC HBAを介して、SAN上の記憶装置と103と他の構成部位が接続してもよい。
階層化ストレージを構築するため、プライマリファイルサーバの100記憶装置103とセカンダリファイルサーバ200の記憶装置203には異なる特徴を持ったデバイスを用いる。例えば、記憶装置103には高速にデータの読み書きが可能だが、1ビット当たりの単価が高いSSDを用い、記憶装置203にはビット単価は低いが、読み書きの性能が低いHDDやテープ装置を用いる。また、記憶装置203に、記憶装置103よりも大容量のデバイスを用いるか、複数のデバイスを1つの記憶装置とすることで、記憶装置203のファイル格納領域を記憶装置103よりも大きくする。
クライアント計算機300はCPU301とメモリ302、記憶装置303とNIC304から構成される。それぞれの構成部位は内部バス又は内部ネットワークにて接続される。CPU、メモリ、記憶装置、NIC、の数は図中に示す個数に限定されるものではない。
CPU301はメモリ302に格納されたプログラムを実行する。例えば、CPU301はファイル共有サービスを提供するプログラムを実行し、プライマリファイルサーバ100の記憶装置103に格納されているファイルにアクセスする。
メモリ302は、例えば半導体メモリであり、CPU301が実行するプログラムやプログラムが参照するデータが格納される主記憶装置である。
NIC304はクライアント計算機300が、LAN400を介して、プライマリファイルサーバとデータの送受信を行うために用いる。
記憶装置303はクライアント計算機300が使用するプログラムやファイルを格納するための二次記憶装置である。クライアント計算機300はSSD、HDD、テープ装置等を二次記憶装置として、用いることができる。記憶装置303は図中では内部バスによって、他の構成部位と接続しているが、RAIDコントローラのようなストレージコントローラを介して、他の構成部位と接続してもよい。また、FC HBAを介して、SAN上の記憶装置103と他の構成部位が接続してもよい。
NIC104とNIC204の通信路401には、例えばEthernet(登録商標)を用いることが考えられるが、通信可能であればこれ以外の媒体でも良い。
NIC105とLAN400の通信路402には、例えばEthernet(登録商標)を用いることが考えられるが、通信可能であればこれ以外の媒体でも良い。
NIC304とLAN400の通信路403には、例えばEthernet(登録商標)を用いることが考えられるが、通信可能であればこれ以外の媒体でも良い。
なお、クライアントは図中では1台であるが、複数台のクライアントがプライマリファイルサーバに接続することを制限するものではない。
図3は、プライマリファイルサーバ100のメモリ102に格納されているプログラムおよび、プログラムが参照するデータの構成を示す。
ファイル共有クライアントプログラム1002は、プライマリファイルサーバ100が、ファイル共有サーバプログラム2001を実行しているセカンダリファイルサーバ200上のファイルにファイル操作を行うために用いるプログラムである。ファイル操作とは、リード/ライト処理や属性の確認/変更等である。
ファイル共有サーバプログラム1003は、クライアント300が、プライマリファイルサーバ100上のファイルにファイル操作を行う手段を提供するためのプログラムである。また、ファイル共有サーバプログラム1003は、クライアント計算機300上のアプリケーション3001が、プライマリファイルサーバ100上のファイルに行うリコール制御操作を処理する。
一般的に、ファイル共有プログラムには、クライアントプログラムとサーバプログラムがある。クライアントプログラムを実行しているローカルサーバは、サーバプログラムを実行しているリモートサーバ上のファイルシステムを、クライアントプログラムを実行しているローカルサーバ上のファイルシステムとして扱うことができる。即ち、クライアントプログラムを実行しているローカルサーバは、サーバプログラムを実行しているリモートサーバのファイルシステムに対して、ファイルのリード/ライト、作成/削除、属性の確認/変更等のファイル操作を実行することができる。
実施形態ではNFS(Network File System)、CIFS(Common Internet File System)をファイル共有プログラムとして想定している。
HSMプログラム1005は階層化ファイルストレージを構築するために、プライマリファイルサーバ100上で動作するプログラムである。ファイルのマイグレーションを制御するマイグレーション制御プログラム1006、ファイルのリコールを制御するリコール制御プログラム1007、記憶装置103に格納されたファイルへのアクセス時刻、ファイルのリコール抑止開始時刻等のレポーティング情報を階層化ストレージの管理者に提示するレポーティングプログラム1008を含む。また、HSMプログラム1005にはリコール制御プログラム1007が参照するリコール抑止リスト1009と、レポーティングプログラム1008が参照するレポーティングログ領域1010が含まれる。
マイグレーション制御プログラム1006はマイグレーション対象のファイルを記憶装置103から検索し、当該ファイルをセカンダリファイルサーバ200上の記憶装置203にマイグレーションする。
リコール制御プログラム1007はファイルのリコールを制御する。クライアント計算機300上のアプリケーション3001から記憶装置103に格納されているファイルへのアクセスがあった場合、ファイルをセカンダリファイルサーバ200からリコールする。リコールの際、リコール抑止リスト1009を参照し、リコール対象のファイルに対するリコールが抑止されていた場合、そのファイルのリコールは行わない。
レポーティングプログラム1008は、レポーティングログ1010の情報を加工し、階層化ストレージの管理者にレポーティング情報を表示する。レポーティングログ1010にはファイルへのアクセス時刻、ファイルへのリコール抑止開始時刻、リコール抑止解除時刻が記録されている。また、レポーティングプログラム1008はレポーティングログに基づき、リコール抑止の強制解除を行う。
ファイルシステムプログラム1011は、ファイル共有サーバプログラム1003とHSMプログラム1005が、記憶装置103に格納されたファイルへ行う操作(リード/ライト、作成/削除、属性の変更/確認等)を処理するプログラムである。
図4はセカンダリファイルサーバ200のメモリ202に格納されているプログラム構成を示す。
ファイル共有サーバプログラム2001は、ファイル共有クライアントプログラム1002を実行しているプライマリファイルサーバ100が、セカンダリファイルサーバ200上のファイルにファイル操作を行う手段を提供する。
ファイルシステムプログラム2002は、ファイル共有サーバプログラム2001が記憶装置103に格納されたファイルへ行う操作(リード/ライト、作成/削除、属性の変更/確認等)を処理するプログラムである。
図5は、クライアント300のメモリ302に格納されているプログラム構成を示す。
アプリケーション3001はプライマリファイルサーバ100上のファイルにアクセスする業務アプリケーションである。例えば、階層化ストレージに保存されたファイルのウイルス検知を行うアンチウイルスソフトや階層化ストレージに保存されたファイルのバックアップを行うバックアップソフト等がこれにあたる。
ファイルシステムプログラム3002はアプリケーション3001からの、プライマリファイルサーバ100へのファイル操作要求(リード/ライト、作成/削除、属性の変更/確認要求等)を、プライマリファイルサーバ100に送信するよう、ファイル共有クライアントプログラム3003に指示する。
ファイル共有クライアントプログラム3003は、アプリケーション3001がファイルシステムプログラム3002に要求した操作を、ファイル共有サーバプログラム1003に送信する。ファイル共有クライアントプログラム3003を用いることで、クライアント300は、プライマリファイルサーバ100上のファイルにファイル操作を行う。
ここで、ファイルシステムプログラム1011が記憶装置103に格納されたファイルを管理する方法について説明する。
ファイルシステムプログラム1011はinodeによってファイルのデータや属性を管理している。inodeは各ファイルに対し1つ存在し、そのファイルのメタデータが格納されている。
図6は、inodeの構造及びinodeの格納領域を示す。inode構造体40のblock_numberエントリ41にはファイルのデータが格納されているブロックのブロック番号が格納される。is_stubエントリ42はファイルがスタブかどうかを示すフラグである。atimeエントリ43にはファイルへの最終アクセス時刻が格納されている。そのほかにもinodeにはファイルのアクセス権限や最終更新時刻を格納するエントリ等が存在する。inodeは記憶装置103の特別な領域(スーパーブロック51)に記録されている。ファイルシステムプログラム1011はinodeを参照することで、各ファイルの属性や記憶装置103上での格納場所を取得することができる。
ファイルがスタブの場合、block_numberエントリ41が示すブロックには、スタブに対応するファイルのセカンダリファイルサーバ上でのパスが記録される。
図7は、ファイルがスタブである場合とない場合で、inodeに記録される情報が違うことを示す。ここで、ファイルとは、スタブと実体のデータを有するファイルとを含む。inode a(構造体80)ではis_stubエントリ82の値が0である(つまりファイルがスタブではない)。この場合、block_numberエントリ81の示すブロック83(ブロックナンバー100)にはファイルのデータが保存されている。それに対し、inode b(構造体90)ではis_stubエントリ92の値が1である(つまりファイルがスタブである)。この場合、block_numberエントリ91の示すのブロック93(ブロックナンバー55)には、スタブに対応するファイルのセカンダリファイルサーバ上でのパスの情報が保存されている。
各ファイルに対応するinodeの記憶装置上の位置は各inodeに割り振られているinode番号から計算することができる。各ファイルに対応するinode番号はディレクトリファイルという、特殊なファイルに保存されている。ディレクトリファイルはファイルシステムのディレクトリ1つごとに1つ存在する。
図8は、ディレクトリファイルの例を示す。ディレクトリファイル70は/home/user1/docディレクトリのディレクトリファイルである。/home/user1/docディレクトリにはaaa.txtとbbb.docというファイルが保存されている。各ファイルにはそれぞれ、102と500がinode番号として割り振られていることを、エントリ71とエントリ72から知ることが出来る。
ファイルシステムプログラム1011は、検索対象のファイルが格納されているディレクトリを、ルートディレクトリのディレクトリファイルからたどっていく事で、検索対象のファイルに対応するinode番号を得ることができる。ルートディレクトのディレクトリファイルは記憶装置103の所定の位置に記録される。
ファイル共有サーバプログラム1003とHSMプログラム1005は、ファイルシステムプログラム1011によって、記憶装置103に格納されたファイルに対して、ファイル操作(リード/ライト、作成/削除、属性の変更/確認等)を行うことができる。
図9は、マイグレーション制御プログラム1006による、ファイルのマイグレーション処理のフローチャートを示す。
前述したとおり、ファイルのマイグレーション処理はマイグレーション制御プログラム1006が行う。マイグレーション制御プログラム1006は、プライマリファイルサーバ100の記憶装置103に格納されているファイルを定期的に検索し、マイグレーション対象のファイルを抽出する。マイグレーション対象のファイルを抽出する際、マイグレーション制御プログラム1006はファイルシステムプログラム1011を利用し、ファイルの属性を確認する。ファイルの属性とは、例えば最終アクセス時刻である。
マイグレーション制御プログラム1006はファイルシステムプログラム1011を利用し、記憶装置103に格納されている各ファイルの最終アクセス時刻(atime)を取得する。マイグレーション制御プログラム1006は現在時刻と最終アクセス時刻を比較し、一定時間ファイルにアクセスがなかった場合、ファイルをセカンダリファイルサーバ200の記憶装置203に移動する。ファイルの移動はファイル共有クライアントプログラム1002が行う。
ステップ5010において、マイグレーション制御プログラム1006は、ファイルシステムプログラム1011を用いて、記憶装置103に格納されたファイルの最終アクセス時刻を確認し、マイグレーション対象のファイルを抽出する。このとき、全ファイルの最終アクセス時刻を確認しても良いし、プライマリファイルサーバ100の管理者が指定したファイルの最終アクセス時刻を確認する形をとっても良い。マイグレーションするファイルの抽出には、最終アクセス時刻以外の属性情報を利用してもよい。
マイグレーション対象のファイルがなかった場合(ステップ5020:NO)、マイグレーション制御プログラム1006はファイルのマイグレーション処理を終了する。
マイグレーション対象のファイルが存在する場合(ステップ5020:YES)、マイグレーション制御プログラム1006はファイル共有クライアントプログラム1002を用いて、当該ファイルをセカンダリファイルサーバの記憶装置203に移動する(ステップ5030)。ファイルの移動後、マイグレーション制御プログラム1006は、ステップ5040において、当該ファイルのスタブの作成をファイルシステムプログラム1011に指示する。具体的には、ファイルシステムプログラム1011は、当該ファイルのinodeのis_stubエントリの値を1にし、block_numberが示すブロックに、スタブに対応するファイルのセカンダリファイサーバ上でのパスを記録する。その後、マイグレーション制御プログラム1006は、ファイルマイグレーション処理を終了する。
アプリケーション3001は、プライマリファイルサーバ上のファイルに対し、ファイル操作処理を行う。ファイル操作処理には2種類ある。1つは通常のファイル操作(リード/ライト、作成/削除、属性の変更/確認等)であり、もう1つはファイルのリコールを制御する処理である。
アプリケーションがリコールの制御処理を実行する例を以下に挙げる。
例えば、アプリケーションがアンチウイルスソフトであり、ファイルの全スキャンを行う場合が例として挙げられる。このとき、アプリケーションはファイルをスキャンする前に、スキャン対象のファイルのリコールの抑止を開始する。そして、スキャン終了後、ファイルのリコールの抑止を解除する。
その他にも、アプリケーションが、サイズの大きいファイルにアクセスする前に、リコールの抑止を開始し、アクセス終了後にリコールの抑止を解除する場合等が例として挙げられる。
図10はアプリケーション3001が、プライマリファイルサーバ100上のファイルに通常のファイル操作を行った場合の処理の概要を示す。
まず、アプリケーション3001がファイルシステムプログラム3002に対して、ファイルへのリード/ライト、作成/削除、属性の確認/変更等のファイル操作を要求する(操作4010)。ファイルシステムプログラム3002は当該ファイルがリモートサーバ(プライマリファイルサーバ100)上のファイルであった場合、ファイル共有クライアントプログラム3003にコマンドの発行を依頼する(操作4020)。ファイル共有クライアントはアプリケーションから要求された処理(ファイルへのリード/ライト、作成/削除、属性の確認/変更等)をコマンドに変換し、ファイル共有サーバプログラム1003に送信する(操作4030)。ファイル共有サーバプログラム1003は、ファイル共有クライアントプログラム3003が送信したコマンドを受領し(操作4040)、コマンドに対応するファイル操作をファイルシステムプログラム1011に要求する(操作4050)。その後、ファイルシステムプログラム4050は、クライアント300に処理結果を返答する。具体的には、ファイルシステムプログラム1011は、ファイル共有サーバプログラム1003に処理結果を返答する。そして、ファイル共有サーバプログラム1003は、その処理結果をファイル共有クライアントプログラム3003に送信する。次に、ファイル共有クライアントプログラム3003は、ファイルシステムプログラム3002に処理結果を返答し、その後アプリケーション3001がファイル操作に対する処理結果を受信する。
図11は、実施形態において、アプリケーション3001がプライマリファイルサーバ100上のファイルに対して、リコール制御処理を行った場合の処理の概要を示す。
まず、リコール制御処理の概要を説明する。
実施形態では、通常のファイル操作と同様に、既存のファイル共有プログラム(NFS、CIFSプルグラム等)のプロトコルを利用し、アプリケーション3001が、プライマリファイルサーバ100上のファイルに対し、リコールの制御処理を行う。
実施形態におけるリコール制御方式の一実施例を以下に説明する。
アプリケーション3001はあるファイルのリコール抑止を開始したい場合、"<file_name>.norc"というファイル(パス)名のファイルの作成をファイルシステムプログラム3002に要求する。"<file_name>"は、リコールを抑止したいファイルのファイル(パス)名である。例えば、/tmp/bbb.docのリコールを抑止したい場合、/tmp/bbb.doc.norcという名前のファイルを作成するように、ファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム3003にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003は/tmp/bbb.doc.norcの作成を依頼するコマンドを作成し、ファイル共有サーバプログラム1003に送信する./tmp/bbb.doc.norcの作成を依頼するコマンドを受信したファイル共有サーバプログラム1003はそのコマンドが、/tmp/bbb.docのリコール抑止開始を通知するメッセージだと解釈し、リコール抑止リスト1009への登録処理を行う。ファイル共有サーバプログラム1003は実際には/tmp/bbb.doc.norcの作成は行わない。
アプリケーション3001はあるファイルのリコール抑止を解除したい場合、"<file_name>.norc"というファイルの削除をファイルシステムプログラム3002に要求する。"<file_name>"は、リコール抑止を解除したいファイルのファイル(パス)名である。例えば、/tmp/bbb.docのリコール抑止を解除したい場合、/tmp/bbb.doc.norcという名前のファイルの作成をファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム1002にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003は/tmp/bbb.doc.norcの削除を依頼するコマンドを作成し、ファイル共有サーバプログラム1003に送信する。/tmp/bbb.doc.norcの削除を依頼するコマンドを受信したファイル共有サーバ3003はそのコマンドを、/tmp/bbb.docのリコール抑止解除を通知するメッセージだと解釈し、リコール抑止リスト1009からの削除処理を行う。
以下、リコール制御処理のフローチャートを説明する。まず、アプリケーション3001がファイルシステムプログラム3002に対して、リコール制御処理の実行を要求する(操作6010)。上記の実施例では、"<file_name>.norc"ファイルの作成または削除処理の要求が、リコールを制御するための処理である。
ファイルシステムプログラム3002はファイル共有クライアントプログラム3003に、コマンドの発行を依頼する(操作6020)。ファイル共有クライアントはアプリケーションから要求された処理("<file_name>.norc"の作成/削除)をコマンドに変換し、ファイル共有サーバプログラム1003に送信する(操作6030)。ファイル共有サーバプログラム1003は、ファイル共有クライアントプログラム3003が送信したコマンドを受領(操作6040)し、リコール抑止リスト1009への登録/削除処理を実行する(操作6050)。
上記の実施例では"<file_name>.norc"の、作成/削除をリコール制御処理としたが、他の特定の処理をリコール制御処理としてもよい。他の特定の処理については、第2の実施例及び第3の実施例で説明する。
アプリケーションは、クライアント計算機が、実施形態で示す階層化ストレージ以外のファイルサーバに接続する場合、リコール抑止制御処理を行わないようにする必要がある。上記の実施例では、アプリケーション3001が、実施形態で示す階層化ストレージ以外のファイルサーバに接続し、リコール制御処理を実行した場合、”<file_name>.norc”というファイル(パス)名のファイルが当該ファイルサーバ上に作成されるためである。以下の方法により、リコール制御処理の実行を防止することができる。
実施形態では、階層化ストレージの管理者が、ファイルを、アプリケーション3001によるリコール制御の対象にするかどうかを設定可能にする。アプリケーション3001はファイルのリコール制御を実行する前に、当該ファイルが格納されているディレクトリに”.recall_control”というファイル名のファイルが存在するかどうかを確認する。もし、存在していた場合、アプリケーション3001は当該ファイルがリコールの制御対象だと判断し、リコール制御処理を実行する。もし、存在しなかった場合、アプリケーション3001は当該ファイルがリコール制御の対象外だと判断し、リコール制御処理を中断する。実施形態における階層化ストレージにディレクトリを作成した場合、”.recall_control”ファイルは自動的に作成される。ファイルをリコールの制御対象外としたい場合、管理者はこのファイルを削除する。また、この機能は、アプリケーション3001が、実施形態における階層化ストレージ以外のファイルサーバに対して、リコール制御処理を実行するのを防止する。この機能を用いれば、”.recall_control”というファイルをユーザまたは管理者が、作成しない限り、アプリケーション3001が、実施形態で示す階層化ストレージ以外のファイルサーバにリコール制御処理を実行することはない。
図12は、リコール抑止リスト1009の概要を示す。前述したとおり、リコール制御処理のコマンドを受領したファイル共有サーバプログラム1003は、リコール制御対象のファイルをリコール抑止リスト1009へ登録/削除する。リコール抑止リスト1009は、リコール制御プログラム1007がリコール処理を行う際、リコール対象のファイルがリコール抑止の対象になっているかどうかを判定するために参照するリストである。
リコール抑止リスト1009のエントリはリコール抑止対象のファイル(パス)名とリコール抑止制御を依頼したクライアント名のセットからなる。例えば、エントリ510はclient 1が/home/user1/aaa.txtのリコールを抑止していることを示し、エントリ520はclient 3が/tmp/bbb.docのリコールを抑止していることを示す。ワイルドカードを用いて、一度に複数のファイルのリコールの抑止を設定することも出来る。例えば、アプリケーション3001がリコールの抑止を開始する際に、リコール抑止対象のファイル(パス)名を、"/tmp/*"と指定すると、/tmpディレクトリ以下に存在する全てのファイルのリコールが抑止される。
リコール抑止制御処理のコマンドを受領したファイル共有サーバプログラム1003は、メッセージがリコール抑止の開始を指示していた場合、抑止対象のファイル名と、メッセージを送信したクライアントのクライアント名をセットにし、リコール抑止リスト1009に登録する。例えば、client 1が/home/user1/aaa.txtのリコール抑止の開始を指示して来た場合、エントリ510がリコール抑止リスト1009に追加される。
もし、リコール抑止制御処理のコマンドがファイルのリコール抑止解除を指示していた場合、ファイル共有サーバプログラム1003はリコール抑止リストから該当するエントリを削除する。例えば、client 1が/home/user1/aaa.txtのリコール抑止の解除を指示して来た場合、エントリ510がリコール抑止リスト1009から削除される。
図13は、ファイル共有サーバプログラム1003が、リコール抑止リスト1009へ、リコール制御対象のファイルを登録する処理のフローチャートである。ファイル共有サーバプログラム1003が、ファイル共有プログラム3003からのコマンドを受信したタイミングで、このフローチャートは開始される。
ステップ7010において、ファイル共有サーバプログラム1003は、ファイル共有クライアントプログラム3003から、コマンドを受領する。
ステップ7020において、ファイル共有サーバプログラム1003は、受信したコマンドがリコール制御処理のコマンドか、通常のファイル操作(リード/ライト、作成/削除、属性の変更/確認等)のコマンドかを判定する。
もし、ファイル共有サーバプログラム1003が受領したコマンドが、リコール制御処理のコマンドではなかった場合(ステップ7020:NO)、コマンドの要求する処理を実行し、リコール抑止リスト1009への登録処理を終了する。
もし、ファイル共有サーバプログラム1003が受領したコマンドが、リコール制御処理のコマンドであった場合(ステップ7020:YES)、ファイル共有サーバプログラム1003は、リコール制御処理のコマンドがリコール抑止の開始を通知するものか否かを判定する(ステップ:7030)。
もし、ステップ7030において、リコール制御処理のコマンドが、リコール抑止開始の通知でなかった場合(ステップ7030:NO)、ファイル共有サーバプログラム1003は、リコール抑止リスト1009から、リコール制御対象のファイルと、リコール制御処理のコマンドを送信したクライアント名のエントリを検索し、そのエントリを削除する(ステップ:7035)。そして、レポーティングログ1010に、当該ファイルのリコール抑止を解除したことを記録し(ステップ7060)、リコール抑止リスト1009への登録処理を終了する。
もし、ステップ7030において、リコール制御処理のコマンドが、リコール抑止の開始通知であった場合(ステップ:7030:YES)、ファイル共有サーバプログラム1003は、リコール抑止対象のファイルが、スタブであるかどうかを判定する(ステップ7040)。
もし、ステップ7040において、リコール抑止対象のファイルが、スタブでなかった場合(ステップ7040:NO)、ファイル共有サーバプログラム1003は、リコール抑止リスト1009への登録処理を終了する。
もし、ステップ7040において、リコール抑止対象のファイルが、スタブであった場合(ステップ7040:YES)、ファイル共有サーバプログラム1003は、リコール抑止リスト1009にエントリを追加する(ステップ7050)。そして、ファイル共有サーバプログラム1003は、レポーティングログ1010に当該ファイルのリコールの抑止を開始したことを記録(ステップ7060)した後、リコール抑止リスト1009への登録処理を終了する。
図14は、リコール制御プログラム1007が、リコール処理を行う際のフローチャートを示す。
前述したとおり、リコール制御プログラム1007はファイルのリコール処理を制御する。リコール制御プログラム1007がリコール処理を実行する手順/方法を以下に述べる。
ファイル共有サーバプログラム1003はクライアント計算機300からファイルへのアクセスがあった場合、当該ファイルのファイル(パス)名とアクセスを要求したクライアントのクライアント名をリコール制御プログラム1007に通知する。実施形態では、ファイル共有サーバプログラム1003がファイルのオープンをファイルシステムプログラム1011に要求する際に、リコールプラグラム1007への通知を行う。通知のタイミングはファイル共有サーバプログラム1003がファイルシステムプログラムにファイルのリード/ライトを要求するときでも良い。
通知を受け取ったリコール制御プログラム1007は、当該ファイルのファイル名と、当該クライアントのクライアント名がリコール抑止リスト1009のエントリに登録されていないかをチェックする。もし、エントリに登録されていなかった場合、リコール制御プログラム1007はファイル共有クライアント1003を用いて、セカンダリファイルサーバ200からファイルをリコールする。もし、エントリに登録されていた場合は、ファイルのリコールを行わない。
以下、リコール処理のフローチャートを説明する。
ステップ8010において、リコール制御プログラム1007は、ファイル共有サーバプログラム1003から、ファイルアクセスの通知を受領する。通知にはファイルにアクセスしてきたクライアントのクライアント名とアクセス対象のファイル名が含まれる。
ステップ8020において、リコール制御プログラム1007は、リコール抑止リスト1009をチェックし、リコール抑止リスト1009にアクセス対象のファイルとアクセスを要求したクライアントがエントリに登録されているかを確認する。
もし、リコール抑止リストに登録されていた場合(ステップ8020:YES)、レポーティングログ1010にファイルアクセスがあったことを記録し(ステップ8060)、リコール処理を終了する。
もし、リコール抑止リストに登録されていなかった場合(ステップ8020:NO)、当該ファイルがスタブかどうかを判定する(ステップ8030)。
もし、スタブでなかった場合(ステップ8030:NO)、レポーティングログ1010にファイルアクセスがあったことを記録し(ステップ8060)、リコール処理を終了する。
もし、当該ファイルがスタブであった場合(ステップ8030:YES)、リコール制御プログラム1007は、スタブに対応するファイルのデータをセカンダリファイルサーバ200から取得し(ステップ8040)、当該ファイルのスタブを通常のファイルに戻す(具体的には、ファイルシステムプログラム1011を用いて、is_stubエントリの値を0にし、block_numberエントリが示すブロックに、セカンダリファイルサーバ200から取得したファイルのデータを書き込む)。(ステップ8050)。そして、レポーティングログ1010にファイルアクセスがあったことを記録し(ステップ8060)、リコール処理を終了する。
図15は、ファイルシステムプログラム1011が、ファイルに対するリード/ライト要求を処理する際のフローチャートを示す。
ステップ9010において、ファイルシステムプログラム1011はファイル共有サーバプログラム1003からリード/ライト要求を受領する。
ステップ9020において、ファイルシステムプログラムは、リード/ライトを要求されたファイルがスタブかどうかを判定する。
ファイルがスタブでなかった場合(ステップ9020:NO)、ファイルシステムプログラム1011は、そのファイルに対して、リード/ライト処理を実行し(ステップ9035)、処理の結果をファイル共有サーバプログラム1003に返す(ステップ9050)。
ファイルがスタブであった場合(ステップ9020:YES)、ファイルシステムプログラム1011は、スタブがリコール抑止リストに登録されているかを判断する。
スタブがリコール抑止リストに登録されている場合(ステップ9025:YES)、inodeのblock_numberエントリが示すブロックから、スタブに対応するファイルが格納されているセカンダリファイルサーバ200上でのパスを得る(ステップ9030)。そして、そのパスのファイルに対して、ファイル共有クライアントプログラム1002によって、リード/ライト処理を実行(ステップ9040)する。セカンダリファイルサーバ200に格納されたファイルへのリード/ライト処理は次のようにして行う。ファイルシステムプログラム1011はリード/ライトの処理をそのファイルに対して行う。例えば、スタブ化した/home/user1/aaa.txtに対応するファイルがセカンダリファイルサーバ200の/export/archive/home/user1/aaa.txtに保存されていた場合、ファイルシステムプログラム1011は、ファイル共有クライアントプログラム1002を用いて、/export/archive/home/user1/aaa.txtに対して、リード/ライト処理を行う。
そして、ファイルシステムプログラム1011は、処理の結果をファイル共有サーバプログラム1003に返す(ステップ9050)。その後、ファイル共有サーバプログラム1003は、当該処理の結果をクライアント計算機300に返答する。この場合、セカンダリファイルサーバ200から、ファイルをクライアント計算機に転送する際に、プライマリファイルサーバ100のメモリ102に当該ファイルを格納し、クライアント計算機300に返答する。これにより、リコールが抑止されているファイルをプライマリファイルサーバ100に格納することなく、クライアント計算機300に返答することができる。
スタブがリコール抑止リストに登録されていない場合(ステップ9025:NO)、セカンダリファイルサーバ200に格納されたファイルを、プライマリファイルサーバ100にリコールする(ステップ9060)。リコール処理は、図14にて説明したものと同様である。そして、リコールしたファイルに対して、リード/ライト処理を実行する(ステップ9070)。その後、クライアント計算機300に返答する。
レポーティングプログラム1008は、レポーティングログ1010に保存されている情報をレポーティング情報に加工し、管理者に提示する。管理者はレポーティング情報から、ファイルへのアクセスパターンを把握し、アプリケーションが期待通りにファイルのリコール抑止を行っているかを確認することができる。
図16は、レポーティングログ1010のフォーマットを示す。
"action"(カラム930)にはクライアントが行った操作が記録される。ファイルへのアクセスであった場合は「アクセス」、ファイルへのリコール抑止開始処理であった場合は「リコール抑止開始」、ファイルへのリコール抑止解除処理であった場合は「リコール抑止解除」が記録される。"host name"(カラム910)には操作をおこなったクライアントのクライアント名が保存される。"file name"(カラム920)には操作対象のファイルのファイル名が保存される。"time"(カラム940)には操作を行った時刻が保存される。レポートログ1010は図13のステップ7060、図14のステップ8060のタイミングで、ファイル共有サーバプログラム1003、リコール制御プログラム1007によって更新される。
図17は、レポーティングプログラム1008がプライマリファイルサーバ100の管理者に提示するレポーティング情報の例である。
レポーティングプログラム1008は、レポーティングログ1010を解析し、グラフ705を、プライマリファイルサーバ100の管理者に提示する。グラフ705は記憶装置103に保存されているファイルごとに作成される。
グラフの横軸710は時間経過を表す。タイムチャート715がクライアント毎に作成され、クライアントが各操作を行った時刻を確認することができる。グラフに表示する時刻は時刻入力フィールド740にして指定することができる。OKボタン750を押すと、時刻入力フィールドに入力した時刻のグラフが表示される。閉区間720はクライアントがファイルのリコールを抑止している期間、即ち、リコールの抑止を開始してから終了するまでの期間を表す。ポイント730はクライアントがファイルにアクセスした時刻を表す。タイムチャートは図に示すようにクライアント毎に表示する。グラフを表示するウインドウ700はcloseボタン760かボタン770をクリック押下することで、閉じることができる。
グラフは、LAN400に接続する管理計算機(図2には示していない)またはプライマリファイルサーバ100の画面出力装置(図2には示していない)に表示する。
図18は、グラフを表示するファイルを選択するためのGUIウインドウの例である。
グラフを表示するファイルはウインドウ800から選択することが出来る。グラフを表示したいファイルのチェックボックス805をチェックし、showボタン810を押下することで、図17に示すようなグラフを表示する。closeボタン820かボタン830を押すことで、ウインドウ800を閉じることができる。
プライマリファイルサーバ100の管理者は図17に示すタイムチャートを確認することで、プライマリファイルサーバ100に接続するアプリケーションの挙動を監視することが出来る。例えば、リコールの抑止期間に同クライアントから何回もファイルアクセスがあった場合、アプリケーションは期待通りの動作をしていないと、判定することができる。
また、レポーティングプログラム1008はレポーティング情報に基づき、リコール抑止の解除を行うことができる。レポーティングプログラム1008は、レポーティングログ1010を定期的に解析する。あるクライアントがあるファイルのリコールを抑止している期間に、当該クライアント計算機300から一定回数以上、当該ファイルにアクセスがあった場合、当該ファイルはプライマリストレージ100にリコールするのが適切である。この場合、アプリケーション3001が適切にリコールを制御していないと判定し、リコール抑止リスト1009から、当該ファイルと当該クライアントのエントリを削除する。そして、当該ファイルをセカンダリファイルサーバ200から、プライマリファイルサーバ100へリコールする。クライアント計算機300から、リコール抑止されているファイルへのアクセスが一定回数以上になったことを契機に、リコール抑止の解除を行ってもよい。また、管理者が強制的にリコール抑止の解除を行うこともできる。
1つのクライアント計算機300上で複数のアプリケーション3001が動作している場合、1つのアプリケーション3001がファイルのリコール抑止を行っていても、他のアプリケーション3001から当該ファイルにアクセスがあれば、リコール抑止の解除が行われる。
これにより、リコールが抑止されているファイルであっても、再アクセスされるファイルはリコールされ、適切なリコール制御ができる。
第1の実施例では、リコールを制御する処理として、"<file_name>.norc"(<file_name>はリコールを抑止するファイルのファイル(パス)名)の作成/削除処理を挙げたが、他の特定の処理をリコール制御処理としてもよい。他の実施例を以下に述べる。
第2の実施例ではACL(Access Control List)へのACE(Access Control Entry)の追加/削除処理をリコール制御処理とする。
ACLはファイルに対する各ユーザのアクセス権限を管理するリストであり、ACEをエントリとして持つ。ACEには各ユーザのファイルに対するアクセス権限が定義されている。サーバは、ACLによって、各ユーザのファイルに対するアクセス権限を管理することが出来る。NFS、CIFSのプロトコルは、リモートサーバからのACEの追加をサポートしている。
第2の実施例では特定のuidのユーザに対するACEへの追加/削除処理を、リコール抑止の開始/終了処理とする。uidはサーバを利用するユーザにユニークに割り振られるidであり、サーバはuidによって、ユーザを識別する。ここで用いる特定のuidには固定の値を用いてもいいし、プライマリファイルサーバ100の管理者が設定できるようにしても良い。ただし、接続するプライマリファイルサーバ100に実際には存在しないユーザのuidを用いることとする。ここでは仮に、uid=1000として説明する。
アプリケーション3001はあるファイルのリコール抑止を開始したい場合、uid=1000に対するACEを作成し、そのファイルのACLに追加する。ACEに登録するアクセス権限の内容は、特に限定しない。例えば、/tmp/bbb.docというファイルのリコール抑止を開始したい場合、アプリケーション3001はuid=1000に対するACEを作成し、/tmp/bbb.docのACLに追加する処理をファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム3003にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003はACEの追加を依頼するコマンドを作成し、ファイル共有サーバプログラム1003に送信する。ACEの追加を依頼するコマンドを受信したファイル共有サーバプログラム1003はそのコマンドが、/tmp/bbb.docのリコール抑止開始を通知するメッセージだと解釈し、リコール抑止リスト1009への登録処理を行う。ファイル共有サーバは実際にはACLへの登録は行わない。
アプリケーション3001はあるファイルのリコール抑止を解除したい場合、uid=1000に対するACEを削除する処理をファイルシステムプログラム3002に要求する。 例えば、/tmp/bbb.docのリコール抑止を解除したい場合、アプリケーション3001は、uid=1000に対するACEを/tmp/bbb.docのACLから削除する処理をファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム3003にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003はACEの削除を依頼するコマンドを作成し、ファイル共有サーバプログラム1003に送信する。ACEの削除を依頼するコマンドを受信したファイル共有サーバ3003はそのコマンドを、/tmp/bbb.docのリコール抑止解除を通知するメッセージだと解釈し、リコール抑止リスト1009への削除処理を行う。
第3の実施例ではファイルのatimeを変更する処理をリコール制御処理とする。atimeを現在時刻より1年後に変更するコマンドをリコール抑止の開始通知とし、1年前に変更するコマンドをリコール抑止の解除通知とする。
アプリケーション3001はあるファイルのリコール抑止を開始したい場合、そのファイルのatimeを現在時刻より1年後に設定する処理を行う。例えば、/tmp/bbb.docというファイルのリコール抑止を開始したい場合、アプリケーション3001は/tmp/bbb.docのatimeを現在時刻から1年後に変更する処理をファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム3003にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003は/tmp/bbb.docのatimeを1年後に変更するコマンドを作成し、ファイル共有サーバプログラム1003に送信する。atimeを1年後に変更するコマンドを受信したファイル共有サーバプログラム1003はそのコマンドが、/tmp/bbb.docのリコール抑止開始を通知するメッセージだと解釈し、リコール抑止リスト1009への登録処理を行う。ファイル共有サーバは実際には、atimeの変更を行わない。
アプリケーション3001はあるファイルのリコール抑止を解除したい場合、そのファイルのatimeを現在時刻から、1年前に変更する処理を行う。例えば、/tmp/bbb.docのリコール抑止を解除したい場合、アプリケーション3001は、/tmp/bbb.docのatimeを1年前に変更する処理をファイルシステムプログラム3002に要求する。ファイルシステムプログラム3002はファイル共有クライアントプログラム3003にコマンドの作成を依頼する。ファイル共有クライアントプログラム3003は/tmp/bbb.docのatimeを1年前に変更するコマンドを作成し、ファイル共有サーバプログラム1003に送信する。atimeを1年前に変更するコマンドを受信したファイル共有サーバ3003はそのコマンドを、/tmp/bbb.docのリコール抑止解除を通知するメッセージだと解釈し、リコール抑止リスト1009への削除処理を行う。
以上にあげた実施例では、NFS、CIFSプログラムを、クライアント計算機300とプライマリサーバ100のファイル共有プログラムとして想定しているが、他のファイル共有プログラムのプロトコルを用いて、アプリケーション3001が、プライマリファイルサーバ100上のファイルに、リコール制御処理を行っても良い。
また、これまで述べてきた発明の実施形態では、2台のファイルサーバを用いて階層化ストレージを構築していたが、1台のファイルサーバに異なる特徴を持つ記憶装置を混在させる形態をとっても良い。例えば、SSDとテープ装置を一台のファイルサーバに搭載し、アクセス回数の少ないファイルをSSDからテープ装置にマイグレーションするという形態をとる階層化ストレージにも本発明は適用可能である。
また、これまで述べてきた発明の実施形態では階層化ストレージを構築するストレージシステムは2台であったが、2台以上のストレージシステムを用いた階層化ストレージにも本発明は適用可能である。
以上、本発明の実施形態によれば、クライアント300上のアプリケーション3001が、セカンダリファイルサーバ200上のファイルにアクセスする際に、アクセス対象のファイルのリコールを抑止し、ファイルがプライマリファイルサーバ100にリコールされるのを防止することができる。
例えば、アプリケーション3001がアンチウイルスソフトであり、プライマリファイルサーバ100上の全ファイルのスキャンを行う場合、アンチウイルスソフトが、事前にスキャン対象のファイルのリコールを抑止することで、ファイルが大量にリコールされるのを防ぐことができる。さらに、リコールを抑止したファイルに一定回数以上のアクセスがあった場合、リコールを行う。これにより、より適切にファイルを配置することができる。
このように、本発明を用いることで、階層化ストレージにおけるプライマリストレージの容量の効率的な利用、ファイルの不要なコピー削減という効果を得ることが出来る。
10:プライマリファイルサーバ
11:プライマリストレージ
12:ファイル共有サービス提供部
13:マイグレーション制御部
14:リコール制御部
15:リコール抑止リスト
16:レポーティング機能提供部
20:セカンダリファイルサーバ
21:セカンダリストレージ
22:ファイル共有サービス提供部
30:クライアント
31:アプリケーション
1002:ファイル共有クライアントプログラム
1003:ファイル共有サーバプログラム
1005:HSMプログラム
1006:マイグレーション制御プログラム
1007:リコール制御プログラム
1008:レポーティングプログラム
1009:リコール抑止リスト
1010:レポーティングログ
1011:ファイルシステムプログラム
2001:ファイル共有サーバプログラム
2002:ファイルシステムプログラム
3001:アプリケーション
3002:ファイルシステムプログラム
3003:ファイル共有クライアントプログラム

Claims (19)

  1. クライアント計算機と、
    前記クライアント計算機に接続され、第一の記憶装置を有する、第一のストレージ装置と、
    前記第一のストレージ装置に接続され、第二の記憶装置を有する、第二のストレージ装置と、
    を備える階層化ストレージシステムであって、
    前記第一の記憶装置は、前記第一の記憶装置から移動され、前記第二の記憶装置に格納されたファイルの格納場所を示す情報を有する、スタブファイルを格納し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルへのアクセス要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルの前記第一の記憶装置へのコピーを抑止する指示を受信し、
    前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求を受信した場合、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答することを特徴とする階層化ストレージシステム。
  2. 前記第一のストレージ装置は、前記クライアント計算機からのアクセス要求の対象が、
    前記ファイルか、前記スタブファイルかを判定することを特徴とする請求項1記載の階層化ストレージシステム。
  3. 前記第一のストレージ装置は、
    前記クライアント計算機から、ライト要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して、前記ライト要求を処理し、前記クライアント計算機に応答し、
    前記クライアント計算機から、前記コピー抑止指示を受けているスタブファイルへのライト要求を受信した場合、
    前記第二の記憶装置に格納されているファイルに対して、前記ライト要求を処理し、前記クライアント計算機に応答する、
    ことを特徴とする請求項2記載の階層化ストレージシステム。
  4. 前記第一のストレージ装置は、
    前記クライアント計算機から、リード要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して、前記リード要求を処理し、前記クライアント計算機に応答し、
    前記クライアント計算機から、前記コピー抑止指示を受けているスタブファイルへの前記リード要求を受信した場合、
    前記第二の記憶装置に格納されているファイルに対して、前記リード要求を処理し、前記クライアント計算機に応答する、
    することを特徴とする請求項3記載の階層化ストレージシステム。
  5. 前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求が、所定の回数以上である場合、
    前記第一のストレージ装置は、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルを、前記第一の記憶装置にコピーすることを特徴とする請求項4記載の階層化ストレージシステム。
  6. 前記第一のストレージ装置は、前記クライアント計算機から、前記コピー抑止を解除する指示を受信した場合に、前記クライアント計算機から、前記スタブファイルへのアクセス要求を受信すると、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルを、前記第一の記憶装置にコピーし、前記クライアント計算機に応答することを特徴とする請求項5記載の階層化ストレージシステム。
  7. 前記第一のストレージ装置は、前記第二の記憶装置に格納されているファイルまたは前記スタブファイル毎に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイルへの、前記コピー抑止指示日時と、前記コピー抑止解除日時と、前記クライアント計算機からのアクセス日時と、を記録することを特徴とする、請求項6記載の階層化ストレージシステム。
  8. 前記第一のストレージ装置は、画面表示装置を有し、
    前記画面表示装置に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイル毎に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイルへの、前記コピー抑止指示日時と、前記コピー抑止解除日時と、前記クライアント計算機
    らのアクセス日時と、を表示することを特徴とする請求項7記載の階層化ストレージシステム。
  9. 前記第一の記憶装置は、記憶容量は少ないがアクセスが高速なストレージ装置であり、
    前記第二の記憶装置は、記憶容量が大きいがアクセスが低速なストレージ装置であることを特徴とする請求項8記載の階層化ストレージシステム。
  10. クライアント計算機と、
    前記クライアント計算機に接続され、第一の記憶装置を有する、第一のストレージ装置
    と、
    前記第一のストレージ装置に接続され、第二の記憶装置を有する、第二のストレージ装置と、
    を備える階層化ストレージシステムであって、
    前記第一の記憶装置は、前記第一の記憶装置から移動され、前記第二の記憶装置に格納されているファイルの格納場所を示す情報を有する、スタブファイルを格納し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルへのアクセス要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルの前記第一の記憶装置へのコピーを抑止する指示を受信し、
    前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求を受信した場合、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答することを特徴とする階層化ストレージシステムにおけるファイルのコピー制御方法。
  11. 前記第一のストレージ装置は、前記クライアント計算機からのアクセス要求の対象が、
    前記ファイルか、前記スタブファイルかを判定することを特徴とする請求項10記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  12. 前記第一のストレージ装置は、
    前記クライアント計算機から、ライト要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して、前記ライト要求を処理し、前記クライアント計算機に応答し、
    前記クライアント計算機から、前記コピー抑止指示を受けているスタブファイルへのライト要求を受信した場合、
    前記第二の記憶装置に格納されているファイルに対して、前記ライト要求を処理し、前記クライアント計算機に応答する、
    ことを特徴とする請求項11記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  13. 前記第一のストレージ装置は、
    前記クライアント計算機から、リード要求を受信した場合、
    前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して、前記リード要求を処理し、前記クライアント計算機に応答し、
    前記クライアント計算機から、前記コピー抑止指示を受けているスタブファイルへの前記リード要求を受信した場合、
    前記第二の記憶装置に格納されているファイルに対して、前記リード要求を処理し、前記クライアント計算機に応答する、
    することを特徴とする請求項12記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  14. 前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求が、所定の回数以上である場合、
    前記第一のストレージ装置は、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルを、前記第一の記憶装置にコピーすることを特徴とする請求項13記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  15. 前記第一のストレージ装置は、前記クライアント計算機から、前記コピー抑止を解除する指示を受信した場合に、前記クライアント計算機から、前記スタブファイルへのアクセス要求を受信すると、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルを、前記第一の記憶装置にコピーし、前記クライアント計算機に応答することを特徴とする請求項14記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  16. 前記第一のストレージ装置は、前記第二の記憶装置に格納されているファイルまたは前記スタブファイル毎に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイルへの、前記コピー抑止指示日時と、前記コピー抑止解除日時と、前記クライアント計算機からのアクセス日時と、を記録することを特徴とする、請求項15記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  17. 前記第一のストレージ装置は、画面表示装置を有し、
    前記画面表示装置に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイル毎に、前記第二の記憶装置に格納されているファイルまたは前記スタブファイルへの、前記コピー抑止指示日時と、前記コピー抑止解除日時と、前記クライアント計算機からのアクセス日時と、を表示することを特徴とする請求項16記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  18. 前記第一の記憶装置は、記憶容量は少ないがアクセスが高速なストレージ装置であり、
    前記第二の記憶装置は、記憶容量が大きいがアクセスが低速なストレージ装置であることを特徴とする請求項17記載の階層化ストレージシステムにおけるファイルのコピー制御方法。
  19. クライアント計算機と、
    前記クライアント計算機に接続され、第一の記憶装置を有する、第一のストレージ装置と、
    前記第一のストレージ装置に接続され、第二の記憶装置を有する、第二のストレージ装置と、
    を備える階層化ストレージシステムであって、
    前記第一の記憶装置は、記憶容量は少ないがアクセスが高速であり、
    前記第二の記憶装置は、記憶容量が大きいがアクセスが低速であり、
    前記第一の記憶装置は、前記第一の記憶装置から移動され、前記第二の記憶装置に格納されているファイルの格納場所を示す情報を有する、スタブファイルを格納し、
    前記第一のストレージ装置は、前記クライアント計算機からのアクセス要求の対象が、
    前記第二の記憶装置に格納されているファイルか、前記第一の記憶装置に格納されているスタブファイルかを判定し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルへのアクセス要求を受信した場合、前記第二の記憶装置に格納されているファイルを前記第一の記憶装置にコピーし、前記第一の記憶装置にコピーされたファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答し、
    前記第一のストレージ装置は、
    前記クライアント計算機から、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルの前記第一の記憶装置へのコピーを抑止する指示を受信し、
    前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求を受信した場合、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答し、
    前記第一のストレージ装置は、前記クライアント計算機から、前記第一の記憶装置に格納されているファイルへのアクセス要求を受信した場合、前記第一の記憶装置に格納されているファイルに対して前記クライアント計算機からのアクセス要求を処理し、前記クライアント計算機に応答し、
    前記クライアント計算機から、前記コピー抑止指示を受けたスタブファイルへのアクセス要求が、所定の回数以上である場合、前記第一のストレージ装置は、前記スタブファイルに対応する、前記第二の記憶装置に格納されているファイルを、前記第一の記憶装置にコピーすることを特徴とする階層化ストレージシステム。
JP2009182991A 2009-08-06 2009-08-06 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法 Expired - Fee Related JP5586892B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009182991A JP5586892B2 (ja) 2009-08-06 2009-08-06 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法
US12/575,138 US20110035409A1 (en) 2009-08-06 2009-10-07 Hierarchical storage system and copy control method of file for hierarchical storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009182991A JP5586892B2 (ja) 2009-08-06 2009-08-06 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法

Publications (2)

Publication Number Publication Date
JP2011034525A JP2011034525A (ja) 2011-02-17
JP5586892B2 true JP5586892B2 (ja) 2014-09-10

Family

ID=43535601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009182991A Expired - Fee Related JP5586892B2 (ja) 2009-08-06 2009-08-06 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法

Country Status (2)

Country Link
US (1) US20110035409A1 (ja)
JP (1) JP5586892B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8983910B1 (en) 2010-04-01 2015-03-17 Symantec Corporation Systems and methods for adaptively selecting file-recall modes
US8396843B2 (en) * 2010-06-14 2013-03-12 Dell Products L.P. Active file instant cloning
US8661067B2 (en) * 2010-10-13 2014-02-25 International Business Machines Corporation Predictive migrate and recall
US8984225B2 (en) 2011-06-22 2015-03-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Method to improve the performance of a read ahead cache process in a storage array
US20130024421A1 (en) * 2011-07-22 2013-01-24 Hitachi, Ltd. File storage system for transferring file to remote archive system
US8538924B2 (en) * 2011-08-31 2013-09-17 Hitachi, Ltd. Computer system and data access control method for recalling the stubbed file on snapshot
US8706961B2 (en) 2011-10-31 2014-04-22 Hitachi, Ltd. Storage apparatus and data management method
US20140188957A1 (en) * 2012-11-30 2014-07-03 Hitachi, Ltd. Hierarchical storage system and file management method
US9104876B1 (en) * 2014-01-29 2015-08-11 Flexera Software Llc Virtual file-based tamper resistant repository
JP6005116B2 (ja) 2014-09-30 2016-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 特定のアプリケーションによってリコールされたファイルの自動化されたマイグレーション
JP6075571B2 (ja) 2014-10-31 2017-02-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 階層型ストレージ・システムでのファイルの移動方法
CA2972706C (en) * 2015-01-30 2018-01-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US10977209B2 (en) * 2017-10-23 2021-04-13 Spectra Logic Corporation Bread crumb directory with data migration
US10834190B2 (en) * 2018-01-18 2020-11-10 Portworx, Inc. Provisioning of clustered containerized applications
US11258853B2 (en) * 2018-05-04 2022-02-22 EMC IP Holding Company, LLC Storage management system and method
US20210037112A1 (en) * 2019-07-29 2021-02-04 Commvault Systems, Inc. Data storage system with rapid restore capability
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101039A (ja) * 1999-10-04 2001-04-13 Kubota Corp 階層ストレージ管理装置
DE10034734A1 (de) * 2000-07-17 2002-01-31 Accenture Gmbh Web-basierte, automatisierte Schnittstelle zwischen Informationsanbietern und einem Electronic Payment Provider
US7225211B1 (en) * 2003-12-31 2007-05-29 Veritas Operating Corporation Multi-class storage mechanism
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
WO2006131978A1 (ja) * 2005-06-10 2006-12-14 Fujitsu Limited Hsm制御プログラム、装置及び方法
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
JP2007310569A (ja) * 2006-05-17 2007-11-29 Hitachi Ltd 情報配置決定方法の評価方法及び評価プログラム
JP5082310B2 (ja) * 2006-07-10 2012-11-28 日本電気株式会社 データ移行装置及びプログラム
JP2008269300A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd 計算機システム、中間ノードおよびログ管理方法
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device

Also Published As

Publication number Publication date
US20110035409A1 (en) 2011-02-10
JP2011034525A (ja) 2011-02-17

Similar Documents

Publication Publication Date Title
JP5586892B2 (ja) 階層化ストレージシステム及び階層化ストレージシステムにおけるファイルのコピー制御方法
US8209498B2 (en) Method and system for transferring duplicate files in hierarchical storage management system
JP5608811B2 (ja) 情報処理システムの管理方法、及びデータ管理計算機システム
JP4168626B2 (ja) 記憶装置間のファイル移行方法
US7181583B2 (en) Method and program for creating a snapshot, and storage system
US8364645B2 (en) Data management system and data management method
US20180018099A1 (en) Systems and methods for performing storage operations using network attached storage
US8170990B2 (en) Integrated remote replication in hierarchical storage systems
US8572164B2 (en) Server system and method for controlling information system
JP5514903B2 (ja) ファイルレベル階層ストレージ管理システム、方法、及び装置
US7664785B2 (en) Method and apparatus of WAFS backup managed in centralized center
US20070220029A1 (en) System and method for hierarchical storage management using shadow volumes
JP5541149B2 (ja) スナップショット採取プログラム、サーバおよびスナップショット採取方法
US20110213814A1 (en) File management sub-system and file migration control method in hierarchical file system
JP4278452B2 (ja) 計算機システム
US20070214384A1 (en) Method for backing up data in a clustered file system
WO2007075570A2 (en) Permanent storage appliance
US9760457B2 (en) System, method and computer program product for recovering stub files
JP2007183703A (ja) データの改竄を防止する記憶装置
JP2015527620A (ja) 計算機システム、サーバ、及び、データ管理方法
JP5212921B2 (ja) ファイルサーバシステム及びファイル管理方法
US7516133B2 (en) Method and apparatus for file replication with a common format
JP2005267599A (ja) ストレージエリアネットワークとネットワークアタチドストレージの混在環境でのデータの書き込み保護

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140128

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: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140723

LAPS Cancellation because of no payment of annual fees