JP4699516B2 - 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 - Google Patents
名前空間複製プログラム、名前空間複製装置、名前空間複製方法 Download PDFInfo
- Publication number
- JP4699516B2 JP4699516B2 JP2008507316A JP2008507316A JP4699516B2 JP 4699516 B2 JP4699516 B2 JP 4699516B2 JP 2008507316 A JP2008507316 A JP 2008507316A JP 2008507316 A JP2008507316 A JP 2008507316A JP 4699516 B2 JP4699516 B2 JP 4699516B2
- Authority
- JP
- Japan
- Prior art keywords
- namespace
- information
- file
- update
- namespace replication
- 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
Links
- 230000010076 replication Effects 0.000 title claims description 269
- 238000000034 method Methods 0.000 title claims description 89
- 238000003860 storage Methods 0.000 claims description 154
- 238000012937 correction Methods 0.000 claims description 50
- 230000008859 change Effects 0.000 claims description 34
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000003362 replicative effect Effects 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 description 74
- 238000012545 processing Methods 0.000 description 32
- 238000013508 migration Methods 0.000 description 31
- 230000005012 migration Effects 0.000 description 31
- 238000005516 engineering process Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 16
- 238000012423 maintenance Methods 0.000 description 13
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 4
- 230000007717 exclusion Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000010813 municipal solid waste Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ストレージ装置上の名前空間の複製を行う、特に総なめ処理を行う際の性能改善を行う名前空間複製プログラム、名前空間複製装置、名前空間複製方法に関するものである。
HSM(Hierarchical Storage Management:階層記憶管理)は、テープライブラリなどの低速なストレージ装置(二次ストレージ)とハードディスクなどの高速なストレージ装置(一次ストレージ)を組み合わせることにより、安価な大容量ファイルシステムを構築するものである。
HSM制御装置においては、一次ストレージにおいて長時間アクセスされていないファイルを特定し、そのファイルを二次ストレージに書き出し、アクセスが要求された時点で一次ストレージに移動することが必要となる。従来、これを実現するために、従来のHSM制御装置は、階層構造を持つファイルシステムの名前空間を総なめし、ファイルシステムがファイル単位に保持するアクセス時刻を参照することにより、二次ストレージに書き出すファイルを特定する方式を用いている。
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1が知られている。このデータ処理装置は、メタデータデータの内容が更新されると、ログが採取され、このログを用いてファイルシステムの不整合の修正を行うものである。
特開2000−484995号公報
しかしながら、上述した名前空間を総なめする方式のHSM制御装置には、以下の問題がある。
第1にファイルシステム総なめオーバヘッドの問題がある。従来のHSM制御装置では階層構造を持つファイル名前空間を定期的に総なめするために、オーバヘッドが大きくなってしまう。
第2に名前空間の排他問題がある。HSM制御装置が名前空間を総なめしている間に、rename操作などのファイル名変更操作が行われると、総なめの過程で求めたパス名が、実際には存在しない不当なものとなってしまう。このため、HSM制御装置は、顧客が設定したポリシと矛盾するデータ移動操作を行ってしまう可能性がある。例えば、検索の途中で、上位ディレクトリがゴミ箱に移されたとすると、ゴミ箱全体を移動対象としてしまうようなことが起こる。こうした問題を防ごうとすると、HSM制御装置は総なめの過程で、頻繁に矛盾をチェックし、矛盾があれば総なめをやり直すことが必要となり、論理が非常に複雑となるとともにオーバヘッドが大幅に増加する。
第3にHSMポリシ制御の柔軟性がある。一般に階層構造の名前空間は格納されているファイル群の性格を表しているため、HSMポリシも名前空間に基づいて設定する(あるディレクトリ以下の全ファイルなど)のが自然である。しかし、上述した名前空間の排他問題により、名前空間に基づく複雑なポリシ制御を実現することが難しいという問題があった。
第4に二次ストレージに退避されたデータの属性情報不足の問題がある。また上述した名前空間の排他問題により、二次ストレージに格納されるデータに正しいパス名を付加することが難しい。このため、二次ストレージに格納されたデータはファイルシステムのメタデータのみからしかアクセスできないことになり、ファイルシステムのメタデータが壊れると、二次ストレージ上にデータは残っているのにもかかわらず、パス名と対応づけることができないため、ファイルデータを復旧することができないという問題があった。
本発明は上述した問題点を解決するためになされたものであり、ストレージ装置上の名前空間の複製を効率的に行う名前空間複製プログラム、名前空間複製装置、名前空間複製方法を提供することを目的とする。
上述した課題を解決するため、本発明は、ストレージ装置上の名前空間の複製をコンピュータに実行させる名前空間複製プログラムであって、前記ストレージ装置の制御を行うファイルシステム制御装置から前記名前空間の更新に関する情報である名前空間更新情報を取得し、前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを、前記名前空間更新情報に基づいて更新する名前空間複製データベース更新ステップと、前記名前空間複製データベース更新ステップによる前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正ステップとをコンピュータに実行させるものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間更新情報は、名前空間の更新の内容である名前空間更新内容と該更新の時刻である名前空間更新時刻を含み、前記名前空間複製データベース修正ステップは、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映された名前空間更新情報に含まれる名前空間更新時刻のうち、最終のものを前記所定時刻とすることを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間複製データベース修正ステップは、前記未更新ファイル識別情報が示すファイルのうちディレクトリファイルの持つリンク情報を、前記未更新リンク情報とすることを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間複製データベース情報修正ステップは、前記所定時刻を前記ファイルシステム制御装置へ通知することにより、前記未更新ファイル識別情報と前記未更新リンク情報を抽出させ、取得することを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間複製データベース情報修正ステップは、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に無関係である場合、取得した該名前空間更新情報に基づいて前記名前空間複製データベースを更新することを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、1つの前記リンク情報は、1つのディレクトリファイルのinode情報と該ディレクトリファイルに含まれる子のファイルのinode情報と該ディレクトリファイルに含まれる子のファイルの名前情報とを含み、前記名前空間複製データベースは、前記リンク情報毎のエントリを持つことを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記ファイル識別情報は、inode情報であり、前記リンク情報は、1つのディレクトリファイルのinode番号と該ディレクトリファイルの子である1つのファイルのinode番号とを含むことを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間複製データベース情報修正ステップは、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に関係する場合、該名前空間更新情報の名前空間変更時刻と該名前空間更新情報に関係する前記未更新ファイル識別情報の更新時刻とを比較することにより、該名前空間更新情報と前記未更新ファイル識別情報のうち新しい方に基づいて前記名前空間複製データベースを修正することを特徴とするものである。
また、本発明に係る名前空間複製プログラムにおいて、前記名前空間更新情報は、前記ファイルシステム制御装置により所定間隔毎にまとめて送信され、前記名前空間複製データベース情報更新ステップは、前記名前空間更新情報を取得する度に、該名前空間更新情報に基づいて前記名前空間複製データベースを更新することを特徴とするものである。
また、本発明は、ストレージ装置上の名前空間の複製を行う名前空間複製装置であって、前記ストレージ装置の制御を行うファイルシステム制御装置から前記名前空間の更新に関する情報である名前空間更新情報を取得し、前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを、前記名前空間更新情報に基づいて更新する名前空間複製データベース更新部と、前記名前空間複製データベース更新部による前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正部とを備えたものである。
また、本発明に係る名前空間複製装置において、前記名前空間更新情報は、名前空間の更新の内容である名前空間更新内容と該更新の時刻である名前空間更新時刻を含み、前記名前空間複製データベース修正部は、前記名前空間複製データベース更新部により前記名前空間複製データベースに反映された名前空間更新情報に含まれる名前空間更新時刻のうち、最終のものを前記所定時刻とすることを特徴とするものである。
また、本発明は、ストレージ装置上の名前空間の複製を行う名前空間複製方法であって、前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを管理する名前空間複製装置において、前記名前空間の更新に関する情報である名前空間更新情報を、前記ストレージ装置の制御を行うファイルシステム制御装置から取得し、前記名前空間更新情報に基づいて前記名前空間複製データベースを更新する名前空間複製データベース更新ステップと、前記名前空間複製データベース更新ステップによる前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、前記名前空間複製装置において、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正ステップとを実行するものである。
また、本発明に係る名前空間複製方法において、前記名前空間更新情報は、名前空間の更新の内容である名前空間更新内容と該更新の時刻である名前空間更新時刻を含み、前記名前空間複製データベース修正ステップは、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映された名前空間更新情報に含まれる名前空間更新時刻のうち、最終のものを前記所定時刻とすることを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記名前空間複製データベース修正ステップは、前記未更新ファイル識別情報が示すファイルのうちディレクトリファイルの持つリンク情報を、前記未更新リンク情報とすることを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記名前空間複製データベース情報修正ステップは、前記名前空間複製装置において、前記所定時刻を前記ファイルシステム制御装置に通知し、前記ファイルシステム制御装置において、ファイル識別情報の更新時刻が前記所定時刻以降のファイル識別情報を列挙し、該ファイル識別情報を未更新ファイル識別情報として前記名前空間複製装置へ送信することにより、前記名前空間複製装置において、前記未更新ファイル識別情報を取得することを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記名前空間複製データベース情報修正ステップは、前記名前空間複製装置において、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に無関係である場合、取得した該名前空間更新情報に基づいて前記名前空間複製データベースを更新することを特徴とするものである。
また、本発明に係る名前空間複製方法において、1つの前記リンク情報は、1つのディレクトリファイルのinode情報と該ディレクトリファイルに含まれる子のファイルのinode情報と該ディレクトリファイルに含まれる子のファイルの名前情報とを含み、前記名前空間複製データベースは、前記リンク情報毎のエントリを持つことを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記ファイル識別情報は、inode情報であり、前記リンク情報は、1つのディレクトリファイルのinode番号と該ディレクトリファイルの子である1つのファイルのinode番号とを含むことを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記名前空間複製データベース情報修正ステップは、前記名前空間複製装置において、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に関係する場合、該名前空間更新情報の名前空間変更時刻と該名前空間更新情報に関係する前記未更新ファイル識別情報の更新時刻とを比較することにより、該名前空間更新情報と前記未更新ファイル識別情報のうち新しい方に基づいて前記名前空間複製データベースを修正することを特徴とするものである。
また、本発明に係る名前空間複製方法において、前記名前空間複製データベース情報更新ステップは、前記ファイルシステム制御装置において、整然停止を行う場合、前記名前空間複製データベースの維持を指示する情報であるデータベース維持情報を前記ストレージ装置に記録し、前記ファイルシステム制御装置の起動時に前記ストレージ装置に前記データベース維持情報がない場合、前記名前空間複製データベース更新ステップによる前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失されたと判断し、前記名前空間複製装置に名前空間複製データベース修正ステップを実行させることを特徴とするものである。
以下、本発明の前提技術について図面を参照しつつ説明する。
前提技術1.
前提技術1においては、HSM制御装置であるサーバについて説明する。
前提技術1においては、HSM制御装置であるサーバについて説明する。
まず、前提技術1に係るサーバを有するHSM装置の構成について説明する。
図1は、前提技術1に係るHSM装置の構成の一例を示すブロック図である。最近アクセスされたファイルを格納しているディスク装置などの高速ストレージ装置である一次ストレージ1、および長時間アクセスされていないファイルデータが格納されるテープライブラリ装置などの低速ストレージ装置である二次ストレージ2と、前提技術1に係るHSM制御装置であり、ファイルデータをアクセスするアプリケーションが動作するサーバ3から構成される。
また、サーバ3は、アプリケーション部11、ファイルシステム制御部12、名前空間複製部13、名前空間追随部14、名前空間複製DB(Database)15、マイグレート決定部16を備える。また、ファイルシステム制御部12は、イベントデータ記録部21を備える。
次に、サーバ3の各部について説明する。
イベントデータ記録部21は、アプリケーションプログラムが発行したファイル操作要求の履歴をイベントデータとして蓄積するファイルシステム制御部12内に配置されるプログラムである。イベントデータ記録部21は、アプリケーション部11が発行したファイル操作要求の内容をイベントデータに変換してメモリ上に蓄積しておき、一定量たまったところで名前空間複製部13や名前空間追随部14に渡す。イベントデータの受け渡しは、通信を使用してもよいし、専用のファイルを介して受け渡してもよい。
名前空間複製部13は、アプリケーション部11の動作と平行して、ファイルシステムの名前空間の複製を行うプログラムである。名前空間複製部13は、ファイルシステムの名前空間をたどり、存在するファイルのファイル情報を取得する。このファイル情報と、ファイル情報取得中にイベントデータ記録部21から受け取ったイベントデータを組み合わせて、名前空間の初期複製を名前空間複製DB15として完成させる。
名前空間追随部14は、名前空間の初期複製が完成した後、イベントデータ記録部21から受け取ったイベントデータに従って複製を更新し、名前空間複製DB15を最新の状態に維持する機能を受け持つ。また、名前空間追随部14は、通知されたファイルアクセスやアーカイブ状態を名前空間複製DB15に反映する役割も担う。
マイグレート決定部16は、ポリシ制御の一例として、名前空間複製部13が設定したファイルアクセス記録とユーザが設定したポリシに従い、一次ストレージ1において長時間アクセスされていないファイルを二次ストレージ2に追い出すため、ファイルシステム制御部12に指示を出すプログラムである。通常、二次ストレージ2に追い出された(マイグレートされた)ファイルは、アプリケーション部11がそのファイルをアクセスしたときに、ファイルシステム制御部12が二次ストレージ2から一次ストレージ1に戻す(リコール)。また、ファイルを更新したタイミングで、ファイルシステム制御部12により二次ストレージ2上のデータ(アーカイブデータ)が無効化される。二次ストレージ2上のデータはこのタイミングでは消えず、二次ストレージ2が不足するまで、バックアップデータとして残され、ファイルシステム障害時などのリカバリで使われる。
次に、イベントデータ、ファイル情報、名前空間複製DB15の詳細について説明する。
まず、イベントデータについて説明する。
イベントデータ記録部21により作成されるイベントデータ(event)はファイルやディレクトリの生成や削除、ファイル名の変更、ファイルアクセス、アーカイブ状態変化などのファイル操作の内容を表しており、操作名と操作が行われた時刻に加え、それぞれ以下のデータを含む。ここで、アーカイブ状態変化とは、アーカイブデータの有効化・無効化、マイグレート、リコールなどの事象を含む。
(1) ファイルあるいはディレクトリの作成
event.rectype = create
event.m_inode# = 親ディレクトリのinode番号
event.ftype =
dir (mkdir時)あるいはfile (create時)
event.fname = 作成されたファイルの名前
event.inode# =
作成されたファイルあるいはディレクトリのinode番号
event.time = このイベントが発生した時刻
event.rectype = create
event.m_inode# = 親ディレクトリのinode番号
event.ftype =
dir (mkdir時)あるいはfile (create時)
event.fname = 作成されたファイルの名前
event.inode# =
作成されたファイルあるいはディレクトリのinode番号
event.time = このイベントが発生した時刻
(2) ファイルあるいはディレクトリの削除
event.rectype = delete
event.m_inode# = 親ディレクトリのinode番号
event.ftype = dir (rmdir時)あるいはfile (remove時)
event.inode# = 削除されたファイルあるいはディレクトリのinode番号
event.time = このイベントが発生した時刻
event.rectype = delete
event.m_inode# = 親ディレクトリのinode番号
event.ftype = dir (rmdir時)あるいはfile (remove時)
event.inode# = 削除されたファイルあるいはディレクトリのinode番号
event.time = このイベントが発生した時刻
(3) ファイル名の変更
event.rectype = rename
event.m_inode# = 親ディレクトリのinode番号
event.ftype =
dir(対象がディレクトリの場合)
あるいはfile(対象がファイルの場合)
event.inode# =
対象のファイルあるいはディレクトリのinode番号
event.target.m_inode# =
移動先ディレクトリのinode番号
event.target.fname =
変更後のファイルあるいはディレクトリ名
event.time = このイベントが発生した時刻
event.rectype = rename
event.m_inode# = 親ディレクトリのinode番号
event.ftype =
dir(対象がディレクトリの場合)
あるいはfile(対象がファイルの場合)
event.inode# =
対象のファイルあるいはディレクトリのinode番号
event.target.m_inode# =
移動先ディレクトリのinode番号
event.target.fname =
変更後のファイルあるいはディレクトリ名
event.time = このイベントが発生した時刻
(4) ファイルアクセス(アプリケーションプログラムがファイルをread/write)
event.rectype = access
event.inode# = ファイルのinode番号
event.time = このイベントが発生した時刻
event.rectype = access
event.inode# = ファイルのinode番号
event.time = このイベントが発生した時刻
(5) アーカイブ状態変化
event.rectype = archive
event.inode# = ファイルのinode番号
event.migrate =
オン(マイグレート状態となった)
あるいはオフ(リコールが起動され、マイグレート状態でなくなった)
event.archive =
オン(二次記憶へのファイルデータの書き出しが完了し、アーカイブデータが有効となった)
あるいはオフ(ファイルが更新された結果アーカイブデータが無効となった)
event.time = このイベントが発生した時刻
event.rectype = archive
event.inode# = ファイルのinode番号
event.migrate =
オン(マイグレート状態となった)
あるいはオフ(リコールが起動され、マイグレート状態でなくなった)
event.archive =
オン(二次記憶へのファイルデータの書き出しが完了し、アーカイブデータが有効となった)
あるいはオフ(ファイルが更新された結果アーカイブデータが無効となった)
event.time = このイベントが発生した時刻
次に、ファイル情報について説明する。
名前空間複製復元中にファイルシステムから取得するファイル情報(fstat)には、以下のものがある。
fstat.m_inode# = 親ディレクトリのinode番号
fstat.ftype = dir(対象がディレクトリの場合)
あるいはfile (対象がファイルの場合)
fstat.fname = ディレクトリあるいはファイルの名前
fstat.inode# =
ファイルあるいはディレクトリのinode番号
fstat.archive = オン(アーカイブデータが有効なとき)
あるいはオフ(アーカイブデータが無効なとき)
fstat.migrate = オン(マイグレート状態のとき)
あるいはオフ(マイグレートされていないとき)
fstat.atime = ファイルを最後にアクセスした時刻
fstat.time = ファイル情報取得時刻
fstat.m_inode# = 親ディレクトリのinode番号
fstat.ftype = dir(対象がディレクトリの場合)
あるいはfile (対象がファイルの場合)
fstat.fname = ディレクトリあるいはファイルの名前
fstat.inode# =
ファイルあるいはディレクトリのinode番号
fstat.archive = オン(アーカイブデータが有効なとき)
あるいはオフ(アーカイブデータが無効なとき)
fstat.migrate = オン(マイグレート状態のとき)
あるいはオフ(マイグレートされていないとき)
fstat.atime = ファイルを最後にアクセスした時刻
fstat.time = ファイル情報取得時刻
次に、名前空間複製DB15の構成について説明する。
名前空間複製DB15は、以下のカラム(dbe)を持つ、ディレクトリに設定されているファイルあるいはディレクトリ要素ごとにタプルを持つリレーショナルDBである。
dbe.m_inode# = 親ディレクトリのinode番号
dbe.ftype = dir(このタプルがディレクトリをあらわすとき) あるいは file (このタプルがファイルを表すとき)
dbe.fname = ファイルあるいはディレクトリの名前
dbe.inode# = ファイルあるいはディレクトリのinode番号
dbe.archive = オン(アーカイブデータが有効なとき)
あるいはオフ(アーカイブデータが無効なとき)
dbe.migrate = オン(マイグレート状態のとき)
あるいはオフ(マイグレートされていないとき)
dbe.atime = ファイルを最後にアクセスした時刻
dbe.active = オン(ファイル情報取得済みのとき)
あるいはオフ(まだファイル情報を取得していないとき)
dbe.ftype = dir(このタプルがディレクトリをあらわすとき) あるいは file (このタプルがファイルを表すとき)
dbe.fname = ファイルあるいはディレクトリの名前
dbe.inode# = ファイルあるいはディレクトリのinode番号
dbe.archive = オン(アーカイブデータが有効なとき)
あるいはオフ(アーカイブデータが無効なとき)
dbe.migrate = オン(マイグレート状態のとき)
あるいはオフ(マイグレートされていないとき)
dbe.atime = ファイルを最後にアクセスした時刻
dbe.active = オン(ファイル情報取得済みのとき)
あるいはオフ(まだファイル情報を取得していないとき)
次に、サーバ3の動作について説明する。
図2は、前提技術1に係るファイル情報取得処理の動作の一例を示すフローチャートである。サーバ3は、名前空間複製処理(S11)、名前空間追随処理(S12)、マイグレート処理(S13)を実行する。
次に、サーバ3における動作の詳細について説明する。
まず、名前空間複製処理について説明する。
名前空間複製処理は、名前空間複製部13が名前空間の初期複製を作成する処理であり、ファイル情報取得処理とイベントデータ反映処理からなる。また、名前空間複製処理は、障害発生後のサーバ再立ち上げ時など、メモリ上に蓄積されていたイベントデータが失われ、名前空間複製DB15の内容がファイルシステムの最新状態を反映できなくなったときに、名前空間複製DB15を再作成する目的で動作する。このように名前空間複製DB15を動的に再作成する構成では、イベントデータをイベント発生時に不揮発化する必要がなく、小さい容量のメモリに蓄積するのみで良く、後の名前空間複製DBの追随のオーバヘッドを削減することができる。
名前空間複製部13は、まず、ファイル情報取得処理として、親ディレクトリをオープンし、子ファイル名あるいは子ディレクトリ名を引数として指定し、ファイルシステムの情報取得機能(getinfo)を発行することにより求める。また、名前空間複製部13は、パス名昇順(あるいは降順)とした名前空間をたどることにより、ファイルシステム内に存在するディレクトリ、ファイルの情報を漏れなく求める。この過程で見逃したものは、イベントデータとして記録されているので、後で補正する。
図3は、名前空間におけるディレクトリの階層構造の一例を示す図である。この名前空間は、ディレクトリの階層構造を持ち、ディレクトリ名やファイル名を昇順に左から右へソートしたものである。図4は、前提技術1に係るファイル情報取得処理の動作の一例を示すフローチャートである。
まず、名前空間複製部13は、対象ファイルシステムのルートディレクトリを基点とし、ディレクトリを左下方向(ディレクトリ名の昇順)に順にたどり、最も左下のディレクトリを見つける。見つけた最も左下のディレクトリを対象ディレクトリとし、検索の過程で求めた対象ディレクトリのパス名を対象ディレクトリパス名とする(S201)。次に、名前空間複製部13は、対象ディレクトリのファイル情報および対象ディレクトリ内に存在する全ファイルのファイル情報をファイル名昇順にひとつずつ順に求め、ファイル情報記録ファイルの末尾に順に書き込む(S202)。次に、名前空間複製部13は、対象ディレクトリがルートディレクトリであるか否かの判断を行う(S203)。対象ディレクトリがルートディレクトリである場合(S203,Y)、全ファイルを処理し終わったことを意味するのでファイル情報取得処理を終了する。
一方、対象ディレクトリがルートディレクトリでない場合(S203,N)、名前空間複製部13は、対象ディレクトリパス名から、対象ディレクトリのひとつ上のディレクトリパス名を求める、すなわち、パス名を構成する最終構成ディレクトリ名を取り除いたパス名を新しいパス名とする。次に、名前空間複製部13は、求めたディレクトリパス名をルートディレクトリから下方に順に再度検索し、この検索で存在を確認できた最終ディレクトリを基点ディレクトリとする(S205)。パスの途中のディレクトリがrenameなどで名前空間の別の位置に動かされている場合、途中でみつからなくなるが、この部分は後続のファイル情報取得処理で見つかるか、イベントデータで必ず通知され、後で補正されるため、無視しても問題ない。
次に、名前空間複製部13は、基点ディレクトリの内容を読み込み、基点ディレクトリ内に未処理のディレクトリがあるか否かの判断を行う(S206)。未処理のディレクトリがある場合(S206,Y)、名前空間複製部13は、未処理の最も左下のディレクトリを求め、これを対象ディレクトリとし(S207)、処理S202に移行する。未処理のディレクトリが存在しない、すなわち基点ディレクトリ内に対象ディレクトリパス名で示されるより大きなファイル名をもつディレクトリが存在しない場合(S206,N)、対象ディレクトリパス名を基点ディレクトリのパス名に設定し(S208)、処理S203に移行する。
次に、名前空間複製部13は、対象ファイルシステムのファイル情報取得処理が全て終了すると、その間に発生したイベントデータをファイル情報に反映するイベントデータ反映処理を行う。ファイル情報記録ファイルを先頭から順によみ、ファイル情報記録ファイルに記録されている全てのファイル情報を処理したら、イベントデータ反映処理は終了する。
図5は、前提技術1に係るイベントデータ反映処理の動作の一例を示すフローチャートである。まず、名前空間複製部13は、未処理のファイル情報を取り出し(S302)、ファイル情報に設定されていた情報取得時刻以前の時刻を持つ、イベントデータを順に取り出し、名前空間複製DB15に反映する(S303)。
ここで、名前空間複製DB15への反映について、イベントデータが、削除系、生成系、ファイル名の変更、ファイルアクセス、アーカイブ状態変化のそれぞれの場合について説明する。
イベントデータが削除系(ファイル削除,ディレクトリ削除)の場合、名前空間複製部13は、削除対象ファイルあるいはディレクトリが既に名前空間複製DB15に登録済みなら削除する。そうでなければ何もしない。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.inode# == event.inode#
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
イベントデータが生成系(ファイル生成,ディレクトリ生成)の場合、名前空間複製部13は、作成されたファイルあるいはディレクトリが名前空間複製DB15に登録済みでなければ情報取得済みで登録する。登録済みならこのイベントデータを無視し、何もしない。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.inode# == event.inode#
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
未登録時の設定内容を以下に示す。
dbe.m_inode# = event. m_inode#
dbe.ftype = event. ftype
dbe.fname = event.fname
dbe.inode# = event.inode#
dbe.archive = オフ
dbe.migrate = オフ
dbe.atime = event.time
dbe.active = オン
dbe.ftype = event. ftype
dbe.fname = event.fname
dbe.inode# = event.inode#
dbe.archive = オフ
dbe.migrate = オフ
dbe.atime = event.time
dbe.active = オン
イベントデータがファイル名の変更(event.rectype == rename)の場合、名前空間複製部13は、改名後と同じ名前をもつファイルあるいはディレクトリがすでに登録されていた場合(ファイル名と親inode番号で評価)、そのエントリを名前空間複製DB15から削除する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.name == event.target.fname
dbe.m_inode# ==
event.target.m_inode#
dbe.fname == event.target.fname
dbe.m_inode# ==
event.target.m_inode#
dbe.fname == event.target.fname
ここで、対象ファイルが名前空間複製DB15に既に登録されているならそのエントリの親情報とファイル名を変更する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.inode# == event.inode#
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
dbe.m_inode# == event.m_inode#
dbe.fname == event.fname
このときの変更内容を以下に示す。
dbe.m_inode# = event.target.m_inode#
dbe.name = event.target.fname
dbe.name = event.target.fname
ここで、対象ファイルが未登録なら、改名後のファイルを名前空間複製DB15に新しいエントリとして登録する。
dbe.inode# = event.inode#
dbe.m_inode# = event.target.m_inode#
dbe.name = event.target.fname
dbe.active = オフ
dbe.m_inode# = event.target.m_inode#
dbe.name = event.target.fname
dbe.active = オフ
イベントデータがファイルアクセス(event.rectype == access)の場合、名前空間複製部13は、対象inodeが未登録ならこのイベントデータを無視する。登録されていたら、登録済みのすべてのエントリのファイル最終アクセス時刻、アーカイブ情報、リコール情報を更新(ハードリンクがあるため)する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.inode# == event.inode#
このときの変更内容を以下に示す。
dbe.atime = event.time
イベントデータがアーカイブ状態変化(event.rectype == archive)の場合、対象inodeが未登録ならこのイベントデータを無視。登録されていたら、すべてのエントリのアーカイブ情報を更新(ハードリンクがあるため)する。ここで、以下の条件を全て満たすエントリが存在する場合、登録済みとみなす。
dbe.inode# == event.inode#
このときの変更内容を以下に示す。
dbe.archive = event.archive
dbe.migrate = event.migrate
dbe.migrate = event.migrate
次に、名前空間複製部13は、ファイル情報の内容を名前空間複製DB15に未登録なら情報取得済みとして登録する(S305)。同一inode番号を持つタプルが登録されていた場合には、登録されている全てのエントリの内容を変更する。ここで、以下の条件をすべて満たすエントリが存在するとき、登録済みとみなす。
dbe.inode# == fstat.inode#
dbe.fname == fstat.fname
dbe.m_inode# == fstat.m_inode#
dbe.fname == fstat.fname
dbe.m_inode# == fstat.m_inode#
また、未登録時の設定内容を以下に示す。
dbe.m_inode# = fstat. m_inode#
dbe.ftype = fstat. ftype
dbe.fname = fstat.fname
dbe.inode# = fstat.inode#
dbe.archive = fstat.archive
dbe.migrate = fstat.migrate
dbe.atime = fstat.atime
dbe.active = オン
dbe.ftype = fstat. ftype
dbe.fname = fstat.fname
dbe.inode# = fstat.inode#
dbe.archive = fstat.archive
dbe.migrate = fstat.migrate
dbe.atime = fstat.atime
dbe.active = オン
また、同一inode番号が既に登録済み(すなわちdbe.inode# = fstat.inode#の場合)の設定内容を以下に示す。
dbe.archive = fstat.archive
dbe.migrate = fstat.migrate
dbe.atime = fstat.atime
dbe.active = オン
dbe.migrate = fstat.migrate
dbe.atime = fstat.atime
dbe.active = オン
次に、名前空間複製部13は、記録されていた全ファイル情報の処理を終了すると、名前空間の変更との競合のため情報取得で見逃した名前空間のセグメント(情報取得済みが表示されていないディレクトリ)が存在するか否かの判断を行う(S311)。存在しない場合(S311,N)、このフローを終了する。一方、存在する場合(S311,Y)、そのディレクトリをルートとするファイル情報取得処理、およびその間に発生したイベントデータ反映処理を行い(S312)、処理S311へ戻り、次の情報取得済みが表示されていないディレクトリを見つけ、この処理を繰り返す。
次に、名前空間追随処理について説明する。
名前空間追随部14は、名前空間複製処理が完了した後に発生したイベントデータをイベントデータ記録部21から受け取り、名前空間複製DB15に順次反映していく。イベントデータ反映処理は名前空間複製処理とほほ同じだが、ファイル情報を用いない分、単純となる。
イベントデータが削除系ファイル操作イベント(ファイル削除、ディレクトリ削除)である場合、名前空間追随部14は、イベントデータで示されるinode番号、親inode番号、ファイル名を全て含むエントリを名前空間複製DB15上から削除する。
イベントデータが生成系ファイル操作イベント(ファイル生成、ディレクトリ生成)である場合、名前空間追随部14は、イベントデータで示されるinode番号を含むエントリを名前空間複製DB15上に登録し、イベントデータで伝えられた属性(タイプ)、および親inode番号を設定する。
イベントデータがファイル名の変更(rename)でターゲットと同じファイルがあれば、名前空間追随部14は削除する。また、名前空間追随部14は、ソースの親属性を変更する。
イベントデータがファイルアクセスイベントである場合、名前空間追随部14は、イベントデータで伝えられたアクセス時刻をinode番号で特定し、名前空間複製DB15に設定する。
イベントデータがアーカイブ状態変化である場合、名前空間追随部14は、アーカイブ情報を更新する。
次に、マイグレート処理について説明する。
マイグレート決定部16は、ファイルシステムが提供するコマンドなどを使い、一次ストレージ1の空きスペース状況を定期的に調べ、空きスペース量がユーザにより指定された量以下になった場合、名前空間複製DB15に設定されている情報を使って、マイグレートの対象ファイルを決定し、ファイルシステム制御部12にマイグレートを要求する。この際、マイグレート決定部16は、名前空間複製DB15から求めたファイルのパス名をファイルシステム制御部12に渡し、ファイルデータとともに二次ストレージ2に書き出してもらう。マイグレート決定処理は、ユーザポリシに応じて様々な実装を行うことができるが、一例を以下に示す。
図6は、前提技術1に係るマイグレート決定処理の動作の一例を示すフローチャートである。まず、マイグレート決定部16は、一次ストレージ1の不足が深刻であるか否かの判断を行う(S401)。
一次ストレージ1の不足が深刻である場合(S401,Y)、マイグレート決定部16は、名前空間複製DB15を検索し、アーカイブ済みでかつマイグレート済みではないファイルを見つけ(S411)、見つけた全てのファイルに対し以下のリリース処理(一次ストレージ域の解放)を行う。次に、マイグレート決定部16は、見つけたファイルのうち未処理のファイルがあるか否かの判断を行う(S412)。
未処理のファイルがなければ(S412,N)、このフローを終了する。一方、未処理のファイルがあれば(S412,Y)、マイグレート決定部16は、名前空間複製DB15に設定されているinode番号を引数としてファイルシステム制御部12に対象ファイルのリリース(一次ストレージ解放)を要求する(S413)。次に、マイグレート決定部16は、ファイルシステム制御部12からの応答を得ると、処理S412へ戻り、次の対象ファイルの処理を行う。
ここで、マイグレート決定部16は、名前空間複製DB15はファイルシステムに遅れて追随するため、実際にはファイルが存在しなくなっている場合や、アーカイブが無効になっている場合があり、この場合にはファイルシステム制御部12がエラー応答を返す。ファイルがアーカイブ済みであった場合、ファイルシステム制御部12はそのファイルに割り当てていた一次ストレージ領域を解放して正常応答を返す。
一方、一次ストレージ1が不足しているがそれほど深刻ではない場合(S401、N)、マイグレート決定部16は、深刻な不足が発生したときに、事態をただちに改善できるようにするため、一定時間以上アクセスされていないファイルをアーカイブする。このため、マイグレート決定部16は、名前空間複製DB15を検索し、最終アクセス時刻が所定の時刻(例えば現時刻―1日)以前でかつ、アーカイブ無効(アーカイブ済みでない)なものを見つける(S421)。次に、マイグレート決定部16は、見つけたファイルのうち未処理のファイルがあるか否かの判断を行う(S422)。
未処理のファイルがなければ(S422,N)、このフローを終了する。一方、未処理のファイルがあれば(S422,Y)、マイグレート決定部16は、名前空間複製DB15に設定されている親inode番号をキーとして、繰り返し名前空間複製DB15を検索することで、ファイルのパス名を求める(S423)。次に、マイグレート決定部16は、inode番号、ファイルパス名を引数としたアーカイブ要求をファイルシステム制御部12に出す(S424)。ここで、ファイルシステム制御部12は、指定されたファイルのデータとファイルパス名、inode番号を一括して二次ストレージ上に書き出し、処理S422へ戻り、次の対象ファイルの処理を行う。ここで、要求されたファイルが存在しなくなっている場合、ファイルシステム制御部12はエラーを応答し、要求を無視する。
次に、その他の各部の動作について説明する。
まず、ファイルシステム制御部12について説明する。
まず、マイグレート決定部16からのリリース要求があった場合、ファイルシステム制御部12は、リリース要求を処理し、二次ストレージにファイルデータのコピーが存在する(アーカイブ済み)なら、一次ストレージを返却し、マイグレート済みとする。このとき、イベントデータ記録部21はアーカイブ状態変化イベントを作成する。
event.rectype = archive
event.archive = オン
event.migrate = オン
event.archive = オン
event.migrate = オン
また、マイグレート決定部16からのアーカイブ要求があった場合、ファイルシステム制御部12は、アーカイブ要求を処理し、ファイルデータの二次ストレージ2への書き出しを起動し、マイグレート決定部16に復帰する。この際、二次ストレージ2に書き出すデータのヘッダ部にファイルのマイグレート決定部16から通知されたファイルのパス名を付加して書き出す。二次ストレージ2への書き出しが完了すると、イベントデータ記録部21はアーカイブ状態変化イベントを作成する。
event.rectype = archive
event.archive = オン
event.migrate = オフ
event.archive = オン
event.migrate = オフ
また、アプリケーション部11がマイグレート済みファイルをアクセスしようとした場合、ファイルシステム制御部12は、アプリケーション部11がアクセスしようとしたタイミングで、一次ストレージ1上に領域を新たに割り当て、二次ストレージ2上のデータをその領域に読み込む。その後、イベントデータ記録部21は、リコール完了を表示したアーカイブ状態変化イベントを作成する。
event.rectype = archive
event.archive = オン
event.migrate = オフ
event.archive = オン
event.migrate = オフ
また、アプリケーション部11がファイル操作(ファイル生成・削除、ディレクトリ生成・削除、ファイルread/write)を要求した場合、ファイルシステム制御部12は要求を処理し、正常に完了した時点で、イベントデータ記録部21は対応するイベントデータを作成する。
名前空間複製部13からgetinfoでファイル情報を要求された場合、ファイルシステム制御部12は、指定されたファイルが親ディレクトリに存在することを確認した上で、指定されたファイルのファイル情報を返す。存在しなければ、エラーを応答。エラーが返された場合の名前空間複製部13はそのファイルがなかったものとして処理を続ける。
次に、イベントデータ記録部21について説明する。
イベントデータ記録部21は、ファイルシステム制御部12内に存在し、ファイルシステム制御部12の説明で述べたタイミングでイベントデータを作成し、メモリ上に蓄積する部分である。また、イベントデータ記録部21は、メモリ上に蓄積されたイベントデータが一定量以上となった、あるいは最後に通知してから、一定時間経過したときに、メモリ上に蓄積されていたイベントデータを一括して、名前空間追随部14あるいは名前空間複製部13に通知する。また、システム停止時にも、イベントデータ記録部21が蓄積していたイベントデータを名前空間追随部14に通知し、名前空間追随部14がメモリ上に蓄積されているイベントデータを名前空間複製DB15に全て反映する、システム停止処理を行う。
また、イベントデータ記録部21では、通知するデータ量を削減するため、以下の最適化を施す。まず、イベントデータ記録部21がファイルアクセスイベントを作成する場合、メモリ上に蓄積されている未通知のイベントデータの中に同じファイルに対するファイルアクセスイベントが含まれているなら、後続のファイルアクセスイベントは捨てる。すなわち、メモリ上に蓄積しない。また、イベントデータ記録部21がファイル削除イベントの作成を依頼されたときに、対応するファイル生成イベントが未通知のイベントデータとして含まれるなら、ファイル生成イベントをメモリ上で無効化し、イベントデータ通知の対象から取り除く。
次に、サーバ3におけるシステム立ち上げの処理について説明する。
システムを正常終了した場合、上述したように名前空間追随部14がメモリ上に滞留していたイベントデータを一括して名前空間複製DB15に反映する正常終了処理を行うため、次回立ち上げ時に名前空間複製部13を動作させる必要はない。一方、障害発生の場合、その後の再立ち上げ時には、名前空間複製部13を動作させ、名前空間複製DB15を再初期化するシステム異常終了後起動処理を行う。なお、この場合でも、障害発生直前の名前空間情報は残っているので、名前空間複製の再初期化が完了するまでの間にマイグレーション対象を決定する必要が発生した場合には、マイグレート決定部は古い複製を使って処理を行う。
なお、前提技術1においては、名前空間複製DB15に基づくポリシ制御の例としてマイグレート決定部16について説明したが、HSM制御における他のポリシ制御を名前空間複製DB15に基づいて行う構成としても良い。
前提技術1において、名前空間が更新される度にファイルシステム制御部12から名前空間追随部14へのイベント通知を行うとファイルシステム制御部12に負荷が掛かり過ぎるため、ファイルシステム制御部12はイベントをある程度溜めてからまとめてイベント通知を行う。しかしながら、通信障害やファイルシステム制御部12のクラッシュなどの原因によりファイルシステム制御部12に滞留していたイベントの喪失が発生した場合、名前空間複製部13は、それまでの名前空間複製DB15の内容を一旦破棄し、一次ストレージ1の名前空間を全てスキャンする総なめ処理を行い、複製を一から作り直す。ここで、喪失したイベント数が少ないとしても、総なめ処理の負荷は大きい。
総なめ処理は、深いところから順に名前空間のスキャンを行う。また、名前空間複製DB復旧処理の途中、名前空間の更新のイベントが通知されると、名前空間複製部13は、名前空間において更新箇所を含むツリーを再スキャンする。従って、名前空間の頻繁な更新が行われると、総なめ処理の収束が遅延する。特にファイルシステムが巨大である場合、名前空間複製DB復旧処理が終わらない場合がある。
以下、本発明の実施の形態について図面を参照しつつ説明する。
実施の形態1.
本実施の形態では、前提技術1と同様にして名前空間複製DBを作成、更新するHSMシステムにおいて、FS(File System)制御サーバ(ファイルシステム制御装置)からのイベントが喪失された場合、効率的に名前空間複製DBの修正を行うHSMシステムについて述べる。
本実施の形態では、前提技術1と同様にして名前空間複製DBを作成、更新するHSMシステムにおいて、FS(File System)制御サーバ(ファイルシステム制御装置)からのイベントが喪失された場合、効率的に名前空間複製DBの修正を行うHSMシステムについて述べる。
まず、本実施の形態に係るHSMシステムの構成について説明する。
図7は、本実施の形態に係るHSMシステムの構成の一例を示すブロック図である。このHSMシステムは、ユーザアプリケーション111、FS制御サーバ112、ストレージ管理サーバ131、名前空間複製DB132、一次ストレージ133、二次ストレージ134を備える。ユーザアプリケーション111とFS制御サーバ112は、LAN(Local Area Network)113aで接続されている。FS制御サーバ112とストレージ管理サーバ131は接続されている。また、FS制御サーバ112とストレージ管理サーバ131と一次ストレージ133は、SAN(Storage Area Network)114aで接続されており、ストレージ管理サーバ131と二次ストレージ134と名前空間複製DB132は、SAN114bで接続されている。
図8は、本実施の形態に係るHSMシステムの詳細な構成と動作の一例を示すブロック図である。ここで、FS制御サーバ112は、AC(Access Client)121、MDS(Meta Data Server)122、HSMA(HSM Agent)123を備える。また、MDS122は、イベントキュー124を備える。なお、本実施の形態における一次ストレージ133は、前提技術1における一次ストレージ1に対応する。また、本実施の形態における二次ストレージ134は、前提技術1における二次ストレージ2に対応する。また、本実施の形態におけるユーザアプリケーション111は、前提技術1におけるアプリケーション部11に対応する。また、本実施の形態におけるFS制御サーバ112は、前提技術1におけるファイルシステム制御部12に対応する。また、本実施の形態におけるストレージ管理サーバ131は、前提技術1における名前空間複製部13、名前空間追随部14、マイグレート決定部16に対応する。また、本実施の形態における名前空間複製DB132は、前提技術1における名前空間複製DB15に対応する。
AC121は、ユーザアプリケーション111からの要求を受け付ける。MDS122は、ノード間排他用トークンのサーバ機能とともに、一次ストレージ133のメタデータ(名前空間、extent情報、inode情報など)を集中管理する。HSMA123は、ストレージ管理サーバ131からFS制御サーバ112への要求を仲介するエージェントプロセスである。ストレージ管理サーバ131は、一次ストレージ133と二次ストレージ134との間のデータコピー機能、両ストレージの空き領域制御などのデバイス制御機能、ファイルシステムとストレージのポリシ制御機能を持つ。
一次ストレージ133は、ファイル142、DB維持フラグ(データベース維持情報)143を格納する。DB維持フラグ143は、一次ストレージ133のディスクの先頭のスーパーブロックに設定される。二次ストレージは、アーカイブファイル144を格納する。また、名前空間複製DB132は、名前空間テーブル151とアーカイブIDテーブル152を格納する。
次に、名前空間追従処理について、図8のシーケンスを用いて説明する。
ここで、名前空間複製DB132に対する動作を表す名前空間複製モードとして、通常時に名前空間追従処理を行うイベント通知モードとイベント喪失時などに名前空間複製DB修正処理を行う修正指令モードがある。名前空間追従処理は、前提技術1と同様であり、ストレージ管理サーバ131が名前空間複製DB132の複製を作成した後、FS制御サーバ112からのイベント通知により名前空間複製DB132を更新する処理である。名前空間複製DB修正処理は、ストレージ管理サーバ131がFS制御サーバ112に必要な情報を要求することにより名前空間複製DB132の修正を行う処理である。
まず、ユーザアプリケーション111は、名前空間を更新する要求(mkdir,rename,rmdirなど)が発生すると、この要求をFS制御サーバ112へ送る(S511)。次に、AC121は、受け取った要求をMDS122に送る(S512)。次に、MDS122は、受け取った要求に従って、一次ストレージ133の名前空間を更新し(S513)、一次ストレージ133に反映された更新内容をイベント(名前空間更新情報:名前空間遷移イベントやアーカイブ無効化イベント)としてイベントキュー124に溜める。所定の時間が経過した後、MDS122は、イベントキュー124に溜まったイベントを事後イベント非同期通知としてストレージ管理サーバ131に送る(S514)。次に、ストレージ管理サーバ131は、受け取った事後イベント非同期通知に従って名前空間複製DB132の更新を行う(S515)。
また、所定のポリシや管理者の指示に基づいてアーカイブを行う場合、ストレージ管理サーバ131は、MDS122に滞留しているイベントのフラッシュの要求をFS制御サーバ112へ送る(S521)。次に、HSMA123は、受け取った要求をAC121に送る(S522)。次に、AC121は、受け取った要求をMDS122に送る(S523)。次に、MDS122は、受け取った要求に従って、イベントキュー124に溜まったイベントを事後イベント非同期通知としてストレージ管理サーバ131に送る(S524)。
次に、ストレージ管理サーバ131は、受け取った事後イベント非同期通知に従って名前空間複製DB132の更新を行い(S525)、前提技術1のマイグレート決定部16と同様の処理により、更新された名前空間複製DB132からアーカイブ対象ファイルを検索し(S526)、決定したアーカイブ対象ファイルのアーカイブの要求をFS制御サーバ112へ送る(S531)。次に、HSMA123は、受け取った要求をAC121に送る(S532)。次に、AC121は、受け取った要求をMDS122に送る(S533)。次に、MDS122は、受け取った要求に従って、メタデータの更新を行い、その結果をストレージ管理サーバ131に通知する(S534)。次に、ストレージ管理サーバ131は、二次ストレージ134にアーカイブを作成する(S535)。
次に、名前空間複製モードを決定する名前空間複製モード決定処理について説明する。
図9は、本実施の形態に係る名前空間複製モード決定処理の動作の一例を示すフローチャートである。このフローチャートの左半分は修正指令モードの動作を示し、右半分はイベント通知モードの動作を示す。また、DB維持フラグ143は、セットされていれば名前空間複製DB修正処理が不要であることを表す。
まず、MDS122は、整然起動を行う、またはフェールオーバによる起動を行う(S611)。このとき、名前空間複製モードは修正指令モードである。次に、MDS122は、一次ストレージ133内のDB維持フラグ143がセットされているか否かの判断を行う(S612)。
DB維持フラグ143がセットされている場合(S612,Y)、MDS122は、名前空間複製モードを修正指令モードからイベント通知モードに変更し、一旦DB維持フラグ143をクリアし(S622)、通常処理を行う。MDS122は、通常処理の過程でイベント消失が検出されず(S623,N)、停止要求もなければ、通常処理を続行する。ここで、MDS122は、停止要求があれば(S624、Y)。停止処理を行う。この停止処理を整然と完遂できると判断した場合(S625,Y)、その処理過程で、DB維持フラグ143をセットし(S626)、このフローを終了する。このDB維持フラグ143のセットにより、次のMDS122の起動が整然起動であると認識される。
通常処理中にイベント消失が検出された場合(S623,Y)、MDS122は、名前空間複製モードをイベント通知モードから修正指令モードに変更し、修正指令をストレージ管理サーバ131に送信することにより、ストレージ管理サーバ131に名前空間複製DB修正処理を実行させる。
処理S612において、DB維持フラグ143がクリアされている場合(S612,N)、MDS122は、修正指令をストレージ管理サーバ131に送信することにより、ストレージ管理サーバ131に名前空間複製DB修正処理を実行させる。MDS122は、修正指令に対する応答の待機中に(S613、Y)、停止要求もなければ(S614、N)、引き続き応答の待機を行う。また、MDS122は、応答の待機中に(S613、Y)、停止要求があれば(S614、Y)。停止処理を行い、このフローを終了する。また、MDS122は、修正指令に対する正常応答を受信した場合(S613,Y)、名前空間複製モードを修正指令モードからイベント通知モードに変更し、通常処理を行う。
次に、名前空間に関するデータ構造について説明する。
図10は、本実施の形態に係る名前空間に関するデータ構造の一例を示すブロック図である。この図は、一次ストレージ133、二次ストレージ134、名前空間複製DB132のデータ構造を表す。
一次ストレージ133において、各ファイルは、inode情報(図中では一次ストレージ133内の丸で表される)とファイルデータ(図中では一次ストレージ133内の四角で表される)からなる。inode情報は、inode番号、gen番号、属性、時刻情報からなる。gen(generation)番号は、同一inode番号を持つファイルを世代で識別するための番号であり、NFS(Network File System)やHSMで用いられるものである。属性は、ファイルの種類がディレクトリファイルであるか通常ファイルであるか、などの情報である。時刻情報は、mtime(データ更新時刻)、ctime(inode更新時刻)、atime(アクセス時刻)からなる。inode情報を更新するとctimeも更新される。
また、一次ストレージ133におけるファイルには、ディレクトリファイルと通常ファイルがある。一次ストレージ133におけるディレクトリファイルのファイルデータは、子のファイルへのリンク毎のリンク情報を持つ。リンク情報は、1つの子のファイルの名前とinode番号からなる。また、一次ストレージ133における通常ファイルのファイルデータは、通常ファイルデータ、またはアーカイブIDである。
inode番号=8のディレクトリファイルの下に、inode番号=9のディレクトリファイルとinode番号=10のディレクトリファイルが存在する。inode番号=9のディレクトリファイルの下に、inode番号=11の通常ファイルが存在する。inode番号=10のディレクトリファイルの下に、inode番号=12の通常ファイルが存在する。
inode番号=8,9,10のディレクトリファイルは、親のinode番号、子の名前、子のinode番号を持つ。inode番号=11の通常ファイルは、inode番号=9とinode番号=10の両方のディレクトリからリンクされており、二次ストレージ134にアーカイブされているためファイルデータとしてアーカイブIDを持つ。inode番号=12の通常ファイルは、ファイルデータとして通常ファイルデータを持つ。
名前空間複製DB132の名前空間テーブル151は、一次ストレージ133の名前空間をデータベースで表したものであり、一次ストレージ133におけるリンク毎のエントリが作成され、親のディレクトリファイル毎にまとめて保存される。親がディレクトリファイルで子がディレクトリファイルであるリンクのエントリ(親がinode番号=8で子がinode番号=9、親がinode番号=8で子がinode番号=10)は、親のinode番号(gen番号)、子の名前、子のinode番号(gen番号)を持つ。また、親がディレクトリファイルで子が通常ファイルであるリンクのエントリは(親がinode番号=9で子がinode番号=11、親がinode番号=10で子がinode番号=12、親がinode番号=10で子がinode番号=11)、親のinode番号(gen番号)、ポリシID、子の名前、子のinode番号、子の最終アクセス時刻、ポリシ制御における子の状態値、子のアーカイブIDなど、子のファイルについての詳細な情報を含む。
名前空間複製DB132のアーカイブIDテーブル152は、二次ストレージ134上の論理的な位置に対応するアーカイブIDを管理するものであり、ファイル毎のエントリが作成される。エントリは、アーカイブID、アーカイブデータ状態値、リコールID、最終データ更新時刻、リストア時のinode情報作成用情報を持つ。
二次ストレージ134は、アーカイブファイル毎に、アーカイブID、パス情報、属性情報、ファイルデータを持つ。この例におけるパス情報は、ポリシBでアーカイブされた場合のパス情報である。
次に、イベントの種類と内容について説明する。
図11は、本実施の形態に係るイベントの種類と内容の一例を示す表である。FS制御サーバ112からストレージ管理サーバ131へ通知されるイベントの種類には、名前挿入、名前除去、名前変更、inode情報変更がある。
名前挿入は、ディレクトリへの名前挿入を伴うメタデータ処理、つまり、親のディレクトリファイルに子のファイルの名前やinode番号などのリンク情報を挿入することを示す。名前除去は、ディレクトリからの名前削除を伴うメタデータ処理、つまり、親のディレクトリファイルからリンク情報を削除することを示す。名前変更は、ディレクトリを跨ぐ、跨がないに関わらず、名前変更を伴うメタデータ処理、つまり、リンク情報を移動することを示す。inode情報変更は、リンク情報の変更がなく、inode情報の変更を伴うメタデータ処理、つまり、あるファイルに書き込みが発生してinode情報のmtimeが変更されたことなどを示す。
次に、イベントの内容(名前空間変更内容)として付加されるイベント付加情報の種類には、親inode番号(その1)、親inode番号(その2)、対象ファイル名(その1)、対象ファイル名(その2)、子inode情報、イベント発生時刻(名前空間変更時刻)がある。これらのイベント付加情報のうち、親inode番号(その1)、親inode番号(その2)、子inode情報は、inode/gen番号、ctime/mtime/atime、extent情報などを持つ。
この表は、イベントの種類毎の列とイベント付加情報毎の行とで表され、あるイベントの種類の内容にあるイベント付加情報が含まれる場合、交差する欄に“○”が付けている。名前挿入と名前除去は、親inode番号(その1)、対象ファイル名(その1)、子inode情報、イベント発生時刻を含む。名前変更は、親inode番号(その1)、親inode番号(その2)、対象ファイル名(その1)、対象ファイル名(その2)、子inode情報、イベント発生時刻を含む。inode情報変更は、子inode情報、イベント発生時刻を含む。
名前変更におけるイベント付加情報のみ、親inode番号と対象ファイル名が2つずつ存在するが、親inode番号(その1)、対象ファイル名(その1)が変更前を示し、親inode番号(その2)、対象ファイル名(その2)が変更後を示す。また、子inode情報とイベント発生時刻は、全てのイベントに付加される。
その他、イベントと同様、FS制御サーバ112からストレージ管理サーバ131へ通知されるものとして修正指令がある。修正指令は、上述した名前空間複製モード決定処理により発生する。
次に、名前空間複製DB修正処理について説明する。
一次ストレージ133のファイルシステムにおいて、inode情報が更新されると、必ずそのinode情報のctimeも更新される。リンク情報が更新されると、そのリンクの両端のinode情報も更新され、それらのinode情報のctimeも更新される。一方、上述したように、通常処理において、FS制御サーバ112は、イベントの内容とともにイベント発生時刻をストレージ管理サーバ131に通知する。ストレージ管理サーバ131は、名前空間複製DB132に反映された最終のイベント発生時刻を最終イベント発生時刻として記憶する。
従って、ストレージ管理サーバ131は、最終イベント発生時刻より後のctimeを持つinode情報とそのinode情報から子へのリンク情報を用いて名前空間複製DB132を修正すれば良い。ここでは、わずかな時刻のずれを考慮し、ストレージ管理サーバ131は、「最終イベント発生時刻より後の」ではなく「最終イベント発生時刻以上の」ctimeを持つinode情報を用いる。
以下、名前空間複製DB修正処理について具体例を用いて説明する。図12は、本実施の形態に係る名前空間DB修正処理の動作の一例を示すシーケンス図である。この図は、FS制御サーバ112とストレージ管理サーバ131の動作を示す。また、図13は、イベント喪失が発生した時点における一次ストレージの名前空間の内容の一例を示すツリー構造図である。各ノードは、ファイル毎のinode情報を表す。このうち、丸で表されたノードは、ディレクトリファイルのinode情報を表し、四角で表されたノードは通常ファイルのinode情報を表す。また、ノードに記された数字は、inode情報におけるctimeの値を表す。また、ノード間を結ぶ線はリンク情報を表す。
まず、通常処理として、FS制御サーバ112は、時刻t=10のイベント通知(S711)、時刻t=20のイベント通知(S712),時刻t=30のイベント通知(S713)を行う。この具体例において、t=10においては、ctime=10,10のイベントが通知され、t=20においては、ctime=15,15,15,20,20のイベントが通知される。また、t=30のイベント通知は、通信障害によりストレージ管理サーバ131に届かなかったとする。図14は、イベント喪失が発生した時点における名前空間テーブルの内容の一例を示すツリー構造図である。一次ストレージ133の名前空間と比較すると、名前空間テーブルは、ctime=20より後のinode情報やリンク情報が欠落している。
その後、ストレージ管理サーバ131は、FS制御サーバ112の名前空間複製モード決定処理により修正指令を通知されると(S720)、名前空間複製DB132におけるinode情報の修正を行うinode情報修正処理として、ctimeが20以上であるinode情報(未更新inode情報)の要求(未更新inode情報要求)をFS制御サーバ112へ送る(S721)。FS制御サーバ112は、この要求に従ってctimeが20以上のinode情報を列挙し、列挙したinode情報を対象inode情報としてストレージ管理サーバ131へ送る(S722)。この具体例においては、ctime=20,25,35,35のinode情報がストレージ管理サーバ131へ送られる。
ストレージ管理サーバ131は、受け取った対象inode情報を用いて名前空間テーブル151の修正を行う。図15は、inode情報が修正された時点における名前空間テーブルの内容の一例を示すツリー構造図である。太枠で囲われたノードは、修正されたinode情報に対応する。その他のノードは、現状維持のinode情報に対応する。この時点で、名前空間テーブル151は、リンク情報が張られていないinode情報の存在を許している。
ここで、FS制御サーバ112からストレージ管理サーバ131へ、新たなイベントが通知されると(S730)、ストレージ管理サーバ131は、通知されたイベントが既に修正されたinode情報に関係するか否かの判断を行い、無関係であれば、随時、そのイベントを名前空間テーブル151に反映する。図16は、修正されたinode情報と無関係のイベントが反映された時点における名前空間テーブルの内容の一例を示すツリー構造図である。太枠で囲われたノードは、修正されたinode情報と無関係のイベントが反映されたinode情報に対応する。
次に、ストレージ管理サーバ131は、名前空間複製DB132におけるリンク情報の修正を行うリンク情報修正処理として、修正されたinode情報のうち、ディレクトリファイルのinode情報を抽出し、抽出されたディレクトリファイルが持つリンク情報(未更新リンク情報)の要求(未更新リンク情報要求)をFS制御サーバ112へ送る(S731)。FS制御サーバ112は、この要求に従って未更新リンク情報を列挙し、列挙した未更新リンク情報をストレージ管理サーバ131へ送る(S732)。このときFS制御サーバ112は、未更新リンク情報と共に、未更新リンク情報に示された子のファイルのinode情報も送る。この具体例においては、ディレクトリファイルであるctime=20,35のinode情報に対応するリンク情報がストレージ管理サーバ131へ送られる。
ストレージ管理サーバ131は、受け取った未更新リンク情報に基づいて、名前空間テーブル151におけるリンク情報の修正を行い、名前空間複製DB修正処理が終了する。図17は、リンク情報が修正された時点における名前空間テーブルの内容の一例を示すツリー構造図である。太枠で囲われたノードは、修正されたinode情報のうちディレクトリファイルであるinode情報に対応し、太線で表されたリンク情報は、修正されたリンク情報に対応する。
なお、処理S730において、新たなイベントが修正されたinode情報に無関係である場合について述べたが、新たなイベントが修正されたinode情報に関係する場合、関係のあるinode情報のctimeと新たなイベントに含まれたイベント発生時刻との比較を行い、新しい方の情報を用いてinode情報やリンク情報の修正を行う。
上述したように、ストレージ管理サーバ131は、リンク情報毎のエントリを持つデータベースである名前空間テーブル151として名前空間を複製する。この名前空間テーブル151によれば、常にツリー構造が完全な状態でならなくてはならない通常の名前空間とは異なり、ツリー構造が不完全な状態からの修正が容易になる。
前提技術1においては、イベント喪失時に名前空間のツリーを全てスキャンして名前空間複製DBを作成し直し、新たなイベントの発生の度にイベントに関連するツリーをスキャンして名前空間複製DBを修正していた。一方、本実施の形態によれば、イベント喪失時、ストレージ管理サーバ131は、名前空間複製DB132に反映されていない未更新inode情報と未更新リンク情報だけを用いて名前空間複製DB132の修正を行うため、負荷が小さく高速に名前空間複製DB132の修正を行うことができる。また、ストレージ管理サーバ131は、名前空間複製DBの修正中に新たなイベントが通知されても、そのイベントと未更新inode情報のうち新しい方を用いて名前空間複製DBに反映することにより、負荷が小さく高速に名前空間複製DB132の更新を行うことができる。従って、巨大なファイルシステムにおける名前空間の複製が可能になる。
また、本実施の形態に係る名前空間複製装置は、ストレージシステムに容易に適用することができ、ストレージシステムの性能をより高めることができる。ここで、ストレージシステムには、例えばHSMシステム、バックアップシステム等が含まれ得る。
更に、名前空間複製装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、名前空間複製プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、名前空間複製装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
なお、ストレージ装置は、実施の形態における一次ストレージに対応する。また、ファイルシステム制御装置は、実施の形態におけるFS制御サーバに対応する。
また、名前空間複製データベース更新ステップは、実施の形態における名前空間追従処理に対応する。また、名前空間複製データベース修正ステップは、実施の形態における名前空間複製データベース修正処理に対応する。また、名前空間複製データベース更新部は、実施の形態におけるストレージ管理サーバにおける名前空間追従処理に対応する。また、名前空間複製データベース修正部は、実施の形態におけるストレージ管理サーバにおける名前空間複製データベース修正処理に対応する。
以上説明したように、本発明によれば、ストレージ装置上の名前空間をデータベースとして効率的に複製することができる。
Claims (10)
- ストレージ装置上の名前空間の複製をコンピュータに実行させる名前空間複製プログラムであって、
前記ストレージ装置の制御を行うファイルシステム制御装置から前記名前空間の更新に関する情報である名前空間更新情報を取得し、前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを、前記名前空間更新情報に基づいて更新する名前空間複製データベース更新ステップと、
前記名前空間複製データベース更新ステップによる前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正ステップと
をコンピュータに実行させる名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
前記名前空間更新情報は、名前空間の更新の内容である名前空間更新内容と該更新の時刻である名前空間更新時刻を含み、
前記名前空間複製データベース修正ステップは、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映された名前空間更新情報に含まれる名前空間更新時刻のうち、最終のものを前記所定時刻とすることを特徴とする名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
前記名前空間複製データベース修正ステップは、前記未更新ファイル識別情報が示すファイルのうちディレクトリファイルの持つリンク情報を、前記未更新リンク情報とすることを特徴とする名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
前記名前空間複製データベース修正ステップは、前記所定時刻を前記ファイルシステム制御装置へ通知することにより、前記未更新ファイル識別情報と前記未更新リンク情報を抽出させ、取得することを特徴とする名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
前記名前空間複製データベース修正ステップは、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に無関係である場合、取得した該名前空間更新情報に基づいて前記名前空間複製データベースを更新することを特徴とする名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
1つの前記リンク情報は、1つのディレクトリファイルのinode情報と該ディレクトリファイルに含まれる子のファイルのinode情報と該ディレクトリファイルに含まれる子のファイルの名前情報とを含み、
前記名前空間複製データベースは、前記リンク情報毎のエントリを持つことを特徴とする名前空間複製プログラム。 - 請求項1に記載の名前空間複製プログラムにおいて、
前記ファイル識別情報は、inode情報であり、
前記リンク情報は、1つのディレクトリファイルのinode番号と該ディレクトリファイルの子である1つのファイルのinode番号とを含むことを特徴とする名前空間複製プログラム。 - 請求項2に記載の名前空間複製プログラムにおいて、
前記名前空間複製データベース修正ステップは、前記名前空間複製データベースの修正が完了する前に、前記名前空間複製データベース更新ステップにより前記名前空間複製データベースに反映されていない名前空間更新情報を取得し、該名前空間更新情報が前記未更新ファイル識別情報に関係する場合、該名前空間更新情報の名前空間変更時刻と該名前空間更新情報に関係する前記未更新ファイル識別情報の更新時刻とを比較することにより、該名前空間更新情報と前記未更新ファイル識別情報のうち新しい方に基づいて前記名前空間複製データベースを修正することを特徴とする名前空間複製プログラム。 - ストレージ装置上の名前空間の複製を行う名前空間複製装置であって、
前記ストレージ装置の制御を行うファイルシステム制御装置から前記名前空間の更新に関する情報である名前空間更新情報を取得し、前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを、前記名前空間更新情報に基づいて更新する名前空間複製データベース更新部と、
前記名前空間複製データベース更新部による前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正部と
を備える名前空間複製装置。 - ストレージ装置上の名前空間の複製を行う名前空間複製方法であって、
前記ストレージ装置におけるファイル識別情報とリンク情報に基づいて作成されたデータベースである名前空間複製データベースを管理する名前空間複製装置において、前記名前空間の更新に関する情報である名前空間更新情報を、前記ストレージ装置の制御を行うファイルシステム制御装置から取得し、前記名前空間更新情報に基づいて前記名前空間複製データベースを更新する名前空間複製データベース更新ステップと、
前記名前空間複製データベース更新ステップによる前記名前空間複製データベースへの反映が行われていない前記名前空間更新情報が喪失された場合、前記名前空間複製装置において、ファイル識別情報の更新時刻が所定時刻以降のファイル識別情報である未更新ファイル識別情報と、該未更新ファイル識別情報に対応するリンク情報である未更新リンク情報とを、前記ファイルシステム制御装置から取得し、前記未更新ファイル識別情報と前記未更新リンク情報とに基づいて前記名前空間複製データベースを修正する名前空間複製データベース修正ステップと
を実行する名前空間複製方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/306284 WO2007110931A1 (ja) | 2006-03-28 | 2006-03-28 | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007110931A1 JPWO2007110931A1 (ja) | 2009-08-06 |
JP4699516B2 true JP4699516B2 (ja) | 2011-06-15 |
Family
ID=38540871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008507316A Expired - Fee Related JP4699516B2 (ja) | 2006-03-28 | 2006-03-28 | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090006500A1 (ja) |
JP (1) | JP4699516B2 (ja) |
WO (1) | WO2007110931A1 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961804B2 (en) * | 2001-07-20 | 2005-11-01 | International Business Machines Corporation | Flexible techniques for associating cache memories with processors and main memory |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8732386B2 (en) | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
EP2456541A4 (en) * | 2009-07-22 | 2013-03-06 | Vbox Inc | PROCESS FOR OXYGEN SEPARATION AND DISTRIBUTION |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8725951B2 (en) | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US8666939B2 (en) * | 2010-06-28 | 2014-03-04 | Sandisk Enterprise Ip Llc | Approaches for the replication of write sets |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
WO2013057790A1 (ja) * | 2011-10-18 | 2013-04-25 | 富士通株式会社 | 情報処理装置、時刻補正値決定方法、およびプログラム |
CN103176861A (zh) * | 2011-12-26 | 2013-06-26 | 富泰华工业(深圳)有限公司 | 用于数据备份的存储系统及备份方法 |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US10152492B1 (en) * | 2012-03-30 | 2018-12-11 | EMC IP Holding Company LLC | Extended recycle bin for versioning |
JP6157143B2 (ja) * | 2012-11-14 | 2017-07-05 | キヤノン株式会社 | 情報処理装置、制御方法、及びプログラム |
US9498593B2 (en) * | 2013-06-17 | 2016-11-22 | MetaMason, Inc. | Customized medical devices and apparel |
US10067949B1 (en) * | 2013-12-23 | 2018-09-04 | EMC IP Holding Company LLC | Acquired namespace metadata service for controlling access to distributed file system |
US20160124990A1 (en) * | 2014-11-05 | 2016-05-05 | Netapp, Inc. | System and method for determining occurrences of data corruption in a file system under active use |
US10348837B2 (en) * | 2014-12-16 | 2019-07-09 | Citrix Systems, Inc. | Methods and systems for connecting devices to applications and desktops that are receiving maintenance |
US10089371B2 (en) * | 2015-12-29 | 2018-10-02 | Sap Se | Extensible extract, transform and load (ETL) framework |
US10649955B2 (en) | 2017-01-03 | 2020-05-12 | International Business Machines Corporation | Providing unique inodes across multiple file system namespaces |
US10657102B2 (en) | 2017-01-03 | 2020-05-19 | International Business Machines Corporation | Storage space management in union mounted file systems |
US10592479B2 (en) | 2017-01-03 | 2020-03-17 | International Business Machines Corporation | Space management for a hierarchical set of file systems |
US10579587B2 (en) | 2017-01-03 | 2020-03-03 | International Business Machines Corporation | Space management for a hierarchical set of file systems |
US10579598B2 (en) | 2017-01-03 | 2020-03-03 | International Business Machines Corporation | Global namespace for a hierarchical set of file systems |
US10585860B2 (en) | 2017-01-03 | 2020-03-10 | International Business Machines Corporation | Global namespace for a hierarchical set of file systems |
JP6892361B2 (ja) | 2017-09-21 | 2021-06-23 | キオクシア株式会社 | ストレージ装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448365A (ja) * | 1990-06-18 | 1992-02-18 | Hitachi Ltd | ローカルエリアネットワークとファイル管理方法 |
JPH0659957A (ja) * | 1991-06-27 | 1994-03-04 | Digital Equip Corp <Dec> | データを記憶するファイル・システム及び記憶空間を割り当てる方法 |
WO1995029444A1 (fr) * | 1994-04-25 | 1995-11-02 | Sony Corporation | Controleur d'acces memoire |
JP2000276391A (ja) * | 1999-03-26 | 2000-10-06 | Hitachi Ltd | ディレクトリ同期方法 |
JP2000284995A (ja) * | 1999-03-30 | 2000-10-13 | Fujitsu Ltd | データ処理装置及び記録媒体 |
JP2003280950A (ja) * | 2002-03-26 | 2003-10-03 | Fujitsu Ltd | ファイル管理システム |
JP2005196725A (ja) * | 2003-12-09 | 2005-07-21 | Hitachi Ltd | アクセスヒストリに基づくファイルマイグレーション方式 |
JP2006039814A (ja) * | 2004-07-26 | 2006-02-09 | Hitachi Ltd | ネットワークストレージシステム及び複数ネットワークストレージ間の引継方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212557B1 (en) * | 1990-01-29 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus for synchronizing upgrades in distributed network data processing systems |
US5822780A (en) * | 1996-12-31 | 1998-10-13 | Emc Corporation | Method and apparatus for hierarchical storage management for data base management systems |
US6460055B1 (en) * | 1999-12-16 | 2002-10-01 | Livevault Corporation | Systems and methods for backing up data files |
US6990606B2 (en) * | 2000-07-28 | 2006-01-24 | International Business Machines Corporation | Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters |
US8010558B2 (en) * | 2001-06-05 | 2011-08-30 | Silicon Graphics International | Relocation of metadata server with outstanding DMAPI requests |
US7143307B1 (en) * | 2002-03-15 | 2006-11-28 | Network Appliance, Inc. | Remote disaster recovery and data migration using virtual appliance migration |
US7346664B2 (en) * | 2003-04-24 | 2008-03-18 | Neopath Networks, Inc. | Transparent file migration using namespace replication |
US20050066059A1 (en) * | 2003-09-24 | 2005-03-24 | Zybura John H. | Propagating attributes between entities in correlated namespaces |
US20050125456A1 (en) * | 2003-12-09 | 2005-06-09 | Junichi Hara | File migration method based on access history |
US7565661B2 (en) * | 2004-05-10 | 2009-07-21 | Siew Yong Sim-Tang | Method and system for real-time event journaling to provide enterprise data services |
US20070038697A1 (en) * | 2005-08-03 | 2007-02-15 | Eyal Zimran | Multi-protocol namespace server |
JP4414381B2 (ja) * | 2005-08-03 | 2010-02-10 | 富士通株式会社 | ファイル管理プログラム、ファイル管理装置、ファイル管理方法 |
US20070055703A1 (en) * | 2005-09-07 | 2007-03-08 | Eyal Zimran | Namespace server using referral protocols |
-
2006
- 2006-03-28 JP JP2008507316A patent/JP4699516B2/ja not_active Expired - Fee Related
- 2006-03-28 WO PCT/JP2006/306284 patent/WO2007110931A1/ja active Application Filing
-
2008
- 2008-09-05 US US12/204,883 patent/US20090006500A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448365A (ja) * | 1990-06-18 | 1992-02-18 | Hitachi Ltd | ローカルエリアネットワークとファイル管理方法 |
JPH0659957A (ja) * | 1991-06-27 | 1994-03-04 | Digital Equip Corp <Dec> | データを記憶するファイル・システム及び記憶空間を割り当てる方法 |
WO1995029444A1 (fr) * | 1994-04-25 | 1995-11-02 | Sony Corporation | Controleur d'acces memoire |
JP2000276391A (ja) * | 1999-03-26 | 2000-10-06 | Hitachi Ltd | ディレクトリ同期方法 |
JP2000284995A (ja) * | 1999-03-30 | 2000-10-13 | Fujitsu Ltd | データ処理装置及び記録媒体 |
JP2003280950A (ja) * | 2002-03-26 | 2003-10-03 | Fujitsu Ltd | ファイル管理システム |
JP2005196725A (ja) * | 2003-12-09 | 2005-07-21 | Hitachi Ltd | アクセスヒストリに基づくファイルマイグレーション方式 |
JP2006039814A (ja) * | 2004-07-26 | 2006-02-09 | Hitachi Ltd | ネットワークストレージシステム及び複数ネットワークストレージ間の引継方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2007110931A1 (ja) | 2007-10-04 |
JPWO2007110931A1 (ja) | 2009-08-06 |
US20090006500A1 (en) | 2009-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4699516B2 (ja) | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 | |
US9665304B2 (en) | Storage system with fast snapshot tree search | |
US11704290B2 (en) | Methods, devices and systems for maintaining consistency of metadata and data across data centers | |
US8255371B2 (en) | Methods and apparatuses for data protection | |
US7457822B1 (en) | Apparatus and method for hardware-based file system | |
US20080172423A1 (en) | Hsm control program, hsm control apparatus, and hsm control method | |
US8560500B2 (en) | Method and system for removing rows from directory tables | |
US11347600B2 (en) | Database transaction log migration | |
JP2007226347A (ja) | 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法 | |
CN113906406A (zh) | 数据库管理系统 | |
JP2008040699A (ja) | Hsm制御プログラム、hsm制御装置、hsm制御方法 | |
JP2006018796A (ja) | データ処理方法および装置並びにストレージ装置およびその処理プログラム | |
US11403176B2 (en) | Database read cache optimization | |
CN114968966A (zh) | 分布式元数据远程异步复制方法、装置和设备 | |
EP3183675B1 (en) | Systems and methods for highly-available file storage with fast online recovery | |
CN114816224A (zh) | 数据管理方法和数据管理装置 | |
JP2007305013A (ja) | Hsm制御プログラム、hsm制御装置、hsm制御方法 | |
JP4518485B2 (ja) | データベースの再編成方法、ストレージ装置及びストレージシステム | |
JP5103786B2 (ja) | 制御プログラム、制御装置、制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110302 |
|
LAPS | Cancellation because of no payment of annual fees |