JP2012108651A - クラスタシステム - Google Patents

クラスタシステム Download PDF

Info

Publication number
JP2012108651A
JP2012108651A JP2010255897A JP2010255897A JP2012108651A JP 2012108651 A JP2012108651 A JP 2012108651A JP 2010255897 A JP2010255897 A JP 2010255897A JP 2010255897 A JP2010255897 A JP 2010255897A JP 2012108651 A JP2012108651 A JP 2012108651A
Authority
JP
Japan
Prior art keywords
restart
business
virtual server
server
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010255897A
Other languages
English (en)
Inventor
Takuya Oda
琢也 小田
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 JP2010255897A priority Critical patent/JP2012108651A/ja
Priority to PCT/JP2010/073511 priority patent/WO2012066691A1/ja
Publication of JP2012108651A publication Critical patent/JP2012108651A/ja
Pending legal-status Critical Current

Links

Images

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/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/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/2038Error 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 with a single idle spare processing component
    • 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/2046Error 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 persistent storage

Landscapes

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

Abstract

【課題】業務システムのサービスレベルを遵守する。
【解決手段】現用系及び待機系の業務実行物理サーバにクラスタ共有ボリュームを共有させたクラスタシステムである。システムの稼動目標であるサービスレベル,複数の仮想サーバの再起動順序を記憶し,仮想サーバの稼動実績を検出する稼動実績検出部と,仮想サーバのメンテナンス中に仮想サーバの再起動時間を計測し,計測した再起動時間に更新する構成変更検出部と,複数の仮想サーバの冗長度を算出し,算出した冗長度と,検出された稼動実績と,記憶されているサービスレベルと,更新された再起動時間とに基づいて,新たな再起動順序を決定し,決定した新たな再起動順序に更新する再起動順序更新部と,現用系の業務実行物理サーバから待機系の業務実行物理サーバへフェイルオーバーするとき,更新された新たな再起動順序に基づいて,待機系の業務実行物理サーバ上で複数の仮想サーバを再起動する仮想サーバ再起動部とを備える。
【選択図】図1

Description

本発明は,仮想サーバを稼動させる物理サーバによるクラスタシステムに関する。
サーバ仮想化環境では,1台の物理サーバの障害が複数の仮想サーバの停止を引き起こす。そこで,物理サーバの障害から業務の可用性を高めるために,ハイパーバイザー層でのクラスタ技術(以降,VMクラスタと呼ぶ)が提供されている。VMクラスタでは,障害が発生した物理サーバ上で稼働していた仮想サーバを他の物理サーバ上で再起動させ高可用性を確保する。VMクラスタにおいて,仮想サーバの再起動の順番は,あらかじめ管理者が各仮想サーバの再起動時間を考慮して入力した再起動順序に従う。
特許文献1に記載されている技術によれば,ユーザからのリクエストの種別と起動順序との対応テーブルを用意しておき,このテーブルに記載の起動順序とリクエスト件数からソフトウェアをフェイルオーバーした際の起動順序を決定している。
特開2006−260357号公報
仮想サーバの再起動時間(再起動時間は,仮想サーバ上で稼働するOSやソフトウェアが停止してから,再起動し,利用可能になる状態までを示す。)は,この仮想サーバのメンテナンス(OSやソフトウェアのアップデート)を行うことで変更される。アップデートの内容やタイミングは,仮想サーバが提供する業務,OSやソフトウェアの種別によって異なる。そのため当初予定していた再起動順序で各仮想サーバをフェイルオーバーし,再起動しても,当初予定していた再起動時間よりも実際の再起動時間が長くなり,仮想サーバが提供する業務の提供開始時間が遅れ,当該業務を利用するユーザとの間で締結されたSLA(Service Level Agreement)が守れなくなるという課題がある。また,物理サーバ上に,新規に仮想サーバをデプロイし,起動させた場合も,デプロイした仮想サーバの再起動順序の設定によっては,同じ物理サーバ上で稼働している他の仮想サーバの再起動順序が変更される。また,再起動順序の設定を誤った場合も,仮想サーバが提供する業務の提供開始時間が遅れ,当該業務を利用するユーザとの間で締結されたSLAが守れなくなる。
特許文献1の方法によれば,ソフトウェアに関連する業務の重要度(ソフトウェアに対するアクセス件数など)に基づいて,該ソフトウェアのフェイルオーバーの起動順序を決定しており,顧客と取り決めたサービスレベル(可用性)を確保しつつ,仮想サーバを起動できるかどうかの判定は行っていない。また,仮想サーバの起動時間の考慮は行っていない。そのため,複数の仮想サーバに対する顧客からのリクエストが同じである場合,起動時間の短い仮想サーバから起動させた方が効率的であるが,そのような処理は行っておらず,結果として多くの顧客リクエストを取りこぼしてしまうケースがある。また,特許文献1の方法により決定した起動優先順でサーバを起動した際,予定していた仮想サーバの起動時間よりも,実際の仮想サーバの起動時間が長い場合,この仮想サーバに関連する業務システムのサービスレベル(可用性)を違反してしまうケースがある。
開示されるクラスタシステムは、業務システムを実現する複数の仮想サーバを稼動させる業務実行物理サーバを,現用系と待機系のクラスタ構成にし,現用系及び待機系の業務実行物理サーバにクラスタ共有ボリュームを共有させたクラスタシステムである。業務システムの稼動目標であるサービスレベルをクラスタ共有ボリュームに記憶するSLA記憶部と,複数の仮想サーバの再起動順序をクラスタ共有ボリュームに記憶する再起動順序記憶部と,仮想サーバの稼動実績を検出する稼動実績検出部と,クラスタ共有ボリュームに格納されている,仮想サーバのメンテナンス期間を示すメンテナンス情報に基づいて,メンテナンス期間中に仮想サーバの再起動時間を計測し,クラスタ共有ボリュームに記憶されている,仮想サーバの再起動時間を計測した再起動時間に更新する構成変更検出部と,複数の仮想サーバの各々の冗長度を算出し,算出した冗長度と,稼動実績検出部で検出された稼動実績と,SLA記憶部で記憶されているサービスレベルと,更新された再起動時間とに基づいて,新たな再起動順序を決定し,クラスタ共有ボリュームに記憶されている再起動順序を,決定した新たな再起動順序に更新する再起動順序更新部と,現用系の業務実行物理サーバから待機系の業務実行物理サーバへフェイルオーバーするとき,再起動順序更新部によって更新された新たな再起動順序に基づいて,待機系の業務実行物理サーバ上で複数の仮想サーバを再起動する仮想サーバ再起動部とを備える。
開示されるクラスタシステムの他の望ましい態様は、サービスレベルは,業務システムの許容ダウン時間及び許容ダウン回数であり,稼動実績検出部は,仮想サーバのダウンの検出に応答して,仮想サーバがダウンしてから再起動されるまでのダウン時間を算出し,ダウン時間が許容ダウン時間を超過したら,クラスタ共有ボリュームに記憶されているダウン回数を加算し,加算したダウン回数を稼動実績とし,再起動順序更新部は,複数の仮想サーバの各々の冗長度を算出し,算出した冗長度と,稼動実績検出部で検出された稼動実績としてのダウン回数と,SLA記憶部で記憶されている許容ダウン回数と,更新された再起動時間とに基づいて,新たな再起動順序を決定し,クラスタ共有ボリュームに記憶されている再起動順序を,決定した新たな再起動順序に更新する。
開示されるクラスタシステムのさらに他の望ましい態様は、再起動順序更新部は,複数の仮想サーバに対して予め設定されている起動ルールに応じて,新たな再起動順序を入れ替える。
開示されるクラスタシステムのさらに他の望ましい態様は、メンテナンス期間の残り時間と新たな再起動時間との差に基づき,仮想サーバを再起動させる仮想サーバ再起動部を備える。
開示されるクラスタシステムのさらに他の望ましい態様は、稼動実績検出部は,再起動時間と業務システムの所定期間におけるダウンタイムとの和を予測ダウンタイムとして((業務提供時間−予測ダウンタイム)*100/業務提供時間)により実稼働率を求め,許容稼働率と求めた実稼働率との差を前記仮想サーバの稼動実績とする。
開示されるクラスタシステムのさらに他の望ましい態様は、構成変更検出部は,再起動時間を計測する仮想サーバをコピーし,コピーした仮想サーバを起動させる仮想サーバコピー部を備え,構成変更検出部は,コピーした仮想サーバを再起動させたときの再起動時間を計測する。
本発明によれば,仮想サーバの起動時間が変更されても,業務システムのサービスレベルの遵守が可能となる。
業務システムの構成の一例を示すブロック図である。 業務実行物理サーバのハードウェア構成図の一例である。 SLA定義テーブルの一例である。 システム構成テーブルの一例である。 再起動順序テーブルの一例である。 メンテナンステーブルの一例である。 業務ダウン回数テーブルの一例である。 クラスタ構成テーブルの一例である。 起動ルールテーブルの一例である。 業務提供情報テーブルの一例である。 業務ダウンタイムテーブルの一例である。 稼働率ベース再起動順序テーブルの一例である。 仮想サーバの再起動順序決定処理のフロー図の一例である。 構成変更検出部による,仮想サーバの再起動時間の計測処理のフロー図の一例である。 再起動順序更新部による,仮想サーバの再起動順序を決定する処理のフロー図の一例である。 再起動更新部による,仮想サーバの再起動順序の入れ替え処理のフロー図の一例である。 稼働率算出部による,業務システムの稼働率遵守度の算出処理のフロー図の一例である。
開示されるクラスタシステムは、業務システムを実現する複数の仮想サーバを稼動させる業務実行物理サーバを,現用系と待機系のクラスタ構成にし,現用系及び待機系の業務実行物理サーバにクラスタ共有ボリュームを共有させたクラスタシステムである。業務システムの稼動目標であるサービスレベルをクラスタ共有ボリュームに記憶するSLA記憶部と,複数の仮想サーバの再起動順序をクラスタ共有ボリュームに記憶する再起動順序記憶部と,仮想サーバの稼動実績を検出する稼動実績検出部と,クラスタ共有ボリュームに格納されている,仮想サーバのメンテナンス期間を示すメンテナンス情報に基づいて,メンテナンス期間中に仮想サーバの再起動時間を計測し,クラスタ共有ボリュームに記憶されている,仮想サーバの再起動時間を計測した再起動時間に更新する構成変更検出部と,複数の仮想サーバの各々の冗長度を算出し,算出した冗長度と,稼動実績検出部で検出された稼動実績と,SLA記憶部で記憶されているサービスレベルと,更新された再起動時間とに基づいて,新たな再起動順序を決定し,クラスタ共有ボリュームに記憶されている再起動順序を,決定した新たな再起動順序に更新する再起動順序更新部と,現用系の業務実行物理サーバから待機系の業務実行物理サーバへフェイルオーバーするとき,再起動順序更新部によって更新された新たな再起動順序に基づいて,待機系の業務実行物理サーバ上で複数の仮想サーバを再起動する仮想サーバ再起動部とを備える。
なお、稼動実績検出部として、仮想サーバがダウンしてから再起動されるまでのダウン時間を算出し,ダウン時間が許容ダウン時間を超過したら,クラスタ共有ボリュームに記憶されているダウン回数を加算し、ダウン回数を稼動実績とする業務ダウン検出と、仮想サーバの実稼働率を求め,許容稼働率と求めた実稼働率との差を仮想サーバの稼動実績とする稼動実績検出の態様を説明する。
図1は,本実施形態の業務システム10の構成を示すブロック図である。業務システム10は,業務実行物理サーバ(現用系)100,業務実行物理サーバ(待機系)200,記憶装置としてのクラスタ共有ボリューム300を有し,それらは,ネットワーク1409を介して相互に通信可能に接続している。
業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200は,一般的なハードウェア構成を有する計算機であって,その構成例を図2に示す。計算機1401は,CPU1402,メモリ(RAM,ROM等)1403,通信インタフェース(NIC等)1405,キーボード,マウス等の入力装置1407,表示装置,プリンタ等の出力装置1408などを備えている。
図1では,業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200の各々を異なる物理サーバとして示しているが,これらの各々を更に複数の物理サーバで構成しても良い。また,業務実行物理サーバ(現用系)100の仮想サーバ101と,仮想サーバ101の運用管理部分を切り離し,運用管理部分だけを統合した運用管理サーバを使用しても良い。業務実行物理サーバ(待機系)200においても同様である。さらに,運用管理サーバは,物理サーバに限定されない。すなわち,仮想サーバであってもよいし,クラスタ構成などで定義される論理サーバであってもよい。
業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200の各処理部(例えば業務実行物理サーバ(現用系)100の起動順序更新部106など)の処理は,クラスタ共有ボリューム300に格納されているプログラムをメモリ1403に読み出してCPU1402が実行することにより実現される。なお,業務実行物理サーバ(待機系)200は,業務実行物理サーバ(現用系)100と同じ構成であり,各処理部の構成や処理内容も同じであるため,詳細な説明は省略する。
業務実行物理サーバ(現用系)100,および業務実行物理サーバ(待機系)200は,業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200にて構成される業務システム10の実行,および負荷,障害,メンテナンス等の業務システムの管理を行う。より詳細には,業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200上で複数の仮想サーバを実行させ,業務システムの業務を実現する。業務システム10とは,販売や生産,会計,物流など会社を運営するために必要な業務処理を実行するシステムであり,代表的なものに財務管理システム,給与管理システム,オンライン購買システム,営業管理システムなどがある。
また,業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200は,互いにクラスタ構成を組んでおり,業務実行物理サーバ(現用系)100に障害が発生し,業務実行物理サーバ(現用系)100で稼働していた全ての仮想サーバ101を業務実行物理サーバ(待機系)200にフェイルオーバー(再起動)する際に,仮想サーバ101の再起動順序を求め,制御することで,稼働サーバ101が提供していた業務のサービスレベルの遵守を支援する。したがって,業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200は,仮想サーバ101の再起動順序決定および設定装置としての機能を有することになる。業務実行物理サーバ(現用系)100は,業務実行物理サーバ(現用系)100上で仮想サーバ101を稼働しており,仮想サーバ101の起動,停止,負荷,障害等の運用に関わる管理を実行する。
業務実行物理サーバ(現用系)100と業務実行物理サーバ(待機系)200は,外部に記憶装置として,クラスタ共有ボリューム300を共有しており,業務実行物理サーバ(現用系)100上で稼働する仮想サーバ101及び仮想サーバ101が使用する記憶領域はクラスタ共有ボリューム300に格納されている。さらに、業務実行物理サーバ(待機系)200上で稼働する仮想サーバ201は,仮想サーバ101が使用するクラスタ共有ボリューム300上の記憶領域と同じ記憶領域を使用する。したがって,業務実行物理サーバ(待機系)200は,業務実行物理サーバ(現用系)100上で稼働していた仮想サーバ101に対応する仮想サーバ201を,業務実行物理サーバ(待機系)200で再起動させる際,仮想サーバ201は,仮想サーバ101が使用していたクラスタ共有ボリューム300内の記憶領域をそのまま使用する。そのため,仮想サーバ101が使用していた記憶領域を,フェイルオーバー後の仮想サーバ201用にコピーする必要はない。
業務実行物理サーバ(現用系)100について説明する。業務実行物理サーバ(現用系)100は,業務実行物理サーバ(現用系)100上の仮想サーバ101に障害が発生した際に,業務実行物理サーバ(待機系)200にて仮想サーバ101に対応する仮想サーバ201の再起動順序を決定する処理を実行する。したがって,業務実行物理サーバ(現用系)100は,障害の発生に備えて事前に再起動順序を決定しておく。
業務実行物理サーバ(現用系)100は,仮想サーバ101,SLA記憶部102,再起動順序記憶部103,業務ダウン記憶部104,構成変更検出部105,再起動順序更新部106,仮想サーバ再起動部107,起動ルール記憶部108,稼働率算出部109,仮想サーバコピー部110,入力部111,出力部112,および通信部113の各処理部,並びに記憶部114を有する。仮想サーバ101,仮想サーバ201,及びこれらが使用する記憶領域は,クラスタ共有ボリューム300上にあると説明したが,SLA記憶部102などの各処理部及び記憶部114もクラスタ共有ボリューム300上にある。さらに,記憶部114は、業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200により共有される。以下,各処理部の処理概要について説明するが,説明中の各種テーブルについては処理概要に引き続き説明する。
仮想サーバ101は,業務実行物理サーバ(現用系)100上で稼働しており,業務実行物理サーバ(現用系)100により,起動,停止,構成変更などを管理および制御される仮想化されたサーバである。
SLA記憶部102は,入力部111により入力された,業務システム10の利用者との間で締結されたサービスレベル(例えば,1カ月間の業務システム10の許容ダウンタイムやダウン回数,稼働率など)を,業務システム10が提供する業務ごとにSLA定義テーブル400に記憶する。また,後述する実施例3においては,入力部111により入力された業務システム10の業務提供時間と許容稼働率を業務提供情報テーブル1100に記憶する。
再起動順序記憶部103は,入力部111により入力された,仮想サーバ101のフェイルオーバー時の再起動順序を仮想サーバ101ごとに再起動順序テーブル600に記憶する。
業務ダウン記憶部104は,入力部111により入力された,業務システム10が提供する業務のダウン回数を業務ごとに業務ダウン回数テーブル800に記憶する。
構成変更検出部105は,メンテナンステーブル700を記憶部114から読込み,現在メンテナンス中の仮想サーバを検索する。また,メンテナンス中(メンテナンスの開始時刻から終了予定時刻の間)の仮想サーバの再起動時間を計測し,再起動順序テーブル600に記憶する。より具体的には、メンテナンステーブル700を記憶部114から読込み,メンテナンス終了前の仮想サーバ101をメンテナンス期間が終了する前に再起動させて再起動時間を計測する。
再起動順序更新部106は,SLA定義テーブル400と,システム構成テーブル500と,メンテナンステーブル700と,業務ダウン回数テーブル800と,クラスタ構成テーブル900とを記憶部114から読込み,メンテナンスが終了した仮想サーバ,および仮想サーバが稼働している物理サーバ上の全ての仮想サーバの再起動順序を決定し,仮想サーバが稼働する物理サーバの再起動順序テーブル600および物理サーバとクラスタ構成を組んでいる物理サーバの再起動順序テーブル600に記憶する。また,後述する実施例2においては,起動ルールテーブル1000を記憶部114から読込み,仮想サーバの起動順序を入れ替え,再起動順序テーブル600に記憶する。さらに,後述する実施例3においては,稼働率遵守度テーブル1300を記憶部114から読込み,メンテナンスが終了した仮想サーバ,および仮想サーバが稼働している物理サーバ上の全ての仮想サーバの再起動順序を決定し,再起動順序テーブル600に記憶する。このように業務ダウン回数テーブル800や稼働率遵守度テーブル1300のような稼動実績を示すテーブルの内容を用いて,仮想サーバの再起動順序を決定する。
仮想サーバ再起動部107は,記憶部114にある再起動順序テーブル600を参照して,仮想サーバ101を再起動させる。
起動ルール記憶部108は,入力部111により入力された,同じ業務システム10内の仮想サーバの起動順序を決定するルールを仮想サーバごとに起動ルールテーブル1000に記憶する。
稼働率算出部109は,システム構成テーブル500と,業務提供情報テーブル1100と,業務ダウンタイムテーブル1200とを記憶部114から読込み,業務システム10の実稼働率と許容稼働率との差を算出し,稼働率遵守度テーブル1300に記憶する。
仮想サーバコピー部110は,後述する実施例4において,仮想サーバ101をコピーする。
入力部111は,入力装置1407及びその制御プログラムである。出力部112は,出力装置1408及びその制御プログラムである。通信部113は,ネットワーク1409と接続する通信インタフェース1405及びその制御プログラムである。
記憶部114は,クラスタ共有ボリューム300上にあり、業務実行物理サーバ(現用系)100および業務実行物理サーバ(待機系)200により共有され,SLA定義テーブル400,システム構成テーブル500,再起動順序テーブル600,メンテナンステーブル700,業務ダウン回数テーブル800,クラスタ構成テーブル900,起動ルールテーブル1000,業務提供情報テーブル1100,業務ダウンタイムテーブル1200,稼働率遵守度テーブル1300を格納している。
SLA定義テーブル400は,業務実行物理サーバ(現用系)100が管理する,業務システム10のサービスレベル(許容ダウンタイム,許容ダウン回数,稼働率など)を記憶する,図3に,SLA定義テーブル400の一例を示す。SLA定義テーブル400は,業務識別子欄401,許容ダウンタイム欄402,許容ダウン回数欄403を備えている。業務識別子欄401は,業務実行物理サーバ(現用系)100を含む業務システム10により利用者に提供される業務を一意に特定できる識別情報(例えば,業務名)である業務識別子を記憶する。許容ダウンタイム欄402は,業務システム10の利用者との間で決定された,業務停止1回あたりの,業務を提供できなくても許される連続時間を記憶する。許容ダウン回数欄403は,業務システムの利用者との間で決定された,許容ダウンタイム欄402で特定されるダウンタイムを違反しても問題ないと見なす,1カ月や1年などの一定期間におけるダウン回数を記憶する。ダウンタイムに違反しないように,業務システムを構築,運用するので,ダウンタイムを違反するとは,許容ダウンタイム欄402に示される値を僅かに超えるダウンタイムである。なお、分かり易くするために、業務システムの利用者との間で決定されたサービスレベルとして説明するが、一般には業務システムの利用者との間で決定されたサービスレベルより厳しい条件を設計目標値または運用目標値として用いる。したがって、ここで言うサービスレベルは、そのような設計目標値や運用目標値のような稼動目標値である。である。
システム管理者が入力部111を介して,SLA定義テーブル400に示す情報を入力し,業務実行物理サーバ(現用系)100は,入力された情報を記憶部114のSLA定義テーブル400に記憶する。また,通信部113により受信された,別途ツールやユーティリティを用いて収集した業務システム10のSLA定義情報を,業務実行物理サーバ(現用系)100がSLA定義テーブル600に記憶しても良い。
システム構成テーブル500は,業務実行物理サーバ(現用系)100が管理する,業務システム10の業務名や業務システム10を構成する物理サーバや仮想サーバの情報を記憶する。図4に,システム構成テーブル500の一例を示す。システム構成テーブル500は,提供業務識別子欄501,役割欄502,物理サーバ識別子欄503,仮想サーバ識別子欄504,再起動時間欄505を備えている。提供業務識別子欄501は,業務実行物理サーバ(現用系)100が管理対象とする,業務システム10が提供する業務を一意に特定できる識別情報である業務識別子を記憶し,この業務識別子によって,SLA定義テーブル400の業務識別子欄401で特定される業務と対応付けられる。役割欄502は,業務システム10における物理サーバ,もしくは仮想サーバの役割(例えば,ウェブサーバ,アプリケーションサーバ,データベースサーバなど)を記憶する。物理サーバ識別子欄503は,業務システム10を構成する物理サーバを一意に特定できる識別情報(例えば,ホスト名,IPアドレスなど)を記憶する。仮想サーバ識別子欄504は,物理サーバ識別子欄503にて特定される物理サーバ上で稼働する仮想サーバを一意に特定できる識別情報(例えば,ホスト名,IPアドレスなど)を記憶する。再起動時間欄505は,仮想サーバ識別子欄504にて特定される仮想サーバ上で稼働し,後述するメンテナンステーブル700の起動検知プロセス欄705に記載のプロセスが停止してから,再起動するまでに要する時間を記憶する。
システム管理者が入力部111を介して,システム構成テーブル500に示す情報を入力し,業務実行物理サーバ(現用系)100は,入力された情報を記憶部114のシステム構成テーブル500に記憶する。また,通信部113により受信された,別途ツールやユーティリティを用いて収集した業務システムの構成情報を,業務実行物理サーバ(現用系)100がシステム構成テーブル500に記憶しても良い。
再起動順序テーブル600は,業務実行物理サーバ(現用系)100が停止した際に,仮想サーバ101を業務実行物理サーバ(待機系)200にて再起動するときの再起動順序を記憶する。図5に,再起動順序テーブル600の一例を示す。再起動順序テーブル600は,仮想サーバ識別子欄601,起動順序欄602,冗長度欄603,許容ダウン回数と実ダウン回数との差欄604,許容ダウンタイムと再起動時間との差欄605を備えている。仮想サーバ識別子欄601は,仮想サーバ101を一意に特定できる識別情報である仮想サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の仮想サーバ識別子欄504で特定される仮想サーバと対応付けられる。起動順序欄602は,業務実行物理サーバ(現用系)100が停止した際に,仮想サーバ101を業務実行物理サーバ(待機系)200にて再起動するときの再起動順序を記憶する。冗長度欄603は,仮想サーバ識別子欄601で特定される仮想サーバ101と,同じ業務と役割を提供し,かつ他の業務実行物理サーバ(現用系)100上で稼働する仮想サーバ101の数を記憶する。許容ダウン回数と実ダウン回数との差欄604は,仮想サーバ識別子欄601で特定される仮想サーバ101に関連するSLA定義テーブル400に記載の業務システム10の許容ダウン回数と,業務ダウン回数テーブル800に記載の業務システム10のダウン回数との差を記憶する。許容ダウンタイムと再起動時間との差欄605は,仮想サーバ識別子欄601で特定される仮想サーバ101に関連するSLA定義テーブル400に記載の業務システム10の許容ダウンタイムと,システム構成テーブル500に記載の仮想サーバ識別子欄601で特定される仮想サーバ101の再起動時間との差を記憶する。
システム管理者が入力部111を介して,仮想サーバ識別子欄601に示す情報と,起動順序欄602に示す情報とを入力する。また,再起動順序更新部106が起動順序欄602と,冗長度欄603と,許容ダウン回数と実ダウン回数との差欄604と,許容ダウンタイムと再起動時間との差欄605とに示す情報を算出し,記憶部114の再起動順序テーブル600に記憶する。
メンテナンステーブル700は,業務実行物理サーバ(現用系)100,または仮想サーバ101のメンテナンス情報を記憶する。図6にメンテナンステーブル700の一例を示す。メンテナンステーブル700は,仮想サーバ識別子欄701,物理サーバ識別子欄702,メンテナンス日時欄703,メンテナンス内容欄704,起動検知プロセス欄705を備えている。仮想サーバ識別子欄701は,仮想サーバ101を一意に特定できる識別情報である仮想サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の仮想サーバ識別子欄504で特定される仮想サーバと対応付けられる。物理サーバ識別子欄702は,業務実行物理サーバ(現用系)100を一意に特定できる識別情報である物理サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の物理サーバ識別子欄503で特定される業務実行物理サーバ(現用系)100と対応付けられる。メンテナンス日時欄703は,仮想サーバ識別子欄701で特定される仮想サーバ101,もしくは,物理サーバ識別子欄702で特定される業務実行物理サーバ(現用系)100に対して,OSやソフトウェアのアップデートなど,メンテナンスを行う期間を記憶する。メンテナンス内容欄704は,仮想サーバ識別子欄701で特定される仮想サーバ101,もしくは,物理サーバ識別子欄702で特定される業務実行物理サーバ(現用系)100に対して,メンテナンス日時欄703で特定されるメンテナンス期間に実行されるメンテナンスの内容を記憶する。起動検知プロセス欄705は,仮想サーバ識別子欄701で特定される仮想サーバ101,もしくは,物理サーバ識別子欄702で特定される業務実行物理サーバ(現用系)100を再起動させて,再起動時間を計測する際,仮想サーバもしくは物理サーバが,停止もしくは起動したと判断するプロセスを識別する情報であるプロセス識別子(プロセス名など)を記憶する。
システム管理者が入力部111を介して,メンテナンステーブル700に示す情報を入力し,業務実行物理サーバ(現用系)100は,入力された情報を記憶部114のメンテナンステーブル700に記憶する。また,通信部113により受信された,別途ツールやユーティリティを用いて収集した仮想サーバ101や業務実行物理サーバ100に関するメンテナンス情報を,業務実行物理サーバ(現用系)100がメンテナンステーブル500に記憶しても良い。
業務ダウン回数テーブル800は,業務システム10が提供する業務のダウン回数を記憶する。図7に,業務ダウン回数テーブル800の一例を示す。業務ダウン回数テーブル800は,業務識別子欄801,ダウン回数欄802を備えている。業務識別子欄801は,業務実行物理サーバ(現用系)100が管理対象とする,業務システム10が提供する業務を一意に特定できる識別情報である業務識別子を記憶し,この業務識別子によって,システム構成テーブル500の提供業務識別子欄501で特定される業務と対応付けられる。ダウン回数欄802は,業務識別子欄801で特定される業務が,1カ月や1年など所定期間において停止した回数を記憶する。
システム管理者が入力部111を介して,業務ダウン回数テーブル800に示す情報を入力し,業務実行物理サーバ(現用系)100は,入力された情報を記憶部114の業務ダウン回数テーブル800に記憶する。また,通信部113により受信された,別途ツールやユーティリティを用いて収集した業務システム10が提供する業務の停止回数を,業務実行物理サーバ(現用系)100が,業務ダウン回数テーブル800に記憶しても良い。
クラスタ構成テーブル900は,業務システム10におけるクラスタの構成情報を記憶する。図8に,クラスタ構成テーブル900の一例を示す。クラスタ構成テーブル900は,クラスタ識別子欄901,現用系物理サーバ識別子欄902,待機系物理サーバ識別子欄903を備えている。クラスタ識別子欄901は,業務システム10におけるクラスタを一意に特定できる識別情報(例えば,クラスタ名)であるクラスタ識別子を記憶する。現用系物理サーバ識別子欄902は,クラスタの現用系となる物理サーバを一意に特定できる識別情報(例えば,ホスト名)である現用系物理サーバ識別子を記憶し,この物理サーバ識別子によって,システム構成テーブル500の物理サーバ識別子欄503で特定される業務実行物理サーバ(現用系)100と対応付けられる。待機系物理サーバ識別子欄903は,クラスタの待機系となる物理サーバを一意に特定できる識別情報(例えば,ホスト名)である待機系物理サーバ識別子を記憶し,この物理サーバ識別子によって,システム構成テーブル500の物理サーバ識別子欄503で特定される業務実行物理サーバ(現用系)100と対応付けられる。
システム管理者が入力部111を介して,クラスタ構成テーブル900に示す情報を入力し,業務実行物理サーバ(現用系)は,入力された情報を記憶部114のクラスタ構成テーブル900に記憶する。また,通信部113から受信された,別途ツールやユーティリティを用いて収集したクラスタの構成情報を,業務実行物理サーバ(現用系)100が,クラスタ構成テーブル900に記憶しても良い。
起動ルールテーブル1000は,業務実行物理サーバ(現用系)100が停止した際に,仮想サーバ101を業務実行物理サーバ(待機系)200にて再起動するときの再起動順序を制御するためのルールを記憶する。図9に,起動ルールテーブル1000の一例を示す。起動ルールテーブル1000は,ルール適用仮想サーバ識別子欄1001,前起動仮想サーバ識別子欄1002を備えている。ルール適用仮想サーバ識別子1001は,仮想サーバ101を一意に特定できる識別情報である仮想サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の仮想サーバ識別子欄504で特定される仮想サーバと対応付けられる。前起動仮想サーバ識別子1002は,ルール適用仮想サーバ識別子1001で特定される仮想サーバ101よりも先に起動する仮想サーバ101を一意に特定できる識別情報である仮想サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の仮想サーバ識別子欄504で特定される仮想サーバと対応付けられる。
システム管理者が入力部111を介して,起動ルールテーブル1000に示す情報を入力し,業務実行物理サーバ(現用系)は,入力された情報を記憶部114の起動ルールテーブル1000に記憶する。また,通信部113から受信された,別途ツールやユーティリティを用いて収集した仮想サーバ101の起動ルールを,業務実行物理サーバ(現用系)100が,起動ルールテーブル1000に記憶しても良い。
業務提供情報テーブル1100は,業務システム10により提供される業務の提供時間やSLA(業務提供時間における許容稼働率など)を記憶する。図10に,業務提供情報テーブル1100の一例を示す。業務提供情報テーブル1100は,業務識別子欄1101,業務提供時間欄1102,許容稼働率欄1103を備えている。業務識別子欄1101は,業務実行物理サーバ(現用系)100が管理対象とする,業務システム10が提供する業務を一意に特定できる識別情報である業務識別子を記憶し,この業務識別子によって,システム構成テーブル500の提供業務識別子欄501で特定される業務と対応付けられる。業務提供時間欄1102は,業務識別子欄1101で特定される業務が利用者に提供される時間帯を記憶する。許容稼働率欄1103は,業務識別子欄1101で特定される業務が,1カ月や1年など所定期間において,遵守しなければならない稼働率を記憶する。
システム管理者が入力部111を介して,業務提供情報テーブル1100に示す情報を入力し,業務実行物理サーバ(現用系)は,入力された情報を記憶部114の業務提供情報テーブル1100に記憶する。また,通信部113から受信された,別途ツールやユーティリティを用いて収集した業務の提供情報を,業務実行物理サーバ(現用系)100が,業務提供情報テーブル1100に記憶しても良い。
業務ダウンタイムテーブル1200は,1カ月や1年など所定期間において,業務システムが停止し,ユーザに業務が提供できなかった時間を記憶する。図11に,業務ダウンタイムテーブル1200の一例を示す。業務ダウンタイムテーブル1200は,業務識別子欄1201,ダウンタイム欄1202を備えている。業務識別子欄1201は,業務実行物理サーバ(現用系)100が管理対象とする,業務システム10が提供する業務を一意に特定できる識別情報である業務識別子を記憶し,この業務識別子によって,システム構成テーブル500の提供業務識別子欄501で特定される業務と対応付けられる。ダウンタイム欄1202は,1カ月や1年など所定期間において,業務システムが停止し,ユーザに業務が提供できなかった時間を記憶する。
システム管理者が入力部111を介して,業務ダウンタイムテーブル1200に示す情報を入力し,業務実行物理サーバ(現用系)は,入力された情報を記憶部114の業務ダウンタイムテーブル1200に記憶する。また,通信部113から受信された,別途ツールやユーティリティを用いて収集した業務の停止時間を,業務実行物理サーバ(現用系)100が,業務ダウンタイムテーブル1200に記憶しても良い。
稼働率遵守度テーブル1300は,業務システム10のこれまでのダウン時間と,業務システム10に関連する仮想サーバ101を再起動させたときの再起動時間とを考慮した稼働率が,業務提供情報テーブル1100の許容稼働率欄1103で特定される許容稼働率を,どの程度遵守できているかを仮想サーバごとに記憶する。図12に,稼働率遵守度テーブル1300の一例を示す。稼働率遵守度テーブル1300は,仮想サーバ識別子欄1301,許容稼働率と実稼働率との差欄1302を備えている。仮想サーバ識別子欄1301は,仮想サーバ101を一意に特定できる識別情報である仮想サーバ識別子を記憶し,この仮想サーバ識別子によって,システム構成テーブル500の仮想サーバ識別子欄504で特定される仮想サーバと対応付けられる。許容稼働率と実稼働率との差欄1302は,(1)業務提供情報テーブル1100の許容稼働率欄1103で特定される業務システム10の許容稼働率と,(2)業務ダウンタイムテーブル1200のダウンタイム欄1202で特定される実ダウン時間,および,システム構成テーブル500の再起動時間欄505で特定される業務システム10に関連する仮想サーバ101の再起動時間から求めた実稼働率との差を記憶する。
以下,本実施形態における仮想サーバの再起動順序の決定処理について実施例として示す。仮想サーバの再起動順序決定処理は,仮想サーバの再起動順序決定装置としての機能を有する業務実行物理サーバ(現用系)100により実行されるが,以下の実施例の説明を簡明にするために,業務実行物理サーバ(現用系)100と,業務実行物理サーバ(待機系)200との間の,テーブルや情報の送受信に関して説明を省略又は簡略化する。
本実施例の仮想サーバの再起動順序決定処理について説明する。図13に,業務実行物理サーバ(現用系)100による仮想サーバの再起動順序決定処理フロー図の一例を示す。再起動順序決定処理は,構成変更検出部105がメンテナンステーブル700を参照し,メンテナンス中の仮想サーバ101を検出することで,実行を開始するが,システム管理者からの再起動順序決定要求や,周期タイマからの起動により実行を開始してもよい。
構成変更検出部105は,メンテナンステーブル700のメンテナンス日時欄703を参照し,現在時刻と比較し,メンテナンス中(現在時刻が,メンテナンス日時の開始時刻から終了時刻の間に含まれる。)の仮想サーバがあるかどうかを検索する(ステップ2001)。構成変更検出部105は,現在メンテナンス中の仮想サーバがない場合,処理を終了する。
構成変更検出部105は,メンテナンス中の仮想サーバがある場合,図14に示す処理を実行し,仮想サーバの再起動時間を計測する(ステップ2002)。
図14に,仮想サーバの再起動時間の計測処理フロー図の一例を示す。
構成変更検出部105は,メンテナンステーブル700に記載のメンテナンス中の仮想サーバの仮想サーバ識別子701に対応する起動検知プロセス識別子705を取得する(ステップ2101)。起動検知プロセスとは、対応する仮想サーバの起動や停止を検知するプロセスであり、検知結果を検知時刻を伴ったイベントとして発行する。
構成変更検出部105は,仮想サーバ再起動部107を起動し、ステップ2102〜ステップ2105を実行する。
仮想サーバ再起動部107は,メンテナンステーブル700を検索し,メンテナンス中の仮想サーバ701に対応するメンテナンス日時欄703に記憶しているメンテナンス終了時刻を取得する(ステップ2102)。仮想サーバ再起動部107は,メンテナンス中の仮想サーバ701をキーにして,システム構成テーブル500を検索し,再起動時間505を取得する(ステップ2103)。
仮想サーバ再起動部107は,ステップ2102で取得したメンテナンス終了時刻と現在の時刻との差,ステップ2103で取得した再起動時間とを比較し,メンテナンス終了時刻と現在の時刻との差が,規定時間(ここでは,再起動時間の2倍とする)よりも短くなれば,ステップ2105の処理を実行する(ステップ2104)。
仮想サーバ再起動部107は,メンテナンス中の仮想サーバ701を再起動する(ステップ2105)。
構成変更検出部105は,取得した起動検知プロセス識別子705で特定されるプロセスの停止イベントの受信を待つ(ステップ2106)。ここで,プロセスの停止イベントは,メールや他のツールから通知されても良いし,システム管理者が入力部111を介し,入力しても良い。
構成変更検出部105は,停止イベントの発行時刻を取得する(ステップ2107)。
構成変更検出部105は,起動検知プロセス識別子705で特定されるプロセスの開始イベントの受信を待つ(ステップ2108)。
構成変更検出部105は,開始イベントの発行時刻を取得し,開始イベントの発行時刻から停止イベントの発行時刻を減算した時間を,仮想サーバの識別子701に対応するシステム構成テーブル500の再起動時間欄505に記憶する(ステップ2109)。
図13に説明を戻し,ステップ2003以降の処理について説明する。
構成変更検出部105は,メンテナンステーブル700を検索し,前記メンテナンスが終了したかどうかを判断する。具体的には,メンテナンステーブル700のメンテナンス時間欄703に記憶されているメンテナンス終了時刻が,現在時刻よりも前かどうかを判断する(ステップ2003)。構成変更検出部105は,メンテナンスが終了していなければ,メンテナンスの終了処理を待つ。
再起動順序更新部106は,メンテナンス中であった仮想サーバのすべてが終了した場合,図15に示す処理を実行し,メンテナンスが終了した仮想サーバに関連する業務実行物理サーバ上で稼働する全ての仮想サーバの再起動順序を決定する(ステップ2004)。
図15に,仮想サーバの再起動順序の決定処理フロー図の一例を示す。
再起動順序更新部106は,メンテナンステーブル700のメンテナンスが終了した仮想サーバ識別子701に対応する物理サーバ識別子702をキーにして,システム構成テーブル500を検索する(ステップ2201)。物理サーバ識別子503が同じ仮想サーバ識別子504が複数ある場合,該当する物理サーバ識別子503および仮想サーバ識別子504の組の複数の行が検索結果として得られる。
再起動順序更新部106は,検索結果として仮想サーバ識別子504が得られたかどうかを判定し,得られなかった場合,処理を終了する(ステップ2202)。
再起動順序更新部106は,検索結果として得られた全ての仮想サーバ識別子504に対する再起動順序を更新したかどうかを判定し(ステップ2204以降の処理にて,検索結果から仮想サーバ識別子504に該当する行を取り出し,検索結果から削除することで,判定できる),全ての仮想サーバ識別子504に対する再起動順序を更新した場合,処理をステップ2208に移す(ステップ2203)。
再起動順序更新部106は,通信部113を介して,他の業務実行物理サーバ100と通信し,仮想サーバ識別子504に対応付けられている提供業務識別子501と,役割502をキーにして,他の業務実行物理サーバ100のシステム構成テーブル500を検索し,検索結果の数を冗長度とし,再起動順序テーブル600の冗長度欄603に冗長度を仮想サーバ識別子601に対応付けて格納する(ステップ2204)。
再起動順序更新部106は,ステップ2201で検索結果として得られた,仮想サーバ識別子504に対応付けられる提供業務識別子501をキーにして,SLA定義テーブル400を検索し,許容ダウンタイム402と許容ダウン回数403(提供業務識別子501および,検索結果が複数ある場合は,許容ダウンタイムの最小値と許容ダウン回数の最小値)を取得する(ステップ2205)。
再起動順序更新部106は,提供業務識別子501をキーにして,業務ダウン回数テーブル800を検索し,ステップ2205にて得られた許容ダウン回数403からダウン回数802で特定される実ダウン回数を減算した結果を,再起動順序テーブル600の許容ダウン回数と実ダウン回数との差欄604に,仮想サーバ識別子601に対応付けて格納する(ステップ2206)。
再起動順序更新部106は,仮想サーバ識別子504に対応する再起動時間を再起動時間欄505から取得し,ステップ2205にて得られた許容ダウンタイム402から再起動時間505を減算した結果を,再起動順序テーブル600の許容ダウンタイムと再起動時間との差欄605に,仮想サーバ識別子601に対応付けて格納する(ステップ2207)。
全ての仮想サーバ識別子504に対する再起動順序を更新したならば(S2203),再起動順序更新部106は,再起動順序テーブル600を,(1)冗長度603,(2)許容ダウン回数と実ダウン回数との差604,(3)許容ダウンタイムと再起動時間との差605の順番で,それぞれ昇順にソートし,上位から順に再起動順序を割り当て,起動順序欄602に記憶されている再起動順序を更新する(ステップ2208)。
再起動順序更新部106は,再起動順序更新部206に,ステップ2208で更新した仮想サーバの再起動順序602を送信する(ステップ2209)。
再起動順序更新部106は,受信した仮想サーバの再起動順序602を,再起動順序テーブル600の起動順序欄602に仮想サーバ識別子601に対応付けて記憶する(ステップ2210)。
本実施例によれば,仮想サーバのクラスタ環境において,仮想サーバの構成変更(OSやソフトウェアのアップデート)に起因して,仮想サーバの再起動時間が変更しても,業務管理者や顧客と取り決めた可用性を遵守しつつ,仮想サーバをフェイルオーバーできる。また、メンテナンス後の仮想サーバの再起動時間を漏れなく計測し,起動順序を更新することができる。
本実施例では,業務システム10において,業務システム10内の仮想サーバ間で守らなければいけない起動ルール(起動順序)が設定されている場合,この起動ルールに基づいて,実施例1により決定した,仮想サーバの起動順序を入れ替える処理を追加する。図16に,再起動順序更新部106による仮想サーバの再起動順序の入れ替え処理フロー図の一例を示す。
再起動順序更新部106は,起動ルールテーブル1000を検索し,任意のルールを取得する(ステップ2301)。
再起動順序更新部106は,ルールが取得できたかどうかを判断し,ルールが取得できなかった場合は処理を終了する(ステップ2302)。
再起動順序更新部106は,取得したルールのルール適用仮想サーバ1001および前起動仮想サーバ1002をキーにして,再起動順序テーブル600を検索し,それぞれの再起動順序602を取得する(ステップ2303)。
再起動順序更新部106は,取得した前起動仮想サーバの起動順序とルール適用仮想サーバの起動順序とを比較し,前起動仮想サーバの起動順序が,ルール適用仮想サーバの起動順序よりも早い場合は,ステップ2301の処理に戻り,前起動仮想サーバの起動順序が,ルール適用仮想サーバの起動順序よりも遅い場合は,ステップ2305の処理を実行する(ステップ2304)。
再起動順序更新部106は,前起動仮想サーバの起動順序と,ルール適用仮想サーバの起動順序と,を入れ替える(ステップ2305)。
実施例2によれば,起動順序を誤ると正しく業務を提供できない業務システム(例えばWeb3階層の場合,DBサーバ,APサーバ,Webサーバの順に起動しないと,これらのサーバ間の通信が正常にできない等)に対して,起動ルールに基づき,仮想サーバを正しい起動順序で起動することで,利用者に業務を確実に提供できるようになる。
実施例1では,メンテナンス中の仮想サーバ701の起動順序は,仮想サーバの稼動実績としての業務の許容ダウン回数や許容ダウン時間に基づいて算出していたが,業務の利用者とSLAを締結する際,稼働率を指標として締結することが一般的である。そこで,本実施例では,稼動率に基づいて仮想サーバの起動順序を決定できるように,業務実行物理サーバ(現用系)100に稼働率算出部109と,記憶部114に業務提供情報テーブル1100と,業務ダウンタイムテーブル1200と,稼働率遵守度テーブル1300とを設け,仮想サーバに関連する業務の稼働率の遵守度を算出する処理を追加する。図17に,稼働率算出部109による稼働率遵守度の算出処理フロー図の一例を示す。
稼働率算出部109は,メンテナンステーブル700のメンテナンスが終了した仮想サーバ識別子701に対応する物理サーバ識別子702をキーにして,システム構成テーブル500を検索する(ステップ2401)。物理サーバ識別子503が同じ仮想サーバ識別子504が複数ある場合,該当する物理サーバ識別子503および仮想サーバ識別子504の組の複数の行が検索結果として得られる。
稼働率算出部109は,検索結果として仮想サーバ識別子504が得られたかどうかを判定し,得られなかった場合,処理を終了する(ステップ2402)。
稼働率算出部109は,検索結果として得られた全ての仮想サーバ識別子504に対する稼働率遵守度を算出したかどうかを判定し(ステップ2404以降の処理にて,検索結果から仮想サーバ識別子504に該当する行を取り出し,検索結果から削除することで,判定できる),全ての仮想サーバ識別子504に対する稼働率遵守度を算出した場合,処理を終了する(ステップ2403)。
稼働率算出部109は,検索結果として得られた仮想サーバ識別子504に対応付けられる提供業務識別子501をキーにして,業務提供情報テーブル1100と業務ダウンタイムテーブル1200を検索し,業務提供時間1102と許容稼働率1103と,ダウンタイム1202を取得する(ステップ2404)。
稼働率算出部109は,ステップ2404で取得したダウンタイム1202と,仮想サーバ504で特定される仮想サーバの再起動時間505とを合計し,仮想サーバを再起動させたときの予測ダウンタイムを算出する(ステップ2405)。
稼働率算出部109は,ステップ2404で取得した業務提供時間1102とステップ2405で算出した予測ダウンタイムを,稼働率を算出する式:((業務提供時間−予測ダウンタイム)*100/業務提供時間)に代入し,提供業務識別子501で特定される業務の稼働率を算出する(ステップ2406)。
稼働率算出部109は,ステップ2504で取得した許容稼働率1103から,ステップ2406で算出した稼働率を減算した結果を稼動率遵守度として,稼働率遵守度テーブル1300の許容稼働率と実稼働率との差欄1302に,仮想サーバ識別子504と対応付けて記憶する(ステップ2407)。
本実施例3によれば,業務の利用者との間で締結したSLAに基づいた指標に沿って再起動順序を決定するため,実稼働環境に沿った仮想サーバの再起動順序管理ができる。
実施例1では,仮想サーバのメンテナンス情報を契機に再起動時間を計測していたが,メンテナンス期間外で仮想サーバのOSやソフトウェアのアップデートが行われた場合,仮想サーバに関連する業務システムに影響を与えずに起動順序を変更する必要がある。そこで,本実施例では,業務実行物理サーバ(現用系)100に仮想サーバコピー部110を設け,アップデートが行われた仮想サーバをコピーし,コピーした仮想サーバを使用して再起動時間を計測する。
具体的には,仮想サーバコピー部110が,アップデートが行われた仮想サーバをコピーし起動させて,仮想サーバ再起動部が,コピーした仮想サーバを再起動し,構成変更検出部が,コピーした仮想サーバの再起動時間を計測する処理を付加する。
本実施例によると,再起動順序を更新したい仮想サーバが,メンテナンス中ではなく,実際に業務提供中の場合でも,仮想サーバをコピーし,コピーした仮想サーバで再起動時間を計測し,この再起動時間を使用して,仮想サーバの再起動順序を決定することで,仮想サーバを再起動することなく,つまり,業務に影響を与えることなく仮想サーバの再起動順序を更新できる。
本実施例に類似して、業務実行物理サーバ(現用系)100ではなく、業務実行物理サーバ(待機系)200により仮想サーバで再起動時間を計測し,仮想サーバの再起動順序を決定してもよい。
以上説明した実施形態によれば、仮想サーバの起動時間が変更されても,業務システムのサービスレベルの遵守が可能となる。
10:業務システム,100:業務実行物理サーバ(現用系),101:仮想サーバ,102:SLA記憶部,103:再起動順序記憶部,104:業務ダウン記憶部,105:構成変更検出部,106:再起動順序更新部,107:仮想サーバ再起動部,108:起動ルール記憶部,109:稼動率算出部,110:仮想サーバコピー部,111:入力部,112:出力部,113:通信部,114:記憶部,200:業務実行物理サーバ(待機系),300:クラスタ共有ボリューム,400:SLA定義テーブル,500:システム構成テーブル,600:再起動順序テーブル,700:メンテナンステーブル,800:業務ダウン回数テーブル,900:クラスタ構成テーブル,1000:起動ルールテーブル,1100:業務提供情報テーブル,1200:業務ダウンタイムテーブル,1300:稼働率遵守度テーブル,1401:計算機,1402:CPU,1403:メモリ,1405:通信インタフェース,1407:入力装置,1408:出力装置,1409:ネットワーク。

