JP6558037B2 - 運用管理プログラム、運用管理方法、および運用管理装置 - Google Patents

運用管理プログラム、運用管理方法、および運用管理装置 Download PDF

Info

Publication number
JP6558037B2
JP6558037B2 JP2015080722A JP2015080722A JP6558037B2 JP 6558037 B2 JP6558037 B2 JP 6558037B2 JP 2015080722 A JP2015080722 A JP 2015080722A JP 2015080722 A JP2015080722 A JP 2015080722A JP 6558037 B2 JP6558037 B2 JP 6558037B2
Authority
JP
Japan
Prior art keywords
execution
process definition
node
executed
server
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.)
Active
Application number
JP2015080722A
Other languages
English (en)
Other versions
JP2016200981A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015080722A priority Critical patent/JP6558037B2/ja
Priority to US15/091,841 priority patent/US10235210B2/en
Publication of JP2016200981A publication Critical patent/JP2016200981A/ja
Application granted granted Critical
Publication of JP6558037B2 publication Critical patent/JP6558037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、運用管理プログラム、運用管理方法、および運用管理装置に関する。
コンピュータシステムの運用では、コンピュータシステム内のサーバに対して、様々な操作が行われる。例えば、サーバ内のデータのバックアップや、サーバに実装されているプログラムのアップデートなどの操作である。システムが大規模になると、運用中に発生するすべての操作(以下、運用操作と呼ぶ)を管理者が手作業で実行するのは困難である。
運用操作を自動で実行するために、例えば運用シナリオが作成される。運用シナリオは、運用操作の実行順を定義した情報である。予め運用シナリオを作成しておくことで、運用シナリオに従って、運用操作を自動で実施することができる。例えば、既知インシデントに対する対応を自動的に行うインシデント管理システムが考えられている。
なお操作対象のサーバに不具合があると、運用シナリオ通りに操作を実行できない場合がある。このような場合に備え、例えば、運用シナリオの実行を中断する中断シナリオを生成する技術が考えられている。
特開2013−8178号公報 特開2005−332025号公報
複数のサーバに適用する運用シナリオを生成する方法としては、例えば個々のサーバに関する運用操作についての運用シナリオを個別に生成する方法が考えられる。この方法では、サーバの増減があるたびに、運用シナリオを個別に生成することになり、仮想マシンを用いることによりサーバの増減が容易となった現在では、管理者への運用シナリオ生成負担が過大となる。
そこで、運用シナリオの生成負担の軽減のために、複数のサーバに関する運用操作を一括して実施する運用シナリオを生成することができる。これにより、生成する運用シナリオ数を削減し、管理者の運用シナリオ生成の負担を軽減できる。
しかし、従来は、複数のサーバに対する運用操作を一括して実施する運用シナリオの実行時に一部のサーバで異常が発生した場合、その異常の影響範囲を判断することができない。そのため、一部のサーバの異常であっても、運用シナリオ全体の実行が停止され、異常に関連しないサーバに対しても運用操作を実行することができなくなる。このように、複数のサーバに対する運用操作を一括して実施する運用シナリオを用いると、一部のサーバの異常で運用シナリオ中のすべての運用操作が中止され、運用操作の実施効率が低下してしまう。
1つの側面では、一部のサーバの異常により運用シナリオ中のすべての運用操作の実行が中止されることを抑止することを目的とする。
1つの案では、以下の処理をコンピュータに実行させる運用管理プログラムが提供される。
運用管理プログラムに基づいて、コンピュータは、複数のサーバに対する複数の運用操作の実行手順を示す運用シナリオと、複数の運用操作それぞれが並列実行するものか否かを示す並列実行情報とを含む運用シナリオ実行情報を取得する。次にコンピュータは、複数のサーバそれぞれが利用可能か否かを示す利用可能情報を取得する。そしてコンピュータは、利用が不可能な利用不可サーバが存在することが利用可能情報に示されているとき、運用シナリオ実行情報に基づいて、並列実行するものとされている運用操作それぞれを運用シナリオの実行時に実行するか否かを示す実行判断情報を生成する。
1態様によれば、一部のサーバの異常により運用シナリオ中のすべての運用操作の実行が中止されることを抑止できる。
第1の実施の形態に係るシステムの構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。 運用操作機能を示すブロック図である。 サーバ構成情報の一例を示す図である。 プロセス定義の一例を示す図である。 プロセス定義情報の一例を示す図である。 スケジュール情報の一例を示す図である。 プロセス定義の実行制御処理の手順の一例を示すフローチャートである。 代替のプロセス定義の生成処理の手順の一例を示すフローチャートである。 代替のプロセス定義の一例を示す図である。 再実行用のプロセス定義の生成処理の手順の一例を示すフローチャートである。 再実行用のプロセス定義の一例を示す図である。 プロセス定義実行処理の手順の一例を示すフローチャートである。 プロセス定義の一例を示す図である。 異常検知時に実行中のプロセス定義情報の一例を示す図である。 代替のプロセス定義の一例を示す図である。 代替のプロセス定義を示すプロセス定義情報の一例を示す図である。 再実行用のプロセス定義の一例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るシステムの構成例を示す図である。運用管理装置10は、運用シナリオ2に基づいて、複数のサーバ1a〜1dに対する運用操作を行う。運用シナリオ2は、サーバ1a〜1dに対する運用操作の実行手順を定義したものである。なおサーバ1a〜1dの名称は、それぞれ「サーバA」、「サーバB」、「サーバC」、「サーバD」である。運用操作は、複数のサーバ1a〜1dのデータのバックアップ、ソフトウェアのアップデート、ソフトウェアの動作環境設定などである。運用シナリオ2では、例えば各運用操作がノード2a〜2hで表される。ノード2a〜2hには、開始のノード2aと終了のノード2hとが含まれる。実行順の先後関係が、ノード2a〜2h間の接続線で表されている。各ノード2a〜2hには、ノードIDが付与されている。図1では、各ノード2a〜2hの下に、ノードIDが示されている。
監視装置3は、サーバ1a〜1dの状態を監視する。例えば監視装置3は、定期的にサーバ1a〜1dに所定のコマンドを送信し、その応答の有無に応じて、サーバ1aが正常に動作しているか否かを確認する。
運用管理装置10は、記憶部11と演算部12とを有する。記憶部11は、運用シナリオ実行情報11aを記憶する。運用シナリオ実行情報11aは、運用シナリオ2と、運用シナリオ2内の複数の運用操作それぞれが並列実行するものか否かを示す並列実行情報とを含んでいる。運用シナリオ実行情報11aでは、運用シナリオ2が、例えばノード名、対象サーバ、ノードID、前方ノードIDリスト、後方ノードIDリストで定義されている。ノード名は、ノードの名称である。対象サーバは、運用操作の対象のサーバの名称である。ノードIDは、ノードの識別番号である。前方ノードIDリストは、該当ノードの直前に実行する運用操作に対応するノードIDのリストである。後方ノードIDリストは、該当ノードの直後に実行する運用操作に対応するノードIDのリストである。前方ノードIDリストと後方ノードIDリストとにより、運用操作の実行順が定義されている。並列に実行する運用操作のノードに対しては、並列実行情報が「並列」と設定される。並列に実行しない運用操作のノードに対しては、並列実行情報が「非並列」と設定される。
演算部12は、運用シナリオ実行情報11aに基づいて運用シナリオ2を解釈し、運用シナリオ2に示された手順で、サーバ1a〜1dに対する運用操作を行う。演算部12は、運用操作を実行する場合、記憶部11から運用シナリオ実行情報11aを取得する(ステップS1)。また演算部12は、複数のサーバそれぞれが利用可能か否かを示す利用可能情報4を、監視装置3から取得する。
演算部12は、取得した利用可能情報4に基づいて、利用が不可能なサーバが存在するか否かを判断する。利用が不可能なサーバがある場合、演算部12は、運用シナリオ実行情報11aに基づいて、並列実行するものとされている運用操作それぞれを運用シナリオの実行時に実行するか否かを示す実行判断情報5を生成する(ステップS3)。例えば利用が不可能なサーバを操作対象とする第1の運用操作が並列に実行するものである場合がある。この場合、演算部12は、並列に実行する運用操作のうち第1の運用操作との間に実行順の先後関係を有する第2の運用操作、および第1の運用操作の実行を抑止することを示す実行判断情報5を生成する。
実行判断情報5を生成した演算部12は、利用が可能な利用可能サーバに対して、実行判断情報5において実行抑止対象とされている運用操作を除外して、運用シナリオ2を実行する(ステップS4)。例えば演算部12は、運用シナリオ2を実行する場合、開始のノード2aから接続線を終了のノード2h方向へ辿りながら、出現するノードに対応する運用操作を順次実行する。この際、演算部12は、実行判断情報5において実行を抑止することが示された運用操作については実行しない。
このようなシステムにおいて、運用シナリオ2を実行するときに、サーバ1dに障害が発生した場合を考える。サーバ1dで障害が発生したことは、監視装置3によって検知される。運用管理装置10の演算部12は、運用シナリオ2の実行開始タイミングになると、記憶部11から運用シナリオ実行情報11aを取得すると共に、監視装置3から利用可能情報4を取得する。利用可能情報4には、名称「サーバD」のサーバ1dが利用不可であることが示されている。
演算部12は、サーバ1dが利用できないため、運用シナリオ実行情報11aに基づいて、まずサーバ1dを操作対象とするノードを特定する。図1の例では、ノードID「6」のノード2fが、サーバ1dに対する運用操作に対応する。演算部12は、該当するノード2fの並列実行情報を確認する。すると、そのノード2fが、並列に実行する運用操作に対応することが分かる。そこで、演算部12は、ノードID「6」のノード2fに対応する運用操作の実行を抑止することを決定する。
また演算部12は、並列に実行する運用操作に対応するノード2c〜2f(ノードID「3」〜「6」)のうち、利用不可のサーバ1dに対する運用操作との間に実行順の先後関係を有する運用操作に対応するノードを特定する。図1の例では、ノードID「5」のノード2eは、ノード2fの前に実行する運用操作に対応する。そこで演算部12は、ノード2eに対応する運用操作の実行を抑止することを決定する。
演算部12は、最終的に、並列に実行する区間の運用操作のうち、ノードID「3」,「4」のノード2c,2dの運用操作を実行し、ノードID「5」,「6」のノード2e,2fの運用操作の実行を抑止することを示す実行判断情報5を生成する。そして演算部12は、運用シナリオ2に基づいて、ノード2e,2f以外のノード2a〜2d,2g,2hに示された運用操作を、利用可能なサーバ1a,1bに対して実行する。
このようにして、運用シナリオ2において操作対象となっている複数のサーバ1a〜1dのうち、一部のサーバが利用できない場合であっても、そのサーバの停止が影響しない範囲で、運用シナリオ2を実行できる。その結果、複数のサーバ1a〜1dに一括して運用操作を行う運用シナリオ2を作成した場合において、一部のサーバに異常が発生しても、運用シナリオ中のすべての運用操作の実行が中止されることを抑止できる。
例えばサーバ1a,1cのメモリ内のデータを、サーバ1a,1cそれぞれに対応するサーバ1b,1d内のデータベース(DB)に格納した後、サーバ1b,1dそれぞれのデータのバックアップを取る場合を考える。この場合、サーバ1dが故障していても、サーバ1a内のデータのサーバ1b内のDBへの書き込み、およびサーバ1b内のデータのバックアップは可能である。データのバックアップは、できるかぎり予め指定した日時に実施されることが望ましい。第1の実施の形態のシステムによれば、サーバ1dが故障した場合でも、サーバ1aからサーバ1b内のDBへのデータの書き込み、およびサーバ1bのデータのバックアップ操作については、定時に実行することができる。
なお、サーバ1dが利用できないにも拘わらず、サーバ1cへの運用操作を実行してしまうと、その運用操作が正常に終了できないか、誤った処理となる。そのような運用操作を実行してしまうと、誤って実行された処理の修正といった、余分な作業が発生する可能性がある。第1の実施の形態では、運用シナリオ2中でサーバ1dに対する運用操作の前に実行することになっている、ノード2eの運用操作の実行は抑止される。そのため、不完全な運用操作が実行されることが抑止され、運用操作の信頼性が向上する。
なお、演算部12は、例えば、並列実行するものとされている運用操作それぞれを運用シナリオの実行時に実行するか否かの判断結果を反映させた代替の運用シナリオを生成してもよい。代替の運用シナリオは、実行判断情報5において実行抑止対象とされている運用操作を、運用シナリオ2から除外したものである。代替の運用シナリオを生成することで、運用シナリオの実行時に、運用操作ごとに実行の要否を判断せずにすみ、使用可能なサーバに対する適切な運用シナリオの実行が容易となる。
また演算部12は、実行判断情報5において実行対象とされている運用操作を運用シナリオ2から除外した、再実行用の運用シナリオを生成することもできる。図1の例では、運用シナリオ2からノード2c,2dの運用操作を除外した再実行用の運用シナリオが生成される。再実行用の運用シナリオを生成することで、例えばサーバ1dが障害から復旧した場合に、運用シナリオ2の実行時に実施されなかった運用操作を、最小限のサーバに対して正しく実行することができる。その結果、少ないサーバ資源の利用で、未実行の運用操作を確実に実行することができる。
運用シナリオ2の実行開始時には全サーバ1a〜1dが利用可能であっても、運用シナリオ2の実行開始後に一部のサーバに障害が発生する場合もあり得る。この場合、演算部12は、例えば、並列に実行する運用操作の実行が開始されていなければ、代替の運用シナリオを生成する。既に並列に実行する運用操作の実行が開始されていた場合に代替の運用シナリオを生成しないのは、この場合に代替の運用シナリオを生成して実行すると、同じ運用操作を重複して実行することになってしまうためである。すなわち、並列に実行する運用操作の実行が開始されていないことを条件に代替の運用シナリオを生成することで、同じ運用操作が重複して実行されることが抑止される。
なお、演算部12は、例えば運用管理装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えば運用管理装置10が有するメモリにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態では、運用操作の手順がプロセス定義に示される。このプロセス定義は、第1の実施の形態における運用シナリオの一例である。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20を介して、複数のサーバ31〜33、端末装置40、監視装置50、および管理サーバ100が接続されている。サーバ31〜33は、ネットワーク20を介した情報処理サービスを提供するコンピュータである。端末装置40は、システムの管理者が使用するコンピュータである。監視装置50は、サーバ31〜33の動作状況を監視するコンピュータである。管理サーバ100は、サーバ31〜33に対する運用操作を実行するコンピュータである。なお、管理サーバ100は、図1に示した第1の実施の形態における運用管理装置10の一例である。
図3は、本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。サーバ31〜33、端末装置40、および監視装置50も、管理サーバ100と同様のハードウェアで実現できる。また、第1の実施の形態に示した運用管理装置10も、管理サーバ100と同様のハードウェアにより実現できる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、運用操作機能を示すブロック図である。端末装置40は、プロセス定義生成部41を有する。プロセス定義生成部41は、管理者からの操作に応じて、プロセス定義を示すプロセス定義情報を生成する。プロセス定義情報は、複数のサーバに対して運用操作を行う場合の、運用操作の実行順(シナリオ)の定義(プロセス定義)を示す情報である。プロセス定義には、並列に実行する運用操作を含めることができる。そこでプロセス定義情報には、各運用操作が並列に実行するものか否かを識別するための情報が含まれる。なおプロセス定義情報は、図1に示す運用シナリオ実行情報の一例である。プロセス定義生成部41は、生成したプロセス定義情報を、管理サーバ100に送信する。
監視装置50は、監視部51を有する。監視部51は、サーバ31〜33が正常に動作しているかどうかを監視する。例えば監視部51は、サーバ31〜33に定期的に所定のコマンドを送信し、応答の有無により、サーバ31〜33が動作しているかどうかを判断する。監視部51が、いずれかのサーバが正常に動作していない場合、そのサーバが動作していないことを管理サーバ100に通知する。
管理サーバ100は、CMDB(Configuration Management Database)110、運用操作情報記憶部120、構成情報管理部131、プロセス定義制御部132、プロセス定義実行部133、スケジュール管理部134、スケジュール実行部135、および運用操作実行部136を有する。
CMDB110は、サーバ31〜33などのネットワーク構成を示す情報を記憶するデータベースである。CMDB110には、サーバ構成情報111が含まれる。サーバ構成情報111は、各サーバ31〜33の構成や状態に関する情報である。
運用操作情報記憶部120は、運用操作の自動実行に用いられる情報を記憶する。運用操作情報記憶部120には、例えば複数のプロセス定義情報121、スケジュール情報122、および複数の運用操作スクリプト123が格納されている。プロセス定義情報121としては、プロセス定義生成部41で生成されたものや、プロセス定義制御部132によって自動生成されたものがある。スケジュール情報122は、プロセス定義情報121の実行スケジュールを示す情報である。運用操作スクリプト123は、サーバ31〜33に対する運用操作手順が記述されたスクリプトである。
構成情報管理部131は、CMDB110内のネットワークの構成情報を管理する。例えば構成情報管理部131は、監視装置50から、サーバが正常に動作していないことが通知されると、サーバ構成情報111内の該当サーバの状態に関する情報を更新する。
プロセス定義制御部132は、プロセス定義情報121の生成や登録を制御する。例えばプロセス定義制御部132は、端末装置40から、プロセス定義生成部41が生成したプロセス定義情報を取得し、運用操作情報記憶部120に格納する。またプロセス定義制御部132は、スケジュール実行部135から、実行時期となったプロセス定義の通知を受け取ると、そのプロセス定義の実行をプロセス定義実行部133に指示する。
なお実行時期となったプロセス定義の通知を受け取ったとき、プロセス定義制御部132は、そのプロセス定義における運用操作対象のサーバの中に正常に動作していないサーバがあれば、代替のプロセス定義をプロセス定義実行部133に実行させることができる。例えばプロセス定義制御部132は、CMDB110内のサーバ構成情報111を参照し、プロセス定義実行部133に実行させるプロセス定義において操作対象となるサーバが、正常に動作しているかどうかを判断する。正常に動作していないサーバがある場合、プロセス定義制御部132は、該当サーバへの運用操作を含む一部の運用操作を除外した、現在実行可能な代替のプロセス定義が生成可能かどうかを判断する。生成可能であれば、プロセス定義制御部132は、代替のプロセス定義を示すプロセス定義情報121を生成し、運用操作情報記憶部120に格納する。代替のプロセス定義を示すプロセス定義情報121を生成した場合、プロセス定義制御部132は、プロセス定義実行部133に対して、新たに生成したプロセス定義情報121に基づく代替のプロセス定義の実行を指示する。
またプロセス定義制御部132は、実行しようとしたプロセス定義における運用操作のうち、代替のプロセス定義から除外された運用操作を実行するための、再実行用のプロセス定義を示すプロセス定義情報121を生成することもできる。プロセス定義制御部132は、再実行用のプロセス定義を示すプロセス定義情報121を生成した場合、そのプロセス定義情報121を運用操作情報記憶部120に格納する。再実行用のプロセス定義は、例えば、管理者からの実行指示が入力されたときに実行される。
プロセス定義実行部133は、プロセス定義制御部132からの指示に応じ、運用操作情報記憶部120に格納されているプロセス定義情報121に基づいてプロセス定義を実行する。例えばプロセス定義実行部133は、実行対象のプロセス定義に基づいて、運用操作の実行順を判断する。そしてプロセス定義実行部133は、プロセス定義に示された順番での運用操作の実行を、運用操作実行部136に指示する。
スケジュール管理部134は、プロセス定義の実行スケジュールを管理する。例えばスケジュール管理部134は、管理者からの入力に応じ、プロセス定義生成部41で生成されたプロセス定義の実行時期を示すスケジュール情報122を生成する。スケジュール管理部134は、生成したスケジュール情報122を、運用操作情報記憶部120に格納する。
スケジュール実行部135は、スケジュール情報122に従って、プロセス定義の実行時期を管理する。例えばスケジュール実行部135は、定期的にスケジュール情報122を参照し、実行時期となったプロセス定義がある場合、そのプロセス定義の実行時期であることを、プロセス定義制御部132に通知する。
運用操作実行部136は、運用操作情報記憶部120に格納された運用操作スクリプト123に基づいて、サーバ31〜33に対する運用操作を実行する。例えば運用操作実行部136は、プロセス定義実行部133から指定されたサーバに対して、指定された運用操作を実行する。なお実行する運用操作の中には、サーバ31〜33に対する運用操作の準備処理も含まれる。例えば運用操作実行部136が実行する運用操作には、運用操作対象のサーバが一時的に停止することを示すメッセージの配信も含まれる。
以上のような構成のシステムにより、適切な運用プロセスの実行が可能となる。なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、管理サーバ100が保持する各種情報について詳細に説明する。
図5は、サーバ構成情報の一例を示す図である。サーバ構成情報111には、サーバごとの、サーバ名、ホスト名、およびavailable_flagが含まれている。サーバ名は、システム上でのサーバの名称である。ホスト名は、サーバのネットワーク上での名称である。Available_flagは、サーバが正常に動作しているかどうかを示すフラグである。例えば正常に動作しているサーバのavailable_flagは「TRUE」である。また正常に動作していないサーバのavailable_flagは、「FALSE」である。
Available_flagは、例えば、監視装置50の監視部51によって設定される。また管理サーバ100の管理者の入力によって、available_flagを設定することもできる。例えば、管理者は、予定していたスケジュールでサーバのメンテナンスを行うときに、そのサーバのavailable_flagを「FALSE」に設定する。
図6は、プロセス定義の一例を示す図である。プロセス定義61には、複数のノード61a〜61m間の関係が定義されている。ノード61a〜61mのうち、開始のノード61aは、運用シナリオの開始位置を示している。終了のノード61mは、運用シナリオの終了位置を示している。ノード61bは、並列実行開始を示している。ノード61jは、並列実行終了を示している。ノード61c〜61kは、サーバに対する運用操作を示している。図6では、各ノード61a〜61mの関係が、ノード間の接続線で示されている。開始のノード61aから終了のノード61mに向かって、ノード間の関係を辿ったときに出現する運用操作のノードが、出現した順番に実行される。
図6の例では、複数のサーバ31〜33それぞれのデータのバックアップの運用シナリオが、プロセス定義61に示されている。各サーバのバックアップは並列実行可能であるため、サーバごとの運用操作が並列処理として定義されている。サーバ名「サーバA」のサーバ31に対する運用操作は、ノード61c〜61eに示されている。サーバ名「サーバB」のサーバ32に対する運用操作は、ノード61f〜61hに示されている。サーバ名「サーバC」のサーバ33に対する運用操作は、ノード61i〜61kに示されている。
このようなプロセス定義61は、運用操作情報記憶部120内では、例えばプロセス定義情報121として記憶される。
図7は、プロセス定義情報の一例を示す図である。プロセス定義情報121aは、データテーブルで管理できる。プロセス定義情報121aには、プロセス定義を一意に識別するプロセス定義IDが付与されている。プロセス定義情報121aには、ノードごとに、ノード名、対象サーバ、ノードID、前方ノードIDリスト、後方ノードIDリスト、並列実行開始ノードID、並列実行終了ノードID、および状態の情報が登録されている。
ノード名は、ノードの名称である。対象サーバは、ノードに示される運用操作の対象となるサーバのサーバ名である。なお操作対象のサーバがない場合、対象サーバは「NULL」となる。ノードIDは、プロセス定義情報121a内でのノードの識別番号である。前方ノードIDリストは、対応するノードの運用操作の直前に実行される運用操作を示すノードのノードIDである。後方ノードIDリストは、対応するノードの運用操作の直後に実行される運用操作を示すノードのノードIDである。並列実行開始ノードIDは、対応するノードが並列実行区間内にある場合に、その並列実行区間の並列実行開始を示すノードのノードIDである。並列実行終了ノードIDは、対応するノードが並列実行区間内にある場合に、その並列実行区間の並列実行終了を示すノードのノードIDである。状態は、ノードに対応する運用操作の実行状態を示す情報である。ノードの状態には、「実行待ち」、「実行中」、「実行終了」がある。
図8は、スケジュール情報の一例を示す図である。スケジュール情報122は、例えばテーブル形式のデータ構造で記憶される。スケジュール情報122には、例えばプロセス定義IDに対応付けて、実行開始日時、実行結果が登録される。プロセス定義IDは、実行するプロセス定義の識別情報である。実行開始日時は、対応するプロセス定義を実行する日時である。実行開始日時には、例えば、毎日の実行開始時刻のように、定期的な繰り返し実行日時を設定することもできる。実行開始日時が設定されていないプロセス定義は、管理者から指示があったとき、または生成直後に実行される。例えば代替のプロセス定義であれば、生成直後に実行される。また再実行用のプロセス定義であれば、管理者の指示があったときに実行される。実行されていないプロセス定義には、実行結果として「未実行」が設定される。実行されたプロセス定義には、実行結果として「実行済」が設定される。
以上のような情報を用いて、実行開始時となったプロセス定義を実行することができる。
次に、第2の実施の形態におけるプロセス定義を用いた運用操作について詳細に説明する。
第2の実施の形態では、前提条件として、プロセス定義内の各運用操作に対応するノードの実行の順番に関する依存関係については、各プロセス定義におけるノードの直列/並列関係で解決されているものとする。すなわちノードが直列に接続されている場合、接続順に応じた実行順の制約が存在する。またノードが並列に接続されている場合、実行順の先後関係はない。
また事前準備として、管理者は、プロセス定義生成部41を用いて、プロセス定義を作成する。このとき管理者は、プロセス定義情報に並列実行開始のノードと並列実行終了のノードとを設定する。さらに管理者は、並列で実行する運用操作に対応するノードに対して並列実行区間の情報(並列実行開始ノードID、並列実行終了ノードID)を設定する。並列実行区間の情報が設定されていることで、そのノードに対応する運用操作が、並列に実行するものであることが分かる。また管理者は、プロセス定義情報に、各ノードの前方ノードIDリストと後方ノードIDリストを設定する。前方ノードIDリストと後方ノードIDリストとにより、ノード間の依存関係が定義される。
以上の前提条件と事前準備により、利用できないサーバが存在する場合、プロセス定義から除外可能なノードを適切に識別可能となる。そして、除外可能なノードを除外した代替のプロセス定義を実行することで、利用不可サーバへの操作を避けて運用操作を実行することができる。
また、管理サーバ100は、ノード情報に保存した並列実行区間の情報と、代替のプロセス定義生成時に除外したノード情報に基づき、冗長性を排除した再実行用のプロセス定義を生成し、実行待ち状態とすることもできる。生成した再実行用のプロセス定義を実行することで、システム復旧時、最低限のサーバのみを操作する運用操作が可能となる。
以下、プロセス定義を用いた運用操作処理手順を、フローチャートを参照して説明する。
図9は、プロセス定義の実行制御処理の手順の一例を示すフローチャートである。
[ステップS101]プロセス定義制御部132は、プロセス定義の実行開始時になると、そのプロセス定義における操作対象サーバのサーバ名を取得する。例えばプロセス定義制御部132は、スケジュール実行部135からプロセス定義IDを指定した、プロセス定義の実行時期になったことの通知を受けると、指定されたプロセス定義IDに対応するプロセス定義を、運用操作情報記憶部120から取得する。そしてプロセス定義制御部132は、取得したプロセス定義から、各ノードの対象サーバのサーバ名を抽出する。
[ステップS102]プロセス定義制御部132は、操作対象サーバの利用状況情報を取得する。例えばプロセス定義制御部132は、CMDB110内のサーバ構成情報111を参照し、実行開始するプロセス定義の操作対象サーバの利用状況情報として、available_flagを抽出する。
[ステップS103]プロセス定義制御部132は、操作対象サーバが、すべて利用可能か否かを判断する。例えばプロセス定義制御部132は、すべてのサーバのavailable_flagが「TRUE」であれば、すべてのサーバが利用可能であると判断する。またプロセス定義制御部132は、available_flagが「FALSE」のサーバが少なくとも1つでもあれば、利用不可能なサーバがあると判断する。
このようにして、並列実行する運用操作を含むプロセス定義を実行する前に、操作対象のサーバ31〜33のうち、利用不可能なサーバが存在するか否かが確認される。すべてのサーバが利用可能な場合、処理がステップS104に進められる。利用不可能なサーバがある場合、処理がステップS105に進められる。
[ステップS104]プロセス定義制御部132は、実行開始時になったプロセス定義の実行を、プロセス定義実行部133に指示する。すると、プロセス定義実行部133は、実行するプロセス定義を運用操作情報記憶部120から取得し、開始のノードから順にノードの接続関係を辿り、出現したノードから順に、そのノードに対応する運用操作の実行を、運用操作実行部136に指示する。運用操作実行部136は、実行を指示された運用操作の運用操作スクリプトを運用操作情報記憶部120から取得する。そして運用操作実行部136は、取得した運用操作スクリプトに従って、操作対象のサーバに対する運用操作を実行する。その後、プロセス定義の実行処理が終了する。
なおプロセス定義の実行を指示した後、プロセス定義に応じた運用操作の完了前に、サーバの異常が検知された場合、プロセス定義制御部132は、プロセス定義の実行を中止させ、代替のプロセス定義を生成する。そして代替のプロセス定義による運用操作の実行を指示する。このような、プロセス定義の実行指示後のサーバ異常検知に応じた対処を含む処理については、後述する(図14参照)。
[ステップS105]実行不可能な操作対象のサーバがある場合、プロセス定義制御部132は、代替のプロセス定義を生成する。代替のプロセス定義の生成処理の詳細は後述する(図10参照)。なお、並列実行区間以外のノードの操作対象サーバが使用不可能な場合、代替のプロセス定義は生成されない。
[ステップS106]プロセス定義制御部132は、再実行用のプロセス定義を生成する。再実行用のプロセス定義の生成処理の詳細は後述する(図12参照)。
[ステップS107]プロセス定義制御部132は、代替のプロセス定義が生成されたか否かを判断する。代替のプロセス定義が生成された場合、処理がステップS108に進められる。代替のプロセス定義が生成されていなければ、処理が終了する。
[ステップS108]プロセス定義制御部132は、代替のプロセス定義の実行指示を、プロセス定義実行部133に出す。するとプロセス定義実行部133が、運用操作実行部136と連携し、代替のプロセス定義を実行する。
このようにして、実行時期となったプロセス定義、またはそのプロセス定義から生成された代替のプロセス定義が実行される。
次に、代替のプロセス定義の生成処理について詳細に説明する。
図10は、代替のプロセス定義の生成処理の手順の一例を示すフローチャートである。
[ステップS111]プロセス定義制御部132は、実施開始時となったプロセス定義内のノードのうち、利用不可能なサーバへ運用操作を行うノードを、除外候補ノードに設定する。
[ステップS112]プロセス定義制御部132は、すべての除外候補ノードが、並列実行区間内にあるか否かを判断する。例えばプロセス定義制御部132は、プロセス定義情報121a(図7参照)を参照し、各除外候補ノードに対して、並列実行開始ノードIDと並列実行終了ノードIDとが設定されているか否かを判断する。並列実行開始ノードIDと並列実行終了ノードIDとが設定されている除外候補ノードは、並列実行区間内のノードと判断される。すべての除外候補ノードが並列実行区間内の場合、処理がステップS113に進められる。少なくとも1つの除外候補ノードが並列実行区間外の場合、代替のプロセス定義は生成できないものと判断され、代替のプロセス定義生成処理が終了する。
[ステップS113]プロセス定義制御部132は、未選択の除外候補ノードから、除外候補ノードを1つ選択する。
[ステップS114]プロセス定義制御部132は、選択した除外候補ノードを通る並列実行区間内のすべてのノードを、除外ノードとして登録する。例えばプロセス定義制御部132は、選択した除外候補ノードを、除外ノードとする。次に、プロセス定義制御部132は、プロセス定義情報121a(図7参照)において、選択した除外候補ノードから順に、前方ノードIDリストで示されているノードを、並列実行開始ノードに達するまで辿る。そしてプロセス定義制御部132は、選択した除外候補ノードと並列実行開始ノードとの間にある各ノードを、除外ノードとする。同様にプロセス定義制御部132は、プロセス定義情報121a(図7参照)において、選択した除外候補ノードから順に、後方ノードIDリストで示されているノードを、並列実行終了ノードに達するまで辿る。そしてプロセス定義制御部132は、選択した除外候補ノードと並列実行終了ノードとの間にある各ノードを、除外ノードとする。
[ステップS115]プロセス定義制御部132は、すべての除外候補ノードを選択したか否かを判断する。すべての除外候補ノードが選択済みであれば、処理がステップS116に進められる。未選択の除外候補ノードが存在すれば、処理がステップS113に進められる。
[ステップS116]プロセス定義制御部132は、実行開始時となったプロセス定義から除外ノードを削除した代替のプロセス定義を生成する。プロセス定義制御部132は、生成した代替のプロセス定義を、運用操作情報記憶部120に格納する。
このようにして代替のプロセス定義が生成される。図10に示すように、すべての除外候補ノードについて並列実行区間内に存在するかが確認され、少なくとも一部の除外候補ノードが、並列実行区間以外(直列区間)に存在する場合は、除外不可能と判断され、代替のプロセス定義は生成されない。すると、元のプロセス定義も代替のプロセス定義も実行されずに処理が終了する。すべての除外候補ノードが、並列実行区間内に存在する場合、その除外候補ノードを除外可能と判断され、利用不可のサーバへの運用操作ノードを含む並列実行区間内の全ノードを除外した、代替のプロセス定義が生成され、実行される。
図11は、代替のプロセス定義の一例を示す図である。図11の例は、図6に示したプロセス定義61を実行しようとしたときに、サーバ名「サーバC」のサーバ33が利用不可能であることにより生成された代替のプロセス定義61−1である。代替のプロセス定義61−1では、元のプロセス定義61から、3つのノード61i〜61kが削除されている。
このように、利用不可能なサーバの運用操作に関するノードを含む並列実行区間内のノードをすべて削除することで、利用可能なサーバに対する運用操作を適切に実行することができる。すなわち、図11の例では、サーバ名「サーバC」のサーバ33が利用できなくても、他のサーバ31,32に対しては、バックアップの運用操作を実行できる。
次に、再実行用のプロセス定義の生成処理について詳細に説明する。
図12は、再実行用のプロセス定義の生成処理の手順の一例を示すフローチャートである。
[ステップS121]プロセス定義制御部132は、実施開始時となったプロセス定義内のノードのうち、利用可能なサーバへの運用操作を行うノードを、除外候補ノードに設定する。
[ステップS122]プロセス定義制御部132は、未選択の除外候補ノードから、除外候補ノードを1つ選択する。
[ステップS123]プロセス定義制御部132は、選択した除外候補ノードが、並列実行区間内にあるか否かを判断する。並列実行区間内か否かは、例えばプロセス定義情報121a(図7参照)において、除外候補ノードに対して、並列実行開始ノードIDと並列実行終了ノードIDとが設定されているか否かで判断できる。並列実行開始ノードIDと並列実行終了ノードIDとが設定されていれば、除外候補ノードは並列実行区間内にある。選択した除外候補ノードが並列実行区間内にある場合、処理がステップS124に進められる。選択した除外候補ノードが並列実行区間外にある場合、処理がステップS125に進められる。
[ステップS124]プロセス定義制御部132は、選択した除外候補ノードを除外ノードとして登録する。
[ステップS125]プロセス定義制御部132は、すべての除外候補ノードを選択したか否かを判断する。すべての除外候補ノードが選択済みであれば、処理がステップS126に進められる。未選択の除外候補ノードが存在すれば、処理がステップS122に進められる。
[ステップS126]プロセス定義制御部132は、選択した除外候補ノードを通る並列実行区間内の他のすべてのノードを、除外ノードとして登録する。
[ステップS127]プロセス定義制御部132は、実行開始時となったプロセス定義から除外ノードを削除した再実行用のプロセス定義を生成する。プロセス定義制御部132は、生成した代替のプロセス定義を、運用操作情報記憶部120に格納する。
このようにして再実行用のプロセス定義が生成される。
図13は、再実行用のプロセス定義の一例を示す図である。図11の例は、図6に示したプロセス定義61を実行しようとしたときに、サーバ名「サーバC」のサーバ33が利用不可能であることにより生成された再実行用のプロセス定義61−2である。再実行用のプロセス定義61−2では、元のプロセス定義61から、6つのノード61c〜61hが削除されている。
このように、プロセス定義61から代替のプロセス定義61−1により運用操作が実行された並列実行区間内のノードを削除することで、現在は利用不可能なサーバに対して、後で運用操作を適切に実行する再実行用のプロセス定義61−2を生成できる。図13の例では、代替のプロセス定義61−1により既に運用操作が実行されたサーバ31,32を除外して、サーバ33に対してのみバックアップの運用操作を実行できる。
ところで、プロセス定義に応じた運用操作の実行途中で、サーバの異常が検知される場合もある。そのような場合、現在実行しているプロセス定義の実行を中止して、代替のプロセス定義が実行される。
図14は、プロセス定義実行処理の手順の一例を示すフローチャートである。
[ステップS131]プロセス定義制御部132は、プロセス定義実行部133に対してプロセス定義の実行を指示する。この指示に応じて、プロセス定義実行部133と運用操作実行部136が連携して、プロセス定義に従った運用操作を実行する。
[ステップS132]プロセス定義制御部132は、サーバの異常が検知されたか否かを判断する。例えば、プロセス定義制御部132は、サーバ構成情報111を参照し、実行中のプロセス定義の対象サーバに含まれるサーバのavailable_flagを確認する。Available_flagが「FALSE」となっているサーバがある場合、サーバの異常が検知されたと判断される。サーバの異常が検知された場合、処理がステップS133に進められる。サーバの異常が検知されていなければ、処理がステップS138に進められる。
[ステップS133]プロセス定義制御部132は、並列実行区間内のノードを実行中、または次に実行するノードが並列実行区間内に存在するか否かを判断する。例えばプロセス定義制御部132は、現在実行中のプロセス定義を参照し、各ノードの状態を確認する。状態が「実行中」のノードが、現在実行中のノードである。実行中のノードに対して、並列実行開始ノードIDと並列実行終了ノードIDとが設定されていれば、並列実行区間内のノードを実行中であることが分かる。また実行中のノードの後方ノードIDリストを参照することで、次に実行するノードが特定できる。次に実行するノードに対して、並列実行開始ノードIDと並列実行終了ノードIDとが設定されていれば、そのノードは、並列実行区間内に存在することが分かる。
実行中のノードが並列実行区間内のノードであるか、もしくは次に実行するノードが並列実行区間内にある場合、代替プロセスの生成などをせずに、現在実行中のプロセス定義をそのまま実行させ、処理が終了する。実行中のノードが並列実行区間内の場合は、異常が発生したサーバを操作対象とするノードを含む並列実行区間に対しても既に運用操作が実行されている。そのため、実行中のプロセス定義を、その並列実行区間を除外した代替のプロセス定義に置き換える意義がない。そのため、代替のプロセス定義の生成は行わずに、現行のプロセス定義が継続実行される。また、次に実行するノードが並列実行区間内にある場合、すでに並列分岐が完了済みである可能性がある。そのため、プロセス定義制御部132は、次に実行するノードが並列実行区間内にある場合も、並列実行区間内のノードを実行中の場合と同様に、代替のプロセス定義の生成を行わない。すなわち、実行しているプロセス定義が継続実行され、使用不可のノードに対する運用操作のノードにおいて、操作が失敗する。
実行中のノードが並列実行区間内のノードではなく、次に実行するノードも並列実行区間内ではない場合、使用不可のサーバへの運用操作実行を回避できる可能性があるため、処理がステップS134に進められ、代替のプロセス定義が生成される。
[ステップS134]プロセス定義制御部132は、現在実行しているプロセス定義の実行の中止を、プロセス定義実行部133に指示する。指示を受けたプロセス定義実行部133は、現在の運用操作を実行中のノードより後のノードの運用操作の実行の指示を抑止する。
[ステップS135]プロセス定義制御部132は、代替のプロセス定義を生成する。代替のプロセス定義の生成処理の詳細は、図10に示した通りである。なお、生成される代替のプロセス定義では、生成元となったプロセス定義における状態(実行待ちか否か)の情報も引き継がれる。なお代替のプロセス定義の生成処理における除外候補ノードの設定(図10のステップS111)では、「実行中」および「実行済み」のノードについては、除外候補の対象外と判断され、「実行待ち」のノードから除外候補ノードが選択される。
[ステップS136]プロセス定義制御部132は、再実行用のプロセス定義を生成する。再実行用のプロセス定義の生成処理の詳細は、図12に示した通りである。
[ステップS137]プロセス定義制御部132は、代替のプロセス定義の実行待ちの最も実施順が早いノードからの実行を、プロセス定義実行部133に指示する。指示に応じて、プロセス定義実行部133により、代替のプロセス定義のうち、実行待ちの最も実施順が早いノードがからプロセス定義の実行が開始される。その後、プロセス定義実行処理が終了する。
[ステップS138]プロセス定義制御部132は、プロセス定義の実行が完了したか否かを判断する。プロセス定義の実行が完了した場合、プロセス定義実行処理が終了する。完了していなければ、処理がステップS132に進められる。
このようにして、プロセス定義の実行開始後にサーバの異常が検出された場合でも、代替のプロセス定義を生成することができる。すなわち、複数のサーバに対し運用操作を並列実行するプロセス定義を実行開始後に、利用不可なサーバが検知されると、そのサーバを操作するノードのうち、「実行待ち」のノードが除外候補ノードとされる。そして、除外候補ノードが並列実行区間内にあれば、その除外候補ノードを実行しない代替のプロセス定義が生成され、実行される。なお、除外候補ノードの除外が並列実行区間外の場合、実行中のノード終了後、プロセス定義の実行を中止される。
以下、プロセス定義実行中にサーバの異常が検知された場合の、代替のプロセス定義の生成例について説明する。
図15は、プロセス定義の一例を示す図である。図15に示すプロセス定義62は、図6に示すプロセス定義61内のノード61a〜61mと同様のノード62a〜62mを有しており、開始を示すノード62aと並列実行開始を示すノード62bとの間にノード62nが設けられている。ノード62nは、サーバ31〜33のデータのバックアップを実行する前に、管理者へ、バックアップの実行を通知する電子メールを送信する運用操作を示している。
このようなプロセス定義62の実行が開始され、ノード62nに対応する運用操作の実行中に、サーバ名「サーバC」のサーバ33に異常が発生したものとする。この場合、監視装置50の監視部51により異常が検知され、異常の発生が管理サーバ100に通知される。すると管理サーバ100の構成情報管理部131により、サーバ構成情報111が更新される。例えば図5に示したサーバ構成情報111と同様に、「サーバC」のavailable_flagが「FALSE」に変更される。
プロセス定義制御部132は、サーバ構成情報111を参照し、「サーバC」が利用不可になったことを認識する。そしてプロセス定義制御部132は、現在実行中のプロセス定義62に基づいて、代替のプロセス定義を生成する。
図16は、異常検知時に実行中のプロセス定義情報の一例を示す図である。プロセス定義情報121bは、例えばテーブル形式のデータ構造を有している。図16の例では、ノードID「1」のノードの状態は「実行済み」であり、ノードID「2」のノードの状態は「実行中」であり、ノードID「3」〜「14」の各ノードの状態は「実行待ち」である。
このような状態で、「サーバC」の異常が検知されると、まず、現在実行中のノードが並列実行区間内のノードではなく、次に実行するノードも並列実行区間内のノードではないことが確認される。図16の例では、実行中のノード(ノードID「2」)には、並列実行開始ノードIDと並列実行終了ノードIDとが設定されておらず、実行中のノードは並列実行区間内のノードではない。また実行中のノードの後方ノードIDリストには、ノードID「3」が設定されており、ノードID「3」のノードが次に実行するノードである。次に実行するノードにも、並列実行開始ノードIDと並列実行終了ノードIDとが設定されていない。従って、次に実行するノードも、並列実行区間内のノードではない。従って、代替のプロセス定義が生成される。
代替のプロセス定義の生成では、プロセス定義情報121bに示されるノードのうち、使用不可のサーバを対象サーバとするノード、およびそのノードと同じ並列実行区間内のノードが、除外候補ノードに設定される。除外候補ノードの状態が「実行待ち」であれば、その除外候補ノードが削除される。図16の例では、ノードID「10」〜「12」の各ノードが削除される。この際、各ノードの前方ノードIDリストおよび後方ノードIDリストから、削除したノードのノードIDが削除される。
このようにして、代替のプロセス定義が生成される。
図17は、代替のプロセス定義の一例を示す図である。代替のプロセス定義62−1では、図15に示したプロセス定義62から、ノード62i〜62kが削除されている。
図18は、代替のプロセス定義を示すプロセス定義情報の一例を示す図である。図18に示すように、代替のプロセス定義を示すプロセス定義情報121cでは、生成元のプロセス定義情報121bに設定されていた状態が引き継がれる。プロセス定義情報121cに基づいて代替のプロセス定義62−1を実行する際には、実行中のノードの状態が「実行済み」となった後、そのノードの次のノード(後方ノードIDリストに登録されたノード)から順に、運用操作が実行される。図18の例では、ノードID「2」のノードの状態が「実行済み」になると、ノードID「3」のノードの運用操作が行われる。以後、代替のプロセス定義62−1に示された順番で、実行待ちの各ノードの運用操作が実行される。
代替のプロセス定義62−1が生成された場合、再実行用のプロセス定義も生成される。
図19は、再実行用のプロセス定義の一例を示す図である。再実行用のプロセス定義62−2では、図15に示したプロセス定義62から、ノード62c〜62hが削除されている。
このようにして、プロセス定義の実行中であっても、サーバの異常が検知された場合、そのサーバを操作対象とするノードを含む並列実行区間を除外した代替のプロセス定義62−1が生成される。そして、代替のプロセス定義62−1を用いて運用操作を続行することができる。しかも代替のプロセス定義62−1において除外された並列実行区間については、異常が検知されたサーバが利用可能となった後に、再実行用のプロセス定義62−2を用いて、運用操作を実行することができる。
以上説明したように、第2の実施の形態によれば、複数のサーバに対し運用操作を並列実行する運用において、操作対象の一部のサーバが利用不可である際、利用不可サーバへの操作を避け、運用操作を行うことが可能となる。その結果、一部のサーバに異常があっても、複数のサーバを操作対処とするプロセス定義全体の実行を停止せずにすみ、運用操作の実行効率が向上する。しかも、異常時運用に備えて単体サーバ向けの多数のプロセス定義を準備することをせずにすみ、管理者の負担が減る。また、サーバ台数が増加しても、生成するプロセス定義の数を抑止できるため、利用するシステムの資源量が削減され、保守性が向上する。
さらに、運用操作の再実行時に、最低限のマシンへのみ運用操作を自動実行できることで、再実行時に占有するマシン数が減る。その結果、使用するマシンリソースが減り、運用操作を効率的に実行できる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1a〜1d サーバ
2 運用シナリオ
3 監視装置
4 利用可能情報
5 実行判断情報
10 運用管理装置
11 記憶部
11a 運用シナリオ実行情報
12 演算部

