JPWO2014033882A1 - 稼働管理装置、稼働管理方法、及び稼働管理プログラム - Google Patents

稼働管理装置、稼働管理方法、及び稼働管理プログラム Download PDF

Info

Publication number
JPWO2014033882A1
JPWO2014033882A1 JP2014532654A JP2014532654A JPWO2014033882A1 JP WO2014033882 A1 JPWO2014033882 A1 JP WO2014033882A1 JP 2014532654 A JP2014532654 A JP 2014532654A JP 2014532654 A JP2014532654 A JP 2014532654A JP WO2014033882 A1 JPWO2014033882 A1 JP WO2014033882A1
Authority
JP
Japan
Prior art keywords
nodes
computer
information
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.)
Granted
Application number
JP2014532654A
Other languages
English (en)
Other versions
JP5930048B2 (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
Application granted granted Critical
Publication of JP5930048B2 publication Critical patent/JP5930048B2/ja
Publication of JPWO2014033882A1 publication Critical patent/JPWO2014033882A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

1つの側面では、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減する。仮想サーバ間の通信を監視し(130〜142)、依存関係を有する複数の仮想サーバを含む仮想サーバのグループを生成し(144)、かつ仮想サーバが稼働する物理サーバ上の位置から分散または集中を示す仮想サーバの運用ルールを決定し(146〜152)、自動的に新規作成された仮想サーバを、グループに追加し、かつ、決定されている運用ルールに従って、新規作成された仮想サーバの最適な移動先を決定し、かつ移動を実施する。

Description

稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体に関する。
1または複数のコンピュータを使用して業務処理を行う情報処理システムが知られている。複数のコンピュータを使用して業務処理を行う場合、コンピュータ間に依存関係が存在することがある。複数のコンピュータが有する依存関係の一例に、第1コンピュータで業務処理を行うために、第2コンピュータの実行結果を利用するという関係がある。複数のコンピュータを使用して業務処理を行う情報処理システムでは、停電などの緊急時の対策、コンピュータの実行処理による負荷分散、及び業務処理に対応するコンピュータの処理能力などを考慮して、複数のコンピュータの各々の配置が予め決定される。
また、最近では、物理的なコンピュータの利用効率の向上などを目的として、1台の物理的なコンピュータ上に、複数の仮想的なコンピュータを構築する仮想化技術が実現されている。仮想化技術により構築された仮想的なコンピュータは、他の物理的なコンピュータを移動が可能である。近年、仮想的なコンピュータを含んだ複数のコンピュータを使用して業務処理を行う情報処理システムが実現されている。
情報処理システムでは、業務処理を円滑に遂行するために、物理的なコンピュータ及び仮想的なコンピュータを管理する必要がある。情報処理システムにおける複数の物理的なコンピュータや仮想的なコンピュータを管理するために、依存関係を有する複数の物理的なコンピュータや仮想的なコンピュータをグループとして扱う場合がある。グループ、すなわち依存関係が存在する複数の物理的なコンピュータや仮想的なコンピュータを管理する場合、ユーザは、停電対処、負荷分散、及び処理能力などを考慮する。また、ユーザは、考慮した停電対処、負荷分散、及び処理能力などを基に手動操作により仮想的なコンピュータをどの物理的なコンピュータで稼働させるのかを示す稼働位置を定めて管理する。例えば、複数の仮想的なコンピュータによる業務処理では、複数の仮想的なコンピュータを1つの物理的なコンピュータ上で稼働させることが好ましい場合や別々の物理的なコンピュータに分散させて稼働させることが好ましい場合がある。そこで、グループに含まれる仮想的なコンピュータの稼働位置を管理する必要が生じる場合がある。
複数のコンピュータを管理する技術の一例として、複数の仮想的なコンピュータの間で相互通信する仮想的なコンピュータ間の通信を管理する技術が知られている。コンピュータの間の通信を管理する技術では、予めユーザにより相互通信の可否の設定を示すポリシによってグループ間の通信の許可を管理する。また、複数の仮想的なコンピュータを含むグループはユーザの手動操作によって定義されたり、変更される。
また、管理装置により複数の仮想的なコンピュータをグループ化する技術が知られている。複数の仮想的なコンピュータをグループ化する技術では、複数の仮想的なコンピュータから得られる仮想的なコンピュータにより行われる業務処理を示す情報等によってグループ化する。
また、或る物理的なコンピュータ上で稼働する仮想的なコンピュータを、移動させる技術の一例は、仮想的なコンピュータが稼働する物理的なコンピュータのハードウェア資源による制約や処理負荷などの稼働状況に応じて、仮想的なコンピュータを再配置する。
また、仮想的なコンピュータを再配置するときに、複数の仮想的なコンピュータを含むことを示す予め定めたグループの情報を維持して仮想的なコンピュータを再配置する技術も知られている。グループの情報を維持して仮想的なコンピュータを再配置する技術の一例では、複数の仮想的なコンピュータを、異なる物理的なコンピュータに配置すべきか、同一の物理的なコンピュータに配置すべきかを示すユーザにより予め定められたグループの情報を得る。そして、グループの情報を維持するように仮想的なコンピュータを再配置する。
特表2009−532944号公報 特開2011−186775号公報 特表2008−517382号公報 特開2009−199395号公報
ところで、依存関係を有する仮想的なコンピュータを含んだ複数のコンピュータを使用して業務処理を行う情報処理システムを構築するとき、ユーザは、複数の仮想的なコンピュータの稼働位置を意図的に決定する場合がある。例えば、複数の仮想的なコンピュータを1つの物理的なコンピュータ上で稼働させる業務処理を意図した場合や、複数の仮想的なコンピュータを別々の物理的なコンピュータに分散させて稼働させる業務処理を意図した場合である。
しかしながら、複数の仮想的なコンピュータを示すグループの情報や、仮想的なコンピュータの稼働位置を示す情報は、ユーザの手動操作により定義されたり、変更される。従って、新規に仮想的なコンピュータが追加されたり自動的に再配置される場合、ユーザの手動操作による設定変更が完了するまでユーザが意図した位置で仮想的なコンピュータを稼働することができない場合がある。
1つの側面では、本発明は、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減することを目的とする。
開示の技術は、例えばコンピュータシステムに含まれる複数のコンピュータのうちの何れかのコンピュータ上で稼働し、複数のコンピュータの間で移動可能な複数のノードについて、グループ情報を求める。グループ情報は、依存関係を有して稼働する複数のノードを示す。グループ情報及びグループ情報により示されるノードの各々が稼働するコンピュータの現在位置を示す位置情報に基づいて、グループ情報により示される複数のノードがどのようにコンピュータで稼働するかを示す稼働情報が決定される。
1つの実施態様では、依存関係を有する複数のコンピュータの稼働管理に関してユーザの手動操作を軽減することができる。
本実施形態に係る稼働管理システムの構成を示すブロック図である。 本実施形態に係るコンピュータシステムの構成を示すブロック図である。 コンピュータシステムの動作に関する構成を示すイメージ図である。 物理サーバ管理テーブルの一例を示すイメージ図である。 仮想サーバ管理テーブルの一例を示すイメージ図である。 仮想サーバ通信履歴テーブルの一例を示すイメージ図である。 運用ルール管理テーブルの一例を示すイメージ図である。 構成グループテーブルの一例を示すイメージ図である。 類似性グループテーブルの一例を示すイメージ図である。 サーバ間通信回数テーブルの一例を示すイメージ図である。 サーバ間距離テーブルの一例を示すイメージ図である。 依存関係を有する複数のコンピュータの一例を示すイメージ図である。 状態監視プロセスの流れを示すフローチャートである。 運用ルール構築プロセスの流れを示すフローチャートである。 運用ルール構築プロセスで導出した構成グループテーブルの一例を示すイメージ図である。 運用ルール構築プロセスで決定した構成グループテーブルの一例を示すイメージ図である。 自動的に追加される仮想サーバの一例を示すイメージ図である。 仮想サーバ移動プロセスの流れを示すフローチャートである。 新規仮想サーバ追加のサーバ間通信回数テーブルを示すイメージ図である。 新規仮想サーバ追加のサーバ間距離テーブルを示すイメージ図である。 グループ情報を導出した構成グループテーブルの一例を示すイメージ図である。 追加した仮想サーバを含む類似性グループテーブルを示すイメージ図である。 追加した仮想サーバを含む構成グループテーブルを示すイメージ図である。 構成グループテーブルに対応する類似性グループテーブルを示すイメージ図である。 仮想サーバ移動プロセスに含まれる仮想サーバ移動処理の流れを示すフローチャートである。 仮想サーバ移動プロセスで仮想サーバが移動された後の構成を示すイメージ図である。 依存関係を有する物理サーバ及び仮想サーバの関係の一例を示すイメージ図である。 新規の業務処理のために、集中構成による仮想サーバを、物理サーバ上に新規に構築するときの説明図である。 新規の業務処理のために、分散構成による仮想サーバを、物理サーバ上に新規に構築するときの説明図である。 緊急状態のときにおける仮想サーバ移動プロセスの流れを示すフローチャートである。 集中構成の運用ルールで仮想サーバが移動された後の構成を示すイメージ図である。
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
図1に、本実施形態に係る稼働管理システム10の構成を示す。稼働管理システム10は、LAN等によるネットワーク30に、稼働管理装置12と、稼働管理装置12が管理する複数台の物理的な実コンピュータと、が各々接続されている。図1には、複数台の物理的な実コンピュータの一例として、コンピュータ32,36,40を示す。なお、ネットワーク30はインターネット等の通信ネットワークを含むことができる。
稼働管理装置12は、管理下のコンピュータ32,36,40について稼働を管理するためのものである。詳細は後述するが、稼働管理装置12は例えばコンピュータで実現される。稼働管理装置12は、状態監視部14,運用ルール構築部16、ノード移動部24,データ管理部26及び記憶部28を備えている。運用ルール構築部16は、導出部18、決定部20及び追加部22を含んでいる。また、記憶部28には、テーブル29の情報が格納されている。
コンピュータ32は、ノード33,34,35を含んでいる。ノード33〜35の一例には、1台のコンピュータで複数のシステムを構築可能とする処理として一般的に知られた仮想化によって得られる仮想サーバがある。また、コンピュータ36は、ノード37,38,39を含んでいる。また、コンピュータ40は、ノード41,42,43を含んでいる。
なお、図1では、稼働管理装置12が管理する複数台のコンピュータ(複数台の物理的な実コンピュータ)として、3台のコンピュータ32,36,40を一例として示したが、3台に限定されるものではなく、2台以上であれば何台あってもよい。
また、コンピュータ32等に含まれるノード33等は、開示技術のノードの一例であり、一般的に知られた仮想化によって得られる仮想サーバを適用することができる。また、コンピュータ32等に含まれるノード33等は、詳細を後述するように、稼働中にノードを追加することが可能であればよい。すわなち、稼働管理システム10の構築当初は、ノードつまり仮想サーバを含まない物理的な実コンピュータを含める場合がある。
図2に、本実施形態に係る稼働管理装置12を含み、かつコンピュータにより実現される管理装置46を備えたコンピュータシステム44の一例を示す。
稼働管理装置12は、例えば図2に示す管理装置46により実現することができる。管理装置46は、コンピュータにより実現することができる。詳細には、管理装置46はCPU48、メモリ50、不揮発性の格納部52を備えている。CPU48、メモリ50、及び格納部52はバス80を介して互いに接続されている。格納部52はHDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、管理装置46はネットワーク30に接続するためのインタフェース(I/O)74を備え、I/O74はバス80に接続されている。また、管理装置46は、出力デバイスの一例の表示装置であるディスプレイ75、入力デバイスの一例の入力装置であるキーボード76とマウス77を備えている。ディスプレイ75、キーボード76及びマウス77はバス80に接続されている。また、管理装置46は、光ディスク等の記録媒体79が挿入され、挿入された記録媒体79に対して読み書きするための装置(R/W)78を備え、装置(R/W)78はバス80に接続されている。なお、ディスプレイ75、キーボード76、マウス77、装置(R/W)78は、省略してもよく、必要に応じてバス80に接続するようにしてもよい。
格納部52には、管理装置46で、複数のコンピュータの稼働を管理する処理を実行させるための管理プログラム54が記憶されている。CPU48は、管理プログラム54を格納部52から読み出してメモリ50に展開し、管理プログラム54に含まれるプロセスを順次実行する。つまり、稼働管理装置12が管理装置46で実現され、CPU48が管理プログラム54を実行することで、管理装置46は稼働管理装置12として動作される。
なお、管理プログラム54は、開示の技術における稼働管理プログラムの一例である。また、管理プログラム54は、管理装置46を稼働管理装置12として機能させるためのプログラムでもある。
管理プログラム54は、状態監視プロセス56、運用ルール構築プロセス58、仮想サーバ移動プロセス60及びデータ管理プロセス62を含んでいる。CPU48は、状態監視プロセス56を実行することで、図1の稼働管理装置12における状態監視部14として動作する。すなわち、稼働管理装置12が管理装置46で実現され、状態監視プロセス56を実行することで管理装置46は稼働管理装置12の状態監視部14として動作される。また、CPU48は、運用ルール構築プロセス58を実行することで、図1の稼働管理装置12における運用ルール構築部16として動作する。すなわち、稼働管理装置12が管理装置46で実現され、運用ルール構築プロセス58を実行することで管理装置46は稼働管理装置12の運用ルール構築部16として動作される。
CPU48は、仮想サーバ移動プロセス60を実行することで、図1の稼働管理装置12におけるノード移動部24として動作する。すなわち、稼働管理装置12がコンピュータによる管理装置46で実現され、仮想サーバ移動プロセス60を実行することで管理装置46は稼働管理装置12のノード移動部24として動作される。また、CPU48は、データ管理プロセス62を実行することで、図1の稼働管理装置12におけるデータ管理部26として動作する。すなわち、稼働管理装置12が管理装置46で実現され、データ管理プロセス62を実行することで管理装置46は稼働管理装置12のデータ管理部26として動作される。
詳細は各々後述するが、管理プログラム54に含まれる状態監視プロセス56は、コンピュータシステム44において管理装置46が管理する複数のコンピュータの各々の状態を監視するプログラムである。なお、状態監視プロセス56は、複数のコンピュータの各々に含まれるノード(例えば仮想サーバ)の各々の状態を監視するプログラムでもある。運用ルール構築プロセス58は、コンピュータシステム44におけるコンピュータの運用ルールを構築するプログラムである。また、仮想サーバ移動プロセス60は、コンピュータに含まれるノード(例えば仮想サーバ)の移動を制御するプログラムである。データ管理プログラム82は、コンピュータシステム44におけるコンピュータを管理する上で管理装置46が使用する各種のデータを管理するプログラムである。また、データ管理プログラム82は、コンピュータシステム44で稼働するモデルを管理するプログラムを含む。
コンピュータシステム44のネットワーク30には、コンピュータ32,36,40が接続されている。コンピュータ32,36,40は、管理装置46により管理される。すなわち、コンピュータ32,36,40の各々に含まれる、詳細を後述する物理的な実コンピュータで機能する物理サーバ及び該物理サーバ上に構築される仮想的なコンピュータである仮想サーバは、管理装置46により管理される。
コンピュータ32は、CPU83、メモリ84、及び不揮発性の格納部85を備えている。CPU83、メモリ84、及び格納部85は、バス89を介して互いに接続されている。格納部85はHDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、コンピュータ32はネットワーク30に接続するためのインタフェース(I/O)89Aを備え、I/O89Aはバス89に接続されている。また、コンピュータ32は、ディスプレイ89B、キーボード89C及びマウス89Dを備えている。ディスプレイ89B、キーボード89C及びマウス89Dはバス89に接続されている。また、コンピュータ32は、記録媒体79が挿入され、挿入された記録媒体79に対して読み書きするための装置(R/W)89Eを備えており、装置(R/W)89Eはバス89に接続されている。なお、ディスプレイ89B、キーボード89C、マウス89D、及び装置(R/W)89Eは、省略してもよく、必要に応じてバス89に接続するようにしてもよい。
コンピュータ32の格納部85には、コンピュータ32を物理サーバとして機能させるための機能部分を含んだOS(Operating System)86、及びコンピュータ32において仮想サーバを構築し稼働させるための仮想化プログラム87が記憶されている。また、コンピュータ32の格納部85には、コンピュータ32における物理サーバと仮想サーバの各々の装置構成や通信管理を実行させるためのエージェントプログラム88が記憶されている。
ところで、1台のコンピュータに所謂サーバ機能を有するOSを搭載することで物理サーバが得られることが知られている。物理サーバは、メールサーバ等のように1つのアプリケーションプログラムを実行する1つのシステムを構築することが多い。近年、物理サーバの利用効率の向上などを目的として、1台の物理サーバで、複数の仮想的なシステムを構築する仮想化システムの技術が実現されている。例えば、1台の物理サーバ上に、複数台の仮想サーバを構築することが可能である。なお、仮想化システムの技術では、或る物理サーバ上に構築された仮想サーバを、他の物理サーバ上へ移動することが可能である。
つまり、CPU83は、OS86を格納部85から読み出してメモリ84に展開して実行することで、コンピュータ32が物理サーバとして動作される。また、CPU83は、仮想化プログラム87を格納部85から読み出してメモリ84に展開して実行することで、物理サーバ上で仮想サーバが稼働される。すなわち、コンピュータ32が物理サーバとして機能されるとき、コンピュータ32に仮想サーバを構築することができる。詳細には、CPU83がOS86を格納部85から読み出してメモリ84に展開して実行することで、コンピュータ32は物理サーバとして動作される。また、CPU83が仮想化プログラム87を格納部85から読み出してメモリ84に展開して実行することで、コンピュータ32は仮想サーバとして動作される。従って、仮想サーバは、物理サーバ内に仮想的に作成されたコンピュータである。また、エージェントプログラム88を格納部85から読み出してメモリ84に展開して実行することで、物理サーバ及び物理サーバ上で稼働される仮想サーバの各々の通信管理等が実行される。
なお、コンピュータ36とコンピュータ40の構成は、コンピュータ32と略同一のため、詳細な説明を省略する。
図3に、コンピュータシステム44において、管理装置46で管理プログラム54が実行され、かつコンピュータ32でOS86、仮想化プログラム87及びエージェントプログラム88が実行されるときの動作に関する構成を示す。
コンピュータシステム44は、管理装置46で管理プログラム54が実行されることで、稼働管理装置12(図1)における状態監視部14、運用ルール構築部16,ノード移動部24,データ管理部26として管理装置46が動作する。また、コンピュータ32において、OS86が実行されることで、コンピュータ32は物理サーバとして動作される。また、コンピュータ32において、仮想化プログラム87が実行されることで、コンピュータ32は仮想サーバとして動作される。図3では、物理サーバとして動作されるコンピュータを物理サーバBVと表記した。また、仮想サーバの機能部分を仮想サーバSVと表記した。また、コンピュータ32において、エージェントプログラム88が実行されることで、コンピュータ32はエージェント機能部として動作される。図3では、エージェント機能部をエージェントEJと表記した。図3では、コンピュータ32が、物理サーバとして動作し、物理サーバに3つの仮想サーバが含まれる場合の一例を示している。
なお、以下の説明では、複数の物理サーバBVのうち、個別の物理サーバを対象とする場合は、A〜Cの符号を付し、物理サーバBV同士を区別して扱う。また、複数の仮想サーバSVのうち、個別の仮想サーバSVを対象とする場合は、仮想サーバSVに記号を付し、仮想サーバSV同士を区別して扱う。
図2に示すように、管理装置46の格納部52には、仮想サーバ管理テーブル66、物理サーバ管理テーブル68、仮想サーバ通信履歴テーブル70、及び運用ルール管理テーブル72を含むデータベース64が記憶されている。管理装置46の格納部52に記憶されたデータベース64は図1の稼働管理装置12の記憶部28に対応する。また、仮想サーバ管理テーブル66、物理サーバ管理テーブル68、仮想サーバ通信履歴テーブル70、及び運用ルール管理テーブル72は、図1の稼働管理装置12の記憶部28に含まれるテーブル29の一例に対応する。
図4に、データベース64に格納される物理サーバ管理テーブル68の一例を示す。物理サーバ管理テーブル68は、コンピュータシステム44に含まれるコンピュータが物理サーバBVとして機能されるときに物理サーバBVのCPUやメモリを管理するための情報が登録される。
詳細には、物理サーバ管理テーブル68は、「物理サーバID」、「物理サーバ名」、「IPアドレス」、「プロセッサ使用可能量」、及び「メモリ使用可能量」の各情報が対応付けて登録される。「物理サーバID」の情報には、コンピュータシステム44に含まれるコンピュータが物理サーバBVとして機能されるときに物理サーバBVを識別するための情報が登録される。また、「物理サーバ名」の情報には、物理サーバBVの呼称を示す情報が登録される。また、「IPアドレス」の情報には、物理サーバBVのネットワーク上の位置を示す情報が登録される。「プロセッサ使用可能量」の情報には、CPUの処理量等で示される、物理サーバBVが使用可能なプロセッサ使用量を示す情報が登録される。「メモリ使用可能量」の情報には、物理サーバBVが使用可能なメモリ使用量を示す情報が登録される。
図5に、データベース64に格納される仮想サーバ管理テーブル66の一例を示す。仮想サーバ管理テーブル66には、物理サーバBV上に構築される仮想サーバSVのCPUやメモリを管理するための情報が登録される。
例えば、仮想サーバ管理テーブル66には、「仮想サーバID」、「仮想サーバ名」、「IPアドレス」、「プロセッサ使用可能量」、「メモリ使用可能量」及び「位置」の各情報が対応付けて登録される。「仮想サーバID」の情報には、物理サーバBV上に構築された仮想サーバSVを識別するための情報が登録される。また、「仮想サーバ名」の情報には、仮想サーバSVの呼称を示す情報が登録される。また、「IPアドレス」の情報には、仮想サーバSVのネットワーク上の位置を示す情報が登録される。「プロセッサ使用可能量」の情報には、CPUの処理量等で示される、仮想サーバSVが使用可能なプロセッサ使用量を示す情報が登録される。「メモリ使用可能量」の情報には、仮想サーバSVが使用可能なメモリ使用量を示す情報が登録される。「位置」の情報には、仮想サーバSVが稼働する物理サーバBVの位置を示す情報が登録される。図5では、物理サーバBVの位置を示す情報の一例として、ネットワーク上で一意の物理サーバBVの名称を用いた場合を示す。なお、物理サーバBVの位置を示す情報は、IPアドレス等でもよい。
図6に、データベース64に格納される仮想サーバ通信履歴テーブル70の一例を示す。仮想サーバ通信履歴テーブル70には、仮想サーバSV間で通信されるパケット等の情報を管理するための情報が登録される。
例えば、仮想サーバ通信履歴テーブル70には、「時刻」、「送信元IP」、「ポート番号」、「受信先IP」、「ポート番号」、及び「通信量」の各情報が対応付けて登録される。「時刻」の情報には、仮想サーバSV間で通信されたときの時刻を示す情報が登録される。また、「送信元IP」の情報には、送信側の仮想サーバSVのネットワーク上の位置を示す情報が登録される。「送信元IP」に続く「ポート番号」の情報には、送信側の仮想サーバSVが通信に使用したポート番号を示す情報が登録される。「受信先IP」の情報には、受信側の仮想サーバSVのネットワーク上の位置を示す情報が登録される。「受信先IP」に続く「ポート番号」の情報には、受信側の仮想サーバSVが通信に使用したポート番号を示す情報が登録される。「通信量」の情報には、仮想サーバSV間の通信で使用する情報量を示す情報が登録される。
図7に、データベース64に格納される運用ルール管理テーブル72の一例を示す。運用ルール管理テーブル72には、コンピュータシステム44において複数の仮想サーバSVの関係を管理するための情報が登録される。運用ルール管理テーブル72は、構成グループテーブルTB1、類似性グループテーブルTB2,サーバ間通信回数テーブルTB3,及びサーバ間距離テーブルTB4を含んでいる。図8〜図11に、運用ルール管理テーブル72に含まれる構成グループテーブルTB1、類似性グループテーブルTB2,サーバ間通信回数テーブルTB3,及びサーバ間距離テーブルTB4の一例を示す。
図8に、構成グループテーブルTB1の一例を示す。構成グループテーブルTB1には、コンピュータシステム44において依存関係を有して稼働する複数の仮想サーバSV及び稼働している物理サーバBVに関係する情報が登録される。
例えば、構成グループテーブルTB1には、「構成グループ」、「類似性グループ」、「所属仮想サーバ」、「位置」、及び「運用構成」の各情報が対応付けて登録される。「構成グループ」の情報には、依存関係を有して稼働する複数の仮想サーバSVを大分類のグループとし、該大分類のグループを識別するための情報が登録される。また、「類似性グループ」の情報には、大分類のグループの中で、類似性が高い仮想サーバSVの種類等で分類される中分類のグループを識別するための情報が登録される。なお、類似性については後述する。「所属仮想サーバ」の情報には、大分類のグループに所属する仮想サーバSVを小分類とし、該仮想サーバSVを示す情報が登録される。仮想サーバSVを示す情報の一例には、仮想サーバSVを識別するための仮想サーバSVの名称等を示す情報がある。「位置」の情報には、仮想サーバSVが稼働する物理サーバBVを示す情報が登録される。物理サーバBVを示す情報の一例には、物理サーバBVを識別するための物理サーバBVの名称等を示す情報がある。
構成グループテーブルTB1に示す「運用構成」の情報には、大分類のグループに所属する複数の仮想サーバSVのコンピュータシステム44上の配置を示す情報が登録される。すなわち、「運用構成」の情報は、コンピュータシステム44において稼働する物理サーバBVに対し、複数の仮想サーバSVが稼働する配置構成を示す。具体的には、「運用構成」の情報に、「集中構成」または「分散構成」を示す情報が登録される。「集中構成」を示す情報は、依存関係を有して稼働する大分類のグループに所属する仮想サーバSVが、コンピュータシステム44において1つの物理サーバBV上で稼働することを示す。「分散構成」を示す情報は、大分類のグループに所属する仮想サーバSVが、コンピュータシステム44において異なる物理サーバBVで別々に稼働することを示す。
図9に、類似性グループテーブルTB2の一例を示す。類似性グループテーブルTB2には、仮想サーバSVの各々について該当する類似性グループを示す情報が登録される。
例えば、類似性グループテーブルTB2には、「仮想サーバ」、「IPアドレス」、「類似性グループ」、及び「現状位置」の各情報が対応付けて登録される。「仮想サーバ」の情報には、仮想サーバSVを識別するために対象の仮想サーバSVの名称等を示す情報が登録される。「IPアドレス」の情報には、対象の仮想サーバSVのネットワーク上の位置を示す情報が登録される。「類似性グループ」の情報には、対象の仮想サーバSVが分類される類似性を有するグループを識別するための情報が登録される。「現状位置」の情報には、対象の仮想サーバSVが稼働する物理サーバBVを示す情報が登録される。物理サーバBVを示す情報の一例には、物理サーバBVを識別するための物理サーバBVの名称等を示す情報がある。
図10に、サーバ間通信回数テーブルTB3の一例を示す。サーバ間通信回数テーブルTB3には、コンピュータシステム44における仮想サーバSV間で通信される通信回数を示す情報が登録される。
例えば、サーバ間通信回数テーブルTB3に、縦軸を送信側、横軸を受信側として、コンピュータシステム44における複数の仮想サーバSVを配列したマトリクス表を採用する。マトリクス表によるサーバ間通信回数テーブルTB3には、仮想サーバSV間で該当する組み合わせの仮想サーバSV間の通信回数の情報が登録される。図10では、6台の仮想サーバSVの各々を区別するために、仮想SV1〜仮想SV6と表記している。
なお、図10では、仮想サーバSV以外の「外部1」、「外部2」の例が示されている。「外部1」とは、コンピュータシステム44の外部サーバから仮想サーバSVに対して通信がなされるときを示している。つまり、或る仮想サーバSVと外部サーバとの間で通信がなされる場合を示す。サーバ間通信回数テーブルTB3を仮想サーバSV同士の通信に限定すると、外部サーバとの間で通信を実行する仮想サーバSVと、実行しない仮想サーバSVとを同種または類似性が高い仮想サーバSVと判別する場合がある。例えば、詳細を後述する仮想サーバ間距離が短く類似性が高いと判別される場合がある。そこで、外部サーバとの間で通信を実行する仮想サーバSVと、実行しない仮想サーバSVとを同種または類似性が高い仮想サーバSVと判別することを避けるために、外部サーバから仮想サーバSVに対する通信が考慮される。
図11に、サーバ間距離テーブルTB4の一例を示す。サーバ間距離テーブルTB4には、コンピュータシステム44における複数の仮想サーバSV間の距離関係を示す情報が登録される。
例えば、サーバ間距離テーブルTB4に、縦軸と横軸にコンピュータシステム44における複数の仮想サーバSVを配列したマトリクス表を採用する。マトリクス表によるサーバ間距離テーブルTB4には、仮想サーバSV間で該当する組み合わせの仮想サーバSV間の距離を示す情報が登録される。
仮想サーバSV間の距離を求める一例を説明する。本実施形態では、仮想サーバSV間の距離の一例として、ユークリッド距離を求める。具体的には、各仮想サーバSVへの通信回数をベクトル値にして仮想サーバSV間のスカラー量を求める。求めた仮想サーバSV間のスカラー量を仮想サーバSV間の距離を示す情報とする。
すなわち、ユークリッド距離はn次元のベクトルf、gに対して次式で定義されるスカラー量である。
n次元のベクトルf、gに対して、nを仮想サーバの総数、fを一方の仮想サーバ、gを他方の仮想サーバに対応させる。変数iを、1〜nまでインクリメントしたときの上式の結果を、仮想サーバ間の距離を示す情報として登録する。
次に本実施形態の作用を説明する。
本実施形態では、コンピュータ間で依存関係を有する複数のコンピュータ(仮想サーバSV)を使用して業務処理を行う場合に、業務処理の処理負荷が増大した等の理由により、仮想サーバSVを追加(所謂スケールアウト)するときの一例を説明する。
なお、本実施形態では、依存性を有する複数コンピュータの一例として、3階層システム(3-tier system)が稼働される場合について説明する。3階層システムの一例は、クライアントサーバシステムを「プレゼンテーション層」「アプリケーション層」「データ層」の3層に分割して構築したシステムである。具体的には、「プレゼンテーション層」を担当するウェブサーバ(WEB_SERVER)、「アプリケーション層」を担当するアプリケーションサーバ(AP_SERVER)、及び「データ層」を担当するデータベースサーバ(DB_SERVER)が知られている。
また、依存関係を有して稼働する複数のコンピュータの他の例には、サーバクライアントシステム(server-client system)が知られている。サーバクライアントシステムは、特定の役割を担当するコンピュータ(サーバ)と、ユーザの操作するコンピュータ(クライアント)に役割を分担し、相互にネットワークで接続されるシステムである。また、依存関係を有して稼働する複数のコンピュータのその他例には、ピアツーピアシステム(Peer to Peer system)が知られている。ピアツーピアシステムは、役割を固定化しないで、ネットワークに参加するコンピュータ同士が情報を授受し、サーバまたはクライアントの双方の機能を有するものである。
図12に、依存関係を有する複数のコンピュータの一例として、管理装置46により管理されるコンピュータシステム44におけるコンピュータ32,36,40において機能される複数の物理サーバBV及び複数の仮想サーバSVの関係を示す。コンピュータ32は、物理サーバAとして機能され、かつ4つの仮想サーバSV1,SV4,SV5,SV6が構築された場合を示す。また、コンピュータ36は、物理サーバBとして機能され、かつ1つの仮想サーバSV2が構築されており、コンピュータ40は、物理サーバCとして機能され、かつ1つの仮想サーバSV3が構築された場合を示す。なお、図12では、エージェントEJ(図3)の記載を省略している。
ユーザは、依存関係を有する複数のコンピュータを使用して業務処理を行う仮想サーバSVを最初に構築するとき、複数の仮想サーバSVが稼働する物理サーバBVの位置を意図的に定める。例えば、全ての仮想サーバSVを単一の物理サーバBVに集中させて稼働させる業務処理を意図した場合や、複数の仮想サーバSVを別々の物理サーバBVに分散させて稼働させる業務処理を意図した場合である。
一例として、図12に、複数の仮想サーバSVを別々の物理サーバBVに分散させて稼働させる業務処理をユーザが意図し、意図に沿って仮想サーバSVの稼働位置を定めた場合を示す。具体的には、仮想サーバSV1、SV2、SV3の各々の稼働位置が物理サーバA,B,Cの各々に分散されている。仮想サーバSV1はウェブサーバとして機能し、仮想サーバSV2はアプリケーションサーバとして機能し、仮想サーバSV3はデータベースサーバとして機能する。図12では、ウェブサーバとして機能する仮想サーバSV1を「(WEB)」と表記し、アプリケーションサーバとして機能する仮想サーバSV2を「(APP)」と表記し、データベースサーバとして機能する仮想サーバSV3を「(DB)」と表記している。
また、図12の他の例では、全ての仮想サーバSVを単一の物理サーバBVに集中させて稼働させる業務処理をユーザが意図し、意図に沿って仮想サーバSVの稼働位置を定めた場合を示す。具体的には、仮想サーバSV4〜SV6の全ての稼働位置が物理サーバAのみに定められている。仮想サーバSV4はウェブサーバとして機能し、仮想サーバSV5はアプリケーションサーバとして機能し、仮想サーバSV6はデータベースサーバとして機能する。
まず、管理装置46に電源が投入されると、管理装置46では管理プログラム54による処理が実行される。つまり、管理装置46のCPU48は、管理プログラム54を格納部52から読み出してメモリ50に展開して実行することで、管理プログラム54に含まれるプロセスの処理を実行する。
次に、管理プログラム54に含まれるデータ管理プロセス62によるデータ管理処理について説明する。管理装置46のCPU48は、管理プログラム54を格納部52から読み出してメモリ50に展開して実行することで、データ管理処理を実行する。データ管理処理の一例は、データベース64に登録されたテーブルの管理処理である。すなわち、データ管理処理は、仮想サーバ管理テーブル66,物理サーバ管理テーブル68,仮想サーバ通信履歴テーブル70,運用ルール管理テーブル72の各テーブルの情報を参照したり更新する。
なお、以下の説明では、管理装置46のCPU48により、データベース64に登録された仮想サーバ管理テーブル66〜運用ルール管理テーブル72の各テーブルの参照は、データ管理プロセス62によるデータ管理部26(図1)が実行するものとする。また、管理装置46のCPU48により、仮想サーバ管理テーブル66〜運用ルール管理テーブル72の各テーブルの更新も、データ管理プロセス62によるデータ管理部26(図1)が実行するものとする。
管理装置46のCPU48は、起動時及び定期的に管理プログラム54に含まれる状態監視プロセス56を実行する。
図13に、管理装置46で実行される管理プログラム54に含まれる状態監視プロセス56の流れを示す。管理装置46で状態監視プロセス56が実行されることで、管理装置46は稼働管理装置12(図1)の状態監視部14として動作し、物理サーバA〜C及び仮想サーバSV1〜SV6の各状態監視処理を実行する。図13に示す処理ルーチンは、管理装置46の稼働中に、所定時間間隔で繰り返し実行される。状態監視プロセス56の実行による状態監視処理は、管理装置46が管理する複数の物理サーバBV及び複数の仮想サーバSVの通信状態やリソース状態を監視する処理である。なお、図13に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード76やマウス77等の入力装置の操作指示により、実行されるようにしてもよい。
管理装置46のCPU48は、ステップ100において、物理サーバBVの総数Kを取得する。すなわち、管理装置46は、ネットワーク30に接続されているコンピュータ32〜40で実行されているエージェントEJに対し、物理サーバBVが稼働していることを示す情報の返信を要求する。コンピュータ32〜40の各々は、管理装置46からの要求に対して、物理サーバBVが稼働しているとき、該物理サーバBVの稼働を示す情報を返信する。管理装置46は、各エージェントEJから返信された情報により物理サーバBVの総数Kを取得する。本実施形態では、物理サーバA〜Cが稼働しているので、管理装置46は、「K=3」の情報を得る。
次に、管理装置46のCPU48は、ステップ102において、稼働している単一の物理サーバBVについて、稼働状態を取得する。すなわち、管理装置46は、稼働している物理サーバA〜Cの何れか1つのエージェントEJに対し、物理サーバBVの稼働状態を示す情報の返信を要求する。管理装置46から返信要求のあった物理サーバA〜Cの何れか1つのエージェントEJは、担当する物理サーバ(A〜Cの何れか)のリソースを示す情報を取得する。物理サーバBVのリソースを示す情報の一例には、構築当初のCPUの使用可能量やメモリの使用可能量、現状のCPUの使用量やメモリの使用量、格納部(ハードディスク等)の容量、及びネットワーク負荷を示す情報等がある。エージェントEJは、担当する物理サーバBVを識別するための物理サーバBVの名称やIPアドレスを、リソースを示す情報に対応付けた情報を稼働状態を示す情報として、管理装置46へ返信する。なお、管理装置46へ返信する稼働状態を示す情報には、物理サーバBVが通信した通信量を含めても良い。管理装置46は、各エージェントEJから返信された情報を一時的に記憶し、稼働状態を示す情報取得が未了の物理サーバBVが残存する(ステップ104で肯定判断される)とき、ステップ102へ戻る。
一方、稼働している全物理サーバBVの稼働状態を示す情報取得を終了する(ステップ104で否定判断される)と、管理装置46のCPU48は、ステップ106において物理サーバ管理テーブル68を更新する。すなわち、管理装置46では、物理サーバA〜Cから返信された物理サーバA〜Cの各々の稼働状態を示す情報により、物理サーバ管理テーブル68が更新される。
次に、管理装置46のCPU48は、ステップ108において、仮想サーバSVの総数Mを取得する。すなわち、管理装置46は、ネットワーク30に接続されているコンピュータ32〜40で実行されているエージェントEJに対し、仮想サーバSV1〜SV6が稼働していることを示す情報の返信を要求する。仮想サーバSV1〜SV6の各々は物理サーバA〜Cの何れかで稼働しており、物理サーバA〜Cの各々で実行されているエージェントEJにより管理されている。従って、管理装置46からの要求に対してエージェントEJは、管理する仮想サーバSVの稼働を示す情報を返信する。管理装置46は、各エージェントEJから返信された情報により仮想サーバSVの総数Mを取得する。本実施形態では、物理サーバAでは4台の仮想サーバSV1,SV4〜SV6、物理サーバBでは1台の仮想サーバSV2、物理サーバCでは1台の仮想サーバSV3が稼働しているので(図12)、管理装置46は「M=6」の情報を得る。
次に、管理装置46のCPU48は、ステップ110において、稼働している仮想サーバSV1〜SV6の何れか1つについて、稼働状態を取得する。すなわち、ステップ108と同様に、管理装置46は、エージェントEJに対し、仮想サーバSVの稼働状態を示す情報の返信を要求する。管理装置46から返信要求されたエージェントEJは、管理している仮想サーバSVのリソースを示す情報を取得する。例えば、物理サーバAで実行されているエージェントEJは、管理している4台の仮想サーバSV1,SV4〜SV6の各々のリソースを示す情報を取得する。
仮想サーバSVのリソースを示す情報の一例には、構築当初のCPUの使用可能量やメモリの使用可能量、現状のCPUの使用量やメモリの使用量、格納部(ハードディスク等)の使用容量、及びネットワーク負荷を示す情報等がある。エージェントEJは、管理している仮想サーバSVを識別するための仮想サーバSVの名称やIPアドレスを、リソースを示す情報に対応付けた情報を稼働状態を示す情報として、管理装置46へ返信する。なお、管理装置46へ返信する稼働状態を示す情報には、仮想サーバSV1〜SV6の各々が通信したときの通信量を含めても良い。管理装置46は、各エージェントEJから返信された情報を一時的に記憶し、稼働状態を示す情報取得が未了の仮想サーバSVが残存する(ステップ112で肯定判断される)とき、ステップ110へ戻る。
一方、稼働している全仮想サーバSV1〜SV6の稼働状態を示す情報取得を終了する(ステップ112で否定判断される)と、管理装置46のCPU48は、ステップ114において仮想サーバ管理テーブル66を更新する。すなわち、管理装置46では、各エージェントEJから返信された仮想サーバSV1〜SV6の各々の稼働状態を示す情報により、仮想サーバ管理テーブル66が更新される。
次に、管理装置46のCPU48は、ステップ116において、仮想サーバSVの通信履歴を取得する。すなわち、管理装置46は、各エージェントEJに対し、管理下の仮想サーバSVが他の仮想サーバSVと通信した通信履歴を示す情報の返信を要求する。通信履歴を示す情報の返信が要求されたエージェントEJは、管理下の仮想サーバSVの通信履歴を示す情報を取得し、取得した仮想サーバSVの通信履歴を示す情報を管理装置46へ返信する。管理装置46は、各エージェントEJから返信された通信履歴を示す情報を一時的に記憶する。仮想サーバSVの通信履歴を示す情報の一例には、「通信開始時刻」、「送信元のIPアドレス」、「送信元のポート番号」、「受信先のIPアドレス」、「受信先のポート番号」及び「通信量」の各々を示す情報等がある。なお、IPアドレスは、送信元または受信先の仮想サーバSVを特定するために用いることができる。また、ポート番号は、送信元または受信先の仮想サーバSVの種類を特定するために用いることができる。仮想サーバSVの種類とは、本実施形態では、ウェブサーバ、アプリケーションサーバ及びデータベースサーバの何れかを特定することである。
以上の処理により、管理装置46では、物理サーバA〜C及び仮想サーバSV1〜SV6の各々の状態監視処理が終了される。なお、状態監視処理では、物理サーバA〜Cの各々の異常検知も行うものとする。
ところで、ユーザは、業務処理を行うために、依存関係が存在する複数の仮想サーバSVを最初に構築するとき、複数の仮想サーバSVの各々が稼働する1または複数の物理サーバBVを意図的に定める。ところが、管理装置46が物理サーバBV及び仮想サーバSVの各状態を監視したのみでは、ユーザが意図的に定めた複数の仮想サーバSVの各々が稼働する物理サーバBV、つまり複数の仮想サーバSVの稼働位置に関係する情報を把握することは困難である。ユーザが意図的に定めた複数の仮想サーバSVの稼働位置に関係する情報は、複数の仮想サーバSVの1または複数の物理サーバBVに対する配置に関する運用ルールである。すなわち、依存関係を有する複数の仮想サーバSVを、どの物理サーバBV上で稼働させるかを規定するルールが運用ルールである。
そこで、本実施形態では、物理サーバBV及び仮想サーバSVの各々の状態を監視するときに、管理装置46は運用ルールを把握する処理を実行する。本実施形態では、運用ルールを示す情報は、依存関係を有して稼働する複数の仮想サーバSVを表すグループを示す情報、及び仮想サーバSVがどの物理サーバBV上で稼働するかを表す稼働位置に関係する情報(位置情報)を含んでいる。
ステップ118の処理の終了により、状態監視処理が終了すると、管理装置46のCPU48は、ステップ120において、図13に示す処理が初期に実行されたものであるか否かを判断する。ステップ120の判断は、図13に示す処理ルーチンが初回に実行されたとき、予め定めた一定回数内に実行されたときを判断値にすることができる。
ステップ120で否定判断されたときには、本処理ルーチンを終了する。従って、複数の物理サーバBV及び複数の仮想サーバSVの各々の状態監視処理が、所定時間毎に実行される。
一方、ステップ120で肯定判断されたときは、管理装置46のCPU48は、ステップ122において初期の運用ルールを構築したのちに、本処理ルーチンを終了する。すなわち、管理装置46のCPU48は、ステップ122において、運用ルール構築プロセス58を実行する。
図14に、管理装置46で実行される管理プログラム54に含まれる運用ルール構築プロセス58の流れを示す。管理装置46で運用ルール構築プロセス58が実行されることで、管理装置46は稼働管理装置12(図1)の運用ルール構築部16として動作し、運用ルールの構築処理を実行する。なお、後述するように、図14に示す処理ルーチンは、管理装置46の稼働中に、所定時間間隔で繰り返し実行したり、新規に仮想サーバSVが構築されたときに実行することができる。また、図14に示す処理ルーチンは、ユーザによるキーボード76やマウス77等の入力装置の操作指示により、実行されるようにしてもよい。
管理装置46のCPU48は、ステップ130において、データベース64に格納された物理サーバ管理テーブル68から物理サーバBVに関する情報を取得し、次のステップ132で、仮想サーバ管理テーブル66から仮想サーバSVに関する情報を取得する。CPU48は、仮想サーバSV1〜SV6に関する情報として、仮想サーバSVの総数、及び仮想サーバSVの物理サーバBV上の位置を取得することができる。すなわち、CPU48は、仮想サーバ管理テーブル66に登録されている仮想サーバSVの数を計数することにより、仮想サーバSVの総数を示す情報を取得できる。また、CPU48は、仮想サーバ管理テーブル66に登録されている仮想サーバSVに対する物理サーバBVの位置を示す情報を取得することにより、仮想サーバSVの物理サーバBV上の位置を示す情報を取得できる。
次に、管理装置46のCPU48は、ステップ134において、データベース64に格納された仮想サーバ通信履歴テーブル70から仮想サーバSVの通信履歴を示す情報を取得する。次に、管理装置46のCPU48は、ステップ136において、仮想サーバ管理テーブル66,物理サーバ管理テーブル68及び仮想サーバ通信履歴テーブル70に基づいて、サーバ間通信回数テーブルTB3を更新する。すなわち、仮想サーバ通信履歴テーブル70の各時刻において、送信元IPに該当する仮想サーバSV及び受信先IPに該当する仮想サーバSVを特定し、特定した仮想サーバSVの間の通信回数を1インクリメントする。仮想サーバ通信履歴テーブル70に含まれる全ての時刻についての通信回数の計算が終了したときに、計算した仮想サーバSVの間の通信回数でサーバ間通信回数テーブルTB3を更新する。なお、後述するようにサーバ間通信回数テーブルTB3から、一連の通信を行う仮想サーバSVを1つのグループに該当することを判別することができる。
本実施形態では、管理装置46により管理されるコンピュータシステム44におけるコンピュータ32,36,40が物理サーバA、B,Cとして機能され、かつ6つの仮想サーバSV1〜SV6が構築されている。従って、上記ステップ136において更新されたサーバ間通信回数テーブルTB3は、6つの仮想サーバSV1〜SV6に外部1及び外部2を加えたテーブルになる(図10参照)。
次に、管理装置46のCPU48は、ステップ138〜142において、仮想サーバ間の類似性を示す情報を導出する。まず、管理装置46のCPU48は、ステップ138において、仮想サーバ間のユークリッド距離を算出する。すなわち、数1を使用して、或る1つの仮想サーバSVに対して、他の仮想サーバSVの各々のユークリッド距離を求める。次に、管理装置46のCPU48は、ステップ140において、ステップ138で求めたユークリッド距離についてサーバ間距離テーブルTB4における該当する値を更新する。次に、管理装置46のCPU48は、ステップ142において残存する仮想サーバSVが有るか否かを判断する。すなわちCPU48は、ステップ132で取得した総数の仮想サーバSVに満たないときはステップ142で肯定判断し、ステップ138へ戻り、残存する仮想サーバSVに対して仮想サーバ間の類似性を示す情報を導出する処理を繰り返す。
一方、全仮想サーバSVに対して、仮想サーバ間の類似性を示す情報を導出する処理が終了する(ステップ142で否定判断される)と、CPU48は、ステップ144の処理へ移行する。
本実施形態では、コンピュータ32,36,40が物理サーバA、B,Cとして機能され、かつ6つの仮想サーバSV1〜SV6が構築されている。従って、上記ステップ140において更新されたサーバ間距離テーブルTB4は、6つの仮想サーバSV1〜SV6の間の距離を示すテーブルとなる(図11参照)。
次に、管理装置46のCPU48は、ステップ144において、依存関係を有して稼働する複数の仮想サーバSVを表すグループを示す情報を導出する。なお、CPU48は、運用ルール構築プロセス58のステップ144を実行することで、図1の稼働管理装置12における運用ルール構築部16に含まれる導出部18として動作する。すなわち、稼働管理装置12が管理装置46で実現され、運用ルール構築プロセス58のステップ144を実行することで管理装置46は稼働管理装置12の運用ルール構築部16に含まれる導出部18として動作される。
管理装置46のCPU48は、ステップ144において、上記ステップ136で特定した仮想サーバ間で通信を行っている仮想サーバSVを、一連の通信を行っている同種の業務処理を行っているサーバグループとみなし、構成グループとする。具体的には、管理装置46のCPU48は、サーバ間通信回数テーブルTB3を参照し、対象の仮想サーバSVに対して、通信回数が予め定めた回数を超える回数の仮想サーバSVを、対象の仮想サーバSVと同種の業務処理を行っている構成グループとする。
図15に、運用ルール構築プロセス58のステップ144において導出した一例の構成グループテーブルTB1−1を示す。例えば、予め定めた通信回数を5回とすると、図10では、仮想サーバSV1とSV2,及び仮想サーバSV2とSV3の各々が、一連の通信を行っている同種の業務処理を行っているとみなせる。そこで、仮想サーバSV1、SV2、SV3を構成グループXとする。また、仮想サーバSV4とSV5,及び仮想サーバSV5とSV6の各々が、一連の通信を行っている同種の業務処理を行っているとみなせる。そこで、仮想サーバSV4、SV5、SV6を構成グループYとする。各々の仮想サーバSVが稼働する物理サーバBVは、仮想サーバ管理テーブル66を参照することで取得できる。
次に、管理装置46のCPU48は、ステップ146〜150において、仮想サーバ間の類似性グループを示す情報を導出する。まず、管理装置46のCPU48は、ステップ146において、サーバ間距離テーブルTB4(図11)を参照し、ユークリッド距離が予め定めた閾値未満の仮想サーバ対があるか否かを判断する。すなわち、1つの仮想サーバSVに対して、他の仮想サーバSVのユークリッド距離が予め定めた閾値(例えば5)未満の仮想サーバSVが有るか否かを判断する。ユークリッド距離が閾値未満の仮想サーバSVがない(ステップ146で否定判断)とき、CPU48は、ステップ150へ処理を移行する。一方、ユークリッド距離が閾値未満の仮想サーバSVがある(ステップ146で肯定判断)とき、CPU48は、対象の仮想サーバSV同士に類似性があるとして、ステップ148において、類似性グループテーブルTB2を更新する(図9参照)。
CPU48は、ステップ150において、サーバ間距離テーブルTB4に、残存する仮想サーバSVが有るか否かを判断し、残存するとき(肯定判断)は、ステップ146へ戻り、残存する仮想サーバSVについてステップ146の判断を実行する。一方、サーバ間距離テーブルTB4の全仮想サーバSVに対するステップ146の判断処理が終了する(ステップ150で否定判断)と、ステップ152へ進む。
ステップ146〜150における仮想サーバ間の類似性グループを示す情報の導出の一例を説明する。ステップ144で導出した構成グループテーブルTB1−1では、仮想サーバSV1、SV2、SV3は構成グループXであり、仮想サーバSV4、SV5、SV6は構成グループYである。仮想サーバSV1を対象にしたとき、仮想サーバSV1の類似性グループを示す情報を設定する。すなわち、仮想サーバSV1は構成グループXの最初の仮想サーバSVであるので、類似性グループを示す情報を「X−1」とする。サーバ間距離テーブルTB4に仮想サーバSV1に対して閾値未満の仮想サーバSVはないので、次の仮想サーバSVに処理を移行する。結果、仮想サーバSV1、SV2、SV3は類似性グループX−1,X−2,X−3となり、仮想サーバSV4、SV5、SV6は類似性グループY−1,Y−2,Y−3となる(図9も参照)。
次に、管理装置46のCPU48は、ステップ152において、仮想サーバSVの運用構成つまり運用ルールを決定する。なお、CPU48は、運用ルール構築プロセス58のステップ152を実行することで、図1の稼働管理装置12における運用ルール構築部16に含まれる決定部20として動作する。すなわち、稼働管理装置12が管理装置46で実現され、運用ルール構築プロセス58のステップ152を実行することで管理装置46は稼働管理装置12の運用ルール構築部16に含まれる決定部20として動作される。
管理装置46のCPU48は、ステップ152において、まず、第1の処理として、構成グループ毎に、仮想サーバSVが稼働する物理サーバBVの位置を取得する。具体的には、CPU48は、構成グループテーブルTB1に含まれる構成グループ毎に、対象の構成グループに含まれる仮想サーバSVの各々が稼働する物理サーバBVの位置を、仮想サーバ管理テーブル66より取得する。第2の処理は、構成グループ毎に、「集中型運用」か「分散型運用」かを判定する。具体的には、CPU48は、構成グループテーブルTB1に含まれる構成グループ毎に、対象の構成グループに含まれる全ての仮想サーバSVが1つの物理サーバBVで稼働する場合、「集中型運用」と判定する。また、CPU48は、それ以外、すなわち、対象の構成グループに含まれる仮想サーバSVが、異なる物理サーバBV上で稼働されている場合、「分散型運用」と判定する。CPU48は、判定結果を構成グループテーブルTB1に更新させる。
図16に、運用ルール構築プロセス58のステップ152において決定した一例の構成グループテーブルTB1−2を示す。
なお、ステップ134の処理では、仮想サーバSVが通信に使用したポート番号の情報を取得している。管理装置46のCPU48は、仮想サーバSVが通信に使用したポート番号の情報から仮想サーバSVの種類(本実施形態では、ウェブサーバ、アプリケーションサーバ及びデータベースサーバ)を特定することができる。CPU48は、仮想サーバSVが通信に使用したポート番号の情報から特定した仮想サーバSVの種類を、構成グループテーブルTB1に追加することができる(図8も参照)。図8では、ウェブサーバを(WEB)、アプリケーションサーバを(APP)、及びデータベースサーバを(DB)と表記した。
次に、仮想サーバSVの移動処理を説明する。コンピュータ間で依存関係を有する複数の仮想サーバSVを使用して業務処理を行う場合に、業務処理の処理負荷が増大すること等の理由により、予め定めた装置が、自動的に新規の仮想サーバSVを追加(所謂スケールアウト)するときがある。自動的に追加される仮想サーバSVは、コンピュータシステム44のリソースなどの稼働状況に応じて物理サーバBVの位置が定められることが一般的である。従って、自動的に追加される仮想サーバSVが稼働される物理サーバBVの位置が任意となり、業務処理を行うために、依存関係を有する複数の仮想サーバSVの稼働位置を、ユーザが意図的に定めてシステムを構築したときの運用ルールは反映されない。そこで、本実施形態では、自動的に追加される仮想サーバSVが稼働する物理サーバBVの位置を、ユーザの意図に沿った運用ルールに合致するように、仮想サーバSVを移動する処理を実行する。仮想サーバSVを移動する処理は、管理装置46で実行される管理プログラム54に含まれる仮想サーバ移動プロセス60の実行により処理される。
図17に、自動的に追加される仮想サーバSVの一例を示す。図17では、物理サーバA,B,C及び仮想サーバSV1〜SV6に、自動的に仮想サーバSV7,SV8,SV9が追加される関係を示す。また、図17では、所謂スケールアウトの一例として、物理サーバB上で稼働している仮想サーバSV2に対して、スケールアウトした仮想サーバSV7,SV8が物理サーバA,Bに自動的に追加された場合を示す。また、他例として、図17では、物理サーバA上で稼働している仮想サーバSV5に対して、スケールアウトした仮想サーバSV9が物理サーバBに自動的に追加された場合を示す。
図18に、管理装置46で実行される管理プログラム54に含まれる仮想サーバ移動プロセス60の流れを示す。管理装置46で仮想サーバ移動プロセス60が実行されることで、管理装置46は稼働管理装置12(図1)のノード移動部24として動作し、物理サーバBV上の仮想サーバSVの移動処理を実行する。図18に示す処理ルーチンは、管理装置46の稼働中に、所定時間間隔で繰り返し実行される。なお、図18に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード76やマウス77等の入力装置の操作指示により、実行されるようにしてもよい。
管理装置46のCPU48は、ステップ160において、データベース64に格納された仮想サーバ通信履歴テーブル70から仮想サーバSVの通信履歴に関する情報を取得し、次のステップ162において、新規に仮想サーバSVが追加されたか否かを判断する。新規に仮想サーバSVが追加されたか否かの判断は、仮想サーバ通信履歴テーブル70の登録された送信元IPまたは受信先IPを示す情報が、仮想サーバ管理テーブル66のIPアドレスの情報に存在するか否かにより判別できる。仮想サーバSVが新規に追加されていない(ステップ162で否定判断)場合には、CPU48は、そのまま本処理ルーチンを終了する。一方、新規に仮想サーバSVが追加されているとき(ステップ162で肯定判断)には、CPU48は、ステップ164へ進む。
管理装置46のCPU48は、ステップ164において、ステップ160で取得した新規に仮想サーバSVの情報を、仮想サーバ管理テーブル66に追加する更新処理を実行する。次に、CPU48は、ステップ166において、上述の図13に示すステップ122と同様に、運用ルールを構築したのちに、ステップ168へ処理を移行する。
つまり、管理装置46のCPU48は、物理サーバBVに関する情報、及び仮想サーバSVに関する情報を取得して、仮想サーバSVの物理サーバBV上の位置を特定する(図14に示すステップ130〜132)。次に、管理装置46のCPU48は、仮想サーバ通信履歴テーブル70から仮想サーバSVの通信履歴を示す情報を取得し、サーバ間通信回数テーブルTB3を更新する(図14に示すステップ134〜136)。
図19に、新規に仮想サーバSVが追加されているときのサーバ間通信回数テーブルTB3を示す。物理サーバA、B,Cで稼働される仮想サーバSVは、仮想サーバSV1〜SV9の9つである(図17も参照)。従って、更新されたサーバ間通信回数テーブルTB3は、9つの仮想サーバSV1〜SV9に外部1及び外部2を加えたテーブルになる。
次に、管理装置46のCPU48は、仮想サーバ間のユークリッド距離を算出することで類似性を示す情報を導出し、サーバ間距離テーブルTB4を更新する(図14に示すステップ138〜142)。
図20に、新規に仮想サーバSVが追加されているときのサーバ間距離テーブルTB4を示す。3つの仮想サーバSV7〜SV9が追加されているので、上記更新されたサーバ間距離テーブルTB4は、9つの仮想サーバSV1〜SV9の間の距離を示すテーブルとなる。
次に、管理装置46のCPU48は、依存関係を有して稼働する複数の仮想サーバSVを表すグループを示す情報を導出する(図14に示すステップ144)。つまり、管理装置46のCPU48は、サーバ間通信回数テーブルTB3を参照し、予め定めた回数を超える通信回数の仮想サーバSVを、一連の通信を行っている仮想サーバSVとする構成グループとする。
図21に、グループを示す情報を導出した一例の構成グループテーブルTB1−1を示す。なお、構成グループテーブルTB1(図8)は既に運用ルール管理テーブル72に登録されている。構成グループテーブルTB1(図8)と、構成グループテーブルTB1−1(図21)との仮想サーバSVを比較すると、仮想サーバSV7,SV8,SV9が追加されている。追加されている仮想サーバSV7,SV8は、構成グループXであり、追加されている仮想サーバSV9は、構成グループYである。そこで、後述するように、既存の構成グループテーブルTB1に、追加した仮想サーバSV7,SV8,SV9を追加することで、既存の運用ルールを適用することができる。
次に、管理装置46のCPU48は、仮想サーバ間の類似性グループを示す情報を導出する(図14に示すステップ146〜150)。つまりCPU48は、サーバ間距離テーブルTB4(図20)を参照し、ユークリッド距離が閾値未満の仮想サーバ同士に類似性があるとして、類似性グループテーブルTB2を更新する。
図22に、追加した仮想サーバSVを含む類似性グループテーブルTB2を示す。なお、類似性グループテーブルTB2(図9)は既に運用ルール管理テーブル72に登録されている。図9に示す類似性グループテーブルTB2と、図22に示す類似性グループテーブルTB2との仮想サーバSVを比較すると、仮想サーバSV7,SV8,SV9が追加されている。追加されている仮想サーバSV7,SV8は、類似性グループX−2であり、追加されている仮想サーバSV9は、類似性グループY−3である。
すなわち、図20に示すサーバ間距離テーブルTB4を参照すると、仮想サーバSV2に対して仮想サーバSV7,SV8のサーバ間距離を示す情報、すなわちユークリッド距離が閾値未満である。また、仮想サーバSV7と仮想サーバSV8のユークリッド距離も閾値未満である。従って、仮想サーバSV2に対して仮想サーバSV7,SV8の類似性は高いので、仮想サーバSV7,SV8は仮想サーバSV2の類似性グループX−2とする。また、仮想サーバSV5に対して仮想サーバSV9のサーバ間距離を示す情報、すなわちユークリッド距離が閾値未満である。従って、仮想サーバSV5に対して仮想サーバSV9の類似性は高いので、仮想サーバSV9は仮想サーバSV5の類似性グループY−2とする。
次に、管理装置46のCPU48は、仮想サーバSVの運用構成つまり運用ルールを決定する(図14に示すステップ152)。
ところで、仮想サーバSV1〜SV6による構成のときの構成グループテーブルTB1は既に決定されている(図8)。そこで、管理装置46のCPU48は、今回新規に追加された仮想サーバSVを、該当する構成グループに追加する。すなわち、CPU48は、構成グループ毎に、追加された仮想サーバSVの該当する類似性グループにより、追加された仮想サーバSVを示す情報を追加する。従って、新規に仮想サーバSVが追加(スピンアウト)以前の運用構成を、新規に仮想サーバSVが追加(スピンアウト)した後に、反映させることができる。
なお、CPU48は、運用ルール構築プロセス58のステップ146〜150を実行することで、図1の稼働管理装置12における運用ルール構築部16に含まれる追加部22として動作する。すなわち、稼働管理装置12が管理装置46で実現され、運用ルール構築プロセス58のステップ146〜150を実行することで管理装置46は稼働管理装置12の運用ルール構築部16に含まれる追加部22として動作される。
図23に、追加した仮想サーバSVを含む構成グループテーブルTB1を示す。ところで、構成グループテーブルTB1に、追加された仮想サーバSVの該当する類似性グループにより、追加された仮想サーバSVを示す情報を追加すると、追加された仮想サーバSVの稼働位置が実際と異なる場合がある。
図24に、図23に示す構成グループテーブルTB1に対応する類似性グループテーブルTB2を示す。図22と図24とを比較すると、仮想サーバSV7〜SV9が稼働する物理サーバBVの位置が相違する。物理サーバBVの位置が相違するのは、追加された仮想サーバSVの情報を類似性グループにより構成グループテーブルTB1へ追加したためである。従って、追加された仮想サーバSV7〜SV9が稼働する位置を、運用ルールに沿った物理サーバBVの位置へ移動させることが好ましい。
そこで、管理装置46のCPU48は、図18に示すステップ166の処理が終了すると、ステップ168において、新規に追加された仮想サーバSVを移動させる必要が有るか否かを判断する。仮想サーバSVを移動させる必要が有るか否かの判断は、新規に追加された仮想サーバSVについて、構成グループテーブルTB1で示される位置と図22に示す類似性グループテーブルTB2で示される位置を比較し、相違するか否かを判断することで判別できる。新規に追加された仮想サーバSVが稼働する物理サーバBVの位置が、構成グループテーブルTB1と一致する場合(ステップ168で否定)には、仮想サーバSVを移動させる必要はないため、そのまま本処理ルーチンを終了する。一方、新規追加の仮想サーバSVの稼働位置が、構成グループテーブルTB1と不一致の場合(ステップ168で肯定)には、仮想サーバSVを移動させる必要があるため、ステップ170において仮想サーバSVの移動処理を行った後に本処理ルーチンを終了する。
図25に、管理装置46で実行される仮想サーバ移動プロセス60に含まれる仮想サーバ移動処理の流れを示す。
管理装置46のCPU48は、ステップ180において、図18に示す処理によって決定された構成グループテーブルTB1の情報を取得し、次のステップ182において、構成グループテーブルTB1に含まれる1つの仮想サーバSVの現在位置を取得する。次に、CPU48は、類似性グループテーブルTB2で設定されている物理サーバBVの位置と現在の位置とが相違するか否かを判断する。すなわち、ステップ182で取得した仮想サーバSVが稼働する物理サーバBVの位置と、構成グループテーブルTB1に登録された物理サーバBVの位置とが相違するか否かを判断する。CPU48は、物理サーバBVの位置が一致しステップ184で否定判断のときには、ステップ192へ処理を移行し、物理サーバBVの位置が不一致で肯定判断のときにはステップ186へ進む。
ステップ186では、CPU48は、対象の仮想サーバSVが構成グループテーブルTB1に登録された物理サーバBVの位置へ移動可能か否かを判断する。ステップ186の判断処理は、対象の仮想サーバSVが稼働するためのリソースが移動先の物理サーバBVのリソースより小さい(未満)か否かを判別することにより判断処理できる。CPU48は、対象の仮想サーバSVが移動先の物理サーバBVで稼働可能なときは、ステップ186で肯定されてステップ188へ進み、稼働不可能なときはステップ186で否定されてステップ192へ進む。
ステップ188では、CPU48は、対象の仮想サーバSVを構成グループテーブルTB1に登録された物理サーバBVの位置へ移動させ、次のステップ190において、類似性グループテーブルTB2を更新する。
ステップ192では、CPU48は、構成グループテーブルTB1に残存する仮想サーバSVが有るか否かを判断する。CPU48は、仮想サーバSVが残存する場合にステップ192で否定判断し、ステップ184へ戻り、残存する一仮想サーバSVに対して上述の移動処理を実行する。一方、CPU48は、全ての仮想サーバSVに対して上記の処理が終了すると、ステップ192で否定判断し、本処理ルーチンを終了する。
図26に、管理装置46で実行される仮想サーバ移動プロセス60により、仮想サーバSVが移動された後の構成を示す。図26に示すように、図23に示す構成グループテーブルTB1に沿った仮想サーバSVの配置となっていることが理解される。
なお、本実施形態では、管理プログラム54に含まれる運用ルール構築プロセス58で、類似性グループを求め、仮想サーバSVを関係づけた一例を示したが、開示の技術は類似性グループを使用することに限定されない。例えば、類似性グループ間の緊密度グループを作成し、緊密度グループを用いることができる。例えば、類似性グループ間での一定期間のネットワーク通信量の総和を比較し、ネットワーク通信の総和が大きいグループを緊密度の高い関係とする。緊密度の高い関係の仮想サーバSVは、集中構成すなわち1つの物理サーバBV上で稼働されることが好ましい。例えば、物理サーバBVのリソース不足等により、集中構成により運用されているグループの一部の仮想サーバSVを他の物理サーバBVへ分散させる場合、緊密度の高い関係の仮想サーバSVを緊密度グループとして、緊密度グループ単位で移動させる。これにより、集中構成によるユーザの意図を反映させつつ、効率的に仮想サーバSVを稼働させることができる。
また、本実施形態では、所謂スケールアウトとして知られている仮想サーバSVを追加するときの一例を説明したが、開示の技術は、所謂スケールアウトとして知られる仮想サーバSVの追加に限定されるものではない。例えば、新規の業務処理を追加するときに、仮想サーバSVを追加することに対しても容易に適用することができる。
図27に、依存関係を有する複数のコンピュータの一例として、管理装置46により管理されるコンピュータシステム44における2台のコンピュータ32,36において機能される物理サーバBV及び仮想サーバSVの関係を示す。コンピュータ32は、物理サーバAとして機能され、かつ3つの集中構成による仮想サーバSV10,SV11,SV12が構築された場合を示す。また、コンピュータ36は、物理サーバBとして機能されるが、仮想サーバSVは構築されていない場合を示す。
図28に、新規の業務処理のために、図27に示すコンピュータシステム44に、3つの集中構成による仮想サーバSV13,SV14,SV15を、物理サーバB上に新規に構築する場合を示す。図28に示す物理サーバB上に新規に構築する仮想サーバSV13,SV14,SV15は、図14に示す運用ルール構築プロセス58による処理によって、運用ルールを作成できる。
また、図29に、新規の業務処理のために、図27に示すコンピュータシステム44に、2つの分散構成による仮想サーバSV16,SV17を、物理サーバBと物理サーバBに分散して新規に構築する場合を示す。図29に示す物理サーバA,B上に分散して新規に構築する仮想サーバSV16,SV17も、図14に示す運用ルール構築プロセス58による処理によって、運用ルールを作成できる。
以上説明したように、本実施形態によれば、システムの稼働開始時の運用ルールを、自動的に検知して作成することができる。また、新規追加された仮想サーバSVについても自動的に運用ルールを作成できる。従って、既存業務のスケールアウトや新規業務の追加によって、追加された仮想サーバSVの運用ルールを仮想サーバSVの稼働状態に沿って作成できる。また、作成した運用ルールに従って仮想サーバSVを再配置することができる。これにより、データセンターなど、多数の業務が混在した環境において、業務負荷の変化に応じて、仮想サーバSVを自動的に作成した場合であっても、ユーザの手動操作等により業務処理を停止させることなく、継続できる。従って、業務処理の管理を自動化することができる。
ところで、コンピュータを使用して業務処理を行うコンピュータシステムでは、コンピュータの稼働を停止させることなく、業務処理を継続する必要がある。しかし、リソース不足やハードウェア資源の故障等により物理サーバBVに異常が発生する等の緊急状態の物理サーバBVについて、対象の物理サーバBVで実行している仮想サーバSVを、迅速に移動させる必要がある。
緊急状態の物理サーバBVで実行している仮想サーバSVを迅速に移動させるためには、緊急状態の物理サーバBVで実行している仮想サーバSVの稼働状況すなわち運用ルールを把握した上で移動しなければならない。本実施形態では、物理サーバBV上で稼働している仮想サーバSVの運用ルールを自動的に作成できるので、緊急状態の物理サーバBVで実行している仮想サーバSVを迅速に移動させることができる。すなわち、緊急状態の物理サーバBVで実行している仮想サーバSVを迅速に移動させる処理を、仮想サーバ移動プロセス60に追加すればよい。
図30に、緊急状態のときにおける仮想サーバ移動プロセス60の流れを示す。図30に示す仮想サーバ移動プロセス60は、管理プログラム54に含まれる仮想サーバ移動プロセス60に追加すればよい。なお、図30に示す仮想サーバ移動プロセス60は、管理装置46の稼働中に、所定時間間隔で繰り返し実行される。なお、図18に示す処理ルーチンは、繰り返し実行されることに限定されず、ユーザによるキーボード76やマウス77等の入力装置の操作指示により、実行されるようにしてもよい。
管理装置46のCPU48は、ステップ200において、物理サーバBVに異常が検知されたか否かを判断する。物理サーバBVに異常が検知されないときは、ステップ200で否定判断され、CPU48は、そのまま本処理ルーチンを終了する。一方、物理サーバBVに異常が検知されると、ステップ200で肯定判断され、CPU48は、ステップ202へ進み、データベース64に格納された運用ルール管理テーブル72の構成グループテーブルTB1を参照し、ステップ204へ進む。
次にCPU48は、ステップ204において、構成グループテーブルTB1に含まれる1つの構成グループを指定し、ステップ206へ進む。ステップ206では、CPU48は、ステップ204で指定した構成グループ内にステップ200で検知された物理サーバBV上で稼働する仮想サーバSVが有るか否かを判断する。ステップ206で否定判断されたとき、CPU48は、ステップ222へ進む。一方、ステップ206で肯定判断されたとき、CPU48は、ステップ206へ進み、仮想サーバSVのリソース使用量の合計を算出する。
次に、CPU48は、ステップ210において、1つの物理サーバBVを指定し、次のステップ212において、対象の物理サーバBVがステップ208で求めた仮想サーバSVのリソース使用量の合計値を満たすか否かを判断する。ステップ212で否定判断されたとき、CPU48は、ステップ220へ進み、肯定判断されたとき、ステップ214へ進む。ステップ214では、CPU48は、ステップ210で指定した物理サーバBVへ仮想サーバSVを移動する。次に、CPU48は、ステップ216において、構成グループテーブルTB1を更新し、対気のステップ218で類似性グループテーブルTB2を更新する。
次に、CPU48は、ステップ220において、残存する物理サーバBVが有るか否かを判断し、否定判断されるとステップ222へ進み、肯定判断されると、ステップ210へ戻る。次に、CPU48は、ステップ222において、残存する構成グループが有るか否かを判断し、否定判断されると本処理ルーチンを終了し、肯定判断されるとステップ204へ戻る。
図30に示す処理の一例に、構成グループの運用ルールが集中構成の場合がある。構成グループの運用ルールが集中構成のとき、まず、構成グループに含まれる1または複数の仮想サーバSVのリソース使用量の合計を算出する。そして、移動候補の物理サーバBVから運用可能な物理サーバBVを特定し、仮想サーバSVを移動させる。なお、移動候補のすべての物理サーバBVが、構成グループの仮想サーバSVを単独の物理サーバBVで実行できるほどリソースがないと判定された場合には、緊密度グループを用いて移動できる。すなわち、構成グループ内の類似性グループの中で緊密度の高いグループをサブグループとして再構成し、複数の物理サーバBVに分散させて移動させることができる。
図30に示す処理の他例に、構成グループの運用ルールが分散構成の場合がある。構成グループの運用ルールが分散構成のとき、まず、構成グループの中で異常が検知された物理サーバBVで実行している類似性グループ内の仮想サーバSVのリソース使用量の合計を算出する。次に、構成グループ内の他の類似性グループが実行されている物理サーバBV以外から移動先の物理サーバBVを特定し、移動させる。
図31に、構成グループの運用ルールが集中構成の場合に、仮想サーバ移動プロセス60により、仮想サーバSVが移動された後の構成を示す。図31に示すように、構成グループテーブルTB1に沿って仮想サーバSVが移動されることが理解される。
以上説明したように、物理サーバで業務処理が困難な緊急状態になる物理サーバで実行されている仮想サーバSVについて、運用ルールに従って移動できる。従って、緊急状態の物理サーバで実行している仮想サーバSVの稼働状況すなわち運用ルールを把握した上で、仮想サーバSVを移動させることができ、業務処理を停止させることはない。
なお、上記では物理サーバに含まれる仮想サーバSVに機能を有するサーバの一例を説明したが、仮想サーバSVに機能を有するサーバに限定されるものではない。例えば、物理サーバを仮想サーバSVを含めた何れかのコンピュータについて適用可能である。
また、上記では3階層システムをモデルとしたシステムを一例としたが、3階層システムをモデルとしたシステムに限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
また、上記では複数の仮想サーバSVを含むグループの一例を説明したが、グループは仮想サーバSVのみを含むことに限定されるものではない。例えば、物理サーバを含んでも良い。
また、上記ではプログラムがコンピュータの記憶部に予め記憶(インストール)されている態様を説明したが、プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
稼働管理装置、稼働管理方法、及び稼働管理プログラムに関する。

Claims (20)

  1. コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出する導出部と、
    前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが1つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する決定部と、
    を備えた稼働管理装置。
  2. 前記導出部は、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項1に記載の稼働管理装置。
  3. 前記決定部は、前記導出部で導出されたグループ情報に含まれる複数のノードのうちの一部のノードと該一部のノード以外のノードとが異なるコンピュータで稼働することを示す稼働情報を決定する請求項1または請求項2に記載の稼働管理装置。
  4. 前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する追加部
    を含む請求項1乃至請求項3の何れか1項に記載の稼働管理装置。
  5. 前記追加部は、前記追加したノードと前記複数のノードのうちの何れか1つのノードとのユークリッド距離を前記類似度として求める請求項4に記載の稼働管理装置。
  6. 前記グループ情報、及び前記稼働情報をテーブルとして格納した記憶部を含む請求項1乃至請求項5の何れか1項に記載の稼働管理装置。
  7. 前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する追加ノード移動部を含む請求項4乃至請求項6の何れか1項に記載の稼働管理装置。
  8. 少なくとも1つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する緊急ノード移動部を含む請求項1乃至請求項7の何れか1項に記載の稼働管理装置。
  9. コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
    前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが1つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
    稼働管理方法。
  10. 前記グループ情報の導出では、前記複数のノードの間で相互に通信を行う通信回数に基づいて、所定通信回数以上のノード間通信が実行された複数のノードを示す情報を、前記グループ情報として求める請求項9に記載の稼働管理方法。
  11. 前記稼働情報は、前記導出されたグループ情報に含まれる複数のノードのうちの一部のノードと該一部のノード以外のノードとが異なるコンピュータで稼働することを示す情報を稼働情報として決定する請求項9または請求項10に記載の稼働管理方法。
  12. 前記コンピュータ上で仮想的なコンピュータとして稼働するノードを追加するときに、追加したノードと、前記複数のノードの各々との類似度を求め、求めた類似度に基づいて、追加したノードに対して所定値以上の類似度を示すノードを含む前記グループ情報に、前記追加したノードを示す情報を追加する処理を含む請求項9乃至請求項11の何れか1項に記載の稼働管理方法。
  13. 前記類似度は、前記追加したノードと前記複数のノードのうちの何れか1つのノードとのユークリッド距離を求める請求項9乃至請求項12の何れか1項に記載の稼働管理方法。
  14. 前記グループ情報、及び前記稼働情報をテーブルとして記憶部に格納する処理を含む請求項9乃至請求項13の何れか1項に記載の稼働管理方法。
  15. 前記追加したノードの前記グループ情報、及び前記追加したノードの前記稼働情報に基づいて、前記追加したノードが稼働するコンピュータの現在位置が、前記所定値以上の類似度を示すノードが稼働するコンピュータの現在位置に不一致のとき、前記所定値以上の類似度を示すノードが稼働するコンピュータに、前記追加したノードを移動する
    請求項12乃至請求項14の何れか1項に記載の稼働管理方法。
  16. 少なくとも1つのノードを含むコンピュータが稼働困難な緊急状態のとき、前記緊急状態のコンピュータで稼働するノードを、該ノードが含まれる前記グループ情報の前記稼働情報に対応させて前記前記緊急状態のコンピュータと異なるコンピュータに移動する
    請求項9乃至請求項15の何れか1項に記載の稼働管理方法。
  17. コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
    前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが1つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
    処理をコンピュータにより実行させるための稼働管理プログラム。
  18. コンピュータを、請求項9〜請求項16の何れか1項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラム。
  19. コンピュータ上で仮想的なコンピュータとして稼働する複数のノードを含み、かつ稼働する際にノード間で相互に通信を行う依存関係を有する複数のノードを含む複数のノードにおいて、ノードの現在位置及び該現在位置で示されるノードが稼働するコンピュータの現在位置を示す位置情報を含む通信情報を用いてノード間で前記通信を行うときの前記通信情報に基づいて、前記依存関係を有する複数のノードを示すグループ情報を導出し、
    前記導出部で導出されたグループ情報に含まれる複数のノードの各々の前記位置情報に基づいて、前記グループ情報に含まれる複数のノードが1つのコンピュータ上で稼働することを示す稼働情報または複数のコンピュータ上の各々で稼働することを示す稼働情報を、前記グループ情報に含まれる前記複数のノードに対して決定する、
    処理をコンピュータにより実行させるための稼働管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
  20. コンピュータに、請求項9〜請求項16の何れか1項記載の稼働管理方法に係る処理を実行させるための稼働管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2014532654A 2012-08-30 2012-08-30 稼働管理装置、稼働管理方法、及び稼働管理プログラム Active JP5930048B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/072071 WO2014033882A1 (ja) 2012-08-30 2012-08-30 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP5930048B2 JP5930048B2 (ja) 2016-06-08
JPWO2014033882A1 true JPWO2014033882A1 (ja) 2016-08-08

Family

ID=50182730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014532654A Active JP5930048B2 (ja) 2012-08-30 2012-08-30 稼働管理装置、稼働管理方法、及び稼働管理プログラム

Country Status (3)

Country Link
US (1) US10177971B2 (ja)
JP (1) JP5930048B2 (ja)
WO (1) WO2014033882A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142678A (ja) * 2013-01-22 2014-08-07 Hitachi Ltd 仮想サーバ移行計画作成方法およびシステム
WO2014136210A1 (ja) * 2013-03-05 2014-09-12 富士通株式会社 実行フロー作成支援プログラム
WO2014147802A1 (ja) * 2013-03-21 2014-09-25 富士通株式会社 情報処理装置、資源割当方法、及びプログラム
JP6278908B2 (ja) * 2015-02-03 2018-02-14 日本電信電話株式会社 管理装置、および、ソフトウェアコンポーネントグルーピング方法
US10341128B2 (en) * 2016-03-12 2019-07-02 Wipro Limited Method and system for optimizing usage of network resources in a communication network
US11088906B2 (en) 2018-05-10 2021-08-10 International Business Machines Corporation Dependency determination in network environment

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792936B2 (en) * 2003-12-01 2010-09-07 International Business Machines Corporation Method and apparatus for virtualizing network resources
US9329905B2 (en) 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US7496663B2 (en) * 2005-08-29 2009-02-24 International Business Machines Corporation System and method for detecting status changes in a network using virtual coordinate mapping
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
JP5035011B2 (ja) * 2008-02-22 2012-09-26 日本電気株式会社 仮想サーバ管理装置および仮想サーバ管理方法
JP5333735B2 (ja) * 2009-01-27 2013-11-06 日本電気株式会社 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
CN102422597B (zh) * 2009-07-24 2014-04-02 华为技术有限公司 处理网络映射标识的方法、装置及系统和选择对等点的方法
JP2011186775A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd アプリケーションサーバの仮想化環境上における運用容易化技術
US8626693B2 (en) * 2011-01-14 2014-01-07 Hewlett-Packard Development Company, L.P. Node similarity for component substitution
US8959221B2 (en) * 2011-03-01 2015-02-17 Red Hat, Inc. Metering cloud resource consumption using multiple hierarchical subscription periods
JP5729466B2 (ja) * 2011-04-20 2015-06-03 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
JP5768651B2 (ja) * 2011-10-21 2015-08-26 富士通株式会社 通信装置、通信方法、および、通信プログラム

Also Published As

Publication number Publication date
WO2014033882A1 (ja) 2014-03-06
US10177971B2 (en) 2019-01-08
JP5930048B2 (ja) 2016-06-08
US20150163092A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
CN110301128B (zh) 基于学习的资源管理数据中心云架构的实现方法
US10924535B2 (en) Resource load balancing control method and cluster scheduler
US11588755B2 (en) Distributed stream-based database triggers
US10261819B2 (en) Determining an optimal computing environment for running an image based on performance of similar images
JP5930048B2 (ja) 稼働管理装置、稼働管理方法、及び稼働管理プログラム
US9852035B2 (en) High availability dynamic restart priority calculator
EP2569709A2 (en) A decision support system for moving computing workloads to public clouds
US10069906B2 (en) Method and apparatus to deploy applications in cloud environments
Amini et al. Providing a load balancing method based on dragonfly optimization algorithm for resource allocation in cloud computing
CN105635285B (zh) 一种基于状态感知的vm迁移调度方法
US10313457B2 (en) Collaborative filtering in directed graph
US10469329B1 (en) Computing service capacity management
US9998392B1 (en) Iterative network graph placement
US9471784B1 (en) Automated firmware settings verification
US10917467B1 (en) Object subscription rule propagation
US10387578B1 (en) Utilization limiting for nested object queries
US9942083B1 (en) Capacity pool management
US11687356B2 (en) Techniques for concurrently supporting virtual NUMA and CPU/memory hot-add in a virtual machine
US9471536B1 (en) Automated firmware settings management
US11126623B1 (en) Index-based replica scale-out
CN110134742B (zh) 一种基于金融客户的动态全局水平分群方法、装置、系统
US10013184B1 (en) Pipelined counter signatures
US11256669B1 (en) Transaction pipeline materialization schemas
Zhang et al. Machine Learning on the Cheap: An Optimized Strategy to Exploit Spot Instances
CN115858087A (zh) 在云计算系统中部署多个进程的方法、装置、设备及介质

Legal Events

Date Code Title Description
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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5930048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150