Claims (6)

  1. 業務システムを実現する複数の仮想サーバを稼動させる業務実行物理サーバを,現用系と待機系のクラスタ構成にし,前記現用系及び前記待機系の業務実行物理サーバにクラスタ共有ボリュームを共有させたクラスタシステムであって,
    前記業務システムの稼動目標であるサービスレベルを前記クラスタ共有ボリュームに記憶するSLA記憶部と,
    前記複数の仮想サーバの再起動順序を前記クラスタ共有ボリュームに記憶する再起動順序記憶部と,
    前記仮想サーバの稼動実績を検出する稼動実績検出部と,
    前記クラスタ共有ボリュームに格納されている,前記仮想サーバのメンテナンス期間を示すメンテナンス情報に基づいて,前記メンテナンス期間中に前記仮想サーバの再起動時間を計測し,前記クラスタ共有ボリュームに記憶されている,前記仮想サーバの再起動時間を計測した前記再起動時間に更新する構成変更検出部と,
    前記複数の仮想サーバの各々の冗長度を算出し,算出した前記冗長度と,前記稼動実績検出部で検出された前記稼動実績と,前記SLA記憶部で記憶されている前記サービスレベルと,更新された前記再起動時間とに基づいて,新たな再起動順序を決定し,前記クラスタ共有ボリュームに記憶されている再起動順序を,決定した前記新たな再起動順序に更新する再起動順序更新部と,
    前記現用系の業務実行物理サーバから前記待機系の業務実行物理サーバへフェイルオーバーするとき,前記再起動順序更新部によって更新された前記新たな再起動順序に基づいて,前記待機系の業務実行物理サーバ上で前記複数の仮想サーバを再起動する仮想サーバ再起動部と,
    を備えたことを特徴とするクラスタシステム。
  2. 前記サービスレベルは,前記業務システムの許容ダウン時間及び許容ダウン回数であり,
    前記稼動実績検出部は,前記仮想サーバのダウンの検出に応答して,前記仮想サーバがダウンしてから再起動されるまでのダウン時間を算出し,前記ダウン時間が前記許容ダウン時間を超過したら,前記クラスタ共有ボリュームに記憶されているダウン回数を加算し,加算した前記ダウン回数を前記稼動実績とし,
    前記再起動順序更新部は,前記複数の仮想サーバの各々の冗長度を算出し,算出した前記冗長度と,前記稼動実績検出部で検出された前記稼動実績としての前記ダウン回数と,前記SLA記憶部で記憶されている前記許容ダウン回数と,更新された前記再起動時間とに基づいて,前記新たな再起動順序を決定し,前記クラスタ共有ボリュームに記憶されている再起動順序を,決定した前記新たな再起動順序に更新することを特徴とする請求項1記載のクラスタシステム。
  3. 前記再起動順序更新部は,前記複数の仮想サーバに対して予め設定されている起動ルールに応じて,前記新たな再起動順序を入れ替えることを特徴とする請求項2記載のクラスタシステム。
  4. 前記メンテナンス期間の残り時間と前記新たな再起動時間との差に基づき,前記仮想サーバを再起動させる仮想サーバ再起動部を備えたことを特徴とする請求項3記載のクラスタシステム。
  5. 前記稼動実績検出部は,前記再起動時間と前記業務システムの所定期間におけるダウンタイムとの和を予測ダウンタイムとして((業務提供時間−予測ダウンタイム)*100/業務提供時間)により実稼働率を求め,前記許容稼働率と求めた前記実稼働率との差を前記仮想サーバの稼動実績とすることを特徴とする請求項1記載のクラスタシステム。
  6. 前記構成変更検出部は,前記再起動時間を計測する前記仮想サーバをコピーし,コピーした前記仮想サーバを起動させる仮想サーバコピー部を備え,
    前記構成変更検出部は,前記コピーした仮想サーバを再起動させたときの再起動時間を計測することを特徴とする請求項1記載のクラスタシステム。
