(57)【要約】【課題】冗長性を有する記憶装置に障害が生じた場合に、冗長性を失った状態が長時間続くことを防止する。【解決手段】ＲＡＩＤ管理モジュール１６１は、記憶媒体１８１、１８２のアクセス不能領域を検出する。ＲＡＩＤ管理モジュール１６１は、アクセス不能領域を検出した場合、アクセス不能領域に代替する代替領域を記憶媒体３０３に確保する。ＲＡＩＤ管理モジュール１６１は、アクセス不能領域に記憶されていたデータを、記憶媒体１８１、１８２のうちアクセス不能領域の検出されていない記憶媒体から取得する。ＲＡＩＤ管理モジュール１６１は、取得したデータを、記憶媒体３０３に確保した代替領域に書き込む。コンピュータ２００によりアクセス不能領域にアクセス要求がなされた場合、ＲＡＩＤ管理モジュール１６１は、記憶媒体３０３の代替領域にアクセスする。 【選択図】図２
2014106811.tif 000002
【特許請求の範囲】
【請求項１】
冗長構成の複数の内部記憶媒体と、
コンピュータからのアクセス要求に従って、前記複数の内部記憶媒体のそれぞれにアクセスする内部アクセス手段と、
前記複数の内部記憶媒体の、前記内部アクセス手段がアクセスできなくなったアクセス不能領域を検出するアクセス不能領域検出手段と、
前記アクセス不能領域検出手段により前記アクセス不能領域が検出された場合に、前記アクセス不能領域に代替する代替領域を、前記複数の内部記憶媒体以外の外部記憶媒体に確保する代替領域確保手段と、
前記アクセス不能領域に記憶されていたデータを、他の内部記憶媒体から取得するデータ取得手段と、
前記データ取得手段により取得されたデータを、前記外部記憶媒体に確保された前記代替領域に書き込む書込手段と、
前記コンピュータにより前記アクセス不能領域にアクセス要求がなされた場合に、前記外部記憶媒体の前記代替領域にアクセスする外部アクセス手段と、
を備える、ことを特徴とする記憶装置。
【請求項２】
前記複数の内部記憶媒体のうち少なくとも２つの内部記憶媒体には、同一のデータが記憶され、
前記アクセス不能領域検出手段が、前記少なくとも２つの内部記憶媒体のうちのいずれかの内部記憶媒体に前記アクセス不能領域を検出した場合、前記データ取得手段は、前記アクセス不能領域に記憶されていたデータを、前記少なくとも２つの内部記憶媒体のうちアクセス不能領域が検出された内部記憶媒体以外の内部記憶媒体から取得する、
ことを特徴とする、請求項１に記載の記憶装置。
【請求項３】
アクセス不能領域が検出された内部記憶媒体以外の内部記憶媒体への前記内部アクセス手段によるアクセス速度と、前記外部記憶媒体への前記外部アクセス手段によるアクセス速度とのうち、いずれか速い方のアクセス手段を特定する特定手段を備え、
前記アクセス不能領域検出手段により前記アクセス不能領域が検出され、前記コンピュータからデータの読み出し要求がなされた場合、前記特定手段により特定されたアクセス手段がデータの読み出しを実行する、
ことを特徴とする、請求項２に記載の記憶装置。
【請求項４】
前記代替領域確保手段は、前記アクセス不能領域と同一サイズ以上かつ前記アクセス不能領域が検出された内部記憶媒体の容量よりも小さい容量の前記代替領域を確保する、
ことを特徴とする、請求項１から３のいずれか１項に記載の記憶装置。
【請求項５】
コンピュータより供給される論理アドレスと前記内部記憶媒体の物理アドレスとを対応付けるアドレスマップを記憶するアドレスマップ格納手段をさらに備え、
前記内部アクセス手段は、コンピュータから供給された論理アドレスを、前記アドレスマップを参照して、前記内部記憶媒体の物理アドレスに変換し、変換した物理アドレスにアクセスし、
前記代替領域確保手段は、前記外部記憶媒体に確保した代替領域にアクセスするための第２の論理アドレスを、前記アドレスマップの物理アドレスに置換するマップ更新手段を備え、
前記外部アクセス手段は、コンピュータから供給された論理アドレスを、前記アドレスマップを用いて、前記第２の論理アドレスに変換し、変換した前記第２の論理アドレスにより、前記外部記憶媒体にアクセスする、
ことを特徴とする、請求項１から４のいずれか１項に記載の記憶装置。
【請求項６】
前記外部アクセス手段と前記書込手段は、前記外部記憶媒体が設けられた他機器とネットワークを介して通信する通信手段を備える、
ことを特徴とする、請求項１から５のいずれか１項に記載の記憶装置。
【請求項７】
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出ステップと、
前記障害領域検出ステップにおいて障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保ステップと、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込ステップと、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセスステップと、
を備える冗長性回復方法。
【請求項８】
コンピュータに、
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出機能、
前記障害領域検出機能において障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保機能、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込機能、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセス機能、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、冗長性回復方法、およびプログラムに関する。
【背景技術】
【０００２】
コンピュータで使用される情報は、一般的に記憶媒体上に保存される。しかし、現在一般に流通している記憶媒体は、いずれも障害によって情報の書き込みや読み出しができなくなる可能性を内包する。そのため、複数の記憶媒体を冗長化構成に組織することにより、一部の記憶媒体に障害が生じた場合でも必要な情報が失われたりアクセスできなくなったりすることを防ぐ技術が普及している。
【０００３】
例えば、特許文献１に記載の冗長性を有するディスク記憶装置は、ＲＡＩＤ構成に組まれた複数の記憶媒体を有し、複数の記憶媒体にデータを重複して保存する。複数の記憶媒体のうち一部に障害が生じると、障害が生じた記憶媒体はデータの入出力ができなくなる。しかしながら、データは障害の生じていない記憶媒体上にも重複して保管されているため、ディスク装置全体としてはデータを失わない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６４７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＡＩＤ構成に組まれた複数の記憶媒体を有する記憶装置において、一部の記憶媒体に障害が生じた場合、記憶媒体の縮退が生じ、一時的にデータの冗長性が失われる。この場合、一般的には、障害の生じた記憶媒体が交換され、新しく導入された記憶媒体上にデータが再構成されることで、記憶装置は再び冗長化される。
【０００６】
しかしながら、記憶媒体の交換およびデータの再構築にはある程度の時間が必要である。記憶装置がデータの冗長性を失った状態で、さらに他の記憶媒体に障害が起こった場合、記憶装置はデータを失う可能性がある。従って、障害によって記憶装置が冗長性を失った状態が長時間続くことを避けることが望ましい。
【０００７】
本発明は、上記の実情に鑑みてなされたものであり、冗長性を有する記憶装置に障害が生じた場合に、冗長性を失った状態が長時間続くことを避けることが可能な記憶装置、冗長性回復方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明の第１の観点に係る記憶装置は、
冗長構成の複数の内部記憶媒体と、
コンピュータからのアクセス要求に従って、前記複数の内部記憶媒体のそれぞれにアクセスする内部アクセス手段と、
前記複数の内部記憶媒体の、前記内部アクセス手段がアクセスできなくなったアクセス不能領域を検出するアクセス不能領域検出手段と、
前記アクセス不能領域検出手段により前記アクセス不能領域が検出された場合に、前記アクセス不能領域に代替する代替領域を、前記複数の内部記憶媒体以外の外部記憶媒体に確保する代替領域確保手段と、
前記アクセス不能領域に記憶されていたデータを、他の内部記憶媒体から取得するデータ取得手段と、
前記データ取得手段により取得されたデータを、前記外部記憶媒体に確保された前記代替領域に書き込む書込手段と、
前記コンピュータにより前記アクセス不能領域にアクセス要求がなされた場合に、前記外部記憶媒体の前記代替領域にアクセスする外部アクセス手段と、
を備える、ことを特徴とする。
【０００９】
また上記の目的を達成するため、本発明の第２の観点に係る冗長性回復方法は、
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出ステップと、
前記障害領域検出ステップにおいて障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保ステップと、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込ステップと、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセスステップと、
を備えることを特徴とする。
【００１０】
また上記の目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータに、
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出機能、
前記障害領域検出機能において障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保機能、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込機能、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセス機能、
を実現させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、冗長性を有する記憶装置に障害が生じた場合に、冗長性を失った状態が長時間続くことを避けることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態にかかる記憶装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態にかかる記憶装置が備える機能を説明する図である。
【図３】外部の記憶装置のハードウェア構成を示すブロック図である。
【図４】障害非発生時データアクセス処理を示すフローチャートである。
【図５】障害非発生時データアクセス処理におけるデータの流れを示す図である。
【図６】冗長性回復処理を示すフローチャートである。
【図７】冗長性回復処理におけるデータの流れを示す図である。
【図８】障害発生時データアクセス処理を示すフローチャートである。
【図９】障害発生時データアクセス処理におけるデータの流れを示す図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
本発明の実施形態にかかる記憶装置は、コンピュータに接続されており、コンピュータから供給されたデータを記憶する装置である。つまり、この記憶装置は、コンピュータからの書き込み指示に従って、コンピュータから供給されたデータを記憶する。また、この記憶装置は、コンピュータからの読み出し指示に従って、記憶しているデータをコンピュータに供給する。この記憶装置は、内部にＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成に組まれた記憶媒体を複数備えており、データを複数の記憶媒体に冗長に保存する。従って、この記憶装置は、複数の記憶媒体のうちの一つに障害が発生して使用できなくなったとしても、記憶装置全体としてデータを失わない。本実施形態では、記憶媒体を２つ備え、それらがＲＡＩＤ１にＲＡＩＤ構成が組まれた記憶装置について説明する。なお、ＲＡＩＤ１は、両方の記憶媒体に同じデータを保存し、全体としてデータを二重に保有するレベルである。
【００１４】
ここで冗長性がある状態とは、必要最小限の分量以上のものを付加することにより、可用性が高められている状態を指す。また、データをそのように記憶媒体上に保存することを「データを冗長に保存する」という。
【００１５】
記憶装置１００は、図１に示すように、制御部１１０、インターフェースカード１２１、ＮＩＣ（Network Interface Card）１２２、ハードディスク１３１、ハードディスク１３２、ハードディスク１３３を備える。記憶装置１００が備える各構成要素は、バス１４０を介して相互に接続される。
【００１６】
制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、ＲＯＭ（Read Only Memory）１１２、ＲＡＭ（Random Access Memory）１１３を備える。ＣＰＵ１１１は、ＲＯＭ１１２などに記憶されている制御用のプログラムに従って、記憶装置１００全体の動作を制御する。ＲＯＭ１１２は、制御用のプログラムを記憶する。ＲＡＭ１１３は、ＣＰＵ１１１が使用するデータを一時的に保存する。制御部１１０は、記憶装置１００が備える他の構成要素との間で信号を送受信することにより、これらの構成要素を制御する。
【００１７】
インターフェースカード１２１は、記憶装置１００と、記憶装置１００にデータを書き込み、記憶装置１００からデータを読み出すコンピュータとを接続する。インターフェースカード１２１は、ファイバーチャネルやＳＡＳ（Serial Attached SCSI)等の規格のケーブルにより、サーバー等のコンピュータに接続されている。インターフェースカード１２１は、コンピュータからのデータ入出力信号を受信し、それを制御部１１０に伝達する。
【００１８】
ＮＩＣ１２２は、記憶装置１００を、有線もしくは無線通信によりＬＡＮ（Local Area Network）４００に接続する。記憶装置１００は、ＮＩＣ１２２を介し、ＬＡＮ４００に接続されている他機器（たとえば、記憶装置３００など）と通信する。
【００１９】
ハードディスク１３１は、コンピュータから供給されたデータを記憶する。ハードディスク１３２は、ハードディスク１３１が記憶するデータと同じデータを記憶する。つまり、ハードディスク１３１とハードディスク１３２は、ＲＡＩＤ１のレベルにＲＡＩＤ構成が組まれる。
【００２０】
ハードディスク１３３は、後述するアドレスマップを記憶する。ハードディスク１３３は、制御部１１０が記憶装置１００全体の動作を制御するためのプログラムを記憶していてもよい。
【００２１】
以上の構成要素の協働により、記憶装置１００は、例えば、コンピュータからのデータの書き込み要求に応じて、コンピュータから供給されたデータを記憶する動作を実現する。また、記憶装置１００は、コンピュータからのデータの読み出し要求に応じて、データを読み出し、読み出したデータをコンピュータに供給する動作を実現する。以下、記憶装置１００にデータの書き込み要求もしくは読み出し要求を発するコンピュータを、適宜、記憶装置１００にアクセスするコンピュータという。
【００２２】
図２を参照して、記憶装置１００が備える各機能について説明する。理解を容易にするため、図２には、記憶装置１００にアクセスするコンピュータ２００、および他の記憶装置３００も併せて記載する。なお、記憶装置１００と記憶装置３００とは、ＬＡＮ４００により接続される。
【００２３】
記憶装置１００は、機能的には、コンピュータ側インターフェース１５１と、ネットワーク側インターフェース１５２と、ＲＡＩＤ管理モジュール１６１と、アドレス変換モジュール１６２と、Ｉ／Ｏモジュール１６３と、アドレスマップ格納部１７１と、アドレスマップ格納部１７２と、記憶媒体１８１と、記憶媒体１８２とを備える。
【００２４】
コンピュータ側インターフェース１５１は、記憶装置１００とコンピュータ２００とを接続する。コンピュータ側インターフェース１５１は、例えば、図１に示すインターフェースカード１２１により構成される。
【００２５】
ネットワーク側インターフェース１５２は、記憶装置１００とＬＡＮ４００とを接続する。ネットワーク側インターフェース１５２は、例えば、図１に示すＮＩＣ１２２により構成される。
【００２６】
ＲＡＩＤ管理モジュール１６１は、ＲＡＩＤを構成する記憶媒体１８１、１８２を管理する。具体的には、ＲＡＩＤ管理モジュール１６１は、コンピュータ２００からＲＡＩＤへのデータの書き込み要求もしくはデータの読み出し要求（以下「アクセス要求」という。）があった場合、アクセス対象データのＲＡＩＤにおける論理アドレスをアドレス変換モジュール１６２に供給する。
またＲＡＩＤ管理モジュール１６１は、記憶媒体１８１、１８２に障害が発生したことを検出した場合は、後述の冗長性回復処理を開始する。具体的には、ＲＡＩＤ管理モジュール１６１は、例えばＩ／Ｏモジュール１６３がデータアクセスに失敗したことを検出した場合に、データアクセス対象の領域に障害が発生したと判別してもよい。あるいは、ＲＡＩＤ管理モジュール１６１は、記憶媒体１８１や記憶媒体１８２に定期的にアクセスし、障害が発生していることを検出してもよい。ＲＡＩＤ管理モジュール１６１は、例えば、制御部１１０におけるＲＡＭ１１３にロードされ、ＣＰＵ１１１により実行されるプログラムにより構成される。
【００２７】
アドレス変換モジュール１６２は、供給されたＲＡＩＤにおける論理アドレスを、記憶媒体１８１ならびに記憶媒体１８２上の物理アドレスに変換する。本実施形態では、記憶媒体１８１と記憶媒体１８２とがＲＡＩＤ１のレベルを構成している。従って、アドレス変換モジュール１６２は、アドレスマップ格納部１７１に格納されたアドレスマップを参照し、供給された論理アドレスに対応づけられた記憶媒体１８１における物理アドレスを取得する。また、アドレス変換モジュール１６２は、アドレスマップ格納部１７２に格納されたアドレスマップを参照し、供給された論理アドレスに対応づけられた記憶媒体１８２における物理アドレスを取得する。アドレス変換モジュール１６２は、取得した、記憶媒体１８１における物理アドレスと記憶媒体１８２における物理アドレスとを、Ｉ／Ｏモジュール１６３に供給する。アドレス変換モジュール１６２は、例えば、制御部１１０におけるＲＡＭ１１３にロードされ、ＣＰＵ１１１により実行されるプログラムにより構成される。
【００２８】
Ｉ／Ｏモジュール１６３は、記憶媒体１８１および１８２にデータを書き込む機能と、記憶媒体１８１および１８２からデータを読み出す機能と、を有する。Ｉ／Ｏモジュール１６３は、アドレス変換モジュール１６２から供給された記憶媒体１８１上の物理アドレスにより特定される記憶媒体１８１上の領域にアクセスする。コンピュータ２００からの要求が書き込み要求である場合、Ｉ／Ｏモジュール１６３は、特定した記憶媒体１８１上の領域にデータを書き込む。コンピュータ２００からの要求がデータの読み出し要求である場合、Ｉ／Ｏモジュール１６３は、特定した記憶媒体１８１上の領域からデータを読み出す。Ｉ／Ｏモジュール１６３は、記憶装置１００において、コンピュータからのアクセス要求に従って、複数の内部記憶媒体のそれぞれにアクセスする内部アクセス手段として機能する。
【００２９】
また、Ｉ／Ｏモジュール１６３は、アドレス変換モジュール１６２から供給された記憶媒体１８２上の物理アドレスにより特定される記憶媒体１８２上の領域にアクセスする。コンピュータ２００からの要求が書き込み要求である場合、Ｉ／Ｏモジュール１６３は、特定した記憶媒体１８２上の領域にデータを書き込む。コンピュータ２００からの要求が読み出し要求である場合、Ｉ／Ｏモジュール１６３は、特定した記憶媒体１８２上の領域からデータを読み出す。なお、Ｉ／Ｏモジュール１６３は、読み出したデータを、例えば、コンピュータ側インターフェース１５１を介して、コンピュータ２００に供給する。Ｉ／Ｏモジュール１６３は、例えば、制御部１１０におけるＲＡＭ１１３にロードされ、ＣＰＵ１１１により実行されるプログラムにより構成される。
【００３０】
アドレスマップ格納部１７１は、論理アドレスと記憶媒体１８１上の物理アドレスとを対応づけるアドレスマップを格納する。アドレスマップ格納部１７１は、例えば、ハードディスク１３３により構成される。
【００３１】
アドレスマップ格納部１７２は、論理アドレスと記憶媒体１８２上の物理アドレスとを対応づけるアドレスマップを格納する。アドレスマップ格納部１７２は、例えば、ハードディスク１３３により構成される。
【００３２】
記憶媒体１８１は、Ｉ／Ｏモジュール１６３から供給されたデータを記憶する。記憶媒体１８２も、Ｉ／Ｏモジュール１６３から供給されたデータを記憶する。本実施形態では、記憶媒体１８１と記憶媒体１８２とがＲＡＩＤ１のＲＡＩＤを構成しているので、コンピュータ２００から記憶装置１００に供給されたデータは、記憶媒体１８１と記憶媒体１８２との両方に記憶される。そのため、記憶媒体１８１と記憶媒体１８２のうちの一方に障害が発生し、Ｉ／Ｏモジュール１６３が当該一方の記憶媒体にアクセスできなくなった場合でも、Ｉ／Ｏモジュール１６３は他方の記憶媒体にアクセスすることにより、記憶装置１００はデータの記憶や読み出しを継続することができる。記憶媒体１８１は、例えば、ハードディスク１３１により構成される。記憶媒体１８２は、例えば、ハードディスク１３２により構成される。
【００３３】
コンピュータ２００は、記憶装置１００にデータを書き込み、また、記憶装置１００からデータを読み出す。コンピュータ２００は、有線もしくは無線通信により、記憶装置１００に接続される。コンピュータ２００は、例えば、パーソナルコンピュータにより構成される。
【００３４】
記憶装置３００は、記憶装置１００が備える記憶媒体１８１と記憶媒体１８２とのうちの一方の一部の領域に障害が発生した場合、この一方の記憶媒体の一部の領域の代わりとなる領域（以下、適宜、「代替領域」という。）を提供する。図３に示すように、記憶装置３００は、物理的には、制御部３１０と、ＮＩＣ３２０と、ハードディスク３３０とを備える。記憶装置３００が備えるこれらの構成要素は、バス３４０を介して相互に接続される。
【００３５】
制御部３１０は、ＣＰＵ３１１と、ＲＯＭ３１２と、ＲＡＭ３１３とを備える。ＣＰＵ３１１は、ＲＯＭ３１２などに記憶されている制御用のプログラムに従って、記憶装置３００全体の動作を制御する。ＲＯＭ３１２は、制御用のプログラムを記憶する。ＲＡＭ３１３は、ＣＰＵ３１１が使用するデータを一時的に保存する。制御部３１０は、記憶装置３００が備える他の構成要素との間で信号を送受信することにより、これらの構成要素を制御する。
【００３６】
ＮＩＣ３２０は、記憶装置３００を、有線もしくは無線通信によりＬＡＮ４００に接続する。記憶装置３００は、ＮＩＣ３２０を介し、ＬＡＮ４００に接続されている他機器（たとえば、記憶装置１００など）と通信する。
【００３７】
ハードディスク３３０は、記憶装置１００から供給されたデータやアドレスマップを記憶する。ハードディスク３３０は、制御部３１０が記憶装置３００全体の動作を制御するためのプログラムを記憶していてもよい。
【００３８】
図２に示すように、記憶装置３００は、機能的には、アドレスマップ格納部３０１と、Ｉ／Ｏモジュール３０２と、記憶媒体３０３と、ネットワーク側インターフェース３０４とを備える。記憶装置３００は、ネットワーク側インターフェース３０４により、記憶装置１００が接続されたＬＡＮ４００に接続される。
記憶装置３００は、記憶装置１００と同種の記憶装置であってもよいし、別種のものであってもよい。
【００３９】
アドレスマップ格納部３０１は、論理アドレスと記憶媒体３０３上の物理アドレスとを対応づけるアドレスマップを格納する。アドレスマップ格納部３０１は、例えば、ハードディスク３３０により構成される。
【００４０】
Ｉ／Ｏモジュール３０２は、記憶媒体３０３にデータを書き込む機能と、記憶媒体３０３からデータを読み出す機能と、を有する。Ｉ／Ｏモジュール３０２は、ＲＡＩＤ管理モジュール１６１から供給された記憶媒体３０３上の物理アドレスにより特定される記憶媒体３０３上の領域にアクセスする。コンピュータ２００からの要求が書き込み要求である場合、Ｉ／Ｏモジュール３０２は、特定した記憶媒体３０３上の領域にデータを書き込む。コンピュータ２００からの要求がデータの読み出し要求である場合、Ｉ／Ｏモジュール３０２は、特定した記憶媒体３０３上の領域からデータを読み出す。なお、Ｉ／Ｏモジュール３０２は、読み出したデータを、例えば、ネットワーク側インターフェース３０４を介して、記憶装置１００に供給する。Ｉ／Ｏモジュール３０２は、例えば、制御部３１０により構成される。
【００４１】
記憶媒体３０３は、Ｉ／Ｏモジュール３０２から供給されたデータを記憶する。記憶媒体３０３は、例えば、ハードディスク３３０により構成される。
【００４２】
ネットワーク側インターフェース３０４は、記憶装置３００とＬＡＮ４００とを接続する。ネットワーク側インターフェース３０４は、例えば、ＮＩＣ３２０により構成される。
【００４３】
以上において、本実施の形態に係る記憶装置１００、およびその関連機器（コンピュータ２００および別の記憶装置３００）に関する構成を説明した。ここから、記憶装置１００において、記憶媒体に障害が生じていない場合の障害非発生時データアクセス処理のフローについて説明する。
【００４４】
記憶装置に障害が発生していない時に、記憶装置１００が、コンピュータ２００からのアクセス要求に応じてデータにアクセスする動作（障害非発生時データアクセス処理）を図４に示す。ここでアクセス要求とは、データの読み出し要求と、データの書き込み要求を含むものとする。また、図５は、障害非発生時データアクセス処理におけるデータの流れを示した図である。図４および図５を参照し、障害非発生時データアクセス処理について説明する。
【００４５】
コンピュータ２００から記憶装置１００にアクセス要求（図５に示すデータＤ１００）があると、コンピュータ側インターフェース１５１がそのアクセス要求を受信する。そして、コンピュータ側インターフェース１５１が受信した要求をＲＡＩＤ管理モジュール１６１に伝達すると、図４に示す障害非発生時データアクセス処理が開始される。
【００４６】
ＲＡＩＤ管理モジュール１６１は、アクセス対象の論理アドレス（データＤ１１０）をアドレス変換モジュール１６２に伝達する（図４ステップＳ１１０）。なお、コンピュータ２００からのアクセス要求が読み出し要求である場合、読み出し要求には、アクセス対象の論理アドレスが含まれる。一方、コンピュータ２００からのアクセス要求が書き込み要求である場合、書き込み要求には、アクセス対象の論理アドレスと書き込むデータとが含まれる。ここで、書き込むデータは、ＲＡＩＤ管理モジュール１６１からＩ／Ｏモジュール１６３に直接伝達されてもよいし、アドレス変換モジュール１６２を経由して伝達されてもよい。
【００４７】
ステップＳ１１０の処理が完了すると、アドレス変換モジュール１６２は、アドレス変換処理を実行する（ステップＳ１２０）。具体的には、アドレス変換モジュール１６２は、アドレスマップ格納部１７１に格納されているアドレスマップを参照し、伝達された論理アドレスを対応づけられた記憶媒体１８１上の物理アドレス（データＤ１２０）を取得する。また、アドレス変換モジュール１６２は、アドレスマップ格納部１７２に格納されているアドレスマップを参照し、伝達された論理アドレスを対応づけられた記憶媒体１８２上の物理アドレス（データＤ１２０）を取得する。アドレス変換モジュール１６２は、取得した物理アドレス（データＤ１２０）を、Ｉ／Ｏモジュール１６３に伝達する。
【００４８】
ステップＳ１２０の処理が完了すると、Ｉ／Ｏモジュール１６３は、記憶媒体１８１や記憶媒体１８２にアクセスする（ステップＳ１３０）。具体的には、コンピュータ２００からの要求が読み出し要求の場合、Ｉ／Ｏモジュール１６３は、例えば、アドレス変換モジュール１６２から伝達された記憶媒体１８１上の物理アドレスにより特定される記憶媒体１８１上の領域に格納されているデータ（Ｄ１３０）を読み出す。あるいは、Ｉ／Ｏモジュール１６３は、アドレス変換モジュール１６２から伝達された記憶媒体１８２上の物理アドレスにより特定される記憶媒体１８２上の領域に格納されているデータ（Ｄ１３０）を読み出してもよい。
【００４９】
一方、コンピュータ２００からの要求が書き込み要求の場合、Ｉ／Ｏモジュール１６３は、ＲＡＩＤ管理モジュール１６１から供給されたデータ（Ｄ１３０）を、アドレス変換モジュール１６２から伝達された記憶媒体１８１上の物理アドレスにより特定される記憶媒体１８１上の領域と、アドレス変換モジュール１６２から伝達された記憶媒体１８２上の物理アドレスにより特定される記憶媒体１８２上の領域と、に書き込む。
【００５０】
ステップＳ１３０の処理が完了すると、Ｉ／Ｏモジュール１６３は終了処理を実行する（ステップＳ１４０）。具体的には、Ｉ／Ｏモジュール１６３は、ＲＡＩＤ管理モジュール１６１を経由してアクセス完了通知データ（データＤ１４０）をコンピュータ２００に通知する。なお、コンピュータ２００からの要求が読み出し要求である場合、アクセス完了通知データは、読み出されたデータを含む。ステップＳ１４０の処理が完了すると、障害非発生時データアクセス処理は完了する。
【００５１】
以上、記憶装置１００内部の記憶媒体１８１および記憶媒体１８２のいずれにも障害が発生していない場合のデータアクセス処理について説明した。次に、記憶媒体１８１または１８２に障害が生じ、アクセスできない領域が生じた場合に記憶装置１００が実行する冗長性回復処理について説明する。
【００５２】
冗長性回復処理は、記憶媒体１８１または記憶媒体１８２に障害が生じ、記憶媒体１８１または記憶媒体１８２上にアクセスできない領域が発生したことをＲＡＩＤ管理モジュール１６１が検出したことに応答して、記憶装置１００が実行する処理である。以下、理解を容易にするために、記憶媒体１８２に障害が生じたとして説明する。
図６は、冗長性回復処理を示すフローチャートである。また、図７は、冗長性回復処理におけるデータの流れを示した図である。図６および図７を参照し、冗長性回復処理について説明する。
【００５３】
障害発生により記憶媒体１８２にアクセスできない領域が生じた場合、ＲＡＩＤ管理モジュール１６１は、障害が発生した記憶媒体及び領域とその容量を検出し、冗長性回復処理を開始する。本例では、ＲＡＩＤ管理モジュール１６１は、記憶媒体１８２にアクセスできない領域が生じたこと、アクセスできない領域の論理アドレスと物理アドレス、アクセスできない領域の容量を検出し、冗長性回復処理を開始する。すなわち、ＲＡＩＤ管理モジュール１６１は、内部アクセス手段がアクセスできなくなった内部記憶媒体のアクセス不能領域を検出するアクセス不能領域検出手段として機能する。
【００５４】
冗長性回復処理を開始すると、ＲＡＩＤ管理モジュール１６１は、記憶媒体３０３上に代替領域を確保することを指示する代替領域確保指示（データＤ２１０）を、ネットワーク側インターフェース１５２を経由し、別の記憶装置３００に出力する（ステップＳ２１０）。すなわち、ＲＡＩＤ管理モジュール１６１は、記憶装置１００内部においてアクセス不能領域が検出された場合に、このアクセス不能領域に代替する代替領域を確保する代替領域確保手段として機能する。ＲＡＩＤ管理モジュール１６１は、代替領域確保指示に、記憶媒体１８２上でアクセスできなくなった領域の容量を確保要求量として含める。なお、記憶装置１００と記憶装置３００との間の情報の伝達は、ネットワーク側インターフェース１５１、ＬＡＮ４００、及びネットワーク側インターフェース３０４を経由して実行される。
【００５５】
記憶装置３００（より正確には、ＣＰＵ３１１）は、ＲＡＩＤ管理モジュール１６１からの代替領域確保指示に応答して、要求された容量の代替領域を記憶媒体３０３上に確保する（ステップＳ２２０）。また、記憶装置３００は、確保された代替領域の物理アドレスに、論理アドレスを割り当てる。記憶装置３００は、代替領域の物理アドレスと割り当てられた論理アドレスとを対応づけるアドレスマップを、アドレスマップ格納部３０１に格納する。
【００５６】
ステップＳ２２０の処理が完了すると、記憶装置３００は、アドレスマップ格納部３０１に代替領域を確保したことを示す応答データ（データＤ２３０）をＲＡＩＤ管理モジュール１６１に供給する（ステップＳ２３０）。記憶装置３００は、この応答データに、確保された領域にアクセスするために必要な論理アドレスを含める。この論理アドレスは、アドレスマップ格納部３０１に格納されたアドレスマップにおいて、代替領域の物理アドレスに対応づけられた論理アドレスである。
【００５７】
ＲＡＩＤ管理モジュール１６１は、記憶装置３００から応答データを受信すると、アドレスマップ格納部１７２に格納されているアドレスマップを更新する（ステップＳ２４０）。具体的には、ＲＡＩＤ管理モジュール１６１は、アドレスマップ格納部１７２上のアドレスマップにおいて、記憶媒体１８２上でアクセスできなくなった領域の物理アドレスに代えて、記憶装置３００から供給された代替領域の論理アドレス（データＤ２４０）を、アクセスできなくなった領域の論理アドレスに対応付ける。
【００５８】
ステップＳ２４０の処理が完了すると、ＲＡＩＤ管理モジュール１６１は、記憶媒体１８２上でアクセスできなくなった領域のデータに対応する記憶媒体１８１上のデータ（データＤ２５０）を記憶媒体３０３に保存する（ステップＳ２５０）。すなわち、ＲＡＩＤ管理モジュール１６１は、内部記憶媒体にアクセス不能領域が生じた場合に、他の内部記憶媒体に記憶されているデータに基づいて、アクセス不能領域に記憶されていたデータを取得するデータ取得手段として機能するとともに、取得したデータを代替領域に書き込む書込手段として機能する。具体的には、ＲＡＩＤ管理モジュール１６１は、記憶媒体１８２上でアクセスできなくなった領域のデータに対応する記憶媒体１８１上のデータを記憶装置３００に伝送し、代替領域への書き込みを指示する。記憶装置３００は、指示に応答し、伝送されたデータを、記憶媒体３０３上に確保された代替領域に記録する。ステップＳ２５０の処理が完了すると、冗長性回復処理が完了する。
【００５９】
以上の冗長性回復処理が完了すると、記憶媒体１８２上でアクセスできなくなった領域に記録されていたデータは、記憶媒体１８１と記憶媒体３０３とに二重に記憶されることとなり、冗長性が回復する。また、記憶媒体１８２上であってもアクセスできる領域に記録されていたデータは、障害発生前と同じく、記憶媒体１８１と記憶媒体１８２とに二重に記憶されており、障害前と同様に冗長性が保持される。
【００６０】
以上においては、記憶媒体１８２の一部に障害が生じた場合について説明した。記憶媒体１８１の一部に障害が生じた場合は、記憶装置１００は、以上と同様の処理を、対象を記憶媒体１８１と記憶媒体１８２とで入れ替えた上で行う。
【００６１】
次に、上記の冗長性回復処理が完了したあとで、コンピュータ２００が記憶装置１００上のデータにアクセスする際の動作について説明する。
【００６２】
記憶装置１００が、上記の冗長性回復処理を実行した後、コンピュータ２００からのアクセス要求に応じてデータにアクセスする処理（以下「障害発生時データアクセス処理」という。）を図８に示す。また、図９は、障害発生時データアクセス処理におけるデータの流れを示した図である。以下、図８および図９を参照し、障害発生時データアクセス処理について説明する。
なお、以下の説明では、理解を容易にするために、記憶媒体１８１または１８２のアクセスできなくなった領域への読み出し要求があった場合、記憶媒体３０３にアクセスするように優先順位が設定されているものとする。
【００６３】
コンピュータ２００は、記憶装置１００からデータを読み出す場合、データ読み出し要求（読み出し位置の論理アドレスを含む）を出力し、また、データを書き込む場合、データ書き込み要求（書き込み位置の論理アドレスと書き込み対象データを含む）（データＤ１００）を発行する。記憶装置１００は、これらのアクセス要求（データＤ１００）を受信すると、障害発生時データアクセス処理を開始する。
【００６４】
ＲＡＩＤ管理モジュール１６１は、コンピュータ２００からのアクセス要求を受け、アクセス対象の論理アドレスをアドレス変換モジュール１６２に伝達する（ステップＳ１１０）。
【００６５】
アドレス変換モジュール１６２は、アドレスマップ格納部１７１に格納されているアドレスマップと、アドレスマップ格納部１７２に格納されているアドレスマップと、を読み出し、アクセス対象の論理アドレスに対応付けられているアドレスを、それぞれ特定する（ステップＳ３００）。
【００６６】
アドレス変換モジュール１６２は、特定した２つのアドレスの一方が記憶媒体１８１の物理アドレスで、他方が記憶媒体１８２の物理アドレスであるか否かを判別する（ステップＳ３１０）。一方のアドレスが記憶媒体１８１の物理アドレスで、他方が記憶媒体１８２の物理アドレスであると判別した場合（ステップＳ３１０：ＹＥＳ）、障害の発生していない領域へのアクセスであるので、両物理アドレスとアクセス要求とをＩ／Ｏモジュール１６３に供給する（ステップＳ３１１）。
Ｉ／Ｏモジュール１６３は、アクセス要求が読み出し要求の場合、あらかじめ設定されている優先順位に従って、一方の物理アドレスからデータを読み出す（ステップＳ１３０）。一方、アクセス要求が書き込み要求の場合、両物理アドレスに供給されたデータを書き込む（ステップＳ１３０）。
その後、Ｉ／Ｏモジュール１６３は、コンピュータ２００に、読み出したデータあるいは書込完了通知を送信して、処理を終了する（ステップＳ１４０）。
【００６７】
一方、ステップＳ３１０で、アドレス変換モジュール１６２が、一方のアドレスが記憶媒体１８１または１８２の物理アドレスで、他方のアドレスが記憶媒体３０３の論理アドレスであると判別した場合（ステップＳ３１０：ＮＯ）、障害の発生した領域へのアクセスであるので、特定した物理アドレスと論理アドレスをＲＡＩＤ管理モジュール１６１に供給する（ステップＳ３２０）。
【００６８】
ＲＡＩＤ管理モジュール１６１は、アクセス要求が読み出し要求の場合、あらかじめ設定されている優先順位に従って、記憶装置３００にデータ読み出し要求を伝達する（ステップＳ３３０）。具体的には、ＲＡＩＤ管理モジュール１６１は、ネットワーク側インターフェース１５２、ＬＡＮ４００、およびネットワーク側インターフェース３０４を経由し、アドレス変換モジュール１６２から伝達された論理アドレスとともにデータ読み出し要求（データＤ３３０）を記憶装置３００に伝達する。
一方、アクセス要求が書き込み要求の場合、ＲＡＩＤ管理モジュール１６１は、アドレス変換モジュール１６２から伝達された論理アドレスと共にデータ書き込み要求を記憶装置３００に伝達する（ステップＳ３３０）。また、ＲＡＩＤ管理モジュール１６１は、
Ｉ／Ｏモジュール１６３に、アドレス変換モジュール１６２から伝達された物理アドレスとデータ書き込み要求を伝達する（ステップＳ３３０）。Ｉ／Ｏモジュール１６３は、伝達された物理アドレスに供給されたデータを書き込む。
【００６９】
記憶装置３００は、ＲＡＩＤ管理モジュール１６１からアクセス要求を受信すると、アドレスマップ格納部３０１のアドレスマップを参照し、記憶媒体３０３の、伝達された論理アドレスに対応付けられた物理アドレスにアクセスを行う（ステップＳ３４０）。具体的には、ＲＡＩＤ管理モジュール１６１からのアクセス要求が読み出し要求である場合、記憶装置３００は、伝達された論理アドレスに対応づけられた物理アドレスにより指定される記憶媒体３０３上の領域からデータを読み出し、読み出したデータをＲＡＩＤ管理モジュール１６１に伝達する。一方、ＲＡＩＤ管理モジュール１６１からの要求が書き込み要求である場合、記憶装置３００は、伝達された論理アドレスに対応づけられた物理アドレスにより指定される記憶媒体３０３上の領域に、書き込み要求に含まれているデータを書き込む。
【００７０】
ステップＳ３４０の処理が完了すると、ＲＡＩＤ管理モジュール１６１は終了処理を実行する（ステップＳ３５０）。具体的には、コンピュータ２００からのアクセス要求が書き込み要求である場合、ＲＡＩＤ管理モジュール１６１はデータ書き込み完了（データＤ３４０）をコンピュータ２００に通知する。コンピュータ２００からのアクセス要求が読み出し要求である場合、ＲＡＩＤ管理モジュール１６１は読み出されたデータ（データＤ３４０）をコンピュータ２００に伝送する。ステップＳ３５０の処理が完了すると、障害発生時データアクセス処理は完了する。
【００７１】
その後、必要に応じて、障害が発生した内部記憶媒体を正常品に交換し、正常な内部記憶媒体上のデータを複写する等の処置を行い、さらに、アドレス変換モジュール１６２上のアドレスを更新し、記憶装置３００に確保した領域をリリースすることにより、記憶装置１００を修理する。
【００７２】
本実施形態では、記憶媒体に障害が生じてアクセスできない領域が生じた場合、ネットワーク経由で他機器（他の記憶装置）上に記憶領域を確保し、確保した記憶領域を用いてデータの冗長性を回復する。そのため、記憶装置は、記憶媒体の物理的な交換を待たずに冗長性を再び持つことができ、冗長性を失った状態が長時間続くことを防ぐことができる。
【００７３】
また本実施形態では、代替領域はネットワーク経由で他機器上に確保される。自機に記憶媒体を追加搭載する必要がないことから、記憶装置１００にスペースが少ないことやポート数の制限等の事情でストレージ搭載台数に制限がある場合（コンシューマ向けＰＣや組み込み機器等）においても、本発明を適用することで簡易に冗長性を回復することができるようになる。
【００７４】
また本実施形態では、記憶装置１００と記憶装置３００とはともにＬＡＮ４００に接続されており、ＬＡＮ４００経由でデータをやりとりしている。ＬＡＮに接続するためのネットワークインターフェースは一般に普及しており、設置に要するコストは十分低くなっており、また設置されたネットワークインターフェースを他の用途に用いることもできる。
【００７５】
また本実施形態では、障害が発生した領域のデータのみを記憶媒体３０３にコピーしている。記憶媒体１８２のデータすべてをコピーするのに比べ、コピーされるデータ量が少ないため、冗長性回復までの所要時間を短縮することができる。
【００７６】
以上、本発明の実施の形態について説明したが、本実施の形態はこれに限定されない。
例えば、上記実施の形態においては、理解を容易にするため、障害非発生時のデータアクセス処理と障害発生時のデータアクセス処理を別個の処理として説明した。この発明は、これに限定されず、図８に示すデータアクセス処理を正常時に使用してもよい。
【００７７】
例えば、上記実施形態においては、記憶媒体１８１または１８２の障害発生領域への読み出し要求がなされたときに、記憶装置３００の記憶媒体３０３に読み出しアクセスする例を説明した。しかし、障害発生時に読み出しアクセスする記憶媒体は任意である。
例えば、障害が発生した記憶媒体以外の記憶媒体のうちの最高速の記憶媒体からデータを読み出すことにより、高速アクセスを実現するようにしてもよい。例えば、各記憶媒体のアクセス速度（あるいはアクセス速度の順位）をメモリに格納しておき、読み出し要求を受信した際に、ＲＡＩＤ管理モジュール１６１が、アクセス速度を参照して、正常な記憶媒体のうちから最も高速な記憶媒体を特定し、特定した記憶媒体からデータを読み出すようにすればよい。この場合、ＲＡＩＤ管理モジュール１６１は、内部記憶媒体のうちアクセス不能領域が検出された内部記憶媒体以外の内部記憶媒体へのアクセス手段によるアクセス速度と、外部記憶媒体へのアクセス手段によるアクセス速度とのうち、いずれか速い方のアクセス手段を特定する特定手段として機能する。
具体例で説明すると、アクセス速度が速い順に、内部の記憶媒体１８１、外部の記憶媒体３０３、内部の記憶媒体１８２であるケースを想定する。このケースにおいて、内部の記憶媒体１８１上の障害領域への読み出し要求を受信した場合、ＲＡＩＤ管理モジュール１６１は、内部の記憶媒体１８２と外部の記憶媒体３０３のうち、比較的アクセス速度の速い外部の記憶媒体３０３をアクセス対象として特定してデータを読み出す。また、同一ケースにおいて、内部の記憶媒体１８２上の障害領域への読み出し要求を受信すれば、ＲＡＩＤ管理モジュール１６１は、内部の記憶媒体１８１と外部の記憶媒体３０３のうち、比較的アクセス速度の速い内部の記憶媒体１８１をアクセス対象として特定してデータを読み出す。
また、読み出しアクセスの対象とする優先度を、使用者あるいは設計者が設定できるように構成してもよい。
【００７８】
また、例えば、記憶装置１００はＲＡＩＤ１レベルのＲＡＩＤ構成に組まれた記憶媒体１８１および１８２を備える記憶装置１００について説明したが、記憶装置１００の備える記憶媒体の数は３以上あってもよいし、またＲＡＩＤレベルも１に限られない。例えば、記憶装置１００は記憶媒体を３以上備え、その記憶媒体がＲＡＩＤ５、６あるいは１０といったＲＡＩＤレベルに構成されていてもよい。
また、本発明は、ＲＡＩＤ以外の任意の冗長構成の複数の記憶媒体の冗長性を向上するためにも使用できる。
【００７９】
記憶媒体１８１および１８２は、主としてハードディスクで構成されるが、ＳＳＤ（Solid State Disk)等の記憶媒体で実装されてもよく、その他媒体自体は任意のもので構成されてもよい。
【００８０】
本実施形態では、記憶装置１００は、コンピュータ２００から独立しており、コンピュータ側インターフェース１５１を介してコンピュータ２００と接続されていた。本発明において、コンピュータ２００内に記憶装置１００が内包されていてもよい。
【００８１】
また本実施形態では、冗長性回復のための代替領域は、記憶装置１００とＬＡＮ４００で接続された記憶装置３００上の記憶媒体３０３上に確保される例を示した。本発明において、記憶装置１００と記憶装置３００とがＳＡＮ(Storage Area Network)等の専用ネットワークなど他種のネットワーク形態で接続されていてもよい。また、本発明において、例えば、記憶装置１００とＵＳＢ(Universal Serial Bus)もしくはＳＣＳＩ(Small Computer System Interface)等で接続された外部記憶媒体上に代替領域が確保されてもよい。
【００８２】
また、記憶装置１００が、ＲＡＩＤ構成に加えてホットスペアディスクを持っている場合であっても、本実施形態による冗長性回復は効果的である。ここで、ホットスペアディスクとは、ＲＡＩＤ構成において予備用に確保されている記憶媒体である。ホットスペアディスクは、ＲＡＩＤ構成に含まれる記憶媒体に障害が生じた場合、障害の生じていない記憶媒体から全量データコピーを受けることで、システムのデータ冗長性を回復させる役割をもつ。
【００８３】
記憶装置１００がホットスペアディスクを有する場合において、記憶媒体１８２に障害によりアクセスできない領域が生じると、ＲＡＩＤ管理モジュール１６１はその障害を検知し、記憶装置１００は前記の冗長性回復処理によってデータの冗長性を回復させる。
【００８４】
その後、記憶装置１００は、ホットスペアディスクに記憶媒体１８１から全量データコピーを行う。全量コピーの完了により、記憶装置１００内部で、記憶媒体１８１とホットスペアディスクとでデータの冗長性が確保される。これにより、障害の生じた記憶媒体１８２および記憶装置３００内の代替領域を解放してもデータの冗長性が保たれるようになるため、その後、記憶媒体１８２の交換や代替領域の解放が可能となる。
【００８５】
上記実施の形態においては、記憶媒体３０３に確保する代替領域のサイズは、アクセス不能領域（障害が発生した領域）のサイズと同一であった。この発明は、これに限定されない。データの安全性を考慮し、アクセス不能領域を含む所定範囲の領域（ただし、内部記憶媒体の一部）と同一のサイズの代替領域を確保し、所定範囲へのアクセス要求があった際に、記憶媒体３０３にアクセスするように構成してもよい。ただし、冗長性の回復に要する時間を抑えるために、所定範囲は、内部記憶媒体の一部であることが望ましい。
【００８６】
上記のとおり、本発明によれば、ホットスペアディスクへの全量データコピーが完了する前にデータの冗長性を確保することができ、冗長性を失った状態が長時間続くことを防ぐことができる。
【００８７】
以上、本発明の実施の形態について説明したが、本発明は、前記の実施の形態に限定されるものではなく、例えば各実施の形態及び各変形例を適宜組み合わせた態様、またそれらと均等な技術的範囲をも含む。
【００８８】
また、本願発明は、上述の各種の構成を全て備えている必要はない。
例えば、図１において、冗長構成の複数の内部記憶媒体（１３１、１３２）と、コンピュータからのアクセス要求に従って、前記複数の内部記憶媒体のそれぞれにアクセスする内部アクセス手段と、前記複数の内部記憶媒体の、前記内部アクセス手段がアクセスできなくなったアクセス不能領域を検出するアクセス不能領域検出手段と、前記アクセス不能領域検出手段により前記アクセス不能領域が検出された場合に、前記アクセス不能領域に代替する代替領域を、前記複数の内部記憶媒体以外の外部記憶媒体に確保する代替領域確保手段と、前記アクセス不能領域に記憶されていたデータを、他の内部記憶媒体から取得するデータ取得手段と、前記データ取得手段により取得されたデータを、前記外部記憶媒体に確保された前記代替領域に書き込む書込手段と、前記コンピュータにより前記アクセス不能領域にアクセス要求がなされた場合に、前記外部記憶媒体上の前記代替領域にアクセスする外部アクセス手段と、して機能する制御部１１０とにより、本願発明に係る記憶装置が実現可能である。
【００８９】
同様に、本願発明は、図１の構成において、制御部１１０が、冗長構成の複数の記憶媒体（１３１、１３２）上の障害領域を検出するステップと、障害領域が検出された場合に、前記障害領域に代替する代替領域を、冗長構成の複数の記憶媒体（１３１、１３２）以外の他の記憶媒体上に確保するステップと、障害領域に記憶されていたデータを、障害の発生していない記憶媒体から取得し、代替領域に書き込むステップと、障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスするステップと、を実行すること、あるいは、プログラムが制御部１１０にこれらのステップを実行させることによっても実現可能である。
【００９０】
上記実施形態では、記憶装置１００がＣＰＵ１１１とＲＯＭ１１２とＲＡＭ１１３とを備え、ＣＰＵ１１１が、ＲＯＭ１１２に記憶されているプログラムに従って、ソフトウェアにより各処理が実現される例を示した。しかし、記憶装置１００が実行する各処理は、ソフトウェアにより実現されるものに限定されない。例えば、記憶装置１００は、マイクロコンピュータ、ＦＰＧＡ（Field Programmable Gate Array）、ＰＬＤ（Programmable Logic Device）、ＤＳＰ（Digital Signal Processor）などにより構成されてもよい。
【００９１】
なお、本発明に係る記憶装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magnet Optical Disk）などのコンピュータ読み取り可能な記憶媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行する記憶装置を構成しても良い。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【００９２】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９３】
（付記１）
冗長構成の複数の内部記憶媒体と、
コンピュータからのアクセス要求に従って、前記複数の内部記憶媒体のそれぞれにアクセスする内部アクセス手段と、
前記複数の内部記憶媒体の、前記内部アクセス手段がアクセスできなくなったアクセス不能領域を検出するアクセス不能領域検出手段と、
前記アクセス不能領域検出手段により前記アクセス不能領域が検出された場合に、前記アクセス不能領域に代替する代替領域を、前記複数の内部記憶媒体以外の外部記憶媒体に確保する代替領域確保手段と、
前記アクセス不能領域に記憶されていたデータを、他の内部記憶媒体から取得するデータ取得手段と、
前記データ取得手段により取得されたデータを、前記外部記憶媒体に確保された前記代替領域に書き込む書込手段と、
前記コンピュータにより前記アクセス不能領域にアクセス要求がなされた場合に、前記外部記憶媒体の前記代替領域にアクセスする外部アクセス手段と、
を備える、ことを特徴とする記憶装置。
【００９４】
（付記２）
前記複数の内部記憶媒体のうち少なくとも２つの内部記憶媒体には、同一のデータが記憶され、
前記アクセス不能領域検出手段が、前記少なくとも２つの内部記憶媒体のうちのいずれかの内部記憶媒体に前記アクセス不能領域を検出した場合、前記データ取得手段は、前記アクセス不能領域に記憶されていたデータを、前記少なくとも２つの内部記憶媒体のうちアクセス不能領域が検出された内部記憶媒体以外の内部記憶媒体から取得する、
ことを特徴とする、付記１に記載の記憶装置。
【００９５】
（付記３）
アクセス不能領域が検出された内部記憶媒体以外の内部記憶媒体への前記内部アクセス手段によるアクセス速度と、前記外部記憶媒体への前記外部アクセス手段によるアクセス速度とのうち、いずれか速い方のアクセス手段を特定する特定手段を備え、
前記アクセス不能領域検出手段により前記アクセス不能領域が検出され、前記コンピュータからデータの読み出し要求がなされた場合、前記特定手段により特定されたアクセス手段がデータの読み出しを実行する、
ことを特徴とする、付記２に記載の記憶装置。
【００９６】
（付記４）
前記代替領域確保手段は、前記アクセス不能領域と同一サイズ以上かつ前記アクセス不能領域が検出された内部記憶媒体の容量よりも小さい容量の前記代替領域を確保する、
ことを特徴とする、付記１から３のいずれか１つに記載の記憶装置。
【００９７】
（付記５）
コンピュータより供給される論理アドレスと前記内部記憶媒体の物理アドレスとを対応付けるアドレスマップを記憶するアドレスマップ格納手段をさらに備え、
前記内部アクセス手段は、コンピュータから供給された論理アドレスを、前記アドレスマップを参照して、前記内部記憶媒体の物理アドレスに変換し、変換した物理アドレスにアクセスし、
前記代替領域確保手段は、前記外部記憶媒体に確保した代替領域にアクセスするための第２の論理アドレスを、前記アドレスマップの物理アドレスに置換するマップ更新手段を備え、
前記外部アクセス手段は、コンピュータから供給された論理アドレスを、前記アドレスマップを用いて、前記第２の論理アドレスに変換し、変換した前記第２の論理アドレスにより、前記外部記憶媒体にアクセスする、
ことを特徴とする、付記１から４のいずれか１つに記載の記憶装置。
【００９８】
（付記６）
前記外部アクセス手段と前記書込手段は、前記外部記憶媒体が設けられた他機器とネットワークを介して通信する通信手段を備える、
ことを特徴とする、付記１から５のいずれか１つに記載の記憶装置。
【００９９】
（付記７）
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出ステップと、
前記障害領域検出ステップにおいて障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保ステップと、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込ステップと、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセスステップと、
を備える冗長性回復方法。
【０１００】
（付記８）
コンピュータに、
冗長構成の複数の記憶媒体上の障害領域を検出する障害領域検出機能、
前記障害領域検出機能において障害領域が検出された場合に、前記障害領域に代替する代替領域を、前記冗長構成の複数の記憶媒体以外の他の記憶媒体上に確保する代替領域確保機能、
前記障害領域に記憶されていたデータを、前記冗長構成の複数の記憶媒体から取得し、前記代替領域に書き込む書込機能、
前記障害領域へのアクセス要求がなされた場合に、前記代替領域にアクセスする代替アクセス機能、
を実現させるためのプログラム。
【符号の説明】
【０１０１】
１００、３００  記憶装置
１１０、３１０  制御部
１１１、３１１  ＣＰＵ
１１２、３１２  ＲＯＭ
１１３、３１３  ＲＡＭ
１２１  インターフェースカード
１２２、３２０  ＮＩＣ
１３１〜１３３、３３０  ハードディスク
１５１  コンピュータ側インターフェース
１５２、３０４  ネットワーク側インターフェース
１６１  ＲＡＩＤ管理モジュール
１６２  アドレス変換モジュール
１６３、３０２  Ｉ／Ｏモジュール
１７１、１７２、３０１  アドレスマップ格納部
１８１、１８２、３０３  記憶媒体
２００  コンピュータ
【図１】
2014106811.tif 000003
【図２】
2014106811.tif 000004
【図３】
2014106811.tif 000005
【図４】
2014106811.tif 000006
【図５】
2014106811.tif 000007
【図６】
2014106811.tif 000008
【図７】
2014106811.tif 000009
【図８】
2014106811.tif 000010
【図９】
2014106811.tif 000011