以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
まず、図面を参照しながら本発明の第1の実施形態に係るストレージシステムについて説明する。図1は、本発明の第1の実施形態に係るストレージシステムの構成を示す概念図である。
第1の実施形態に係るストレージシステムは、マスタホスト1と、第1のマスタストレージ2と、第2のマスタストレージ3と、リモートストレージ4と、ネットワーク6とによって構成される。本実施形態においては、第1のマスタストレージ2と第2のマスタストレージ3とはソフトウェアによって二重化されており、互いに同様の構成をもつ。
なお、図1においては、マスタホスト1と、第1のマスタストレージ2および第2のマスタストレージ3とが直接接続されているように図示しているが、ネットワーク6を介して接続するように構成してもよい。また、図1には、マスタホスト1が二つのストレージ装置を管理する構成を示しているが、マスタホスト1が三つ以上のストレージ装置を管理するように構成してもよい。また、リモートストレージ4が複数あってもよい。
<マスタホスト>
次に、図2を参照しながら本実施形態に係るマスタホスト1について説明する。
図2のように、マスタホスト1は、二重化/レプリケーション設定手段11、二重化制御表12、データ更新制御手段13、二重化レプリケーション制御表14およびアテンション処理手段15を有する。
二重化/レプリケーション設定手段11は、第1のマスタストレージ2と第2のマスタストレージ3との間のソフトウェア二重化ペアの設定を行う。二重化/レプリケーション設定手段11は、設定した情報を二重化制御表12に格納する。なお、ソフトウェア二重化ペアとは、第1のマスタストレージ2および第2のマスタストレージ3のそれぞれが有する論理媒体のうち、同一のデータを格納するように対応付けられた論理媒体の組(ペア)のことである。
また、二重化/レプリケーション設定手段11は、第1のマスタストレージ2または第2のマスタストレージ3と、リモートストレージ4との間のレプリケーションに関する設定を行う。さらに、二重化/レプリケーション設定手段11は、二重化レプリケーション制御表14に設定した情報を格納する。
二重化制御表12は、二重化/レプリケーション設定手段11によって設定されたソフトウェア二重化ペアに関する情報を格納する。二重化制御表12には、ソフトウェア二重化されたペアに関して、第1のマスタストレージ2と第2のマスタストレージ3とを対応させて格納する。すなわち、二重化制御表12は、ソフトウェア二重化媒体の正媒体と副媒体との対応関係を格納する。言い換えると、本実施形態に係るストレージシステムにおいては、ソフトウェア二重化媒体の正媒体と副媒体との対応関係が二重化制御表12によって管理される。
図3には、二重化制御表12の一例(二重化制御表120)を示す。図3の二重化制御表120には、正系媒体用マスタストレージ装置および副系媒体用マスタストレージ装置の情報が含まれる。なお、初期設定としては、第1のマスタストレージ2が正系媒体用マスタストレージ装置に対応し、第2のマスタストレージ3が副系媒体用マスタストレージ装置に対応する。
また、図3の二重化制御表120には、ソフトウェア二重化媒体のペアに関する情報として、二重化媒体ペア情報1は媒体A(正系)と媒体a(副系)とを、二重化媒体ペア情報2は媒体B(正系)と媒体b(副系)とをペアとする情報が格納されている。なお、図3の二重化制御表120には、二組の二重化媒体ペア情報しか記録されていないが、二つ以上の二重化媒体ペア情報がある場合には全ての情報を記録しておく。
データ更新制御手段13は、第1のマスタストレージ2および第2のマスタストレージ3に対して各種I/Oを発行する(I/O:Input Output)。
マスタホスト1上には、ユーザデータを出力するプログラムが動作している。マスタホスト1上で動作するプログラムは、データ更新制御手段13に対して、媒体Aへのデータの出力を要求する。データ更新制御手段13は、プログラムからの要求に応じてマスタストレージ装置に出力データを転送し、媒体Aを更新する。その際、媒体Aを更新したデータは、更新ジャーナルとして、マスタストレージ装置(第1のマスタストレージ2または第2のマスタストレージ3)からリモートストレージ4に送られる。
二重化レプリケーション制御表14は、二重化/レプリケーション設定手段11によって設定された第1のマスタストレージ2または第2のマスタストレージ3と、リモートストレージ4との間のレプリケーションに関する設定を格納する。具体的には、二重化レプリケーション制御表14は、各マスタストレージ装置の更新ジャーナル格納手段の使用状況を示す空情報とともに、各マスタストレージ装置のうちいずれが更新ジャーナルを保存・転送しているのかを示す情報を記録する。
図4には、二重化レプリケーション制御表14の一例(二重化レプリケーション制御表140)を示す。図4の二重化レプリケーション制御表140には、正系媒体用マスタストレージ装置および副系媒体用マスタストレージ装置がともに、空有りであることが記録されている(内容の「空有り」に下線)。
また、図4の二重化レプリケーション制御表140には、更新ジャーナル保存装置および更新ジャーナル転送装置がともに正系媒体用マスタストレージ装置に設定されていることが記録されている(内容の「正系媒体用マスタストレージ装置」に下線)。
なお、更新ジャーナル保存装置とは、更新ジャーナルを蓄える動作をしている側のマスタストレージ装置のことを指す。また、更新ジャーナル転送装置とは、ネットワーク6を介して、マスタストレージ装置に蓄えられている更新ジャーナルをリモートストレージ4に転送しているマスタストレージ装置を指す。初期設定においては、「更新ジャーナル保存装置」と「更新ジャーナル転送装置」とは、同じマスタストレージ装置に設定される。本実施形態においては、「更新ジャーナル保存装置」に設定されていたマスタストレージ装置の更新ジャーナル格納手段が溢れると、「更新ジャーナル保存装置」は別のマスタストレージ装置に切り替わる。すなわち、図2の二重化レプリケーション制御表14は、現状の「更新ジャーナル保存装置」および「更新ジャーナル転送装置」がいずれのマスタストレージ装置に設定されているのかを示す情報を含む。
アテンション処理手段15は、第1のマスタストレージ2および第2のマスタストレージ3から受信した各種アテンションに対応した処理を行う。アテンション処理手段15は、受信したアテンションの内容を判断し、二重化/レプリケーション制御表14を設定する。
以上が、本実施形態に係るマスタホスト1についての説明である。
<マスタストレージ装置>
次に、図5〜図7を参照しながら、本実施形態に係るマスタストレージ装置について説明する。本実施形態に係るマスタストレージ装置である第1のマスタストレージ2および第2のマスタストレージ3は、ソフトウェアによって二重化されており、同様の内部構成を有する。
図5のように、第1のマスタストレージ2は、アテンション通知手段21、入力データ処理手段22、レプリケーション設定手段25、更新ジャーナル処理手段27、更新ジャーナル退避/復元手段28および更新ジャーナル保存手段29を備える。さらに、第1のマスタストレージ2は、仮想ディスク23、論理ディスク24、レプリケーション制御表26、更新ジャーナル転送手段201および更新ジャーナル格納手段202を含む。なお、仮想ディスク23は、論理ディスク24にアクセスするための仮想的なディスクであり、実媒体ではない。
アテンション通知手段21は、第1のマスタストレージ2が有する他の構成要素からの要求に応じて、マスタホスト1に対して各種アテンションを通知する。なお、マスタホスト1に対して通知する各種アテンションには、「更新ジャーナル格納手段空なし通知」、「更新ジャーナル転送完了通知」などが含まれる。
例えば、アテンション通知手段21は、自装置が「更新ジャーナル保存装置」に設定されていた場合、更新ジャーナル格納手段202の容量が溢れた際に、「更新ジャーナル格納手段空なし通知」をアテンションとして通知する。なお、アテンション通知手段21は、更新ジャーナル格納手段202が溢れそうな際に、アテンションを発行するようにしてもよい。
また、例えば、アテンション通知手段21は、リモートストレージ4に更新ジャーナルを転送する際に、更新ジャーナル格納手段202に格納されている更新ジャーナルを全て転送した段階で、「更新ジャーナル転送完了通知」をアテンションとして通知する。なお、更新ジャーナル保存手段29にも更新ジャーナルが保存されていた場合、アテンション通知手段21は、自装置に格納されている更新ジャーナルを全て転送した段階で「更新ジャーナル転送完了通知」を通知する。
入力データ処理手段22は、マスタホスト1からの各種I/Oを受け取る。そして、入力データ処理手段22は、マスタホスト1から受け取った各種I/Oの内容に応じた処理を行う。
例えば、入力データ処理手段22は、データ更新制御手段13からユーザデータを受信すると、入力したユーザデータを仮想ディスク23に送る。その際に、仮想ディスク23に送られたユーザデータは、更新ジャーナルの出力設定(レプリケーションの有無)に応じて処理される。
レプリケーションされる場合、ユーザデータは、論理ディスク24に格納される。同時に、更新ジャーナルは、更新ジャーナル処理手段27を経由させてリモートストレージ4に転送され、更新順序保障レプリケーションが実行される。一方、レプリケーションされない場合、ユーザデータは、論理ディスク24に格納されるが、リモートストレージ4に転送はされない。
仮想ディスク23は、更新ジャーナルの出力設定(レプリケーションの有無)に対応するように論理ディスク24ごとに提供され、入力されたユーザデータを更新ジャーナルの出力設定に応じて出力する。
なお、仮想ディスク23を構成する媒体231Aや媒体A232Aは、実媒体ではなく、第1のマスタストレージ2がマスタホスト1からのデータ更新要求(I/O要求)を制御する目的で仮想的に定義された媒体である。実際のデータは、全て論理ディスク24に記載されている媒体A中に格納される。また、対応する論理ディスク内の媒体が三つ以上の場合は、必要に応じて提供する媒体を増やせばよい。
図5において、媒体Aに対しては、レプリケーション有りの場合は媒体231A、レプリケーション無しの場合は媒体232Aが提供される。また、媒体Bに対しては、レプリケーション有りの場合は媒体231B、レプリケーション無しの場合は媒体232Bが提供される。
例えば、媒体A・レプリケーション有り(媒体231A)に関するデータ更新要求(I/O要求)を受け取ると、入力データ処理手段22は、媒体231Aを更新するとともに、更新ジャーナルを更新ジャーナル処理手段27に渡たす。また、例えば、媒体A・レプリケーション無し(媒体232A)に関するデータ更新要求(I/O要求)を受け取ると、入力データ処理手段22は、媒体232Aを更新するだけで、更新ジャーナルは出力しない。
論理ディスク24は、実際にユーザデータを格納する媒体(論理媒体とも呼ぶ)である。図5においては、媒体A(媒体241A)および媒体B(媒体241B)が論理ディスクに含まれる。なお、図5には、図を簡潔にするために二つの媒体(媒体241A・媒体241B)しか定義していないが、実際には三つ以上の媒体を定義しうる。論理ディスク24は、例えば、ハードディスクなどの補助記憶装置として実現される。
レプリケーション設定手段25は、マスタストレージとリモートストレージ4との間のレプリケーション関連の設定を行う。なお、設定されたレプリケーション情報は、レプリケーション制御表26に格納される。
レプリケーション制御表26は、レプリケーション設定手段25によって設定されたマスタストレージ装置とリモートストレージ4との間のレプリケーション関連の設定を格納するテーブルである。
図6には、レプリケーション制御表26の一例(レプリケーション制御表260)を示す。図6のレプリケーション制御表260は、リモートストレージ装置の情報を含む。また、レプリケーション制御表260は、更新ジャーナル転送処理が許可されているか否かに関する設定を含む。
さらに、図6のレプリケーション制御表260は、更新ジャーナルを、第1のマスタストレージ2の何れの論理ディスク24(媒体Aまたは媒体B)から、リモートストレージ4の何れの論理ディスク44(媒体1または媒体2)に転送するかを示す情報を含む。この情報は、リモートデータレプリケーションペア媒体情報(以下、RDRペア媒体情報)と呼ばれる(RDR:Remote Data Replication)。なお、RDRとは、異なるストレージシステム間でレプリケーションを行う機能のことを示す。一方、同一ストレージシステム内でレプリケーションを行う機能は、DDRと呼ばれる(DDR:DynamicDataReplication)。
例えば、図6のレプリケーション制御表260には、2つのRDRペア媒体情報が含まれる。一つは、媒体Aの更新ジャーナルをリモートストレージの媒体1に格納することを示すRDRペア媒体情報1である。もう一つは、媒体Bの更新ジャーナルをリモートストレージの媒体2に格納することを示すRDRペア媒体情報2である。また、第2のマスタストレージ3が更新ジャーナルを転送するため、レプリケーション制御表260には、媒体aおよび媒体bの更新ジャーナルをそれぞれリモートストレージの媒体1および媒体2に格納することを示すRDRペア媒体情報を含むことが好ましい。
更新ジャーナル処理手段27は、論理ディスク24の更新時に出力された更新ジャーナルを、更新ジャーナル格納手段202または更新ジャーナル保存手段29に振り分ける処理をする。更新ジャーナル処理手段27は、更新ジャーナル格納手段202の空き状況に応じて、更新ジャーナル格納手段202または更新ジャーナル保存手段29に更新ジャーナルを格納(退避)する処理を行う。
例えば、更新ジャーナル格納手段202に十分な空きがある場合、更新ジャーナル処理手段27は、更新ジャーナル格納手段202に更新ジャーナルを格納するように処理する。また、例えば、更新ジャーナル格納手段202に十分な空きが無い場合、更新ジャーナル処理手段27は、更新ジャーナル退避/復元手段28によって、更新ジャーナル保存手段29に更新ジャーナルを退避させる。
また、更新ジャーナル格納手段202の空容量が少なくなると、更新ジャーナル処理手段27は、アテンション通知手段21経由でマスタホスト1に対し、「更新ジャーナル格納手段空きなし通知」を通知する。なお、これ以降、更新ジャーナルを格納するための十分な空きが更新ジャーナル格納手段202に無い状況を、「空きが無い」または「空きが少ない」などと表現することがある。
更新ジャーナル退避/復元手段28は、更新ジャーナル格納手段202に空きが少なくなった場合に、更新ジャーナル処理手段27から更新ジャーナルを受け取り、受け取った更新ジャーナルを更新ジャーナル保存手段29に退避する。また、更新ジャーナル退避/復元手段28は、更新ジャーナル保存手段29に保存された更新ジャーナルを転送する場合、更新ジャーナル保存手段29から更新ジャーナルを復元し、復元した更新ジャーナルを更新ジャーナル転送手段に出力する。
更新ジャーナル保存手段29は、更新ジャーナル格納手段202に更新ジャーナルを格納できない場合に、更新ジャーナルを保存するための記憶領域である。更新ジャーナル保存手段29へのアクセスは、更新ジャーナル退避/復元手段28によって行われる。更新ジャーナル保存手段29は、更新ジャーナル格納手段202よりもアクセス性能は劣るとしても、更新ジャーナル格納手段202よりも容量が大きい方が好ましい。例えば、更新ジャーナル保存手段29は、ハードディスクドライブなどのディスク媒体によって実現できる。
更新ジャーナル転送手段201は、更新ジャーナル格納手段202および更新ジャーナル保存手段29に格納されている更新ジャーナルを、リモートストレージ4に転送する。更新ジャーナル転送手段201は、更新ジャーナル格納手段202および更新ジャーナル保存手段29に格納されている更新ジャーナルが空になると、アテンション通知手段21経由でマスタホスト1に対して、「更新ジャーナル転送完了通知」を通知する。
更新ジャーナル格納手段202は、リモートストレージ4に転送前の更新ジャーナルを格納するための記憶領域である。更新ジャーナル格納手段202は、更新ジャーナル保存手段29よりも高速アクセスが可能な記憶領域である。例えば、更新ジャーナル格納手段202は、キャッシュメモリなどとして実現できる。
続いて、図7を参照しながら、第2のマスタストレージ3について説明する。なお、第1のマスタストレージ2および第2のマスタストレージ3の内部構成・機能のうち、同様の構成・機能については説明を省略する。
図7のように、第2のマスタストレージ3は、アテンション通知手段31、入力データ処理手段32、レプリケーション設定手段35、更新ジャーナル処理手段37、更新ジャーナル退避/復元手段38および更新ジャーナル保存手段39を備える。さらに、第2のマスタストレージ3は、仮想ディスク33、論理ディスク34、レプリケーション制御表36、更新ジャーナル転送手段301、および、更新ジャーナル格納手段302を含む。なお、仮想ディスク33は、論理ディスク34にアクセスするための仮想的なディスクであり、実媒体ではない。
第1のマスタストレージ2と第2のマスタストレージ3との異なる点は、論理ディスクおよび仮想ディスク内の媒体の名称である。第2のマスタストレージ3の論理ディスク34は、媒体341a(以下、媒体a)と、媒体241b(以下、媒体b)とを含む。また、仮想ディスク33においては、媒体aに対して、レプリケーション有りの場合は媒体331a、レプリケーション無しの場合は媒体332aが提供される。同様に、仮想ディスク33においては、媒体bに対して、レプリケーション有りの場合は媒体331b、レプリケーション無しの場合は媒体332bが提供される。
なお、仮想ディスク33内の媒体は実媒体ではなく、第2のマスタストレージ3がマスタホスト1からのデータ更新要求(I/O要求)を制御する目的で仮想的に定義された媒体(仮想媒体とも呼ぶ)である。
その他、第2のマスタストレージ3において、第1のマスタストレージ2と同じ名称の構成要素は、第1のマスタストレージ2と同様の機能を有する。
以上が、マスタストレージ装置についての説明である。
<リモートストレージ>
次に、図8を参照しながら、リモートストレージ4について説明する。
図8のように、リモートストレージ4は、更新ジャーナル受取手段41、更新ジャーナル格納手段42、更新ジャーナル処理手段43および論理ディスク44を有する。リモートストレージ4には、マスタストレージ装置上(第1のマスタストレージ2または第2のマスタストレージ3)の論理ディスク(24または34)の複製が作成される。
レプリケーションにおいては、マスタストレージ装置内の媒体(例えば、媒体A)の内容と、対リモートストレージ4内の対応する媒体(例えば、媒体1)の内容が完全に一致した状態を「同期状態」と呼ぶ。同期状態となった後、媒体Aへの更新データは、更新ジャーナルとしてマスタストレージ装置(第1のマスタストレージ2または第2のマスタストレージ3)からリモートストレージ4に転送される。
更新ジャーナル受取手段41は、マスタストレージ装置から転送されてきた更新ジャーナルを受け取り、受け取った更新ジャーナルを更新ジャーナル格納手段42に格納するデータ受取手段である。
更新ジャーナル格納手段42は、リモートストレージ4に転送される更新ジャーナルを格納するための高速アクセスが可能な記憶領域である。更新ジャーナル格納手段42は、例えば、キャッシュメモリなどとして実現する。
更新ジャーナル処理手段43は、更新ジャーナル格納手段42に格納された更新ジャーナルの内容を論理ディスク44に反映するデータ処理手段である。
論理ディスク44は、少なくとも一つの媒体(記憶媒体ともよぶ)を含む。図8においては、論理ディスク44に、媒体441(以下、媒体1)と媒体442(以下、媒体2)とが含まれる。媒体1は、第1のマスタストレージ2の論理ディスク24の媒体Aの複製媒体である。媒体Aのユーザデータは、二重化/レプリケーション設定手段11によって、媒体Aと媒体1とがペア設定されたタイミングで、媒体Aから媒体1へと転送される。同様に、媒体2は、第1のマスタストレージ2の論理ディスク24の媒体Bの複製媒体である。媒体Aと同様に、媒体Bのユーザデータも、二重化/レプリケーション設定手段11によって、媒体Bと媒体2とがペア設定されたタイミングで、媒体Bから媒体2へと転送される。
論理ディスク44は、第1のマスタストレージ2の論理ディスク24とレプリケーションペア設定された媒体によって構成される論理ディスクである。論理ディスク44に反映された更新ジャーナルの内容は、更新順序保証レプリケーションされている。
例えば、第1のマスタストレージ2の媒体Aからの更新ジャーナルは、第1のマスタストレージ2のレプリケーション制御表26に記録されたRDRペア媒体情報1に基づいて、媒体1に格納される。また、例えば、第1のマスタストレージ2の媒体Bからの更新ジャーナルは、第1のマスタストレージ2のレプリケーション制御表26に記録されたRDRペア媒体情報2に基づいて、媒体2に格納される。
以上が、リモートストレージ4についての説明である。
<ネットワーク>
次に、図1を参照しながら、ネットワーク6について説明する。
ネットワーク6は、第1の実施形態に係るストレージシステムを構成する各構成要素間を接続するデータ通信網である。ネットワーク6は、例えば、インターネットやLAN、WANなどとして構築される(LAN:Local Area Network、WAN:Wide Area Network)。なお、ネットワーク6は、上述のデータ通信網以外の構成を利用してもよい。また、ネットワーク6は、本実施形態に係るストレージシステム含まれていてもよいし、含まれていなくてもよい。
以上が、ネットワーク6についての説明である。
第1の実施形態に係るストレージシステムでは、データ更新を行うストレージ装置と、更新データの管理(保存・格納・転送等を含む)を行うストレージ装置とを独立して管理することを特徴とする。なお、データ更新とは「DB/ファイル更新」のことを指し、更新データとは「ジャーナル/レプリケーション対象データ」のことを指す。また、「データ更新を行うストレージ装置」のことを「更新ジャーナル保存装置」と呼び、「更新データの管理・保存を行うストレージ装置」のことを「更新ジャーナル転送装置」と呼ぶ。すなわち、第1の実施形態に係るストレージシステムでは、更新ジャーナル保存装置と、更新ジャーナル転送装置とを独立して管理する。
本実施形態に係るストレージシステムでは、通常運用時は、正系媒体用の第1のマスタストレージ2によって更新順序保障レプリケーションが実行される(図1の実線矢印)。そして、何らかの理由で、正系媒体用の第1のマスタストレージ2の更新ジャーナル格納手段202に空きが十分ではなくなった場合、第2のストレージシステム3によって更新順序保障レプリケーションが実行される(図1の破線矢印)。いずれの場合においても、一方のマスタストレージのみによって、更新順序保障レプリケーションが実行される。本実施形態によれば、レプリケーションを実行するマスタストレージが切り替わったとしても、リモートストレージ4への更新順序保障レプリケーションを継続することができる。
また、第1の実施形態に係るストレージシステムでは、マスタストレージの二重化/レプリケーション設定時に、一方のマスタストレージ装置のみから、マスタホストからのI/Oの更新ジャーナルを出力する。すなわち、一方のマスタストレージ装置とリモートストレージとの間でのみ更新ジャーナルの転送(レプリケーション)を行う。そのため、通常運用時は、一方のマスタストレージ装置のみから更新ジャーナルが出力され、一方のマスタストレージ装置とリモートストレージとの間でのみレプリケーションが行われる。
本実施形態に係るストレージシステムでは、ソフトウェア二重化された正系媒体および副系媒体のそれぞれが格納されている2台のマスタストレージの更新ジャーナル格納手段を交互に利用する。そのため、本実施形態によれば、機器を追加することなしに、一時的なマスタホストからのデータ更新量の増大や回線障害などが発生した場合も、ストレージのアクセス性能を落とさずに更新順序保証レプリケーションを継続することができる。
<運用>
次に、図9〜図12を用いて、第1の実施形態に係るストレージシステムの運用について説明する。図9〜図12を用いた以下の説明では、第1のマスタストレージ2を正系媒体用マスタストレージ装置20、第2のマスタストレージ3を副系媒体用マスタストレージ装置30と呼ぶ。図9〜図12のように、正系媒体用マスタストレージ装置20および副系媒体用マスタストレージ装置30は、共にネットワーク60を介して、リモートストレージ装置40と接続される。
また、図9〜図12においては、論理ディスク24中の媒体241(以下、媒体A)に対して、レプリケーション有りの場合は媒体231、レプリケーション無しの場合は媒体232が仮想ディスクとして提供される。同様に、図9〜図12において、論理ディスク34中の媒体341(媒体a)に対しては、レプリケーション有りの場合は媒体331、レプリケーション無しの場合は媒体332が仮想ディスクとして提供される。
図9〜図12においては、論理ディスク24が単一の媒体で構成されるものとし、入力データ処理手段22は、レプリケーション有りの場合は媒体231へのI/Oを受け取り、レプリケーション無しの場合は媒体232へのI/Oを受け取るものとして説明する。そのため、論理ディスク24が含む媒体を媒体241と記載し、末尾の符号を省略する。なお、図9〜図12においては、媒体Aに対応する媒体1のみを図示しているが、第1のマスタストレージ2の論理ディスク24を構成する全ての媒体に対応するように、リモートストレージ4の論理ディスク44に媒体を設けることができる。
図9は、マスタストレージ装置の二重化/レプリケーション設定時のストレージシステムの運用状況についての概念図である。
まず、マスタホスト10の二重化/レプリケーション設定手段11が二重化制御表12に二重化ペア装置情報を設定し、二重化レプリケーション制御表14に初期値を設定する。なお、二重化ペア装置情報とは、ソフトウェア二重化されたマスタストレージ装置のペアに関し、いずれのマスタストレージ装置が正系媒体用または副系媒体用であるのかを示す情報である。
そして、二重化/レプリケーション設定手段11が正系媒体用マスタストレージ装置20のレプリケーション設定手段25に設定を通知すると、レプリケーション設定手段25は、レプリケーション関連の設定をレプリケーション制御表26に格納する。このとき、レプリケーション制御表26には、更新ジャーナル転送処理を許可とする設定が格納される。
また、二重化/レプリケーション設定手段11が副系媒体用マスタストレージ装置30のレプリケーション設定手段35に設定を通知すると、レプリケーション設定手段35は、レプリケーション関連の設定をレプリケーション制御表36に格納する。このとき、レプリケーション制御表36には、更新ジャーナル転送処理を禁止とする設定が格納される。
すなわち、マスタストレージ装置の二重化/レプリケーション設定時において、マスタホスト10からのI/Oの更新ジャーナルは、正系媒体用マスタストレージ装置20でのみ出力するように設定される。その結果、正系媒体用マスタストレージ装置20とリモートストレージ装置40との間でレプリケーション(更新ジャーナルの転送)を行う設定となる。
図10は、ストレージシステムの通常運用時において、正系媒体用マスタストレージ装置20のみから更新ジャーナルが出力され、正系媒体用マスタストレージ装置20とリモートストレージ装置40との間でレプリケーションが行われる例の概念図である。なお、図10の例では、正系媒体用マスタストレージ装置2が「更新ジャーナル保存装置」および「更新ジャーナル転送装置」に設定されているものとする。
「論理ディスクへのデータ更新要求(以下、I/O要求)」を受けると、データ更新制御手段13は、二重化レプリケーション制御表14から「更新ジャーナル保存装置」情報を取得する。そして、データ更新制御手段13は、正系媒体用マスタストレージ装置20および副系媒体用マスタストレージ装置30に対してユーザデータを出力する。
正系媒体用マスタストレージ装置20の入力データ処理手段22は、仮想ディスク23の媒体231(レプリ有)にI/Oを発行する。このとき、入力データ処理手段22は、論理ディスク24の媒体241にユーザデータを格納するとともに、ユーザデータの更新ジャーナルを更新ジャーナル処理手段27に出力するように処理する。更新ジャーナル処理手段27は、取得した更新ジャーナルを、更新ジャーナル格納手段202に格納するか、更新ジャーナル退避/復元手段28を用いて更新ジャーナル保存手段29に保存する。
一方、副系媒体用マスタストレージ装置30の入力データ処理手段32は、仮想ディスク23の媒体332(レプリ無)にI/Oを発行する。このとき、入力データ処理手段32は、論理ディスク34の媒体341にユーザデータを格納するものの、ユーザデータの更新ジャーナルを更新ジャーナル処理手段37に出力しないように処理する。
ところで、「更新ジャーナル転送装置設定要求」を受けると、データ更新制御手段13は、二重化レプリケーション制御表14から「更新ジャーナル転送装置」情報を取得する。そして、データ更新制御手段13は、「更新ジャーナル転送装置」に設定されている正系媒体用マスタストレージ装置20に「更新ジャーナル転送許可I/O」を発行し、副系媒体用マスタストレージ装置30に「更新ジャーナル転送禁止I/O」を発行する。
正系媒体用マスタストレージ装置20の更新ジャーナル処理手段27は、レプリケーション制御表26に更新ジャーナル転送処理を許可する設定を格納する。
正系媒体用マスタストレージ装置20の更新ジャーナル転送手段201は、レプリケーション制御表26を参照して更新ジャーナル転送処理が許可となっていることを確認し、更新ジャーナル転送処理を実行する。すなわち、更新ジャーナル転送手段201は、更新ジャーナル格納手段202または更新ジャーナル保存手段29に格納・保存された更新ジャーナルを、更新順序を保証するようにリモートストレージ装置40に転送する(更新順序保障レプリケーション)。
一方、副系媒体用マスタストレージ装置30の更新ジャーナル転送手段301は、レプリケーション制御表36を参照して更新ジャーナル転送処理が禁止されていることを確認し、更新ジャーナル転送処理を実行しない。
そして、リモートストレージ装置40の更新ジャーナル受取手段41は、受信した更新ジャーナルを更新ジャーナル格納手段42に格納する。さらに、更新ジャーナル処理手段43は、更新ジャーナル格納手段42に格納された更新ジャーナルの内容を論理ディスク44に反映させるように処理する。
図11および図12は、正系媒体用マスタストレージ装置20の更新ジャーナル格納手段202が一杯になった場合に、レプリケーションを実行するマスタストレージ装置を切り替えるときのストレージシステムの運用状況を説明するための概念図である。
図11は、更新ジャーナル格納手段202が一杯になった直後のストレージシステムの運用状況を示す。図11において、更新ジャーナル格納手段202が一杯になると、更新ジャーナル処理手段27は、アテンション通知手段21を介してマスタホスト10のアテンション処理手段15に「更新ジャーナル格納手段空きなし通知」を通知する(図11の破線)。
「更新ジャーナル格納手段空きなし通知」を受け取ったアテンション処理手段15は、二重化/レプリケーション制御表14の「正系媒体用マスタストレージ装置の更新ジャーナル格納手段の空情報」を「空なし」に更新する。同時に、アテンション処理手段15は、「更新ジャーナル保存装置」を「副系媒体用マスタストレージ装置」に変更する。その結果、以降のマスタホスト10からのI/Oの更新ジャーナルは、副系媒体用マスタストレージ装置30のみから出力され、更新ジャーナル格納手段302に蓄えられる。
このとき、副系媒体用マスタストレージ装置30の更新ジャーナル格納手段302に蓄えられた更新ジャーナルは、ただちにリモートストレージ装置40に転送されるのではない。更新ジャーナル格納手段302に蓄えられた更新ジャーナルは、更新ジャーナル格納手段202または更新ジャーナル保存手段29に蓄えられた更新ジャーナルの転送完了後に転送される。
図12は、正系媒体用マスタストレージ装置20内に蓄えられた更新ジャーナルの転送が完了し、「更新ジャーナル転送装置」が副系媒体用マスタストレージ装置30に切り替わった後のストレージシステムの運用状況を示す。図12は、更新ジャーナル格納手段202または更新ジャーナル保存手段29に蓄えられていた更新ジャーナルの転送が完了した後の状況である。
このとき、更新ジャーナル転送手段201は、アテンション通知手段21を介して、マスタホスト10のアテンション処理手段15に「更新ジャーナル転送完了通知」を通知する(図12の破線)。
「更新ジャーナル転送完了通知」を受け取ったアテンション処理手段15は、二重化/レプリケーション制御表14の「正系媒体用マスタストレージ装置の更新ジャーナル格納手段の空情報」を「空あり」に変更する。同時に、アテンション処理手段15は、「更新ジャーナル転送装置」を「副系媒体用マスタストレージ装置」に変更するとともに、データ更新制御手段13に「更新ジャーナル転送装置設定要求」を行う。
「更新ジャーナル転送装置設定要求」を受け取ったデータ更新制御手段13は、正系媒体用マスタストレージ装置20の入力データ処理手段22に「更新ジャーナル転送禁止I/O」を発行する。併せて、データ更新制御手段13は、副系媒体用マスタストレージ装置30の入力データ処理手段32に「更新ジャーナル転送許可I/O」を発行する。その結果、図12のように、副系媒体用マスタストレージ装置30からの更新ジャーナル転送が開始され、正系媒体用マスタストレージ装置20からの更新ジャーナル転送は行われなくなる。
以上のように、本実施形態のストレージシステムの運用においては、更新ジャーナルを出力するマスタストレージ装置と、更新ジャーナルを転送するマスタストレージ装置とを独立して制御する。その結果、各マスタストレージ装置の更新ジャーナル格納手段を有効に活用することにより、マスタストレージ装置のアクセス性能を低下させることなく、更新順序保証レプリケーションを継続させることが可能となる。
なお、各マスタストレージ装置の更新ジャーナル格納手段(キャッシュ等)が両方とも一杯となった場合は、容量が大きな更新ジャーナル保存手段(ディスク媒体等)を使用する。キャッシュ等で実現する更新ジャーナル格納手段と比較すると、ディスク媒体等で実現する更新ジャーナル保存手段のアクセス性能は劣るため、マスタストレージ装置へのアクセス性能は低下する。しかしながら、更新ジャーナル保存手段を使用することによって、更新順序保証レプリケーション自体を継続することは可能となる。
(動作)
次に、図13〜図21のフローチャートを参照しながら、ソフトウェア二重化された媒体の更新順序保証レプリケーションを実行する本実施形態に係るストレージシステムの動作を説明する。
<二重化/レプリケーション設定手段>
まず、二重化/レプリケーション設定手段11によるソフトウェア二重化およびレプリケーション設定処理について説明する。図13は、ソフトウェア二重化およびレプリケーション設定時における二重化/レプリケーション設定手段11の動作を説明するためのフローチャートである。
まず、図13において、二重化/レプリケーション設定手段11は、指定されたソフトウェア二重化情報を二重化制御表12に設定する(ステップS101)。
二重化/レプリケーション設定手段11は、マスタストレージ装置2台に関するレプリケーション情報の初期値を二重化/レプリケーション制御表14に設定する(ステップS102)。
二重化/レプリケーション設定手段11は、正系媒体用マスタストレージ装置20のレプリケーション設定手段25に通知し、レプリケーション制御表26にレプリケーション関連情報を設定する(ステップS103)。
二重化/レプリケーション設定手段11は、副系媒体用マスタストレージ装置30のレプリケーション設定手段35に通知し、レプリケーション制御表36にレプリケーション関連情報を設定する(ステップS104)。
以上が、ソフトウェア二重化およびレプリケーション設定時における二重化/レプリケーション設定手段11の動作についての説明である。
<データ出力制御手段>
続いて、「論理ディスクの媒体へのI/O要求」または「更新ジャーナル転送装置設定要求」を受けた際の、マスタホスト10のデータ更新制御手段13によるデータ出力制御処理について説明する。図14および図15は、マスタホスト10のデータ更新制御手段13の動作を説明するためのフローチャートである。
まず、図14において、データ更新制御手段13は、受信した要求が論理ディスク24へのI/O要求か否かを判断する(ステップS201)。
論理ディスクの媒体241へのI/O要求だった場合(ステップS201でYes)、データ更新制御手段13は、二重化/レプリケーション制御表14から「更新ジャーナル保存装置」情報を取得する(ステップS202)。一方、ステップS201において、論理ディスクの媒体241へのI/O要求ではなかった場合(ステップS201でNo)、図15のステップS208に進む(図15のA〜B)。
ここで、データ更新制御手段13は、「更新ジャーナル保存装置」が正系媒体用マスタストレージ装置20であるか否かを判断する(ステップS203)。
「更新ジャーナル保存装置」が正系媒体用マスタストレージ装置20の場合(ステップS203でYes)、データ更新制御手段13は、正系媒体用マスタストレージ装置20の仮想ディスク23の媒体231(レプリ有)にI/Oを発行する(ステップS204)。
そして、データ更新制御手段13は、副系媒体用マスタストレージ装置30の仮想ディスク33の媒体332(レプリ無)にI/Oを発行する(ステップS205)。ここで、ステップS203でYesの場合のフローは終了となる。
「更新ジャーナル保存装置」が副系媒体用マスタストレージ装置30の場合(ステップS203でNo)、データ更新制御手段13は、副系媒体用マスタストレージ装置30の仮想ディスク33の媒体331(レプリ有)にI/Oを発行する(ステップS206)。
そして、データ更新制御手段13は、正系媒体用マスタストレージ装置20の仮想ディスク23の媒体232(レプリ無)にI/Oを発行する(ステップS207)。ここで、ステップS203でNoの場合のフローは終了となる。
続いて、図15を用いて、図14のステップS201において、論理ディスク24へのI/O要求ではなかった場合(ステップS201でNo)における処理について説明する(図15のA〜B)。
図15において、データ更新制御手段13は、「更新ジャーナル転送装置設定要求」であるか否かを判断する(ステップS208)。
「更新ジャーナル転送装置設定要求」の場合(ステップS208でYes)、データ更新制御手段13は、二重化/レプリケーション制御表14から「更新ジャーナル転送装置」情報を取得する(ステップS209)。一方、更新ジャーナル転送装置設定要求」ではなかった場合(ステップS208でNo)、図15のフローは終了となる。
ここで、ステップS208でYesの場合、データ更新制御手段13は、「更新ジャーナル転送装置」が正系媒体用マスタストレージ装置20であるか否かを判断する(ステップS210)。
「更新ジャーナル転送装置」が正系媒体用マスタストレージ装置20の場合(ステップS210でYes)、データ更新制御手段13は、正系媒体用マスタストレージ装置20に「更新ジャーナル転送許可I/O」を発行する(ステップS211)。
そして、データ更新制御手段13は、副系媒体用マスタストレージ装置30に「更新ジャーナル転送禁止I/O」を発行する(ステップS212)。ここで、ステップS210でYesの場合のフローは終了となる。
一方、「更新ジャーナル転送装置」が副系媒体用マスタストレージ装置30の場合(ステップS210でNo)、データ更新制御手段13は、副系媒体用マスタストレージ装置30に「更新ジャーナル転送許可I/O」を発行する(ステップS213)。
そして、データ更新制御手段13は、正系媒体用マスタストレージ装置20に「更新ジャーナル転送禁止I/O」を発行する(ステップS214)。ここで、ステップS210でNoの場合のフローは終了となる。
以上が、「論理ディスクの媒体へのI/O要求」または「更新ジャーナル転送装置設定要求」を受けた際の、マスタホスト10のデータ更新制御手段13の動作についての説明である。
<アテンション処理手段>
続いて、図16〜図18を用いて、正系媒体用マスタストレージ装置20の更新ジャーナル格納手段202の空き状況に応じたマスタホスト10のアテンション処理手段15の動作について説明する。図16〜図18は、マスタホスト10のアテンション処理手段15の動作を説明するためのフローチャートである。
まず、図16において、アテンション処理手段15は、正系媒体用マスタストレージ装置20または副系媒体用マスタストレージ装置30からアテンションを受け取る(ステップS301)。
ここで、アテンション処理手段15は、受け取ったアテンションが正系媒体用マスタストレージ装置20からの通知であるか否かを判断する(ステップS302)。
正系媒体用マスタストレージ装置20からの通知だった場合(ステップS302でYes)、アテンション処理手段15は、受け取ったアテンションが「更新ジャーナル格納手段空なし通知」であるか否かを判断する(ステップS303)。一方、正系媒体用マスタストレージ装置20からの通知ではなかった場合(ステップS302でNo)、すなわち副系媒体用マスタストレージ装置30からの通知であった場合、図18に進む(図18のE〜F)。
ステップS303において、「更新ジャーナル格納手段空なし通知」の場合(ステップS303でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14に設定を行う。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「正系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」を「空なし」に設定する(ステップS304)。一方、「更新ジャーナル格納手段空なし通知」ではない場合(ステップS303でNo)、図17のステップS307に進む(図17のC〜D)。
さらに、アテンション処理手段15は、二重化/レプリケーション制御表14の副系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報が「空あり」であるか否かを判断する(ステップS305)。
「副系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」が「空あり」の場合(ステップS305でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14に設定を行う。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル保存装置」を「副系媒体用マスタストレージ装置」に設定する(ステップS306)。一方、「副系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」が「空なし」の場合(ステップS305でNo)、図16のフローは終了となる。
続いて、図16のステップS303において、アテンション処理手段15が受け取ったアテンションが「更新ジャーナル格納手段空なし通知」ではない場合(図16のステップS303でNo)について、図17を用いて説明する(図17のC〜D)。
図17において、アテンション処理手段15は、受け取ったアテンションが「更新ジャーナル転送完了通知」であるか否かを判断する(ステップS307)。
「更新ジャーナル転送完了通知」の場合(ステップS307でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の「正系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」を「空あり」に設定する(ステップS308)。一方、「更新ジャーナル転送完了通知」ではなかった場合(ステップS307でNo)、図17のフローは終了とする。
さらに、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル保存装置」が「副系媒体用マスタストレージ装置」であるか否かを判断する(ステップS309)。
「更新ジャーナル保存装置」が「副系媒体用マスタストレージ装置」の場合(ステップS309でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の設定を行う。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル転送装置」に「副系媒体用マスタストレージ装置」を設定する(ステップS310)。一方、「更新ジャーナル保存装置」が「副系媒体用マスタストレージ装置」ではなかった場合(ステップS309でNo)、図17のフローは終了とする。
そして、アテンション処理手段15は、データ更新制御手段13に「更新ジャーナル転送装置設定要求」を行う(ステップS311)。ここで、図17のフロー(C〜D)は終了となる。
続いて、図16のステップS302において、アテンション処理手段15が受け取ったアテンションが「副系媒体用マスタストレージ装置30からの通知」であった場合(図16のステップS302でNo)について図18を用いて説明する(図18のE〜F)。
図18において、アテンション処理手段15は、受け取ったアテンションが「更新ジャーナル格納手段空なし通知」であるか否かを判断する(ステップS312)。
「更新ジャーナル格納手段空なし通知」の場合(ステップS312でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の設定を行う。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「副系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」を「空なし」に設定する(ステップS313)。一方、「更新ジャーナル格納手段空なし通知」ではなかった場合(ステップS312でNo)、ステップS316に進む。
さらに、アテンション処理手段15は、二重化/レプリケーション制御表14の「正系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」が「空あり」であるか否かを判断する(ステップS314)。
「正系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」が「空あり」の場合(ステップS314でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の設定をする。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル保存装置」を「正系媒体用マスタストレージ装置」に設定する(ステップS315)。一方、「正系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」が「空なし」の場合(ステップS314でNo)、図18のフローは終了とする。
ここで、ステップS312において、アテンション処理手段15が受け取ったアテンションが「更新ジャーナル格納手段空なし通知」ではない場合(ステップS312でNo)について説明する。
「更新ジャーナル格納手段空なし通知」ではない場合(ステップS312でNo)、アテンション処理手段15は、受け取ったアテンションが「更新ジャーナル転送完了通知」であるか否かを判断する(ステップS316)。
「更新ジャーナル転送完了通知」の場合(ステップS316でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の「副系媒体用マスタストレージ装置_更新ジャーナル格納手段の空情報」を「空あり」に設定する(ステップS317)。一方、「更新ジャーナル転送完了通知」ではなかった場合(ステップS316でNo)、図18のフローは終了とする。
さらに、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル保存装置」が「正系媒体用マスタストレージ装置」であるか否かを判断する(ステップS318)。
「更新ジャーナル保存装置」が「正系媒体用マスタストレージ装置」の場合(ステップS318でYes)、アテンション処理手段15は、二重化/レプリケーション制御表14の設定をする。すなわち、アテンション処理手段15は、二重化/レプリケーション制御表14の「更新ジャーナル転送装置」を「正系媒体用マスタストレージ装置」に設定する(ステップS319)。一方、「更新ジャーナル保存装置」が「副系媒体用マスタストレージ装置」の場合(ステップS318でNo)、図18のフローは終了とする。
そして、アテンション処理手段15は、データ更新制御手段13に「更新ジャーナル転送装置設定要求」を行う(ステップS320)。ここで、図18のフロー(E〜F)は終了となる。
以上が、正系媒体用マスタストレージ装置20の更新ジャーナル格納手段202の空き状況に応じたマスタホスト10のアテンション処理手段15の動作についての説明である。
<入力データ処理手段>
続いて、図19を用いて、マスタストレージ装置の入力データ処理手段の動作について説明する。図19は、正系媒体用マスタストレージ装置20の入力データ処理手段22、または副系媒体用マスタストレージ装置30の入力データ処理手段31の動作を説明するためのフローチャートである。なお、図19における動作主体は、正系媒体用マスタストレージ装置20の入力データ処理手段22、または副系媒体用マスタストレージ装置30の入力データ処理手段31のいずれかであるため、以下の説明においては単に入力データ処理手段と記載する。また、図19の説明に関しては、他の構成要素についても符号を省いて記載する。
まず、図19において、入力データ処理手段は、受け取ったI/Oが「更新ジャーナル転送許可I/O」であるか否かを判断する(ステップS401)。
「更新ジャーナル転送許可I/O」の場合(ステップS401でYes)、入力データ処理手段は、レプリケーション制御表の「更新ジャーナル転送処理」を「許可」に設定する(ステップS402)。
一方、「更新ジャーナル転送許可I/O」ではなかった場合(ステップS401でNo)、入力データ処理手段は、受け取ったI/Oが「更新ジャーナル転送禁止I/O」であるか否かを判断する(ステップS403)。
「更新ジャーナル転送禁止I/O」の場合(ステップS403でYes)、入力データ処理手段は、レプリケーション制御表の「更新ジャーナル転送処理」を「禁止」に設定する(ステップS404)。
一方、「更新ジャーナル転送禁止I/O」ではなかった場合(ステップS403でNo)、入力データ処理手段は、受け取ったI/Oが仮想ディスクの「媒体(レプリ有)」へのI/Oであるか否かを判断する(ステップS405)。
仮想ディスクの「媒体(レプリ有)」へのI/Oの場合(ステップS405でYes)、入力データ処理手段は、更新ジャーナル処理手段に更新ジャーナルを渡す(ステップS406)。
そして、入力データ処理手段は、仮想ディスクの「媒体(レプリ有)」に対応する論理ディスクの「媒体」を更新する(ステップS407)。
一方、仮想ディスクの「媒体(レプリ有)」へのI/Oではなかった場合(ステップS405でNo)、入力データ処理手段は、仮想ディスクの「媒体(レプリ無)」へのI/Oであるか否かを判断する(ステップS408)。
仮想ディスクの「媒体(レプリ無)」へのI/Oの場合(ステップ408でYes)、入力データ処理手段は、仮想ディスクの「媒体(レプリ無)」に対応する論理ディスクの「媒体」を更新する(ステップS409)。ここで、図19のフローは終了となる。
以上が、マスタストレージ装置の入力データ処理手段の動作についての説明である。
<更新ジャーナル処理手段>
続いて、図20を用いて、マスタストレージ装置の更新ジャーナル処理手段の動作について説明する。図20は、正系媒体用マスタストレージ装置20の更新ジャーナル処理手段27、または副系媒体用マスタストレージ装置30の更新ジャーナル処理手段37の動作を説明するためのフローチャートである。なお、図20における動作主体は、正系媒体用マスタストレージ装置20の更新ジャーナル処理手段27、または副系媒体用マスタストレージ装置30の更新ジャーナル処理手段37のいずれかであるため、単に更新ジャーナル処理手段と記載する。また、図20の説明に関しては、他の構成要素についても符号を省いて記載する。
まず、図20において、更新ジャーナル処理手段は、更新ジャーナル格納手段に空きが無いか否かを判断する(ステップS501)。
更新ジャーナル格納手段の空きが無い場合(ステップS501でYes)、更新ジャーナル処理手段は、更新ジャーナル退避/復元手段に更新ジャーナルを渡す(ステップS502)。
そして、更新ジャーナル退避/復元手段は、更新ジャーナル処理手段から渡された更新ジャーナルを更新ジャーナル保存手段に保存する(ステップS503)。ここで、ステップS501でYesの場合、図20のフローは終了となる。
一方、ステップS501で更新ジャーナル格納手段の空きがあった場合(ステップS501でNo)、更新ジャーナル処理手段は、更新ジャーナル格納手段の空きが5%以下であるか否かを判断する(ステップS504)。なお、ステップS504における更新ジャーナル格納手段の空きの判断基準は、5%に限らず任意の数値に設定できる。ここでは、一例として、5%という数値を挙げる。
更新ジャーナル格納手段の空が5%以下だった場合(ステップS504でYes)、更新ジャーナル処理手段は、アテンション通知手段に「更新ジャーナル格納手段空きなし」を通知する(ステップS505)。
アテンション通知手段は、マスタホスト10に「更新ジャーナル格納手段空きなし通知」を通知する(ステップS506)。
更新ジャーナル処理手段は、更新ジャーナル格納手段に更新ジャーナルを格納する(ステップS507)。ここで、ステップS504でYesの場合、図20のフローは終了となる。
ところで、ステップS504で更新ジャーナル格納手段の空が5%以上だった場合(ステップS504でNo)、更新ジャーナル処理手段は、更新ジャーナル格納手段に更新ジャーナルを格納する(ステップS508)。ここで、図20のフローは終了となる。
以上が、マスタストレージ装置の更新ジャーナル処理手段の動作についての説明である。
<更新ジャーナル転送手段>
最後に、図21を用いて、マスタストレージ装置の更新ジャーナル転送手段の動作について説明する。図21は、正系媒体用マスタストレージ装置20の更新ジャーナル転送手段201、または副系媒体用マスタストレージ装置30の更新ジャーナル転送手段301の動作を説明するためのフローチャートである。なお、図21における動作主体は、正系媒体用マスタストレージ装置20の更新ジャーナル転送手段201、または副系媒体用マスタストレージ装置30の更新ジャーナル転送手段301のいずれかであるため、単に更新ジャーナル転送手段と記載する。また、図21の説明に関しては、他の構成要素についても符号を省いて記載する。
まず、図21において、更新ジャーナル転送手段は、レプリケーション制御表を参照し、「更新ジャーナル転送処理」=「許可」であるか否かを判断する(ステップS601)。
ステップS601で「更新ジャーナル転送処理」=「許可」ではない場合、すなわち「更新ジャーナル転送処理」=「禁止」の場合(ステップS601でNo)、何もしないでステップS601に戻る。
一方、ステップS601で「更新ジャーナル転送処理」=「許可」の場合(ステップS601でYes)、更新ジャーナル転送手段は、更新ジャーナル格納手段に更新ジャーナルがあるか否かを判断する(ステップS602)。
更新ジャーナル格納手段に更新ジャーナルがある場合(ステップS602でYes)、更新ジャーナル転送手段は、更新ジャーナル格納手段の更新ジャーナルをリモートストレージ装置40に転送する(ステップS606)。
そして、更新ジャーナル転送手段は、転送した更新ジャーナルを更新ジャーナル格納手段から削除し(ステップS607)、ステップS601に戻る。
一方、ステップS602で更新ジャーナル格納手段に更新ジャーナルがない場合(ステップS602でNo)、更新ジャーナル転送手段は、更新ジャーナル保存手段に更新ジャーナルがあるか否かを判断する(ステップS603)。
ステップS603で更新ジャーナル保存手段に更新ジャーナルがある場合(ステップS603でYes)、更新ジャーナル転送手段は、更新ジャーナル保存手段の更新ジャーナルをリモートストレージ装置40に転送する(ステップS608)。
そして、更新ジャーナル転送手段は、転送した更新ジャーナルを更新ジャーナル保存手段から削除し(ステップS609)、ステップS601に戻る。
一方、ステップS603で更新ジャーナル保存手段に更新ジャーナルがなかった場合(ステップS603でNo)、更新ジャーナル転送手段は、アテンション通知手段に「更新ジャーナル転送完了」を通知する(ステップS604)。
そして、アテンション通知手段は、マスタホスト10に「更新ジャーナル転送完了通知」を通知する(ステップS605)。ここで、図21のフローは終了となる。
以上が、マスタストレージ装置の更新ジャーナル転送手段の動作についての説明である。
ソフトウェア二重化された媒体の更新順序保証レプリケーションを実行する本実施形態に係るストレージシステムの動作についての説明は以上である。ただし、以上の図13〜図21のフローチャートにおける動作順は、処理内容が変わらない限り任意に入れ替えてもよい。
(効果)
以上の本実施形態によれば、ソフトウェア二重化された論理ディスクの更新順序保証レプリケーションにおいて、一時的なアクセス負荷の増大や回線障害が発生しても、更新順序保証レプリケーションを継続することが可能となる。このとき、本実施形態においては、論理ディスクのアクセス性能を低下させることがなく、また、追加装置も不要である。
その理由は、本実施形態によれば、更新ジャーナル保存装置と更新ジャーナル転送装置とを独立させて別々に管理することにより、2台のマスタストレージ装置の更新ジャーナル格納手段を有効に利用することができるからである。
また、本実施形態によれば、一時的なアクセス負荷の増大や回線障害が発生しても、更新順序保証レプリケーションを継続できる遠隔レプリケーションシステムを構成することが可能となる。
(変形例)
本実施形態に係るストレージシステムとしては、二重化されたマスタストレージの例について説明した。本実施形態に係るストレージシステムは、三重化や四重化などといったように多重化されたマスタストレージについても本実施形態に係る手法を適用できる。図22には、変形例として、第nのマスタストレージ9を備え、三重化以上に多重化(ソフトウェア多重化)されたマスタストレージを含むストレージシステムについて図示した(nは任意の自然数)。第nのマスタストレージ9も、第1のマスタストレージ2および第2のマスタストレージ3と同様の機能構成を持つ。
変形例に係るストレージシステムでは、第1のマスタストレージ2、第2のマスタストレージ3および第nのマスタストレージ9によって、更新ジャーナルを含むユーザデータを格納するためにシステムの可用性が向上する。しかしながら、変形例に係るストレージシステムとしては、同じ構成のマスタストレージを多重化して制御する必要があるため、多重化の程度によっては装置コストや運用コストなどが過剰となってしまう。そのため、三重化以上で多重化する際には、ストレージシステムのコストを考慮してシステムを構成する必要がある。
(第2の実施形態)
次に、図23および図24を用いて、本発明の第2の実施形態に係るストレージシステムについて説明する。
図23は、第2の実施形態に係るストレージシステムの機能構成を示す概念図である。第2の実施形態に係るストレージシステムのシステム構成(図23)は、第1の実施形態に係るストレージシステムのシステム構成(図9)に、ネットワークスイッチ70を追加した構成をもつ。
第1の実施形態においては、更新ジャーナルを転送するマスタストレージの制御を、マスタホスト10とマスタストレージ装置(正系媒体用マスタストレージ装置20および副系媒体用マスタストレージ装置30)との間で行った。それに対し、第2の実施形態においては、更新ジャーナルを転送するマスタストレージ装置の制御をネットワークスイッチ70によって行う。つまり、第2の実施形態においては、レプリケーション制御表には「更新ジャーナル転送処理」の項目が無く、データ更新制御手段および入力データ処理手段には「更新ジャーナル転送許可I/O」および「更新ジャーナル転送禁止I/O」に関する処理がない。
その代わりに、第2の実施形態においては、ネットワークスイッチ70が図24のフローチャートに示す制御を行うことにより、更新ジャーナルを転送するマスタストレージ装置を制御する。
ここで、図24を用いて、第2の実施形態に係るストレージシステムのネットワークスイッチ70の動作について説明する。
まず、図24において、ネットワークスイッチ70は、ポート72(以下、ポート2)を閉じる(ステップS701)。
そして、ネットワークスイッチ70は、ポート71(以下、ポート1)を開く(ステップS702)。
ネットワークスイッチ70は、ポート1から受信したデータをリモートストレージ装置40に送信する(ステップS703)。
ここで、一定時間ポート1からのデータ通信が無い場合(ステップS704でYes)、ネットワークスイッチ70は、ポート1を閉じる(ステップS705)。そして、ネットワークスイッチ70は、ポート2を開く(ステップS706)。
一方、一定時間の間にポート1からのデータ通信があった場合(ステップS704でNo)、ステップS703に戻る。
ネットワークスイッチ70は、ポート2から受信したデータをリモートストレージ装置40に送信する(ステップS707)。
ここで、一定時間ポート2からのデータ通信が無い場合(ステップS708でYes)、ステップS701に戻る。一方、一定時間ポート2からのデータ通信があった場合(ステップS708でNo)、ステップS707に戻る。なお、データ通信の有無の判定待ち時間は、任意に設定できる。
以上が、第2の実施形態に係るストレージシステムのネットワークスイッチ70の動作についての説明である。
第2の実施形態によれば、更新ジャーナルを転送するマスタストレージ装置の制御をネットワークスイッチによって行うことが可能となる。その結果、レプリケーション制御表から「更新ジャーナル転送処理」の項目を省き、データ更新制御手段および入力データ処理手段による「更新ジャーナル転送許可I/O」および「更新ジャーナル転送禁止I/O」に関する処理を省略できる。
なお、第2の実施形態に係るストレージシステムは、第1の実施形態の変形例のようにソフトウェア多重化されたマスタストレージを備える場合にも適用可能である。
(第3の実施形態)
図25のように、第3の実施形態に係るストレージシステムは、第1の実施形態に係るストレージシステムにリモートホストを追加した構成をもつ。また、第3の実施形態に係るストレージシステムのリモートホスト80は、図26のように、マスタホスト10(図2)と同様の構成を有する。すなわち、リモートホスト80は、二重化/レプリケーション設定手段81、二重化制御表82、データ更新制御手段83、二重化レプリケーション制御表84およびアテンション処理手段85を有する。なお、リモートホスト80の構成は、マスタホスト10の構成と同様であるため、各構成要素の詳細な説明は省略する。
ストレージシステムの通常運用において、リモートストレージ装置40には、マスタホスト10に蓄積されるユーザデータや更新ジャーナルの複製を格納させておく。なお、マスタホスト80からリモートホスト80へは、任意のタイミングで切り替えることができる。
マスタホスト10に何らかの障害が発生した場合、マスタホスト10の機能をリモートホスト80に切り替える。例えば、マスタホスト10の設置地域に災害が発生した場合に、災害の影響を受けなかったリモートホスト80にマスタホスト10の機能を切り替えるディザスタリカバリシステムを構成することができる。
第3の実施形態に係るストレージシステムによれば、ディザスタリカバリシステムを構成することができる。また、通常のシステム運用時においても、正系媒体用マスタストレージ装置20をメインテナンスする場合などに、任意のタイミングでマスタストレージ装置を切り替えるようにすることが可能となり、可用性を向上できる。
一般に、装置間レプリケーションは、ユーザデータの遠隔地バックアップやマスターサイトが被災した場合のリモートサイトでの業務再開の目的で利用される。本実施形態に係るストレージシステムによれば、マスタホスト10に障害が及んだ場合に、リモートホスト80にストレージシステムのホスト機能を切り替えることができるため、より信頼性の高いディザスタリカバリシステムを構築することができる。
なお、第3の実施形態に係るストレージシステムは、第1の実施形態の変形例のようにソフトウェア多重化されたマスタストレージを備える場合にも適用可能である。
本発明の実施形態に係るストレージシステムのハードウェアは、パーソナルコンピュータやワークステーション、サーバ、ストレージなどの装置を組み合わせることによって実現される。本実施形態に係るストレージシステムを実現する装置は、例えば、中央演算処理装置や主記憶装置、キャッシュメモリ、不揮発性メモリ、揮発性メモリ、ネットワークインターフェース、補助記憶装置などのハードウェアを含む構成とすることができる。また、本実施形態に係るストレージシステムを実現する装置には、ユーザの操作を受け付けるキーボードやタッチパネル、マウスなどの入力機器、操作画面を表示するためのディスプレイなどの表示機器といった周辺機器を接続できる。また、本実施形態に係るストレージシステムを実現する装置は、適切なオペレーティングシステムの制御によって動作する。
これまで説明してきた本発明の実施形態に係るストレージシステムの制御方法は、同様の構成を有するストレージシステムであれば、第1〜第3の実施形態とは異なる構成をもつストレージシステムに関しても適用することができる。また、本発明の実施形態に係るストレージシステムの制御処理は、上述の制御方法をコンピュータに実行させる制御プログラムを含むソフトウェアによって実現することも可能である。また、本発明のストレージシステムの制御プログラムを格納したプログラム記録媒体も本発明の範囲に含まれる。プログラム記録媒体としては、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスクなどを挙げることができる。
(関連技術)
図27には、関連技術として、正系媒体用マスタストレージ装置200と副系媒体用マスタストレージ装置300とを用いて媒体をソフトウェア二重化している一般的なストレージシステムの一例を示す。関連技術のストレージシステムは、マスタホスト100、正系媒体用マスタストレージ装置200、副系媒体用マスタストレージ装置300およびリモートストレージ装置400がネットワーク600を介して接続された構成をもつ。
マスタホスト100は、二重化/レプリケーション設定手段101、二重化制御表102、データ更新制御手段103を含む。正系媒体用マスタストレージ装置200は、入力データ処理手段202、レプリケーション設定手段205、更新ジャーナル処理手段207を有する。さらに、正系媒体用マスタストレージ装置200は、媒体240を含む論理ディスク204、レプリケーション制御表206、更新ジャーナル転送手段211および更新ジャーナル格納手段212を含む。副系媒体用マスタストレージ装置300は、入力データ処理手段302、レプリケーション設定手段305、更新ジャーナル処理手段307を有する。さらに、副系媒体用マスタストレージ装置300は、媒体340を含む論理ディスク304、レプリケーション制御表306、更新ジャーナル転送手段311および更新ジャーナル格納手段312を含む。なお、各構成要素の詳細な説明については省略する。
図27のようなストレージシステムにおいて、正系媒体用マスタストレージ装置200および副系媒体用マスタストレージ装置300の両装置を個々にレプリケーションする場合、内容が全く同じデータを正・副で2回レプリケートすることになる。その結果、回線容量が2倍以上必要となり、無駄が多くなる。
そのため、正系媒体用マスタストレージ装置20のみをレプリケートする方法が用いられることもある。しかしながら、一方のマスタストレージ装置のみをレプリケーションする方法では、一時的なマスタホスト10からのデータ更新量の増大や回線障害によって、更新順序保証レプリケーションが継続できない可能性があった。なぜならば、正系媒体用マスタストレージ装置20の更新ジャーナル格納手段27が一杯になってしまうと、マスタホスト10からのI/Oを止めない限り、更新順序通りにリモートストレージ装置40に更新ジャーナルを転送することができないためである。
それに対し、本発明実施形態に係るストレージシステムによれば、正系媒体用マスタストレージ装置20の更新ジャーナル格納手段27が一杯になっても、更新順序通りにリモートストレージ装置40に更新ジャーナルを転送することができる。このとき、本実施形態に係るストレージシステムにおいては、マスタホスト10からのI/Oを止めなくてもよいため、更新順序を保証したレプリケーションを継続して実行することが可能となる。
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。