JP2010225024A - ストレージ装置とそのファイル制御方法およびストレージシステム - Google Patents

ストレージ装置とそのファイル制御方法およびストレージシステム Download PDF

Info

Publication number
JP2010225024A
JP2010225024A JP2009073435A JP2009073435A JP2010225024A JP 2010225024 A JP2010225024 A JP 2010225024A JP 2009073435 A JP2009073435 A JP 2009073435A JP 2009073435 A JP2009073435 A JP 2009073435A JP 2010225024 A JP2010225024 A JP 2010225024A
Authority
JP
Japan
Prior art keywords
file
file system
hierarchical
new
request
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.)
Pending
Application number
JP2009073435A
Other languages
English (en)
Inventor
Nobumitsu Takaoka
伸光 高岡
Hitoshi Kamei
仁志 亀井
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 JP2009073435A priority Critical patent/JP2010225024A/ja
Priority to US12/489,055 priority patent/US8046391B2/en
Publication of JP2010225024A publication Critical patent/JP2010225024A/ja
Pending legal-status Critical Current

Links

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/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)

Abstract

【課題】 ファイル全体を上書きする場合でも、書き込み速度が低下するのを防止すること。
【解決手段】 NAS装置10は、アクセス要求元の計算機20aから、ファイル180に対するファイルサイズ変更要求を受けたときには、ファイル180の実体であるファイル181が存在するファイルシステム16bによりも、アクセス頻度の高いファイルシステム16aに、ファイル181に関連する新たなファイル182を作成し、新たなファイル182とファイル180との関連付けを実行し、この関連付けを実行したことを条件に、ファイル181を削除し、その後、アクセス要求元から、ファイル180に対するデータ書き込み要求を受けたことを条件に、新たなファイル182に対するデータの書き込み処理を実行する。
【選択図】 図1

Description