JP2010255897A 2010-11-16 2010-11-16 クラスタシステム Pending JP2012108651A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010255897A JP2012108651A (ja) 2010-11-16 2010-11-16 クラスタシステム
PCT/JP2010/073511 WO2012066691A1 (ja) 2010-11-16 2010-12-27 クラスタシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010255897A JP2012108651A (ja) 2010-11-16 2010-11-16 クラスタシステム

Publications (1)

Publication Number Publication Date
JP2012108651A true JP2012108651A (ja) 2012-06-07

Family

ID=46083648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010255897A Pending JP2012108651A (ja) 2010-11-16 2010-11-16 クラスタシステム

Country Status (2)

Country Link
JP (1) JP2012108651A (ja)
WO (1) WO2012066691A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014091580A1 (ja) * 2012-12-12 2014-06-19 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
JP2015060474A (ja) * 2013-09-20 2015-03-30 日本電気株式会社 情報処理引き継ぎ制御装置、情報処理引き継ぎ制御方法、及び、情報処理引き継ぎ制御プログラム
JP2015095151A (ja) * 2013-11-13 2015-05-18 富士通株式会社 起動制御プログラム、装置、及び方法
JP2017073597A (ja) * 2015-10-05 2017-04-13 コニカミノルタ株式会社 画像形成装置および管理プログラム
JP2017527037A (ja) * 2014-09-10 2017-09-14 アマゾン テクノロジーズ インコーポレイテッド コンピューティングインスタンスの起動時間
JP2018106517A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、フェールオーバ時間測定方法及びフェールオーバ時間測定プログラム
WO2019097811A1 (ja) * 2017-11-17 2019-05-23 日本電気株式会社 仮想リソース提供装置、仮想ネットワーク機能提供システム、仮想リソース提供方法及びプログラム
US10402746B2 (en) 2014-09-10 2019-09-03 Amazon Technologies, Inc. Computing instance launch time
CN112306664A (zh) * 2020-11-13 2021-02-02 苏州浪潮智能科技有限公司 一种服务重启方法、系统、设备以及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP4462969B2 (ja) * 2004-03-12 2010-05-12 株式会社日立製作所 フェイルオーバクラスタシステム及びフェイルオーバ方法
US7818621B2 (en) * 2007-01-11 2010-10-19 International Business Machines Corporation Data center boot order control

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014091580A1 (ja) * 2012-12-12 2014-06-19 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
JPWO2014091580A1 (ja) * 2012-12-12 2017-01-05 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
US9703653B2 (en) 2012-12-12 2017-07-11 Kabushiki Kaisha Toshiba Cloud system management apparatus, cloud system, reallocation method, and computer program product
JP2015060474A (ja) * 2013-09-20 2015-03-30 日本電気株式会社 情報処理引き継ぎ制御装置、情報処理引き継ぎ制御方法、及び、情報処理引き継ぎ制御プログラム
JP2015095151A (ja) * 2013-11-13 2015-05-18 富士通株式会社 起動制御プログラム、装置、及び方法
US9880855B2 (en) 2013-11-13 2018-01-30 Fujitsu Limited Start-up control program, device, and method
JP2017527037A (ja) * 2014-09-10 2017-09-14 アマゾン テクノロジーズ インコーポレイテッド コンピューティングインスタンスの起動時間
US10402746B2 (en) 2014-09-10 2019-09-03 Amazon Technologies, Inc. Computing instance launch time
JP2017073597A (ja) * 2015-10-05 2017-04-13 コニカミノルタ株式会社 画像形成装置および管理プログラム
JP2018106517A (ja) * 2016-12-27 2018-07-05 富士通株式会社 情報処理装置、フェールオーバ時間測定方法及びフェールオーバ時間測定プログラム
WO2019097811A1 (ja) * 2017-11-17 2019-05-23 日本電気株式会社 仮想リソース提供装置、仮想ネットワーク機能提供システム、仮想リソース提供方法及びプログラム
CN112306664A (zh) * 2020-11-13 2021-02-02 苏州浪潮智能科技有限公司 一种服务重启方法、系统、设备以及介质
CN112306664B (zh) * 2020-11-13 2022-07-08 苏州浪潮智能科技有限公司 一种服务重启方法、系统、设备以及介质

