(57)【特許請求の範囲】
【請求項１】
ユーザ装置とプールボリューム及び仮想ボリュームを有するストレージ装置とに接続し、前記仮想ボリュームに対応付けたファイルシステムを管理することにより、前記ユーザ装置からのライトアクセスに基づいて、前記ストレージ装置の記憶領域にデータを書き込むことを制御するストレージサブシステムにおいて、
制御回路と、
管理プログラムを記録するメモリと、
を備え、
前記制御回路は、前記管理プログラムに基づいて、
使用可能な記憶容量の上限値を示す総記憶容量をファイルシステムごとに設定し、
前記総記憶容量に相当する記憶領域を有する前記仮想ボリュームを前記ファイルシステムに対応付け、
前記ファイルシステム内に複数のディレクトリを作成し、
前記複数のディレクトリの各ディレクトリに前記ストレージサブシステムの管理者によって自由に変更可能なQuotaを設定し、
同じファイルシステム内に作成された複数のディレクトリについて各ディレクトリのQuotaを取得し、該ファイルシステムにおける全ディレクトリのQuotaの合計値を算出し、
前記ファイルシステムに設定された総記憶容量と、前記算出された該ファイルシステムにおける全ディレクトリのQuotaの合計値とを比較し、
前記比較結果が所定の条件を満たす場合に、該ファイルシステムに対応付けられている仮想ボリュームにプールボリュームから記憶領域を順次追加することにより、該ファイルシステムの総記憶容量を拡張する、
ストレージサブシステム。
【請求項２】
前記制御回路は、前記各ディレクトリに設定されたQuotaを取得することを定期的に実行する、請求項１記載のストレージサブシステム。
【請求項３】
前記制御回路は、前記各ディレクトリに設定されたQuotaを取得することを、少なくとも１つの前記ディレクトリに対して前記Quotaが拡張されたことを契機に実行する、請求項１記載のストレージサブシステム。
【請求項４】
前記制御回路は、前記ファイルシステムの総記憶容量と前記Quotaの合計値との比較結果において、前記Quotaの合計値が前記ファイルシステムの総記憶容量を超えた場合に、該ファイルシステムの総記憶容量を拡張する、請求項３記載のストレージサブシステム。
【請求項５】
ユーザ装置とプールボリューム及び仮想ボリュームを有するストレージ装置とに接続し、前記仮想ボリュームに対応付けたファイルシステムを管理することにより、前記ユーザ装置からのライトアクセスに基づいて、ストレージサブシステムが前記ストレージ装置の記憶領域にデータを書き込むことを制御する記憶制御方法において、
前記ストレージサブシステムが、使用可能な記憶容量の上限値を示す総記憶容量をファイルシステムごとに設定する総記憶容量設定ステップと、
前記ストレージサブシステムが、前記総記憶容量に相当する記憶領域を有する前記仮想ボリュームを前記ファイルシステムに対応付ける仮想ボリューム対応付ステップと、
前記ストレージサブシステムが、前記ファイルシステム内に複数のディレクトリを作成するディレクトリ作成ステップと、
前記ストレージサブシステムが、前記複数のディレクトリの各ディレクトリに前記ストレージサブシステムの管理者によって自由に変更可能なQuotaを設定するQuota設定ステップと、
前記ストレージサブシステムが、同じファイルシステム内に作成された複数のディレクトリについて各ディレクトリのQuotaを取得し、該ファイルシステムにおける全ディレクトリのQuotaの合計値を算出するQuota合計値算出ステップと、
前記ストレージサブシステムが、前記ファイルシステムに設定された総記憶容量と、前記Quota合計値算出ステップで算出される該ファイルシステムにおける全ディレクトリのQuotaの合計値とを比較する比較ステップと、
前記比較ステップによる比較結果が所定の条件を満たす場合に、前記ストレージサブシステムが、該ファイルシステムに対応付けられている仮想ボリュームにプールボリュームから記憶領域を順次追加することにより、該ファイルシステムの総記憶容量を拡張する総記憶容量拡張ステップと、を備える記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージサブシステムとストレージ装置とを備えるストレージシステムに係り、特に、Quota管理機能を備えたシステムに関するものである。
【背景技術】
【０００２】
ストレージシステムのQuota管理機能とは、特定のユーザがディスク容量を過剰に占有することでシステムを圧迫しないように、ディスク容量の使用量を制限する機能をいう。
【０００３】
Quota管理機能を備えるストレージ装置に関する従来技術として、特開２００５−５６０１１号は、ユーザとネットワークで接続されたファイルシステムを備え、ユーザのファイルシステムの使用量を管理する方法であって、ユーザのファイルシステムへの指定された書き込みサイズを累計値として管理するステップと、累計値及び予め定めた閾値から、ディスクの使用量の制限判定を行うべきタイミングを特定するステップと、特定されたタイミングにおいてディスク使用量の制限判定を行うファイルシステムの管理方法を開示している。
【０００４】
また、特開平８−２６３３４０号は、設定された自動拡張サイズ分のエリア拡張処理を自動的に行なう自動拡張機能を有するファイル管理システムにおいて、自動拡張サイズをファイル毎に適正値に調整する拡張サイズ調整手段を備えたシステムを開示している。
【特許文献１】特開２００５−５６０１１号公報
【特許文献２】特開平８−２６３３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
NAS装置ではファイルシステムごと、又は、ディレクトリ毎にQuotaを管理できる。ユーザの業務を円滑に進めるために、NAS装置の管理者は、ユーザのストレージ装置に対する使用状況に応じて、ディレクトリに割り当てられているQuotaを増加させる必要がある。
【０００６】
その際、複数のディレクトリのQuotaの合計がファイルシステムに設定されている制限値を超過するおそれのある場合、NAS装置の管理者は、事前にファイルシステムに割り当てられるディスク容量を拡張しておく必要がある。
【０００７】
ファイルシステムに割り当てられるべきディスク容量を拡張するためには、論理ユニットを新規に作成し、次いで、これをファイルシステムに割り当てるなどの必要がある。前者はディスク装置の管理者によって行われ、後者はNAS装置の管理者によって行われるため、両者を統合することは困難であった。
【０００８】
したがって、ディレクトリQuotaの拡張が出来なかったり、あるいは、ディレクトリQuotaを拡張出来ても、ファイルシステムから割り当てる記憶資源が不足するディレクトリが発生する等して、ユーザの業務の遂行に障害が発生するおそれがある。
【０００９】
そこで、この発明は、Quotaの拡張に合わせて、記憶容量に対する制限値を自律的に拡張できるストレージサブシステム及び記憶制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
前記目的を達成するために本発明に係るストレージサブシステムは、ユーザに対するQuotaの拡張を自律的に検出し、複数のQuotaの合計と制限値とを比較し、例えば、合計値が制限値を超えたなどの比較結果に応じて、予めストレージ装置に設定されている記憶領域を前記制限値に割り当てることを特徴とするものである。
【発明の効果】
【００１１】
本発明によれば、Quotaの拡張に合わせて、記憶容量に対する制限値を自律的に拡張できるストレージサブシステム及び記憶制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
次に、本発明の実施形態について説明する。図１は本発明に係るストレージサブシステムとしてのNAS装置１０とストレージ装置１２とを備えてなるストレージシステムのハードウエアブロック図を示したものである。ストレージ装置１２は複数のハードディスクを備え、ネットワーク１４を介してNAS装置に接続されている。
【００１３】
NAS装置は、CPUを備える制御回路１６と、NAS OSを実現するプログラムを記憶するメモリ１８と、複数の管理テーブルを備える内蔵ディスク領域２０と、ネットワーク１４に接続するネットワークインターフェース（ＮＷ IF）２２とを備えている。NAS装置が接続するネットワークはＩＰネットワークの他、NAS装置がNASヘッドとして構成されている場合にはSANであっても良い。
【００１４】
ストレージ装置１２の複数のディスクの記憶領域は論理ユニットとして仮想化されている。論理ユニットには、固定的な記憶領域が割り当てられ、容量の拡張ができない第１のタイプの論理ユニット２４と、容量が固定されるのではなく、プールボリュームとして記憶領域の単位を順次仮想ボリュームに割り当てることができる第２のタイプの論理ユニット２６とが存在する。ストレージ装置の記憶資源の好適な例はハードディスクであるが、光ディスク或いはフラッシュメモリなどの半導体メモリであっても良い。
【００１５】
図２は第２のタイプの論理ボリューム２６を備えたストレージ装置１２のブロック図である。ホスト計算機やサーバなどのユーザからのライトアクセスを受けて、NAS装置が１０がストレージ装置１２にデータを書き込む際、NAS装置１２がアクセスする論理ユニット２８にプール２６から記憶領域の小単位３０が順次割り当てられ、この小単位にデータが書き込まれる。NAS装置１０は、特開2003−15915号公報に記載のように、この第２のタイプの論理ボリューム２６を、ユーザに、十分な記憶容量を仮想的に持つボリュームとして見せている。
【００１６】
図３はNAS装置のOS機能を実現するNASマネージャを説明するためのブロックである。NASマネージャ３２はOS機能の主要部を実現するOSメインプログラム３２Ａと、NAS装置のファイルシステムの総記憶容量を制御するためのプログラム３２Ｂと、ディレクトリQuotaを更新する制御プログラム３２Ｃと、ディレクトリQuotaを管理する制御プログラム３２Ｄと、ディレクトリに割り当てられたブロック容量の使用量を管理するプログラム３２Ｅと、ディスクの論理ユニットを結合するプログラム３２Ｆと、を備えている。各プログラムの動作については後述する。ディレクトリQuotaとは、ディレクトリ毎に設定されたQuota（記憶容量）をいう。NASマネージャは制御回路１６がこれら管理プログラムを実行することによってユーザ又はシステム管理者に提供される。
【００１７】
図１のＮＡＳ装置内蔵ディスク領域２０は、図４に示すように、ファイルシステムを管理するデータベース３４と、ディレクトリQuotaを管理するデータベース３６とを備えている。NASマネージャ３２は、管理データベースから主要項目に属するデータを抽出して、抽出されたデータを管理テーブルとして纏めディスク領域に記録している。なお、図４のデータベースをディスク装置１２の記憶領域に形成しても良い。
【００１８】
図５はファイルシステム管理テーブルの一例であり、NAS装置のファイルシステム毎に総記憶容量と、ファイルシステムに属する論理ユニットが登録されている。さらに、図６は、一つのファイルシステムに属する複数のディレクトリの各ディレクトリ毎のディレクトリQuotaと、ディレクトリ割り当てられた記憶領域の使用量管理するためのディレクトリQuota情報管理テーブルである。
【００１９】
図１において、ストレージ装置１２には、既述の論理ユニットが予め複数設定され、ディレクトリQuotaが増加されることにしたがって、論理ユニットがファイルシステムに順次割り当てられていく。第１のタイプの論理ユニット２４の容量は特に制限がなく、ストレージ装置の管理者によって適宜設定される。
【００２０】
システム管理者はＧＵＩ又はコマンドを利用して、ファイルシステム毎の総記憶容量を設定し、さらにストレージ装置の論理ユニットを認識してファイルシステムに論理ユニットをマッピングする。
【００２１】
さらに、システム管理者は、ＧＵＩ又はコマンドを介して、ディレクトリ毎にディレクトリQuotaを設定できる。ディレクトリQuotaが設定されると、NAS装置のシステム管理者はディレクトリ毎にディスクのブロック容量やi-node数の上限を管理することができる。
【００２２】
NASマネージャ３２はディレクトリQuotaを図６に示すテーブルに登録する。さらに、NASマネージャは、ディレクトリ毎にディスク使用量を継続的に検出して管理テーブルに更新記憶する。
【００２３】
次に、NAS装置のシステム管理者がディレクトリQuotaを設定するための、GUIについて説明する。図７は、NASマネージャによってシステム管理者の管理装置に提供される入力画面の例である。
【００２４】
符号４０はシステム管理者がファイルシステムを選択する領域であり、４２はファイルシステムに属するディレクトリを選択する領域であり、４４はディレクトリQuotaを入力する領域、４６は入力したディレクトリQuotaを決定するための入力の対象となる領域である。システム管理者が既述の入力を行うと、ファイルシステム（ＦＳ１）毎にファイルシステムにマッピングされた総記憶容量と、符号４８で示すように、ディレクトリ（Ａ，Ｂ，Ｃ・・・）と、ディレクトリ毎のQuotaと、ディレクトリ毎のディスク容量の使用率と、が画面に表示される。
【００２５】
NASマネージャはファイルシステムに割り当てられた総容量を各ディレクトリに順次割り当てる。例えば、あるディレクトリのディレクトリQuotaが拡張され、このディレクトリに対応する記憶領域がユーザによって消費された場合、ファイルシステムの総記憶容量が拡張されないと、あるディレクトリではユーザによってデータが記録された記憶容量がQuotaに至っていない場合であっても、ディレクトリに対してデータを書き込めないおそれがある。そこで、NAS装置はこのような場合が生じるおそれに先駆けてファイルシステムの総記憶領域を拡張する。
【００２６】
次に、NASマネージャによるファイルシステムの総容量を拡張する動作を図８に示すフローチャートに基づいて説明する。NAS装置のファイルシステム総容量制御プログラム３２Ｂは、ディレクトリQuota管理プログラム３２Ｄに、ファイルシステム配下のディレクトリのディレクトリQuotaを要求する(Ｓ８００)。この要求は、ファイルシステム総容量制御プログラム３２ＢからディレクトリQuota管理プログラム３２Ｄに対して継続的に一定期間毎（例えば、１日単位、或いは１週単位）に発行される。
【００２７】
ディレクトリQuota管理プログラム３２ＤはディレクトリQuota情報管理データベースにアクセスして（管理テーブル（図６）にアクセスしても良い）、各ディレクトリについてディレクトリQuotaを取得する（Ｓ８０２）。
【００２８】
全てのディレクトリについて、ディレクトリQuotaを受け取った（Ｓ８０４）ファイルシステム総容量制御プログラム３２Ｂは、全てのディレクトリQuotaを合算する（Ｓ８０６）。
【００２９】
ファイルシステム総容量制御プログラム３２Ｂは、ファイルシステム管理データベース３４にアクセスし（管理テーブル(図５)にアクセスしても良い）、ファイルシステムに対して設定されている総記憶容量を取得する(Ｓ８０８)。
【００３０】
次いで、ファイルシステム総容量制御プログラム３２Ｂは、この合算値とファイルシステムの総容量とを比較し（Ｓ８１０）、合算値がファイルシステムに割り当てられた総記憶容量より小さい場合には処理を終了する。
【００３１】
一方、合算値がファイルシステムに割り当てられた総容量以上の場合には、ユーザからのI/Oに対する処理を停止し、この間にファイルシステムの総容量を増加する処理を行う。この処理の詳細は図１０に説明されている。
【００３２】
図１０に示すように、ファイルシステム総容量制御プログラム３２Ｂは、ＯＳメインプログラム３２Ａに、ユーザからのI/Oに対する処理を一次停止することを要求する(Ｓ１０００)。
【００３３】
この要求を受けたＯＳメイン制御プログラムは、NAS装置１０のファイルステムに対してフリーズコマンドを発行する（Ｓ１００２）。このフリーズコマンドを受けたファイルシステムは、ユーザからのファイルアクセスに応答しない。
【００３４】
この間、ファイルシステム総容量制御プログラム３２Ｂは、ファイルシステムの容量の拡張処理（Ｓ１００４）を行う。
【００３５】
この拡張処理は、事前にNAS装置用として設定されてある論理ユニット（Ｓ８２４）を、ファイルシステムに対して既に割り当てられている論理ユニットと統合する（Ｓ８１６）ことによって行われる。この統合は、NASマネージャのディスク領域統合プログラム３２Ｆによって行われる。このディスク領域統合プログラムは、従来のLVM（Logical Volume Manager）によって実現される。ファイルシステムはNAS装置のOSによってユーザ装置に提供される。
【００３６】
ディスク領域統合プログラム３２Ｆは、ストレージ装置においてNAS装置用として予め設定され、ファイルシステムに未割り当ての論理ユニットを認識し、ファイルシステム総容量制御プログラム３２Ｂからの要求を受けて（Ｓ８１４）、この論理ユニットをファイルシステムに割り当てられている論理ユニットに統合する（Ｓ８１６）。
【００３７】
次いで、ディスク領域統合プログラム３２Ｆは、論理ユニットが統合されてファイルシステムの総容量が拡張されたことをファイルシステム総容量制御プログラム３２Ｂに通知し（Ｓ８１８）、同プログラムは、この通知を受けて、ファイルシステムのフリーズコマンドの解除（Ｓ１００８）を指令して、ユーザからのI/Oの一時停止の処理解除する（Ｓ８２０）。ファイルシステム総容量制御プログラム３２Ｂは、ファイルシステム管理データベース３４のファイルシステム総容量を更新する。
【００３８】
図９は、ファイルシステムの総容量を拡張する他の実施形態に係わるフローチャートである。この実施形態が図８、１０と異なる点は、ファイルシステムに属する論理ユニットが固定的な容量に拘束されない仮想容量を備えるボリュームを利用してファイルシステムの総容量を拡張することである。このことは図３において説明されている。図９において図８と同じものは同一の符号を付し説明を省略する。
【００３９】
ファイルシステム総容量制御プログラム３２Ｂが全てのディレクトリQuotaの合計値を算出して、この合計値がファイルシステムの総容量以上となったときに、ファイルシステム総容量制御プログラム３２Ｂはファイルシステムに対して増設するべき容量を決定する(Ｓ９００)。
【００４０】
ファイルシステム総容量制御プログラム３２Ｂは、ストレージ装置のプールボリューム２６にアクセスして（Ｓ９０２）、増設されるべき容量に相当する記憶領域をプールボリューム２６から仮想ボリューム２８にマッピングする。
【００４１】
図９のフローチャートは、図８に説明したものと異なり、ファイルシステムの総容量を増加させる際に論理ユニットを統合する処理を必要としないために、ユーザ装置からNAS装置に対するI/Oを停止させることを要しない。
【００４２】
既述の実施形態はファイルシステムの総容量の増加の要否判定が、図８に示すように常時繰り返し行われるものであったが、次に、ファイルシステムの総容量の増加のための処理が、ディレクトリQuotaが増加された際に実行される実施形態について説明する。
【００４３】
図１１はシステム管理者にＧＵＩとして提供される管理画面の一例であって、符号６０はディレクトリQuotaの増設単位をシステム管理者が選択する領域であり、６２はディレクトリQuotaを増設するタイミングを選択する領域である。システム管理者が特定値を選択して設定ボタンに決定を入力すると、この入力結果は、Quota更新制御プログラム３２Ｃに通知され、同プログラムは入力結果に応じてディレクトリQuotaを自動的に増加する。
【００４４】
例えば、図１１のディレクトリＡに示すように、ディレクトリのQuotaに対するディスクの使用率が８０％に達した時点で、そのディレクトリに対して５０ＧＢがQuotaに付加される。ディスクの使用状況を管理するディレクトリQuota管理プログラム３２Ｄは定期的にディレクトリにマッピングされた記憶容量に対する使用率を取得し、これを図４に示すディレクトリQuota情報管理データベース３６に記録する。
【００４５】
図１２はこの実施形態においてファイルシステムの総容量を増加させるためのフローチャートである。Quota値更新制御プログラム３２Ｃは、定期的に、ディレクトリQuota情報管理データベース３６又は管理テーブル(図６)をチェックして、各ディレクトリについてディスク容量の使用率を取得し（Ｓ１２００）、使用率が図１１で説明した閾値を超えたタイミングでディレクトリQuotaを変更する(Ｓ１２０２)。
【００４６】
Quota値更新プログラム３２ＣはQuota値の変更があったことをファイルシステム総容量制御プログラム３２Ｂに通知する(１２０４)。この通知を受けたファイルシステム総容量制御プログラム３２Ｂは、以後図８のフローチャートと同様にファイルシステムの総容量を増加させる。
【００４７】
図１３はこの実施形態の変形例で、図９のフローチャートに対応するものである。即ち、ファイルシステムに割り当てられた論理ユニットにプールボリュームから記憶容量の単位が順次割り当てられる。
【００４８】
以上説明した実施形態によれば、NAS装置は、ディレクトリQuotaの値を継続的にチェックして、ディレクトリQuotaの合計値がファイルシステムの総記憶容量を超えたタイミングでファイルシステムの総記憶容量を拡張するので、データを書き込めないディレクトリの発生を排除することができる。
【００４９】
既述の形態では、ファイルシステムの総記憶容量を拡張することを、ストレージ装置の論理ボリュームをファイルシステムの論理ボリュームに統合ないしは結合することによって行うと説明したが、論理ボリュームを複数の小ボリュームに分割して、分割した論理ボリュームをファイルシステムに割り当てても良い 。
【００５０】
この形態によれば、大容量のボリュームをファイルシステムに一度に割り当てることと比較して、ストレージ装置の記憶資源を有効に使うことができる。
【００５１】
さらにまた、NASマネージャはプールボリュームの残り容量を常時チェックして、プールボリュームの記憶容量が不足した場合にはその旨の警報をストレージ装置の管理者に通知しても良い。この通知を受けた管理者はストレージ装置にハードディスクなどの記憶資源を追加する 。
【００５２】
また、ファイルシステムに割り当てられる論理ユニット、又は既述の仮想ボリュームをRAIDレベル、ディスク性能、ベンダーの相違によってランク付けし、NASマネージャがファイルシステムのポリシーと、論理ユニット又は仮想ボリュームのランクとを比較し、ファイルシステムのポリシーに近いランクの論理ユニット又は仮想ボリュームをファイルシステムに割り当てることができる 。
【００５３】
また、あるファイルシステムには固定的な容量を持つ論理ユニットを割り当ててその容量を拡張し、別のファイルシステムには仮想的な容量を持つ論理ユニットとプールボリュームを介して、記憶領域を割り当てても良い。さらにまた、ファイルシステムに割り当てるべき、固定的な容量を持つ論理ユニットが消費された後、プールボリュームを介した記憶領域の割り当てをこのファイルシステムに対して行なっても良い 。
【図面の簡単な説明】
【００５４】
【図１】本発明に係るストレージサブシステムとしてのNAS装置とストレージ装置とを備えてなるストレージシステムのハードウエアブロック図である。
【図２】ストレージ装置１２の論理構成の一例を示すブロック図である。
【図３】NAS装置のOS機能を実現するNASマネージャのブロックである。
【図４】NAS装置の内蔵ディスクがファイルシステム管理データベースと、ディレクトリQuota情報管理データベースを記録していることを説明するブロック図である。
【図５】ファイルシステム管理テーブルの一例である。
【図６】ディレクトリQuota情報管理テーブルの一例である。
【図７】NASマネージャによってシステム管理者の管理装置に提供される入力画面の一例である。
【図８】ファイルシステムの総容量を拡張する動作を示すフローチャートである。
【図９】ファイルシステムの総容量を拡張する他の実施形態に係わるフローチャートである。
【図１０】ユーザからのI/Oに対する処理を停止する間にファイルシステムの総容量を増加する処理を説明するフローチャートである。
【図１１】システム管理者にＧＵＩとして提供される管理画面の他の例である。
【図１２】ファイルシステムの総容量を増加させる他の実施形態を説明するフローチャートの他の例である。
【図１３】ファイルシステムの総容量を増加させるためさらに他の実施形態を説明するフローチャートである。
【符号の説明】
【００５５】
１０  ストレージサブシステム、１２  ストレージ装置、１４  ネットワーク、１６  制御回路
【図１】
0005198018.tif 000002
【図２】
0005198018.tif 000003
【図３】
0005198018.tif 000004
【図４】
0005198018.tif 000005
【図５】
0005198018.tif 000006
【図６】
0005198018.tif 000007
【図７】
0005198018.tif 000008
【図８】
0005198018.tif 000009
【図９】
0005198018.tif 000010
【図１０】
0005198018.tif 000011
【図１１】
0005198018.tif 000012
【図１２】
0005198018.tif 000013
【図１３】
0005198018.tif 000014