本発明は、性能や価格が異なるストレージボリュームに構築されたファイルシステムを効率的に利用するためファイルの管理技術に関する。
計算機システムにおいては様々な種類の記録メディアが使用されている。例えば、計算機システムのハードディスク装置では、SATA (Serial AT Attached)、SAS (Serial Attached SCSI)、FC(Fibre Channel)ドライブ等がある。
SAS、FCドライブは、SATAドライブと比較して、容量あたりの単価が高価であるが、データの書き込みや読み出しはより高速に処理できる。近年はSSD(Solid State Disk)がハードディスク装置より高速かつ高価な記録メディアとして利用されている。これらの高価・高速な記録メディアは、頻繁に更新されるデータの格納に適する。
一方、低価格・低速なドライブは、更新されることが少ないデータの格納に適する。
一般に、総データ量に対して、頻繁に更新されるデータの量は2割程度と言われており、データの更新頻度に応じて使用する記録メディアを使い分けることで、ストレージのコストを抑えることができる。このことに注目し、更新頻度に基づいてファイルを自動的に適したドライブへ移動する階層ファイル管理システムが知られている (特許文献1参照)。
特開2004−295457号公報
ファイルへの書き込み処理の性能(スループット)は、そのファイルが配置されているドライブの性能に基くことが知られている。このため、従来の階層ファイル管理システムでは、ファイルのライフサイクルに応じて、ファイルを高速なドライブから低速なドライブへ移動することが行われている。しかし、低速なドライブに移動したファイル全体を上書きする処理は、移動前のファイルへの書き込み処理よりも遅くなる。この遅延は、サイズの大きなファイル全体を上書きする場合、データの量が多くなるので、特に顕著となる。
本発明は、ファイルに上書き処理を施す際に、ファイルが存在するファイルシステムよりも処理性能の高いファイルシステムでファイルに対する上書き処理を実行することができるストレージ装置とそのファイル制御方法およびストレージシステムを提供することを目的とするものである。
前記目的を達成するため、本発明は、アクセス要求元から、ファイルサイズ変更要求を受けたときには、ファイルサイズ変更要求で指定されたアクセス対象ファイルを基にアクセス対象ファイルの実体である実ファイルを求め、この実ファイルが存在するファイルシステムとは異なるファイルシステムに、実ファイルに関連する新たなファイルを作成し、新たなファイルとアクセス対象ファイルとの関連付けを実行したことを条件に、実ファイルを削除し、その後、アクセス要求元から、アクセス対象ファイルに対するデータ書き込み要求を受けたことを条件に、新たなファイルに対するデータの書き込み処理(上書き処理)を実行することを特徴とする。
本発明によれば、ファイル全体を上書きする場合でもあっても、ファイルに対する上書き処理速度が低下するのを防止することができる。
本発明の一実施例に係るストレージシステムの概要を説明するための構成図である。 本発明の一実施例に係るNAS装置を説明するための構成図である。 本発明の一実施例に係る計算機を説明するための構成図である。 本発明の一実施例に係るNAS装置でのファイルシステムのマウントの概念を説明する構成図である。 本発明の一実施例に係る階層ファイルシステムとファイルシステムの構成および両者の関係を説明する構成図である。 本発明の一実施例に係るマウント管理テーブルを説明するための構成図である。 本発明の一実施例に係る階層管理テーブルを説明するための構成図である。 本発明の一実施例に係るファイル管理情報を説明するための構成図である。 本発明の一実施例に係る階層ファイルシステム管理情報を説明するための構成図である。 本発明の一実施例に係るNAS装置のファイル一覧取得処理を説明するためのフローチャートである。 本発明の一実施例に係るNAS装置のファイルリード処理を説明するためのフローチャートである。 本発明の一実施例に係るファイル切り詰め処理を説明するためのフローチャートである。 本発明の一実施例に係る階層ファイルシステム処理プログラムのファイル切り詰め処理を説明するためのフローチャートである。 本発明の一実施例に係るファイル切り詰め処理完了後のファイル管理情報を説明する構成図である。 本実施例におけるファイルライト処理を説明するためのフローチャートである。
以下、本発明に係るストレージシステムの構成を図面に基づいて説明する。なお、以下に説明する実施例は、特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
〈概要〉
まず、本発明に係るストレージシステムの概要を説明する。ストレージシステムは、計算機と、記憶装置と、計算機と記憶装置にそれぞれ通信ネットワークを介して接続されたファイルサーバを備え、ファイルサーバは、計算機からのファイルサイズ変更要求に応答して、ファイルサイズ変更要求で指定されたアクセス対象ファイルを基にアクセス対象ファイルの実体である実ファイルを求め、この実ファイルが存在するファイルシステムとは異なる、処理性能の高いファイルシステムに、実ファイルに関連する新たなファイルを作成し、新たなファイルとアクセス対象ファイルとの関連付けを実行したことを条件に、実ファイルを削除し、その後、アクセス要求元から、アクセス対象ファイルに対するデータ書き込み要求を受けたことを条件に、新たなファイルに対するデータの書き込み処理を実行する。
図1は、本発明に係るストレージシステムの概要を説明するための構成図である。
ストレージシステム1は、ファイルサーバとしてのNAS(Network Attached Storage)装置10、計算機20a、20b、記憶装置30a、30bからなる。また、ストレージシステム1を制御するための管理用計算機(図示せず)を有している。NAS装置10は、計算機20aおよび20bとは、通信ネットワーク、例えば、LAN(Local Area Network)41により接続し、記憶装置30aおよび30bとは、通信ネットワーク、例えば、SAN(Storage Area Network)42により接続する。
記憶装置30aは、ボリューム31aを有している。記憶装置30bは、ボリューム31bを有している。これらのボリューム31aおよび31bは、NAS装置10がデータを格納するための記憶領域として利用する。ボリューム31aは、ボリューム31bと比較して、データ読み出しおよびデータ書き込みが高速に処理できるボリュームとして構成されている。
例えば、データの論理的記憶領域として、処理性能、例えば、アクセス頻度の相異なるグループに分けて複数のボリュームを構成した場合、ボリューム31aは、記憶装置30aの記憶領域に構築されたボリュームであって、ボリューム31bよりもアクセス頻度が高く、処理速度が高速なグループ(高位のグループ)に属するボリュームとして構成され、ボリューム31bは、記憶装置30bの記憶領域に構築されたボリュームであって、ボリューム31aよりもアクセス頻度が低く、処理速度が低速なグループ(低位のグループ)に属するボリュームとして構成されている。
NAS装置10は、記憶装置30aおよび30bとともに、ストレージ装置を構成し、ボリューム31aおよび31b上に階層化されて構築されたファイル群やディレクトリ群を含むファイルシステム16aおよび16bを有する。これらのファイルシステム16aおよび16bは、それぞれボリューム31aおよびボリューム31b上に構築される。ファイルシステム16aおよび16bはそれぞれ統合されて仮想的に階層化された階層ファイルシステム160としてNAS装置10に配置されている。
階層ファイルシステム160は、例えば、計算機20aが階層ファイルシステム160にアクセスすることで、ファイルシステム16aと16bに格納されているファイルおよびディレクトリにアクセスできるように構成されている。
この際、階層ファイルシステム160が、計算機20aに存在するアプリケーションプログラム等のアクセス要求元に対して、ファイルシステム16aおよび16bに格納されているファイルおよびディレクトリをアクセスさせる場合のルールを以下に示す。
(1) ファイルシステム16aまたは16bに格納されているファイルおよびディレクトリは、あたかも階層ファイルシステム160に格納されているファイルおよびディレクトリであるかのように現出する。
(2) (1)のファイルおよびディレクトリのパス名は、階層ファイルシステム160においても変わらない。例えば、ファイルシステム16aにおいて、”dir/file.txt”のパス名を持つファイルは、階層ファイルシステム160においても同じく”dir/file.txt”のパス名でアクセスできる。
(3) ファイルシステム16aおよび16bに同じパス名のディレクトリがある場合、階層ファイルシステム160におけるそのディレクトリには、ファイルシステム16aおよび16bの前記のディレクトリに含まれる全てのファイルが現出する。
(4) 階層ファイルシステム160において、ファイルに対するリードアクセスを行った場合、そのファイルが実際に格納されているファイルシステム16aまたは16bの同じパス名のファイルからデータが読み出される。ライトアクセスについても同様に処理される。
また、NAS装置10は、ファイル共有17を有している。ファイル共有17は、階層ファイルシステム160を、計算機20aおよび20bからアクセスできるようにする(公開する)機能である。ファイル共有17と計算機20aおよび20bの間の通信プロトコルとしては、例えば、NFS(Network File System)プロトコル、CIFS(Common Internet File System)プロトコル、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等に代表されるファイル転送プロトコルを使用することができる。
計算機20aおよび20bがファイル共有17を介して階層ファイルシステム160にアクセスする場合、前述のルールに従う。
ここで、計算機20aで動作するアプリケーションプログラム241が、NAS装置10に格納されているS.mpgという名前のファイル180にアクセスする場合について説明する。ファイル180は、計算機20aのアクセス対象ファイルであって、計算機20aからは階層ファイルシステム160に格納されているかのように見えるが、実体は、ファイル181としてファイルシステム16bに格納されている。
計算機20aがファイル180に対してリード/ライト要求を行うと、その要求はファイルシステム16bのファイル181に対して処理される。ファイルシステム16bはボリューム31b上に構築されているので、このリード/ライト要求は、ボリューム31a上に構築されているファイルシステム16aに対する場合よりも低速に処理される。しかし、アプリケーションプログラム241がファイル180を上書き(新しいデータでの完全な書き換え)する場合には、本発明により、ファイル180の実体が、ファイル181としてファイルシステム31bに存在する場合であっても、処理速度の低下を回避できる。
具体的には、アプリケーションプログラム241がファイル180を上書きする場合に、NAS装置10に発行する要求を、上書き要求シーケンス26に示す。上書き要求シーケンス26は、TRUNCATEオペレーション要求261、WRITEオペレーション要求262を含む。TRUNCATEオペレーション要求261は、ファイルのサイズを変更する要求である。ファイルの上書きの場合は、ファイルを空にする(ファイルサイズを0にする)オペコードを含む。WRITEオペレーション要求262は、ファイルへデータを書き込む要求である。
上書き要求シーケンス261に対し、NAS装置10は以下のように動作する。これにより、ファイル180への上書き時の速度低下を防止する。
(1) TRUNCATEオペレーション要求261
(1-1) ファイル共有17は、ファイル180に対するTRUNCATEオペレーション要求261を受領する。
(1-2) ファイル共有17は、階層ファイルシステム160に対し、ファイル180のファイルサイズ切り詰めを要求する。
(1-3) 階層ファイルシステム160は、ファイルサイズ切り詰めの要求を受け、ファイルシステム16aにファイル180と同じパス名でサイズが0のファイル182を作成し、ファイル180の実体を、ファイル181からファイル182に変更する(ゼロコピー移動191)。そして、ファイル182とファイル180との関連付けとして、ファイル180の実体がファイル182であることの関連づけを行う。
(1-4) 階層ファイルシステム160は、ファイルシステム16aのファイル181を削除する。
この時点で、ファイル180の実体は、低速なファイルシステム16bから高速なファイルシステム16a上へ仮想的に移動したこととなる。しかし、ファイル180は、アプリケーションプログラム241のアクセス対象ファイルとして、依然階層ファイルシステム160に存在するため、アプリケーションプログラム241が、ファイル180の実体の移動を認識することはない。
(2) WRITEオペレーション要求262
(2-1) ファイル共有17は、ファイル180に対するWRITEオペレーション要求262を受領する。
(2-2) ファイル共有17は、階層ファイルシステム160に対し、ファイル180へのデータ書き込みを要求する。
(2-3) 階層ファイルシステム160は、ファイル180へデータ書き込み要求を受け、その実体であるファイル182へデータを書き込む(高速なWRITE処理192)。
この時点で、ファイル182はボリューム31a上に構築されたファイルシステム16aにあるため、データの書き込みの遅延は発生しない。
上述したように、NAS装置10は、ファイルサーバとして、計算機20aからのファイルサイズ変更要求を受けたときに、階層ファイルシステム160に属するファイル群の中から、ファイルサイズ変更要求で指定されたアクセス対象ファイル180を抽出し、かつ、階層ファイルシステム160に属する複数のファイルシステムの中から、アクセス対象ファイル180の実体である実ファイル181が属する第一のファイルシステム16bと、実ファイル181の仮想の移動先となる、高速な第二のファイルシステム16aを抽出し、抽出したファイルシステム16aに、新たなファイル182を作成し、新たなファイル182とアクセス対象ファイル180との関連付けを実行したことを条件に、実ファイル181を削除し、その後、アクセス要求元から、アクセス対象ファイル180に対するデータ書き込み要求を受けたことを条件に、新たなファイル182に対するデータの書き込み処理を実行することとしている。
すなわち、アプリケーションプログラム241がファイル180を上書きする場合に、ファイル180の実体が、ファイル181としてファイルシステム31bに存在する場合であっても、上書き要求シーケンス26に応答して、ファイル180の実体を、低速なファイルシステム16bから高速なファイルシステム16aへ仮想的に移動し、その後、WRITEオペレーション要求262で、ファイル180へデータ書き込み要求を受けたときには、ファイル180の実体であるファイル182へデータを書き込むことで、ファイル180全体を上書きするときでも、書き込み速度が低下するのを防止することができる。
以下、本発明の一実施例を図面に基づいて説明する。
〈NAS装置〉
図2は、本発明の一実施例に係るNAS装置10を説明する図である。
NAS装置10は、ネットワークインタフェースコントローラ11と、プロセッサ12と、ホストバスアダプタ13と、記憶装置114と、メモリ14とを有する。ネットワークインタフェースコントローラ11は、LAN41を介して計算機20a、20bとのデータのやり取りを仲介する。ホストバスアダプタ13は、SAN42を介して記憶装置30a、30bとの間のデータのやり取りを仲介する。
プロセッサ12は、メモリ14に格納されたプログラムやデータを用いて各種処理、例えば、計算機20aなどのアクセス要求元からファイルサイズ変更要求を受けたときには、ファイルサイズ変更要求で指定されたアクセス対象ファイルをメモリ14から抽出するための処理などを実行するコントローラとして構成されている。
メモリ14は、プログラムやデータを記憶する。本実施例では、メモリ14は、ファイル共有17に関する処理を実行するためのファイル共有処理プログラム141と、入出力処理等を実行するためのオペレーティングシステム150とを記憶する。オペレーティングシステム150は、マウント管理テーブル142、階層管理テーブル143、ファイル管理情報144を内包し、プログラムとして、ファイルシステム16aおよび16bに関する処理を実行するAngelFS処理プログラム145およびBeastFS処理プログラム146、階層ファイルシステム処理プログラム147、ネットワーク処理プログラム148、ボリュームI/O処理プログラム149を内包する。
AngelFSは、ファイルシステム16aの種類の名称である。BeastFSは、ファイルシステム16bの種類の名称である。
オペレーティングシステム150はまた、階層ファイルシステム160に関する処理を実行する階層ファイルシステム処理プログラム147と、ネットワークに関する処理を実行するネットワーク処理プログラム148と、ボリューム31aおよび31bに対するI/O処理を実行するボリュームI/O処理プログラム149を内包している。
ファイル共有処理プログラム141は、ネットワーク処理プログラム148を利用して、計算機20aおよび20との通信を処理する。
AngelFS処理プログラム145とBeastFS処理プログラム146は、ボリュームI/O処理プログラム149を利用して、ファイルシステム16aまたは16bへのデータ格納および読み出し等の処理を行う。
記憶装置114は、ルートファイルシステム161を格納するルートファイルシステムボリューム1141と、階層ファイルシステム管理情報1143を格納する階層ファイルシステムボリューム1142を備えている。
ルートファイルシステム161は、NAS装置10で動作する各種プログラムを格納する。階層ファイルシステム管理情報1143については後に説明する。
階層ファイルシステム1143は、記憶装置30aや30b等、記憶装置114以外の記憶装置に格納されていてもよい。
〈計算機〉
図3は、本発明の一実施例に係る計算機20aを説明するため構成図である。本実施例では、計算機20bは計算機20aと同じ構成とし、計算機20bの説明は省略する。
計算機20aは、ネットワークインタフェースコントローラ21と、プロセッサ22と、メモリ24とを有する。
ネットワークインタフェースコントローラ21は、LAN41を介してNAS装置10とのデータのやり取りを仲介する。
プロセッサ22は、メモリ24に格納されたプログラムやデータを用いて各種処理を実行する。
メモリ24は、プログラムやデータを記憶する。本実施例では、メモリ24は、アプリケーションプログラム241と、ファイル共有クライアントプログラム242と、オペレーティングシステム250とを記憶する。オペレーティングシステム250は、さらにファイルシステム処理プログラム243と、ネットワーク処理プログラム244を内包する。
アプリケーションプログラム241は、NAS装置10に格納されたファイルのデータを用い、所定の処理を行う。ファイル共有クライアントプログラム242とファイルシステム処理プログラム243は相互に連携して、アプリケーションプログラム241からの要求に応じて、NAS装置10に格納されたファイルの読み書き等の処理を行う。ファイル共有クライアントプログラム242は、ネットワーク処理プログラム244を利用して、NAS装置10とのデータ通信を処理する。
〈マウント〉
図4は、本発明の一実施例に係るNAS装置10でのファイルシステムのマウントの概念を説明する図である。
ファイルシステムのマウントとは、ボリューム上に構成されているファイルシステムを計算機(ここではNAS装置10)において利用可能とする操作を言う。
NAS装置10は一つのディレクトリ構造(ディレクトリ間の包含関係と、ディレクトリとファイルの包含関係)を有している。マウント操作により、NAS装置10のディレクトリ構造に含まれるいずれかのディレクトリに、ファイルシステムを接続できる。ファイルシステムをディレクトリに接続すると、ファイルシステムに格納されているファイルおよびディレクトリは、接続先のディレクトリの配下に現出し、アクセス可能となる。
NAS装置10は、ディレクトリ構造の基底のディレクトリとして、ルートディレクトリ70を定義する。ルートディレクトリ70は、オペレーティングシステム150のファイルシステム管理プログラム(図示せず)が提供する仮想的なディレクトリである。
ルートディレクトリ70には、ルートファイルシステムl61がマウントされる。ルートファイルシステム161は、記憶装置114上に構築されている。ルートファイルシステム161は、ルートファイルシステムディレクトリ構造700を格納する。
以降の説明において、ディレクトリおよびファイルの文言に続く英数字は、そのディレクトリまたはファイルの名前を示す。
ルートディレクトリ70のルートファイルシステムディレクトリ構造700は、トップレベルにディレクトリ(U)71、ディレクトリ(A)72、ディレクトリ(B)73のディレクトリを含む。ルートファイルシステムディレクトリ構造700は、他に図示しないディレクトリやファイルを含む。ディレクトリ(U)71、ディレクトリ(A)72、ディレクトリ(B)73の各ディレクトリは、ルートディレクトリ70の子ディレクトリとしてアクセスできる。
ディレクトリ(A)72には、ボリューム31a上に構成されるファイルシステム16aがマウントされている。ディレクトリ(B)73には、ボリューム31b上に構成されるファイルシステム16bがマウントされている。
ディレクトリ(U)71には、階層ファイルシステム160がマウントされている。階層ファイルシステム160は、後に説明するように、ファイルシステム16aおよび16bを統合するように設定されている。これにより、ディレクトリ(U)71から、ディレクトリ(A)72およびディレクトリ(B)73にマウントされているファイルシステム16aおよび16bに格納されたファイルに対して、前述のルールに従ってアクセスできる。
〈ファイルの見え方〉
図5は、本発明の一実施例に係る階層ファイルシステム160、ファイルシステム16a、ファイルシステム16bの構成および各ファイルの関係を説明するための構成図である。
ファイルシステム16aは、ディレクトリ構造720に関する情報を格納する。ディレクトリ構造720は、ディレクトリMとファイルM1を含む。ディレクトリMは、ファイルシステム16aのトップレベルのディレクトリである。ファイルシステム16aは、ルートファイルシステム161のディレクトリ(A)72にマウントされており、ディレクトリMはディレクトリ(A)72の直下のディレクトリとしてアクセスできる。ファイルM1は、ディレクトリMの直下のファイルである。
ファイルシステム16bは、ディレクトリ構造730に関する情報を格納する。ディレクトリ構造730は、ディレクトリL、ファイルL1、ディレクトリM、ファイルM2、ディレクトリN、ファイルN1、ディレクトリO、ファイルO1を含む。
ディレクトリLとディレクトリMは、低速ファイルシステム16bにおいてトップレベルのディレクトリである。ファイルシステム16bは、ルートファイルシステム161のディレクトリ(B)73にマウントされているため、ディレクトリLとディレクトリMはディレクトリ(B)73の直下のディレクトリとしてアクセスできる。
ディレクトリNはディレクトリMの直下のディレクトリである。ディレクトリOはディレクトリNの直下のディレクトリである。
ファイルL1はディレクトリL1の直下のファイルである。ファイルM2はディレクトリMの直下のファイルである。ファイルN1はディレクトリNの直下のファイルである。ファイルO1はディレクトリOの直下のファイルである。
階層ファイルシステム160は、ディレクトリ構造710に関する情報を仮想的に格納する。ディレクトリ構造710は、ディレクトリL、ディレクトリM、ディレクトリN、ディレクトリO、ファイルL1、ファイルM1、ファイルM2、ファイルN1、ファイルO1を含む。
これまでの説明のように、これらのファイルおよびディレクトリの実体はファイルシステム16aおよびファイルシステム16bに存在し、そのパス名を維持したまま階層ファイルシステム160に現出する。
ディレクトリMは、実体がファイルシステム16aとファイルシステム16bに存在する。このため、階層ファイルシステム160のディレクトリ構造710において、ディレクトリMにはファイルM1、ファイルM2、ディレクトリNを含む。
〈マウント管理テーブル〉
図6は、本発明の一実施例に係るマウント管理テーブル142を説明するための構成図である。
マウント管理テーブル142は、ファイルシステム毎のマウント先のディレクトリを管理するための情報である。
マウント管理テーブルは、FS IDフィールド1421と、ディレクトリフィールド1422と、ボリュームフィールド1423とファイルシステムタイプフィールド1424とを有するレコードを格納する。これらのレコードにより、ファイルシステムとそのマウント先ディレクトリを対応付ける。
FS IDフィールド1421には、ファイルシステムを識別するための情報(FS ID)を格納する。ディレクトリフィールド1422には、ファイルシステムをマウントするディレクトリのパス名を格納する。ボリュームフィールド1423には、ボリュームを識別する情報を格納する。ファイルシステムタイプフィールド1424には、ファイルシステムの種類を格納する。
例えば、図6に示すマウント管理テーブル142の第一レコードは、ファイルシステム16aに関する情報を記録している。このレコードは、FS IDフィールド1421が”0001”であり、ディレクトリフィールド1422が”/ディレクトリ(A)72”であり、ボリュームフィールドが”ボリューム31a”であり、ファイルシステムタイプフィールド1424が”AngelFS”である。
第三レコードは、階層ファイルシステム160に関する情報を記録する。このレコードにおいて、ボリュームフィールド1423には”階層ファイルシステム管理情報1143”が格納される。これは、階層ファイルシステム160のディレクトリ構造が、後述の階層ファイルシステム管理情報1143に格納されていることを示す。
〈階層管理テーブル〉
図7は、本発明の一実施例に係る階層管理テーブル143を説明する図である。
階層管理テーブル143を構成するに際して、
(a)処理性能の高いファイルシステム順に、階層番号を昇順で割り当てる。
(b)階層番号の昇順に、高位のファイルシステムと定義する。
(c)(a)の場合、以下のいずれかの方法により行う。
c−1:NASの管理者がNASに入力する。
c−2:NAS装置が各ファイルシステムの性能測定することで自動的に割
り当てる。
c−3:b−1、b−2を組み合わせる。
階層管理テーブル143は、階層ファイルシステム160と、その階層ファイルシステム16a、16bを形成するファイルシステムとの関係を記録する情報である。
階層管理テーブル143は、FS IDフィールド1431と、階層管理FS IDフィールド1432と、階層番号フィールド1433とを有するレコードを格納する。
例えば、図7に示す階層管理テーブル143の第一レコードは、ファイルシステム16aが階層ファイルシステム160の第一の階層であることを示している。このレコードは、FS IDフィールド1431が高速ファイルシステム16aのFS ID”0001”であり、階層管理FS IDフィールド1432が階層ファイルシステム160のFS ID”1000”であり、階層番号フィールド1433が”1”である。
〈ファイル管理情報〉
図8は、本発明の一実施例に係るファイル管理情報を説明するための構成図である。
ファイル管理情報144には、NAS装置10が管理する各ファイルの情報(ファイル管理構造体)が含まれるが、図8では特にファイル管理構造体80、82、83、84のみを図示している。
ファイル管理構造体80は、ファイルシステム16aに格納されているファイルM1に対応するファイル管理構造体である。
ファイル管理構造体82および83は、それぞれ階層ファイルシステム160に仮想的に格納されているファイルM1およびM2に対応するファイル管理構造体である。
ファイル管理構造体84は、ファイルシステム16bに格納されているファイルM2に対応するファイル管理構造体である。
各ファイル管理構造体には、ファイル名フィールド801、821、831、841と、属性情報フィールド802、822、832、842と、処理定義情報フィールド803、823、833、843がある。ファイル名フィールドは、対応するファイルのファイル名を格納する。属性フィールドは、対応するファイルの属性情報を格納する。属性情報とは、ファイルのアクセス権、最終アクセス時刻、ファイルのサイズ等のメタデータである。ファイル管理構造体80、82、83、84の各属性情報フィールド802、822、832、842は、対応する各ファイルのサイズが1GBであることを示す情報を含んでいる。
処理定義情報フィールド803、823、833、843は、ファイルに対する各種処理を行うプロシージャを定める情報を格納する。ファイル管理構造体82の処理定義情報フィールド823は、階層ファイルシステム160におけるファイルM1の各種処理を、AngelFS処理プログラム145のread処理部1453、write処理部1454、remove処理部1455、truncate処理部1456やその他の処理部(図示しない)を利用して実行することを定めている。
ファイル管理構造体83の処理定義情報フィールド833は、階層ファイルシステム160におけるファイルM2の各種処理を、BeastFS処理プログラム146のread処理部1463、write処理部1464、remove処理部1465やその他の処理部(図示しない)、および階層ファイルシステム処理プログラム147のtruncate処理部1473を利用して実行することを定めている。
ファイル管理構造体80の処理定義情報フィールド803は、ファイルシステム16aにおけるファイルM1の各種処理のために、AngelFS処理プログラム145の各種処理部を利用することを定めている(図の複雑さを避けるため図示しない)。
ファイル管理構造体84の処理定義情報フィールド843は、ファイルシステム16bにおけるファイルM2の各種処理のために、BeastFS処理プログラム146の各種処理部を利用することを定めている(図の複雑さを避けるため図示しない)。
ファイル管理構造体82の属性情報822はさらに、階層ファイルシステム160のファイルM1の実体が、ファイルシステム16aのファイルM1であることを示すためのリンク情報824を格納する。同様に、ファイル管理構造体83の属性情報832は、階層ファイルシステム160のファイルM2の実体が、ファイルシステム16bのファイルM2であることを示すためのリンク情報834を格納する。
〈ファイルシステムプログラムの処理部〉
ファイルシステムプログラムの各種処理部について説明する。
ファイルシステム16aの種類はAngelFSであり、ファイルシステム16aおよびそのファイルとディレクトリに関する各種処理は、AngelFS処理プログラム145の各種処理部が実行する。また、ファイルシステム16bの種類はBeastFSであり、ファイルシステム16bおよびそのファイルとディレクトリに関する各種処理は、BeastFS処理プログラム146の各種処理部が実行する。
read処理部1453、1463は、アクセス要求元からのファイルに格納されているデータの読み出し要求に応じて、アクセス要求元にデータを返却する処理を行う。アクセス要求元とは、本実施例においてはNAS装置10で動作するファイル共有処理プログラム141や他のプログラム(図示しない)である。以下の説明におけるアクセス要求元についても同様である。
write処理部1454、1464は、アクセス要求元からのファイルに対するデータの書き込み要求に応じて、ファイルにデータを書き込む処理を行う。アクセス要求元は、データ書き込み要求とともに書き込むべきデータをwrite処理部に渡す。
remove処理部1455、1456は、アクセス要求元からのファイル削除要求に応じて、ファイルを削除する処理を行う。
truncate処理部1456、1466、1473は、アクセス要求元からのファイル切り詰め要求に応じて、ファイルのサイズを変更する処理を行う。アクセス要求元は、ファイル切り詰め要求とともに所望のサイズを指定する。指定されたサイズがファイルのサイズよりも小さい場合は、ファイルの先頭から指定されたサイズよりも大きい部分のデータが破棄される。指定されたサイズがファイルのサイズよりも大きい場合は、増分のデータを0としてファイルが拡張される。このとき、増分データのためのストレージ領域を割り当てずに実装することもできる。
ただし、後述するように、階層ファイルシステム管理プログラム147のtruncate処理部1473は、さらに低速ファイルシステム16a上のファイルに対する特別の処理を行う。
lookup処理部1451、1461、1471は、アクセス要求元からのディレクトリ内容一覧取得要求に応じて、指定されたディレクトリに含まれるファイルおよびディレクトリの一覧を返却する処理を行う。
create処理部1452、1462、1472は、アクセス要求元からのファイル作成要求に応じて、指定されたファイルを作成する処理を行う。階層ファイルシステム160のcreate処理部1472の場合は、階層を成すいずれかのファイルシステム(ファイルシステム16aまたは16b)にファイルを作成する。ファイルを作成するファイルシステムは、事前にNAS装置10の利用者(管理者)により設定されたルールに従う。
〈階層ファイルシステム管理情報〉
図9は、本発明の一実施例に係る階層ファイルシステム管理情報1143を説明する図である。
階層ファイルシステム管理情報1143は、階層ファイルシステム160に仮想的に含まれる全てのファイルに関する情報を記録する。図9は、階層ファイルシステム160に含まれるファイルおよびディレクトリの内、ディレクトリM、ファイルM1、ファイルM2、ディレクトリNに関するもののみを抜粋して示す。
階層ファイルシステム管理情報1143は、第一管理領域85と、第二管理領域86からなる。
第一管理領域85には、各ファイルおよびディレクトリに対応するデータ構造体を格納する。データ構造体851は、ディレクトリMに対応する。データ構造体852はファイルM1に対応する。データ構造体853はファイルM2に対応する。データ構造体854はディレクトリNに対応する。
階層ファイルシステム160、ファイルシステム16a、ファイルシステム16bでは、全てのファイルおよびディレクトリに識別番号を割り当てる。第一管理領域85において、各データ構造体のサイズは同一とする。所望のファイルまたはディレクトリに対応するデータ構造体を取得するためには、ファイルおよびディレクトリに割り当てられた識別番号よりその格納アドレスを特定する。例えば、階層ファイルシステム160において、ディレクトリMには識別番号100が割り当てられており、その第一管理領域85におけるデータ構造体は、先頭から100番目の位置にあるデータ構造体851であることが特定できる。
各データ構造体は、少なくとも属性情報フィールドとブロックアドレスフィールドを格納する。属性情報フィールドは、対応するファイルまたはディレクトリのメタデータを格納する。ブロックアドレスフィールドは、対応するファイルまたはディレクトリの付加情報を格納した第二管理領域86上のブロックアドレスを格納する。
階層ファイルシステム160におけるディレクトリMについて、対応するデータ構造体851のブロックアドレスフィールド8512には、第二管理領域86のブロックアドレス1000が記録されている。第二管理領域86のブロックアドレス1000には、ディレクトリMの付加情報861が記録されている。
ディレクトリMの付加情報861は、階層ファイルシステム160におけるディレクトリMに含まれるファイルおよびディレクトリの情報(ディレクトリエントリ)を格納する。付加情報861は三つのディレクトリエントリ862、863、864を含む。前述のように、階層ファイルシステム160において、ディレクトリMはファイルM1、ファイルM2、ディレクトリNを含んでおり、ディレクトリエントリ862は、ファイルM1、ディレクトリエントリ863はファイルM2、ディレクトリ864はディレクトリNにそれぞれ対応する。
各ディレクトリエントリは、識別番号フィールドと名前フィールドを有する。識別番号フィールドは、対応するファイルまたはディレクトリの識別番号を格納する。名前フィールドは、対応するファイルまたはディレクトリの名前を格納する。
例えば、ディレクトリエントリ862の名前フィールド8622にはファイルM1の名前が記録されており、識別番号フィールドには、階層ファイルシステム160における識別番号”200”が記録されている。
第一管理領域85において、識別番号200に対応するデータ構造体852は、ファイルM1の情報を格納している。ファイルM1の付加情報865は、第二管理領域86のブロックアドレス1100に格納されている。第二管理領域86のブロックアドレス1100には、付加情報865を格納している。
付加情報865は、ファイルM1の実体ファイルが格納されているファイルシステムのFS IDを格納するFS IDフィールド8651と、ファイルM1の実体ファイルの識別番号フィールド8652を有する。FS IDフィールド8651は、ファイルM1の実体が格納されているファイルシステム16aのFS IDである”0001”を格納する。識別番号フィールド8652は、ファイルM1のファイルシステム16aにおける識別番号である”10200”を格納する。
同様に、ファイルM2に対応する第一管理領域85におけるデータ構造体は、データ構造体853であり、第二管理領域86における付加情報は付加情報866である。これらは、ファイルM2の実体がファイルシステム16bにあり、その識別番号が20210であることを情報として格納する。
また、ディレクトリNの第一管理領域85におけるデータ構造体は、データ構造体854であり、第二管理領域86における付加情報は、付加情報866である。これらは、ディレクトリNが、ファイルN1を含み、ファイルN1の階層ファイルシステムにおける識別番号が300であることを情報として格納する。
階層ファイルシステム160の第一管理領域85の先頭の領域には、図示しない階層ファイルシステム160の管理データが含まれており、ディレクトリMの識別情報は、この管理データを参照することにより特定できる。
階層ファイルシステム管理情報1143は、階層ファイルシステム160を構成するファイルシステム16aおよび16bを走査することにより適宜構築される。また、階層ファイルシステム160に対するファイルおよびディレクトリの作成、削除、移動等の各種操作により適宜変更される。
〈ファイル一覧取得処理〉
図10は、本発明の一実施例に係るNAS装置10のファイル一覧取得処理90を説明するフローチャートである。
ファイル一覧取得処理90は、計算機20aまたは20bの要求に応じて、ファイル共有17が公開しているファイルシステムのディレクトリに関し、そのディレクトリに含まれるファイルおよびディレクトリの一覧を返却する処理である。計算機20aおよび20bは、所望のディレクトリについて、配下のディレクトリおよびファイルの一覧を取得できる。
以降、計算機20aが階層ファイルシステム160のディレクトリMに対してその配下のファイルおよびディレクトリの一覧を要求する場合を例として、ファイル一覧取得処理の流れを図10を用いて説明する。
処理ステップ9000から9020までの処理は、ファイル共有処理プログラム141が実行する処理である。処理ステップ9025から9055までの処理は、階層ファイルシステム処理プログラム147のlookup処理部1471が実行する処理である。
ステップ9005において、ファイル共有処理プログラム141は、アクセス要求元である計算機20aよりディレクトリMのパス名またはパス名を特定できる識別情報を受領する。
ステップ9010において、ファイル共有処理プログラム141は、要求されたディレクトリMが階層ファイルシステム160に存在すると判断し、階層ファイルシステム処理プログラム147に対して、ディレクトリMに含まれるファイルとディレクトリの一覧を要求する。
階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141からの要求を受け、ステップ9025からの処理を開始する。
ステップ9030において、階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141より、ディレクトリMのパス名またはパス名を特定できる識別情報を受領する。
ステップ9035において、階層ファイルシステム処理プログラム147は、階層ファイルシステム管理情報1143を参照し、ディレクトリMにはファイルM1とファイルM2とディレクトリNが含まれることを特定する。
ステップ9040において、階層ファイルシステム処理プログラム147は、階層ファイルシステム管理情報1143を参照して、ファイルM1の実体がファイルシステム16aの識別番号10200のファイルであり、ファイルM2の実体がファイルシステム16bの識別番号20210のファイルであることを特定する。
ステップ9045において、階層ファイルシステム処理プログラム147は、ステップ9035およびステップ9040の処理結果に基づき、ファイル管理情報144のファイル管理構造体82および83を生成し、図8に説明した内容で値を設定する。なお、ファイル管理構造体80および84は、それぞれAngelFS処理プログラム145およびBeastFS処理プログラム146が、ファイルシステム16aおよびファイルシステム16bに格納されている情報に従って生成する。
ステップ9050において、階層ファイルシステム処理プログラム147は、ファイルM1、ファイルM2、ディレクトリNの一覧を作成し、ファイル共有処理プログラム141に返却し、処理を終了する(ステップ9055)。
ファイル共有処理プログラム141は、ステップ9015において、ファイル共有処理プログラム141より得たファイルおよびディレクトリの一覧を、アクセス要求元の計算機20aに返却し、処理を終了する(ステップ9020)。
〈ファイルリード処理〉
図11は、本発明の一実施例に係るNAS装置10のファイルリード処理91を説明するためのフローチャートである。
ファイルリード処理91は、計算機20aまたは20bの要求に応じて、ファイル共有17が公開しているファイルシステムのファイルに関し、ファイルに格納されているデータを返却する処理である。計算機20aおよび20bは、所望のファイルについて、そのデータを要求できる。
以降、計算機20aが、階層ファイルシステム160のファイルM2のデータを要求する場合を例として、ファイルリード処理91の流れを説明する。計算機20aは、前述のファイル一覧取得処理により、ファイルM2の存在を確認する。
処理ステップ9100から9120まではファイル共有処理プログラム141が実行する。処理ステップ9125から9150までは階層ファイルシステム処理プログラム147が実行する。
ステップ9100において、ファイル共有処理プログラム141は計算機20aからの要求を受けて処理を開始する。
ステップ9105において、ファイル共有処理プログラムは、計算機20aよりファイルMのリード要求を受領する。
ステップ9110において、ファイル共有処理プログラム141は、ファイルM2が階層ファイルシステム160のファイルであることを認識し、階層ファイルシステム処理プログラム147に対してファイルM2の読み出しを要求する。
階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141からの要求を受け、ステップ9125からの処理を開始する。
ステップ9130において、階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141よりファイルM2のリード要求を受領する。
ステップ9135において、階層ファイルシステム処理プログラム147は、ファイル管理情報144に含まれているファイルM2のファイル管理構造体83を処理対象として選択する。
ステップ9140において、階層ファイルシステム処理プログラム147は、ファイルM2のファイル管理構造体83の処理定義情報833を参照し、この処理定義情報833に記録されているBeastFS処理プログラム146のread処理部1463を呼び出す。
BeastFS処理プログラム146のread処理部1463は、ファイルシステム16bのファイルM2よりデータを読み出し返却する。
ステップ9145において、階層ファイルシステム処理プログラム147は、前記のデータを返却し処理を終了する (ステップ9150)。
ファイル共有処理プログラム141は、ステップ9115において、階層ファイルシステム処理プログラム147より返却されたデータを計算機20aに返却し、処理を終了する(ステップ9120)。
〈ファイルサイズ切り詰め処理〉
図12は、本発明の一実施例に係るファイルサイズ切り詰め処理92を説明するためのフローチャートである。
ファイル切り詰め処理92は、計算機20aまたは20bの要求に応じて、ファイル共有17が公開しているファイルシステムのファイル(アクセス対象ファイル)に関し、ファイルのサイズを変更する処理である。
以降、計算機20aが、階層ファイルシステム160のファイル(アクセス対象ファイル)M2を上書きする場合に、その処理の一部としてファイルのサイズを0へ変更する場合を例として、ファイルサイズ切り詰め処理92の流れを説明する。
処理ステップ9200から9115まではファイル共有処理プログラム141が実行する。処理ステップ9220から9140までは階層ファイルシステム処理プログラム147が実行する。
ファイル共有処理プログラム141は、計算機20aからのファイル(アクセス対象ファイル)M2のサイズを0にする要求を受け、ステップ9200からの処理を開始する。
ステップ9205において、ファイル共有処理プログラム141は、計算機20aよりファイル(アクセス対象ファイル)M2のサイズを0にする要求を受領する。
ステップ9210において、ファイル共有処理プログラム141は、階層ファイルシステム処理プログラム147に対して、ファイル(アクセス対象ファイル)M2のサイズを0とすることを要求する。
階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141からの要求を受け、ステップ9220からの処理を開始する。
ステップ9225において、階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141よりファイル切り詰め要求を受領する。
ステップ9230において、階層ファイルシステム処理プログラム147は、ファイル管理情報144のファイルM2に対応するファイル管理構造体83を処理対象として選択する。
ステップ9235において、階層ファイルシステム処理プログラム147は、ファイルM2のファイル管理構造体83の処理定義情報833を参照し、この処理定義情報833に記録されている階層ファイルシステム処理プログラム147のtruncate処理部1473を呼び出す。その後処理を終了する(ステップ9240)。
ファイル共有処理プログラム141は、階層ファイルシステム処理プログラム147の終了を受け、処理を終了する(ステップ9215)。
階層ファイルシステム処理プログラム147のtruncate処理部1473の処理の流れについては、図13を参照して説明する。
〈truncate処理部〉
図13は、本発明の一実施例に係る階層ファイルシステム処理プログラム147のtruncate処理部1473におけるファイルサイズ切り詰め処理93を説明するためのフローチャートである。前述のように、truncate処理部1473が呼び出されると、ステップ9300より処理を開始する。
ここでは、前述のファイル(アクセス対象ファイル)M2に対する切り詰め処理が要求された場合の例において、ステップ9235からtruncate処理部1473が呼び出されたものとして説明する。
ステップ9305において、truncate処理部1473は、変更するファイル(アクセス対象ファイル)のサイズとして0が指定されているかどうかを判定する。本例では、0が指定されている。この場合、ステップ9310へ進む。
ステップ9310において、truncate処理部1473は、階層ファイルシステム160のうち、ファイルシステム16bよりも高位のファイルシステム(アクセス頻度が高く、高速なファイルシステム)であるファイルシステム16aに、パス名を変えずに、新たにファイルM2を作成する。新たに作成されたファイルM2のサイズは0とする。新たなファイルM2を作成するために、AngelFS処理プログラム145のcreate処理部1452を呼び出す。AngelFS処理プログラム1452は、高速ファイルシステム16aに、新たなファイルM2を作成し、対応するファイル管理構造体をファイル管理情報144に作成する。
このとき、高速ファイルシステム16aに新たな作成されたファイルM2に、階層ファイルシステム160におけるファイル(アクセス対象ファイル)M2のファイル管理構造体83に記録されている属性情報を設定する。
ステップ9315において、truncate処理部1473は、階層ファイルシステム160におけるファイル(アクセス対象ファイル)M2のファイル管理構造体83のリンク情報834を、ステップ9310において作成されたファイル管理構造体を指すように変更する。
ステップ9320において、truncate処理部1473は、階層ファイルシステム160におけるファイル(アクセス対象ファイル)M2のファイル管理構造体83の処理定義情報833を、AngelFS処理プログラム145の各種処理部を指すように変更する。
ステップ9325において、truncate処理部1473は、低速ファイルシステム16bに格納されているファイル(アクセス対象ファイルの実体となる実ファイル)M2を削除する。ファイル(実ファイル)M2を削除するために、BeastFS処理プログラム146のremove処理部1465を呼び出す。BeastFS処理プログラム146のremove処理部は、ファイルシステム16bより、ファイル(実ファイル)M2を削除し、対応するファイル管理構造体84をファイル管理情報144より消去する。
以上の処理の後、truncate処理部1473は処理を終了する(ステップ9330)。
もし、サイズを0以外のとするファイルM2の切り詰めを要求された場合は、ステップ9305において、ステップ9335の処理へ進む。
ステップ9335では、truncate処理部1473は、ファイルM2の実体を指定されたサイズとし、処理を終了する。ファイルM2の実体は、実ファイルとしてファイルシステム16bにある。このため、trucnate処理部1473は、BeastFS処理プログラム146のtrucnate処理部1466を呼び出し、ファイルのサイズを変更する。
〈切り詰め後のファイル管理情報〉
図14は、上記で説明したファイルサイズ切り詰め処理完了後のファイル管理情報144の様子を説明するための構成図である。
ファイル管理情報144には、高速ファイルシステム16aの新たなファイルM2に対応するファイル管理構造体81が作成されている。ファイル管理情報144の属性情報には、新たなファイルM2のサイズが0であることを示す情報が格納されている。
階層ファイルシステム160上のファイルM2に対応するファイル管理構造体83は、そのリンク情報834が、ファイル管理構造体81を指すように変更されている。また、ファイル管理構造体83の処理定義情報833は、AngelFS処理プログラム145の各種処理を指すように変更されている。
〈ファイルライト処理〉
図15は、本実施例におけるファイルライト処理94を説明するためのフローチャートである。
ファイルライト処理94は、計算機20aまたは20bの要求に応じて、ファイル共有17が公開しているファイルシステムのファイルにデータを格納する処理である。
以降、計算機20aが、階層ファイルシステム160のファイル(アクセス対象ファイル)M2に対する切り詰め処理を要求し、その処理が完了した後、ファイル(アクセス対象ファイル)M2に対するファイルライト処理を要求する場合を例として、ファイルライト処理94を説明する。
処理ステップ9400から9415まではファイル共有処理プログラム141が実行する。処理ステップ9420から9440までは階層ファイルシステム処理プログラム147が実行する。
ファイル共有処理プログラム141は、計算機20aよりファイル(アクセス対象ファイル)M2に対するファイルライト要求を受けると、ステップ9400からの処理を開始する。
ステップ9405において、ファイル共有処理プログラム141は、計算機20aよりファイル(アクセス対象ファイル)M2に対するファイルライト要求を受領する。
ステップ9410において、ファイル共有処理プログラム141は、ファイル(アクセス対象ファイル)M2が階層ファイルシステム160のファイルであることを認識し、階層ファイルシステム処理プログラム147に対してファイル(アクセス対象ファイル)M2へのデータの書き込みを要求する。
階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141からの要求を受け、処理を開始する(ステップ9420)。
ステップ9425において、階層ファイルシステム処理プログラム147は、ファイル共有処理プログラム141よりファイル(アクセス対象ファイル)M2のライト要求を受領する。
ステップ9430において、階層ファイルシステム処理プログラム147は、ファイル管理情報144に含まれている、新たなファイルM2のファイル管理構造体83を処理対象として選択する。
ステップ9435において、階層ファイルシステム処理プログラム147は、新たなファイルM2のファイル管理構造体83の処理定義情報833を参照し、この処理定義情報833に記録されているAngelFS処理プログラム145のwrite処理部1454を呼び出す。
AngelFS処理プログラム145のwrite処理部1454は、ファイルシステム16aの新たなファイルM2にデータを書き込む。
ステップ9440において、階層ファイルシステム処理プログラムは処理を終了する。
ファイル共有処理プログラム141は、ステップ9415において処理を終了する。
〈まとめ〉
以上、本発明を実施例に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
本実施例においては、プロセッサ12は、アクセス要求元から、ファイルサイズ変更要求(ファイルサイズ切り詰め要求)を受けたときには、階層ファイルシステム160に属するファイル群の中から、ファイルサイズ変更要求で指定されたアクセス対象ファイルM2を抽出し、かつ、階層ファイルシステム160に属する複数のファイルシステムの中から、アクセス対象ファイルM2の実体となる実ファイルM2が存在するファイルシステム16bよりも処理性能の高いファイルシステムとして、アクセス頻度の高いファイルシステム16aを抽出し、抽出したファイルシステム16aに、実ファイルM2に関連する新たなファイルM2を作成し、作成した新たなファイルM2とアクセス対象ファイルM2との関連付けを実行し、作成した新たなファイルM2とアクセス対象ファイルM2との関連付けを実行したことを条件に、実ファイルM2を削除し、その後、アクセス要求元から、アクセス対象ファイルM2に対するデータ書き込み要求を受けたことを条件に、新たなファイルM2に対するデータの書き込み処理を実行することとしている。
従って、本実施例によれば、ファイルM2の実体が、ファイルシステム16bに存在するときに、ファイルM2全体を上書きする場合でも、データの書き込み速度(ファイルに対する上書き処理速度)が低下するのを防止することができる。
本実施例では、ファイルシステム16aと16bを異なる種類のファイルシステムAngelFS、BeastFSとしたが、本発明はこれに限られず、ファイルシステム16aと16bが同じ種類のファイルシステムであってもよい。
ファイルを上書きする場合、ファイルのサイズは、0でなくてもよい。すなわち、本実施例では、ファイル切り詰め処理において、ファイルのサイズを0とする要求に応じてファイルを仮想的に移動したが、本発明はこれに限られず、例えば、サイズが規定のサイズ以下の場合でも、規定以下のサイズのファイルを仮想的に移動することもできる。
この場合、階層ファイルシステム処理プログラム147のtruncate処理部1473は、ステップ9035において、指定された新たなサイズが、既定のサイズよりも下回っている場合には、ステップ9310において、移動先となるファイルを作成した上で、移動元となるファイルの先頭から、規定のサイズ以下の分のデータを複製(コピー)し、以降の処理ステップを実行する。
ファイルの実体を高位のファイルシステムから低位のファイルシステムに仮想的に移動することもできる。すなわち、上記実施例では、ファイル切り詰め処理において、ファイルの実体を、低位のファイルシステムから高位のファイルシステムへ仮想的に移動したが、本発明はこれに限られず、例えば、高位のファイルシステムから低位のファイルシステムへファイルの実体を仮想的に移動することもできる。
ファイルシステムとしては、2個以上のファイルシステムを構成することができる。すなわち、上記実施例では、階層ファイルシステム160を構成するファイルシステムを2個としたが、本発明はこれに限られず、例えば3個以上のファイルシステムにより階層ファイルシステム160を構成し、階層ファイルシステム160に属するファイルシステム間でファイルを仮想的に移動させるようにすることもできる。
階層ファイルシステム160に属する複数のファイルシステムを構成するに際しては、各ファイルシステムを一つの記憶装置に構築することもできる。すなわち、上記実施例では、階層ファイルシステム160に属する2個のファイルシステム16a、16bは、それぞれ異なる記憶装置30a、30bのボリューム31a、31bに構成されているが、本発明はこれに限られず、例えば、一台の記憶装置が2以上のファイルシステムを構成する2以上のボリュームをNAS装置10に提供する形態でもよい。
また、上記実施例では、ファイル切り詰め要求が単体の要求である場合を示したが、本発明はこれに限られず、ファイル操作処理要求、例えば、ファイルオープン要求等の中に、引数(オプション)として、ファイル切り詰め要求が存在する場合でも、前述したファイル切り詰め要求に対する処理として、ファイルの実体を仮想的に移動するようにしてもよい。
1 ストレージシステム、10 NAS装置、11 ネットワークインタフェースコントローラ、12 プロセッサ、13 ホストバスアダプタ、14 メモリ、160 階層ファイルシステム、161 ルートファイルシステム、16a ファイルシステム、16b ファイルシステム、17 ファイル共有、114 記憶装置、20a 計算機、20b 計算機、241 アプリケーションプログラム、30a 記憶装置、30b 記憶装置、31a ボリューム、31b ボリューム、41 LAN、42 SAN、700 ルートファイルシステムディレクトリ構造、710 階層ファイルシステムディレクトリ構造、720 ファイルシステム16aのディレクトリ構造、730 ファイルシステム16bのディレクトリ構造

