(57)【要約】【課題】ＲＡＩＤ構成のディスクの配置を変更する際、変更時間を短縮する。【解決手段】ＣＭ１０は、複数のディスク２１により構築されるＲＡＩＤ構成を管理する。ＣＭ１０は、ＲＡＩＤ構成の各ディスク２１のアンマウントおよびマウントを監視するアンマウント検出部１４２およびマウント検出部１４４と、アンマウント中のディスク２１へのデータの書き込み要求を管理する書込要求管理部１４３と、ＲＡＩＤ構成のディスク２１のマウントが検出されると、管理された書き込み要求に基づいて、マウントが検出されたディスク２１のデータの整合性を判定するデータ整合性判定部１４５と、整合性がないと判定される場合、マウントが検出されたディスク２１に対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ディスク２１を元のＲＡＩＤ構成として組み込むＲＡＩＤ組込部１４７とを有する。【選択図】図１
2015082313.tif 000002
【特許請求の範囲】
【請求項１】
複数のドライブにより構築されるＲＡＩＤ構成を管理するＲＡＩＤ構成管理装置において、
前記ＲＡＩＤ構成の各ドライブのアンマウントおよびマウントを監視する監視部と、
アンマウント中のドライブへのデータの書き込み要求を管理する書込管理部と、
前記監視部によってＲＡＩＤ構成のドライブのマウントが検出されると、前記書込管理部によって管理された書き込み要求に基づいて、マウントが検出されたドライブのデータの整合性を判定する判定部と、
前記判定部によって整合性がないと判定される場合、マウントが検出されたドライブに対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ドライブを元のＲＡＩＤ構成として組み込む組込部と、
を備えることを特徴とするＲＡＩＤ構成管理装置。
【請求項２】
ドライブ毎に、ドライブを識別する識別情報およびドライブを組み込むＲＡＩＤの情報であるＲＡＩＤ情報を対応付けたドライブ情報を記憶する記憶部を備え、
前記監視部は、アンマウントまたはマウントが検出されるドライブについて、前記記憶部に記憶されたドライブ情報および当該ドライブに予め記憶されたドライブ情報に基づいて、ＲＡＩＤ構成のドライブのアンマウントおよびマウントを監視する
ことを特徴とする請求項１に記載のＲＡＩＤ構成管理装置。
【請求項３】
前記書込管理部は、アンマウント中のドライブへのデータの書き込み要求があった場合に、前記アンマウント中のドライブの代わりに定められた別の記憶領域へのデータの書き込み前後のタイムスタンプを管理することで、前記書き込み要求を管理し、
前記判定部は、前記アンマウント中のドライブのマウントが検出されると、データの書き込み前後のタイムスタンプに差分があるか否かを判定することで、データの整合性を判定し、
前記組込部は、前記判定部によってデータの書き込み前後のタイムスタンプに差分があると判定される場合、アンマウント中にデータが書き込まれた別の記憶領域から書き込み要求があったドライブへデータを書き戻し、当該ドライブを元のＲＡＩＤ構成として組み込む
ことを特徴とする請求項１に記載のＲＡＩＤ構成管理装置。
【請求項４】
複数のドライブにより構築されるＲＡＩＤ構成を管理するＲＡＩＤ構成管理装置に、
前記ＲＡＩＤ構成の各ドライブのアンマウントおよびマウントを監視し、
アンマウント中のドライブへのデータの書き込み要求を管理し、
前記監視する処理によってＲＡＩＤ構成のドライブのマウントが検出されると、前記管理する処理によって管理された書き込み要求に基づいて、マウントが検出されたドライブのデータの整合性を判定し、
前記判定する処理によって整合性がないと判定される場合、マウントが検出されたドライブに対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ドライブを元のＲＡＩＤ構成として組み込む
処理を実行させることを特徴とするＲＡＩＤ構成管理プログラム。
【請求項５】
複数のドライブにより構築されるＲＡＩＤ構成を管理するＲＡＩＤ構成管理装置が、
前記ＲＡＩＤ構成の各ドライブのアンマウントおよびマウントを監視し、
アンマウント中のドライブへのデータの書き込み要求を管理し、
前記監視する処理によってＲＡＩＤ構成のドライブのマウントが検出されると、前記管理する処理によって管理された書き込み要求に基づいて、マウントが検出されたドライブのデータの整合性を判定し、
前記判定する処理によって整合性がないと判定される場合、マウントが検出されたドライブに対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ドライブを元のＲＡＩＤ構成として組み込む
処理を実行することを特徴とするＲＡＩＤ構成管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）構成管理装置などに関する。
【背景技術】
【０００２】
ストレージアレイ装置において、同一筐体（ＤＥ：Drive  Enclosure）内のディスクで構成されたＲＡＩＤには、例えばＤＥが停電となった場合等にアクセスが不可となる。これを防止するために、ストレージアレイ装置は、例えば、ＲＡＩＤを複数のＤＥに跨るように構成する。
【０００３】
ＲＡＩＤが新規に構成される場合には、ストレージアレイ装置は、ＲＡＩＤを複数のＤＥに跨るように自由に構成できる。ところが、一度運用が始まった後に、ＲＡＩＤ構成が変更される場合には、ストレージアレイ装置は、ＲＡＩＤ構成の配置を変更する変更先に新規ディスクを搭載した後、変更元のディスクから新規ディスクへ、データの移行処理（Logical  Device  Expansion）を実施する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５４８０６号公報
【特許文献２】特開２００６−２２１５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＲＡＩＤ構成のディスクの配置を変更する際、配置を変更するディスクのデータの容量に比例して変更時間がかかるという問題がある。すなわち、従来の技術では、ストレージアレイ装置は、変更先に新規ディスクを搭載した後、変更元のディスクから新規ディスクへ、データの移行処理を実施するので、変更元のディスクのデータの容量に比例して変更時間がかかる。
【０００６】
なお、上記課題は、ＲＡＩＤを複数のＤＥに跨るように構成を変更する場合であっても、同様に生じる課題である。
【０００７】
１つの側面では、本発明は、ＲＡＩＤ構成のドライブの配置を変更する際、変更時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するＲＡＩＤ構成管理装置は、１つの態様において、複数のドライブにより構築されるＲＡＩＤ構成を管理する。ＲＡＩＤ構成管理装置は、ＲＡＩＤ構成の各ドライブのアンマウントおよびマウントを監視する監視部と、アンマウント中のドライブへのデータの書き込み要求を管理する書込管理部と、前記監視部によってＲＡＩＤ構成のドライブのマウントが検出されると、前記書込管理部によって管理された書き込み要求に基づいて、マウントが検出されたドライブのデータの整合性を判定する判定部と、前記判定部によって整合性がないと判定される場合、マウントが検出されたドライブに対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ドライブを元のＲＡＩＤ構成として組み込む組込部と、を備える。
【発明の効果】
【０００９】
本願の開示するシステムの１つの態様によれば、ＲＡＩＤ構成のドライブの配置を変更する際、変更時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るＲＡＩＤ制御装置のハードウェア構成の一例を示す図である。
【図２】図２は、ディスク内の管理情報テーブルを説明する図である。
【図３】図３は、実施例に係るＲＡＩＤグループ情報テーブルのデータ構成を示す図である。
【図４】図４は、実施例に係るＤＥ／Ｓｌｏｔ情報テーブルのデータ構成を示す図である。
【図５】図５は、実施例に係る書込管理情報テーブルのデータ構成を示す図である。
【図６】図６は、実施例に係る書込情報テーブルのデータ構成を示す図である。
【図７】図７は、ＲＡＩＤ登録処理のフローチャートを示す図である。
【図８】図８は、アンマウント検出処理のフローチャートを示す図である。
【図９】図９は、書込要求管理処理のフローチャートを示す図である。
【図１０】図１０は、マウント検出処理のフローチャートを示す図である。
【図１１】図１１は、復旧処理のフローチャートを示す図である。
【図１２】図１２は、アンマウントした場合（方法１）の各テーブルの一例を示す図である。
【図１３】図１３は、アンマウント中に書込要求があった場合（方法１）の各テーブルの一例を示す図である。
【図１４】図１４は、アンマウントした場合（方法２）の各テーブルの一例を示す図である。
【図１５】図１５は、アンマウント中に書込要求があった場合（方法２）の各テーブルの一例を示す図である。
【図１６】図１６は、アンマウントした場合（方法３）の各テーブルの一例を示す図である。
【図１７】図１７は、アンマウント中に書込要求があった場合（方法３）の各テーブルの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するＲＡＩＤ構成管理装置、ＲＡＩＤ構成管理プログラムおよびＲＡＩＤ構成管理方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［ＲＡＩＤ制御装置の構成］
図１は、実施例に係るＲＡＩＤ制御装置のハードウェア構成の一例を示す図である。図１に示すように、ＲＡＩＤ制御装置１は、ホスト９と接続する。ＲＡＩＤ制御装置１は、複数のＣＭ１０および複数のＤＥ２０を備える。複数のＣＭ１０は、冗長化されている。各ＣＭ（Controler  Module）１０は、ホストＩ／Ｆ１１と、ドライブＩ／Ｆ１２と、メモリ１３と、ＣＰＵ１４とを有する。ホストＩ／Ｆ１１は、ホスト９と接続する。ドライブＩ／Ｆ１２は、複数のＤＥ（Drive  Enclosure）２０と接続する。例えば、ドライブＩ／Ｆ１２は、ＤＥ＃２０と多段に接続（カスケード接続）する。図１の例では、ドライブＩ／Ｆ１２のポート０は、ＤＥ＃００と接続し、ＤＥ＃００からＤＥ＃０１、・・ＤＥ＃０ｍと多段に接続する。ドライブＩ／Ｆ１２のポート１はＤＥ＃１０と接続し、ＤＥ＃１０からＤＥ＃１１、・・ＤＥ＃１ｎと多段に接続する。ドライブＩ／Ｆ１２のポート２は、ＤＥ＃２０と接続し、ＤＥ＃２０からＤＥ＃２１、・・ＤＥ＃２ｋと多段に接続する。ＤＥ２０には、複数のディスク２１が搭載され、ドライブＩ／Ｆ１２は、ＤＥ２０内のディスク２１と接続する。なお、ＣＭ１０は、ＲＡＩＤ構成管理装置の一例である。また、ディスク２１は、ＨＤＤまたはＳＳＤであり、データを記憶するドライブの一例である。
【００１３】
ＤＥ２０内のディスク２１は、同一または異なるＤＥ２０内の別のディスク２１とＲＡＩＤを構成する。実施例では、ＤＥ２０内のディスク２１が、同一のＤＥ２０内のディスク２１とＲＡＩＤを構成していても、ホスト９からのＩ／Ｏを止めないで、ＲＡＩＤを構成するディスク２１の配置を別のＤＥ２０へ変更することを可能とする。すなわち、新規配置先に搭載された新たなディスク２１へデータを移行するのではなく、物理的なディスク２１の移動により、ＲＡＩＤを構成するディスク２１の配置を別のＤＥ２０へ変更する。これにより、ＲＡＩＤを構成する複数のディスク２１がある場合に、１つのＤＥ２０内のディスク２１に対して例えばＤＥ２０の停電によってアクセスが不可となった場合でも、別のＤＥ２０内のディスク２１とアクセスが可能となるので、ＤＥ２０の停電中のデータを保全できる。
【００１４】
ディスク２１は、管理情報テーブル２１０およびＤｉｓｋ識別子２１１を記憶する。管理情報テーブル２１０には、ＲＡＩＤを構成するディスク２１を搭載したスロットの情報およびディスク２１の識別情報が含まれる。管理情報テーブル２１０は、ＲＡＩＤを構成する各ディスク２１それぞれの領域に記憶される。また、Ｄｉｓｋ識別子２１１には、ディスク２１固有の装置識別子が予め保持される。ここで、ディスク２１内の管理情報テーブル２１０について、図２を参照して説明する。図２は、ディスク内の管理情報テーブルを説明する図である。なお、図２では、ＤＥ＃００において、スロット＃２に搭載されたディスク２１とスロット＃３に搭載されたディスク２１とがＲＡＩＤ１を構成している。
【００１５】
図２に示すように、スロット＃２に搭載されたディスク２１およびスロット＃３に搭載されたディスク２１は、各ディスク２１内の領域に管理情報テーブル２１０を記憶している。管理情報テーブル２１０は、後述するＲＡＩＤ登録部１４１によってＲＡＩＤ情報が登録される際に、ディスク２１に記憶される。
【００１６】
管理情報テーブル２１０は、装置識別子２１０ａ、ＤＥ番号２１０ｂ、Ｓｌｏｔ番号２１０ｃ、ＲＡＩＤグループ番号２１０ｄ、ＲＡＩＤ種別２１０ｅ、構成Ｄｉｓｋ数２１０ｆおよび構成Ｄｉｓｋ識別子２１０ｇを対応付けて記憶する。装置識別子２１０ａは、ＲＡＩＤ制御装置１を識別する識別子である。ＤＥ番号２１０ｂは、ディスク２１が搭載されたＤＥの識別番号である。Ｓｌｏｔ番号２１０ｃは、ディスク２１が搭載されたスロットの識別番号である。ＲＡＩＤグループ番号２１０ｄは、ディスク２１がＲＡＩＤ構成されたＲＡＩＤグループの識別番号である。ＲＡＩＤ種別２１０ｅは、ＲＡＩＤの種別である。構成Ｄｉｓｋ数２１０ｆは、ＲＡＩＤを構成するディスクの数である。構成Ｄｉｓｋ識別子２１０ｇは、ＲＡＩＤを構成するディスク２１のディスク２１固有の装置識別子である。構成Ｄｉｓｋ識別子２１０ｇには、ＲＡＩＤを構成するディスク２１が複数あれば、複数のディスク２１のディスク２１固有の装置識別子が設定される。なお、管理情報テーブル２１０は、テーブル形式に限定されず、テーブル形式以外の記憶形式であっても良い。すなわち、管理情報の内容が記憶されていれば良い。
【００１７】
図１に戻って、メモリ１３は、ＲＡＩＤグループ情報テーブル１３１、ＤＥ／Ｓｌｏｔ情報テーブル１３２、書込管理情報テーブル１３３、書込情報テーブル１３４および装置識別子１３５を備える。装置識別子１３５は、例えば、出荷時に、予め登録される。ＲＡＩＤグループ情報テーブル１３１は、ＲＡＩＤグループの情報を記憶する。ＤＥ／Ｓｌｏｔ情報テーブル１３２は、各ＤＥのスロットの情報を記憶する。すなわち、ＤＥ／Ｓｌｏｔ情報テーブル１３２は、スロットにディスクが搭載されているか／いないか、スロットに搭載されているならそのディスクの識別子が何か、ディスクがＲＡＩＤグループに登録されているなら、後述する書込直前タイムスタンプ／書込完了タイムスタンプを記憶する。書込管理情報テーブル１３３は、ホスト９からの書込要求を管理方法とともに管理する。書込情報テーブル１３４は、書込要求があったデータの管理位置を管理方法に応じて記憶する。なお、ＲＡＩＤグループ情報テーブル１３１、ＤＥ／Ｓｌｏｔ情報テーブル１３２、書込管理情報テーブル１３３および書込情報テーブル１３４のそれぞれのデータ構成は、後述する。また、ＲＡＩＤグループ情報テーブル１３１、ＤＥ／Ｓｌｏｔ情報テーブル１３２、書込管理情報テーブル１３３および書込情報テーブル１３４は、テーブル形式に限定されず、テーブル形式以外の記憶形式であっても良い。すなわち、各情報の内容がそれぞれ記憶されていれば良い。また、メモリ１３は、記憶部の一例である。
【００１８】
ＣＰＵ１４は、ＲＡＩＤ登録部１４１、アンマウント検出部１４２、書込要求管理部１４３、マウント検出部１４４、データ整合性判定部１４５、書込データ復旧部１４６およびＲＡＩＤ組込部１４７を有する。なお、アンマウント検出部１４２およびマウント検出部１４４は、監視部の一例である。書込要求管理部１４３は、書込管理部の一例である。データ整合性判定部１４５は、判定部の一例である。書込データ復旧部１４６およびＲＡＩＤ組込部１４７は、組込部の一例である。
【００１９】
ＲＡＩＤ登録部１４１は、ＲＡＩＤ構成に依存する情報を登録する。例えば、ＲＡＩＤ登録部１４１は、ＲＡＩＤ構成に対してＲＡＩＤグループ情報テーブル１３１を生成し、ＲＡＩＤ構成のディスク２１に対してＤＥ／Ｓｌｏｔ情報テーブル１３２を生成する。そして、ＲＡＩＤ登録部１４１は、ＲＡＩＤ構成のディスク２１に対する管理情報テーブル２１０をディスク２１へ書き込む。
【００２０】
ここで、ＲＡＩＤグループ情報テーブル１３１のデータ構成を、図３を参照して説明する。図３は、実施例に係るＲＡＩＤグループ情報テーブルのデータ構成を示す図である。図３に示すように、ＲＡＩＤグループ情報テーブル１３１は、ＲＡＩＤグループ番号１３１ａ、ＲＡＩＤ種別１３１ｂ、ＲＡＩＤ状態１３１ｃおよびＲＡＩＤ構成Ｄｉｓｋ数１３１ｄを対応付けて記憶する。さらに、ＲＡＩＤグループ情報テーブル１３１は、ＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅおよび使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆを対応付けて記憶する。
【００２１】
ＲＡＩＤグループ番号１３１ａは、ＲＡＩＤ制御装置１で使用するＲＡＩＤのグループ番号を示す。ＲＡＩＤ種別１３１ｂは、ＲＡＩＤの種別を示し、ＲＡＩＤレベルと同義である。ＲＡＩＤ種別１３１ｂには、例えばＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６、ＲＡＩＤ１０やＲＡＩＤ５０を表す値が含まれる。ＲＡＩＤ状態１３１ｃは、ＲＡＩＤの状態を示す。ＲＡＩＤ状態１３１ｃには、例えばＲＡＩＤ構成のディスクが正常であることを示す「Available」、ＲＡＩＤ構成のいずれかのディスクがアンマウント中であることを示す「Exposed」、ＲＡＩＤが故障中であることを示す「Broken」が含まれる。ＲＡＩＤ構成Ｄｉｓｋ数１３１ｄは、ＲＡＩＤグループを構成しているディスクの数を示す。ＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅは、ＲＡＩＤグループを構成しているディスクの位置情報を示す。ＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅには、例えば、ディスク２１が搭載されているＤＥ番号およびＳｌｏｔ番号が設定され、ＤＥ／Ｓｌｏｔ情報テーブル１３２からＤＥ／Ｓｌｏｔ情報を算出するために必要な情報となる。使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆは、リカバリ中に使用するスペアディスクの位置情報を示す。使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆには、例えば、ＤＥ番号およびＳｌｏｔ番号が設定され、使用中のＳｐａｒｅ  Ｄｉｓｋを特定するために必要な情報となる。
【００２２】
一例として、ＲＡＩＤグループ番号１３１ａが「０」である場合、ＲＡＩＤ種別１３１ｂとして「ＲＡＩＤ１」、ＲＡＩＤ状態１３１ｃとして「Available」、ＲＡＩＤ構成Ｄｉｓｋ数１３１ｄとして「２」を記憶している。さらに、ＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅとして「ＤＥ＃００  Ｓｌｏｔ＃００」および「ＤＥ＃００  Ｓｌｏｔ＃０１」、使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆとして情報がないことを示す「−」を記憶している。つまり、「−」は、無効値である。
【００２３】
また、ＤＥ／Ｓｌｏｔ情報テーブル１３２のデータ構成を、図４を参照して説明する。図４は、実施例に係るＤＥ／Ｓｌｏｔ情報テーブルのデータ構成を示す図である。図４に示すように、ＤＥ／Ｓｌｏｔ情報テーブル１３２は、ＤＥ番号１３２ａおよびＳｌｏｔ番号１３２ｂに対応付けて、Ｄｉｓｋの識別子１３２ｃ、Ｓｌｏｔ状態１３２ｄ、書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆを記憶する。
【００２４】
ＤＥ番号１３２ａおよびＳｌｏｔ番号１３２ｂは、ＲＡＩＤ構成に組み込まれたディスク２１のＤＥ番号およびスロット番号である。Ｄｉｓｋの識別子１３２ｃは、ＲＡＩＤ構成に組み込まれたディスク２１のディスク２１固有のデバイス名である。Ｓｌｏｔ状態１３２ｄは、Ｓｌｏｔ番号１３２ｂで示されるスロットにマウントされているディスク２１の状態を示す。Ｓｌｏｔ状態１３２ｄには、例えば使用していることを示す「Available」、使用していないことを示す「Not  Available」、ディスク２１がアンマウントしていることを示す「Broken」が含まれる。また、ディスク２１がスペアディスクである場合、Ｓｌｏｔ状態１３２ｄには、例えば故障中のディスクのデータをスペアディスクに再構築している状態を示す「Rebuild」が含まれる。書込直前タイムスタンプ１３２ｅは、ホスト９からの書込要求を該当ディスク２１へ発行する前に設定されるタイムスタンプの値である。書込完了タイムスタンプ１３２ｆは、該当ディスク２１へ発行した書込要求が正常に完了した後に設定されるタイムスタンプの値である。
【００２５】
一例として、ＤＥ番号１３２ａが「０」、Ｓｌｏｔ番号１３２ｂが「０」である場合、Ｄｉｓｋの識別子１３２ｃとして「300000E0DE00000F」、Ｓｌｏｔ状態１３２ｄとして「Available」を記憶している。書込処理直前スタンプ１３２ｅとして「0x0000000010bf90e0」、書込完了スタンプ１３２ｆとして「0x0000000010bf90e0」を記憶している。
【００２６】
図１に戻って、アンマウント検出部１４２は、ＲＡＩＤ構成のディスク２１のアンマウントを検出する。例えば、アンマウント検出部１４２は、ディスク２１のアンマウントを検出すると、検出されたアンマウントのディスク２１の位置情報を取得する。ここでいう検出されたアンマウントのディスク２１の位置情報とは、ディスク２１がアンマウントされたＤＥ番号およびスロット情報を意味する。アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅを参照し、検出されたアンマウントのディスク２１の位置情報が有れば、当該ディスク２１がＲＡＩＤに組み込まれているディスクであると判断する。そして、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ状態１３１ｃを、ＲＡＩＤ構成のいずれかのディスク２１がアンマウント中であることを示す「Exposed」に設定する。
【００２７】
また、アンマウント検出部１４２は、ＤＥ／Ｓｌｏｔ情報テーブル１３２について、検出されたアンマウントのディスク２１の位置情報に対応するＳｌｏｔ状態１３２ｄを、ディスク２１がアンマウントしていることを示す「Broken」に設定する。
【００２８】
また、アンマウント検出部１４２は、後述する書込管理情報テーブル１３３のエントリ（書込管理情報）に、アンマウント中にデータの書込要求があった場合の当該データの管理方法を設定する。そして、アンマウント検出部１４２は、エントリに、検出されたアンマウントのディスク２１の位置情報、ＲＡＩＤグループ番号、ＲＡＩＤ種別、アンマウント時のタイムスタンプを設定する。
【００２９】
ここで、アンマウント中にデータの書込要求があった場合のデータの管理方法について説明する。方法１では、アンマウントが検出されたディスク２１のＲＡＩＤグループにスペアディスクがある場合、アンマウント中に、当該ディスク２１に対してデータの書込要求があると、スペアディスクにデータを書き込むとともに、データの復旧に必要な書込情報を保持する。書込情報には、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。その後、方法１は、ディスク２１のマウントが検出されると、書込情報からディスク２１への書き込み部分を特定し、スペアディスク上のデータを利用して復旧処理を行う。
【００３０】
また、方法２、３、４は、アンマウントが検出されたディスク２１のＲＡＩＤグループにスペアディスクがない場合のデータの管理方法である。方法２では、アンマウント中に、当該ディスク２１に対してデータの書込要求があると、メモリ１３上に確保されたバッファ領域にデータを書き込むとともに、データの復旧に必要な書込情報を保持する。書込情報には、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。そして、メモリ１３上に確保された領域を超えてデータの書込要求があった場合、書込情報のみに保持する運用に切り替える。その後、方法２は、ディスク２１のマウントが検出されると、メモリ１３上に確保されたバッファ領域上のデータをディスク２１に書き戻し、さらに、バッファ領域を超えたデータについて書込情報からディスク２１への書き込み部分を特定し、ＲＡＩＤの正常なディスク２１上の冗長データを利用して復旧処理を行う。
【００３１】
方法３では、アンマウント中に、当該ディスク２１に対してデータの書込要求があると、メモリ上に確保されたバッファを利用しないで、データの復旧に必要な書込情報を保持する。書込情報には、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。その後、方法３は、ディスク２１のマウントが検出されると、書込情報からディスク２１への書き込み部分を特定し、ＲＡＩＤの正常なディスク２１上の冗長データを利用して復旧処理を行う。
【００３２】
方法４では、アンマウント中に、当該ディスク２１に対してデータの書込要求があっても、書込要求があったデータの管理を行わない。方法４は、ディスク２１のマウントが検出されると、ＲＡＩＤの正常なディスク２１上のデータを利用して、マウントが検出されたディスク２１全体に対して復旧処理を行う。
【００３３】
書込要求管理部１４３は、アンマウント中のディスク２１へのデータの書き込み要求を管理する。
【００３４】
例えば、書込要求管理部１４３は、ホスト９から書き込み要求があったアンマウント中のディスク２１について、書込処理直前のタイムスタンプを、ＤＥ／Ｓｌｏｔ情報テーブル１３２の書込直前タイムスタンプ１３２ｅに書き込む。なお、書き込み要求には、データが書き込まれるディスク２１を特定できる情報、書込データの書き込み位置の位置情報および書込データが含まれる。
【００３５】
また、書込要求管理部１４３は、書込管理情報テーブル１３３について、有効フラグが有効である書込管理情報のエントリの内、該当するディスク２１に対応するエントリがあるか否かを判定する。一例として、書込要求管理部１４３は、書込管理情報テーブル１３３の書込管理情報のエントリの内、該当するディスク２１に対応するＲＡＩＤグループ番号、ＤＥ番号およびスロット番号が一致するエントリがあるか否かを判定する。
【００３６】
また、書込要求管理部１４３は、エントリがあると判定した場合、以下の処理を行う。書込要求管理部１４３は、エントリの管理方法１３３ｂが「方法１」である場合、スペアディスクにデータを書き込むとともに、データの復旧に必要な書込情報を書込情報テーブル１３４に記録する。書込情報には、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。また、書込要求管理部１４３は、エントリの管理方法１３３ｂが「方法２」である場合、メモリ１３上に確保されたバッファ領域にデータを書き込むとともに、データの復旧に必要な書込情報を書込情報テーブル１３４に記録する。書込情報には、データを書き込んだメモリ１３上のバッファのアドレス、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。また、書込要求管理部１４３は、エントリの管理方法１３３ｂが「方法３」である場合、データの復旧に必要な書込情報を書込情報テーブル１３４に記録する。書込情報には、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報および書き込みサイズが含まれる。
【００３７】
また、書込要求管理部１４３は、書込処理完了後のタイムスタンプを、ＤＥ／Ｓｌｏｔ情報テーブル１３２の書込完了タイムスタンプ１３２ｆに書き込む。
【００３８】
また、書込要求管理部１４３は、書込情報数１３３ｄが書込情報上限数１３３ｃである場合、もしくは該当するディスク２１のアンマウント時のタイムスタンプ１３３ｊからの管理期間が超過した場合に、管理情報の有効フラグ１３３ｋを無効に設定する。
【００３９】
ここで、書込管理情報テーブル１３３のデータ構成を、図５を参照して説明する。図５は、実施例に係る書込管理情報テーブルのデータ構成を示す図である。図５に示すように、書込管理情報テーブル１３３は、書込管理シーケンス番号１３３ａ、管理方法１３３ｂ、書込情報上限数１３３ｃ、書込情報数１３３ｄ、メモリバッファ上限数１３３ｅおよびデータ数１３３ｆを対応付けて記憶する。さらに、書込管理情報テーブル１３３は、ＲＡＩＤグループ番号１３３ｇ、ＲＡＩＤ種別１３３ｈ、Ｄｉｓｋを特定する情報（ＤＥ番号／Ｓｌｏｔ番号）１３３ｉ、アンマウント時のタイムスタンプ１３３ｊおよび有効フラグ１３３ｋを対応付けて記憶する。
【００４０】
書込管理シーケンス番号１３３ａは、書込管理情報を識別するシーケンス番号であり、例えば連続する通し番号である。管理方法１３３ｂは、アンマウント中にデータの書込要求があった場合の当該データを管理する方法を示す。管理方法１３３ｂには、一例として、方法１、方法２、方法３および方法４のいずれかの方法が設定される。書込情報上限数１３３ｃは、書込管理シーケンス番号１３３ａに対応する書込情報の上限数を示す。書込情報数１３３ｄは、書込管理シーケンス番号１３３ａに対応する有効な（管理中の）書込情報の数を示す。メモリバッファ上限数１３３ｅは、データを書き込むために用いられるメモリ１３上に確保されたバッファの上限数を示す。データ数１３３ｆは、有効な（管理中の）メモリバッファの数を示す。なお、メモリバッファ上限数１３３ｅおよびデータ数１３３ｆは、メモリバッファを利用する方法２でのみ用いられる。ＲＡＩＤグループ番号１３３ｇは、管理しているＲＡＩＤグループの番号を示す。ＲＡＩＤ種別１３３ｈは、管理しているＲＡＩＤの種別を示す。Ｄｉｓｋを特定する情報１３３ｉは、管理しているＲＡＩＤのアンマウントディスクのＤＥ番号およびスロット番号を示す。アンマウント時のタイムスタンプ１３３ｊは、ディスク２１がアンマウントされた時のタイムスタンプである。アンマウント時のタイムスタンプ１３３ｊは、書込要求管理部１４３によって管理期間が超過しているか否かが判定される際に用いられる。有効フラグ１３３ｋは、書込管理シーケンス番号１３３ａに対応する書込管理情報が有効か否かを表す。
【００４１】
また、書込情報テーブル１３４のデータ構成を、図６を参照して説明する。図６は、実施例に係る書込情報テーブルのデータ構成を示す図である。図６に示すように、書込情報テーブル１３４は、書込管理シーケンス番号１３４ａ、シーケンス番号１３４ｂ、メモリバッファアドレス１３４ｃ、書込データの先頭のＤｉｓｋ  ＬＢＡ（Logical  Block  Addressing）１３４ｄおよび書込みブロック数１３４ｅを対応付けて記憶する。書込管理シーケンス番号１３４ａは、書込管理情報を識別するシーケンス番号であり、書込管理情報テーブル１３３の書込管理シーケンス番号１３３ａに対応する。シーケンス番号１３４ｂは、書込管理シーケンス番号１３４ａに対応するシーケンス番号であり、例えば連続する通し番号である。メモリバッファアドレス１３４ｃは、データが書き込まれたメモリバッファのアドレスを示す。書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄは、ＲＡＩＤの正常なディスク２１への書込データの書き込み位置の位置情報を示す。書込みブロック数１３４ｅは、ＲＡＩＤの正常なディスク２１への書込データのサイズを示す。
【００４２】
図１に戻って、マウント検出部１４４は、ＲＡＩＤ構成のディスク２１のマウントを検出する。
【００４３】
例えば、マウント検出部１４４は、ディスク２１のマウントを検出すると、検出されたマウントのディスク２１のＤｉｓｋ識別子２１１および管理情報テーブル２１０を読み出す。そして、マウント検出部１４４は、管理情報テーブル２１０に記憶された装置識別子２１０ａとメモリ１３上の装置識別子１３５とが一致するか否かを判定する。そして、マウント検出部１４４は、各装置識別子が一致すると判定した場合、マウントが検出されたディスク２１がＲＡＩＤ構成のディスクであるか否かを判定する。一例として、マウント検出部１４４は、管理情報テーブル２１０に記憶された管理情報と、メモリ１３上のＲＡＩＤグループ情報テーブル１３１およびＤＥ／Ｓｌｏｔ情報テーブル１３２に記憶された各種情報とを付き合わせて、判定処理を行う。なお、判定処理の詳細については後述する。
【００４４】
データ整合性判定部１４５は、マウント検出部１４４によってＲＡＩＤ構成のディスク２１のマウントが検出されると、書込要求管理部１４３によって管理された書込要求に基づいて、マウントが検出されたディスク２１のデータの整合性を判定する。
【００４５】
例えば、データ整合性判定部１４５は、マウントが検出されたディスク２１に対する書込要求の直前と完了後のタイムスタンプが一致するか否かを判定する。すなわち、データ整合性判定部１４５は、マウントが検出されたディスク２１のアンマウント中に、書き込み要求が発行されたかどうかを判定することで、データの整合性を判断する。各タイムスタンプが不一致であれば、アンマウント中に書き込み要求が発行され、データの整合性がないと判断する。各タイムスタンプが一致すれば、アンマウント中に書き込み要求が発行されず、データの整合性があると判断する。
【００４６】
書込データ復旧部１４６は、データ整合性判定部１４５によってデータの整合性がないと判定される場合、マウントが検出されたディスク２１について、アンマウント中に発行されたデータの書込要求の復旧処理を実行する。
【００４７】
例えば、書込データ復旧部１４６は、マウントが検出されたディスク２１に対する書込管理情報のエントリがあるか否かを判定する。一例として、書込データ復旧部１４６は、ＲＡＩＤグループ情報テーブル１３１およびＤＥ／Ｓｌｏｔ情報テーブル１３２に記憶された情報から、マウントが検出されたディスク２１のＤＥ番号１３２ａおよびスロット番号１３２ｂ、ＲＡＩＤグループ番号１３１ａを取得する。また、書込データ復旧部１４６は、書込管理情報テーブル１３３に記憶された書込管理情報から、マウントが検出されたＤｉｓｋを特定する情報（ＤＥ番号／スロット番号）１３３ｉおよびＲＡＩＤグループ番号１３３ｇを取得する。そして、書込データ復旧部１４６は、取得された各種情報を照合し、各種情報が一致するか否かを判定する。すなわち、書込データ復旧部１４６は、マウントが検出されたディスク２１に対する書込管理情報のエントリがあるかどうかを判定する。
【００４８】
また、書込データ復旧部１４６は、マウントが検出されたディスク２１に対する書込管理情報のエントリがあると判定した場合、エントリに記憶された管理方法１３３ｂに基づいて、復旧処理を実行する。一例として、書込データ復旧部１４６は、管理方法１３３ｂが方法１である場合、ＲＡＩＤグループ情報テーブル１３１に記憶された情報を用いて、ＲＡＩＤグループ番号に対するスペアディスクを特定する。そして、書込データ復旧部１４６は、書込管理情報のエントリに対応する書込情報を用いて、特定したスペアディスクから該当するディスク２１へデータを書き戻す。また、書込データ復旧部１４６は、管理方法１３３ｂが方法２である場合、書込管理情報のエントリに対応する書込情報を用いて、データをメモリバッファに保持していれば、メモリバッファから該当するディスク２１へデータを書き戻す。そして、書込データ復旧部１４６は、管理方法１３３ｂが方法２である場合であっても、メモリバッファ上限数１３３ｅを超えたデータを、書込管理情報のエントリに対応する書込情報を用いて、ＲＡＩＤの正常なディスク２１から該当するディスク２１へ書き戻す。また、書込データ復旧部１４６は、管理方法１３３ｂが方法３である場合、書込管理情報のエントリに対応する書込情報を用いて、ＲＡＩＤの正常なディスク２１から該当するディスク２１へデータを書き戻す。
【００４９】
また、書込データ復旧部１４６は、書込管理シーケンス番号１３３ａに対応する有効フラグ１３３ｋを無効に設定する。なお、書込データ復旧部１４６は、データ整合性判定部１４５によってデータの整合性があると判定される場合、マウントが検出されたディスク２１に対してデータの復旧処理を実行しない。
【００５０】
ＲＡＩＤ組込部１４７は、マウントが検出されたディスク２１を元のＲＡＩＤ構成として組み込む。例えば、ＲＡＩＤ組込部１４７は、マウントが検出されたディスク２１のデータの整合性がない場合に、データが復旧されると、当該ディスク２１がアンマウントされた際のＤＥ番号およびスロット番号を、マウントされたＤＥ番号およびスロット番号に変更する。また、ＲＡＩＤ組込部１４７は、マウントが検出されたディスク２１のデータの整合性がある場合に、当該ディスク２１がアンマウントされた際のＤＥ番号およびスロット番号を、マウントされたＤＥ番号およびスロット番号に変更する。一例として、ＲＡＩＤ組込部１４７は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅを、ディスク２１がマウントされたＤＥ番号およびスロット番号に変更する。ＲＡＩＤ組込部１４７は、ＤＥ／Ｓｌｏｔ情報テーブル１３２から、ディスク２１がアンマウントされた際のＤＥ番号およびスロット番号に対応するＤＥ／Ｓｌｏｔ情報を削除するとともに、マウントされたＤＥ番号およびスロット番号に対応するＤＥ／Ｓｌｏｔ情報を登録する。ＲＡＩＤ組込部１４７は、マウントが検出されたディスク２１上の管理情報テーブル２１０に記憶されたＤＥ番号およびスロット番号を、ディスク２１がマウントされたＤＥ番号およびスロット番号に変更する。
【００５１】
［ＲＡＩＤ登録処理のフローチャート］
次に、ＲＡＩＤ登録処理のフローチャートを、図７を参照して説明する。図７は、ＲＡＩＤ登録処理のフローチャートを示す図である。
【００５２】
まず、ＲＡＩＤ登録部１４１は、ＲＡＩＤの登録要求があったか否かを判定する（ステップＳ１１）。ＲＡＩＤの登録要求がなかったと判定した場合（ステップＳ１１；Ｎｏ）、ＲＡＩＤ登録部１４１は、ＲＡＩＤの登録要求があるまで、判定処理を繰り返す。
【００５３】
一方、ＲＡＩＤの登録要求があったと判定した場合（ステップＳ１１；Ｙｅｓ）、ＲＡＩＤ登録部１４１は、ＲＡＩＤ登録を行う（ステップＳ１２）。例えば、ＲＡＩＤ登録部１４１は、ＧＵＩ（Graphical  User  Interface）によりＲＡＩＤ構成するディスク２１の数、ディスク２１の識別子や位置情報（ＤＥ番号、スロット番号）を取得する。そして、ＲＡＩＤ登録部１４１は、取得した各種情報を、メモリ１３上のＲＡＩＤグループ情報テーブル１３１およびＤＥ／Ｓｌｏｔ情報テーブル１３２に記録する。
【００５４】
そして、ＲＡＩＤ登録部１４１は、メモリ１３上のＲＡＩＤ構成に依存する情報を変更する（ステップＳ１３）。例えば、ＲＡＩＤ登録部１４１は、ＧＵＩによりＲＡＩＤ構成に依存する情報、一例としてＲＡＩＤ種別やスペアディスクがあればスペアディスクの位置情報を取得する。そして、ＲＡＩＤ登録部１４１は、メモリ１３上のＲＡＩＤグループ情報テーブル１３１およびＤＥ／Ｓｌｏｔ情報テーブル１３２に記録する。
【００５５】
そして、ＲＡＩＤ登録部１４１は、各ディスク２１媒体へ情報を書き込む（ステップＳ１４）。例えば、ＲＡＩＤ登録部１４１は、ＧＵＩによりＲＡＩＤ構成が紐付けられた複数のディスク２１に対するそれぞれの管理情報テーブル２１０を各ディスク２１媒体へ書き込む。そして、ＲＡＩＤ登録部１４１は、ＲＡＩＤ登録処理を終了する。
【００５６】
［アンマウント検出処理のフローチャート］
次に、アンマウント検出処理のフローチャートを、図８を参照して説明する。図８は、アンマウント検出処理のフローチャートを示す図である。なお、ＲＡＩＤ登録部１４１によってＲＡＩＤ登録処理は終了しているとする。
【００５７】
まず、アンマウント検出部１４２は、ディスク２１のアンマウントを検出したか否かを判定する（ステップＳ２１）。ディスク２１のアンマウントを検出していないと判定した場合（ステップＳ２１；Ｎｏ）、アンマウント検出部１４２は、ディスク２１のアンマウントを検出するまで、判定処理を繰り返す。
【００５８】
一方、ディスク２１のアンマウントを検出したと判定した場合（ステップＳ２１；Ｙｅｓ）、アンマウント検出部１４２は、アンマウントを検出したディスク２１がＲＡＩＤを構成するディスクであるか否かを判定する（ステップＳ２２）。例えば、アンマウント検出部１４２は、アンマウントを検出したディスク２１の位置情報を取得する。ここでいう位置情報とは、ＤＥ番号およびスロット番号を意味する。アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅを参照し、取得した位置情報があれば、ＲＡＩＤを構成するディスクであると判断する。一方、アンマウント検出部１４２は、取得した位置情報がなければ、ＲＡＩＤを構成するディスクでないと判断する。
【００５９】
アンマウント検出したディスク２１がＲＡＩＤを構成するディスクでないと判定した場合（ステップＳ２２；Ｎｏ）、アンマウント検出部１４２は、アンマウント検出処理を終了する。一方、アンマウント検出したディスク２１がＲＡＩＤを構成するディスクであると判定した場合（ステップＳ２２；Ｙｅｓ）、アンマウント検出部１４２は、以下の処理を行う。すなわち、アンマウント検出部１４２は、ＤＥ／Ｓｌｏｔ情報テーブル１３２のＤＥ／Ｓｌｏｔ情報の内、Ｓｌｏｔ状態１３２ｄを、ディスク２１がアンマウントしていることを示す「Broken」に設定する（ステップＳ２３）。
【００６０】
アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤグループ情報の内、ＲＡＩＤ状態１３１ｃを、ＲＡＩＤ構成のいずれかのディスク２１がアンマウント中であることを示す「Exposed」に変更する（ステップＳ２４）。なお、例えば、ＲＡＩＤが異常であるか否かを判定する監視部（図示せず）が、ＣＰＵ１４に備わっているとする。すると、ディスク２１がアンマウント中に、当該ディスク２１を構成の一部とするＲＡＩＤが異常になった場合、かかる監視部によって、ＲＡＩＤグループ情報のＲＡＩＤ状態１３１ｃが、故障であることを示す「Broken」に設定される。
【００６１】
その後、アンマウント検出部１４２は、ＲＡＩＤ状態１３１ｃが故障であることを示す「Broken」であるか否かを判定する（ステップＳ２５）。ＲＡＩＤ状態１３１ｃが「Broken」であると判定した場合（ステップＳ２５；Ｙｅｓ）、アンマウント検出部１４２は、アンマウント検出処理を終了する。一方、ＲＡＩＤ状態１３１ｃが「Broken」でないと判定した場合（ステップＳ２５；Ｎｏ）、アンマウント検出部１４２は、書込管理情報テーブル１３３の書込管理情報に無効なエントリがあるか否かを判定する（ステップＳ２６）。
【００６２】
書込管理情報に無効なエントリがないと判定した場合（ステップＳ２６；Ｎｏ）、アンマウント検出部１４２は、アンマウント検出処理を終了する。一方、書込管理情報に無効なエントリがあると判定した場合（ステップＳ２６；Ｙｅｓ）、アンマウント検出部１４２は、書込管理情報の有効フラグ１３３ｋを有効に設定する（ステップＳ２７）。
【００６３】
続いて、アンマウント検出部１４２は、スペアディスク（Ｓｐａｒｅ  Ｄｉｓｋ）はあるか否かを判定する（ステップＳ２８）。例えば、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１の、アンマウントを検出したディスク２１に対応する使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆを参照し、スペアディスクがあるか否かを判定する。
【００６４】
スペアディスクがあると判定した場合（ステップＳ２８；Ｙｅｓ）、アンマウント検出部１４２は、書込管理情報の該当エントリの管理方法１３３ｂを「方法１」に設定する（ステップＳ２９）。一方、スペアディスクがないと判定した場合（ステップＳ２８；Ｎｏ）、アンマウント検出部１４２は、書込管理情報の該当エントリの管理方法１３３ｂを「方法２」もしくは「方法３」に設定する（ステップＳ３０）。例えば、早期に復旧処理を終了したい場合、アンマウント検出部１４２は「方法２」を設定すれば良い。メモリ１３の使用を軽減したい場合、アンマウント検出部１４２は「方法３」を設定すれば良い。
【００６５】
続いて、アンマウント検出部１４２は、該当エントリのＲＡＩＤグループ番号１３３ｇを登録する（ステップＳ３１）。例えば、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１の、アンマウントを検出したディスク２１に対応するＲＡＩＤグループ番号１３１ａを読み出し、該当エントリのＲＡＩＤグループ番号１３３ｇに設定する。
【００６６】
そして、アンマウント検出部１４２は、該当エントリのＲＡＩＤ種別１３３ｈを登録する（ステップＳ３２）。例えば、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１の、アンマウントを検出したディスク２１に対応するＲＡＩＤ種別１３１ｂを読み出し、該当エントリのＲＡＩＤ種別１３３ｈに設定する。
【００６７】
そして、アンマウント検出部１４２は、該当エントリにアンマウントディスクのＤＥ番号／Ｓｌｏｔ番号を登録する（ステップＳ３３）。例えば、アンマウント検出部１４２は、アンマウント検出したディスク２１の位置情報を、該当エントリのＤｉｓｋを特定する情報１３３ｉに設定する。位置情報は、ＤＥ番号およびスロット番号を意味する。
【００６８】
さらに、アンマウント検出部１４２は、該当エントリにメモリバッファ上限数および書込情報上限数を設定する（ステップＳ３４）。例えば、アンマウント検出部１４２は、予め定められたメモリバッファ上限数を、該当エントリのメモリバッファ上限数１３３ｅに設定する。アンマウント検出部１４２は、予め定められた書込情報上限数を、該当エントリの書込情報上限数１３３ｃに設定する。
【００６９】
そして、アンマウント検出部１４２は、該当エントリにディスクアンマウント時のタイムスタンプを登録する（ステップＳ３５）。例えば、アンマウント検出部１４２は、ディスク２１のアンマウントが検出されたタイムスタンプを、該当エントリのアンマウント時のタイムスタンプ１３３ｊに設定する。そして、アンマウント検出部１４２は、アンマウント検出処理を終了する。
【００７０】
［書込要求管理処理のフローチャート］
次に、書込要求管理処理のフローチャートを、図９を参照して説明する。図９は、書込要求管理処理のフローチャートを示す図である。なお、ＲＡＩＤ登録部１４１によってＲＡＩＤ登録処理は終了しているとする。
【００７１】
まず、書込要求管理部１４３は、書込要求があったか否かを判定する（ステップＳ４１）。書込要求がないと判定した場合（ステップＳ４１；Ｎｏ）、書込要求管理部１４３は、書込要求があるまで、判定処理を繰り返す。一方、書込要求があると判定した場合（ステップＳ４１；Ｙｅｓ）、書込要求管理部１４３は、書込要求があったディスク２１に対応するＲＡＩＤの状態は「Broken」であるか否かを判定する（ステップＳ４２）。ここでいう「Broken」は、異常であることを表す。ここで、書込要求管理部１４３は、ＲＡＩＤの状態を、以下のように取得すれば良い。例えば、書込要求管理部１４３は、書込要求があったディスク２１の識別子をキーとして、ＤＥ／Ｓｌｏｔ情報テーブル１３２から、該当するＤＥ番号およびスロット番号を取得する。そして、書込要求管理部１４３は、取得したＤＥ番号およびスロット番号をディスクの位置情報とするＲＡＩＤのＲＡＩＤ状態１３１ｃを、ＲＡＩＤグループ情報テーブル１３１から取得する。
【００７２】
そして、ＲＡＩＤの状態が「Broken」であると判定した場合（ステップＳ４２；Ｙｅｓ）、書込要求管理部１４３は、書込要求管理処理を終了する。一方、ＲＡＩＤの状態が「Broken」でないと判定した場合（ステップＳ４２；Ｎｏ）、書込要求管理部１４３は、タイムスタンプを作成する（ステップＳ４３）。例えば、書込要求管理部１４３は、書込要求があったディスク２１に対応する書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆに初期値を設定する。
【００７３】
そして、書込要求管理部１４３は、書込要求があったディスク２１に対応する書込直前タイムスタンプ１３２ｅに、書込処理の直前のタイムスタンプとして現在のタイムスタンプを書き込む（ステップＳ４４）。そして、書込要求管理部１４３は、書込要求があったディスク２１がアンマウントディスクであるか否かを判定する（ステップＳ４５）。例えば、書込要求管理部１４３は、書込要求があったディスク２１に対応するＳｌｏｔ状態１３２ｄを参照し、ディスク２１がアンマウントしていることを示す「Broken」であるか否かを判定する。
【００７４】
書込要求があったディスク２１がアンマウントディスクであると判定した場合（ステップＳ４５；Ｙｅｓ）、書込要求管理部１４３は、以下の処理を行う。すなわち、書込要求管理部１４３は、書込管理情報の有効フラグ１３３ｋが有効のエントリの内、ＲＡＩＤグループ番号、ＤＥ番号およびスロット番号が一致するエントリがあるか否かを判定する（ステップＳ４９）。該当するエントリがないと判定した場合（ステップＳ４９；Ｎｏ）、書込要求管理部１４３は、書込要求管理処理を終了する。
【００７５】
一方、該当するエントリがあると判定した場合（ステップＳ４９；Ｙｅｓ）、書込要求管理部１４３は、該当するエントリの管理方法１３３ｂが「方法１」であるか否かを判定する（ステップＳ５０）。該当するエントリの管理方法１３３ｂが「方法１」であると判定した場合（ステップＳ５０；Ｙｅｓ）、書込要求管理部１４３は、スペアディスクがリビルド済みの領域であるか否かを判定する（ステップＳ５１）。
【００７６】
スペアディスクがリビルド済みの領域でないと判定した場合（ステップＳ５１；Ｎｏ）、書込要求管理部１４３は、その領域のリビルドを実施し（ステップＳ５２）、ステップＳ５３に移行する。一方、スペアディスクがリビルド済みの領域であると判定した場合（ステップＳ５１；Ｙｅｓ）、書込要求管理部１４３は、ステップＳ５３に移行する。ステップＳ５３では、書込要求管理部１４３は、スペアディスクに書込要求があったデータを書き込む（ステップＳ５３）。そして、書込要求管理部１４３は、ステップＳ５４に移行する。
【００７７】
一方、該当するエントリの管理方法１３３ｂが「方法１」でないと判定した場合（ステップＳ５０；Ｎｏ）、書込要求管理部１４３は、ステップＳ５４に移行する。
【００７８】
ステップＳ５４では、書込要求管理部１４３は、該当するエントリの管理方法１３３ｂに応じて書込情報テーブル１３４の書込情報をメモリ１３上に記録する（ステップＳ５４）。
【００７９】
続いて、書込要求管理部１４３は、該当する書込管理情報の書込情報数１３３ｄに１を加算する（ステップＳ５５）。そして、書込要求管理部１４３は、該当する書込管理情報の書込情報数１３３ｄが上限値を超えるか、もしくはＤｉｓｋアンマウト時のタイムスタンプ１３３ｊからの管理期間を経過したか否かを判定する（ステップＳ５６）。
【００８０】
該当する書込管理情報の書込情報数１３３ｄが上限値を超えた、もしくはＤｉｓｋアンマウト時のタイムスタンプ１３３ｊからの管理期間を経過したと判定した場合（ステップＳ５６；Ｙｅｓ）、書込要求管理部１４３は、以下の処理を行う。すなわち、書込要求管理部１４３は、該当する書込管理情報の有効フラグ１３３ｋを無効に設定する（ステップＳ５７）。そして、書込要求管理部１４３は、書込要求管理処理を終了する。
【００８１】
一方、該当する書込管理情報の書込情報数１３３ｄが上限値を超えていない、且つＤｉｓｋアンマウト時のタイムスタンプ１３３ｊからの管理期間を経過していないと判定した場合（ステップＳ５６；Ｎｏ）、書込要求管理部１４３は、書込要求管理処理を終了する。
【００８２】
ステップＳ４５では、書込要求があったディスク２１がアンマウントディスクでないと判定した場合には（ステップＳ４５；Ｎｏ）、書込要求管理部１４３は、以下の処理を行う。すなわち、書込要求管理部１４３は、書込要求があったディスク２１に対応するＤＥ番号およびスロット番号のディスク２１へ書込要求コマンドを発行する（ステップＳ４６）。そして、書込要求管理部１４３は、正常終了であるか否かを判定する（ステップＳ４７）。正常終了でないと判定した場合（ステップＳ４７；Ｎｏ）、書込要求管理部１４３は、書込要求管理処理を終了する。
【００８３】
一方、正常終了であると判定した場合（ステップＳ４７；Ｙｅｓ）、書込要求管理部１４３は、以下の処理を行う。すなわち、書込要求管理部１４３は、書込要求があったディスク２１に対応する書込完了タイムスタンプ１３２ｆに、書込処理完了のタイムスタンプとして現在のタイムスタンプを書き込む（ステップＳ４８）。そして、書込要求管理部１４３は、書込要求管理処理を終了する。
【００８４】
［マウント検出処理のフローチャート］
次に、マウント検出処理のフローチャートを、図１０を参照して説明する。図１０は、マウント検出処理のフローチャートを示す図である。なお、ＲＡＩＤ登録部１４１によってＲＡＩＤ登録処理は終了しているとする。
【００８５】
まず、マウント検出部１４４は、ディスク２１のマウントを検出したか否かを判定する（ステップＳ７１）。ディスク２１のマウントを検出していないと判定した場合（ステップＳ７１；Ｎｏ）、マウント検出部１４４は、ディスク２１のマウントを検出するまで、判定処理を繰り返す。
【００８６】
一方、ディスク２１のマウントを検出していると判定した場合（ステップＳ７１；Ｙｅｓ）、マウント検出部１４４は、マウントを検出したディスク２１からＤｉｓｋ識別子２１１を読み出す（ステップＳ７２）。Ｄｉｓｋ識別子２１１は、ディスク２１が保持しているディスク固有のデバイス名である。そして、マウント検出部１４４は、ディスク２１から管理情報テーブル２１０を読み出す（ステップＳ７３）。
【００８７】
そして、マウント検出部１４４は、ディスク２１からの装置識別子とメモリ１３上の装置識別子が一致しているか否かを判定する（ステップＳ７４）。例えば、マウント検出部１４４は、ディスク２１から読み出した管理情報テーブル２１０の装置識別子２１０ａと、メモリ１３上の装置識別子１３５とが一致するか否かを判定する。ディスク２１からの装置識別子とメモリ１３上の装置識別子が一致していないと判定した場合（ステップＳ７４；Ｎｏ）、マウント検出部１４４は、新規に挿入されたディスク２１の情報を更新すべく、ステップＳ８３に移行する。
【００８８】
一方、ディスク２１からの装置識別子とメモリ１３上の装置識別子が一致していると判定した場合（ステップＳ７４；Ｙｅｓ）、マウント検出部１４４は、ディスク２１からの管理情報に、該当するＲＡＩＤグループ番号が存在するか否かを判定する（ステップＳ７５）。例えば、マウント検出部１４４は、ディスク２１から読み出した管理情報テーブル２１０にＲＡＩＤグループ番号２１０ｄが設定されているか否かを判定する。該当するＲＡＩＤグループ番号が存在しないと判定した場合（ステップＳ７５；Ｎｏ）、マウント検出部１４４は、新規に挿入されたディスク２１の情報を更新すべく、ステップＳ８３に移行する。
【００８９】
一方、該当するＲＡＩＤグループ番号が存在すると判定した場合（ステップＳ７５；Ｙｅｓ）、マウント検出部１４４は、該当ＲＡＩＤの情報はディスク２１からの管理情報と一致するか否かを判定する（ステップＳ７６）。例えば、マウント検出部１４４は、ディスク２１から読み出したＤｉｓｋ識別子２１１をキーにして、ＤＥ／Ｓｌｏｔ情報テーブル１３２からＤＥ／Ｓｌｏｔ情報を読み出す。そして、マウント検出部１４４は、読み出したＤＥ／Ｓｌｏｔ情報に対応するＲＡＩＤグループ情報をＲＡＩＤグループ情報テーブル１３１から読み出す。そして、マウント検出部１４４は、読み出したＲＡＩＤグループ情報のＲＡＩＤ種別１３１ｂと、管理情報テーブル２１０のＲＡＩＤ種別２１０ｅとを比較する。
【００９０】
該当ＲＡＩＤの情報はディスク２１からの管理情報と一致しないと判定した場合（ステップＳ７６；Ｎｏ）、マウント検出部１４４は、新規に挿入されたディスク２１の情報を更新すべく、ステップＳ８３に移行する。一方、該当ＲＡＩＤの情報はディスク２１からの管理情報と一致すると判定した場合（ステップＳ７６；Ｙｅｓ）、マウント検出部１４４は、ＲＡＩＤグループ情報のＲＡＩＤ状態が異常であることを示す「Broken」であるか否かを判定する（ステップＳ７７）。ＲＡＩＤグループ情報のＲＡＩＤ状態が「Broken」であると判定した場合（ステップＳ７７；Ｙｅｓ）、マウント検出部１４４は、新規に挿入されたディスク２１の情報を更新すべく、ステップＳ８３に移行する。
【００９１】
一方、ＲＡＩＤグループ情報のＲＡＩＤ状態が「Broken」でないと判定した場合（ステップＳ７７；Ｎｏ）、マウント検出部１４４は、以下の処理を行う。すなわち、マウント検出部１４４は、ディスク２１から読み出したＤＥ番号とＳｌｏｔ番号は該当ＲＡＩＤのアンマウントしたディスク２１の情報と一致するか否かを判定する（ステップＳ７８）。例えば、マウント検出部１４４は、管理情報テーブル２１０のＤＥ番号２１０ｂおよびＳｌｏｔ番号２１０ｃと、Ｄｉｓｋ識別子２１１をキーにして読み出したＤＥ／Ｓｌｏｔ情報に対応するＤＥ番号１３２ａおよびＳｌｏｔ番号１３２ｂとをそれぞれ比較する。
【００９２】
一致しないと判定した場合（ステップＳ７８；Ｎｏ）、マウント検出部１４４は、該当ＲＡＩＤのアンマウントしたディスク２１の情報でないと判断し、新規に挿入されたディスク２１の情報を更新すべく、ステップＳ８３に移行する。一方、一致すると判定した場合（ステップＳ７８；Ｙｅｓ）、データ整合性判定部１４５は、該当スロットの書込直前タイムスタンプと書込完了タイムスタンプとが一致するか否かを判定する（ステップＳ７９）。例えば、データ整合性判定部１４５は、Ｄｉｓｋ識別子２１１をキーにして読み出したＤＥ／Ｓｌｏｔ情報に対応する書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆを比較する。
【００９３】
該当スロットの書込直前タイムスタンプ１３２ｅと書込完了タイムスタンプ１３２ｆとが一致すると判定した場合（ステップＳ７９；Ｙｅｓ）、データ整合性判定部１４５は、データの整合性があると判断し、ステップＳ８１に移行する。一方、該当スロットの書込直前タイムスタンプ１３２ｅと書込完了タイムスタンプ１３２ｆとが一致しないと判定した場合（ステップＳ７９；Ｎｏ）、データ整合性判定部１４５は、データの整合性がないと判断し、復旧処理を実行する（ステップＳ８０）。例えば、データ整合性判定部１４５は、パラメータとして、ＲＡＩＤグループ情報のＲＡＩＤグループ番号、ＤＥ／Ｓｌｏｔ情報のＤＥ番号およびスロット番号を、書込データ復旧部１４６に引き渡す。復旧処理の実行後、データ整合性判定部１４５は、ステップＳ８１に移行する。
【００９４】
ステップＳ８１では、ＲＡＩＤ組込部１４７は、ディスク２１媒体上の管理情報を更新するとともに、メモリ１３上のＲＡＩＤグループ情報を更新する（ステップＳ８１）。例えば、ＲＡＩＤ組込部１４７は、ディスク２１媒体上の管理情報テーブル２１０のＤＥ番号２１０ｂおよびＳｌｏｔ番号２１０ｃを、新規挿入されたＤＥ番号およびスロット番号に更新する。すなわち、ＲＡＩＤ組込部１４７は、アンマウントされた際のＤＥ番号およびスロット番号を、マウントされたＤＥ番号およびスロット番号に変更する。そして、ＲＡＩＤ組込部１４７は、メモリ１３上の該当するＲＡＩＤグループ情報のＲＡＩＤ構成Ｄｉｓｋ位置情報１３１ｅを、アンマウントされた際のＤＥ番号およびスロット番号から新規挿入されたＤＥ番号およびスロット番号に更新する。
【００９５】
そして、ＲＡＩＤ組込部１４７は、ＤＥ／Ｓｌｏｔ情報テーブル１３２から、ディスク２１の旧ＤＥ番号およびスロット番号に対応するＤＥ／Ｓｌｏｔ情報を削除する（ステップＳ８２）。すなわち、ＲＡＩＤ組込部１４７は、新規挿入されたディスク２１の、以前にアンマウントされた際のＤＥ番号およびスロット番号に対応するＤＥ／Ｓｌｏｔ情報を削除する。
【００９６】
そして、ＲＡＩＤ組込部１４７は、新規挿入されたスロットのＤＥ／Ｓｌｏｔ情報を更新する（ステップＳ８３）。例えば、ＲＡＩＤ組込部１４７は、ＤＥ番号１３２ａおよびＳｌｏｔ番号１３２ｂに、新規挿入されたスロットのＤＥ番号およびスロット番号を設定する。ＲＡＩＤ組込部１４７は、Ｄｉｓｋの識別子１３２ｃに、ディスク２１媒体上のＤｉｓｋ識別子２１１を設定する。ＲＡＩＤ組込部１４７は、Ｓｌｏｔ状態１３２ｄに使用していることを示す「Available」を設定する。そして、ＲＡＩＤ組込部１４７は、マウント検出処理を終了する。
【００９７】
［復旧処理のフローチャート］
次に、マウント検出処理のＳ８０による復旧処理のフローチャートを、図１１を参照して説明する。図１１は、復旧処理のフローチャートを示す図である。なお、データ整合性判定部１４５から、パラメータとして、ＲＡＩＤグループ番号、ＤＥ番号およびスロット番号が引き渡されたとする。
【００９８】
書込データ復旧部１４６は、書込管理情報の有効フラグが有効のエントリのうち、パラメータとして引き渡されたＲＡＩＤグループ番号、ＤＥ番号およびスロット番号が一致するエントリがあるか否かを判定する（ステップＳ９１）。該当エントリがないと判定した場合（ステップＳ９１；Ｎｏ）、書込データ復旧部１４６は、書込管理情報の該当エントリがないので、ＲＡＩＤの正常ディスク２１から該当ディスク２１へすべてのデータを復旧する（ステップＳ９２）。そして、書込データ復旧部１４６は、復旧処理を終了する。
【００９９】
一方、該当エントリがあると判定した場合（ステップＳ９１；Ｙｅｓ）、書込データ復旧部１４６は、書込データの管理方法を取得する（ステップＳ９３）。例えば、書込データ復旧部１４６は、パラメータのＤＥ番号およびスロット番号に対応する書込管理情報から管理方法１３３ｂを取得する。
【０１００】
続いて、書込データ復旧部１４６は、取得した管理方法が書込データをスペアディスクに書き込んでいる「方法１」であるか否かを判定する（ステップＳ９４）。「方法１」であると判定した場合（ステップＳ９４；Ｙｅｓ）、書込データ復旧部１４６は、スペアディスクを特定し、スペアディスクから該当ディスク２１へ部分的に書き戻す（ステップＳ９５）。そして、書込データ復旧部１４６は、ステップＳ１００に移行する。
【０１０１】
一方、「方法１」でないと判定した場合（ステップＳ９４；Ｎｏ）、書込データ復旧部１４６は、取得した管理方法が書込データをメモリバッファに保持している「方法２」であるか否かを判定する（ステップＳ９６）。書込データをメモリバッファに保持している「方法２」であると判定した場合（ステップＳ９６；Ｙｅｓ）、書込データ復旧部１４６は、以下の処理を行う。すなわち、書込データ復旧部１４６は、書込管理情報から紐付く書込情報のメモリバッファアドレス１３４ｃに基づいて、メモリバッファから該当ディスク２１へ書込データを書き戻す（ステップＳ９７）。
【０１０２】
一方、書込データをメモリバッファに保持している「方法２」でないと判定した場合（ステップＳ９６；Ｎｏ）、書込データ復旧部１４６は、以下の処理を行う。すなわち、書込データ復旧部１４６は、書込管理情報から紐付く書込情報に、書込データを書き込んだディスクＬＢＡの情報を保持しているか否かを判定する（ステップＳ９８）。ディスクＬＢＡの情報を保持していると判定した場合（ステップＳ９８；Ｙｅｓ）、書込データ復旧部１４６は、保持している情報を用いて、ＲＡＩＤの正常なディスク２１から該当ディスク２１へ書込データを復旧する（ステップＳ９９）。そして、書込データ復旧部１４６は、ステップＳ１００に移行する。
【０１０３】
一方、ディスクＬＢＡの情報を保持していないと判定した場合（ステップＳ９８；Ｎｏ）、書込データ復旧部１４６は、ステップＳ１００に移行する。ステップＳ１００では、書込データ復旧部１４６は、書込管理情報の有効フラグ１３３ｋを無効とする（ステップＳ１００）。そして、書込データ復旧部１４６は、復旧処理を終了する。
【０１０４】
［アンマウントした場合（方法１）の各テーブルの一例］
次に、ディスク２１をアンマウントした場合およびアンマウント中に当該ディスク２１に書込要求があった場合の各テーブルの一例を、図１２〜図１７を参照して説明する。なお、ＤＥ２０の内ＤＥ＃０１のスロット（Ｓｌｏｔ）＃００、Ｓｌｏｔ＃０１、Ｓｌｏｔ＃０２にそれぞれディスク２１が搭載され、ＲＡＩＤ５を構成している。そして、ＤＥ＃０１のＳｌｏｔ＃２に搭載されたディスク２１をアンマウントし、当該ディスク２１をＤＥ＃００のＳｌｏｔ＃２に移動させる場合とする。
【０１０５】
図１２は、アンマウントした場合（方法１）の各テーブルの一例を示す図である。図１２に示すように、ＲＡＩＤグループ情報テーブル１３１には、ＲＡＩＤ状態１３１ｃにＲＡＩＤ構成のいずれかのディスク２１がアンマウント中であることを示す「Exposed」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１およびＳｌｏｔ＃０２に搭載されたディスク２１のアンマウントを検出する。すると、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ状態１３１ｃを「Exposed」に設定する。なお、ＲＡＩＤグループ情報テーブル１３１には、使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆに「ＤＥ＃０１  Ｓｌｏｔ＃１１」が設定されている。すなわち、このＲＡＩＤグループには、スペアディスクが存在する。
【０１０６】
ＤＥ／Ｓｌｏｔ情報テーブル１３２には、ディスク２１のアンマウントが検出されたＤＥ＃０１のＳｌｏｔ＃０２に対応するＳｌｏｔ状態１３２ｄにディスク２１がアンマウントしていることを示す「Broken」が設定されている。すなわち、アンマウント検出部１４２は、検出されたアンマウントのディスク２１の位置情報に対応するＳｌｏｔ情報１３２ｄを「Broken」に設定する。
【０１０７】
書込管理情報テーブル１３３には、管理方法１３３ｂに「方法１」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１のＳｌｏｔ＃０２に対応する使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆにスペアディスクの位置情報が設定されているので、書込管理情報の管理方法１３３ｂを「方法１」に設定する。そして、アンマウント検出部１４２は、書込管理情報に、ＲＡＩＤグループ番号１３３ｇとして「１」、ＲＡＩＤ種別１３３ｈとして「ＲＡＩＤ５」、Ｄｉｓｋを特定する情報１３３ｉとして「ＤＥ＃０１  Ｓｌｏｔ＃２」を設定する。さらに、アンマウント検出部１４２は、書込管理情報に、アンマウント時のタイムスタンプ１３３ｊとして「0x0・・010bf8f60」を設定する。
【０１０８】
［アンマウント中に書込要求があった場合（方法１）の各テーブルの一例］
図１３は、アンマウント中に書込要求があった場合（方法１）の各テーブルの一例を示す図である。図１３に示すように、ＤＥ／Ｓｌｏｔ情報テーブル１３２には、書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆが設定されている。すなわち、書込要求管理部１４３は、書込直前タイムスタンプ１３２ｅに、書込処理の直前のタイムスタンプとして現在のタイムスタンプを書き込む。そして、書込要求管理部１４３は、書込要求に対応する処理が完了した後、書込完了タイムスタンプ１３２ｆに、書込処理の完了のタイムスタンプとして現在のタイムスタンプを書き込む。すなわち、書込直前タイムスタンプ１３２ｅと書込完了タイムスタンプ１３２ｆとは異なっている。
【０１０９】
ディスク２１に対して２回書込要求があったとする。書込管理情報テーブル１３３には、書込情報数１３３ｄに「２」が設定されている。書込情報テーブル１３４には、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「０」である場合、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・01000」、書込みブロック数１３４ｅとして「0x80」が設定されている。書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「１」である場合、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・03180」、書込みブロック数１３４ｅとして「0x80」が設定されている。すなわち、書込要求管理部１４３は、管理方法１３３ｂが「方法１」であるので、スペアディスクにデータを書き込むとともに、ＲＡＩＤ５の正常なディスク２１への書込データの書き込み位置の位置情報およびサイズを記録する。位置情報が、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄであり、サイズが、書込みブロック数１３４ｅである。
【０１１０】
［アンマウントした場合（方法２）の各テーブルの一例］
図１４は、アンマウントした場合（方法２）の各テーブルの一例を示す図である。図１４に示すように、ＲＡＩＤグループ情報テーブル１３１には、ＲＡＩＤ状態１３１ｃにＲＡＩＤ構成のいずれかのディスク２１がアンマウント中であることを示す「Exposed」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１およびＳｌｏｔ＃０２に搭載されたディスク２１のアンマウントを検出する。すると、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ状態１３１ｃを「Exposed」に設定する。なお、ＲＡＩＤグループ情報テーブル１３１には、使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆに「−」が設定されている。すなわち、このＲＡＩＤグループには、スペアディスクが存在しない。
【０１１１】
ＤＥ／Ｓｌｏｔ情報テーブル１３２には、ディスク２１のアンマウントが検出されたＤＥ＃０１のＳｌｏｔ＃０２に対応するＳｌｏｔ状態１３２ｄにディスク２１がアンマウントしていることを示す「Broken」が設定されている。すなわち、アンマウント検出部１４２は、検出されたアンマウントのディスク２１の位置情報に対応するＳｌｏｔ情報１３２ｄを「Broken」に設定する。
【０１１２】
書込管理情報テーブル１３３には、管理方法１３３ｂに「方法２」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１のＳｌｏｔ＃０２に対応する使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆにスペアディスクの位置情報が設定されていないので、書込管理情報の管理方法１３３ｂを「方法２」に設定する。加えて、アンマウント検出部１４２は、メモリバッファ上限数１３３ｅとして「１００」、データ数１３３ｆとして「０」を設定する。そして、アンマウント検出部１４２は、書込管理情報に、ＲＡＩＤグループ番号１３３ｇとして「１」、ＲＡＩＤ種別１３３ｈとして「ＲＡＩＤ５」、Ｄｉｓｋを特定する情報１３３ｉとして「ＤＥ＃０１  Ｓｌｏｔ＃２」を設定する。さらに、アンマウント検出部１４２は、書込管理情報に、アンマウント時のタイムスタンプ１３３ｊとして「0x0・・010bf8f60」を設定する。
【０１１３】
［アンマウント中に書込要求があった場合（方法２）の各テーブルの一例］
図１５は、アンマウント中に書込要求があった場合（方法２）の各テーブルの一例を示す図である。図１５に示すように、ＤＥ／Ｓｌｏｔ情報テーブル１３２には、書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆが設定されている。すなわち、書込要求管理部１４３は、書込直前タイムスタンプ１３２ｅに、書込処理の直前のタイムスタンプとして現在のタイムスタンプを書き込む。そして、書込要求管理部１４３は、書込要求に対応する処理が完了した後、書込完了タイムスタンプ１３２ｆに、書込処理の完了のタイムスタンプとして現在のタイムスタンプを書き込む。すなわち、書込直前タイムスタンプ１３２ｅと書込完了タイムスタンプ１３２ｆとは異なっている。
【０１１４】
ディスク２１に対して３回書込要求があったとする。書込管理情報テーブル１３３には、書込情報数１３３ｄに「３」が設定されている。書込情報テーブル１３４には、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「０」である場合、メモリバッファアドレス１３４ｃとして「0x0・・030000000」が設定されている。そして、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・01000」、書込みブロック数１３４ｅとして「0x80」が設定されている。また、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「１」である場合、メモリバッファアドレス１３４ｃとして「0x0・・03000A000」が設定されている。そして、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・03180」、書込みブロック数１３４ｅとして「0x80」が設定されている。また、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「２」である場合、メモリバッファアドレス１３４ｃとして「0x0・・03000A080」が設定されている。そして、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・0A080」、書込みブロック数１３４ｅとして「0x80」が設定されている。すなわち、書込要求管理部１４３は、管理方法１３３ｂが「方法２」であるので、メモリ１３に確保されたメモリバッファの領域にデータを書き込むとともに、メモリバッファのアドレスを記録する。加えて、書込要求管理部１４３は、ＲＡＩＤ５の正常なディスク２１への書込データの書き込み位置の位置情報およびサイズを記録する。位置情報が、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄであり、サイズが、書込みブロック数１３４ｅである。
【０１１５】
［アンマウントした場合（方法３）の各テーブルの一例］
図１６は、アンマウントした場合（方法３）の各テーブルの一例を示す図である。図１６に示すように、ＲＡＩＤグループ情報テーブル１３１には、ＲＡＩＤ状態１３１ｃにＲＡＩＤ構成のいずれかのディスク２１がアンマウント中であることを示す「Exposed」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１およびＳｌｏｔ＃０２に搭載されたディスク２１のアンマウントを検出する。すると、アンマウント検出部１４２は、ＲＡＩＤグループ情報テーブル１３１のＲＡＩＤ状態１３１ｃを「Exposed」に設定する。なお、ＲＡＩＤグループ情報テーブル１３１には、使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆに「−」が設定されている。すなわち、このＲＡＩＤグループには、スペアディスクが存在しない。
【０１１６】
ＤＥ／Ｓｌｏｔ情報テーブル１３２には、ディスク２１のアンマウントが検出されたＤＥ＃０１のＳｌｏｔ＃０２に対応するＳｌｏｔ状態１３２ｄにディスク２１がアンマウントしていることを示す「Broken」が設定されている。すなわち、アンマウント検出部１４２は、検出されたアンマウントのディスク２１の位置情報に対応するＳｌｏｔ情報１３２ｄを「Broken」に設定する。
【０１１７】
書込管理情報テーブル１３３には、管理方法１３３ｂに「方法３」が設定されている。すなわち、アンマウント検出部１４２は、ＤＥ＃０１のＳｌｏｔ＃０２に対応する使用中のＳｐａｒｅ  Ｄｉｓｋ位置情報１３１ｆにスペアディスクの位置情報が設定されていないので、書込管理情報の管理方法１３３ｂを「方法３」に設定する。そして、アンマウント検出部１４２は、書込管理情報に、ＲＡＩＤグループ番号１３３ｇとして「１」、ＲＡＩＤ種別１３３ｈとして「ＲＡＩＤ５」、Ｄｉｓｋを特定する情報１３３ｉとして「ＤＥ＃０１  Ｓｌｏｔ＃２」を設定する。さらに、アンマウント検出部１４２は、書込管理情報に、アンマウント時のタイムスタンプ１３３ｊとして「0x0・・010bf8f60」を設定する。なお、管理方法１３３ｂは「方法３」であるので、メモリバッファ上限数１３３ｅとして「−」、データ数１３３ｆとして「−」が設定される。
【０１１８】
［アンマウント中に書込要求があった場合（方法３）の各テーブルの一例］
図１７は、アンマウント中に書込要求があった場合（方法３）の各テーブルの一例を示す図である。図１７に示すように、ＤＥ／Ｓｌｏｔ情報テーブル１３２には、書込直前タイムスタンプ１３２ｅおよび書込完了タイムスタンプ１３２ｆが設定されている。すなわち、書込要求管理部１４３は、書込直前タイムスタンプ１３２ｅに、書込処理の直前のタイムスタンプとして現在のタイムスタンプを書き込む。そして、書込要求管理部１４３は、書込要求に対応する処理が完了した後、書込完了タイムスタンプ１３２ｆに、書込処理の完了のタイムスタンプとして現在のタイムスタンプを書き込む。すなわち、書込直前タイムスタンプ１３２ｅと書込完了タイムスタンプ１３２ｆとは異なっている。
【０１１９】
ディスク２１に対して２回書込要求があったとする。書込管理情報テーブル１３３には、書込情報数１３３ｄに「２」が設定されている。書込情報テーブル１３４には、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「０」である場合、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・01000」、書込みブロック数１３４ｅとして「0x80」が設定されている。また、書込管理シーケンス番号１３４ａが「０」、シーケンス番号１３４ｂが「１」である場合、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄとして「0x0・・03180」、書込みブロック数１３４ｅとして「0x80」が設定されている。すなわち、書込要求管理部１４３は、管理方法１３３ｂが「方法３」であるので、ＲＡＩＤ５の正常なディスク２１への書込データの書き込み位置の位置情報およびサイズを記録する。位置情報が、書込データの先頭のＤｉｓｋ  ＬＢＡ１３４ｄであり、サイズが、書込みブロック数１３４ｅである。
【０１２０】
［実施例の効果］
上記実施例によれば、ＣＭ１０は、ＲＡＩＤ構成の各ディスク２１のアンマウントおよびマウントを監視する。そして、ＣＭ１０は、アンマウント中のディスク２１へのデータの書き込み要求を管理する。そして、ＣＭ１０は、ＲＡＩＤ構成のディスク２１のマウントが検出されると、管理された書き込み要求に基づいて、マウントが検出されたディスク２１のデータの整合性を判定する。そして、ＣＭ１０は、整合性がないと判定される場合、マウントが検出されたディスク２１に対してアンマウント中に発行されたデータの書き込み要求の復旧処理を実行し、当該ディスク２１を元のＲＡＩＤ構成として組み込む。かかる構成によれば、ＣＭ１０は、運用中に、ＲＡＩＤ構成のディスク２１の配置を変更する際、当該ディスク２１がアンマウント中に発行された書き込み要求のデータの復旧処理を実行すれば良いので、ＲＡＩＤ構成の変更時間を短縮できる。
【０１２１】
また、上記実施例によれば、ＣＭ１０は、ディスク２１毎に、ディスク２１を識別する識別子およびディスク２１を組み込むＲＡＩＤの情報であるＲＡＩＤ情報を対応付けたディスク情報(ドライブ情報)をメモリ１３に記憶する。そして、ＣＭ１０は、アンマウントまたはマウントが検出されるディスク２１について、メモリ１３に記憶されたディスク情報および当該ディスクに予め記憶されたディスク情報に基づいて、ＲＡＩＤ構成のディスク２１のアンマウントおよびマウントを監視する。かかる構成によれば、ＣＭ１０は、メモリ１３およびディスク２１にそれぞれディスク情報を記憶するので、ＲＡＩＤ構成であるアンマウントされた特定のディスク２１のマウントを検出することができる。
【０１２２】
また、上記実施例によれば、ＣＭ１０は、アンマウント中のディスク２１へのデータの書き込み要求があった場合に、アンマウント中のディスク２１の代わりに定められた別の記憶領域へのデータの書き込み前後のタイムスタンプを管理する。そして、ＣＭ１０は、アンマウント中のドライブのマウントが検出されると、データの書き込み前後のタイムスタンプに差分があるか否かを判定することで、データの整合性を判定する。そして、ＣＭ１０は、データの書き込み前後のタイムスタンプに差分があると判定される場合、アンマウント中にデータが書き込まれた別の記憶領域から書き込み要求があったディスク２１へデータを書き戻し、当該ディスク２１を元のＲＡＩＤ構成として組み込む。かかる構成によれば、ＣＭ１０は、データの書き込み前後のタイムスタンプを用いてデータの整合性を判定し、整合性がないデータのみを復旧することで、ＲＡＩＤ構成の変更の際の変更時間を短縮できる。
【０１２３】
［その他］
なお、実施例では、書込データ復旧部１４６は、書込管理情報テーブル１３３に記憶された書込管理情報の管理方法１３３ｂに基づいて、復旧処理を実行するとして説明した。しかしながら、書込データ復旧部１４６は、これに限定されず、予め定められた管理方法に対応する復旧処理を実行するようにしても良い。
【０１２４】
また、実施例では、書込の直前および書込の完了を表す情報として、タイムスタンプを採用した。しかしながら、これに限定されず、タイムスタンプに代えて、所定の数値であっても良い。例えば、書込の直前を表す情報として「１」、書込の完了を表す情報として「９」とする。すなわち、書込の直前と書込の完了とが区別できる情報であれば良い。
【０１２５】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、アンマウント検出部１４２とマウント検出部１４４とを１個の部として統合しても良い。一方、書込データ復旧部１４６を、方法１の復旧処理を実行する第１の復旧部と、方法２の復旧処理を実行する第２の復旧部と、方法３の復旧処理を実行する第３の復旧部と、方法４の復旧処理を実行する第４の復旧部とに分散しても良い。また、メモリ１３に記憶された各種テーブルをＣＭ１０の外部装置としてネットワーク経由で接続するようにしても良い。
【０１２６】
また、実施例では、ＣＭ１０が有する機能をソフトウェアによって実現することで、同様の機能を有する例えばＲＡＩＤ構成管理プログラムを得ることができる。例えば、メモリ１３は、ＲＡＩＤ構成管理プログラムやプログラムの実行途中結果などを記憶する。ＣＰＵ１４は、メモリ１３からＲＡＩＤ構成管理プログラムを読み出して実行する。
【０１２７】
また、ＲＡＩＤ構成管理プログラムについては、必ずしも最初からメモリ１３に記憶させておかなくても良い。例えば、ＣＭ１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、ＣＭ１０がこれらからＲＡＩＤ構成管理プログラムを読み出して実行するようにしても良い。
【符号の説明】
【０１２８】
１  ＲＡＩＤ制御装置
９  ホスト
１０  ＣＭ
１１  ホストＩ／Ｆ
１２  ドライブＩ／Ｆ
１３  メモリ
１３１  ＲＡＩＤグループ情報テーブル
１３２  ＤＥ／Ｓｌｏｔ情報テーブル
１３３  書込管理情報テーブル
１３４  書込情報テーブル
１３５  装置識別子
１４  ＣＰＵ
１４１  ＲＡＩＤ登録部
１４２  アンマウント検出部
１４３  書込要求管理部
１４４  マウント検出部
１４５  データ整合性判定部
１４６  書込データ復旧部
１４７  ＲＡＩＤ組込部
２０  ＤＥ
２１  ディスク
【図１】
2015082313.tif 000003
【図２】
2015082313.tif 000004
【図３】
2015082313.tif 000005
【図４】
2015082313.tif 000006
【図５】
2015082313.tif 000007
【図６】
2015082313.tif 000008
【図７】
2015082313.tif 000009
【図８】
2015082313.tif 000010
【図９】
2015082313.tif 000011
【図１０】
2015082313.tif 000012
【図１１】
2015082313.tif 000013
【図１２】
2015082313.tif 000014
【図１３】
2015082313.tif 000015
【図１４】
2015082313.tif 000016
【図１５】
2015082313.tif 000017
【図１６】
2015082313.tif 000018
【図１７】
2015082313.tif 000019