(57)【要約】【課題】自身で再構築不能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復させる。【解決手段】Ｉ／Ｏ結果受領部１１は、Ｉ／Ｏ制御部Ｅ０からのＩ／Ｏ依頼に対する論理デバイスへのＩ／Ｏ結果をストレージデバイス制御部Ｔ０から受領し、フォーマット対象判定部１２は、障害トラックが制御領域または未割り当て領域に対応する場合、その障害トラックをフォーマット対象とし、フォーマット依頼部１３は、フォーマット対象とされた障害トラックに割り当てられらページに対応するストレージデバイスＤ０〜Ｄ３の記憶領域をフォーマットするようにストレージデバイス制御部Ｔ０に依頼する。【選択図】図１
2020047105.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトするストレージ制御装置であって、
前記物理ストレージへのライト時に障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、
前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットするストレージ制御装置。
【請求項２】
前記記憶領域の仮想的な割り当ての最小単位であるページ単位で前記物理ストレージをフォーマットするかどうかを管理するフォーマットビットマップを備え、
前記障害トラックが発生し、前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記障害トラックに割り当てられたページに対応する前記フォーマットビットマップのビット位置をＯＮし、
前記障害トラックに割り当てられたページに対応する前記記憶領域がフォーマットされた場合、前記フォーマットされた前記記憶領域に含まれるページに対応する前記フォーマットビットマップのビット位置をＯＦＦにする請求項１に記載のストレージ制御装置。
【請求項３】
ホストからのＩ／Ｏ要求を受け付けたときに、前記フォーマットビットマップがＯＮになっているページに対応する前記記憶領域をフォーマットする請求項２に記載のストレージ制御装置。
【請求項４】
前記障害トラックがユーザデータに対応する場合、前記ユーザデータに対応する前記物理ストレージの記憶領域をフォーマットしない請求項１に記載のストレージ制御装置。
【請求項５】
前記物理ストレージは冗長化され、
前記冗長化された前記物理ストレージを一元化する実容量プールを生成し、
前記ホストからの要求に応じて前記実容量プールから仮想容量ボリュームを前記ページ単位で割り当てる請求項３に記載のストレージ制御装置。
【請求項６】
前記冗長化された前記物理ストレージはデバイスグループにグループ化され、
前記実容量プールは前記デバイスグループを一元化して管理する請求項５に記載のストレージ制御装置。
【請求項７】
前記デバイスグループごとに論理化されたプールボリュームを生成し、
前記実容量プールは前記プールボリュームを一元化して管理する請求項６に記載のストレージ制御装置。
【請求項８】
前記ホストからのＩ／Ｏ要求に基づいてキャッシュとの間でデータを授受するＩ／Ｏ制御部と、
前記Ｉ／Ｏ制御部からのＩ／Ｏ依頼に基づいて、キャッシュされたデータを前記物理ストレージにライトするストレージデバイス制御部とを備え、
前記Ｉ／Ｏ制御部は、
更新対象となるトラックが割り当てられた前記仮想容量ボリュームを特定し、
前記仮想容量ボリュームに対応する論理デバイスを特定し、
前記ストレージデバイス制御部は、
前記Ｉ／Ｏ制御部からの前記論理デバイスへのＩ／Ｏ依頼に基づいて、前記論理デバイスに関連している前記デバイスグループを特定し、
前記デバイスグループに含まれる前記物理ストレージへのＩ／Ｏに失敗した場合、前記デバイスグループに関連している前記論理デバイスのステータスを障害に設定し、
前記Ｉ／Ｏ制御部は、
前記ステータスが障害に設定された論理デバイスに対応する前記仮想容量ボリュームに割り当てられたトラックを前記障害トラックとして設定し、
前記障害トラックとして設定されたトラックが割り当てられた前記仮想容量ボリュームに対応するページを特定し、
前記ページのページ種別が前記制御領域または前記未割り当て領域に対応する場合、前記ページに対応する前記フォーマットビットマップのビット位置をＯＮにする請求項７に記載のストレージ制御装置。
【請求項９】
前記Ｉ／Ｏ制御部は、
前記ホストからＩ／Ｏ要求があったときに、前記フォーマットビットマップのビット位置がＯＮになっているページに対応する前記仮想容量ボリュームを特定し、
前記仮想容量ボリュームに対応する論理デバイスを特定し、
前記ストレージデバイス制御部は、
前記Ｉ／Ｏ制御部からの前記論理デバイスへのＩ／Ｏ依頼に基づいて、前記論理デバイスに関連している前記デバイスグループを特定し、
前記デバイスグループに含まれる前記物理ストレージのフォーマットを実施する請求項８に記載のストレージ制御装置。
【請求項１０】
プロセッサを備える障害トラックの回復方法であって、
前記プロセッサは、
キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトする時に障害が発生したかどうかを検出し、
前記障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、
前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットする障害トラックの回復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置および障害トラックの回復方法に関する。
【背景技術】
【０００２】
ストレージ容量の拡張および管理の利便性の観点から、スケールアウト型ストレージが注目されている。スケールアウト型ストレージでは、複数の物理ストレージのリソースを論理的な実容量プールとして一元化し、ホストからの要求に応じて実容量プールから仮想容量ボリュームを割り当てることが行われている。
【０００３】
特許文献１には、冗長化されたデータを分散して管理する複数のディスク装置によって実現される仮想ボリューム内に設けられる論理ボリュームを管理し、仮想ボリュームの領域に異常を検出したとき、この領域が、論理ボリュームが割り当てられている領域か否かを判断し、仮想ボリュームの論理ボリュームが割り当てられていない領域に異常を検出した場合に、この領域を初期化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−３０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ホストからのライト要求がストレージ装置で受け付けられた時に、そのライト要求とは非同期に物理ストレージへのライトが実施される。このとき、ストレージ装置では、物理ストレージへのライトに失敗することがあり、ホストからのライト要求に対して、物理ストレージに正常にライトされないことがあった。
【０００６】
また、特許文献１に開示された技術は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）システムにおいて、いずれか１つのディスク装置が故障した時に、他の正常なディスク装置に格納されている冗長データから、その故障したディスク装置のデータを回復させるものであり、物理ストレージに正常にライトされない領域を回復させる方法については言及されていない。
【０００７】
本発明は、上記事情に鑑みなされたものであり、その目的は、自身で再構築が不可能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復可能なストレージ制御装置および障害トラックの回復方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、第１の観点に係るストレージ制御装置は、キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトするストレージ制御装置であって、前記物理ストレージへのライト時に障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットする。
【発明の効果】
【０００９】
本発明によれば、自身で再構築不能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係るストレージ制御装置が適用されるストレージシステムの構成を示すブロック図である。
【図２】図２は、実施形態に係るストレージ制御装置の障害トラック発生時の状態を示すブロック図である。
【図３】図３は、実施形態に係るストレージ制御装置の障害トラック回復時の状態を示すブロック図である。
【図４】図４は、実施形態に係るストレージ制御装置の障害トラック発生から回復までの動作を示すフローチャートである。
【図５】図５は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。
【図６】図６は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。
【図７】図７は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。
【図８】図８は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。
【図９】図９は、図１のキャッシュ上トラック管理テーブルの一例を示す図である。
【図１０】図１０は、図１のボリューム管理テーブルの一例を示す図である。
【図１１】図１１は、図１のページ管理テーブルの一例を示す図である。
【図１２】図１２は、図１の論理デバイス管理テーブルの一例を示す図である。
【図１３】図１３は、図１のデバイスグループ管理テーブルの一例を示す図である。
【図１４】図１４は、図１のストレージデバイス管理テーブルの一例を示す図である。
【図１５】図１５は、実施形態に係るストレージ制御装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、実施形態に係るストレージ制御装置が適用されるストレージシステムの構成を示すブロック図である。なお、以下の説明では、スケールアウト型ストレージを例にとるが、スケールアップ型ストレージなどのその他のストレージであってもよい。以下の実施形態は、ＳＤＳ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｓｔｏｒａｇｅ）に用いることができる。
【００１３】
図１において、ストレージシステムは、ノードＮ０〜Ｎ３を備える。ノードＮ０〜Ｎ３は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）またはＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）などのネットワーク型ストレージ環境に設けることができる。各ノードＮ０〜Ｎ３は、例えば、サーバに設けられる。ノード数は、例えば、数十から数千に渡って任意に設定することができる。各ノードＮ０〜Ｎ３は、パブリックネットワークＷ０を介してホストＨＳ０、ＨＳ０に接続されている。また、各ノードＮ０〜Ｎ３は、クラスタネットワークＷ１を介して互いに接続されている。
【００１４】
各ノードＮ０〜Ｎ３は、クラスタ制御部Ｋ０〜Ｋ３、Ｉ／Ｏ制御部Ｅ０〜Ｅ３、ストレージデバイス制御部Ｔ０〜Ｔ３およびストレージデバイスＤ０〜Ｄ３を備える。ノードＮ０は、Ｉ／Ｏ制御シェアドメモリＳＭ０を備える。ノードＮ１〜Ｎ３もＩ／Ｏ制御シェアドメモリを備えるが、図１では、ノードＮ１〜Ｎ３のＩ／Ｏ制御シェアドメモリは省略した。
【００１５】
各クラスタ制御部Ｋ０〜Ｋ３は、各ホストＨＳ０、ＨＳ０に割り当てられたボリュームがどのノードＮ０〜Ｎ３に対応するかを管理する。このとき、各ホストＨＳ０、ＨＳ０は、全てのノードＮ０〜Ｎ３を一元的に認識することができる。
【００１６】
各ストレージデバイスＤ０〜Ｄ３は、データを物理的に記憶する物理ストレージである。各ストレージデバイスＤ０〜Ｄ３は、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）またはハードディスク装置である。ストレージデバイスＤ０〜Ｄ３は、ノードＮ０〜Ｎ３ごとに複数設けるようにしてもよい。ストレージデバイスＤ０〜Ｄ３は冗長化されている。例えば、ストレージデバイスＤ０〜Ｄ３の記憶領域は、デバイスグループＧ０、Ｇ１にグループ化される。このとき、デバイスグループＧ０には、ストレージデバイスＤ２、Ｄ３の記憶領域を割り当て、デバイスグループＧ１には、ストレージデバイスＤ０、Ｄ１の記憶領域を割り当てることができる。ここで、例えば、デバイスグループＧ１では、ストレージデバイスＤ０をデバイス（ｍａｓｔｅｒ）、ストレージデバイスＤ１をデバイス（ｍｉｒｒｏｒ）として扱うことができる。デバイス（ｍｉｒｒｏｒ）は、デバイス（ｍａｓｔｅｒ）に対して冗長化された物理ストレージである。
【００１７】
各ストレージデバイス制御部Ｔ０〜Ｔ３は、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３からの依頼に基づいて、Ｉ／Ｏ制御シェアドメモリにキャッシュされたデータを各ストレージデバイスＤ０〜Ｄ３にライトする。ここで、各ストレージデバイス制御部Ｔ０〜Ｔ３は、冗長化先のストレージデバイスＴ０〜Ｔ３を管理する。そして、各ストレージデバイス制御部Ｔ０〜Ｔ３は、Ｉ／Ｏ制御シェアドメモリにキャッシュされたデータを、デバイス（ｍａｓｔｅｒ）にライトするとともに、冗長化先のストレージデバイス制御部Ｔ０〜Ｔ３に対してデバイス（ｍｉｒｒｏｒ）にライトするように依頼することで冗長化する。
【００１８】
ストレージデバイス制御部Ｔ０は、論理デバイス管理テーブル２４、デバイスグループ管理テーブル２５およびストレージデバイス管理テーブル２６を備える。
【００１９】
論理デバイス管理テーブル２４は、デバイスグループＧ０、Ｇ１と論理デバイスとの対応関係を論理デバイスステータスとともに保持する。論理デバイスステータスは、論理デバイスが正常状態か障害状態かを示すことができる。
【００２０】
デバイスグループ管理テーブル２５は、各ストレージデバイスＤ０〜Ｄ３がどのデバイスグループＧ０、Ｇ１に含まれるかを示す情報を保持する。ストレージデバイス管理テーブル２６は、各ストレージデバイスＤ０〜Ｄ３が正常状態か障害状態かを示すことができる。
【００２１】
各ストレージデバイス制御部Ｔ１〜Ｔ３も、ストレージデバイス制御部Ｔ０と同様に構成することができる。
【００２２】
各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、キャッシュとの間でデータを授受する。このとき、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、トラック単位でデータをキャッシュする。トラックは、データのキャッシュ時の最小単位である。また、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、トラック単位でキャッシュしたデータを各ストレージデバイスＤ０〜Ｄ３にライトするように各ストレージデバイス制御部Ｔ０〜Ｔ３に依頼する。また、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、各ホストＨＳ０、ＨＳ０からのＩ／Ｏ（入出力）要求に対して各ストレージデバイスＤ０〜Ｄ３までのルート管理を行ったり、残容量管理を行ったりする。
【００２３】
さらに、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、各ホストＨＳ０、ＨＳ０からのＩ／Ｏ要求に対して、ストレージデバイスＤ０〜Ｄ３をフォーマットするかどうかをページ単位で管理する。ページは、ストレージデバイスＤ０〜Ｄ３の記憶領域を各ホストＨＳ０、ＨＳ０に仮想的に割り当てるときの最小単位である。各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、ストレージデバイスＤ０〜Ｄ３をフォーマットする場合、フォーマットデータをキャッシュメモリにライトし、さらにストレージデバイスＤ０〜Ｄ３にライトするよう各ストレージデバイス制御部Ｔ０〜Ｔ３に依頼する。
【００２４】
ここで、各ホストＨＳ０、ＨＳ０からのライト要求に対し、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３によるデータのキャッシュと、各ストレージデバイスＤ０〜Ｄ３へのライトは非同期で実行される。各Ｉ／Ｏ制御部Ｅ０〜Ｅ３によるデータのキャッシュが行われた後、各ストレージデバイスＤ０〜Ｄ３へのライト時に障害が発生すると、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、その障害が発生したトラックを障害トラックとして管理する。そして、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、障害トラックが制御領域または未割り当て領域に対応する場合、制御領域または未割り当て領域に対応する各ストレージデバイスＤ０〜Ｄ３の記憶領域をフォーマットするよう各ストレージデバイス制御部Ｔ０〜Ｔ３に依頼する。
【００２５】
ここで、各Ｉ／Ｏ制御部Ｅ０〜Ｅ３は、各ストレージデバイスＤ０〜Ｄ３の物理的な容量を論理的な実容量プールとして一元化する。そして、各ホストＨＳ０、ＨＳ０に割り当てられるボリュームに対して仮想容量ボリュームを実容量プールから切り出すことができる。
【００２６】
Ｉ／Ｏ制御部Ｅ０は、Ｉ／Ｏ結果受領部１１、フォーマット対象判定部１２、フォーマット依頼部１３、キャッシュ上トラック管理テーブル２１、ボリューム管理テーブル２２およびページ管理テーブル２３を備える。
【００２７】
Ｉ／Ｏ結果受領部１１は、Ｉ／Ｏ制御部Ｅ０からのＩ／Ｏ依頼に対する論理デバイスへのＩ／Ｏ結果をストレージデバイス制御部Ｔ０から受領する。ここで、Ｉ／Ｏ制御部Ｅ０は、各デバイスグループＧ０、Ｇ１を論理デバイスとして管理することができる。そして、Ｉ／Ｏ制御部Ｅ０は、各論理デバイスに対してプールボリュームを割り当て、これらのプールボリュームを実容量プールに一元化することができる。
【００２８】
フォーマット対象判定部１２は、障害トラックのデータ種別に基づいて、障害トラックがフォーマット対象であるかを判定する。このとき、フォーマット対象判定部１２は、障害トラックが制御領域または未割り当て領域に対応する場合、その障害トラックをフォーマット対象とする。障害トラックがユーザデータに対応する場合、その障害トラックをフォーマット未対象とする。フォーマット依頼部１３は、フォーマット対象とされた障害トラックに割り当てられらページに対応するストレージデバイスＤ０〜Ｄ３の記憶領域をフォーマットするようにストレージデバイス制御部Ｔ０に依頼する。
【００２９】
キャッシュ上トラック管理テーブル２１は、トラックとページとプールボリュームとの対応関係をトラックステータスとともに保持する。トラックステータスは、トラックが正常状態か障害状態かを示すことができる。
【００３０】
ボリューム管理テーブル２２は、プールボリュームと論理デバイスとの対応関係をボリューム種別とともに保持する。ボリューム種別は、プールボリューム以外にも通常ボリュームを設けることができる。プールボリュームは、実容量プールに一元化され、その実容量プールから各ホストＨＳ０、ＨＳ０にボリュームが割り当てられる。通常ボリュームは、実容量プールに一元化されることなく、各ホストＨＳ０、ＨＳ０に割り当てられる。
【００３１】
ページ管理テーブル２３は、ページとプールボリュームとの対応関係をページ種別とともに保持する。ページ種別は、ページがユーザデータか制御領域かを示すことができる。さらに、ページ管理テーブル２３は、各ページのフォーマットビットマップＢＭのＯＮ／ＯＦＦ状態を保持する。なお、制御領域は、仮想容量ボリュームは、実容量プールのどこの位置にあるか、ストレージデバイスのどこの位置にあるか、実容量プールの使用量などを管理することができる。
【００３２】
各Ｉ／Ｏ制御部Ｅ１〜Ｅ３も、Ｉ／Ｏ制御部Ｅ０と同様に構成することができる。
【００３３】
Ｉ／Ｏ制御シェアドメモリＳＭ０は、Ｉ／Ｏ制御部Ｅ０で並列処理が行われるときの共有メモリを提供する。また、Ｉ／Ｏ制御シェアドメモリＳＭ０は、ストレージデバイスＤ０〜Ｄ３へのライトデータを一時的に保持するキャッシュを備える。さらに、Ｉ／Ｏ制御シェアドメモリＳＭ０は、フォーマットビットマップＢＭを備える。フォーマットビットマップＢＭは、ストレージデバイスＤ０〜Ｄ３をページ単位でフォーマットするかどうかを示す情報を記憶する。このとき、未フォーマットのページに対応するビット位置は１に設定し、フォーマット済のページに対応するビット位置は０に設定することができる。
【００３４】
各ノードＮ１〜Ｎ３のＩ／Ｏ制御シェアドメモリも同様に構成することができる。なお、フォーマットビットマップＢＭは、ストレージデバイス制御部Ｔ０に設けるようにしてもよい。
【００３５】
図２は、実施形態に係るストレージ制御装置の障害トラック発生時の状態を示すブロック図である。
図２において、Ｉ／Ｏ制御部Ｅ０は、図１のデバイスグループＧ０に対してプールボリュームＰ０を生成し、デバイスグループＧ１に対してプールボリュームＰ１を生成するものとする。このとき、Ｉ／Ｏ制御部Ｅ０は、プールボリュームＰ０、Ｐ１を実容量プールＲＰに一元化する。
【００３６】
ホストＨＳ０には、ホストＨＳ０が使用可能な容量としてボリュームＢ０、Ｂ１が割り当てられているものとする。このとき、Ｉ／Ｏ制御部Ｅ０は、各ボリュームＢ０、Ｂ１に対応させて、仮想容量ボリュームＶ０、Ｖ１を実容量プールＲＰから切り出す。
【００３７】
仮想容量ボリュームＶ０には、ユーザデータ１Ａが割り当てられているものとすると、Ｉ／Ｏ制御部Ｅ０は、ユーザデータ１Ａを実容量プールＲＰのユーザデータ２Ａに紐づけ、ユーザデータ２ＡをプールボリュームＰ０のユーザデータ３Ａに紐づけ、ユーザデータ３ＡをデバイスグループＧ０に紐づけることができる。
【００３８】
また、仮想容量ボリュームＶ１には、ユーザデータ１Ｂが割り当てられているものとすると、Ｉ／Ｏ制御部Ｅ０は、ユーザデータ１Ｂを実容量プールＲＰのユーザデータ２Ｂに紐づけ、ユーザデータ２ＢをプールボリュームＰ０のユーザデータ３Ｂに紐づけ、ユーザデータ３ＢをデバイスグループＧ０に紐づけることができる。
【００３９】
また、Ｉ／Ｏ制御部Ｅ０は、制御領域２Ｃを実容量プールＲＰに割り当てたものとすると、制御領域２ＣをプールボリュームＰ０の制御領域３Ｃに紐づけ、制御領域３ＣをデバイスグループＧ０に紐づけることができる。
【００４０】
また、Ｉ／Ｏ制御部Ｅ０は、制御領域２Ｄを実容量プールＲＰに割り当てたものとすると、制御領域２ＤをプールボリュームＰ１の制御領域３Ｄに紐づけ、制御領域３ＤをデバイスグループＧ１に紐づけることができる。
【００４１】
そして、Ｉ／Ｏ制御部Ｅ０は、制御領域３ＤのデータをデバイスグループＧ１にライトするようにストレージデバイス制御部Ｔ０に依頼したものとする。このとき、ストレージデバイス制御部Ｔ０は、デバイスグループＧ１のデバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）のいずれのライトにも失敗したものとすると、Ｉ／Ｏ制御部Ｅ０に障害応答する。
【００４２】
Ｉ／Ｏ制御部Ｅ０は、デバイスグループＧ１の障害応答をストレージデバイス制御部Ｔ０から受領すると、デバイスグループＧ１に対応するプールボリュームＰ１に含まれる制御領域３Ｄのページを特定し、そのページに対応するフォーマットビットマップＢＭのビット位置（フォーマットビットと言う）をＯＮにする。フォーマットビットマップＢＭのビット位置がＯＮされると、そのビット位置の値が０から１に変更される。
【００４３】
デバイスグループＧ１の障害応答があると、ユーザは、デバイスグループＧ１の障害部位を回復させ、デバイスグループＧ１へのライト時にデバイスグループＧ１の障害応答が発生しないようにする。デバイスグループＧ１の障害部位の回復では、ドライブの交換などの物理的な操作を伴うことがある。
【００４４】
図３は、実施形態に係るストレージ制御装置の障害トラック回復時の状態を示すブロック図である。
図３において、デバイスグループＧ１の障害部位が回復された後、ホストＨＳ０からライト要求があったものとする。
【００４５】
このとき、Ｉ／Ｏ制御部Ｅ０は、フォーマットビットマップＢＭを参照し、値が１であるビット位置を確認する。そして、Ｉ／Ｏ制御部Ｅ０は、値が１であるビット位置からフォーマット対象となるページを確認し、そのページを含むプールボリュームＰ１に対応するデバイスグループＧ１をフォーマットするようストレージデバイス制御部Ｔ０に依頼する。このとき、ストレージデバイス制御部Ｔ０は、デバイスグループＧ１のデバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）をフォーマットする。
【００４６】
さらに、Ｉ／Ｏ制御部Ｅ０は、ホストＨＳ０からのライト要求で指定されたユーザデータ１Ｅを仮想容量ボリュームＶ０に割り当てたものとする。このとき、Ｉ／Ｏ制御部Ｅ０は、ユーザデータ１Ｅを実容量プールＲＰのユーザデータ２Ｅに紐づけ、ユーザデータ２ＥをプールボリュームＰ１のユーザデータ３Ｅに紐づけ、ユーザデータ３ＥをデバイスグループＧ１に紐づけることができる。
【００４７】
ここで、Ｉ／Ｏ制御部Ｅ０は、障害トラックが発生した時に、制御領域または未割り当て領域に対応する障害トラックが割り当てられた記憶領域をフォーマットさせることにより、ユーザデータを消失させることなく、障害トラックを回復させることができる。このため、ホストＨＳ０に対して実容量プールＲＰおよびプールボリュームＰ０、Ｐ１が隠蔽され、仮想容量ボリュームＶ０、Ｖ１のみをユーザが意識できる場合においても、障害トラックを自律的に回復させることができ、ユーザのＥｏＵ（Ｅａｓｅ  ｏｆ  Ｕｓｅ）を図りつつ、実容量プールＲＰおよびプールボリュームＰ０、Ｐ１を保守することができる。
【００４８】
また、Ｉ／Ｏ制御部Ｅ０は、ホストＨＳ０、ＨＳ１からのＩ／Ｏ要求に応じたフォーマット用に元々用意されているフォーマットビットマップＢＭを用いて障害トラックのフォーマット管理を行うことにより、障害トラックのフォーマット管理専用のフォーマットビットマップを設ける必要がなくなる。
【００４９】
また、Ｉ／Ｏ制御部Ｅ０は、ホストＨＳ０、ＨＳ１からのＩ／Ｏ要求に応じて障害トラックのフォーマットを実行させることにより、ホストＨＳ０、ＨＳ１からのＩ／Ｏ要求に応じて元々用意されているフォーマットのＩ／Ｏシーケンスに準じて障害トラックのフォーマットを効率よく実行させることがでできる。
【００５０】
図４は、実施形態に係るストレージ制御装置の障害トラック発生から回復までの動作を示すフローチャートである。
図４において、図１のストレージデバイス制御部Ｔ０は、ストレージデバイスＤ０〜Ｄ３の障害を検出する（Ｓ１）。この障害の検出では、図１のＩ／Ｏ制御部Ｅ０で指定されたデバイスグループに対して、図１のストレージデバイス制御部Ｔ０がライトを試みたときに、デバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）のいずれのライトにも失敗したかどうかを検出する。
【００５１】
次に、ストレージデバイス制御部Ｔ０は、障害部位の閉塞を行う（Ｓ２）。この障害部位の閉塞では、ストレージデバイス制御部Ｔ０は、図１のストレージデバイス管理テーブル２６において、障害が検出されたストレージデバイスのステータスを障害に設定する。また、ストレージデバイス制御部Ｔ０は、デバイスグループ管理テーブル２５を参照し、障害が検出されたストレージデバイスを含むデバイスグループを特定する。そして、ストレージデバイス制御部Ｔ０は、論理デバイス管理テーブル２４において、そのデバイスグループに対応する論理デバイスの論理デバイスステータスを障害に設定する。
【００５２】
次に、ストレージデバイス制御部Ｔ０は、Ｉ／Ｏ制御部Ｅ０で指定されたデバイスグループに対応する論理デバイスのライトに失敗したというエラー応答をＩ／Ｏ制御部Ｅ０に返す。Ｉ／Ｏ制御部Ｅ０は、その論理デバイスについてのエラー応答を受け取ると、障害トラックを設定する（Ｓ３）。障害トラックの設定では、Ｉ／Ｏ制御部Ｅ０は、ボリューム管理テーブル２２を参照し、その論理デバイスに対応するプールボリュームを特定する。そして、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１において、そのプールボリュームに対応するページに割り当てられたトラックのトラックステータスを障害に設定する。
【００５３】
次に、Ｉ／Ｏ制御部Ｅ０は、障害トラック発生個所を探索する（Ｓ４）。この障害トラック発生個所の探索では、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１を参照し、障害トラックに割り当てられたページを特定する。
【００５４】
次に、Ｉ／Ｏ制御部Ｅ０は、障害トラック発生個所のページ割り当て状態を確認する（Ｓ５）。この障害トラック発生個所のページ割り当て状態の確認では、Ｉ／Ｏ制御部Ｅ０は、ページ管理テーブル２３を参照し、障害トラックに割り当てられたページのページ種別を確認する。そして、障害トラックに割り当てられたページが、実容量プールに割り当て済みのユーザデータのページである場合（Ｓ６のＹＥＳ）、Ｉ／Ｏ制御部Ｅ０は、障害トラック発生報告を行う（Ｓ７）。
【００５５】
一方、障害トラックに割り当てられたページが、実容量プールに未割り当てのページまたは制御領域のページである場合（Ｓ６のＮＯ）、Ｉ／Ｏ制御部Ｅ０は、そのページに対応するフォーマットビットマップＢＭのビット位置をＯＮにする（Ｓ８）。
【００５６】
次に、Ｉ／Ｏ制御部Ｅ０は、ユーザに対して障害報告を行う（Ｓ９）。この障害報告では、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１で管理されている障害トラックのトラックステータスを通知することができる。
【００５７】
次に、ユーザは、障害部位の回復および保守を行う（Ｓ１０）。障害部位の回復は、ストレージデバイスＤ０〜Ｄ３にＩ／Ｏ要求を行ったときに、エラー応答が返ってこなくなるようにする操作である。このとき、ドライブの交換などの物理的な操作を伴うことがある。
【００５８】
次に、ホストＨＳ０からライト要求があったものとすると（Ｓ１１）、Ｉ／Ｏ制御部Ｅ０は、割り当て対象ページおよびフォーマットビットがＯＮのページのフォーマットをストレージデバイス制御部Ｔ０に依頼する（Ｓ１２）。フォーマットビットがＯＮのページのフォーマット依頼では、Ｉ／Ｏ制御部Ｅ０は、ページ管理テーブル２３を参照することで、フォーマットビットがＯＮのページに対応するプールボリュームを特定し、ボリューム管理テーブル２２を参照することで、そのプールボリュームに対応する論理デバイスを特定する。そして、Ｉ／Ｏ制御部Ｅ０は、その論理デバイスに対してフォーマットするようストレージデバイス制御部Ｔ０に依頼する。
【００５９】
次に、Ｉ／Ｏ制御部Ｅ０は、ホストＨＳ０からライト要求に対応した新規ページを実容量プールに割り当てる（Ｓ１３）。
【００６０】
以下、図１のストレージ制御装置の障害トラック発生から回復までの動作について具体的に説明する。
【００６１】
図５および図６は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。
図５において、図１のＩ／Ｏ制御部Ｅ０は、制御情報更新処理を開始すると、キャッシュ上トラック管理テーブル２１から、更新するトラックのボリューム＃Ｐを取得する（Ｓ２１）。なお、＃Ｐは、図１のプールボリュームＰ０、Ｐ１を識別するための識別子である。
【００６２】
次に、Ｉ／Ｏ制御部Ｅ０は、ボリューム管理テーブル２２から、ボリューム＃Ｐに関連している論理デバイス＃Ｒを取得する（Ｓ２２）。なお、＃Ｒは、論理デバイスを識別するための識別子である。
【００６３】
次に、Ｉ／Ｏ制御部Ｅ０は、指定した論理デバイス＃Ｒについての制御情報のＩ／Ｏをストレージデバイス制御部Ｔ０に依頼する（Ｓ２３）。
【００６４】
次に、ストレージデバイス制御部Ｔ０は、指定された論理デバイス＃Ｒについての制御情報のＩ／Ｏ依頼をＩ／Ｏ制御部Ｅ０から受領する（Ｓ２４）。
【００６５】
次に、ストレージデバイス制御部Ｔ０は、論理デバイス管理テーブル２４から、指定された論理デバイス＃Ｒに関連しているデバイスグループ＃Ｇを取得する（Ｓ２５）。なお、＃Ｇは、図１のデバイスグループＧ０、Ｇ１を識別するための識別子である。
【００６６】
次に、ストレージデバイス制御部Ｔ０は、デバイスグループ管理テーブル２５から、デバイスグループ＃Ｇに関連しているストレージデバイス＃Ｄを取得する（Ｓ２６）。なお、＃Ｄは、図１のストレージデバイスＤ０〜Ｄ３を識別するための識別子である。
【００６７】
次に、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）に対して制御情報のＩ／Ｏを実施する（Ｓ２７）。
【００６８】
次に、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）からエラー応答があったかどうかを判断する（Ｓ２８）。エラー応答があった場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス管理テーブル２６において、そのストレージデバイス＃Ｄのステータスを「障害」に更新する（Ｓ２９）。
【００６９】
一方、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）からエラー応答がなかった場合またはＳ２９の処理を終了した場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）への制御情報のＩ／Ｏをストレージデバイス制御部Ｔ１に依頼する
【００７０】
ストレージデバイス制御部Ｔ１は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）への制御情報のＩ／Ｏ依頼をストレージデバイス制御部Ｔ０から受領すると、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）に対して制御情報のＩ／Ｏを実施する（Ｓ３０）。
【００７１】
次に、ストレージデバイス制御部Ｔ１は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）からエラー応答があったかどうかを判断する（Ｓ３１）。エラー応答があった場合、ストレージデバイス制御部Ｔ１は、ストレージデバイス管理テーブル２６において、そのストレージデバイス＃Ｄのステータスを「障害」に更新する（Ｓ３２）。
【００７２】
Ｓ３１でエラー応答がなかった場合またはＳ３２の処理が終了した場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス管理テーブル２６から、デバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）のステータスを取得する（Ｓ３３）。
【００７３】
次に、ストレージデバイス制御部Ｔ０は、デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害であるかどうかを判断する（Ｓ３４）。デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害である場合、論理デバイス管理テーブル２４において、論理デバイス＃Ｒの論理デバイスステータスを障害に更新する（Ｓ３５）。
【００７４】
一方、デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害であるという条件を満たさない場合、ストレージデバイス制御部Ｔ０は、指定された論理デバイス＃ＲへのＩ／Ｏ結果をＩ／Ｏ制御部Ｅ０に応答する（Ｓ３６）。
【００７５】
次に、Ｉ／Ｏ制御部Ｅ０は、指定された論理デバイス＃Ｒについての制御情報のＩ／Ｏ結果をストレージデバイス制御部Ｔ０から受領する（Ｓ３７）。
【００７６】
次に、図６において、Ｉ／Ｏ制御部Ｅ０は、指定した論理デバイス＃Ｒの障害応答があったかどうかを判断する（Ｓ３８）。指定した論理デバイス＃Ｒの障害応答がなかった場合、Ｉ／Ｏ制御部Ｅ０は、制御情報更新処理を終了する。
【００７７】
一方、指定した論理デバイス＃Ｒの障害応答があった場合、Ｉ／Ｏ制御部Ｅ０は、ボリューム管理テーブル２２から、指定した論理デバイス＃Ｒに関連しているボリューム＃Ｐを取得する。そして、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１において、取得したボリューム＃Ｐに対応するページ＃Ｈに割り当てられたトラック＃Ｃのトラックステータスを「ストレージデバイス障害」に更新する（Ｓ３９）。なお、＃Ｃは、トラックを識別するための識別子である。
【００７８】
次に、Ｉ／Ｏ制御部Ｅ０は、トラックステータスを「ストレージデバイス障害」に更新したトラック＃Ｃに割り当てられたページ＃Ｈをキャッシュ上トラック管理テーブル２１から取得する（Ｓ４０）。なお、＃Ｈは、ページを識別するための識別子である。
【００７９】
次に、Ｉ／Ｏ制御部Ｅ０は、取得したページ＃Ｈのページ種別をページ管理テーブル２３から取得する（Ｓ４１）。
【００８０】
次に、Ｉ／Ｏ制御部Ｅ０は、取得したページ＃のページ種別がユーザデータであるかどうかを判断する（Ｓ４２）。取得したページ＃のページ種別がユーザデータである場合、Ｉ／Ｏ制御部Ｅ０は、障害トラック発生報告を行い（Ｓ４３）、制御情報更新処理を終了する。
【００８１】
一方、取得したページ＃のページ種別がユーザデータでない場合、Ｉ／Ｏ制御部Ｅ０は、取得したページ＃のフォーマットビットを「ＯＮ」に更新し（Ｓ４４）、障害報告を行った後（Ｓ４５）、制御情報更新処理を終了する。
【００８２】
図７および図８は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。
図７において、図１のＩ／Ｏ制御部Ｅ０は、ホストライトＩ／Ｏ受領処理を開始すると、キャッシュ上トラック管理テーブル２１から、ホストライトＩ／Ｏ（図３のホストＨＳ０からのライト要求）されたトラック＃Ｃの割り当てページ＃Ｈを取得する（Ｓ５１）。
【００８３】
次に、Ｉ／Ｏ制御部Ｅ０は、取得したページ＃Ｈが未割り当てページかどうかを判断する（Ｓ５２）。取得したページ＃Ｈが未割り当てページでない場合、Ｉ／Ｏ制御部Ｅ０は、ページ＃Ｈの参照終了かどうかを判断する（Ｓ５９）。ページ＃Ｈの参照終了でない場合、Ｉ／Ｏ制御部Ｅ０は、未取得のページ＃Ｈを取得し（Ｓ７７）、Ｓ５２に戻る。ページ＃Ｈの参照終了の場合、障害トラックの自己回復処理を終了する。
【００８４】
一方、Ｓ５２において、取得したページ＃Ｈが未割り当てページの場合、Ｉ／Ｏ制御部Ｅ０は、ページ管理テーブル２３から、ページ＃Ｈのフォーマットビットを取得する（Ｓ５３）。
【００８５】
次に、Ｉ／Ｏ制御部Ｅ０は、ページ＃ＨのフォーマットビットがＯＮかどうかを判断する（Ｓ５４）。ページ＃ＨのフォーマットビットがＯＮでない場合、Ｉ／Ｏ制御部Ｅ０は、Ｓ５９に進む。
【００８６】
一方、ページ＃ＨのフォーマットビットがＯＮの場合、Ｉ／Ｏ制御部Ｅ０は、取得したページ＃のフォーマットビットを「ＯＦＦ」に更新する（Ｓ５５）。
【００８７】
次に、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１から、フォーマットするページ＃Ｈのボリューム＃Ｐを取得する（Ｓ５６）。
【００８８】
次に、Ｉ／Ｏ制御部Ｅ０は、ボリューム管理テーブル２２から、ボリューム＃Ｐに関連している論理デバイス＃Ｒを取得する（Ｓ５７）。
【００８９】
次に、Ｉ／Ｏ制御部Ｅ０は、指定した論理デバイス＃Ｒについてのページのフォーマットをストレージデバイス制御部Ｔ０に依頼する（Ｓ５８）。
【００９０】
次に、ストレージデバイス制御部Ｔ０は、指定された論理デバイス＃ＲについてのページのフォーマットをＩ／Ｏ制御部Ｅ０から受領する（Ｓ６０）。
【００９１】
次に、ストレージデバイス制御部Ｔ０は、論理デバイス管理テーブル２４から、指定された論理デバイス＃Ｒに関連しているデバイスグループ＃Ｇを取得する（Ｓ６１）。
【００９２】
次に、ストレージデバイス制御部Ｔ０は、デバイスグループ管理テーブル２５から、デバイスグループ＃Ｇに関連しているストレージデバイス＃Ｄを取得する（Ｓ６２）。
【００９３】
次に、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）に対してフォーマットＩ／Ｏを実施する（Ｓ６３）。
【００９４】
次に、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）からエラー応答があったかどうかを判断する（Ｓ６４）。エラー応答があった場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス管理テーブル２６において、そのストレージデバイス＃Ｄのステータスを「障害」に更新する（Ｓ６５）。
【００９５】
一方、ストレージデバイス＃Ｄのデバイス（ｍａｓｔｅｒ）からエラー応答がなかった場合またはＳ６５の処理を終了した場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）へのフォーマットＩ／Ｏをストレージデバイス制御部Ｔ１に依頼する
【００９６】
ストレージデバイス制御部Ｔ１は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）へのフォーマットＩ／Ｏ依頼をストレージデバイス制御部Ｔ０から受領すると、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）に対してフォーマットＩ／Ｏを実施する（Ｓ６６）。
【００９７】
次に、ストレージデバイス制御部Ｔ１は、ストレージデバイス＃Ｄのデバイス（ｍｉｒｒｏｒ）からエラー応答があったかどうかを判断する（Ｓ６７）。エラー応答があった場合、ストレージデバイス制御部Ｔ１は、ストレージデバイス管理テーブル２６において、そのストレージデバイス＃Ｄのステータスを「障害」に更新する（Ｓ６８）。
【００９８】
Ｓ６７でエラー応答がなかった場合またはＳ６８の処理が終了した場合、ストレージデバイス制御部Ｔ０は、ストレージデバイス管理テーブル２６から、デバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）のステータスを取得する（Ｓ６９）。
【００９９】
次に、ストレージデバイス制御部Ｔ０は、デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害であるかどうかを判断する（Ｓ７０）。デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害である場合、論理デバイス管理テーブル２４において、論理デバイス＃Ｒの論理デバイスステータスを障害に更新する（Ｓ７１）。
【０１００】
一方、デバイス（ｍａｓｔｅｒ）のステータスが障害かつデバイス（ｍｉｒｒｏｒ）のステータスが障害であるという条件を満たさない場合、ストレージデバイス制御部Ｔ０は、指定された論理デバイス＃ＲへのＩ／Ｏ結果をＩ／Ｏ制御部Ｅ０に応答する（Ｓ７２）。
【０１０１】
次に、Ｉ／Ｏ制御部Ｅ０は、指定された論理デバイス＃ＲについてのフォーマットＩ／Ｏ結果をストレージデバイス制御部Ｔ０から受領する（Ｓ７３）。
【０１０２】
次に、図８において、Ｉ／Ｏ制御部Ｅ０は、指定した論理デバイス＃Ｒの障害応答があったかどうかを判断する（Ｓ７４）。指定した論理デバイス＃Ｒの障害応答があった場合、Ｉ／Ｏ制御部Ｅ０は、図７のＳ５９に戻る。
【０１０３】
一方、指定した論理デバイス＃Ｒの障害応答がなかった場合、Ｉ／Ｏ制御部Ｅ０は、ボリューム管理テーブル２２から、指定した論理デバイス＃Ｒに関連しているボリューム＃Ｐを取得する。そして、Ｉ／Ｏ制御部Ｅ０は、キャッシュ上トラック管理テーブル２１において、取得したボリューム＃Ｐに対応するページ＃Ｈのトラックステータスを「正常」に更新する（Ｓ７５）。
【０１０４】
次に、Ｉ／Ｏ制御部Ｅ０は、フォーマットした制御情報を再構築するため、制御情報を更新し（Ｓ７６）、図７のＳ５９に戻る。制御情報の更新では、Ｉ／Ｏ制御部Ｅ０は、図５の制御情報更新処理に戻る。
【０１０５】
以下、図２の障害トラック発生時の状態を例にとって、図１のキャッシュ上トラック管理テーブル２１、ボリューム管理テーブル２２、ページ管理テーブル２３論理デバイス管理テーブル２４、デバイスグループ管理テーブル２５およびストレージデバイス管理テーブル２６の設定例について説明する。
【０１０６】
図１４のストレージデバイス管理テーブル２６には、ストレージデバイス＃Ｄごとにステータスが設定される。ここで、図２のストレージデバイスＤ０、Ｄ１の障害が検出されると、ストレージデバイス管理テーブル２６のストレージデバイス＃Ｄ０、＃Ｄ１のステータスが障害に設定される。
【０１０７】
図１３のデバイスグループ管理テーブル２５には、デバイスグループ＃Ｇごとにデバイス（ｍａｓｔｅｒ）およびデバイス（ｍｉｒｒｏｒ）が設定される。ここで、デバイスグループ＃Ｇ０には、デバイス（ｍａｓｔｅｒ）としてストレージデバイス＃Ｄ２が登録され、デバイス（ｍｉｒｒｏｒ）としてストレージデバイス＃Ｄ３が登録されている。デバイスグループ＃Ｇ１には、デバイス（ｍａｓｔｅｒ）としてストレージデバイス＃Ｄ０が登録され、デバイス（ｍｉｒｒｏｒ）としてストレージデバイス＃Ｄ１が登録されている。
【０１０８】
図１２の論理デバイス管理テーブル２４には、外部ボリュームパス＃Ｒごとに論理デバイスステータスが設定される。また、論理デバイス管理テーブル２４には、各論理デバイス＃Ｒ０、＃Ｒ１に対応するデバイスグループ＃Ｇ０、＃Ｇ１が登録されている。
【０１０９】
ここで、図１４のストレージデバイス管理テーブル２６において、ストレージデバイス＃Ｄ０、＃Ｄ１のステータスが障害に設定されると、図１３のデバイスグループ管理テーブル２５を参照することで、ストレージデバイス＃Ｄ０、＃Ｄ１がデバイスグループ＃Ｇ１に属すると判断することができる。そして、論理デバイス管理テーブル２４において、デバイスグループ＃Ｇ１に対応する論理デバイス＃Ｒ１の論理デバイスステータスが障害に設定される。
【０１１０】
図１０のボリューム管理テーブル２２には、ボリューム＃Ｐに対応する外部ボリュームパス＃Ｒが登録されている。ここで、ボリューム管理テーブル２２には、各ボリューム＃Ｐ０、＃Ｐ１に対応して論理デバイス＃Ｒ０、＃Ｒ１が登録されている。また、ボリューム管理テーブル２２には、ボリューム＃Ｐに対応してボリューム種別が登録されている。ボリューム種別としては、プールボリュームを示すＰＯＯＬ−ＶＯＬと、通常ボリュームがある。ボリューム管理テーブル２２には、各ボリューム＃Ｐ０、＃Ｐ１のボリューム種別としてＰＯＯＬ−ＶＯＬが登録されている。
【０１１１】
図９のキャッシュ上トラック管理テーブル２１には、トラック位置ごとにトラックステータスが設定される。また、キャッシュ上トラック管理テーブル２１には、トラック位置に割り当てられた割り当てページ＃Ｈおよびその割り当てページ＃Ｈに対応するボリューム＃Ｐが登録されている。
【０１１２】
キャッシュ上トラック管理テーブル２１において、トラック＃Ｃ０、＃Ｃ１にはページ＃Ｈ０が割り当てられ、トラック＃Ｃ２、＃Ｃ３にはページ＃Ｈ１が割り当てられている。また、各ページ＃Ｈ０、＃Ｈ１は、ボリューム＃Ｐ０、＃Ｐ１に紐づけられている。
【０１１３】
ここで、図１２の論理デバイス管理テーブル２４において、論理デバイス＃Ｒ１の論理デバイスステータスが障害に設定されると、図１０のボリューム管理テーブル２２を参照することで、論理デバイス＃Ｒ１がボリューム＃Ｐ１に対応すると判断することができる。そして、キャッシュ上トラック管理テーブル２１において、ボリューム＃Ｐ１に対応するページ＃Ｈ１に割り当てられたトラック＃Ｃ２、＃Ｃ３のトラックステータスがストレージデバイス障害に設定される。
【０１１４】
図１１のページ管理テーブル２３には、ページ＃Ｈごとにページ種別が登録される。ページ種別としては、未割り当てページと割り当て済ページがある。さらに、割り当て済ページには、ユーザデータと制御領域がある。ページ管理テーブル２３において、ページ＃Ｈ０のページ種別としてユーザデータが登録され、ページ＃Ｈ１のページ種別として制御領域が登録されている。
【０１１５】
また、ページ管理テーブル２３には、ページ＃Ｈに対応するボリューム＃Ｐが登録される。さらに、ページ管理テーブル２３には、ページ＃ＨごとにフォーマットビットマップがＯＮかＯＦＦかに設定される。
【０１１６】
ここで、図９のキャッシュ上トラック管理テーブル２１を参照することで、トラックステータスがストレージデバイス障害に設定されたトラック＃Ｃ２、＃Ｃ３に割り当てられたページ＃Ｈ１を特定することができる。そして、ページ管理テーブル２３において、ページ＃Ｈ１のページ種別が制御領域または未割り当てページの場合、そのページに対応するフォーマットビットがＯＮに設定される。
【０１１７】
図１５は、実施形態に係るストレージ制御装置のハードウェア構成を示すブロック図である。
図１５において、ストレージ制御装置１００には、プロセッサ１０１、通信制御デバイス１０２、通信インターフェース１０３、主記憶デバイス１０４および外部記憶デバイス１０５が設けられている。プロセッサ１０１、通信制御デバイス１０２、通信インターフェース１０３、主記憶デバイス１０４および外部記憶デバイス１０５は、内部バス１０６を介して相互に接続されている。主記憶デバイス１０４および外部記憶デバイス１０５は、プロセッサ１０１からアクセス可能である。
【０１１８】
また、ストレージ制御装置１００の外部には、入力装置１１０および出力装置１１１が設けられている。入力装置１００および出力装置１１１は、入出力インターフェース１０７を介して内部バス１０６に接続されている。
【０１１９】
入力装置１００は、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。出力装置１１１は、例えば、画面表示装置（液晶モニタ、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、グラフィックカード等）、音声出力装置（スピーカ等）、印字装置等である。
【０１２０】
プロセッサ１０１は、ストレージ制御装置１００全体の動作制御を司るハードウェアである。主記憶デバイス１０４は、例えば、ＳＲＡＭまたはＤＲＡＭなどの半導体メモリから構成することができる。主記憶デバイス１０４には、プロセッサ１０１が実行中のプログラムを格納したり、プロセッサ１０１がプログラムを実行するためのワークエリアを設けたりすることができる。
【０１２１】
外部記憶デバイス１０５は、大容量の記憶容量を有する記憶デバイスであり、例えば、ハードディスク装置やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。外部記憶デバイス１０５は、各種プログラムの実行ファイルやプログラムの実行に用いられるデータを保持することができる。外部記憶デバイス１０５には、障害トラック回復プログラム１０５Ａを格納することができる。障害トラック回復プログラム１０５Ａは、ストレージ制御装置１００にインストール可能なソフトウェアであってもよいし、ストレージ制御装置１００にファームウェアとして組み込まれていてもよい。
【０１２２】
通信制御デバイス１０２は、外部との通信を制御する機能を有するハードウェアである。通信制御デバイス１０２は、通信インターフェース１０３を介してネットワーク１０９に接続される。ネットワーク１０９は、インターネットなどのＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であってもよいし、イーサーネットまたはＷｉＦｉなどのＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であってもよいし、ＷＡＮとＬＡＮが混在していてもよい。
【０１２３】
入出力インターフェース１０７は、入力装置１１０から入力されるデータをプロセッサ１０１が処理可能なデータ形式に変換したり、プロセッサ１０１から出力されるデータを出力装置１１１で出力可能なデータ形式に変換したりする。
【０１２４】
プロセッサ１０１が障害トラック回復プログラム１０５Ａを主記憶デバイス１０４に読み出し、主障害トラック回復プログラム１０５Ａを実行することにより、トラック単位でキャッシュしたデータを物理ストレージにライトする時に障害が発生したかどうかを検出し、障害トラックが制御領域または未割り当て領域に対応する場合、制御領域または未割り当て領域に対応する物理ストレージの記憶領域をフォーマットすることができる。
【０１２５】
なお、障害トラック回復プログラム１０５Ａの実行は、複数のプロセッサやコンピュータに分担させてもよい。あるいは、プロセッサ１０１は、ネットワーク１０９を介してクラウドコンピュータなどに障害トラック回復プログラム１０５Ａの全部または一部の実行を指示し、その実行結果を受け取るようにしてもよい。
【符号の説明】
【０１２６】
ＨＳ０、ＨＳ１  ホスト、Ｎ０〜Ｎ３  ノード、Ｋ０〜Ｋ３  クラスタ制御部、Ｅ０〜Ｅ３  Ｉ／Ｏ制御部、Ｔ０〜Ｔ３  ストレージデバイス制御部、ＳＭ０  Ｉ／Ｏ制御シェアドメモリ、ＢＭ  フォーマットビットマップ、Ｄ０〜Ｄ３  ストレージデバイス、Ｇ０、Ｇ１  デバイスグループ、１１  Ｉ／Ｏ結果受領部、１２  フォーマット対象判定部、１３  フォーマット依頼部、２１  キャッシュ上トラック管理テーブル、２２  ボリューム管理テーブル、２３  ページ管理テーブル、２４  論理デバイス管理テーブル、２５  デバイスグループ管理テーブル、２６  ストレージデバイス管理テーブル
【図１】
2020047105.tif 000003
【図２】
2020047105.tif 000004
【図３】
2020047105.tif 000005
【図４】
2020047105.tif 000006
【図５】
2020047105.tif 000007
【図６】
2020047105.tif 000008
【図７】
2020047105.tif 000009
【図８】
2020047105.tif 000010
【図９】
2020047105.tif 000011
【図１０】
2020047105.tif 000012
【図１１】
2020047105.tif 000013
【図１２】
2020047105.tif 000014
【図１３】
2020047105.tif 000015
【図１４】
2020047105.tif 000016
【図１５】
2020047105.tif 000017