(57)【要約】【課題】ＬＵの使用率にあわせて、容易にディスクのＯＮ／ＯＦＦを制御することを目的とする。【解決手段】複数のディスク２３０を用いて、少なくとも１つ以上のＬＵ２５０を構成しているディスク装置２において、ディスク装置２が、ディスク２３０１本分以上の空容量が生じたことを検知するとＬＵ２５０に保存されている実データを、空容量が生じていないディスク２３０にまとめ、空容量が生じていないディスク２３０でＬＵ２５０を再構成し、ＬＵ２５０を構成していないディスク２３０の電源をＯＦＦにすることを特徴とする。【選択図】図１
2010198464.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスクを用いて、少なくとも１つ以上の論理ユニットを構成しているディスク装置による論理ユニット管理方法であって、
前記ディスク装置が、
ディスクの個数の倍数分の空容量が生じたことを検知すると、
前記論理ユニットに保存されている実データを、いずれかのディスクが空ディスクとなるように、前記複数のディスク間で実データを移動して、前記実データをまとめる処理を行い、
前記処理により生じた空ディスク以外のディスクで論理ユニットを再構成し、
前記論理ユニットを再構成した後、前記論理ユニットを構成していないディスクの電源をＯＦＦにする
ことを特徴とする論理ユニット管理方法。
【請求項２】
前記ディスク装置が、
前記ディスク装置と通信可能なサーバが、前記電源をＯＦＦにされたディスクに実データを書き込もうとしたとき、電源がＯＦＦでないディスクにおいて、実データが格納されていないディスクの位置を検索し、前記検索したディスクの位置へ前記実データを書き込むことを特徴とする請求項１に記載の論理ユニット管理方法。
【請求項３】
現在の論理ユニットにおける実データの位置と、ディスクにおける実データの位置とを対応付けた現在データ位置情報を記憶部に有するとともに、
前記ディスクの数を減らしたときの、前記論理ユニットにおける実データの位置と、ディスクにおける実データの位置を対応付けた縮小データ位置情報を記憶部に、更に有し、
前記ディスク装置が、
前記現在データ位置情報と、縮小データ位置情報を基に、前記ディスク内の実データの移動を行い、前記論理ユニットの再構成を行う
ことを特徴とする請求項１に記載の論理ユニット管理方法。
【請求項４】
前記ディスク装置が、
前記ディスク装置と通信可能なサーバが、前記論理ユニットを構成する各ディスクの使用率を監視し、前記使用率が、所定の値以下となったとき、前記ディスクの個数の倍数分の空容量が生じたと判定する請求項１に記載の論理ユニット管理方法。
【請求項５】
前記ディスク装置が、
現在の論理ユニットにおける実データの位置と、ディスクにおける実データの位置を対応付けた現在データ位置情報を記憶部に有し、
ディスクの数を増やしたときの、論理ユニットにおける実データの位置と、ディスクにおける実データの位置を対応付けた拡張データ位置情報を記憶部に、更に有し、
前記論理ユニットの使用領域が、所定の値以上となったとき、
前記現在データ位置情報と、拡張データ位置情報とを基に、前記ディスク内の実データの移動を行い、
前記ディスクを増やした論理ユニットを再構成する
ことを特徴とする請求項１に記載の論理ユニット管理方法。
【請求項６】
請求項１から請求項５に記載の論理ユニット管理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項７】
複数のディスクを用いて、少なくとも１つ以上の論理ユニットを構成しているディスク装置であって、
ディスクの個数の倍数分の空容量が生じたことを検知すると、前記論理ユニットに保存されている実データを、いずれかのディスクが空ディスクとなるように、前記複数のディスク間で実データを移動して、前記実データをまとめる処理を行い、前記処理により生じた空ディスク以外のディスクで論理ユニットを再構成し、前記論理ユニットを再構成した後、前記論理ユニットを構成していないディスクの電源をＯＦＦにするディスク管理処理部を有する
ことを特徴とするディスク装置。
【請求項８】
前記ディスク装置は、
前記ディスク装置と通信可能なサーバが、前記電源をＯＦＦにされたディスクに実データを書き込もうとしたとき、電源がＯＦＦでないディスクにおいて、実データが格納されていないディスクの位置を検索し、前記検索したディスクの位置へ前記実データを書き込む書込管理処理部を、更に有する
ことを特徴とする請求項７に記載のディスク装置。
【請求項９】
前記ディスク装置は、
現在の論理ユニットにおける実データの位置と、ディスクにおける実データの位置とを対応付けた現在データ位置情報と、
前記ディスクの数を減らしたときの、前記論理ユニットにおける実データの位置と、ディスクにおける実データの位置を対応付けた縮小データ位置情報を有する記憶部を、更に有し、
前記ディスク管理処理部は、
前記現在データ位置情報と、縮小データ位置情報を基に、前記ディスク内の実データの移動を行い、前記論理ユニットの再構成を行う機能を、更に有する
ことを特徴とする請求項７に記載のディスク装置。
【請求項１０】
前記ディスク管理処理部は、
前記ディスク装置と通信可能なサーバが、前記論理ユニットを構成する各ディスクの使用率を監視する機能と、
前記使用率が、予め設定された所定の値以下となったとき、前記ディスクの個数の倍数分の空容量が生じたと判定する機能を有する
ことを特徴とする請求項７に記載のディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理ユニット管理方法、プログラムおよびディスク装置の技術に関する。
【背景技術】
【０００２】
時間と共に変化するデータの価値に応じて、ストレージシステム間のデータマイグレーションを管理するというデータライフサイクル管理の技術がある。また、この技術を更に一歩進めた技術として、アクセス頻度の少ないディスクドライブの回転を停止したり、電源をＯＦＦにしたりすることにより、ストレージシステムの消費電力の低減を図る技術がある。このような技術は、一般にＭＡＩＤ（Massive Arrays of Inactive Disks）として知られている。例えば、特許文献１や特許文献２では、ストレージシステムに接続された算出機からの指示に基づいて、ストレージシステムが提供する論理ボリュームを構成するディスクドライブの電源をＯＮ／ＯＦＦ制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１５７７１０号公報
【特許文献２】特開２００７−２４１３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、サーバ側で使用する記憶領域が複数の物理的なディスクで構成されている場合を考える。特許文献１や、特許文献２に記載の技術では、ディスクの使用状況が変化し、データが保存されていない記憶領域の大きさが、その記憶領域を構成している物理ディスク１本分以上になっても、データがどのディスクに保存されているかディスク装置側では把握していない。そのため、ディスクにおけるデータの有無の情報を基に、物理ディスクの電源を自動でＯＦＦにすることができない。
ディスクにおけるデータの有無を確認せず、ディスクドライブの電源をＯＦＦにした場合、そのディスク上のデータが必要になったときにディスクの電源をＯＮにしなければならず、アクセス時間が遅くなってしまう。
【０００５】
データの保存されていないディスクの電源をＯＦＦにするためには、サーバ管理者により、記憶領域の使用率から電源ＯＮ／ＯＦＦが可能かどうかの判断が必要である。更に、ディスク構成としてＲＡＩＤ（Redundant Arrays of Independent Disks）を利用している場合、サーバ上でデータの片寄せや、記憶領域の拡張・縮小作業などを行い、ディスク装置側でＲＡＩＤの構成変更を行う必要があるため、作業者には多くの知識と手間が要求される。
【０００６】
このようなＲＡＩＤの構成変更を行って、領域を拡張する場合（論理ユニット：ＬＵ（Logical Unit）を構成するディスクを増やす場合）、従来の技術で可能であるが、領域を縮小する場合（ＬＵを構成するディスクを減らす場合）に関してはディスク装置側でデータの保存場所に関する情報を保持していないためできない。
【０００７】
このような背景を鑑みて本発明がなされたのであり、本発明は、ＬＵの使用率にあわせて、容易にディスクのＯＮ／ＯＦＦを制御することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明は、論理ユニット中に物理ディスク１本分以上の空容量が生じたことを検知すると、前記論理ユニットに保存されている実データを、いずれかのディスクが空ディスクとなるように、前記複数のディスク間で実データを移動して、前記実データをまとめる処理を行い、前記処理により生じた空ディスク以外のディスクで論理ユニットを再構成し、前記論理ユニットを構成していないディスクの電源をＯＦＦにすることを特徴とする。
その他の、解決手段については発明を実施するための形態において記載する。
【発明の効果】
【０００９】
本発明によれば、ＬＵの使用率にあわせて、容易にディスクのＯＮ／ＯＦＦを制御することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るディスク管理システムの構成例を示した図である。
【図２】ディスク装置におけるメモリの構成例を示す図である。
【図３】論理ディスク使用状況テーブルの構成例を示す図であり、（ａ）は、「ＬＵ１」に関する論理ディスク使用状況テーブルを示し、（ｂ）は、「ＬＵ２」に関する論理ディスク使用状況テーブルを示す。
【図４】論理ディスクテーブルの構成例を示す図である。
【図５】運用状況テーブルの構成例を示す図である。
【図６】一時保存用ディスクテーブルの構成例を示す図である。
【図７】ＲＡＩＤテーブルの構成例を示す図である。
【図８】拡張用ＲＡＩＤテーブルの構成例を示す図である。
【図９】縮小用ＲＡＩＤテーブルの構成例を示す図である。
【図１０】所属サーバテーブルの構成例を示す図である。
【図１１】本実施形態に係る論理ディスク監視処理の手順を示すフローチャートである。
【図１２】本実施形態に係るディスク管理処理の手順を示すフローチャートである。
【図１３】本実施形態に係る書込管理処理の手順を示すフローチャートである。
【図１４】本実施形態に係るディスク電源ＯＦＦ処理の手順を示すフローチャートである。
【図１５】本実施形態に係るセクタ戻し処理の手順を示すフローチャートである。
【図１６】本実施形態に係るＲＡＩＤ縮小処理の手順を示すフローチャートである。
【図１７】本実施形態に係るセクタ配置処理の手順を示すフローチャートである。
【図１８】本実施形態に係るディスク電源ＯＮ処理の手順を示すフローチャートである。
【図１９】本実施形態に係るＲＡＩＤ拡張処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００１２】
（用語の定義）
ここで、本実施形態で使用する用語について定義しておく。「ディスク」とはディスク装置内の物理ディスクのことを表し、「ＬＵ」とはディスク装置が提供する論理ユニットのことを表す。また、「ブロック」とはディスク上の位置を管理するための単位であり、「セクタ」とはＬＵ上の位置を管理するための単位とする。なお、本実施形態では、説明を簡単にするためブロックの大きさとセクタの大きさを同じものとして扱っている。更に、「実データ」とは、ＬＵに書き込まれ、保存されるデータを指し、テーブルに格納されているデータは「情報」と記載して、両者を区別することとする。
【００１３】
［システム構成］
図１は、本実施形態に係るディスク管理システムの構成例を示した図である。
ディスク管理システム１０は、サーバ１と、ディスク装置２と、スイッチ３とを有してなる。サーバ１とディスク装置２は、サーバ１の通信インタフェース１２０とスイッチ３とディスク装置２の通信インタフェース２６０とを介して、互いに接続されている。またサーバ１と同様の構成を有するサーバ１ａも同様にディスク装置２に接続することが可能である。このように、ディスク装置２は、複数のサーバ１と接続することが可能である。
【００１４】
サーバ１は、ディスク装置２におけるＬＵ２５０の使用量を監視し、監視結果をディスク装置２へ通知する機能を有する。
サーバ１は、ＣＰＵ（Central Processing Unit）１１０と、メモリ１００と、通信インタフェース１２０とを有している。通信インタフェース１２０については、前記したため、ここでは説明を省略する。ディスク装置２のＬＵ２５０に格納されているプログラムが、ＲＡＭ（Random Access Memory）などで構成されるメモリ１００に展開され、ＣＰＵ１１０によって実行されることによって、論理ディスク監視処理部１０１や、アプリケーション１０２や、図示しない業務アプリケーションが、具現化している。
【００１５】
論理ディスク監視処理部１０１は、ＬＵ２５０の使用状況を監視し、その監視結果をディスク装置２のディスク管理処理部２０１へ伝える機能を有する。
アプリケーション１０２は、ＬＵ２５０への書き込みやＬＵ２５０上のどの位置を使用しているかの把握、図示しない入力部を介して入力された論理ディスク監視処理部１０１への終了命令、ディスク管理処理部２０１への終了命令を行う機能を有する。
【００１６】
また、メモリ１００には、ＬＵ２５０などに格納されている論理ディスク使用状況テーブル１０３および論理ディスクテーブル１０４が、一時的に格納されている。論理ディスク使用状況テーブル１０３は図３を参照して後記し、論理ディスクテーブル１０４は図４を参照して後記する。
【００１７】
ディスク装置２は、ＣＰＵ２１０と、メモリ２００（記憶部）と、キャッシュ２２０と、複数のディスク２３０と、一時保存用ディスク２４０と、通信インタフェース２６０とを有する。通信インタフェース２６０については、前記したため、ここでの説明を省略する。また、ディスク装置２は複数のディスク２３０を使用したＲＡＩＤ構成の複数のＬＵ２５０(「ＬＵ１」、「ＬＵ２」)を構成している。このＬＵ２５０には、アプリケーション１０２や、業務アプリケーションのプログラムなどが格納されおり、前記したように、これらのプログラムがサーバ１のメモリ１１０に展開され、ＣＰＵ１１０によって実行されることにより、サーバ１はサービスの提供を受けることができる。
一時保存用ディスク２４０は、ＲＡＩＤの再構成を行う際に、一時的にＬＵ２５０の実データを退避させるためのディスクである。
【００１８】
図２は、ディスク装置におけるメモリの構成例を示す図である。
メモリ２００には、図示しないＲＯＭ（Read Only Memory）などの不揮発性記憶装置に格納されているプログラムがメモリ２００に展開され、ＣＰＵ２１０で実行されることにより、ディスク管理処理部２０１と、書込管理処理部２０２を具現化している。
ディスク管理処理部２０１は、ディスク２３０を管理する機能を有する。
また、書込管理処理部２０２は、アプリケーション１０２からの書込処理を管理する機能を有する。
【００１９】
更に、メモリ２００には、ディスク装置２が最初のＲＡＩＤ作成時に作成されるＲＡＩＤ構成テーブル２０３と、運用状況テーブル２０４（現在データ位置情報）と、一時保存用ディスクテーブル２０５と、ＲＡＩＤテーブル２０６と、拡張用ＲＡＩＤテーブル２０７（拡張データ位置情報）と、縮小用ＲＡＩＤテーブル２０８（縮小データ位置情報）と、所属サーバテーブル２０９とが、図示しないＲＯＭ（Read Only Memory）などの不揮発性記憶装置から読み込まれている。各テーブルは、図３〜図１０を参照して後記する
【００２０】
［各種テーブル］
次に、図３〜図１０を参照して、本実施形態で使用する各種テーブルの説明を行う。なお、本実施形態では、テーブルの１行を「エントリ」と記載することとする。
【００２１】
（論理ディスク使用状況テーブル）
図３は、論理ディスク使用状況テーブルの構成例を示す図であり、（ａ）は、「ＬＵ１」に関する論理ディスク使用状況テーブルを示し、（ｂ）は、「ＬＵ２」に関する論理ディスク使用状況テーブルを示す。
論理ディスク使用状況テーブル１０３は、セクタにおける現在のデータ状況を示すテーブルである。論理ディスク使用状況テーブル１０３は、ＬＵ２５０上におけるセクタの位置を示した「ＬＵ上の位置」の項と、そのセクタにおけるデータの有無を示した「実データの有無」の項を有する。また、論理ディスク使用状況テーブル１０３における１行（レコード）を論理ディスク使用状況テーブルエントリと記載する。なお、サーバ１は、自身が使用しているＬＵ２５０に関する論理ディスク使用状況テーブル１０３を有している。つまり、サーバ１が「ＬＵ１」を使用していれば、「ＬＵ１」に関する論理ディスク使用状況テーブル１０３（図３の（ａ））を有しており、サーバ１が「ＬＵ２」を使用していれば、「ＬＵ２」に関する論理ディスク使用状況テーブル１０３（図３の（ｂ））を有している。
【００２２】
（論理ディスクテーブル）
図４は、論理ディスクテーブルの構成例を示す図である。
論理ディスクテーブル１０４は、各ＬＵ２５０に関する情報が格納されているテーブルである。
論理ディスクテーブル１０４は、ＬＵ２５０の名称を示した「ＬＵ名」の項と、そのＬＵ２５０の現在の使用率を示した「使用率」の項と、ＲＡＩＤの構成変更を開始する閾値として使用率の上限を示した「上限閾値」の項と下限を示した「下限閾値」の項とを有する。更に、論理ディスクテーブル１０４は、ＬＵ２５０を構成しているディスク２３０の数を示した「割当ディスク数」と、割当ディスクで電源がＯＮになっているディスク２３０の数を示した「使用中ディスク数」の項を持つ。図４に示す論理ディスクテーブル１０４の「ＬＵ１」では、「割当ディスク数」が「４」で、「使用中ディスク数」が「３」となっているが、これは最初４つのディスク２３０でＬＵ２５０を構成し、その後、３つのディスク２３０に縮小されたことを示している。
なお、以下では論理ディスクテーブル１０４の１行を論理ディスクテーブルエントリと記載する。
【００２３】
(運用状況テーブル）
図５は、運用状況テーブルの構成例を示す図である。
運用状況テーブル２０４は、ディスク装置２側で管理する現在のディスク２３０や、ＬＵ２５０における情報を格納するテーブルである。
運用状況テーブル２０４は、「パリティグループ情報」の項と、「ディスク上の実データ位置」の項と、「ブロックの状態」の項と、「ブロックの割当先」の項とを有する。
「パリティグループ情報」の項は、対象となっているブロックに格納されている実データが、どのパリティグループに所属しているか、あるいは電源ＯＦＦのディスク２３０に所属しているかの情報を格納する。ここで、パリティグループとは、共通のパリティデータを有する実データのグループである。例えば、実データ「Ｄ１１」と「Ｄ１２」と「Ｄ１３」とからパリティデータ「Ｐ１０」が生成されていれば、実データ「Ｄ１１」と「Ｄ１２」と「Ｄ１３」は同一のパリティグループに属する。同様に、実データ「Ｄ２１」と「Ｄ２２」と「Ｄ２３」とからパリティデータ「Ｐ２０」が生成されていれば、実データ「Ｄ２１」と「Ｄ２２」と「Ｄ２３」は同一のパリティグループに属する。
【００２４】
「ディスク上の実データ位置」の項は、ディスク２３０上のブロックの位置に関する情報を格納する。
「ブロックの状態」の項は、対象となるブロックに対して実データの有無またはパリティ用のブロックかどうかを示す情報が格納されている。「有」はパリティデータ以外の実データが対象となるブロックに格納されており、「パリティデータ」は、パリティデータが格納されており、「無」は実データが格納されていないことを示す。「ブロックの割当先」の項は、対象となっているブロックが、ＬＵ２５０上におけるどのセクタに割り当てられているか、またはどのパリティグループのパリティデータに割り当てられているかを示す情報が格納されている。
以下では、運用状況テーブル２０４の１行を運用状況テーブルエントリと記載する。
【００２５】
（一時保存用ディスクテーブル）
図６は、一時保存用ディスクテーブルの構成例を示す図である。
一時保存用ディスクテーブル２０５は、ＲＡＩＤの再構成を行う際に、一時保存用ディスク２４０に退避した実データのブロック情報や、セクタ情報を格納するためのテーブルである。
一時保存用ディスクテーブル２０５は、「ディスク上の実データ位置」の項と、「ブロックの状態」の項と、「ブロックの割当先」の項を有する。
「ディスク上の実データ位置」の項は、一時保存用ディスク２４０における、対象となっているブロックの位置を示す情報が格納されている。
「ブロックの状態」の項は、対象となっているブロックにおける実データの有無を示す情報が格納されている。
「ブロックの割当先」の項は、対象となっているブロックがどのセクタに割り当てられているかを示す情報を格納する。
以下では、一時保存用ディスクテーブル２０５の１行を一時保存用ディスク２４０エントリと記載する。
【００２６】
（ＲＡＩＤテーブル）
図７は、ＲＡＩＤテーブルの構成例を示す図である。
ＲＡＩＤテーブル２０６は、現在のＲＡＩＤが構成されたときの各ブロックの情報を格納するテーブルである。ここで、ＲＡＩＤテーブル２０６は、ＲＡＩＤが構成された時点のブロックの情報であり、その後、実データが書き込まれることによって、各ブロックの実際の情報はＲＡＩＤテーブル２０６とはズレが生じている。このズレを補正したものが、図５に示す運用状況テーブル２０４であるが、この補正については後記して説明する。
【００２７】
ＲＡＩＤテーブル２０６は、「パリティグループ情報」の項と、「ディスク上の実データ位置」の項と、「ブロックの種類」の項と、「ブロックの割当先」の項とを有する。
「パリティグループ情報」、「ディスク上の実データ位置」、「ブロックの割当先」の各項は、図５の運用状況テーブル２０４と同様であるため、説明を省略する。
「ブロックの種類」は、対象となるブロックが、実データ用かパリティデータ用かを示す情報である。
以下では、ＲＡＩＤテーブル２０６の１行をＲＡＩＤテーブルエントリと記載する。
【００２８】
（拡張用ＲＡＩＤテーブル）
図８は、拡張用ＲＡＩＤテーブルの構成例を示す図である。
拡張用ＲＡＩＤテーブル２０７は、図７に示すＲＡＩＤテーブル２０６におけるＲＡＩＤ構成に対し、ディスク２３０が１つ増えたときの各ブロックの情報を格納するテーブルである。
拡張用ＲＡＩＤテーブル２０７の構成は、図７のＲＡＩＤテーブル２０６と同様であるので、説明を省略するが、図７のＲＡＩＤテーブル２０６が「ディスク１」〜「ディスク３」の３つのディスク２３０における情報を格納しているのに対し、図８の拡張用テーブルでは、「ディスク１」〜「ディスク４」の４つのディスク２３０における情報を格納している。
ＲＡＩＤを拡張する際、ディスク管理処理部２０１は、この拡張用ＲＡＩＤテーブル２０７を参照して、実データの割り振りを決定する。
なお、図８は、ディスク２３０が１つ増えたときのブロックに関する情報を格納しているが、ディスク２３０が２つ以上増えたときの情報を格納してもよいことは当然である。
また、拡張用ＲＡＩＤテーブル２０７の１行を拡張用ＲＡＩＤテーブルエントリと記載することとする。
【００２９】
（縮小用ＲＡＩＤテーブル）
図９は、縮小用ＲＡＩＤテーブルの構成例を示す図である。
縮小用ＲＡＩＤテーブル２０８は、図７に示すＲＡＩＤテーブル２０６におけるＲＡＩＤ構成で、ディスク２３０が１つ減ったときの各ブロックの情報を格納するテーブルである。
縮小用ＲＡＩＤテーブル２０８の構成は、図７のＲＡＩＤテーブル２０６と同様であるので、説明を省略するが、図７のＲＡＩＤテーブル２０６が「ディスク１」〜「ディスク３」の３つのディスク２３０における情報を格納しているのに対し、図９の縮小用テーブルでは、「ディスク１」〜「ディスク２」の２つのディスク２３０における情報を格納している。
ＲＡＩＤを縮小する際、ディスク管理処理部２０１は、この縮小用ＲＡＩＤテーブル２０８を参照して、実データの割り振りを決定する。
なお、図９は、ディスク２３０が１つ減ったときのブロックに関する情報を格納しているが、ディスク２３０が２つ以上減ったときの情報を格納してもよいことは当然である。
また、縮小用ＲＡＩＤテーブル２０８の１行を縮小用ＲＡＩＤテーブルエントリと記載することとする。なお、ＲＡＩＤを構成するためには、通常、３つ以上のディスク２３０が必要であるが、ここでは説明を簡単にするため、２つのディスク２３０でＲＡＩＤを構成するものとする。
【００３０】
（所属サーバテーブル）
図１０は、所属サーバテーブルの構成例を示す図である。
所属サーバテーブル２０９は、各ＬＵ２５０がどのサーバ１で使用され（所属し）、どのようなディスク構成となっているかを示す情報が格納されている。
所属サーバテーブル２０９は、「ＲＡＩＤグループ名」の項と、「ＬＵ名」の項と、「所属サーバ」の項と、「割当ディスク」の項と、「使用中ディスク」の項を有する。
「ＲＡＩＤグループ名」の項は、「ＬＵ名」の項に登録されているＬＵ２５０が、どのＲＡＩＤグループに所属しているか示す情報を格納している。ここで、ＲＡＩＤグループとは、どのディスク２３０が割り当てられているかによってグループ分けしたものである。例えば、図１０における「ＬＵ１」および「ＬＵ２」は、どちらも同じ「ディスク１」〜「ディスク４」が割当ディスクとなっているので、同じＲＡＩＤグループ（「ＲＡＩＤグループ１」）となる。
【００３１】
「所属サーバ」の項は、対象となっているＬＵ２５０がどのサーバ１で使用されているか（どのサーバ１に所属しているか）を示す情報が格納されている。
更に、所属サーバテーブル２０９は、ＬＵ２５０を構成しているディスク数を示した割当ディスクの名称を示す「割当ディスク」の項と、割当ディスクで電源がＯＮになっているディスク２３０の数を示した使用中ディスクの名称を示す「使用中ディスク」の項を有する。図１０に示す論理ディスクテーブル１０４の「ＬＵ１」および「ＬＵ２」では、割当ディスクが「ディスク１」〜「ディスク４」で、使用中ディスクが「ディスク１」〜「ディスク３」となっているが、これは最初「ディスク１」〜「ディスク４」のディスク２３０でＬＵ２５０を構成したが、その後、「ディスク１」〜「ディスク３」のディスク２３０構成に縮小されたことを示している。
なお、所属サーバテーブル２０９の１行を所属サーバテーブルエントリと記載することとする。
【００３２】
（ＲＡＩＤ構成テーブル）
ＲＡＩＤ構成テーブル２０３の構造はＲＡＩＤテーブル２０６と同様の構成をしているため、図示および詳細な説明を省略する。ＲＡＩＤ構成テーブル２０３は、一番最初にＲＡＩＤが構成されたときに作成されるテーブルであり、その後、ＲＡＩＤが再構成されても不変である。
【００３３】
［フローチャート］
次に、図１１〜図１９を参照して、本実施形態に係るフローチャートを説明する。
【００３４】
（論理ディスク監視処理）
図１１は、本実施形態に係る論理ディスク監視処理の手順を示すフローチャートである。
まず、サーバ１の論理ディスク監視処理部１０１が起動されると、論理ディスク監視処理部１０１は、サーバ１自身が使用しているＬＵ２５０をディスク装置２へ通知する（Ｓ１０１）。
次に、論理ディスク監視処理部１０１は、論理ディスク使用状況テーブル１０３と、論理ディスクテーブル１０４を作成する（Ｓ１０２）。論理ディスク使用状況テーブル１０３と、論理ディスクテーブル１０４の作成手順は、以下の通りである。
まず、論理ディスク監視処理部１０１は、アプリケーション１０２から、サーバ１自身が使用しているＬＵ２５０上の、どのセクタに実データが保存されているかという情報を取得する。そして、論理ディスク監視処理部１０１は、論理ディスク使用状況テーブル１０３を参照し、実データが保存されているセクタに対応する論理ディスク使用状況テーブルエントリの「実データの有無」の項に「有」を登録する。また、論理ディスク監視処理部１０１は、実データが保存されていないセクタに対応する論理ディスク使用状況テーブルエントリの「実データの有無」の項に「無」を記入する。このようにして、論理ディスク監視処理部１０１は、論理ディスク使用状況テーブル１０３を作成する。
【００３５】
次に、論理ディスクテーブル１０４の作成手順を説明する。
論理ディスク監視処理部１０１は、論理ディスク使用状況テーブル１０３における同一のＬＵ２５０における「実データの有無」の項における「有」の割合から、ＬＵ２５０の使用率を算出する。そして、論理ディスク監視処理部１０１は、算出した使用率を該当する論理ディスクテーブルエントリの「使用率」の項に登録する。また、論理ディスク監視処理部１０１は、ディスク装置２の所属サーバテーブル２０９を検索し、サーバ１自身が使用しているＬＵ２５０に対応している所属サーバテーブルエントリを取得する。そして、論理ディスク監視処理部１０１は、取得した所属サーバテーブルエントリの「割当ディスク」と、「使用中ディスク」の項の情報から、割当ディスク数と、使用中ディスク数を算出する。続いて、論理ディスク監視処理部１０１は、算出した割当ディスク数と、使用中ディスク数を、該当する論理ディスク使用状況テーブルエントリの「割当ディスク数」と、「使用中ディスク数」の項それぞれに登録する。更に、論理ディスク監視処理部１０１は、割当ディスク数と使用中ディスク数から上限閾値と下限閾値を算出し、アプリケーション１０２が使用しているＬＵ２５０の論理ディスクテーブルエントリの「上限閾値」と「下限閾値」の項を登録する。上限閾値および下限閾値は、予め設定しておいた値を論理ディスクテーブルエントリに格納してもよいし、予め設定しておいた上限閾値や下限閾値（パーセンテージ）から残容量を算出してもよい。
【００３６】
そして、アプリケーション１０２が実データをＬＵ２５０に書き込めるように、ディスク装置２へ書込管理処理部２０２の起動要求を送信する（Ｓ１０３）。
【００３７】
次に、論理ディスク監視処理部１０１は、図示しない入力部を介して終了命令が入力されたか否かを判定する（Ｓ１０４）。
ステップＳ１０４の結果、終了命令が入力された場合（Ｓ１０４→Ｙｅｓ）、論理ディスク監視処理部１０１は、処理を終了する。
ステップＳ１０４の結果、終了命令が入力されていない場合（Ｓ１０４→Ｎｏ）、論理ディスク監視処理部１０１は、ディスク装置２のディスク管理処理部２０１が図１２のステップＳ２０７で送信した使用率確認シグナルを受信したか否かを判定する（Ｓ１０５）。
ステップＳ１０５の結果、使用率確認シグナルを受信している場合（Ｓ１０５→Ｙｅｓ）、論理ディスク監視処理部１０１は、ステップＳ１０７へ処理を進める。
【００３８】
ステップＳ１０５の結果、使用率確認シグナルを受信していない場合（Ｓ１０５→Ｎｏ）、論理ディスク監視処理部１０１は、前回論理ディスク使用状況テーブル１０３と論理ディスクテーブル１０４を更新してから一定時間経過したか否かを判定する（Ｓ１０６）。
ステップＳ１０６の結果、一定時間経過していない場合（Ｓ１０６→Ｎｏ）、論理ディスク監視処理部１０１は、ステップＳ１０４へ処理を戻す。
ステップＳ１０６の結果、一定時間経過している場合（Ｓ１０６→Ｙｅｓ）、論理ディスク監視処理部１０１は、ステップＳ１０２と同様の手順で論理ディスク使用状況テーブル１０３と、論理ディスクテーブル１０４を更新する（Ｓ１０７）。
【００３９】
次に、論理ディスク監視処理部１０１は、論理ディスクテーブル１０４を参照し、サーバ１自身が使用している各ＬＵ２５０の使用率と各閾値（上限閾値、下限閾値）を比較する（Ｓ１０８）。
ステップＳ１０８における比較の結果、対象としているすべてのＬＵ２５０で下限閾値以下である場合（Ｓ１０８→下限閾値以下）、論理ディスク監視処理部１０１は、ディスク装置２のディスク管理処理部２０１へ電源ＯＦＦシグナルと、対象となるＬＵ名を通知し（Ｓ１０９）、ステップＳ１０４へ処理を戻す。
【００４０】
ステップＳ１０８における比較の結果、上限閾値以上の使用率であるＬＵ２５０が存在する場合（Ｓ１０８→上限閾値以下）、論理ディスク監視処理部１０１は、ディスク装置２のディスク管理処理部２０１へ電源ＯＮシグナルと、対象となるＬＵ名を通知し（Ｓ１１０）、ステップＳ１０４へ処理を戻す。
【００４１】
ステップＳ１０８における比較の結果、下限閾値以上を有するＬＵが存在し、かつ上限閾値以上の使用率を有するＬＵ２５０が存在しない場合（Ｓ１０８→それ以外）、論理ディスク監視処理部１０１は、ステップＳ１０４へ処理を戻す。
【００４２】
（ディスク管理処理）
図１２は、本実施形態に係るディスク管理処理の手順を示すフローチャートである。
まず、ディスク管理処理部２０１が起動すると、図１１のステップＳ１０１で送信される通知を待機する。この通知を受信したディスク管理処理部２０１は通知に含まれるサーバ１が使用しているＬＵ名を受信し、ＲＡＩＤテーブル２０６、拡張用ＲＡＩＤテーブル２０７、縮小用ＲＡＩＤテーブル２０８、所属サーバテーブル２０９を作成する（Ｓ２０１）。
具体的には、ディスク管理処理部２０１は、ＲＡＩＤが構成された際に作成されるＲＡＩＤ構成テーブル２０３をコピーすることによりＲＡＩＤテーブル２０６を作成する。
【００４３】
次に、ディスク管理処理部２０１は、ステップＳ２０１で受信した通知に含まれるＬＵ名をキーとして、ＲＡＩＤ構成テーブル２０３（構成は、ＲＡＩＤテーブル２０６と同様）を検索し、「ブロックの割当先」および「ディスク上の実データ位置」の情報から、割当ディスクに関する情報を算出し、更に「パリティグループ情報」から使用中ディスクに関する情報を算出する。そして、ディスク管理処理部２０１は、「ディスク上の実データ位置」から、該当するＬＵ２５０が所属するＲＡＩＤグループ名を抽出する。ディスク管理処理部２０１は、「ＲＡＩＤグループ名」と「ＬＵ名」と「割当ディスク」と「使用中ディスク」とを所属サーバテーブル２０９の該当する項に追加する。
更に、ディスク管理処理部２０１は、論理ディスク監視処理部１０１から通知された、どのＬＵ２５０がどのサーバ１のアプリケーション１０２で使用されているかの情報を、該当する所属サーバテーブルエントリの「所属サーバ」の項に登録することによって、所属サーバテーブル２０９を作成する。
【００４４】
また、ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６を基に、現在使用中のディスク２３０の数より１つディスク２３０を増やした場合の拡張用ＲＡＩＤテーブル２０７を作成し、更に、使用中のディスク２３０の数より１つディスク２３０を減らした場合の縮小用ＲＡＩＤテーブル２０８を作成する。
縮小用ＲＡＩＤテーブル２０８の作成は、ＲＡＩＤテーブル２０６の実データを逐次的に並べ替えることによって行われる。つまり、ディスク数が４つのとき各パリティグループが「Ｄ１，Ｄ２，Ｄ３、Ｐ１」、「Ｄ４，Ｄ５，Ｐ２，Ｄ６」、「Ｄ７，Ｐ３，Ｄ８，Ｄ９」、・・・（Ｄ１，Ｄ２・・・は実データ、Ｐ１、Ｐ２・・・は、パリティデータ）となっていたとすると、ディスク数を３つに減らしたときの各パリティグループは、「Ｄ１，Ｄ２，Ｐ１ａ」、「Ｄ３，Ｐ２ａ，Ｄ４」、「Ｐ３ａ，Ｄ５，Ｄ６」、・・・（Ｐ１ａ、Ｐ２ａ・・・はパリティデータ）となる。各実データと各パリティデータの情報をブロックとセクタとパリティグループの対応関係で表現したものを縮小用ＲＡＩＤテーブル２０８として保存する。
【００４５】
拡張用ＲＡＩＤテーブル２０７の作成も同様であり、ＲＡＩＤテーブル２０６の実データを逐次的に並べ替えることによって行われる。つまり、「Ｄ１」、「Ｄ２」、・・・をディスクに保存されている実データであるとすると、ディスク数が４つのとき各パリティグループが「Ｄ１，Ｄ２，Ｄ３、Ｐ１」、「Ｄ４，Ｄ５，Ｐ２，Ｄ６」、「Ｄ７，Ｐ３，Ｄ８，Ｄ９」、・・・となっていたとすると、ディスク数を５つに増やしたときの各パリティグループは、「Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｐ１ｂ」、「Ｄ５，Ｄ６，Ｄ７，Ｐ２ｂ，Ｄ８」（Ｐ１ｂ、Ｐ２ｂ・・・はパリティデータ）、・・・となる。各実データと各パリティデータの情報をブロックとセクタとパリティグループの対応関係で表現したものを拡張用ＲＡＩＤテーブル２０７として保存する。
【００４６】
ステップＳ２０１の処理後、ディスク管理処理部２０１は、運用状況テーブル２０４を作成する（Ｓ２０２）。具体的には、まず、ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６を運用状況テーブル２０４へコピーする。このとき、ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６における「ブロックの種類」の項を、「ブロックの状態」の項へ対応させる。次に、ディスク管理処理部２０１は、各サーバ１から論理ディスク使用状況テーブル１０３を取得する。そして、ディスク管理処理部２０１は取得した論理ディスク使用状況テーブル１０３の上から１エントリずつ、以下の処理を行う。ディスク管理処理部２０１は、処理対象となっている論理ディスク使用状況テーブルエントリにおける「ＬＵ上の位置」と同じセクタを「ブロックの割当先」に有する運用状況テーブルエントリを検索・取得する。そして、ディスク管理処理部２０１は、対象となっている論理ディスク使用状況テーブルエントリの「実データの有無」の項に格納されている情報を、取得した運用状況テーブルエントリの「ブロックの状態」の項へコピーする。
【００４７】
ステップＳ２０２の処理を行う理由は以下の通りである。
ステップＳ２０１の段階におけるＲＡＩＤテーブル２０６は、ＲＡＩＤを構成または再構成した直後のＲＡＩＤ構成を示すが、前回のディスク管理処理の終了から、今回の起動の間に実データがＬＵ２５０に書込要求が行われる可能性がある。ＬＵ２５０に対する書き込みは、図１３で後記する書込管理処理で行われるが、図１３で説明する通り、電源ＯＦＦのディスク２３０に実データを書き込もうとすると、書込管理処理部２０２が電源ＯＮのディスク２３０の実データが書き込まれていないブロックへ、この実データを自動的に書き込むため、現在のセクタとブロックの関係はＲＡＩＤテーブル２０６とは、異なる構成となる。そこで、ディスク管理処理部２０１は、書込管理処理を起動する前に、最新のセクタと実データとの関係を保持している論理ディスク使用状況テーブル１０３を基に、運用状況テーブル２０４を最新のセクタと実データとの関係に更新する。
【００４８】
そして、アプリケーション１０２から送信された書込要求を処理できるように、書込管理処理部２０２が実データをＬＵ２５０に格納する書込管理処理部２０２を起動する（Ｓ２０３）。書込管理処理の動作は、図１３を参照して後記する。
【００４９】
次に、ディスク管理処理部２０１は、サーバ１の図示しない入力部を介して終了命令が入力されたか否かを判定する（Ｓ２０４）。
ステップＳ２０４の結果、終了命令が入力された場合（Ｓ２０４→Ｙｅｓ）、ディスク管理処理部２０１は、処理を終了する。
ステップＳ２０４の結果、終了命令が入力されていない場合（Ｓ２０４→Ｎｏ）、ディスク管理処理部２０１は、図１１のステップＳ１０９またはステップＳ１１０で送信されたシグナル（電源ＯＦＦシグナルまたは電源ＯＮシグナル）を受信したか否かを判定する（Ｓ２０５）。なお、前記したように、このシグナルには図１１のステップＳ１０８における比較の対象となったＬＵ名が付随している。
ステップＳ２０５の結果、シグナルを受信していない場合（Ｓ２０５→Ｎｏ）、ディスク管理処理部２０１は、ステップＳ２０４へ処理を戻す。
【００５０】
ステップＳ２０５の結果、電源ＯＮシグナルを受信した場合（Ｓ２０５→電源ＯＮシグナル）、ディスク管理処理部２０１は、図１１のステップＳ１１０で電源ＯＮシグナルと共に、通知されたＬＵ名を基に、図１８を参照して後記するディスク電源ＯＮ処理を実行し（Ｓ２０６）、ステップＳ２０４へ処理を戻す。
ステップＳ２０５の結果、電源ＯＦＦシグナルを受信した場合（Ｓ２０５→電源ＯＦＦシグナル）、ディスク管理処理部２０１は、図１１のステップＳ１０９で電源ＯＦＦシグナルとともに、通知されたＬＵ名をキーとして、所属サーバテーブル２０９から、キーとなっているＬＵと同じＲＡＩＤグループに所属するすべてのＬＵ名を取得する。そして、ディスク管理処理部２０１は、取得したＬＵ名を使用しているすべてのサーバ１に対し使用率確認シグナルを送信する（Ｓ２０７）。この処理は、あるＬＵ２５０では使用率が下限閾値を超えていても、他のＬＵ２５０が下限閾値を超えていないときに、ＲＡＩＤ構成の縮小を行ってしまうことを避けるためである。
次に、ディスク管理処理部２０１は、ステップＳ２０７に対する通知先となっているすべてのサーバ１から電源ＯＦＦシグナルを受信したか否かを判定する（Ｓ２０８）。
ステップＳ２０８の結果、通知先すべてから電源ＯＦＦシグナルを受信したわけではない場合（Ｓ２０８→Ｎｏ）、ディスク管理処理部２０１は、ステップＳ２０４へ処理を戻す。
【００５１】
ステップＳ２０８の結果、通知先すべてから電源ＯＦＦシグナルを受信した場合（Ｓ２０８→Ｙｅｓ）、ディスク管理処理部２０１は、対象となるＲＡＩＤグループにおいて、図１４を参照して後記するディスク電源ＯＦＦ処理を実行し（Ｓ２０９）、ステップＳ２０４へ処理を戻す。
【００５２】
（図１１と図１２の概略）
ここで、２台のサーバ１（「サーバＡ」、「サーバＢ」）がそれぞれ同じＲＡＩＤグループに所属しているＬＵ２５０（「ＬＵ１」、「ＬＵ２」）を使用している場合における図１１と図１２の流れを説明する。
「サーバＡ」において、図１１のステップＳ１０５でディスク装置２から使用率確認シグナルを受信しておらず（Ｓ１０５→Ｎｏ）、ステップＳ１０６で、前回更新後、一定時間が経過している場合（Ｓ１０６→Ｙｅｓ）、「サーバＡ」の論理ディスク監視処理部１０１は、ステップＳ１０８で自身が使用している「ＬＵ１」の使用率と、各閾値を比較する。比較の結果、下限閾値以下であった場合、ステップＳ１０９で電源ＯＦＦシグナルとＬＵ名（「ＬＵ１」）をディスク装置２へ通知する。
【００５３】
この通知を、図１２のステップＳ２０５で受信したディスク装置２のディスク管理処理部２０１は、ステップＳ２０７で「ＬＵ１」と同じＲＡＩＤグループに所属する「ＬＵ２」を使用している「サーバＢ」へ使用率確認シグナルを送信する（図１２のステップＳ２０７）。
【００５４】
ディスク装置２から使用率確認シグナルを受信したサーバＢの論理ディスク監視処理部１０１は、ステップＳ１０５で「Ｙｅｓ」と判定し、ステップＳ１０８で「サーバＢ」自身が使用している「ＬＵ２」の使用率と、各閾値を比較する。この結果、「ＬＵ２」の使用率が下限閾値以下であれば（Ｓ１０８→下限閾値以下）、電源ＯＦＦシグナルと、ＬＵ名（「ＬＵ２」）とをディスク装置へ通知する。
【００５５】
「サーバＢ」から電源ＯＦＦシグナルを含む通知を受信したディスク装置２のディスク管理処理部２０１は、図１２のステップＳ２０８で通知先すべて（ここでは「サーバＢ」）から電源ＯＦＦシグナルを受信したと判定し、ステップＳ２０９の処理を行う。
【００５６】
（書込管理処理）
図１３は、本実施形態に係る書込管理処理の手順を示すフローチャートである。
図１３の処理は、図１２のステップＳ２０３で起動される処理である。
まず、サーバ１のアプリケーション１０２は、ＬＵ２５０に書き込むための実データと、書込先のセクタ名とが対となっている書込要求を書込管理処理部２０２へ送信する。
書込管理処理部２０２は、アプリケーション１０２から書込要求があるかを判定する（Ｓ３００）。
ステップＳ３００の結果、書込要求がない場合（Ｓ３００→Ｎｏ）、書込管理処理部２０２は、ステップＳ３００へ処理を戻す。
ステップＳ３００の結果、書込要求がある場合（Ｓ３００→Ｙｅｓ）、書込管理処理部２０２は、ステップＳ３０１へ処理を進める。
書込管理処理部２０２が、サーバ１のアプリケーション１０２から書込要求を受け取ると、書込要求があったセクタ名をキーとして、運用状況テーブル２０４（図５）を検索し、対象となっているセクタ名を「ブロックの割当先」の項に有する運用状況テーブルエントリ（以下、「エントリ１」と記載）を取得する（Ｓ３０１）。
【００５７】
続いて、書込管理処理部２０２は、取得した「エントリ１」の「パリティグループ情報」の項を参照して、パリティグループ情報が「ＯＦＦ」であるか否かを判定する（Ｓ３０２）。
パリティグループ情報が「ＯＦＦ」でない場合（Ｓ３０２→Ｎｏ）、書込管理処理部２０２は、ステップＳ３０５へ処理を進める。
パリティグループ情報が「ＯＦＦ」である場合（Ｓ３０２→Ｙｅｓ）、このセクタは電源がＯＦＦになっているディスク２３０に所属しているため、書込管理処理部２０２は、ステップＳ３０３，Ｓ３０４の処理を行って、電源がＯＦＦになっていないディスク２３０に所属するセクタで、実データが書き込まれていないブロックに対応付けられているセクタを検索し、このセクタのエントリと書込要求のあったセクタのエントリを入れ替え、書込要求されている実データを書き込む。
【００５８】
つまり、書込管理処理部２０２は、運用状況テーブル２０４を参照して、「パリティグループ情報」が「ＯＦＦ」以外であり、かつ「ブロックの状態」の項が「無」であるブロックを有する運用状況テーブルエントリ（以下、「エントリ２」と記載）を取得する（Ｓ３０３）。
そして、書込管理処理部２０２は、「エントリ１」と「エントリ２」において「ブロックの状態」と「ブロックの割当先」の項に登録されている情報を入れ替える（Ｓ３０４）。
【００５９】
次に、書込管理処理部２０２は、「エントリ１」における「ブロックの状態」の項を「有」にし、「ディスク上の実データ位置」の項が示すブロックに実データを書き込む（Ｓ３０５）。
【００６０】
更に、書込管理処理部２０２は、運用状況テーブル２０４を参照して、「ブロックの状態」の項が「無」の運用状況テーブルエントリ（セクタ）が存在するか否かを判定する（Ｓ３０６）。
ステップＳ３０６の結果、「ブロックの状態」の項が「無」であるセクタが存在する場合（Ｓ３０６→Ｙｅｓ）、書込管理処理部２０２は、ステップＳ３０８へ処理を進める。
ステップＳ３０６の結果、「ブロックの状態」の項が「無」であるセクタが存在しない場合（Ｓ３０６→Ｎｏ）、つまりすべてのセクタに実データが書き込まれている場合、書込管理処理部２０２は、以下の手順で運用状況テーブル２０４を更新する（Ｓ３０７）。
まず、書込管理処理部２０２は、サーバ１が有する論理ディスク使用状況テーブル１０３を取得する。そして、書込管理処理部２０２は、論理ディスク使用状況テーブル１０３および運用状況テーブル２０４を検索して、論理ディスク使用状況テーブルエントリの「ＬＵ上の位置」で示されるセクタと、運用状況テーブルエントリの「ブロックの割当先」が示すセクタが同じである組み合わせを選択する。そして、書込管理処理部２０２は、選択した論理ディスク使用状況テーブルエントリの「ブロックの状態」を、選択した運用状況テーブルエントリの「ブロックの状態」へコピーする。その後、書込管理処理部２０２は、ステップＳ３０８へ処理を進める。
【００６１】
ステップＳ３０７を行う意味は以下の通りである。実データをＬＵ２５０から削除する際、サーバ１やディスク装置２は、実際のＬＵ２５０に格納されている実データを「Ｎｕｌｌ」にすることはなく、サーバ１で管理している論理ディスク使用状況テーブル１０３の情報を「無」にするだけで済ますことが多い。これにより、ディスク装置２へのアクセス回数を減らすことができる。しかしながら、この方式では実データの削除時にディスク装置２に対するＩ／Ｏがないため、ディスク装置２側では実データの削除を検知することができず、従ってディスク装置２で管理されている運用状況テーブル２０４にも実データの削除は反映されない。そこで、書込管理処理部２０２は、運用状況テーブル２０４における「ブロックの状態」がすべて「有」となったとき（Ｓ３０６→Ｎｏ）に、サーバ１の論理ディスク使用状況テーブル１０３の状態を運用状況テーブル２０４に反映させている。これにより、実データの削除時におけるディスク装置２へのアクセス頻度を減らすことを保ちつつ、実際には、空いているブロックがあるのにもかかわらず、運用状況テーブル２０４における「ブロックの状態」がすべて「有」になってしまうことを避けることができる。
書込管理処理部２０２は、図示しない入力部を介して終了命令が入力されたか否かを判定する（Ｓ３０８）。
ステップＳ３０８の結果、終了命令が入力された場合（Ｓ３０８→Ｙｅｓ）、書込管理処理部２０２は、処理を終了し、終了命令が入力されなかった場合（Ｓ３０８→Ｎｏ）、ステップＳ３００へ処理を戻す。
【００６２】
図１３の処理によれば、電源がＯＦＦになっているディスク２３０へ実データを書き込もうとすると、書込管理処理部２０２は電源がＯＮになっているディスク２３０上の実データが書き込まれていないブロックを検出する。そして、書込管理処理部２０２は、検出したブロックに実データを書き込むため、ユーザは、ＲＡＩＤ構成が変更されたことを意識せずに実データをＬＵ２５０に書き込むことができる。
【００６３】
（ディスク電源ＯＦＦ処理）
図１４は、本実施形態に係るディスク電源ＯＦＦ処理の手順を示すフローチャートである。
なお、図１４の処理は、図１２のステップＳ２０９に相当する処理である。
まず、ディスク管理処理部２０１は、ディスク２３０の電源がＯＦＦとなっているものがあれば、すべてをＯＮにする（Ｓ４０１）。ここで、すべてのディスク２３０の電源をＯＮにするのは、図１５で後記しているセクタ戻し処理を実行できるようにするためである。
そして、ディスク管理処理部２０１は、運用状況テーブル２０４におけるセクタの状態をＲＡＩＤ構成時またはＲＡＩＤ再構成時の状態へ戻すセクタ戻し処理を実行する（Ｓ４０２）。セクタ戻し処理については、図１５を参照して後記する。
次に、ディスク管理処理部２０１は、ディスク２３０を減らした状態でＲＡＩＤを再構成するＲＡＩＤ縮小処理を実行する（Ｓ４０３）。ＲＡＩＤ縮小処理については、図１６を参照して後記する。
更に、ディスク管理処理部２０１は、ステップＳ４０３のＲＡＩＤ縮小処理終了直後において、電源がＯＦＦとなるディスク２３０に格納されている実データを電源がＯＮのディスク２３０に移動するセクタ配置処理を実行する（Ｓ４０４）。セクタ配置処理については、図１７を参照して後記する。
【００６４】
そして、ディスク管理処理部２０１は、運用状況テーブル２０４における「ブロックの状態」が「ＯＦＦ」となっているディスク２３０（ＯＦＦにすべきディスク２３０）の電源をＯＦＦにし、所属サーバテーブルエントリの使用中ディスクを更新し、縮小再構成したＲＡＩＤ構成に従ってＲＡＩＤテーブル２０６、拡張用ＲＡＩＤテーブル２０７、縮小用ＲＡＩＤテーブル２０８を更新する（Ｓ４０５）。各テーブルの更新は以下の手順で行う。ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６を拡張用ＲＡＩＤテーブル２０７にコピーすることによって、拡張用ＲＡＩＤテーブル２０７を更新する。また、ディスク管理処理部２０１は、縮小用ＲＡＩＤテーブル２０８をＲＡＩＤテーブル２０６にコピーすることによってＲＡＩＤテーブル２０６を更新する。また、ディスク管理処理部２０１は、新たに作成したＲＡＩＤテーブル２０６を基に、縮小用ＲＡＩＤテーブル２０８を作成する。縮小用ＲＡＩＤテーブル２０８の作成手順は、図１２のステップＳ２０１で説明した通りであるので説明を省略する。
そして、ディスク管理処理部２０１は、図１２の処理へリターンする。
【００６５】
（セクタ戻し処理）
図１５は、本実施形態に係るセクタ戻し処理の手順を示すフローチャートである。
なお、図１５の処理は、図１４のステップＳ４０２に相当する処理である。セクタ戻し処理は、前記したように運用状況テーブル２０４における、実データの書込管理処理（図１３）を行ったために生じるＲＡＩＤ構成時またはＲＡＩＤ再構成時におけるセクタの状態からのズレを直すための処理である。これは、縮小ＲＡＩＤテーブル２０６は、ＲＡＩＤテーブル２０６を基に、つまりＲＡＩＤ構成時またはＲＡＩＤ再構成時におけるセクタの状態を基に作成されているためである。
【００６６】
ディスク管理処理部２０１は、図１５の処理を運用状況テーブル２０４の一番最初のエントリから運用状況テーブルエントリ毎に行う。
まず、ディスク管理処理部２０１は、すべての運用状況テーブルエントリ（エントリ）に対して、ステップＳ５０２〜Ｓ５０４の処理を実行したか否かを判定する（Ｓ５０１）。
ステップＳ５０１の結果、すべての運用状況テーブルエントリに対して、処理していない場合（Ｓ５０１→Ｎｏ）、ディスク管理処理部２０１は、対象となっている運用状況テーブルエントリ(以下、「エントリ１０」と記載)を取得する（Ｓ５０２）。
次に、ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６を検索して、取得した「エントリ１０」における「ディスク上の実データ位置」の項に登録されているブロックと同じブロックを有するエントリ（ＲＡＩＤテーブルエントリ）を取得する。更に、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、取得したＲＡＩＤテーブルエントリにおける「ブロックの割当先」の項に登録されているセクタと同じセクタを有するエントリ（運用状況テーブルエントリ：以下、「エントリ２０」と記載）を取得する（Ｓ５０３）。
【００６７】
そして、ディスク管理処理部２０１は、「エントリ１０」の「ディスク上の実データ位置」が示すブロックに保存されている実データと、「エントリ２０」の「ディスク上の実データ位置」が示すブロックに保存されている実データとを入れ替える（Ｓ５０４）。
続いて、ディスク管理処理部２０１は、ステップＳ５０１へ処理を戻す。
ステップＳ５０１において、すべての運用状況テーブル２０４に対して処理を終了した場合（Ｓ５０１→Ｙｅｓ）、図１４の処理へリターンする。
【００６８】
なお、図１３の処理において実データの入れ替えが実行されていない運用状況テーブルエントリに関しては、「エントリ１０」と「エントリ２０」とが一致するため、実質的にステップＳ５０４における実データの入れ替えは生じない。
【００６９】
（ＲＡＩＤ縮小処理）
図１６は、本実施形態に係るＲＡＩＤ縮小処理の手順を示すフローチャートである。
図１６は、図１４のステップＳ４０３に相当する処理である。図１６では、図１５の処理でＲＡＩＤ構成時またはＲＡＩＤ再構成時のセクタ状態に戻された運用状況テーブル２０４を基に縮小ＲＡＩＤ再構成処理を行う。
【００７０】
図１６の処理は、パリティグループ毎に行われる処理である。
まず、ディスク管理処理部２０１は、処理していないパリティグループがあるか否かを判定する（Ｓ６０１）。
ステップＳ６０１の結果、処理していないパリティグループがある場合（Ｓ６０１→Ｙｅｓ）、ディスク管理処理部２０１は、処理対象となっているパリティグループを「パリティグループ情報」の項に有する運用状況テーブルエントリ（エントリ）を選択し、これらのエントリの実データを一時保存用ディスク２４０にコピーし、その内容を一時保存用ディスクテーブル２０５に登録することにより、一時保存用ディスクテーブル２０５を更新する（Ｓ６０２）。具体的には、まず、ディスク管理処理部２０１は、一時保存用ディスクテーブル２０５に一時保存用ディスクテーブルエントリを確保する。このとき、ディスク管理処理部２０１は、確保した一時保存用ディスクテーブルエントリの「ディスク上の実データ位置」に、一時保存用ディスク２４０のブロックを割り当てる。そして、ディスク管理処理部２０１は、コピーしようとする運用状況テーブルエントリの「ディスク上の実データ位置」が示すブロックに保存されている実データを、一時保存用ディスクテーブルエントリのディスク上の実データ位置で示される場所にコピーする。更に、ディスク管理処理部２０１は、対象となっている運用状況テーブルエントリの「ブロックの状態」と「ブロックの割当先」の情報を、対象となっている一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」にそれぞれコピーする。なお、ステップＳ６０２において、「ブロックの状態」の項がパリティとなっている運用状況テーブルエントリは処理の対象外とする。
【００７１】
次に、ディスク管理処理部２０１は、縮小用ＲＡＩＤテーブル２０８を使って、ＲＡＩＤを再構成し、運用状況テーブル２０４を更新する（Ｓ６０３）。具体的には、ディスク管理処理部２０１は、縮小用ＲＡＩＤテーブル２０８から、処理対象のパリティグループと同じパリティグループ（「ＯＦＦ」は処理対象外となる）を有するエントリに関し１エントリづつ以下の処理を行う。ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、処理の対象となっている縮小用ＲＡＩＤテーブルエントリの「ディスク上の実データ位置」の項が示すブロックと同じブロックを「ディスク上の実データ位置」の項に有するエントリ（運用状況テーブルエントリ）を検出する。そして、ディスク管理処理部２０１は、処理対象となっている縮小用ＲＡＩＤテーブルエントリを、検出した運用状況テーブルエントリへコピーする(「ブロックの種類」の項の情報は「ブロックの状態」の項へコピーする)。
【００７２】
そして、ディスク管理処理部２０１は、一時保存用ディスク２４０へ避難した（コピーした）実データをＬＵ２５０に戻し、運用状況テーブル２０４と一時保存用ディスクテーブル２０５の各テーブルを更新する（Ｓ６０４）。具体的には、以下の手順で行われる。まず、ディスク管理処理部２０１は、処理対象となっているパリティグループと同じパリティグループ情報を有する運用状況テーブルエントリを１エントリづつ検出する。次に、ディスク管理処理部２０１は、検出した運用状況テーブルエントリの「ブロックの割当先」の項を参照し、この項が示すブロックが一時保存用ディスクテーブル２０５の「ブロックの割当先」に存在するか否かを判定する。存在しなければ、ディスク管理処理部２０１は、ステップＳ６０１の処理へ戻る。存在すれば、該当する一時保存用ディスクテーブルエントリの「ディスク上の実データ位置」の項が示すブロックに保存されている実データを、検出した運用状況テーブルエントリの「ディスク上の実データ位置」の項が示すブロックへコピーする。
【００７３】
続いて、ディスク管理処理部２０１は、該当する一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」の項に登録されているデータを、検出した運用状況テーブルエントリの「ブロックの状態」と「ブロックの割当先」の項へコピーする。そして、ディスク管理処理部２０１は、該当する一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」の項に保存されている情報を削除する。その後、パリティグループ内に、パリティデータを生成できるだけの実データがそろっていれば、ディスク管理処理部２０１は、処理対象となっているパリティグループと同一のパリティグループである実データから新たなパリティデータを生成する。
ステップＳ６０４の処理後、ディスク管理処理部２０１は、ステップＳ６０１へ処理を戻し、次のパリティグループに対してステップＳ６０１〜Ｓ６０４の処理を行う。
【００７４】
ステップＳ６０１の結果、処理していないパリティグループがない場合（Ｓ６０１→Ｎｏ）、ディスク管理処理部２０１は一時保存用ディスクテーブル２０５のエントリを、電源ＯＦＦ対象のディスク２３０に該当する運用状況テーブルエントリ（エントリ）へ反映させ、各テーブルを更新し（Ｓ６０５）、図１４の処理へリターンする。この処理において、ディスク管理処理部２０１は、電源がＯＦＦとなるディスク２３０に割り当てられるブロックと、ＬＵ２５０上のセクタを対応付ける。これは、ＲＡＩＤ構成を縮小する際には、逐次的に縮小したディスク２３０のブロックへ割り当てているため、最後に１ディスク分のセクタが余ってしまう。このセクタには、実データが保存されているセクタも含まれている。なぜならば、図１３の書込管理処理において、実データを書き込むために入れ替えたセクタも、図１５のセクタ戻し処理で、すべて元に戻されるためである。そこで、ステップＳ６０５では、ディスク管理処理部２０１が、一時的に余ったセクタを電源がＯＦＦとなる予定のディスク２３０へ割り振る。このままでは、電源がＯＦＦになるディスク２３０に実データが書き込まれたセクタが割り振られたままになってしまうので、電源がＯＦＦとなる予定のディスク２３０へ割り振ったセクタを電源がＯＮとなる予定のディスク２３０へ割り振り直す処理を行う必要がある。この処理は図１７のセクタ配置処理で行う。
【００７５】
ステップＳ６０５の具体的な処理は、以下の手順で行われる。まず、ディスク管理処理部２０１は、縮小用ＲＡＩＤテーブル２０８を検索して、「パリティグループ情報」が「ＯＦＦ」となっているエントリ（縮小用ＲＡＩＤテーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、取得した縮小用ＲＡＩＤテーブルエントリにおける「ディスク上の実データ位置」に登録されているブロックと同じブロックを「ディスク上の実データ位置」に有するエントリ（運用状況テーブルエントリ）を取得する。更に、ディスク管理処理部２０１は、取得した縮小用ＲＡＩＤテーブルエントリの「パリティグループ情報」（「ＯＦＦ」）と「ブロックの割当先」の情報を、取得した運用状況テーブルエントリの「パリティグループ情報」と「ブロックの割当先」へコピーする。
これにより、ディスク管理処理部２０１は、ＲＡＩＤ構成を縮小した際に、電源がＯＦＦとなるディスク２３０のブロックとＬＵ２５０上のセクタとを対応付ける。
【００７６】
次に、ディスク管理処理部２０１は、一時保存用ディスクテーブル２０５を検索して、取得した運用状況テーブルエントリの「ブロックの割当先」に保存されているセクタと同じセクタを「ブロックの割当先」に有するエントリ（一時保存用ディスクテーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、取得した一時保存用ディスクテーブルエントリの「ディスク上の実データ位置」のブロックの実データを、取得している運用状況テーブルエントリの「ディスク上の実データ位置」が示すブロックへコピーする。そして、ディスク管理処理部２０１は、取得している一時保存用ディスクテーブルエントリの「ブロックの状態」の情報を、取得している運用状況テーブルエントリの「ブロックの状態」へコピーする。そして、ディスク管理処理部２０１は、取得している一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」を削除する。
これにより、ディスク管理処理部２０１は、一時保存用ディスク２４０で余っているセクタに保存されている実データを、電源がＯＦＦとなっているディスク２３０へ割り振ると同時に、一時保存用ディスク２４０のセクタとブロックの関係を、運用状況テーブル２０４へ反映する。
【００７７】
（セクタ配置処理）
図１７は、本実施形態に係るセクタ配置処理の手順を示すフローチャートである。
なお、図１７は、図１４のステップＳ４０４に相当する処理である。図１７において、ディスク管理処理部２０１は、電源がＯＦＦとなる予定のディスク２３０へ一時的に割り振られたセクタおよび実データを、電源がＯＮとなる予定のディスク２３０へ割り振り直す処理を行う。
なお、ディスク管理処理部２０１は、運用状況テーブル２０４の一番最初のエントリから運用状況テーブルエントリ毎に行う。
【００７８】
まず、ディスク管理処理部２０１は、すべての運用状況テーブルエントリ（エントリ）について処理を行ったか否かを判定する（Ｓ７０１）。
ステップＳ７０１の結果、すべてのエントリについて処理を行っている場合（Ｓ７０１→Ｙｅｓ）、ディスク管理処理部２０１は、図１４の処理へリターンする。
ステップＳ７０１の結果、すべてのエントリについて処理を行っていない場合（Ｓ７０１→Ｎｏ）、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、「パリティグループ情報」が「ＯＦＦ」であり、かつ「ブロックの状態」が「有」となっているエントリ（運用状況テーブルエントリ：以下、「エントリ１００」と記載)を取得する（Ｓ７０２）。
【００７９】
次に、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、「パリティグループ情報」が「ＯＦＦ」ではなく、「ブロックの状態」が「無」となっているエントリ（運用状況テーブルエントリ：以下、「エントリ２００」と記載)を取得する（Ｓ７０３）。
そして、ディスク管理処理部２０１は、「エントリ１００」の「ディスク上の実データ位置」が示すブロックに保存されている実データを、「エントリ２００」の「ディスク上の実データ位置」が示すブロックに保存されている実データと入れ替える（Ｓ７０４）。なお、このとき、ディスク管理処理部２０１が「エントリ１００」に該当する実データを、「エントリ２００」が示すブロックへコピーしてもよい。続いて、ディスク管理処理部２０１は、運用状況テーブル２０４を参照して、「エントリ１００」の「ブロックの状態」と「ブロックの割当先」の情報を、「エントリ２００」のそれらと入れ替える。
そして、ディスク管理処理部２０１は、ステップＳ７０１へ処理を戻し、「エントリ１００」がなくなるまでステップＳ７０１〜Ｓ７０４の処理を行う。
【００８０】
（ディスク電源ＯＮ処理）
図１８は、本実施形態に係るディスク電源ＯＮ処理の手順を示すフローチャートである。
なお、図１８の処理は、図１２のステップＳ２０６に相当する処理である。
まず、ディスク管理処理部２０１は、ディスク２３０の電源がＯＦＦとなっているものがあれば、すべてをＯＮにする（Ｓ８０１）。ここで、すべてのディスク２３０の電源をＯＮにするのは、図１４のステップＳ４０１と同様、セクタ戻し処理を実行できるようにするためである。
そして、ディスク管理処理部２０１は、運用状況テーブル２０４における「セクタの状態」をＲＡＩＤ構成時またはＲＡＩＤ再構成時の状態へ戻すセクタ戻し処理を実行する（Ｓ８０２）。セクタ戻し処理については、図１５を参照して説明したため説明を省略する。
次に、ディスク管理処理部２０１は、ディスク２３０を増やした状態でＲＡＩＤを再構成するＲＡＩＤ拡張処理を実行する（Ｓ８０３）。ＲＡＩＤ拡張処理については、図１９を参照して後記する。
更に、ディスク管理処理部２０１は、ステップＳ８０３のＲＡＩＤ拡張処理終了直後において、電源がＯＦＦとなるディスク２３０に格納されている実データを電源がＯＮのディスク２３０に移動するセクタ配置処理を実行する（Ｓ８０４）。セクタ配置処理については、図１７を参照して説明したため、ここでは説明を省略する。
【００８１】
そして、ディスク管理処理部２０１は、運用状況テーブル２０４における「ブロックの状態」が「ＯＦＦ」となっているディスク２３０（ＯＦＦにすべきディスク２３０）の電源をＯＦＦにし、所属サーバテーブルエントリの「使用中ディスク」を更新し、拡張再構成したＲＡＩＤ構成に従ってＲＡＩＤテーブル２０６、拡張用ＲＡＩＤテーブル２０７、縮小用ＲＡＩＤテーブル２０８を更新する（Ｓ８０５）。各テーブルの更新は以下の手順で行う。ディスク管理処理部２０１は、ＲＡＩＤテーブル２０６を縮小用ＲＡＩＤテーブル２０８にコピーすることによって、縮小用ＲＡＩＤテーブル２０８を更新する。また、ディスク管理処理部２０１は、拡張用ＲＡＩＤテーブル２０７をＲＡＩＤテーブル２０６にコピーすることによってＲＡＩＤテーブル２０６を更新する。更に、ディスク管理処理部２０１は、新たに作成したＲＡＩＤテーブル２０６を基に、拡張用ＲＡＩＤテーブル２０７を作成する。拡張用ＲＡＩＤテーブル２０７の作成手順は、図１２のステップＳ２０１で説明した通りであるので説明を省略する。
【００８２】
（ＲＡＩＤ拡張処理）
図１９は、本実施形態に係るＲＡＩＤ拡張処理の手順を示すフローチャートである。
図１９の処理は、図１８のステップＳ８０３に相当する処理である。
まず、ディスク管理処理部２０１は、所属サーバテーブル２０９を参照して、電源がＯＦＦになっているディスク２３０から電源をＯＮにするディスク２３０（電源ＯＮ対象ディスク２３０）を決定する。このとき、既にすべてのディスク２３０が使用中であり、電源ＯＮ対象ディスク２３０を決定できないとき、ディスク管理処理部２０１はサーバ１にその旨を通知し、サーバ１は図示しない表示部にすべてのディスク２３０が使用中である旨の情報を表示する。
【００８３】
次に、ディスク管理処理部２０１は、電源ＯＮ対象ディスク２３０上の実データを一時保存用ディスク２４０へコピーし、一時保存用ディスクテーブル２０５を更新する（Ｓ９０１）。
具体的には、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、「ディスク上の実データ位置」が、電源ＯＮ対象ディスク２３０上のブロックとなっており、かつ「ブロックの状態」がパリティとなっていないエントリ（運用状況テーブルエントリ）を取得する。
そして、ディスク管理処理部２０１は、一時保存用ディスクテーブル２０５に一時保存用ディスクテーブルエントリを１つ確保し、それぞれのエントリに一時保存用ディスク２４０のブロックを割り当てる。そして、ディスク管理処理部２０１は、取得した運用状況テーブルエントリの「ディスク上の実データ位置」に保存されているブロックの実データを、一時保存用ディスクテーブルエントリの「ディスク上の実データ位置」が示すブロックへコピーする。
続いて、ディスク管理処理部２０１は、処理対象となっている運用状況テーブルエントリの「ブロックの状態」と「ブロックの割当先」の情報を、処理対象となっている一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」にコピーする。
ディスク管理処理部２０１は、すべての運用状況テーブルエントリに関し、ステップＳ９０１の処理を行う。
【００８４】
次に、ディスク管理処理部２０１は、運用状況テーブル２０４において、まだ処理していないパリティグループがあるか否かを判定する（Ｓ９０２）。
ステップＳ９０２の結果、処理していないパリティグループがある場合（Ｓ９０２→Ｙｅｓ）、ディスク管理処理部２０１は、処理対象となっているパリティグループの運用状況テーブル２０４における「ディスク上の実データ位置」が示すブロックの実データをキャッシュ２２０にコピーする（Ｓ９０３）。
具体的には、ディスク管理処理部２０１は、処理対象となっているパリティグループ情報を有する運用状況テーブル２０４を検索して、「ブロックの状態」が「パリティデータ」となっていないエントリ（運用状況テーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、取得した運用状況テーブルエントリの「ディスク上の実データ位置」に保存されているブロックの実データをキャッシュ２２０にコピーし、「ブロックの状態」と、「ブロックの割当先」の情報をキャッシュ２２０のキャッシュテーブルエントリにコピーする。キャッシュエントリの構造は、一時保存用ディスクテーブルエントリと同様であるため、説明を省略する。キャッシュ２２０と、一時保存用ディスク２４０にコピーされる実データの関係については、後記して説明する。
ディスク管理処理部２０１は、処理対象となっているパリティグループに係るすべての運用状況テーブルエントリについて、ステップＳ９０３の処理を行う。
【００８５】
次に、ディスク管理処理部２０１は、拡張用ＲＡＩＤテーブル２０７を使って、運用状況テーブル２０４を更新し、ＲＡＩＤの再構成を行う（Ｓ９０４）。
具体的には、ディスク管理処理部２０１は、拡張用ＲＡＩＤテーブル２０７を検索して、パリティグループ情報が、処理対象となっているパリティグループと同じであるエントリ(拡張用ＲＡＩＤテーブルエントリ)を取得する。続いて、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、取得した拡張用ＲＡＩＤテーブルエントリの「ディスク上の実データ位置」が示すブロックと同じブロックを示すエントリ（運用状況テーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、取得している拡張用ＲＡＩＤテーブルエントリを運用状況テーブルエントリへコピーする(「ブロックの種類」の項は「ブロックの状態」の項へ変換した上でコピーする)。
ディスク管理処理部２０１は、処理対象となっているパリティグループに係るすべての運用状況テーブルエントリおよびすべての拡張用ＲＡＩＤテーブルエントリについて、ステップＳ９０４の処理を行う。
【００８６】
次に、ディスク管理処理部２０１は、キャッシュ２２０にコピーした実データをＬＵ２５０上に戻し、運用状況テーブル２０４を更新した（Ｓ９０５）後、ステップＳ９０２へ処理を戻し、次のパリティグループに対してステップＳ９０２〜Ｓ９０５の処理を行う。
具体的には、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、図示しないキャッシュエントリの「ブロックの割当先」に保存されているブロックと同じブロックを「ブロックの割当先」に有するエントリ（運用状況テーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、処理対象となっているキャッシュエントリの「ブロックの割当先」の実データを運用状況テーブルエントリの「ディスク上の実データ位置」が示すブロックへコピーする。更に、ディスク管理処理部２０１は、キャッシュエントリの「ブロックの状態」と「ブロックの割当先」の情報を、取得している運用状況テーブルエントリの「ブロックの状態」と「ブロックの割当先」へコピーする。このとき、パリティグループ内にパリティデータを生成できるだけの実データがそろっていれば、ディスク管理処理部２０１は、取得している運用状況テーブルエントリの「パリティグループ情報」が処理対象となっているパリティグループと同じパリティグループに対してパリティを有効にする。つまり、新たにグループ分けされたパリティグループの実データから、新しいパリティデータを生成する。
ディスク管理処理部２０１は、処理対象となっているパリティグループに係るすべての運用状況テーブルエントリについて、ステップＳ９０５の処理を行う。
【００８７】
ステップＳ９０２の結果、すべてのパリティグループに対してステップＳ９０３〜Ｓ９０５の処理を行っている場合（Ｓ９０２→Ｎｏ）、ディスク管理処理部２０１は、一時保存用ディスクテーブル２０５のエントリが示す実データをＬＵ２５０上に戻し、一時保存用ディスクテーブル２０５と運用状況テーブル２０４とを更新し（Ｓ９０６）、図１８の処理へリターンする。
具体的には、ディスク管理処理部２０１は、一時保存用ディスクテーブル２０５から１エントリ（一時保存用ディスクテーブルエントリ）を選択する。選択は、例えば、一時保存用ディスクテーブル２０５の一番上のエントリから順に選択される。次に、ディスク管理処理部２０１は、運用状況テーブル２０４を検索して、選択された一時保存用ディスクテーブルエントリの「ブロックの割当先」と同じブロックを「ブロックの割当先」に有するエントリ（運用状況テーブルエントリ）を取得する。そして、ディスク管理処理部２０１は、選択された一時保存用ディスクテーブルエントリの「ディスク上の実データ位置」が示すブロックに保存している実データを、取得した運用状況テーブルエントリの「ディスク上の実データ位置」が示すブロックへコピーする。そして、ディスク管理処理部２０１は、選択した一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」の情報を、取得した運用状況テーブルエントリの「ブロックの状態」と「ブロックの割当先」の項へコピーする。最後に、ディスク管理処理部２０１は、選択した一時保存用ディスクテーブルエントリの「ブロックの状態」と「ブロックの割当先」の情報を削除する。
ディスク管理処理部２０１は、すべての一時保存用ディスクテーブルエントリに対し、ステップＳ９０６の処理を行う。
【００８８】
ここで、一時保存用ディスク２４０に保存される実データと、キャッシュ２２０に保存される実データとの関係を説明する。
ディスク２３０が３つ（「ディスク１」〜「ディスク３」）の状態から、１つディスクが増えた場合（「ディスク１」〜「ディスク４」）について説明する。
図１８のセクタ戻し処理（Ｓ８０２）終了後、「ディスク１」〜「ディスク３」に保存されている各パリティグループを「Ｄ１，Ｄ２，Ｐ１」、「Ｄ３，Ｐ２，Ｄ４」、「Ｐ３，Ｄ５，Ｄ６」、・・・、「Ｄ９７，Ｐ４９，Ｄ９８」とする。そして、現在電源がＯＦＦとなっている「ディスク４」には、「Ｄ９９，Ｄ１００，Ｄ１０１，Ｄ１０２，Ｄ１０３，・・・」が保存されているとする。
【００８９】
まず、ステップＳ９０１において、ディスク管理処理部２０１は、「ディスク４」に格納されている「Ｄ９９，Ｄ１００，Ｄ１０１，Ｄ１０２，Ｄ１０３，・・・」を一時保存用ディスク２４０に退避コピーし、「ディスク４」を空にしておく。
そして、ステップＳ９０３において、ディスク管理処理部２０１は、最初のパリティグループを構成する実データ「Ｄ１，Ｄ２」をキャッシュ２２０にコピーし、ステップＳ９０４，Ｓ９０５で拡張用ＲＡＩＤテーブル２０７に従って、「ディスク１」〜「ディスク４」のデータに割り振る。このときのパリティグループは「Ｄ１，Ｄ２，ＤＮｕｌｌ，ＰＮｕｌｌ」となる。ここで、「ＤＮｕｌｌ」は、実データ用の空セクタであり、ＰＮｕｌｌはパリティデータ用の空セクタである。ディスク管理処理部２０１は、次のパリティグループを構成する実データ「Ｄ３，Ｄ４」をキャッシュにコピーし（Ｓ９０３）、ステップＳ９０４，Ｓ９０５で拡張用ＲＡＩＤテーブル２０７に従って、「ディスク１」〜「ディスク４」のデータに割り振る。このとき、新たな１番目のパリティグループにおいて、パリティデータを生成するのに必要な実データがそろったため、ディスク管理処理部２０１はパリティデータを生成する。このときのパリティグループは「Ｄ１，Ｄ２，Ｄ３，Ｐ１ａ」、「Ｄ４，ＤＮｕｌｌ，ＰＮｕｌｌ，ＤＮｕｌｌ」となる。
【００９０】
ディスク管理処理部２０１は、「ディスク１」〜「ディスク３」で構成されていたすべてのパリティグループについて、同様の処理を繰り返す。
そして、すべてのパリティグループに関する処理が終了した時点（Ｓ９０２→Ｎｏ）における各パリティグループのデータ構造は、「Ｄ１，Ｄ２，Ｄ３，Ｐ１ａ」、「Ｄ４，Ｄ５，Ｐ２ａ，Ｄ６」、・・・、「Ｄ９７，Ｄ９８，ＤＮｕｌｌ，ＰＮｕｌｌ」となる。
【００９１】
次に、ステップＳ９０６で、ディスク管理処理部２０１は、一時保存ディスク２４０に退避していた「Ｄ９９，Ｄ１００，Ｄ１０１，Ｄ１０２，Ｄ１０３，・・・」の実データを拡張用ＲＡＩＤテーブル２０７に従って、「ディスク１」〜「ディスク４」のデータに割り振る。これにより、「ディスク１」〜「ディスク４」で新たに構成されるパリティグループは、「Ｄ１，Ｄ２，Ｄ３，Ｐ１ａ」、「Ｄ４，Ｄ５，Ｐ２ａ，Ｄ６」、・・・、「Ｄ９７，Ｄ９８，Ｄ９９，Ｐ３３ａ」、「Ｄ１００，Ｄ１０１，Ｐ３４ａ，Ｄ１０２」、「Ｄ１０３、Ｐ３５ａ，Ｄ１０４，Ｄ１０５」・・・となる。
【００９２】
［効果］
本実施形態によれば、ディスク２３０の空容量に応じて、ＲＡＩＤを再構成することにより、無駄のないＬＵ２５０を実現することができる。
また、サーバ１がディスク２３０の使用率を監視して、ＲＡＩＤの再構成を指示するため、ユーザが複雑な操作を行わなくてもよい。
更に、ＲＡＩＤの再構成後、電源がＯＦＦとなっているディスク２３０に実データを書き込もうとすると、ディスク装置２の書込管理処理部２０２が、電源がＯＮとなっているディスク２３０において、実データが書き込まれていないブロックを検出する。そして、書込管理処理部２０２は、実データが書き込まれようとしている電源がＯＦＦのディスク上のブロックと、検出した電源がＯＮとなっているディスク２３０上のブロックへ実データを書き込むことにより、ユーザはＲＡＩＤの再構成を意識することなくＬＵを使用することができる。
【符号の説明】
【００９３】
１      サーバ
２      ディスク装置
１０    ディスク管理システム
１００  メモリ（サーバ）
１０１  論理ディスク監視処理部
１０２  アプリケーション
１０３  論理ディスク使用状況テーブル
１０４  論理ディスクテーブル
２００  メモリ(ディスク装置：記憶部）
２０１  ディスク管理処理部
２０２  書込管理処理部
２０３  ＲＡＩＤ構成テーブル
２０４  運用状況テーブル（現在データ位置情報）
２０５  一時保存用ディスクテーブル
２０６  ＲＡＩＤテーブル
２０７  拡張用ＲＡＩＤテーブル（拡張データ位置情報）
２０８  縮小用ＲＡＩＤテーブル（縮小データ位置情報）
２０９  所属サーバテーブル
２２０  キャッシュ
２３０  ディスク
２４０  一時保存用ディスク
２５０  ＬＵ（論理ユニット）
【図１】
2010198464.tif 000003
【図２】
2010198464.tif 000004
【図３】
2010198464.tif 000005
【図４】
2010198464.tif 000006
【図５】
2010198464.tif 000007
【図６】
2010198464.tif 000008
【図７】
2010198464.tif 000009
【図８】
2010198464.tif 000010
【図９】
2010198464.tif 000011
【図１０】
2010198464.tif 000012
【図１１】
2010198464.tif 000013
【図１２】
2010198464.tif 000014
【図１３】
2010198464.tif 000015
【図１４】
2010198464.tif 000016
【図１５】
2010198464.tif 000017
【図１６】
2010198464.tif 000018
【図１７】
2010198464.tif 000019
【図１８】
2010198464.tif 000020
【図１９】
2010198464.tif 000021