Also Published As

Publication number Publication date
WO2012066691A1 (ja) 2012-05-24

Similar Documents

Publication Publication Date Title
WO2012066691A1 (ja) クラスタシステム
US11182220B2 (en) Proactive high availability in a virtualized computer system
US9740546B2 (en) Coordinating fault recovery in a distributed system
JP5075736B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム
US7992032B2 (en) Cluster system and failover method for cluster system
JP5440273B2 (ja) スナップショット管理方法、スナップショット管理装置、及びプログラム
CN108369544B (zh) 计算系统中延期的服务器恢复方法和设备
JP5422342B2 (ja) インシデント管理方法および運用管理サーバ
EP2477111B1 (en) Computer system and program restoring method thereof
JP5305040B2 (ja) サーバ計算機の切替方法、管理計算機及びプログラム
US9379944B2 (en) Computer system, computer system information processing method, and information processing program
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
US10949401B2 (en) Data replication in site recovery environment
JP4590229B2 (ja) ポリシルール管理支援方法およびポリシルール管理支援装置
EP2946287B1 (en) Dynamic firmware updating
JP4918668B2 (ja) 仮想化環境運用支援システム及び仮想化環境運用支援プログラム
CN113672263A (zh) 固件参数更新控制方法、装置及电子设备
US9645857B2 (en) Resource fault management for partitions
CN111373367A (zh) 操作系统更新
US20140019620A1 (en) Management system and information acquisition method
JP5466740B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム
JP2008108155A (ja) 稼働実績情報に基づくモジュール切替システム
WO2016081002A1 (en) Query a hardware component for an analysis rule
JP2020119115A (ja) 情報処理装置、情報提供プログラム及び情報提供システム
US20240231991A1 (en) Software Modification Error Resolution and Management