Claims (6)

  1. コンピュータに、
    複数のサーバに対する複数の運用操作の実行手順を示す運用シナリオと、前記複数の運用操作それぞれが並列実行するものか否かを示す並列実行情報とを含む運用シナリオ実行情報を取得し、
    前記複数のサーバそれぞれが利用可能か否かを示す利用可能情報を取得し、
    利用が不可能な利用不可サーバが存在することが前記利用可能情報に示されており、前記利用不可サーバを操作対象とする第1の運用操作が並列に実行するものであることが前記並列実行情報に示されているとき、前記運用シナリオ実行情報に基づいて、並列実行するものとされている運用操作のうちの前記第1の運用操作および前記第1の運用操作との間に実行順の先後関係を有する第2の運用操作を前記運用シナリオから除外した代替の運用シナリオを生成する
    処理を実行させる運用管理プログラム。
  2. 前記コンピュータに、さらに、
    代替の運用シナリオに従った運用操作を実行する、
    処理を実行させる請求項1記載の運用管理プログラム。
  3. 前記コンピュータに、さらに、
    並列実行するものとされている運用操作のうちの前記代替の運用シナリオに含まれる運用操作を前記運用シナリオから除外した再実行用の運用シナリオを生成する、
    処理を実行させる請求項1または2記載の運用管理プログラム。
  4. 前記代替の運用シナリオの生成では、前記運用シナリオに従った運用操作の実行が開始された後に前記利用可能情報が更新され、前記利用不可サーバが存在することを検知した場合、並列に実行する運用操作の実行が開始されていなければ、前記代替の運用シナリオを生成する、
    請求項1ないし3のいずれか1つに記載の運用管理プログラム。
  5. コンピュータが、
    複数のサーバに対する複数の運用操作の実行手順を示す運用シナリオと、前記複数の運用操作それぞれが並列実行するものか否かを示す並列実行情報とを含む運用シナリオ実行情報を取得し、
    前記複数のサーバそれぞれが利用可能か否かを示す利用可能情報を取得し、
    利用が不可能な利用不可サーバが存在することが前記利用可能情報に示されており、前記利用不可サーバを操作対象とする第1の運用操作が並列に実行するものであることが前記並列実行情報に示されているとき、前記運用シナリオ実行情報に基づいて、並列実行するものとされている運用操作のうちの前記第1の運用操作および前記第1の運用操作との間に実行順の先後関係を有する第2の運用操作を前記運用シナリオから除外した代替の運用シナリオを生成する
    運用管理方法。
  6. 複数のサーバに対する複数の運用操作の実行手順を示す運用シナリオと、前記複数の運用操作それぞれが並列実行するものか否かを示す並列実行情報とを含む運用シナリオ実行情報を記憶する記憶部と、
    前記複数のサーバそれぞれが利用可能か否かを示す利用可能情報を取得し、利用が不可能な利用不可サーバが存在することが前記利用可能情報に示されており、前記利用不可サーバを操作対象とする第1の運用操作が並列に実行するものであることが前記並列実行情報に示されているとき、前記運用シナリオ実行情報に基づいて、並列実行するものとされている運用操作のうちの前記第1の運用操作および前記第1の運用操作との間に実行順の先後関係を有する第2の運用操作を前記運用シナリオから除外した代替の運用シナリオを生成する演算部と、
    を有する運用管理装置。