Claims (13)

  1. データの論理的記憶領域として、処理性能によって相異なるグループに分かれて構成された複数のボリュームを有する記憶装置と、
    前記複数のボリューム上に階層化されて構築されたファイル群を含む複数のファイルシステムを統合して仮想的に階層化された階層ファイルシステムを有し、前記階層ファイルシステムを、アクセス要求元に対するアクセス対象として管理するコントローラを備え、
    前記コントローラは、前記アクセス要求元からファイルサイズ変更要求を受けたときに、前記階層ファイルシステムに属するファイル群の中から、前記ファイルサイズ変更要求で指定されたアクセス対象ファイルを抽出し、かつ、前記複数のファイルシステムの中から、前記抽出したアクセス対象ファイルの実体となる実ファイルが属する第一のファイルシステムを抽出するとともに、前記実ファイルの仮想の移動先となる第二のファイルシステムを抽出し、前記抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行し、その後、前記アクセス要求元から、前記アクセス対象ファイルに対するデータ書き込み要求を受けたときには、前記新たなファイルに対するデータの書き込み処理を実行する、ストレージ装置。
  2. 前記コントローラは、前記ファイルサイズ変更要求を受けたときには、前記第二のファイルシステムとして、前記第一のファイルシステムによりも、処理性能の高いファイルシステムを抽出し、前記抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行したことを条件に、前記実ファイルを削除し、その後、前記アクセス要求元から、前記アクセス対象ファイルに対するデータ書き込み要求を受けたことを条件に、前記新たなファイルに対するデータの書き込み処理を実行する請求項1に記載のストレージ装置。
  3. 前記コントローラは、前記ファイルサイズ変更要求を受けたときには、前記第二のファイルシステムとして、前記第一のファイルシステムによりも、処理性能の高いファイルシステムを抽出する、請求項1に記載のストレージ装置。
  4. 前記コントローラは、前記ファイルサイズ変更要求を受けたときには、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行したことを条件に、前記実ファイルを削除する、請求項1に記載のストレージ装置。
  5. 前記コントローラは、前記アクセス要求元からのファイル操作処理要求の中に、引数として、前記ファイルサイズ変更要求が存在するときにも、前記ファイルサイズ変更要求に対する処理を実行する、請求項1に記載のストレージ装置。
  6. 前記コントローラは、前記ファイルサイズ変更要求として、前記アクセス対象ファイルのサイズを0とするファイルサイズ変更要求を受けたときには、前記新たなファイルを、そのサイズを0として作成する、請求項1に記載のストレージ装置。
  7. 前記コントローラは、前記ファイルサイズ変更要求として、前記アクセス対象ファイルのサイズを規定のサイズ以下とするファイルサイズ変更要求を受けたときには、前記実ファイルの先頭から前記規定のサイズ以下分のデータを前記実ファイルから抽出し、前記抽出したデータを前記新たなファイルに対するデータの書き込み処理に用いる、請求項1に記載のストレージ装置。
  8. 前記コントローラは、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行するときに、前記新たなファイルに、前記実ファイルのメタデータを書き込むための処理を実行する、請求項1に記載のストレージ装置。
  9. データの論理的記憶領域として、処理性能によって相異なるグループに分かれて構成された複数のボリュームを有する記憶装置と、
    前記複数のボリューム上に階層化されて構築されたファイル群を含む複数のファイルシステムを統合して仮想的に階層化された階層ファイルシステムを有し、前記階層ファイルシステムを、アクセス要求元に対するアクセス対象として管理するコントローラを備え、
    前記コントローラは、
    前記アクセス要求元からファイルサイズ変更要求を受けたときに、前記階層ファイルシステムに属するファイル群の中から、前記ファイルサイズ変更要求で指定されたアクセス対象ファイルを抽出し、かつ、前記複数のファイルシステムの中から、前記抽出したアクセス対象ファイルの実体となる実ファイルが属する第一のファイルシステムを抽出するとともに、前記実ファイルの仮想の移動先となる第二のファイルシステムを抽出するステップと、
    前記ステップで抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成するステップと、
    前記ステップで作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行するステップと、
    その後、前記アクセス要求元から、前記アクセス対象ファイルに対するデータ書き込み要求を受けたときには、前記新たなファイルに対するデータの書き込み処理を行うステップを実行する、ストレージ装置のファイル制御方法。
  10. 前記コントローラは、
    前記ファイルサイズ変更要求を受けたときには、前記第二のファイルシステムとして、前記第一のファイルシステムによりも、処理性能の高いファイルシステムを抽出するステップと、
    前記ステップで抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成するステップと、
    前記ステップで作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行するステップと、
    前記ステップで作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行したことを条件に、前記実ファイルを削除するステップと、
    その後、前記アクセス要求元から、前記アクセス対象ファイルに対するデータ書き込み要求を受けたことを条件に、前記新たなファイルに対するデータの書き込み処理を行うステップを実行する、請求項9に記載のストレージ装置のファイル制御方法。
  11. データの論理的記憶領域として、処理性能によって相異なるグループに分かれて構成された複数のボリュームを有する記憶装置と、
    前記複数のボリューム上に階層化されて構築されたファイル群を含む複数のファイルシステムを統合して仮想的に階層化された階層ファイルシステムを有し、前記階層ファイルシステムを、アクセス要求元に対するアクセス対象として管理するファイルサーバと、
    前記ファイルサーバと通信ネットワークを介して接続されて、前記階層ファイルシステムをアクセス対象として、前記ファイルサーバと情報の授受を行う計算機を備え、
    前記ファイルサーバは、
    前記アクセス要求元となる前記計算機からファイルサイズ変更要求を受けたときに、前記階層ファイルシステムに属するファイル群の中から、前記ファイルサイズ変更要求で指定されたアクセス対象ファイルを抽出し、かつ、前記複数のファイルシステムの中から、前記抽出したアクセス対象ファイルの実体となる実ファイルが属する第一のファイルシステムを抽出するとともに、前記実ファイルの仮想の移動先となる第二のファイルシステムを抽出し、前記抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行するファイル切り詰め処理部と、
    前記計算機から前記ファイルサイズ変更要求の後、前記アクセス対象ファイルに対するデータ書き込み要求を受けたときに、前記新たなファイルに対するデータの書き込み処理を実行するデータ書き込み処理部と、
    を有する、ストレージシステム。
  12. 前記ファイル切り詰め処理部は、
    前記ファイルサイズ変更要求を受けたときには、前記第二のファイルシステムとして、前記第一のファイルシステムによりも、処理性能の高いファイルシステムを抽出し、前記抽出した第二のファイルシステムに、前記実ファイルに関連する新たなファイルを作成し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行し、前記作成した新たなファイルと前記アクセス対象ファイルとの関連付けを実行したことを条件に、前記実ファイルを削除する、請求項11に記載のストレージシステム。
  13. 前記ファイル切り詰め処理部は、
    前記ファイルサイズ変更要求として、前記アクセス対象ファイルのサイズを0とするファイルサイズ変更要求を受けたときには、前記新たなファイルを、そのサイズを0として作成する、請求項11に記載のストレージシステム。
