特開2020-205121(P2020-205121A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧
特開2020-205121フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム
<>
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000003
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000004
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000005
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000006
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000007
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000008
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000009
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000010
  • 特開2020205121-フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-205121(P2020-205121A)
(43)【公開日】2020年12月24日
(54)【発明の名称】フォールトトレラントシステム、サーバ、それらの運用方法、及びプログラム
(51)【国際特許分類】
   G06F 11/20 20060101AFI20201127BHJP
   G06F 9/455 20060101ALI20201127BHJP
   G06F 13/10 20060101ALI20201127BHJP
   G06F 3/06 20060101ALI20201127BHJP
   G06F 11/07 20060101ALI20201127BHJP
【FI】
   G06F11/20 623
   G06F9/455 150
   G06F13/10 330C
   G06F3/06 301X
   G06F3/06 301Z
   G06F3/06 304F
   G06F11/07 196
   G06F11/07 140A
【審査請求】有
【請求項の数】17
【出願形態】OL
【全頁数】25
(21)【出願番号】特願2020-163124(P2020-163124)
(22)【出願日】2020年9月29日
(62)【分割の表示】特願2019-100508(P2019-100508)の分割
【原出願日】2019年5月29日
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】中村 輝男
(72)【発明者】
【氏名】今井 祐治
【テーマコード(参考)】
5B034
5B042
【Fターム(参考)】
5B034BB02
5B034CC01
5B034DD06
5B042GA11
5B042GA12
5B042GA22
5B042GA34
5B042JJ15
5B042KK17
(57)【要約】
【課題】共有ディスクアレイ装置を不要としつつ、フォールトトレランスを実現可能とする。
【解決手段】第1サーバ11及び第2サーバ12は、ディスクイメージ31を記憶するストレージ21のストレージ同期エリアを、仮想アドレスを用いてNFSでマウントする。第1サーバ11は、運用系として稼動した仮想システムのメモリの内容のスナップショットを取得し、第2サーバ12に送信する。また、第1サーバ11は、ストレージ21のストレージ同期エリアの内容をストレージ22のストレージ同期エリアに複製する。第2サーバ12は、第1サーバ11に障害が発生した場合、ストレージ22に仮想アドレスを設定し、その仮想アドレスを用いて、NFSでストレージ22のストレージ同期エリアをマウントする。第2サーバ12は、第1サーバ11から受信したスナップショットを用いて、仮想システム42上でアプリケーション52を実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバと、
第2ストレージを有する第2サーバと
を有し、
前記第1ストレージの前記ストレージ同期エリアに仮想アドレスが設定されており、
前記第1サーバ及び前記第2サーバは、それぞれ、前記仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、
前記第1サーバは、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、
該稼動した仮想システム上でアプリケーションを実行し、かつ、
前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、
前記第2サーバは、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、
前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記第1サーバから前記スナップショットを受信して記憶し、
前記第1サーバは、
前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、
前記第2サーバは、
前記第1サーバに障害が発生した場合、前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、
該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、
記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する、
フォールトトレラントシステムにおいて、
前記第1サーバは、
所定時間間隔で前記スナップショットを取得して前記第2サーバに送信する、
フォールトトレラントシステム。
【請求項2】
前記アプリケーションは、
システム状態をデータベース化せず、システム状態をメモリ上で管理する、
請求項1に記載のフォールトトレラントシステム。
【請求項3】
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶するストレージと、
前記仮想システム上で動作するアプリケーションと
を有し、
前記ストレージのストレージ同期エリアに設定された仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、
該稼動した仮想システム上で前記アプリケーションを実行し、
前記仮想システムのメモリの内容のスナップショットを取得し、
該取得したスナップショットを、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントし、
該マウントしたストレージ同期エリアの前記ディスクイメージを用いて仮想システムを待機系として稼動し、
該稼動した仮想システム上でアプリケーションの実行を待機する他のサーバに送信し、
前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製する、
サーバにおいて、
所定時間間隔で前記スナップショットを取得して前記他のサーバに送信する、
サーバ。
【請求項4】
前記ストレージのストレージ同期エリアの内容は、
DRBD(Distributed Replicated Block Device)のシングルプライマリモードを用いて、前記他のサーバのストレージのストレージ同期エリアに複製される、
請求項3に記載のサーバ。
【請求項5】
ストレージと、
サーバ仮想化機構を用いて構築される仮想システム上で動作するアプリケーションと
を有し、
前記仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、
前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動するシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、
前記他のサーバに障害が発生した場合、
前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、
該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、
記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する、
サーバにおいて、
前記他のサーバを監視し、
前記他のサーバに障害が発生した場合、
自サーバのストレージを待機系から運用系に切り替える、
サーバ。
【請求項6】
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行を監視し、
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行に障害が発生した場合、
自サーバ上で稼動する仮想システム上で動作するアプリケーションを、待機状態から動作状態に切り替える、
請求項5に記載のサーバ。
【請求項7】
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバ、及び第2ストレージを有する第2サーバが、それぞれ、
前記第1ストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、
前記第1サーバが、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、
該稼動した仮想システム上でアプリケーションを実行し、かつ、
前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、
前記第2サーバは、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、
前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記第1サーバから受信したスナップショットを記憶し、
前記第1サーバは、
前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、
前記第2サーバは、
前記第1サーバに障害が発生した場合、
前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、
該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、
記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する
フォールトトレラントシステムにおいて、
前記第1サーバが、
所定時間間隔で前記スナップショットを取得して前記第2サーバに送信する、
フォールトトレラントシステムの運用方法。
【請求項8】
前記第2サーバが、
前記第1サーバを監視し、
前記第1サーバに障害が発生した場合、
前記第2サーバのストレージを待機系から運用系に切り替える、
請求項7に記載のフォールトトレラントシステムの運用方法。
【請求項9】
前記第1サーバ及び前記第2サーバが、それぞれ
前記第1サーバ及び前記第2サーバのそれぞれの上で稼動する仮想システム上で動作するアプリケーションの実行を監視し、
前記第2サーバが、
前記第1サーバ上で稼動する仮想システム上で動作するアプリケーションの実行に障害が発生した場合、
前記第2サーバ上で稼動する仮想システム上で動作するアプリケーションを、待機状態から動作状態に切り替える
請求項7又は8に記載のフォールトトレラントシステムの運用方法。
【請求項10】
前記第1ストレージのストレージ同期エリアの内容は、
DRBD(Distributed Replicated Block Device)のシングルプライマリモードを用いて
前記第2ストレージのストレージ同期エリアに複製される
請求項7から9何れか1つに記載のフォールトトレラントシステムの運用方法。
【請求項11】
前記アプリケーションは、
前記第1サーバ及び第2サーバとネットワークを介して接続される電話機能を有する装置の呼を制御する呼制御アプリケーションである
請求項7から10何れか1つに記載のフォールトトレラントシステムの運用方法。
【請求項12】
前記アプリケーションは、
システム状態をデータベース化せず、システム状態をメモリ上で管理する
請求項7から11何れか1つに記載のフォールトトレラントシステムの運用方法。
【請求項13】
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する自サーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、
該稼動した仮想システム上でアプリケーションを実行し、
前記仮想システムのメモリの内容のスナップショットを取得し、
該取得したスナップショットを、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントし、該マウントしたストレージ同期エリアの前記ディスクイメージを用いて仮想システムを待機系として稼動し、該稼動した仮想システム上でアプリケーションの実行を待機する他のサーバに送信し、
前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製する、
サーバの運用方法において、
所定時間間隔で前記スナップショットを取得して前記他のサーバに送信する、
サーバの運用方法。
【請求項14】
前記ストレージのストレージ同期エリアの内容は、
DRBD(Distributed Replicated Block Device)のシングルプライマリモードを用いて、前記他のサーバのストレージのストレージ同期エリアに複製される、
請求項13に記載のサーバの運用方法。
【請求項15】
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、
NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、
前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動されたシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、
前記他のサーバに障害が発生した場合、
前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、
該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、
記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する、
サーバの運用方法において、
前記他のサーバを監視し、
前記他のサーバに障害が発生した場合、
自サーバのストレージを待機系から運用系に切り替える、
サーバの運用方法。
【請求項16】
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行を監視し、
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行に障害が発生した場合、
自サーバ上で稼動する仮想システム上で動作するアプリケーションを、待機状態から動作状態に切り替える
請求項15に記載のサーバの運用方法。
【請求項17】
サーバに、
請求項13から16何れか1つに記載のサーバの運用方法
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、フォールトトレラントシステム、サーバ、及びそれらの運用方法に関する。
【背景技術】
【0002】
可用性を高めた計算機システムとして、アクティブ/スタンバイ方式のHA(High Availability)クラスタが知られている。HAクラスタは、相互に接続された複数のサーバを有する。複数のサーバは、運用系のサーバと待機系のサーバとを含む。通常時、運用系のサーバは処理を実行しており、運用系のサーバに障害が生じた場合、待機系のサーバが処理の実行を引き継ぐ。このようにすることで、クラスタ全体としては異常なく稼動し続けているように見える。
【0003】
ここで、仮想化技術を用いたHAクラスタとして、例えば特許文献1に記載のシステムが知られている。特許文献1に記載のシステムは、運用系サーバ、待機系サーバ、管理サーバ、及びディスクアレイ装置を有する。運用系サーバ及び待機系サーバ上では、仮想サーバを提供するサーバ仮想化機構が稼動している。管理サーバは、運用系サーバのサーバ仮想化機構の上で稼動している仮想サーバのメモリイメージのスナップショットを取得し、ディスクアレイ装置に格納する。
【0004】
管理サーバは、運用系サーバに障害が検出された場合、障害が発生した運用系サーバが使用していたディスクアレイ装置内のOS(Operating System)起動ディスクを、待機系サーバに割り当てる処理を行う。管理サーバは待機系サーバの電源をオンにし、待機系サーバはOS起動ディスクを用いて起動する。管理サーバは、運用系サーバ上で稼動していた仮想サーバのメモリイメージを用いて、待機系サーバ上で稼動中のサーバ仮想化機構の上に、運用系サーバで稼動していた仮想サーバを起動させる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−211819号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1では、運用系サーバに割り当てられていたOS起動ディスクを待機系サーバに割り当てることで、待機系サーバにおいて仮想サーバを起動することができる。しかしながら、特許文献1に記載のシステムは、運用系サーバ及び待機系サーバの双方からアクセスが可能な共有ディスクアレイ装置が必要である。このため、特許文献1に記載のシステムは、共有ディスクアレイ装置を用いずに、運用系サーバ及び待機系サーバが個別に有するストレージを用いる構成には適用できない。
【0007】
ここで、HAクラスタにおいて使用できる分散ストレージシステムとして、DRBD(Distributed Replicated Block Device)が知られている。DRBDは、TCP/IP(Transmission Control Protocol / Internet Protocol)ネットワークを通じて、複数のサーバ間のブロックデバイス(パーティション)をミラーリングする。DRBDは、シングルプライマリモードとデュアルプライマリモードとを有する。シングルプライマリモードでは、複数のサーバのうちの1つがプライマリとなり、プライマリのみがデータを更新できる。これに対し、デュアルプライマリモードでは、全てのサーバがプライマリとなり、各サーバはデータを更新することができる。
【0008】
DRBDのシングルプライマリモードを使用したHAクラスタでは、ストレージ内にあるDRBDのストレージ同期エリアには、データベースのようなデータが保存される。仮想化技術を用いたHAクラスタにおいて、プライマリサーバがダウンした場合、セカンダリサーバ側のストレージ及び仮想システムが待機系から運用系に切り替わる。運用系となったセカンダリサーバの仮想システム上のアプリケーションは、DRBDによりストレージ同期されている自身のストレージ上のデータベースを参照して処理を実行する。このようにすることで、システムの運用状態を継続可能である。
【0009】
しかしながら、上記HAクラスでは、プライマリサーバの仮想化システムのメモリの内容はセカンダリサーバの仮想化システムには引き継がれない。このため、システム状態がデータベース化されておらず、仮想化システムのメモリ上で状態を保持するリアルタイムシステム(アプリケーション)においては、フォールトトレランスを実現することができない。
【0010】
仮想化システムのメモリを同期するためには、プライマリサーバ及びセカンダリサーバが同一のディスクイメージを使用して仮想化システムを起動する必要がある。しかしながら、DRBDのシングルプライマリモードでは、待機系においてDRBDのストレージ同期エリアをマウントすることができない。このため、待機系であるセカンダリサーバ側でディスクイメージを参照することができず、仮想システム(待機系)を起動することができない。
【0011】
本開示は、上記に鑑み、システム状態がデータベース化されない場合でも、共有ディスクアレイ装置を不要としつつ、フォールトトレランスを実現できるフォールトトレラントシステム、サーバ、及びそれらの運用方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するために、本開示は、第1の態様として、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバと、第2ストレージを有する第2サーバとを有し、前記第1ストレージの前記ストレージ同期エリアに仮想アドレスが設定されており、前記第1サーバ及び前記第2サーバは、それぞれ、前記仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、前記第1サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、かつ、前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、前記第2サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記第1サーバから前記スナップショットを受信して記憶し、前記第1サーバは、前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、前記第2サーバは、前記第1サーバに障害が発生した場合、前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するフォールトトレラントシステムを提供する。
【0013】
本開示は、第2の態様として、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶するストレージと、前記仮想システム上で動作するアプリケーションとを有し、前記ストレージのストレージ同期エリアに設定された仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上で前記アプリケーションを実行し、前記仮想システムのメモリの内容のスナップショットを取得して、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントする他のサーバに送信し、前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製する、サーバを提供する。
【0014】
本開示は、第3の態様として、ストレージと、サーバ仮想化機構を用いて構築される仮想システム上で動作するアプリケーションとを有し、前記仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動するシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、前記他のサーバに障害が発生した場合、前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する、サーバを提供する。
【0015】
本開示は、第4の態様として、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバ、及び第2ストレージを有する第2サーバが、それぞれ、前記第1ストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、前記第1サーバが、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、かつ、前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、前記第2サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記第1サーバから受信したスナップショットを記憶し、前記第1サーバは、前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、前記第2サーバは、前記第1サーバに障害が発生した場合、前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するフォールトトレラントシステムの運用方法を提供する。
【0016】
本開示は、第5の態様として、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する自サーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、前記仮想システムのメモリの内容のスナップショットを取得して、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントする他のサーバに送信し、前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製するサーバの運用方法を提供する。
【0017】
本開示は、第6の態様として、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動されたシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、前記他のサーバに障害が発生した場合、前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するサーバの運用方法を提供する。
【発明の効果】
【0018】
本開示のフォールトトレラントシステム、サーバ、及びそれらの運用方法は、システム状態がデータベース化されない場合でも、共有ディスクアレイ装置を不要としつつ、フォールトトレランスを実現することができる。
【図面の簡単な説明】
【0019】
図1】本開示に係るフォールトレラントシステムの概略構成を示すブロック図。
図2】本開示の一実施形態に係るフォールトトレラントシステムを示すブロック図。
図3】通常時におけるフォールトトレラントシステムを示すブロック図。
図4】プライマリサーバに障害が発生した場合のフォールトトレラントシステムを示すブロック図。
図5】プライマリサーバにおける通常時の動作手順を示すフローチャート。
図6】セカンダリサーバにおける通常時の動作手順を示すフローチャート。
図7】プライマリサーバにおいて呼制御アプリの動作に障害が発生した場合の動作手順を示すフローチャート。
図8】プライマリサーバに障害が発生した場合の動作手順を示すフローチャート。
図9】サーバ装置の構成例を示すブロック図。
【発明を実施するための形態】
【0020】
本開示の実施の形態の説明に先立って、本開示の概要を説明する。図1は、本開示に係るフォールトレラントシステムの概略構成を示す。フォールトトレラントシステム10は、第1サーバ11と第2サーバ12とを有する。第1サーバ11は、ストレージ21を有する。ストレージ21は、ストレージ同期エリアを有する。ストレージ同期エリアは、サーバ仮想化機構を用いて構築される仮想システムのディスクイメージ31を記憶する。
【0021】
第2サーバ12は、ストレージ22を有する。第1サーバ11は、自身のストレージ21のストレージ同期エリアの内容を第2サーバ12のストレージ22のストレージ同期エリアに複製する。ストレージ同期エリアの内容が複製されることで、第2サーバ12のストレージ22には、第1サーバ11のストレージ21に記憶される仮想システムのディスクイメージ31と同じ内容のディスクイメージ32が記憶される。
【0022】
ストレージ21のストレージ同期エリアには仮想アドレスが設定されている。第1サーバ11及び第2サーバ12は、それぞれ仮想アドレスを用いて、NFSでストレージ21のストレージ同期エリアをマウントする。
【0023】
第1サーバ11は、マウントしたストレージ同期エリアのディスクイメージ31を用いて仮想システム41を運用系として稼動する。第1サーバ11は、稼動した仮想システム41上でアプリケーション51を実行する。第1サーバ11は、仮想システム41のメモリの内容のスナップショットを取得し、取得したスナップショットを第2サーバ12に送信する。
【0024】
第2サーバ12は、マウントしたストレージ同期エリアのディスクイメージ31を用いて仮想システム42を待機系として稼動する。第2サーバ12は、稼動した仮想システム42上でアプリケーション52の実行を待機する。第2サーバ12は、第1サーバ11から、仮想システム41のメモリの内容のスナップショットを受信し、記憶する。
【0025】
第2サーバ12は、第1サーバ11に障害が発生した場合、自身のストレージ22のストレージ同期エリアに仮想アドレスを設定する。第2サーバ12は、設定した仮想アドレスを用いて、NFSでストレージ22のストレージ同期エリアをマウントする。また、第2サーバ12は、第1サーバ11から受信して記憶したスナップショットを用いて、仮想システム42上でアプリケーション52を実行する。
【0026】
本開示では、第1サーバ11のストレージ21は、仮想システムのディスクイメージ31をストレージ同期エリアに記憶する。第1サーバ11及び第2サーバ12は、それぞれ、ストレージ21のストレージ同期エリアに設定された仮想アドレスを用いて、NFSでストレージ21のストレージ同期エリアをマウントする。第1サーバ11は、ストレージ同期エリアの内容を、第2サーバ12にストレージ22に複製する。このようにすることで、第1サーバ11のストレージ21の仮想システムのディスクイメージ31と、第2サーバ12のストレージ22の仮想システムのディスクイメージ32とを同期させることができる。
【0027】
ここで、例えば、ストレージ同期エリアの同期にDRBDのシングルプライマリモードが用いられる場合、第2サーバ12は、DRBDの待機系である、自身のストレージ22のストレージ同期エリアをマウントすることができない。本開示では、第2サーバ12は、仮想アドレスを用いて第1サーバ11のストレージ21のストレージ同期エリアをマウントしている。このようにすることで、第2サーバ12は、自身のストレージ22を直接にマウントすることができなくても、第1サーバ11において仮想システム41の起動に用いられるディスクイメージ31を使用して、仮想システム42を起動できる。また、本開示では、第2サーバ12は第1サーバ11のストレージ21のストレージ同期エリアをNFSでマウントしているため、双方のサーバから共通にアクセスが可能な共有ディスクアレイ装置などは必要ない。
【0028】
また、本開示では、第1サーバ11は、仮想システム41のメモリの内容のスナップショットを取得する。第2サーバ12は、第1サーバ11からスナップショットを受信し、記憶する。第2サーバ12は、第1サーバ11で障害が発生した場合、自身のストレージ22のストレージ同期エリアに仮想アドレスを設定し、仮想アドレスを用いて、NFSでストレージ22のストレージ同期エリアをマウントする。また、第2サーバ12は、第1サーバ11から受信したスナップショットを用いてアプリケーション52を実行し、第1サーバ11の仮想システム41において実行されていたアプリケーション51の実行を引き継ぐ。このようにすることで、システム状態がデータベース化されない場合でも、共有ディスクアレイ装置を不要としつつ、フォールトトレランスを実現することができる
【0029】
以下、図面を参照しつつ、本開示の実施の形態を詳細に説明する。図2は、本開示の一実施形態に係るフォールトトレラントシステムを示す。フォールトトレラントシステム100は、プライマリサーバ110、及びセカンダリサーバ130を有する。フォールトトレラントシステム100は図1のフォールトトレラントシステム10に対応する。プライマリサーバ110は図1の第1サーバ11に対応し、セカンダリサーバ130は図1の第2サーバ12に対応する。
【0030】
本実施形態において、フォールトトレラントシステム100は、ホット−スタンバイ構成のシステムとして構成される。通常時、プライマリサーバ110は運用系として動作する。セカンダリサーバ130は、待機系として用いられ、運用系であるプライマリサーバ110に障害が発生した場合に、プライマリサーバ110で提供されていた処理を引き継いで実施する。
【0031】
プライマリサーバ110は、ハードウェア111として、ネットワークインタフェースカード(NIC:Network Interface Card)118及び119と、ストレージ120とを有する。ハードウェア111は、プロセッサ及びメモリなども含む。NIC118は、呼制御ネットワークを介して、電話機201などに接続される。NIC119は、FT(Fault Tolerance)ネットワークを介して、セカンダリサーバ130に接続される。ストレージ120は、プライマリサーバ110上に構築される仮想システムのディスクイメージを含む。ストレージ120は、図1のストレージ21に対応する。
【0032】
セカンダリサーバ130の構成は、プライマリサーバ110と同様である。セカンダリサーバ130は、ハードウェア131として、NIC138及び139と、ストレージ140とを有する。ハードウェア131は、プロセッサ及びメモリなども含む。NIC138は、呼制御ネットワークを介して、電話機201などに接続される。NIC139は、FTネットワークを介して、プライマリサーバ110に接続される。ストレージ140は、図1のストレージ22に対応する。
【0033】
なお、図2では図面簡略化のために電話機201が1つのみ示されているが、プライマリサーバ110及びセカンダリサーバ130は、呼制御ネットワークを介して複数の電話機201に接続され得る。また、呼制御ネットワークに接続される装置は、電話機能を有する装置であればよく、電話機201には限定されない。
【0034】
ここで、ストレージ120及びストレージ140はストレージ同期エリアを有し、ストレージ同期エリアの内容は同期される。ストレージの同期には、例えばストレージのレプリケーションのためのソフトウェアであるDRBDが用いられる。DRBDは、TCP/IPネットワークを通じて複数のサーバのストレージ(ブロックデバイス)をリアルタイムでレプリケートするソフトウェアである。本実施形態では、特に、DRBDのシングルプライマリモードを使用して、プライマリサーバ110とセカンダリサーバ130との間でストレージ同期エリア(ブロックストレージ)の内容がミラーリングされる。
【0035】
本実施形態において、DRBDの運用系に仮想IPアドレス(以下、ACT IP)とも呼ぶ)が設定される。通常時、プライマリサーバ110のストレージ120がDRBDの運用系として用いられ、セカンダリサーバ130のストレージ140がDRBDの待機系として用いられる。プライマリサーバ110及びセカンダリサーバ130は、それぞれ、ACT IPを用いて、NFSでストレージ120のストレージ同期エリアをマウントする。
【0036】
プライマリサーバ110で動作するホストOS112は、ハイパーバイザ121を含む。ホストOS112には、例えばLinux(登録商標)系のOSが用いられる。ハイパーバイザ121には、例えばKVM(Kernel-based Virtual Machine)が用いられる。ホストOS112上では、QEMU113、DRBD116、及び監視アプリケーション117が動作する。QEMU(Quick Emulator)113は、オープンソースのエミュレータである。QEMU113は、仮想ハードウェアを提供し、ホストOS112(ハイパーバイザ121)上に仮想マシン(仮想システム)を構築する。QEMU113上には、LinuxなどのゲストOS114が動作している。
【0037】
ここで、プライマリサーバ110上で稼動する仮想システムでは、システム状態がデータベース化されず、メモリ上でシステムを管理するリアルタイムシステム(アプリケーション)が稼動する。特に、本実施形態では、そのようなリアルタイムアプリケーションとして、呼制御アプリケーション(以下、呼制御アプリとも呼ぶ)115が稼動する。呼制御アプリ115は、ゲストOS114上で動作する。呼制御アプリ115は、外線と内線、或いは内線同士を接続する呼制御を実施するアプリケーションソフトウェアである。なお、仮想システム上で実行されるアプリケーションは呼制御アプリ115には限定されず、他のアプリケーションであってもよい。
【0038】
プライマリサーバ110は、呼制御アプリ115に動作に応じて変化し得る仮想システムのメモリの内容を、セカンダリサーバ130に送信する。プライマリサーバ110は、例えばKVMのライブマイグレーション機能(vmotion機能)を利用して、仮想システムのメモリの内容をセカンダリサーバ130に送信する。例えば、プライマリサーバ110は、所定時間間隔、例えば数百ミリ秒から数秒程度の間隔で、仮想システムのメモリの内容のスナップショットを取得する。プライマリサーバ110は、取得したスナップショットを、NIC119を通じてセカンダリサーバ130に送信する。セカンダリサーバ130は、NIC139を通じて、プライマリサーバ110からスナップショットを受信する。セカンダリサーバ130は、受信したスナップショットを記憶装置に記憶する。セカンダリサーバ130は、例えば受信したスナップショットを記憶装置に上書き保存する。
【0039】
DRBD116は、ストレージ120内のストレージ同期エリアの内容を、セカンダリサーバ130のストレージ140にレプリケートする。DRBD116は、ストレージ120のストレージ同期エリアの内容が変更される場合、その変更の内容をセカンダリサーバ130に送信する。ストレージ120は、ストレージ同期エリアに、仮想システムのディスクイメージを記憶する。DRBDを用いることで、プライマリサーバ110のストレージ120と、セカンダリサーバ130のストレージ140に記憶される仮想システムのディスクイメージの内容が同じ内容に保たれる。
【0040】
監視アプリケーション(以下、監視アプリとも呼ぶ)117は、ゲストOS114上で動作する呼制御アプリ115の動作を監視する。監視アプリ117は、呼制御アプリ115が正常に動作していない場合、その旨を、NIC119を通じてセカンダリサーバ130に通知する。また、監視アプリケーション117は、NIC119を通じて、セカンダリサーバ130を監視する。
【0041】
セカンダリサーバ130で動作するホストOS132は、ハイパーバイザ141を含む。ホストOS132には、例えばLinux系のOSが用いられる。ハイパーバイザ141には、例えばKVMが用いられる。ホストOS132上では、QEMU133、DRBD136、及び監視アプリケーション137が動作する。QEMU133は、仮想ハードウェアを提供する。QEMU133は、ホストOS132(ハイパーバイザ141)上に仮想マシン(仮想システム)を構築する。
【0042】
QEMU133上には、LinuxなどのゲストOS134が動作している。呼制御アプリ135は、ゲストOS134上で動作する。呼制御アプリ135は、外線と内線、或いは内線同士を接続する呼制御を実施するアプリケーションソフトウェアである。プライマリサーバ110において呼制御アプリ115が正常に動作している場合、セカンダリサーバ130において呼制御アプリ135は動作していない。
【0043】
DRBD136は、プライマリサーバ110のストレージ120のストレージ同期エリアの内容を、セカンダリサーバ130のストレージ140にレプリケートする。プライマリサーバ110のストレージ120においてストレージ同期エリアの内容が変更された場合、DRBD136は、プライマリサーバ110からその変更の内容を受信する。DRBD136は、セカンダリサーバ130のストレージ140に、プライマリサーバ110から受信した変更の内容を反映させる。
【0044】
監視アプリ137は、ゲストOS134上で動作する呼制御アプリ135の動作を監視する。監視アプリ137は、呼制御アプリ135が正常に動作していない場合、その旨を、NIC139を通じてプライマリサーバ110に通知する。また、監視アプリ137は、NIC139を通じてプライマリサーバ110を監視する。プライマリサーバ110に障害が発生した場合、セカンダリサーバ130は、ストレージ140のストレージ同期エリアをDRBDの運用系に切り替える。その際、セカンダリサーバ130は、ストレージ140のストレージ同期エリアにACT IPを設定する。セカンダリサーバ130は、ACT IPを用いて、NFSでストレージ140のストレージ同期エリアをマウントする。
【0045】
セカンダリサーバ130は、プライマリサーバ110から呼制御アプリ115が正常に動作していない旨が通知された場合、及びプライマリサーバ110に障害が発生した場合、自サーバ上で稼動する仮想システムを運用系に切り替える。セカンダリサーバ130は、運用系に切り替えた仮想システム上で、プライマリサーバ110から受信し、記憶していたスナップショットを用いて、呼制御アプリ135を実行する。呼制御アプリ135は、プライマリサーバ110の呼制御アプリ115で実行していた処理を引き継ぐ。このようにすることで、プライマリサーバ110が障害でダウンした場合でも、セカンダリサーバ130が、プライマリサーバ110で提供されていたサービスを、ほぼ途切れることなく提供し続けることができる。
【0046】
図3は、通常時におけるフォールトトレラントシステム100を示す。プライマリサーバ110のストレージ120は、DRBDの運用系であるストレージ同期エリア122を有する。ストレージ同期エリア122は、例えば「/drbd_share」などの所定のフォルダに設定される。ストレージ同期エリア122である「/drbd_share」には、仮想システムのディスクイメージ(以下、単にディスクイメージとも呼ぶ)123が記憶される。ディスクイメージ123は、図1のディスクイメージ31に対応する。
【0047】
また、セカンダリサーバ130のストレージ140は、DRBDの待機系であるストレージ同期エリア142を有する。ストレージ同期エリア142は、例えば「/drbd_share」などの所定のフォルダに設定される。プライマリサーバ110のDRBD116(図2を参照)は、ストレージ同期エリア122に記憶されるディスクイメージ123をセカンダリサーバ130に送信する。セカンダリサーバ130のDRBD136は、ストレージ同期エリア142である「/drbd_share」に、プライマリサーバ110から受信したディスクイメージ123を複製したディスクイメージ143を記憶する。プライマリサーバ110において、ディスクイメージ123に変更が生じると、その変更はセカンダリサーバ130のディスクイメージ143にも反映される。ディスクイメージ143は、図1のディスクイメージ32に対応する。
【0048】
プライマリサーバ110のストレージ同期エリア122には、例えばACT IP「172.31.0.10」が設定される。プライマリサーバ110は、ACT IPを用いて、NFSで、ストレージ同期エリア122をマウントする。プライマリサーバ110において、ストレージ同期エリア122は、例えば「/mnt/nfs-client/」などの所定のマウントポイント124にマウントされる。また、セカンダリサーバ130は、ACT IPを用いて、NFSで、ストレージ同期エリア122をマウントする。セカンダリサーバ130において、ストレージ同期エリア122は、例えば「/mnt/nfs-client/」などの所定のマウントポイント144にマウントされる。
【0049】
プライマリサーバ110は、NFSでマウントしたストレージ同期エリア122のディスクイメージ123を用いて、仮想システム125を起動する。プライマリサーバ110は、仮想システム125を運用系として稼動させる。プライマリサーバ110は、仮想システム125上で、ゲストOS114と呼制御アプリ115とを稼動させる。プライマリサーバ110は、定期的に仮想システム125のメモリの内容のスナップショットを取得し、セカンダリサーバ130に送信する。仮想システム125は、図1の仮想システム41に対応する。
【0050】
また、セカンダリサーバ130は、NFSでマウントしたストレージ同期エリア122のディスクイメージ123を用いて、仮想システム145を待機系として起動する。セカンダリサーバ130は、仮想システム145上で、ゲストOS134及び呼制御アプリ135の実行を待機する。仮想システム145は、図1の仮想システム42に対応する。セカンダリサーバ130は、プライマリサーバ110から、仮想システム125のメモリの内容のスナップショットを定期的に受信し、記憶する。セカンダリサーバ130は、例えば新たなスナップショットを受信するたびに、前回受信したスナップショットを新たに受信したスナップショットで上書きする。
【0051】
図4は、プライマリサーバ110に障害が発生した場合のフォールトトレラントシステム100を示す。監視アプリ137(図2を参照)は、例えば何らかの原因でプライマリサーバ110との通信が途絶えた場合、プライマリサーバ110の障害を検出する。監視アプリ137がプライマリサーバ110の障害を検出した場合、セカンダリサーバ130は、DRBDの運用系を自サーバのストレージ140に切り替える。セカンダリサーバ130は、自身のストレージ140のストレージ同期エリア142にACT IP「172.31.0.10」を設定する。セカンダリサーバ130は、ACT IP「172.31.0.10」を用いて、NFSでストレージ同期エリア142をマウントポイント144にマウントする。
【0052】
また、セカンダリサーバ130は、監視アプリ137がプライマリサーバ110の障害を検出した場合、仮想システム145を待機系から運用系に切り替える。セカンダリサーバ130は、障害発生前に受信していたスナップショットを用いて、最後にスナップショットが取得されたときの仮想システム145内のメモリの内容を、仮想システム145に再現する。運用系に切り替えられた仮想システム145において、呼制御アプリ135は、再現されたメモリの内容を参照しつつ、プライマリサーバ110の仮想システム125が提供していた呼制御処理を引き継ぐ。このようにすることで、プライマリサーバ110がダウンした場合でも、電話機201(図2を参照)に対して、呼制御を継続して提供することができる。
【0053】
続いて、フォールトトレラントシステム及びサーバの運用方法を含む動作手順を説明する。図5は、プライマリサーバ110における通常時の動作手順を示す。プライマリサーバ110は、ACT IPを用いて、ストレージ120のストレージ同期エリア122をNFSでマウントポイント124にマウントする(ステップS11)。プライマリサーバ110は、マウントしたストレージ同期エリア122に記憶されるディスクイメージ123を使用して、仮想システム125を運用系として起動する。(ステップS12)。
【0054】
プライマリサーバ110は、仮想システム125において、ゲストOS114を起動し、ゲストOS114上で呼制御アプリ115を実行する(ステップS13)。プライマリサーバ110は、仮想システム125内のメモリの内容のスナップショットを取得する(ステップS14)。プライマリサーバ110は、例えば所定のチェックポイント周期が経過したか否かを判断し、チェックポイント周期が経過するたびにスナップショットを取得する。プライマリサーバ110は、スナップショットの取得では、前回のスナップショット取得から変更があったメモリの内容を取得する。プライマリサーバ110は、取得したスナップショットをセカンダリサーバ130に送信する(ステップS15)。プライマリサーバ110は、スナップショットの取得及び送信と並行して、ストレージ120のストレージ同期エリア122の内容に変更が生じた場合は、その変更内容をセカンダリサーバ130に送信する。
【0055】
図6は、セカンダリサーバ130における通常時の動作手順を示す。セカンダリサーバ130は、ACT IPを用いて、プライマリサーバ110のストレージ120のストレージ同期エリア122をNFSでマウントポイント144にマウントする(ステップS21)。セカンダリサーバ130は、マウントしたストレージ同期エリア122に記憶されるディスクイメージ123を使用して、仮想システム145を待機系として起動する。(ステップS22)。
【0056】
セカンダリサーバ130は、仮想システム145において、ゲストOS134を起動し、ゲストOS134上で呼制御アプリ135の実行を待機する(ステップS23)。セカンダリサーバ130は、プライマリサーバ110から、仮想システム125内のメモリの内容のスナップショットを受信する(ステップS24)。セカンダリサーバ130は、受信したスナップショットを記憶する。セカンダリサーバ130は、スナップショットの受信と並行して、ストレージ120のストレージ同期エリア122の変更内容を受信する。セカンダリサーバ130は、ストレージ140のストレージ同期エリア142の内容を、ストレージ120のストレージ同期エリア122の内容と同期させる。
【0057】
図7は、プライマリサーバ110において呼制御アプリ115の動作に障害が発生した場合の動作手順を示す。プライマリサーバ110は、監視アプリ117(図2を参照)を用いて、ゲストOS114上で実行される呼制御アプリ115の動作を監視する(ステップS31)。プライマリサーバ110は、呼制御アプリ115の動作が異常であるか否かを判断する(ステップS32)。プライマリサーバ110は、呼制御アプリ115の動作が異常ではないと判断した場合、ステップS31に戻り、呼制御アプリ115の動作を継続して監視する。プライマリサーバ110は、ステップS32で呼制御アプリ115の動作が異常と判断した場合、セカンダリサーバ130に動作異常を通知する(ステップS33)。
【0058】
セカンダリサーバ130は、プライマリサーバ110から動作異常が通知された場合、仮想システム145(図4を参照)を、待機系から運用系に変更する(ステップS34)。このとき、プライマリサーバ110自体の動作に異常がなく、セカンダリサーバ130がストレージ120のストレージ同期エリア122に正常にアクセスできる場合、DRBDの運用系の切替えは実施されない。セカンダリサーバ130は、運用系に切り替えた仮想システム145において、図6のステップS24で受信していたスナップショットを用いて、呼制御アプリ135を実行する(ステップS35)。
【0059】
図8は、プライマリサーバ110に障害が発生した場合の動作手順を示す。セカンダリサーバ130は、監視アプリ137(図2を参照)を用いて、プライマリサーバ110を監視する(ステップS41)。セカンダリサーバ130は、プライマリサーバ110に異常が発生したか否かを判断する(ステップS42)。セカンダリサーバ130は、プライマリサーバ110が異常ではないと判断した場合、ステップS41に戻り、プライマリサーバ110を継続して監視する。
【0060】
セカンダリサーバ130は、ステップS42でプライマリサーバ110が異常と判断した場合、DRBDの運用系を切り替える(ステップS43)。セカンダリサーバ130は、ステップS43では、DRBDの運用系を、プライマリサーバ110のストレージ120のストレージ同期エリア122から、セカンダリサーバ130のストレージ140のストレージ同期エリア142に切り替える。その際、セカンダリサーバ130は、ストレージ同期エリア142に、仮想アドレスを設定する(ステップS44)。セカンダリサーバ130は、仮想アドレスを用いて、ストレージ同期エリア142をNFSでマウントポイント144にマウントする(ステップS45)。
【0061】
セカンダリサーバ130は、仮想システム145を待機系から運用系に変更する(ステップS46)。セカンダリサーバ130は、運用系に切り替えた仮想システム145において、図6のステップS24で受信していたスナップショットを用いて、呼制御アプリ135を実行する(ステップS47)。ストレージ同期エリア142に記憶されるディスクイメージ143は、プライマリサーバ110においてストレージ同期エリア122に記憶されるディスクイメージ123と同期されている。従って、呼制御アプリ135は、プライマリサーバ110側の呼制御アプリ115から、正常に呼制御処理を引き継ぐことができる。
【0062】
本実施形態では、プライマリサーバ110のストレージ120及びセカンダリサーバ130のストレージ140のストレージ同期エリアは、DRBDのシングルプライマリモードを用いて同期される。本実施形態において、DRBDのシングルプライマリモードは、一般的な使用方法であるデータの同期ではなく、仮想システムを起動するためのディスクイメージを同期させるために使用される。本実施形態では、通常動作時は、プライマリサーバ110側のストレージ同期エリアをDRBDの運用系とし、セカンダリサーバ130側のストレージ同期エリアを待機系とする。このようにすることで、システム運用中に、ストレージ同期エリアの内容を同期させることができる。
【0063】
本実施形態では、通常動作時は、プライマリサーバ110側の仮想システムのディスクイメージを記憶するストレージ同期エリアに仮想アドレスが設定される。プライマリサーバ110及びセカンダリサーバ130は、それぞれプライマリサーバ110側のストレージ同期エリアを、仮想アドレスを用いてNFSでマウントする。このようにすることで、DRBDの待機系であるセカンダリサーバ130においても、プライマリサーバ110と同一のディスクイメージを使用して、仮想システムを起動することが可能となる。本実施形態では、セカンダリサーバ130は、プライマリサーバ110側のストレージ同期エリアを、仮想アドレスを用いてNFSでマウントしている。このため、共有ディスクアレイ装置などの外部ディスク装置は不要である。
【0064】
本実施形態では、ライブマイグレーション機能などを使用して、プライマリサーバ110側の仮想システムのメモリの内容と、セカンダリサーバ130側の仮想システムのメモリの内容とが同期される。プライマリサーバ110に障害が発生した場合、セカンダリサーバ130側のストレージ同期エリアがDRBDの運用系となり、セカンダリサーバ130側のストレージ同期エリアに仮想アドレスが設定される。このようにすることで、セカンダリサーバ130において、NFSのマウント状態を維持でき、仮想システムの運用状態を停止することなく、仮想システムの運用系をセカンダリサーバ130側に切り替えることができる。
【0065】
上記において、セカンダリサーバ130は、起動している仮想システムに対して、プライマリサーバ110側のディスクイメージで起動していた状態のまま、NFSのマウント状態を維持できる。従って、セカンダリサーバ130は、仮想システムが参照するディスクイメージがプライマリサーバ110側からセカンダリサーバ130側に切り替わったことを意識せずに、NFSマウント状態を維持することができる。本実施形態において、ハイパーバイザ上に構築される仮想システムでは、システム状態がデータベース化されておらず、メモリ上で状態を保持するリアルタイムアプリケーションが動作している。このような場合でも、ストレージ同期に、仮想システム内のメモリ同期を併用することで、プライマリサーバ110に障害が発生し、DRBDの運用系が切り替えられた後も、セカンダリサーバ130で仮想システムの稼動状態を継続することができる。
【0066】
なお、プライマリサーバ110及びセカンダリサーバ130には、仮想化技術に対応した一般的なサーバ装置を用いることができる。図9は、サーバ装置の構成例を示す。サーバ装置300は、CPU(Central Processing Unit)301、メインメモリ302、記憶装置303、入力インターフェイス304、表示コントローラ305、データリーダ/ライタ306、通信インターフェイス307、及び通信インターフェイス308を備える。サーバ装置300において、これら要素は、バス309を介して、互いにデータ通信可能に接続される。
【0067】
CPU301は、記憶装置303に格納された、プログラム(コード)をメインメモリ302に展開し、プログラムを実行することで、各種の演算を実施する。メインメモリ302は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。サーバ装置300をプライマリサーバ110又はセカンダリサーバ130として機能させるためのプログラムは、例えば、コンピュータ読み取り可能な記録媒体320に格納された状態で提供される。プログラムは、インターネットなどのネットワークを通じて提供されてもよい。
【0068】
上記プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータ(サーバ装置)に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体を含む。非一時的なコンピュータ可読媒体の例は、例えばフレキシブルディスク、磁気テープ、又はハードディスクなどの磁気記録媒体、例えば光磁気ディスクなどの光磁気記録媒体、CD(compact disc)、又はDVD(digital versatile disk)などの光ディスク媒体、及び、マスクROM(read only memory)、PROM(programmable ROM)、EPROM(erasable PROM)、フラッシュROM、又はRAM(random access memory)などの半導体メモリを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体を用いてコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバなどの有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0069】
記憶装置303、例えばハードディスクドライブなどディスク装置、或いはフラッシュメモリなどの半導体記憶装置として構成される。記憶装置303は、プライマリサーバ110のストレージ120、又はセカンダリサーバ130のストレージ140に対応する。入力インターフェイス304は、CPU301と、キーボード及びマウスといった入力機器310との間のデータ伝送を仲介する。表示コントローラ305は、表示装置330と接続され、表示装置330での表示を制御する。データリーダ/ライタ306は、CPU301と記録媒体320との間のデータ伝送を仲介する。データリーダ/ライタ306は、例えば記録媒体320からプログラムを読み出し、読み出したプログラムをCPU301に伝送する。
【0070】
通信インターフェイス307及び308は、CPU301と、他の装置又はネットワークとの間のデータ伝送を仲介する。例えば、通信インターフェイス307はプライマリサーバ110のNIC118に対応し、通信インターフェイス308はプライマリサーバ110のNIC119に対応する。あるいは、通信インターフェイス307はセカンダリサーバ130のNIC138に対応し、通信インターフェイス308はセカンダリサーバ130のNIC139に対応する。
【0071】
以上、本開示の実施形態を詳細に説明したが、本開示は、上記した実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲で上記実施形態に対して変更や修正を加えたものも、本開示に含まれる。
【0072】
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0073】
[付記1]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバと、
第2ストレージを有する第2サーバとを有し、
前記第1ストレージの前記ストレージ同期エリアに仮想アドレスが設定されており、前記第1サーバ及び前記第2サーバは、それぞれ、前記仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、
前記第1サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、かつ、前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、
前記第2サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記第1サーバから前記スナップショットを受信して記憶し、
前記第1サーバは、前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、
前記第2サーバは、前記第1サーバに障害が発生した場合、前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するフォールトトレラントシステム。
【0074】
[付記2]
前記第1サーバは、所定時間間隔で前記スナップショットを取得して前記第2サーバに送信する付記1に記載のフォールトトレラントシステム。
【0075】
[付記3]
前記第2サーバは、前記第1サーバを監視し、前記第1サーバに障害が発生した場合、前記第2サーバのストレージを待機系から運用系に切り替える付記1又は2に記載のフォールトトレラントシステム。
【0076】
[付記4]
前記第1サーバ及び前記第2サーバは、それぞれ前記第1サーバ及び前記第2サーバのそれぞれの上で稼動する仮想システム上で動作するアプリケーションの実行を監視し、
前記第2サーバは、前記第1サーバ上で稼動する仮想システム上で動作するアプリケーションの実行に障害が発生した場合、前記第2サーバ上で稼動する仮想システム上で動作するアプリケーションを、待機状態から動作状態に切り替える付記1から3何れか1つに記載のフォールトトレラントシステム。
【0077】
[付記5]
前記第1ストレージのストレージ同期エリアの内容は、DRBD(Distributed Replicated Block Device)のシングルプライマリモードを用いて前記第2ストレージのストレージ同期エリアに複製される付記1から4何れか1つに記載のフォールトトレラントシステム。
【0078】
[付記6]
前記アプリケーションは、前記第1サーバ及び第2サーバとネットワークを介して接続される電話機能を有する装置の呼を制御する呼制御アプリケーションである付記1から5何れか1つに記載のフォールトトレラントシステム。
【0079】
[付記7]
前記アプリケーションは、システム状態をデータベース化せず、システム状態をメモリ上で管理する付記1から6何れか1つに記載のフォールトトレラントシステム。
【0080】
[付記8]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶するストレージと、
前記仮想システム上で動作するアプリケーションとを有し、
前記ストレージのストレージ同期エリアに設定された仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上で前記アプリケーションを実行し、
前記仮想システムのメモリの内容のスナップショットを取得して、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントする他のサーバに送信し、
前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製する、
サーバ。
【0081】
[付記9]
所定時間間隔で前記スナップショットを取得して前記他のサーバに送信する付記8に記載のサーバ。
【0082】
[付記10]
前記ストレージのストレージ同期エリアの内容は、DRBD(Distributed Replicated Block Device)のシングルプライマリモードを用いて前記他のサーバのストレージのストレージ同期エリアに複製される付記8又は9に記載のサーバ。
【0083】
[付記11]
ストレージと、
サーバ仮想化機構を用いて構築される仮想システム上で動作するアプリケーションとを有し、
前記仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動するシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、
前記他のサーバに障害が発生した場合、前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する、
サーバ。
【0084】
[付記12]
前記他のサーバを監視し、前記他のサーバに障害が発生した場合、自サーバのストレージを待機系から運用系に切り替える付記11に記載のサーバ。
【0085】
[付記13]
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行を監視し、
前記他のサーバ上で稼動する仮想システム上で動作するアプリケーションの実行に障害が発生した場合、自サーバ上で稼動する仮想システム上で動作するアプリケーションを、待機状態から動作状態に切り替える付記11又は12に記載のサーバ。
【0086】
[付記14]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する第1ストレージを有する第1サーバ、及び第2ストレージを有する第2サーバが、それぞれ、前記第1ストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記第1ストレージのストレージ同期エリアをマウントし、
前記第1サーバが、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、かつ、前記仮想システムのメモリの内容のスナップショットを取得して前記第2サーバに送信し、
前記第2サーバは、前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、前記第1サーバから受信したスナップショットを記憶し、
前記第1サーバは、前記第1ストレージのストレージ同期エリアの内容を前記第2ストレージのストレージ同期エリアに複製し、
前記第2サーバは、前記第1サーバに障害が発生した場合、前記第2ストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで前記第2ストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するフォールトトレラントシステムの運用方法。
【0087】
[付記15]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する自サーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、
前記仮想システムのメモリの内容のスナップショットを取得して、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントする他のサーバに送信し、
前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製するサーバの運用方法。
【0088】
[付記16]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動されたシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、
前記他のサーバに障害が発生した場合、前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行するサーバの運用方法。
【0089】
[付記17]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する自サーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記ストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを運用系として稼動し、該稼動した仮想システム上でアプリケーションを実行し、
前記仮想システムのメモリの内容のスナップショットを取得して、前記仮想アドレスを用いて前記ストレージのストレージ同期エリアをマウントする他のサーバに送信し、
前記ストレージのストレージ同期エリアの内容を前記他のサーバのストレージのストレージ同期エリアに複製する処理をサーバに実行させるためのプログラム。
【0090】
[付記18]
サーバ仮想化機構を用いて構築される仮想システムのディスクイメージをストレージ同期エリアに記憶する他のサーバのストレージの前記ストレージ同期エリアに設定される仮想アドレスを用いて、NFS(Network File System)で前記他のサーバのストレージのストレージ同期エリアをマウントし、
前記マウントしたストレージ同期エリアの前記ディスクイメージを用いて前記仮想システムを待機系として稼動し、前記稼動した仮想システム上でアプリケーションの実行を待機し、
前記他のサーバから、前記ディスクイメージを用いて前記他のサーバ上で運用系として稼動され、該運用系として稼動されたシステム上でアプリケーションが実行される仮想システムのメモリの内容のスナップショットを受信して記憶し、
前記他のサーバに障害が発生した場合、前記他のサーバのストレージのストレージ同期エリアの内容が複製される自サーバのストレージのストレージ同期エリアに仮想アドレスを設定し、該仮想アドレスを用いて、前記NFSで自サーバのストレージのストレージ同期エリアをマウントし、記憶した前記スナップショットを用いて、前記仮想システム上で前記アプリケーションを実行する処理をサーバに実行させるためのプログラム。
【符号の説明】
【0091】
10:フォールトトレラントシステム
11:第1サーバ
12:第2サーバ
21、22:ストレージ
31、32:ディスクイメージ
41、42:仮想システム
51、52:アプリケーション
100:フォールトトレラントシステム
110:プライマリサーバ
111、131:ハードウェア
112、132:ホストOS
113、133:QEMU
114、134:ゲストOS
115、135:呼制御アプリケーション
116、136:DRBD
117、137:監視アプリケーション
118、119、138、139:NIC
120、140:ストレージ
121、141:ハイパーバイザ
122、142:ストレージ同期エリア
123、143:仮想システムのディスクイメージ
124、144:マウントポイント
125、145:仮想システム
130:セカンダリサーバ

図1
図2
図3
図4
図5
図6
図7
図8
図9