ミラーリング制御装置、ストレージ装置、ミラーリング制御方法
【課題】 ディスクのミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合でも、上位層に対し動作継続が可能となるディスクミラーリング制御装置を提供する。
【解決手段】 等価状態にするためコピー元ディスクからコピー先ディスクへデータをコピーするコピー制御部2と、コピー制御部2によるコピー処理中に、上位層からコピー元ディスクへのリード要求が発生した場合、リード要求に対応する領域のデータをコピー先ディスクへコピーするI/Oミラーリング制御部1と、を備え、またコピー制御部2は、コピー処理中上位層からのコピー元ディスクへのリード要求がリードエラーである場合、コピー元ディスクを切り離し、またコピー先ディスクを動作ディスクとなるよう制御することを特徴とするミラーリング制御装置を提供する。
【解決手段】 等価状態にするためコピー元ディスクからコピー先ディスクへデータをコピーするコピー制御部2と、コピー制御部2によるコピー処理中に、上位層からコピー元ディスクへのリード要求が発生した場合、リード要求に対応する領域のデータをコピー先ディスクへコピーするI/Oミラーリング制御部1と、を備え、またコピー制御部2は、コピー処理中上位層からのコピー元ディスクへのリード要求がリードエラーである場合、コピー元ディスクを切り離し、またコピー先ディスクを動作ディスクとなるよう制御することを特徴とするミラーリング制御装置を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
磁気ディスク装置のミラーリング(ソフトウェアRAID)機能を用いた、ディスク冗長化によるデータ保全を可能にするミラーリング制御装置、ストレージ装置、ミラーリング制御方法に関する。
【背景技術】
【0002】
複数の磁気ディスク装置を冗長化させるミラーリング(ソフトウェアRAID)技術を用いることで、ディスク冗長化によるデータ保全、コンピュータシステムの高信頼化および可用性向上を図るためのミラーリング制御装置がある。
【0003】
図12に、システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す。
【0004】
まず、正常稼動の状態では、両系のディスクは共にACTIVEの状態であるため、上位層のアプリケーションソフトウェアからのリード/ライトは両方のディスクになされる(図12(A)参照)。ここで、両系のディスクが共に正常であるときに、例えばディスク以外の他の要因でシステムがダウンし、システム再起動が行われた際、片系のディスク(以下、コピー元ディスク)から他のディスク(以下、コピー先ディスク)へ、ミラーリング状態を復旧するためデータコピーが行われる(図12(B)参照)。尚、このデータコピー中は上位層のアプリケーションソフトウェアからのリードはコピー元ディスクから行われ、上位層のアプリケーションソフトウェアからのライトは両方のディスクに行われる。
【0005】
データコピー処理中にコピー元ディスクでエラーが発生した場合、コピー処理が中止される(図12(C)参照)。また、このとき従来のミラーリング制御装置は、コピー先ディスクはコピーが完了しておらず、内容が保証できないためコピー先ディスクをミラーリングから切り離すよう制御する。この結果、コピー元ディスクのみが動作ディスクとなり、上位サーバからのリード/ライトの処理もコピー元ディスクのみで行われる(図12(D)参照)。
【0006】
また、本発明と関連のある技術として、以下の文献が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−259519号公報
【特許文献2】特開平7−134635号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来のミラーリング制御装置の動作において、ディスクのミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクはエラーが発生した状態となり、コピー先ディスクはデータが保証できない状態になる。このように従来のミラーリング制御装置は、コピー処理開始前ではコピー先ディスクはアクセス可能かつデータ保証される状態であったにもかかわらず、コピー処理中にコピー元ディスクでエラーが発生すると、コピー先ディスクも使用できなくなり、データ保証も動作継続もできなくなるという問題がある。
【0009】
このような状態に陥ってしまった場合の復旧は、エラーが発生したディスクの交換と、以前にテープなどに取っておいたバックアップデータのリストアが必要になる。よって復旧するまでの時間は業務運用を停止しなければならず、またテープにバックアップしたデータ状態とコピー元ディスクでエラーが発生したときのデータ状態との差分データは消失する。
【0010】
本発明は上述した問題点を解決するためになされたものであり、ミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生した場合でもデータ保証と動作継続を実現するミラーリング制御装置、ストレージ装置、ミラーリング制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
ミラーリング制御装置は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【0012】
また、ストレージ装置は、複数の記憶装置と、前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、該ミラーリング制御装置は、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【0013】
ミラーリング制御方法は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、前記等価状態にするためのコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーし、さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【発明の効果】
【0014】
記憶装置のミラーリング状態を復旧するためのデータコピー処理中にコピー元記憶装置でエラーが発生した場合でも、コピー先記憶装置のデータが保証され、上位層に対する動作継続が可能となる。これにより、ミラーリング状態を復旧するためのデータコピー処理中に生じた記憶装置の不具合に対するシステムの耐性および可用性が向上する。
【図面の簡単な説明】
【0015】
【図1】本実施の形態に係るストレージ装置の機能ブロックの一例を示す図である。
【図2】本実施の形態に係るディスクミラーリング制御装置の動作の一例を示す図である。
【図3】本実施の形態に係るミラーディスク構成管理テーブルのデータ構造の一例を示す図である。
【図4】本実施の形態に係るコピー管理テーブルと更新領域管理テーブルのデータ構造、およびコピー管理テーブル、更新領域管理テーブルの各テーブル内のビットとミラーディスクの領域との対応関係の一例を示す図である。
【図5】本実施の形態に係る復旧コピー処理実行中におけるリード処理の一例を示すフローチャートである。
【図6】本実施の形態に係る復旧コピー処理実行中のライト処理の一例を示すフローチャートである。
【図7】本実施の形態に係る復旧コピー処理の一例を示すフローチャート(その1)である。
【図8】本実施の形態に係る復旧コピー処理の一例を示すフローチャート(その2)である。
【図9】本実施の形態に係る動作ディスクの変更処理の一例を示すフローチャートである。
【図10】本実施の形態に係るコピー先ディスクへのコピー処理の一例を示すフローチャートである。
【図11】本実施の形態に係るディスクミラーリング制御装置のハードウェア構成の一例を示す図である。
【図12】本実施の形態に係る、図1で示した構成の変形例を示す図である。
【図13】システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す図である。
【発明を実施するための形態】
【0016】
図1に、本実施の形態に係るストレージ装置の構成を示す。ストレージ装置500は、ディスクミラーリング制御装置100(ミラーリング制御装置)、データ保持部200を備える。
【0017】
ディスクミラーリング制御装置100は、I/Oミラーリング制御部1、コピー制御部2、ミラーディスク構成管理部3、クラスタ通信制御部4を備える。また、管理データを格納するユニットとして、ディスクミラーリング制御装置100は、ミラーディスク構成管理テーブル10、更新領域管理テーブル11、コピー管理テーブル12を備える。
【0018】
また、データ保持部200は、制御対象の磁気ディスク装置(記憶装置)の集合であり、ミラーリング状態となっている少なくとも2つの磁気ディスク装置であるミラーディスク21、および管理情報のデータを保持する磁気ディスク装置である管理情報用ディスク22を備える。尚、管理情報用ディスク22には、管理情報を保持するユニットであるミラーディスク構成管理テーブル23、更新領域管理テーブル24を備える。
【0019】
尚、データ保持部200は、クラスタシステムの場合、クラスタシステムを構成する複数のシステムのディスクミラーリング制御装置からアクセスされる。
【0020】
ここで、ディスクミラーリング制御装置100内の各機能ブロックについて説明する。
【0021】
I/Oミラーリング制御部1は、ホストコンピュータで動作するアプリケーションソフトウェア300(上位層)から発行されるディスクへのI/O要求を複製し、複数のミラーディスク21に発行することで、ディスクミラーリングを実現する。
【0022】
また、コピー制御部2がシステムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、I/Oミラーリング制御部1は、アプリケーションソフトウェア300からの要求がリード要求である場合、コピー元ディスク内のリード要求に対応する領域に保持されているデータをコピー先ディスクへコピーする。
【0023】
また、I/Oミラーリング制御部1は、さらに、アプリケーションプログラム300からリード要求された領域のデータをコピー先ディスクへコピーするときに行うその領域へのリード処理でエラーが発生した場合、コピー元ディスクを切り離し(使用不可)の状態となるよう制御し、またコピー先ディスクをアプリケーションソフトウェア300からのリード要求およびライト要求に対する処理を行う動作ディスクとなるよう制御する。
【0024】
コピー制御部2は、何らかの不測のトラブルによってシステムがダウンした後、ミラーディスク21間でデータコピー処理を行い、ミラーディスク21のミラーリング状態を復旧する。すなわちコピー制御部2は、複数のミラーディスク21同士のデータを等価状態にするために、複数のミラーディスク21のうちから1つをコピー元ディスクとして選択し、コピー元ディスク内のデータを、その他のコピー先ディスクへコピーする。
【0025】
またコピー制御部2は、さらに、コピー制御部2によるコピー処理中に、I/Oミラーリング制御部1によって受付けられたリード要求またはライト要求の処理がコピー元ディスクでエラーとなる場合、コピー元ディスクを切り離しの状態となるよう制御し、またコピー先ディスクが動作ディスクになるよう制御する。
【0026】
ミラーディスク構成管理部3は、システム起動時に管理情報用ディスク22からミラーディスク構成管理テーブル23を読み込み、ディスクミラーリング制御装置100内のRAM(尚、ディスクミラーリング制御装置100のハードウェア構成は後述する)にロードすることでミラーディスク構成管理テーブル10を作成し、また更新領域管理テーブル24を読み込み、ディスクミラーリング制御装置100内のRAM上にロードすることで、更新領域管理テーブル11を作成する。また、ミラーディスク構成管理部3は、ミラーディスク21の構成や状態が変化したときに、RAM内のミラーディスク構成管理テーブル10および管理情報用ディスク22内のミラーディスク構成管理テーブル23を更新する。
【0027】
クラスタ通信制御部4は、クラスタシステムの場合に、クラスタシステムを構成する他のシステムと連携して動作するための通信処理を行う。具体的には、待機システムのクラスタ通信制御部4が運用システムのダウンを検出し、ディスクのミラーリング状態を復旧するためのコピー処理の実行を、自己のコピー制御部2に依頼する。また、ミラーディスク21の構成や状態が変化したとき、他のシステムのクラスタ通信制御部4に通知する。
【0028】
ミラーディスク構成管理テーブル10は、ミラーディスク21の構成、状態と、管理情報用ディスク22における更新領域管理テーブル24の位置情報を保持するテーブルであり、ディスクミラーリング制御装置100のRAM上でデータが保持されている。
【0029】
更新領域管理テーブル11は、ミラーディスク21更新中の領域の位置情報を保持するテーブルであり、ディスクミラーリング制御装置100のRAM上でデータが保持されている。
【0030】
コピー管理テーブル12は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中、コピーが必要な領域とコピーが済んだ領域の位置情報を持ち、ディスクミラーリング制御装置100のRAM上で管理される。
【0031】
次に、データ保持部200内について説明する。ミラーディスク21は、アプリケーションソフトウェア300が発行したI/O要求のライトデータの複製を保持する。
【0032】
管理情報用ディスク22は、ミラーディスク構成管理テーブル23と更新領域管理テーブル24を保持する。これらミラーディスク構成管理テーブル23と更新領域管理テーブル24は、ディスクミラーリング制御装置100のRAM上で管理されているミラーディスク構成管理テーブル10、および更新領域管理テーブル11を不揮発性に保持するための複製である。
【0033】
次に、ディスクミラーリング制御装置100の動作内容について説明する。
【0034】
まず、ディスクミラーリング制御装置100は、コピー元ディスクに不具合が発生したときに、代わりにコピー先ディスクを使用できるようにする。その前提として、コピー開始前のコピー元ディスクとコピー先ディスクとではデータが一致しない箇所があるが、どちらのデータも使用できる正当なデータであるものとする。
【0035】
ディスクミラーリング制御装置100は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、コピー元ディスクにリード要求があった場合、まずその領域をコピー先ディスクにコピーしてからリード結果をアプリケーションソフトウェア300へ返す。尚、ディスクミラーリング制御装置100は、コピー済領域/未コピー領域の区別なくコピーする方式と、未コピー領域の場合だけコピーする方式のどちらでも適用可能である。
【0036】
また、システムダウン後、ディスクミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクの方をミラーリングから切り離し、コピー先ディスクを動作ディスクにする。ミラーリングしていたディスクが3つ以上の場合は、複数のコピー先ディスクのうち1つを動作ディスクとし、動作ディスクを新たなコピー元ディスクとして他のコピー先ディスクへのコピー処理を行う。
【0037】
ディスクミラーリング制御装置100の上述の動作内容を、図2に示す。従来の技術では、コピー先ディスクの未コピー領域のデータがコピー元ディスクと一致しない可能性があるため、動作ディスクの変更ができなかった。この問題を、以下の方法で解決する。尚、図2(A)、図2(B)の説明は図12(A)、図12(B)と同様であるため、説明を割愛する。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合で、かつコピー元ディスクのリードが成功した場合、その領域をコピー先ディスクへコピーしてから、リード結果をアプリケーションソフトウェア300に返す(図2(C)参照)。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合で、かつコピー元ディスクのリードが失敗した場合、コピー先ディスクを新たな動作ディスク(かつコピー元ディスク)とし、新たな動作ディスクのリード結果を上位層に返す(図2(D)参照)。
これにより、コピー元ディスクとコピー先ディスクでデータが一致しない可能性がある領域は以下の条件をすべて満たすため、データが一致していなくても問題ない。
・システムダウン発生時にライト処理実行中(ライト未完了)だったため、ライト前のデータであるかライト後のデータであるかどちらであっても良い。
・システムダウン後、まだ一度もリードされていないため、コピー先ディスクのデータがコピー元ディスクと一致している必要がない。
・未コピー領域であるため、コピー先ディスクが複数ある場合は、そのうちの1つを新たな動作ディスク(コピー元ディスク)にした後、残りのコピー先ディスクにデータがコピーされ、コピーが済めばデータが一致する。
なお、上記「コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合」の条件を「未コピー領域に対して上位層からリード要求があった場合」に変更することにより、余計なコピー処理を省くことができる。以下の説明では、この「未コピー領域に対して上位層からリード要求があった場合」をメインに説明する。
【0038】
次に、ミラーディスク構成管理テーブル10のデータ構造を図3を参照しつつ説明する。まず、ミラーディスク構成管理テーブル10のデータフォーマットを図3(A)に示す。
【0039】
更新領域管理テーブル使用フラグは、システム運用中に更新領域管理テーブル11を使用するかどうかを表すフラグであり、「有効」または「無効」のいずれかの値をとる。この値は、ユーザがミラーリングの構成設定を行ったときに指定され、システム運用中に変更もできる。値の意味は以下のとおりである。
・有効 ・・・ システム運用中、I/Oミラーリング制御部1が更新領域管理テーブル11を使用して、ミラーディスク21の更新中領域の位置情報を管理する。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では更新領域管理テーブル11が参照され、更新中領域のみがコピーされる。
・無効 ・・・ システム運用中、更新領域管理テーブル11は使用されない。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では、ディスク全体の領域がコピーされる。
【0040】
更新領域管理テーブルディスク番号は、更新領域管理テーブル24が格納されている管理情報用ディスク22のデバイス番号である。更新領域管理テーブルオフセットは、管理情報用ディスク22上での更新領域管理テーブル24の位置情報(オフセット)である。
【0041】
ミラーディスク数は、ミラーディスク21の数である。
【0042】
ディスクリストは、ミラーディスク構成管理テーブル10内で、各ミラーディスク21の物理ディスク番号とディスク状態の組を保持している部分を指す。物理ディスク番号は、ミラーディスク21のデバイス番号である。ディスク状態は、ミラーディスク21の状態を表し、「ACTIVE」「COPY」「INVALID」のいずれかの値をとる。各値の意味は以下のとおりである。
・ACTIVE ・・・ 動作ディスクであることを示す。ACTIVE状態のミラーディスク21が複数ある場合、それらのディスク内のデータは一致している。アプリケーションソフトウェア300から発行されるI/O要求(リード/ライト)の複製の発行対象になる。また、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ACTIVE状態のミラーディスク21のうち1つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク21がCOPY状態に変更されることで、コピー先ディスクとなる。
・COPY ・・・ コピー先ディスクであることを示す。システムダウン後のディスクミラーリング状態を復旧するためのコピー処理において、ACTIVE状態のミラーディスク21のうち1つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク21がCOPY状態に変更されることで、コピー先ディスクとなる。COPYの値に設定されたミラーディスク21は、唯一のACTIVE状態のディスク(動作ディスク=コピー元ディスク)からデータがコピーされている。またCOPYの値に設定されたミラーディスク21は、アプリケーションソフトウェア300から発行されるライト要求の複製の発行対象になるが、リード要求の対象にはならない。
・INVALID ・・・ ミラーリングから切り離されていることを示す。すなわち、アプリケーションソフトウェア300から発行されたI/O要求(リード/ライト)の複製の発行対象にならない。
【0043】
図3(B)に、上述のデータフォーマットの具体的数値例を示す。図3(B)で示した例では、以下のようになっている。
更新領域管理テーブル = 有効
更新領域管理テーブルディスク番号 = 0x00010000
更新領域管理テーブルオフセット = 0x00002000
ミラーディスク数 = 2
1台目のミラーディスクの物理ディスク番号 = 0x00010001
1台目のミラーディスクのディスク状態 = ACTIVE
2台目のミラーディスクの物理ディスク番号 = 0x00010002
2台目のミラーディスクのディスク状態 = COPY
【0044】
図4に、コピー管理テーブル12と更新領域管理テーブル11のデータ構造を示すとともに、またコピー管理テーブル12、更新領域管理テーブル11の各テーブル内のビットとミラーディスク21の領域の対応関係を示す。本実施の形態では、ミラーディスク21の領域は2MB単位で区切られ(図4(C)参照)、コピー管理テーブル12の各ビットで各領域のコピー状況が管理され、更新領域管理テーブル11の各ビットで各領域が更新中であるかどうかが管理される。
【0045】
コピー管理テーブル12は、0または1のいずれかの値をとる(図4(A)参照)。値0は、ミラーディスク21の該当領域は、ミラーリング状態を復旧するためのコピーが済んでいるか、または、コピーが不要である領域を意味する。値1は、ミラーディスク21の該当領域は、ミラーリング状態を復旧するためのコピーが必要である領域を意味する。コピー管理テーブル12は、システムダウン後、ディスクミラーリング状態を復旧するためのコピー処理開始時に、コピー制御部2によってRAM上に作成され、初期化される。
【0046】
コピー制御部2によるコピー管理テーブル12の初期化方法は以下のとおりである。すなわち、上述の更新領域管理テーブル使用フラグが有効と設定されている場合、コピー制御部2はコピー管理テーブル12に更新領域管理テーブル11をコピーする。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、システムダウン時に更新中だった領域だけがコピーされる。一方、更新領域管理テーブル使用フラグが無効と設定されている場合、コピー制御部2はコピー管理テーブル12の全ビットに1を設定する。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ディスク領域全体がコピーされる。
【0047】
コピー制御部2は、コピー管理テーブル12の先頭から終端まで1のビットに該当するミラーディスク21の領域をコピーし、該当ビットを0に変更する。また、I/Oミラーリング制御部1は、コピー制御部2がコピー処理実行中にアプリケーションソフトウェア300からディスクのリード要求を受理したとき、コピー管理テーブル12内のリード対象領域に対応するビットが1であればリード対象領域をコピーし、該当ビットを0に変更する。
【0048】
更新領域管理テーブル11は、0または1のいずれかの値をとる(図4(B)参照)。値0は、ミラーディスク21の該当領域は、更新中(ライト処理中)ではないことを意味する。値1は、ミラーディスク21の該当領域は、更新中(ライト処理中)であることを意味する。
【0049】
アプリケーションソフトウェア300がデータ保持部200に対しにライト要求を発行したとき、I/Oミラーリング制御部1がミラーディスク21へのライト処理開始時に更新領域管理テーブル11の該当ビットに1を設定し、ライト処理終了時に0を設定する。なお、I/Oミラーリング制御部1は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中である場合、このビットの設定処理を行わない。
【0050】
次に、本実施の形態に係るストレージ装置500の動作について、図5から図10までのフローチャートを参照しつつ説明する。尚、図5から図10のフローチャートにおいて、破線で示した処理は本実施の形態の特徴的な処理である。
【0051】
まず、復旧コピー処理実行中におけるリード処理のフローチャートを図5に示す。図5のフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア300がデータ保持部200に発行したリード要求をI/Oミラーリング制御部1が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクをリードし、成功した場合はアプリケーションソフトウェアにリード結果を返して終了し、一方失敗した場合は全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外としてからアプリケーションソフトウェアにリードエラーを返す。本実施の形態のディスクミラーリング制御装置100は、コピー元ディスクのリードが成功した場合、その領域が未コピー(コピー管理テーブル12の該当ビットが1)であればその領域のコピーを行ってからアプリケーションソフトウェア300にリード結果を返す。コピー元ディスクのリードが失敗した場合、コピー先ディスクのうちの1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、新たな動作ディスクに対してリード要求を発行する。
【0052】
図5のフローチャートに示す各ステップについて説明する。I/Oミラーリング制御部1は、動作ディスク(すなわちコピー元ディスク)をアプリケーションソフトウェア300の要求に基づきリードする(S1)。I/Oミラーリング制御部1は、リードエラーであるかの判定を行い(S2)、エラーでない場合(S2、N)、I/Oミラーリング制御部1は、コピー管理テーブル12内の該当ビットが1かを判定する(S3)。ビットが1である場合(S3、Y)、コピー先ディスクへのコピー処理(後述)が実施される(S4)。
【0053】
I/Oミラーリング制御部1は、コピー管理テーブル12内の該当ビットを0に変更し(S5)、リード結果をアプリケーションソフトウェア300に返す(S6)。尚、S3のビットの判定で、ビットが0である場合(S3、N)、S6の処理が実行される。
【0054】
一方、S2のリードエラーの判定で、I/Oミラーリング制御部1はリードエラーであると判定した場合(S2、Y)、I/Oミラーリング制御部1は、後述する動作ディスクの変更処理を実行する(S7)。ここで、S7の動作ディスクの変更処理がエラーである場合(S8、Y)、I/Oミラーリング制御部1は、リードエラーをアプリケーションソフトウェア300に返す(S9)。尚、S7の動作ディスクの変更処理がエラーでない場合(S8、N)、処理はS1へ戻る。
【0055】
図6に復旧コピー処理実行中のライト処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア300がデータ保持部200に発行したライト要求をI/Oミラーリング制御部1が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクへのライトが失敗した場合、全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外にしてから、アプリケーションソフトウェアにライトエラーを返している。本実施の形態に係るディスクミラーリング制御装置100は、コピー元ディスクのライト処理が失敗した場合、コピー先ディスクのうちの1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、ライト処理を継続する。
【0056】
図6のフローチャートに示す各ステップについて説明する。I/Oミラーリング制御部1は、ディスクミラーリング制御装置100内のRAMに所定のフラグ領域を設け、そのフラグ(以下、このようなフラグを結果フラグと称す。結果フラグは以降のフローチャートの説明でも随時使用されるが、処理ごとに異なる結果フラグが使用されることに留意する)に0を設定する(S10)。ここでI/Oミラーリング制御部1は、ディスクリスト(図3(A)参照)の先頭を参照し(S11)、参照した物理ディスク番号のミラーディスク21が切り離されている状態か(INVALIDか)を判定する(S12)。そのミラーディスク21が切り離されている場合(S12、Y)、S18へと処理は続く。一方ミラーディスク21が切り離されていない場合(S12、N)、I/Oミラーリング制御部1はそのミラーディスク21にデータをライトする(S13)。
【0057】
I/Oミラーリング制御部1は、ライトエラーであるかを判定する(S14)。ライトエラーが発生しない場合(S14、N)、I/Oミラーリング制御部1は結果フラグに1を設定し(S15)、S18へと処理は続く。一方、ライトエラーが発生した場合(S14、Y)、I/Oミラーリング制御部1は、ディスクの状態をディスクリストのディスク状態から確認する(S16)。ここで、ライトエラーが発生したミラーディスク21がコピー先ディスクである場合(S16、コピー先ディスク(COPY))、I/Oミラーリング制御部1は、ディスク状態をINVALIDにすることでディスクの切り離しを行い、S18へと処理は続く。
【0058】
またライトエラーが発生したミラーディスク21がコピー元ディスクである場合(S16、コピー元ディスク=動作ディスク(ACTIVE))、動作ディスクの変更処理が実行される(S22)。動作ディスクの変更処理が正常終了である場合(S23、N)、S18へと処理は続く。一方動作ディスクの変更処理がエラー終了である場合(S23、Y)、I/Oミラーリング制御部1は結果フラグに0を設定し(S24)、S18へと処理は続く。
【0059】
I/Oミラーリング制御部1は、ディスクリストの次のディスクを参照する(S18)。I/Oミラーリング制御部1は、S12からS18までの処理をディスクリストの終端まで繰り返し実施する。
【0060】
S12からS18までのループが完了した後、I/Oミラーリング制御部1は、結果フラグを確認し(S19)、結果フラグが1の場合(S19、Y)、ライト成功をアプリケーションプログラム300に返し(S20)、結果フラグが0の場合(S19、N)、アプリケーションプログラム300にライトエラーを返す(S21)。
【0061】
図7、図8に復旧コピー処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するために実行するコピー処理を示している。
【0062】
従来のディスクミラーリング制御装置は、更新領域管理テーブル使用フラグが有効の場合は、更新領域管理テーブルの1のビットに該当する領域を順番にコピーしている。また、更新領域管理テーブル使用フラグが無効の場合は、ディスク領域全体を先頭から終端まで順番にコピーしている。本実施の形態に係るディスクミラーリング制御装置100は、コピー制御部2の「復旧コピー処理」(図7、図8)のみならず、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と「復旧コピー処理実行中のライト処理」(図6)でもコピー処理を行い、コピー管理テーブル12でコピー状況を管理することにより未コピー領域だけをコピーできるようになる。
【0063】
また、従来のディスクミラーリング制御装置は、コピー処理のためのコピー元ディスクのリードが失敗した場合、全コピー先ディスクをミラーリングから切り離し(状態をINVALIDに変更)、コピー処理を終了している。一方、本実施の形態に係るディスクミラーリング制御装置100は、コピー処理のためのコピー元ディスクのリードが失敗した場合、コピー先ディスクのうち1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、コピー処理を継続する。
【0064】
図7、8のフローチャートに示す各ステップについて説明する。コピー制御部2は、ミラーディスク構成管理テーブル10内のディスクリストで、ACTIVE状態のディスクが複数あるかを確認することで、システムダウン前はミラーリング状態であったかを判定する(S30)。コピー制御部2は、ここでシステムダウン前はミラーリング状態であったと判定した場合(S30、Y)、ACTIVE状態のミラーディスク21のうち1つをコピー元ディスク(ACTIVE)とし、その他残りをコピー先ディスク(COPY)に変更する。尚、コピー制御部2は、ACTIVE状態のミラーディスク21のうちで、ディスクリスト内で最初にエントリされている物理ディスク番号に対応しているミラーディスク21をACTIVE状態とする。一方、S30の判定で、コピー制御部2は、システムダウン前はミラーリング状態でなかったと判定した場合(S30、N)、処理は終了する。
【0065】
次にコピー制御部2は、更新領域管理テーブル使用フラグが有効であるか判定し(S32)、有効である場合(S32、Y)、コピー管理テーブル12に更新領域管理テーブル11をコピーする(S33)。一方、更新領域管理テーブル使用フラグが無効である場合(S32、N)、コピー制御部2は、コピー管理テーブル12のすべてのビットに1を設定する(S34)。次にコピー制御部2は、コピー管理テーブル12の先頭ビットを取得する(S35)。
【0066】
コピー制御部2は、取得したビットが1である場合(S36、Y)、コピー元ディスクの該当領域をリードする(S37)。ここでリードエラーでない場合(S38、N)、コピー制御部2は、コピー先ディスクへのコピー処理を実行する(S39)。コピー制御部2は、S39のコピー処理が成功したか否かを判定する(S40)。ここでS39のコピー処理が失敗である場合(S40、N)、処理は終了する。一方、S39のコピー処理が成功である場合(S40、Y)、コピー制御部2は、コピー処理が成功した領域に対応するコピー管理テーブル12内のビットを0に変更する(S41)。その後、コピー管理テーブルの次のビットを参照し(S42)、ループの先頭であるS36へ戻る。
【0067】
尚、S38でリードエラーが発生していると判定された場合(S38、Y)、コピー制御部2は、動作ディスクの変更処理を実行する(S44)。動作ディスクの変更処理が成功であった場合(S45、N)、コピー制御部2は、処理をS37に戻し、エラーであった場合(S45、Y)、処理は終了する。
【0068】
また、S36で取得したビットの値が0である場合(S36、N)、処理はS42へ進む。
【0069】
コピー制御部2は、S36からS42までの処理をコピー管理テーブル12の終端に達するまで繰り返し、その後、コピー制御部2は、状態をCOPYからACTIVEへ変更することで、全コピー先ディスクを動作ディスクに変更する(S43)。
【0070】
次に、動作ディスクの変更処理を図9を参照しつつ説明する。このフローチャートは、コピー元ディスクの状態を動作ディスク(ACTIVE)から切り離し(INVALIDに変更)、コピー先ディスクのうち、1つのディスクの状態をコピー先ディスク(COPY)から動作ディスク(ACTIVE)に変更する処理を示している。また状態変更が失敗したコピー先ディスクは、ミラーリングから切り離す(状態をINVALIDに変更)。したがって、動作ディスクが変更できなかった場合、すべてのコピー先ディスクがミラーリングから切り離される(状態がINVALIDになる)。
【0071】
この処理は、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と、「復旧コピー処理実行中のライト処理」(図6)、および、コピー制御部2の「復旧コピー処理」(図7、8)において、コピー元ディスクでリード/ライトエラーが発生したときに呼び出される。
【0072】
図9のフローチャートに示す各ステップについて説明する。以下の説明ではS7における動作ディスクの変更処理について説明するが、上述のようにS7以外でもS22、S44でも実行される。尚、以下の説明ではS7を例としているため、各ステップの動作を行う主体をI/Oミラーリング制御部1とするが(S22での処理も同様にI/Oミラーリング制御部1が動作主体)、S44で行われる場合各ステップの動作主体はコピー制御部2となることにも留意する。
【0073】
まずI/Oミラーリング制御部1は、結果フラグに0を設定する(S50)。I/Oミラーリング制御部1は、ディスクリストの先頭のデータ(物理ディスク番号とそのディスク状態のセット)を取得する(S51)。
【0074】
ここで、I/Oミラーリング制御部1は、取得した物理ディスク番号に対応したミラーディスク21の状態がCOPYであるかを確認することで、当該ミラーディスク21がコピー先ディスクであるかを判定する(S52)。当該ミラーディスク21がコピー先ディスクである場合(S52、Y)、I/Oミラーリング制御部1は、当該ミラーディスク21を動作ディスク(すなわちACTIVE状態)に変更し、コピー元ディスクをINVALIDに変更することで切り離す(S53)。ここで、S53の処理が成功である場合(S54、N)、結果フラグに1が設定され(S55)、S53の処理がエラーである場合(S54、Y)、当該ミラーディスク21は切り離される(S56)。
【0075】
I/Oミラーリング制御部1は、ディスクリスト内の次のデータ(物理ディスク番号とそのディスク状態のセット)を取得し(S57)、処理はS52に戻る。
【0076】
I/Oミラーリング制御部1は、S52からS57までの処理をディスクリストの終端に達するまで繰り返す。ただし、S57の後、結果フラグが1である場合、処理はS52には戻らずS58に進む。
【0077】
その後、I/Oミラーリング制御部1は、結果フラグが1である場合(S58、Y)、成功のステータスを処理の呼出し元へ返し(S59)、0である場合(S58、N)、失敗のステータスを処理の呼出し元へ返す(S60)。
【0078】
図10に、コピー先ディスクへのコピー処理のフローチャートを示す。このフローチャートは、指定されたデータを、各コピー先ディスクの指定された領域にコピー(ライト)する処理を示している。コピー(ライト)が失敗したコピー先ディスクは、ミラーリングから切り離される(状態をINVALIDに変更)。1つ以上のコピー先ディスクへのコピー(ライト)が成功した場合は呼出し元に成功を返し、コピー(ライト)が成功したミラーディスク21が1つもない場合は呼出し元に失敗を返す。
【0079】
この処理は、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と、コピー制御部2の「復旧コピー処理」(図7、8)から呼び出される。
【0080】
図10のフローチャートに示す各ステップについて説明する。以下の説明ではS4におけるコピー先ディスクへのコピー処理について説明するが、上述のようにS4以外でもS39でも実行される。尚、以下の説明ではS4での例であるため、各ステップの動作を行う主体をI/Oミラーリング制御部1とするが、S39で行われる場合各ステップの動作主体はコピー制御部2となることにも留意する。
【0081】
I/Oミラーリング制御部1は、結果フラグに0を設定する(S70)。I/Oミラーリング制御部1は、ディスクリストの先頭のデータ(物理ディスク番号とそのディスク状態のセット)を取得する(S71)。
【0082】
ここで、I/Oミラーリング制御部1は、取得した物理ディスク番号に対応したディスクの状態がCOPYであるかを確認することで、当該ミラーディスク21がコピー先ディスクであるかを判定する(S72)。当該ミラーディスク21がコピー先ディスクである場合(S72、Y)、I/Oミラーリング制御部1は、当該ミラーディスク21にデータをライトする(S73)、ここでライトエラーが生じた場合(S74、Y)、I/Oミラーリング制御部1は、ライトエラーが生じたミラーディスク21の状態をINVALIDに変更することで、切り離しを行う(S76)。一方、ライトエラーが生なかった場合(S75、N)、I/Oミラーリング制御部1は、結果フラグに1を設定する(S75)。
【0083】
I/Oミラーリング制御部1は、ディスクリスト内の次のデータ(物理ディスク番号とそのディスク状態のセット)を取得し(S77)、処理はS72に戻る。尚、S72で当該ミラーディスク21がコピー先ディスクでない場合(S72、N)、処理はS77へ進む。
【0084】
I/Oミラーリング制御部1は、S72からS77までの処理をディスクリストの終端に達するまで繰り返す。
【0085】
その後、I/Oミラーリング制御部1は、結果フラグが1である場合(S78、Y)、1つ以上のコピー先ディスクへのコピーが成功した旨の成功ステータスを処理の呼出し元へ返し(S79)、0である場合(S78、N)、コピーが成功したコピー先ディスクが1つもない旨の失敗ステータスを処理の呼出し元へ返す(S80)。
【0086】
ここで、ディスクミラーリング制御装置100のハードウェア構成について図11を参照しつつ説明する。ディスクミラーリング制御装置100は、演算処理装置であるCPU(Central Processing Unit)901、主記憶装置であるRAM(Random Access Memory)902、不揮発性の記憶装置であるROM(Read Only Memory)903を備え、またデータ保持部200内のミラーディスク21、管理情報用ディスク22とのデータの送受信用のバスや、アプリケーション300等の上位層との通信が可能なバスの集合であるI/O部904を備える。尚、ディスクミラーリング制御装置100内の図1で示した各機能ブロックは、CPU901、RAM902、ROM903、I/O部904のハードウェア資源と、ROM903内に予め保持されているファームウェアとが協働することで実現される。
【0087】
本実施の形態のストレージ装置500は、1筐体のコンピュータ内に備えられるものであってもよく、また外部のコンピュータからデータのリード要求/ライト要求を受付け、要求に基づき処理を実行するものであってもよい。尚、ストレージ装置500が1筐体のコンピュータ内に備えられている場合、コンピュータ内のCPU、RAM、ROM、I/O部のハードウェアリソースを用いることでも上述の各機能部を実現することが可能である。
【0088】
また、本実施の形態で示したストレージ装置500は、ミラーリングするミラーディスク21が2つの場合でも、3つ以上の場合でも適用できる。また、以下のどの場合でも適用できる。
【0089】
すなわち本実施の形態のストレージ装置500は、単一ホストコンピュータシステム(非クラスタシステム)がダウンした後、システムの再起動時にディスクミラーリング状態を復旧する場合でも適用可能であり、また複数のホストコンピュータにデータ保持部200が共用ディスクとして接続されているクラスタシステムにおいて、運用システムがダウンした後、待機システムでデータ保持部200のミラーリング状態を復旧する場合でも適用可能である。
【0090】
本実施の形態のディスクミラーリング制御装置100、ストレージ装置500によって、たとえミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生したでもコピー先ディスクを新たな動作ディスクにすることで、データ保証と動作継続を実現することができる。
【0091】
また、図12に示すように、ストレージ装置とディスクミラーリング制御装置とが分離した構成であってもよい。このように、ディスクミラーリング制御装置100は、ストレージ装置500A内に無い構成であっても、本実施の形態は適用可能である。
【0092】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1) 複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記2) 付記1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記3) 付記1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記4) 付記1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
(付記5) 付記1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御装置。
(付記6) 複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記7) 付記6に記載のストレージ装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記8) 付記6に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記9) 付記6に記載のストレージ装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするストレージ装置。
(付記10) 付記6に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするストレージ装置。
(付記11) 複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記12) 付記1に記載のミラーリング制御方法において、
さらに、前記領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記13) 付記11に記載のミラーリング制御方法において、
さらに、前記等価状態にするためのコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記14) 付記11に記載のミラーリング制御方法において、
前記領域のデータを前記コピー先記憶装置へコピーする処理は、前記リード要求が前記等価状態にするためのコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御方法。
(付記15) 付記11に記載のミラーリング制御方法において、
前記等価状態にするためのコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御方法。
【符号の説明】
【0093】
1 I/Oミラーリング制御部、2 コピー制御部、3 ミラーディスク構成管理部、4 クラスタ通信制御部、10 ミラーディスク構成管理テーブル、11 更新領域管理テーブル、12 コピー管理テーブル、21 ミラーディスク、22 管理情報用ディスク、100 ディスクミラーリング制御装置、200 データ保持部、300 アプリケーションソフトウェア、500、500A ストレージ装置。
【技術分野】
【0001】
磁気ディスク装置のミラーリング(ソフトウェアRAID)機能を用いた、ディスク冗長化によるデータ保全を可能にするミラーリング制御装置、ストレージ装置、ミラーリング制御方法に関する。
【背景技術】
【0002】
複数の磁気ディスク装置を冗長化させるミラーリング(ソフトウェアRAID)技術を用いることで、ディスク冗長化によるデータ保全、コンピュータシステムの高信頼化および可用性向上を図るためのミラーリング制御装置がある。
【0003】
図12に、システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す。
【0004】
まず、正常稼動の状態では、両系のディスクは共にACTIVEの状態であるため、上位層のアプリケーションソフトウェアからのリード/ライトは両方のディスクになされる(図12(A)参照)。ここで、両系のディスクが共に正常であるときに、例えばディスク以外の他の要因でシステムがダウンし、システム再起動が行われた際、片系のディスク(以下、コピー元ディスク)から他のディスク(以下、コピー先ディスク)へ、ミラーリング状態を復旧するためデータコピーが行われる(図12(B)参照)。尚、このデータコピー中は上位層のアプリケーションソフトウェアからのリードはコピー元ディスクから行われ、上位層のアプリケーションソフトウェアからのライトは両方のディスクに行われる。
【0005】
データコピー処理中にコピー元ディスクでエラーが発生した場合、コピー処理が中止される(図12(C)参照)。また、このとき従来のミラーリング制御装置は、コピー先ディスクはコピーが完了しておらず、内容が保証できないためコピー先ディスクをミラーリングから切り離すよう制御する。この結果、コピー元ディスクのみが動作ディスクとなり、上位サーバからのリード/ライトの処理もコピー元ディスクのみで行われる(図12(D)参照)。
【0006】
また、本発明と関連のある技術として、以下の文献が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−259519号公報
【特許文献2】特開平7−134635号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来のミラーリング制御装置の動作において、ディスクのミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクはエラーが発生した状態となり、コピー先ディスクはデータが保証できない状態になる。このように従来のミラーリング制御装置は、コピー処理開始前ではコピー先ディスクはアクセス可能かつデータ保証される状態であったにもかかわらず、コピー処理中にコピー元ディスクでエラーが発生すると、コピー先ディスクも使用できなくなり、データ保証も動作継続もできなくなるという問題がある。
【0009】
このような状態に陥ってしまった場合の復旧は、エラーが発生したディスクの交換と、以前にテープなどに取っておいたバックアップデータのリストアが必要になる。よって復旧するまでの時間は業務運用を停止しなければならず、またテープにバックアップしたデータ状態とコピー元ディスクでエラーが発生したときのデータ状態との差分データは消失する。
【0010】
本発明は上述した問題点を解決するためになされたものであり、ミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生した場合でもデータ保証と動作継続を実現するミラーリング制御装置、ストレージ装置、ミラーリング制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
ミラーリング制御装置は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【0012】
また、ストレージ装置は、複数の記憶装置と、前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、該ミラーリング制御装置は、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【0013】
ミラーリング制御方法は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、前記等価状態にするためのコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーし、さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【発明の効果】
【0014】
記憶装置のミラーリング状態を復旧するためのデータコピー処理中にコピー元記憶装置でエラーが発生した場合でも、コピー先記憶装置のデータが保証され、上位層に対する動作継続が可能となる。これにより、ミラーリング状態を復旧するためのデータコピー処理中に生じた記憶装置の不具合に対するシステムの耐性および可用性が向上する。
【図面の簡単な説明】
【0015】
【図1】本実施の形態に係るストレージ装置の機能ブロックの一例を示す図である。
【図2】本実施の形態に係るディスクミラーリング制御装置の動作の一例を示す図である。
【図3】本実施の形態に係るミラーディスク構成管理テーブルのデータ構造の一例を示す図である。
【図4】本実施の形態に係るコピー管理テーブルと更新領域管理テーブルのデータ構造、およびコピー管理テーブル、更新領域管理テーブルの各テーブル内のビットとミラーディスクの領域との対応関係の一例を示す図である。
【図5】本実施の形態に係る復旧コピー処理実行中におけるリード処理の一例を示すフローチャートである。
【図6】本実施の形態に係る復旧コピー処理実行中のライト処理の一例を示すフローチャートである。
【図7】本実施の形態に係る復旧コピー処理の一例を示すフローチャート(その1)である。
【図8】本実施の形態に係る復旧コピー処理の一例を示すフローチャート(その2)である。
【図9】本実施の形態に係る動作ディスクの変更処理の一例を示すフローチャートである。
【図10】本実施の形態に係るコピー先ディスクへのコピー処理の一例を示すフローチャートである。
【図11】本実施の形態に係るディスクミラーリング制御装置のハードウェア構成の一例を示す図である。
【図12】本実施の形態に係る、図1で示した構成の変形例を示す図である。
【図13】システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す図である。
【発明を実施するための形態】
【0016】
図1に、本実施の形態に係るストレージ装置の構成を示す。ストレージ装置500は、ディスクミラーリング制御装置100(ミラーリング制御装置)、データ保持部200を備える。
【0017】
ディスクミラーリング制御装置100は、I/Oミラーリング制御部1、コピー制御部2、ミラーディスク構成管理部3、クラスタ通信制御部4を備える。また、管理データを格納するユニットとして、ディスクミラーリング制御装置100は、ミラーディスク構成管理テーブル10、更新領域管理テーブル11、コピー管理テーブル12を備える。
【0018】
また、データ保持部200は、制御対象の磁気ディスク装置(記憶装置)の集合であり、ミラーリング状態となっている少なくとも2つの磁気ディスク装置であるミラーディスク21、および管理情報のデータを保持する磁気ディスク装置である管理情報用ディスク22を備える。尚、管理情報用ディスク22には、管理情報を保持するユニットであるミラーディスク構成管理テーブル23、更新領域管理テーブル24を備える。
【0019】
尚、データ保持部200は、クラスタシステムの場合、クラスタシステムを構成する複数のシステムのディスクミラーリング制御装置からアクセスされる。
【0020】
ここで、ディスクミラーリング制御装置100内の各機能ブロックについて説明する。
【0021】
I/Oミラーリング制御部1は、ホストコンピュータで動作するアプリケーションソフトウェア300(上位層)から発行されるディスクへのI/O要求を複製し、複数のミラーディスク21に発行することで、ディスクミラーリングを実現する。
【0022】
また、コピー制御部2がシステムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、I/Oミラーリング制御部1は、アプリケーションソフトウェア300からの要求がリード要求である場合、コピー元ディスク内のリード要求に対応する領域に保持されているデータをコピー先ディスクへコピーする。
【0023】
また、I/Oミラーリング制御部1は、さらに、アプリケーションプログラム300からリード要求された領域のデータをコピー先ディスクへコピーするときに行うその領域へのリード処理でエラーが発生した場合、コピー元ディスクを切り離し(使用不可)の状態となるよう制御し、またコピー先ディスクをアプリケーションソフトウェア300からのリード要求およびライト要求に対する処理を行う動作ディスクとなるよう制御する。
【0024】
コピー制御部2は、何らかの不測のトラブルによってシステムがダウンした後、ミラーディスク21間でデータコピー処理を行い、ミラーディスク21のミラーリング状態を復旧する。すなわちコピー制御部2は、複数のミラーディスク21同士のデータを等価状態にするために、複数のミラーディスク21のうちから1つをコピー元ディスクとして選択し、コピー元ディスク内のデータを、その他のコピー先ディスクへコピーする。
【0025】
またコピー制御部2は、さらに、コピー制御部2によるコピー処理中に、I/Oミラーリング制御部1によって受付けられたリード要求またはライト要求の処理がコピー元ディスクでエラーとなる場合、コピー元ディスクを切り離しの状態となるよう制御し、またコピー先ディスクが動作ディスクになるよう制御する。
【0026】
ミラーディスク構成管理部3は、システム起動時に管理情報用ディスク22からミラーディスク構成管理テーブル23を読み込み、ディスクミラーリング制御装置100内のRAM(尚、ディスクミラーリング制御装置100のハードウェア構成は後述する)にロードすることでミラーディスク構成管理テーブル10を作成し、また更新領域管理テーブル24を読み込み、ディスクミラーリング制御装置100内のRAM上にロードすることで、更新領域管理テーブル11を作成する。また、ミラーディスク構成管理部3は、ミラーディスク21の構成や状態が変化したときに、RAM内のミラーディスク構成管理テーブル10および管理情報用ディスク22内のミラーディスク構成管理テーブル23を更新する。
【0027】
クラスタ通信制御部4は、クラスタシステムの場合に、クラスタシステムを構成する他のシステムと連携して動作するための通信処理を行う。具体的には、待機システムのクラスタ通信制御部4が運用システムのダウンを検出し、ディスクのミラーリング状態を復旧するためのコピー処理の実行を、自己のコピー制御部2に依頼する。また、ミラーディスク21の構成や状態が変化したとき、他のシステムのクラスタ通信制御部4に通知する。
【0028】
ミラーディスク構成管理テーブル10は、ミラーディスク21の構成、状態と、管理情報用ディスク22における更新領域管理テーブル24の位置情報を保持するテーブルであり、ディスクミラーリング制御装置100のRAM上でデータが保持されている。
【0029】
更新領域管理テーブル11は、ミラーディスク21更新中の領域の位置情報を保持するテーブルであり、ディスクミラーリング制御装置100のRAM上でデータが保持されている。
【0030】
コピー管理テーブル12は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中、コピーが必要な領域とコピーが済んだ領域の位置情報を持ち、ディスクミラーリング制御装置100のRAM上で管理される。
【0031】
次に、データ保持部200内について説明する。ミラーディスク21は、アプリケーションソフトウェア300が発行したI/O要求のライトデータの複製を保持する。
【0032】
管理情報用ディスク22は、ミラーディスク構成管理テーブル23と更新領域管理テーブル24を保持する。これらミラーディスク構成管理テーブル23と更新領域管理テーブル24は、ディスクミラーリング制御装置100のRAM上で管理されているミラーディスク構成管理テーブル10、および更新領域管理テーブル11を不揮発性に保持するための複製である。
【0033】
次に、ディスクミラーリング制御装置100の動作内容について説明する。
【0034】
まず、ディスクミラーリング制御装置100は、コピー元ディスクに不具合が発生したときに、代わりにコピー先ディスクを使用できるようにする。その前提として、コピー開始前のコピー元ディスクとコピー先ディスクとではデータが一致しない箇所があるが、どちらのデータも使用できる正当なデータであるものとする。
【0035】
ディスクミラーリング制御装置100は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、コピー元ディスクにリード要求があった場合、まずその領域をコピー先ディスクにコピーしてからリード結果をアプリケーションソフトウェア300へ返す。尚、ディスクミラーリング制御装置100は、コピー済領域/未コピー領域の区別なくコピーする方式と、未コピー領域の場合だけコピーする方式のどちらでも適用可能である。
【0036】
また、システムダウン後、ディスクミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクの方をミラーリングから切り離し、コピー先ディスクを動作ディスクにする。ミラーリングしていたディスクが3つ以上の場合は、複数のコピー先ディスクのうち1つを動作ディスクとし、動作ディスクを新たなコピー元ディスクとして他のコピー先ディスクへのコピー処理を行う。
【0037】
ディスクミラーリング制御装置100の上述の動作内容を、図2に示す。従来の技術では、コピー先ディスクの未コピー領域のデータがコピー元ディスクと一致しない可能性があるため、動作ディスクの変更ができなかった。この問題を、以下の方法で解決する。尚、図2(A)、図2(B)の説明は図12(A)、図12(B)と同様であるため、説明を割愛する。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合で、かつコピー元ディスクのリードが成功した場合、その領域をコピー先ディスクへコピーしてから、リード結果をアプリケーションソフトウェア300に返す(図2(C)参照)。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合で、かつコピー元ディスクのリードが失敗した場合、コピー先ディスクを新たな動作ディスク(かつコピー元ディスク)とし、新たな動作ディスクのリード結果を上位層に返す(図2(D)参照)。
これにより、コピー元ディスクとコピー先ディスクでデータが一致しない可能性がある領域は以下の条件をすべて満たすため、データが一致していなくても問題ない。
・システムダウン発生時にライト処理実行中(ライト未完了)だったため、ライト前のデータであるかライト後のデータであるかどちらであっても良い。
・システムダウン後、まだ一度もリードされていないため、コピー先ディスクのデータがコピー元ディスクと一致している必要がない。
・未コピー領域であるため、コピー先ディスクが複数ある場合は、そのうちの1つを新たな動作ディスク(コピー元ディスク)にした後、残りのコピー先ディスクにデータがコピーされ、コピーが済めばデータが一致する。
なお、上記「コピー対象領域に対してアプリケーションソフトウェア300からリード要求があった場合」の条件を「未コピー領域に対して上位層からリード要求があった場合」に変更することにより、余計なコピー処理を省くことができる。以下の説明では、この「未コピー領域に対して上位層からリード要求があった場合」をメインに説明する。
【0038】
次に、ミラーディスク構成管理テーブル10のデータ構造を図3を参照しつつ説明する。まず、ミラーディスク構成管理テーブル10のデータフォーマットを図3(A)に示す。
【0039】
更新領域管理テーブル使用フラグは、システム運用中に更新領域管理テーブル11を使用するかどうかを表すフラグであり、「有効」または「無効」のいずれかの値をとる。この値は、ユーザがミラーリングの構成設定を行ったときに指定され、システム運用中に変更もできる。値の意味は以下のとおりである。
・有効 ・・・ システム運用中、I/Oミラーリング制御部1が更新領域管理テーブル11を使用して、ミラーディスク21の更新中領域の位置情報を管理する。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では更新領域管理テーブル11が参照され、更新中領域のみがコピーされる。
・無効 ・・・ システム運用中、更新領域管理テーブル11は使用されない。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では、ディスク全体の領域がコピーされる。
【0040】
更新領域管理テーブルディスク番号は、更新領域管理テーブル24が格納されている管理情報用ディスク22のデバイス番号である。更新領域管理テーブルオフセットは、管理情報用ディスク22上での更新領域管理テーブル24の位置情報(オフセット)である。
【0041】
ミラーディスク数は、ミラーディスク21の数である。
【0042】
ディスクリストは、ミラーディスク構成管理テーブル10内で、各ミラーディスク21の物理ディスク番号とディスク状態の組を保持している部分を指す。物理ディスク番号は、ミラーディスク21のデバイス番号である。ディスク状態は、ミラーディスク21の状態を表し、「ACTIVE」「COPY」「INVALID」のいずれかの値をとる。各値の意味は以下のとおりである。
・ACTIVE ・・・ 動作ディスクであることを示す。ACTIVE状態のミラーディスク21が複数ある場合、それらのディスク内のデータは一致している。アプリケーションソフトウェア300から発行されるI/O要求(リード/ライト)の複製の発行対象になる。また、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ACTIVE状態のミラーディスク21のうち1つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク21がCOPY状態に変更されることで、コピー先ディスクとなる。
・COPY ・・・ コピー先ディスクであることを示す。システムダウン後のディスクミラーリング状態を復旧するためのコピー処理において、ACTIVE状態のミラーディスク21のうち1つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク21がCOPY状態に変更されることで、コピー先ディスクとなる。COPYの値に設定されたミラーディスク21は、唯一のACTIVE状態のディスク(動作ディスク=コピー元ディスク)からデータがコピーされている。またCOPYの値に設定されたミラーディスク21は、アプリケーションソフトウェア300から発行されるライト要求の複製の発行対象になるが、リード要求の対象にはならない。
・INVALID ・・・ ミラーリングから切り離されていることを示す。すなわち、アプリケーションソフトウェア300から発行されたI/O要求(リード/ライト)の複製の発行対象にならない。
【0043】
図3(B)に、上述のデータフォーマットの具体的数値例を示す。図3(B)で示した例では、以下のようになっている。
更新領域管理テーブル = 有効
更新領域管理テーブルディスク番号 = 0x00010000
更新領域管理テーブルオフセット = 0x00002000
ミラーディスク数 = 2
1台目のミラーディスクの物理ディスク番号 = 0x00010001
1台目のミラーディスクのディスク状態 = ACTIVE
2台目のミラーディスクの物理ディスク番号 = 0x00010002
2台目のミラーディスクのディスク状態 = COPY
【0044】
図4に、コピー管理テーブル12と更新領域管理テーブル11のデータ構造を示すとともに、またコピー管理テーブル12、更新領域管理テーブル11の各テーブル内のビットとミラーディスク21の領域の対応関係を示す。本実施の形態では、ミラーディスク21の領域は2MB単位で区切られ(図4(C)参照)、コピー管理テーブル12の各ビットで各領域のコピー状況が管理され、更新領域管理テーブル11の各ビットで各領域が更新中であるかどうかが管理される。
【0045】
コピー管理テーブル12は、0または1のいずれかの値をとる(図4(A)参照)。値0は、ミラーディスク21の該当領域は、ミラーリング状態を復旧するためのコピーが済んでいるか、または、コピーが不要である領域を意味する。値1は、ミラーディスク21の該当領域は、ミラーリング状態を復旧するためのコピーが必要である領域を意味する。コピー管理テーブル12は、システムダウン後、ディスクミラーリング状態を復旧するためのコピー処理開始時に、コピー制御部2によってRAM上に作成され、初期化される。
【0046】
コピー制御部2によるコピー管理テーブル12の初期化方法は以下のとおりである。すなわち、上述の更新領域管理テーブル使用フラグが有効と設定されている場合、コピー制御部2はコピー管理テーブル12に更新領域管理テーブル11をコピーする。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、システムダウン時に更新中だった領域だけがコピーされる。一方、更新領域管理テーブル使用フラグが無効と設定されている場合、コピー制御部2はコピー管理テーブル12の全ビットに1を設定する。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ディスク領域全体がコピーされる。
【0047】
コピー制御部2は、コピー管理テーブル12の先頭から終端まで1のビットに該当するミラーディスク21の領域をコピーし、該当ビットを0に変更する。また、I/Oミラーリング制御部1は、コピー制御部2がコピー処理実行中にアプリケーションソフトウェア300からディスクのリード要求を受理したとき、コピー管理テーブル12内のリード対象領域に対応するビットが1であればリード対象領域をコピーし、該当ビットを0に変更する。
【0048】
更新領域管理テーブル11は、0または1のいずれかの値をとる(図4(B)参照)。値0は、ミラーディスク21の該当領域は、更新中(ライト処理中)ではないことを意味する。値1は、ミラーディスク21の該当領域は、更新中(ライト処理中)であることを意味する。
【0049】
アプリケーションソフトウェア300がデータ保持部200に対しにライト要求を発行したとき、I/Oミラーリング制御部1がミラーディスク21へのライト処理開始時に更新領域管理テーブル11の該当ビットに1を設定し、ライト処理終了時に0を設定する。なお、I/Oミラーリング制御部1は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中である場合、このビットの設定処理を行わない。
【0050】
次に、本実施の形態に係るストレージ装置500の動作について、図5から図10までのフローチャートを参照しつつ説明する。尚、図5から図10のフローチャートにおいて、破線で示した処理は本実施の形態の特徴的な処理である。
【0051】
まず、復旧コピー処理実行中におけるリード処理のフローチャートを図5に示す。図5のフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア300がデータ保持部200に発行したリード要求をI/Oミラーリング制御部1が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクをリードし、成功した場合はアプリケーションソフトウェアにリード結果を返して終了し、一方失敗した場合は全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外としてからアプリケーションソフトウェアにリードエラーを返す。本実施の形態のディスクミラーリング制御装置100は、コピー元ディスクのリードが成功した場合、その領域が未コピー(コピー管理テーブル12の該当ビットが1)であればその領域のコピーを行ってからアプリケーションソフトウェア300にリード結果を返す。コピー元ディスクのリードが失敗した場合、コピー先ディスクのうちの1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、新たな動作ディスクに対してリード要求を発行する。
【0052】
図5のフローチャートに示す各ステップについて説明する。I/Oミラーリング制御部1は、動作ディスク(すなわちコピー元ディスク)をアプリケーションソフトウェア300の要求に基づきリードする(S1)。I/Oミラーリング制御部1は、リードエラーであるかの判定を行い(S2)、エラーでない場合(S2、N)、I/Oミラーリング制御部1は、コピー管理テーブル12内の該当ビットが1かを判定する(S3)。ビットが1である場合(S3、Y)、コピー先ディスクへのコピー処理(後述)が実施される(S4)。
【0053】
I/Oミラーリング制御部1は、コピー管理テーブル12内の該当ビットを0に変更し(S5)、リード結果をアプリケーションソフトウェア300に返す(S6)。尚、S3のビットの判定で、ビットが0である場合(S3、N)、S6の処理が実行される。
【0054】
一方、S2のリードエラーの判定で、I/Oミラーリング制御部1はリードエラーであると判定した場合(S2、Y)、I/Oミラーリング制御部1は、後述する動作ディスクの変更処理を実行する(S7)。ここで、S7の動作ディスクの変更処理がエラーである場合(S8、Y)、I/Oミラーリング制御部1は、リードエラーをアプリケーションソフトウェア300に返す(S9)。尚、S7の動作ディスクの変更処理がエラーでない場合(S8、N)、処理はS1へ戻る。
【0055】
図6に復旧コピー処理実行中のライト処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア300がデータ保持部200に発行したライト要求をI/Oミラーリング制御部1が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクへのライトが失敗した場合、全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外にしてから、アプリケーションソフトウェアにライトエラーを返している。本実施の形態に係るディスクミラーリング制御装置100は、コピー元ディスクのライト処理が失敗した場合、コピー先ディスクのうちの1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、ライト処理を継続する。
【0056】
図6のフローチャートに示す各ステップについて説明する。I/Oミラーリング制御部1は、ディスクミラーリング制御装置100内のRAMに所定のフラグ領域を設け、そのフラグ(以下、このようなフラグを結果フラグと称す。結果フラグは以降のフローチャートの説明でも随時使用されるが、処理ごとに異なる結果フラグが使用されることに留意する)に0を設定する(S10)。ここでI/Oミラーリング制御部1は、ディスクリスト(図3(A)参照)の先頭を参照し(S11)、参照した物理ディスク番号のミラーディスク21が切り離されている状態か(INVALIDか)を判定する(S12)。そのミラーディスク21が切り離されている場合(S12、Y)、S18へと処理は続く。一方ミラーディスク21が切り離されていない場合(S12、N)、I/Oミラーリング制御部1はそのミラーディスク21にデータをライトする(S13)。
【0057】
I/Oミラーリング制御部1は、ライトエラーであるかを判定する(S14)。ライトエラーが発生しない場合(S14、N)、I/Oミラーリング制御部1は結果フラグに1を設定し(S15)、S18へと処理は続く。一方、ライトエラーが発生した場合(S14、Y)、I/Oミラーリング制御部1は、ディスクの状態をディスクリストのディスク状態から確認する(S16)。ここで、ライトエラーが発生したミラーディスク21がコピー先ディスクである場合(S16、コピー先ディスク(COPY))、I/Oミラーリング制御部1は、ディスク状態をINVALIDにすることでディスクの切り離しを行い、S18へと処理は続く。
【0058】
またライトエラーが発生したミラーディスク21がコピー元ディスクである場合(S16、コピー元ディスク=動作ディスク(ACTIVE))、動作ディスクの変更処理が実行される(S22)。動作ディスクの変更処理が正常終了である場合(S23、N)、S18へと処理は続く。一方動作ディスクの変更処理がエラー終了である場合(S23、Y)、I/Oミラーリング制御部1は結果フラグに0を設定し(S24)、S18へと処理は続く。
【0059】
I/Oミラーリング制御部1は、ディスクリストの次のディスクを参照する(S18)。I/Oミラーリング制御部1は、S12からS18までの処理をディスクリストの終端まで繰り返し実施する。
【0060】
S12からS18までのループが完了した後、I/Oミラーリング制御部1は、結果フラグを確認し(S19)、結果フラグが1の場合(S19、Y)、ライト成功をアプリケーションプログラム300に返し(S20)、結果フラグが0の場合(S19、N)、アプリケーションプログラム300にライトエラーを返す(S21)。
【0061】
図7、図8に復旧コピー処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部2がディスクミラーリング状態を復旧するために実行するコピー処理を示している。
【0062】
従来のディスクミラーリング制御装置は、更新領域管理テーブル使用フラグが有効の場合は、更新領域管理テーブルの1のビットに該当する領域を順番にコピーしている。また、更新領域管理テーブル使用フラグが無効の場合は、ディスク領域全体を先頭から終端まで順番にコピーしている。本実施の形態に係るディスクミラーリング制御装置100は、コピー制御部2の「復旧コピー処理」(図7、図8)のみならず、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と「復旧コピー処理実行中のライト処理」(図6)でもコピー処理を行い、コピー管理テーブル12でコピー状況を管理することにより未コピー領域だけをコピーできるようになる。
【0063】
また、従来のディスクミラーリング制御装置は、コピー処理のためのコピー元ディスクのリードが失敗した場合、全コピー先ディスクをミラーリングから切り離し(状態をINVALIDに変更)、コピー処理を終了している。一方、本実施の形態に係るディスクミラーリング制御装置100は、コピー処理のためのコピー元ディスクのリードが失敗した場合、コピー先ディスクのうち1つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、コピー処理を継続する。
【0064】
図7、8のフローチャートに示す各ステップについて説明する。コピー制御部2は、ミラーディスク構成管理テーブル10内のディスクリストで、ACTIVE状態のディスクが複数あるかを確認することで、システムダウン前はミラーリング状態であったかを判定する(S30)。コピー制御部2は、ここでシステムダウン前はミラーリング状態であったと判定した場合(S30、Y)、ACTIVE状態のミラーディスク21のうち1つをコピー元ディスク(ACTIVE)とし、その他残りをコピー先ディスク(COPY)に変更する。尚、コピー制御部2は、ACTIVE状態のミラーディスク21のうちで、ディスクリスト内で最初にエントリされている物理ディスク番号に対応しているミラーディスク21をACTIVE状態とする。一方、S30の判定で、コピー制御部2は、システムダウン前はミラーリング状態でなかったと判定した場合(S30、N)、処理は終了する。
【0065】
次にコピー制御部2は、更新領域管理テーブル使用フラグが有効であるか判定し(S32)、有効である場合(S32、Y)、コピー管理テーブル12に更新領域管理テーブル11をコピーする(S33)。一方、更新領域管理テーブル使用フラグが無効である場合(S32、N)、コピー制御部2は、コピー管理テーブル12のすべてのビットに1を設定する(S34)。次にコピー制御部2は、コピー管理テーブル12の先頭ビットを取得する(S35)。
【0066】
コピー制御部2は、取得したビットが1である場合(S36、Y)、コピー元ディスクの該当領域をリードする(S37)。ここでリードエラーでない場合(S38、N)、コピー制御部2は、コピー先ディスクへのコピー処理を実行する(S39)。コピー制御部2は、S39のコピー処理が成功したか否かを判定する(S40)。ここでS39のコピー処理が失敗である場合(S40、N)、処理は終了する。一方、S39のコピー処理が成功である場合(S40、Y)、コピー制御部2は、コピー処理が成功した領域に対応するコピー管理テーブル12内のビットを0に変更する(S41)。その後、コピー管理テーブルの次のビットを参照し(S42)、ループの先頭であるS36へ戻る。
【0067】
尚、S38でリードエラーが発生していると判定された場合(S38、Y)、コピー制御部2は、動作ディスクの変更処理を実行する(S44)。動作ディスクの変更処理が成功であった場合(S45、N)、コピー制御部2は、処理をS37に戻し、エラーであった場合(S45、Y)、処理は終了する。
【0068】
また、S36で取得したビットの値が0である場合(S36、N)、処理はS42へ進む。
【0069】
コピー制御部2は、S36からS42までの処理をコピー管理テーブル12の終端に達するまで繰り返し、その後、コピー制御部2は、状態をCOPYからACTIVEへ変更することで、全コピー先ディスクを動作ディスクに変更する(S43)。
【0070】
次に、動作ディスクの変更処理を図9を参照しつつ説明する。このフローチャートは、コピー元ディスクの状態を動作ディスク(ACTIVE)から切り離し(INVALIDに変更)、コピー先ディスクのうち、1つのディスクの状態をコピー先ディスク(COPY)から動作ディスク(ACTIVE)に変更する処理を示している。また状態変更が失敗したコピー先ディスクは、ミラーリングから切り離す(状態をINVALIDに変更)。したがって、動作ディスクが変更できなかった場合、すべてのコピー先ディスクがミラーリングから切り離される(状態がINVALIDになる)。
【0071】
この処理は、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と、「復旧コピー処理実行中のライト処理」(図6)、および、コピー制御部2の「復旧コピー処理」(図7、8)において、コピー元ディスクでリード/ライトエラーが発生したときに呼び出される。
【0072】
図9のフローチャートに示す各ステップについて説明する。以下の説明ではS7における動作ディスクの変更処理について説明するが、上述のようにS7以外でもS22、S44でも実行される。尚、以下の説明ではS7を例としているため、各ステップの動作を行う主体をI/Oミラーリング制御部1とするが(S22での処理も同様にI/Oミラーリング制御部1が動作主体)、S44で行われる場合各ステップの動作主体はコピー制御部2となることにも留意する。
【0073】
まずI/Oミラーリング制御部1は、結果フラグに0を設定する(S50)。I/Oミラーリング制御部1は、ディスクリストの先頭のデータ(物理ディスク番号とそのディスク状態のセット)を取得する(S51)。
【0074】
ここで、I/Oミラーリング制御部1は、取得した物理ディスク番号に対応したミラーディスク21の状態がCOPYであるかを確認することで、当該ミラーディスク21がコピー先ディスクであるかを判定する(S52)。当該ミラーディスク21がコピー先ディスクである場合(S52、Y)、I/Oミラーリング制御部1は、当該ミラーディスク21を動作ディスク(すなわちACTIVE状態)に変更し、コピー元ディスクをINVALIDに変更することで切り離す(S53)。ここで、S53の処理が成功である場合(S54、N)、結果フラグに1が設定され(S55)、S53の処理がエラーである場合(S54、Y)、当該ミラーディスク21は切り離される(S56)。
【0075】
I/Oミラーリング制御部1は、ディスクリスト内の次のデータ(物理ディスク番号とそのディスク状態のセット)を取得し(S57)、処理はS52に戻る。
【0076】
I/Oミラーリング制御部1は、S52からS57までの処理をディスクリストの終端に達するまで繰り返す。ただし、S57の後、結果フラグが1である場合、処理はS52には戻らずS58に進む。
【0077】
その後、I/Oミラーリング制御部1は、結果フラグが1である場合(S58、Y)、成功のステータスを処理の呼出し元へ返し(S59)、0である場合(S58、N)、失敗のステータスを処理の呼出し元へ返す(S60)。
【0078】
図10に、コピー先ディスクへのコピー処理のフローチャートを示す。このフローチャートは、指定されたデータを、各コピー先ディスクの指定された領域にコピー(ライト)する処理を示している。コピー(ライト)が失敗したコピー先ディスクは、ミラーリングから切り離される(状態をINVALIDに変更)。1つ以上のコピー先ディスクへのコピー(ライト)が成功した場合は呼出し元に成功を返し、コピー(ライト)が成功したミラーディスク21が1つもない場合は呼出し元に失敗を返す。
【0079】
この処理は、I/Oミラーリング制御部1の「復旧コピー処理実行中のリード処理」(図5)と、コピー制御部2の「復旧コピー処理」(図7、8)から呼び出される。
【0080】
図10のフローチャートに示す各ステップについて説明する。以下の説明ではS4におけるコピー先ディスクへのコピー処理について説明するが、上述のようにS4以外でもS39でも実行される。尚、以下の説明ではS4での例であるため、各ステップの動作を行う主体をI/Oミラーリング制御部1とするが、S39で行われる場合各ステップの動作主体はコピー制御部2となることにも留意する。
【0081】
I/Oミラーリング制御部1は、結果フラグに0を設定する(S70)。I/Oミラーリング制御部1は、ディスクリストの先頭のデータ(物理ディスク番号とそのディスク状態のセット)を取得する(S71)。
【0082】
ここで、I/Oミラーリング制御部1は、取得した物理ディスク番号に対応したディスクの状態がCOPYであるかを確認することで、当該ミラーディスク21がコピー先ディスクであるかを判定する(S72)。当該ミラーディスク21がコピー先ディスクである場合(S72、Y)、I/Oミラーリング制御部1は、当該ミラーディスク21にデータをライトする(S73)、ここでライトエラーが生じた場合(S74、Y)、I/Oミラーリング制御部1は、ライトエラーが生じたミラーディスク21の状態をINVALIDに変更することで、切り離しを行う(S76)。一方、ライトエラーが生なかった場合(S75、N)、I/Oミラーリング制御部1は、結果フラグに1を設定する(S75)。
【0083】
I/Oミラーリング制御部1は、ディスクリスト内の次のデータ(物理ディスク番号とそのディスク状態のセット)を取得し(S77)、処理はS72に戻る。尚、S72で当該ミラーディスク21がコピー先ディスクでない場合(S72、N)、処理はS77へ進む。
【0084】
I/Oミラーリング制御部1は、S72からS77までの処理をディスクリストの終端に達するまで繰り返す。
【0085】
その後、I/Oミラーリング制御部1は、結果フラグが1である場合(S78、Y)、1つ以上のコピー先ディスクへのコピーが成功した旨の成功ステータスを処理の呼出し元へ返し(S79)、0である場合(S78、N)、コピーが成功したコピー先ディスクが1つもない旨の失敗ステータスを処理の呼出し元へ返す(S80)。
【0086】
ここで、ディスクミラーリング制御装置100のハードウェア構成について図11を参照しつつ説明する。ディスクミラーリング制御装置100は、演算処理装置であるCPU(Central Processing Unit)901、主記憶装置であるRAM(Random Access Memory)902、不揮発性の記憶装置であるROM(Read Only Memory)903を備え、またデータ保持部200内のミラーディスク21、管理情報用ディスク22とのデータの送受信用のバスや、アプリケーション300等の上位層との通信が可能なバスの集合であるI/O部904を備える。尚、ディスクミラーリング制御装置100内の図1で示した各機能ブロックは、CPU901、RAM902、ROM903、I/O部904のハードウェア資源と、ROM903内に予め保持されているファームウェアとが協働することで実現される。
【0087】
本実施の形態のストレージ装置500は、1筐体のコンピュータ内に備えられるものであってもよく、また外部のコンピュータからデータのリード要求/ライト要求を受付け、要求に基づき処理を実行するものであってもよい。尚、ストレージ装置500が1筐体のコンピュータ内に備えられている場合、コンピュータ内のCPU、RAM、ROM、I/O部のハードウェアリソースを用いることでも上述の各機能部を実現することが可能である。
【0088】
また、本実施の形態で示したストレージ装置500は、ミラーリングするミラーディスク21が2つの場合でも、3つ以上の場合でも適用できる。また、以下のどの場合でも適用できる。
【0089】
すなわち本実施の形態のストレージ装置500は、単一ホストコンピュータシステム(非クラスタシステム)がダウンした後、システムの再起動時にディスクミラーリング状態を復旧する場合でも適用可能であり、また複数のホストコンピュータにデータ保持部200が共用ディスクとして接続されているクラスタシステムにおいて、運用システムがダウンした後、待機システムでデータ保持部200のミラーリング状態を復旧する場合でも適用可能である。
【0090】
本実施の形態のディスクミラーリング制御装置100、ストレージ装置500によって、たとえミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生したでもコピー先ディスクを新たな動作ディスクにすることで、データ保証と動作継続を実現することができる。
【0091】
また、図12に示すように、ストレージ装置とディスクミラーリング制御装置とが分離した構成であってもよい。このように、ディスクミラーリング制御装置100は、ストレージ装置500A内に無い構成であっても、本実施の形態は適用可能である。
【0092】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1) 複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記2) 付記1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記3) 付記1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
(付記4) 付記1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
(付記5) 付記1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御装置。
(付記6) 複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記7) 付記6に記載のストレージ装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記8) 付記6に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
(付記9) 付記6に記載のストレージ装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするストレージ装置。
(付記10) 付記6に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするストレージ装置。
(付記11) 複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記12) 付記1に記載のミラーリング制御方法において、
さらに、前記領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記13) 付記11に記載のミラーリング制御方法において、
さらに、前記等価状態にするためのコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
(付記14) 付記11に記載のミラーリング制御方法において、
前記領域のデータを前記コピー先記憶装置へコピーする処理は、前記リード要求が前記等価状態にするためのコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御方法。
(付記15) 付記11に記載のミラーリング制御方法において、
前記等価状態にするためのコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御方法。
【符号の説明】
【0093】
1 I/Oミラーリング制御部、2 コピー制御部、3 ミラーディスク構成管理部、4 クラスタ通信制御部、10 ミラーディスク構成管理テーブル、11 更新領域管理テーブル、12 コピー管理テーブル、21 ミラーディスク、22 管理情報用ディスク、100 ディスクミラーリング制御装置、200 データ保持部、300 アプリケーションソフトウェア、500、500A ストレージ装置。
【特許請求の範囲】
【請求項1】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項2】
請求項1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項3】
請求項1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項4】
請求項1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
【請求項5】
複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項6】
請求項5に記載のストレージ装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項7】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
【請求項1】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項2】
請求項1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項3】
請求項1に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項4】
請求項1に記載のミラーリング制御装置において、
前記I/Oミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
【請求項5】
複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするI/Oミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項6】
請求項5に記載のストレージ装置において、
前記I/Oミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項7】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから1つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−186285(P2010−186285A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2009−29309(P2009−29309)
【出願日】平成21年2月12日(2009.2.12)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願日】平成21年2月12日(2009.2.12)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]