JP4809209B2 - サーバ仮想化環境における系切り替え方法及び計算機システム - Google Patents

サーバ仮想化環境における系切り替え方法及び計算機システム Download PDF

Info

Publication number
JP4809209B2
JP4809209B2 JP2006356576A JP2006356576A JP4809209B2 JP 4809209 B2 JP4809209 B2 JP 4809209B2 JP 2006356576 A JP2006356576 A JP 2006356576A JP 2006356576 A JP2006356576 A JP 2006356576A JP 4809209 B2 JP4809209 B2 JP 4809209B2
Authority
JP
Japan
Prior art keywords
application
cluster
guest
unit
virtualization
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.)
Expired - Fee Related
Application number
JP2006356576A
Other languages
English (en)
Other versions
JP2008165637A (ja
Inventor
恒彦 馬場
雄次 對馬
俊臣 森木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006356576A priority Critical patent/JP4809209B2/ja
Priority to US11/707,876 priority patent/US7617411B2/en
Publication of JP2008165637A publication Critical patent/JP2008165637A/ja
Priority to US12/585,734 priority patent/US8015431B2/en
Application granted granted Critical
Publication of JP4809209B2 publication Critical patent/JP4809209B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、本発明は、サーバ仮想化環境においてクラスタ構成を構築する高可用性のあるコンピュータシステムに関し、特に障害の監視と系切り替えとを行う機能を有するプログラムに関する。
サーバ仮想化は、単一の物理計算機上で複数のオペレーティングシステム(Operating System、以下OS)を同時に動作させる技術である。論理分割は、物理計算機の資源を複数の論理区画(LPAR)に分割する管理プログラム(サーバ仮想化プログラム)が介在して実現され、各LPAR上で一つずつのOS(ゲストOS)を動作させる。サーバ仮想化プログラムは、ハイパバイザや、物理計算機上でゲストOSとは異なるOSといったサーバ仮想化層(以下では、ホストOSと呼ぶ)で稼動するプログラムである。
このような論理分割を用いた物理計算機(サーバ仮想化環境)では、物理計算機の資源が複数LPARによって共有されるため、物理計算機の資源が障害になった場合に複数のLPARに障害が発生する可能性がある。
従って、サーバ仮想化環境において、高可用性のあるコンピュータシステムを構築する場合には、障害発生時にゲストOS上で動いていたアプリケーションプログラム(以下、AP)の別待機系ゲストOSへの引き継ぎ(系切り替え)を行うようなクラスタ構成のコンピュータシステムが用いられる。
非特許文献1では、サーバ仮想化環境におけるクラスタ構成方法として、各LPAR上のゲストOS上に、クラスタプログラムを稼動させ、各ゲストOS間でゲストOSとAPの障害の監視と、APの系切り替えが行う方法1と、ホストOS上にクラスタプログラムを稼動させ、ホストOS間でホストOSとゲストOSの障害監視と、ゲストOSの系切り替えを行う方法2とが実現されている。
上記方法1では、ゲストOS間のクラスタプログラムが通信(ハートビート)によって、ゲストOSとAPの障害監視を行うことで、APの稼動している実行系の障害が発生した場合に待機系へと系切り替えを行う。この系切り替え方法では、事前に待機系となるゲストOSやAPの起動が行われているホットスタンバイが実現できる。
一方、上記方法2では、ホストOS上のクラスタプログラムがハートビートによってホストOSとゲストOSの障害監視を行うことで、実行系の障害が発生した場合には、系切り替え先となる待機系を同一計算機または別計算機上にゲストOSのブートから行い、系切り替えを行う。この系切り替え方法では、ゲストOSの起動から行うコールドスタンバイが実現できる。
「CLUSTERPRO(登録商標)を利用したVMware(登録商標)Rサーバ統合ソリューション」、[online]、日本電気株式会社 発行、[平成18年10月31日検索]、インターネット<URL:http://www.ace.comp.nec.co.jp/CLUSTERPRO/doc/pp_lin/CLUSTERPRO_VMware.pdf>
上記非特許文献1の方法1では、各ゲストOS上のクラスタプログラムがアプリケーションとゲストOSの障害監視を行うため、ゲストOSの数だけ障害監視の通信(ハートビート)が必要であり、ゲストOS数を多くした場合には、複数のゲストOSが共有する通信資源、例えば、NIC(Network Interface Card)に高い負荷がかかることになる。従って、ハートビートの遅延が生じるという第1の課題がある。
加えて、各ゲストOS上でクラスタプログラムが稼動している必要があるため、待機系となるゲストOS上でのクラスタプログラムが障害監視処理以外ではアイドル状態となり、計算機資源の利用効率が下がり、実行系のパフォーマンスが低下する、という第2の課題がある。
一方、非特許文献1に示される方法2は、上記課題1及び課題2を解決することが可能であるが、新しいLPARへのゲストOS及びアプリケーションの割り当てとゲストOSのブートを伴うコールドスタンバイであり、ホットスタンバイによる系切り替え方法ではないため、系切り替えの時間がホットスタンバイに比べて増大するという第3の課題を有する。
また、上記方法1と方法2を組み合わせた場合、方法1と方法2が独立して系切り替え処理を行うため、それぞれ別のLPARへの系切り替えが実施されることで、複数の実行系LPARが同時にアプリケーションを引き継ぐ可能性があり、このような系切り替えの競合が発生した場合には、複数の実行系によってデータ破壊が生じて、システム停止が生じる恐れがあるという第4の課題がある。
以上に示すように、ホットスタンバイを実現する系切り替え方法において、ゲストOS数が増大した場合に計算機資源の消費量が増大し、ハートビートの遅延や実行系のパフォーマンス低下が生じるという課題がある。
そこで本発明は、上記問題点に鑑みてなされたもので、ゲストOSが多数存在する場合でも、サーバの計算機資源の消費を抑制しながら円滑な系切り替えを実現することを目的とする。
本発明は、少なくとも1つ以上の物理計算機で稼動する第1の仮想化部と第2の仮想化部と、前記第1の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第1の系と、前記第2の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第2の系と、前記第2の仮想化部で第1の系を切り替えた場合に新たに稼動することのできる第3の系と、を備え、前記各ゲストOS上で稼動して当該ゲストOS上のアプリケーションを監視し、障害発生時には前記アプリケーションを第1の系と第2の系の間で切り替える第1のクラスタ処理を実行する第1のクラスタ管理部と、前記各仮想化部上で稼動して、当該仮想化部上で稼動するゲストOSと他の仮想化部を監視し、障害発生時には前記ゲストOS及びアプリケーションを第3の系へ移動し、前記ゲストOS及びアプリケーションを起動することで第1の系と第3の系の間で切り替える第2のクラスタ処理を第2のクラスタ管理部が実行して、前記第1の系と第2の系または第3の系の間でゲストOSまたはアプリケーションを切り替えるクラスタシステムの系切り替え方法であって、前記第1のクラスタ処理が、当該第1のクラスタ処理を実行するゲストOS上のアプリケーションの情報を取得するステップと、前記第1の系の第1のクラスタ処理が、前記取得したアプリケーションの情報を前記第2のクラスタ処理へ通知するステップと、前記第1の仮想化部の第2のクラスタ処理が、前記第1のクラスタ処理から前記アプリケーションの情報を取得するステップと、前記第1の仮想化部の第2のクラスタ処理が、前記各ゲストOS上の第1のクラスタ処理からそれぞれ取得したアプリケーションの情報を集約するステップと、第1の仮想化部の前記第2のクラスタ処理が、前記集約したアプリケーションの情報を、一括して第2の仮想化部の第2のクラスタ処理へ通知するステップと、前記第2の仮想化部の第2のクラスタ処理が、前記アプリケーションの情報をハートビートとして取得し、当該アプリケーションに対応する第2の系のゲストOS上の第1のクラスタ処理へ転送するステップと、前記第2の系の第1のクラスタ処理が、前記第2のクラスタ処理から転送された前記アプリケーションの情報に基づいて、前記第1の系のアプリケーションの障害を監視し、障害を検知したときには前記アプリケーションを第1の系から第2の系へ切り替えるステップと、を含む。
また、前記第1の仮想化部の第2のクラスタ処理が、前記集約したアプリケーションの情報を、一括して第2の仮想化部の第2のクラスタ処理へ通知するステップと、前記第1の仮想化部の第2のクラスタ処理が、第1の系のゲストOSの状態を取得するステップ、前記取得したゲストOSの状態と、前記取得したアプリケーションの障害状態とを一括して前記第2の仮想化部の第2のクラスタ処理へ通知するステップと、を含む。
また、前記第2の系の第1のクラスタ処理が、前記アプリケーションを起動して待機させるステップと、前記第2の系の第1のクラスタ処理が、前記アプリケーションを待機させたことを第2の仮想化部の第2のクラスタ処理へ通知するステップと、前記第2の仮想化部の第2のクラスタ処理が、前記通知に基づいて前記アプリケーションを待機させたゲストOSへのリソースの割当を低減して待機させるステップと、前記第2の仮想化部の第2のクラスタ処理が、前記第1の系のアプリケーションの障害の状態を取得したときには、前記待機させたゲストOSへのリソースの割当を増大させた後に、系切り替えを行う。
したがって、本発明は、サーバ仮想化環境におけるクラスタ構成において、ゲストOS/ホストOS(仮想化部)上に第1、第2のクラスタ管理部(スレーブクラスタプログラム、マスタクラスタプログラム)が稼動し、スレーブクラスタプログラムのハートビートをマスタクラスタプログラムが集約して送信することで、ゲストOSの数に依存することなく一定量のハートビートによる障害監視を実現する機能を提供することができる。
さらに、マスタクラスタプログラムが、スレーブクラスタプログラムの障害を監視することによって、ゲストOSが正常に稼動している場合には、待機系(第2の系)のスレーブクラスタプログラムへの通信を不要にすることで、ゲストOSの数に依存することなく、ハートビートを削減することができる機能を提供することができる。また、ゲストOSの数が増大しても系切り替えの際に競合が発生するのを防いで、円滑な系切り替えを実現できる。
加えて、マスタクラスタプログラムが、待機系のゲストOSに対する計算機資源の割り当てを停止しておき、実行系のゲストOSの障害が発生した場合に、系切り替え先となったゲストOSへの計算機資源の割り当てを再開することによって系切り替えを行う機能を提供することができる。
さらに、マスタクラスタプログラムが、待機系のゲストOSに対する計算機資源の割当量を削減しておき、実行系のゲストOSの障害が発生した場合に、計算機資源の割当量の削減を解除し、系切り替えを行う機能を提供することができる。
以上のようにサーバ仮想化環境におけるクラスタ構成において、ゲストOS/ホストOS上にスレーブ/マスタクラスタプログラムが稼動しているクラスタ構成において、ゲストOSの数が増大した場合であっても、ハートビートの監視を遅延させることなく、障害の監視が可能である系切り替え方法を提供することができる。
以下、本発明の実施の形態を添付図面に基づいて説明する
<第1の実施の形態>
本発明に関する図と説明は、本発明を鮮明に理解するのに適当な要素を示すために簡略化されており、発明を実施するのに支障ない範囲で既知の要素等は省略していることを理解されたい。本技術中で従来技術の中には、本発明を実装するために他の要素が望ましく、かつ/または、必要とされると思われるものが幾つかある。しかし、技術中のこれらの要素は既知であり、本発明の理解を容易にするものではないので、ここでは説明しない。
また、以下の説明では、各プログラムは実行系(または現用系)のモジュール番号で説明している場合もあるが、それらの説明は、待機系の対応したプログラムの説明も兼ねる場合もある。さらに、以降の図に示す符号において、他の図中の数字と同様の番号を用いているものがあるが、それらについては特に説明がない場合、他の図の説明と同様である。
図1から図9は本発明における第1の実施形態について表している。
図1は、第1の実施の形態のサーバ仮想化環境の物理計算機のハードウェア構成を表すブロック図である。
第1の実施の形態の物理計算機Aは、CPU11と、メモリ14と、ストレージ15と、NIC(ネットワークインターフェースカード)16を備える。
CPU11は、メモリ14に格納されたプログラムを実行することによって、各種処理を実行する。メモリ14は及びストレージ15は、CPU11によって実行されるプログラムおよび処理に必要なデータを格納する。NIC16は、ネットワーク(図中LAN)を介して、他の計算機(例えば、物理計算機B)と通信する。なお、CPU11は複数のコア#1、#2を備え、複数の処理(例えば、複数のOS)を並列的に実行可能である。
物理計算機Bも上記物理計算機Aと同様に構成され、CPU21と、メモリ24と、ストレージ25と、NIC26を備え、CPU21は、メモリ24に格納されたプログラムを実行することによって、各種処理を実行する。なお、CPU21も複数のコア#1、#2を備え、複数の処理を並列的に実行可能である。
本実施形態では、物理計算機Aが実行系の計算機システムを構成し、物理計算機Bが待機系の計算機システムを構成する。
図2は、図1に示した物理計算機におけるサーバ仮想化環境のソフトウェアを主体とした機能ブロック図である。
実行系システムを構成する物理計算機Aでは、ホストOS_A(530)上に論理区画(以下、LPAR=Logical PARtitionとする)を構成するサーバ仮想化プログラム510が稼動し、LPAR1とLPAR2を提供する。また、前記サーバ仮想化プログラム510は、前記LPAR1とLPAR2と異なる新たなLPAR5を提供する。なお、ホストOS530とサーバ仮想化プログラム510が仮想化部を構成する。LPAR1ではゲストOS1(130)が実行され、このゲストOS1上でアプリケーション(AP1)110が稼動し、また、アプリケーションAP1を監視し、実行系と待機系の間で系切り替えを行うスレーブクラスタプログラム120(第1のクラスタ管理部)が稼動する。LPAR2ではゲストOS2(230)が実行され、このゲストOS2上でアプリケーション(AP2)210が稼動し、また、アプリケーションAP2を監視するスレーブクラスタプログラム220が稼動する。LPAR5では、ゲストOSやアプリケーションは稼動しておらず、実行系上または待機系上の任意のLPARを切り替えた場合に、前記切り替えたLPAR上のゲストOSやアプリケーション、スレーブクラスタプログラムがLPAR5で稼動する。ここで、LPAR5は事前に設定されたLPARであってもよいし、前記切り替えが行なわれる場合に、前記サーバ仮想化プログラムが提供する新たなLPARであってもよい。また、ホストOS_A上では、各LPAR1、2のゲストOSまたは他の仮想化部を監視し、実行系または待機系のLPARと前記新たなLPAR5の間でゲストOS及びアプリケーションを切り替え、前記LPAR5、ゲストOSとアプリケーションを起動することで、系切り替えを実行するマスタクラスタプログラム520(第2のクラスタ管理部)が稼動している。
一方、待機系システムを構成する物理計算機Bも、実行系システムの物理計算機Aと同様の構成のソフトウェアが実行される。つまり、物理計算機Bでは、ホストOS_B(530’)上にLPAR3、LPAR4を構成するサーバ仮想化プログラム510’が稼動する。また、前記サーバ仮想化プログラム510’は、前記LPARとLPARと異なる新たなLPAR6を提供する。LPAR3ではゲストOS3(130’)実行され、このゲストOS3では実行系から切り替えるためのアプリケーション(AP1)110’が稼動し、また、アプリケーションAP1を監視し、実行系と待機系の間で系切り替えを行うスレーブクラスタプログラム120’が稼動する。LPAR4ではゲストOS4(230’)が実行され、このゲストOS4上で実行系から切り替えるためのアプリケーション(AP2)210’が稼動し、また、アプリケーションAP2を監視するスレーブクラスタプログラム220’が稼動する。LPAR6では、ゲストOSやアプリケーションは稼動しておらず、実行系上または待機系上の任意のLPARを切り替えた場合に、前記切り替えたLPAR上のゲストOSやアプリケーション、スレーブクラスタプログラムが稼動する。また、ホストOS_B上では、各LPAR3、4のゲストOSまたは他の仮想化部を監視するマスタクラスタプログラム520’が稼動し、実行系または待機系のLPARと前記新たなLPAR6の間でゲストOS及びアプリケーションを切り替え、ゲストOSとアプリケーションを起動することで、系切り替えを実行する。 ここで、前記マスタプログラムによって行なわれるゲストOS及びアプリケーションの切り替えは、例えば、ゲストOSやアプリケーションを起動するディスク装置を新たなLPARが利用することで実現してもよいし、ゲストOSやアプリケーションの動作中のスナップショットを利用することで実現してもよい。なお、LPAR5、LPAR6は、コールドスタンバイとして機能する第3の系を構成する。
図3は、実行系の物理計算機Aで実行されるソフトウェアの詳細な構成を示すブロック図である。上述のように複数の物理計算機A、Bは、同様の構成となっているため、図3では、物理計算機Aのソフトウェア構成のみを説明し、物理計算機Bのソフトウェア構成の説明は省略する。また、物理計算機Aの複数のLPARの構成も同様の構成となっているため、LPAR1のみ説明し、他のLPAR2の詳細は省略して記載する。
物理計算機Aは、LPAR1、2を管理するサーバ仮想化プログラム510が稼動する論理的なホストノード500と、前記サーバ仮想化プログラム510によって管理されるLPAR群100(LPAR1)、200(LPAR2)を含む。
LPAR100は、OSとしてゲストOS130が稼動しており、そのゲストOS上で、業務を行なうアプリケーションプログラム(AP1)110と、アプリケーション110の状態の監視と、実行系と待機系の間で系切り替えを行うスレーブクラスタプログラム120とを含む。
前記スレーブクラスタプログラム120は、アプリケーション110の状態を監視するアプリケーション監視部122と、前記アプリケーション監視部122で得られたアプリケーション状態をハートビートとして、ホストOS530上の通信部521を介して待機系のスレーブクラスタプログラム120’に通知を行なう。また、スレーブクラスタプログラム120は、待機系のスレーブクラスタプログラム120’からの通知を受信するアプリケーション状態通知部121と、スレーブクラスタプログラム120が待機系として動作する場合に、実行系のアプリケーション110、210の状態をハートビートによって監視し、実行系のアプリケーションの障害発生時に系切り替えを実施する系切り替え制御部123とを有する。なお、アプリケーション110の稼動状態を示すハートビートとしては、アプリケーション110が実行中に発生する信号の他、アプリケーション110が生成したデータやファイルを含めることができ、これらの情報はアプリケーション110の稼動状態を示す稼動情報を構成する。そして、ハートビートの検出は、アプリケーション110の稼動情報を検知することで行うことができる。
ここで、前記系切り替え制御部123が系切り替えを実行する契機として、例えば、ハートビートに含まれるアプリケーションの状態が異常である場合、あるいは、クラスタプログラム120やゲストOS130、あるいはホストノード500の障害によってハートビートが途絶する場合などがある。また、前記通知部121によるアプリケーション状態の通知は、ホストOS530上の通信部521を介さず、直接NIC16へアクセスすることで、行なわれても良い。
また、前記ゲストOS130は、ホストOS530上のクラスタプログラム(マスタクラスタプログラム)520に対して、ゲストOS130の状態を教えるOS状態通知部131を持つ。
次に、ホストノード500は、ホストOS530(OS_A)が稼動しており、そのホストOS530上で、前記LPAR1、2を管理するサーバ仮想化プログラム510と、マスタクラスタプログラム520とを含む。
サーバ仮想化プログラム510は、前記ゲストOS130に図1で示した物理的な計算機資源(ハードウェア)の割当を行うゲストOS制御部511と、ゲストOS130から得たゲストOSの稼動状態を管理するゲストOS監視部512を有する。前記ゲストOS監視部512は、図6に示すようなゲストOS状態管理表513を有する。図6に示すゲストOS状態管理表513は、サーバ仮想化プログラム510が管理するゲストOS130、230の識別子3001と、前記識別子を有するゲストOSの状態3002と、ゲストOS530状態の情報を更新した更新時刻3003を含む。図6のゲストOS状態管理表513は、実行系のサーバノード500で稼動しているゲストOS1、ゲストOS2の状態を示し、ゲストOS1(130)は時刻t3の時点で状態が正常であることを示し、ゲストOS2(230)は時刻t4の時点で状態が正常であることを示す。
さらに、実行系のマスタクラスタプログラム520は他の物理計算機Bや、前記ホストOS530上のスレーブクラスタプログラム120、220との通信を行うことのできる通信部521と、ホストOS530の稼動状態を記録するホストOS状態管理表525を有し、ホストOS530の稼動状態を監視するホストOS監視部524と、ホストOS530やゲストOS130、230の障害発生時に系切替先となるスレーブクラスタプログラム120、220に対して系切り替えを指示する系切り替え制御部522とを有する。
前記マスタクラスタプログラム520は、前記通信部521を通じて、待機系など他のマスタクラスタプログラム520’とハートビートによる監視を行うことで、他のホストOSやゲストOSの障害を監視することができる。
前記系切り替え制御部522は、前記ゲストOS530上のスレーブクラスタプログラム120、220によって構成されるクラスタ構成を記録するゲストOS系切り替え対応表523を有しており、前記ホストOS530上のゲストOS監視部512やホストOS監視部524からゲストOS130、230とホストOS530の状態を得ることで、自計物理算機上のホストOSとゲストOSの障害を監視することができる。
前記ホストOS状態管理表525は、図5に示されるように、ホストOSの識別子2001と、ホストOSが管理するゲストOSの識別子群2002と、そのホストOSの稼動状態2003と、稼動状態の更新時刻2004を有する。図示の例では、実行系のホストOS_Aの状態が良好であり、実行系にはゲストOS1、2が稼動していることを示し、また、待機系のホストOS_Bの状態が良好であり、待機系にはゲストOS3、4が稼動していることを示している。
また、前記ゲストOS系切り替え対応表523は、図4に示されるように、前記スレーブクラスタプログラム120、220によって構成されるゲストOS間のクラスタ構成に基づいて、監視対象となるアプリケーションAP1、AP2の識別子1001、そのクラスタを構成するOS群(ホストOSとゲストOS)の識別子1010、1020とを有する。また、前記識別子1010、1020は、アプリケーション識別子1001毎に、アプリケーションが稼動するホストOS毎に設定され、アプリケーションが稼動するゲストOSの識別子1012、1022と、これらのゲストOSが稼動するLPARを管理するホストOSの識別子1011、1021とを含む。図4の例では、実行系の計算機システムのホストOS_Aと、待機系の計算機システムのホストOS_Bでクラスタを構成する例を示し、アプリケーションAP1は、実行系システムのホストOS_AのゲストOS1と、待機系システムのホストOS_BのゲストOS3で系切替を行うクラスタを構成し、アプリケーションAP2は、実行系システムのホストOS_AのゲストOS2と、待機系システムのホストOS_BのゲストOS4で系切替を行うクラスタを構成する例を示している。
図7〜図9は、第1の実施の形態の動作を表すフローチャートである。
以下、同様のフローチャートでは、図中の符号A/B(1A、3A、3B)はそれぞれ、実行系及び待機系のマスタクラスタプログラム520、520’の動作を、C/D(2C、2D、3D)は実行系/待機系のスレーブクラスタプログラムの動作を、1Eは実行系のゲストOSの動作を表す。なお、各動作には、各クラスタプログラム外のモジュールと連携した動作を含む。
図7は、実行系のゲストOS130、230の状態(ゲストOS状態)を実行系のマスタクラスタプログラム520が検知する処理の一例を示すフローチャートである。なお、以下の説明では、実行系のゲストOS1(130)についての処理を説明するが、他のゲストOS2及び待機系の処理も同様である。
まず、実行系のゲストOS130上のOS状態通知部131は、ゲストOS1の所定の監視時間が経過したかを判断し(S181)、経過していなければ再び判断を継続する。一方、所定の監視時間が経過している場合には、自ゲストOS130の状態を取得し(S182)、ホストOS530上のサーバ仮想化プログラム510のゲストOS監視部512に対して、ゲストOS130の状態を通知する(S183、通知T11)。
次に、実行系のサーバ仮想化プログラム510では、前記ゲストOS監視部512が、前記通知T11を受信しているかを判断し(S101)、受信している場合には、受信した内容に従い、ゲストOS状態管理表513を更新する(S102)。一方、前記通知T11を受信していない場合には、ゲストOS監視部512はゲストOSを障害と見なす一定の監視時間の間、ゲストOS状態管理表513が更新されていないかを判断する(S103)。ゲストOS状態管理表513が更新されていない場合は、ゲストOS130が障害状態にあると判定し、前記処理S102でゲストOS状態管理表513を更新する。一方、ゲストOS状態管理表513が更新されている場合には、ゲストOS監視部512は、上記処理S101に戻り、ゲストOSからのハートビートを待つ。
図8は、スレーブクラスタプログラム120、120’間のハートビートによる系切り替えを実施するフローチャートである。まず、実行系のスレーブクラスタプログラム120上のアプリケーション監視部122は、アプリケーションAP1(110)の所定の監視時間が経過したかを判断し(S241)、経過していなければ再び判断を継続する。一方、所定の監視時間が経過している場合には、アプリケーション監視部122は、自ゲストOS130上のアプリケーション110の状態を取得し(S242)、待機系ゲストOS130’上のスレーブクラスタプログラム120’に対して、アプリケーション状態通知部121がアプリケーション状態を通知する(S243、通知T12)。ここで、前記アプリケーション状態は、アプリケーションAP1の稼動状態を表す以外の情報、例えば、アプリケーションAP1の処理内容等を含んでも良い。なお、アプリケーション状態通知部121は、マスタクラスタプログラム520の通信部521を介して、待機系のスレーブクラスタプログラム120’に上記アプリケーション状態を通知T12として送信する。
次に、待機系のスレーブクラスタプログラム120’では、アプリケーション状態通知部121が、前記実行系のアプリケーションAP1の状態を示す通知T12を受信しているかを判断する(S261)。前記通知T12を受信している場合には、アプリケーション状態通知部121が、実行系のアプリケーションAP1(110)の障害発生の通知かどうかを判断し(S262)。障害が発生している場合には、アプリケーションAP1(110)の系切り替え処理を実施する(S263)。すなわち、待機系のスレーブクラスタプログラム120’が待機系のゲストOS130’上のアプリケーション110’、(AP1)を機能させる。
一方、障害が発生していない場合には、待機系のスレーブクラスタプログラム120’は、上記S261へ戻って、再びアプリケーション状態の通知T12を待つ。前記処理S261において、前記通知T12を受信していない場合には、スレーブクラスタプログラム120’は、実行系のアプリケーション110(AP1)を障害と見なす一定の監視時間の間、通知T12が更新されていないかを判断する(S264)。通知T12が更新されていない場合は、実行系のゲストOS130が障害状態にあるため、待機系のスレーブクラスタプログラム120’は系切り替えを実施する(S263)。待機系のスレーブクラスタプログラム120’は、系切り替え完了後に、実行系のスレーブクラスタプログラムとしての処理2Cを実行する。一方、通知T12が更新されている場合には、処理S261に戻り、待機系のスレーブクラスタプログラム120’は実行系のアプリケーション状態の監視を行う。
図9は、マスタクラスタプログラム520、520’間のハートビートによるゲストOSの系切り替えを実施するフローチャートである。まず、実行系のマスタクラスタプログラム520は、図9の処理3Aを実行し、自ホストOS530の所定の監視間隔が経過したかどうかを判断し(S301)、経過していなければ判断を継続する。一方、所定の監視間隔が経過している場合には、ホストOS状態管理表525の自ホストOSの状態と、ゲストOS状態管理表513のゲストOS状態を、マスタクラスタプログラム520が待機系のマスタクラスタプログラム520’へハートビートとして通信部521を介して送信する(処理S302、通知T13)。この通知T13は、ホストOS530の状態とゲストOS130、230の状態を集約したものである。
次に、待機系のマスタクラスタプログラム520’は、図9の処理3Bを実行し、ハートビートとしての前記通知T13の受信の監視を行う(S341)。実行系のマスタクラスタプログラム520からハートビートを受信しなかった場合は、前回のハートビートによって通知された実行系のホストOS530の更新時刻2004を参照し、実行系のホストOS530を障害と見なす一定の監視時間の間、前記通知T13が無かったかどうかを判断し、通知T13がなかった場合には、待機系のマスタクラスタプログラム520’は、実行系のホストOS530が障害状態にあると判定し、S343の処理へ進む(S342)。なお、上記更新時刻2004は、マスタクラスタプログラム520’のホストOS状態管理表525から参照することができる。
実行系のホストOS530の障害を検知したS343では、待機系のマスタクラスタプログラム520’が系切り替え対応表523を参照し、障害ホストOS上のゲストOSを抽出する(S343)。
待機系のマスタクラスタプログラム520’は、前記処理S343で抽出されたゲストOSと、前記処理S342で通知がなかったホストOSとを障害状態と判定して、それぞれのゲストOS状態管理表513とホストOS状態管理表525を更新し(処理S344)、処理S347の処理へ進む。一方、前記連通T13の通知があった場合には、処理S341に戻り、実行系のマスタクラスタプログラム520から実行系のホストOS530のハートビートを待つ。
次に、前記処理S341で、待機系のマスタクラスタプログラム520’がハートビートを受信した場合には、受信した内容に従い、ホストOS状態管理表525と、ゲストOS状態管理表513を更新する(S345)。次に、前記管理表513を参照し、ゲストOS障害が発生したかを判断し(S346)、障害が発生していなかった場合には、待機系のマスタクラスタプログラム520’は、再び処理S341に戻り、実行系のホストOSからのハートビートを待つ。
一方、実行系システムのホストOSに障害が発生していた場合には、処理S347を実行する。
処理S347では、ゲストOS系切り替え対応表523を参照することで、前記処理S343や前記処理S346で抽出された障害となっているゲストOSが、自ホストOS上に存在するかを判断する。障害が発生したゲストOSが自ホストOS上に存在しない場合は、系切り替え処理は必要ないため、マスタクラスタプログラム520’は、再び処理S341に戻ってホストOSからのハートビートを待つ。
一方、障害が発生したゲストOSが自ホストOS530’上に存在する場合は、スレーブクラスタプログラム120’、220’による系切り替えが必要となるため、抽出されたゲストOSに対して、マスタクラスタプログラム520’は系切り替えをスレーブクラスタプログラム120’、(220’)に指示する(S348、通知T14)。通知T14を送信するとマスタクラスタプログラム520’は、再び処理S341に戻り、実行系のホストOS530のハートビートを待つ。ここで、前記処理S349及び、通知T14は、明示的な系切り替えの指示ではなく、ゲストOSの障害の通知であっても良い。
一方、待機系のスレーブクラスタプログラム120’、(または220’)は、アプリケーション状態通知部121が前記通知T14を受信すると(S361)、系切り替えが必要であるかどうかを判断する(S362)。ここで、系切り替えが必要であると判断された場合には、待機系のスレーブクラスタプログラム120’が系切り替え処理S363を実施する。つまり、実行系のゲストOS130及びアプリケーション110を、待機系に切り替える。系切り替え完了後は、待機系のスレーブクラスタプログラム120’が実行系のスレーブクラスタプログラムとしての処理2C(図8)を実行する。一方で、系切り替えが必要でない場合には、待機系のスレーブクラスタプログラム120’は何も行わない。例えば、系切り替えが必要でない場合は、その障害をスレーブクラスタプログラム間のハートビートで事前に検知し、図8に示した系切り替え処理S263を実施済みである場合がある。
ここで、系切り替えが完了した場合には、検出された障害に対して系切り替えが実施された状態であるため、ゲストOS130(230)、ホストOS530の障害状態を変更してもよい。この場合、変更の契機は、スレーブクラスタプログラム120(220)によって系切り替えの完了をマスタクラスタプログラム520に通知する形であってもよいし、障害から回復したホストOS、ゲストOSが正常状態であることを監視する形であってもよいし、加えて、マスタクラスタプログラム520の管理者が明示的に変更を指示する形であってもよい。
なお、上記S263、S363における系切り替え処理は、スレーブクラスタプログラム120(120’)が管理する系状態に基づいて系切り替えが実施される。
また、第1の実施形態においては、図4の系切り替え対応表523において、実行系と待機系のホストOS/ゲストOSの対応関係を示す識別子としてアプリケーションの識別子を示したが、ユニークな数字を識別子として用いても良い。
また、実行系のゲストOS130(または230)とアプリケーション110(または210)及びスレーブクラスタプログラム120(または220)を、待機系でコールドスタンバイとなっているLPAR6へ切り替える場合では、上記図8と同様に処理を行うことができる。
例えば、図8の処理2Cを実行系のマスタクラスタプログラム520が実行し、同じく図8の処理2Dを待機系のマスタクラスタプログラム520’が実行すると見なし、図8のアプリケーション状態をゲストOS状態あるいはホストOS状態に置き換えることで、マスタクラスタプログラム520が実行系のゲストOS130、230とホストOS530の監視を行う。そして、実行系で障害が発生した時には、待機系のマスタクラスタプログラム520’が系切り替えを行なう(図8のS263)。この場合、図8のS263の系切り替え処理をコールドスタンバイの系切り替えに置き換えて、待機系のマスタクラスタプログラム520’が、実行系のゲストOS130をLPAR6で起動し、さらにアプリケーションAP1とスレーブクラスタプログラム120を起動することで、実行系から待機系のLPAR6へゲストOSを引き継ぐことが出来る。このようにコールドスタンバイの系であるLPAR6への系切り替えを実行することができる。このとき、マスタクラスタプログラム520、520’は、上記と同様に各管理表を更新することができる。
以上、図3〜図9に示した一連の処理を行うことで、待機系のホストOS530上のマスタクラスタプログラムによって実行系のホストOS530の障害が検出された場合には、ゲストOSの系切り替えを行なうことができる。これにより、ホストOS上とゲストOS上にマスタ/スレーブクラスタプログラムを有しながら、一つの障害に対して、同時に異なる複数の系切り替えを実施することのないホットスタンバイによる系切り替え方法を実現することができ、前述の第3、第4の課題を解決することができる。これにより、ゲストOSが多数存在する場合でも、系切り替えの際に競合が発生するのを防いで、円滑な系切り替えを実現実現することが可能となる。
<第2の実施の形態>
図10は、第2の実施形態を示すフローチャートで、前記第1の実施の形態の図9の一部を変更したものである。その他の構成は前記第1実施形態と同様である。
図10では、実行系のマスタクラスタプログラム520は、図10の処理4Aを実行し、前記図9のS301、S302と同様に、図10の処理S401、S402を実施し、ゲストOS状態の通知T13を送信する。
待機系のマスタクラスタプログラム520’は、図10の処理3Bを実行し、前記処理S341と同様に、実行系のマスタクラスタプログラム520から前記通知T13を受信した否かの判断を行なう(S441)。前記通知T13を受信した場合には、受信した内容に従い、前記図9の処理S345と同様に、待機系のマスタクラスタプログラム520’は、各管理表525、513を更新し(S444)、再び処理S441に戻り、ホストOSからのハートビートを待つ。
一方、処理S441で実行系のマスタクラスタプログラム520からハートビートとしての通知T13を受信しなかった場合には、待機系のマスタクラスタプログラム520’は前記図9の処理S342、処理S343と同様の処理S442、S443を実施する。処理S442において、通知T13を受信できない期間が一定時間に満たない場合には、処理S441に戻り、ホストOS530からのハートビートを待つ。一方、通知T13が受信できない期間が一定時間を超える場合には、実行系のホストOS530に障害が発生したと判定して前記図9のS343と同様に、障害が発生したホストOS530上のゲストOS130(230)を抽出する。処理S443終了後は、実行系のホストOS530が障害状態にあるため、処理S344と同様に、抽出されたゲストOSと、通知がなかったホストOSとを障害状態として、それぞれの管理表513と525を更新する処理S444を実行する。
次に、待機系のスレーブクラスタプログラム120’、(220’)は、図10の処理4Dを実行し、ゲストOS(またはアプリケーション)の監視時間が経過したかを判断し(S461)、経過していなければ再び監視を継続する。一方、所定の監視時間を経過している場合には、系切り替え制御部123は、マスタクラスタプログラム上のゲストOS状態管理表513を参照する(処理S462)。待機系のスレーブクラスタプログラム120’は、この処理S462で取得したゲストOSの状態から、実行系のスレーブクラスタプログラム120(220)が稼動するゲストOSに障害が発生したか否かを判断し(S463)、障害が発生していない場合には、再び処理S461に戻り、ゲストOSの監視を継続する。一方、実行系のゲストOS130、230に障害が発生した場合には、前記図9の処理S363と同様に系切り替え処理S464を実施する。待機系のスレーブクラスタプログラム120’は、系切り替えを完了した後には、実行系のスレーブクラスタプログラムとしての処理2C(図8)を実施する。
以上、図10のフローチャートを前記第1実施形態の図9と置き換えることにより、待機系のスレーブクラスタプログラム120’が、マスタクラスタプログラム520’のハートビートを介して、実行系のホストOSに障害が発生したときのゲストOSの障害を監視することが可能である。従って、障害が発生した場合にのみ、物理計算機間を跨ったハートビートを実施するだけで障害監視が可能である。これにより、前記第1の実施形態と同様に、ホストOS上とゲストOS上にマスタ/スレーブクラスタプログラムを有しながら、一つの障害に対して、同時に異なる複数の系切り替えを実施することのないホットスタンバイによる系切り替え方法を実現することができ、前述の第3、第4の課題を解決することができる。
また、第2の実施形態のように、ゲストOSの監視はホストOSが実行し、ゲストOSに障害が発生したときのみ、実行系のホストOSのハートビートに障害の発生したゲストOSの情報を待機系に通知することで、実行系と待機系が共に正常な場合では、ホストOS間で通知するゲストOSまたはアプリケーションの情報を削減することができる。
また、障害が発生した場合にのみ、物理計算機間を跨ったハートビートを実施すれば良いので、ホットスタンバイを実現する系切り替え環境において、ゲストOSの数が増大した場合でも、ハートビートの遅延や実行系のパフォーマンスの低下を抑制することが可能となるのである。
<第3の実施の形態>
図11から図15は、第3の実施の形態を示す。図11は、本発明の第3の実施形態を表した物理計算機Aの機能ブロック図である。
図11では、前記第1実施形態の図3に加えて、前記マスタクラスタプログラム520は、スレーブクラスタプログラム120からアプリケーション状態を取得し、アプリケーション状態を監視するアプリケーション状態管理部526を有する。なお、待機系も実行系と同様に構成されるので待機系の図示は省略する。
前記アプリケーション状態管理部526は、図12に示すようなアプリケーション状態管理表527を有する。前記アプリケーション状態管理表527は、図12において、スレーブクラスタプログラム120が監視対象としているアプリケーションの識別子4001と、アプリケーション識別子4001のクラスタにおける役割として、実行系か待機系なのかを示す系状態4002と、どのホストOSとゲストOSで動作しているかを表す識別子4003、4004と、アプリケーションの稼動状態を示す稼動状態4005と、さらに前記アプリケーション稼動状態が更新された時刻4006を有する。
系状態4002は、アプリケーションの識別子4001毎に、実行系(ONL)と待機系(SBY)が設定される。アプリケーションの稼動状態4005は、稼動状態が良好であれば「OK」が設定され、障害発生時などでは「NG」が設定される。
ここで、系状態4002では、待機系(SBY)の場合、どの待機系に優先的に系切り替えするかを示す情報を含んでもよい。
ホストOS530上のマスタクラスタプログラム520の系切り替え制御部522は、前記アプリケーション状態管理表527を参照し、定期的にマスタクラスタプログラム520、520’間でのハートビートを行う。
図13は、スレーブクラスタプログラム120がアプリケーション状態を監視し、ハートビートとしてマスタクラスタプログラム520に通知する処理を表したフローチャートである。
図13において、スレーブクラスタプログラム120は、図13の処理5Cを実行し、一定の監視時間毎にアプリケーションを監視するため、一定時間が経過したかを判断する(S241)。一定の監視時間が経過していない場合には、監視時間が経過するまで待つため、処理S241に戻る。一方、一定の監視時間が経過している場合には、スレーブクラスタプログラム120がアプリケーション監視部122を通じてアプリケーション状態を取得し(S242)、アプリケーション状態通知部121がアプリケーション状態をハートビートとしてマスタクラスタプログラム520のアプリケーション状態管理部526へ送信する(S543、通知T22)。
一方、マスタクラスタプログラム520は、図13の処理5Aを実行し、前記アプリケーション状態管理部526が前記の通知T22によってアプリケーション状態を通知されたかどうかを判断し(S501)、通知された場合には、アプリケーション状態管理表527に通知されたアプリケーション状態を記録し、更新を行う(S502)。
次に図14は、図13で通知されたスレーブクラスタプログラム120のハートビートをホストOS530のマスタクラスタプログラム520のハートビートと一括して待機系へ送信する処理と、スレーブクラスタプログラム120’がハートビートを受信し、障害発生時には系切り替えを行う処理を表したフローチャートである。
図14では、前記第1実施形態の図10と同様に、実行系のマスタクラスタプログラム520は、図中処理6Aを実行し、一定監視時間毎にホストOS530の監視用のハートビートを送信するために、まずホストOS530の監視時間が経過したかを判断する(S601)。監視時間が経過していない場合には、この監視時間が経過するまで待つため、処理S601に戻る。一方、監視時間を経過している場合には、前記S502で更新されたアプリケーション状態管理表527を、ゲストOS状態管理表513とホストOS状態管理表525から得られるホストOS状態とゲストOS状態を、実行系のホストOSのハートビートとして、待機系のマスタクラスタプログラム520’に対して一括して送信する(S602、通知T23)。
前記通知T23は、図15に示すように、送信元のホストOS530の情報(識別子5001、ホストOS状態5002、ホストOS状態の更新時刻5003)を含む。さらに、前記通知T23は、前記ホストOS530の情報と同様に、ゲストOS130(OS1)、230(OS2)の情報5101〜5103、5201〜5203と、前記ゲストOS130、230上のアプリケーション110(AP1)、210(AP2)の情報5111〜5113、5211〜5213を含む。
つまり、マスタクラスタプログラム520は、ホストOS530の状態と、ゲストOS130、230の状態及びアプリケーション110、210の状態を一纏めにして待機系のクラスタプログラム520’へ送信する。
一方、待機系のマスタクラスタプログラム520’は、図14の処理6Bを実行し、前記第1実施形態の図9に示した処理S341〜S348と同様の処理S641〜S648を実施する。
前記第1実施形態の図9と本第3実施形態に示す図14の処理の相違点を以下に述べる。
まず、処理S643は、実行系のホストOS530に障害が発生している状態の場合、待機系のマスタクラスタプログラム520’の系切り替え制御部123は、系切り替え対応表523を参照し、障害が発生した前記ホストOS上で稼動するゲストOS及びアプリケーションを抽出する。続く処理S644では、前記ホストOS及び、抽出した前記ゲストOS及びアプリケーションの状態を障害状態として、ホストOS状態管理表525、ゲストOS状態管理表513、アプリケーション状態管理表527を更新する。また、処理S645における管理表525、513、527の更新処理は、前記処理S644と同様に、マスタクラスタプログラム520’が前記各管理表525、513、527を更新する。続く処理S646では、処理S346のゲストOSの障害の判定に加えて、前記表527を参照してアプリケーションの障害を実施し、マスタクラスタプログラム520’はどちらか一方が障害であるかを判断する。処理S647では、障害が発生しているゲストOS又はアプリケーションの系切り替え先となるゲストOSが自ホストOS530’上にあるかを、前記処理S347と同様に判定する。つまり、系切り替え対応表523を参照し、系切り替え先のゲストOSの有無をマスタクラスタプログラム520’が判定する。最後に、マスタクラスタプログラム520’は、処理S648では、前記処理348と同様に、前記処理S647で抽出されたゲストOSに対して、アプリケーション状態が障害であることを、待機系のスレーブクラスタプログラムに通知する(通知T24)。
待機系スレーブクラスタプログラム120’、(220’)は、図14の処理6Dを実行し、前記第1実施形態の図8に示した処理S261〜S264と同様の処理S661〜S664を実施する。これにより、スレーブクラスタプログラム120’は、前記第1実施形態の図8に示した処理S261〜S264で、スレーブクラスタプログラム120、120’同士でハートビートを実施していた場合と同様に、ハートビートを実施することが可能となる。さらに、前記通知T24において、通知先である待機系のマスタクラスタプログラム520’が、ゲストOSのハートビートの送信元である実行系のスレーブクラスタプログラム120を装って、通知T24を待機系のスレーブクラスタプログラム120’に通信することで、待機系のスレーブクラスタプログラム120’は、マスタクラスタプログラム520’が存在することによる新たな設定を不要とした状態で、ハートビートを受信することが可能となる。
また、前記通知T24は、アプリケーションの障害ではなく、前記T14と同様にゲストOSの障害通知や、明示的に系切り替えを指示する通知であっても良い。この場合、前記図9における処理と同様に、スレーブクラスタプログラム120がマスタクラスタプログラム520からの明示的な通知によって系切り替えを実施する処理を行なうことで系切り替えを実現することができる。
ここで、第3の実施形態において、系切り替えが完了した場合には、ゲストOS130(230)上のアプリケーションの系状態が変更される。従って、前記の系切り替え処理において、系切り替えが完了した場合に、アプリケーション状態管理表527の系状態4002を変更する。系状態の変更の契機は、スレーブクラスタプログラム120によって系切り替えが完了したときや、スレーブクラスタプログラム120が系状態の変更をマスタクラスタプログラム520に通知する形であってもよい。あるいは、マスタクラスタプログラム520の管理者が明示的に変更を指示する形であってもよい。また、加えて、前記第1の実施形態に記載された、系切り替え後のゲストOS、ホストOSの状態の削除又は変更も実施されてもよく、この場合、前記系状態の変更と、ゲストOS・ホストOS状態の変更は、矛盾しない状態で行なわれる。
以上、図10〜図15に示した一連の処理を行うことで、ゲストOS130、230上のスレーブクラスタプログラム120、220が行うハートビートを、実行系のホストOS530上のマスタクラスタプログラム520が集約して一括して待機系のマスタクラスタプログラム520’へ送信することが可能になる。加えて、マスタクラスタプログラム520によって集約されたハートビートを利用した場合も、スレーブクラスタプログラム120、220に新たな設定を行なうことなく、ハートビートを実現する効果も有する。従って、スレーブクラスタプログラム120、120’間のハートビートによる障害監視をゲストOSの数に依存することなく実現でき、ホットスタンバイを実現する系切り替え方法を実現することができ、前記第1の課題を解決することができる。
<第4の実施の形態>
図16は第4の実施形態を示し、前記第3の実施形態の図14の一部を変更したものである。その他の構成は前記第3実施形態と同様である。
図16は、スレーブクラスタプログラム120(120’)がマスタクラスタプログラム520(520’)からアプリケーションの状態を取得し、アプリケーションの障害時には系切り替えを行う処理を表したフローチャートである。
図16において、処理S701、702、S741〜744、及び、S761〜S764は、それぞれ、前記第3実施形態のS401、402、S441〜S444、及び、S461〜S464と同様の処理を行なう。なお、図16の処理7Aは、前記第3実施形態の図14に示した処理6Aと同様であり、同じく処理7Bは前記第3実施形態の処理6BのうちS646〜S648、S644を削除したものと同様である。前記第3実施形態との相違点を以下に述べる。
第4実施形態では、まず、処理7Bの処理S743、S744において、待機系のマスタクラスタプログラム520’は、ホストOSの障害が発生している状態では、処理S643、S644と同様に、障害となった実行系のホストOS530上で稼動するゲストOS130、230と、アプリケーション110、210を抽出し、アプリケーションの障害状態として、ホストOS状態管理表525、ゲストOS状態管理表513、アプリケーション状態管理表527を更新する。
また、待機系のスレーブクラスタプログラム120’は、処理S762において、上記処理S462のゲストOS状態対応表523に加えて、アプリケーション状態管理表527を参照し、ゲストOS130’、230’の状態とアプリケーション状態を取得する。さらに、続く処理S763では、取得した前記ゲストOS/アプリケーション状態から、実行系のスレーブクラスタプログラム120、220が稼動するゲストOS130、230と、監視対象のアプリケーションに障害が発生したか否かを判断する。
以上、前記第3実施形態の図14を上記図16に置き換えることにより、ゲストOS130、230上のスレーブクラスタプログラム120、220が行うハートビートを、ホストOS530上のマスタクラスタプログラム520、が集約して一括して待機系のマスタクラスタプログラム520’へ送信することが可能になる。従って、スレーブクラスタプログラム間のハートビートによる障害監視をゲストOSの数に依存することなく実現でき、ホットスタンバイを実現する系切り替え方法を実現することができ、前記第1の課題を解決することができる。
<第5の実施の形態>
図17〜図19は、第5の実施の形態を示し、前記第3の実施形態の図11、図14、図15に代わって実行する処理である。
まず、図17は第5の実施の形態における機能ブロック図である。
図17は、前記第3実施形態の図11と異なり、スレーブクラスタプログラム120(220)は、スレーブクラスタプログラム間のハートビートからアプリケーションの障害を判断し、系切り替えを行う系切り替え制御部123に代わり、系切り替えの実行のみを行う系切り替え実行部124を有する。一方で、アプリケーションの障害を判断し、前記系切り替え実行部124へ系切り替え指示を行う役割は、マスタクラスタプログラム520、520’における系切り替え制御部522が含む。
図18は、マスタクラスタプログラム520、520’が実行するアプリケーション状態の監視と、ハートビートの送受信処理、さらに、障害発生時の系切り替え制御を行うフローチャートである。なお、実行系の処理と、待機系の処理は同様である。
図18において、マスタクラスタプログラム520は、処理8Aを実行し、まず図9のS301と同様に、一定監視時間毎にハートビートを待機系のマスタクラスタプログラム520’へ送信するために、ホストOS530の所定の監視時間が経過したかを判断し(S801)、経過していない場合には、上記監視時間が経過するまで待つため、処理S801に戻る。一方、所定の監視時間が経過している場合には、前記第1実施形態の処理S102、前記第3実施形態のS502と同様に更新された各管理表513、527を参照し(S802)、ゲストOS/アプリケーションに障害があるかどうかを判断する(S803)。
前記処理S803において、障害が発生していない場合は、待機系での系切り替えが不要であるため、マスタクラスタプログラム520はゲストOS状態/アプリケーション状態を送信せず、ホストOS530の状態のみをハートビートの情報とする(S805)。
一方、ゲストOS130、230またはアプリケーション110、210に障害がある場合には、系切り替えを実施するために、ホストOS状態に加えて、ゲストOSやアプリケーションの状態もハートビートの情報とする(S804)。処理S806では、処理S804、S805で指定された情報を一纏めのハートビートとして、待機系のクラスタプログラム520’へ送信する(S806、通知T33)。ここで、通知T33は、図19に示すような情報を含む。
図19において、通知T33は、ホストOSの識別子6001と、ホストOS530の状態(実行系(ONL)と待機系(SBY))6002と、ホストOS530の状態を更新した時刻6003からなるホストOSの情報と、障害は発生したゲストOSの識別子6101と、ゲストOSの状態を更新した時刻6103とからなる障害ゲストOS情報と、障害が発生したアプリケーション110、210の識別子6111と、当該アプリケーションの稼動情報6112(Status NGまたはOK)と、アプリケーションの稼動情報を更新した時刻6113とからなる障害アプリケーション情報とから構成される。
通知T33を構成するこれらの情報6001〜6113は、前記第3実施形態の図15に示した情報5001〜5003、5101、5103、5111〜5113に対応する。前記通知T33は、マスタクラスタプログラム520が前記処理S804を実施した場合(ゲストOSまたはアプリケーションに障害がある場合)は、前記情報6001〜6113を含む情報を一纏めのハートビートとする。一方、マスタクラスタプログラム520は、前記処理S804を実施しない場合(ゲストOSまたはアプリケーションに障害が無い場合)には、前記6001〜6003だけがハートビートとして送信される。また、前記アプリケーション稼動情報6112がアプリケーションの障害の有無のみを通知する場合は、前記障害アプリケーション識別子6111で通知される情報に含まれるため、前記情報6112は前記通知T33で送信しなくても良い。
次に、前記通知T33を受信する待機系のマスタクラスタプログラム520’は処理8Bを実行し、処理8Bで実施される処理S841〜S848は、それぞれ、前記第3実施形態の図14に示した処理S641〜648と同様の処理を行なう。
前記第3実施形態の図14と本第5実施形態の図18の相違点を以下に述べる。まず、処理S845は、実行系のホストOS530が正常な状態のときに実行される。従って、実行系のゲストOS/アプリケーション状態が正常な状態であるため、前記処理S845では、前記通知T33に含まれるホストOS350の状態以外に、前記ホストOS350上のゲストOS130、230の状態と、各ゲストOS上で稼動するアプリケーション110、210の状態も正常な状態として、ホストOS状態管理表525、ゲストOS状態管理表513、アプリケーション状態管理表527を更新する。
また、処理S848は、前記処理S348、通知T14と同様に、系切替を実施する場合であり、待機系のスレーブクラスタプログラム120’、220’に系切り替えを指示するように通知を行なう(通知T34)。
さらに、前記通知T34を受信する待機系のスレーブクラスタプログラム120’、220’で実施される処理3Dの処理S861、S863は、前記第1実施形態の図9に示した処理S361、S363と同様の処理を行なう。
以上、第5の実施形態では、実行系となるゲストOS130、230とアプリケーションの障害を実行系のマスタクラスタプログラム520が監視することが可能であり、ゲストOSとアプリケーションが正常稼動中は、ホストOS間のハートビートは、ホストOS530の状態のみを送信し、ゲストOSとアプリケーションに障害が発生した場合にのみ、ゲストOS/アプリケーションの状態を通知するだけで系切り替えが実現可能である。従って、スレーブクラスタプログラム間のハートビートによる障害監視を、障害発生時以外は不要とすることで、ゲストOSの数に依存しないハートビート量の削減を実現し、ホットスタンバイを実現する系切り替え方法を実現することができる。
<第6の実施の形態>
図20から図23は、第6の実施形態を示し、ゲストOSを実行するCPUの割り当てを管理するCPUスケジューラ部514とCPU割付表515を設け、前記第5の実施形態の図18に示す処理を図23に置き換えたものである。
まず、図20は第6の実施の形態における実行系の物理計算機Aの機能ブロック図である。なお、待機系の物理計算機Bも、図20と同様に構成されるので図示は省略する。
図20において、物理計算機Aは、前記第5実施形態に示した図17に加えて、前記サーバ仮想化プログラム510は、各ゲストOSにCPUを割り当てるCPUスケジューラ部514と、その割付状態を管理するCPU割付表515を有する。
前記CPU割付表515は、図21に示すように、CPUの割当対象となるゲストOSの識別子7001と、割り付けを停止するかどうかの割付凍結フラグ7002とを含む。前記フラグ7002が「凍結中」に設定されている場合は、前記CPUスケジューラ部514は、そのゲストOSへのCPUの割当を行わないため、ゲストOSが凍結(一時停止)した状態となる。一方、割当凍結フラグが「稼働中」であれば、サーバ仮想化プログラム510は、ゲストOS識別子7001のゲストOSにCPUを割り当てて実行させる。
図22は、第6の実施の形態における待機系のゲストOS130’、230’の凍結を行う処理を表すフローチャートである。
まず、待機系のスレーブクラスタプログラム120’、(220’)は、アプリケーションをホットスタンバイによる系切り替えが実現できるホットスタンバイ状態にする(S961)。アプリケーションがホットスタンバイ状態になったら(S962)、アプリケーションのホットスタンバイ化が完了したことを待機系のマスタクラスタプログラム520’に通知する(S963、通知T41)。
一方、待機系のマスタクラスタプログラム520’は、前記通知T41を受け取ると、通知してきた待機系のゲストOSに対して、前記CPU割付表515の割付凍結フラグを「凍結中」に設定することにより、CPU割当の停止を行う(S922)。これにより、待機系のゲストOSは常にCPU割当が0%(凍結)となる(S964、凍結処理T42)。凍結後は、待機系のマスタ/スレーブクラスタプログラムは、凍結解除による系切り替え処理である処理(10B、10D以降)をそれぞれ行なう。なお、ゲストOSが凍結中となるため、ゲストOS上のクラスタプログラム120’、(220’)も凍結される。
次に、図23は、第6の実施形態における待機系のゲストOSへの系切り替えを行う処理を表すフローチャートである。
処理10Bのうち処理S1041〜S1047は、前記第5実施形態の図18に示した処理841〜S847と同様の処理を行なう。そして、処理S1048では、ホストOS/ゲストOS/アプリケーションのいずれかに障害が発生した状態であり、系切り替えが必要となるため、前記CPU割付表515の割付凍結フラグを解除(稼働中に更新)することで、系切り替え先となる待機系のゲストOSの凍結の解除を行う。これにより、待機系のゲストOSは再び、稼動を開始し(凍結解除処理T43)、スレーブクラスタプログラム120’、(220’)は再び待機系として再稼動する(S1061)。スレーブクラスタプログラム120’、(220’)の再稼動は、実行系に障害があったことを示すため、スレーブクラスタプログラムは、系切り替えを実行する(S1062)。
以上の図20〜図23によって、第6の実施形態によれば、自計算機上で稼動する待機系のゲストOSが従来使用していたCPUをはじめとする計算機資源やホストOS530’の資源の消費を停止させることができるとともに、実行系に障害が発生した場合には、待機系ゲストOSを再稼動させることで系切り替えを実現することができる。従って、実行系が正常な場合は、待機系への計算機資源を停止することで、待機系のゲストOSの数が増えても、パフォーマンスの低下を生じないホットスタンバイによる系切り替え方法を実現することができ、前記第2、第3の課題を解決することができる。また、待機系の消費電力の低減と発熱の抑制を実現し、運用コストの削減を図ることができる。
<第7の実施の形態>
図24から図28は、第7の実施形態を示し、前記第6実施形態のゲストOSを実行するCPUの割り当てを管理するCPUスケジューラ部514とCPU割付表516を、前記第1の実施形態に適用し、さらに前記第1実施形態の図9に示す処理を図27に置き換えたものである。
まず、図24は第7の実施の形態における実行系の物理計算機Aの機能ブロック図である。なお、待機系の物理計算機Bも、図24と同様に構成されるので図示は省略する。
図24において、物理計算機Aは、前記第6実施形態に示した図20と同様に、前記サーバ仮想化プログラム510は、CPUスケジューラ部514と、その割付状態を管理するCPU割付表516を有する。前記CPU割付表516は、図25に示すように、CPUの割当対象となるゲストOSの識別子8001と、割当量を削減するかどうかのフラグ(割当制限フラグ)8002とを含む。前記フラグ8002が設定されている場合(割当制限)、CPUスケジューラ部514は、ゲストOSへのCPU割当を減少させる。ここで、CPU割当の減少方法は、一定の割合で割当を行なわない方法であっても良いし、対象となるゲストOSの負荷量に応じて、例えば負荷量が少ない場合に割当を一定の割合で行なわない方法であってもよい。さらに、CPUの動作モードを切り替えて、例えば省電力モードに切り替える方法であっても良い。
図26は、第7の実施の形態における待機系のゲストOS130’、230’へのCPU割当量の制限を行う処理を表すフローチャートである。
ここで、図26におけるS1161〜S1163、S1121は、前記第6実施形態の図22に示した処理S961〜963、S921と同様の処理を行なう。処理S1121において、待機系のマスタクラスタプログラム520’は、前記通知T41を受け取ると、通知してきた待機系のゲストOS130’、230’に対して、前記CPU割付表516の割当削減フラグを「割当制限」に設定し、CPU割当量の低減を行い(S1122)、待機系のゲストOSはCPU割当量が制限される(S1164、割当量制限処理T52)。これにより、待機系のスレーブクラスタプログラム120’、220’は、稼動率が低下するが、前記第1の実施形態同様に、スレーブクラスタプログラム間でのハートビートの監視は実施されるため、処理S1164終了後、障害監視処理(2D)以降の処理を行なう。一方、待機系のマスタクラスタプログラム520’は、後述する処理12B以降を実施する。
次に、図27は、本第7実施形態において、待機系のマスタクラスタプログラム520’が実行系の障害を検出した場合における待機系のゲストOS130’、230’への系切り替えを行う処理を表すフローチャートである。
図27において、S1241〜S1247は、前記第6実施形態の図23に示した処理S1041〜S1047と同様の処理を行なう。処理S1248では、ホストOS/ゲストOS/アプリケーションのいずれかに障害が発生した状態であり、系切り替えが必要となるため、待機系のマスタクラスタプログラム520’は、前記CPU割付表516の割付量制限フラグを解除することで、待機系のゲストOS130’、230’の割当量制限の解除を行う(S1248、割当量制限解除処理T52)。これにより、待機系のゲストOS130’、230’は再び、前記割当量制限処理S1164以前の状態で稼動を再開する(S1261)。処理S1248に続いて、マスタクラスタプログラム520’は、スレーブクラスタプログラムに120’(220’)に対して系切り替えを指示し(S1249、通知T53)、スレーブクラスタプログラム120’は、処理S1262でマスタクラスタプログラム520’から前記通知T53を受信すると、系切り替えを実行する(S1263)。
このようにして、待機系のCPU割当量が制限された状態において、マスタクラスタプログラム520’が障害を検出した場合において、待機系のCPU割当量を回復し、系切り替えを実現することができる。
さらに、図28は、本第7の実施形態において、待機系のスレーブクラスタプログラム120’(220’)が実行系の障害を検出した場合における待機系のゲストOSへの系切り替えを行う処理を表すフローチャートである。
ここで、処理S1361〜S1363は、前記第1実施形態の図8に示した処理S261〜S264と同様の処理を行なう。次に、処理S1364では、待機系のスレーブクラスタプログラム120’は、実行系のアプリケーション障害を検出しているため、系切り替えを行なうために前記S1164で実施されたCPU割当量の制限を解除するために、待機系のマスタクラスタプログラム520’に対してCPU割当制限の解除要求を行なう(S1364、通知T54)。
待機系のマスタクラスタプログラム520’は前記通知T54を受信すると(処理S1321)、前記図27の処理1248と同様に、前記CPU割付表516の割付量制限フラグを解除することで、待機系のゲストOSのCPU割当量制限の解除を行う(S1322)。これにより、前記処理1261と同様に、待機系のゲストOS130’、230’のCPU割当量が前記処理S1164以前の状態で稼動を開始する(処理S1365)後に、待機系のスレーブクラスタプログラム120’、220’を実行する(処理S1366)。
このようにして、待機系のCPU割当量が制限された状態において、待機系のスレーブラスタプログラム120’、220’が障害を検出した場合も、待機系のCPU割当量の制限を解除した状態に復帰し、系切り替えを実現することができる。
なお、上記では待機系のアプリケーションまたはゲストOSへのCPUの割当量を制限する例を示したが、メモリやI/Oの割当量を低減することで、さらに待機系の計算機資源を他の処理に有効利用することが可能となる。
以上の図24〜図28によって、第1の実施形態に第6の実施形態を適用した本第7実施形態によれば、自計算機上で稼動する待機系のゲストOSによるCPUをはじめとする計算機資源やOS資源の消費を制限することができ、障害が発生した場合には、待機系のゲストOSへのCPU割当制限を解除し、待機系のゲストOSに指示することで系切り替えを実現することができる。従って、実行系が正常な場合は、待機系への計算機資源を制限することで、待機系ゲストOS数が増えても、パフォーマンスの低下を制限するホットスタンバイによる系切り替え方法を実現することができる。
また、本発明の説明においては、ホストOS上にサーバ仮想化機構(サーバ仮想化プログラム)が存在する実施形態を用いて説明したが、本発明の背景技術に述べたように、図29のハードウェア構成図に示すように、サーバ仮想化機構がハイパバイザ17、27等にある場合であってもよい。例えば、図30のサーバ仮想化環境を表す機能ブロック図に示すように、ホストOSをハイパバイザ630等に置き換えることで、同様の方法を適用して、同様の効果を得ることが可能である。さらに、図31では、ホストOSを全てハイパバイザ630に置き換える例を示したが、一部の機能のみをハイパバイザ630に移動する構成であっても良い。例えば、図31に示すように、サーバ仮想化プログラム710やマスタクラスタプログラム720がホストOSではなく、他のゲストOSと同様のLPARである管理LPAR700上にあり、CPUスケジューラ部514をハイパバイザ上630に有する場合がある。この場合でも、同様の方法を適用して、同様の効果を得ることが可能である。
なお、上記各実施形態では、複数のゲストOSを提供する仮想化部が、ホストOSとサーバ仮想化プログラムやハイパバイザと仮想化プログラムあるいは管理OSとサーバ仮想化プログラムの例を示したが、これらに限定されるものではない。例えば、仮想マシンモニタ(Virtual Machine Monitor)上に複数の仮想マシンを設定し、各仮想マシン上でゲストOSを稼動させる構成、あるいは、ファームウェアで物理的なパーティション(Physical PARtition =PPAR)を設定し、各PPAR上でゲストOSを稼動させる構成でクラスタリングを行う構成に本発明を適用することができる。なお、PPARを用いる場合には、ゲストOS用のPPARと、マスタクラスタプログラム用のPPARを設定すればよい。
以上のように、本発明は、クラスタ構成をとる仮想化サーバ環境に適用することが可能である。特に、障害が発生した場合でも迅速な回復を要求されるシステムに適用すると好適である。
第1の実施形態の物理計算機のハードウェア構成を示すブロック図である。 第1の実施形態の物理計算機におけるサーバ仮想化環境のソフトウェアを主体とした機能ブロック図である。 第1の実施形態の実行系の物理計算機で実行されるソフトウェアの詳細な構成を示すブロック図である。 第1の実施形態のゲストOS系切り替え対応表の構成図である。 第1の実施形態のホストOS状態管理表の構成図である。 第1の実施形態のゲストOS状態管理表の構成図である。 第1の実施形態の実行系のゲストOSの状態を実行系のマスタクラスタプログラムが検知する処理の一例を示すフローチャートである。 第1の実施形態のスレーブクラスタプログラム間のハートビートによる系切り替え処理の一例を示すフローチャートである。 第1の実施形態のマスタクラスタプログラム間のハートビートによるゲストOSの系切り替え処理の一例を示すフローチャートである。 第2の実施形態を示し、マスタクラスタプログラム間のハートビートによるゲストOSの系切り替え処理の一例を示すフローチャートである。 第3の実施形態を示し、実行系の物理計算機で実行されるソフトウェアの詳細な構成を示すブロック図である。 第3の実施形態を示し、アプリケーション状態管理表の構成図である。 第3の実施形態を示し、スレーブクラスタプログラムで実行されるアプリケーション状態の監視処理の一例を示すフローチャートである。 第3の実施形態を示し、実行系のマスタクラスタプログラムがハートビートと一括して待機系へ送信する処理と、待機系のスレーブクラスタプログラムがハートビートを受信し、障害発生時には系切り替えを行う処理の一例を示すフローチャートである。 第3の実施形態を示し、ホストOS状態とゲストOS状態を含む実行系のホストOSのハートビートの詳細を示す構成図である。 第4の実施形態を示し、実行系のマスタクラスタプログラムがハートビートと一括して待機系へ送信する処理と、待機系のスレーブクラスタプログラムがハートビートを受信し、障害発生時には系切り替えを行う処理の一例を示すフローチャートである。 第5の実施形態を示し、実行系の物理計算機で実行されるソフトウェアの詳細な構成を示すブロック図である。 第5の実施形態を示し、マスタクラスタプログラムが実行するアプリケーション状態の監視と、ハートビートの送受信処理、さらに、障害発生時の系切り替え処理の一例を示すフローチャートである。 第5の実施形態を示し、ホストOS状態とゲストOS状態及びアプリケーション状態を含む集約されたハートビートの一例を示す構成図である。 第6の実施形態を示し、実行系の物理計算機で実行されるソフトウェアの詳細な構成を示すブロック図である。 第6の実施形態を示し、CPU割付表を示す構成図である。 第6の実施形態を示し、待機系のゲストOSの凍結処理の一例を示すフローチャートである。 第6の実施形態を示し、待機系のゲストOSへの系切り替え処理の一例を示すフローチャートである。 第7の実施形態を示し、実行系の物理計算機で実行されるソフトウェアの詳細な構成を示すブロック図である。 第7の実施形態を示し、CPU割付表を示す構成図である。 第7の実施形態を示し、待機系のゲストOSへのCPU割当量の制限を行う処理を表すフローチャートである。 第7の実施形態を示し、待機系のマスタクラスタプログラムが実行する系切り替え処理の一例を示すフローチャートである。 第7の実施形態を示し、待機系のスレーブクラスタプログラムの系切り替え処理の一例を示すフローチャートである。 物理計算機のハードウェア構成の他の形態を示すブロック図である。 他のサーバ仮想化環境を表すソフトウェアの機能ブロック図。 さらに、他のサーバ仮想化環境を表すソフトウェアの機能ブロック図。
符号の説明
110、210 アプリケーション
120 スレーブクラスタプログラム
121 アプリケーション状態通知部
122 アプリケーション監視部
123 系切り替え制御部
130 ゲストOS
510 サーバ仮想化プログラム
511 ゲストOS制御部
512 ゲストOS監視部
520 マスタクラスタプログラム
530 ホストOS
522 系切り替え制御部
524 ホストOS監視部

Claims (15)

  1. 少なくとも1つ以上の物理計算機で稼動する第1の仮想化部と第2の仮想化部と、
    前記第1の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第1の系と、
    前記第2の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第2の系と、
    前記第2の仮想化部でゲストOSとアプリケーションを起動可能な第3の系と、を備え、
    前記各ゲストOS上で稼動して当該ゲストOS上のアプリケーションを監視し、障害発生時には前記アプリケーションを第1の系と第2の系の間で切り替える第1のクラスタ処理を実行する第1のクラスタ管理部と、
    前記各仮想化部上で稼動して、当該仮想化部上で稼動するゲストOSと他の仮想化部を監視し、障害発生時には前記第1の系のゲストOS及びアプリケーションを第3の系へ移動し、前記ゲストOS及びアプリケーションを起動することで第1の系と第3の系の間で切り替える第2のクラスタ処理を第2のクラスタ管理部が実行して、前記第1の系と第2の系または第3の系の間でゲストOSまたはアプリケーションを切り替えるクラスタシステムの系切り替え方法であって、
    前記第2のクラスタ処理が、前記第1の系のゲストOSまたは第1の仮想化部を監視して障害を検出するステップと、
    前記第2のクラスタ処理が、前記障害を検出したときには、前記障害を検出したゲストOS上の第1のクラスタ処理を判定するステップと、
    前記第2のクラスタ処理が、前記判定した第1のクラスタ処理に対して系切り替えを指令するステップと
    前記第1のクラスタ処理が、前記ゲストOS上のアプリケーションの障害を監視するステップと、
    前記第1のクラスタ処理が、前記アプリケーションの障害を検出したときには、第1の系と第2の系との間で当該アプリケーションを切り替えるステップと、
    前記第1のクラスタ処理が、前記第2のクラスタ処理から前記系切り替え指令を取得したときには、前記第1の系と第2の系の間で当該アプリケーション及びゲストOSを切り替えるステップと、
    を含むことを特徴とするクラスタシステムの系切り替え方法。
  2. 前記第1のクラスタ処理が、前記ゲストOS上のアプリケーションの障害を監視するステップは、
    第1の系の第1のクラスタ処理が、当該第1のクラスタ処理を実行するゲストOS上のアプリケーションの情報を取得するステップと、
    前記第1の系の第1のクラスタ処理が、前記取得したアプリケーションの情報を前記第1の仮想化部の前記第2のクラスタ処理へ通知するステップと、を含み、
    第2のクラスタ処理が、前記第1のクラスタ処理からのアプリケーションの情報を取得するステップと、
    前記第1の仮想化部の第2のクラスタ処理が、前記各ゲストOS上の第1のクラスタ処理からそれぞれ受信したアプリケーションの情報を一括して第2の仮想化部の第2のクラスタ処理へ通知するステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記第1の系から受信したアプリケーションの情報を、当該アプリケーションに対応するゲストOS上の第1のクラスタ処理へ通知するステップと、を含み、
    第2の系の第1のクラスタ処理が、前記第2の系の前記第2のクラスタ処理から取得した第1の系のアプリケーションの情報に基づいて、前記アプリケーションの障害を監視することを特徴とする請求項1に記載のクラスタシステムの系切り替え方法。
  3. 前記アプリケーションの情報は、アプリケーションの稼動情報を含み、
    前記第1の系の第1のクラスタ処理が、前記取得したアプリケーションの情報を前記第2のクラスタ処理へ通知するステップは、
    前記アプリケーションの稼動情報を前記第2のクラスタ処理へ通知することを特徴とする請求項2に記載のクラスタシステムの系切り替え方法。
  4. 少なくとも1つ以上の物理計算機で稼動する第1の仮想化部と第2の仮想化部と、
    前記第1の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第1の系と、
    前記第2の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第2の系と、
    前記第2の仮想化部で任意のゲストOSとアプリケーションを起動可能な第3の系と、を備え、
    前記各ゲストOS上で稼動して当該ゲストOS上のアプリケーションを監視し、障害発生時には前記アプリケーションを第1の系と第2の系の間で切り替える第1のクラスタ処理を実行する第1のクラスタ管理部と、
    前記各仮想化部上で稼動して、当該仮想化部上で稼動するゲストOSと他の仮想化部を監視し、障害発生時には前記第1の系のゲストOS及びアプリケーションを第3の系へ移動し、前記ゲストOS及びアプリケーションを起動することで第1の系と第3の系の間で切り替える第2のクラスタ処理を第2のクラスタ管理部が実行して、前記第1の系と第2の系または第3の系の間でゲストOSまたはアプリケーションを切り替えるクラスタシステムの系切り替え方法であって、
    前記第1のクラスタ処理が、当該第1のクラスタ処理を実行するゲストOS上のアプリケーションの情報を取得するステップと、
    前記第1の系の第1のクラスタ処理が、前記取得したアプリケーションの情報を前記第2のクラスタ処理へ通知するステップと、
    前記第1の仮想化部の第2のクラスタ処理が、前記第1のクラスタ処理から前記アプリケーションの情報を取得するステップと、
    前記第1の仮想化部の第2のクラスタ処理が、前記各ゲストOS上の第1のクラスタ処理からそれぞれ取得したアプリケーションの情報を集約するステップと、
    前記第1の仮想化部の前記第2のクラスタ処理が、前記集約したアプリケーションの情報を、一括して第2の仮想化部の第2のクラスタ処理へ通知するステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記アプリケーションの情報をハートビートとして取得し、当該アプリケーションに対応する第2の系のゲストOS上の第1のクラスタ処理へ転送するステップと、
    前記第2の系の第1のクラスタ処理が、前記第2のクラスタ処理から転送された前記アプリケーションの情報に基づいて、前記第1の系のアプリケーションの障害を監視し、障害を検知したときには前記アプリケーションを第1の系から第2の系へ切り替えるステップと、
    を含むことを特徴とするクラスタシステムの系切り替え方法。
  5. 前記アプリケーションの情報は、アプリケーションの稼動情報を含み、
    第1の系の第1のクラスタ処理が、前記取得したアプリケーションの情報を前記第2のクラスタ処理へ通知するステップは、前記アプリケーションの稼動情報を前記第2のクラスタ処理へ通知することを特徴とする請求項4に記載のクラスタシステムの系切り替え方法。
  6. 前記第1の仮想化部の第2のクラスタ処理が、前記集約したアプリケーションの情報を、一括して第2の仮想化部の第2のクラスタ処理へ通知するステップ
    前記第1の仮想化部の第2のクラスタ処理が、第1の系のゲストOSの状態を取得するステップと、
    前記取得したゲストOSの状態と、前記取得したアプリケーションの障害状態とを一括して前記第2の仮想化部の第2のクラスタ処理へ通知するステップと、
    を含むことを特徴とする請求項4に記載のクラスタシステムの系切り替え方法。
  7. 少なくとも1つ以上の物理計算機で稼動する第1の仮想化部と第2の仮想化部と、
    前記第1の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第1の系と、
    前記第2の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第2の系と、
    前記第2の仮想化部で任意のゲストOSとアプリケーションを起動可能な第3の系と、を備え、
    前記各ゲストOS上で稼動して当該ゲストOS上のアプリケーションを監視し、障害発生時には前記アプリケーションを第1の系と第2の系の間で切り替える第1のクラスタ処理を実行する第1のクラスタ管理部と、
    前記各仮想化部上で稼動して、当該仮想化部上で稼動するゲストOSと他の仮想化部を監視し、障害発生時には前記第1の系のゲストOS及びアプリケーションを第3の系へ移動し、前記ゲストOS及びアプリケーションを起動することで第1の系と第3の系の間で切り替える第2のクラスタ処理を第2のクラスタ管理部が実行して、前記第1の系と第2の系または第3の系の間でゲストOSまたはアプリケーションを切り替えるクラスタシステムの系切り替え方法であって、
    前記第1の系の第1のクラスタ処理が、当該第1のクラスタ処理を実行するゲストOS上のアプリケーションを監視するステップと、
    前記第1の系の第1のクラスタ処理が、前記アプリケーションに障害が発生したときには第1の仮想化部の第2のクラスタ処理に障害の状態を通知するステップと、
    前記第1の仮想化部の第2のクラスタ処理が、前記アプリケーションの障害の状態を取得したときにのみ前記第2の仮想化部の第2のクラスタ処理へ当該アプリケーションの障害の状態通知するステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記アプリケーションの障害の状態を取得したときには、前記第2の系の第1のクラスタ処理に系切り替えを指令することを特徴とするクラスタシステムの系切り替え方法。
  8. 前記第1の仮想化部の第2のクラスタ処理が、前記アプリケーションの障害の状態を取得したときにのみ前記第2の仮想化部の第2のクラスタ処理へ当該アプリケーションの障害の状態を通知するステップは、
    前記第1の仮想化部の第2のクラスタ処理が、第1の系のゲストOSの状態を取得するステップと、
    前記取得したゲストOSの状態と、前記取得したアプリケーションの障害状態とを一括して前記第2の仮想化部の第2のクラスタ処理へ通知するステップと、
    を含むことを特徴とする請求項7に記載のクラスタシステムの系切り替え方法。
  9. 前記第1の仮想化部の第2のクラスタ処理が、前記アプリケーションの障害の状態を取得したときにのみ前記第2の仮想化部の第2のクラスタ処理へ当該アプリケーションの障害の状態を通知するステップは、
    所定の周期で第1の系の仮想化部のハートビートに、前記アプリケーションの障害の状態を加えて、前記第2の仮想化部の第2のクラスタ処理へ通知することを特徴とする請求項7に記載のクラスタシステムの系切り替え方法。
  10. 前記第2の系の第1のクラスタ処理が、前記アプリケーションを起動して待機させるステップと、
    前記第2の系の第1のクラスタ処理が、前記アプリケーションを待機させたことを第2の仮想化部の第2のクラスタ処理へ通知するステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記通知に基づいて前記アプリケーションを待機させたゲストOSへのリソースの割当を低減して待機させるステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記第1の系のアプリケーションの障害の状態を取得したときには、前記待機させたゲストOSへのリソースの割当を増大させた後に、系切り替えを行うことを特徴とする請求項7に記載のクラスタシステムの系切り替え方法。
  11. 少なくとも1つ以上の物理計算機と、
    前記物理計算機で稼動する第1の仮想化部と第2の仮想化部と、
    前記第1の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第1の系と、
    前記第2の仮想化部で稼動するゲストOSと、当該ゲストOS上で稼動するアプリケーションからなる第2の系と、
    前記第2の仮想化部で任意のゲストOSとアプリケーションを起動可能な第3の系と、
    前記第1の系のアプリケーションまたは第2の系のアプリケーションを監視して、障害発生時に前記アプリケーションを第1の系と第2の系の間で切り替える第1のクラスタ管理部と、
    前記第1の系のゲストOSと第1の仮想化部を監視して、障害発生時に前記ゲストOSを第1の系と第3の系の間で切り替える第2のクラスタ管理部と、
    を備えた計算機システムにおいて、
    前記第1のクラスタ管理部は、
    前記ゲストOS上のアプリケーションの情報を取得するアプリケーション監視部と、
    前記取得したアプリケーションの情報を前記第2のクラスタ管理部へ通知するアプリケーション状態通知部と、
    前記アプリケーションの情報に障害情報が含まれるときには、前記アプリケーションを第1の系と第2の系との間で切り替える系切り替え制御部と、を備え、
    前記第2のクラスタ管理部は、
    前記第1のクラスタ管理部から受信したアプリケーションの情報を、他の仮想化部の第2のクラスタ管理部へ通知し、または、他の系から受信したアプリケーションの情報を前記第1のクラスタ管理部へ転送する通信部と、を備え、
    第2の系の第1のクラスタ管理部が、前記第2の仮想化部の前記第2のクラスタ管理部から取得した第1の系のアプリケーションの情報に基づいて、前記アプリケーションの障害を監視することを特徴とする計算機システム。
  12. 前記第1のクラスタ管理部は、前記第1の系と第2の系の各ゲストOS上でそれぞれ稼動し、
    前記第2のクラスタ管理部は、前記第1の系と第2の系の各仮想化部でそれぞれ稼動し、
    前記第1の系の第1のクラスタ管理部は、前記アプリケーション状態通知部が前記アプリケーションの情報を前記第1の仮想化部の第2のクラスタ管理部へ通知し、
    前記第1の仮想化部の第2のクラスタ管理部は、前記通信部が前記アプリケーションの情報を前記第2の仮想化部の第2のクラスタ管理部へ通知し、
    前記第2の仮想化部の第2のクラスタ管理部は、前記通信部が第1の仮想化部の第2のクラスタ管理部から前記アプリケーションの情報を受信し、当該情報を前記第2の系の第1のクラスタ管理部へ通知し、
    前記第2の系の第1のクラスタ管理部は、
    前記アプリケーション監視部が前記第1の系のアプリケーションを監視して、当該アプリケーションに情報に障害情報が含まれる場合には、前記系切り替え制御部が、第1の系のアプリケーションを、第2の系に引き継ぐことを特徴とする請求項11に記載の計算機システム。
  13. 前記第2のクラスタ管理部は、
    前記アプリケーションの情報からアプリケーションを監視し、当該アプリケーションに障害が発生した場合には、前記第1のクラスタ管理部へ系切り替えの指令を通知する系切り替え制御部を有し、
    前記第1のクラスタ管理部は、前記第1の系と第2の系の各ゲストOS上でそれぞれ稼動し、
    前記第2のクラスタ管理部は、前記第1の系と第2の系の各仮想化部でそれぞれ稼動し、
    前記第1の系の第1のクラスタ管理部は、前記アプリケーション状態通知部が前記アプリケーションの情報を前記第1の仮想化部の第2のクラスタ管理部へ通知し、
    前記第1の仮想化部の第2のクラスタ管理部は、前記通信部が前記アプリケーションの情報を前記第2の仮想化部の第2のクラスタ管理部へ通知し、
    前記第2の仮想化部の第2のクラスタ管理部は、前記通信部が第1の仮想化部の第2のクラスタ管理部から前記アプリケーションの情報を受信し、前記系切り替え制御部が前記アプリケーションの障害情報が含まれる時には前記第2の系の第1のクラスタ管理部に系切り替えの指令を通知し、
    前記第2の系の第1のクラスタ管理部は、前記系切り替え制御部が第1の系のアプリケーションを第2の系へ引き継ぐことを特徴とする請求項11に記載の計算機システム。
  14. 前記第1の系及び第2の系の仮想化部は、複数のゲストOSを稼動させ、
    前記各ゲストOS上のアプリケーション毎に前記第1のクラスタ管理部がアプリケーションの情報とゲストOSの情報を前記第2のクラスタ管理部へ通知し、
    前記第2のクラスタ管理部の通信部は、第1のクラスタ管理部からのアプリケーションの情報とゲストOSの情報を集約し、当該集約した情報を他の仮想化部の第2のクラスタ管理部へ通知することを特徴とする請求項11に記載の計算機システム。
  15. 前記第2の系の第1のクラスタ処理が、前記アプリケーションを起動して待機させるステップと、
    前記第2の系の第1のクラスタ処理が、前記アプリケーションを待機させたことを第2の仮想化部の第2のクラスタ管理部へ通知するステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記通知に基づいて前記アプリケーションを待機させたゲストOSへのリソースの割当を低減して待機させるステップと、
    前記第2の仮想化部の第2のクラスタ処理が、前記第1の系のアプリケーションの障害の状態を取得したときには、前記待機させたゲストOSへのリソースの割当を増大させた後に、系切り替えを行うことを特徴とする請求項4に記載のクラスタシステムの系切り替え方法。
JP2006356576A 2006-12-28 2006-12-28 サーバ仮想化環境における系切り替え方法及び計算機システム Expired - Fee Related JP4809209B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006356576A JP4809209B2 (ja) 2006-12-28 2006-12-28 サーバ仮想化環境における系切り替え方法及び計算機システム
US11/707,876 US7617411B2 (en) 2006-12-28 2007-02-20 Cluster system and failover method for cluster system
US12/585,734 US8015431B2 (en) 2006-12-28 2009-09-23 Cluster system and failover method for cluster system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006356576A JP4809209B2 (ja) 2006-12-28 2006-12-28 サーバ仮想化環境における系切り替え方法及び計算機システム

Publications (2)

Publication Number Publication Date
JP2008165637A JP2008165637A (ja) 2008-07-17
JP4809209B2 true JP4809209B2 (ja) 2011-11-09

Family

ID=39585774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006356576A Expired - Fee Related JP4809209B2 (ja) 2006-12-28 2006-12-28 サーバ仮想化環境における系切り替え方法及び計算機システム

Country Status (2)

Country Link
US (2) US7617411B2 (ja)
JP (1) JP4809209B2 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365021B2 (en) * 2005-06-17 2013-01-29 Nec Corporation Information processing device comprising a plurality of domains having a plurality of processors, recovery device, program and recovery method
US7689820B2 (en) * 2006-09-27 2010-03-30 L3 Communications Corporation Rapid-boot computing device with dual operating systems
JP2008123357A (ja) * 2006-11-14 2008-05-29 Honda Motor Co Ltd 並列計算機システム、並列計算方法および並列計算機用プログラム
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
JP4782042B2 (ja) * 2007-02-21 2011-09-28 富士通株式会社 電子計算機及びソフトウェアによるユーザインタフェースの実現方法
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US8682916B2 (en) 2007-05-25 2014-03-25 F5 Networks, Inc. Remote file virtualization in a switched file system
JP2010541100A (ja) * 2007-10-03 2010-12-24 スケールアウト ソフトウェア インコーポレイテッド 計算グリッド上に高可用性データ並列操作を実装する方法
US8548953B2 (en) 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US8370679B1 (en) * 2008-06-30 2013-02-05 Symantec Corporation Method, apparatus and system for improving failover within a high availability disaster recovery environment
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
JP2010066931A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 負荷分散機能を有した情報処理装置
US8732716B2 (en) * 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
JP5223707B2 (ja) * 2009-02-05 2013-06-26 富士通株式会社 ソフトウェア更新指示プログラム、ソフトウェア更新指示方法、および情報処理装置
US8549364B2 (en) * 2009-02-18 2013-10-01 Vmware, Inc. Failure detection and recovery of host computers in a cluster
US8719823B2 (en) * 2009-03-04 2014-05-06 Vmware, Inc. Managing latency introduced by virtualization
JP2010205209A (ja) * 2009-03-06 2010-09-16 Hitachi Ltd 管理計算機、計算機システム、物理リソース割り当て方法
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8700752B2 (en) * 2009-11-03 2014-04-15 International Business Machines Corporation Optimized efficient LPAR capacity consolidation
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8769155B2 (en) 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US8406125B2 (en) * 2010-03-19 2013-03-26 Brocade Communications Systems, Inc. Synchronization of multicast information using incremental updates
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US8458510B2 (en) * 2010-08-12 2013-06-04 International Business Machines Corporation LPAR creation and repair for automated error recovery
JP5354107B2 (ja) * 2010-08-16 2013-11-27 富士通株式会社 情報処理装置、リモート保守方法、及びプログラム
US9286298B1 (en) * 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
JP2012093868A (ja) * 2010-10-26 2012-05-17 Nec Corp サービス提供システム、サービス提供サーバ、サービス提供方法、及びプログラム
US8782238B2 (en) 2010-11-05 2014-07-15 Verizon Patent And Licensing Inc. Server clustering in a computing-on-demand system
US8589721B2 (en) * 2010-11-30 2013-11-19 International Business Machines Corporation Balancing power consumption and high availability in an information technology system
US8468383B2 (en) 2010-12-08 2013-06-18 International Business Machines Corporation Reduced power failover system
JP2012216008A (ja) * 2011-03-31 2012-11-08 Nec Corp 仮想計算機装置及び仮想計算機装置の制御方法
US8887006B2 (en) * 2011-04-04 2014-11-11 Microsoft Corporation Proactive failure handling in database services
JP5548647B2 (ja) * 2011-04-25 2014-07-16 株式会社日立製作所 計算機システムでの部分障害処理方法
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
US8713378B2 (en) * 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
KR101336389B1 (ko) * 2011-10-05 2013-12-04 한국원자력연구원 다중 스위칭 컨트롤러를 이용한 동기식 이중화 시스템 및 방법
JP5687173B2 (ja) * 2011-11-15 2015-03-18 株式会社日立製作所 通信システム及び方法、ハートビート代行サーバ
WO2013084305A1 (ja) * 2011-12-06 2013-06-13 株式会社日立製作所 仮想化多重系構成制御方法及び計算機システム
US9342348B2 (en) * 2012-01-23 2016-05-17 Brocade Communications Systems, Inc. Transparent high availability for stateful services
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US20130275966A1 (en) 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9342376B2 (en) * 2012-06-27 2016-05-17 Intel Corporation Method, system, and device for dynamic energy efficient job scheduling in a cloud computing environment
JP5913003B2 (ja) * 2012-08-29 2016-04-27 株式会社日立製作所 計算機制御装置、方法およびプログラム
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9244826B2 (en) * 2013-03-15 2016-01-26 International Business Machines Corporation Managing CPU resources for high availability micro-partitions
US9043575B2 (en) 2013-03-15 2015-05-26 International Business Machines Corporation Managing CPU resources for high availability micro-partitions
US9189381B2 (en) 2013-03-15 2015-11-17 International Business Machines Corporation Managing CPU resources for high availability micro-partitions
US9727357B2 (en) * 2013-10-01 2017-08-08 International Business Machines Corporation Failover detection and treatment in checkpoint systems
US9262289B2 (en) * 2013-10-11 2016-02-16 Hitachi, Ltd. Storage apparatus and failover method
CN103559124B (zh) * 2013-10-24 2017-04-12 华为技术有限公司 故障快速检测方法及装置
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
GB2532732B (en) * 2014-11-25 2019-06-26 Ibm Integrating a communication bridge into a data procesing system
US10061664B2 (en) * 2015-01-15 2018-08-28 Cisco Technology, Inc. High availability and failover
JP6299640B2 (ja) * 2015-03-23 2018-03-28 横河電機株式会社 通信装置
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10282261B2 (en) * 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
JP2018116477A (ja) * 2017-01-18 2018-07-26 富士通株式会社 情報処理装置および情報処理システム
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
JP7056868B2 (ja) * 2017-12-19 2022-04-19 日本電気通信システム株式会社 システム、計算機、システム制御方法及びプログラム
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
CN108282526B (zh) * 2018-01-22 2021-02-05 中国软件与技术服务股份有限公司 双集群间服务器动态分配方法及***
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
US12003422B1 (en) 2018-09-28 2024-06-04 F5, Inc. Methods for switching network packets based on packet data and devices
CN111385107B (zh) * 2018-12-27 2021-07-06 大唐移动通信设备有限公司 一种服务器的主备切换处理方法及装置
WO2023276040A1 (ja) * 2021-06-30 2023-01-05 三菱電機株式会社 情報処理装置、ジョブ実行システム、及び制御方法
JP7498731B2 (ja) * 2022-01-17 2024-06-12 株式会社日立製作所 クラスタシステム、復旧方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04141744A (ja) * 1990-10-02 1992-05-15 Fujitsu Ltd 仮想計算機のホットスタンバイ制御システム
JP3022768B2 (ja) * 1996-04-24 2000-03-21 日本電気ソフトウェア株式会社 仮想計算機システム
JP2001216171A (ja) * 2000-01-31 2001-08-10 Toshiba Corp 仮想計算機システム
US6728896B1 (en) * 2000-08-31 2004-04-27 Unisys Corporation Failover method of a simulated operating system in a clustered computing environment
JP4426736B2 (ja) * 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
JP2004005113A (ja) * 2002-05-31 2004-01-08 Nec System Technologies Ltd 複数の実計算機上で動作する仮想計算機システム及びその制御方法
JP2004361994A (ja) * 2003-05-30 2004-12-24 Toshiba Corp データ管理装置、データ管理方法及びプログラム
US20060085668A1 (en) * 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
JP4544146B2 (ja) * 2005-11-29 2010-09-15 株式会社日立製作所 障害回復方法
JP2007304845A (ja) * 2006-05-11 2007-11-22 Nec Corp 仮想計算機システムおよびソフトウェア更新方法
US7814364B2 (en) * 2006-08-31 2010-10-12 Dell Products, Lp On-demand provisioning of computer resources in physical/virtual cluster environments
JP5032191B2 (ja) * 2007-04-20 2012-09-26 株式会社日立製作所 サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US7809976B2 (en) * 2007-04-30 2010-10-05 Netapp, Inc. System and method for failover of guest operating systems in a virtual machine environment
US7840839B2 (en) * 2007-11-06 2010-11-23 Vmware, Inc. Storage handling for fault tolerance in virtual machines
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection

Also Published As

Publication number Publication date
US20080162983A1 (en) 2008-07-03
US7617411B2 (en) 2009-11-10
US20100017643A1 (en) 2010-01-21
JP2008165637A (ja) 2008-07-17
US8015431B2 (en) 2011-09-06

Similar Documents

Publication Publication Date Title
JP4809209B2 (ja) サーバ仮想化環境における系切り替え方法及び計算機システム
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
US11947697B2 (en) Method and system to place resources in a known state to be used in a composed information handling system
JP5332000B2 (ja) 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
US9176834B2 (en) Tolerating failures using concurrency in a cluster
US20160226788A1 (en) Managing use of lease resources allocated on fallover in a high availability computing environment
JP2009232207A (ja) ネットワークスイッチ装置、サーバシステム及びサーバシステムにおけるサーバ移送方法
US8677374B2 (en) Resource management in a virtualized environment
JP2008269332A (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US20080307254A1 (en) Information-processing equipment and system therefor
KR101585160B1 (ko) 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법
WO2019160030A1 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP2012018556A (ja) 計算機システム及び計算機システムの系切替制御方法
US20130061086A1 (en) Fault-tolerant system, server, and fault-tolerating method
US10241874B2 (en) Checkpoint method for a highly available computer system
JP2008107966A (ja) 計算機システム
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
CN111935244A (zh) 一种业务请求处理***及超融合一体机
KR20160105636A (ko) 멀티 노드 시스템의 서버 가상화 방법 및 그 장치
CN113608836A (zh) 一种基于集群的虚拟机高可用方法及***
US20210042322A1 (en) System and method of time-based snapshot synchronization
EP1815333A1 (en) Migration of tasks in a computing system
JP2017027166A (ja) 運用管理装置、運用管理プログラムおよび情報処理システム
JP2003186681A (ja) マルチコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110818

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4809209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees