JP5180865B2 - ファイルサーバ、ファイル管理システムおよびファイル管理方法 - Google Patents

ファイルサーバ、ファイル管理システムおよびファイル管理方法 Download PDF

Info

Publication number
JP5180865B2
JP5180865B2 JP2009028341A JP2009028341A JP5180865B2 JP 5180865 B2 JP5180865 B2 JP 5180865B2 JP 2009028341 A JP2009028341 A JP 2009028341A JP 2009028341 A JP2009028341 A JP 2009028341A JP 5180865 B2 JP5180865 B2 JP 5180865B2
Authority
JP
Japan
Prior art keywords
file
raid group
access
stored
information
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
JP2009028341A
Other languages
English (en)
Other versions
JP2010186223A (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 JP2009028341A priority Critical patent/JP5180865B2/ja
Priority to US12/385,281 priority patent/US8171215B2/en
Priority to EP20090252529 priority patent/EP2216711B1/en
Publication of JP2010186223A publication Critical patent/JP2010186223A/ja
Priority to US13/433,640 priority patent/US8615628B2/en
Application granted granted Critical
Publication of JP5180865B2 publication Critical patent/JP5180865B2/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
    • 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
    • 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
    • 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/0625Power saving in storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

本発明は、ストレージ装置にて作成されるファイルシステムを仮想化することによりファイルを管理する技術に関する。
ファイルシステムを管理するファイルサーバ(NAS(Network Attached Storage)装置)と、ファイルシステムのファイルを格納する1以上のストレージ装置とを有するファイル管理システムを使用したファイルサービスのニーズが近年急速に高まっている。それに伴い、ストレージ装置に格納されるファイルの容量が増加し、ストレージ装置を構成するディスクデバイスの台数も増加の傾向にある。ディスクデバイスの台数が増加すると、ストレージ装置全体の消費電力も増加することになる。特に多数のディスクデバイスを搭載し、複数のディスクデバイスでRAID(Redundant Array of Inexpensive Disks)を構成している大容量のディスクアレイシステムでは、ストレージ装置全体の消費電力増加が課題となっている。
特許文献1には、ファイルシステムを作成した論理ボリュームに対応するHDD(Hard Disk Drive)がスピンダウン中であってもファイル属性の参照を可能とするために、スピンダウン前にキャッシュ上にメタデータを格納し、そのメタデータの参照を契機として論理ボリュームのスピンアップを行うことで、アクセス応答速度の劣化を防止するとともに、省電力化を実現する旨が開示されている。
特開2007−86843号公報
しかし、特許文献1の技術を以ってしても、ユーザがあるファイルシステムによって管理される複数のファイルのうち1つでもアクセスしている場合には、そのファイルシステムが作成される論理ボリュームに対応するHDDのスピンダウンができない。つまり、ファイルへのアクセスが継続する環境では省電力化を期待することができない。
そこで、本発明では、ファイルへのアクセスが継続する環境であっても省電力化を実現することを目的とする。
前記目的を達成するために、本発明のファイル管理システムは、ファイルのアクセス状況を解析し、ファイルへのアクセスがなされる代表的な時間帯を特定する。ここで、アクセスがなされる時間帯を特定することは、アクセスがなされない時間帯も特定されることを意味する。そして、その特定された時間帯にアクセスされないことが見込まれる1以上のファイルを1つのグループとして扱い、そのグループに含まれるファイルと、スピンダウンして論理ボリューム(以下、単に、「ボリューム」または「LU(Logical Unit)」と称する場合がある。)の稼働を停止する停止時間帯が決められているRAIDグループとの対応付けを行う。この対応付けに従って、ある時刻にスピンダウンを行うことになっているRAIDグループに格納されているファイルは、必要であれば、スピンアップして稼動中の別のRAIDグループに移行する。
従って、元々は停止中であったはずのRAIDグループに格納されていたファイルに対するユーザからのアクセスが当該停止時間帯中になされたとしても、そのファイルはすでに稼働中のRAIDグループに格納されているので、ユーザのアクセスは継続されるとともに、停止しようとするRAIDグループは予定通りにスピンダウンすることができる。前記したように1つだけのファイルにアクセスがあったためにスピンダウンすることができない、といった事態も起こらない。このようにして、スピンダウンする時間帯を増やして省電力化を実現する。
なお、ファイルサーバによって管理されるファイルシステムには、複数の実ファイルシステムを仮想的に統合したファイルシステムを使用する。ファイルサーバは、ファイルシステムの仮想化によって、ユーザに対し1以上の論理ボリュームに作成された1以上の実ファイルシステムは見せず、実ファイルシステムを仮想的に統合した統合ファイルシステム(仮想ファイルシステム)を見せている。従って、ファイルの移行がなされ、そのファイルが格納されている実ファイルシステムが変わったとしても、統合ファイルシステムしか見えないユーザはそのことを意識せずにファイルのアクセスを実行できる。詳細は後記する。
本発明によれば、ファイルへのアクセスが継続する環境であっても省電力化を実現することができる。
本発明が適用されるファイル管理システムの構成例を示す図である。 本実施形態に係るHSM機能を使用した場合のファイルシステムツリー構造を示す図である。 ファイルシステムの構造の一例を示す図である。 ディレクトリエントリのデータ構造の一例を示す図である。 iノードとデータブロックの参照関係を示す図である。 iノードテーブルのデータ構造の一例を示す図である。 サーバのソフトウェア構成を示す図である。 ファイルシステムの階層の管理情報である階層管理テーブルを示す図である。 階層データリストの基本データ構造を示す図である。 基本データ構造に基づく、利用中の仮想ファイルシステムを構成する実ファイルシステムをリストとして管理する階層データリストのデータ構造を示す図である。 マッピングテーブルのデータ構造を示す図である。 スケジュールテーブルのデータ構造を示す図である。 グルーピングテーブルのデータ構造を示す図である。 アクセス解析テーブルのデータ構造を示す図である。 アクセス要求受付処理の様子が描かれたファイル管理システムの構成例を示す図である。 アクセス監視処理の様子が描かれたファイル管理システムの構成例を示す図である。 ファイル移行処理の様子が描かれたファイル管理システムの構成例を示す図である。 ファイルのグループ化およびそのグループの変更の様子を示す図である。 ファイルのグループ化およびそのグループの変更の様子を示す図である。 ファイルのグループ化およびそのグループの変更の様子を示す図である。 ファイルのグループ化およびそのグループの変更の様子を示す図である。 スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。 スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。 スピンダウン/アップ処理の様子が描かれたファイル管理システムの構成例を示す図である。 ファイルアクセスプログラム、ファイルアクセス情報収集プログラム、マイグレーションプログラム、スピンダウン/アッププログラムにより実行される処理全体のフローを示す図である。 ファイルアクセスプログラムにより実行される処理のフローを示す図である。 ファイルアクセス情報収集プログラムにより実行される処理のフローを示す図である。 マイグレーションプログラムにより実行される処理のフローを示す図である。 スピンダウン/アッププログラムにより実行される処理のフローを示す図である。
以下、本発明を実施するための形態について、図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。
(実施形態1)
図1は、本発明が適用されるファイル管理システムの構成例を示す図である。階層管理ファイルシステムは、サーバ1001(ファイルサーバ)と、サーバ1001に接続されたRAID(Redundant Arrays of Independent Disks)装置1014(記憶装置)、管理端末1020、クライアント1030を有する。サーバ1001とRAID装置1014は、例えばSAN(Storage Area Network)で接続されている。また、管理端末1020、クライアント1030、およびサーバ1001は、例えばLAN(Local Area Network)で接続されている。なお、管理端末1020は、クライアント1030と同等のコンピュータとみなす場合がある。
サーバ1001は、メモリ(記憶部)1008に格納されたプログラムを実行するCPU(Central Processing Unit:制御部)1002、RAID装置1014との通信に使用するディスクアダプタ1003、管理端末1020やクライアント1030との通信に利用するネットワークアダプタ1004、プログラムやデータを格納するメモリ1008を搭載し、それらは内部的な通信路(例えば、バス)によって接続されている計算機である。なお、サーバ1001がディスクアダプタ1003を使用してRAID装置1014と接続するときは、FCパスを経由し、FCパスは稼働中のRAIDグループに振り分けられる。
サーバ1001のメモリ1008には、プログラムやデータが格納される。具体的には、メモリ1008には、管理コマンド1005、階層管理ファイルシステムプログラム1006、実ファイルシステムプログラム1007、オペレーティングシステム1009、管理情報1010、ファイルアクセスプログラム3001、ファイルアクセス情報収集プログラム3002、マイグレーションプログラム3003、スピンダウン/アッププログラム3004が格納される。
管理コマンド1005は、サーバ1001が提供するHSM(Hierarchical Storage Management:階層ストレージ管理)機能を管理するコマンドである。階層管理ファイルシステムプログラム1006は、ファイルシステムの階層化を実現し、サーバ1001が提供するHSM機能の中心となるプログラムである。実ファイルシステムプログラム1007は、RAID装置1014のFC(Fiber Channel)ディスクドライブ1012、SATA(Serial Advanced Technology Attachment)ディスクドライブ1013のファイルシステムであるFS A(1015)、FS B(1016)を管理するプログラムである。なお、FSはFile System(ファイルシステム)の略である。オペレーティングシステム1009は、サーバ1001全体を管理するプログラムである。オペレーティングシステム1009は、後述するVFS(Virtual File System:仮想ファイルシステム)プログラム3000を内部に有する。
ファイルアクセスプログラム3001は、管理端末1020から端末プログラムの接続を受け付けたり、クライアント1030のファイルアクセス要求プログラム1031からファイルアクセス要求(説明の便宜上、単に、「アクセス要求」と称する場合がある。)を受け取ったりするサーバプログラムである。管理情報1010は、HSM機能を提供するための管理データである。これらのプログラムやデータの詳細は後記する。ただ、管理情報1010に含まれる各種テーブル10000とは、後記する階層管理テーブル4000、マッピングテーブル6000、スケジュールテーブル7000、グルーピングテーブル8000、アクセス解析テーブル9000を含むテーブルの総称である。サーバ1001でなされる処理によってこれらのテーブルがメモリ1008の記憶領域で一時的に作成され、作成されたテーブルはRAID装置1014に保存される。
階層管理ファイルシステムプログラム1006は、主に、階層管理参加処理、階層管理離脱処理、管理情報再構築処理、階層移動処理、Lookup処理、Creat処理、Mkdir処理、Readdir処理を行う。
ファイルアクセス情報収集プログラム3002は、管理端末1020またはクライアント1030からのファイルアクセスを監視し、そのファイルアクセスの詳細を示すファイルアクセス情報をファイルごとに収集するサーバプログラムである。
マイグレーションプログラム3003は、RAID装置1014のあるボリューム(またはRAIDグループ)に格納されているファイルを別のボリューム(またはRAIDグループ)に移行するサーバプログラムである。
スピンダウン/アッププログラム3004は、RAID装置1014に作成されたRAIDグループのスピンダウン(ハードディスクのプラッタの回転速度を規定値まで下げること)またはスピンアップ(ハードディスクのプラッタの回転速度を規定値まで上げること)を行うサーバプログラムである。
なお、これらのプログラムを格納した記録媒体を製造し、サーバ1001がその記録媒体から前記プログラムを読み込み、前記した処理を実行しても良い。
なお、RAIDグループのスピンアップとは、RAIDグループに含まれるハードディスクの状態をRead要求またはWrite要求を処理可能な状態まで遷移させる処理を指しても良い。また、RAIDグループのスピンダウンとは、RAIDグループに含まれるハードディスクの状態をスピンアップ後の電力消費量から低い消費電力状態に遷移する処理であれば、ハードディスクの回転速度を規定値まで下げる以外の状態遷移であっても良い。以後、ハードディスクの状態として、Read要求またはWrite要求を処理可能な状態またはハードディスクのプラッタの回転速度を規定値まで上げた状態をスピンアップ状態(または通常状態)と呼び、上記通常状態より消費電力の低い状態またはハードディスクのプラッタの回転速度を規定値まで下げた状態をスピンダウン状態(または省電力状態)と呼ぶことがある。
RAID装置1014は、RAID装置1014がサーバ1001へ提供するボリュームを制御するディスク制御装置1011と、サーバ1001へ提供する1以上のボリュームを作成するFCディスクドライブ1012a(1012),1012b(1012)と、SATAディスクドライブ1013とを有する。FCディスクドライブ1012aには、後記する階層管理テーブル4000(ファイルシステム階層管理情報)、マッピングテーブル6000(マッピング情報)、スケジュールテーブル7000(スケジュール情報)、グルーピングテーブル8000、アクセス解析テーブル9000(アクセス情報)を格納するFSMファイルシステム1017を格納する。ディスク制御装置1011と、FCディスクドライブ1012と、SATAディスクドライブ1013と、FSMファイルシステム1017とは、内部的な通信路で接続されている。なお、FSMは、File System Managementの略である。
なお、FCディスクドライブ1012とSATAディスクドライブ1013には、性能差がある。例えば、FCディスクドライブ1012はSATAディスクドライブ1013に比べて性能が良い。さらに、FCディスクドライブ1012の代わりにSAS(Serial Attached SCSI)ドライブを用いても良い。
このように複数種類のディスクドライブを使い分ける理由としては、日々の技術進歩によってより安価に大容量のディスクドライブ(例えばSATAディスクドライブ)が流通し、またそれと同時に、高価であるが高性能なディスクドライブ(例えば、FCディスクドライブや、SASディスクドライブや、フラッシュメモリを用いたSSD(Solid State Disk))が流通しているため、コスト、容量、信頼性、性能等に関する項目から少なくとも二つ以上の条件を満たす必要がでてきたためである。
なお、ディスクドライブは、FCディスクドライブ1012やSATAディスクドライブ1013だけでなく、CD(Compact Disc)やMO(Magneto-Optical)ディスク、DVD(登録商標)等の光学メディア等でも良く、ファイルシステムが作成できるストレージ装置であれば、本発明は適用できる。さらに、ディスクドライブだけでなく、ファイルシステムとして認識できれば本発明は適用することができる。また、NFS(Network File System)やCIFS(Common Internet File System)といったファイル共有プロトコルのファイルシステムも、本発明は適用でき、クライアント1030に対するファイル共有環境が実現される。
なお、ディスクドライブに関する性能差として考えられるのは、最大転送速度や、最大IOPS(Input/Output operations Per Second)等が第一に考えられるが、これらの値を価格や消費電力の少なくともいずれかで割った値を考えても良い。また、性能差以外の特徴値について差異(例えば、コスト、容量、信頼性)を考慮して複数種類のディスクドライブを使い分けても良い。また、当該特徴値としてはディスクドライブを製造するベンダが提供するカタログ値を元に判断することが考えられるが、個々のディスクドライブに実際にアクセスを行うことで特徴値を把握しても良い。以後、明細書では性能を例として説明を行うが、本発明は性能以外の特徴値を元としたディスクドライブの併用にも有効である。
FS A(1015)はFCディスクドライブ1012に作成される。また、FS B(1016)はSATAディスクドライブ1013に作成される。ファイルシステムは、クライアント1030のユーザが作成したデータをファイル形式で保持する。以降、これらのファイルシステムを実ファイルシステムと呼ぶ場合がある。これは、後述するように、本発明が「仮想」ファイルシステムを作成するため、ボリューム上に作成される「本当の」ファイルシステムという意味である。
なお、本実施形態では、FCディスクドライブ1012aに作成される1以上のボリュームを1つのRAIDグループとして扱い、「Rgroup−A」と称する。また、SATAディスクドライブ1013に作成される1以上のボリュームを1つのRAIDグループとして扱い、「Rgroup−B」と称する。また、実ファイルシステムと仮想ファイルシステムとを対応付ける役割を果たすFCディスクドライブ1012bに作成される1以上のボリュームも1つのRAIDグループとして扱う。
FCディスクドライブ1012bおよびSATAディスクドライブ1013に作成されるボリューム(LU)には、クライアント1030からアクセス要求のあるファイルが格納される。FS A(1015)、FS B(1016)により使用される記憶領域には、これらのLUが割り当てられる。これらのボリュームに格納されるファイルは、ユーザが業務目的に使用するものである。
また、FCディスクドライブ1012aに作成されるボリュームには、サーバ1001が処理を実行するためのプログラムやテーブル(4000、6000等)が格納され、ユーザが使用するファイルは格納されない。従って、ユーザがこのボリュームを使用することは通常無い。
管理端末1020は、サーバ1001を管理する管理者が使用する計算機である。管理者は、管理端末1020からネットワークを通して、サーバ1001の管理コマンド1005を使用する。クライアント1030は、サーバ1001が提供するファイル共有サービスを利用する計算機である。クライアントを利用するユーザは、ファイルアクセス要求プログラム1031を通してサーバ1001のファイル共有サービスを利用する。
なお、以後の説明で用いる用語の意味は、以下に示す。
(A)「ファイル」:クライアント1030またはサーバ1001が生成したデータを格納する論理的な存在。
(B)「ディレクトリ」:ファイルやディレクトリを集約して管理する論理的な単位。
(C)「ディレクトリ名」:ディレクトリに付与される名前。
(D)「パス」または「パス名」:ファイルまたはディレクトリを識別する識別情報。
(E)「ファイル名」:ファイルに付与される名前。なお、以後の説明ではファイル名にパス名が含まれることがある。
図2は、本実施形態に係るHSM機能を使用した場合のファイルシステムツリー構造を示す図である。ファイルシステムツリーは、サーバ1001が構築し、クライアント1030へ提供しているファイルシステム名前空間である。
ファイルシステムツリー2000は、「/(ルート)」と、ルートの下の「EXPORT」と「Tier1」と「Tier2」で構成されている。FS A(1015)は、Tier1にマウントされ、FS B(1016)はTier2にマウントされている。本実施形態のHSM機能は、Tier1とTier2をEXPORTディレクトリへ重ねる。このとき、ファイルシステムスタック構造2002のように、FS A(1015)を上にFS B(1016)を下に配置して、仮想ファイルシステム2001を作成する。
本実施形態は、EXPORT以下をクライアント1030が使用する。クライアント1030のユーザがファイルを作成すると、つまり、ファイルの作成要求をサーバ1001に送信すると、FS A(1015)にファイルが作成される。そして、そのファイルの利用頻度が低下すると、そのファイルをFS B(1016)へ移動する。こうすることで、利用頻度の低いファイルが高速ボリュームから低速ボリュームへ移動する。なお、利用頻度が低下したファイルは、サーバ1001の利用者が特定してもよく、サーバ1001に予め設定された所定のルールに基づき特定してもよく、またその他の方法で特定しても良い。
HSM機能が仮想ファイルシステム2001を構成するときに、FS A(1015)とFS B(1016)に同名のファイルがあった場合、FS A(1015)のファイルが仮想ファイルシステム2001に登録される。その結果、FS B(1016)にある同名のファイルはクライアント1030へ提供されない。これは、ファイルシステムスタック構造2002で示すように、FS A(1015)がFS B(1016)を覆うように配置されるためである。なお、FS B(1016)がFS A(1015)を覆うように配置されるファイルスタック構造となっても良い。
なお、ファイルシステム統合の対象となったFS A(1015)とFS B(1016)は、クライアント1030への提供を停止しても良い。以上に示した方法により、管理者は使用中のファイルシステムを自由に統合できる。
ここで、ファイルシステムについて詳細に説明する。ファイルシステム(以下、「FS」と称する場合がある。)とは、ボリューム上にファイルという管理単位を実現するために構築された論理構造をいう。なお、このような論理構造は、例えばテーブルやキューであっても良い。
図3は、ファイルシステムの構造の一例を示す図である。FSは、スーパーブロック(ファイル管理情報)301、ディレクトリエントリ(ファイル名−ファイル属性情報対応情報)302、iノードテーブル(ファイル属性情報管理情報)303、データブロック(I/O最小単位)304等を含んで構成されている。
スーパーブロック301とは、FSの情報を一括保持している領域である。一括保持する情報としては、例えばFSの大きさ、FSの空き容量等がある。
ディレクトリエントリ302とは、ファイル名とファイルの属性とを対応付けて管理するエントリである。これにより、FSにおいて1つのファイルに1つのiノード(ファイル属性情報)を対応させることができる。
図4は、ディレクトリエントリのデータ構造の一例を示す図である。図4で示すように、ディレクトリエントリ302は、ディレクトリパス名401とiノードを指すインデックスであるiノード番号402を組にしたテーブルである。FSは、このディレクトリエントリのiノード番号(またはinode番号と表記する場合もある。)を用いてiノードにアクセスする。ファイルシステムプログラム(例えば、実ファイルシステムプログラム1007)は当該iノードエントリを参照することでファイル名(またはディレクトリパス名)からiノード番号を取得する。なお、ディレクトリエントリはデータブロック中に分散して存在しても良い。
なお、iノードとは、iノード番号、ファイルの所有権、アクセス権、ファイルサイズ、データの格納位置(データブロックアドレス(または、ポインタ))を含む各種情報(属性)を保持する領域をいう。
図5は、iノードとデータブロックの参照関係を示す図である。後記するiノードテーブル303に登録された情報に従うようにして、データブロック中の網掛け部分のブロック(データの格納位置を示す)内のデータがアクセス権の範囲内で参照される。
iノードテーブル303とは、iノードを格納するテーブルである。
図6は、iノードテーブルのデータ構造の一例を示す図である。図6で示すように、iノードテーブル303は、iノード番号601、所有者602、アクセス権603、サイズ604、データブロックアドレス1、2、3・・・(605a、605b、605c・・・)を組にしたテーブルである。
データブロック304とは、実際のファイルや管理データ等が格納されるブロックである。
以上で、ファイルシステムの説明を終える。
図7は、サーバのソフトウェア構成を示す図である。サーバ1001のソフトウェア構成は、ファイルアクセスプログラム3001、管理コマンド1005、VFSプログラム3000、階層管理ファイルシステムプログラム1006、実ファイルシステムプログラム1007から構成される。
管理コマンド1005と、クライアント1030からのファイルアクセス要求を受信したファイル共有サーバプログラム等のファイルアクセスプログラム3001とは、オペレーティングシステム1009の一部であるVFSプログラム3000にアクセスを要求する。VFSプログラム3000は、実ファイルシステムプログラム1007や階層管理ファイルシステムプログラム1006のアクセスインタフェースを仮想化し、管理コマンド1005やファイルアクセスプログラム3001に提供する機能を持つプログラムである。
階層管理ファイルシステムプログラム1006は、VFSプログラム3000を通してファイルアクセスプログラム3001や管理コマンド1005からアクセス要求を受け取る。また、階層管理ファイルシステムプログラム1006は、実ファイルシステムプログラム1007(例えば、FS A(1015)、FS B(1016))へアクセスを要求する。一方、実ファイルシステムプログラム1007は、VFSプログラム3000から直接アクセス要求を受け取る場合もある。このように、VFSプログラム3000は、ファイルアクセスプログラム3001とファイルシステムプログラム(階層管理ファイルシステムプログラム1006および実ファイルシステムプログラム1007)の仲介を行うオペレーティングシステムを構成するソフトウェアである。
なお、サーバ1001にて動作するファイルアクセスプログラム3001や管理コマンド1005はカーネルの一部として動作してもよく、カーネルとは別な、より保護された実行環境である一般プログラムとして動作しても良い。
ここで、カーネルとは、NAS(つまり、サーバ1001)上で動作する複数のプログラム(プロセス)のスケジュール制御やハードウェアからの割り込みをハンドリングする等し、NASの全般的な制御を実施するソフトウェアであり、OS(Operating System)の基本機能を実装する。
ファイルアクセスプログラム3001が、クライアント1030から受信する要求(ファイルアクセス要求)には、例えば以下の種類がある。なお、下記説明ではNFSとCIFSにおける例示をしているが、これ以外のコマンドが含まれてもよく、また他のコマンドで代替しても良い。
(A)ファイルまたはディレクトリのパス名から、以下(B)〜(H)のファイルまたはディレクトリに対する参照および操作のために必要な識別子(以後、ファイルハンドル識別子と呼ぶ。)を取得するlookup要求。NFSプロトコルの場合は、例えば、パス名を指定するLookupコマンドがある。lookup要求がなされると、階層管理ファイルシステムプログラム1006は、Lookup処理を実行する。
(B)指定したディレクトリに指定したファイル名でファイルを生成するcreat要求。NFSプロトコルの場合は、例えば、lookup要求で取得したディレクトリのファイルハンドル識別子と、ファイル名を引数とするCreateコマンドがある。CIFSプロトコルの場合は、例えば、ディレクトリ名とファイル名を引数としたSMB_COM_CREATEコマンドがある。creat要求がなされると、階層管理ファイルシステムプログラム1006は、Creat処理を実行する。
(C)指定したディレクトリ配下に新規ディレクトリを生成するmkdir要求(新規ディレクトリのディレクトリ名も指定する)。NFSプロトコルの場合は、例えば、lookup要求で取得したディレクトリのファイルハンドル識別子と、新規ディレクトリの名前を引数としたMkdirコマンドがある。CIFSプロトコルの場合は、例えば、ディレクトリ名と新規ディレクトリ名を引数としたSMB_COM_CREATE_DIRECTORYコマンドがある。mkdir要求がなされると、階層管理ファイルシステムプログラム1006は、Mkdir処理を実行する。
(D)指定したディレクトリ配下に存在する1つ以上のファイルまたはディレクトリについてのファイル名やディレクトリ名をクライアント1030へ送信するreaddir要求。NFSプロトコルの場合は、例えば、lookup要求で取得したディレクトリのファイルハンドル識別子を引数とするReaddirコマンドがある。CIFSプロトコルの場合は、例えば、ディレクトリ名を引数としたSMB_COM_TRANSACTION2:TRANS2_QUERY_PATH_INFORMATIONコマンドがある。readdir要求がなされると、階層管理ファイルシステムプログラム1006は、Readdir処理を実行する。
(E)指定したファイルを読み書きするための準備処理をサーバ1001に依頼するopen要求。NFSプロトコルの場合は、例えば、lookup要求で取得したファイルのファイルハンドル識別子を引数とするopenコマンドがある。CIFSプロトコルの場合は、例えば、ファイル名(パス名込み)を引数とするSMB_COM_OPENがある。なお、CIFSプロトコルの場合は、SMB_COM_OPENの応答情報としてファイルのreadまたはwrite処理を行うための識別子(以後、open識別子と呼ぶ。)をクライアント1030に送信する。
(F)open要求で準備したファイルのデータを読み込むread要求。NFSプロトコルの場合は、例えば、lookup要求で取得したファイルのファイルハンドル識別子を引数とするreadコマンドがある。CIFSプロトコルの場合は、例えば、open識別子を引数とするSMB_COM_READコマンドがある。
(G)open要求で準備したファイルのデータを書き込むwrite要求。NFSプロトコルの場合は、例えば、lookup要求で取得したファイルのファイルハンドル識別子を引数とするwriteコマンドがある。CIFSプロトコルの場合は、例えば、open識別子を引数とするSMB_COM_WRITEコマンドがある。
(H)open要求で行った準備を終了するclose要求。NFSプロトコルの場合は、例えば、lookup要求で取得したファイルのファイルハンドル識別子を引数とするcloseコマンドがある。CIFSプロトコルの場合は、例えば、open識別子を引数とするSMB_COM_CLOSEコマンドがある。
なお、各要求にディレクトリまたはファイルを指定する場合は、ディレクトリ名やファイル名を引数として各要求に付随させる以外に、サーバ1001がディレクトリまたはファイルを特定することが可能な情報をサーバ1001が受信さえ可能であれば、どのような形態の情報であっても良い。
また、サーバ1001がボリュームに格納し管理するファイルには、サーバ1001自体が用いるものやセキュリティの理由から複数のクライアント1030から特定のクライアントに対してのみ読み書きを許可したい場合もある。こうした要求に対応するため、サーバ1001のファイルアクセスプログラム3001は、エクスポートと呼ばれる機能を有する。エクスポート機能は、サーバ1001が論理ボリュームに定義したファイルシステムの所定のディレクトリ(以後、エクスポートディレクトリ)配下のディレクトリおよびファイル(別な言い方では、ディレクトリ空間)を所定のクライアント1030(エクスポート先クライアント)にのみ提供する機能である。この場合、前述の所定のクライアント1030に対しては前述の所定のディレクトリ配下のディレクトリおよびファイルがトップディレクトリに存在するようディレクトリ空間を変換している。
例えば、配下に「homework.txt」ファイルを有する「work」ディレクトリと「diary.txt」ファイルとを有する「/home/user1」ディレクトリをサーバ1001が管理している場合、「/home/user1」をエクスポートディレクトリと指定し、複数のクライアントからfooの名前を有するクライアントを指定した場合は、fooクライアントからはサーバが提供するディレクトリ空間のルートディレクトリ直下に「work」ディレクトリと「diary.txt」が存在するように見える。
図8は、ファイルシステムの階層の管理情報である階層管理テーブルを示す図である。階層管理テーブル4000は、管理情報1010の一部である。管理者が管理コマンド1005を使用して仮想ファイルシステムを作成する際、階層管理ファイルシステムプログラム1006が「仮想の」ファイルシステムと「実」ファイルシステムとの対応を管理するための情報である階層管理テーブル4000を作成する。階層管理テーブル4000は、ファイルシステム(例えば、FS A(1015)、FS B(1016))のマウント位置を示すマウントパス4001と、ファイルシステムの管理ID(Identifier)であるFSID4002、ファイルシステムの階層を示す階層4003が1つのレコードとして構成されている。
階層管理ファイルシステムプログラム1006は、ファイルシステムがマウントされるパス情報を完全パス名でマウントパス4001へ記録する。完全パス名とは、/(ルート)から始まるパスで、例えば、図8に示すように「/EXPORT」等が該当する。
また、FSID(4002)は、管理者が実ファイルシステムをマウントするときに設定した値を記録する。以降に記述されるFSIDは管理者が設定した値を用いる。
また、階層管理ファイルシステムプログラム1006は、階層4003の特定の値を、階層以外の用途に使用する。例えば、階層4003が0x00に設定されている場合、管理コマンド1005と階層管理ファイルシステムプログラム1006は、その階層を仮想ファイルシステム2001(図2参照)であると認識する。
さらに、管理コマンド1005は、階層4003を0x01(10進数で1)から始めるのではなく、0x0F(10進数で16)から2番おきに採番する。こうすることで、最高の階層の上に、さらに階層を追加することが容易になる。また、階層間に階層を追加することも容易となる。ただし、この採番方法については一例であり、本実施形態が採番方法について特に限定するものではない。
図9は、階層データリストの基本データ構造を示す図である。図10は、基本データ構造に基づく、利用中の仮想ファイルシステムを構成する実ファイルシステムをリストとして管理する階層データリストのデータ構造を示す図である。階層データリスト5000は、管理情報1010の一部である。図9に示すように、階層データリスト5000の基本データ構造は、マウント中のパスを示すマウントパス5001と、ファイルシステムのIDを示すFSID(5002)と、ポインタ5003で構成される。なお、図8で示した階層管理テーブル4000は、恒久的なものであるのに対して、図9および図10に示す階層データリスト5000は、運用中(動作中)の一時的なものである点で異なっている。
具体的には、図10に示す階層データリスト5000は、仮想ファイルシステム2001(/EXPORT)を先頭にした階層構造を示している。例えば、管理者の指示により、「/Tier1」が外される(階層から離脱する)場合、階層管理テーブル4000は変更されない。しかし、階層データリスト5000は変更される。階層管理ファイルシステムプログラム1006は、階層データリスト5000のうち、「/EXPORT」のポインタを書き換え、「/Tier2」を指すように変更する。そして、「/Tier1」のデータを破棄する。このようにすることで、階層管理ファイルシステムプログラム1006は、恒久的な階層構成情報と一時的な階層構成情報を効率よく管理できる。
次に管理コマンド1005について説明する。
(階層管理への参加コマンド)
(A1)式および(B1)式は、管理者が実ファイルシステムを仮想ファイルシステム2001へ統合する(実ファイルシステムを階層管理へ参加させる)際に入力するコマンドの一例を示す。(A1)式は、mountコマンドの書式であり、(B1)式は、具体例を示している。
mount -t hmfs -o T=<Tier>,D=<TARGET> <SRC> <SRC> …(A1)
mount -t hmfs -o T=1,D=/EXPORT /Tier1 /Tier1 …(B1)
管理者は、管理端末1020の端末プログラムを利用して、サーバ1001のファイル要求受信プログラム(端末サーバプログラム)3001へ接続し、サーバ1001へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド1005を実行する。
(A1)式において、管理者は、マウントコマンドの「−t」オプションにより、階層管理ファイルシステムを利用することを指定する。そして、管理者は、「−o」オプションにより、階層管理ファイルシステムプログラム1006のオプションを指定する。階層管理ファイルシステムプログラム1006のオプションのうち、階層管理への参加処理で使用するオプションは「T」と「D」である。Tオプションは、実ファイルシステムの階層を示し、Dオプションは、仮想ファイルシステム2001のパスを示す。そして、「SRC」に、実ファイルシステムがマウントされているファイルシステムのパスを指定する。具体的には、FS A(1015)が階層管理へ参加する場合(図2参照)、(B1)式に示すように、「/Tier1」を指定する。
このようにして、階層管理への参加コマンドが入力されると、階層管理ファイルシステムプログラム1006は、階層管理参加処理を実行する。
(管理情報再構築コマンド)
(A2)式および(B2)式は、マッピングテーブル6000が壊れたときに再構築するためのコマンドの一例を示す。(A2)式は、管理情報の再構築で使用するmountコマンドの書式であり、(B2)式は、具体例を示している。
mount -t hmfs -o I=<Tier DB>,D=<TARGET> hmfs hmfs …(A2)
mount -t hmfs -o I=/HMDB,D=/EXPORT hmfs hmfs …(B2)
管理者は、管理端末1020の端末プログラムを利用して、サーバ1001のファイル要求受信プログラム(端末サーバプログラム)3001へ接続し、サーバ1001へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド1005を実行する。
(A2)式において、−tオプションは、階層管理への参加と同様に、階層管理ファイルシステムプログラム1006を利用することを示す。管理情報の再構築では、−oオプションで指定する、階層管理ファイルシステムプログラム1006のオプションが異なる。管理者は、Iオプションにマッピングテーブル6000が格納されているファイルシステムパスを指定する。また、管理者は、Dオプションに仮想ファイルシステム2001のパスを指定する。図2を例にすると、具体的には、(B2)式に示すように、管理者は/に格納しているHMDBファイルを再構築することを指示している。
このようにして、管理情報再構築コマンドが入力されると、階層管理ファイルシステムプログラム1006は、管理情報再構築処理を実行する。
(階層管理からの離脱コマンド)
(A3)式および(B3)式は、管理者が指定するファイルシステムを階層管理から外す際に入力するコマンドの一例を示す。(A3)式は、階層管理から外す(階層管理から離脱)処理の書式であり、(B3)式は、具体例を示している。
umount <SRC> …(A3)
umount /Tier1 …(B3)
管理者は、管理端末1020の端末プログラムを利用して、サーバ1001のファイル要求受信プログラム(端末サーバプログラム)3001へ接続し、サーバ1001へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド1005を実行する。
管理者は、umountコマンドを使用して、階層管理からファイルシステムを外すことができる。(A3)式において、umountコマンドに、実ファイルシステムがマウントされたファイルシステムパスを指定する。図2を例にすると、具体的には、(B3)式に示すように、管理者は、/Tier1にマウントされたファイルシステムを階層管理から外すことを、階層管理ファイルシステムプログラム1006へ指示している。
このようにして、階層管理からの離脱コマンドが入力されると、階層管理ファイルシステムプログラム1006は、階層管理離脱処理を実行する。
(階層の移動コマンド)
(A4)式および(B4)式は、管理者やクライアント1030を利用するユーザが、ファイルの階層を移動させる際に入力するコマンドの一例を示す。(A4)式は、階層の移動処理の書式であり、(B4)式は、具体例を示している。
mv_tier -t 2 <FILE> …(A4)
mv_tier -t 2 FILE1 …(B4)
管理者は、管理端末1020の端末プログラムを利用して、サーバ1001のファイル要求受信プログラム(端末サーバプログラム)3001へ接続し、サーバ1001へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド1005を実行する。
(A4)式において、−tオプションは、移動先の階層を指定する。具体的には、(B4)式に示すように、/Tier1に格納されているFILE1は、本コマンドを実行することで、/Tier2へ移動することになる。
このようにして、階層の移動コマンドが入力されると、階層管理ファイルシステムプログラム1006は、階層移動処理を実行する。
図11は、マッピングテーブルのデータ構造を示す図である。マッピングテーブル6000は、管理情報1010の一部であり、仮想ファイルシステムと実ファイルシステムとをマッピングすることにより、ファイルが格納されている実ファイルシステム情報を示す。マッピングテーブル6000は、仮想ファイルシステムのファイル名をファイルパスとして示すファイルパス名6001、仮想ファイルシステムのinode番号を示す仮想ファイルシステム用inode番号6002、当該ファイルが格納されているRAIDグループを示すRAIDグループ名6003、当該ファイルを管理する実ファイルシステムを示すファイルシステム名6004(図8のFSID(4002)と同義)、その実ファイルシステムのinode番号を示すファイルシステム用inode番号6005で構成される。
マッピングテーブル6000は、1レコードに1つのファイルを対応付けている。VFSプログラム3000は、仮想ファイルシステム2001の完全ファイルパスをファイルパス名6001に記録する。ファイルパス名6001に記録するファイル名は、階層管理するファイルシステム(実ファイルシステムのこと。図2の場合、FS A(1015)やFS B(1016)をいう。)が保持しているファイルパスと同じである。例えば、図2のFS A(1015)に「/home/user001/a.txt」というファイルがある場合は、VFSプログラム3000は、ファイルパス名6001に「/home/user001/a.txt」と記録する。一方、「/home/user002/b.txt」というファイルがある場合は、VFSプログラム3000は、ファイルパス名6001に「/home/user002/b.txt」と記録する。
クライアント1030を利用するユーザは、ファイル名6001を指定して、ファイルへアクセスする。その際、ユーザから見ると仮想ファイルシステムにアクセスしているように見えるが、実際はVFSプログラム3000(または階層管理ファイルシステムプログラム1006)が、ファイルパス名6001に対応するレコードを特定し、実ファイルシステムプログラム1007へのアクセスに切り替える。そして、実ファイルシステムプログラム1007によって対応する実ファイルシステム上のファイルへのアクセスが実現される。なお、本実施形態では、管理情報再構築処理により、マッピングテーブル6000が失われても再構築することができるため、高い可用性を実現できる。
なお、RAIDグループが異なるボリューム間のファイルの移行があった場合、マッピングテーブル6000において、RAIDグループ名6003、ファイルシステム名6004、ファイルシステム用inode番号6005に登録される値は当然変更するが、仮想ファイルシステムにおいてはその変化は現れないため、ファイルパス名6001、仮想ファイルシステム用inode番号6002に登録される値は変更しない。
図12は、スケジュールテーブルのデータ構造を示す図である。スケジュールテーブル7000は、管理情報1010の一部であり、サーバ1001からアクセス可能なすべてのファイルシステムが属するRAIDグループのスピンアップ(起動)またはスピンダウン(停止)を行う時期を定めるスケジュール情報を登録する。スケジュールテーブル7000は、起動または停止するRAIDグループを示すRAIDグループ名7001、そのRAIDグループが停止する時間帯を示す停止時間帯7002で構成される。停止時間帯は、例えば管理者が管理端末1020の入力手段から指定する。
図13は、グルーピングテーブルのデータ構造を示す図である。グルーピングテーブル8000は、管理情報1010の一部であり、ファイルのアクセス情報を集計することによりグループ化されたファイルのファイル情報を登録する。グルーピングテーブル8000は、アクセス特性が共通するファイルをまとめるグループを示すグループ名8001、そのグループに属するファイルを示すファイル名8002で構成される。ファイル情報は、後記するアクセス解析テーブル9000から定める。
図14は、アクセス解析テーブルのデータ構造を示す図である。アクセス解析テーブル9000は、管理情報1010の一部であり、クライアント1030からファイルアクセス要求がある度に、ファイルのアクセス情報を登録する。アクセス解析テーブル9000は、アクセスがなされたファイルを示すファイル名9001、そのファイルにアクセスしたユーザを示すユーザ9002、そのアクセスがなされた日時を示すアクセス日時9003で構成される。これらの他にアクセスの種類(例:read要求、write要求)を登録しても良い。ファイルアクセス要求には、アクセス対象となるファイルのファイル名、アクセスしようとするユーザ、ファイルアクセスがなされた日時(ファイルアクセス日時)が含まれている。このアクセス日時9003には、ファイルアクセス日時として、特に、ファイルアクセスの開始日時、その終了日時、ファイルアクセスがなされた時間帯が登録されるようにしても良い。
RAIDグループの停止時間帯は、アクセス解析テーブル9000からファイルのアクセス情報を集計して、あるファイルへのアクセスがなされる代表的な時間帯を統計的に見積もり、その時間帯以外の時間帯を特定することにより決められる。
また、ファイルアクセスがなされる前には、ユーザはファイル管理システムの提供するファイルサービスを利用するためにログインをしており、ファイルアクセスがなされた後はそのユーザはログアウトしている。そこで、ユーザごとのログイン時からログアウト時までの代表的な時間帯を決定し、その決定した時間帯以外の時間帯を、RAIDグループの停止時間帯とするようにしても良い。
次に、本実施形態で行う省電力化について説明する。
既に説明したとおり、RAID装置1014において、1以上のLUから作成された1以上ファイルシステム(FS A(1015)、FS B(1016))はサーバ1001により一元管理される。サーバ1001のVFSプログラム3000は、1以上のファイルシステムを仮想的に統合した仮想ファイルシステムを構築する。このVFSプログラム3000は、ファイルアクセスプログラム3001、ファイルアクセス情報収集プログラム3002、マイグレーションプログラム3003、スピンダウン/アッププログラム3004の実行により、後記する、アクセス要求受付処理、アクセス監視処理、ファイル移行処理、スピンダウン/アップ処理を、それぞれ実現する。
〔アクセス要求受付処理〕
図15は、アクセス要求受付処理の様子が描かれたファイル管理システムの構成例を示す図である。説明の便宜上、図1の図面を簡略化してある。クライアント1030に対しては、各RAIDグループにある個々のファイルシステムを見せず、仮想ファイルシステムを見せている。
クライアント1030は、/home/user001/a.txtというファイルに対してアクセス要求をする(図中(1)参照)。すると、VFSプログラム3000を介して、RAID装置1014にあるマッピングテーブル6000から、/home/user001/a.txtというファイル名を検索キーとして、FS A(1015)、実ファイルシステム用inode番号=300を特定する(図中(2)参照)。そして、特定したファイルシステム(FS A(1015))に対してファイルアクセスし(図中(3)参照)、ファイル単位のアクセス処理(例:read処理、write処理)を実行する。
〔アクセス監視処理〕
図16は、アクセス監視処理の様子が描かれたファイル管理システムの構成例を示す図である。説明の便宜上、図1の図面を簡略化してある。アクセス監視処理は、主に2つの独立した処理で構成されている。
第1の処理は、クライアント1030からのファイルアクセスがあったときに行う処理である。サーバ1001は自身が管理するファイルシステムへのアクセス監視を行い、ファイル単位のアクセス情報をアクセス解析テーブルに格納する。例えば、fooというユーザから、/home/share/a.txtというファイルに対してread要求(アクセス属性の1つ)がなされる(図中(1)参照)と、VFSプログラム3000を介してそのファイルが格納されているRAIDグループ(ここでは、このファイルがFS B(1016)により管理されているので、Rgroup−Bであるとする。)から読み出される(図中(2)参照)。そして、このファイルアクセスのアクセス情報を書き出し(図中(3)参照)、アクセス解析テーブル9000にそのアクセス情報を格納する。
第2の処理は、サーバ1001において、クライアント1030からのファイルアクセスとは無関係に定期的になされる処理である。VFSプログラム3000は、アクセス解析テーブル9000を調べ、定期的に(適宜)アクセス解析を実行する(図中(4)参照)。具体的には、アクセス解析として、以前格納した古いアクセス情報を所定の条件の下で削除する。
前記条件としては、例えば、次の2つのようにするのが良い。
・ファイルアクセスのあった日時(アクセス日時9003(図14参照)から判定)が、設定された期限(1)より古い場合、無条件で削除する。
・ファイルアクセスのあった日時が、設定された期限(1)より新しく、期限(2)より古い場合において、アクセスユーザ数(ユーザ9002(図14参照)から判定)が所定値以上に多いファイルのアクセス情報については、段階的に削除し、アクセスユーザ数が所定値よりも少ないファイルのアクセス情報については、全削除する。
前記期限(1)および期限(2)は、メモリ1008に記憶され、ファイルアクセス情報収集プログラム3002により読み込まれる設定情報として定められる。設定情報は、例えば、次の2つのようにするのが良い。
(設定情報)
期限(1):−125(現在日時より125日前であることを意味する)
期限(2): −75(現在日時より75日前であることを意味する)
とすると良い。
このように定期的に処理することにより、次のような利点がある。まず、第1に、現状のアクセス状況を反映したスケジュールを作成することができる。過去のアクセス情報をいつまでも残しておくとスケジュールの決定に最新の状態がいつまでも反映されないからである。例えば、ファイルアクセスの時間帯が日々遅くなっていったとすると、スピンダウンの時間帯も遅くするようにすべきであるが、ファイルアクセスの時間帯が早い状態を示す過去のアクセス情報を反映させると、設定したスピンダウンの時間帯が早い側に設定されるようにスケジュールを作成してしまう。
第2に、アクセスユーザ数を用いることにより、スケジュールの作成に都合の良いアクセス情報を選び出すことができる。日時だけで判断してアクセス情報を削除してしまうと、変更前のスケジュールと変更後のスケジュールとの間に連続性がなくなってしまい、スケジュールと実際のファイルアクセスとの間に不整合が生じる。多少古いアクセス情報であったとしても、多くのユーザが利用するファイルのアクセス情報はスケジュールの作成において利用価値が高い。
〔ファイル移行処理〕
図17は、ファイル移行処理の様子が描かれたファイル管理システムの構成例を示す図である。説明の便宜上、図1の図面を簡略化してある。アクセス監視処理により取得したアクセス情報を蓄積し、蓄積した結果からファイルアクセスの無い(または有る)時間帯を抽出し、スピンダウンのスケジュールおよび類似したアクセスパターンごとにファイルをグループ化(詳細は、後記)したファイル情報を生成する。抽出した時間帯に基づいてスケジュールテーブル7000を生成し、ファイル情報に基づいてグルーピングテーブル8000を生成する。
ファイルの移行を行うときには、各テーブル(6000、7000、8000、9000)が参照される(図中(1)参照)。参照した結果、VFSプログラム3000は、ファイルシステムの仮想化におけるマッピングが最適か否かを判断する(図中(2)参照。詳細は、後記。)。そして、最適でなければ、最適になるように、マッピングテーブル6000、スケジュールテーブル7000、グルーピングテーブル8000の更新をし(図中(3)参照)、RAIDグループが停止していない時間帯にファイルを移行する(図中(4)参照)。
ファイルの移行の際、マッピングテーブル6000において、当該ファイルについて、RAIDグループ名6003、ファイルシステム名6004、実ファイルシステム用inode番号6005の値を変更し、マッピングが変更されるため、移行によるファイルの格納位置の変更がユーザから隠蔽される。
ここで、ファイルのグループ化について詳細に説明する。
図18、図19、図20、図21はファイルのグループ化およびそのグループの変更の様子を示す図である。
グループ化をするときには、まず、アクセス解析テーブル9000から当該ファイル(およびディレクトリ、ファイルシステム等)へのアクセス時刻を算出する。図18において、ファイルごとに、ファイルアクセスのあった箇所は黒の帯で示されている。
次に、このアクセス時刻が現在のグルーピングテーブルとマッチしているか否かを判断する。図19、図20において、黒の帯の下側に描かれた細破線の枠(グループ属性)は、スケジュールテーブル7000およびグルーピングテーブル8000から求められるファイルごとの停止時間帯を反転したもの、つまり、ファイルアクセス可能時間帯を示す。図19のように、アクセス時刻がグルーピングテーブルとマッチする場合、黒の帯が細破線の横幅に収まっていることがわかる。これは、実際になされたファイルアクセスは、決定したスケジュールのとおりになされているため、ファイルの移行を行う必要がないことを意味している。
一方、図20のように、アクセス時刻がグルーピングテーブルとマッチしない場合、黒の帯が点線の横幅からはみ出していることがわかる(GroupB)。これは、実際になされたファイルアクセスは、決定したスケジュールのとおりになされていないため、ファイルのグループに対応付けられたRAIDグループの停止時間帯にファイルアクセスがなされることになり、基本的にはスピンダウンができず、ファイルの移行を行う必要があることを意味している。よって、スケジュールテーブル7000およびグルーピングテーブル8000から最適なファイルの移行を導出し、ファイルの移行を行う。
図21において、GroupBに属していたファイル「/home/share/z.ppt」は、GroupAに対応付けられたRAIDグループのファイルアクセス可能時間帯(細破線)にマッチする(収まる)ので、当該ファイルのグループをGroupBからGroupAに変更する。これに伴い、マッピングテーブル6000も変更する。
このようにファイルの移行の判断は、ファイルのアクセス時間帯がファイルアクセス可能時間帯とマッチするか否かということによるのであるが、換言すると、RAIDグループの停止時間帯とファイルのアクセスのない時間帯とがファイルごとにマッチするか否かということによる。
また、ファイルの移行は、上記のようにファイルのグループを変更する代わりに、ファイルのグループはそのままにして、対応するRAIDグループのファイルアクセス可能時間帯を変更して、当該ファイルのアクセス時間帯を収めるようにしても良い。この場合は、所望する省電力化が達成される範囲内でファイルアクセス可能時間帯を変更することが好ましい。
なお、ファイルのグループ化において、スピンダウンまたはスピンアップそのものに要する時間を考慮する必要がある。
図22、図23は、スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。図22に示すように、アクセスのない時間帯の時間がスピンダウンまたはスピンアップに要する時間(特に、ファイルの移行先となるRAIDグループで行うスピンダウンまたはスピンアップに掛かる時間)よりも短いと、短時間でのスピンダウンまたはスピンアップによる遅延によりアクセス可能な時間帯が減少し、微小な停止時間帯で、スピンダウンまたはスピンアップするとオーバーヘッドとなる。たとえアクセスのある時間帯であってもスピンダウンまたはスピンアップがなされるのであれば、その時間はアクセス不能時間といえる(図22の太線)。
そこで、図23に示すように、予め、スピンダウンまたはスピンアップに要する時間を計測し(計測した時間は、例えばメモリ1008に格納されている。)、スピンダウンまたはスピンアップに要する時間よりも短い空白部分(アクセスのない時間帯)は、アクセスが発生しているものとみなして(図23の破線)、アクセス時間帯をグループ化するのが良い。
従って、アクセス情報(ログ)を解析する際には、以下の手順を踏む必要がある。
(1)ログの読み込み
(2)抽出した空白時間帯が、スピンダウンまたはスピンアップに要する時間よりも短い場合は、ログを修正(穴埋め)
(3)修正したログを保存
(4)修正後のログで解析
〔スピンダウン/アップ処理〕
図24は、スピンダウン/アップ処理の様子が描かれたファイル管理システムの構成例を示す図である。説明の便宜上、図1の図面を簡略化してある。スケジュールテーブル7000に登録された、または更新されたスケジュールに基づいて、RAIDグループのスピンダウンを実行する。
VFSプログラム3000は、Rgroup−Bに対しスピンダウン要求をする(図中(1)参照)。スピンダウン中にユーザから、スピンダウンしたRgroup−BのLUに格納されたファイルに対するファイルアクセスの要求があっても、そのファイルは既にスピンアップ中のRgroup−AのLUに移行しており、そしてRgroup−Aおよびマッピングテーブル6000が格納されているRAIDグループは稼働している。そのため、当該ファイルのアクセスを継続することが可能である。その一方でスピンダウンはきちんとなされているので省電力化は達成される。また、ユーザには仮想ファイルシステムしか見えないので、ファイルが移行していることに気づかない。なお、前記スケジュールに基づいて、RAIDグループのスピンアップも実行する。
次に、ファイルアクセスプログラム3001、ファイルアクセス情報収集プログラム3002、マイグレーションプログラム3003、スピンダウン/アッププログラム3004により実行される処理について詳細に説明する。
図25は、ファイルアクセスプログラム、ファイルアクセス情報収集プログラム、マイグレーションプログラム、スピンダウン/アッププログラムにより実行される処理全体のフローを示す図である。これらの処理の主体は、CPU1002であるが、説明の便宜上、各プログラムを中心にして説明する。
ファイルアクセスプログラム3001は、ユーザからのread/write要求(説明の便宜上、ファイルアクセス要求としてread要求とwrite要求のみ採り上げるが、これらに限定しない。)を受けると、マッピングテーブル6000を参照して、対象ファイルが格納されているRG(RAIDグループの意)を構成するLUにおいて、ファイルのread処理またはwrite処理(ファイルr/w)を実行する。
ファイルアクセス情報収集プログラム3002は、ファイルアクセスプログラム3001の実行した処理の結果である情報出力を読み込み、ファイルアクセス状況を分析する。そして、その分析の結果をアクセス解析テーブル9000に登録して、更新する。一方、ファイルアクセス情報収集プログラム3002は、アクセス解析テーブル9000を定期的に参照または更新して、例えば、古いアクセス情報を削除する。
マイグレーションプログラム3003は、アクセス解析テーブル9000を参照してファイルをグループ化し、その結果をグルーピングテーブル8000に登録して、更新する。一方、例えばユーザから指定されたスケジュールテーブル7000を参照してスケジュール情報どおりにファイルを移行するためにファイルr/wを実行し、移行元のRGのLUに格納されたファイルを移行先のRGのLUにコピーする。ファイルの移行の結果は、必要に応じてマッピングテーブル6000、スケジュールテーブル7000、グルーピングテーブル8000に反映し、更新する。これらの処理は定期的に実行される。
スピンダウン/アッププログラム3004は、スケジュールテーブル7000を参照し、スケジュール情報に従って、対象となるRGをスピンダウンまたはスピンアップする。
次に、ファイルアクセスプログラム3001、ファイルアクセス情報収集プログラム3002、マイグレーションプログラム3003、スピンダウン/アッププログラム3004により実行される処理について個別に説明する。なお、これらの処理の主体は、CPU1002である。
図26は、ファイルアクセスプログラムにより実行される処理のフローを示す図である。この処理は、クライアント1030によるユーザからのファイルアクセス(ユーザアクセス)によって開始する。
まず、ステップS2601において、CPU1002は、ユーザアクセスに含まれるファイルアクセス要求からアクセス対象となるファイルのファイルパス名(ファイル名)を取得する。取得した後、ステップS2602に進む。
次に、ステップS2602において、CPU1002は、ファイルパス名とマッピングテーブル6000を照合し、実際に格納されているファイルシステム(実ファイルシステム)とinode番号(実ファイルシステム用inode番号)を特定する。ファイル名を検索キーとしてマッピングテーブル6000から該当するレコードを抽出する。特定した後、S2603に進む。
次に、ステップS2603において、CPU1002は、上記の特定したファイルシステムに対して、ファイルアクセス(説明の便宜上、read要求またはwrite要求を例として採り上げる。)を実行する。実行した後、ステップS2604に進む。
次に、ステップS2604において、CPU1002は、後記するファイルアクセス情報収集処理(1)を実行する。実行した後、ファイルアクセスプログラム3001により実行される処理を終了する。
以上で、ファイルアクセスプログラム3001により実行される処理の説明を終了する。
図27は、ファイルアクセス情報収集プログラムにより実行される処理のフローを示す図である。この処理は、主に、ファイルアクセス情報収集処理(1)およびファイルアクセス情報収集処理(2)からなる。まず、ファイルアクセス情報収集処理(1)について説明する。ファイルアクセス情報収集処理(1)は、ファイルアクセスプログラム3001からの呼出し(S2604)によって開始する。
まず、ステップS2701において、CPU1002は、ステップS2603において実行されたファイルアクセスに関するアクセス情報を取得する。取得した後、ステップS2702に進む。
次に、ステップS2702において、CPU1002は、FCディスクドライブ1012aに記憶されているアクセス解析テーブル9000を参照する。参照した後、ステップS2703に進む。
次に、ステップS2703において、CPU1002は、取得したアクセス情報を、アクセス解析テーブル9000へマージする。マージした後、ステップS2704に進む。
次に、ステップS2704において、CPU1002は、マージした結果を反映させるべく、アクセス解析テーブル9000を更新する。更新した後、ファイルアクセス情報収集処理(1)を終了し、呼出し元であるファイルアクセスプログラム3001に処理に戻る。
次に、ファイルアクセス情報収集処理(2)について説明する。ファイルアクセス情報収集処理(2)は、定期的に開始する。
まず、ステップS2705において、CPU1002は、アクセス解析テーブル9000を検索し、期限(1)(設定情報を参照)よりも古いアクセス情報を削除する。削除した後、ステップS2706に進む。
次に、ステップS2706において、CPU1002は、期限(1)よりも新しく、期限(2)(設定情報を参照)よりも古いアクセス情報を検索する。検索した後、ステップS2707に進む。
次に、ステップS2707において、CPU1002は、ファイル毎に検索結果を分類する。検索結果としては、当該ファイルに対するアクセスユーザ数を含む。分類した後、ステップS2707に進む。
次に、ステップS2708において、CPU1002は、上記分類による分類結果で、アクセスユーザ数が一定数より多いか否かを判定する。なお、この一定数は、例えば、管理者から入力され、メモリ1008に記憶されている。アクセスユーザ数が一定数よりも多くはないとき(ステップS2708でNo)、ステップS2709に進む。一方、アクセスユーザ数が一定数よりも多いとき(ステップS2708でYes)、ステップS2710に進む。
次に、ステップS2709において、CPU1002は、アクセスユーザ数が少ない分類結果としてのアクセス情報は、スケジュール作成の利用価値が低いものとしてすべて削除する。削除した後、ファイルアクセス情報収集処理(2)を終了する。
次に、ステップS2710において、CPU1002は、アクセスユーザ数が多い分類結果としてのアクセス情報の一部を削除する。削除した後の残りは次回削除することで段階的に削除する。このとき、削除するときの段階数は任意に設定することができる。また、段階的に削除するときは、アクセスユーザ数が少ないものから削除するとスケジュールの作成において都合が良い。削除した後、ファイルアクセス情報収集処理(2)を終了する。
以上で、ファイルアクセス情報収集プログラム3002により実行される処理の説明を終了する。
図28は、マイグレーションプログラムにより実行される処理のフローを示す図である。この処理は、定期的に開始する。
まず、ステップS2801において、CPU1002は、アクセス解析テーブル9000を参照する。参照した後、ステップS2802に進む。
次に、ステップS2802において、CPU1002は、グルーピングテーブル8000を参照する。参照した後、ステップS2803に進む。
次に、ステップS2803において、CPU1002は、アクセス解析データ(アクセス解析テーブル9000に登録されているアクセス情報)とグループデータ(グルーピングテーブル8000に登録されているファイル情報)を比較する。比較した後、ステップS2804に進む。
次に、ステップS2804において、CPU1002は、マッピングテーブル6000の書き換えを意味するリマップの必要があるか否かを判定する。ここで、リマップが必要であるとは、少なくとも、移行元となるRAIDグループのLUに格納されているファイルへのアクセスを可能とする時間帯以外の時間帯、つまりRAIDグループの停止時間帯において、そのファイルが、所定の期限内に所定の頻度以上にアクセスされるようになってきた、という状況であることを含む。リマップが必要であるとき(ステップS2804でYes)、ステップS2805に進む。リマップが必要でないとき(ステップS2804でNo)、特に、移行を必要とするファイルがないので、マイグレーションプログラム3003により実行される処理を終了する。
次に、ステップS2805において、CPU1002は、マッピングテーブル6000を参照する。参照した後、ステップS2806に進む。
次に、ステップS2806において、CPU1002は、スケジュールテーブル7000を参照する。参照した後、ステップS2807に進む。
次に、ステップS2807において、CPU1002は、適切なRG(RAIDグループ)を(任意に)選択する。選択したRGはファイルの移行先のRGであり、そのRGが適切であるか否かは、後記ステップS2808の判定に委ねられる。選択した後、ステップS2808に進む。
次に、ステップS2808において、CPU1002は、スケジュールテーブル7000の書き換えを意味するリスケジュールの必要があるか否かを判定する。ここで、リスケジュールが必要であるとは、少なくとも、移行先となるRAIDグループのいずれについても、ファイルへのアクセスを可能とする時間帯、つまり稼働時間帯が、移行しようとするファイルの移行の時期(スピンダウンまたはスピンアップに要する時間も含まれる)を含んでいない、という状況であることを含む。リスケジュールが必要であるとき(ステップS2808でYes)、ステップS2809に進む。リスケジュールが必要でないとき(ステップS2808でNo)、ステップS2807において選択したRGが、ファイルの移行の時期においては稼働しており、適切であることを意味しており、ステップS2810に進む。
次に、ステップS2809において、CPU1002は、スケジュールテーブル7000を更新する。この更新では、移行先となるRAIDグループにおける、ファイルへのアクセスを可能とする時間帯がファイルの移行の時期を含むように処理がなされる。例えば、ユーザから相応の停止時間帯が指定される。更新した後、ステップS2810に進む。
次に、ステップS2810において、CPU1002は、ファイルの移行に対応するようにマッピングテーブル6000を更新する。更新した後、ステップS2811に進む。
次に、ステップS2811において、CPU1002は、ファイルの移行に対応するようにグルーピングテーブル8000を更新する。更新した後、ステップS2812に進む。
次に、ステップS2812において、CPU1002は、指定されたマップ、つまり更新された各テーブル(6000、7000、8000)に従い、ファイルの配置を変更(つまり、ファイルを移行)する。変更した後、マイグレーションプログラム3003により実行される処理を終了する。
以上で、マイグレーションプログラム3003により実行される処理の説明を終了する。
図29は、スピンダウン/アッププログラムにより実行される処理のフローを示す図である。この処理は、定期的に開始する。
まず、ステップS2901において、CPU1002は、現在日時を取得する。現在日時は、例えば、サーバ1001に備えられたタイマ(不図示)から取得する。取得した後、ステップS2902に進む。
次に、ステップS2902において、CPU1002は、スケジューリングテーブル7000と現在日時を比較し、スピンアップすべきRAIDグループを取得する。スピンアップすべきRAIDグループとは、例えば、現在日時が停止時間帯の終了時刻と一致するRAIDグループをいう。取得した後、ステップS2903に進む。
次に、ステップS2903において、CPU1002は、上記取得したRAIDグループのうち、スピンダウン中のRAIDグループを取得する。なお、本実施形態では、説明の便宜上、RAIDグループのスピン状態はスピンアップおよびスピンダウンしか扱わないので、このステップで取得するRAIDグループとステップS2902で取得したRAIDグループは一致するが、他のスピン状態(例:スピンダウン予約状態、スピンオフ状態)を含む場合には、そのスピン状態にあるRAIDグループは除外する。取得した後、ステップS2904に進む。
次に、ステップS2904において、CPU1002は、スケジューリングテーブル7000と現在日時を比較し、スピンダウンすべきRAIDグループを取得する。スピンダウンすべきRAIDグループとは、例えば、現在日時が停止時間帯の開始時刻と一致するRAIDグループをいう。取得した後、ステップS2905に進む。
次に、ステップS2905において、CPU1002は、上記取得したRAIDグループのうち、スピンアップ中のRAIDグループを取得する。なお、本実施形態では、説明の便宜上、RAIDグループのスピン状態はスピンアップおよびスピンダウンしか扱わないので、このステップで取得するRAIDグループとステップS2902で取得したRAIDグループは一致する。取得した後、ステップS2906に進む。
次に、ステップS2906において、CPU1002は、ステップS2903で取得したRAIDグループに対して、スピンアップ要求を行い、ステップS2905で取得したRAIDグループに対して、スピンダウン要求を行う。
以上で、スピンダウン/アッププログラム3004により実行される処理の説明を終了する。
実施形態1により、スピンダウンがなされるRAIDグループに格納されているファイルに対し、ファイルアクセスがなされたとしても、そのファイルをスピンアップ中のRAIDグループに事前に移行して、ファイルアクセスを受け付けることができるので、ファイルへのアクセスが継続する環境であっても省電力化を実現することができる。
また、ファイルシステムについては、ユーザには、実ファイルシステムを仮想的に統合した仮想ファイルシステムを見せ、実ファイルシステム自体を見せることはない。よって、RAIDグループ間のファイルの移行があったとしても、そのことをユーザに意識させず済ませることができ、換言すれば、ユーザは通常通りにファイルアクセスを行なうことができる。
また、各プログラムがオペレーティング機能であるシステムコール等を利用する場合、目的のシステムコールを代わりに呼び出してくれるスタブを用いるとは異なり、仮想ファイルシステムを用いることで、ファイルの移行先の選択の幅が広がる。つまり、スタブを用いるときは、スタブ自体ですでに定められた移行先にしかファイルを移行させることができないが、仮想ファイルシステムを使用するときは、RAIDグループの稼働状況を考慮しつつ、管理者が最適な移行先を指定することができる。指定する移行先は、省電力化が最大になる、つまり、各RAIDグループの停止時間帯の合計が最長となるように選ぶことが好ましい。
(実施形態2)
実施形態1では、ファイルのアクセス状況に基づいてファイルの分類および移行を行っているため、類似したアクセス特性(例えば、ファイルアクセスがなされる時間帯が大体同じであること)を持つファイルが、1つのRAIDグループまたはLUに集中し、それらのファイルの一部または全部が頻繁にアクセスされる場合には、性能上の問題、例えば性能ボトルネックが発生する可能性がある。
そこで、スピンダウンしたRAIDグループとNAS装置(サーバ1001)との接続に使用されているFC(Fiber Channel)パス(ポート)を稼働中(スピンアップ中)のRAIDグループに一時的に振り分け、ファイルアクセスの集中に起因する性能ボトルネックを回避することができる。
具体的には、スケジュールテーブル7000において、RAIDグループごとに、FCパスを振り分けるための条件、振り分け先のRAIDグループ(例:当該RAIDグループを除くすべての(稼働中の)RAIDグループ)等を格納するフィールドを設けるようにすると良い。前記条件としては、例えば、単位時間内のファイルアクセス数や振り分けを受け付けるRAIDグループを構成するボリュームの空き容量が所定値以上であること等とすれば良い。前記条件が満たされないようなファイルアクセス状況になった場合には、前記振り分けを終了するように制御する。振り分けの終了は一度に行なっても良いし、段階的に行なっても良い。
(実施形態3)
実施形態1のスケジュールテーブル7000で定めるスケジュールは、ファイルアクセス情報を統計的に処理して得られたものであるため、そのスケジュールで定めた停止時間帯になってもファイルアクセスが発生する可能性はある。これにより、スピンダウンが遅延を招き、省電力化が効果的に達成されない可能性がある。所望する省電力化を達成する場合には、スピンダウンの遅延による消費電力増分を打ち消す必要があり、どこかで、例えば次にファイルアクセスがなされたときにでも良いので、スピンアップの遅延を行わなくてはならない。
そこで、スピンアップの遅延を各RAIDグループに按分するように制御する。このとき、各RAIDグループには、例えば、運用上から決まる重要度が存在するので、重要度に応じて前記按分を行なうと良い。例えば、あるRAIDグループで500秒の遅延が発生した場合、RAIDグループの重要度に従って、下記のように按分する。
<RAIDグループ名> <重要度> <スピンアップ遅延時間/〔s〕>
Rgroup−A01 A 5
: : :
Rgroup−A10 A 5

Rgroup−B01 B 15
: : :
Rgroup−B10 B 15

Rgroup−C01 C 30
: : :
Rgroup−C10 C 30

計 5×10+15×10+30×10=500〔s〕
重要度は大きいほうからA、B、Cの順に定めてあり、重要度が大きいほど、按分するスピンアップ遅延時間を短くする。また、重要度は、例えば、当該RAIDグループに含まれるLUの数やユーザからのファイルアクセス数等に基づいて決定するようにし、メモリ1008に格納される。
これにより、節電効果を損ねることなく、かつ、遅延を分散するため、ユーザの利便性への影響を小さくすることができる。なお、この按分は、スピンアップしているかスピンダウンしているか否かに関わらず、すべてのRAIDグループに行うことができる。
なお、本発明を実施するための形態は、これに限定されるものでなく、その形態の実施形式を種々変形することが可能である。
例えば、スピンダウンするRAIDグループを選ぶときには、ハードディスクの性能を考慮しても良い。ハードディスクの性能としては、例えば、使用するCPUの周波数やディスクの種類、容量、信頼性があげられる。これは、実施形態1〜3に共通する。
また、本実施形態では、ファイルシステムを階層化しており、既に説明したとおり、スタブを使用した場合と比べて、ファイルの移行先の選択幅が広がるのであるが、移行先としては、そのファイルがよくアクセスされるのであれば、階層が上位にある実ファイルシステム(本実施形態では、FS A(1015)(図2参照))を作成する高速ボリュームを有するRAIDグループとするのが良いし、そのファイルがあまりアクセスされないのであれば、階層が下位にある実ファイルシステム(本実施形態では、FS B(1016)(図2参照))を作成する低速ボリュームを有するRAIDグループとするのが良い。つまり、ファイルシステムの階層性を、ファイルの移行先を選択するための基準とすると良い。
その他、ハードウェア、ソフトウェア、各テーブル、各フローチャート等の具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
1001 サーバ(ファイルサーバ)
1002 CPU(制御部)
1005 管理コマンド
1006 階層管理ファイルシステムプログラム
1007 実ファイルシステムプログラム
1008 メモリ(記憶部)
1009 オペレーティングシステム
1010 管理情報
1011 ディスク制御装置
1012 FCディスクドライブ
1013 SATAディスクドライブ
1014 RAID装置(記憶装置)
1015 FS A
1016 FS B
1017 FSMファイルシステム
1020 管理端末
1030 クライアント
1031 ファイルアクセス要求プログラム
3000 VFSプログラム
3001 ファイルアクセスプログラム
4000 階層管理テーブル(ファイルシステム階層管理情報)
5000 階層データリスト
6000 マッピングテーブル(マッピング情報)
7000 スケジュールテーブル(スケジュール情報)
8000 グルーピングテーブル
9000 アクセス解析テーブル(アクセス情報)

Claims (15)

  1. 1以上のボリュームで構成される複数のRAIDグループを有する記憶装置と、ファイルアクセス要求をするクライアントと通信可能に接続し、前記RAIDグループに対して作成した実ファイルシステムおよび前記実ファイルシステムを仮想的に統合した仮想ファイルシステムを用いて前記RAIDグループに格納されるファイルを管理するファイルサーバにおいて、
    前記記憶装置は、
    前記ファイルを前記仮想ファイルシステムで管理するときに使用するファイル名と、前記ファイルが格納される前記RAIDグループと、前記ファイルを実際に管理する前記実ファイルシステムとを、ファイルごとに対応付けたマッピング情報と、
    スピンダウンをして前記RAIDグループを停止する停止時間帯と、スピンアップをして前記RAIDグループを稼働する稼働時間帯とを、RAIDグループごとに定めたスケジュール情報と、
    を記憶しており、
    前記ファイルサーバは、
    前記記憶装置に記憶させる情報を生成するための記憶領域を有する記憶部と、
    前記クライアントのファイルアクセス要求に対し、前記ファイルアクセス要求に含まれる前記ファイル名およびファイルアクセス日時を取得し、前記ファイル名と、前記ファイルアクセス日時とを対応付けたアクセス情報を生成して前記記憶装置に記憶させる制御と、
    前記アクセス情報に基づいてファイルアクセス時間帯が共通するファイルを1つのグループとすることでファイルを分類し、前記ファイルアクセス時間帯が前記停止時間帯と重複しないようにして、前記グループに属するファイルが格納されることになる前記RAIDグループを決定し、前記決定したRAIDグループの稼働中に当該ファイルを移行し、前記移行したファイルについて前記マッピング情報を更新する制御と、
    前記スケジュール情報に基づいて前記停止時間帯では前記RAIDグループについてスピンダウンをし、前記稼働時間帯では前記RAIDグループについてスピンアップをする制御と、
    を実行する制御部とを有する
    ことを特徴とするファイルサーバ。
  2. 前記スケジュール情報には、ファイルサーバとRAIDグループとの接続に使用されるポートを、当該RAIDグループとは別のRAIDグループに振り分けをする条件が、あるRAIDグループに格納されるファイルが所定数以上あり、かつ、前記所定数以上のファイルの一部または全部に対して所定頻度以上のファイルアクセスがなされることとして定められており、
    前記制御部は、
    前記条件が満たされたとき、当該グループに属するファイルが格納されているRAIDグループとは別のRAIDグループに対して前記振り分けをする
    ことを特徴とする請求項1に記載のファイルサーバ。
  3. 前記記憶部は、RAIDグループについてするスピンアップの遅延に関する重要度を、RAIDグループごとに記憶し、
    前記制御部は、
    あるRAIDグループに格納されたファイルに対して前記クライアントのファイルアクセス要求が当該RAIDグループの停止中にあったとき、前記重要度が大きいほどスピンアップの遅延時間が短くなるように、すべてのRAIDグループについてするスピンアップを遅延する
    ことを特徴とする請求項1に記載のファイルサーバ。
  4. 前記制御部は、
    前記クライアントのファイルアクセス要求に対し、ファイルアクセスなかった時間が、当該ファイルが格納されることになるRAIDグループのスピンダウンに要する時間よりも短いとき、前記ファイルアクセスのなかった時間にはファイルアクセスがあったものとみなして、前記ファイルの分類を行う
    ことを特徴とする請求項1に記載のファイルサーバ。
  5. 前記アクセス情報には、前記ファイルアクセス要求を行ったユーザも対応付けられており、
    前記制御部は、
    前記ファイルアクセス日時および前記ファイルアクセス要求を行ったユーザ数に基づいて前記アクセス情報を削除する
    ことを特徴とする請求項1に記載のファイルサーバ。
  6. 1以上のボリュームで構成される複数のRAIDグループを有する記憶装置と、ファイルアクセス要求をするクライアントと、前記RAIDグループに対して作成した実ファイルシステムおよび前記実ファイルシステムを仮想的に統合した仮想ファイルシステムを用いて前記RAIDグループに格納されるファイルを管理するファイルサーバが通信可能に接続するファイル管理システムにおいて、
    前記記憶装置は、
    前記ファイルを前記仮想ファイルシステムで管理するときに使用するファイル名と、前記ファイルが格納される前記RAIDグループと、前記ファイルを実際に管理する前記実ファイルシステムとを、ファイルごとに対応付けたマッピング情報と、
    スピンダウンをして前記RAIDグループを停止する停止時間帯と、スピンアップをして前記RAIDグループを稼働する稼働時間帯とを、RAIDグループごとに定めたスケジュール情報と、
    を記憶しており、
    前記ファイルサーバは、
    前記記憶装置に記憶させる情報を生成するための記憶領域を有する記憶部と、
    前記クライアントのファイルアクセス要求に対し、前記ファイルアクセス要求に含まれる前記ファイル名およびファイルアクセス日時を取得し、前記ファイル名と、前記ファイルアクセス日時とを対応付けたアクセス情報を生成して前記記憶装置に記憶させる制御と、
    前記アクセス情報に基づいてファイルアクセス時間帯が共通するファイルを1つのグループとすることでファイルを分類し、前記ファイルアクセス時間帯が前記停止時間帯と重複しないようにして、前記グループに属するファイルが格納されることになる前記RAIDグループを決定し、前記決定したRAIDグループの稼働中に当該ファイルを移行し、前記移行したファイルについて前記マッピング情報を更新する制御と、
    前記スケジュール情報に基づいて前記停止時間帯では前記RAIDグループについてスピンダウンをし、前記稼働時間帯では前記RAIDグループについてスピンアップをする制御と、
    を実行する制御部とを有する
    ことを特徴とするファイル管理システム。
  7. 前記スケジュール情報には、ファイルサーバとRAIDグループとの接続に使用されるポートを、当該RAIDグループとは別のRAIDグループに振り分けをする条件が、あるRAIDグループに格納されるファイルが所定数以上あり、かつ、前記所定数以上のファイルの一部または全部に対して所定頻度以上のファイルアクセスがなされることとして定められており、
    前記制御部は、
    前記条件が満たされたとき、当該グループに属するファイルが格納されているRAIDグループとは別のRAIDグループに対して前記振り分けをする制御、を実行する
    ことを特徴とする請求項6に記載のファイル管理システム。
  8. 前記記憶部は、RAIDグループについてするスピンアップの遅延に関する重要度を、RAIDグループごとに記憶し、
    前記制御部は、
    あるRAIDグループに格納されたファイルに対して前記クライアントのファイルアクセス要求が当該RAIDグループの停止中にあったとき、前記重要度が大きいほどスピンアップの遅延時間が短くなるように、すべてのRAIDグループについてするスピンアップを遅延する制御、を実行する
    ことを特徴とする請求項6に記載のファイル管理システム。
  9. 前記制御部は、
    前記クライアントのファイルアクセス要求に対し、ファイルアクセスなかった時間が、当該ファイルが格納されることになるRAIDグループのスピンダウンに要する時間よりも短いとき、前記ファイルアクセスのなかった時間にはファイルアクセスがあったものとみなして、前記ファイルの分類を行う制御、を実行する
    ことを特徴とする請求項6に記載のファイル管理システム。
  10. 前記アクセス情報には、前記ファイルアクセス要求を行ったユーザも対応付けられており、
    前記制御部は、
    前記ファイルアクセス日時および前記ファイルアクセス要求を行ったユーザ数に基づいて前記アクセス情報を削除する制御、を実行する
    ことを特徴とする請求項6に記載のファイル管理システム。
  11. 1以上のボリュームで構成される複数のRAIDグループを有する記憶装置と、ファイルアクセス要求をするクライアントと通信可能に接続し、前記RAIDグループに対して作成した実ファイルシステムおよび前記実ファイルシステムを仮想的に統合した仮想ファイルシステムを用いて前記RAIDグループに格納されるファイルを管理するファイルサーバにおけるファイル管理方法において、
    前記記憶装置は、
    前記ファイルを前記仮想ファイルシステムで管理するときに使用するファイル名と、前記ファイルが格納される前記RAIDグループと、前記ファイルを実際に管理する前記実ファイルシステムとを、ファイルごとに対応付けたマッピング情報と、
    スピンダウンをして前記RAIDグループを停止する停止時間帯と、スピンアップをして前記RAIDグループを稼働する稼働時間帯とを、RAIDグループごとに定めたスケジュール情報と、
    を記憶しており、
    前記ファイルサーバは、
    前記記憶装置に記憶させる情報を生成するための記憶領域を有する記憶部を有し、
    前記ファイルサーバの制御部は、
    前記クライアントのファイルアクセス要求に対し、前記ファイルアクセス要求に含まれる前記ファイル名およびファイルアクセス日時を取得し、前記ファイル名と、前記ファイルアクセス日時とを対応付けたアクセス情報を生成して前記記憶装置に記憶させるステップと、
    前記アクセス情報に基づいてファイルアクセス時間帯が共通するファイルを1つのグループとすることでファイルを分類し、前記ファイルアクセス時間帯が前記停止時間帯と重複しないようにして、前記グループに属するファイルが格納されることになる前記RAIDグループを決定し、前記決定したRAIDグループの稼働中に当該ファイルを移行し、前記移行したファイルについて前記マッピング情報を更新するステップと、
    前記スケジュール情報に基づいて前記停止時間帯では前記RAIDグループについてスピンダウンをし、前記稼働時間帯では前記RAIDグループについてスピンアップをするステップと、
    を実行する
    ことを特徴とするファイル管理方法。
  12. 前記スケジュール情報には、ファイルサーバとRAIDグループとの接続に使用されるポートを、当該RAIDグループとは別のRAIDグループに振り分けをする条件が、あるRAIDグループに格納されるファイルが所定数以上あり、かつ、前記所定数以上のファイルの一部または全部に対して所定頻度以上のファイルアクセスがなされることとして定められており、
    前記制御部は、
    前記条件が満たされたとき、当該グループに属するファイルが格納されているRAIDグループとは別のRAIDグループに対して前記振り分けをするステップ、を実行する
    ことを特徴とする請求項11に記載のファイル管理方法。
  13. 前記記憶部は、RAIDグループについてするスピンアップの遅延に関する重要度を、RAIDグループごとに記憶し、
    前記制御部は、
    あるRAIDグループに格納されたファイルに対して前記クライアントのファイルアクセス要求が当該RAIDグループの停止中にあったとき、前記重要度が大きいほどスピンアップの遅延時間が短くなるように、すべてのRAIDグループについてするスピンアップを遅延するステップ、を実行する
    ことを特徴とする請求項11に記載のファイル管理方法。
  14. 前記制御部は、
    前記クライアントのファイルアクセス要求に対し、ファイルアクセスなかった時間が、当該ファイルが格納されることになるRAIDグループのスピンダウンに要する時間よりも短いとき、前記ファイルアクセスのなかった時間にはファイルアクセスがあったものとみなして、前記ファイルの分類を行うステップ、を実行する
    ことを特徴とする請求項11に記載のファイル管理方法。
  15. 前記アクセス情報には、前記ファイルアクセス要求を行ったユーザも対応付けられており、
    前記制御部は、
    前記ファイルアクセス日時および前記ファイルアクセス要求を行ったユーザ数に基づいて前記アクセス情報を削除するステップ、を実行する
    ことを特徴とする請求項11に記載のファイル管理方法。
JP2009028341A 2009-02-10 2009-02-10 ファイルサーバ、ファイル管理システムおよびファイル管理方法 Expired - Fee Related JP5180865B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009028341A JP5180865B2 (ja) 2009-02-10 2009-02-10 ファイルサーバ、ファイル管理システムおよびファイル管理方法
US12/385,281 US8171215B2 (en) 2009-02-10 2009-04-03 File server, file management system and file management method
EP20090252529 EP2216711B1 (en) 2009-02-10 2009-10-30 File server, file management system and file management method
US13/433,640 US8615628B2 (en) 2009-02-10 2012-03-29 File server, file management system and file management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009028341A JP5180865B2 (ja) 2009-02-10 2009-02-10 ファイルサーバ、ファイル管理システムおよびファイル管理方法

Publications (2)

Publication Number Publication Date
JP2010186223A JP2010186223A (ja) 2010-08-26
JP5180865B2 true JP5180865B2 (ja) 2013-04-10

Family

ID=42148388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009028341A Expired - Fee Related JP5180865B2 (ja) 2009-02-10 2009-02-10 ファイルサーバ、ファイル管理システムおよびファイル管理方法

Country Status (3)

Country Link
US (2) US8171215B2 (ja)
EP (1) EP2216711B1 (ja)
JP (1) JP5180865B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631200B2 (en) * 2009-03-20 2014-01-14 Netapp, Inc. Method and system for governing an enterprise level green storage system drive technique
US9110919B2 (en) * 2009-10-30 2015-08-18 Symantec Corporation Method for quickly identifying data residing on a volume in a multivolume file system
US20110137966A1 (en) * 2009-12-08 2011-06-09 Netapp, Inc. Methods and systems for providing a unified namespace for multiple network protocols
US8484259B1 (en) 2009-12-08 2013-07-09 Netapp, Inc. Metadata subsystem for a distributed object store in a network storage system
US9507799B1 (en) 2009-12-08 2016-11-29 Netapp, Inc. Distributed object store for network-based content repository
US10025523B1 (en) * 2009-12-28 2018-07-17 EMC IP Holding Company LLC Techniques for processing data requests directed to virtualized devices
JP5521716B2 (ja) * 2010-04-06 2014-06-18 富士通株式会社 ストレージ制御プログラム、ストレージ制御方法およびストレージ制御装置
US8478800B1 (en) 2010-09-27 2013-07-02 Amazon Technologies, Inc. Log streaming facilities for computing applications
US8495108B2 (en) 2010-11-30 2013-07-23 International Business Machines Corporation Virtual node subpool management
JP5630313B2 (ja) * 2011-02-16 2014-11-26 日本電気株式会社 ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラム
WO2013111187A1 (en) * 2012-01-25 2013-08-01 Hitachi, Ltd. Single instantiation method using file clone and file storage system utilizing the same
US9043567B1 (en) * 2012-03-28 2015-05-26 Netapp, Inc. Methods and systems for replicating an expandable storage volume
US9658803B1 (en) * 2012-06-28 2017-05-23 EMC IP Holding Company LLC Managing accesses to storage
US8924425B1 (en) 2012-12-06 2014-12-30 Netapp, Inc. Migrating data from legacy storage systems to object storage systems
WO2014170965A1 (ja) * 2013-04-16 2014-10-23 株式会社日立製作所 文書処理方法、文書処理装置および文書処理プログラム
KR20140124674A (ko) * 2013-04-17 2014-10-27 한국전자통신연구원 파일 수준의 데이터 분산 저장 방법
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US9672115B2 (en) 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9773012B2 (en) * 2013-11-08 2017-09-26 Seagate Technology Llc Updating map structures in an object storage system
US9824718B2 (en) * 2014-09-12 2017-11-21 Panasonic Intellectual Property Management Co., Ltd. Recording and playback device
US10360208B2 (en) * 2014-12-19 2019-07-23 Software Ag Method and system of process reconstruction
US10078555B1 (en) 2015-04-14 2018-09-18 EMC IP Holding Company LLC Synthetic full backups for incremental file backups
US9946603B1 (en) 2015-04-14 2018-04-17 EMC IP Holding Company LLC Mountable container for incremental file backups
US9996429B1 (en) * 2015-04-14 2018-06-12 EMC IP Holding Company LLC Mountable container backups for files
US10061660B1 (en) 2015-10-27 2018-08-28 EMC IP Holding Company LLC Cross-platform instant granular recovery for virtual machine backups
JP6769106B2 (ja) * 2016-05-18 2020-10-14 富士通株式会社 ストレージ制御方法、ストレージ制御プログラムおよび情報処理装置
US10146456B1 (en) * 2016-12-30 2018-12-04 EMC IP Holding Company LLC Data storage system with multi-level, scalable metadata structure
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
US11005663B2 (en) 2018-08-13 2021-05-11 Seagate Technology Llc Secure audit scheme in a distributed data storage system
CN114968497B (zh) * 2022-06-06 2023-11-14 中国电信股份有限公司 硬件层的调用方法、装置、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199129A1 (en) * 2001-06-21 2002-12-26 International Business Machines Corp. Data storage on a computer disk array
JP4518541B2 (ja) * 2004-01-16 2010-08-04 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP4391265B2 (ja) * 2004-02-26 2009-12-24 株式会社日立製作所 ストレージサブシステムおよび性能チューニング方法
US7428622B2 (en) * 2004-09-28 2008-09-23 Akhil Tulyani Managing disk storage media based on access patterns
JP4751153B2 (ja) 2005-06-08 2011-08-17 株式会社日立製作所 記憶システム
JP4824374B2 (ja) 2005-09-20 2011-11-30 株式会社日立製作所 ディスクの回転を制御するシステム
JP4694333B2 (ja) * 2005-09-30 2011-06-08 株式会社日立製作所 計算機システム及びストレージ装置とシステム管理装置並びにディスク装置電源制御方法
JP4438817B2 (ja) * 2007-04-26 2010-03-24 株式会社日立製作所 ストレージ装置およびストレージ装置の省電力制御方法
US8006111B1 (en) * 2007-09-21 2011-08-23 Emc Corporation Intelligent file system based power management for shared storage that migrates groups of files based on inactivity threshold
JP2009080603A (ja) * 2007-09-26 2009-04-16 Hitachi Ltd ストレージ装置及びその省電力方法
JP2010015446A (ja) * 2008-07-04 2010-01-21 Hitachi Ltd ストレージ装置及び電源の制御方法
JP2010113509A (ja) * 2008-11-06 2010-05-20 Hitachi Ltd 記憶領域の割当方法および管理サーバ

Also Published As

Publication number Publication date
US8171215B2 (en) 2012-05-01
US20120185646A1 (en) 2012-07-19
JP2010186223A (ja) 2010-08-26
US20100205370A1 (en) 2010-08-12
EP2216711B1 (en) 2015-04-29
EP2216711A3 (en) 2012-08-01
EP2216711A2 (en) 2010-08-11
US8615628B2 (en) 2013-12-24

Similar Documents

Publication Publication Date Title
JP5180865B2 (ja) ファイルサーバ、ファイル管理システムおよびファイル管理方法
US8533241B2 (en) File-sharing system and method for processing files, and program
US8438138B2 (en) Multiple quality of service file system using performance bands of storage devices
US8949557B2 (en) File management method and hierarchy management file system
US7386552B2 (en) Methods of migrating data between storage apparatuses
US8280853B1 (en) Dynamic storage mechanism
US8015157B2 (en) File sharing system, file server, and method for managing files
JP5291456B2 (ja) ストレージシステム・アーキテクチャ内のデータ・アロケーション
US7293133B1 (en) Performing operations without requiring split mirrors in a multi-class file system
US7103740B1 (en) Backup mechanism for a multi-class file system
US20090177836A1 (en) Methods and apparatuses for managing data in a computer storage system
US8392370B1 (en) Managing data on data storage systems
US8127095B1 (en) Restore mechanism for a multi-class file system
US9449007B1 (en) Controlling access to XAM metadata
US20100121828A1 (en) Resource constraint aware network file system
US20040193760A1 (en) Storage device
JP2008539505A (ja) データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
CA2458672A1 (en) Efficient search for migration and purge candidates
US8046391B2 (en) Storage apparatus and its file control method and storage system
US9727588B1 (en) Applying XAM processes
JP5215898B2 (ja) ファイルサーバ、ファイル管理システムおよびファイル再配置方法
Beigi et al. Policy-based information lifecycle management in a large-scale file system
US8478936B1 (en) Spin down of storage resources in an object addressable storage system
JP2004252957A (ja) 分散ファイルシステムのファイルレプリケーション方法及び装置
Bletsch ECE590-03 Enterprise Storage Architecture Fall 2017

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110624

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130111

LAPS Cancellation because of no payment of annual fees