JP2017010102A - 二重系システム - Google Patents
二重系システム Download PDFInfo
- Publication number
- JP2017010102A JP2017010102A JP2015121869A JP2015121869A JP2017010102A JP 2017010102 A JP2017010102 A JP 2017010102A JP 2015121869 A JP2015121869 A JP 2015121869A JP 2015121869 A JP2015121869 A JP 2015121869A JP 2017010102 A JP2017010102 A JP 2017010102A
- Authority
- JP
- Japan
- Prior art keywords
- recording
- control unit
- control mechanism
- unit
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】高価な共有ディスク装置を利用せずに、スプリットブレインを回避する二重系システムを提供する。
【解決手段】待機系の第2の仮想計算機21は、第1の仮想計算機11との間でハートビート監視を行い、第1の仮想計算機11からのハートビートの途絶を検知した場合に、第2の仮想計算機21を現用系として設定し、アプリケーション22を起動する第2の二重系制御機構24を有する。現用系の第1の仮想計算機11は、第2の仮想計算機21との間でハートビート監視を行う。そして、第1の仮想計算機11は、第2の二重系制御機構24がハートビートの途絶を検知した後、第1の仮想計算機11が再び現用系として第1の記録部へのアクセスを行うと、第1の仮想計算機11を停止させる第1の二重系制御機構14を有する。
【選択図】図1
【解決手段】待機系の第2の仮想計算機21は、第1の仮想計算機11との間でハートビート監視を行い、第1の仮想計算機11からのハートビートの途絶を検知した場合に、第2の仮想計算機21を現用系として設定し、アプリケーション22を起動する第2の二重系制御機構24を有する。現用系の第1の仮想計算機11は、第2の仮想計算機21との間でハートビート監視を行う。そして、第1の仮想計算機11は、第2の二重系制御機構24がハートビートの途絶を検知した後、第1の仮想計算機11が再び現用系として第1の記録部へのアクセスを行うと、第1の仮想計算機11を停止させる第1の二重系制御機構14を有する。
【選択図】図1
Description
本発明は、例えば、複数の物理計算機に搭載される仮想計算機が現用系と待機系に設定される二重系システムに関する。
近年、仮想計算機を実行する複数の物理計算機を備えた計算機システムがある。このような計算機システムは、業務を遂行する現用系の仮想計算機を稼働する物理計算機と、現用系の仮想計算機に障害が発生した場合に業務を引き継ぐ待機系の仮想計算機を稼働する物理計算機を用意することで冗長化構成とした二重系システムとして用いられる。このように現用系の業務を待機系に引き継ぐ方法は系切替えと呼ばれており、二重系システムの無停止運転を可能とする。
系切替えの実行判断は、系間で定期的にハートビート(生存情報)を伝達し、ハートビートが途絶した時に他系に障害が発生したと判断するハートビート監視方式を用いて行われる。系切替え時には、現用系で使用していたデータを待機系に引き継ぐ必要がある。このデータの引継ぎには外部記憶装置が利用される。一般的には複数ポートを有するSCSI(Small Computer System Interface)インタフェースで現用系と待機系の仮想計算機が接続される共有ディスク装置が利用されていた。
一般的な二重系システムは、上述したハートビート監視による系切替え機能と、共有ディスク装置を用いたデータの引継ぎ機能によって構築される。しかし、共有ディスク装置は高価であり、安価に二重系システムを構築できなかった。そこで、共有ディスク装置を使用しない安価な二重系システムの構築方法が検討されていた。
この方法として、現用系の計算機に搭載される物理ディスクと待機系の計算機に搭載される物理ディスクにおいて、ネットワークを介したミラーリング機構を利用するものがある。この方法は、現用系で書き込まれたデータを待機系にも書き込むことで、現用系と待機系の仮想計算機の物理ディスクを同期させて、現用系から待機系にデータを引き継ぐことができる。
二重系システムの例として特許文献1には、「現用系ノードのオリジナルディスクの障害発生が検出されるときに、待機系ノードを運用状態に切替え、それまで現用系ノードとして動作していたノードを停止させて二重化システムを停止させる」と記載されている。
ここで、特許文献1には、物理計算機単位で現用系と待機系の二重系システムを構築することが記載されているが、仮想計算機単位で二重系システムを構築することについては記載されていない。つまり、特許文献1に記載された技術は仮想計算機を用いた二重系システムを想定したものではない。このため、仮想計算機を搭載した二重系システムに特許文献1に記載されたミラーディスク障害検知方法を適用するためには、仮想計算機が物理ディスクの障害を検知する手段が別途必要となる。
さらに、特許文献1に開示された二重系システムは、ミラーリングを行う物理ディスクの障害と、ミラーリングを行う通信経路の障害のみを系切替えの契機としている。実際には、現用系の計算機が実行するアプリケーション(ソフトウェア)による処理負荷の上昇等で業務が正しく遂行されない場合についても、待機系へと業務を引き継がなければならない。しかし、特許文献1に記載された方法では、アプリケーション障害による業務遂行の負荷を検知して系切替えを実行できないという問題があった。
この問題を解決するため、仮想計算機を実行する物理計算機上で、ハートビート監視方式を特許文献1に開示された二重系システムに適用し、アプリケーション障害等による処理負荷が上昇した場合のハートビートの途絶を系切替えの契機とする方法が考えられる。
しかし、ハートビート監視方式では、ハートビートが途絶したことを系切替えの契機とする。このため、現用系の計算機の処理負荷が一時的に上昇したことにより、一時的にハートビートを待機系に伝達できなかった場合、系切替えが行われた後に再び現用系として計算機が動作回復し、両系の計算機が現用系となるスプリットブレインと呼ばれる問題がある。スプリットブレインは、上述した共有ディスク装置を利用したデータ引継ぎ方法を用いることで回避が可能である。つまり、スプリットブレインの回避は、共有ディスク装置に備わる機構を利用し、一方の計算機からのI/O(Input/Output)要求のみを受け付け、もう一方の計算機からのI/O要求に対し拒否通知を返答する仕組みにより実現される。
この仕組みを利用すると、系切替えが行われた後に再び現用系として動作回復した計算機は、自らのI/O要求に対して拒否通知が返答されることで他系が共有ディスク装置にアクセス中であることを検知し、動作を停止する。しかし、共有ディスク装置は高価であるため、安価に二重系システムを構築できなかった。
本発明はこのような状況に鑑みて成されたものであり、共有ディスク装置を利用せずにスプリットブレインを回避する二重系システムを提供することを目的とする。
本発明に係る二重系システムは、第1の物理計算機と第2の物理計算機を備える。
第1の物理計算機は、業務を遂行する現用系として稼働する第1の仮想計算機及び第1の記録部を有し、業務に用いられるアプリケーションが処理したデータを第1の記録部に記録する。
第2の物理計算機は、現用系の業務停止に伴い業務を引き継ぐ待機系として稼働する第2の仮想計算機及び第2の記録部を有し、第1の物理計算機が第1の記録部に記録したデータを第2の記録部に記録する。
第2の仮想計算機は、第1の仮想計算機との間でハートビート監視を行い、第1の仮想計算機からのハートビートの途絶を検知した場合に、第2の仮想計算機を現用系として設定し、アプリケーションを起動する第2の二重系制御部を有する。
第1の仮想計算機は、第2の仮想計算機との間でハートビート監視を行い、第2の二重系制御部がハートビートの途絶を検知した後、第1の仮想計算機が再び現用系として第1の記録部へのアクセスを行うと、第1の仮想計算機を停止させる第1の二重系制御部を有する。
第1の物理計算機は、業務を遂行する現用系として稼働する第1の仮想計算機及び第1の記録部を有し、業務に用いられるアプリケーションが処理したデータを第1の記録部に記録する。
第2の物理計算機は、現用系の業務停止に伴い業務を引き継ぐ待機系として稼働する第2の仮想計算機及び第2の記録部を有し、第1の物理計算機が第1の記録部に記録したデータを第2の記録部に記録する。
第2の仮想計算機は、第1の仮想計算機との間でハートビート監視を行い、第1の仮想計算機からのハートビートの途絶を検知した場合に、第2の仮想計算機を現用系として設定し、アプリケーションを起動する第2の二重系制御部を有する。
第1の仮想計算機は、第2の仮想計算機との間でハートビート監視を行い、第2の二重系制御部がハートビートの途絶を検知した後、第1の仮想計算機が再び現用系として第1の記録部へのアクセスを行うと、第1の仮想計算機を停止させる第1の二重系制御部を有する。
本発明によれば、高価な共有ディスク装置を利用せずにスプリットブレインを回避することが可能となるため、安価に二重系システムを構築することができる。
上記した以外の課題、構成及び効果は、以下の実施の形態例の説明により明らかにされる。
上記した以外の課題、構成及び効果は、以下の実施の形態例の説明により明らかにされる。
以下、本発明を実施するための形態例について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
<二重系システムの構成例>
始めに、一実施の形態例に係る二重系システムについて説明する。
図1は、二重系システム1の全体構成例を示すブロック図である。
始めに、一実施の形態例に係る二重系システムについて説明する。
図1は、二重系システム1の全体構成例を示すブロック図である。
二重系システム1は、物理ディスク18(第1の記録部の一例)を有する物理計算機10(第1の物理計算機の一例)と、物理ディスク28(第2の記録部の一例)を有する物理計算機20(第2の物理計算機の一例)とを備えている。二重系システム1は、クラスタシステムとして用いられる。物理計算機10,20は、ハートビート通信路30、ミラーディスク通信路31(ネットワークの一例)により相互に接続される。また、物理計算機10,20は、外部通信路32により相互に接続され、ユーザが使用する業務用端末40と業務情報を送受信することが可能である。ハートビート通信路30とミラーディスク通信路31は、多重に冗長化された1本の通信路であってもよい。
物理計算機10は、ミラーディスク通信路31を通じて物理ディスク18と、物理計算機20の物理ディスク28とのミラーリング処理を制御するミラーディスク制御機構16を備える。ミラーディスク制御機構16は、ホストOS(Operating System)15によって動作が制御される。ホストOS15は、仮想計算機11を現用系として稼働させる基盤であり、仮想計算機11が業務を遂行する現用系として稼働するために必要な仮想的なハードウェアを提供する。ホストOS15は、仮想計算機11が待機系として稼働するために必要な仮想的なハードウェアを提供することもできる。
仮想計算機11(第1の仮想計算機の一例)は、アプリケーション12と、ディスクアクセス機構13と、二重系制御機構14と、を有し、ホストOS15が提供する仮想的なハードウェア上に構築される。仮想計算機11は、1台に限らず、物理計算機10上に複数台搭載されてもよい。
仮想計算機11が有するアプリケーション12は、現用系として業務を遂行し、ディスクアクセス機構13とミラーディスク制御機構16を通じて物理ディスク18に対しI/O要求(アクセス要求の一例)を発行するプログラムである。このアプリケーション12は、仮想計算機11が現用系であるときに稼働し、待機系であるときには稼働しない。アプリケーション12は、複数のプログラムであってもよい。
ディスクアクセス機構13(第1のアクセス制御部の一例)は、アプリケーション12が発行した物理ディスク18へのI/O要求をミラーディスク制御機構16へ中継するプログラムである。そして、ディスクアクセス機構13は、ミラーディスク制御機構16が物理ディスク18にアクセスしたアクセス結果を二重系制御機構14に通知する。ディスクアクセス機構13の処理の詳細は、後述する図3にて説明する。
二重系制御機構14(第1の二重系制御部の一例)は、待機系の仮想計算機21が有する二重系制御機構24にハートビート通信路30を介してハートビートを送信することで、仮想計算機11の生存情報を仮想計算機21に通知する機能を有するプログラムである。逆に、二重系制御機構14は、二重系制御機構24がハートビート通信路30を介して送信したハートビートを受信することで、仮想計算機21の生存情報を監視する機能を有するプログラムである。このように二重系制御機構14が二重系制御機構24は、互いにハートビートを監視している。
後述するように仮想計算機11が現用系であったとしても、仮想計算機21の二重系制御機構24が二重系制御機構14からのハートビートの途絶を検知すると、仮想計算機21が待機系から現用系に切替えられる。この場合、現用系の二重系制御機構14は、仮想計算機11が再び現用系として物理ディスク18へのアクセスを行うと、ディスクアクセス機構13からアクセス競合が通知されるので、仮想計算機11を停止させる制御を行う。
逆に、仮想計算機11が待機系である場合に、二重系制御機構14が現用系の仮想計算機21からのハートビートの途絶を検知すると、仮想計算機11を待機系から現用系へと切替える。この際、二重系制御機構14は、占有管理テーブル17の状態を「非占有」から「占有」へ遷移させる指示をミラーディスク制御機構16に通知する。「非占有」とは、アプリケーション12が物理ディスク18に対してRead/Writeが不可能な状態を表し、「占有」とは、アプリケーション12が物理ディスク18に対してRead/Write可能な状態を表す。
仮想計算機11が待機系である場合、現用系の仮想計算機21からのハートビートの途絶を検知することで占有管理テーブル17の状態を非占有から占有に切替える状態遷移は以下のようにして行われる。始めに、二重系制御機構14がミラーディスク制御機構16に占有解除要求を通知し、ミラーディスク制御機構16が物理ディスク18に対する占有を解除(「非占有」に設定)する。その後、ミラーディスク制御機構16に占有要求を通知する。この方法は、一般的にSCSIコントローラーを具備する共有ディスク装置で用いられるSCSIコマンドを利用した「SCSI BUS RESET」と「SCSI RESERVATION」によるディスク占有の処理と同様である。つまり、従来の共有ディスク装置を使用する系切替えの処理と同様に、一旦物理ディスク18の占有を解除した後、物理ディスク18を占有する。
このように本実施の形態例に係る二重系システム1では、SCSIコマンドを用いる既存のアプリケーションと同様に、二重系制御機構14がミラーディスク制御機構16に対して占有管理テーブル17の状態を変更する要求を行うことが可能である。二重系制御機構14の処理の詳細は、後述する図2にて説明する。
ミラーディスク制御機構16(第1の記録制御部の一例)は、アプリケーション12が発行する物理ディスク18へのI/O要求を、物理ディスク18へと中継するプログラムである。I/O要求のI/O要求種別には、物理ディスク18にデータを書き込むWrite要求、物理ディスク18からデータを読み出すRead要求のいずれかが含まれる。
そして、ミラーディスク制御機構16は、物理ディスク18の状態を管理する占有管理テーブル17を有する。ミラーディスク制御機構16は、占有管理テーブル17に基づいて物理ディスク18にデータを記録する制御を行う。そして、ミラーディスク制御機構16は、占有管理テーブル17の状態が「占有」に設定された状態で、アプリケーション12から物理ディスク18にI/O要求が発行された場合に、物理ディスク18にI/O要求を発行する。そして、ミラーディスク制御機構16は、ディスクアクセス機構13にI/O結果(アクセス結果の一例)を通知する。このI/O結果には、物理ディスク18に対する書き込み結果、物理ディスク18から読み出したデータが含まれる。
また、I/O要求がWrite要求の場合には、ミラーディスク制御機構16は、ミラーディスク通信路31を介して他系のミラーディスク制御機構26へI/O要求を中継し、他系の物理ディスク28に物理ディスク18のデータを記録させる。このようにミラーディスク制御機構16は、物理ディスク18と物理ディスク28のデータを一致化させるミラーリング機能を有する。ミラーディスク制御機構16の処理の詳細は、後述する図4にて説明する。
占有管理テーブル17(第1の状態管理部の一例)は、物理ディスク18の記録状態が「占有」又は「非占有」のいずれであるかを管理するテーブルである。そして、ミラーディスク制御機構16によって、仮想計算機11が現用系として稼働する場合には占有管理テーブル17の状態が「占有」に設定され、仮想計算機11が待機系として稼働する場合には占有管理テーブル17の状態が「非占有」に設定される。なお、ミラーディスク制御機構16は、占有管理テーブル17の状態を「非占有」から「占有」に切替えると、ミラーディスク制御機構26に対して占有管理テーブル27に占有解除要求を行う。
物理計算機20は、仮想計算機21と、ディスクアクセス機構23と、二重系制御機構24と、ホストOS25と、ミラーディスク制御機構26と、占有管理テーブル27と、物理ディスク28とを備える。仮想計算機21は第2の仮想計算機の一例として用いられ、ディスクアクセス機構23は第2のアクセス制御部の一例として用いられ、二重系制御機構24は第2の二重系制御部の一例として用いられる。また、ミラーディスク制御機構26は第2の記録制御部の一例として用いられ、占有管理テーブル27は第2の状態管理部の一例として用いられ、物理ディスク28は第2の記録部の一例として用いられる。
物理計算機20の各部は、物理計算機10が備える仮想計算機11、ディスクアクセス機構13と、二重系制御機構14と、ホストOS15と、ミラーディスク制御機構16と、占有管理テーブル17と同様の機能を有する。そして、仮想計算機21は、仮想計算機11に対して、現用系の業務停止に伴い業務を引き継ぐ待機系として稼働する。このため、待機系に設定された仮想計算機21では、アプリケーション12と同じ処理を実行可能なアプリケーション22は稼働していない。ただし、二重系制御機構24は、仮想計算機11からのハートビートの途絶を検知した場合に、仮想計算機21を現用系として設定し、アプリケーション22を起動する。
物理ディスク28は、物理ディスク18のミラーディスクとして用いられる。物理ディスク28は、アプリケーション12が発行するWrite要求をミラーディスク制御機構16及びミラーディスク通信路31を介して受け取ることで、物理ディスク18が記録するデータと常に一致した状態のデータを記録する。
上述したように現用系の仮想計算機11で稼働するアプリケーション12が発行する物理ディスク18へのI/O要求はミラーディスク制御機構16を介して行われる。そして、ミラーディスク制御機構16は、占有管理テーブル17の状態が「占有」であれば物理ディスク18にI/O要求を中継する。このとき、占有管理テーブル27の状態が「非占有」である。
一方、二重系制御機構24が現用系の仮想計算機11からのハートビートの途絶を検知すると、仮想計算機21の運転モードが待機系から現用系に変わり、占有管理テーブル27の状態が占有に設定され、占有管理テーブル17の状態が非占有に設定される。このため、仮想計算機11が再び現用系として物理ディスク18へのアクセスを行うときには、占有管理テーブル17の状態が「非占有」に設定されたままとなっている。このため、ミラーディスク制御機構16は、占有管理テーブル17の状態が「非占有」に設定された状態で、物理ディスク18へのI/O要求がされた場合には、物理ディスク18にI/O要求を中継せず、ディスクアクセス機構13に「アクセス競合」を通知する。
「アクセス競合」通知は、一般にSCSIコントローラーを備える共有ディスク装置を利用した二重系システムにおいて、両系からのディスクアクセスが発生した場合にSCSIコントローラーが通知する「RESERVATION CONFLICT」通知と同様の機能を持つ。「アクセス競合」通知を受信したディスクアクセス機構13は、他系の仮想計算機21が現用系として物理ディスク28を占有しているにも関わらず自らも現用系として物理ディスク18にアクセスすると、二重系制御機構14に「アクセス競合」を通知する。「アクセス競合」が通知された二重系制御機構14は、仮想計算機11を停止するため、物理ディスク18へのアクセスも停止し、スプリットブレインを回避することが可能となる。
<各機構の処理例>
次に、各機構の処理例について、図2〜図4を参照して説明する。
図2は、二重系制御機構14の処理例を示すフローチャートである。
次に、各機構の処理例について、図2〜図4を参照して説明する。
図2は、二重系制御機構14の処理例を示すフローチャートである。
始めに、二重系制御機構14は、仮想計算機11の運転モードの初期設定を行う(S1)。運転モードとは、仮想計算機11に設定される「現用」又は「待機」の系を表す。
次に、二重系制御機構14は、運転モードが「現用」に設定されているか否かを判断する(S2)。運転モードが「現用」に設定されている場合(S2のYES)には、二重系制御機構14は、ミラーディスク制御機構16へ物理ディスク18の占有要求を発行し(S3)、アプリケーション12を起動する(S4)。運転モードが「現用」に設定されていない場合(S2のNO)、二重系制御機構14は、ステップS5に処理を移す。
次に、二重系制御機構14は、ハートビート監視を行う(S5)。二重系制御機構14は、他系の二重系制御機構24に対して、定期的にハートビートの送信を行うと共に、他系の二重系制御機構24から受信するハートビートを確認する。
次に、二重系制御機構14は、ディスクアクセス機構13から「アクセス競合」通知を受信したか否かを判断する(S6)。「アクセス競合」通知を受信していなければ(S6のNO)、二重系制御機構14は、他系のハートビートの途絶を検出したか否かを判断する(S7)。
二重系制御機構14は、ハートビートの途絶を検出していない場合(S7のNO)、ステップS5に処理を移し、引き続きハートビート監視を行う。一方、二重系制御機構14は、ハートビートの途絶を検出した場合(S7のYES)、仮想計算機11の現在の運転モードが「待機」であるか否かを判断する(S8)。
仮想計算機11の運転モードが「待機」であれば(S8のYES)、二重系制御機構14が仮想計算機11の運転モードが「待機」から「現用」に変更する処理を始める。このとき、二重系制御機構14は、ミラーディスク制御機構16へ物理ディスク18の占有解除要求を発行した(S9)後、物理ディスク18の占有要求を発行し(S10)、アプリケーション12を起動する(S11)。そして、二重系制御機構14は、仮想計算機11の運転モードを「現用」に設定する(S12)。運転モードが「現用」に設定された仮想計算機11はアプリケーション12を起動して、これまで運転モードが「現用」であった仮想計算機21から引き継いだ業務を開始する。
一方、二重系制御機構14は、ハートビート監視中に、ディスクアクセス機構13から「アクセス競合」通知を受信した場合(S6のYES)、他系の仮想計算機21が現用系で稼働中にも関わらず自らが現用系として物理ディスク18にアクセスしたと判断する。そして、二重系制御機構14は、自ら仮想計算機11の停止を行う(S13)。
このように、仮想計算機11のハートビートが一時的に途絶し、仮想計算機21の運転モードが「待機」から「現用」に切り替わった後、仮想計算機11が現用系として物理ディスク18へのアクセスを再開するとスプリットブレインが発生する。しかし、本実施の形態例に係る二重系システム1では、ミラーディスク制御機構16が占有管理テーブル17を参照し、物理ディスク18は他系のミラーディスク制御機構26により占有されているため、ディスクアクセスが競合したことを検知する。そして、二重系制御機構14は、仮想計算機11を停止させるため、スプリットブレインを回避することが可能となる。
図3は、ディスクアクセス機構13の処理例を示すフローチャートである。
ディスクアクセス機構13は、アプリケーション12、又はミラーディスク制御機構16からの要求に応じて起動し、要求種別を判定する(S21)。
要求種別がミラーディスク制御機構16によって発行されたI/O結果である場合、さらにディスクアクセス機構13は、I/O結果が「アクセス競合」であるか否かを判断する(S22)。要求種別が「アクセス競合」である場合(S22のYES)、両系からのディスクアクセスによりスプリットブレインが発生する。このため、ディスクアクセス機構13は、仮想計算機11を停止するために二重系制御機構14へ「アクセス競合」を通知して(S23)、処理を終了する。
要求種別が「アクセス競合」でない場合(S22のNO)、物理ディスク18にアクセスしたミラーディスク制御機構16から受信したデータである。このため、ディスクアクセス機構13は、アプリケーション12へ受信したデータを送信して(S24)、処理を終了する。
なお、ステップS21で判定した要求種別がアプリケーション12からのI/O要求である場合、ディスクアクセス機構13は、ミラーディスク制御機構16にI/O要求を発行して(S25)、処理を終了する。
このようにディスクアクセス機構13は、アプリケーション12からのI/O要求をミラーディスク制御機構16へ中継することで占有管理テーブル17の状態判定を可能とし、物理ディスク18と物理ディスク28のミラー状態を保障する。
図4は、ミラーディスク制御機構16の処理例を示すフローチャートである。
ミラーディスク制御機構16は、アプリケーション12、又は二重系制御機構14からの要求に応じて起動し、要求種別を判定する(S31)。
ステップS31で判定した要求種別が占有解除要求又は占有要求の場合、ミラーディスク制御機構16は、要求種別が占有解除要求又は占有要求のいずれであるかを判定する(S32)。
ステップS32で判定した要求種別が占有要求の場合、ミラーディスク制御機構16は、占有管理テーブル17の状態を「占有」へ設定する(S33)。そして、ミラーディスク制御機構16は、他系のミラーディスク制御機構26へ占有解除要求を発行し(S34)、処理を終了する。
ステップS32で判定した要求種別が占有解除要求の場合、ミラーディスク制御機構16は、占有管理テーブル17の状態を「非占有」へ設定し(S35)、処理を終了する。
このように、ミラーディスク制御機構16は、系切替え時に二重系制御機構14から占有管理テーブル17の状態を遷移させる要求を受け付けることで、自系の占有管理テーブル17の状態を「占有」に遷移させる。併せてミラーディスク制御機構16は、他系のミラーディスク制御機構26に対して、物理ディスク28の占有を解除させ、占有管理テーブル27の状態「非占有」に変更させる。これにより、ミラーディスク制御機構16は、物理ディスク18を占有してアクセス可能な状態を保障することができる。
ステップS31で判定した要求種別がアプリケーション12からのI/O要求である場合、ミラーディスク制御機構16は、占有管理テーブル17を参照して物理ディスク18の占有状況を判定する(S36)。
ステップS36で判定した占有管理テーブル17の状態が「非占有」である場合(S36のNO)、ミラーディスク制御機構16は、他系の仮想計算機21が現用系として稼働しているにも関わらず物理ディスク18へのI/O要求が発生したと判断する。このため、ミラーディスク制御機構16は、ディスクアクセス機構13へ「アクセス競合」を通知し(S37)、処理を終了する。
ステップS36で判定した占有管理テーブル17の状態が「占有」である場合(S36のYES)、ミラーディスク制御機構16は、アプリケーション12からのI/O要求を物理ディスク18へ中継すべく、I/O要求種別を判定する(S38)。
ステップS38で判定したI/O要求種別が「Read要求」である場合、ミラーディスク制御機構16は、物理ディスク18へRead要求を発行し(S39)、物理ディスク18からデータを読み出して処理を終了する。ステップS39の処理は、ミラーディスク制御機構16が物理ディスク18のデータを参照するのみであるため、他系のミラーディスク制御機構26への「Read要求」の中継は行わない。
ステップS38で判定したI/O要求種別が「Write要求」である場合、ミラーディスク制御機構16は、物理ディスク18へWrite要求を発行し(S40)、物理ディスク18にアプリケーション12が処理したデータを書き込む。また、ミラーディスク制御機構16は、他系のミラーディスク制御機構26にWrite要求を中継し(S41)、処理を終了する。ステップS40,S41の処理により、物理ディスク18,28に同じデータが記録される。
このように、ミラーディスク制御機構16が保持する占有管理テーブル17の状態が「占有」であれば、自系が現用系、他系が待機系として二重系システム1が稼働中であると判断できる。そして、ミラーディスク制御機構16は、アプリケーション12からのWrite要求を待機系のミラーディスク制御機構26へ中継し、物理ディスク28にデータを記録させるミラーリングを行うことが可能となる。
また、物理ディスク18に対してアクセス競合が発生した場合には、ミラーディスク制御機構16が、二重系システム1における「アクセス競合」をディスクアクセス機構13、二重系制御機構14に通知することで、スプリットブレインの回避を可能とする。
<二重系システムの処理例>
次に、二重系システム1の各部の処理例について、図5〜図8を参照して説明する。
図5は、二重系システム1が起動した後、ハートビート監視を行うまでの処理の例を示すシーケンス図である。
次に、二重系システム1の各部の処理例について、図5〜図8を参照して説明する。
図5は、二重系システム1が起動した後、ハートビート監視を行うまでの処理の例を示すシーケンス図である。
始めに、物理計算機10の起動時に運転モードが「現用」に設定され(S51)、物理計算機20の起動時に運転モードが「待機」に設定される(S52)。現用系の二重系制御機構14は、ミラーディスク制御機構16に占有要求を発行する(S53)。ミラーディスク制御機構16は、占有要求種別を判定し(S54)、占有管理テーブル17の状態を「占有」に設定した後(S55)、待機系のミラーディスク制御機構26に占有解除要求を発行する(S56)。
待機系のミラーディスク制御機構26は、ミラーディスク制御機構16から受信した占有要求種別を判定し(S57)、占有管理テーブル27の状態を「非占有」に設定する(S58)。
現用系の二重系制御機構14は、アプリケーション12を起動し(S59)、待機系の二重系制御機構24との間でハートビート監視を開始する(S60)。一方、待機系の二重系制御機構24はアプリケーション22を起動することなく、現用系の二重系制御機構14との間でハートビート監視を開始する(S61)。
図6は、二重系システム1のミラーリング処理の例を示すシーケンス図である。
現用系の二重系制御機構14と、待機系の二重系制御機構24は互いにハートビート監視を行っている(S71,S72)。
アプリケーション12が物理ディスク18にI/O要求を発行すると、二重系制御機構14は、ディスクアクセス機構13を通じて、ミラーディスク制御機構16にI/O要求を発行する(S73)。ミラーディスク制御機構16は、I/O要求のI/O要求種別を判定し(S74)、Read要求であれば物理ディスク18へRead要求を発行する(S75)。
アプリケーション12が物理ディスク18にI/O要求を発行すると、二重系制御機構14は、ディスクアクセス機構13を通じて、ミラーディスク制御機構16にI/O要求を発行する(S73)。ミラーディスク制御機構16は、I/O要求のI/O要求種別を判定し(S74)、Read要求であれば物理ディスク18へRead要求を発行する(S75)。
I/O要求種別がWrite要求であれば、ミラーディスク制御機構16は物理ディスク18へWrite要求を発行し、物理ディスク18にデータを書き込む(S76)。そして、ミラーディスク制御機構16は、待機系のミラーディスク制御機構26にWrite要求を中継する(S77)。そして、ミラーディスク制御機構26は、物理ディスク28へWrite要求を発行し、物理ディスク28にデータを書き込む(S78)。このようなミラーリング処理により、物理ディスク18,28には同じデータが書き込まれる。
その後、ミラーディスク制御機構16は、ディスクアクセス機構13を通じて、二重系制御機構14にI/O結果(読み取りデータ、書き込み結果等)を通知する(S79)。二重系制御機構14は、I/O結果を受信する(S80)。
図7は、ハートビート途絶を検出した場合における二重系システム1の処理例を示すシーケンス図である。
現用系の二重系制御機構14と、待機系の二重系制御機構24は互いにハートビート監視を行っている(S81,S82)。ここで、待機系の二重系制御機構24がハートビート途絶を検出したものとする(S83)。
このとき、二重系制御機構24は、ミラーディスク制御機構26に占有解除要求を発行する(S84)。ミラーディスク制御機構26は、占有要求種別を判定した後、占有管理テーブル27の状態を「非占有」に設定する(S85)。
次に、二重系制御機構24は、ミラーディスク制御機構26に占有要求を発行する(S86)。ミラーディスク制御機構26は、占有要求種別を判定した後、占有管理テーブル27の状態を「占有」に設定する(S87)。
そして、ミラーディスク制御機構26は、現用系のミラーディスク制御機構16に対して占有解除要求を発行する(S88)。ミラーディスク制御機構16は、占有要求種別を判定した後、占有管理テーブル17の状態を「非占有」に設定する(S89)。
その後、二重系制御機構24は、アプリケーション22を起動し(S90)。運転モードを「現用」に設定する(S91)。以降の処理では、仮想計算機21が現用系として稼働する。
図8は、現用系として物理ディスク18へのアクセスを再開した仮想計算機11の処理例を示すシーケンス図である。
図7の処理を経た後、二重系制御機構14はハートビート監視を継続する(S101)。そして、アプリケーション12が物理ディスク18にI/O要求を発行すると、二重系制御機構14は、ディスクアクセス機構13を通じて、ミラーディスク制御機構16にI/O要求を発行する(S102)。
しかし、図7に示したように、既に他系の仮想計算機21が現用系として稼働しており、ミラーディスク制御機構16が管理する占有管理テーブル17の状態が「非占有」に設定されている。このため、ミラーディスク制御機構16は、ディスクアクセス機構13に「アクセス競合」を通知し(S103)、ディスクアクセス機構13は、二重系制御機構14に「アクセス競合」を通知する(S104)。
二重系制御機構14は、ディスクアクセス機構13からアクセス競合を受信すると(S105)、仮想計算機11を停止する(S106)。このため、以降の処理では仮想計算機21だけが稼働する。
以上説明した一実施の形態例に係る二重系システム1において、例えば、現用系である仮想計算機11が一時的に負荷上昇したことによりハートビートが途絶すると、ハートビートの途絶を検知した仮想計算機21が待機系から現用系へと切り替わる。そして、仮想計算機21は、自系の物理ディスク28を「占有」に設定し、他系の物理ディスク18を「非占有」に設定する。これにより、ハートビートの送信を途絶した仮想計算機11が再び現用系として物理ディスク18にアクセスした場合には、ミラーディスク制御機構16が検知した「アクセス競合」が二重系制御機構14に通知される。そして、二重系制御機構14が仮想計算機11を停止することで、スプリットブレインを回避することができる。
また、物理ディスク18,28に対する状態遷移通知は、一般的な共有ディスク装置に備わるSCSIコントローラーが受付可能であるSCSIコマンドの、「SCSI RESET」、「SCSI RESERVATION」、「RESERVATION CONFLICT」と同様の機構を持つ。このため、既に稼働中の共有ディスク装置を利用した二重系システムをそのまま共有ディスク装置を用いない安価な二重系システムとして構築することが可能である。
なお、待機系から現用系に切替えられた二重系制御機構24は、現用系であった二重系制御機構14に対して、仮想計算機11の運用モードを「待機」に設定する要求を発行してもよい。これにより、運用モードが「待機」に設定された仮想計算機11が待機系として稼働するため、スプリットブレインを回避することができる。
また、第1及び第2の状態管理部の一例として、占有管理テーブル17,27を示したが、物理計算機10,20の不図示のメモリ内に設けられたフラグ領域をオン又はオフすることにより、「占有」又は「非占有」を表してもよい。
また、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態例の構成の一部を他の実施の形態例の構成に置き換えることは可能であり、さらにはある実施の形態例の構成に他の実施の形態例の構成を加えることも可能である。また、各実施の形態例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
例えば、上述した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態例の構成の一部を他の実施の形態例の構成に置き換えることは可能であり、さらにはある実施の形態例の構成に他の実施の形態例の構成を加えることも可能である。また、各実施の形態例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1…二重系システム、10…物理計算機、11…仮想計算機、12…アプリケーション、13…ディスクアクセス機構、14…二重系制御機構、15…ホストOS、16…ミラーディスク制御機構、17…占有管理テーブル、18…物理ディスク、20…物理計算機、21…仮想計算機、22…アプリケーション、23…ディスクアクセス機構、24…二重系制御機構、26…ミラーディスク制御機構、27…占有管理テーブル、28…物理ディスク
Claims (5)
- 業務を遂行する現用系として稼働する第1の仮想計算機及び第1の記録部を有し、前記業務に用いられるアプリケーションが処理したデータを前記第1の記録部に記録する第1の物理計算機と、
前記現用系の業務停止に伴い前記業務を引き継ぐ待機系として稼働する第2の仮想計算機及び第2の記録部を有し、前記第1の物理計算機が前記第1の記録部に記録した前記データを前記第2の記録部に記録する第2の物理計算機と、を備え、
前記第2の仮想計算機は、前記第1の仮想計算機との間でハートビート監視を行い、前記第1の仮想計算機からのハートビートの途絶を検知した場合に、前記第2の仮想計算機を前記現用系として設定し、前記アプリケーションを起動する第2の二重系制御部を有し、
前記第1の仮想計算機は、前記第2の仮想計算機との間でハートビート監視を行い、前記第2の二重系制御部が前記ハートビートの途絶を検知した後、前記第1の仮想計算機が再び現用系として前記第1の記録部へのアクセスを行うと、前記第1の仮想計算機を停止させる第1の二重系制御部を有する
二重系システム。 - 前記第1の物理計算機は、前記第1の記録部の記録状態を管理する第1の状態管理部と、前記第1の状態管理部に基づいて前記第1の記録部に前記データを記録する制御を行う第1の記録制御部を備え、
前記第2の物理計算機は、前記第2の記録部の記録状態を管理する第2の状態管理部と、前記第2の状態管理部に基づいて前記第2の記録部に前記データを記録する制御を行う第2の記録制御部を備え、
前記第1の記録制御部は、前記第1の仮想計算機が前記現用系として稼働する場合には前記第1の状態管理部を占有に設定し、前記第1の仮想計算機が前記待機系として稼働する場合には前記第1の状態管理部を非占有に設定し、
前記第2の記録制御部は、前記第2の仮想計算機が前記現用系として稼働する場合には前記第2の状態管理部を占有に設定し、前記第2の仮想計算機が前記待機系として稼働する場合には前記第2の状態管理部を非占有に設定する
請求項1に記載の二重系システム。 - 前記第1の記録制御部は、前記第1の状態管理部を非占有から占有に設定すると、前記第2の記録制御部に対して前記第2の状態管理部の占有を解除する要求を行い、
前記第2の記録制御部は、前記第2の状態管理部を非占有から占有に設定すると、前記第1の記録制御部に対して前記第1の状態管理部の占有を解除する要求を行う
請求項2に記載の二重系システム。 - 前記第1の仮想計算機は、前記第1の記録制御部が前記第1の記録部にアクセスしたアクセス結果を前記第1の二重系制御部に通知する第1のアクセス制御部を備え、
前記第2の仮想計算機は、前記第2の記録制御部が前記第2の記録部にアクセスしたアクセス結果を前記第2の二重系制御部に通知する第2のアクセス制御部を備え、
前記第1の記録制御部は、前記第2の二重系制御部が前記ハートビートの途絶を検知した後、前記第1の仮想計算機が再び現用系として前記第1の記録部へのアクセスを行うと、前記第1のアクセス制御部に前記アクセス結果としてアクセス競合を通知し、
前記第1の二重系制御部は、前記第1のアクセス制御部から前記アクセス競合が通知されると、前記第1の仮想計算機を停止させる
請求項3に記載の二重系システム。 - 前記第1の記録制御部は、前記第1の状態管理部が占有に設定された状態で、前記第1の記録部にアクセス要求がされた場合に前記第1の記録部に読み出し又は書き込みを要求し、前記第1のアクセス制御部に前記アクセス結果として読み出し又は書き込み結果を通知し、前記第1の状態管理部が非占有に設定された状態で、前記第1の記録部に前記アクセス要求がされた場合に前記第1のアクセス制御部に前記アクセス競合を通知する
請求項4に記載の二重系システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121869A JP2017010102A (ja) | 2015-06-17 | 2015-06-17 | 二重系システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121869A JP2017010102A (ja) | 2015-06-17 | 2015-06-17 | 二重系システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017010102A true JP2017010102A (ja) | 2017-01-12 |
Family
ID=57763541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015121869A Pending JP2017010102A (ja) | 2015-06-17 | 2015-06-17 | 二重系システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017010102A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018173300A1 (ja) * | 2017-03-24 | 2018-09-27 | 株式会社日立製作所 | I/o制御方法およびi/o制御システム |
JP2019053492A (ja) * | 2017-09-14 | 2019-04-04 | 日本電気株式会社 | 仮想マシン制御システムおよび仮想マシン制御方法 |
-
2015
- 2015-06-17 JP JP2015121869A patent/JP2017010102A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018173300A1 (ja) * | 2017-03-24 | 2018-09-27 | 株式会社日立製作所 | I/o制御方法およびi/o制御システム |
US10628349B2 (en) | 2017-03-24 | 2020-04-21 | Hitachi, Ltd. | I/O control method and I/O control system |
JP2019053492A (ja) * | 2017-09-14 | 2019-04-04 | 日本電気株式会社 | 仮想マシン制御システムおよび仮想マシン制御方法 |
JP7024272B2 (ja) | 2017-09-14 | 2022-02-24 | 日本電気株式会社 | 仮想マシン制御システムおよび仮想マシン制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7650446B2 (en) | Storage system for back-end communications with other storage system | |
JP7106953B2 (ja) | サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム | |
US8321622B2 (en) | Storage system with multiple controllers and multiple processing paths | |
US8032786B2 (en) | Information-processing equipment and system therefor with switching control for switchover operation | |
JP6064237B2 (ja) | メモリデータを移行するための方法、コンピュータ、および装置 | |
KR101410596B1 (ko) | 정보 처리 장치, 카피 제어 프로그램 및 카피 제어 방법 | |
US10296429B2 (en) | Storage device | |
JP2008112399A (ja) | ストレージ仮想化スイッチおよびコンピュータシステム | |
US8255649B2 (en) | Remote copy control method and system in storage cluster environment | |
US9336093B2 (en) | Information processing system and access control method | |
WO2020001354A1 (zh) | 主备容器系统切换 | |
US20120254657A1 (en) | Disk array device, connection path control method and connection path control program | |
US9342418B2 (en) | Storage system, storage control device and data transfer method | |
JP2009026091A (ja) | 接続管理プログラム、接続管理方法および情報処理装置 | |
JP2010282324A (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御方法 | |
US7114046B2 (en) | Storage system, backup system, and backup method | |
JP2014010540A (ja) | 仮想サーバ環境のデータ移行制御装置、方法、システム | |
JP2017010102A (ja) | 二重系システム | |
JPWO2010100757A1 (ja) | 演算処理システム、再同期方法、およびファームプログラム | |
JP2006189963A (ja) | ストレージアクセス制御方法、クラスタシステム、パス接続スイッチおよびストレージアクセス制御プログラム | |
JP2006114064A (ja) | 記憶サブシステム | |
JP2006260141A (ja) | 記憶システムの制御方法、記憶システム、記憶制御装置、記憶システムの制御プログラム、情報処理システム | |
JP2001346181A (ja) | データ記憶部共有装置およびプログラム記録媒体 | |
US20160224446A1 (en) | Storage controller, method, and storage medium | |
JP6012479B2 (ja) | 情報処理システム、制御方法および制御プログラム |