(57)【要約】【課題】  システムの稼動を妨げずに、ディスクアレイを適切に統合することのできるディスクアレイ装置を提供することである。【解決手段】  パリティ移行制御部１６は、所定のオンライン処理等を実行するホストコンピュータ２０から各ディスク１１ａ〜１３へのアクセス状況を監視しつつ、ディスクアレイＡ１，Ａ２を統合する。つまり、先頭ブロックから最終ブロックまでのブロック単位に、パリティディスク１１ｃ，１２ｃの各ローカルパリティからグローバルパリティを求め、これをパリティディスク１３に移行することにより、ディスクアレイＡ１，Ａ２の統合を行う。その際、パリティ移行制御部１６は、パリティ移行の完了していないデータブロックが更新された場合に、ローカルパリティを更新し、逆に、パリティ移行の完了したデータブロックが更新された場合に、グローバルパリティを更新する。【選択図】  図１
2005044182.tif 000002
【特許請求の範囲】
【請求項１】
データ群と冗長データを格納する複数のディスクユニットから構成されるディスクアレイを、複数有するディスクアレイ装置であって、
各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、各ディスクアレイ中の各冗長データを１つの冗長データに順次移行し、移行途中に任意のデータが更新された場合に、移行状況に応じて異なる冗長データを更新する、
ことを特徴とするディスクアレイ装置。
【請求項２】
データブロック及びパリティデータを所定のブロック単位に格納する複数のディスクユニットから構成されるディスクアレイを、複数有するディスクアレイ装置であって、
各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する、
ことを特徴とするディスクアレイ装置。
【請求項３】
所定のＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式が適用されたディスクアレイを複数有し、所定のホスト機器からアクセス可能なディスクアレイ装置であって、
ディスクアレイを構成する各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、ホスト機器からアクセスが発生し得る状態で、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する、
ことを特徴とするディスクアレイ装置。
【請求項４】
前記統合制御手段は、各ディスクアレイにＲＡＩＤ４が適用されている場合において、
パリティ移行の際に、求めたパリティデータを特定のディスクユニットに格納し、
移行済みブロックのデータブロックが更新された場合に、特定のディスクユニットに格納した移行済みのパリティデータを更新し、
未移行ブロックのデータブロックが更新された場合に、対応するディスクアレイのディスクユニットに格納した未移行のパリティデータを更新する、
ことを特徴とする請求項３に記載のディスクアレイ装置。
【請求項５】
前記統合制御手段は、各ディスクアレイにＲＡＩＤ５が適用されている場合において、
パリティ移行の際に、求めたパリティデータを所定の条件により定まるディスクアレイのディスクユニットに格納し、
移行済みブロックのデータブロックが更新された場合に、移行済みのパリティデータを更新し、
未移行ブロックのデータブロックが更新された場合に、対応するディスクアレイのディスクユニットに格納した未移行のパリティデータを更新する、
ことを特徴とする請求項３に記載のディスクアレイ装置。
【請求項６】
前記統合制御手段は、ディスクユニット毎に、移行済みのパリティデータの数をそれぞれ計測する計測手段を備え、
前記統合制御手段は、パリティ移行の際に、前記計測手段が計測した計測数に従って対象となるディスクユニットを逐次決定し、決定したディスクユニットにパリティデータを格納する、
ことを特徴とする請求項５に記載のディスクアレイ装置。
【請求項７】
データ群と冗長データを格納する複数のディスクユニットから構成されるディスクアレイを複数有するコンピュータに、各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御ステップと、各ディスクアレイ中の各冗長データを１つの冗長データに順次移行する移行ステップと、前記移行ステップによる移行途中に、任意のデータが更新された場合に、移行状況に応じて異なる冗長データを更新する更新制御ステップと、前記移行ステップ及び前記更新制御ステップを並行して制御することにより、各ディスクアレイを１つのディスクアレイに統合する統合制御ステップとを実行させるためのプログラム。
【請求項８】
データブロック及びパリティデータを所定のブロック単位に格納する複数のディスクユニットから構成されるディスクアレイを複数有するコンピュータに、各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御ステップと、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行う移行ステップと、前記移行ステップによるパリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する更新制御ステップと、前記移行ステップ及び前記更新制御ステップを並行して制御することにより、各ディスクアレイを１つのディスクアレイに統合する統合制御ステップとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディスクアレイを適切に統合することのできるディスクアレイ装置およびプログラムに関する。
【背景技術】
【０００２】
従来より、種々のコンピュータシステムにおいて、ディスクアレイ装置が使用されている。このディスクアレイ装置は、内蔵した複数のディスクユニット（ハードディスク等の磁気ディスク機器）を並列動作させることにより、データの書き込みやデータの読み出しを高速に行うことを特徴としている。また、冗長性を持たせることにより、信頼性の向上も図っている。
具体的にディスクアレイ装置は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）技術を採用することで、高速性と高信頼性とを両立させている。このＲＡＩＤは、種々のレベルに分類されており、その代表的なものとして、ＲＡＩＤ４（レベル４）及び、ＲＡＩＤ５（レベル５）が挙げられる。
【０００３】
ＲＡＩＤ４は、例えば、入力データを１セクタ単位（或いは、数セクタ単位）に分割し、分割した各データブロックを複数のディスクユニット（データディスク）に分散して格納する。また、分割したデータブロックからパリティデータを生成し、生成したパリティデータを特定のディスクユニット（パリティディスク）に格納している。
一方、ＲＡＩＤ５も、ＲＡＩＤ４と同様に、分割した各データブロックを複数のデータディスクに分散して格納する。それでも、ＲＡＩＤ４と異なり、ＲＡＩＤ５は、パリティディスクを持たずに、パリティデータを各データディスクに適宜格納している。
【０００４】
このようなディスクアレイ装置の一例を図１７に示す。図１７は、ＲＡＩＤ４が適用されたディスクアレイ装置１００を含んだコンピュータシステムの一例を示すブロック図である。
図示するようにディスクアレイ装置１００は、データディスク１０１，１０２と、パリティディスク１０３と、ディスクコントローラ１０４と、ディスクＩ／Ｆ１０５と、を含んで構成される。
【０００５】
データディスク１０１，１０２、及び、パリティディスク１０３は、ハードディスク等のディスクユニットからなる。そして、データディスク１０１，１０２は、分割されたデータブロック（ストライプ）を記憶する。また、パリティディスク１０３は、パリティデータ（冗長データ）を記憶する。
【０００６】
ディスクコントローラ１０４は、データの書き込み時に、ホストコンピュータ２００から送られたデータを分割し、分割した各データブロックを、データディスク１０１，１０２に分散して格納する。その際、ディスクコントローラ１０４は、各データブロックの排他的論理和を演算してパリティデータを生成し、このパリティデータをパリティディスク１０３に格納する。
また、ディスクコントローラ１０４は、データの読み出し時に、データディスク１０１，１０２に格納されたデータブロックをそれぞれ読み出すと、各データブロックを結合し、結合したデータをホストコンピュータ２００に供給する。
【０００７】
なお、データディスク１０１，１０２の何れか一方に障害が発生した場合でも、ディスクコントローラ１０４は、パリティディスク１０３に格納されたパリティデータを使用して、データブロックの復元が可能である。
例えば、データディスク１０１が故障した場合に、ディスクコントローラ１０４は、データディスク１０２から読み出したデータブロックと、パリティディスク１０３から読み出したパリティデータとの排他的論理和を演算し、データディスク１０１のデータブロックを復元する。
【０００８】
ディスクＩ／Ｆ（インタフェース）１０５は、ホストコンピュータ２００とディスクアレイ装置１００とを接続する。
一方、ホストコンピュータ２００は、例えば、サーバ等からなり、種々のデータをディスクアレイ装置１００に記憶させ、また、ディスクアレイ装置１００からデータを適宜読み出す。
【０００９】
そして、このようなディスクアレイ装置の障害時に対処する技術も開示されている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２４８４８号公報  （第７−１３頁、第４図）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したようなディスクアレイ装置は、種々の業務のオンラインシステム等でも広く使用されている。そして、業務上におけるデータ管理の必要性から、ディスクアレイの統合が行われる場合も多い。
例えば、図１７に示すディスクアレイ装置１００において、データディスク１０１，１０２及び、パリティディスク１０３からなる既存のディスクアレイに、別のディスクアレイ（複数のデータディスク及びパリティディスク）を統合するような場合である。
【００１１】
しかしながら、このようなディスクアレイの統合は、オンラインシステムを停止させた状態で行う必要があった。つまり、従来のディスクアレイ装置では、ディスクアクセスが発生しないオフライン状態に移行させた後に、ディスクアレイの統合を行っていた。
そのため、ディスクアレイの統合中には、オンライン処理等が行えず、その間、顧客等に適切なサービスを提供できないという問題があった。
【００１２】
本発明は、上記実状に鑑みてなされたもので、システムの稼動を妨げずに、ディスクアレイを適切に統合することのできるディスクアレイ装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の第１の観点に係るディスクアレイ装置は、
データ群と冗長データを格納する複数のディスクユニットから構成されるディスクアレイを、複数有するディスクアレイ装置であって、
各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、各ディスクアレイ中の各冗長データを１つの冗長データに順次移行し、移行途中に任意のデータが更新された場合に、移行状況に応じて異なる冗長データを更新する、
ことを特徴とする。
【００１４】
この発明によれば、ディスク制御手段は、例えば、ディスクアレイコントローラ等からなり、ディスクアレイを構成する各ディスクユニットに対するデータの書き込み及び読み出しを制御する。統合制御手段は、ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する。より詳細に統合制御手段は、各ディスクアレイ中の各冗長データを１つの冗長データに順次移行し、移行途中に任意のデータが更新された場合に、移行状況に応じて異なる冗長データを更新する。
この結果、ディスクアレイ装置を使用するシステムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００１５】
上記目的を達成するため、本発明の第２の観点に係るディスクアレイ装置は、
データブロック及びパリティデータを所定のブロック単位に格納する複数のディスクユニットから構成されるディスクアレイを、複数有するディスクアレイ装置であって、
各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する、
ことを特徴とする。
【００１６】
この発明によれば、ディスク制御手段は、例えば、ディスクアレイコントローラ等からなり、ディスクアレイを構成する各ディスクユニットに対するデータの書き込み及び読み出しを制御する。統合制御手段は、ディスク制御手段を制御して、各ディスクアレイを１つのディスクアレイに統合する。より詳細に統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する。
この結果、ディスクアレイ装置を使用するシステムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００１７】
上記目的を達成するため、本発明の第３の観点に係るディスクアレイ装置は、
所定のＲＡＩＤ方式が適用されたディスクアレイを複数有し、所定のホスト機器からアクセス可能なディスクアレイ装置であって、
ディスクアレイを構成する各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御手段と、
前記ディスク制御手段を制御して、ホスト機器からアクセスが発生し得る状態で、各ディスクアレイを１つのディスクアレイに統合する統合制御手段とを備え、
前記統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する、
ことを特徴とする。
【００１８】
この発明によれば、ディスク制御手段はＲＡＩＤコントローラ等からなり、ディスクアレイを構成する各ディスクユニットに対するデータの書き込み及び読み出しを制御する。統合制御手段は、ディスク制御手段を制御して、ホスト機器からアクセスが発生し得る状態で、各ディスクアレイを１つのディスクアレイに統合する。より詳細に統合制御手段は、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行い、パリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する。
この結果、ディスクアレイ装置を使用するシステムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００１９】
前記統合制御手段は、各ディスクアレイにＲＡＩＤ４が適用されている場合において、
パリティ移行の際に、求めたパリティデータを特定のディスクユニットに格納し、
移行済みブロックのデータブロックが更新された場合に、特定のディスクユニットに格納した移行済みのパリティデータを更新し、
未移行ブロックのデータブロックが更新された場合に、対応するディスクアレイのディスクユニットに格納した未移行のパリティデータを更新してもよい。
【００２０】
前記統合制御手段は、各ディスクアレイにＲＡＩＤ５が適用されている場合において、
パリティ移行の際に、求めたパリティデータを所定の条件により定まるディスクアレイのディスクユニットに格納し、
移行済みブロックのデータブロックが更新された場合に、移行済みのパリティデータを更新し、
未移行ブロックのデータブロックが更新された場合に、対応するディスクアレイのディスクユニットに格納した未移行のパリティデータを更新してもよい。
【００２１】
前記統合制御手段は、ディスクユニット毎に、移行済みのパリティデータの数をそれぞれ計測する計測手段を備え、
前記統合制御手段は、パリティ移行の際に、前記計測手段が計測した計測数に従って対象となるディスクユニットを逐次決定し、決定したディスクユニットにパリティデータを格納してもよい。
【００２２】
上記目的を達成するため、本発明の第４の観点に係るコンピュータプログラムは、
データ群と冗長データを格納する複数のディスクユニットから構成されるディスクアレイを複数有するコンピュータに、各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御ステップと、各ディスクアレイ中の各冗長データを１つの冗長データに順次移行する移行ステップと、前記移行ステップによる移行途中に、任意のデータが更新された場合に、移行状況に応じて異なる冗長データを更新する更新制御ステップと、前記移行ステップ及び前記更新制御ステップを並行して制御することにより、各ディスクアレイを１つのディスクアレイに統合する統合制御ステップとを実行させることを特徴とする。
【００２３】
上記目的を達成するため、本発明の第４の観点に係るコンピュータプログラムは、
データブロック及びパリティデータを所定のブロック単位に格納する複数のディスクユニットから構成されるディスクアレイを複数有するコンピュータに、各ディスクユニットに対するデータの書き込み及び読み出しを制御するディスク制御ステップと、ブロック単位に、各ディスクユニットに格納された各パリティデータから１つのパリティデータを求め、求めたパリティデータを所定のディスクユニットに格納するパリティ移行を順次行う移行ステップと、前記移行ステップによるパリティ移行途中に、任意のディスクユニットに格納されたデータブロックが更新された場合に、パリティ移行状況に応じて移行前後の何れかのパリティデータを更新する更新制御ステップと、前記移行ステップ及び前記更新制御ステップを並行して制御することにより、各ディスクアレイを１つのディスクアレイに統合する統合制御ステップとを実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、システムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【発明を実施するための最良の形態】
【００２５】
本発明の実施の形態にかかるディスクアレイ装置（ＲＡＩＤ装置）について、以下図面を参照して説明する。
（実施形態１）
【００２６】
図１は、この発明の第１の実施の形態に適用されるＲＡＩＤ装置を含んだコンピュータシステムの構成の一例を示すブロック図である。図示するように、このシステムは、ＲＡＩＤ装置１０と、ホストコンピュータ２０とを含んで構成される。
なお、このＲＡＩＤ装置１０には、ＲＡＩＤ４が適用されている。
また、ＲＡＩＤ装置１０とホストコンピュータ２０とは、所定のインタフェースを介して接続されると共に、例えば、ＬＡＮ（Local Area Network）等からなるネットワーク３０を介しても接続されている。
【００２７】
ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置１０は、データディスク１１ａ，１１ｂと、パリティディスク１１ｃと、データディスク１２ａ，１２ｂと、パリティディスク１２ｃと、パリティディスク１３と、ＲＡＩＤコントローラ１４と、ディスクＩ／Ｆ１５と、パリティ移行制御部１６とを含んで構成される。
【００２８】
データディスク１１ａ，１１ｂ，１２ａ，１２ｂ及び、パリティディスク１１ｃ，１２ｃ，１３は、ハードディスク等のディスクユニットからなる。
なお、データディスク１１ａ，１１ｂ、及び、パリティディスク１１ｃは、ディスクアレイＡ１を構成し、また、データディスク１２ａ，１２ｂ、及び、パリティディスク１２ｃは、ディスクアレイＡ２を構成している。そして、これらのディスクアレイＡ１，Ａ２が統合対象となっている。
【００２９】
図２に、統合前の各ディスク１１ａ〜１３に格納されているデータ値（説明を容易にするための値）の一例を示す。
図示するように、ディスクアレイＡ１のデータディスク１１ａ，１１ｂは、ディスクアレイＡ１内（ローカル内）において分割されたデータブロックを記憶している。例えば、ブロックｂ１において、データディスク１１ａ，１１ｂは、ローカル内にて分割されたデータブロックｄ１，ｄ２を記憶している。
また、パリティディスク１１ｃは、ローカル内のデータブロックに対応したパリティデータ（ローカルパリティ）を記憶している。例えば、ブロックｂ１において、パリティディスク１１ｃは、データブロックｄ１，ｄ２同士の排他的論理和演算により求められたパリティデータｐ１（例えば、偶数パリティ）を記憶している。
【００３０】
同様に、ディスクアレイＡ２のデータディスク１２ａ，１２ｂは、ローカル内（この場合、ディスクアレイＡ２内）において分割されたデータブロックを記憶している。
そして、パリティディスク１２ｃは、同様に、ローカル内のデータブロックに対応したパリティデータ（ローカルパリティ）を記憶している。
【００３１】
一方、パリティディスク１３は、ディスクアレイＡ１，Ａ２の統合中及び統合後に、全データブロックに対応したパリティデータ（グローバルパリティ）が格納される。
なお、統合前では、図２に示すように、パリティデータは未定である。
【００３２】
図１に戻って、ＲＡＩＤコントローラ１４は、上述した各ディスク１１ａ〜１３を制御して、データの書き込み及び、データの読み出しを行う。
例えば、データ書き込み時に、ＲＡＩＤコントローラ１４は、データを分割し、分割した各データブロックをデータディスク１１ａ，１１ｂ，１２ａ，１２ｂ（対象のデータディスク）に適宜格納する。また、データブロックに対応するパリティデータを求め、求めたパリティディスク１１ｃ，１２ｃ，１３（対象のパリティディスク）に適宜格納する。
【００３３】
ディスクＩ／Ｆ（インタフェース）１５は、例えば、所定規格の外部バス等からなり、ホストコンピュータ２０と、ＲＡＩＤ装置１０とを接続する。
なお、ディスクＩ／Ｆ１５は、ホストコンピュータ２０からアクセス要求（例えば、書き込み要求／読み出し要求等）を受けると、一端、パリティ移行制御部１６に、要求内容を通知する。
【００３４】
パリティ移行制御部１６は、ＣＰＵ（Central Processing Unit）及びメモリ等を含んだ周辺ＬＳＩ（Large Scale Integration）からなり、ＲＡＩＤ装置１０全体を制御する。
パリティ移行制御部１６は、ネットワーク３０を介してホストコンピュータ２０と接続され、ホストコンピュータ２０からの指示に従って、オンライン中におけるディスクアレイＡ１，Ａ２の統合を行う。
例えば、パリティ移行制御部１６は、内部のメモリに記憶された後述する統合処理やパリティ移行処理等のプログラムを実行し、ＲＡＩＤコントローラ１４等を制御してディスクアレイＡ１，Ａ２の統合を行う。その際、パリティ移行制御部１６は、所定のオンライン処理等を実行するホストコンピュータ２０から各ディスク１１ａ〜１３へのアクセス状況（アクセス負荷等）を監視しつつ、ディスクアレイＡ１，Ａ２の統合をバックグラウンドで行う。
【００３５】
具体的にパリティ移行制御部１６は、先頭ブロックから最終ブロックまでのブロック単位に、ディスクアレイＡ１，Ａ２の２つのローカルパリティを１つのグローバルパリティに移行することにより、ディスクアレイＡ１，Ａ２の統合を行う。つまり、パリティディスク１１ｃ，１２ｃに記憶される各ローカルパリティを、ブロック毎に順番にグローバルパリティに変換してパリティディスク１３に移行する。なお、各ブロックの移行順序は、移行ポインタにより管理される。
具体的には、図３（ａ）に示すように、移行開始時に、移行ポインタＰｔにより先頭ブロックｂ１が指し示されている。そして、パリティ移行制御部１６は、このブロックｂ１において、パリティディスク１１ｃのパリティデータと、パリティディスク１２ｃのパリティデータとの排他的論理和を演算し、ブロックｂ１全体のパリティデータを求める。つまり、ブロックｂ１において、データディスク１１ａ，１１ｂ，１２ａ，１２ｂの全データブロックに対応するグローバルパリティを求める。
そして、パリティ移行制御部１６は、求めたパリティデータ（グローバルパリティ）をパリティディスク１３に格納する。
【００３６】
ブロックｂ１のパリティ移行が済むと、図３（ｂ）に示すように、元のローカルパリティは解放される。つまり、パリティディスク１１ｃ、１２ｃにおけるブロックｂ１の各パリティデータは、図中において空白にて表示されるように、そのエリアが解放される。また、移行ポインタＰｔは、次のブロックｂ２を指し示すように移動する。
そして、パリティ移行制御部１６は、上記と同様に、ブロックｂ２において、それぞれのローカルパリティ（パリティディスク１１ｃ，１２ｃの２つのパリティデータ）の排他的論理和を演算してパリティデータ（グローバルパリティ）を求め、このパリティデータをパリティディスク１３に格納する。
パリティ移行制御部１６は、このようなパリティ移行を、先頭ブロックｂ１から最終ブロックｂｎまで順次行う。
【００３７】
ところで、このようなパリティ移行中に、ホストコンピュータ２０からデータディスク１１ａ，１１ｂ，１２ａ，１２ｂがアクセスされ、任意のデータブロックが更新される場合もある。
この場合、パリティ移行制御部１６は、更新対象のデータブロックがパリティ移行の完了したブロックか否かを判別し、パリティディスク１１ｃ，１２ｃ、若しくは、パリティディスク１３のパリティデータを適宜更新する。つまり、パリティ移行の完了していないデータブロックが更新された場合に、パリティ移行制御部１６は、ローカルパリティを更新し、逆に、パリティ移行の完了したデータブロックが更新された場合に、グローバルパリティを更新する。なお、パリティ移行の未了／完了は、移行ポインタＰｔの位置により判別される。
【００３８】
例えば、図４（ａ）に示すように、パリティ移行が未了のブロックｂ７において、データディスク１２ａのデータブロックが更新（０から１に更新）された場合に、パリティ移行制御部１６は、ローカルパリティとなるパリティディスク１２ｃのパリティデータを更新（０から１に更新）する。
具体的にパリティ移行制御部１６は、更新前のデータブロック（０）と、更新後のデータブロック（１）と、更新前のローカルパリティ（０）との排他的論理和を演算して、新たなパリティデータ（１）を求める。そして、求めたパリティデータをパリティディスク１２ｃに格納する。
【００３９】
一方、図４（ｂ）に示すように、パリティ移行が完了したブロックｂ２において、データディスク１１ａのデータブロックが更新（１から０に更新）された場合に、パリティ移行制御部１６は、グローバルパリティとなるパリティディスク１３のパリティデータを更新（０から１に更新）する。
具体的にパリティ移行制御部１６は、更新前のデータブロック（１）と、更新後のデータブロック（０）と、更新前のグローバルパリティ（０）との排他的論理和を演算して、新たなパリティデータ（１）を求める。そして、求めたパリティデータをパリティディスク１３に格納する。
【００４０】
図１に戻って、ホストコンピュータ２０は、例えば、サーバや汎用コンピュータ等からなり、所定のオンライン処理を実行する。そして、このオンライン処理の実行に伴って、ＲＡＩＤ装置１０に必要なデータを書き込み、また、ＲＡＩＤ装置１０から必要なデータを読み出す。
また、ホストコンピュータ２０は、ネットワーク３０を介して、パリティ移行制御部１６にディスクアレイＡ１，Ａ２の統合を指示する。
【００４１】
以下、この発明の実施の形態にかかるＲＡＩＤ装置の動作について、図５等を参照して説明する。図５は、パリティ移行制御部１６が実行する統合処理を説明するためのフローチャートである。
この統合処理は、例えば、ホストコンピュータ２０からパリティ移行制御部１６にディスクアレイＡ１，Ａ２の統合指示が送られた際に開始される。
なお、ホストコンピュータ２０は、所定のオンライン処理を実行中であり、この統合処理は、このオンライン処理のバックグラウンドで実行される。
【００４２】
まず、パリティ移行制御部１６は、移行ポインタＰｔに先頭ブロックの値をセットする（ステップＳ１０）。つまり、上述の図３（ａ）に示すように、移行ポインタＰｔが先頭ブロックｂ１を指し示すようにする。
【００４３】
パリティ移行制御部１６は、各ディスク１１ａ〜１３の負荷が規定値よりも小さいか否かを判別する（ステップＳ１１）。つまり、パリティ移行制御部１６は、オンライン処理を実行しているホストコンピュータ２０から各ディスク１１ａ〜１３へのアクセス状況を監視し、そのアクセス負荷が、予め定められた規定値よりも小さいか否かを判別する。
【００４４】
パリティ移行制御部１６は、各ディスク１１ａ〜１３の負荷が小さいと判別すると、パリティ移行処理を実行する（ステップＳ１２）。つまり、パリティ移行制御部１６は、ディスクアレイＡ１，Ａ２を順次統合するために、パリティ移行処理を実行する。このパリティ移行処理について、図６を参照して詳細に説明する。
【００４５】
図６のパリティ移行処理において、まず、パリティ移行制御部１６は、移行ポインタＰｔにて示されるブロックのグローバルパリティに０をセットする（ステップＳ２１）。つまり、移行ポインタＰｔに示されるパリティディスク１３のパリティデータに初期値の０をセットする。
【００４６】
パリティ移行制御部１６は、移行ポインタＰｔにて示されるブロックにおいて、グローバルパリティと一方のローカルパリティとの排他的論理和を演算し、求めたデータをグローバルパリティにセットする（ステップＳ２２）。
そして、パリティ移行制御部１６は、全てのローカルパリティの演算を終えたか（全パリティ分完了したか）否かを判別する（ステップＳ２３）。ここで、全パリティ分完了していないと判別すると、上述のステップＳ２２に処理を戻す。
つまり、パリティ移行制御部１６は、１回目に、グローバルパリティ（初期値の０）とパリティディスク１１ｃのパリティデータとの排他的論理和を演算し、また、２回目に、グローバルパリティ（前回の演算結果）とパリティディスク１２ｃのパリティデータとの排他的論理和を演算する。
これにより、全てのローカルパリティ同士の排他的論理和が演算され、得られたパリティデータがパリティディスク１３に格納されることになる（グローバルパリティの初期値が０であるため）。
すなわち、上述の図３（ａ）、（ｂ）に示すように、パリティディスク１１ｃ，１２ｃのパリティデータ（各ローカルパリティ）が、パリティディスク１３のパリティデータ（グローバルパリティ）に移行されることになる。その際、移行された元のローカルパリティは、解放される。
【００４７】
そして、ステップＳ２３にて、全パリティ分演算が完了したと判別した場合に、パリティ移行制御部１６は、移行ポインタＰｔに１を加算する（ステップＳ２４）。つまり、パリティ移行の対象を次のブロックに進める。
そして、パリティ移行制御部１６は、パリティ移行処理を終え、図５の統合処理に処理を戻す。
【００４８】
図５に戻って、パリティ移行制御部１６は、ステップＳ１２のパリティ移行処理を終え、最終ブロックまでパリティ移行が完了したか否かを判別する（ステップＳ１３）。つまり、移行ポインタＰｔに従って、全てのブロックに対してパリティ移行が完了したか否かを判別する。
【００４９】
パリティ移行制御部１６は、最終ブロックまで完了していないと判別すると、ステップＳ１４に処理を進める。また、上述のステップＳ１１にて、ディスク負荷が規定値より小さくない（ディスク負荷が大である）と判別した場合も、パリティ移行制御部１６は、ステップＳ１４に処理を進める。
【００５０】
そして、パリティ移行制御部１６は、ホストコンピュータ２０からのアクセス要求により、書き込みが発生したか否かを判別する（ステップＳ１４）。つまり、オンライン処理を実行中のホストコンピュータ２０から、データディスク１１ａ，１１ｂ，１２ａ，１２ｂの任意のデータブロックへの書き込みが発生したか否かを判別する。
パリティ移行制御部１６は、書き込みが発生していないと判別すると、ステップＳ１１に処理を戻し、上述のステップＳ１１〜Ｓ１４等の処理を繰り返し実行する。
なお、書き込みでなく、読み込みが発生した場合に、パリティ移行制御部１６は、ＲＡＩＤコントローラ１４を制御して、データディスク１１ａ，１１ｂ，１２ａ，１２ｂから対象のデータブロックをそれぞれ読み出し、各データブロックを結合させてホストコンピュータ２０に送信させる。
【００５１】
一方、書き込み要求が発生したと判別した場合に、パリティ移行制御部１６は、ホストコンピュータ２０からの要求に従って、何れかのデータディスク１１ａ，１１ｂ，１２ａ，１２ｂのデータブロックを更新する（ステップＳ１５）。つまり、パリティ移行制御部１６は、ＲＡＩＤコントローラ１４を制御して、何れかのディスク中における対象のデータブロックの更新を行わせる。
なお、ＲＡＩＤコントローラ１４は、データブロックの更新に先立って、更新前のデータブロックの値を読み出しているものとする。
【００５２】
パリティ移行制御部１６は、更新したデータブロックがパリティ移行の完了したブロックであるか否かを判別する（ステップＳ１６）。つまり、パリティ移行制御部１６は、現在の移行ポインタＰｔの位置に従って、更新したデータブロックが属するブロックがパリティ移行を完了しているか否かを判別する。
【００５３】
パリティ移行制御部１６は、パリティ移行が完了したブロックであると判別すると、新たなパリティデータを求め、グローバルパリティを更新する（ステップＳ１７）。
つまり、パリティ移行制御部１６は、更新前データブロックと、更新後のデータブロックと、更新前のパリティデータ（グローバルパリティ）との排他的論理和を演算して、新たなパリティデータを求める。そして、求めたパリティデータをパリティディスク１３に格納する。
すなわち、上述の図４（ｂ）に示すように、パリティ移行が完了したデータブロックが更新されると、パリティディスク１３のパリティデータ（グローバルパリティ）が更新されることになる。
【００５４】
一方、パリティ移行が完了したブロックでない（パリティ移行が未了のブロックである）と判別すると、パリティ移行制御部１６は、新たなパリティデータを求め、ローカルパリティを更新する（ステップＳ１８）。
つまり、パリティ移行制御部１６は、更新前のデータブロックと、更新後のデータブロックと、更新前のパリティデータ（ローカルパリティ）との排他的論理和を演算して、新たなパリティデータを求める。そして、求めたパリティデータをパリティディスク１１ｃ，１２ｃに適宜格納する（対象のパリティディスクに格納する）。
すなわち、上述の図４（ａ）に示すように、パリティ移行が完了していないデータブロックが更新されると、ローカルパリティ（この場合、パリティディスク１２ｃのパリティデータ）が更新されることになる。
【００５５】
このように、グローバルパリティ若しくは、ローカルパリティを更新すると、パリティ移行制御部１６は、ステップＳ１１に処理を戻し、上述のステップＳ１１〜１８等の処理を繰り返し実行する。
【００５６】
また、上述のステップＳ１３にて、最終ブロックまでパリティ移行が完了したと判別した場合に、パリティ移行制御部１６は、ネットワーク３０を介して、ホストコンピュータ２０にディスクアレイＡ１，Ａ２の統合が完了したことを通知する（ステップＳ１９）。
そして、パリティ移行制御部１６は、ＲＡＩＤコントローラ１４に対してディスクアレイの構成の変更を指示する。
これにより、図７に示すように、各ディスク１１ａ〜１３が１つのディスクアレイに統合される。また、パリティデータの移行が済んだパリティディスク１１ｃ，１２ｃは、そのエリアが解放されているため、再利用することができる。
例えば、再利用可能となったパリティディスク１１ｃ，１２ｃを、データディスクとしてデータブロックを格納することも可能である。これにより、統合されたディスクアレイにおいて、負荷の均等化及び分散化を図ることができる。
【００５７】
このような統合処理（パリティ移行処理）により、ホストコンピュータ２０にてオンライン処理が実行されている場合でも、パリティ移行を行い、ディスクアレイを統合することができる。つまり、システムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００５８】
また、上述した統合処理（パリティ移行処理）においては、説明の理解を容易にするために、パリティ移行とデータブロックの更新とが、同時に行われないかのように説明した。
しかしながら、実際には、パリティ移行とデータブロックの更新とは、適宜並行して実行される。
【００５９】
例えば、パリティ移行が完了していないデータブロックの更新と、パリティデータの移行（グローバルパリティの更新）とは、並行して行うことができる。
つまり、上述の図４（ａ）に示すようなパリティ移行が完了していないデータブロックの更新時には、ローカルパリティ（この場合は、パリティディスク１２ｃのパリティデータ）が更新される。これと並行して、ブロックｂ３のパリティ移行を行っても、更新されるのは、グローバルパリティ（パリティディスク１３のパリティデータ）である。このため、ローカルパリティ及びグローバルパリティの更新が競合しないことになり、データブロックの更新と、パリティ移行とを並行して行うことができる。
また、ホストコンピュータ２０からのデータの読み出しと、パリティ移行とは、特に制限なく、並行して行うことができる。
【００６０】
ところで、上述した統合処理（パリティ移行処理）により、ディスクアレイＡ１，Ａ２は、１つのディスクアレイに統合されるが、この統合化によりブロックの配置が変更されることになる。
具体的には、図８（ａ）に示すｄｅｖ１とｄｅｖ２とがパリティ移行処理により、図８（ｂ）に示すｄｅｖ３に統合された場合に、各ブロックの配置が変更される。一例として、図８（ａ）に示すｄｅｖ１のブロックｂ１６は、移行後において、図８（ｂ）に示すｄｅｖ３のブロックｂ３０として扱われることになる。
そして、ホストコンピュータ２０のアプリケーション側からは、統合前のディスクアレイに対して、旧デバイス名により利用（参照）できる必要がある。
これを可能とするために、シンボリックリンク等を用いて、旧デバイス名から新デバイス名への対応が行えるようにする。例えば、図９（ａ）に示すように、シンボリックリンクを用いて、新旧デバイスの対応関係を示すことになる。
それでも、内部的には、ｄｅｖ１は、データディスク１１ａ，１１ｂにマッピングされ、一方、ｄｅｖ２は、データディスク１２ａ，１２ｂにマッピングされたままである。このためフラグメンテーション状態となり、パフォーマンス上に問題が生じることになる。
そのため、デフラグ（ディスクの最適化）を行い、図９（ｂ）に示すように、ｄｅｖ１、ｄｅｖ２がデータディスク１１ａ，１１ｂ，１２ａ，１２ｂ全てにマッピングされるようにする。例えば、ｄｅｖ１のブロックｂ１〜ｂ１６をｄｅｖ３のブロックｂ１〜ｂ１６に再配置し、そして、ｄｅｖ２のブロックｂ１〜ｂ１６をｄｅｖ３のブロックｂ１７〜ｂ３２に再配置する。
これにより、統合後において、ディスクアクセスのパフォーマンスを向上させることができる。
【００６１】
上記の第１の実施の形態では、２つのディスクアレイを１つのディスクアレイに統合する場合について説明した。しかしながら、統合対象となるディスクアレイの数は、２つに限られず複数であれば、適宜適用可能である。
また、上記の第１の実施の形態では、ＲＡＩＤ４が適用された複数のディスクアレイを、ＲＡＩＤ４が適用された１つのディスクアレイに統合する場合について説明した。
しかしながら、統合対象のディスクアレイはＲＡＩＤ４に限られず、他のレベルのＲＡＩＤが適用されたディスクアレイであっても適宜適用可能である。例えば、ＲＡＩＤ５が適用された複数のディスクアレイを、ＲＡＩＤ５が適用された１つのディスクアレイに統合してもよい。
以下、ＲＡＩＤ５が適用されたディスクアレイを統合する場合について説明する。
（実施形態２）
【００６２】
図１０は、この発明の第２の実施の形態に適用されるＲＡＩＤ装置を含んだコンピュータシステムの構成の一例を示すブロック図である。図示するように、このシステムは、ＲＡＩＤ装置４０と、ホストコンピュータ２０とを含んで構成される。
なお、このコンピュータシステムは、ＲＡＩＤ装置４０にＲＡＩＤ５が適用されていることを除き、他の構成は、上述した図１に示す第１の実施の形態に係るコンピュータシステムと同様である。
【００６３】
ＲＡＩＤ装置４０は、データディスク４１ａ，４１ｂ，４１ｃ，４２ａ，４２ｂ，４２ｃと、ＲＡＩＤコントローラ１４と、ディスクＩ／Ｆ１５と、パリティ移行制御部１６とを含んで構成される。
【００６４】
各データディスク４１ａ〜４２ｃは、ハードディスク等のディスクユニットからなる。なお、データディスク４１ａ，４１ｂ，４１ｃは、ディスクアレイＡ３を構成し、また、データディスク４２ａ，４２ｂ，４２ｃは、ディスクアレイＡ４を構成している。そして、これらのディスクアレイＡ３，Ａ４が統合対象となっている。
【００６５】
図１１に、統合前の各ディスク４１ａ〜４２ｃに格納されているデータ値（説明を容易にするための値）の一例を示す。
図示するように、ディスクアレイＡ３のデータディスク４１ａ，４１ｂ，４１ｃは、ディスクアレイＡ３内（ローカル内）において分割されたデータブロック及び、ローカル内のデータブロックに対応したパリティデータ（ローカルパリティ）を適宜記憶している。なお、図中において、パリティデータは、網掛けにて示されている。
具体的には、このパリティデータは、ディスクアレイＡ３内において、ラウンドロビン形式にて格納されている。
同様に、ディスクアレイＡ４のデータディスク４２ａ，４２ｂ，４２ｃは、ローカル内（この場合、ディスクアレイＡ４内）において分割されたデータブロック及び、ローカル内のデータブロックに対応したパリティデータ（ローカルパリティ）を適宜記憶している。
【００６６】
図１０に戻って、ＲＡＩＤコントローラ１４、ディスクＩ／Ｆ１５、及び、パリティ移行制御部１６の構成は、図１に示すＲＡＩＤ装置１０の構成と同一である。
つまり、パリティ移行制御部１６は、所定のオンライン処理等を実行するホストコンピュータ２０から各ディスク４１ａ〜４２ｃへのアクセス状況（アクセス負荷等）を監視しつつ、ディスクアレイＡ３，Ａ４の統合をバックグラウンドで行う。その際、パリティ移行制御部１６等は、ＲＡＩＤ５が適用されているディスクアレイＡ３，Ａ４に対応した動作を行う。
【００６７】
具体的にパリティ移行制御部１６は、先頭ブロックから最終ブロックまでのブロック単位に、ディスクアレイＡ３，Ａ４に適宜格納された２つのローカルパリティを１つのグローバルパリティに移行することにより、ディスクアレイＡ３，Ａ４の統合を行う。
すなわち、パリティ移行制御部１６は、図１２（ａ）に示すように、移行開始時に、移行ポインタＰｔにより指し示される先頭ブロックｂ１において、データディスク４１ａ，４２ａに格納されたパリティデータ（各ローカルパリティ）同士の排他的論理和を演算し、ブロックｂ１全体のパリティデータ（グローバルパリティ）を求める。
そして、パリティ移行制御部１６は、図１２（ｂ）に示すように、求めたパリティデータ（グローバルパリティ）をデータディスク４１ａに格納する。
このようにブロックｂ１のパリティ移行が済むと、不要となったデータディスク４２ａのパリティデータ（エリア）には、「０」が格納された上で解放される。なお、図中では、開放されたエリアを楕円にて表している。また、移行ポインタＰｔは、次のブロックｂ２を指し示すように移動する。
【００６８】
続いて、パリティ移行制御部１６は、図１３（ａ）に示すように、ブロックｂ２において、データディスク４１ｂ，４２ｂのパリティデータ（各ローカルパリティ）同士の排他的論理和を演算してパリティデータ（グローバルパリティ）を求める。そして、図１３（ｂ）に示すように、求めたパリティデータをデータディスク４１ｂに格納する。また、同様に、不要となったデータディスク４２ｂのパリティデータには、「０」が格納された上で解放される。
このようなパリティ移行を、パリティ移行制御部１６は、先頭ブロックｂ１から最終ブロックｂｎまで順次行う。
【００６９】
なお、パリティ移行制御部１６は、パリティ移行時に、グローバルパリティ（パリティデータ）を格納するデータディスク（各ディスク４１ａ〜４２ｃ）を適宜決定している。この決定手法は、移行後のグローバルパリティが各ディスク４１ａ〜４２ｃに適切に分散されれば、任意である。
例えば、パリティ移行制御部１６に、各ディスク４１ａ〜４２ｃ単位に、グローバルパリティの数をそれぞれ計測するカウンタを設け、このカウンタによる計測数に従って、グローバルパリティが各ディスク４１ａ〜４２ｃに適切に分散されるようにしてもよい。
【００７０】
具体的に説明すると、カウンタは、パリティ移行前に、各ディスク４１ａ〜４２に対応した計測数を０にする。
パリティ移行が開始され、図１２（ａ）に示すように、データディスク４１ａ，４２ａからグローバルパリティが求められると、両方のディスクに対応する計測数（カウンタの値）が０（同数）なので、パリティ移行制御部１６は、特定の優先順序に従って、データディスク４１ａを対象ディスクと決定する。
そして、図１２（ｂ）に示すように、グローバルパリティがデータディスク４１ａに格納されると、カウンタは、このディスクに対応した計測数に１を加算する。
その後、パリティ移行がブロックｂ４に進んだ場合、図１２（ａ）と同様に、データディスク４１ａ，４２ａからグローバルパリティが求められることになる。この際、データディスク４１ａに対応した計測数（カウンタの値）が１であり、データディスク４２ａに対応した計測数が０であるため、パリティ移行制御部１６は、数の少ない方のデータディスク４２ａを対象ディスクと決定する。そして、グローバルパリティがデータディスク４２ａに格納されると、カウンタは、このディスクに対応した計測数に１を加算する。
このように、パリティ移行制御部１６は、カウンタによる計測数に従って、グローバルパリティを各ディスク４１ａ〜４２ｃに適切に分散されるようにすることができる。
【００７１】
ところで、このようなパリティ移行中に、ホストコンピュータ２０からデータディスク４１ａ〜４２ｃがアクセスされ、任意のデータブロックが更新される場合もある。
この場合、パリティ移行制御部１６は、更新対象のデータブロックがパリティ移行の完了したブロックか否かを判別し、パリティデータを適宜更新する。つまり、パリティ移行の完了していないデータブロックが更新された場合に、パリティ移行制御部１６は、ローカルパリティを更新し、逆に、パリティ移行の完了したデータブロックが更新された場合に、グローバルパリティを更新する。
【００７２】
例えば、図１４（ａ）に示すように、パリティ移行が未了のブロックｂ４において、データディスク４１ｃのデータブロックが更新（１から０に更新）された場合に、パリティ移行制御部１６は、ローカルパリティとなるデータディスク４１ａのパリティデータを更新（０から１に更新）する。
具体的にパリティ移行制御部１６は、更新前のデータブロック（１）と、更新後のデータブロック（０）と、更新前のローカルパリティ（０）との排他的論理和を演算して、新たなパリティデータ（１）を求める。そして、求めたパリティデータをデータディスク４１ａに格納する。
【００７３】
一方、図１４（ｂ）に示すように、パリティ移行が完了したブロックｂ２において、データディスク４１ａのデータブロックが更新（１から０に更新）された場合に、パリティ移行制御部１６は、グローバルパリティとなる、データディスク４１ｂのパリティデータを更新（０から１に更新）する。
具体的にパリティ移行制御部１６は、更新前のデータブロック（１）と、更新後のデータブロック（０）と、更新前のグローバルパリティ（０）との排他的論理和を演算して、新たなパリティデータ（１）を求める。そして、求めたパリティデータを、データディスク４１ｂに格納する。
【００７４】
更に、図１５（ａ）に示すように、パリティ移行が完了したブロックｂ３において、開放されたデータディスク４２ｃのデータブロック（元のパリティデータ）が更新（０から１に更新）された場合に、パリティ移行制御部１６は、グローバルパリティとなる、データディスク４１ｃのパリティデータを更新（０から１に更新）する。
具体的にパリティ移行制御部１６は、更新前のデータブロック（０）と、更新後のデータブロック（１）と、更新前のグローバルパリティ（０）との排他的論理和を演算して、新たなパリティデータ（１）を求める。そして、求めたパリティデータを、データディスク４１ｃに格納する。
【００７５】
このようにして、パリティ移行制御部１６は、データブロックの更新を適宜行いながら、最終ブロックｂｎまでパリティ移行を行う。そして、最終ブロックｂｎまでパリティ移行が完了すると、パリティ移行制御部１６は、ホストコンピュータ２０に統合完了を通知すると共に、ＲＡＩＤコントローラ１４に対してディスクアレイの構成の変更を指示する。
これにより、図１５（ｂ）に示すように、各データディスク４１ａ〜４２ｃが１つのディスクアレイに統合される。また、統合後に、各データディスク４１ａ〜４２ｃは、パリティデータの移行が済んだエリアが解放されているため、そのエリアを再利用することができる。
【００７６】
このように、ホストコンピュータ２０にてオンライン処理が実行されている場合でも、ＲＡＩＤ５が適用された複数のディスクアレイを、１つのディスクアレイに統合することができる。つまり、システムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００７７】
上記の第１及び、第２の実施の形態では、同じレベルのＲＡＩＤが適用された複数のディスクアレイを統合する場合について説明したが、異なるレベルのＲＡＩＤが適用された複数のディスクアレイを統合する場合についても適宜適用可能である。
例えば、ＲＡＩＤ４が適用されたディスクアレイとＲＡＩＤ５が適用されたディスクアレイとを統合して、ＲＡＩＤ４が適用された１つのディスクアレイに統合してもよい。
【００７８】
また、上記の第１及び、第２の実施の形態では、パリティ移行を、先頭ブロックから最終ブロックまで行う場合について説明したが、パリティ移行の順序は、これに限られず任意である。
例えば、最終ブロックから先頭ブロックまでパリティデータの移行を行ってもよい。また、パリティデータの移行状況をビットマップ表等により管理しつつ、パリティ移行を行うプロセスを複数起動して、並行処理方式によりパリティデータの移行を行ってもよい。
更に、監視しているディスク負荷の状況に応じて、パリティ移行処理のプライオリティを増減し、バックグラウンドプロセスがオンライン処理等にあまり影響を与えないように制御してもよい。
【００７９】
また、上記の第１及び、第２の実施の形態では、ＲＡＩＤ装置（ディスクアレイ装置）におけるディスクアレイの統合について説明したが、他のシステムにおけるディスクアレイの統合にも適宜適用可能である。
例えば、擬似的なＲＡＩＤ構成を有する分散ファイルシステムにおけるディスクアレイの統合に適用してもよい。
以下、このような分散ファイルシステムについて説明する。
（実施形態３）
【００８０】
図１６は、この発明の第３の実施の形態に適用される分散ファイルシステムの構成の一例を示すブロック図である。図示するように、このシステムは、制御ホストコンピュータ５０と、ホストコンピュータ５１，５２，５３，５４，５５，５６，５７と、メタサーバ５８がネットワーク６０を介して接続されている。そして、ホストコンピュータ５１〜５７には、各ディスク１１ａ〜１３が対応して接続されている。
なお、各ディスク１１ａ〜１３は、図１に示す第１の実施の形態の各ディスクと同様である。そして、同様にディスクアレイＡ１，Ａ２が統合対象となっている。
【００８１】
制御ホストコンピュータ５０は、分散ファイルシステム全体を制御する。そして、ディスクアレイＡ１，Ａ２を統合する際に、図１に示すパリティ移行制御部１６と同様の働きをする。
つまり、制御ホストコンピュータ５０は、各ホストコンピュータ５１〜５７から各ディスク１１ａ〜１３へのアクセス状況（アクセス負荷等）を監視しつつ、メタサーバ５８を制御して、ディスクアレイＡ１，Ａ２の統合を行う。
なお、具体的なディスクアレイＡ１，Ａ２の統合手法は、上述した第１の実施の形態と同様である。
【００８２】
ホストコンピュータ５１〜５７は、システムとしてのデータアクセス処理を各ディスクに対して行う。
そして、メタサーバ５８は、図１に示すＲＡＩＤコントローラ１４と同様の働きをする。つまり、メタサーバ５８は、制御ホストコンピュータ５０に制御され、パリティディスク１１ｃ，１２ｃに記憶される各ローカルパリティを、ブロック毎に順番にグローバルパリティに変換してパリティディスク１３に移行する。
【００８３】
このような擬似的なＲＡＩＤ構成を有する分散ファイルシステムにおいても、上述した第１の実施の形態と同様に、ＲＡＩＤ４が適用された複数のディスクアレイを、１つのディスクアレイに統合することができる。つまり、システムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【００８４】
また、上記の第３の実施の形態では、ＲＡＩＤ４が適用された複数のディスクアレイを、１つのディスクアレイに統合する場合について説明した。
しかしながら、統合対象のディスクアレイはＲＡＩＤ４に限られず、他のレベルのＲＡＩＤが適用されたディスクアレイであっても適宜適用可能である。例えば、上記の第２の実施の形態と同様に、ＲＡＩＤ５が適用された複数のディスクアレイを、１つのディスクアレイに統合してもよい。
【００８５】
上記の第１〜第３の実施の形態では、冗長データとして、パリティデータを一例として説明したが、パリティデータ以外でも適宜適用可能である。なお、パリティデータ以外を冗長データとして使用する場合には、冗長データに応じて、上述したパリティ移行に相当する処理を適宜行うことにより、ローカルな冗長データからグローバルな冗長データに移行するものとする。
【００８６】
なお、この発明の実施の形態にかかるＲＡＩＤ装置等は、専用機器によらず、通常のコンピュータシステムを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等）から当該プログラムをインストールすることにより、上述の処理を実行するＲＡＩＤ装置等を構成することができる。
【００８７】
また、コンピュータにプログラムを供給するための手法は、任意である。例えば、通信回線、通信ネットワーク、通信システム等を介して供給してもよい。一例を挙げると、通信ネットワークの掲示板（ＢＢＳ）に当該プログラムを掲示し、これをネットワークを介して搬送波に重畳して配信する。
そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【００８８】
以上説明したように、本発明によれば、システムの稼動を妨げずに、ディスクアレイを適切に統合することができる。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１の実施の形態に係るＲＡＩＤ装置を含んだコンピュータシステムの構成の一例を示すブロック図である。
【図２】統合前における各ディスクに格納される値の一例を示す模式図である。
【図３】（ａ），（ｂ）共に、パリティデータ移行の様子を説明するための模式図である。
【図４】（ａ），（ｂ）共に、パリティ移行中におけるデータブロックの更新の様子を説明するための模式図である。
【図５】本発明の実施の形態に係る統合処理の一例を示すフローチャートである。
【図６】本発明の実施の形態に係るパリティ移行処理の一例を示すフローチャートである。
【図７】統合後における各ディスクの値の一例を説明するための模式図である。
【図８】統合化により変更されるブロックの配置を説明するための模式図であり、（ａ）が移行前のブロック配置であり、（ｂ）が移行後のブロック配置である。
【図９】シンボリックリンクの一例を示す模式図であって、（ａ）が統合直後を示す図であり、（ｂ）がデフラグ後を示す図である。
【図１０】本発明の第２の実施の形態に係るＲＡＩＤ装置を含んだコンピュータシステムの一例を示すブロック図である。
【図１１】統合前における各ディスクに格納される値の一例を示す模式図である。
【図１２】（ａ），（ｂ）共に、最初のパリティデータ移行の様子を説明するための模式図である。
【図１３】（ａ），（ｂ）共に、次のパリティデータ移行の様子を説明するための模式図である。
【図１４】（ａ），（ｂ）共に、パリティ移行中におけるデータブロックの更新の様子を説明するための模式図である。
【図１５】（ａ）がパリティ移行中におけるデータブロックの更新の様子を説明する模式図であり、（ｂ）が統合後における各ディスクの値の一例を説明するための模式図である。
【図１６】本発明の第３の実施の形態に係る分散ファイルシステムの一例を示すブロック図である。
【図１７】従来のディスクアレイ装置を含んだコンピュータシステムの一例を示すブロック図である。
【符号の説明】
【００９０】
１０  ＲＡＩＤ装置
１１ａ、１１ｂ、１２ａ、１２ｂ  データディスク
１１ｃ、１２ｃ、１３  パリティディスク
１４  ＲＡＩＤコントローラ
１５  ディスクＩ／Ｆ
１６  パリティ移行制御部
２０  ホストコンピュータ
３０  ネットワーク
【図１】
2005044182.tif 000003
【図２】
2005044182.tif 000004
【図３】
2005044182.tif 000005
【図４】
2005044182.tif 000006
【図５】
2005044182.tif 000007
【図６】
2005044182.tif 000008
【図７】
2005044182.tif 000009
【図８】
2005044182.tif 000010
【図９】
2005044182.tif 000011
【図１０】
2005044182.tif 000012
【図１１】
2005044182.tif 000013
【図１２】
2005044182.tif 000014
【図１３】
2005044182.tif 000015
【図１４】
2005044182.tif 000016
【図１５】
2005044182.tif 000017
【図１６】
2005044182.tif 000018
【図１７】
2005044182.tif 000019