JP2009073435A 2009-03-25 2009-03-25 ストレージ装置とそのファイル制御方法およびストレージシステム Pending JP2010225024A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009073435A JP2010225024A (ja) 2009-03-25 2009-03-25 ストレージ装置とそのファイル制御方法およびストレージシステム
US12/489,055 US8046391B2 (en) 2009-03-25 2009-06-22 Storage apparatus and its file control method and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009073435A JP2010225024A (ja) 2009-03-25 2009-03-25 ストレージ装置とそのファイル制御方法およびストレージシステム

Publications (1)

Publication Number Publication Date
JP2010225024A true JP2010225024A (ja) 2010-10-07

Family

ID=42785561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009073435A Pending JP2010225024A (ja) 2009-03-25 2009-03-25 ストレージ装置とそのファイル制御方法およびストレージシステム

Country Status (2)

Country Link
US (1) US8046391B2 (ja)
JP (1) JP2010225024A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110919B2 (en) * 2009-10-30 2015-08-18 Symantec Corporation Method for quickly identifying data residing on a volume in a multivolume file system
JP2011165249A (ja) * 2010-02-08 2011-08-25 Elpida Memory Inc 半導体装置
US9092426B1 (en) 2011-01-03 2015-07-28 Applied Micro Circuts Corporation Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
CN103380418B (zh) * 2011-01-28 2016-04-13 日本电气株式会社 存储***
GB2534693B (en) * 2013-11-08 2017-02-08 Exacttrak Ltd Data accessibility control
US9632700B2 (en) * 2014-07-02 2017-04-25 International Business Machines Corporation Managing a shared storage system using hardware identifiers to deter data/file corruption
US11487703B2 (en) 2020-06-10 2022-11-01 Wandisco Inc. Methods, devices and systems for migrating an active filesystem

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164211A (ja) * 2004-11-12 2006-06-22 Nec Corp ストレージ管理システムと方法並びにプログラム
WO2006131978A1 (ja) * 2005-06-10 2006-12-14 Fujitsu Limited Hsm制御プログラム、装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322031B2 (ja) 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
US7062624B2 (en) * 2004-09-29 2006-06-13 Hitachi, Ltd. Method for managing volume groups considering storage tiers
JP2007328468A (ja) * 2006-06-06 2007-12-20 Hitachi Ltd ストレージシステム及びストレージシステムのボリューム管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164211A (ja) * 2004-11-12 2006-06-22 Nec Corp ストレージ管理システムと方法並びにプログラム
WO2006131978A1 (ja) * 2005-06-10 2006-12-14 Fujitsu Limited Hsm制御プログラム、装置及び方法

