JP2007305013A - Hsm制御プログラム、hsm制御装置、hsm制御方法 - Google Patents
Hsm制御プログラム、hsm制御装置、hsm制御方法 Download PDFInfo
- Publication number
- JP2007305013A JP2007305013A JP2006134694A JP2006134694A JP2007305013A JP 2007305013 A JP2007305013 A JP 2007305013A JP 2006134694 A JP2006134694 A JP 2006134694A JP 2006134694 A JP2006134694 A JP 2006134694A JP 2007305013 A JP2007305013 A JP 2007305013A
- Authority
- JP
- Japan
- Prior art keywords
- file
- release
- information
- metadata
- policy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】一次ストレージにおける空き領域の生成を効率的に行うHSM制御プログラム、HSM制御装置、HSM制御方法を提供する。
【解決手段】ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製151として管理するメタデータ複製情報管理ステップと、ファイル毎のリリースに関する情報をリリース情報として管理し、メタデータ複製151が更新された場合、メタデータ複製151とリリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、リリースが指示された場合、リリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップとをコンピュータに実行させる。
【選択図】図7
【解決手段】ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製151として管理するメタデータ複製情報管理ステップと、ファイル毎のリリースに関する情報をリリース情報として管理し、メタデータ複製151が更新された場合、メタデータ複製151とリリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、リリースが指示された場合、リリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップとをコンピュータに実行させる。
【選択図】図7
Description
本発明は、一次ストレージの空き領域の生成を効率的に行うHSM制御プログラム、HSM制御装置、HSM制御方法に関するものである。
HSM(Hierarchical Storage Management:階層記憶管理)は、テープライブラリなどの低速なストレージ装置(二次ストレージ)とハードディスクなどの高速なストレージ装置(一次ストレージ)を組み合わせることにより、安価な大容量ファイルシステムを構築するものである。
HSM制御装置においては、一次ストレージにおいて長時間アクセスされていないファイルを特定し、そのファイルを二次ストレージに書き出し、アクセスが要求された時点で一次ストレージに移動することが必要となる。従来、これを実現するために、従来のHSM制御装置は、階層構造を持つファイルシステムの名前空間を総なめし、ファイルシステムがファイル単位に保持するアクセス時刻を参照することにより、二次ストレージに書き出すファイルを特定する方式を用いている。
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1が知られている。このデータ処理装置は、メタデータデータの内容が更新されると、ログが採取され、このログを用いてファイルシステムの不整合の修正を行うものである。
特開2000−484995号公報
しかしながら、上述した名前空間を総なめする方式のHSM制御装置には、以下の問題がある。
第1にファイルシステム総なめオーバヘッドの問題がある。従来のHSM制御装置では階層構造を持つファイル名前空間を定期的に総なめするために、オーバヘッドが大きくなってしまう。
第2に名前空間の排他問題がある。HSM制御装置が名前空間を総なめしている間に、rename操作などのファイル名変更操作が行われると、総なめの過程で求めたパス名が、実際には存在しない不当なものとなってしまう。このため、HSM制御装置は、顧客が設定したポリシと矛盾するデータ移動操作を行ってしまう可能性がある。例えば、検索の途中で、上位ディレクトリがゴミ箱に移されたとすると、ゴミ箱全体を移動対象としてしまうようなことが起こる。こうした問題を防ごうとすると、HSM制御装置は総なめの過程で、頻繁に矛盾をチェックし、矛盾があれば総なめをやり直すことが必要となり、論理が非常に複雑となるとともにオーバヘッドが大幅に増加する。
第3にHSMポリシ制御の柔軟性がある。一般に階層構造の名前空間は格納されているファイル群の性格を表しているため、HSMポリシも名前空間に基づいて設定する(あるディレクトリ以下の全ファイルなど)のが自然である。しかし、上述した名前空間の排他問題により、名前空間に基づく複雑なポリシ制御を実現することが難しいという問題があった。
第4に二次ストレージに退避されたデータの属性情報不足の問題がある。また上述した名前空間の排他問題により、二次ストレージに格納されるデータに正しいパス名を付加することが難しい。このため、二次ストレージに格納されたデータはファイルシステムのメタデータのみからしかアクセスできないことになり、ファイルシステムのメタデータが壊れると、二次ストレージ上にデータは残っているのにもかかわらず、パス名と対応づけることができないため、ファイルデータを復旧することができないという問題があった。
本発明は上述した問題点を解決するためになされたものであり、一次ストレージにおける空き領域の生成を効率的に行うためのHSM制御プログラム、HSM制御装置、HSM制御方法を提供することを目的とする。
上述した課題を解決するため、本発明は、HSMの制御をコンピュータに実行させるHSM制御プログラムであって、ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップとをコンピュータに実行させるものである。
また、本発明に係るHSM制御プログラムにおいて、前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするものである。
また、本発明に係るHSM制御プログラムにおいて、前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするものである。
また、本発明に係るHSM制御プログラムにおいて、前記リリース情報は、更にファイル識別子を含み、前記リリース情報管理ステップは、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするものである。
また、本発明に係るHSM制御プログラムにおいて、前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするものである。
また、本発明に係るHSM制御プログラムにおいて、前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするものである。
また、本発明に係るHSM制御プログラムにおいて、前記ファイル決定ステップは、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするものである。
また、本発明は、HSM制御装置であって、ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理部と、ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理部により管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理部と、リリースが指示された場合、前記ファイル情報管理部により管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定部とを備えたものである。
また、本発明に係るHSM制御装置において、前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするものである。
また、本発明に係るHSM制御装置において、前記リリース情報管理部は、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするものである。
また、本発明に係るHSM制御装置において、前記リリース情報は、更にファイル識別子を含み、前記リリース情報管理部は、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするものである。
また、本発明に係るHSM制御装置において、前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするものである。
また、本発明に係るHSM制御装置において、前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするものである。
また、本発明に係るHSM制御装置において、前記ファイル決定部は、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするものである。
また、本発明は、HSMの制御を行うHSM制御方法であって、ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップとを実行するものである。
本発明によれば、一次ストレージにおける空き容量の生成を効率的に行うことができる。
以下、本発明の実施の形態を説明するため、その前提となる技術について図面を参照しつつ説明する。
(前提技術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のようなHSM装置は、一次ストレージ1上に存在しないデータへのアクセスが発生すると、二次ストレージ2から一次ストレージ1の空き領域へ該当するデータをコピーした後、一次ストレージ1にアクセスする手段を提供する(リコール)。この場合の一次ストレージ1の空き領域生成において、事前アーカイブや使用量しきい値を用いた空き領域生成が行われる。
まず、事前アーカイブは、一次ストレージ1の空き容量を増やす際、一次ストレージ1から二次ストレージ2へのデータコピー(アーカイブ)を行うことなく、一次ストレージ1上でデータの使用域を解放することができるように、業務に影響を与えない時間帯等に事前にアーカイブを行う機能である。事前アーカイブの実施によって、一次ストレージ1と二次ストレージ2の両方にデータが存在する状態になる。この事前アーカイブは、ユーザの設定するポリシに従って定期的に行われる、または、ユーザからのアーカイブのコマンドに従って行われる。
また、一次ストレージ1には、新規に作成するファイルやデータのための領域、および、一次ストレージ1に存在しないデータを二次ストレージ2から書き戻す(リコール)ための領域として、常に一定量以上の空き領域を確保しておく必要がある。このため、一次ストレージ1の使用量が予めユーザポリシに設定された上限のしきい値(HWM:High Water Mark)を超えた時点で、サーバ3は、一次ストレージ1の使用量が予めユーザポリシに設定された下限のしきい値(LWM:Low Water Mark)を下回るまで使用済みの領域を開放する。
ここで、空き領域生成は、以下の2フェーズで行われる。最初に、事前アーカイブによりアーカイブ済みのデータ領域を開放する(リリース)。このリリースにより一次ストレージ1の使用量をLWM未満にできない場合、二次ストレージ2へのデータコピーと一次ストレージ1の領域解放を行う(マイグレート)。ここで、サーバ3は、リリースの対象となるデータの優先順位を、ユーザポリシに従い、更新頻度、サイズ、格納場所等から決定する。
上述した事前アーカイブは、業務にできるだけ影響を与えないように実施される。つまり、事前アーカイブは、一次ストレージ1上のファイルアクセスに必要なCPU資源、I/O資源を奪わないように、かつ、リコールに備えて2次ストレージ2のデバイスを占有しないように実施される。また、上述した使用量しきい値を用いた空き領域生成は、業務への影響を減らすことはもちろん、一次ストレージ1の使用量がHWMを超えてから空き領域が生成されるまでのタイムラグが小さいことが要求される。
従来、事前アーカイブ対象となるファイルやリコール対象となるファイルを特定するために、ファイルシステム全体を対象としてメタデータ(名前空間およびファイル属性)をスキャンする必要があり、上述した空き領域生成を実施する際にファイルシステムを管理するためのCPUやI/Oを大量に消費していた。前提技術1によれば、名前空間複製DB15をスキャンすることにより、アーカイブ対象ファイルやリリース対象ファイルを特定するため、ファイルシステム制御部12への負担が掛からない。
しかしながら、従来技術と前提技術1は、使用量しきい値を用いた空き容量生成を実施する際、ファイルシステムのメタデータまたは複製されたメタデータを全てスキャンしながら、ユーザポリシと突き合わせてリリースの優先順位を示すスコアを計算し、そのスコアによるソートを行う。このソートが完了するまで空き領域生成を実施できないため、一次ストレージ1の使用量がHWMを超えてから空き領域が生成されるまでのタイムラグが非常に大きい。
以下、本発明の実施の形態について図面を参照しつつ説明する。
実施の形態1.
本実施の形態では、前提技術1と同様にして名前空間(メタデータ)の複製を作成、更新するHSMシステムにおいて、一次ストレージの空き領域生成処理を高速化するHSMシステムについて説明する。
本実施の形態では、前提技術1と同様にして名前空間(メタデータ)の複製を作成、更新するHSMシステムにおいて、一次ストレージの空き領域生成処理を高速化するHSMシステムについて説明する。
まず、本実施の形態に係るHSMシステムの構成について説明する。
図7は、本実施の形態に係るHSMシステムの構成の一例を示すブロック図である。この図において、図1と同一符号は図1に示された対象と同一又は相当物を示しており、ここでの説明を省略する。このHSMシステムは、一次ストレージ1、二次ストレージ2、FS(File System)制御サーバ111、ストレージ管理サーバ112(HSM制御装置)、HSMデータベース113を備える。
FS制御サーバ111は、AC(Access Client)121、MDS(Meta Data Server)122、仮想ボリューム管理部123を備える。MDS122は、メタ更新通知部131、定期容量通知部132、リリース部133を備える。ストレージ管理サーバ112は、メタ複製部141(メタデータ複製管理部)、ディレクトリポリシ設定部142、ファイルポリシ変更部143、しきい値制御部144、リリース対象決定部145(ファイル決定部)、データ移動部146を備える。HSMデータベース113は、メタデータ複製151(メタデータ複製情報)、ディレクトリポリシ152(ディレクトリリリースポリシ)、ファイルポリシカタログ153(リリース情報)を備える。
なお、リリース情報管理部は、実施の形態におけるディレクトリポリシ設定部142とファイルポリシ変更部143に対応する。また、メタデータ複製情報管理ステップは、実施の形態におけるメタ複製部141の処理に対応する。また、リリース情報管理ステップは、実施の形態におけるディレクトリポリシ設定部142とファイルポリシ変更部143の処理に対応する。また、ファイル決定ステップは、実施の形態におけるリリース対象決定部145の処理に対応する。
なお、前提技術1におけるファイルシステム制御部12は、本実施の形態におけるFS制御サーバ111に対応する。また、前提技術1における名前空間複製部13、名前空間追随部14、マイグレート決定部16は、本実施の形態におけるストレージ管理サーバ112に対応する。また、前提技術1における名前空間複製DB15は、本実施の形態におけるメタデータ複製151に対応する。また、前提技術1におけるイベントデータ記録部21は、本実施の形態におけるメタ更新通知部131に対応する。また、前提技術1における名前空間複製部13、名前空間追随部14は、本実施の形態におけるメタ複製部141に対応する。
仮想ボリューム管理部123は、一次ストレージ1における複数のディスクの連結、ストライピング構成、ミラー構成などを管理する。AC121、MDS122は、仮想ボリューム管理部123を介して、それぞれ一次ストレージ1におけるファイルデータ領域、メタデータ領域にアクセスを行う。
次に、メタデータ複製151について説明する。
ストレージ管理サーバ112は、ファイルシステムのメタデータ(ファイルの属性、ファイル名の階層関係)の複製をメタデータ複製151として、ストレージ管理サーバ112が管理するHSMデータベース113上に構築する。これは、ファイルの階層制御を行う際にファイルシステムのメタデータを参照せず、ストレージ管理サーバ112がメタデータ複製151を参照することにより、CPU・I/O負荷をFS制御サーバ111からストレージ管理サーバ112へオフロードすることが目的である。
メタデータ複製151の構造は、ファイルシステムと同じである必要はないが、ファイルシステムのメタデータの要件を満たす必要がある。具体的には、ファイルの名前空間が階層的な名前グラフによって表現される一般的なファイルシステムにおいて、以下の要件を満たした構造であれば良い。
・ファイル毎にユニークな名前が整数値として管理される。これは、例えばinode番号である。
・inode番号毎に名前以外のメタデータが保持される。これは、例えばinodeである。
・ファイルシステムの基点となるディレクトリは、無名である。基点のディレクトリのinode番号は、例えば2とされ、基点を一意に特定可能としている。
・基点となるディレクトリ以外のファイルに付けられる名前は、そのファイルの親ディレクトリと対応付けられ、名前空間データとして管理される。
・名前空間データは、それが対応付けられたディレクトリは以下の名前の集合と対応するファイルのinode番号の集合からなる。
・inode番号毎に名前以外のメタデータが保持される。これは、例えばinodeである。
・ファイルシステムの基点となるディレクトリは、無名である。基点のディレクトリのinode番号は、例えば2とされ、基点を一意に特定可能としている。
・基点となるディレクトリ以外のファイルに付けられる名前は、そのファイルの親ディレクトリと対応付けられ、名前空間データとして管理される。
・名前空間データは、それが対応付けられたディレクトリは以下の名前の集合と対応するファイルのinode番号の集合からなる。
・ファイルシステムのメタデータは、inode番号からinode格納位置を高速に決定できる構造でなければならない。一般的に、inode番号は、一次元もしくは二次元アフィン変換によりinode格納位置に変換可能である。本実施の形態においては、inode番号からinode格納位置を割り出すためにB−Tree構造のインデックスを用いる。
・ファイルシステムのメタデータは、ディレクトリのinode番号もしくはinodeから、そのディレクトリと対応付けられた名前空間データの格納位置を高速に決定できる構造でなければならない。一般的に、inode内に名前空間データの格納位置を持つことが多い。本実施の形態においては、ディレクトリのinode番号から名前空間データの格納位置を割り出すためにB−Tree構造のインデックスを用いる。
・ファイルシステムのメタデータは、名前空間データの中から特定の名前と対応付けられたinode番号を高速に決定できる構造であることが望ましい。一般的に、名前をキーとしたハッシュテーブルやB−Tree構造のインデックスが構築される。本実施の形態においては、ファイル名からinode番号を特定するためにB−Tree構造のインデックスを用いる。
・ファイルシステムのメタデータは、ディレクトリのinode番号もしくはinodeから、そのディレクトリと対応付けられた名前空間データの格納位置を高速に決定できる構造でなければならない。一般的に、inode内に名前空間データの格納位置を持つことが多い。本実施の形態においては、ディレクトリのinode番号から名前空間データの格納位置を割り出すためにB−Tree構造のインデックスを用いる。
・ファイルシステムのメタデータは、名前空間データの中から特定の名前と対応付けられたinode番号を高速に決定できる構造であることが望ましい。一般的に、名前をキーとしたハッシュテーブルやB−Tree構造のインデックスが構築される。本実施の形態においては、ファイル名からinode番号を特定するためにB−Tree構造のインデックスを用いる。
本実施の形態におけるファイルシステムは、上述した要件を満たす構造により、名前空間中の任意のファイルに対して、多くの場合、名前の階層数に比例したコストでファイルのメタデータにアクセス可能となる。
メタデータ複製151の構築は、メタ更新通知部131とメタ複製部141により実現される。
メタ更新通知部131は、FS制御サーバ111においてファイルシステムの一部として動作し、メタデータが変更される事象(例えば、ファイル作成、ファイル更新)を、ストレージ管理サーバ112に伝える。事象の通知は、ファイルシステムのメタデータ更新とは非同期に行われることにより、ファイルシステムの操作時間がメタデータ複製151の更新処理時間の影響を受けず、HSMを行わない場合のファイルシステムと同等の性能を実現する。事象通知の電文(イベント)には、以下の情報が含まれる。
・更新対象となるinodeの情報全て
・追加。削除を含めて、ファイル名の変更を伴う事象の場合、上記に加え、ファイル名および親ディレクトリのinodeの情報全て
・追加。削除を含めて、ファイル名の変更を伴う事象の場合、上記に加え、ファイル名および親ディレクトリのinodeの情報全て
メタ複製部141は、ストレージ管理サーバ112で動作し、メタ更新通知部131からのイベントを元にメタデータ複製151を更新する。
次に、ディレクトリポリシ152について説明する。
ディレクトリポリシ152は、HSMのためにユーザが決定する運用ルールのうち、ディレクトリ毎に指定するリリースポリシであり、メタデータ複製151内のディレクトリのinodeと対応付けて管理される。リリースポリシは、一次ストレージ1の使用量がHWMを超え、空き領域を生成する場合に、リリースの対象とするファイルの優先順位を決定するためのルールである。リリースポリシは、以下の情報から構成される。
・inode番号:
ディレクトリのinode番号
・パタン:
リリーススコア重み値は、ディレクトリ単位で指定するだけではなく、ディレクトリ内のファイルをグループ分けすることにより、グループ単位で指定することができる。パタンは、どのグループに属するかを決定するための情報であり、ファイル名が所定の条件を満たすこと、または、ファイルのオーナ・グループが所定の条件を満たすことを指定することができる。
・リリース対象フラグ:
リリース対象とするか(対象)否か(非対称)を示す。
・ファイルサイズ重み値、最終アクセス時刻重み値:
リリース優先順位を表す値をリリーススコアと呼ぶ。あるファイルのリリーススコアは、ファイルサイズ、ファイルの最終アクセス時刻からの経過時間等から決定されることが一般的である。リリーススコアを算出する際におけるファイルサイズの重みをファイルサイズ重み値、最終アクセス時刻の重みを最終アクセス時刻重み値と呼び、後述するリリーススコア算出式で用いられる。ファイルサイズ重み値、最終アクセス時刻重み値は、ユーザにより指定可能である。
・データホールドサイズ:
fileコマンドによるファイルの精査等による頻繁なリコールを抑止するために、リリース時にファイルの先頭領域の一部を一次ストレージ1上に残すことが一般的である。ユーザはデータホールドサイズをポリシとして指定することができる。
ディレクトリのinode番号
・パタン:
リリーススコア重み値は、ディレクトリ単位で指定するだけではなく、ディレクトリ内のファイルをグループ分けすることにより、グループ単位で指定することができる。パタンは、どのグループに属するかを決定するための情報であり、ファイル名が所定の条件を満たすこと、または、ファイルのオーナ・グループが所定の条件を満たすことを指定することができる。
・リリース対象フラグ:
リリース対象とするか(対象)否か(非対称)を示す。
・ファイルサイズ重み値、最終アクセス時刻重み値:
リリース優先順位を表す値をリリーススコアと呼ぶ。あるファイルのリリーススコアは、ファイルサイズ、ファイルの最終アクセス時刻からの経過時間等から決定されることが一般的である。リリーススコアを算出する際におけるファイルサイズの重みをファイルサイズ重み値、最終アクセス時刻の重みを最終アクセス時刻重み値と呼び、後述するリリーススコア算出式で用いられる。ファイルサイズ重み値、最終アクセス時刻重み値は、ユーザにより指定可能である。
・データホールドサイズ:
fileコマンドによるファイルの精査等による頻繁なリコールを抑止するために、リリース時にファイルの先頭領域の一部を一次ストレージ1上に残すことが一般的である。ユーザはデータホールドサイズをポリシとして指定することができる。
図8は、本実施の形態に係るディレクトリポリシの一例を示す表である。このディレクトリポリシ152は、ディレクトリ毎のエントリを持つ。上述したように各エントリは、ディレクトリのinode番号、パタン、リリース対象フラグ、ファイルサイズ重み値、最終アクセス時刻重み値を持つ。
次に、ファイルポリシカタログ153について説明する。
ファイルポリシカタログ153は、一次ストレージ1の空き容量がHWMを超えた場合のリリース対象となるファイルを特定する処理を高速に行うためのデータカタログである。図9は、本実施の形態に係るファイルポリシカタログの構造の一例を示す表である。ファイルポリシカタログ153は、ファイルシステム上の全てのファイル毎のエントリを持つ。各エントリは、ファイル識別子、リリース可能フラグ、リリースポリシ(ファイルリリースポリシ)、リリーススコアを持つ。更に、ファイルポリシカタログ153は、エントリを特定するためのファイル識別子インデックスとリリーススコアインデックスを持つ。
ファイル識別子は、ファイルをユニークに特定するキーであり、例えば、inode番号である。また、HSMシステムが複数のファイルシステムを管理の対象とする場合、ファイル識別子は、個々のファイルシステムを識別する。リリース可能フラグは、ファイルがリリース可能であるか(可)否か(不可)を示すフラグである。リリース可能とは、ファイルがアーカイブ済みであることを指す。リリースポリシは、リリース対象を制御するため、および、リリース方法を制御するためにユーザにより指定されるポリシである。このポリシは、以下のもので構成される。
・リリース対象フラグ
・ファイルサイズ重み値、最終アクセス時刻重み値
・ファイルサイズ重み値、最終アクセス時刻重み値
リリース対象決定部145は、リリース時、このリリーススコアでソートされた順序に従ってリリースを行う。リリーススコアは、ディレクトリポリシ設定部142またはファイルポリシ変更部143により、リリースポリシにおける重み値(ファイルサイズ重み値、最終アクセス時刻重み値)と、ファイルの属性(ファイルサイズ、最終アクセス時刻)を元に計算される。リリーススコアは、次のリリーススコア算出式により算出される。
リリーススコア=ファイルサイズ×ファイルサイズ重み値
+最終アクセス時刻からの経過時間×最終アクセス時刻重み値
+最終アクセス時刻からの経過時間×最終アクセス時刻重み値
ファイル識別子インデックスは、ファイルポリシカタログ153のエントリを更新する際、ファイル識別子から対象となるエントリを高速に特定するためのインデックスである。なお、ファイル識別子インデックスの代わりに、最大inode数(ファイルシステム作成時に決定される)だけエントリの領域を予め用意し、inode番号からエントリの位置を一意に特定できる構造を用いても良い。
リリーススコアインデックスは、リリース対象を特定する際、ソートせずエントリをリリーススコア順に抽出するためのインデックスである。従って、リリーススコアインデックスは、インデックスへのデータ格納とともにソートを行う、B−Treeのような形式である必要がある。このリリーススコアインデックスを用いることにより、ソートのコストは、リリーススコアの変更契機(ファイルサイズ変更、最終アクセス時刻変更)に分散されることになる。本実施の形態に係るHSMシステムにおいては、ファイルシステム操作と非同期にストレージ管理サーバ112へファイルシステムの更新イベントが到達し、かつ、イベントの反映処理をある程度遅延して行うことが許されることから、ファイルシステムのユーザは、上述したような分散されたコストが見えないという利点がある。
次に、ディレクトリポリシ設定部142について説明する。
前提技術1において、ディレクトリポリシは、ファイルシステムのメタデータの複製上に、ディレクトリと一対一の情報として保持される。本実施の形態においては、ファイルポリシカタログ153内にもディレクトリポリシ152の情報の一部を格納する必要があるため、ディレクトリポリシ設定部142は、ファイルポリシカタログ153を更新する。ディレクトリポリシ設定部142は、ユーザにより起動され、ストレージ管理サーバ112で動作する。
図10は、本実施の形態に係るディレクトリポリシ設定部の動作の一例を示すフローチャートである。まず、ディレクトリポリシ設定部142は、指定されたディレクトリ直下のファイルのうち、対象ファイルとして最初のファイルを選択し、メタデータ複製151から対象ファイルのメタデータを取得する(S511)。次に、ディレクトリポリシ設定部142は、対象ファイルがディレクトリであるか否かの判断を行う(S512)。
ディレクトリである場合(S512,Y)、ディレクトリポリシ設定部142は、対象ファイルを指定してディレクトリポリシ設定部142を再帰的に呼び出し(S513)、処理S531へ移行する。一方、ディレクトリでない場合(S512,N)、ディレクトリポリシ設定部142は、対象ファイルが通常ファイルであると判断し、対象ファイルのメタデータ(サイズ、時刻)と、ディレクトリポリシ152の重み値から新しいリリーススコアを算出する(S522)。次に、ディレクトリポリシ設定部142は、ファイル識別子インデックスを利用してファイルのinode番号からファイルポリシカタログ上のエントリを特定し(S523)、特定したエントリのリリースポリシとリリーススコアを更新する(S524)。
次に、ディレクトリポリシ設定部142は、対象ファイルの次のファイルを選択して新たな対象ファイルとし、対象ファイルのメタデータをメタデータ複製151から取得し(S531)、メタデータを取得できたか否かの判断を行う(S532)。メタデータが取得できた場合(S532,Y)、処理S512へ戻る。一方、次の対象ファイルがなく、メタデータを取得できなかった場合(S532,N)、このフローを終了する。
次に、ファイルポリシ変更部143について説明する。
ファイルポリシ変更部143は、FS制御サーバ111からストレージ管理サーバ112に伝えられるファイルシステムの更新イベントから、メタデータ複製151を更新する契機において、変更対象となるファイルと対応するファイルポリシカタログ153上のエントリのリリースポリシとリリーススコアを更新する。ファイルポリシ変更部143は、FS制御サーバ111からの更新イベントの内容(ファイル作成、ファイル削除、アーカイブ、アーカイブ無効化、リリース、ファイルサイズ変更、最終アクセス時刻変更)に応じた処理を行う。更新イベントの内容は、複数の内容を含む場合もある。
まず、更新イベントがファイル作成である場合について説明する。図11は、本実施の形態に係るファイルポリシ変更部のファイル作成時の動作の一例を示すフローチャートである。ここで、ファイル作成が行われたファイルを対象ファイルとする。まず、ファイルポリシ変更部143は、メタデータ複製151から対象ファイルの親ディレクトリのポリシを取得する(S611)。次に、ファイルポリシ変更部143は、対象ファイルのメタデータと親ディレクトリのポリシから、対象ファイルのリリーススコアを算出する(S612)。次に、ファイルポリシ変更部143は、対象ファイルのエントリをファイルポリシカタログ153に追加し(S613)、このフローを終了する。
次に、更新イベントがファイル削除である場合について説明する。図12は、本実施の形態に係るファイルポリシ変更部のファイル削除時の動作の一例を示すフローチャートである。ここで、ファイル削除が行われたファイルを対象ファイルとする。まず、ファイルポリシ変更部143は、ファイル識別子インデックスを利用して、対象ファイルのinode番号からファイルポリシカタログ153における対象ファイルのエントリを特定する(S621)。次に、ファイルポリシ変更部143は、特定されたエントリを削除し(S622)、このフローを終了する。
次に、更新イベントがアーカイブである場合について説明する。図13は、本実施の形態に係るファイルポリシ変更部のアーカイブ時の動作の一例を示すフローチャートである。ここで、アーカイブが行われたファイルを対象ファイルとする。まず、ファイルポリシ変更部143は、ファイル識別子インデックスを利用して、対象ファイルのinode番号からファイルポリシカタログ153における対象ファイルのエントリを特定する(S631)。次に、ファイルポリシ変更部143は、特定されたエントリのリリース可能フラグを「可」に変更し(S632)、このフローを終了する。
次に、更新イベントがアーカイブ無効化またはリリースである場合について説明する。図14は、本実施の形態に係るファイルポリシ変更部のアーカイブ無効化時またはリリース時の動作の一例を示すフローチャートである。ここで、アーカイブ無効化またはリリースが行われたファイルを対象ファイルとする。まず、ファイルポリシ変更部143は、ファイル識別子インデックスを利用して、対象ファイルのinode番号からファイルポリシカタログ153における対象ファイルのエントリを特定する(S641)。次に、ファイルポリシ変更部143は、特定されたエントリのリリース可能フラグを「不可」に変更し(S642)、このフローを終了する。
次に、更新イベントがファイルサイズ変更または最終アクセス時刻変更である場合について説明する。図15は、本実施の形態に係るファイルポリシ変更部のファイルサイズ変更時または最終アクセス時刻変更時の動作の一例を示すフローチャートである。ここで、ファイルサイズ変更または最終アクセス時刻変更が行われたファイルを対象ファイルとする。まず、ファイルポリシ変更部143は、ファイル識別子インデックスを利用して、対象ファイルのinode番号からファイルポリシカタログ153における対象ファイルのエントリを特定する(S651)。次に、ファイルポリシ変更部143は、特定されたエントリを取得する(S652)。次に、ファイルポリシ変更部143は、取得したエントリ中のリリースポリシと変更されたファイルサイズまたは最終アクセス時刻より、リリーススコアを算出する(S653)。次に、ファイルポリシ変更部143は、特定されたエントリのリリーススコアを算出した値に更新し(S654)、このフローを終了する。
次に、しきい値制御部144とリリース対象決定部145による空き領域生成処理について説明する。
FS制御サーバ111のファイルシステムの一部として動作する定期容量通知部132は、一定時間間隔で、一次ストレージ1の全体量と使用量をしきい値制御部144に通知する。しきい値制御部144は、通知されたファイルシステムの使用量がユーザにより予め指定されたしきい値HWMを超えた場合、ファイルシステムの空き容量を増やすために、リリース対象決定部145を起動する。また、しきい値制御部144は、リリース対象決定部145の起動中、通知されたファイルシステムの使用量がユーザにより予め指定されたしきい値LWMを下回ったか否かの判断を行い、リリース対象決定部145に通知する。
リリース対象決定部145は、空き領域を増やすためのリリース対象のファイルの特定を行うとともに、リリースの順序を決定する。図16は、本実施の形態に係るリリース対象決定部の動作の一例を示すフローチャートである。
まず、リリース対象決定部145は、しきい値制御部144からの通知により一次ストレージ1の使用量がLWMを下回ったか否かの判断を行う(S711)。LWMを下回った場合(S711,Y)、このフローを終了する。一方、LWMを下回らない場合(S711,N)、リリース対象決定部145は、リリーススコアインデックスを利用してリリーススコアの大きいものから順にファイルポリシカタログ153のエントリを特定する(S712)。次に、リリース対象決定部145は、リリーススコアインデックスの終端に達したか否かの判断を行う(S713)。
終端に達した場合(S713,Y)、このフローを終了する。終端に達していない場合(S713,N)、リリース対象決定部145は、特定したエントリを取得する(S714)。次に、リリース対象決定部145は、取得したエントリのリリース可能フラグが「可」であるか否かの判断を行う(S721)。「不可」である場合(S721,N)、処理S711へ移行する。一方、「可」である場合(S721,Y)、リリース対象決定部145は、リリース対象フラグが「対象」であるか否かの判断を行う(S722)。「非対象」である場合(S722,N)、処理S711へ移行する。一方、「対象」である場合(S722,Y)、特定したエントリに対応するファイルのリリースをリリース部133に指示し(S723)、処理S711へ移行する。
従来の空き領域生成処理は、ファイルシステムに存在する全ファイルについてinodeを参照し、リリースポリシとファイルの属性からリリーススコアを算出するとともに、その結果を蓄積し、蓄積した情報をリリーススコア順にソートし、ソートした順に、LWMを下回るまで、リリースの指示を出し続ける。一方、本実施の形態によれば、空き領域生成処理時においてリリーススコアの算出とソートの処理時間が不要となる。
本実施の形態によれば、HSMの運用に際し、HMWを決定するための要因として空き領域生成処理のタイムラグを考慮して余裕を持たせる必要がなくなり、運用設計が簡単になるとともに、一次ストレージの領域を有効に利用することができる。
また、本実施の形態に係るHSM制御装置は、サーバに容易に適用することができ、サーバの性能をより高めることができる。
更に、HSM制御装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、HSM制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、HSM制御装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
(付記1) HSMの制御をコンピュータに実行させるHSM制御プログラムであって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
をコンピュータに実行させるHSM制御プログラム。
(付記2) 付記1に記載のHSM制御プログラムにおいて、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御プログラム。
(付記3) 付記2に記載のHSM制御プログラムにおいて、
前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御プログラム。
(付記4) 付記3に記載のHSM制御プログラムにおいて、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理ステップは、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御プログラム。
(付記5) 付記1乃至付記4のいずれかに記載のHSM制御プログラムにおいて、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御プログラム。
(付記6) 付記1乃至付記5のいずれかに記載のHSM制御プログラムにおいて、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御プログラム。
(付記7) 付記1乃至付記6のいずれかに記載のHSM制御プログラムにおいて、
前記ファイル決定ステップは、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするHSM制御プログラム。
(付記8) HSMの制御を行うHSM制御装置であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理部と、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理部により管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理部と、
リリースが指示された場合、前記ファイル情報管理部により管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定部と
を備えるHSM制御装置。
(付記9) 付記8に記載のHSM制御装置において、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御装置。
(付記10) 付記9に記載のHSM制御装置において、
前記リリース情報管理部は、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御装置。
(付記11) 付記10に記載のHSM制御装置において、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理部は、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御装置。
(付記12) 付記8乃至付記11のいずれかに記載のHSM制御装置において、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御装置。
(付記13) 付記8乃至付記12のいずれかに記載のHSM制御装置において、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御装置。
(付記14) 付記8乃至付記13のいずれかに記載のHSM制御装置において、
前記ファイル決定部は、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするHSM制御装置。
(付記15) HSMの制御を行うHSM制御方法であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
を実行するHSM制御方法。
(付記16) 付記15に記載のHSM制御方法において、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御方法。
(付記17) 付記16に記載のHSM制御方法において、
前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御方法。
(付記18) 付記17に記載のHSM制御方法において、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理ステップは、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御方法。
(付記19) 付記15乃至付記18のいずれかに記載のHSM制御方法において、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御方法。
(付記20) 付記15乃至付記19のいずれかに記載のHSM制御方法において、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御方法。
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
をコンピュータに実行させるHSM制御プログラム。
(付記2) 付記1に記載のHSM制御プログラムにおいて、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御プログラム。
(付記3) 付記2に記載のHSM制御プログラムにおいて、
前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御プログラム。
(付記4) 付記3に記載のHSM制御プログラムにおいて、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理ステップは、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御プログラム。
(付記5) 付記1乃至付記4のいずれかに記載のHSM制御プログラムにおいて、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御プログラム。
(付記6) 付記1乃至付記5のいずれかに記載のHSM制御プログラムにおいて、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御プログラム。
(付記7) 付記1乃至付記6のいずれかに記載のHSM制御プログラムにおいて、
前記ファイル決定ステップは、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするHSM制御プログラム。
(付記8) HSMの制御を行うHSM制御装置であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理部と、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理部により管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理部と、
リリースが指示された場合、前記ファイル情報管理部により管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定部と
を備えるHSM制御装置。
(付記9) 付記8に記載のHSM制御装置において、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御装置。
(付記10) 付記9に記載のHSM制御装置において、
前記リリース情報管理部は、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御装置。
(付記11) 付記10に記載のHSM制御装置において、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理部は、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御装置。
(付記12) 付記8乃至付記11のいずれかに記載のHSM制御装置において、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御装置。
(付記13) 付記8乃至付記12のいずれかに記載のHSM制御装置において、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御装置。
(付記14) 付記8乃至付記13のいずれかに記載のHSM制御装置において、
前記ファイル決定部は、前記リリーススコアが大きいファイルから順に、リリース対象とすることを特徴とするHSM制御装置。
(付記15) HSMの制御を行うHSM制御方法であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
を実行するHSM制御方法。
(付記16) 付記15に記載のHSM制御方法において、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御方法。
(付記17) 付記16に記載のHSM制御方法において、
前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御方法。
(付記18) 付記17に記載のHSM制御方法において、
前記リリース情報は、更にファイル識別子を含み、
前記リリース情報管理ステップは、ファイル識別子に対応するリリース情報を検索するためのファイル識別子インデックスを管理し、前記メタデータ複製情報が更新された場合、または、前記ディレクトリリリースポリシが設定された場合、ファイル識別子とファイル識別子インデックスに基づいて対応するリリース情報を特定することを特徴とするHSM制御方法。
(付記19) 付記15乃至付記18のいずれかに記載のHSM制御方法において、
前記リリーススコアインデックスは、B−Tree構造を有することを特徴とするHSM制御方法。
(付記20) 付記15乃至付記19のいずれかに記載のHSM制御方法において、
前記ファイル識別子インデックスは、B−Tree構造を有することを特徴とするHSM制御方法。
1 一次ストレージ、2 二次ストレージ、3 サーバ、11 アプリケーション部、12 ファイルシステム制御部、13 名前空間複製部、14 名前空間追随部、15 名前空間複製DB、16 マイグレート決定部、21 イベントデータ記録部、111 FS制御サーバ、112 ストレージ管理サーバ、113 HSMデータベース、121 AC、122 MDS、123 仮想ボリューム管理部、131 メタ更新通知部、132 定期容量通知部、133 リリース部、141 メタ複製部、142 ディレクトリポリシ設定部、143 ファイルポリシ変更部、144 しきい値制御部、145 リリース対象決定部、146 データ移動部、151 メタデータ複製、152 ディレクトリポリシ、153 ファイルポリシカタログ。
Claims (5)
- HSMの制御をコンピュータに実行させるHSM制御プログラムであって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
をコンピュータに実行させるHSM制御プログラム。 - 請求項1に記載のHSM制御プログラムにおいて、
前記リリース情報は、ファイル毎のリリースポリシであるファイルリリースポリシを含むことを特徴とするHSM制御プログラム。 - 請求項2に記載のHSM制御プログラムにおいて、
前記リリース情報管理ステップは、ディレクトリのリリースポリシであるディレクトリリリースポリシが設定された場合、該ディレクトリリリースポリシに基づいて該ディレクトリの配下のファイルのファイルリリースポリシを更新すると共に、該ファイルリリースポリシと前記メタデータ複製情報に基づいてリリーススコアを算出し、前記リリーススコアインデックスを更新することを特徴とするHSM制御プログラム。 - HSMの制御を行うHSM制御装置であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理部と、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理部により管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理部と、
リリースが指示された場合、前記ファイル情報管理部により管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定部と
を備えるHSM制御装置。 - HSMの制御を行うHSM制御方法であって、
ファイルシステムにおけるファイル毎のメタデータが複製された情報をメタデータ複製情報として管理するメタデータ複製情報管理ステップと、
ファイル毎のリリースに関する情報をリリース情報として管理し、前記メタデータ複製情報管理ステップにより管理されたメタデータ複製情報が更新された場合、前記メタデータ複製情報と前記リリース情報とに基づいてファイル毎のリリースの優先度を示すリリーススコアを算出し、該リリーススコアに対応するリリース情報を検索するためのインデックスであるリリーススコアインデックスを管理するリリース情報管理ステップと、
リリースが指示された場合、前記ファイル情報管理ステップにより管理されたリリーススコアインデックスに基づいてリリース対象のファイルを決定するファイル決定ステップと
を実行するHSM制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006134694A JP2007305013A (ja) | 2006-05-15 | 2006-05-15 | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006134694A JP2007305013A (ja) | 2006-05-15 | 2006-05-15 | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007305013A true JP2007305013A (ja) | 2007-11-22 |
Family
ID=38838868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006134694A Pending JP2007305013A (ja) | 2006-05-15 | 2006-05-15 | Hsm制御プログラム、hsm制御装置、hsm制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007305013A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010097359A (ja) * | 2008-10-15 | 2010-04-30 | Hitachi Ltd | ファイル管理方法および階層管理ファイルシステム |
JP2013507668A (ja) * | 2010-03-19 | 2013-03-04 | 株式会社日立製作所 | ファイル共有システムおよびファイル処理方法、並びにプログラム |
US20240028466A1 (en) * | 2022-07-20 | 2024-01-25 | Dell Products L.P. | Storing Namespace Metadata in a Key Value Store to Facilitate Space Efficient Point In Time Snapshots |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000200205A (ja) * | 1999-01-06 | 2000-07-18 | Sony Corp | ファイルの選択方法及び装置 |
JP2004110290A (ja) * | 2002-09-17 | 2004-04-08 | Sony Corp | データストレージシステム |
JP2004192657A (ja) * | 2004-02-09 | 2004-07-08 | Nec Corp | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 |
JP2004265110A (ja) * | 2003-02-28 | 2004-09-24 | Hitachi Ltd | メタデータ配置方法、プログラムおよびディスク装置 |
JP2005115948A (ja) * | 2003-10-07 | 2005-04-28 | Internatl Business Mach Corp <Ibm> | ファイルをアーカイブするための方法、システム、およびプログラム |
JP2005115857A (ja) * | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
-
2006
- 2006-05-15 JP JP2006134694A patent/JP2007305013A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000200205A (ja) * | 1999-01-06 | 2000-07-18 | Sony Corp | ファイルの選択方法及び装置 |
JP2004110290A (ja) * | 2002-09-17 | 2004-04-08 | Sony Corp | データストレージシステム |
JP2004265110A (ja) * | 2003-02-28 | 2004-09-24 | Hitachi Ltd | メタデータ配置方法、プログラムおよびディスク装置 |
JP2005115948A (ja) * | 2003-10-07 | 2005-04-28 | Internatl Business Mach Corp <Ibm> | ファイルをアーカイブするための方法、システム、およびプログラム |
JP2005115857A (ja) * | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
JP2004192657A (ja) * | 2004-02-09 | 2004-07-08 | Nec Corp | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010097359A (ja) * | 2008-10-15 | 2010-04-30 | Hitachi Ltd | ファイル管理方法および階層管理ファイルシステム |
JP2013507668A (ja) * | 2010-03-19 | 2013-03-04 | 株式会社日立製作所 | ファイル共有システムおよびファイル処理方法、並びにプログラム |
US20240028466A1 (en) * | 2022-07-20 | 2024-01-25 | Dell Products L.P. | Storing Namespace Metadata in a Key Value Store to Facilitate Space Efficient Point In Time Snapshots |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4699516B2 (ja) | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 | |
JP5500309B2 (ja) | ストレージ装置 | |
US8484172B2 (en) | Efficient search for migration and purge candidates | |
JPWO2007032046A1 (ja) | Hsm制御プログラム、hsm制御装置、hsm制御方法 | |
US11288128B2 (en) | Indexing a relationship structure of a filesystem | |
JP2005018757A (ja) | 超大規模ファイル・システムでのファイル・システム使用のすばやい復元 | |
US8640136B2 (en) | Sharing objects between computer systems | |
JP2008040699A (ja) | Hsm制御プログラム、hsm制御装置、hsm制御方法 | |
Graefe et al. | Instant recovery with write-ahead logging | |
US7844596B2 (en) | System and method for aiding file searching and file serving by indexing historical filenames and locations | |
JP2007305013A (ja) | Hsm制御プログラム、hsm制御装置、hsm制御方法 | |
JP5103786B2 (ja) | 制御プログラム、制御装置、制御方法 | |
Hitz et al. | File system design for a | |
AU2002360252A1 (en) | Efficient search for migration and purge candidates | |
AU2002330129A1 (en) | Sharing objects between computer systems | |
AU2002349890A1 (en) | Efficient management of large files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110719 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111115 |