(57)【要約】【課題】  記憶容量の不足を回避するよう記憶領域の構成を自動で変更し円滑な処理を実現すること。【解決手段】  ストレージ装置３と、サーバ２と、管理サーバ５とを備え、管理サーバ５は、ストレージ装置３の論理領域の容量が不足した場合、ストレージ装置３に有する論理領域のうち、未使用を示す他の論理領域があるかどうかを判定し、未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当てる。未使用を示す他の論理領域がなければ、あらかじめ設定された優先レベルの上限値レベルよりも低い他の論理領域の持つ冗長を解除し、その解除した論理領域の容量を容量不足の論理領域に割り当てる。【選択図】      図１
2006343924.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備えたボリューム管理システムであって、
前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、空き領域を示す領域レベルと、冗長性の優先度をあらわす優先レベルと、使用中または未使用をあらわす利用状況と、冗長の有無を示す状態とを格納するとともに、
前記管理サーバの処理装置は、
前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記メモリの領域レベルを参照して、空き領域があるかどうかを判定し、
空き領域があれば、その空き領域の容量を容量不足の論理領域に割り当て、
前記空き領域がなければ、前記メモリの利用状況を参照して、未使用を示す他の論理領域があるかどうかを判定し、
前記未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当て、
前記未使用を示す他の論理領域がなければ、前記メモリの優先レベルと冗長の有無とを参照して、あらかじめ設定された優先レベルの上限値レベルよりも低い他の論理領域の持つ冗長を解除し、その解除した論理領域の容量を容量不足の論理領域に割り当てることを特徴とするボリューム管理システム。
【請求項２】
複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備えたボリューム管理システムであって、
前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、使用中または未使用をあらわす利用状況を格納するとともに、
前記管理サーバの処理装置は、
前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記メモリの利用状況を参照して、未使用を示す他の論理領域があるかどうかを判定し、前記未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当てることを特徴とするボリューム管理システム。
【請求項３】
前記メモリは、あらかじめ設定された論理領域のブロック単位に前記利用状況を格納し、
前記管理サーバの制御装置は、
前記他の論理領域のブロック単位に前記未使用を示す他の論理領域を前記メモリから選定して追加することを特徴とする請求項２に記載のボリューム管理システム。
【請求項４】
前記メモリは、前記論理領域の容量に対する使用容量の比率をあらわす使用率をさらに格納し、
前記管理サーバの制御装置は、
前記メモリに格納された論理領域の前記使用率に基づいて、当該論理領域の未使用を判定することを特徴とする請求項２に記載のボリューム管理システム。
【請求項５】
前記管理サーバの制御装置は、
前記メモリに格納された前記論理領域の使用率に応じて、当該論理領域の未使用容量を計算し、その未使用容量を前記容量不足の論理領域に割り当てることを特徴とする請求項４に記載のボリューム管理システム。
【請求項６】
前記メモリは、前記論理領域の使用率の閾値をさらに格納し、
前記管理サーバの制御装置は、
前記論理領域の未使用容量のうち、前記メモリの使用率の閾値以下の容量分を前記容量不足の論理領域に割り当てることを特徴とする請求項５に記載のボリューム管理システム。
【請求項７】
前記メモリの前記使用率は、過去の履歴数分、格納されており、
前記管理サーバの制御装置は、
前記メモリに格納された使用率の履歴を参照し、その履歴で示された使用率の変化から、必要な論理領域の容量を予測し、予測した容量分を前記容量不足の論理領域に割り当てることを特徴とする請求項４に記載のボリューム管理システム。
【請求項８】
前記使用率の履歴は、所定の間隔で定期的に計算されて前記メモリに格納されていることを特徴とする請求項７に記載のボリューム管理システム。
【請求項９】
前記メモリは、前記論理領域に関し、冗長の有無を示す状態をさらに格納し、
前記管理サーバの制御装置は、
前記メモリの冗長の有無を参照して、前記論理領域の冗長度に応じて前記未使用容量を計算することを特徴とする請求項５に記載のボリューム管理システム。
【請求項１０】
複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備えたボリューム管理システムであって、
前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、冗長性の優先度をあらわす優先レベルの上限値レベルと、冗長の有無を示す状態とを格納するとともに、
前記管理サーバの処理装置は、
前記メモリに格納された優先レベルの上限値レベルと冗長の有無とを参照して、前記上限値レベルよりも低い他の論理領域の持つ冗長を解除し、その解除した論理領域の容量を容量不足の論理領域に割り当てることを特徴とするボリューム管理システム。
【請求項１１】
一または複数の物理ディスクにより構成される複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備えたボリューム管理システムであって、
前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記物理ディスクの耐久時間と、前記論理領域に関し、冗長性の優先度をあらわす優先レベルの上限値レベルとを格納するとともに、
前記管理サーバの処理装置は、
前記ストレージ装置の物理ディスクの耐久時間が超過した場合、前記メモリの前記上限値よりも下限の論理領域で、当該物理ディスクに対応する論理領域の容量の冗長を行い、
当該物理ディスクが取り外された後、前記冗長を行った論理領域の容量を、耐久時間を超過する前の前記物理ディスクに対応する論理領域に戻すことを特徴とするボリューム管理システム。
【請求項１２】
複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備えたコンピュータシステムに用いられるボリューム管理方法であって、
前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、使用中または未使用をあらわす利用状況を格納するとともに、
前記管理サーバの処理装置は、
前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記メモリの利用状況を参照して、未使用を示す他の論理領域があるかどうかを判定し、前記未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当てることを特徴とするボリューム管理方法。
【請求項１３】
前記メモリは、あらかじめ設定された論理領域のブロック単位に前記利用状況を格納し、
前記管理サーバの制御装置は、
前記他の論理領域のブロック単位に前記未使用を示す他の論理領域を前記メモリから選定して追加することを特徴とする請求項１２に記載のボリューム管理方法。
【請求項１４】
前記メモリは、前記論理領域の容量に対する使用容量の比率をあらわす使用率をさらに格納し、
前記管理サーバの制御装置は、
前記メモリに格納された論理領域の前記使用率に基づいて、当該論理領域の未使用を判定することを特徴とする請求項１２に記載のボリューム管理方法。
【請求項１５】
前記管理サーバの制御装置は、
前記メモリに格納された前記論理領域の使用率に応じて、当該論理領域の未使用容量を計算し、その未使用容量を前記容量不足の論理領域に割り当てることを特徴とする請求項１４に記載のボリューム管理方法。
【請求項１６】
前記メモリは、前記論理領域の使用率の閾値をさらに格納し、
前記管理サーバの制御装置は、
前記論理領域の未使用容量のうち、前記メモリの使用率の閾値以下の容量分を前記容量不足の論理領域に割り当てることを特徴とする請求項１５に記載のボリューム管理方法。
【請求項１７】
前記メモリの前記使用率は、過去の履歴数分、格納されており、
前記管理サーバの制御装置は、
前記メモリに格納された使用率の履歴を参照し、その履歴で示された使用率の変化から、必要な論理領域の容量を予測し、予測した容量分を前記容量不足の論理領域に割り当てることを特徴とする請求項１４に記載のボリューム管理方法。
【請求項１８】
前記メモリは、前記論理領域に関し、冗長の有無を示す状態をさらに格納し、
前記管理サーバの制御装置は、
前記メモリの冗長の有無を参照して、前記論理領域の冗長度に応じて前記未使用容量を計算することを特徴とする請求項１５に記載のボリューム管理方法。
【請求項１９】
前記管理サーバの前記メモリは、前記ストレージ装置に有する論理領域に関し、前記優先レベルの上限値レベルと、冗長の有無を示す状態とをさらに格納するとともに、
前記管理サーバの処理装置は、
前記メモリに格納された優先レベルの上限値レベルと冗長の有無とを参照して、前記上限値レベルよりも低い他の論理領域の持つ冗長を解除し、その解除した論理領域の容量を容量不足の論理領域に割り当てることを特徴とする請求項１２に記載のボリューム管理方法。
【請求項２０】
前記論理領域の容量は、前記ストレージ装置に有する一または複数の物理ディスクにより構成され、
前記管理サーバの前記メモリは、前記物理ディスクの耐久時間をさらに格納するとともに、
前記管理サーバの処理装置は、
前記ストレージ装置の物理ディスクの耐久時間が超過した場合、前記メモリの前記上限値よりも下限の論理領域で、当該物理ディスクに対応する論理領域の容量の冗長を行い、
当該物理ディスクが取り外された後、前記冗長を行った論理領域の容量を、耐久時間を超過する前の前記物理ディスクに対応する論理領域に戻すことを特徴とする請求項１２に記載のボリューム管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域の構成を自動で変更するボリューム管理システムおよびその方法に関する。
【背景技術】
【０００２】
一般に、ユーザが記憶装置の容量不足に気付かずに、容量不足の記憶装置への書き込みが発生した場合、データの不整合や処理停止を引き起こし得る。そのため、記憶装置内の記憶領域の容量を常に監視し、容量不足にならないよう必要に応じて記憶領域の追加や拡張を行う必要がある。そこで、容量不足の判断や、急激な記憶領域の容量変化に対応するため、容量不足の監視と記憶領域の拡張を動的に行うシステムが用いられている。その記憶領域の拡張の際には、予め準備した容量を確保しておく必要がある。
従来、記憶領域の拡張などの構成変更を行わせるタイミングとして、ユーザが決めたスケジュールに沿って行う方法(例えば、特許文献１)と、物理的な構成が変化した場合に行う方法(例えば、特許文献２)とがあった。
【特許文献１】特開２００３−３３７７２１号公報
【特許文献２】特開２００４−３３４５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１、２では、次のような不都合があった。すなわち、容量不足の記憶装置に対する書き込みが発生したときに、ユーザがそのことに気付かなければ、その状態で書き込みが行われるため、データ整合や処理を円滑に行うことにならない。そのため、記憶領域の容量不足を常に監視し、必要に応じて、記憶領域の追加・拡張を行う必要があった。
また、容量を追加・拡張する際にそれに必要な容量が事前に確保されていない場合、ユーザの判断で他の記憶領域から追加・拡張分の容量を取得しなければならないため、ユーザがその容量を意識していなければ、円滑な処理を行いにくい。そのため、記憶容量に関する監視や変更、判断を全て自動で行うことで、ユーザの負担を軽減し、容量不足による弊害を守る必要があった。
【０００４】
そこで、本発明は、このような不都合を回避するためになされたものであり、その目的は、記憶容量の不足を回避するよう記憶領域の構成を自動で変更し円滑な処理を実現することである。
【課題を解決するための手段】
【０００５】
前記課題を解決するため本発明は、複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備える。前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、使用中または未使用をあらわす利用状況を格納する。前記管理サーバの処理装置は、前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記メモリの利用状況を参照して、未使用を示す他の論理領域があるかどうかを判定し、前記未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当てる。
【発明の効果】
【０００６】
本発明によれば、記憶容量の不足を回避するよう記憶領域の構成を自動で変更し円滑な処理を実現することができる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明の実施の形態におけるボリューム管理システムの全体的な構成例を示すブロック図である。
図１において、ボリューム管理システムでは、複数のサーバ（計算機ともいう）２が、例えばＳＡＮ(Storage Area Network)６を介して、複数のストレージ装置３に接続されている。そして、それらのサーバ２とストレージ装置３の各々は、例えばＬＡＮ(Local Area Network)を介して、管理サーバ５に接続されている。ストレージ装置３は、複数の磁気ディスクにより構成される論理領域（記憶領域）を有している。論理領域は、例えば、複数台のディスク装置で形成されたＲＡＩＤ（Redundant Arrays of Independent Disks）グループを論理的に分割して作られた各領域を意味する。
管理サーバ５には、ワークロードボリュームマネージャプログラム（以下単に「マネージャープログラム」という）１が組み込まれているが、詳細は後記する。
【０００８】
なお、図１の構成を変更してもよい。例えば、１台のサーバ２が管理サーバ５の機能を兼ね備え、そのサーバ２とストレージ装置３とを専用線で接続してボリューム管理システムを構成するようにしてもよい。また、ＳＡＮやＬＡＮを用いて通信を行うこととしたが、例えば、SCSI(Small Computer System Interface)、iSCSI(Internet Small Computer System Interface)等の様々な通信を用いることもできる。
以下、管理サーバ５、サーバ２、ストレージ装置３の順に詳述する。
【０００９】
（管理サーバの構成）
管理サーバ５は、図２に示すように、ネットワークポート５２、ＣＰＵ５３、メモリ５４を持ち、メモリ５４に格納された各種プログラムをＣＰＵ５３で実行するものである。
メモリ５４は、マネージャープログラム１と、ユーザ設定テーブル作成プログラム２０８と、書き込み領域テーブル作成プログラム２０９とを格納する。さらにメモリ５４は、マスターテーブル１０１と、ユーザ設定テーブル１０３と、書き込み領域テーブル１０５と、書き込み位置テーブル１０７と、データ対応テーブル１０９と、ミラーテーブル１１０とを格納する。
【００１０】
マスターテーブル１０１は、ストレージ装置３に関する構成情報を管理する表として、システム情報（図５参照）、論理領域情報（図５参照）、ディスク情報（図５参照）、ブロック対応情報（図６参照）および使用率変化情報（図６参照）を持つ。
システム情報には、図５に示すように、システムレベル、設定値レベル、上限値レベル、動作内容、およびユーザ設定の情報を持つ。
システムレベルとは、ストレージ装置３に有する論理領域の冗長性の可否を分ける境界値を意味する。論理領域は、一定の大きさをあらわす論理ブロックの集合を意味する。システムレベルには、あらかじめ用意されている複数のレベル（例えば、１〜１０）のうちの一つのレベルを示す数値（例えば、３）が入る。このレベルは、冗長性の優先度をあらわすものであり、優先レベルともいう。なお、レベル０は、論理領域に未登録の論理ブロックの集合体である空き領域（ディスクプール）のレベルを指す。つまり、どのサーバ２にも提供していない論理領域のレベルである。レベルの数値が高くなればなるほど、論理領域の冗長を行いにくくなる。
設定値レベルには、システムレベルの下限を示す数値が設定され、また、上限値レベルには、システムレベルの上限を示す数値が設定される。
動作内容は、論理領域に対してどのような構成変更が必要かを示すもので、例えば、書き込み等の種類がある。
ユーザ設定は、後記するユーザ設定テーブル１０３の内容を反映した状態を示すもので、例えば、完了等がある。
なお、マスターテーブル１０１内の動作内容の項目には、一種類の内容しか記憶されない。このため、動作内容に新たな値を入れると、前の動作内容の値は上書きされる。
【００１１】
論理領域情報は、図５に示すように、論理領域の名称、領域レベル、論理領域の状態、使用率、使用率の閾値、および論理領域の容量の情報を持つ。
論理領域の名称としては、例えば、unit０、unit１などがある。領域レベルは、当該論理領域のシステムレベルを意味する。論理領域の状態としては、例えば、冗長性の無しを示すミラー無、冗長性の有りを示すミラー有、破損などがある。
使用率は、論理領域の容量に対する、当該論理領域の実使用量の比率を意味する。使用率の閾値は、その使用率をあらかじめ設定したものである。論理領域の容量としては、例えば、３０ＧＢ、１０ＧＢなどがある。
【００１２】
ディスク情報は、図５に示すように、ディスク番号、ディスクの容量、使用開始、耐久時間、および使用時間の情報を持つ。
ディスク番号は、ディスク群３３（図４参照）に含まれる一のディスクを特定するための番号である。ディスクの容量としては、例えば、５ＧＢ、５０ＧＢなどがある。
使用開始日、例えば、当該ディスクの使用を開始した年月日を指し、耐久時間は、当該ディスクの耐久時間を意味する。使用時間は、当該ディスクの実使用時間を意味する。
【００１３】
ブロック対応情報は、図６に示すように、論理領域の名称、論理ブロック番号、利用状況、および、対応する物理ブロック情報を持つ。このうち、論理領域の名称は、図５の論理領域の名称と同様の内容である。
論理ブロック番号は、論理ブロックを特定するためのもので、例えば、ブロック１、ブロック２などがある。利用状況としては、使用中を示すUse、あるいは未使用を示すUnuseがある。
対応する物理ブロック情報は、当該論理ブロックに対応するもので、ディスク番号（図５参照）と物理ブロック番号とマークとを含んで構成されている。物理ブロック番号は、一または複数のディスクから構成される物理ブロックを特定するための番号である。本実施の形態においては、物理ブロックは、論理ブロックと容量が一致するものとして説明するが、双方の容量は異なっていてもよい。
マークには、物理ディスクの利用可能を示す「可」または利用不可を示す「不可」の２種類がある。
【００１４】
使用率変化情報は、論理領域の名称ごとに、当該論理領域の使用率（図５の論理領域情報の使用率と同じ）の履歴をあらわしている。この履歴のレコードは、後記するユーザ設定テーブル１０３の取得期間情報の使用率変化情報記憶回数（図７参照）で設定した回数分ある。
【００１５】
ユーザ設定テーブル１０３は、図７に示すように、記憶領域の構成変更を行う基準としてユーザが設定する値であるユーザ論理領域情報、ユーザディスク情報、および取得期間情報を持つ。
ユーザ論理領域情報は、マスターテーブル１０１の論理領域情報（図５参照）と同様、論理領域の名称、領域レベル、使用率の閾値、および論理領域の容量の情報を持つ。
ユーザディスク情報は、マスターテーブル１０１のディスク情報（図５参照）と同様、ディスク番号、耐久時間の情報を持つ。
取得期間情報は、定期シグナルの間隔（例えば、１時間）、および使用率変化情報記憶回数（例えば、２０回）の情報を持つ。
【００１６】
書き込み領域テーブル１０５は、図８に示すように、書き込みまたは削除を示すWrite/Delete、その対象となる論理領域の名称（例えば、unit４など）、データ名（例えばデータＡなど）、およびそのデータの大きさ（例えば、８ＭＢなど）の情報を持つ。データの大きさは、書き込みの場合にのみ登録される。
【００１７】
書き込み位置テーブル１０７は、図９に示すように、書き込みまたは読み込みを示すWrite/Read、その対象となるデータ名（例えば、データＡなど）、対象となる論理領域の名称（例えば、unit１など）、および論理ブロック番号（例えば、ブロック１など）の情報を持つ。
【００１８】
データ対応テーブル１０９は、図１０に示すように、データ名、論理領域の名称、および論理ブロック番号の情報を持つ。
ミラーテーブル１１０は、図１１に示すように、ミラー元ディスク番号（例えば、Disk１など）、ミラー元物理ブロック番号（例えば、ブロック１００など）、ミラー先ディスク番号（例えば、Disk６など）、およびミラー先物理ブロック番号（例えば、ブロック１など）の情報を持つ。
【００１９】
次に、各種プログラム２０８、２０９の機能について説明する。
ユーザ設定テーブル作成プログラム２０８は、ユーザによる入力装置（マウス等）の操作に応じ、ユーザ設定テーブル１０３を更新する機能を持つ。書き込み領域テーブル作成プログラム２０９は、ユーザによる操作を通じて書き込み要求や削除要求があった場合、書き込み領域テーブル１０５を作成する。
【００２０】
（サーバの構成）
次に、サーバ２の構成について詳述する。サーバ２は、図３に示すように、I/Oポート２１、ネットワークポート２２、ＣＰＵ２３、およびメモリ２４を持ち、メモリ２４に格納された各種プログラムをＣＰＵ２３で実行するものである。
メモリ２４は、書き込み・削除要求シグナル発信プログラム２０１と、ユーザ割り込み要求シグナル発信プログラム２０２と、定期シグナル発信プログラム２０３と、ユーザ連絡プログラム２０４と、データ書き込みプログラム２０５と、データ削除プログラム２０６とを格納する。
【００２１】
書き込み・削除要求シグナル発信プログラム２０１は、ユーザが入力装置を用いて書き込みまたは削除要求を行った場合、その書き込みまたは削除シグナルを管理サーバ５のマネージャープログラム１に発信する機能を持つ。
ユーザ割り込み要求シグナル発信プログラム２０２は、ユーザ割り込み要求シグナルを管理サーバ５のマネージャープログラム１に発信する機能を持つ。定期シグナル発信プログラム２０３は、管理サーバ５のユーザ設定テーブル１０３で設定された間隔で定期シグナルを管理サーバ５のマネージャープログラム１に発信する機能を持つ。
【００２２】
ユーザ連絡プログラム２０４は、管理サーバ５のマネージャープログラム１から各種シグナルを受け取った場合、そのシグナルに応じた情報をユーザに伝える機能（例えば、コンピュータディスプレイ等の表示装置に表示）を持つ。データ書き込みプログラム２０５は、管理サーバ５のマネージャープログラム１から書き込み位置テーブル１０７の内容を受け取った場合、該当データを書き込むようにストレージ装置３に要求する。
データ削除プログラム２０６は、マネージャープログラム１から書き込み位置テーブル１０７の内容を受け取った場合、該当データを読み込むようにストレージ装置３に要求する。
【００２３】
（ストレージ装置の構成）
次に、ストレージ装置３の構成について詳述する。ストレージ装置３は、図４に示すように、I/Oポート３１、ネットワークポート３２、一以上のディスクからなるディスク群３３、メモリ３４、およびＣＰＵ３５を有し、メモリ３４に格納された各プログラムをＣＰＵ３５で実行するものである。ＣＰＵ３５は、ディスク群３３に有する論理領域に対する入出力を制御する。
メモリ３４には、ディスク情報テーブル３０１と、アクセス位置テーブル３０３と、構成情報テーブル３０５とが格納されている。また、メモリ３４には、書き込みプログラム３１１と、読み込みプログラム３１３と、アクセス位置テーブル作成プログラム３１５と、ディスク情報テーブル作成プログラム３１７とが格納されている。
【００２４】
ディスク情報テーブル３０１は、図１２に示すように、ディスク番号、ディスクの容量、および利用開始時（図５のディスク情報の使用開始に対応）の情報を持つ。
アクセス位置テーブル３０３は、図１３に示すように、ディスク番号および物理ブロック番号の情報を持つ。
構成情報テーブル３０５は、図１４に示すように、ディスク番号、物理ブロック番号、論理領域の名称、および論理ブロック番号の対応関係を持つ。
【００２５】
次に、各種プログラム３１１、３１３、３１５、３１７（図４参照）の機能について説明する。
書き込みプログラム３１１は、サーバ２のデータ書き込みプログラム２０５（図２参照）から書き込み要求があった場合、要求された論理ブロックに対応する物理ブロックに書き込みを行う機能を持つ。
読み込みプログラム３１３は、サーバ２のデータ削除プログラム２０６（図２参照）から読み込み要求があった場合、要求された論理ブロックに対応する物理ブロックに対して読み込みを行う機能を持つ。
アクセス位置テーブル作成プログラム３１５は、書き込みまたは読み込みを行った後にアクセスした物理ブロックの位置からアクセス位置テーブル３０３を作成する機能を持つ。
ディスク情報テーブル作成プログラム３１７は、ディスク群３３中のディスクに追加や削除が行われた場合、そのディスクの容量や利用開始日の情報からディスク情報テーブル３０１を作成し、構成変更シグナルを管理サーバ５のマネージャープログラム１に発信する機能を持つ。
【００２６】
（論理領域の冗長性の原理）
このような構成を持つボリューム管理システムを用いて、容量不足の論理領域に対して容量を追加・拡張して論理領域の冗長性を行い、容量不足を回避しデータの整合等を行う。このとき追加・拡張すべき論理領域の優先順位を決めておき、その順位の高い論理領域の容量を追加・拡張している。本実施の形態では、（１）Unit０の容量、（２）他の論理領域における未使用部分の容量、（３）他の論理領域の冗長性を解除して得られる容量、の順に優先度を低くした。
【００２７】
ここで、（１）Unit０の容量を利用する場合の動作原理を図５１に示す。この場合、領域レベルが１の容量が不足すると（追加・拡張前の領域レベル１を参照）、Unit０（領域レベル＝０）の容量を不足した容量（領域レベル１）に追加・拡張する（追加・拡張後の領域レベル１を参照）。
【００２８】
次に、（２）他の論理領域における未使用部分の容量を利用する場合の動作原理を図５２に示す。この場合、領域レベルが１の容量が不足すると（追加・拡張前の領域レベル１を参照）、領域レベルが６の論理領域の容量（未使用部分）を不足した容量（領域レベル１）に追加・拡張する（追加・拡張後の領域レベル１を参照）。
【００２９】
次に、（３）他の論理領域の冗長性を解除して得られる容量を利用する場合の動作原理を図５３に示す。この場合、領域レベルが１の容量が不足すると（追加・拡張前の領域レベル１を参照）、上限値レベル６以下の論理領域はすべて冗長性が解除されて、解除後のミラー先の論理領域がUnit０に確保される（経過途中を参照）。そして、その確保されたUnit０の論理領域が不足した容量（領域レベル１）に追加・拡張する（追加・拡張後の領域レベル１を参照）。そして、その後、冗長性を回復する。
【００３０】
この回復例を図５４に示す。たとえば、領域レベルが１の論理領域の容量に未使用部分があり、かつ、Unit０に容量があれば（回復前を参照）、それらの容量をシステムレベル４以下でかつ設定値レベル２以上の論理領域に確保して冗長化を行う（経過途中を参照）。そして、システムレベルを１つ下げる（回復後を参照）。
【００３１】
次に、論理領域の冗長性の解除例を図５５に示す。たとえば、ユーザ設定テーブル１０３（図７参照）の領域レベルが小さい値に変更されたことによりシステムレベル４以下で冗長を持っている場合（解除前を参照）、その冗長性を解除して、解除したミラー先の論理領域をUnit０に確保する（解除後を参照）。
【００３２】
また、本実施の形態においては、物理ディスクの耐久時間が超過したときに、その超過した物理ディスクに対応する論理領域のデータの保護も行っている。この例を図５６に示す。たとえば、耐久時間が超過した物理ディスクに対応する論理ディスク（論理レベル２の論理領域に対応）について、上限値レベル６よりも１つ下位の領域レベル５の論理領域内で冗長化を行う。そして、耐久時間が超過した物理ディスクをユーザが取り外せば、領域レベルをユーザ設定テーブル１０３（図７参照）の値（たとえば、２）に戻し、その領域レベル２に冗長化した論理領域を確保する。これにより、物理ディスクの耐久時間が超過しても、データを保存することが可能となる。
【００３３】
（論理領域の冗長性の管理方法）
さらに、論理領域の冗長性の管理方法を説明する。
各論理領域に対し領域レベルを設定し、領域レベルには数値が入る。その値が大きい論理領域から優先的に冗長性を持たせる。論理領域の冗長性の有無を示す境界値としてシステムレベルを設定し、システムレベルには数値が入る。システムレベルの上限として上限値レベル、下限として設定値レベルを設定し、それぞれに数値が入る。冗長性の管理は以下の規則に従って行われる。論理領域の領域レベルの値がシステムレベルの値より小さい場合、該当論理領域の冗長性を解除する。解除することで得た容量はunit0に登録する。論理領域の領域レベルの値が設定値レベルの値以上で、システムレベルより小さい場合、該当論理領域に対して、冗長性を持つような働きを自動で行うため、領域レベルの大きい論理領域から順に以下の処理を行う。冗長性を持たせる予定の該当論理領域に対して、他の論理領域の未使用部分の容量とunit0の容量の両方または片方を利用して該当論理領域に冗長性を持たせ、システムレベルの値を、冗長性を持たせた論理領域の領域レベルの値に変更する。他の論理領域の未使用部分の容量とunit0の容量の両方または片方を利用しても冗長性を持たせるための十分な容量を確保出来ない場合は、該当論理領域に冗長性を持たせない。
【００３４】
（容量不足の判断基準）
次に、容量不足の判断基準について説明する。各論理領域に対して閾値を設定し、閾値には0から100までの数値が入る。各論理領域で使用している論理ブロック数を、各論理領域の全論理ブロック数で割った値に100を掛けた値を使用率とする。使用率の値が閾値の値を超えた場合、その論理領域は容量不足であると判断する。
【００３５】
次に、管理サーバ５のＣＰＵ５３が、メモリ５４のマネージャープログラム１に従って容量不足の論理領域に対して容量を追加・拡張して冗長化等を行うワークロードボリュームマネージャー処理例について図１５ないし図５０に基づいて説明する。
図１５はワークロードボリュームマネージャー処理の概要を示すフローチャートである。まず、ステップ１５０５では、サーバ２の各種プログラムから発信されたシグナルを取得する情報取得処理（図１６参照）を行う。
ステップ１５１０では、マスターテーブル１０１等の内容を加工する構成変更データ加工処理（図２５参照）を行う。
ステップ１５１５では、マスターテーブル１０１のシステム情報の動作内容（図５参照）の値が「限界」かどうかを判定する。判定の結果、「限界」ではない場合（ステップ１５１５のＮｏ）、ステップ１５２０に進み、動作内容の値に応じて、ストレージ装置３の構成情報テーブル３０５の内容を変更する構成変更実行処理（図３９参照）を行う。その後、ステップ１５０５に戻る。
他方、動作内容の値が「限界」の場合（ステップ１５１５のＹｅｓ）、その動作内容の値を消し（ステップ１５２５のＹｅｓ）、マネージャープログラム１を終了する。
【００３６】
図１６はステップ１５０５の情報取得処理を示すフローチャートである。まずステップ１６０５では、管理サーバ５のＣＰＵ５３は、サーバ２の書き込み・削除要求シグナル発信プログラム２０１から発信された書き込み・削除シグナルを検知したかどうかを判断する。そして、それを検知した場合（ステップ１６０５のＹｅｓ）、書き込みシグナル検知処理（図１７参照）を行い（ステップ１６１０）、他方、検知しなかった場合（ステップ１６０５のＮｏ）、ストレージ装置３のディスク情報テーブル作成プログラム３１７から発信された構成変更シグナルを検知したかどうかを判断する（ステップ１６１５）。
【００３７】
そして、構成変更シグナルを検知した場合（ステップ１６１５のＹｅｓ）、構成変更シグナル検知処理（図２４参照）を行い（ステップ１６２０）、他方、検知しなかった場合（ステップ１６１５のＮｏ）、サーバ２の定期シグナル発信プログラム２０３から発信された定期シグナルを検知したかどうかを判断する（ステップ１６２５）。
【００３８】
定期シグナルを検知した場合（ステップ１６２５のＹｅｓ）、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「定期」の値を入れ（ステップ１６３０）、他方、検知しなかった場合（ステップ１６２５のＮｏ）、サーバ２のユーザ割り込み要求シグナル発信プログラム２０２から発信されたユーザ割り込みシグナルを検知したかどうかを判断する（ステップ１６３５）。
【００３９】
ユーザ割り込みシグナルを検知した場合（ステップ１６３５のＹｅｓ）、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「ユーザ割り込み」の値を入れ（ステップ１６４０）、他方、検知しなかった場合（ステップ１６３５のＮｏ）、ステップ１６３７に進み、マスターテーブル１０１のシステム情報のユーザ設定（図４参照）の値が未完了かどうかを判断する。
そして、ユーザ設定の値が未完了の場合（ステップ１６３７のＹｅｓ）、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「ユーザ割り込み」の値を入れ（ステップ１６４０）、他方、完了の場合（ステップ１６３７のＮｏ）、動作内容（図４参照）に値があるかどうかを判断する（ステップ１６４５）。その結果、値がある場合（ステップ１６４５の有る）、情報取得処理を終了し、他方、無い場合（ステップ１６４５の無い）、ステップ１６０５に戻る。
【００４０】
図１７はステップ１６１０の書き込み・削除シグナル検知処理（図１６）を示すフローチャートである。まずステップ１７０５では、書き込み領域テーブル１０５を読み込み、ステップ１７１０で、マスターテーブル１０１を読み込む。
ステップ１７１５では、前記した書き込み・削除シグナルに応じ、マスターテーブル１０１および書き込み領域テーブル１０５を参照して、書き込み領域の有無を判断する書き込み領域有無判断処理（図１８参照）を行う。この処理の結果、他の論理領域に書き込み容量がある場合（ステップ１７１５の「他の論理領域に容量有り」）、書き込み・削除シグナル検知処理を終了する。
また、ステップ１７１５の処理の結果、該当論理領域に書き込み容量がある場合（ステップ１７１５の「該当論理領域に容量有り」）、ステップ１７２０に進み、論理領域使用率情報取得処理(図２１参照)を行い、その処理の結果、マスターテーブル１０１の論理領域情報（図５参照）から、当該論理領域の使用率がその閾値より小さいかどうかを判断する（ステップ１７２５）。その結果、論理領域の使用率が大きい場合（ステップ１７２５のＮｏ）、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「書き込み」の値を入れ、ステップ１７３５に進む。
ステップ１７３５では、書き込み完了シグナルをサーバ２のユーザ連絡プログラム２０４に発信し、書き込み・削除シグナル検知処理を終了する。
【００４１】
また、ステップ１７１５の処理の結果、書き込み容量が無い場合には（ステップ１７１５の「書き込み容量無し」）、書き込み不可シグナルをサーバ２のユーザ連絡プログラム２０４に発信し（ステップ１７４０）、マスターテーブル１０１のシステム情報の動作内容（図４参照）に「限界」の値を入れて（ステップ１７４５）、書き込み・削除シグナル検知処理を終了する。
【００４２】
図１８はステップ１７１５の書き込み領域有無判断処理（図１７）を示すフローチャートである。まずステップ１８０５では、書き込み・削除シグナルに応じ、データの削除を行うかどうかを判断し、データの削除が行われる場合（ステップ１８０５のＹｅｓ）、そのデータの削除処理(図２３参照)を行う（ステップ１８１０）。この処理により、当該データが削除された論理領域の容量が増え、ステップ１７１５（図１７参照）の処理の結果が「該当論理領域に容量が有り」となる。
【００４３】
他方、データの書き込みを行う場合（ステップ１８０５のＮｏ）、そのデータに対応する論理領域について、書き込み領域中の未使用領域（未使用の論理領域）よりも書き込むデータのほうが大きいかどうかを判断する（ステップ１８１５）。判断の結果、小さい場合（ステップ１８１５のＮｏ）、当該データの書き込み処理（図２２参照）を行い（ステップ１８２０）、他方、大きい場合（ステップ１８１５のＹｅｓ）、当該データの書き込みに利用可能な論理領域の容量をあらわす後記の利用可能量を計算する利用可能量計算処理（図１９参照）を行う（ステップ１８２５）。
【００４４】
次に、ステップ１８３０では、利用可能量よりも書き込むデータのほうが大きいかどうかを判断し、大きい場合（ステップ１８３０のＹｅｓ）、利用可能総量計算処理（図２０参照）を行う（ステップ１８４０）。ステップ１８４５では、その処理の結果、後記する利用可能総量よりも書き込むデータのほうが大きいかどうかを判断し、判断の結果、大きい場合（ステップ１８４５のＹｅｓ）、当該データを書き込む論理領域が無い状態で本処理が終了し、ステップ１７１５（図１７参照）の処理の結果が「書き込み容量無し」となる。他方、利用可能総量よりも書き込むデータのほうが小さい場合（ステップ１８４５のＮｏ）、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「緊急」の値を入れ（ステップ１８５０）、本処理を終了する。このとき、他の論理領域に書き込みが可能な状態で本処理が終了し、ステップ１７１５の処理の結果が「他の論理領域に容量有り」となる。
【００４５】
なお、ステップ１８３０において、データのほうが小さい場合（ステップ１８３０のＮｏ）も、マスターテーブル１０１のシステム情報の動作内容（図５参照）に「不足」の値を入れ（ステップ１８３５）、ステップ１７１５の処理の結果が「他の論理領域に容量有り」となる。
【００４６】
図１９はステップ１８２５の利用可能量計算処理を示すフローチャートである。利用可能量計算処理は、論理領域の未使用部分で利用できる量を計算する処理である。
ステップ１９０５では、マスターテーブル１０１のunit０領域の容量を記憶する。
ステップ１９１０では、マスターテーブル１０１の論理領域情報（図５参照）から、各論理領域の使用率から未使用容量（未使用の論理領域の容量）を計算する。具体的には、論理領域の名称ごとに、論理領域の容量に（１００％−使用率）の値を乗じて未使用容量を算出する。たとえば、使用率が４０％、論理領域の容量が１０ＧＢの場合、未使用容量は、６ＧＢとなる。
ステップ１９１５では、マスターテーブル１０１の論理領域情報（図５参照）から、各論理領域の使用率の閾値から最低確保容量を計算する。具体的には、論理領域の名称ごとに、使用率の閾値で指定された論理領域の容量から、当該論理領域の容量を差し引いた容量をその論理領域の最低確保容量として計算する。たとえば、使用率の閾値が９０％、論理領域の容量が１０ＧＢの場合、その論理領域の最低確保容量は、１ＧＢとなる。
ステップ１９２０では、各論理領域の未使用容量から最低確保容量を引いて合計する。この合計値が、各論理領域についての利用可能な提供量となる。ただし、ミラー化されている場合はミラー化の重複度分掛け算をして前記提供量を求める。たとえば、二重化されていれば提供量を２倍して利用可能な提供量とし、三重化されていれば、提供量を３倍して利用可能な提供量とする。
ステップ１９２５では、前記した合計値、すなわち各論理領域の提供量と、ステップ１９０５で記憶したunit0の領域の容量とを合計したものを利用可能量として出し、利用可能量計算処理を終了する。
【００４７】
図２０はステップ１８４０の利用可能総量計算処理（図１８）を示すフローチャートである。利用可能総量計算処理は、上限値レベル以下の論理領域を全てミラー解除し、そのことで得られた論理領域の容量を計算する処理である。なお、ステップ１８２５の処理は、図１９における処理と同様であるため、説明を省略する。
ステップ２００５では、マスターテーブル１０１を参照し、システムレベル以上で、かつ上限レベル未満の領域レベルを持つ論理領域でミラー化している領域を記憶する。たとえば、図５では、システム情報のシステムレベルが３、上限レベルが８、３以上８未満のレベルを持つunit３の論理領域がミラー化しているので（論理領域情報の論理領域の名称、領域レベル、論理領域の状態を参照）、unit３の領域をメモリ５４に記憶することになる。
【００４８】
ステップ２０１０では、マスターテーブル１０１の論理領域情報（図５参照）を参照し、各論理領域の使用率からそれらの使用容量を計算し重複分（ミラー先の論理領域の使用容量分）を合計する。たとえば、二重化されていれば、計算した使用容量が重複分となり、三重化されていれば、計算した使用容量の２倍の容量が重複分となる。
ステップ２０１５では、マスターテーブル１０１の論理領域情報（図５参照）を参照し、各論理領域の使用率の閾値から最低確保容量の重複分（ミラー先の論理領域の最低確保容量分）を合計する。
ステップ２０２０では、システムレベルと上限値レベルの間にある論理領域の使用容量と最低確保容量を、ミラーで重複している分を合計し、この値を使用可能総量として利用可能総量計算処理を終了する。
【００４９】
図２１はステップ１７２０の論理領域使用率情報取得処理（図１７）を示すフローチャートである。
ステップ２１０５では、マスターテーブル１０１のブロック対応情報（図６参照）を読み込む。
ステップ２１１０では、ブロック対応情報に含まれる各論理領域の名称ごとに論理ブロック番号で指定された値を参照して、各論理領域のブロック数を数える。たとえば、unit１の論理ブロック番号がブロック１からブロック１０まであった場合、unit１のブロック数は１０となる。
【００５０】
ステップ２１１５では、各論理領域の使用中（ブロック対応情報の利用状況がUseを示すもの）のブロック数を数える。
ステップ２１２０では、前記した使用中のブロック数と、マスターテーブル１０１の論理領域情報の論理領域の容量（図５参照）とから、各論理領域の使用率を計算する。具体的には、論理領域ごとに、使用中のブロック数にあらかじめ設定された容量を乗じ、当該論理領域の容量に対するその合計値の比率を計算する。
ステップ２１２５では、計算した各論理領域の使用率をマスターテーブル１０１に反映する。
【００５１】
図２２はステップ１８２０のデータの書き込み処理（図１８）を示すフローチャートである。
ステップ２２０５では、書き込み領域テーブル作成プログラム２０９から書き込み領域テーブル１０５（図８参照）を受け取る。
ステップ２２１０では、書き込み領域テーブル１０５のWrite/DeleteのWriteに対応する論理領域の名称で指定された論理領域（例えば、unit４）内の書き込み位置を決定し、書き込み位置テーブル１０７（図９参照）を作成後、その内容をサーバ２のデータ書き込みプログラム２０５に送る。書き込み位置の決定は、対応する論理領域内の未使用の論理ブロック番号（利用状況がUnuseを示すもの）をマスターテーブル１０１のブロック対応情報（図６参照）から選び出して決定する。
【００５２】
ステップ２２１５では、サーバ２のＣＰＵ２３上でデータ書き込みプログラム２０５が、ストレージ装置３にＳＡＮ６を介して書き込み要求を出す。この書き込み要求には、ステップ２２１０で送られた論理領域の名称と論理ブロック番号とが指定される。
ステップ２２２０では、ストレージ装置３（ＣＰＵ３５を指す）が前記要求に従ってデータを書き込み、アクセス位置テーブル３０３（図１３参照）を作成する。ストレージ装置３は、データを書き込む際、書き込み要求で指定された論理領域の名称と論理ブロック番号とに対応する、ディスク番号（例えば、disk４）と物理ブロック番号（例えば、ブロック１）とを構成情報テーブル３０５（図１４参照）から読み出し、それらに対応するディスクに対する書き込みを行う。このとき、読み出されたディスク番号と物理ブロック番号の組がアクセス位置テーブル３０３（図１３参照）にエントリーされる。
【００５３】
ステップ２２２５では、管理サーバ５（ＣＰＵ５３を指す）が、ストレージ装置３によって作成されたアクセス位置テーブル３０３をストレージ装置３からＬＡＮを介して受け取り、以降のステップを実行する。
ステップ２２３０では、受け取ったアクセス位置テーブル３０３（図１３参照）から、マスターテーブル１０１のアクセスのあった物理ブロックの所属する論理ブロックを使用中にする。具体的には、アクセス位置テーブル３０３から、ディスク番号と物理ブロック番号の組を読み出し、その組に対応する論理領域の名称と論理ブロック番号とを含むレコードをマスターテーブル１０１のブロック対応情報（図６参照）から特定し、そのレコードの利用状況にUseの値を入れる。
ステップ２２３５では、アクセス位置テーブル３０３（図１３参照）の内容をデータ対応テーブル１０９（図１０参照）に反映する。具体的には、アクセス位置テーブル３０３のディスク番号と物理ブロック番号の組の各値を、該当データのデータ名に対応付けてデータ対応テーブル１０９に登録する。以上で、データ書き込み処理を終了する。
【００５４】
図２３はステップ１８１０のデータの削除処理（図１８）を示すフローチャートである。
ステップ２３０５では、書き込み領域テーブル作成プログラム２０９から書き込み領域テーブル１０５（図８参照）を受け取る。具体的には、書き込み領域テーブル１０５のWrite/DeleteのDeleteに対応する論理領域の名称で指定された論理領域の名称（例えば、unit２等）と、データ名（例えば、データＢ等）との各値を受け取る。
ステップ２３１０では、データ対応テーブル１０９（図１０参照）から、該当データ（例えば、データＢ）に対応する論理ブロック（論理領域の名称、論理ブロック番号）を記憶し、書き込み位置テーブル１０７（図９参照）を作成後、サーバ２のデータ削除プログラム２０６に読み出し要求を出す。作成後の書き込み位置テーブル１０７には、Write/read、データ名、論理領域の名称、および論理ブロック番号にそれぞれ、対応する値が入れられる。論理ブロック番号は、データ対応テーブル１０９（図１０参照）のデータ名および論理領域の名称（いずれも書き込み領域テーブル１０５から受け取った値）に対応する値である。
【００５５】
ステップ２３１５では、サーバ２のＣＰＵ２３により、データ削除プログラム２０６がストレージ装置３に対して、ＳＡＮ６を介して、読み込み要求を出す。
ステップ２３２０では、ストレージ装置３が前記要求に従ってデータを読み込み、アクセス位置テーブル３０３（図１３参照）を作成する。ストレージ装置３は、データを読み込む際、読み込み要求で指定された論理領域の名称と論理ブロック番号とに対応する、ディスク番号（例えば、disk３）と物理ブロック番号（例えば、ブロック５０１）とを構成情報テーブル３０５（図１４参照）から読み出し、それらに対応するディスクに対する読み込みを行う。そして、このときに読み出されたディスク番号と物理ブロック番号の組がアクセス位置テーブル３０３（図１３参照）にエントリーされる。
【００５６】
ステップ２３２５では、管理サーバ５のＣＰＵ５３により、ストレージ装置３から、ＬＡＮを介して、作成後のアクセス位置テーブル３０３（図１３参照）を受け取り、以降のステップの処理を実行する。
ステップ２３３０では、アクセス位置テーブル３０３に登録している物理ブロックに対応する論理ブロックをマスターテーブル１０１上で未使用にする。具体的には、アクセス位置テーブル３０３から、ディスク番号と物理ブロック番号の組を読み出し、その組に対応する論理領域の名称と論理ブロック番号とを含むブロック対応情報（図６参照）のレコードをマスターテーブル１０１から特定し、そのレコードの利用状況にUnuseの値を入れる。
ステップ２３３５では、未使用とした論理ブロックに対応する論理領域の名称と論理ブロック番号の組の値に基づいて、データ対応テーブル１０９（図１０参照）の該当データ名と論理ブロック（論理領域の名称、論理ブロック番号）との値を削除する。以上で、データの削除処理を終了する。
【００５７】
図２４はステップ１６２０の構成変更シグナル検知処理（図１６）を示すフローチャートである。
ステップ２４０５では、ストレージ装置３から、ディスク情報テーブル３０１（図１２参照）を取得する。具体的には、ストレージ装置３のディスク情報テーブル作成プログラム３１７から、ディスク情報テーブル３０１をＬＡＮを介して取得する。
ステップ２４１０では、ディスク情報テーブル３０１をマスターテーブル１０１（図５参照）に反映する。具体的には、ディスク情報テーブル３０１（図１２参照）のディスク番号と、ディスクの容量と、利用開始時との各値をマスターテーブル１０１のディスク情報（図５参照）の対応する項目に値を登録する。
ステップ２４１５では、マスターテーブル１０１のシステム情報の動作内容に「構成変更」の値を入れる。以上で、構成変更シグナル検知処理を終了する。
【００５８】
図２５はステップ１５１０の構成変更データ加工処理を示すフローチャートである。
ステップ２５０５では、ユーザ設定テーブル１０３を読み込む。
ステップ２５１０では、マスターテーブル１０１を読み込む。
ステップ２５１０Ａでは、ユーザ設定テーブル１０３に対応するマスターテーブル１０１のシステム情報の動作内容（図５参照）の値が「ユーザ割り込み」かどうかを判定する。
判定の結果、「ユーザ割り込み」ではない場合は（ステップ２５１０ＡのＮｏ）、ステップ２５２５に進み、他方、「ユーザ割り込み」の場合は（ステップ２５１０ＡのＹｅｓ）、その動作内容の値を消して（ステップ２５１５）、ユーザ設定テーブル反映処理を実行し（ステップ２５２０）、ステップ２５２５に進む。
【００５９】
ステップ２５２５では、マスターテーブル１０１のシステム情報の動作内容（図５参照）の値が「定期」かどうか判定し、判定の結果、「定期」でない場合は（ステップ２５２５のＮｏ）、ステップ２５４５に進み、他方、「定期」の場合は（ステップ２５２５のＹｅｓ）、動作内容の値を消して（ステップ２５３０）、ディスク使用時間計算処理（図３６参照）を実行し（ステップ２５３５）、論理領域使用率変化情報取得処理（図３７参照）を実行した（ステップ２５４０）後、ステップ２５４５に進む。
ステップ２５４５では、動作内容の値が設定されている場合は（ステップ２５４５のＹｅｓ）、構成変更データ加工処理を終了し、他方、動作内容に値が設定されていない場合（ステップ２５４５のＮｏ）、システムレベル情報取得処理（図３８参照）を実行し（ステップ２５５０）、構成変更データ加工処理を終了する。
【００６０】
図２６はステップ２５２０のユーザ設定テーブル反映処理（図２５）を示すフローチャートである。
ステップ２６０５では、マスターテーブル１０１とユーザ設定テーブル１０３の各項を比較し、マスターテーブル１０１とユーザ設定テーブル１０３との各領域レベル（図５、図７参照）が変更されたかどうかを判断する。その結果、領域レベルが変更された場合（ステップ２６０５のＹｅｓ）は、レベル設定処理を実行して（ステップ２６１０）ステップ２６６０に進み、他方、変更されなかった場合（ステップ２６０５のＮｏ）は、マスターテーブル１０１とユーザ設定テーブル１０３との各使用率の閾値（図５、図７参照）が変更されたかどうかを判断する（ステップ２６１５）。
【００６１】
閾値が変更された場合は（ステップ２６１５のＹｅｓ）、閾値設定処理を実行して（ステップ２６２０）、ステップ２６６０に進み、他方、変更されなかった場合は（ステップ２６１５のＮｏ）、マスターテーブル１０１とユーザ設定テーブル１０３との各耐久時間（図５、図７参照）が変更されたかどうかを判断する（ステップ２６２５）。その結果、耐久時間が変更された場合（ステップ２６２５のＹｅｓ）は、耐久時間設定処理（図３１参照）を実行して（ステップ２６３０）ステップ２６６０に進み、他方、変更されなかった場合（ステップ２６２５のＮｏ）は、マスターテーブル１０１とユーザ設定テーブル１０３との各論理領域の容量（図５、図７参照）が変更されたかどうかを判断する（ステップ２６３５）。
【００６２】
論理領域の容量が変更された場合は（ステップ２６３５のＹｅｓ）、容量変更処理（図３２参照）を実行して（ステップ２６４０）ステップ２６６０に進み、他方、変更されなかった場合は（ステップ２６３５のＮｏ）、ユーザ設定テーブル１０３にマスターテーブル１０１にはない新規な論理領域を作成したかどうかを判断する（ステップ２６４５）。その結果、論理領域を作成したと判断された場合（ステップ２６４５のＹｅｓ）は、新規領域作成処理（図３５参照）を実行して（ステップ２６５０）ステップ２６６０に進み、他方、作成されていなかった場合（ステップ２６４５のＮｏ）は、マスターテーブル１０１のシステム情報のユーザ設定（図５参照）を完了にする（ステップ２６５５）。
ステップ２６６０では、マスターテーブル１０１のシステム情報のユーザ設定（図５参照）を未完了にする。以上で、ユーザ設定テーブル反映処理を終了する。
【００６３】
図２７はステップ２６１０のレベル設定処理（図２６）を示すフローチャートである。
ステップ２７０５では、前記した利用可能総量（図２０参照）を仮利用可能総量として記憶する。
ステップ２７１０では、マスターテーブル１０１の領域レベルがユーザ設定テーブル１０３の領域レベルよりも大きい論理領域があるかどうかを判断し、その結果、それがある場合（ステップ２７１０のＹｅｓ）、該当する論理領域の名称を全て記憶し（ステップ２７１５）、論理領域レベル低下判定処理を実行して（ステップ２７２０）ステップ２７２５に進む。他方、無ければ（ステップ２７１０のＮｏ）、ステップ２７２５に進む。
【００６４】
ステップ２７２５において、マスターテーブル１０１の領域レベルがユーザ設定テーブル１０３の領域レベルよりも小さい論理領域がある場合（Ｙｅｓ）、該当する論理領域の名称をすべて記憶し（ステップ２７３０）、領域レベル上昇判定処理（図２９参照）を実行して（ステップ２７３５）、ステップ２７４０に進む。他方、無ければ（ステップ２７２５のＮｏ）、ステップ２７４０に進む。
ステップ２７４０では、マスターテーブル１０１の動作内容の値が「設定不可」かどうか判定し、判定の結果、「設定不可」でない場合は（ステップ２７４０のＮｏ）、ユーザ設定テーブル１０３の領域レベルをマスターテーブル１０１に反映させる。その後、レベル設定処理を終了する。
他方、動作内容の値が「設定不可」の場合は（ステップ２７４０のＹｅｓ）、レベル設定処理を終了する。
【００６５】
図２８はステップ２７２０の領域レベル低下判定処理（図２７）を示すフローチャートである。
ステップ２８０５では、ステップ２７１５（図２７参照）で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称を読み込む。
ステップ２８１０では、読み込んだ論理領域の名称に対応する論理領域の領域レベルが、マスターテーブル１０１のシステムレベル（図５参照）未満かどうかを判定し、判定の結果、領域レベルがシステムレベル以上の場合は（ステップ２８１０のＮｏ）、ステップ２８２５に進む。他方、領域レベルがシステムレベル未満の場合（ステップ２８１０のＹｅｓ）、マスターテーブル１０１の動作内容（図５参照）の値を「ミラーレベル」にして（ステップ２８１５）、仮利用可能総量に該当論理領域分の大きさを加え、ステップ２８２５に進む。
ステップ２８２５では、記憶している論理領域の名称があるか判定（すべての論理領域の名称に対する処理を実行したかどうかということ）し、判定の結果、それがある場合は（ステップ２８２５のＹｅｓ）、次に領域レベルの大きい論理領域の名称を読み込む（ステップ２８３０）。他方、記憶している論理領域の名称が無くなった場合は（ステップ２８２５のＮｏ）、領域レベル低下判定処理を終了する。
【００６６】
図２９はステップ２７３５の領域レベル上昇判定処理（図２７）を示すフローチャートである。
ステップ２９０５では、ステップ２７３０で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称を読み込む。
ステップ２９１０では、読み込んだ論理領域の名称に対応する、マスターテーブル１０１の領域レベル（図５参照）が、システムレベル未満かどうかを判定し、判定の結果、システムレベル未満で（ステップ２９１０のＹｅｓ）、かつ、ユーザ設定テーブル１０３の領域レベル（図７参照）がマスターテーブル１０１のシステムレベル以上の場合（ステップ２９１５のＹｅｓ）、ステップ２９２０に進む。
ステップ２９２０において、読み込んだ論理領域の名称に関し、ユーザ設定テーブル１０３の領域レベルが、マスターテーブル１０１の上限値レベル以上で（ステップ２９２０のＹｅｓ）、かつ、仮利用可能総量よりも当該論理領域の容量が大きい場合（ステップ２９２５のＹｅｓ）、マスターテーブル１０１の動作内容（図５参照）の値を「設定不可」にして（ステップ２９４５）、領域レベル上昇判定処理を終了する。
ステップ２９３０では、当該論理領域の大きさ分を仮利用可能総量から引き、マスターテーブル１０１の動作内容（図５参照）に「ミラーレベル」に入れて（ステップ２９３５）、ステップ２９４０に進む。
ステップ２９４０では、記憶している他の論理領域の名称があるかを判定し、判定の結果、それがある場合は（ステップ２９４０のＹｅｓ）、次に領域レベルの大きい論理領域の名称を読み込み（ステップ２９５０）、ステップ２９１０に戻って、次に論理レベルが大きい論理領域の名称に関する処理を同様に行う。他方、他の論理領域の名称が無い場合は（ステップ２９４０のＮｏ）、領域レベル上昇判定処理を終了する。
【００６７】
図３０はステップ２６２０の閾値設定処理（図２６）を示すフローチャートである。閾値設定処理では、使用率の閾値の大きい論理領域の名称の順に行う。
ステップ３００５では、ユーザ設定テーブル１０３（図７参照）の閾値を変更した論理領域の名称を記憶する。
ステップ３０１０では、記憶した論理領域の中で閾値の大きい論理領域の名称を読み込む。
ステップ３０１５では、ユーザ設定（ユーザ設定テーブル１０３）の閾値がマスターテーブル１０１の使用率（図４参照：現在のもの）より小さい場合は（ステップ３０１５のＮｏ）、マスターテーブル１０１の動作内容の値に「設定不可」を入れて（ステップ３０３５）、閾値設定処理を終了する。他方、当該閾値が大きい場合は（ステップ３０１５の
Ｙｅｓ）、次の論理領域（閾値が次に大きい論理領域の名称）があれば（ステップ３０２０のＹｅｓ）、次の論理領域を読み込んで（ステップ３０２５）、ステップ３０１５に戻って、当該論理領域に関する処理を同様に行う。このようにして、すべての論理領域についての処理を実行し、それが無くなったら（ステップ３０２０のＮｏ）、ユーザ設定テーブル１０３の閾値をマスターテーブル１０１の使用率の閾値に反映して（ステップ３０３０）、閾値設定処理を終了する。
【００６８】
図３１はステップ２６３０の耐久時間設定処理（図２６）を示すフローチャートである。
ステップ３１０５では、ユーザ設定テーブル１０３の耐久時間をマスターテーブル１０１のディスク情報の耐久時間（図５参照）に反映して、耐久時間設定処理を終了する。
【００６９】
図３２はステップ２６４０の容量変更処理（図２６）を示すフローチャートである。
ステップ３２０５では、前記した利用可能量（図１９参照）を仮利用可能量として記憶する。
ステップ３２１０では、論理領域の容量を減らしている論理領域があるか判定し、無い場合は（ステップ３２１０のＮｏ）、ステップ３２２５に進み、他方、有る場合は（ステップ３２１０のＹｅｓ）、該当する論理領域の名称をすべて記憶し（ステップ３２１５）、容量減少処理（図３３参照）を実行する（ステップ３２２０）。
ステップ３２２５では、論理領域の容量を増やしている論理領域があるか判定し、無い場合は（ステップ３２２５のＮｏ）、ステップ３２４０に進み、他方、有る場合は（ステップ３２２５のＹｅｓ）、該当する論理領域の名称をすべて記憶し（ステップ３２３０）、容量増加処理（図３４参照）を実行する（ステップ３２３５）。
ステップ３２４０では、マスターテーブル１０１の動作内容（図５参照）の値が「設定不可」かどうかを判定し、「設定不可」の場合は（ステップ３２４０のＹｅｓ）、容量変更処理を終了し、他方、「設定不可」でない場合は（ステップ３２４０のＮｏ）、ユーザの設定したユーザ設定テーブル１０３（図７参照）の論理領域の容量をマスターテーブル１０１に反映し（ステップ３２４５）、マスターテーブル１０１（図５参照）の動作内容の値に「容量変更」を入れて（ステップ３２５０）、容量変更処理を終了する。
【００７０】
図３３はステップ３２２０の容量減少処理（図３２）を示すフローチャートである。
ステップ３３０５では、ステップ３２１５（図３２参照）で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称をユーザ設定テーブル１０３（図７参照）から読み込む。
ステップ３３１０では、読み込んだ論理領域の名称に関し、当該論理領域の現在の使用容量（マスターテーブル１０１の使用率から算出したもの）と、ユーザ設定テーブル１０３に設定された論理領域の容量とその閾値とから求められる論理領域の容量（設定後の容量と閾値から求められる容量：設定後の容量ともいう）とを比較する。比較の結果、現在の使用容量が、求められる容量より大きい場合は（ステップ３３１０のＹｅｓ）、マスターテーブル１０１の動作内容の値に「設定不可」を入れて（ステップ３３３０）、容量減少処理を終了する。
他方、現在の使用容量が小さい場合は（ステップ３３１０のＮｏ）、前記した仮利用可能量に論理領域の容量の減少分（現在の使用容量と設定後の容量との差分値）を足す（ステップ３３１５）。
ステップ３３２０では、記憶した論理領域の名称が有るかどうか判定し、有れば（ステップ３３２０のＹｅｓ）、次に領域レベルの高い論理領域の名称を読み込み（ステップ３３２５）、ステップ３３１０に進み、その論理領域に関する処理を実行する。他方、記憶した論理領域の名称が無い場合（ステップ３３２０のＮｏ）、容量減少処理を終了する。
【００７１】
図３４はステップ３２３５の容量増加処理（図３２）を示すフローチャートである。
ステップ３４０５では、ステップ３２１５（図３２参照）で論理領域の名称を記憶した中で領域レベルの最大の論理領域の名称をユーザ設定テーブル１０３から読み込む。
ステップ３４１０では、読み込んだ論理領域の名称に関し、マスターテーブル１０１の論理領域の容量とユーザ設定テーブル１０３の論理領域の容量を比較し、論理領域の容量の増加分が、仮利用可能量より大きいか判定する。その結果、大きい場合は（ステップ３４１０のＹｅｓ）、マスターテーブル１０１の動作内容の値に「設定不可」を入れ（ステップ３４３０）、容量増加処理を終了する。他方、前記した増加分が小さい場合は（ステップ３４１０のＮｏ）、仮利用可能量からその論理領域の増加分を引いて（ステップ３４１５）、ステップ３４２０に進む。
ステップ３４２０では、記憶した論理領域の名称があるかどうかを判定し、あれば（ステップ３４２０のＹｅｓ）、次の領域レベル（高いもの）の論理領域の名称を読み込み（ステップ３４２５）、ステップ３４１０に進み、その論理領域に関する処理を実行する。他方、記憶した論理領域の名称がない場合（ステップ３４２０のＮｏ）、容量増加処理を終了する。
【００７２】
図３５はステップ２６５０の新規領域設定処理（図２６）を示すフローチャートである。
ステップ３５０５では、ステップ２６４５のＹｅｓ（図２６参照）を受け、ユーザ設定テーブル１０３（図７参照）の新規領域（論理領域の容量）が利用可能量よりも大きい場合（ステップ３５０５のＹｅｓ）、当該新規領域の容量を前記利用可能量に書き換え（ステップ３５１０）、ユーザ設定テーブル１０３の新規領域のデータ（ユーザ論理領域情報の各値、ユーザディスク情報の各値）をマスターテーブル１０１（図５、図６参照）に反映し（ステップ３５１５）、マスターテーブル１０１の動作内容（図５参照）の値に「新規作成」を入れ（ステップ３５２０）、新規領域設定処理を終了する。
【００７３】
図３６はステップ２５３５のディスク使用時間計算処理（図２５）を示すフローチャートである。ディスク使用時間計算処理では、全てのディスクに対して、ディスク番号の小さい順にマスターテーブル１０１の使用開始時刻からディスクの使用時間を計算する。
ステップ３６０５では、マスターテーブル１０１のディスク情報（図５参照）から、ディスク番号の一番小さいディスクの情報（使用開始、耐久時間、使用時間の各値）を読み込む。
ステップ３６１０では、読み込んだディスクの情報中の使用開始で示されたディスク使用開始時刻からディスクの使用時間（現在までの累計）を計算する。
該当ディスクの耐久時間を超えて使用され（ステップ３６１５のＹｅｓ）、かつ、該当ディスクにunit0以外の論理領域が有り（ステップ３６２０のＹｅｓ）、さらにその論理領域がミラー化されていない場合は（ステップ３６２５のＹｅｓ）、マスターテーブル１０１の該当論理領域の領域レベルを上限値レベルの一つ下（例えば、５→４）に変更する（ステップ３６３０）。
ステップ３６３５では、マスターテーブル１０１の動作内容の値に「ミラーレベル」を入れて、ステップ３６４０に進む。なお、ステップ３６１５、ステップ３６２０またはステップ３６２５でＮｏの場合も、ステップ３６４０に進む。
ステップ３６４０では、マスターテーブル１０１のディスク情報に次のディスクが無いかどうかを判定し（ステップ３６４０）、あれば（ステップ３６４０のＹｅｓ）、ステップ３６１０に進み、次の番号のディスクに関する処理を実行し、他方、無ければ（ステップ３６４０のＮｏ）、ディスク使用時間計算処理を終了する。
【００７４】
図３７はステップ２５４０の論理領域使用率変化情報取得処理（図２５）を示すフローチャートである。
ステップ３７０５では、マスターテーブル１０１の使用率変化情報（図６参照）が、ユーザ設定テーブル１０３で指定した回数分（つまり、ユーザが設定した回数分）登録されているかを判定し、有れば（ステップ３７０５のＹｅｓ）、マスターテーブル１０１の使用率変化情報から最初に取ったデータ、すなわち以前登録したマスターテーブル１０１の使用率の値を削除し、ステップ３７１５に進む。他方、無ければ（ステップ３７０５のＮｏ）、ステップ３７１５に進む。
ステップ３７１５では、マスターテーブル１０１の使用率を使用率変化情報の値に反映させる（マスターテーブル１０１の使用率を使用率変化情報に加えるともいう）。以上で、本処理を終了する。
【００７５】
図３８はステップ２５５０のシステムレベル情報取得処理（図２５）を示すフローチャートである。
ステップ３８０５では、設定値レベル以上にミラー化されていない論理領域があるかどうかを判定する。具体的には、マスターテーブル１０１の領域レベルが設定値レベル以上で、かつマスターテーブル１０１の論理領域の状態がミラー無を示している論理領域の名称があるかどうかを判定する。その結果、そのような論理領域があれば（ステップ３８０５のＹｅｓ）、マスターテーブル１０１の動作内容の値に「ミラーレベル」を入れる（ステップ３８１５）。
他方、無ければ（ステップ３８０５のＮｏ）、システムレベル未満にミラー化されている論理領域があるかどうかを判定する（ステップ３８１０）。具体的には、マスターテーブル１０１の領域レベルがシステムレベル未満で、かつマスターテーブル１０１の論理領域の状態がミラー有を示している論理領域の名称があるかどうかを判定する。その結果、そのような論理領域があれば（ステップ３８１０のＹｅｓ）、ステップ３８１５に進み、他方、なければ（ステップ３８１０のＮｏ）、本処理を終了する。
【００７６】
図３９はステップ１５２０の構成変更実行処理（図１５）を示すフローチャートである。
ステップ３９０５では、マスターテーブル１０１を読み込む。
ステップ３９１０では、マスターテーブル１０１の動作内容の値がどれかを判定し、「緊急」の場合は緊急動作処理（図４０参照）を実行し（ステップ３９１５）、「不足」の場合は不足動作処理（図４１参照）を実行する（ステップ３９２０）。
「書き込み」の場合は、書き込み動作処理（図４２参照）を実行し（ステップ３９２５）、「ミラーレベル」の場合は、ミラーレベル処理（図４３参照）を実行する（３９３０）。
「新規作成」の場合は、新規作成動作処理（図４６参照）を実行し（ステップ３９３５）、「構成変更」の場合は、構成変更動作処理（図４７参照）を実行する（ステップ３９４０）。
「容量変更」の場合は、容量変更動作処理（図５０参照）を実行し（ステップ３９４５）、「設定不可」の場合は、マスターテーブル１０１の動作内容の値を消す（ステップ３９５５）。このように動作内容の各値に従って実行した後、構成変更実行処理を終了する。
【００７７】
図４０はステップ３９１５の緊急動作処理（図３９）を示すフローチャートである。
ステップ４００５では、マスターテーブル１０１の動作内容の値を「ミラーレベル」に変更する。
ステップ４０１０では、その後、書き込み領域テーブル１０５（図８参照）を読み込み、そのテーブル１０５の論理領域の名称に書き込む論理領域（例えば、ＸＸ）を記憶する。
ステップ４０１５では、データの大きさから、書き込みに必要な論理領域のブロック数を計算する。
ステップ４０２０では、マスターテーブル１０１のブロック対応情報（図６参照）を参照し、各論理領域の未使用ブロック（利用状況がUnuseの論理ブロック番号分）を利用可能な数だけ、マスターテーブル１０１のブロック対応情報のunit0に登録する。
【００７８】
ステップ４０２５では、ミラー解除が可能な論理領域のミラー先の全ブロックをマスターテーブル１０１のブロック対応情報のunit0に登録する。
ステップ４０３０では、マスターテーブル１０１の内容をストレージ装置３の構成情報テーブル３０５（図１４参照）に反映させる。具体的には、管理サーバ５が、マスターテーブル１０１の内容をＬＡＮを介して、ストレージ装置３に送信し、ストレージ装置３が、その内容に構成情報テーブル３０５の内容に更新する。
ステップ４０３５では、マスターテーブル１０１のunit0の論理ブロック番号のブロックを必要分数、書き込み位置テーブル１０７に登録する。
ステップ４０４０では、サーバ２のデータ書き込みプログラム２０５と、ストレージ装置３の処理（書き込みプログラム３１１とアクセス位置テーブル作成プログラム３１５)が終わるのを待つ。
【００７９】
ステップ４０４５では、ストレージ装置３のアクセス位置テーブル作成プログラム３１５からアクセス位置テーブル３０３を受け取り、アクセス位置テーブル３０３からマスターテーブル１０１へのアクセスがあったブロックを、たとえばUnitXXの論理領域の名称に対応付けて、マスターテーブル１０１に登録し、その利用状況を使用中（Use）にする（ステップ４０５０）。
ステップ４０５５では、たとえばUnitXX（論理領域の名称）がミラー化されているかどうかを判定し、ミラー化されていれば（ステップ４０５５のYes）、当該論理領域のミラーを解除し、マスターテーブル１０１に反映する（ステップ４０６０）。ミラー化の判定では、マスターテーブル１０１の論理領域（UnitXX）の状態がミラー有を示していれば、ミラー化されていると判定する。
【００８０】
ステップ４０６５では、マスターテーブル１０１に追加された論理ブロック情報（論理ブロック番号の値）とその論理領域の名称との組を記憶し、その組の各値と書き込み領域テーブル１０５のデータ名とをデータ対応テーブル１０９に追加して反映する（ステップ４０７０）。
ステップ４０７５では、マスターテーブル１０１の内容をストレージ装置３の構成情報テーブル３０５に反映させ、書き込み完了シグナルをサーバ２のユーザ連絡プログラム２０４に発信し、緊急動作処理を終了する。
【００８１】
図４１はステップ３９２０の不足動作処理（図３９）を示すフローチャートである。
ステップ４１０５では、マスターテーブル１０１の動作内容の値を消し、ステップ４１１０では、書き込み領域テーブル１０５を読み込み、そのテーブル１０５の論理領域の名称に書き込む論理領域（たとえば、unitXX）を記憶する。
ステップ４１１５では、データの大きさから、書き込みに必要な論理領域のブロック数を計算する。
ステップ４１２０では、マスターテーブル１０１のブロック対応情報（図６参照）を参照し、他の論理領域の未使用ブロック（利用状況がUnuseの論理ブロック番号）を利用可能な数分、マスターテーブル１０１のブロック対応情報のunit0に登録する。
【００８２】
ステップ４１２５では、マスターテーブル１０１の内容をストレージ装置３の構成情報テーブル３０５（図１４参照）に登録する。具体的には、管理サーバ５が、マスターテーブル１０１の内容をＬＡＮを介してストレージ装置３に送信し、ストレージ装置３が、その内容に構成情報テーブル３０５の内容に更新する。
ステップ４１３０では、マスターテーブル１０１のunit0の論理ブロック番号のブロックを必要な分だけ、書き込み位置テーブル１０７に登録し、サーバ２のデータ書き込みプログラム２０５に書き込み要求を出す。
ステップ４１３５では、サーバ２のデータ書き込みプログラム２０５と、ストレージ装置３の処理（書き込みプログラム３１１とアクセス位置テーブル作成プログラム３１５)が終わるまで待ち、それが終わると、ストレージ装置３からアクセス位置テーブル３０３をＬＡＮを介して受け取る（ステップ４１４０）。
ステップ４１４５では、アクセス位置テーブル３０３からマスターテーブル１０１へのアクセスがあったブロックを、たとえばUnitXXの論理領域の名称に対応付けて、マスターテーブル１０１に登録し、その利用状況を使用中（Use）にする。
【００８３】
ステップ４１５０では、たとえばUnitXX（論理領域の名称）がミラー化されているかどうかを判定し、ミラー化されていれば（ステップ４１５０のYes）、当該論理領域のミラーを解除してマスターテーブル１０１に反映し、マスターテーブル１０１の動作内容の値に「ミラーレベル」を入れる（ステップ４１５５）。マスターテーブル１０１の論理領域（UnitXX）の状態がミラー有を示していれば、ミラー化されていると判定される。
ステップ４１６０では、マスターテーブル１０１に追加された論理ブロック情報（論理ブロック番号の値）とその論理領域の名称との組を記憶し、その組の各値と書き込み領域テーブル１０５のデータ名とをデータ対応テーブル１０９に追加して反映する（ステップ４１６５）。
ステップ４１７０では、マスターテーブル１０１の内容をストレージ装置３の構成情報テーブル３０５に反映させ、ステップ４１７５では、書き込み完了シグナルをサーバ２のユーザ連絡プログラム２０４に発信し、不足動作処理を終了する。
【００８４】
図４２はステップ３９２５の書き込み動作処理（図３９）を示すフローチャートである。
ステップ４２０５では、マスターテーブル１０１（図５参照）の使用率がその閾値を超えた論理領域の名称を記憶し、ステップ４２１０では、マスターテーブル１０１の使用率変化情報（図６参照）から、該当論理領域の過去の使用率変化を読み込む。
ステップ４２１５では、使用率変化から、構成変更後における該当論理領域に追加する容量の大きさを要求量（容量増加要求量ともいう）として決定する。つまり、増加される論理領域の容量を予測する。たとえば、使用率変化情報（図６参照）を参照し、測定期間中の使用率の変化の割合を求めて、同じ期間経過した時の増加分を要求量にする。図６では、unit４は、前回から現在までの間に２５％（９５％−７０％）増加しているので、この２５％の増加分を見込んで要求量としてもよい。
【００８５】
要求量がunit0の論理領域の容量より小さい場合は（ステップ４２２０のＮｏ）、マスターテーブル１０１のunit0の論理ブロックを要求量分だけ、該当論理領域に割り当て（ステップ４２２５）、ステップ４２４０に進む。他方、要求量がunit0より大きい場合は、unit0のブロックを全て該当論理領域に割り当て（ステップ４２３０）、容量不足シグナルをサーバ２のユーザ連絡プログラム２０４に発信し（ステップ４３４５）、ステップ４２４０に進む。
ステップ４２４０では、マスターテーブル１０１の内容をストレージ装置３に送信して、ストレージ装置３の構成情報テーブル３０５に反映させる。
ステップ４２４５では、その後、マスターテーブル１０１の動作内容の値を消して、書き込み動作処理を終了する。
【００８６】
図４３はステップ３９３０のミラーレベル動作処理（図３９）を示すフローチャートである。
ステップ４３０５では、マスターテーブル１０１の論理領域情報を参照し、システムレベル未満でミラー化されている論理領域があれば（ステップ４３０５のＹｅｓ）、ステップ４３１０に進む。
ステップ４３１０では、システムレベル未満でミラー化されている論理領域について、マスターテーブル１０１のミラー先物理ブロック番号に対応する論理領域をunit０に登録し、ミラー化されているマスターテーブル１０１の論理領域の状態をミラー無しにする。具体的には、当該論理領域に対応する、ミラー先物理ブロック番号とミラー先ディスク番号との組をマスターテーブル１０１（図５参照）およびミラーテーブル１１０（図１１参照）から読み出し、その組に対応する論理領域をunit０としてマスターテーブル１０１に登録する。
【００８７】
ステップ４３１５では、設定値レベル以上でミラー化されていないものがあるかを判定し、無い場合は（ステップ４３１５のＮｏ）、ステップ４３３５に進む。他方、有る場合（ステップ４３１５のＹｅｓ）、ミラー作成処理（図４４参照）を実行する（ステップ４３２０）。
ステップ４３０５Ａでは、システムレベル未満でミラー化されている論理領域があるか判定し、有る場合は（ステップ４３０５ＡのＹｅｓ）、ステップ４３１０に戻り、他方、無い場合（ステップ４３０５ＡのＮｏ）は、上限値レベル以上でミラー化されていない論理領域があるかを判定する（ステップ４３２５）。
上限値レベル以上の論理領域が全てミラー化されている場合は（ステップ４３２５のＮｏ）、ステップ４３３５に進み、そのような論理領域が有る場合は（ステップ４３２５のＹｅｓ）、ミラーレベル緊急シグナルをサーバ２のユーザ連絡プログラム２０４に発信し（ステップ４３３０）、ステップ４３３５に進む。
ステップ４３３５では、マスターテーブル１０１の内容をストレージ装置３に送信し、ストレージ装置３の構成情報テーブル３０５に反映させる。その後、ステップ４３４０では、マスターテーブル１０１の動作内容の値を消し、ミラーレベル動作処理を終了する。
【００８８】
図４４はステップ４３２０のミラー作成処理（図４３）を示すフローチャートである。
ステップ４４１０では、設定値レベル以上でミラー化されていない論理領域を例えば領域群Ａとすると、その領域群Ａの中で、マスターテーブル１０１の領域レベルが最大の論理領域を、例えば領域aとして記憶する。
ステップ４４１５では、領域aが使用しているディスクを、例えばディスク群Ｂとすると、そのディスク群Ｂの中で最も多く領域aの物理ブロックを割り当てているディスクを、例えばディスクbとして記憶する。なお、ディスク群Ｂは、マスターテーブル１０１のブロック対応情報をもとに、領域ａに対応するディスク番号を特定して選定する。
ステップ４４２０では、領域aかつディスクbの物理ブロックを例えばブロック群Ｃとして記憶し、ブロック群Ｃのブロック数を、例えばＭとして記憶する。ブロック群Ｃのブロック数は、領域ａに対応する物理ブロック番号と、ディスクｂに対応する物理ブロック番号とをマスターテーブル１０１から選定し、それらを合算した値である。
【００８９】
ステップ４４２５では、マスターテーブル１０１の全論理領域を例えば領域群Ｄとして記憶し、ステップ４４３０では、領域群Ｄの中で領域レベルの最低の論理領域を例えば領域ｄとして記憶する。
ステップ４４３５では、領域dの未使用ブロック（未使用の物理ブロック）をブロック群Ｅとして記憶し、ステップ４４３７では、そのブロック群Ｅの物理ブロック数Ｎを計算する。
ステップ４４４０では、領域dの使用率の閾値（図５参照）から利用可能な物理ブロック数ｎを計算する。
ステップ４４４５では、ブロック群Eの物理ブロックでミラーを構築できるか判定するために、物理ブロック数Ｎからブロック群Ｅでディスクｂの物理ブロック数を引いた数が物理ブロック数nより大きいか判定する。その結果、大きい場合は（ステップ４４４５のＹｅｓ）、ステップ４４５５に進む。他方、小さい場合は（ステップ４４４５のＮｏ）、物理ブロック数Ｎからブロック群Ｅでディスクｂの物理ブロック数を引いた数を物理ブロック数ｎの値として（ステップ４４５０）、ステップ４４５５に進む。
ステップ４４５５では、ブロック群Ｃの物理ブロックをミラー元の物理ブロックと、ブロック群Ｅかつディスクb以外の物理ブロックをミラー先のブロックとしてミラーテーブル１１０(図１１参照)に登録する。
ステップ４４６０では、ミラーを行う必要のある物理ブロックがあるか判定するために、物理ブロック数Ｍから物理ブロック数ｎを引いた数が負かどうかを判定し、正の場合は、図４５のステップ４５０５に進み、負の場合は、図４５のステップ４５４０に進む。
【００９０】
図４５のステップ４５０５は、物理ブロック数Ｍから物理ブロック数ｎを引いた数をＭとする。
図４５のステップ４５１５では、領域群Ｄの中で、領域ｄの次に領域レベルの低い論理領域があれば（ステップ４５１５のある）、ステップ４５２０に進み、領域群Ｄの中で領域ｄの次に領域レベルが低い論理領域を領域ｄとし、図４４のステップ４４２０に戻る。
他方、図４５のステップ４５１５において、領域レベルの低い論理領域が無ければ（ステップ４５１５のない）、ステップ４５２５では、ミラーテーブル（図１１参照）の内容をクリアし、ステップ４５３０に進む。
ステップ４５３０では、領域aの領域レベルが、マスターテーブル１０１の上限値レベル以上かを判定し、上限値レベル以上の場合は（ステップ４５３０のＹｅｓ）、ステップ４５３５では、システムレベルを上限値レベルの値にして、ミラー作成処理を終了する。
他方、領域aが上限値レベル未満の場合は（ステップ４５３０のＮｏ）、ステップ４５７５では、システムレベルとして領域aの領域レベルより１大きい値をマスターテーブル１０１に登録し、ミラー作成処理を終了する。
【００９１】
ステップ４５４０では、ディスク群Ｂ内でディスクbの次に領域aのブロックを割り当てられているディスクがあるか判定し、ある場合は（ステップ４５４０のある）、ステップ４５４５に進み、そのディスクをディスクbとして、図４４のステップ４４２０に戻る。他方、ない場合は（ステップ４５４０のない）、ミラーテーブル１１０（図１１参照）をストレージ装置３に送り、ストレージ装置３にミラーの同期を実行させる。
ステップ４５５５では、ミラーテーブル１１０の内容をマスターテーブル１０１に反映させる。具体的には、マスターテーブル１０１の論理領域の状態を含む論理領域情報等の値を整合させる。
ステップ４５５７では、マスターテーブル１０１の領域aの論理領域の状態（図５参照）をミラー有りに変更し、ステップ４５６０に進む。
ステップ４５６０では、マスターテーブル１０１を参照し、領域群Ａで領域ａの次に領域レベルの高い論理領域があるかを判定し、ある場合は（ステップ４５６０のある）、その論理領域を領域aとして（ステップ４５６５）、図４４のステップ４４１５に戻る。他方、無い場合は（ステップ４５６０のない）、システムレベルとして設定値レベルをマスターテーブル１０１に登録し（ステップ４５７０）、ミラー作成処理を終了する。
【００９２】
図４６はステップ３９３５の新規作成動作処理（図３９）を示すフローチャートである。
ステップ４６０５では、作成する論理領域（該当論理領域ともいう）の名称を記憶し、ステップ４６１０では、作成する論理領域の容量を記憶する。
ステップ４６１５では、マスターテーブル１０１を参照し、該当論理領域の容量がunit0より大きいか判定し、大きい場合は（ステップ４６１５のＹｅｓ）、unit0の論理ブロックを全て該当論理領域に割り当てる（ステップ４６２５）。ステップ４６３０では、作成要求された論理領域の容量分の要求量からunit０の分だけ引き、ステップ４６３５では、要求量を満たすように領域レベルの低いほうからマスターテーブル１０１の未使用ブロックを割り当て、ステップ４６４０では、容量不足シグナルをサーバ２のユーザ連絡プログラム２０４に送り、ステップ４６４５に進む。
【００９３】
他方、該当論理領域の容量がunit0より小さい場合は（ステップ４６１５のＮｏ）、unit0のブロックから、該当論理領域の容量分だけ該当論理領域に割り当て（ステップ４６２０）、ステップ４６４５に進む。
ステップ４６４５では、マスターテーブル１０１の内容をストレージ装置３に送信し、そのテーブル１０１の内容をストレージ装置３の構成情報テーブル３０５に反映させた後、マスターテーブル１０１の動作内容の値を「ミラーレベル」に変更し、新規作成動作処理を終了する。
【００９４】
図４７はステップ３９４０の構成変更動作処理（図３９）を示すフローチャートである。
ステップ４７０３では、マスターテーブル１０１の動作内容の値を消し、ステップ４７０５では、ユーザによってディスク（耐久時間が超過したものに代わるもの）が追加されたのかどうかを判定する。その結果、追加された場合（ステップ４７０５のＹｅｓ）、ディスク増加処理（図４８参照）を実行し（ステップ４７１０）、ユーザによってディスク（耐久時間が超過したもの）が取り外された場合（ステップ４７０５のＮｏ）、ディスク減少処理（図４９参照）を実行する（ステップ４７１５）。その後、ステップ４７２０では、マスターテーブル１０１の内容をストレージ装置３に送信し、その内容をストレージ装置３の構成情報テーブル３０５（図１４参照）に反映させ、構成変更動作処理を終了する。
【００９５】
図４８はステップ４７１０のディスク増加処理（図４７）を示すフローチャートである。
ステップ４８０５では、追加された該当ディスクの容量を全てunit0としてマスターテーブル１０１に反映し、ステップ４８１０では、ユーザ設定テーブル１０３の領域レベルをマスターテーブル１０１に反映し、ディスク増加処理を終了する。
【００９６】
図４９はステップ４７１５のディスク減少処理（図４７）を示すフローチャートである。
ステップ４９０５では、該当ディスクに所属する物理ブロックに関し、マスターテーブル１０１のマーク（図６参照）の部分に不可マークをつけ、以降、不可マークのついた物理ブロックに対して以下の処理を行う。
マスターテーブル１０１を参照して、不可マークのついた物理ブロックを持つ論理ブロックがミラー化されているかを判定し（ステップ４９１０）、ミラー化されていれば（ステップ４９１０のＹｅｓ）、ステップ４９１５に進み、他方、ミラー化されていなければ(ステップ４９１０のＮｏ)、ステップ４９３５に進む。
ステップ４９１５では、該当物理ブロックの所属する論理領域を記憶し、ステップ４９２０では、その該当する論理領域のミラーを解除し（マスターテーブル１０１の論理領域の状態をミラー無にする）、ステップ４９２５では、解除された物理ブロックをunit0に割り当て、ステップ４９３０では、マスターテーブル１０１の動作内容の値を「ミラーレベル」にする。
【００９７】
他方、ステップ４９１０において、ミラー化されていなければ（ステップ４９１０のＮｏ）、ステップ４９３５に進み、マスターテーブル１０１を参照して、該当論理ブロックはUnit0に所属しているかどうかを判定し、所属していれば（ステップ４９３５のＹｅｓ）、ステップ４９４５に進む。他方、所属していなければ（ステップ４９３５のＮｏ）、マスターテーブル１０１の該当論理領域ブロックが所属する論理領域の状態を破損にし（ステップ４９４０）、該当物理ブロックをマスターテーブル１０１のunit0に登録し（ステップ４９４３）、ステップ４９４５に進む。
【００９８】
ステップ４９４５では、マスターテーブル１０１を参照し、該当論理ブロックがunit0に所属せず、かつ、不可マークのついた物理ブロックがあるかを判定し、それがあるならば（ステップ４９４５のＹｅｓ）、Unit０に所属していない次の物理ブロックをマスターテーブル１０１から特定して（ステップ４９４５）、ステップ４９１０に進み、その物理ブロックに関する処理を行う。他方、それが無ければ（ステップ４９４５のＮｏ）、マスターテーブル１０１の不可マークのついた物理ブロック（物理ブロック番号）を削除し（ステップ４９５５）、ディスク減少処理を終了する。
【００９９】
図５０はステップ３９４５の容量変更動作処理（図３９）を示すフローチャートである。
ステップ５００５では、容量を減少させる論理領域（該当論理領域ともいう）の名称を記憶し、ステップ５０１０では、その記憶した中で領域レベルの最大の論理領域をマスターテーブル１０１から読み込む。
ステップ５０１５では、マスターテーブル１０１の該当論理領域に割り当てられている
未使用ブロック（論理ブロックに対応する物理ブロック）の減少分だけ、unit0に割り当てる。
ステップ５０２０では、前記読み込んだ論理領域の中で、他に減少させる論理領域があるかを判定し、他にあれば（ステップ５０２０のＹｅｓ）、次に領域レベルの大きい論理領域を選定して進み（ステップ５０２５）、その論理領域に関するステップ５０２０の処理を行う。他方、論理領域が無ければ（ステップ５０２０のＮｏ）、容量を増加させる論理領域を記憶する（ステップ５０３０）。
ステップ５０４０では、前記記憶した中で領域レベルの最大の論理領域を読み込み、その論理領域について、増加分はunit0だけで足りるか判定し、足りない場合は（ステップ５０４０のＮｏ）、マスターテーブル１０１の各論理領域の未使用ブロック（未使用の論理ブロック）を利用可能分、unit0に割り当て（ステップ５０４５）、ステップ５０５０に進む。他方、足りる場合は（ステップ５０４０のＹｅｓ）、ステップ５０５０に進む。
ステップ５０５０では、unit0に割り当てられている論理ブロックを増加分だけ、該当論理領域に割り当てて、ステップ５０５５に進む。
ステップ５０５５では、前記読み込んだ論理領域の中で、他に増加させる論理領域があるかを判定し、他にあれば（ステップ５０５５のＹｅｓ）、次に領域レベルの大きい論理領域を選定して進み（ステップ５０６０）、その論理領域に関するステップ５０４０の処理を行う。他方、論理領域が無ければ（ステップ５０５５のＮｏ）、マスターテーブル１０１の内容をストレージ装置３に送信して、ストレージ装置３の構成情報テーブル３０５に反映させた後、ステップ５０７０で、マスターテーブル１０１の動作内容の値を消し、容量変更動作処理を終了する。
【０１００】
このように本実施の形態によると、予め確保した記憶領域が無くても、他の目的で割り当てられている記憶領域の未使用部分や冗長性を解除することで得られる部分を、動的に再割り当てすることで容量不足による障害を防ぐことができる。また、各記憶領域の使用している記憶領域の割合(使用率)を構成変更の判断基準に取り入れることで容量不足になる前に構成変更を行えるようにできる。
【０１０１】
これまで説明したボリューム管理システムによって、ストレージ装置３の容量不足の論理領域に対して容量を追加・拡張して論理領域の冗長性を行うが、このストレージ装置３を利用するサーバ２のファイルシステムを考慮する必要がある。
以下、サーバ２でのファイルシステムを考慮したボリューム管理システムについて説明する。なお以下の説明では、これまで説明したものにおいて、追加、変更する部分について説明するものであり、同符号、同処理については既に説明したものと同じ処理を行い、同じ機能を有するものである。
【０１０２】
図５７は、サーバの構成を示したものである。メモリ２４は、図３で説明したプログラムに加え、ファイルシステムインタフェースプログラム５６０１と、ファイルシステムプログラム５６０２とが格納され、これらのプログラムはＣＰＵ２３により実行される。また、メモリ２４は、ファイルシステム要求テーブル５６０３（図５８）と、ファイルシステム登録テーブル５６０４（図５９）とが格納され、ファイルシステムインタフェースプログラム５６０１と、ファイルシステムプログラム５６０２とがこれらのテーブルを参照して処理を行う。
【０１０３】
ファイルシステム要求テーブル５６０３は、図５８に示すように要求、使用論理領域名（論理領域の名称）、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロック、変化要求量の情報を持つ。このファイル要求テーブル５６０３は、ファイルシステムインターフェースプログラム５６０２によって生成される。
要求は、ファイルシステムに関する要求内容を示す情報であり、ファイルシステムの作成を要求する「作成」、ファイルシステムの削除を要求する「削除」、ファイルシステムの拡張を要求「拡張」、ファイルシステムの「縮小」等がある。使用論理領域名は、ファイルシステムを作成したい論理領域の名称である。ファイルシステムの大きさは、作成又は拡張された結果のファイルシステムの大きさを示すものである。開始論理ブロックは、ファイルシステムが現在使用している論理領域のうち開始論理ブロックの位置情報であり、終了論理ブロックは、ファイルシステムが現在使用している論理領域のうち終了論理ブロックの位置情報である。変化要求量は、ファイルシステムの大きさの変化を示す変化量である。
【０１０４】
例えば図５８は、ファイルシステムの「拡張」要求の場合を示しており、論理領域「unit1」に１０ＧＢのファイルシステムが論理ブロック１から論理ブロック１００によって生成されており、新たに５ＧＢを追加することを示している。ファイルシステムの「作成」の場合には、要求として「作成」が指定され、使用論理領域名称が指定される。同様に削除の場合には、要求として「削除」が指定され、論理領域名称が指定される。ファイルシステムの「縮小」の場合は、要求として「縮小」が指定され、使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロック、変化要求量が設定される。なお、「縮小」の場合には、ファイルシステムの大きさ及び開始論理ブロック、あるいは終了論理ブロックのいずれかの指定であってもよい。
【０１０５】
ファイルシステム登録テーブル５６０４は、図５９に示すように使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロックの情報を持つ。使用論理領域名は、ファイルシステムを作成したい論理領域の名前を示す。開始論理ブロックは、ファイルシステムが現在使用している論理領域の開始論理ブロックの位置情報を示すものであり、終了論理ブロックは、ファイルシステムが現在使用している論理記憶領域の終了論理ブロックの位置情報である。ファイルシステムが複数ある場合には、ファイルシステムごとに、使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロックが登録される。
【０１０６】
ファイルシステムの作成、削除、拡張の場合には、ファイルシステムプログラム５６０２からファイルインターフェースプログラム５６０１に要求に基づくファイルシステム要求テーブルの作成を依頼し、作成されたファイルシステム要求テーブルを管理サーバ５のワークロードボリュームマネージャ１へ送る。また縮小の場合には、ワークロードボリュームマネージャ１からファイルシステムインタフェースプログラム５６０１を介して、ファイルシステムプログラム５６０２へ通知される。
【０１０７】
ファイルシステムプログラム５６０２について説明する。ファイルシステム作成処理は、新たにファイルシステムを作成する処理である。ファイルシステムの作成を行う場合の論理領域の名称は、そのファイルシステムを利用するユーザによって指定される場合と、作成の要求だけをユーザが指定しファイルシステムプログラム５６０２によって論理領域の名称が指定される場合がある。ユーザによって指定される場合は、ファイルシステムプログラム５６０２が、当該論理領域の名称がマスターテーブルに既に登録されているかを確認し、既に登録されている場合には、ユーザに再指定を要求する。また、ファイルシステムプログラム５６０２が指定する場合は、マスターテーブルを参照し、まだ使用されていない論理領域の名称を設定する。例えば、unit3まで登録されている場合には、次に数値が大きいunit4を論理領域の名称として設定する。また、削除要求については、ユーザから論理領域の名称が指定される。ファイルシステムプログラムは、ファイルシステムの作成要求と、ファイルシステムを作成する論理領域の名称とをファイルシステムインタフェースプログラム５６０１へ送る。
【０１０８】
また、ファイルシステム削除処理は、既に存在しているファイルシステムを削除する処理であり、ユーザからファイルシステムの削除要求を受けると、ファイルシステム登録テーブルから該当する使用論理領域の名称を読み出し、ファイルシステムの削除要求と、使用論理領域の名称をファイルシステムインタフェースプログラム５６０１へ送る。
また、ファイルシステムプログラム５６０２はデータの書き込み要求に基づいてファイルシステムの容量を監視し、空き領域がない場合や使用率が一定値を超えた場合に容量不足と判断する。この場合、ファイルシステムプログラム５６０２は、ファイルシステムの拡張要求、拡張要求量、拡張するファイルシステムに割当てられている論理領域の名称をファイルシステムインタフェースプログラム５６０１へ送る。この場合、拡張要求量は予め定められた値やユーザからの要求によって設定する値にしてもよいし、ファイルシステムプログラムが決めた値にしてもよい。
【０１０９】
また、ファイルシステムプログラム５６０２は、ファイルシステムの縮小要求、縮小するファイルシステムの存在する論理領域の名称をインタフェースプログラム５６０１から受け取る。これを受けたファイルシステムは、縮小するファイルシステムに割り当てられている論理領域の名称、縮小後のファイルシステムの大きさを他のプログラムに通知することが可能となっている。
【０１１０】
次に、ファイルシステムインターフェースプログラム５６０１について説明する。図６０は、ファイルシステムインターフェースプログラム５６０１の処理のフローチャートを示したものである。まず、ファイルシステムプログラム５６０２からの要求があるかを判断し（ステップ５９０５）、ファイルシステムプログラム５６０２からの要求がない場合（ステップ５９０５のＮｏ）、ワークロードボリュームマネージャ１からの要求があるかを判断し（ステップ５９１０）、ワークロードボリュームマネージャ１からの要求がない場合（ステップ５９１０のＮｏ）、ワークロードボリュームマネージャ１からの拡張不可連絡があるかを判断し（ステップ５９１３）、ワークロードボリュームマネージャ１からの拡張不可連絡がない場合（ステップ５９１３のＮｏ）、外部からの終了要求があるかを判断し（ステップ５９１５）、終了要求がある場合（ステップ５９１５のＹｅｓ）、処理を終了する。終了要求がない場合（ステップ５９１５のＮｏ）、ステップ５９０５に戻り処理を続ける。
【０１１１】
一方、ファイルシステムプログラムからの要求がある場合（ステップ５９０５でＹｅｓ）、ファイルシステム要求テーブル作成処理（図６１）を行い（ステップ５９２０）、ファイルシステムシグナルをワークロードボリュームマネージャ１に送信する（ステップ５９２５）。
【０１１２】
また、ワークロードボリュームマネージャ１からの要求がある場合（ステップ５９１０でＹｅｓ）、ファイルシステム登録テーブル作成処理（図６２）を実行し（ステップ５９３０）、完了通知をワークロードボリュームマネージャに送信する（ステップ５９３５）。
さらに、ワークロードボリュームマネージャ１からの拡張不可連絡がある場合（ステップ５９１３でＹｅｓ）、拡張不可連絡をファイルシステムプログラムに発信する（ステップ５９４０）。
【０１１３】
図６１は、ファイルシステム要求テーブル作成処理のフローチャートを示したものである。まず、ファイルシステムプログラムからの要求が「作成」である場合、ファイルシステム要求テーブルの要求部分に「作成」の値を入れ（ステップ６０１０）、ファイルシステムを作成する論理領域の名前をファイルシステムプログラムから取得し、メモリの空き領域に記憶する（ステップ６０１５）。その後、記憶した内容をファイルシステム要求テーブルに反映し（ステップ６０５５）、処理を終了する。ファイルシステムプログラムからの要求が「削除」である場合、ファイルシステム要求テーブルの要求部分に「削除」の値を入れ（ステップ６０２０）、ファイルシステムを削除する論理領域の名前をファイルシステムプログラムから取得し、論理領域の名前からファイルシステム登録テーブルを使用し、削除するファイルシステムを特定する（ステップ６０２５）。その後、ファイルシステム登録テーブルから削除するファイルシステムの情報を取得するとともに、その内容をメモリの空き領域に記憶し（ステップ６０３０）、記憶した内容をファイルシステム要求テーブルに反映した後（ステップ６０５５）、処理を終了する。また、ファイルシステムプログラムからの要求が「拡張」である場合、ファイルシステム要求テーブルの要求部分に「拡張」の値を入れ（ステップ６０３５）、ファイルシステムを拡張する論理領域の名前、拡張要求量をファイルシステムプログラムから取得し、論理領域の名前からファイルシステム登録テーブルを使用し、拡張するファイルシステムを特定する（ステップ６０４０）。その後、ファイルシステム登録テーブルから拡張するファイルシステムの情報を取得し、メモリの空き領域に記憶する（ステップ６０４５）。同様に拡張要求量を変更要求量としてメモリの空き領域に記憶し（ステップ６０５０）、その後、記憶した内容をファイルシステム要求テーブルに反映した後に（ステップ６０５５）、処理を終了する。
【０１１４】
図６２は、ファイルシステム登録テーブル作成処理のフローチャートを示したものである。まず、要求内容を判断し（ステップ６１０５）、要求が「作成」の場合、ファイルシステムへ作成要求を行う（ステップ６１１０）。該当ファイルシステムの作成後、ファイルシステム要求テーブルの情報をファイルシステム登録テーブルに登録し（ステップ６１１５）、処理を終了する。また、要求が「削除」の場合、ファイルシステムへ削除要求を行う（ステップ６１２０）。次に、該当ファイルシステムの削除後、ファイルシステム登録テーブルの該当ファイルシステムの情報を削除し（ステップ６１２５）、処理を終了する。また要求が「拡張」の場合、ファイルシステムへ拡張要求を行う（ステップ６１３０）。次に、該当ファイルシステムの拡張後の情報をファイルシステム登録テーブルに反映し（ステップ６１３５）、処理を終了する。また、要求が「縮小」の場合、ファイルシステムへ縮小要求を行う（ステップ６１４０）。次に、該当ファイルシステムの縮小後の情報をファイルシステム登録テーブルに反映し（ステップ６１４５）、処理を終了する。
【０１１５】
次に、ワークロードボリュームマネージャ１の処理について、変更する部分を中心に説明する。なお、その他の部分については既に説明したのと同様の処理を行う。
図６３は、図１６で説明した情報取得処理のフローチャートの一部を変更したものである。図１６との違いは、ステップ１６１２において、ファイルシステムシグナルの検出処理を行う点である。ファイルシステムシグナルを検出した場合（ステップ１６１２のＹｅｓ）、ファイルシステムシグナル検知処理（図６４）を行い、他方、検知しなかった場合（ステップ１６１２のＮｏ）、ストレージ装置３のディスク情報テーブル作成プログラム３１７から発信された構成変更シグナルを検知したかどうか判断する（ステップ１６１５）。その他の処理につては、図１６で説明したのと同じ処理を行う。
【０１１６】
図６４は、ファイルシステムシグナル検知処理を示すフローチャートである。
まず、ステップ６３１０で図５８に示したファイルシステム要求テーブルの情報を読み込む。次に、ステップ６３１５でファイルシステム要求が、「拡張」、「作成」、「削除」のいずれであるかを判断する。ファイルシステム要求が「拡張」である場合（ステップ６３１５で「拡張」）、ファイルシステム領域拡張処理（図６５参照）を行い（ステップ６３２０）、処理を終了する。
一方、ファイルシステム要求が「作成」である場合（ステップ６３１５で「作成」）、マスターテーブルにおいて、ファイルシステムを作成する論理領域の開始論理ブロックから終了論理ブロックまでの利用状況に「use」を登録する（ステップ６３２５）。次に、論理開始ブロックと終了論理ブロックの情報及び開始論理ブロックと終了論理ブロックによって決まる論理領域の大きさをファイルシステムの大きさとして、ファイルシステム要求テーブルに登録し（ステップ６３３０）、ファイルシステムインタフェースプログラム５６０１にファイルシステムの作成を要求し（ステップ６３３５）、処理を終了する。
また、ファイルシステムの要求が「削除」である場合（ステップ６３１５で「削除」）、マスターテーブルにおいて、削除するファイルシステムの論理領域の開始論理ブロックから終了論理ブロックまでの利用状況に「unuse」を登録し（ステップ６３４０）、ファイルシステムインターフェースプログラムにファイルシステムの削除を要求し（ステップ６３４５）、処理を終了する。
【０１１７】
図６５は、ステップ６３２０のファイルシステム領域拡張処理を示すフローチャートである。まず、ファイルシステム要求テーブルの情報を拡張情報として一旦退避させるためメモリの空き領域に記憶する（ステップ６４０５）。次に、ファイルシステム要求テーブルの変化要求量を拡張要求量とし（ステップ６４１０）、ファイルシステム縮小処理（図６６）を行う（ステップ６４１５）。このファイルシステム縮小処理は、拡張対象の論理領域以外の論理領域の空き領域を作成するための処理である。ファイルシステム縮小処理が終了するとメモリに退避させた拡張情報をファイルシステム要求テーブルに戻し（ステップ６４２０）、利用可能量計算処理（図１９）を行う（ステップ６４２５）。利用可能量計算処理は、既に図１９で説明したように論理領域の未使用部分で利用できる量を計算する処理である。求められた利用可能量と拡張要求量とを比較し、利用可能量よりも拡張要求量のほうが大きい場合（ステップ６４３０のＹｅｓ）、利用可能総量計算処理（図２０）を実行する（ステップ６４３５）。利用可能総量計算処理は、上限値レベル以下の論理領域を全てミラー解除し、そのことで得られた論理領域の容量を計算する処理である。求められた利用可能総量と拡張要求量とを比較し、利用可能総量よりも拡張要求量の方が大きい場合（ステップ６４４０でＹｅｓ）、ファイルシステムインターフェースプログラムに「拡張不可」を通知し（ステップ６４４５）、マスターテーブルの動作内容に「限界」の値を入れ（ステップ６４５０）、処理を終了する。また、利用可能量が拡張要求量以下の場合（ステップ６４３０のＮｏ）、マスターテーブルの動作内容に「ファイルシステム不足」の値を入れ（ステップ６４５５）、処理を終了する。利用可能総量が拡張要求量以下の場合（ステップ６４４０のＮｏ）、マスターテーブルの動作内容に「ファイルシステム緊急」の値を入れ（ステップ６４６０）、処理を終了する。
【０１１８】
図６６は、ステップ６４１５のファイルシステム縮小処理のフローチャートを示したものである。ファイルシステム縮小処理は、ファイルシステムを縮小させた後、マスターテーブルに登録されているそれぞれの論理領域を構成する論理ブロックのうち、ファイルシステムに割当てられていない論理ブロックをunit0に登録するものである。この求めた論理ブロックが拡張に利用できる論理ブロックとなる。まず、マスターテーブルの論理領域情報の論理領域の名称で一番上に登録された論理領域を特定する（ステップ６５０５）。次に特定された論理領域上にあるファイルシステムの縮小要求をファイルシステムインターフェースプログラムに対して行い（ステップ６５１０）、ファイルシステムインターフェースプログラムの完了連絡を受けて、ファイルシステム登録テーブルのファイルシステムの大きさから、縮小後のファイルシステムに割当てられている最後の論理ブロックを求め、それ以降の論理ブロックをマスターテーブル上でunit0に登録する（ステップ６５１５）。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映する（ステップ６５２０）。unit0以外の論理領域がマスターテーブルに登録されているか判断し（ステップ６５２５）、登録されていれば（ステップ６５２５）、当該論理領域を特定の論理領域としてステップ６５１０からステップ６５２０の処理を行う。unit0以外の論理領域がマスターテーブルに登録されていない場合（ステップ６５２５のＮｏ）、処理を終了する。
【０１１９】
図６７は、ステップ１５２０の構成変更実行処理を示すフローチャートである。図３９に示したフローチャートとの違いは、マスターテーブルの動作内容が「ファイルシステム不足」の場合に行うファイルシステム不足動作処理（ステップ６６０５）と、動作内容が「ファイルシステム緊急」の場合に行うファイルシステム緊急動作処理（ステップ６６１０）が追加されている点である。
【０１２０】
図６８は、ステップ６６０５のファイルシステム不足動作処理のフローチャートを示したものである。まず、マスターテーブルの動作内容の値を消去し（ステップ６７０５）、ファイルシステム要求テーブルの拡張要求量から必要なブロック数を計算する（ステップ６７１０）。各論理ブロックの容量は予め決まっているので、例えば、拡張要求量を論理ブロックの容量で除算することで必要なブロック数を求めることができる。各論理領域の未使用論理ブロックをマスターテーブルのunit0に登録し（ステップ６７１５）、拡張するファイルシステムがある論理領域がミラー化されているか判断する（ステップ６７２０）。拡張するファイルシステムがある論理領域がミラー化されている場合には（ステップ６７２０のＹｅｓ）、ミラーを解除し、ミラーを解除したことをマスターテーブルに反映し、動作内容に「ミラーレベル」の値を入れる（ステップ６７２５）。拡張するファイルシステムがある論理領域がミラー化されていない（ステップ６７２０でＮｏ）、あるいはマスターテーブルの動作内容に「ミラーレベル」の値を入れた後には、マスターテーブルのunit0に割り当てられている論理ブロックの中から、必要なブロック数を当領域に割当てる（ステップ６７３０）。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映し（ステップ６７３５）、ファイルシステムインターフェースプログラムにファイルシステムの拡張を要求する（ステップ６７４０）。ファイルシステムインターフェースプログラムからの拡張完了の通知を受けると、該当論理領域の論理ブロック全てをマスターテーブル上で使用中を意味するuseに設定し（ステップ６７４５）、処理を終了する。
【０１２１】
図６９は、ステップ６６１０のファイルシステム緊急動作処理のフローチャートを示したものである。まず、マスターテーブルの動作内容に「ミラーレベル」の値に変更し（ステップ６８０５）、ファイルシステム要求テーブルの拡張要求量から必要なブロックを計算する（ステップ６８１０）。各論理ブロックの容量は予め決められているので、拡張要求量を論理ブロックの容量で除算することにより、必要なブロック数を求めることができる。次に、利用可能な論理記憶領域のミラーを解除し、マスターテーブルの当該解除した論理ブロックに未使用であることを意味するunuseを登録し（ステップ６８１５）、各論理領域において未使用を意味するunuseとなっている論理ブロックをマスターテーブルのunit0に登録する（ステップ６８２０）。次に、拡張するファイルシステムがある論理領域はミラー化されているか判断し、拡張するファイルシステムがある論理領域がミラー化されている場合（ステップ６８２５のＹｅｓ）、ミラーを解除し、マスターテーブルに反映する（ステップ６８３０）。ミラーを解除し、マスターテーブルに反映（ステップ６５３０）の後、あるいは拡張するファイルシステムがある論理領域がミラー化されていない場合（ステップ６８２５のＮｏ）、マスターテーブルのunit0の論理ブロックを必要なブロック数、当該領域に割り当てる（ステップ６８３５）。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映し（ステップ６８４０）、ファイルシステムインターフェースプログラムにファイルシステムの拡張を要求する（ステップ６８４５）。ファイルシステムインターフェースプログラムからの完了通知を受けて、該当論理領域の論理ブロック全てをマスターテーブル上で使用中を意味するuseに設定し（ステップ６８５０）、処理を終了する。
【０１２２】
なお、本発明は、本実施の形態に限定されない。管理サーバ等のハードウェア構成、データ構造および処理の流れは、本発明の趣旨を逸脱しない限り、変更して構成するようにしてもよい。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施の形態におけるボリューム管理システムの全体的な構成例を示す図である。
【図２】図１に示した管理サーバの構成例を示す図である。
【図３】図１に示したサーバの構成例を示す図である。
【図４】図１に示したストレージ装置の構成例を示す図である。
【図５】図３に示したマスターテーブルを示す図である。
【図６】別のマスターテーブルを示す図である。
【図７】図３に示したユーザ設定テーブルを示す図である。
【図８】図３に示した書き込み領域テーブルを示す図である。
【図９】図３に示した書き込み位置テーブルを示す図である。
【図１０】図３に示したデータ対応テーブルを示す図である。
【図１１】図３に示したミラーテーブルを示す図である。
【図１２】図４に示したディスク情報テーブルを示す図である。
【図１３】図４に示したアクセス位置テーブルを示す図である。
【図１４】図４に示した構成情報テーブルを示す図である。
【図１５】ワークロードボリュームマネージャー処理を示すフローチャートである。
【図１６】情報取得処理を示すフローチャートである。
【図１７】書き込み・削除シグナル検知処理を示すフローチャートである。
【図１８】書き込み領域有無判断処理を示すフローチャートである。
【図１９】利用可能量計算処理を示すフローチャートである。
【図２０】利用可能総量計算処理を示すフローチャートである。
【図２１】論理領域使用率情報取得処理を示すフローチャートである。
【図２２】データの書き込み処理を示すフローチャートである。
【図２３】データの削除処理を示すフローチャートである。
【図２４】構成変更シグナル検知処理を示すフローチャートである。
【図２５】構成変更データ加工処理を示すフローチャートである。
【図２６】ユーザ設定テーブル反映処理を示すフローチャートである。
【図２７】レベル設定処理を示すフローチャートである。
【図２８】領域レベル低下判定処理を示すフローチャートである。
【図２９】領域レベル上昇判定処理を示すフローチャートである。
【図３０】閾値設定判定処理を示すフローチャートである。
【図３１】耐久時間設定処理を示すフローチャートである。
【図３２】容量変更処理を示すフローチャートである。
【図３３】容量減少処理を示すフローチャートである。
【図３４】容量増加処理を示すフローチャートである。
【図３５】新規領域設定処理を示すフローチャートである。
【図３６】ディスク使用時間計算処理を示すフローチャートである。
【図３７】論理領域使用率変化情報取得処理を示すフローチャートである。
【図３８】システムレベル情報取得処理を示すフローチャートである。
【図３９】構成変更実行処理を示すフローチャートである。
【図４０】緊急動作処理を示すフローチャートである。
【図４１】不足動作処理を示すフローチャートである。
【図４２】書き込み動作処理を示すフローチャートである。
【図４３】ミラーレベル動作処理を示すフローチャートである。
【図４４】ミラー作成処理を示すフローチャートである。
【図４５】ミラー作成処理を示すフローチャートである。
【図４６】新規作成動作処理を示すフローチャートである。
【図４７】構成変更動作処理を示すフローチャートである。
【図４８】ディスク増加処理を示すフローチャートである。
【図４９】ディスク減少処理を示すフローチャートである。
【図５０】容量変更動作処理を示すフローチャートである。
【図５１】容量不足回避に関する具体的な動作１を示す説明図である。
【図５２】容量不足回避に関する具体的な動作２を示す説明図である。
【図５３】容量不足回避に関する具体的な動作３を示す説明図である。
【図５４】冗長性に関する具体的な動作１を示す説明図である。
【図５５】冗長性に関する具体的な動作２を示す説明図である。
【図５６】耐久時間と冗長性に関する具体的な動作を示す説明図である。
【図５７】サーバの構成を示す図である。
【図５８】図５７のファイルシステム要求テーブルを示す図である。
【図５９】図５７のファイルシステム登録テーブルを示す図である。
【図６０】ファイルシステムインタフェースプログラムの処理のフローチャートである。
【図６１】ファイルシステム要求テーブル作成処理を示すフローチャートである。
【図６２】ファイルシステム登録テーブル作成処理を示すフローチャートである。
【図６３】図１６の情報取得処理のフローチャートを一部変更した図である。
【図６４】ファイルシステムシグナル検知処理を示すフローチャートである。
【図６５】ファイルシステム領域拡張処理を示すフローチャートである。
【図６６】ファイルシステム縮小処理を示すフローチャートである。
【図６７】構成変更実行処理を示すフローチャートである。
【図６８】ファイルシステム不足動作処理を示すフローチャートである。
【図６９】ファイルシステム緊急動作処理を示すフローチャートである。
【符号の説明】
【０１２４】
２      サーバ
３      ストレージ装置
５      管理サーバ
２３、３５  ＣＰＵ
２４、３４  メモリ
【図１】
2006343924.tif 000003
【図２】
2006343924.tif 000004
【図３】
2006343924.tif 000005
【図４】
2006343924.tif 000006
【図５】
2006343924.tif 000007
【図６】
2006343924.tif 000008
【図７】
2006343924.tif 000009
【図８】
2006343924.tif 000010
【図９】
2006343924.tif 000011
【図１０】
2006343924.tif 000012
【図１１】
2006343924.tif 000013
【図１２】
2006343924.tif 000014
【図１３】
2006343924.tif 000015
【図１４】
2006343924.tif 000016
【図１５】
2006343924.tif 000017
【図１６】
2006343924.tif 000018
【図１７】
2006343924.tif 000019
【図１８】
2006343924.tif 000020
【図１９】
2006343924.tif 000021
【図２０】
2006343924.tif 000022
【図２１】
2006343924.tif 000023
【図２２】
2006343924.tif 000024
【図２３】
2006343924.tif 000025
【図２４】
2006343924.tif 000026
【図２５】
2006343924.tif 000027
【図２６】
2006343924.tif 000028
【図２７】
2006343924.tif 000029
【図２８】
2006343924.tif 000030
【図２９】
2006343924.tif 000031
【図３０】
2006343924.tif 000032
【図３１】
2006343924.tif 000033
【図３２】
2006343924.tif 000034
【図３３】
2006343924.tif 000035
【図３４】
2006343924.tif 000036
【図３５】
2006343924.tif 000037
【図３６】
2006343924.tif 000038
【図３７】
2006343924.tif 000039
【図３８】
2006343924.tif 000040
【図３９】
2006343924.tif 000041
【図４０】
2006343924.tif 000042
【図４１】
2006343924.tif 000043
【図４２】
2006343924.tif 000044
【図４３】
2006343924.tif 000045
【図４４】
2006343924.tif 000046
【図４５】
2006343924.tif 000047
【図４６】
2006343924.tif 000048
【図４７】
2006343924.tif 000049
【図４８】
2006343924.tif 000050
【図４９】
2006343924.tif 000051
【図５０】
2006343924.tif 000052
【図５１】
2006343924.tif 000053
【図５２】
2006343924.tif 000054
【図５３】
2006343924.tif 000055
【図５４】
2006343924.tif 000056
【図５５】
2006343924.tif 000057
【図５６】
2006343924.tif 000058
【図５７】
2006343924.tif 000059
【図５８】
2006343924.tif 000060
【図５９】
2006343924.tif 000061
【図６０】
2006343924.tif 000062
【図６１】
2006343924.tif 000063
【図６２】
2006343924.tif 000064
【図６３】
2006343924.tif 000065
【図６４】
2006343924.tif 000066
【図６５】
2006343924.tif 000067
【図６６】
2006343924.tif 000068
【図６７】
2006343924.tif 000069
【図６８】
2006343924.tif 000070
【図６９】
2006343924.tif 000071