Also Published As

Publication number Publication date
US8046391B2 (en) 2011-10-25
US20100250626A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5514903B2 (ja) ファイルレベル階層ストレージ管理システム、方法、及び装置
JP4787315B2 (ja) データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
AU2006239882B2 (en) System and method for caching network file systems
US8990539B2 (en) Extension of write anywhere file system layout
US8612488B1 (en) Efficient method for relocating shared memory
EP2754027B1 (en) Method for creating clone file, and file system adopting the same
JP5507670B2 (ja) ストライプ化ファイルシステムにおける能力平準化によるデータ分散
JP5291456B2 (ja) ストレージシステム・アーキテクチャ内のデータ・アロケーション
US9348842B2 (en) Virtualized data storage system optimizations
JP6430499B2 (ja) Posix互換なファイル・システム、ファイル・リストを生成する方法および記憶デバイス
US20150006581A1 (en) Method for a Storage Device Accessing a File and Storage Device
US8046391B2 (en) Storage apparatus and its file control method and storage system
US8285749B2 (en) Computer system and recording medium
JP2015521310A (ja) 効率的なデータオブジェクトストレージ及び検索
JP2010191647A (ja) ファイル共有システム、ファイルサーバ、ファイル管理方法
EP2348425A1 (en) I/O conversion method and apparatus for storage system
JP2002082775A (ja) 計算機システム
US9336255B2 (en) Techniques for traversal and storage of directory entries of a storage volume
US7188147B2 (en) I/O method and apparatus for optical storage media
US8239427B2 (en) Disk layout method for object-based storage devices
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9116911B2 (en) Remote file sharing based on content filtering
JP4327869B2 (ja) 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
WO2017172377A1 (en) File system support for file-level ghosting
JP2024525170A (ja) データ圧縮方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129