JP2015080722A 2015-04-10 2015-04-10 運用管理プログラム、運用管理方法、および運用管理装置 Active JP6558037B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015080722A JP6558037B2 (ja) 2015-04-10 2015-04-10 運用管理プログラム、運用管理方法、および運用管理装置
US15/091,841 US10235210B2 (en) 2015-04-10 2016-04-06 Operation management method and operation management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015080722A JP6558037B2 (ja) 2015-04-10 2015-04-10 運用管理プログラム、運用管理方法、および運用管理装置

Publications (2)

Publication Number Publication Date
JP2016200981A JP2016200981A (ja) 2016-12-01
JP6558037B2 true JP6558037B2 (ja) 2019-08-14

Family

ID=57111789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015080722A Active JP6558037B2 (ja) 2015-04-10 2015-04-10 運用管理プログラム、運用管理方法、および運用管理装置

Country Status (2)

Country Link
US (1) US10235210B2 (ja)
JP (1) JP6558037B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534636B2 (en) * 2017-03-13 2020-01-14 Oracle Financial Services Software Limited Interface and runtime environment for process definition and process execution tracking
EP3613548A4 (en) * 2017-04-19 2021-05-19 Kabushiki Kaisha Yaskawa Denki PROGRAMMING ASSISTANT DEVICE, ROBOT SYSTEM, PROGRAMMING ASSISTANCE METHOD, AND PROGRAM GENERATION METHOD
JP6934754B2 (ja) * 2017-06-15 2021-09-15 株式会社日立製作所 分散処理システム、分散処理システムの管理方法、及び分散処理システム管理プログラム
JP7171458B2 (ja) * 2019-01-25 2022-11-15 エヌ・ティ・ティ・アドバンステクノロジ株式会社 シナリオ実行システム、管理装置、シナリオ実行管理方法及びプログラム
CN111915014B (zh) * 2019-05-10 2023-07-21 中科寒武纪科技股份有限公司 人工智能指令的处理方法及装置、板卡、主板和电子设备

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117431A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 複数コンピュータで実行する業務の障害回復システム
US8103713B2 (en) * 2001-10-09 2012-01-24 Jade Acquisition Corporation System and method for managing service interactions
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US7502747B1 (en) * 2001-11-29 2009-03-10 Microsoft Corporation Automated job scheduling based on resource availability
US20030131146A1 (en) * 2002-01-09 2003-07-10 International Business Machines Corporation Interactive monitoring and control of computer script commands in a network environment
US20030233374A1 (en) * 2002-03-14 2003-12-18 Ulrich Spinola Dynamic workflow process
US20050028073A1 (en) * 2003-07-28 2005-02-03 Henry Steven G. Method and system for automating workflows
JP2005332025A (ja) 2004-05-18 2005-12-02 Hitachi Ltd 中断シナリオの生成方法、サーバ装置及びそのプログラム
US7810099B2 (en) * 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
US8082169B2 (en) * 2004-06-18 2011-12-20 Canon Kabushiki Kaisha User interface for workflow builder
JP4538736B2 (ja) * 2005-03-30 2010-09-08 日本電気株式会社 ジョブ実行監視システム、ジョブ制御装置、ジョブ実行方法及びジョブ制御プログラム
US20060224428A1 (en) * 2005-03-31 2006-10-05 Patrick Schmidt Ad-hoc and priority-based business process execution
US7707451B2 (en) * 2005-06-28 2010-04-27 Alcatel-Lucent Usa Inc. Methods and devices for recovering from initialization failures
US7979858B2 (en) * 2006-10-03 2011-07-12 Sas Institute Inc. Systems and methods for executing a computer program that executes multiple processes in a multi-processor environment
US8225300B1 (en) * 2007-02-14 2012-07-17 The Mathworks, Inc. Client program executable on multiple heterogeneous server platforms
US8868441B2 (en) * 2007-12-28 2014-10-21 International Business Machines Corporation Non-disruptively changing a computing environment
US8763006B2 (en) * 2007-12-28 2014-06-24 International Business Machines Corporation Dynamic generation of processes in computing environments
US20090171708A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Using templates in a computing environment
US9558459B2 (en) * 2007-12-28 2017-01-31 International Business Machines Corporation Dynamic selection of actions in an information technology environment
US20090198548A1 (en) * 2008-02-05 2009-08-06 Mathias Kohler System to avoid policy-based deadlocks in workflow execution
JP5178293B2 (ja) * 2008-04-15 2013-04-10 キヤノン株式会社 ワークフロー実行装置、ワークフロー実行方法、及びコンピュータプログラム
US8156388B2 (en) * 2008-11-24 2012-04-10 Symbol Technologies, Inc. Analysis leading to automatic action
US8732714B2 (en) * 2008-12-08 2014-05-20 Kpit Technologies Limited Method for reorganizing tasks for optimization of resources
US9146784B2 (en) * 2009-08-03 2015-09-29 Oracle International Corporation Invocation of web services based on a policy file including processes of a workflow associated with user roles
US8898442B2 (en) * 2009-09-29 2014-11-25 Sap Se Scenario-based process modeling for business processes including exception flow to handle an error in a task of the series of tasks
JP5422342B2 (ja) * 2009-11-10 2014-02-19 株式会社日立製作所 インシデント管理方法および運用管理サーバ
US8504400B2 (en) * 2010-03-24 2013-08-06 International Business Machines Corporation Dynamically optimized distributed cloud computing-based business process management (BPM) system
JP5477194B2 (ja) 2010-06-25 2014-04-23 東京電力株式会社 通信ネットワークの統制管理システムとその方法
US20120079409A1 (en) * 2010-09-28 2012-03-29 Guiluan Luo Workflow management at a document processing device
JP2013008178A (ja) 2011-06-24 2013-01-10 Hitachi Systems Ltd インシデント管理システム及びインシデント管理方法
US9037921B1 (en) * 2012-03-29 2015-05-19 Amazon Technologies, Inc. Variable drive health determination and data placement
US8583467B1 (en) * 2012-08-23 2013-11-12 Fmr Llc Method and system for optimized scheduling of workflows
JP2014048673A (ja) * 2012-08-29 2014-03-17 Hitachi Ltd ワークフロー生成サーバ、及び方法
KR101516055B1 (ko) * 2012-11-30 2015-05-04 주식회사 엘지씨엔에스 맵리듀스 워크플로우 처리 장치와 방법 및 이를 저장한 기록 매체
JP6273903B2 (ja) * 2013-03-15 2018-02-07 株式会社リコー 情報処理システム、情報処理方法およびプログラム
US9805326B2 (en) * 2014-04-24 2017-10-31 International Business Machines Corporation Task management integrated design environment for complex data integration applications
US20170032000A1 (en) * 2015-07-28 2017-02-02 Bank Of America Corporation Database manager

