(57)【要約】【課題】バックアップデータからの全復旧となる機会を減少させることにより、システム停止時間の短縮化を達成し得るミラーリング復旧装置等を提供する。【解決手段】本発明のミラーリング復旧装置１０は、交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、第二のディスクにエラーが発生した場合に動作するものである。そして、ミラーリング復旧装置１０は、エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段１１と、エラーブロックが使用中であると判定されたときに、そのエラーブロックの使用を停止させる使用中処理手段１２と、エラーブロックが未使用であると判定されたときに、そのエラーブロックにヌルデータを書き込んでミラー同期を継続させる未使用処理手段１３と、を備えたことを特徴とする。【選択図】図１
2010244241.tif 000002
【特許請求の範囲】
【請求項１】
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合に動作するミラーリング復旧装置であって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段と、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させる使用中処理手段と、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる未使用処理手段と、
を備えたことを特徴とするミラーリング復旧装置。
【請求項２】
前記第二のディスクを構成する各ブロックに対応してＡＰＩを指定したエラーブロック判定テーブルと、
前記エラーが発生したブロックであるエラーブロックに対応するＡＰＩを、前記エラーブロック判定テーブルに基づいて選択するＡＰＩ選択手段とを更に備え、
前記使用状況判定手段は、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて前記エラーブロックの使用中又は未使用を判定し、
前記使用中処理手段は、前記使用状況判定手段によって前記エラーブロックが使用中であると判定されると、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて、当該エラーブロックの使用を停止させ、
前記未使用処理手段は、前記使用状況判定手段によって前記エラーブロックが未使用であると判定されると、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる、
ことを特徴とする請求項１記載のミラーリング復旧装置。
【請求項３】
前記ＡＰＩは、
前記ブロックの使用有無及び影響度を出力する機能を有するブロック判定ＡＰＩと、
前記ブロックを予約して当該ブロックに対する上位層のアクセスを抑制する機能を有するブロック予約ＡＰＩと、
前記ブロック予約ＡＰＩによる前記アクセスの抑制を解除する機能を有するブロック解放ＡＰＩと、
前記ブロックを含む論理ボリュームに対する前記上位層による使用を強制的に停止する機能を有するボリューム使用停止ＡＰＩとを含み、
前記使用状況判定手段は、前記ブロック判定ＡＰＩを用いて、前記エラーブロックの使用中又は未使用を判定し、
前記使用中処理手段は、前記ボリューム使用停止ＡＰＩを用いて、前記エラーブロックの使用を停止させ、
前記未使用処理手段は、前記ブロック予約ＡＰＩを用いて前記エラーブロックに対する上位層のアクセスを抑制して、当該エラーブロックにヌルデータを書き込み、前記ブロック解放ＡＰＩを用いて前記エラーブロックに対する前記アクセスの抑制を解放して、前記ミラー同期を継続させる、
ことを特徴とする請求項２記載のミラーリング復旧装置。
【請求項４】
前記第一のディスクと前記第二のディスクとを有するストレージ装置と、
上位層が発行した前記論理ＩＯ要求を物理ＩＯ要求に変換して前記ストレージ装置へ出力するドライバと、
前記ストレージ装置に対してミラーリングの復旧処理を実行するミラーリング復旧機構と、
このミラーリング復旧機構の機能の一部として動作する請求項１乃至３のいずれか一項記載のミラーリング復旧装置と、
を備えたことを特徴とするミラーリングシステム。
【請求項５】
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合におけるミラーリング復旧方法であって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定し、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させ、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる、
ことを特徴とするミラーリング復旧方法。
【請求項６】
前記第二のディスクを構成する各ブロックに対応してＡＰＩを指定したエラーブロック判定テーブルを予め用意し、
前記エラーが発生したブロックであるエラーブロックに対応するＡＰＩを、前記エラーブロック判定テーブルに基づいて選択し、
選択された前記ＡＰＩを用いて前記エラーブロックの使用中又は未使用を判定し、
前記エラーブロックが使用中であると判定されると、選択された前記ＡＰＩを用いて当該エラーブロックの使用を停止させ、
前記エラーブロックが未使用であると判定されると、選択された前記ＡＰＩを用いて当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる、
ことを特徴とする請求項５記載のミラーリング復旧方法。
【請求項７】
前記ＡＰＩは、
前記ブロックの使用有無及び影響度を出力する機能を有するブロック判定ＡＰＩと、
前記ブロックを予約して当該ブロックに対する上位層のアクセスを抑制する機能を有するブロック予約ＡＰＩと、
前記ブロック予約ＡＰＩによる前記アクセスの抑制を解除する機能を有するブロック解放ＡＰＩと、
前記ブロックを含む論理ボリュームに対する前記上位層による使用を強制的に停止する機能を有するボリューム使用停止ＡＰＩとを含み、
選択された前記ＡＰＩを用いて前記エラーブロックの使用中又は未使用を判定する際に、前記ブロック判定ＡＰＩを用いて前記エラーブロックの使用中又は未使用を判定し、
選択された前記ＡＰＩを用いて前記エラーブロックの使用を停止させる際に、前記ボリューム使用停止ＡＰＩを用いて前記エラーブロックの使用を停止させ、
選択された前記ＡＰＩを用いて当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる際に、前記ブロック予約ＡＰＩを用いて前記エラーブロックに対する上位層のアクセスを抑制して、当該エラーブロックにヌルデータを書き込み、前記ブロック解放ＡＰＩを用いて前記エラーブロックに対する前記アクセスの抑制を解放して、前記ミラー同期を継続させる、
ことを特徴とする請求項６記載のミラーリング復旧方法。
【請求項８】
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合に動作するミラーリング復旧プログラムであって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させる使用中処理手段、及び、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる未使用処理手段、
としてコンピュータを機能させるためのミラーリング復旧プログラム。
【請求項９】
前記第二のディスクを構成する各ブロックに対応してＡＰＩを指定したエラーブロック判定テーブルに基づき、前記エラーが発生したブロックであるエラーブロックに対応するＡＰＩを選択するＡＰＩ選択手段として、前記コンピュータを更に機能させさせるための請求項８記載のミラーリング復旧プログラムであって、
前記使用状況判定手段は、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて前記エラーブロックの使用中又は未使用を判定し、
前記使用中処理手段は、前記使用状況判定手段によって前記エラーブロックが使用中であると判定されると、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて、当該エラーブロックの使用を停止させ、
前記未使用処理手段は、前記使用状況判定手段によって前記エラーブロックが未使用であると判定されると、前記ＡＰＩ選択手段によって選択された前記ＡＰＩを用いて、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる、
ことを特徴とするミラーリング復旧プログラム。
【請求項１０】
前記ＡＰＩは、
前記ブロックの使用有無及び影響度を出力する機能を有するブロック判定ＡＰＩと、
前記ブロックを予約して当該ブロックに対する上位層のアクセスを抑制する機能を有するブロック予約ＡＰＩと、
前記ブロック予約ＡＰＩによる前記アクセスの抑制を解除する機能を有するブロック解放ＡＰＩと、
前記ブロックを含む論理ボリュームに対する前記上位層による使用を強制的に停止する機能を有するボリューム使用停止ＡＰＩとを含み、
前記使用状況判定手段は、前記ブロック判定ＡＰＩを用いて、前記エラーブロックの使用中又は未使用を判定し、
前記使用中処理手段は、前記ボリューム使用停止ＡＰＩを用いて、前記エラーブロックの使用を停止させ、
前記未使用処理手段は、前記ブロック予約ＡＰＩを用いて前記エラーブロックに対する上位層のアクセスを抑制して、当該エラーブロックにヌルデータを書き込み、前記ブロック解放ＡＰＩを用いて前記エラーブロックに対する前記アクセスの抑制を解放して、前記ミラー同期を継続させる、
ことを特徴とする請求項９記載のミラーリング復旧プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアミラーリング環境においてディスク障害によるディスク交換後の復旧確率の向上に寄与するミラーリング復旧装置等に関する。
【背景技術】
【０００２】
コンピュータ装置の高可用性を維持するための重要な項目の一つとして、ハードディスク装置に対する二重化が挙げられる。二重化の方法として、ディスクアレイ装置のような特別なハードウェア実装を必要としない、ソフトウェアミラーリングがよく使用されている。
【０００３】
また、特許文献１には、ソフトウェアミラーリングの障害を監視・復旧する関連技術の一例が開示されている。図９は、特許文献１に開示された関連技術の構成を示すブロック図である（特許文献１参照）。以下、この図面に基づき説明する。
【０００４】
図９を参照すると、ソフトウェアミラーリング障害監視・復旧システム１０１は、ソフトウェアミラーリング構成（ＲＡＩＤ１構成）のディスク装置１０２を監視し、同期不正を検出した場合に、ディスク装置１０２に対して自動で同期復旧のための命令を指示する。ソフトウェアミラーリング障害監視・復旧システム１０１は、ミラーリング状態監視部１１１、ディスクエラーチェック部１１２、ディスクフォーマット処理部１１３、ミラーリング再同期処理部１１４、及び処理結果報告部１１５を含んで構成される。
【０００５】
ミラーリング状態監視部１１１は、定期的にディスク装置１０２のソフトウェアミラーリング状態を採取するためのコマンド（命令）を発行して、同期不正が発生しているデータ領域部分がないか監視をする。同期不正が発生していれば、ディスクエラーチェック部１１２は、ハードウェアのディスクメディアクエラーが格納されるログを確認して、ディスク装置１２１又はディスク装置１２２のディスクメディアエラーが、記録されていないかどうかを確認し、同期不正の原因となった障害ディスクを特定する。あるいは、ディスクの内部統計情報を参照することによって、エラーカウントが増加していることを確認する方法により、同期不正の原因となった障害ディスクを特定する。
【０００６】
ディスクフォーマット処理部１１３は、ソフトウェアミラーリング機能を停止させて、ディスクメディアエラー発生のディスクに対してメディアフォーマットコマンドを発行する。メディアフォーマットの実施により、ディスクメディアエラー発生データブロックのマスクと置換処理を行い、ディスクの全データ領域が正常に使用可能になることを確認する。
【０００７】
ミラーリング再同期処理部１１４は、ソフトウェアミラーリングの再同期コマンドを発行して、ソフトウェアミラーリングを復旧させる。処理結果報告部１１５は、１１１〜１１４の各検出内容と処理の実行結果の報告を行う。
【０００８】
次に、図９及び図１０を参照して本関連技術の動作について詳細に説明する。図９のソフトウェアミラーリング障害監視・復旧システムにおける動作のフローチャートを、図１０に示す。
【０００９】
ミラーリング監視・復旧システム１０１を起動しており、ディスク装置１０２がソフトウェアミラーリングを構成している。ミラーリング状態監視部１１１は、ディスク装置１０２のミラーリングの状態監視コマンドを定期的（ポーリング）に発行する（ステップＢ１）。態監視コマンドの結果で、データ領域の同期不正が検出されていないかどうか確認を行う（ステップＢ２）。同期不正が検出されなかった場合は再び定期監視に戻るが、検出された場合は、ディスクエラーチェック部１１２において、ハードウェアエラーが格納されているログを検索してミラーリングを構成しているディスク装置１２１又はディスク装置１２２のメディアエラー情報が記録されていることを確認し、同期不正の原因となった障害ディスクを特定する（ステップＢ３）。ディスクエラーチェック部１１２の障害ディスク特定の別の方法として、ＳＣＳＩディスクであれば、READ_DEFECT/LOG_SENSEコマンドを定期発行することにより、ディスク装置１２１又はディスク装置１２２の内部エラー統計情報を採取して、前回採取情報の差分よりメディアエラー発生のディスクを特定することも可能である（ステップＢ３）。
【００１０】
次に、特定された障害ディスクに対して、ディスクフォーマット処理部１１３は、メディアフォーマットコマンド（命令）を発行する（ステップＢ４）。フォーマットの実施により、メディアエラー発生データブロックのマスクと置換処理を行い、ディスクの全データ領域が正常に使用可能になることを確認する（ステップＢ５）。ここでフォーマットが正常に完了できず、ディスクが使用不能となった場合は、自動復旧処理は失敗となる（ステップＢ１０）。フォーマットが正常に完了した場合は、ミラーリング再同期処理部１１４において再同期コマンド（命令）を発行する（ステップＢ６）。ここで再同期処理中に処理の中断とか、処理後の状態確認にてミラー不正状態が検出された場合、再同期は正常に完了しなかったと判断して（ステップＢ７）、自動復旧処理は失敗となる（ステップＢ１０）。再同期処理が正常に完了した場合は（ステップＢ８）、ミラーリングシステムは復旧し、その旨報告する（ステップＢ９）。自動復旧に失敗した場合（ステップＢ１０）でも、ミラーリング不正障害の報告を行い（ステップＢ１１）、その時点でディスク交換のための準備作業を開始する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−２６７０５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ソフトウェアミラーリングの機能を提供する仮想ボリューム管理ドライバは、ミラーリングボリュームの使用者としての上位層とは、独立して配置される。つまり、ボリュームの使用者側では、データ配置状況を把握することができない。そのため、ミラーコピー配置ディスクの故障時における復旧に際しては、故障ディスクの交換後に正常側ディスクからの全データ同期による復旧が必要となる。
【００１３】
しかし、正常側ディスク上に潜在的な欠陥セクタが存在している場合、データ読み込みができず、ミラー同期による復旧は不可となる。したがって、バックアップデータからの全復旧が必要となるので、システム停止時間は長期化する。また、昨今、ディスクの大容量化に伴い、本問題の発生確率は上昇傾向にある。
【００１４】
そこで、本発明の目的は、バックアップデータからの全復旧となる機会を減少させることにより、システム停止時間の短縮化を達成し得るミラーリング復旧装置等を提供することにある。
【課題を解決するための手段】
【００１５】
本発明に係るミラーリング復旧装置は、
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合に動作するミラーリング復旧装置であって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段と、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させる使用中処理手段と、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる未使用処理手段と、
を備えたことを特徴とする。
【００１６】
本発明に係るミラーリングシステムは、
前記第一のディスクと前記第二のディスクとを有するストレージ装置と、
上位層が発行した前記論理ＩＯ要求を物理ＩＯ要求に変換して前記ストレージ装置へ出力するドライバと、
前記ストレージ装置に対してミラーリングの復旧処理を実行するミラーリング復旧機構と、
このミラーリング復旧機構の機能の一部として動作する本発明に係るミラーリング復旧装置と、
を備えたことを特徴とする。
【００１７】
本発明に係るミラーリング復旧方法は、
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合におけるミラーリング復旧方法であって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定し、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させ、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる、
ことを特徴とする。
【００１８】
本発明に係るミラーリング復旧プログラムは、
交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、当該第二のディスクにエラーが発生した場合に動作するミラーリング復旧プログラムであって、
前記エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段、
前記エラーブロックが使用中であると判定されたときに、当該エラーブロックの使用を停止させる使用中処理手段、及び、
前記エラーブロックが未使用であると判定されたときに、当該エラーブロックにヌルデータを書き込んで前記ミラー同期を継続させる未使用処理手段、
としてコンピュータを機能させるためのものである。
【発明の効果】
【００１９】
本発明によれば、交換された新規の第一のディスクへ既存の第二のディスクのデータをコピーするミラー同期中に、第二のディスクにエラーが発生した場合でも、エラーブロックが未使用であればエラーブロックにヌルデータを書き込んでミラー同期を継続させることにより、バックアップデータからの全復旧となる機会を減少できるので、システム停止時間の短縮化を達成できる。
【図面の簡単な説明】
【００２０】
【図１】実施形態１のミラーリング復旧装置を示すブロック図である。
【図２】実施形態１のミラーリングシステムを示すブロック図である。
【図３】実施形態１のミラーリング復旧方法を示すフローチャートである。
【図４】実施形態１のミラーリング復旧プログラムに関するハードウェア構成を示すブロック図である。
【図５】実施形態２のミラーリング復旧装置を示すブロック図である。
【図６】実施形態２のミラーリングシステムを示すブロック図である。
【図７】実施形態２のミラーリング復旧装置の動作を示すフローチャートである。
【図８】実施形態２におけるエラーブロック判定テーブルの内容を示す図表である。
【図９】関連技術の構成を示すブロック図である。
【図１０】関連技術の動作を示すフローチャートである。
【発明を実施するための形態】
【００２１】
図１は、実施形態１のミラーリング復旧装置を示すブロック図である。図２は、実施形態１のミラーリングシステムを示すブロック図である。以下、図１及び図２に基づき説明する。
【００２２】
本実施形態１のミラーリング復旧装置１０は、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合に動作するものである。そして、ミラーリング復旧装置１０は、エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段１１と、エラーブロックが使用中であると判定されたときに、そのエラーブロックの使用を停止させる使用中処理手段１２と、エラーブロックが未使用であると判定されたときに、そのエラーブロックにヌルデータを書き込んでミラー同期を継続させる未使用処理手段１３と、を備えたことを特徴とする。
【００２３】
本実施形態１のミラーリングシステム２０は、第一のディスクＰＶ１と第二のディスクＰＶ２とを有するストレージ装置２２と、上位層２１から発行された論理ＩＯ要求を物理ＩＯ要求に変換してストレージ装置２２へ出力するドライバ２３と、ストレージ装置２２に対してミラーリングの復旧処理を実行するミラーリング復旧機構２４と、ミラーリング復旧機構２４の機能の一部として動作する本実施形態１のミラーリング復旧装置１０と、を備えている。ドライバ２３は、論理ＩＯ要求を物理ＩＯ要求に変換する機能を持つ仮想ボリューム管理ドライバ２５と、その物理ＩＯ要求を発行するディスク／カードドライバ２６とを有する。また、ミラーリング復旧装置１０は、ミラーリング復旧機構２４の機能の一部として動作すればよいので、必ずしもミラーリング復旧機構２４内に設ける必要はなく、上位層２１内に設けてもよいし、独立させて設けてもよい。
【００２４】
図３は、実施形態１のミラーリング復旧方法を示すフローチャートである。以下、図１、図２及び図３に基づき説明する。
【００２５】
本実施形態１のミラーリング復旧方法は、ミラーリング復旧装置１０の動作として実現されている。すなわち、本実施形態１のミラーリング復旧方法は、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合（ステップ３０）におけるミラーリング復旧方法であって、次のステップを有する。エラーが発生したブロックであるエラーブロックに対して、使用中又は未使用を判定する（ステップ３１）。エラーブロックが使用中であると判定されたときに、そのエラーブロックの使用を停止させる（ステップ３２）。エラーブロックが未使用であると判定されたときに、そのエラーブロックにヌルデータを書き込んでミラー同期を継続させる（ステップ３３，３４）。
【００２６】
図４は、実施形態１のミラーリング復旧プログラムに関するハードウェア構成を示すブロック図である。以下、図１、図２及び図４に基づき説明する。
【００２７】
本実施形態１のミラーリング復旧プログラムは、ミラーリング復旧装置１０の各手段と（図１）してコンピュータ４０を機能させるためのものである。すなわち、本実施形態１のミラーリング復旧プログラムは、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合に動作するミラーリング復旧プログラムである。そして、本実施形態１のミラーリング復旧プログラムは、エラーが発生したブロックであるエラーブロックに対して使用中又は未使用を判定する使用状況判定手段１１、エラーブロックが使用中であると判定されたときに、そのエラーブロックの使用を停止させる使用中処理手段１２、及び、エラーブロックが未使用であると判定されたときに、そのエラーブロックにヌルデータを書き込んでミラー同期を継続させる未使用処理手段１３、としてコンピュータ４０を機能させるためのものである。
【００２８】
コンピュータ４０は、ＣＰＵ４１、ＲＡＭ４２、ＲＯＭ４３、入出力インタフェース４４等から成る一般的なものである。本実施形態１のミラーリング復旧プログラムはＲＡＭ４２又はＲＯＭ４３に格納されており、ＣＰＵ４１がＲＡＭ４２又はＲＯＭ４３から当該ミラーリング復旧プログラムを読み出して、解釈し、実行する。
【００２９】
本実施形態１によれば、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合でも、エラーブロックが未使用であればエラーブロックにヌルデータを書き込んでミラー同期を継続させることにより、バックアップデータからの全復旧となる機会を減少できるので、システム停止時間の短縮化を達成できる。その他の詳細については、次の実施形態２と同様である。
【００３０】
図５は、実施形態２のミラーリング復旧装置を示すブロック図である。図６は、実施形態２のミラーリングシステムを示すブロック図である。以下、図５及び図６に基づき説明する。
【００３１】
本実施形態２のミラーリング復旧装置５０は、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合に動作するものである。そして、ミラーリング復旧装置５０は、第二のディスクＰＶ２を構成する各ブロックに対応してＡＰＩを指定したエラーブロック判定テーブル５１と、エラーが発生したブロックであるエラーブロックに対応するＡＰＩを、エラーブロック判定テーブル５１に基づいて選択するＡＰＩ選択手段５２と、ＡＰＩ選択手段５２によって選択されたＡＰＩを用いてエラーブロックの使用中又は未使用を判定する使用状況判定手段５３と、使用状況判定手段５３によってエラーブロックが使用中であると判定されると、ＡＰＩ選択手段５２によって選択されたＡＰＩを用いて、エラーブロックの使用を停止させる使用中処理手段５４と、使用状況判定手段５３によってエラーブロックが未使用であると判定されると、ＡＰＩ選択手段５２によって選択されたＡＰＩを用いて、エラーブロックにヌルデータを書き込んでミラー同期を継続させる未使用処理手段５５と、を備えている。
【００３２】
ＡＰＩ選択手段５２によって選択されたＡＰＩには、ブロックの使用有無及び影響度を出力する機能を有するブロック判定ＡＰＩ６１と、ブロックを予約して当該ブロックに対する上位層７１のアクセスを抑制する機能を有するブロック予約ＡＰＩ６２と、ブロック予約ＡＰＩ６２による前記アクセスの抑制を解除する機能を有するブロック解放ＡＰＩ６３と、ブロックを含む論理ボリュームに対する上位層７１による使用を強制的に停止する機能を有するボリューム使用停止ＡＰＩ６４とを含む。
【００３３】
使用状況判定手段５３は、ブロック判定ＡＰＩ６１を用いて、エラーブロックの使用中又は未使用を判定する。使用中処理手段５４は、ボリューム使用停止ＡＰＩ６４を用いて、エラーブロックの使用を停止させる。未使用処理手段５５は、ブロック予約ＡＰＩ６２を用いてエラーブロックに対する上位層７１のアクセスを抑制して、エラーブロックにヌルデータを書き込み、ブロック解放ＡＰＩ６３を用いてエラーブロックに対する上位層７１のアクセスの抑制を解放して、ミラー同期を継続させる。
【００３４】
本実施形態２のミラーリングシステム７０は、第一のディスクＰＶ１と第二のディスクＰＶ２とを有するストレージ装置２２と、上位層７１から発行された論理ＩＯ要求を物理ＩＯ要求に変換してストレージ装置２２へ出力するドライバ２３と、ストレージ装置２２に対してミラーリングの復旧処理を実行するミラーリング復旧機構７４と、ミラーリング復旧機構７４の機能の一部として動作する本実施形態２のミラーリング復旧装置５０と、を備えている。また、ミラーリング復旧装置５０は、ミラーリング復旧機構７４の機能の一部として動作すればよいので、必ずしもミラーリング復旧機構７４内に設ける必要はなく、上位層７１内に設けてもよいし、独立させて設けてもよい。
【００３５】
上位層７１は、ファイルシステム、データベースシステムなどを有する。ＡＰＩ（Application Program Interface）とは、アプリケーションからＯＳの用意した各機能を呼び出すための仕組みをいう。ＡＰＩはＯＳごとに異なっているが、一般にＡＰＩは広く公開されているため、それを利用してアプリケーションを効率的に開発できる。ディスクＰＶ１，ＰＶ２は物理ボリュームである。ディスクＰＶ１，ＰＶ２はそれぞれ複数の論理ボリュームから成り、各論理ボリュームは複数のブロックから成る。
【００３６】
図７は、図５におけるエラーブロック判定テーブルの内容を示す図表である。以下、図５、図６及び図７に基づき説明する。
【００３７】
エラーブロック判定テーブル５１において、各エントリの並び順で決まるエントリ番号は、そのまま論理ボリュームの番号を表すようになっている。論理ボリュームの番号がデバイス番号６０であり、デバイス番号６０毎に、ブロック判定ＡＰＩ６１、ブロック予約ＡＰＩ６２、ブロック解放ＡＰＩ６３及びボリューム使用停止ＡＰＩ６４が指定されている。ブロック判定ＡＰＩ６１、ブロック予約ＡＰＩ６２、ブロック解放ＡＰＩ６３及びボリューム使用停止ＡＰＩ６４は、ファイルシステムとデータベースシステムとで異なっている。
【００３８】
本実施形態２によれば、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合でも、エラーブロックが未使用であればエラーブロックにヌルデータを書き込んでミラー同期を継続させることにより、バックアップデータからの全復旧となる機会を減少できるので、システム停止時間の短縮化を達成できる。その他の詳細については、前述の実施形態１と同様である。
【００３９】
次に、実施形態２のミラーリング復旧装置及びミラーリングシステムについて、更に詳しく説明する。ミラーリング復旧装置５０については、ミラーリング復旧機構７４の機能の一部として説明する。
【００４０】
本実施形態２では、ミラーリングボリューム使用者の階層でデバイス番号６０とエラー発生ブロック（ボリュームの先頭からの論理アドレス）を入力とし、下記の機能を有するＡＰＩを実装しておくことで、仮想ボリューム管理ドライバ２５側では上位層７１を意識せずにその障害状態を把握し、ミラー同期の再開又はボリューム使用停止を実現する。
【００４１】
ブロック判定ＡＰＩ６１：欠陥セクタ発生ブロックの使用有無と影響度を出力する機能
ブロック予約ＡＰＩ６２：特定のブロックを使用者側で予約しアクセスを抑制する機能
ブロック解放ＡＰＩ６３：ブロック予約ＡＰＩ６２によるアクセス抑制を解除する機能
ボリューム使用停止ＡＰＩ６４：ボリューム使用側でボリュームの使用を強制的に停止する機能
【００４２】
以下、解決手段の説明を行う。ボリューム使用者は、ボリュームの使用開始前に下記情報をエラーブロック判定テーブル５１に記録する。
１．使用するデバイス番号６０
２．ブロック判定ＡＰＩ６１
３．ブロック予約ＡＰＩ６２
４．ブロック解放ＡＰＩ６３
５．ボリューム使用停止ＡＰＩ６４
【００４３】
システム運用中にミラーリングボリュームが配置されているディスクＰＶ１の故障が発生すると、ディスクＰＶ１へのアクセスにおいて仮想ボリューム管理ドライバ２５側で全てのデータが「古い」とマークされ、ボリューム使用者側からのアクセスを全て抑制する。
【００４４】
その後、ディスクＰＶ１のハードウェア交換後に、ユーザは手動によって、ミラーリング復旧機構７４から仮想ボリューム管理ドライバ２５側へ、論理デバイス名（デバイス番号６０）を引数としてミラー同期命令を発行する。仮想ボリューム管理ドライバ２５側では、指定された論理デバイス（デバイス番号６０）に対し、ディスクＰＶ２のデータを読み込み、そのデータをディスクＰＶ１側へと書き込むことで、データ同期＝ミラーリングによる冗長化回復を行う。ディスクＰＶ１上のデータ同期完了ブロックについては、「古い」から「新しい」とマークされ、アクセス抑制は解除される。
【００４５】
ここで、ディスクＰＶ２側からのデータ読み込み中に、ディスクＰＶ２側で欠陥セクタが検出され、MediaError（Check Condition で Sense Key 0x03）が発生したとする。この場合、仮想ボリューム管理ドライバ２５は、ミラーリング復旧機構７４にエラー発生を通知する。この際、エラー発生ブロック番号とともにエラーを返却する。
【００４６】
ミラーリング復旧機構７４は、論理デバイスのデバイス番号６０をキーとして、エラーブロック判定テーブル５１を検索する。エラーブロックを有するデバイス番号６０のエントリとエラーブロック判定テーブル５１のエントリとが一致した場合は、ブロック判定ＡＰＩ６１をコールしそのブロックが使用中であるか否か、また、使用中である場合は、その影響度（問題のあるファイル番号やデータベースレコード番号）を獲得する。・・・（＊１）
【００４７】
未使用である場合、エラーブロック番号を引数にブロック予約ＡＰＩ６１をコールし、使用者側でエラーブロックの使用を禁止し、アクセスを抑制する。ブロック判定ＡＰＩ６１完了からブロック予約ＡＰＩ６２呼び出しの間に、使用者側でエラーブロックが使用中となった場合は、ブロック予約ＡＰＩ６２はその影響度とともにエラーを返却する。・・・（＊２）
【００４８】
（＊１）と（＊２）の場合は、ボリューム使用停止ＡＰＩ６４により、使用者によるボリューム使用を強制的に停止させ、システムログに影響度を通知／出力する。
【００４９】
ブロック予約が成功した場合は、論理ボリューム経由でエラー発生ブロックにヌル（null）データを書き込む（初期化）。仮想ボリューム管理ドライバ２５側では、ディスクＰＶ１、ディスクＰＶ２の何れかに書き込みが成功した場合は、正常完了する。ディスクＰＶ１への書き込みが成功した場合は、仮想ボリューム管理ドライバ２５側でディスクＰＶ１のブロック状態を「古い」から「新しい」に変更する。失敗した場合は、「古い」の状態を維持する。
【００５０】
ディスクＰＶ２への書き込みが失敗した場合は、仮想ボリューム管理ドライバ２５側でディスクＰＶ２のブロック状態を「新しい」から「古い」に変更する。ディスクＰＶ２への書き込みがハードウェアの欠陥セクタ再配置機能により、成功した場合は、仮想ボリューム管理ドライバ２５側でディスクＰＶ２のブロック状態を「新しい」に維持する。
【００５１】
それぞれの書き込み結果のケースは下記の通りである。
【００５２】
ケース１：ディスクＰＶ１，ＰＶ２ともに書き込みが失敗した場合は、エラーブロック番号とディスクＰＶ１，ＰＶ２が故障状態である旨とをシステムログに出力する。エラーブロックは予約状態にあるため、ディスクＰＶ１，ＰＶ２が新規に使用されることは無い。ユーザは、時間的余裕のある保守時間帯で、ディスクＰＶ１，ＰＶ２を新しいものに交換することにより、システム復旧が可能となる。
【００５３】
ケース２：ディスクＰＶ１成功、ディスクＰＶ２失敗の場合は、ディスクＰＶ１「新しい」、ディスクＰＶ２「古い」。
【００５４】
ケース３：ディスクＰＶ１成功、ディスクＰＶ２成功の場合は、ディスクＰＶ１「新しい」、ディスクＰＶ２「新しい」。
【００５５】
ケース４：ディスクＰＶ１失敗、ディスクＰＶ２成功の場合は、ディスクＰＶ１「古い」、ディスクＰＶ２「新しい」となる。
【００５６】
ケース２，３，４は、いずれも初期化には成功しているため、アクセスが可能な状態にある。その後、ミラーリング復旧機構７４は、デバイス番号６０及びエラーブロック番号を引数にブロック解放ＡＰＩ６３をコールし、アクセス抑制を解除し、ミラー同期再開を仮想ボリューム管理ドライバ２５側へと要求する。
【００５７】
次に、実施形態２の構成について図面を参照して詳細に説明する。
【００５８】
図６を参照すると本実施形態２は、論理ＩＯ要求を発行するファイルシステムとデータベースシステムを有する上位層７１、論理ＩＯ要求を物理ＩＯ要求に変換する機能を持つ仮想ボリューム管理ドライバ２５と、物理ＩＯ要求を発行するディスク／カードドライバ２６と、ストレージ装置２２（ディスクＰＶ１とディスクＰＶ２）、及びミラーリングの復旧処理を実行するミラーリング復旧機構７４より構成されている。
【００５９】
ミラーリング復旧機構７４は、ディスクＰＶ１を交換後に仮想ボリューム管理ドライバ２５に対してデータ同期指示を行う機能１（データ同期指示）と、その指示に対してエラーを受け取り処理する機能２（エラー）、ファイルシステム及びデータベースシステムに対してエラーブロックの使用用途を問い合わせる機能３（エラーブロックの使用用途を問い合わせ）、同期再開を指示する機能４（同期再開指示）とを有する。また、ミラーリング復旧機構７４では、機能３及び機能４を実行する際に、図７のエラーブロック判定テーブル５１を参照し実行する。
【００６０】
図８は、実施形態２のミラーリング復旧装置の動作を示すフローチャートである。以下、図５、図６、図７及び図８に基づき説明する。実施形態２のミラーリング復旧装置の動作を説明する。ただし、ミラーリング復旧装置５０については、ミラーリング復旧機構７４の機能の一部として説明する。
【００６１】
まず、図６に示すように、ミラーリング復旧機構７４は、ディスク交換後に機能１（データ同期指示）によるコマンドを、仮想ボリューム管理ドライバ２５に発行する。仮想ボリューム管理ドライバ２５は、ディスク／カードドライバ２６を通してミラー同期を実行する。ミラー同期では未交換側ディスク（ディスクＰＶ２）からデータを読み込み、そのデータを交換側ディスク（ディスクＰＶ１）へ書き込む。この際、ディスクＰＶ２側でもエラーが発生した場合、仮想ボリューム管理ドライバ２５は、ミラーリング復旧機構７４に対してエラーブロック情報を返却する（ステップＡ１）。
【００６２】
ミラーリング復旧機構７４は、図７のエラーブロック判定テーブル５１においてエラー発生デバイスをキーに一致するエントリを検索する（ステップＡ２）。その後、エントリ中の情報をもとにエラーブロック番号を引数としてブロック判定ＡＰＩ６１をコールする（ステップＡ３）。エラーブロックが使用されている場合は、ボリューム使用停止ＡＰＩ６４を実行し、エラーブロックの使用種別（影響範囲）をシステムログに出力して終了する（ステップＡ４→Ａ９→Ａ１０）。
【００６３】
エラーブロックが使用されていない場合、エラーブロック判定テーブル５１に登録されているブロック予約ＡＰＩ６１を実行する（ステップＡ４→Ａ５）。
【００６４】
ブロック判定ＡＰＩ６１の実行時点では未使用領域であったが現時点で使用されており、ブロック予約が不可能な場合、すなわちエラーブロックが使用されている場合は、ボリューム使用停止ＡＰＩ６４を実行し、エラーブロックの使用種別（影響範囲）をシステムログに出力して終了する（ステップＡ６→Ａ９→Ａ１０）。
【００６５】
一方、予約に成功した場合は論理ボリューム経由（仮想ボリューム管理ドライバ２５経由）で、エラー発生ブロックにヌルデータを書き込む（ステップＡ６→Ａ７）。書き込みに失敗した場合は、ソフトミラーリングされている両方のディスク（ディスクＰＶ１，ＰＶ２）で障害が発生した旨、及びエラーブロック情報をシステムログに出力して終了する（ステップＡ１１→Ａ１２）。
【００６６】
書き込みが成功した場合、仮想ボリューム管理ドライバ２５側でブロック状態を適切に変更する（ステップＡ８）。なお、状態遷移のパターンは、先に記した書き込み結果のケース分類となる。その後、エラーブロック判定テーブル５１に登録されているブロック解放ＡＰＩ６３をコールし、ミラーリング復旧機構７４から仮想ボリューム管理ドライバ２５に対してミラー再開を指示する（ステップＡ１３→Ａ１４）。ミラー同期処理中に再度エラーが発生した場合は、ステップＡ１の処理を再度行う。
【００６７】
次に、実施形態２のミラーリング復旧方法について、図５乃至図８に基づき説明する。
【００６８】
本実施形態２のミラーリング復旧方法は、ミラーリング復旧装置５０の動作として実現されている。すなわち、本実施形態２のミラーリング復旧方法は、交換された新規の第一のディスクＰＶ１へ既存の第二のディスクＰＶ２のデータをコピーするミラー同期中に、第二のディスクＰＶ２にエラーが発生した場合（図８ステップＡ１）におけるミラーリング復旧方法であって、次のステップを含む。第二のディスクＰＶ２を構成する各ブロックに対応してＡＰＩを指定したエラーブロック判定テーブル５１に基づいて、エラーが発生したブロックであるエラーブロックに対応するＡＰＩを選択する（図８ステップＡ２）。選択されたＡＰＩを用いてエラーブロックの使用中又は未使用を判定する（図８ステップＡ３，Ａ４）。エラーブロックが使用中であると判定されると、ＡＰＩ選択手段５２によって選択されたＡＰＩを用いて、エラーブロックの使用を停止させる（図８ステップＡ９，Ａ１０）。エラーブロックが未使用であると判定されると、ＡＰＩ選択手段５２によって選択されたＡＰＩを用いて、エラーブロックにヌルデータを書き込んでミラー同期を継続させる（図８ステップＡ５，Ａ７，Ａ１３，Ａ１４）。
【００６９】
図７に示すように、ＡＰＩには、ブロックの使用有無及び影響度を出力する機能を有するブロック判定ＡＰＩ６１と、ブロックを予約して当該ブロックに対する上位層７１のアクセスを抑制する機能を有するブロック予約ＡＰＩ６２と、ブロック予約ＡＰＩ６２による前記アクセスの抑制を解除する機能を有するブロック解放ＡＰＩ６３と、ブロックを含む論理ボリュームに対する上位層７１による使用を強制的に停止する機能を有するボリューム使用停止ＡＰＩ６４とを含む。
【００７０】
このとき、ブロック判定ＡＰＩ６１を用いて、エラーブロックの使用中又は未使用を判定する（図８ステップＡ３，Ａ４）。ボリューム使用停止ＡＰＩ６４を用いて、エラーブロックの使用を停止させる（図８ステップＡ９）。ブロック予約ＡＰＩ６２を用いてエラーブロックに対する上位層７１のアクセスを抑制して（図８ステップＡ５）、エラーブロックにヌルデータを書き込み（図８ステップＡ７）、ブロック解放ＡＰＩ６３を用いてエラーブロックに対する上位層７１のアクセスの抑制を解放して（図８ステップＡ１３）、ミラー同期を継続させる（図８ステップＡ１４）。
【００７１】
次に、実施形態２のミラーリング復旧プログラムについて、図４及び図５に基づき説明する。
【００７２】
本実施形態２のミラーリング復旧プログラムは、ミラーリング復旧装置５０の各手段（図５）としてコンピュータ４０（図４）を機能させるためのものである。各手段（図５）については、ミラーリング復旧装置５０の説明で述べたとおりである。
【００７３】
換言すると、本発明では、関連技術において全復旧が必要なケースにおいても、ボリューム使用者側にエラーブロック中に有効なデータが配置されているか否かを確認し、エラーブロックが未使用の場合は仮想ボリューム管理ドライバ側でデータ同期復旧を継続することにより、復旧確率を向上させる。また、データが配置されている場合でもデータ種別により影響範囲を明確化し、システムログへと出力することで、ユーザによる手動でのシステム復旧の目安とする。
【００７４】
本発明によれば、ソフトミラーリング環境でミラーコピーが配置されているディスクの片系障害発生からソフトミラーの冗長化確保が完全に完了するまでの間に、他系側ディスク故障が発生した場合でも、復旧作業を継続可能とする。これにより、関連技術において両系同時故障とみなされてシステム停止後の全復旧が必要なケースであっても（オフライン交換が必須であっても）、オンラインでの復旧を可能とすることにより、システム運用の継続性を高める。
【００７５】
以上、上記各実施形態を参照して本発明を説明したが、本発明は上記各実施形態に限定されるものではない。本発明の構成や詳細については、当業者が理解し得るさまざまな変更を加えることができる。また、本発明には、上記各実施形態の構成の一部又は全部を相互に適宜組み合わせたものも含まれる。
【産業上の利用可能性】
【００７６】
本発明は、ソフトウェアミラーリング環境においてディスク障害によるディスク交換後の復旧に関する技術に利用可能である。
【符号の説明】
【００７７】
１０  ミラーリング復旧装置
１１  使用状況判定手段
１２  使用中処理手段
１３  未使用処理手段
２０  ミラーリングシステム
２１  上位層
２２  ストレージ装置
ＰＶ１  第一のディスク
ＰＶ２  第二のディスク
２３  ドライバ
２４  ミラーリング復旧機構
２５  仮想ボリューム管理ドライバ
２６  ディスク／カードドライバ
４０  コンピュータ
４１  ＣＰＵ
４２  ＲＡＭ
４３  ＲＯＭ
４４  入出力インタフェース
５０  ミラーリング復旧装置
５１  エラーブロック判定テーブル
５２  ＡＰＩ選択手段
５３  使用状況判定手段
５４  使用中処理手段
５５  未使用処理手段
６０  デバイス番号
６１  ブロック判定ＡＰＩ
６２  ブロック予約ＡＰＩ
６３  ブロック解放ＡＰＩ
６４  ボリューム使用停止ＡＰＩ
７０  ミラーリングシステム
７１  上位層
７４  ミラーリング復旧機構
１０１  ソフトウェアミラーリング障害監視・復旧システム
１０２  ディスク装置
１１１  ミラーリング状態監視部
１１２  ディスクエラーチェック部
１１３  ディスクフォーマット処理部
１１４  ミラーリング再同期処理部
１１５  処理結果報告部
１２１  ディスク装置
１２２  ディスク装置
【図１】
2010244241.tif 000003
【図２】
2010244241.tif 000004
【図３】
2010244241.tif 000005
【図４】
2010244241.tif 000006
【図５】
2010244241.tif 000007
【図６】
2010244241.tif 000008
【図７】
2010244241.tif 000009
【図８】
2010244241.tif 000010
【図９】
2010244241.tif 000011
【図１０】
2010244241.tif 000012