JP6515597B2 - 管理プログラム、管理方法、管理装置 - Google Patents

管理プログラム、管理方法、管理装置 Download PDF

Info

Publication number
JP6515597B2
JP6515597B2 JP2015045833A JP2015045833A JP6515597B2 JP 6515597 B2 JP6515597 B2 JP 6515597B2 JP 2015045833 A JP2015045833 A JP 2015045833A JP 2015045833 A JP2015045833 A JP 2015045833A JP 6515597 B2 JP6515597 B2 JP 6515597B2
Authority
JP
Japan
Prior art keywords
computer
server
information
physical
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.)
Active
Application number
JP2015045833A
Other languages
English (en)
Other versions
JP2016167671A (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 JP2015045833A priority Critical patent/JP6515597B2/ja
Priority to US15/062,378 priority patent/US10148518B2/en
Publication of JP2016167671A publication Critical patent/JP2016167671A/ja
Application granted granted Critical
Publication of JP6515597B2 publication Critical patent/JP6515597B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/12Discovery or management of network topologies
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、管理プログラム、管理方法、管理装置に関する。
データセンターなどの大規模なICT(Information and Communication Technology)システムでは、ソフトウェアベンダから購入したソフトウェアについては、許容されたライセンス分のサーバでのみ、そのソフトウェアの実行が許可される。ライセンスには、例えばソフトウェアの実行を許可するCPU(Central Processing Unit)コア数が指定されている。この場合、ライセンス管理を行う管理サーバが、システム内のソフトウェアを実行しようとするサーバのCPUコア数をディスカバリ技術により取得し、ライセンスに示される条件が満たされるかどうかを判断する。ライセンスの条件が満たされた場合にのみ、そのサーバによるソフトウェアの実行が許容される。
ディスカバリ技術によってサーバのCPUコア数を取得するには、システムのネットワーク構成を把握しておくことが重要である。最近のICTシステムでは、様々な仮想化技術が用いられているため、例えば、仮想LAN(Local Area Network)が設定されているネットワークにおいて仮想LANトポロジを把握する技術が考えられている。また物理マシンと仮想マシンとを区別して表したネットワークトポロジを生成する技術もある。
特開2005−328318号公報 特開2014−45437号公報
ライセンス管理対象のソフトウェアが仮想計算機で実行されている場合、例えばその仮想計算機を実行している物理計算機のCPUコア数により、ライセンスの条件が満たされるかどうかが判断される。また、仮想計算機はライブマイグレーションによって、複数の物理計算機上を移動可能である。そのため、特定の仮想計算機がどの物理計算機で実行されているかについて、最新の情報を容易に取得できることが重要となる。
仮想計算機がどの物理計算機で実行されているのかに関する情報を管理する仮想化ソフトウェアには様々なベンダの製品が存在し、仮想化ソフトウェアの種別ごとに、情報取得のためのインタフェースが異なる。そのため、仮想化ソフトウェアの仕様変更や、新たな仮想化ソフトウェアの導入などがあると、適切な情報を取得できないことがある。また外部からの情報取得用のインタフェースが仮想化ソフトウェアで用意されていない場合、仮想計算機がどの物理計算機で実行されているのかを特定できない。このように、仮想化ソフトウェアからの情報取得を前提とする技術では、仮想計算機を実行している物理計算機を特定できない場合があり、仮想化を伴うネットワークについてのトポロジの把握が難しい。
1つの側面では、本件は、仮想計算機を実行している物理計算機を特定できるようにすることを目的とする。
1つの案では、コンピュータに、対象計算機に対し転送可能回数が異なる複数の探索パケットを送信し、複数の探索パケットに対する応答に基づき、コンピュータから対象計算機への経路を示す経路情報を生成し、経路情報により特定される、対象計算機までの経路に存在する複数の計算機それぞれについて、物理計算機または仮想計算機の計算機種別を示す種別情報を取得し、対象計算機が仮想計算機である場合に、種別情報および経路情報に基づき、対象計算機が実行されている、物理計算機を特定する、処理を実行させる管理プログラムが提供される。
1態様によれば、仮想計算機を実行している物理計算機を特定することが可能となる。
第1の実施の形態に係るシステムの一例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。 管理サーバの機能を示すブロック図である。 運用フローに応じたシステム管理手順の一例を示す図である。 実行許否判定処理の詳細手順の一例を示すフローチャートである。 仮想サーバを実行している物理サーバの判定例を示す図である。 仮想サーバが多段構成となっている場合の例である。 ICMPメッセージの種類を示す図である。 エコー要求に対する応答状況の一例を示す図である。 Synパケットを利用したIPアドレスの取得例を示す図である。 ノード情報の収集と関係性情報の組み立て例を示す図である。 結線情報を用いたCI間の関係を示す図である。 リレーションの設定例を示す図である。 ノード情報の一例を示す図である。 結線情報の一例を示す図である。 物理サーバ情報取得処理の手順の一例を示す図である。 ノード情報取得処理の手順の一例を示すフローチャートである。 関係性情報組み立て処理の手順の一例を示すフローチャートである。 物理サーバ特定処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るシステムの一例を示す図である。管理装置10は、ネットワークを介して複数の計算機1〜3に接続されている。また管理装置10は、演算部11と記憶部12とを有する。図1の例では、計算機1,2は物理計算機であり、計算機3は、計算機2が有する仮想化ソフトウェア2aで実現されている仮想計算機である。各装置には、ネットワーク上に識別するための装置名が付与されている。管理装置10の装置名は「N0」、計算機1の装置名は「N1」、計算機2の装置名は「N2」、計算機3の装置名は「N3」である。
仮想計算機である計算機3は、例えばライブマイグレーションにより、物理計算機間を移動可能である。そのため仮想計算機が、現在、どの物理計算機で実行されているのかを判断するのは容易ではない。そこで、第1の実施の形態では、管理装置10の演算部11による以下の処理により、仮想計算機である計算機3がどの物理計算機で実行されているのかを特定する。
まず、管理装置10の演算部11は、特定対象の計算機3に対し転送可能回数が異なる複数の探索パケット4,6,8を送信する(ステップS1,S2,S3)。例えば演算部11は、計算機3を宛先として、転送可能回数が1ずつ相違する複数の探索パケット4,6,8を送信する。転送可能回数は、例えばTTL(Time to Live)の値を探索パケット4,6,8に設定することで指定できる。なお、探索パケット4,6,8としては、例えば通信開始を要求するパケット(Synパケット)を用いることができる。
探索パケット4,6,8に対して、各計算機1〜3から応答が返される。例えば演算部11が、装置名「N3」の計算機3宛ての、TTL値「1」の探索パケット4を送信する(ステップS1)と、その探索パケット4はまず計算機1に到達する。探索パケット4のTTL値は、計算機1において1だけ減算され「0」となる。TTL値が「0」となった探索パケット4は、計算機1で破棄される(ステップS11)。探索パケット4を破棄した計算機1は、管理装置10に対してエラー応答5を送信する。
エラー応答5を受信した演算部11は、探索パケット4が計算機3に到達していないことを認識し、装置名「N3」の計算機3宛ての、TTL値「2」の探索パケット6を送信する(ステップS2)。すると、その探索パケット6はまず計算機1に到達する。探索パケット6のTTL値は、計算機1において1だけ減算され「1」となる。このとき、TTL値が1以上であるため、計算機1は、探索パケット6を計算機2に転送する(ステップS12)。計算機2において、探索パケット6のTTL値は、1だけ減算され「0」となる。TTL値が「0」となった探索パケット6は、計算機2で破棄される(ステップS13)。探索パケット6を破棄した計算機2は、管理装置10に対してエラー応答7を送信する。
エラー応答7を受信した演算部11は、探索パケット6が計算機3に到達していないことを認識し、装置名「N3」の計算機3宛ての、TTL値「3」の探索パケット8を送信する(ステップS3)。すると、その探索パケット8はまず計算機1に到達する。探索パケット8のTTL値は、計算機1において1だけ減算され「2」となる。そして計算機1は、探索パケット8を計算機2に転送する(ステップS14)。計算機2において、探索パケット8のTTL値は、1だけ減算され「1」となる。そして計算機2は、探索パケット8を計算機3に転送する(ステップS15)。自身宛の探索パケット8を受信した計算機3は、その探索パケット8を取得(ステップS16)し、探索パケット8に応じた正常応答9を、管理装置10に対して送信する。
演算部11は、複数の計算機1〜3それぞれからの探索パケット4,6,8に対する応答(エラー応答5,7、正常応答9)に基づき、管理装置10から計算機3への経路を示す経路情報12aを生成する(ステップS4)。例えば演算部11は、TTL値がn(nは1以上の整数)の探索パケットに対する応答を返した計算機までの経路の先に、計算機から、転送可能回数がn+1の探索パケットに対する応答を返した計算機への経路を接続し、その計算機への経路とする。具体的には、例えば演算部11は、TTL「1」の探索パケット4に対して計算機1から応答が返されたことで、管理装置10に隣接して計算機1が接続されていることを示す経路情報12aを生成する。次に演算部11は、TTL「2」の探索パケット6に対して計算機2から応答が返されたことで、計算機1の先に計算機2が接続されていることを示す経路情報12aを生成する。さらに演算部11は、TTL「3」の探索パケット8に対して計算機3から応答が返されたことで、計算機2の先に計算機3が接続されていることを示す経路情報12aを生成する。例えば演算部11は、生成した経路情報12aを、記憶部12に格納する。
探索パケット4,6,8に対する応答を受信した演算部11は、経路情報12aにより特定される、計算機3までの経路に存在する複数の計算機1〜3それぞれが物理計算機なのか仮想計算機なのかの種別を示す種別情報を取得する。例えば演算部11は、計算機1〜3にアクセスし、種別情報を取得する。
そして演算部11は、特定対象の計算機3が仮想計算機である場合に、種別情報および経路情報12aに基づき、種別が仮想計算機である計算機3を実行している、種別が物理計算機である計算機2を特定する。例えば仮想計算機による外部との通信は、その仮想計算機を実行している物理計算機のインタフェースを介して行われる。そこで、演算部11は、管理装置10から計算機3までの経路上で計算機3に最も近い、種別が物理計算機の計算機2を、計算機3を実行しているものとして特定する。
このような管理装置10によれば、仮想化ソフトウェア2aに依存せずに、仮想計算機がどの物理計算機で実行されているのかを容易に特定できる。例えばライブマイグレーションによって、仮想計算機を実行する物理計算機が変更されても、その仮想計算機のアドレス(例えばIP(Internet Protocol)アドレス)が分かっていれば、その仮想計算機宛ての探索パケットを送信できる。探索パケットが送信できれば、経路情報の生成、および種別情報取得が可能である。その結果、仮想計算機を実行している物理計算機を特定できる。
また、管理対象として予め指定されている計算機を宛先として、転送可能回数が1ずつ相違する複数の探索パケットを送信することで、管理装置10と管理対象の計算機との間の経路上のすべての計算機から、探索パケットに対する応答を確実に得ることができる。応答には、IPアドレスなどの応答元の識別情報が含まれている。そのため、各計算機から確実に応答を受信することで、管理対象の計算機までの経路を確実に生成することができる。
なお、探索パケット4,6,8には、セキュリティ上の問題で受け取りが拒否される可能性の低い種別のパケットを用いることが望ましい。例えば、探索パケット4,6,8として、通信開始を要求するパケット(Synパケット)を用いることで、経路情報を、より確実に生成できるようになる。
なお、演算部11は、例えば管理装置10が有するプロセッサにより実現することができる。また、記憶部12は、例えば管理装置10が有するメモリにより実現することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ネットワークを介した運用操作を管理対象のサーバに実行する際に、そのサーバがライセンスの条件を満たしているか否かを判断するものである。例えばライセンスは、実行している物理サーバのCPUコア数の総量により、実行できるサーバ数に制限を掛ける場合がある。しかし、ディスカバリ技術により仮想計算機から取得できる情報は、ハイパーバイザなどの仮想化ソフトウェアが仮想計算機に割り当てたCPUコア数の情報であり、仮想計算機を実行している物理計算機のCPUコア数の情報ではない。そのためライセンス対象のサーバが仮想サーバの場合、従来のディスカバリ技術を用いたのでは、正しいCPUコア数を得ることができない。そこで、第2の実施の形態では、管理対象が仮想サーバの場合に、その仮想サーバを実行している物理サーバを確実に特定し、その物理サーバのCPUコア数を取得できるようにする。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20には、複数の物理サーバ31,32,・・・が接続されている。物理サーバ31,32,・・・は、ネットワーク20内のルータ41,42,・・・を介して接続されている。
またネットワーク20には、管理サーバ100が接続されている。管理サーバ100は、システム全体を管理する。例えば管理サーバ100は、物理サーバ31,32,・・・で実行するソフトウェアのライセンスを管理する。ライセンス管理では、例えばライセンス対象のソフトウェアを実行するサーバ(管理対象サーバ)が使用するCPUコア数が、そのソフトウェアのライセンスで許容されている範囲内となるように、管理対象サーバによるソフトウェアの実行を管理する。
図3は、本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、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の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、管理サーバの機能を示すブロック図である。管理サーバ100は、構成管理データベース(CMDB:Configuration Management Database)110、運用フロー記憶部120、実行部130、および解析部140を有する。
CMDB110は、ICTシステムの構成に関する情報を管理するデータベースである。CMDB110には、例えば構成要素(CI:Configuration Item)ごとの情報と、CI間の関係を示す情報が含まれる。CIには、ネットワーク上のノードのシステム情報、ノードのマシン種別(物理マシンなのか仮想マシンなのか)、ノードの関係性情報などが含まれる。マシン種別が物理マシンのサーバを物理サーバと呼び、マシン種別が仮想マシンのサーバを仮想サーバと呼ぶ。CMDB110としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
運用フロー記憶部120は、複数の運用フロー121,122,123,・・・を記憶する。複数の運用フロー121,122,123,・・・には、システムを管理するための処理の手順が記述されている。また運用フロー121,122,123,・・・には、管理対象サーバのホスト名、IPアドレス、ユーザIDおよびパスワード、通信プロトコルなどの情報が含まれる。運用フロー記憶部120としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
実行部130は、運用フロー記憶部120に格納されている複数の運用フロー121,122,123,・・・に記述されている処理を実行する。実行部130は、処理の実行内容に応じて、適宜CMDB110を参照する。また実行部130は、特定のソフトウェアに関する運用管理に関する処理を実行する場合、そのソフトウェアに関して有しているライセンスの範囲内で処理を実行する。例えば実行部130は、処理対象のソフトウェアを実行している物理サーバの情報の取得を解析部140に依頼する。実行部130は、解析部140から取得した物理サーバの情報に基づいて、処理対象のソフトウェアを実行している物理サーバのCPUコア数を認識し、ライセンスの範囲内でソフトウェアが実行されているかどうかを判断する。そして実行部130は、ライセンスの範囲内でソフトウェアが実行されていることが確認できたら、運用フローに従って、そのソフトウェアを処理対象とした処理を実行する。
解析部140は、ネットワーク20のトポロジを解析する。例えば解析部140は、管理対象サーバまでの通信経路上のノード情報を取得し、CMDB110を更新する。また解析部140は、取得したノード情報に基づいて、管理対象サーバが、物理サーバなのか仮想サーバなのかを解析する。さらに解析部140は、仮想サーバが管理対象であれば、その仮想サーバがどの物理サーバで実行されているのかを解析する。
図4の例では、管理サーバ100に対して、ルータ41を介して物理サーバ31が接続されている。また管理サーバ100に対して、2台のルータ41,42を介して、物理サーバ32が接続されている。ルータ41のホスト名は「R1」、ルータ42のホスト名は「R2」である。
物理サーバ31,32には、仮想化ソフトウェア31a,32aが導入されている。物理サーバ31は、仮想化ソフトウェア31aを用いて仮想サーバ51,52を実行している。物理サーバ32は、仮想化ソフトウェア32aを用いて仮想サーバ53,54を実行している。仮想サーバ51のホスト名は「S1」、仮想サーバ52のホスト名は「S2」、物理サーバ31のホスト名は「S3」、仮想サーバ53のホスト名は「S4」、仮想サーバ54のホスト名は「S5」、物理サーバ32のホスト名は「S6」である。
物理サーバ31は8コアのCPUを搭載しており、物理サーバ32は2コアのCPUを搭載している。この場合、物理サーバ31で実行されている仮想サーバ51,52に対する運用操作を行うには、仮想サーバ51,52のライセンスにおいて、例えばCPUコア数「8」での実行が許容されていることが条件となる。また物理サーバ32で実行されている仮想サーバ53,54に対する運用操作を行うには、仮想サーバ53,54のライセンスにおいて、例えばCPUコア数「2」での実行が許容されていることが条件となる。
仮想サーバ51〜54に対する運用操作手順は、運用フロー121,122,123,・・・に記述されている。そして、管理サーバ100により、複数の運用フロー121,122,123,・・・に基づいて、システムが管理される。なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
図5は、運用フローに応じたシステム管理手順の一例を示す図である。実行部130は、運用フロー121に記述されている運用操作部品121aを読み込む。運用操作部品121aには、例えば管理対象サーバを指定して、そのサーバに対して実行する処理内容が記述されている。実行部130は、運用操作部品121aを読み込むと、実行許否判定処理を行う(ステップS21)。実行許否判定処理では、例えば管理対象サーバにおいて、保守管理などのサービス提供を受けるためのライセンスがあるか否かが判断される。実行許否判定の判断に、例えば管理対象サーバで使用しているCPUコア数が参照される場合、実行部130は、物理サーバ情報の取得を、解析部140に依頼する。実行部130は、解析部140を介して取得した物理サーバ情報に基づいて、管理対象サーバが使用しているCPUコア数を認識し、ライセンスに示される条件が満たされるか否かを判断する。ライセンスに示される条件が満たされる場合、実行部130は、運用操作部品121aの処理を実行可能と判断する。実行部130は、実行可能と判断した場合、運用操作部品121aに記述されている処理を実行する(ステップS22)。
解析部140は、実行部130からの物理サーバの情報取得の依頼に応じ、管理対象となるサーバの情報を取得する(ステップS31)。このとき、管理対象が、例えば物理サーバ31であれば、物理サーバ31自身の情報が取得される。また管理対象が、例えば物理サーバ31で実行されている仮想サーバであれば、仮想サーバの情報が取得される。解析部140は、取得した情報に基づいて、管理対象サーバが仮想サーバか物理サーバかを判断する(ステップS32)。管理対象サーバが仮想サーバであれば、その仮想サーバまでのネットワークの経路上のノード情報を取得し、取得したノード情報に基づいて、ノード間の関係を示す関係情報を組み立てる(ステップS33)。解析部140は、関係情報の組み立てが完了したかどうかを判断し、未完了であれば、ノードの情報の取得を繰り返す(ステップS34)。関係情報の組み立てが完了すると、解析部140は、ノード間の関係情報に基づいて、管理対象の仮想サーバを実行している物理サーバを特定する(ステップS35)。解析部140は、特定した物理サーバ情報をCMDB110から取得し、実行部130に送信する(ステップS36)。
図6は、実行許否判定処理の詳細手順の一例を示すフローチャートである。
[ステップS101]実行部130は、管理対象サーバのライセンス状態確認フラグがONかOFFかを判断する。ライセンス状態確認フラグは、運用フローにおいて管理対象として指定されたサーバが、サービス提供を受けるためのライセンスを有しているか否かを示すフラグである。ライセンス状態確認フラグは、例えば、サーバの識別子(ホスト名またはIPアドレス)に対応付けてメモリ102に保持される。管理対象サーバのライセンス状態確認フラグがONであれば、実行許否判定処理が終了する。管理対象サーバのライセンス状態確認フラグがOFFであれば、処理がステップS102に進められる。
[ステップS102]実行部130は、使用可能なライセンス数が0より大きいか否かを判断する。使用可能なライセンス数は、ライセンスにおいて使用が許容されているCPUコア数から、ライセンス状態フラグがONとなっている管理対象サーバが使用しているCPUコア数を減算して得られる数値であり、予め変数に設定されている。使用可能なライセンス数が0より多ければ、処理がステップS103に進められる。使用可能なライセンス数が0以下であれば、管理対象サーバへの処理の実行は不許可と判断され、実行許否判定処理が終了する。
[ステップS103]実行部130は、解析部140に物理サーバ情報の取得を依頼する。その依頼に応じて、解析部140が、物理サーバ情報の取得処理を行う。物理サーバ情報所得処理の詳細は後述する。
[ステップS104]実行部130は、使用可能なライセンス数と取得した物理サーバ情報に示されるCPUコア数とを比較する。
[ステップS105]実行部130は、使用可能なライセンス数がCPUコア数以上かどうかを判断する。使用可能なライセンス数がCPUコア数以上であれば、処理がステップS106に進められる。使用可能なライセンス数がCPUコア数未満であれば、管理対象サーバへの処理の実行は不許可と判断され、実行許否判定処理が終了する。
[ステップS106]実行部130は、使用可能なライセンス数から、取得したCPUコア数を減算する。
[ステップS107]実行部130は、減算結果により、使用可能なライセンス数を更新する。例えば実行部130は、使用可能なライセンス数を示す変数に、減算結果を設定する。
[ステップS108]実行部130は、管理対象サーバのライセンス状態確認フラグをONにする。
このようにして、ライセンスにおいて許容される範囲内で、管理対象サーバに対する運用フローに応じた処理が実行される。管理対象サーバが仮想サーバであれば、解析部140によって、仮想サーバを実行している物理サーバが特定され、その物理サーバから、CPUコア数を含む物理サーバ情報が取得される。以下、仮想サーバを実行している物理サーバの特定処理について詳細に説明する。なお、仮想サーバを物理サーバで実行することは、仮想サーバを物理サーバに配備するとも呼ばれる。
解析部140は、管理対象である仮想サーバがどの物理サーバで実行されているかの判断を、すべてのネットワークトポロジマップを作成するような大規模な処理をせずに、管理サーバ100から管理対象サーバまでの経路を組み立てることで実現する。例えば解析部140は、ICMP(Internet Control Message Protocol)における生存時間を示すパラメタであるTTLの仕組みを利用して、管理サーバ100から管理対象の仮想サーバまでのネットワーク経路を取得する。TTLは、パケットの有効期間を示す値である。TTLを含むパケットが伝送するとき、パケットを受信したノードにおいてTTLの値が1だけ減らされる。TTLが0になった場合、そのパケットの宛先に到達していなくても、そのパケットはそれ以上転送されずに破棄される。
管理対象の仮想サーバまでのネットワーク経路を取得した解析部140は、ネットワーク経路上に存在するノード情報を収集し、ノード間の関係性情報を組み立てる。組み立てた関係性情報から、管理対象の仮想サーバがどの物理サーバで実行されているのかが把握できる。このような処理により、仮想サーバを実行している物理サーバを、仮想化ソフトウェアを介さずに判断できるようになる。
図7は、仮想サーバを実行している物理サーバの判定例を示す図である。管理サーバ100は、仮想サーバ51〜54のIPアドレスは保持しているが、仮想サーバ51〜54までのネットワーク経路上にどんなノードが存在しているかに関する最新の情報は保持していない。そのため、管理対象の仮想サーバ51〜54がどの物理サーバ31,32に配備されているかということが分からない。
なお物理サーバ31,32それぞれで実行されている仮想化ソフトウェア31a,32aに対して問い合わせれば、物理サーバ31,32で実行されている仮想サーバ51〜54の情報を取得できる。しかし、仮想化ソフトウェア31a,32aは、異なるベンダの製品の場合、各ベンダが、外部から仮想化ソフトウェア31a,32aに問い合わせるためのI/F(インタフェース)を個別に規定している。例えば、A社製の仮想化ソフトウェア31aへの問い合わせはA社が規定したコマンドI/Fを用い、B社製の仮想化ソフトウェア32aへの問い合わせはB社が規定したコマンドI/Fを用いることとなる。このように仮想化ソフトウェアに問い合わせる場合、管理サーバ100において仮想化ソフトウェア製品のベンダごとのI/Fに対応しなければならず、管理負担が大きい。しかも外部からの問い合わせ用のI/Fが用意されていない仮想化ソフトウェア製品があった場合、仮想サーバがどの物理サーバで実行されているのかを、仮想化ソフトウェアに問い合わせることはできない。
そこで、第2の実施の形態では、仮想化ソフトウェアに依存せずに、管理対象の仮想サーバについて、どの物理サーバで実行されているのかを特定できるようにする。例えば第2の実施の形態では、仮想サーバ51〜54とのネットワークを介した通信は、仮想サーバ51〜54を実行する物理サーバ31,32のインタフェースを介して行われるということを利用する。すなわち、仮想サーバ51〜54までの通信経路上で、仮想サーバ51〜54の前に存在する最も近い物理サーバが分かれば、それが仮想サーバ51〜54が配備されている物理サーバであると特定できる。
ここで、仮想サーバ51〜54それぞれを管理対象サーバとする処理に関する運用フローが、実行部130で実行されたものとする。この場合、実行部130から解析部140に対して、物理サーバ情報の取得が依頼される。物理サーバ情報の取得を依頼する際、実行部130は、運用フローから、管理対象サーバのIPアドレス、ユーザID、パスワード、通信プロトコルの情報を抽出し、解析部140に渡す。解析部140は、実行部130から受け取った情報をもとに管理対象サーバに接続し、管理対象サーバが仮想サーバか、物理サーバか、ルータかを判断できる。
管理対象サーバに接続する際、解析部140は、TTLを1から順にカウントアップしながら、各仮想サーバ51〜54に対して繰り返しエコー要求61〜67を送信する(ステップS41)。エコー要求61〜67は、TTLで指定した値分しか転送されず、エコー要求61〜67を破棄したノードはエラーを応答する。そのため管理サーバ100は、管理サーバ100から各管理対象サーバまでの経路上のノード、および管理対象サーバから応答を受信できる。
これにより、解析部140は、仮想サーバ51までの経路上に、ルータ41と物理サーバ31とがあることを認識できる。同様に、解析部140は、仮想サーバ53宛てのTTLの異なるエコー要求64〜67それぞれに対する応答により、仮想サーバ53までの経路上に、2台のルータ41,42と物理サーバ32とがあることを認識できる。
管理対象サーバまでの経路上のマシンを認識した解析部140は、そのマシンの詳細情報を収集する(ステップS42)。解析部140が収集した詳細情報は、CMDB110に格納される。例えば応答を返した各ノードの名称、IPアドレス、CPUコア数、マシン種別(仮想マシン(VM)なのか物理マシン(PM)なのか)の情報が、CMDB110に格納される。
解析部140は、エコー要求に対する応答に基づいて、ノード間の接続関係を示す関係性情報150を組み立てる(ステップS43)。例えばエコー要求61〜63に対する応答に基づいて、ルータ41の先に物理サーバ31があり、物理サーバ31の先に仮想サーバ51があることを示す関係性情報150が組み立てられる。関係性情報150は、メモリ102またはHDD103に格納される。
このようにして、CMDB110が最新の状態に更新され、関係性情報150にノード間の接続関係が保持される。実行部130は、CMDB110に格納された情報により、管理対象サーバのマシン種別を判断し、仮想サーバであれば、関係性情報150に基づいて、管理対象の仮想サーバの前に存在する最も近い物理サーバを特定する。そして実行部130は、特定した物理サーバのCPUコア数をCMDB110から取得して、実行許否判定を行う。
なお、図7に示した処理であれば、ネットワークトポロジにおいて、仮想サーバの先にさらに仮想サーバがある場合でも、仮想サーバを実行している物理サーバを正しく判断することができる。
図8は、仮想サーバが多段構成となっている場合の例である。図8の例では、仮想サーバ52を介して仮想サーバ51が接続されている。この場合、管理対象の仮想サーバ51までのネットワーク経路が仮想サーバ52を経由しているが、その前に必ず物理サーバ31を経由する。そのため、管理サーバ100から仮想サーバ51までの経路上の各ノードのマシン種別を判別すれば、仮想サーバ51が配備されている物理サーバ31を特定可能である。
エコー要求が宛先に届いたか否かは、応答されたメッセージの種類によって判断できる。
図9は、ICMPメッセージの種類を示す図である。ICMPメッセージには、種類を識別するための値が付与されている。値が「0」のメッセージの種類は「応答」であり、エコー要求への応答(Echo Reply)であることを示している。値が「3」のメッセージの種類は「エラー」であり、宛先への到達不能(Destination Unreachable)であることを示している。値が「8」のメッセージの種類は「要求」であり、エコー要求(Echo Request)であることを示している。値が「11」のメッセージの種類は「エラー」であり、時間切れエラー(Time Exceeded)であることを示している。
図10は、エコー要求に対する応答状況の一例を示す図である。運用操作時に、管理サーバ100と管理対象の仮想サーバ51との間に存在するマシンのIPアドレスを取得するため、管理サーバ100の解析部140が、仮想サーバ51に向けて、IPパケットでTTL=1としたICMPのエコー要求61を送信する。このとき、管理サーバ100と仮想サーバ51との間にマシンが存在すると、管理サーバ100から見て1番目のマシンであるルータ41においてIPヘッダのTTLの値が1減らされて、TTL=0となる。その結果、エコー要求61はルータ41で破棄される。エコー要求61を破棄したルータ41は、管理サーバ100に「Time Exceeded」のエラー応答71を送信する。管理サーバ100の解析部140は、「Time Exceeded」のエラー応答71の送信元のIPアドレスを確認、取得する。
「Time Exceeded」のエラー応答71が返信されてきた場合は、マシンの詳細情報の収集やネットワークの関係情報の組み立て後、解析部140は、TTLの値を1増やして、再度、仮想サーバ51に向けてICMPのエコー要求62を送信する。仮想サーバ51宛てのTTL=2のエコー要求62は、ルータ41から物理サーバ31に転送される。エコー要求62のTTLの値は、物理サーバ31が受信したときに「0」となり、破棄される。エコー要求62を破棄した物理サーバ31は、管理サーバ100に「Time Exceeded」のエラー応答72を送信する。管理サーバ100の解析部140は、「Time Exceeded」のエラー応答72の送信元のIPアドレスを確認、取得する。
その後、解析部140は、仮想サーバ51宛てのTTL=3のエコー要求63を送信する。エコー要求63は、ルータ41と物理サーバ31とを経由して、仮想サーバ51に転送される。仮想サーバ51は、自分宛てのエコー要求63であることを認識し、エコー応答73を返す。このエコー応答73により、管理サーバ100の解析部140は、管理対象サーバである仮想サーバ51のIPアドレスを確認、取得する。
このようにエコー応答が返ってくるまで、TTL値をカウントアップしながらのエコー要求の送信を繰り返すことで、管理サーバ100と管理対象サーバとの間に存在するマシンのIPアドレスを順番に取得できる。
なお、セキュリティが強化され、デフォルトの設定では、ICMPの受信を許可しないマシンもある。この場合ICMPを利用した処理だけでは、管理サーバ100と管理対象サーバとの間に存在するマシンのIPアドレスを取得できない。そこで第2の実施の形態では、管理サーバ100は、管理対象サーバに対してICMP要求を送信したときICMPのTime Exceededエラーが取得できない場合は、ICMPの受信を許可しないマシンが経路上に存在すると判断する。ICMPが利用できないと判断した場合、管理サーバ100は、管理対象サーバを運用操作しようとしているプロトコル(例えばSSH:Secure Shell)のポートに対してSynフラグを設定したTCP(Transmission Control Protocol)パケットを送信する。ここで送信するTCPパケット(Synパケット)にはTTLの仕組みを付加したものを使用し、管理サーバ100は、TTL=1から順に値を1ずつ増やしながら、管理対象サーバにSynパケットを送信する。管理サーバ100から管理対象サーバの間に存在するマシンを通過するたびにTTLの値を1減らされ、TTLの値が0になったマシンが、管理サーバ100に対してICMPの応答を送信する。
図11は、Synパケットを利用したIPアドレスの取得例を示す図である。図11の例では、仮想サーバ51が管理対象サーバである。またルータ41はICMPを利用できるが、物理サーバ31と仮想サーバ51とはICMPを利用できない。
この場合、管理サーバ100の解析部140から仮想サーバ51宛てのTTL=1のエコー要求61が出力されると、ルータ41から「Time Exceeded」のエラー応答71が返される。次に解析部140から仮想サーバ51宛てのTTL=2のエコー要求62が出力されるが、そのエコー要求62は物理サーバ31で受信されない。そこで解析部140は、仮想サーバ51宛てのTTL=2のSynパケット68を送信する。すると物理サーバ31から「Time Exceeded」のエラー応答74が返される。さらに解析部140から仮想サーバ51宛てのTTL=3のエコー要求63が出力されるが、そのエコー要求63は仮想サーバ51で受信されない。そこで解析部140は、仮想サーバ51宛てのTTL=3のSynパケット69を送信する。すると仮想サーバ51から到達応答75が返される。
各装置からの応答には、送信元のIPアドレスが含まれているため、管理サーバ100は、管理対象サーバである仮想サーバ51までの経路上の各マシンのIPアドレスを取得できる。すなわち、ICMPの受信を許可しないマシンが途中に存在していた場合にも、管理サーバと管理対象サーバとの間に存在するマシンのIPアドレスを取得できる。
管理サーバ100は、管理対象サーバまでの経路上の各マシンのIPアドレスを取得すると、それらのマシンのノード情報を収集し、関係性情報を組み立てる。
図12は、ノード情報の収集と関係性情報の組み立て例を示す図である。管理対象サーバまでの経路上のマシンのIPアドレスを取得した管理サーバ100は、経路上のノード情報を収集する(ステップS51)。例えば管理サーバ100の解析部140は、経路上のマシンのIPアドレスに基づいて、各マシンのCIを収集し、CMDB110に格納する。CIとして収集する値は以下の通りである。
1.ノード情報(IPアドレス、ホスト名など)
2.マシンの種別(仮想サーバ/物理サーバ/ルータ)を判断する情報
3.CPU数
ノード情報を収集した管理サーバ100は、収集したマシン間のネットワークの関係性を示す関係性情報150を組み立てるために、結線情報として結線用CIを用意し、結線用CIを更新する(ステップS52)。この結線用CIの属性値には結線情報として、結線ごとにユニークな識別子を格納する。結線用CIを用いることで、マシン間の情報の関係性を明確にすることができる。例えば、ルータ41から取得したノード情報により、ホスト名「S1」の仮想サーバ51への結線情報に、ルータ41のホスト名「R1」が登録される。次に、物理サーバ31から取得したノード情報により、仮想サーバ51への結線情報に、ルータ41の接続先として物理サーバ31のホスト名「S3」が登録される。さらに、仮想サーバ51から取得したノード情報により、仮想サーバ51への結線情報に、物理サーバ31の接続先として仮想サーバ51のホスト名「S1」が登録される。
このような結線情報に基づいて、管理対象の仮想サーバと、その仮想サーバを実行している物理サーバとの関係性を示す関係性情報が組み立てられる(ステップS53)。
図13は、結線情報を用いたCI間の関係を示す図である。ノード情報が登録されたCI111〜113とは別に、結線情報が登録されたCI151,152が設けられている。ノード情報が登録されたCI111〜113には、システム構成情報(IPアドレスを含む)やマシン種別が設定されている。結線情報が登録されたCI151,152には、ユニークな識別子が設定されている。結線情報のCI151,152は、リレーション(CI間リンク)81〜84によって、ノード情報のCI111〜113に関連付けられている。このようなリレーション81〜84を辿れば、仮想サーバがどの物理サーバで実行されているのかを認識できる。
図14は、リレーションの設定例を示す図である。解析部140は、マシン間のネットワークの関係性情報を、以下の手順で組み立てる。まず解析部140は、管理対象サーバに対して、パケット(エコー要求またはSynパケット)を送信する際に、CI151に結線情報(例えばユニークな識別子)を格納する(ステップS61)。次に解析部140は、CI112に対応するノードから応答を受信すると、直前に取得したマシン(最初は管理サーバ100のノード情報)のCI111との間にリレーションを設定する(ステップS62)。また解析部140は、応答を返したノードのCI112と直前に更新された結線情報のCI151との間にリレーションを設定する(ステップS63)。このような処理を繰り返して、結線情報に対応するCIを介して、経路上のノードが関係付けられる。
次に、ノード情報と結線情報について詳細に説明する。
図15は、ノード情報の一例を示す図である。図15には、ノード情報91に含まれる要素の要素名(Element Name)、親要素名(Parent Element)、要素説明(Element Description)が示されている。また各要素に含まれるコンポーネントのコンポーネント名(Component Name)、コンポーネントタイプ(Component Type)、コンポーネント説明(Component Description)、データタイプ(Data Type)、数量(# of)が示されている。
図15に示すように、ノード情報91には、要素名「LogicalServer」のコンポーネント名「ipAddress」として、IPアドレスが設定されている。要素名「LogicalServerConfiguration」のコンポーネント名「machineType」として、マシン種別が設定されている。要素名「LogicalCPU」のコンポーネント名「core」として、CPUコア数が設定されている。
図16は、結線情報の一例を示す図である。図16には、結線情報92に含まれる要素の要素名(Element Name)、親要素名(Parent Element)、要素説明(Element Description)が示されている。また各要素に含まれるコンポーネントのコンポーネント名(Component Name)、コンポーネントタイプ(Component Type)、コンポーネント説明(Component Description)、データタイプ(Data Type)、数量(# of)が示されている。図16に示すように、結線情報にはユニーク識別子が含まれている。
結線情報を介してノード間の接続関係が判明すると、解析部140は、管理対象の仮想サーバの前に存在する最も近い物理サーバを特定する。管理対象の仮想サーバの前に存在する最も近い物理サーバを特定する手順は、以下の通りである。
仮想サーバは必ず物理サーバに配備されており、物理サーバのインタフェースを介してアクセスされるため、仮想サーバの前に存在する最も近い物理サーバが、仮想サーバを実行している物理サーバであると判断できる。
1.CMDB110に格納されている管理対象サーバの情報を参照し、結線情報を介したリレーション先のマシンを特定する。
2.CMDB110に格納されているリレーション先のマシンのマシン種別を参照し、対象マシンが物理サーバかどうかを判断する。
3.リレーション先のマシン種別が物理サーバでない場合(仮想サーバと物理サーバの間に仮想ルータが存在するというような場合)は、マシン種別に「物理サーバ」という情報が格納されているマシンが見つかるまで、管理サーバに向けてリレーションを順に辿る。
管理対象である仮想サーバを実行している物理サーバを特定すると、解析部140は、物理サーバのCPUコア数を取得する。例えば解析部140は、CMDB110に既に収集されているノード情報(図15参照)から、管理対象の仮想サーバを実行している物理サーバのCPUコア数の情報を取得する。
これらの処理により、仮想化ソフトウェアに問い合わせることなく、仮想サーバが配備されている物理サーバの情報(例えばCPUコア数)が取得可能となる。しかも、管理対象の仮想サーバの前に存在する最も近いのが物理サーバか仮想サーバかに関係なく、仮想サーバが配備されている物理サーバの情報を取得できる。さらに、管理対象サーバまでの経路上に、セキュリティ強化によりICMPの受信を許可しないノードがあっても、仮想サーバが配備されている物理サーバの情報を取得できる。
次に、物理サーバ情報取得処理の手順を詳細に説明する。
図17は、物理サーバ情報取得処理の手順の一例を示す図である。
[ステップS111]実行部130は、運用フローを解析し、管理対象サーバへの接続情報(例えばIPアドレス)を取得する。実行部130は、取得した接続情報を含む、物理サーバ情報の取得要求を、解析部140に送信する。
[ステップS112]解析部140は、管理対象サーバに接続し、マシン種別を取得する。
[ステップS113]解析部140は、CMDB110内の、管理対象サーバの「LogicalServer」CIの情報を更新する。
[ステップS114]解析部140は、管理対象サーバが仮想サーバか否かを判断する。仮想サーバであれば、処理がステップS115に進められる。仮想サーバでなければ、処理がステップS120に進められる。
[ステップS115]解析部140は、ノード情報取得処理を行う。ノード情報取得処理の詳細は後述する(図18参照)。ノード情報取得処理により、管理サーバ100から管理対象サーバまでの経路上の1つのノードのノード情報が取得される。
[ステップS116]解析部140は、取得したノード情報に基づいて、関係性情報組み立て処理を行う。関係性情報組み立て処理の詳細は後述する(図19参照)。
[ステップS117]解析部140は、取得したノード情報に示されるノードが管理対象サーバか否かを判断する。管理対象サーバであれば、処理がステップS119に進められる。管理対象サーバでなければ、処理がステップS118に進められる。
[ステップS118]解析部140は、次のノード情報取得処理において送信するパケットのTTL値を1増加させる。その後、処理がステップS115に進められる。
[ステップS119]解析部140は、物理サーバ特定処理を行う。物理サーバ特定処理の詳細は後述する(図20参照)。物理サーバ特定処理により、管理対象である仮想サーバを実行している物理サーバが特定される。
[ステップS120]解析部140は、CMDB110内の、特定された物理サーバの「LogicalServer」CIから、CPUコア数などのCPU情報を抽出する。解析部140は、取得したCPU情報を、実行部130に送信する。
このようにして、実行部130は、管理対象サーバが使用しているCPUコア数を取得することができる。取得したCPUコア数を用いて、図6に示したようなライセンス管理が行われる。
次に、ノード情報取得処理について詳細に説明する。
図18は、ノード情報取得処理の手順の一例を示すフローチャートである。
[ステップS131]解析部140は、TTLの値を設定したICMPのエコー要求を、管理対象サーバ宛てに送信する。
[ステップS132]解析部140は、エコー要求に対する応答の種別を判定する。応答がエコー応答であれば、処理がステップS133に進められる。応答が「Time Exceeded」のエラー応答であれば、処理がステップS138に進められる。応答が到達不能メッセージであれば、処理がステップS134に進められる。
[ステップS133]解析部140は、エコー応答を受信した場合、管理対象サーバの判定フラグをONにする。その後、処理がステップS138に進められる。
[ステップS134]解析部140は、到達不能メッセージを受信した場合、CMDB110から、管理対象サーバとの通信に使用する通信プロトコルのポート番号を取得する。
[ステップS135]解析部140は、TTL値とSynフラグを設定したTCPパケットを、管理対象サーバの通信プロトコルのポート宛てに送信する。
[ステップS136]解析部140は、送信したTCPパケットに対する応答の種別を判定する。応答が「Time Exceeded」のエラー応答であれば、処理がステップS138に進められる。応答がエコー応答であれば、処理がステップS137に進められる。応答が到達不能メッセージであれば、ノード情報の取得に失敗したものとして、ノード情報取得処理が終了する。
[ステップS137]解析部140は、エコー応答を受信した場合、管理対象サーバの判定フラグをONにする。
[ステップS138]解析部140は、応答の送信元のIPアドレスを、送信元のノードの経路情報として取得する。送信元のIPアドレスは、例えば応答パケットのヘッダ情報から取得できる。
[ステップS139]解析部140は、応答の送信元のノードのノード情報を収集する。例えば解析部140は、ステップS138で取得したIPアドレスを宛先として、ノード情報を要求するパケットを送信する。すると宛先として指定されたノードから、そのノードのノード情報が管理サーバ100に送信される。解析部140は、取得したノード情報を、CMDB110内の「LogicalServer」CIに格納する。
[ステップS140]解析部140は、前回のノード情報取得処理で取得した経路情報(IPアドレス)を、「変数1」に格納する。なお、初回のノード情報取得処理では、管理サーバ100のIPアドレスが「変数1」に格納される。
[ステップS141]解析部140は、今回のノード情報取得処理で取得した経路情報(IPアドレス)を、「変数2」に格納する。その後、ノード情報取得処理が終了する。
このようにして、ノード情報が取得される。解析部140は、ノード情報を取得するごとに、関係性情報組み立て処理を行う。
図19は、関係性情報組み立て処理の手順の一例を示すフローチャートである。
[ステップS151]解析部140は、結線用CIを作成する。
[ステップS152]解析部140は、結線用CIにユニークな識別子を格納する。
[ステップS153]解析部140は、「変数1」に格納された直前ノードの経路情報を基に、CMDB110からCIを検索する。直前ノードとは、前回のノード情報取得処理で取得したノード情報に対応するノードである。
[ステップS154]解析部140は、直前ノードのCIと、ステップS151で作成した結線用CIとの間にリレーションを作成する。
[ステップS155]解析部140は、「変数2」に格納された取得ノードの経路情報を基に、CMDB110からCIを検索する。取得ノードとは、今回のノード情報取得処理で取得したノード情報に対応するノードである。
[ステップS156]解析部140は、取得ノードのCIと、ステップS151で作成した結線用CIとの間にリレーションを作成する。
このようにして、ノード情報が取得されるごとに、関係性情報が組み立てられていく。管理サーバ100から管理対象である仮想サーバまでの関係性情報が完成すれば、その関係性情報に基づいて、仮想サーバを実行している物理サーバを特定できる。
図20は、物理サーバ特定処理の手順の一例を示すフローチャートである。
[ステップS161]解析部140は、CMDB110の管理対象サーバのノード情報を参照する。
[ステップS162]解析部140は、参照しているノード情報に対応するCIのリレーション先の結線用CIの情報を、関係性情報150から取得する。
[ステップS163]解析部140は、取得した結線用CIに格納されているユニーク識別子を取得する。
[ステップS164]解析部140は、取得した結線用CIのユニーク識別子を基に、その結線用CIのもう一方のリレーション先のCIのノード情報を参照する。
[ステップS165]解析部140は、参照しているノード情報に格納されているマシン種別を参照する。
[ステップS166]解析部140は、マシン種別が物理マシンか否かを判断する。物理マシンであれば、処理がステップS167に進められる。物理マシンでなければ、処理がステップS162に進められる。
[ステップS167]解析部140は、現在参照しているノード情報に対応するノードが、管理対象の仮想サーバを実行している物理サーバであると特定する。その後、物理サーバ特定処理が終了する。
このようにして、管理対象の仮想サーバを実行している物理マシンを特定することができる。すなわち、仮想サーバは物理サーバに配備されており、仮想サーバが外部と通信をする際にはネットワークの通信経路は物理サーバを経由する。そのため、管理対象の仮想サーバまでの通信経路を、運用フロー実行時に取得することで、仮想サーバが配備されている物理サーバの情報を、確認時点の情報で、確実に取得することが可能となる。
また第2の実施の形態では、ネットワークトポロジマップを全て作成せずに、運用フロー実行時に管理サーバから管理対象サーバまでの経路だけをチェックすることで、仮想サーバが配備されている物理サーバの情報を取得可能である。そのため、仮想サーバを実行している物理サーバを、少ない処理負荷で特定できる。
さらに第2の実施の形態では、物理サーバと仮想サーバの関係性を取得する際に、管理サーバ上のCMDBが、収集した管理サーバから管理対象サーバまでのネットワーク経路上のマシンの結線情報に基づいて、ノード情報間にリレーションを設定する。リレーションにより、従来独立して存在していた個々のノード情報が、関係性をもって組み立てられる。これにより、仮想化ソフトウェアを介さずとも仮想サーバが配備されている物理サーバの情報を取得可能となる。
第2の実施の形態では、管理サーバ100から管理対象サーバまでのネットワーク経路を取得する際に、ICMPの「Time Exceeded」のエラー応答が取得できたかどうかに基づいて、ICMPの受信を許可しないマシンが経路上に存在するかどうかが判断される。ICMPの受信を許可しないマシンがあれば、管理対象サーバを操作しようとしているプロトコルに対してTTLの情報を付加したSynパケットを送信することで、そのマシンの経路情報が取得される。これによって、管理サーバから管理対象サーバまでの経路の途中にICMPの受信を許可しないマシンが存在しても、ネットワーク経路が取得可能となる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1〜3 計算機
2a 仮想化ソフトウェア
4,6,8 探索パケット
5,7 エラー応答
9 正常応答
10 管理装置
11 演算部
12 記憶部
12a 経路情報

Claims (6)

  1. コンピュータに、
    対象計算機に対し転送可能回数が異なる複数のパケットを送信し、
    前記複数のパケットに対する応答に基づき、前記コンピュータから前記対象計算機への経路を示す経路情報を生成し、
    前記経路情報により特定される、前記対象計算機までの経路に存在する複数の計算機それぞれについて、物理計算機または仮想計算機の計算機種別を示す種別情報を取得し、
    前記対象計算機が仮想計算機である場合に、前記種別情報および前記経路情報に基づき、前記コンピュータから前記対象計算機までの経路上で前記対象計算機に最も近い物理計算機を、前記対象計算機が実行されている物理計算機として特定する、
    処理を実行させる管理プログラム。
  2. 前記送信では、前記転送可能回数が1ずつ相違する前記複数のパケットを送信する、
    請求項1記載の管理プログラム。
  3. 前記生成では、転送可能回数がn(nは1以上の整数)の第1のパケットに対する応答を返した第1応答計算機までの経路の先に、前記第1応答計算機から、転送可能回数がn+1の第2のパケットに対する応答を返した第2応答計算機への経路を接続し、前記コンピュータから前記第2応答計算機への経路とする、
    請求項記載の管理プログラム。
  4. コンピュータに、
    通信開始を要求する、転送可能回数が異なる複数のパケットを、対象計算機に対して送信し、
    前記複数のパケットに対する応答に基づき、前記コンピュータから前記対象計算機への経路を示す経路情報を生成し、
    前記経路情報により特定される、前記対象計算機までの経路に存在する複数の計算機それぞれについて、物理計算機または仮想計算機の計算機種別を示す種別情報を取得し、
    前記対象計算機が仮想計算機である場合に、前記種別情報および前記経路情報に基づき、前記対象計算機が実行されている、物理計算機を特定する、
    処理を実行させる管理プログラム。
  5. コンピュータが、
    対象計算機に対し転送可能回数が異なる複数のパケットを送信し、
    前記複数のパケットに対する応答に基づき、前記コンピュータから前記対象計算機への経路を示す経路情報を生成し、
    前記経路情報により特定される、前記対象計算機までの経路に存在する複数の計算機それぞれについて、物理計算機または仮想計算機の計算機種別を示す種別情報を取得し、
    前記対象計算機が仮想計算機である場合に、前記種別情報および前記経路情報に基づき、前記コンピュータから前記対象計算機までの経路上で前記対象計算機に最も近い物理計算機を、前記対象計算機が実行されている物理計算機として特定する、
    管理方法。
  6. 管理装置であって、
    対象計算機に対し転送可能回数が異なる複数のパケットを送信し、前記複数のパケットに対する応答に基づき、前記管理装置から前記対象計算機への経路を示す経路情報を生成し、前記経路情報により特定される、前記対象計算機までの経路に存在する複数の計算機それぞれについて、物理計算機または仮想計算機の計算機種別を示す種別情報を取得し、前記対象計算機が仮想計算機である場合に、前記種別情報および前記経路情報に基づき、前記管理装置から前記対象計算機までの経路上で前記対象計算機に最も近い物理計算機を、前記対象計算機が実行されている物理計算機として特定する演算部、
    を有する管理装置。
JP2015045833A 2015-03-09 2015-03-09 管理プログラム、管理方法、管理装置 Active JP6515597B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015045833A JP6515597B2 (ja) 2015-03-09 2015-03-09 管理プログラム、管理方法、管理装置
US15/062,378 US10148518B2 (en) 2015-03-09 2016-03-07 Method and apparatus for managing computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015045833A JP6515597B2 (ja) 2015-03-09 2015-03-09 管理プログラム、管理方法、管理装置

Publications (2)

Publication Number Publication Date
JP2016167671A JP2016167671A (ja) 2016-09-15
JP6515597B2 true JP6515597B2 (ja) 2019-05-22

Family

ID=56888392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015045833A Active JP6515597B2 (ja) 2015-03-09 2015-03-09 管理プログラム、管理方法、管理装置

Country Status (2)

Country Link
US (1) US10148518B2 (ja)
JP (1) JP6515597B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429694B2 (en) * 2018-08-17 2022-08-30 Amazon Technologies, Inc. Rule-based resource management system
US10924375B2 (en) * 2019-01-28 2021-02-16 Juniper Networks, Inc Apparatus, system, and method for probing the status of unreachable virtual interfaces partitioned on remote physical interfaces

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1466248A1 (en) 2002-01-15 2004-10-13 Foundstone, Inc. System and method for network vulnerability detection and reporting
JP4373271B2 (ja) 2004-05-14 2009-11-25 富士通株式会社 ノード網における仮想lanの網構成を把握する方法およびプログラム
US8909758B2 (en) * 2006-05-02 2014-12-09 Cisco Technology, Inc. Physical server discovery and correlation
JP4873556B2 (ja) * 2007-01-10 2012-02-08 Kddi株式会社 ネットワークの論理トポロジを検出するトポロジ検出方法、通信装置、管理装置及びプログラム
US9064216B2 (en) * 2012-06-06 2015-06-23 Juniper Networks, Inc. Identifying likely faulty components in a distributed system
US9100289B2 (en) * 2012-11-02 2015-08-04 Juniper Networks, Inc. Creating searchable and global database of user visible process traces
JP2014045437A (ja) * 2012-08-28 2014-03-13 Nec Corp ネットワークトポロジ生成システム、方法およびプログラム
JP6028657B2 (ja) * 2013-03-28 2016-11-16 富士通株式会社 検証プログラム、検証方法および検証装置

Also Published As

Publication number Publication date
JP2016167671A (ja) 2016-09-15
US20160269246A1 (en) 2016-09-15
US10148518B2 (en) 2018-12-04

Similar Documents

Publication Publication Date Title
US10313183B2 (en) Network function virtualization NFV fault management apparatus, device, and method
WO2020253347A1 (zh) 一种容器集群管理方法、装置及系统
CN110036599B (zh) 网络健康信息的编程接口
JP6170237B2 (ja) サービスプロバイダネットワークにおけるプライベート仮想ネットワークの自動作成
US7953830B2 (en) Automatic network reconfiguration upon changes in DHCP IP addresses
US8639798B2 (en) Managing configuration items
JP5132770B2 (ja) 最善のdhcpサーバを見出すためのルータの動的な構成
JP4343983B2 (ja) ネットワーク管理装置およびネットワークの管理方法
US8423734B2 (en) Making automated use of data volume copy service targets
US20110069710A1 (en) Switching Method
JP2018156645A (ja) ストレージシステム及びその動作方法
CN112702214A (zh) 配置网络
KR20180127179A (ko) NVMe-oF SSD의 정밀한 튜닝 및 최적화를 위한 장치 및 방법
US8589538B2 (en) Storage workload balancing
JP5477047B2 (ja) 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
JP2009169860A (ja) 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
JP2014182576A (ja) 構成管理装置と構成管理方法及び構成管理プログラム
WO2015036462A1 (en) Integration method and system
JP6515597B2 (ja) 管理プログラム、管理方法、管理装置
JP2010128597A (ja) 情報処理装置及び情報処理装置の運用方法
JP2015022501A (ja) 構築装置、構築方法、及び構築プログラム
US8433877B2 (en) Storage scalability management
JP2021129142A (ja) ネットワーク構成図生成方法およびネットワーク構成図生成プログラム
US20160004584A1 (en) Method and computer system to allocate actual memory area from storage pool to virtual volume
US9609077B1 (en) Forwarding content on a client based on a request

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6515597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150