Also Published As

Publication number Publication date
JP2016200981A (ja) 2016-12-01
US10235210B2 (en) 2019-03-19
US20160299789A1 (en) 2016-10-13

Similar Documents

Publication Publication Date Title
JP6558037B2 (ja) 運用管理プログラム、運用管理方法、および運用管理装置
JP6333410B2 (ja) 障害処理方法、関連装置、およびコンピュータ
US10068015B2 (en) Monitoring a monitoring-target process
US9495258B2 (en) Dynamic generation of disaster recovery plan which react to changes to an underlying topology
JP5325981B2 (ja) 管理サーバ及び管理システム
CN110399260B (zh) 用于预测性地服务和支持解决方案的系统和方法
US9612923B1 (en) High-availability data center
US10048978B2 (en) Apparatus and method for identifying a virtual machine having changeable settings
JP2014071668A (ja) 情報処理装置、起動プログラム、および起動方法
US7600148B1 (en) High-availability data center
US20110173233A1 (en) Database system and database control method
US10042670B2 (en) Providing automatic retry of transactions with diagnostics
US8583789B2 (en) Computer system management method and management apparatus
US20190303233A1 (en) Automatically Detecting Time-Of-Fault Bugs in Cloud Systems
US9411666B2 (en) Anticipatory protection of critical jobs in a computing system
US20190065168A1 (en) Apparatus and method to shorten software installation time based on a history of file installation
JPWO2011051999A1 (ja) 情報処理装置及び情報処理装置の制御方法
JP2014078067A (ja) データベースシステム、データベース装置、データベースの障害回復方法およびプログラム
US20220214910A1 (en) Information processing system, information processing apparatus, and information processing method
JP5734107B2 (ja) プロセス障害判定復旧装置、プロセス障害判定復旧方法、プロセス障害判定復旧プログラム、および記録媒体
JP2019032709A (ja) 分散システム
JP2011159234A (ja) 障害対応システム及び障害対応方法
JP2019133484A (ja) 情報処理装置、情報処理方法、情報処理プログラム、制御装置及びシステム
JP2009230522A (ja) システム監視装置およびプログラム
JP2013246611A (ja) バックアップボリュームの回復処理システム、回復処理方法及び回復処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190131

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: 20190618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190701

R150 Certificate of patent or registration of utility model

Ref document number: 6558037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150