ライセンスチェックシステムおよびリソースプール管理システム
【課題】仮想マシンや仮想サーバ上で稼働するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することができるライセンスチェックシステムを提供する。
【解決手段】複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプール2においてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、リソースプール2において稼働中のシステムの構成情報を記録して保持する構成管理部30と、構成管理部30から構成情報を取得し、リソースプール2において稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジック42に従って算出し、ライセンス状況DB41に記録するライセンスチェック部40とを有する。
【解決手段】複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプール2においてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、リソースプール2において稼働中のシステムの構成情報を記録して保持する構成管理部30と、構成管理部30から構成情報を取得し、リソースプール2において稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジック42に従って算出し、ライセンス状況DB41に記録するライセンスチェック部40とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IT関連資産のライセンス管理の技術に関し、特に、クラウドコンピューティングサービス等において利用される仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンスの有無をチェックするライセンスチェックシステムおよびリソースプール管理システムに適用して有効な技術に関するものである。
【背景技術】
【0002】
近年では、例えばデータセンターなどの設備に多数のサーバ機器やネットワーク機器などのコンピュータリソースからなるシステム環境を構築してリソースプールとして管理し、顧客が必要とする分のリソースを仮想マシンや仮想サーバの形で提供するクラウドコンピューティングサービスが普及してきている。
【0003】
このようなサービスを提供する事業者等では、顧客からのリソース使用の要求に適時に対応することが可能となるよう、予め未使用・未割当てのハードウェア(HW)やソフトウェア(SW)を在庫として保持・管理しておき、顧客とのサービスに係る契約の成立やリソースの使用要求(システムの変更要求)などに応じて、在庫から必要なリソースを確保してリソースプールに展開したりシステムを構築したりすることが行われる。
【0004】
このとき、ソフトウェアリソースについては、ソフトウェアの現物ではなくライセンスを在庫として管理する必要がある。このライセンスの管理は、リソースを提供する事業者等が一元的に行う必要がある。ソフトウェアのライセンス管理の手法としては、例えば、企業における各従業員等のクライアント端末に導入されたソフトウェアのライセンスを自動的にチェックして管理するというようなことは一般的に行われており、そのための製品等も提供されている。
【0005】
例えば、特開2004−118584号公報(特許文献1)には、会社等の組織が有するソフトウェアライセンスに関するライセンス情報をデータベースに記憶し、また、組織内の社内端末で使用されているソフトウェアに関するインベントリ情報を取得してデータベースに記憶し、データベースに記憶されるライセンス情報について、ソフトウェア毎のライセンス数を計数し、また、データベースに記憶されるインベントリ情報について、ソフトウェア毎の使用数を計数し、各ソフトウェアについてライセンス数と使用数を比較し、使用数がライセンス数より大きいソフトウェアを検出した場合、検出内容を示す警告メールを担当者宛で送信することで、組織で使用するソフトウェアのライセンス管理を効率良く行うことができるライセンス管理サーバが記載されている。
【0006】
また、特開2008−146390号公報(特許文献2)には、インベントリ収集機能及び使用許諾情報収集機能を備えた情報収集処理部、使用許諾情報から許諾条件を抽出する使用許諾条件抽出処理部、抽出した許諾条件を判別する使用許諾内容判別処理部、保有数チェック機能及び使用可能数チェック機能を備えた使用状況検証処理部、および各種のDBを具備し、システムのソフトウェアの使用状態の検証時に、使用ソフトウェアと使用ソフトウェアに係る使用許諾情報との相違を検出することで精度の高いライセンス管理を行うことができるソフトウェアライセンス管理システムが記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−118584号公報
【特許文献2】特開2008−146390号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
仮想マシンや仮想サーバの形で多数のコンピュータリソースをクラウドコンピューティングサービスとして提供する事業者等において、ソフトウェアのライセンスの管理を行うことは容易ではない。仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンス形態は、物理CPUや仮想CPUの数、コア数といった(仮想)ハードウェア構成に依存する場合が多く、仮想マシンや仮想サーバのシステム構成如何によってライセンスの消費数も変動するためである。
【0009】
このため、特許文献1に記載されているようにソフトウェアのインベントリ情報から単純にライセンス使用数を求めることができない。また、特許文献2に記載されているような技術を使用したとしても使用許諾の全文から使用許諾条件が判別可能な場合はあるものの、それに基づいてソフトウェアが実際に導入されている(仮想)ハードウェア構成を考慮した上でのライセンス消費数を求めることは困難である。
【0010】
従って従来では、クラウドコンピューティングサービスを提供するリソースプールにおけるソフトウェアのライセンス数のチェックを自動で行うような仕組みは存在せず、システム管理者等により手動で行って管理するのが一般的であった。しかし、チェックするリソースの数が多く、ソフトウェア毎のライセンスの許諾条件のバリエーションも多く複雑であるため、大きな作業負荷とコストを要していた。
【0011】
そこで本発明の目的は、仮想マシンや仮想サーバ上で稼働するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することができるライセンスチェックシステムおよび当該ライセンスチェックシステムを有するリソースプール管理システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0013】
本発明の代表的な実施の形態によるライセンスチェックシステムは、複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、以下の特徴を有するものである。
【0014】
すなわち、ライセンスチェックシステムは、前記リソースプールにおいて稼働中のシステムの構成情報をディスカバリして、物理サーバの構成情報を含むハードウェア構成、物理サーバ上で稼働する仮想マシンの構成情報を含む仮想ハードウェア構成および仮想マシン上で稼働するソフトウェアの情報を含む仮想ソフトウェア構成の各情報を取得し、これらをそれぞれ、HW構成記録手段、仮想HW構成記録手段および仮想SW構成記録手段に記録して保持する構成管理部と、前記構成管理部から前記ハードウェア構成、前記仮想ハードウェア構成および前記仮想ソフトウェア構成の情報を取得し、これらの情報に基づいて、前記リソースプールにおいて稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジックに従って算出し、ライセンス状況記録手段に記録するライセンスチェック部とを有することを特徴とするものである。
【0015】
また、本発明は、上記のライセンスチェックシステムを有し、顧客からの要求に基づく構築仕様の内容に従って、前記リソースプールにおいてハードウェアおよびソフトウェアのリソースを展開してシステムを構築してサービスとして提供するリソースプール管理システムにも適用することができる。
【発明の効果】
【0016】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0017】
本発明の代表的な実施の形態によれば、仮想マシンや仮想サーバ上で稼働するソフトウェアなど、物理的もしくは仮想的なハードウェア構成に依存してライセンスの消費数が変動するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することが可能となる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施の形態であるリソースプール管理システムの構成例について概要を示した図である。
【図2】本発明の一実施の形態におけるHWマスタDBのデータ構成の例について示した図である。
【図3】本発明の一実施の形態におけるSWマスタDBのデータ構成の例について示した図である。
【図4】本発明の一実施の形態における資産台帳DBのデータ構成の例について示した図である。
【図5】本発明の一実施の形態におけるHW構成DBのデータ構成の例について示した図である。
【図6】本発明の一実施の形態における仮想HW構成DBのデータ構成の例について示した図である。
【図7】本発明の一実施の形態における仮想SW構成DBのデータ構成の例について示した図である。
【図8】本発明の一実施の形態におけるライセンス状況DBのデータ構成の例について示した図である。
【図9】本発明の一実施の形態におけるHW在庫DBのデータ構成の例について示した図である。
【図10】本発明の一実施の形態におけるSW在庫DBのデータ構成の例について示した図である。
【図11】本発明の一実施の形態におけるHW在庫仮押えDBのデータ構成の例について示した図である。
【図12】本発明の一実施の形態におけるSW在庫仮押えDBのデータ構成の例について示した図である。
【図13】本発明の一実施の形態における契約内容管理DBのデータ構成の例について示した図である。
【図14】本発明の一実施の形態におけるハードウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。
【図15】本発明の一実施の形態におけるソフトウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。
【図16】本発明の一実施の形態におけるライセンスチェック処理の流れの例について概要を示したフローチャートである。
【図17】(a)〜(d)は、本発明の一実施の形態におけるライセンス計算パターンの判断基準の1つとなるソフトウェアのグルーピングパターンの概念の例について示した図である。
【図18】(1)〜(4)は、本発明の一実施の形態におけるライセンス計算パターンの別の判断基準となるライセンス計算グループの概念の例について示した図である。
【図19】本発明の一実施の形態におけるグルーピングパターンとライセンス計算グループをマトリクス化し、ライセンス計算パターンを割当てた例を示した図である。
【図20】本発明の一実施の形態におけるハードウェアリソースについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。
【図21】本発明の一実施の形態におけるソフトウェアのライセンスについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0020】
本発明の一実施の形態であるリソースプール管理システムは、複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールを構築し、顧客が必要とする分のリソースを仮想マシンの形でリソースプール上で提供するクラウドコンピューティングサービスの実装において利用されるシステムである。このリソースプール管理システムは、リソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムとしての機能を含む。
【0021】
リソースプール管理システムでは、顧客からのリソース使用の要求に適時に対応することが可能となるよう、予め未使用・未割当てのハードウェアやソフトウェアの資産を在庫として保持・管理しておき、顧客とのサービスに係る契約の成立やリソースの使用要求などに応じて、在庫から必要なリソースを確保してリソースプールに展開してシステムを構築する。このとき、特にソフトウェアについては、在庫を現物ではなくライセンスの残数として把握する必要がある。したがって、稼働中のシステム構成において消費されている各ソフトウェアのライセンス数をライセンス体系の特性に応じて適切に算出して、保有するライセンス数との比較により在庫に反映させるとともに、稼働中のシステムがライセンス違反となっていないことを確認する。
【0022】
また、顧客との契約等に基づいて新たにシステムを構築する際に、システム構成に応じた適切なライセンス数を在庫から引当てて確保した上で構築する。ライセンス数が不足しそうであることを検知した場合は、例えば購買担当者等に通知してライセンスの購入を促してもよい。以上のような仕組みにより、クラウドコンピューティング環境でのリソースプールのような大規模なシステム環境においてライセンスの管理を効率的に行うことを可能とする。
【0023】
<システム構成>
図1は、本発明の一実施の形態であるリソースプール管理システムの構成例について概要を示した図である。リソースプール管理システム1は、図示しないWebサーバシステムやアプリケーション等によって提供されるサービスポータル3のサイトを介して、システム担当者4や営業担当者5、購買担当者6などのユーザからのアクセスを受け、クラウドコンピューティングサービスを提供するための多数のコンピュータリソースからなるリソースプール2について、システムの構築や構成の管理、顧客との契約の管理、ソフトウェアのライセンスや、リソースの在庫の管理などを行うシステムである。
【0024】
リソースプール管理システム1は、例えば、1台以上のサーバ機器によって構成され、ソフトウェアプログラムによって実現される資産管理部20、構成管理部30、ライセンスチェック部40、在庫管理部50、契約管理部60およびシステム構築部70の各部を有する。これら各部は、それぞれを独立したシステムとして別個のサーバ機器上で実装してもよいし、複数を同一のサーバ機器上で共存させて実装してもよい。
【0025】
資産管理部20は、リソースプール管理システム1によって管理されるハードウェア/ソフトウェアリソース(資産)を資産台帳データベース(DB)21に登録・保持することで管理する。資産台帳DB21への資産の登録は、例えば、購買担当者6が購入した資産に関する情報をサービスポータル3によって提供されるエントリー画面等から入力することで行われる。図示しない他の購買システム等との連携により自動的に登録されるようにしてもよい。なお、ハードウェアおよびソフトウェアについてのマスタ情報は、HWマスタDB11およびSWマスタDB12に登録される。また、資産管理部20は、例えば、日次の処理により、資産台帳DB21に登録されている各資産についてベンダー等との保守契約の期間をチェックし、保守契約が終了もしくは終了しそうなものについて購買担当者6等に電子メールなどによりアラートを通知する。
【0026】
構成管理部30は、リソースプール2において稼働中のシステムのコンピュータリソースの構成をHW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ保持して管理する。これらの構成情報については、例えば、構成管理部30が日次でリソースプール2の構成を公知技術を利用してディスカバリし、取得した構成情報を、HW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ格納する。また、取得した構成情報に基づいて、消費されているソフトウェアのライセンス数を算出する処理を後述するライセンスチェック部40に要求する。
【0027】
ライセンスチェック部40は、構成管理部30からの要求に対して、HW構成DB31、仮想HW構成DB32および仮想SW構成DB33のデータに基づいて、リソースプール2において稼働中のシステムで消費されているソフトウェアのライセンス数を、ソフトウェア毎のライセンス体系の特性を考慮して定義されたライセンス計算ロジック42に従って算出し、ライセンス状況DB41に記録する。ここで、消費されているライセンス数が、資産管理部20の資産台帳DB21に保持された保有リソース量(ライセンス数)を超える、もしくは超えそうな場合は、購買担当者6等に電子メールなどによりアラートを通知する。
【0028】
また、ライセンスチェック部40は、後述する在庫管理部50から要求されたソフトウェアに対して、当該ソフトウェアをリソースプール2の対象サーバ上に新たに導入・展開する際に消費する(必要となる)ライセンス数を算出する処理も行う。
【0029】
在庫管理部50は、リソースプール2において未使用(顧客に提供するサービスとして未割当て)のハードウェアおよびソフトウェアのリソースを在庫としてその量をHW在庫DB51およびSW在庫DB52に保持して管理する。例えば、日次の処理により、構成管理部30のHW構成DB31、仮想HW構成DB32からハードウェアリソースの使用量を算出し、資産管理部20の資産台帳DB21から取得した保有リソース量との差分からハードウェアの在庫数を算出する。また、ライセンスチェック部40のライセンス状況DB41から取得したソフトウェアのライセンスの消費数と、資産台帳DB21から取得した保有ライセンス数との差分からソフトウェアのライセンスの在庫数を算出する。算出した在庫数の情報は、電子メールなどにより営業担当者5に通知するようにしてもよい。
【0030】
また、在庫管理部50は、後述するシステム構築部70から、リソースプール2へのシステムの新たな展開・構築のために必要となるリソースの仮押えの要求を受けて、HW在庫DB51およびSW在庫DB52に十分な在庫がある場合に、これをHW在庫仮押えDB53およびSW在庫仮押えDB54に登録して引当てる。このとき、ソフトウェアについては、ライセンス体系に応じた適切なライセンス数を引当てるため、ライセンスチェック部40に対して対象のソフトウェアについて必要なライセンス数の算出を要求する。
【0031】
契約管理部60は、リソースプール2によるクラウドコンピューティングサービスの提供について顧客と締結された契約の内容を契約内容管理DB61に登録・保持することで管理する。また、契約内容に基づいて、リソースプール2において後述するシステム構築部70が構築するシステムの仕様を構築仕様13として出力する。契約内容管理DB61への契約内容の登録は、例えば、営業担当者5が顧客と締結した契約の内容に関する情報をサービスポータル3によって提供される契約情報入力画面等から入力することで行われる。図示しない他の契約管理システム等との連携により自動的に登録されるようにしてもよい。
【0032】
システム構築部70は、契約管理部60から出力された構築仕様13の内容に従って、リソースプール2においてハードウェア/ソフトウェアのリソースを展開・設定してシステムを構築する。この中には、システムの新規構築だけでなく、既存システムに対するリソースの追加や変更も含まれる。システムの構築の際には、リソースプール2に対する変更管理の要請から、システム担当者4等により変更に対する承認処理が行われる。
【0033】
また、構築に際しては、システム構成に応じて必要となるリソースを予め確保した上で構築するために、在庫管理部50に対してリソース毎に在庫の仮押え(引当て)を要求する。在庫の仮押えができなかった場合は、例えば、システムの構築をいったん留保した上で必要なリソースの購入等を行う。仮押えが認められた場合は、実際にシステムを構築し、正常終了後に仮押えした在庫を確定させる。
【0034】
上記のようなリソースプール管理システム1の構成において、例えば、構成管理部30およびライセンスチェック部40をあわせて独立したシステムとして構成することで、リソースプール2において実際に消費されているソフトウェアライセンスの数を適切に把握するライセンスチェックシステムとすることも可能である。
【0035】
<データ構成>
以下では、本発明の一実施の形態であるリソースプール管理システム1における各データベースもしくはテーブルの構成について説明する。図2は、HWマスタDB11のデータ構成の例について示した図である。HWマスタDB11は、リソースプール2で使用されているハードウェアについての属性情報を保持するマスタテーブルであり、例えば、ハードウェアID、ハードウェア種別、メーカー、型番、スペック、登録日などの項目を有する。キー項目はハードウェアIDである。
【0036】
ハードウェアIDの項目は、対象のハードウェアを一意に識別するためのIDの情報を保持する。ハードウェア種別の項目は、ハードウェアの種別(例えば、ストレージやサーバ、ネットワーク機器など)を識別するための情報を保持する。メーカー、型番、スペックの項目は、それぞれ、対象のハードウェアのメーカーやベンダーの情報、型番や製品番号等の情報、各種スペックについての情報を保持する。登録日の項目は、対象のハードウェアの情報が当該DBに登録された日時の情報を保持する。
【0037】
図3は、SWマスタDB12のデータ構成の例について示した図である。SWマスタDB12は、リソースプール2で使用されているソフトウェアについての属性情報を保持するマスタテーブルであり、例えば、ソフトウェアID、ソフトウェア名、メーカー、型番、バージョン、エディション、オプション、ライセンス計算パターン、検索対象外フラグ、親ソフトウェアID、物理サーバ依存ライセンスフラグ、仮押えライセンス数、在庫仮押え特殊ロジックNoなどの項目を有する。キー項目はソフトウェアIDである。
【0038】
ソフトウェアIDの項目は、対象のソフトウェアを一意に識別するためのIDの情報を保持する。ソフトウェア名、メーカー、型番の項目は、それぞれ、対象のソフトウェアの製品名、メーカーやベンダーの情報、型番や製品番号等の情報を保持する。バージョン、エディションの項目は、対象のソフトウェアのバージョン(例えば、バージョン番号、リリース番号、リビジョン番号、モディフィケーション番号などを含む)およびエディション(例えば、「エンタープライズエディション」や「プロフェッショナルエディション」など)の情報を保持する。オプションの項目は、対象のソフトウェアについて追加購入しているオプションを識別する情報を保持する。
【0039】
ライセンス計算パターンは、対象のソフトウェアについてライセンスの消費数を計算する際の計算パターン(図1におけるライセンス計算ロジック42)を識別する情報を保持する。仮想マシンに導入されて稼働するソフトウェアでは、システム構成によってライセンスの消費数の計算方法が異なるなど複雑なライセンス体系を有するが、本実施の形態では、後述するように、ソフトウェア毎にライセンス体系に応じてライセンスの消費数の計算方法(ロジック)をいくつかのパターンにカテゴライズして予め割り当てておく。特殊な計算方法をとるソフトウェアについては、対応する計算ロジックをライセンス計算ロジック42を追加する形で設定し、パターンを割り当てることも可能である。
【0040】
検索対象フラグの項目は、対象のソフトウェアについてはライセンス数計算パターンを検索する際の検索対象から除外し、個別にライセンス消費数の計算を行わないことを指定するためのフラグの情報を保持する。例えば、同じソフトウェアでバージョンやエディションが異なるものが複数ある場合に、これらのライセンス消費数の計算パターンが全て同じで個別にライセンス数を計算する必要がない場合には、代表となるいずれか1つのバージョンもしくはエディションで1回ライセンス消費数を計算すればよいため、他のバージョンやエディションで重ねてライセンス消費数の計算を行わないようにするために利用することができる。
【0041】
また、親ソフトウェアIDの項目は、対象のソフトウェアのライセンス消費数の計算の際に、例えば後述するように、バージョンやエディションに関わりなくソフトウェアの単位でライセンスを消費する体系を有する場合に、ライセンスの消費数をまとめて計算する対象(親)となるバージョンやエディションを有するソフトウェアのIDの情報を保持する。この場合、対象のソフトウェアのライセンスの諸費数は、親となるソフトウェアのライセンスの消費数としてカウントされる。
【0042】
物理サーバ依存ライセンスフラグの項目は、後述するように図1の在庫管理部50において対象のソフトウェアについて在庫の仮押えを行う際に、対象のソフトウェアが、導入されている物理サーバの数に依存してライセンス消費数が計算されるタイプであることを識別可能とするためのフラグである。この値がfalseである場合は、導入されている仮想マシンの数に依存してライセンス消費数が計算されるタイプであることを示す。
【0043】
仮押えライセンス数の項目は、対象のソフトウェアについて在庫の仮押えを行う際に、物理サーバもしくは仮想マシン(上述の物理サーバ依存ライセンスフラグによって決定される)毎に必要なライセンスの単位数の情報を保持する。この情報は、顧客に対してサービスメニューとして予め決められた種類のシステム構成やオプションから選択させる契約方法をとることによって、事前にマスタデータとして定義しておくことが可能である。在庫仮押え特殊ロジックNoは、対象のソフトウェアが、在庫の仮押えを行う際に特殊なロジックを必要とするものである場合に、その特殊ロジックを特定するための情報を保持する。これにより、予め定義しておいた対応する特殊ロジックを呼び出して仮押えの処理を行うことができる。
【0044】
図4は、資産台帳DB21のデータ構成の例について示した図である。資産台帳DB21は、リソースプール管理システム1によって管理されるハードウェア/ソフトウェア資産についての情報を台帳として保持するテーブルであり、例えば、資産管理ID、種別、資産ID、見積番号、保守契約番号、保守契約期間、保有ライセンス数などの項目を有する。キー項目は、資産管理ID、種別および資産IDである。
【0045】
資産管理IDの項目は、対象のリソースについて、全てのハードウェア/ソフトウェアリソースの中で一意に割り振られたIDの情報を保持する。種別の項目は、対象のリソースの種別(例えば、「ハードウェア」や「ソフトウェア」)の情報を保持する。資産IDの項目は、対象のリソースに割り振られているIDの情報を保持する。対象のリソースがハードウェアの場合は図2のHWマスタDB11におけるハードウェアID、ソフトウェアの場合は図3のSWマスタDB12におけるソフトウェアIDに設定された値となる。
【0046】
見積番号の項目は、対象のリソースを購入した際にメーカー等から取得した見積を特定する情報を保持する。保守契約番号および保守契約期間の項目は、それぞれ、対象のリソースについてメーカー等と締結している保守契約を特定する情報およびその期間の情報を保持する。これらの情報により、図1の資産管理部20において、対象のリソースについて保守契約期間が終了しているか否かを確認し、システム担当者4や購買担当者6等に保守契約の更新の要否を問い合わせたりすることができる。保有ライセンス数の項目は、対象のリソースがソフトウェアの場合に保有しているライセンス数の情報を保持する。
【0047】
図5は、HW構成DB31のデータ構成の例について示した図である。HW構成DB31は、リソースプール2において稼働中のシステムの物理ハードウェア(サーバ)の構成情報を保持するテーブルであり、例えば、サーバID、サーバ名、ホスト名、IPアドレス、CPU数、CPUコア数、メモリサイズなどの情報を保持する。キー項目はサーバIDである。
【0048】
サーバIDの項目は、対象の物理サーバを識別するIDの情報を保持する。サーバ名、ホスト名およびIPアドレスの項目は、それぞれ、対象の物理サーバに設定されたサーバ名、ホスト名の情報および割り当てられたIPアドレスの情報を保持する。CPU数およびCPUコア数の情報は、それぞれ、対象の物理サーバが有するCPUおよび物理コアの数の情報を保持する。メモリサイズの項目は、対象の物理サーバが有する物理メモリのサイズの情報を保持する。
【0049】
図6は、仮想HW構成DB32のデータ構成の例について示した図である。仮想HW構成DB32は、リソースプール2において物理サーバ上で稼働中の仮想ハードウェア(仮想マシン)の構成情報を保持するテーブルであり、例えば、仮想マシンID、サーバID、テナントID、アプライアンスID、ホスト名、IPアドレス、vCPU数、仮想メモリサイズ、ローカルディスクサイズ、インシデントIDなどの項目を有する。キー項目は仮想マシンIDである。
【0050】
仮想マシンIDの項目は、対象の仮想マシンを識別するIDの情報を保持する。サーバIDの項目は、対象の仮想マシンが稼働する物理サーバのIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。テナントIDおよびアプライアンスIDの項目は、それぞれ、対象の仮想マシンを利用している顧客(テナント)および当該顧客が契約により選択したシステム構成のパターン(アプライアンス)を特定するIDの情報を保持する。
【0051】
ホスト名およびIPアドレスの項目は、それぞれ、対象の仮想マシンに設定されたホスト名および割り当てられたIPアドレスの情報を保持する。vCPU数、仮想メモリサイズおよびローカルディスクサイズの項目は、それぞれ、対象の仮想マシンに割り当てられたvCPU(仮想CPU)数、仮想メモリのサイズおよびローカルディスクのサイズの情報を保持する。インシデントIDの項目は、対象の仮想マシンを構築して稼働させたインシデントを識別するIDの情報を保持する。
【0052】
図7は、仮想SW構成DB33のデータ構成の例について示した図である。仮想SW構成DB33は、リソースプール2において稼働中の仮想マシン上で稼働するソフトウェアの情報を保持するテーブルであり、例えば、仮想マシンID、ソフトウェアID、サーバID、インシデントIDなどの項目を有する。キー項目は仮想マシンIDおよびソフトウェアIDである。
【0053】
仮想マシンIDの項目は、対象のソフトウェアが稼働する仮想マシンを識別するIDの情報を保持する。この仮想マシンIDの項目は、図6の仮想HW構成DB32における仮想マシンIDの項目と同様である。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。サーバIDの項目は、対象のソフトウェアが稼働する物理サーバを識別するIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。インシデントIDの項目は、対象のソフトウェアを導入して稼働させたインシデントを識別するIDの情報を保持する。
【0054】
図8は、ライセンス状況DB41のデータ構成の例について示した図である。ライセンス状況DB41は、リソースプール2において稼働中のシステムで消費されているソフトウェアのライセンス数の情報を保持するテーブルであり、例えば、ソフトウェアID、ライセンス消費数などの項目を有する。キー項目はソフトウェアIDである。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス消費数の項目は、対象のソフトウェアについて図1におけるライセンスチェック部40によって算出されたライセンスの消費数の情報を保持する。
【0055】
図9は、HW在庫DB51のデータ構成の例について示した図である。HW在庫DB51は、リソースプール2において未使用(顧客に提供するサービスとして未割当て)のハードウェアリソースの量を在庫情報として保持するテーブルであり、例えば、サーバID、vCPU残数、仮想メモリ残数などの項目を有する。キー項目はサーバIDである。サーバIDの項目は、対象のハードウェアリソースを有する物理サーバを識別するIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。vCPU残数および仮想メモリ残数の項目は、それぞれ、対象のサーバにおいて割当て可能なvCPUの数および仮想メモリのサイズの情報を在庫情報として保持する。
【0056】
図10は、SW在庫DB52のデータ構成の例について示した図である。SW在庫DB52は、リソースプール2において未使用のソフトウェアのライセンスの数を在庫情報として保持するテーブルであり、例えば、ソフトウェアID、ライセンス在庫数などの項目を有する。キー項目はソフトウェアIDである。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス在庫数の項目は、対象のソフトウェアにおいて利用可能なライセンス数を在庫情報として保持する。
【0057】
図11は、HW在庫仮押えDB53のデータ構成の例について示した図である。HW在庫仮押えDB53は、リソースプール2においてシステムを新たに展開・構築する際に、必要なハードウェアリソースを在庫から仮押えした内容についての情報を保持するテーブルであり、例えば、サーバID、仮想マシンID、消費vCPU数、消費仮想メモリ数、インシデントIDなどの項目を有する。キー項目はサーバIDおよび仮想マシンIDである。
【0058】
サーバIDおよび仮想マシンIDの項目は、それぞれ、対象のハードウェアリソースを有する物理サーバおよび構築対象の仮想マシンを識別するIDの情報を保持する。このサーバIDおよび仮想マシンIDの項目は、それぞれ、図5のHW構成DB31におけるサーバIDの項目および図6の仮想HW構成DB32における仮想マシンIDの項目と同様である。消費vCPU数および消費仮想メモリ数の項目は、それぞれ、構築対象の仮想マシン上で必要なハードウェアリソース量として仮押えしたvCPUの数および仮想メモリのサイズの情報を保持する。インシデントIDの項目は、対象のハードウェアリソースを仮押えさせたインシデントを識別するIDの情報を保持する。
【0059】
図12は、SW在庫仮押えDB54のデータ構成の例について示した図である。SW在庫仮押えDB54は、リソースプール2においてシステムを新たに展開・構築する際に、必要なソフトウェアのライセンスを在庫から仮押えした内容についての情報を保持するテーブルであり、例えば、ソフトウェアID、ライセンス消費数、インシデントIDなどの項目を有する。キー項目はソフトウェアIDである。
【0060】
ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス消費数の項目は、対象のソフトウェアについて必要なリソースとして仮押さえしたライセンス数の情報を保持する。インシデントIDの項目は、対象のソフトウェアのライセンスを仮押えさせたインシデントを識別するIDの情報を保持する。
【0061】
図13は、契約内容管理DB61のデータ構成の例について示した図である。契約内容管理DB61は、リソースプール2によるクラウドコンピューティングサービスの提供について顧客と締結された契約の内容を保持するテーブルであり、例えば、契約ID、テナントID、適用開始日、適用終了日、アプライアンスID、初期費用、月額費用、インシデントIDなどの項目を有する。キー項目は契約IDおよびテナントIDである。
【0062】
契約IDの項目は、顧客との契約を一意に識別するためのIDの情報を保持する。テナントIDの項目は、対象の契約を締結した顧客(テナント)を識別するためのIDの情報を保持する。このテナントIDの項目は、図6の仮想HW構成DB32におけるテナントIDの項目と同様である。なお、各テナントの名称や連絡先等の属性の情報は別途テナントのマスタテーブルに保持しておいてもよい。適用開始日および適用終了日の項目は、それぞれ、対象の契約が適用される期間の開始日および終了日の情報を保持する。
【0063】
アプライアンスIDの項目は、対象のテナントが対象の契約により選択したシステム構成のパターン(アプライアンス)を識別するIDの情報を保持する。このアプライアンスIDの項目は、図6の仮想HW構成DB32におけるアプライアンスIDの項目と同様である。顧客はアプライアンスとしてシステムの構成のパターンを選択することで、簡便・効率的にサービスを利用することができる。初期費用および月額費用の項目は、それぞれ、対象の契約における料金体系の内容を保持する。インシデントIDの項目は、対象の契約およびアプライアンスに基づいてリソースプール2にシステムを展開・構築するためのインシデントを識別するIDの情報を保持する。
【0064】
なお、上述の図2〜図13で示した各テーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
【0065】
<リソースプール管理処理−在庫更新およびライセンスチェック>
以下では、本発明の一実施の形態であるリソースプール管理システム1における管理処理の内容について説明する。まず、リソースプール2で稼働中のシステムの構成情報に基づいて、ハードウェア/ソフトウェアのリソースの在庫情報を最新の状態に更新するとともに、ソフトウェアのライセンスの消費状況をチェックし、必要なライセンスを保有していることを確認する処理について説明する。この処理は例えば日次処理として実行される。
【0066】
前提として、図1の構成管理部30での日次処理により、予めリソースプール2において稼働中のシステムのコンピュータリソースの構成をディスカバリし、取得した構成情報がHW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ保持されているものとする。
【0067】
図14は、HW在庫DB51に保持するハードウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。ハードウェアの在庫更新処理を開始すると、まず、図1における在庫管理部50は、HW構成DB31に保持されている各物理サーバについて処理を行うループ処理を開始する。当該ループ処理では、対象の物理サーバのCPUコアの総数およびメモリサイズの情報(保有リソース量)を取得する(S01)。次に、仮想HW構成DB32から、対象の物理サーバ上で稼働する各仮想マシンのレコードを抽出し、これらのvCPU数および仮想メモリサイズの合計(消費リソース量)を算出する(S02)。
【0068】
その後、ステップS01で取得したCPUコア数とメモリサイズ、およびステップS02で取得したvCPU数と仮想メモリサイズとの差分によりCPU残数と仮想メモリ残数を算出し、HW在庫DB51に出力して内容を更新する(S03)。その後、次の物理サーバの処理に移る。全ての物理サーバについてのループ処理が終了すると、ハードウェアの在庫更新処理を終了する。
【0069】
図15は、SW在庫DB52に保持するソフトウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。ソフトウェアの在庫更新処理を開始すると、まず、図1における在庫管理部50は、ライセンスチェック部40により、各ソフトウェアについてのライセンスの消費数を算出してライセンス不足の有無をチェックするライセンスチェック処理を実行する(S11)。当該処理は、在庫更新処理とは非同期で予め実行しておいてもよい。なお、当該処理の内容については後述する。
【0070】
次に、仮想SW構成DB33に保持されている各ソフトウェアについて処理を行うループ処理を開始する。当該ループ処理では、対象のソフトウェアについて資産台帳DB21から保有ライセンス数を取得する(S12)。次に、対象のソフトウェアについてステップS11によって算出されたライセンスの消費数をライセンス状況DB41から取得する(S13)。次に、その後、ステップS12で取得した保有ライセンス数とステップS13で取得した消費ライセンス数との差分によりライセンス在庫数を算出し、SW在庫DB52に出力して内容を更新する(S14)。その後、次のソフトウェアの処理に移る。全てのソフトウェアについてのループ処理が終了すると、ソフトウェアの在庫更新処理を終了する。
【0071】
なお、在庫管理部50は、更新されたハードウェア/ソフトウェアの在庫情報を営業担当者5等に電子メール等により通知するようにしてもよい。また、在庫数が所定の閾値よりも少ないことを検知した場合は購買担当者6等にその旨の警告を電子メール等により通知するようにしてもよい。
【0072】
図16は、図15のステップS11におけるライセンスチェック処理の流れの例について概要を示したフローチャートである。当該処理では、構成管理部30が保有するリソースプール2におけるシステムの構成情報に基づいて、ソフトウェアのライセンス体系の特性に応じてライセンスの消費数を算出し、資産台帳DB21の情報と照合することでライセンス不足の有無をチェックする処理を行う。ライセンスチェック処理を開始すると、まず、ライセンスチェック部40は、仮想SW構成DB33に保持されている各ソフトウェアについて処理を行うループ処理を開始する。
【0073】
当該ループ処理では、対象のソフトウェアについてSWマスタDB12からライセンス計算パターンの情報を取得する(S21)。次に、取得したライセンス計算パターンに対応するライセンス計算ロジック42を取得し、これに基づいて対象のソフトウェアのライセンスの消費数を算出する(S22)。当該処理の内容については後述する。次に、算出したライセンスの消費数を、資産台帳DB21の保有ライセンス数と照合し、ライセンス不足の有無をチェックする(S23)。ライセンス数の残数が所定の閾値よりも少ない場合は購買担当者6等にその旨の警告を電子メール等により通知するようにしてもよい。その後、次のソフトウェアの処理に移る。全てのソフトウェアについてのループ処理が終了すると、ライセンスチェック処理を終了する。
【0074】
<ライセンス計算パターンおよびライセンス計算ロジック>
以下では、図16のライセンスチェック処理におけるソフトウェア毎のライセンス計算パターンおよびライセンス計算ロジック42の内容について説明する。図17は、ライセンス計算パターンの判断基準の1つとなるソフトウェアのグルーピングパターンの概念の例について示した図である。一般的に、ソフトウェアのライセンスの消費単位としては、ソフトウェアやバージョン、エディション単位など種々のものが存在し、メーカーやベンダー、ソフトウェア等により異なる場合がある。これらをカテゴライズすると、図17に示すように、概ね以下の(a)〜(d)の4つのパターン(以下ではこれを「グルーピングパターン」と記載する場合がある)に分類することが可能である。
【0075】
(a)ソフトウェア毎にバージョンおよびエディションの単位でライセンスが必要となるもの。すなわち、同一ソフトウェアの同一バージョンであっても、エディションが異なれば別個のライセンスを必要とするもの。(b)ソフトウェア毎にエディションの単位でライセンスが必要となるもの。すなわち、同一ソフトウェアについて異なるバージョンであっても、エディションが同一であればライセンスは共通となるもの。(c)ソフトウェア毎にバージョンの単位でライセンスが必要となるもの。すなわち、エディションの考え方がないもの。(d)ソフトウェアの単位でライセンスが必要となるもの。すなわち、エディションの考え方がなく、同一のソフトウェアであれば異なるバージョンであってもライセンスは共通となるもの。
【0076】
上記の4つのパターンにおいて、(a)および(c)のパターン、すなわち、異なるバージョンでは別個のライセンスを必要とするパターンは、本実施の形態のリソースプール2で使用されるような、メーカーやベンダーとの保守契約が付随するサーバ用のソフトウェアでは一般的ではなく基本的には存在しないと考えられる(ライセンスの購入ではなく保守契約によってバージョンアップが行われる)。また、一般的に利用される多くのソフトウェアが(d)のパターンにカテゴライズされるものと考えられる。
【0077】
なお、上記の4つの典型的なグルーピングパターンに属さない特殊なライセンス体系を有するソフトウェアも存在する(例えば、上位エディションのライセンスに下位エディションの利用権が存在するものなど)。これらについては、特殊パターンとして追加でグルーピングパターンを割当てることができる。
【0078】
図18は、ライセンス計算パターンの別の判断基準となるライセンス計算グループの概念の例について示した図である。本実施の形態のリソースプール2で使用されるような、仮想マシン上で稼働するソフトウェアの場合、導入されるサーバの構成によってライセンスの消費数が異なる場合がある。これらをカテゴライズすると、図18に示すように、概ね以下の(1)〜(4)の4つのグループ(以下ではこれを「ライセンス計算グループ」と記載する場合がある)に分類することが可能である。
【0079】
(1)導入される仮想マシンのvCPU毎にライセンスが必要となるもの。(2)導入される仮想マシン毎にライセンスが必要となるもの。すなわち、導入される仮想マシンのvCPUの数に依存せずにライセンスが必要となるもの。(3)導入される物理サーバのCPU毎にライセンスが必要となるもの。すなわち、導入される仮想マシンの数に依存せず、また、導入される仮想マシンが利用しない物理CPUが存在する場合でも、物理サーバのCPU数分のライセンスが必要となるもの。(4)導入される物理サーバのCPUのコア毎にライセンスが必要となるもの。すなわち、導入される仮想マシンの数に依存せず、また、導入される仮想マシンが利用しない物理CPUが存在する場合でも、物理サーバのCPUコア数分のライセンスが必要となるもの。
【0080】
なお、上記の4つの典型的なライセンス計算グループに属さない特殊なライセンス体系を有するソフトウェアも存在する(例えば、vCPUの数について階段状にライセンス数が消費されるものや、導入される仮想マシンがハイパーバイザの割当てにより実際に利用する物理CPUの数分のライセンスが消費されるものなど)。これらについては、特殊グループとして追加でライセンス計算グループを割当てることができる。
【0081】
図19は、図17に示したグルーピングパターンと、図18に示したライセンス計算グループをマトリクス化し、これらの組み合わせに対してライセンス計算パターンを割当てた例を示した図である。図中において、典型的なグルーピングパターン(a)〜(d)および典型的なライセンス計算グループ(1)〜(4)からなる部分については、基本的に存在しないと考えられる(a)および(c)のグルーピングパターンを除き、ライセンス計算パターン(“#001”〜“#004”)を割当てている。また、特殊なグルーピングパターン(e)およびライセンス計算グループ(5)〜(8)についても、該当する箇所にライセンス計算パターン(“#105”〜“#108”)を割当てることができる。
【0082】
ここで、ライセンス計算パターンとは、ライセンスの消費数を算出する際の計算方法(ロジック)のパターンであり、ソフトウェア毎にグルーピングパターンおよびライセンス計算グループに基づいて割当てられ、SWマスタDB12のライセンス計算パターンの項目に予め設定される。各ライセンス計算パターンに対応するライセンス消費数の計算ロジックはライセンス計算ロジック42に定義され、ライセンスチェック部40によって管理される。
【0083】
図中に示すとおり、上述したライセンス計算グループ(1)〜(4)において、(b)と(d)のグルーピングパターンでは同じライセンス計算パターン(“#001”〜“#004”)となることを示している。これらのライセンス計算パターンに対応する具体的な計算方法であるライセンス計算ロジック42の概要は例えば以下の通りである。
【0084】
ライセンス計算パターン“#001”では、まず、ライセンスの消費数の算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された仮想マシンを特定し、さらに仮想HW構成DB32により、対象の各仮想マシンのvCPU数を取得する。取得したvCPU数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0085】
ライセンス計算パターン“#002”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された仮想マシンを特定する。特定した仮想マシンの台数が対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0086】
ライセンス計算パターン“#003”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された物理サーバを特定し、さらにHW構成DB31により、対象の物理サーバのCPU数を取得する。取得したCPU数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0087】
ライセンス計算パターン“#004”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された物理サーバを特定し、さらにHW構成DB31により、対象の物理サーバのCPUコア数を取得する。取得したCPUコア数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0088】
このように、グルーピングパターンおよびライセンス計算グループの組み合わせにより各ソフトウェアのライセンス体系をカテゴライズしてライセンス計算パターンを割当て、対応するライセンス計算ロジック42を定義することにより、仮想マシン上で稼働するソフトウェアのライセンス体系と実際のシステム構成に応じたライセンス消費数の算出が可能となる。
【0089】
<リソースプール管理処理−構築時の在庫仮押え>
以下では、本発明の一実施の形態であるリソースプール管理システム1における管理処理の他の内容として、リソースプール2へのシステムの新たな展開・構築の際に、システム構築部70からの要求により、在庫管理部50が必要となるリソースを仮押えする際の処理について説明する。
【0090】
図20は、ハードウェアリソースについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。ハードウェアの在庫仮押え処理を開始すると、在庫管理部50は、まず、システム構築部70が構築仕様13に基づいて指定した構築対象の各ハードウェアについて処理を行うループ処理を開始する。当該ループ処理では、まず、対象のハードウェアについてHW在庫DB51を参照して在庫があるか否かを確認し(S31)、在庫がない場合は当該ハードウェアの情報を記憶した上で次のハードウェアの処理に移る。
【0091】
ステップS31において在庫がある場合は、HW在庫仮押えDB53に必要なリソースの情報をシステム構築部70から指定されたインシデントIDの情報とともに登録する(S32)。このとき対象の物理サーバについて既に仮押え情報が登録されている場合はこれに加算して更新する。さらに、HW在庫DB51の対応するリソースの在庫量を減算して更新し(S33)、さらに、構成管理部30に依頼する等によりHW構成DB31および仮想HW構成DB32に対応する構成情報を登録する(S34)。その後、次のハードウェアの処理に移る。構築対象の全てのハードウェアについてのループ処理が終了すると、在庫の仮押えの結果をシステム担当者4に通知する等の処理を行った上でハードウェアの在庫仮押え処理を終了する。
【0092】
図21は、ソフトウェアのライセンスについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。ソフトウェアの在庫仮押え処理を開始すると、在庫管理部50は、まず、システム構築部70が構築仕様13に基づいて指定した構築(導入)対象の各ソフトウェアについて処理を行うループ処理を開始する。
【0093】
当該ループ処理では、まず、対象のソフトウェアについてSWマスタDB12を参照し、ライセンス体系が物理サーバに依存する(仮想マシンに依存しない)ものであるか否かを確認する(S41)。例えば、対象のソフトウェアが図18に示したライセンス計算グループにおいて(3)もしくは(4)に該当するものである場合は物理サーバに依存するライセンス体系に該当する。本実施の形態では、このような判定を容易にするため、SWマスタDB12に物理サーバ依存ライセンスフラグとしてライセンス条項や条件等に基づいて当該情報を予め設定しておくものとする。すなわち、ステップS41では、SWマスタDB12の物理サーバ依存ライセンスフラグの値を判定することになる。
【0094】
ステップS41で対象のソフトウェアが物理サーバに依存するライセンス体系でない場合は、後述するステップS45に進む。物理サーバに依存するライセンス体系である場合は、次に、ライセンスの必要数を算出するための特殊なロジックが必要か否かを判定する(S42)。ここでは、対象のソフトウェアを導入する仮想マシンが稼働する物理サーバのCPU数やコア数からの単純な計算により必要なライセンス数を算出することが困難なライセンス計算グループに属するような場合が該当する。
【0095】
本実施の形態では、このような判断を容易にするため、SWマスタDB12に在庫仮押え特殊ロジックNoとして、予め定義された特殊ロジックを特定する情報を設定可能であるものとする。在庫仮押え特殊ロジックNoの設定内容により特殊ロジックが必要であると判定される場合は、在庫仮押え特殊ロジックNoによって特定される特殊ロジックを利用してライセンスの消費数を算出し(S43)、後述するステップS46に進む。
【0096】
ステップS42で特殊ロジックが必要でない場合は、仮想SW構成DB33を参照して、対象のソフトウェアが構築仕様13にて指定された導入対象の物理サーバに既に導入されているか否かを判定する(S44)。既に導入済みである場合は、対象のソフトウェアについてのライセンスは引当て済みであるとして、何もせずに次のソフトウェアの処理に移る。対象の物理サーバにまだ導入されていない場合は、対象のソフトウェアを対象の物理サーバに導入する際に消費するライセンス数を取得する(S45)。具体的には、SWマスタDB12の仮押えライセンス数の項目の値を取得する。
【0097】
本来では、同一のソフトウェアであっても導入対象の物理サーバや仮想サーバのCPU数等の構成に応じてライセンスの消費数は異なる場合がある。しかしながら、クラウドコンピューティング環境では、大量のハードウェアリソースを維持・管理して提供する必要があることからその構成は物理サーバ間で統一される場合が多いと考えられる。従って、本実施の形態では、リソースプール2で管理される物理サーバのシステム構成は基本的に統一されているものとし、どの物理サーバに導入しても一律にSWマスタDB12における仮押えライセンス数に設定されたライセンス数が消費されるものとして計算の簡略化を図っている。なお、物理サーバの構成が統一されていない環境において、上述したソフトウェア在庫更新処理で示したように、導入対象の物理サーバの構成に基づいてライセンスの消費数を個別に算出する手順とすることも当然ながら可能である。
【0098】
その後、対象のソフトウェアについて必要なライセンス数につき、SW在庫DB52を参照してライセンスの在庫があるか否かを確認し(S46)、在庫がない場合は当該ソフトウェアの情報を記憶した上で次のソフトウェアの処理に移る。
【0099】
ステップS46において在庫がある場合は、SW在庫仮押えDB54に必要なライセンス数の情報をシステム構築部70から指定されたインシデントIDの情報とともに登録する(S47)。このとき対象のソフトウェアについて既に仮押え情報が登録されている場合はこれに加算して更新する。さらに、SW在庫DB52の対応するソフトウェアのライセンスの在庫数を減算して更新し(S48)、さらに構成管理部30に依頼する等により仮想SW構成DB33に対応する構成情報を登録する(S49)。その後、次のソフトウェアの処理に移る。導入対象の全てのソフトウェアについてのループ処理が終了すると、ライセンスの在庫の仮押えの結果をシステム担当者4に通知する等の処理を行った上でソフトウェアの在庫仮押え処理を終了する。
【0100】
なお、上記のハードウェア/ソフトウェアの在庫仮押え処理による構築対象のハードウェア/ソフトウェアリソースの在庫の仮押えの成立をもって、システム担当者4がリソースプール2に対するシステム構築実行の承認(変更承認)を行うようすることが可能である。その後、リソースプール2におけるシステム構築が完了した際に、HW在庫仮押えDB53およびSW在庫仮押えDB54のレコードを削除等することで、仮押えしていた在庫の引当てを確定することができる。
【0101】
以上に説明したように、本発明の一実施の形態であるリソースプール管理システム1もしくはライセンスチェックシステムによれば、リソースプール2において稼働中のシステムにおいて消費されているソフトウェア(特に仮想サーバ上で稼働し、ライセンス体系が複雑なソフトウェア)のライセンス数を適切に算出して、保有するライセンス数との比較により在庫に反映させるとともに、稼働中のシステムがライセンス違反となっていないことを確認することが可能となる。
【0102】
また、新たにシステムを構築する際に、システム構成に応じた適切なライセンス数を在庫から仮押えして確保した上で構築する。また、いずれの場合にも、保有ライセンス数が不足しそうであることを検知した場合は、購買担当者6等に通知してライセンスの購入を促すことができる。このような仕組みにより、クラウドコンピューティング環境でのリソースプールにおけるような大規模なシステム環境におけるソフトウェア(特に仮想サーバで稼働するソフトウェア)のライセンスの管理を効率的に行うことが可能となる。
【0103】
また、ソフトウェアのライセンス条項や条件が特殊なものである場合にも、対応するライセンス計算ロジック42を定義してライセンス計算パターンを割当てることでライセンスの消費数を算出することが可能であり、高い拡張性も有する。
【0104】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0105】
本発明は、クラウドコンピューティングサービス等において利用される仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンスの有無をチェックするライセンスチェックシステムおよびリソースプール管理システムに利用可能である。
【符号の説明】
【0106】
1…リソースプール管理システム、2…リソースプール、3…サービスポータル、4…システム担当者、5…営業担当者、6…購買担当者、
11…HWマスタDB、12…SWマスタDB、13…構築仕様、
20…資産管理部、21…資産台帳DB、
30…構成管理部、31…HW構成DB、32…仮想HW構成DB、33…仮想SW構成DB、
40…ライセンスチェック部、41…ライセンス状況DB、42…ライセンス計算ロジック、
50…在庫管理部、51…HW在庫DB、52…SW在庫DB、53…HW在庫仮押えDB、54…SW在庫仮押えDB、
60…契約管理部、61…契約内容管理DB、
70…システム構築部。
【技術分野】
【0001】
本発明は、IT関連資産のライセンス管理の技術に関し、特に、クラウドコンピューティングサービス等において利用される仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンスの有無をチェックするライセンスチェックシステムおよびリソースプール管理システムに適用して有効な技術に関するものである。
【背景技術】
【0002】
近年では、例えばデータセンターなどの設備に多数のサーバ機器やネットワーク機器などのコンピュータリソースからなるシステム環境を構築してリソースプールとして管理し、顧客が必要とする分のリソースを仮想マシンや仮想サーバの形で提供するクラウドコンピューティングサービスが普及してきている。
【0003】
このようなサービスを提供する事業者等では、顧客からのリソース使用の要求に適時に対応することが可能となるよう、予め未使用・未割当てのハードウェア(HW)やソフトウェア(SW)を在庫として保持・管理しておき、顧客とのサービスに係る契約の成立やリソースの使用要求(システムの変更要求)などに応じて、在庫から必要なリソースを確保してリソースプールに展開したりシステムを構築したりすることが行われる。
【0004】
このとき、ソフトウェアリソースについては、ソフトウェアの現物ではなくライセンスを在庫として管理する必要がある。このライセンスの管理は、リソースを提供する事業者等が一元的に行う必要がある。ソフトウェアのライセンス管理の手法としては、例えば、企業における各従業員等のクライアント端末に導入されたソフトウェアのライセンスを自動的にチェックして管理するというようなことは一般的に行われており、そのための製品等も提供されている。
【0005】
例えば、特開2004−118584号公報(特許文献1)には、会社等の組織が有するソフトウェアライセンスに関するライセンス情報をデータベースに記憶し、また、組織内の社内端末で使用されているソフトウェアに関するインベントリ情報を取得してデータベースに記憶し、データベースに記憶されるライセンス情報について、ソフトウェア毎のライセンス数を計数し、また、データベースに記憶されるインベントリ情報について、ソフトウェア毎の使用数を計数し、各ソフトウェアについてライセンス数と使用数を比較し、使用数がライセンス数より大きいソフトウェアを検出した場合、検出内容を示す警告メールを担当者宛で送信することで、組織で使用するソフトウェアのライセンス管理を効率良く行うことができるライセンス管理サーバが記載されている。
【0006】
また、特開2008−146390号公報(特許文献2)には、インベントリ収集機能及び使用許諾情報収集機能を備えた情報収集処理部、使用許諾情報から許諾条件を抽出する使用許諾条件抽出処理部、抽出した許諾条件を判別する使用許諾内容判別処理部、保有数チェック機能及び使用可能数チェック機能を備えた使用状況検証処理部、および各種のDBを具備し、システムのソフトウェアの使用状態の検証時に、使用ソフトウェアと使用ソフトウェアに係る使用許諾情報との相違を検出することで精度の高いライセンス管理を行うことができるソフトウェアライセンス管理システムが記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−118584号公報
【特許文献2】特開2008−146390号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
仮想マシンや仮想サーバの形で多数のコンピュータリソースをクラウドコンピューティングサービスとして提供する事業者等において、ソフトウェアのライセンスの管理を行うことは容易ではない。仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンス形態は、物理CPUや仮想CPUの数、コア数といった(仮想)ハードウェア構成に依存する場合が多く、仮想マシンや仮想サーバのシステム構成如何によってライセンスの消費数も変動するためである。
【0009】
このため、特許文献1に記載されているようにソフトウェアのインベントリ情報から単純にライセンス使用数を求めることができない。また、特許文献2に記載されているような技術を使用したとしても使用許諾の全文から使用許諾条件が判別可能な場合はあるものの、それに基づいてソフトウェアが実際に導入されている(仮想)ハードウェア構成を考慮した上でのライセンス消費数を求めることは困難である。
【0010】
従って従来では、クラウドコンピューティングサービスを提供するリソースプールにおけるソフトウェアのライセンス数のチェックを自動で行うような仕組みは存在せず、システム管理者等により手動で行って管理するのが一般的であった。しかし、チェックするリソースの数が多く、ソフトウェア毎のライセンスの許諾条件のバリエーションも多く複雑であるため、大きな作業負荷とコストを要していた。
【0011】
そこで本発明の目的は、仮想マシンや仮想サーバ上で稼働するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することができるライセンスチェックシステムおよび当該ライセンスチェックシステムを有するリソースプール管理システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0013】
本発明の代表的な実施の形態によるライセンスチェックシステムは、複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、以下の特徴を有するものである。
【0014】
すなわち、ライセンスチェックシステムは、前記リソースプールにおいて稼働中のシステムの構成情報をディスカバリして、物理サーバの構成情報を含むハードウェア構成、物理サーバ上で稼働する仮想マシンの構成情報を含む仮想ハードウェア構成および仮想マシン上で稼働するソフトウェアの情報を含む仮想ソフトウェア構成の各情報を取得し、これらをそれぞれ、HW構成記録手段、仮想HW構成記録手段および仮想SW構成記録手段に記録して保持する構成管理部と、前記構成管理部から前記ハードウェア構成、前記仮想ハードウェア構成および前記仮想ソフトウェア構成の情報を取得し、これらの情報に基づいて、前記リソースプールにおいて稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジックに従って算出し、ライセンス状況記録手段に記録するライセンスチェック部とを有することを特徴とするものである。
【0015】
また、本発明は、上記のライセンスチェックシステムを有し、顧客からの要求に基づく構築仕様の内容に従って、前記リソースプールにおいてハードウェアおよびソフトウェアのリソースを展開してシステムを構築してサービスとして提供するリソースプール管理システムにも適用することができる。
【発明の効果】
【0016】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0017】
本発明の代表的な実施の形態によれば、仮想マシンや仮想サーバ上で稼働するソフトウェアなど、物理的もしくは仮想的なハードウェア構成に依存してライセンスの消費数が変動するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することが可能となる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施の形態であるリソースプール管理システムの構成例について概要を示した図である。
【図2】本発明の一実施の形態におけるHWマスタDBのデータ構成の例について示した図である。
【図3】本発明の一実施の形態におけるSWマスタDBのデータ構成の例について示した図である。
【図4】本発明の一実施の形態における資産台帳DBのデータ構成の例について示した図である。
【図5】本発明の一実施の形態におけるHW構成DBのデータ構成の例について示した図である。
【図6】本発明の一実施の形態における仮想HW構成DBのデータ構成の例について示した図である。
【図7】本発明の一実施の形態における仮想SW構成DBのデータ構成の例について示した図である。
【図8】本発明の一実施の形態におけるライセンス状況DBのデータ構成の例について示した図である。
【図9】本発明の一実施の形態におけるHW在庫DBのデータ構成の例について示した図である。
【図10】本発明の一実施の形態におけるSW在庫DBのデータ構成の例について示した図である。
【図11】本発明の一実施の形態におけるHW在庫仮押えDBのデータ構成の例について示した図である。
【図12】本発明の一実施の形態におけるSW在庫仮押えDBのデータ構成の例について示した図である。
【図13】本発明の一実施の形態における契約内容管理DBのデータ構成の例について示した図である。
【図14】本発明の一実施の形態におけるハードウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。
【図15】本発明の一実施の形態におけるソフトウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。
【図16】本発明の一実施の形態におけるライセンスチェック処理の流れの例について概要を示したフローチャートである。
【図17】(a)〜(d)は、本発明の一実施の形態におけるライセンス計算パターンの判断基準の1つとなるソフトウェアのグルーピングパターンの概念の例について示した図である。
【図18】(1)〜(4)は、本発明の一実施の形態におけるライセンス計算パターンの別の判断基準となるライセンス計算グループの概念の例について示した図である。
【図19】本発明の一実施の形態におけるグルーピングパターンとライセンス計算グループをマトリクス化し、ライセンス計算パターンを割当てた例を示した図である。
【図20】本発明の一実施の形態におけるハードウェアリソースについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。
【図21】本発明の一実施の形態におけるソフトウェアのライセンスについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0020】
本発明の一実施の形態であるリソースプール管理システムは、複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールを構築し、顧客が必要とする分のリソースを仮想マシンの形でリソースプール上で提供するクラウドコンピューティングサービスの実装において利用されるシステムである。このリソースプール管理システムは、リソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムとしての機能を含む。
【0021】
リソースプール管理システムでは、顧客からのリソース使用の要求に適時に対応することが可能となるよう、予め未使用・未割当てのハードウェアやソフトウェアの資産を在庫として保持・管理しておき、顧客とのサービスに係る契約の成立やリソースの使用要求などに応じて、在庫から必要なリソースを確保してリソースプールに展開してシステムを構築する。このとき、特にソフトウェアについては、在庫を現物ではなくライセンスの残数として把握する必要がある。したがって、稼働中のシステム構成において消費されている各ソフトウェアのライセンス数をライセンス体系の特性に応じて適切に算出して、保有するライセンス数との比較により在庫に反映させるとともに、稼働中のシステムがライセンス違反となっていないことを確認する。
【0022】
また、顧客との契約等に基づいて新たにシステムを構築する際に、システム構成に応じた適切なライセンス数を在庫から引当てて確保した上で構築する。ライセンス数が不足しそうであることを検知した場合は、例えば購買担当者等に通知してライセンスの購入を促してもよい。以上のような仕組みにより、クラウドコンピューティング環境でのリソースプールのような大規模なシステム環境においてライセンスの管理を効率的に行うことを可能とする。
【0023】
<システム構成>
図1は、本発明の一実施の形態であるリソースプール管理システムの構成例について概要を示した図である。リソースプール管理システム1は、図示しないWebサーバシステムやアプリケーション等によって提供されるサービスポータル3のサイトを介して、システム担当者4や営業担当者5、購買担当者6などのユーザからのアクセスを受け、クラウドコンピューティングサービスを提供するための多数のコンピュータリソースからなるリソースプール2について、システムの構築や構成の管理、顧客との契約の管理、ソフトウェアのライセンスや、リソースの在庫の管理などを行うシステムである。
【0024】
リソースプール管理システム1は、例えば、1台以上のサーバ機器によって構成され、ソフトウェアプログラムによって実現される資産管理部20、構成管理部30、ライセンスチェック部40、在庫管理部50、契約管理部60およびシステム構築部70の各部を有する。これら各部は、それぞれを独立したシステムとして別個のサーバ機器上で実装してもよいし、複数を同一のサーバ機器上で共存させて実装してもよい。
【0025】
資産管理部20は、リソースプール管理システム1によって管理されるハードウェア/ソフトウェアリソース(資産)を資産台帳データベース(DB)21に登録・保持することで管理する。資産台帳DB21への資産の登録は、例えば、購買担当者6が購入した資産に関する情報をサービスポータル3によって提供されるエントリー画面等から入力することで行われる。図示しない他の購買システム等との連携により自動的に登録されるようにしてもよい。なお、ハードウェアおよびソフトウェアについてのマスタ情報は、HWマスタDB11およびSWマスタDB12に登録される。また、資産管理部20は、例えば、日次の処理により、資産台帳DB21に登録されている各資産についてベンダー等との保守契約の期間をチェックし、保守契約が終了もしくは終了しそうなものについて購買担当者6等に電子メールなどによりアラートを通知する。
【0026】
構成管理部30は、リソースプール2において稼働中のシステムのコンピュータリソースの構成をHW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ保持して管理する。これらの構成情報については、例えば、構成管理部30が日次でリソースプール2の構成を公知技術を利用してディスカバリし、取得した構成情報を、HW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ格納する。また、取得した構成情報に基づいて、消費されているソフトウェアのライセンス数を算出する処理を後述するライセンスチェック部40に要求する。
【0027】
ライセンスチェック部40は、構成管理部30からの要求に対して、HW構成DB31、仮想HW構成DB32および仮想SW構成DB33のデータに基づいて、リソースプール2において稼働中のシステムで消費されているソフトウェアのライセンス数を、ソフトウェア毎のライセンス体系の特性を考慮して定義されたライセンス計算ロジック42に従って算出し、ライセンス状況DB41に記録する。ここで、消費されているライセンス数が、資産管理部20の資産台帳DB21に保持された保有リソース量(ライセンス数)を超える、もしくは超えそうな場合は、購買担当者6等に電子メールなどによりアラートを通知する。
【0028】
また、ライセンスチェック部40は、後述する在庫管理部50から要求されたソフトウェアに対して、当該ソフトウェアをリソースプール2の対象サーバ上に新たに導入・展開する際に消費する(必要となる)ライセンス数を算出する処理も行う。
【0029】
在庫管理部50は、リソースプール2において未使用(顧客に提供するサービスとして未割当て)のハードウェアおよびソフトウェアのリソースを在庫としてその量をHW在庫DB51およびSW在庫DB52に保持して管理する。例えば、日次の処理により、構成管理部30のHW構成DB31、仮想HW構成DB32からハードウェアリソースの使用量を算出し、資産管理部20の資産台帳DB21から取得した保有リソース量との差分からハードウェアの在庫数を算出する。また、ライセンスチェック部40のライセンス状況DB41から取得したソフトウェアのライセンスの消費数と、資産台帳DB21から取得した保有ライセンス数との差分からソフトウェアのライセンスの在庫数を算出する。算出した在庫数の情報は、電子メールなどにより営業担当者5に通知するようにしてもよい。
【0030】
また、在庫管理部50は、後述するシステム構築部70から、リソースプール2へのシステムの新たな展開・構築のために必要となるリソースの仮押えの要求を受けて、HW在庫DB51およびSW在庫DB52に十分な在庫がある場合に、これをHW在庫仮押えDB53およびSW在庫仮押えDB54に登録して引当てる。このとき、ソフトウェアについては、ライセンス体系に応じた適切なライセンス数を引当てるため、ライセンスチェック部40に対して対象のソフトウェアについて必要なライセンス数の算出を要求する。
【0031】
契約管理部60は、リソースプール2によるクラウドコンピューティングサービスの提供について顧客と締結された契約の内容を契約内容管理DB61に登録・保持することで管理する。また、契約内容に基づいて、リソースプール2において後述するシステム構築部70が構築するシステムの仕様を構築仕様13として出力する。契約内容管理DB61への契約内容の登録は、例えば、営業担当者5が顧客と締結した契約の内容に関する情報をサービスポータル3によって提供される契約情報入力画面等から入力することで行われる。図示しない他の契約管理システム等との連携により自動的に登録されるようにしてもよい。
【0032】
システム構築部70は、契約管理部60から出力された構築仕様13の内容に従って、リソースプール2においてハードウェア/ソフトウェアのリソースを展開・設定してシステムを構築する。この中には、システムの新規構築だけでなく、既存システムに対するリソースの追加や変更も含まれる。システムの構築の際には、リソースプール2に対する変更管理の要請から、システム担当者4等により変更に対する承認処理が行われる。
【0033】
また、構築に際しては、システム構成に応じて必要となるリソースを予め確保した上で構築するために、在庫管理部50に対してリソース毎に在庫の仮押え(引当て)を要求する。在庫の仮押えができなかった場合は、例えば、システムの構築をいったん留保した上で必要なリソースの購入等を行う。仮押えが認められた場合は、実際にシステムを構築し、正常終了後に仮押えした在庫を確定させる。
【0034】
上記のようなリソースプール管理システム1の構成において、例えば、構成管理部30およびライセンスチェック部40をあわせて独立したシステムとして構成することで、リソースプール2において実際に消費されているソフトウェアライセンスの数を適切に把握するライセンスチェックシステムとすることも可能である。
【0035】
<データ構成>
以下では、本発明の一実施の形態であるリソースプール管理システム1における各データベースもしくはテーブルの構成について説明する。図2は、HWマスタDB11のデータ構成の例について示した図である。HWマスタDB11は、リソースプール2で使用されているハードウェアについての属性情報を保持するマスタテーブルであり、例えば、ハードウェアID、ハードウェア種別、メーカー、型番、スペック、登録日などの項目を有する。キー項目はハードウェアIDである。
【0036】
ハードウェアIDの項目は、対象のハードウェアを一意に識別するためのIDの情報を保持する。ハードウェア種別の項目は、ハードウェアの種別(例えば、ストレージやサーバ、ネットワーク機器など)を識別するための情報を保持する。メーカー、型番、スペックの項目は、それぞれ、対象のハードウェアのメーカーやベンダーの情報、型番や製品番号等の情報、各種スペックについての情報を保持する。登録日の項目は、対象のハードウェアの情報が当該DBに登録された日時の情報を保持する。
【0037】
図3は、SWマスタDB12のデータ構成の例について示した図である。SWマスタDB12は、リソースプール2で使用されているソフトウェアについての属性情報を保持するマスタテーブルであり、例えば、ソフトウェアID、ソフトウェア名、メーカー、型番、バージョン、エディション、オプション、ライセンス計算パターン、検索対象外フラグ、親ソフトウェアID、物理サーバ依存ライセンスフラグ、仮押えライセンス数、在庫仮押え特殊ロジックNoなどの項目を有する。キー項目はソフトウェアIDである。
【0038】
ソフトウェアIDの項目は、対象のソフトウェアを一意に識別するためのIDの情報を保持する。ソフトウェア名、メーカー、型番の項目は、それぞれ、対象のソフトウェアの製品名、メーカーやベンダーの情報、型番や製品番号等の情報を保持する。バージョン、エディションの項目は、対象のソフトウェアのバージョン(例えば、バージョン番号、リリース番号、リビジョン番号、モディフィケーション番号などを含む)およびエディション(例えば、「エンタープライズエディション」や「プロフェッショナルエディション」など)の情報を保持する。オプションの項目は、対象のソフトウェアについて追加購入しているオプションを識別する情報を保持する。
【0039】
ライセンス計算パターンは、対象のソフトウェアについてライセンスの消費数を計算する際の計算パターン(図1におけるライセンス計算ロジック42)を識別する情報を保持する。仮想マシンに導入されて稼働するソフトウェアでは、システム構成によってライセンスの消費数の計算方法が異なるなど複雑なライセンス体系を有するが、本実施の形態では、後述するように、ソフトウェア毎にライセンス体系に応じてライセンスの消費数の計算方法(ロジック)をいくつかのパターンにカテゴライズして予め割り当てておく。特殊な計算方法をとるソフトウェアについては、対応する計算ロジックをライセンス計算ロジック42を追加する形で設定し、パターンを割り当てることも可能である。
【0040】
検索対象フラグの項目は、対象のソフトウェアについてはライセンス数計算パターンを検索する際の検索対象から除外し、個別にライセンス消費数の計算を行わないことを指定するためのフラグの情報を保持する。例えば、同じソフトウェアでバージョンやエディションが異なるものが複数ある場合に、これらのライセンス消費数の計算パターンが全て同じで個別にライセンス数を計算する必要がない場合には、代表となるいずれか1つのバージョンもしくはエディションで1回ライセンス消費数を計算すればよいため、他のバージョンやエディションで重ねてライセンス消費数の計算を行わないようにするために利用することができる。
【0041】
また、親ソフトウェアIDの項目は、対象のソフトウェアのライセンス消費数の計算の際に、例えば後述するように、バージョンやエディションに関わりなくソフトウェアの単位でライセンスを消費する体系を有する場合に、ライセンスの消費数をまとめて計算する対象(親)となるバージョンやエディションを有するソフトウェアのIDの情報を保持する。この場合、対象のソフトウェアのライセンスの諸費数は、親となるソフトウェアのライセンスの消費数としてカウントされる。
【0042】
物理サーバ依存ライセンスフラグの項目は、後述するように図1の在庫管理部50において対象のソフトウェアについて在庫の仮押えを行う際に、対象のソフトウェアが、導入されている物理サーバの数に依存してライセンス消費数が計算されるタイプであることを識別可能とするためのフラグである。この値がfalseである場合は、導入されている仮想マシンの数に依存してライセンス消費数が計算されるタイプであることを示す。
【0043】
仮押えライセンス数の項目は、対象のソフトウェアについて在庫の仮押えを行う際に、物理サーバもしくは仮想マシン(上述の物理サーバ依存ライセンスフラグによって決定される)毎に必要なライセンスの単位数の情報を保持する。この情報は、顧客に対してサービスメニューとして予め決められた種類のシステム構成やオプションから選択させる契約方法をとることによって、事前にマスタデータとして定義しておくことが可能である。在庫仮押え特殊ロジックNoは、対象のソフトウェアが、在庫の仮押えを行う際に特殊なロジックを必要とするものである場合に、その特殊ロジックを特定するための情報を保持する。これにより、予め定義しておいた対応する特殊ロジックを呼び出して仮押えの処理を行うことができる。
【0044】
図4は、資産台帳DB21のデータ構成の例について示した図である。資産台帳DB21は、リソースプール管理システム1によって管理されるハードウェア/ソフトウェア資産についての情報を台帳として保持するテーブルであり、例えば、資産管理ID、種別、資産ID、見積番号、保守契約番号、保守契約期間、保有ライセンス数などの項目を有する。キー項目は、資産管理ID、種別および資産IDである。
【0045】
資産管理IDの項目は、対象のリソースについて、全てのハードウェア/ソフトウェアリソースの中で一意に割り振られたIDの情報を保持する。種別の項目は、対象のリソースの種別(例えば、「ハードウェア」や「ソフトウェア」)の情報を保持する。資産IDの項目は、対象のリソースに割り振られているIDの情報を保持する。対象のリソースがハードウェアの場合は図2のHWマスタDB11におけるハードウェアID、ソフトウェアの場合は図3のSWマスタDB12におけるソフトウェアIDに設定された値となる。
【0046】
見積番号の項目は、対象のリソースを購入した際にメーカー等から取得した見積を特定する情報を保持する。保守契約番号および保守契約期間の項目は、それぞれ、対象のリソースについてメーカー等と締結している保守契約を特定する情報およびその期間の情報を保持する。これらの情報により、図1の資産管理部20において、対象のリソースについて保守契約期間が終了しているか否かを確認し、システム担当者4や購買担当者6等に保守契約の更新の要否を問い合わせたりすることができる。保有ライセンス数の項目は、対象のリソースがソフトウェアの場合に保有しているライセンス数の情報を保持する。
【0047】
図5は、HW構成DB31のデータ構成の例について示した図である。HW構成DB31は、リソースプール2において稼働中のシステムの物理ハードウェア(サーバ)の構成情報を保持するテーブルであり、例えば、サーバID、サーバ名、ホスト名、IPアドレス、CPU数、CPUコア数、メモリサイズなどの情報を保持する。キー項目はサーバIDである。
【0048】
サーバIDの項目は、対象の物理サーバを識別するIDの情報を保持する。サーバ名、ホスト名およびIPアドレスの項目は、それぞれ、対象の物理サーバに設定されたサーバ名、ホスト名の情報および割り当てられたIPアドレスの情報を保持する。CPU数およびCPUコア数の情報は、それぞれ、対象の物理サーバが有するCPUおよび物理コアの数の情報を保持する。メモリサイズの項目は、対象の物理サーバが有する物理メモリのサイズの情報を保持する。
【0049】
図6は、仮想HW構成DB32のデータ構成の例について示した図である。仮想HW構成DB32は、リソースプール2において物理サーバ上で稼働中の仮想ハードウェア(仮想マシン)の構成情報を保持するテーブルであり、例えば、仮想マシンID、サーバID、テナントID、アプライアンスID、ホスト名、IPアドレス、vCPU数、仮想メモリサイズ、ローカルディスクサイズ、インシデントIDなどの項目を有する。キー項目は仮想マシンIDである。
【0050】
仮想マシンIDの項目は、対象の仮想マシンを識別するIDの情報を保持する。サーバIDの項目は、対象の仮想マシンが稼働する物理サーバのIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。テナントIDおよびアプライアンスIDの項目は、それぞれ、対象の仮想マシンを利用している顧客(テナント)および当該顧客が契約により選択したシステム構成のパターン(アプライアンス)を特定するIDの情報を保持する。
【0051】
ホスト名およびIPアドレスの項目は、それぞれ、対象の仮想マシンに設定されたホスト名および割り当てられたIPアドレスの情報を保持する。vCPU数、仮想メモリサイズおよびローカルディスクサイズの項目は、それぞれ、対象の仮想マシンに割り当てられたvCPU(仮想CPU)数、仮想メモリのサイズおよびローカルディスクのサイズの情報を保持する。インシデントIDの項目は、対象の仮想マシンを構築して稼働させたインシデントを識別するIDの情報を保持する。
【0052】
図7は、仮想SW構成DB33のデータ構成の例について示した図である。仮想SW構成DB33は、リソースプール2において稼働中の仮想マシン上で稼働するソフトウェアの情報を保持するテーブルであり、例えば、仮想マシンID、ソフトウェアID、サーバID、インシデントIDなどの項目を有する。キー項目は仮想マシンIDおよびソフトウェアIDである。
【0053】
仮想マシンIDの項目は、対象のソフトウェアが稼働する仮想マシンを識別するIDの情報を保持する。この仮想マシンIDの項目は、図6の仮想HW構成DB32における仮想マシンIDの項目と同様である。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。サーバIDの項目は、対象のソフトウェアが稼働する物理サーバを識別するIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。インシデントIDの項目は、対象のソフトウェアを導入して稼働させたインシデントを識別するIDの情報を保持する。
【0054】
図8は、ライセンス状況DB41のデータ構成の例について示した図である。ライセンス状況DB41は、リソースプール2において稼働中のシステムで消費されているソフトウェアのライセンス数の情報を保持するテーブルであり、例えば、ソフトウェアID、ライセンス消費数などの項目を有する。キー項目はソフトウェアIDである。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス消費数の項目は、対象のソフトウェアについて図1におけるライセンスチェック部40によって算出されたライセンスの消費数の情報を保持する。
【0055】
図9は、HW在庫DB51のデータ構成の例について示した図である。HW在庫DB51は、リソースプール2において未使用(顧客に提供するサービスとして未割当て)のハードウェアリソースの量を在庫情報として保持するテーブルであり、例えば、サーバID、vCPU残数、仮想メモリ残数などの項目を有する。キー項目はサーバIDである。サーバIDの項目は、対象のハードウェアリソースを有する物理サーバを識別するIDの情報を保持する。このサーバIDの項目は、図5のHW構成DB31におけるサーバIDの項目と同様である。vCPU残数および仮想メモリ残数の項目は、それぞれ、対象のサーバにおいて割当て可能なvCPUの数および仮想メモリのサイズの情報を在庫情報として保持する。
【0056】
図10は、SW在庫DB52のデータ構成の例について示した図である。SW在庫DB52は、リソースプール2において未使用のソフトウェアのライセンスの数を在庫情報として保持するテーブルであり、例えば、ソフトウェアID、ライセンス在庫数などの項目を有する。キー項目はソフトウェアIDである。ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス在庫数の項目は、対象のソフトウェアにおいて利用可能なライセンス数を在庫情報として保持する。
【0057】
図11は、HW在庫仮押えDB53のデータ構成の例について示した図である。HW在庫仮押えDB53は、リソースプール2においてシステムを新たに展開・構築する際に、必要なハードウェアリソースを在庫から仮押えした内容についての情報を保持するテーブルであり、例えば、サーバID、仮想マシンID、消費vCPU数、消費仮想メモリ数、インシデントIDなどの項目を有する。キー項目はサーバIDおよび仮想マシンIDである。
【0058】
サーバIDおよび仮想マシンIDの項目は、それぞれ、対象のハードウェアリソースを有する物理サーバおよび構築対象の仮想マシンを識別するIDの情報を保持する。このサーバIDおよび仮想マシンIDの項目は、それぞれ、図5のHW構成DB31におけるサーバIDの項目および図6の仮想HW構成DB32における仮想マシンIDの項目と同様である。消費vCPU数および消費仮想メモリ数の項目は、それぞれ、構築対象の仮想マシン上で必要なハードウェアリソース量として仮押えしたvCPUの数および仮想メモリのサイズの情報を保持する。インシデントIDの項目は、対象のハードウェアリソースを仮押えさせたインシデントを識別するIDの情報を保持する。
【0059】
図12は、SW在庫仮押えDB54のデータ構成の例について示した図である。SW在庫仮押えDB54は、リソースプール2においてシステムを新たに展開・構築する際に、必要なソフトウェアのライセンスを在庫から仮押えした内容についての情報を保持するテーブルであり、例えば、ソフトウェアID、ライセンス消費数、インシデントIDなどの項目を有する。キー項目はソフトウェアIDである。
【0060】
ソフトウェアIDの項目は、対象のソフトウェアを識別するIDの情報を保持する。このソフトウェアIDの項目は、図3のSWマスタDB12におけるソフトウェアIDの項目と同様である。ライセンス消費数の項目は、対象のソフトウェアについて必要なリソースとして仮押さえしたライセンス数の情報を保持する。インシデントIDの項目は、対象のソフトウェアのライセンスを仮押えさせたインシデントを識別するIDの情報を保持する。
【0061】
図13は、契約内容管理DB61のデータ構成の例について示した図である。契約内容管理DB61は、リソースプール2によるクラウドコンピューティングサービスの提供について顧客と締結された契約の内容を保持するテーブルであり、例えば、契約ID、テナントID、適用開始日、適用終了日、アプライアンスID、初期費用、月額費用、インシデントIDなどの項目を有する。キー項目は契約IDおよびテナントIDである。
【0062】
契約IDの項目は、顧客との契約を一意に識別するためのIDの情報を保持する。テナントIDの項目は、対象の契約を締結した顧客(テナント)を識別するためのIDの情報を保持する。このテナントIDの項目は、図6の仮想HW構成DB32におけるテナントIDの項目と同様である。なお、各テナントの名称や連絡先等の属性の情報は別途テナントのマスタテーブルに保持しておいてもよい。適用開始日および適用終了日の項目は、それぞれ、対象の契約が適用される期間の開始日および終了日の情報を保持する。
【0063】
アプライアンスIDの項目は、対象のテナントが対象の契約により選択したシステム構成のパターン(アプライアンス)を識別するIDの情報を保持する。このアプライアンスIDの項目は、図6の仮想HW構成DB32におけるアプライアンスIDの項目と同様である。顧客はアプライアンスとしてシステムの構成のパターンを選択することで、簡便・効率的にサービスを利用することができる。初期費用および月額費用の項目は、それぞれ、対象の契約における料金体系の内容を保持する。インシデントIDの項目は、対象の契約およびアプライアンスに基づいてリソースプール2にシステムを展開・構築するためのインシデントを識別するIDの情報を保持する。
【0064】
なお、上述の図2〜図13で示した各テーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
【0065】
<リソースプール管理処理−在庫更新およびライセンスチェック>
以下では、本発明の一実施の形態であるリソースプール管理システム1における管理処理の内容について説明する。まず、リソースプール2で稼働中のシステムの構成情報に基づいて、ハードウェア/ソフトウェアのリソースの在庫情報を最新の状態に更新するとともに、ソフトウェアのライセンスの消費状況をチェックし、必要なライセンスを保有していることを確認する処理について説明する。この処理は例えば日次処理として実行される。
【0066】
前提として、図1の構成管理部30での日次処理により、予めリソースプール2において稼働中のシステムのコンピュータリソースの構成をディスカバリし、取得した構成情報がHW構成DB31、仮想HW構成DB32および仮想SW構成DB33にそれぞれ保持されているものとする。
【0067】
図14は、HW在庫DB51に保持するハードウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。ハードウェアの在庫更新処理を開始すると、まず、図1における在庫管理部50は、HW構成DB31に保持されている各物理サーバについて処理を行うループ処理を開始する。当該ループ処理では、対象の物理サーバのCPUコアの総数およびメモリサイズの情報(保有リソース量)を取得する(S01)。次に、仮想HW構成DB32から、対象の物理サーバ上で稼働する各仮想マシンのレコードを抽出し、これらのvCPU数および仮想メモリサイズの合計(消費リソース量)を算出する(S02)。
【0068】
その後、ステップS01で取得したCPUコア数とメモリサイズ、およびステップS02で取得したvCPU数と仮想メモリサイズとの差分によりCPU残数と仮想メモリ残数を算出し、HW在庫DB51に出力して内容を更新する(S03)。その後、次の物理サーバの処理に移る。全ての物理サーバについてのループ処理が終了すると、ハードウェアの在庫更新処理を終了する。
【0069】
図15は、SW在庫DB52に保持するソフトウェアについての在庫情報を最新の状態に更新する処理の流れの例について概要を示したフローチャートである。ソフトウェアの在庫更新処理を開始すると、まず、図1における在庫管理部50は、ライセンスチェック部40により、各ソフトウェアについてのライセンスの消費数を算出してライセンス不足の有無をチェックするライセンスチェック処理を実行する(S11)。当該処理は、在庫更新処理とは非同期で予め実行しておいてもよい。なお、当該処理の内容については後述する。
【0070】
次に、仮想SW構成DB33に保持されている各ソフトウェアについて処理を行うループ処理を開始する。当該ループ処理では、対象のソフトウェアについて資産台帳DB21から保有ライセンス数を取得する(S12)。次に、対象のソフトウェアについてステップS11によって算出されたライセンスの消費数をライセンス状況DB41から取得する(S13)。次に、その後、ステップS12で取得した保有ライセンス数とステップS13で取得した消費ライセンス数との差分によりライセンス在庫数を算出し、SW在庫DB52に出力して内容を更新する(S14)。その後、次のソフトウェアの処理に移る。全てのソフトウェアについてのループ処理が終了すると、ソフトウェアの在庫更新処理を終了する。
【0071】
なお、在庫管理部50は、更新されたハードウェア/ソフトウェアの在庫情報を営業担当者5等に電子メール等により通知するようにしてもよい。また、在庫数が所定の閾値よりも少ないことを検知した場合は購買担当者6等にその旨の警告を電子メール等により通知するようにしてもよい。
【0072】
図16は、図15のステップS11におけるライセンスチェック処理の流れの例について概要を示したフローチャートである。当該処理では、構成管理部30が保有するリソースプール2におけるシステムの構成情報に基づいて、ソフトウェアのライセンス体系の特性に応じてライセンスの消費数を算出し、資産台帳DB21の情報と照合することでライセンス不足の有無をチェックする処理を行う。ライセンスチェック処理を開始すると、まず、ライセンスチェック部40は、仮想SW構成DB33に保持されている各ソフトウェアについて処理を行うループ処理を開始する。
【0073】
当該ループ処理では、対象のソフトウェアについてSWマスタDB12からライセンス計算パターンの情報を取得する(S21)。次に、取得したライセンス計算パターンに対応するライセンス計算ロジック42を取得し、これに基づいて対象のソフトウェアのライセンスの消費数を算出する(S22)。当該処理の内容については後述する。次に、算出したライセンスの消費数を、資産台帳DB21の保有ライセンス数と照合し、ライセンス不足の有無をチェックする(S23)。ライセンス数の残数が所定の閾値よりも少ない場合は購買担当者6等にその旨の警告を電子メール等により通知するようにしてもよい。その後、次のソフトウェアの処理に移る。全てのソフトウェアについてのループ処理が終了すると、ライセンスチェック処理を終了する。
【0074】
<ライセンス計算パターンおよびライセンス計算ロジック>
以下では、図16のライセンスチェック処理におけるソフトウェア毎のライセンス計算パターンおよびライセンス計算ロジック42の内容について説明する。図17は、ライセンス計算パターンの判断基準の1つとなるソフトウェアのグルーピングパターンの概念の例について示した図である。一般的に、ソフトウェアのライセンスの消費単位としては、ソフトウェアやバージョン、エディション単位など種々のものが存在し、メーカーやベンダー、ソフトウェア等により異なる場合がある。これらをカテゴライズすると、図17に示すように、概ね以下の(a)〜(d)の4つのパターン(以下ではこれを「グルーピングパターン」と記載する場合がある)に分類することが可能である。
【0075】
(a)ソフトウェア毎にバージョンおよびエディションの単位でライセンスが必要となるもの。すなわち、同一ソフトウェアの同一バージョンであっても、エディションが異なれば別個のライセンスを必要とするもの。(b)ソフトウェア毎にエディションの単位でライセンスが必要となるもの。すなわち、同一ソフトウェアについて異なるバージョンであっても、エディションが同一であればライセンスは共通となるもの。(c)ソフトウェア毎にバージョンの単位でライセンスが必要となるもの。すなわち、エディションの考え方がないもの。(d)ソフトウェアの単位でライセンスが必要となるもの。すなわち、エディションの考え方がなく、同一のソフトウェアであれば異なるバージョンであってもライセンスは共通となるもの。
【0076】
上記の4つのパターンにおいて、(a)および(c)のパターン、すなわち、異なるバージョンでは別個のライセンスを必要とするパターンは、本実施の形態のリソースプール2で使用されるような、メーカーやベンダーとの保守契約が付随するサーバ用のソフトウェアでは一般的ではなく基本的には存在しないと考えられる(ライセンスの購入ではなく保守契約によってバージョンアップが行われる)。また、一般的に利用される多くのソフトウェアが(d)のパターンにカテゴライズされるものと考えられる。
【0077】
なお、上記の4つの典型的なグルーピングパターンに属さない特殊なライセンス体系を有するソフトウェアも存在する(例えば、上位エディションのライセンスに下位エディションの利用権が存在するものなど)。これらについては、特殊パターンとして追加でグルーピングパターンを割当てることができる。
【0078】
図18は、ライセンス計算パターンの別の判断基準となるライセンス計算グループの概念の例について示した図である。本実施の形態のリソースプール2で使用されるような、仮想マシン上で稼働するソフトウェアの場合、導入されるサーバの構成によってライセンスの消費数が異なる場合がある。これらをカテゴライズすると、図18に示すように、概ね以下の(1)〜(4)の4つのグループ(以下ではこれを「ライセンス計算グループ」と記載する場合がある)に分類することが可能である。
【0079】
(1)導入される仮想マシンのvCPU毎にライセンスが必要となるもの。(2)導入される仮想マシン毎にライセンスが必要となるもの。すなわち、導入される仮想マシンのvCPUの数に依存せずにライセンスが必要となるもの。(3)導入される物理サーバのCPU毎にライセンスが必要となるもの。すなわち、導入される仮想マシンの数に依存せず、また、導入される仮想マシンが利用しない物理CPUが存在する場合でも、物理サーバのCPU数分のライセンスが必要となるもの。(4)導入される物理サーバのCPUのコア毎にライセンスが必要となるもの。すなわち、導入される仮想マシンの数に依存せず、また、導入される仮想マシンが利用しない物理CPUが存在する場合でも、物理サーバのCPUコア数分のライセンスが必要となるもの。
【0080】
なお、上記の4つの典型的なライセンス計算グループに属さない特殊なライセンス体系を有するソフトウェアも存在する(例えば、vCPUの数について階段状にライセンス数が消費されるものや、導入される仮想マシンがハイパーバイザの割当てにより実際に利用する物理CPUの数分のライセンスが消費されるものなど)。これらについては、特殊グループとして追加でライセンス計算グループを割当てることができる。
【0081】
図19は、図17に示したグルーピングパターンと、図18に示したライセンス計算グループをマトリクス化し、これらの組み合わせに対してライセンス計算パターンを割当てた例を示した図である。図中において、典型的なグルーピングパターン(a)〜(d)および典型的なライセンス計算グループ(1)〜(4)からなる部分については、基本的に存在しないと考えられる(a)および(c)のグルーピングパターンを除き、ライセンス計算パターン(“#001”〜“#004”)を割当てている。また、特殊なグルーピングパターン(e)およびライセンス計算グループ(5)〜(8)についても、該当する箇所にライセンス計算パターン(“#105”〜“#108”)を割当てることができる。
【0082】
ここで、ライセンス計算パターンとは、ライセンスの消費数を算出する際の計算方法(ロジック)のパターンであり、ソフトウェア毎にグルーピングパターンおよびライセンス計算グループに基づいて割当てられ、SWマスタDB12のライセンス計算パターンの項目に予め設定される。各ライセンス計算パターンに対応するライセンス消費数の計算ロジックはライセンス計算ロジック42に定義され、ライセンスチェック部40によって管理される。
【0083】
図中に示すとおり、上述したライセンス計算グループ(1)〜(4)において、(b)と(d)のグルーピングパターンでは同じライセンス計算パターン(“#001”〜“#004”)となることを示している。これらのライセンス計算パターンに対応する具体的な計算方法であるライセンス計算ロジック42の概要は例えば以下の通りである。
【0084】
ライセンス計算パターン“#001”では、まず、ライセンスの消費数の算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された仮想マシンを特定し、さらに仮想HW構成DB32により、対象の各仮想マシンのvCPU数を取得する。取得したvCPU数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0085】
ライセンス計算パターン“#002”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された仮想マシンを特定する。特定した仮想マシンの台数が対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0086】
ライセンス計算パターン“#003”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された物理サーバを特定し、さらにHW構成DB31により、対象の物理サーバのCPU数を取得する。取得したCPU数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0087】
ライセンス計算パターン“#004”では、“#001”と同様に、まず、算出対象のソフトウェアについて、SWマスタDB12から、親ソフトウェアIDの項目に算出対象のソフトウェアのソフトウェアIDが指定されているレコードを抽出する。次に、仮想SW構成DB33により、算出対象のソフトウェアおよび先に抽出したレコードに対応するソフトウェアについて、これらが導入された物理サーバを特定し、さらにHW構成DB31により、対象の物理サーバのCPUコア数を取得する。取得したCPUコア数を全て加算したものが対象のソフトウェアのライセンス消費数となるため、これをライセンス状況DB41に登録する。
【0088】
このように、グルーピングパターンおよびライセンス計算グループの組み合わせにより各ソフトウェアのライセンス体系をカテゴライズしてライセンス計算パターンを割当て、対応するライセンス計算ロジック42を定義することにより、仮想マシン上で稼働するソフトウェアのライセンス体系と実際のシステム構成に応じたライセンス消費数の算出が可能となる。
【0089】
<リソースプール管理処理−構築時の在庫仮押え>
以下では、本発明の一実施の形態であるリソースプール管理システム1における管理処理の他の内容として、リソースプール2へのシステムの新たな展開・構築の際に、システム構築部70からの要求により、在庫管理部50が必要となるリソースを仮押えする際の処理について説明する。
【0090】
図20は、ハードウェアリソースについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。ハードウェアの在庫仮押え処理を開始すると、在庫管理部50は、まず、システム構築部70が構築仕様13に基づいて指定した構築対象の各ハードウェアについて処理を行うループ処理を開始する。当該ループ処理では、まず、対象のハードウェアについてHW在庫DB51を参照して在庫があるか否かを確認し(S31)、在庫がない場合は当該ハードウェアの情報を記憶した上で次のハードウェアの処理に移る。
【0091】
ステップS31において在庫がある場合は、HW在庫仮押えDB53に必要なリソースの情報をシステム構築部70から指定されたインシデントIDの情報とともに登録する(S32)。このとき対象の物理サーバについて既に仮押え情報が登録されている場合はこれに加算して更新する。さらに、HW在庫DB51の対応するリソースの在庫量を減算して更新し(S33)、さらに、構成管理部30に依頼する等によりHW構成DB31および仮想HW構成DB32に対応する構成情報を登録する(S34)。その後、次のハードウェアの処理に移る。構築対象の全てのハードウェアについてのループ処理が終了すると、在庫の仮押えの結果をシステム担当者4に通知する等の処理を行った上でハードウェアの在庫仮押え処理を終了する。
【0092】
図21は、ソフトウェアのライセンスについて在庫を仮押えする処理の流れの例について概要を示したフローチャートである。ソフトウェアの在庫仮押え処理を開始すると、在庫管理部50は、まず、システム構築部70が構築仕様13に基づいて指定した構築(導入)対象の各ソフトウェアについて処理を行うループ処理を開始する。
【0093】
当該ループ処理では、まず、対象のソフトウェアについてSWマスタDB12を参照し、ライセンス体系が物理サーバに依存する(仮想マシンに依存しない)ものであるか否かを確認する(S41)。例えば、対象のソフトウェアが図18に示したライセンス計算グループにおいて(3)もしくは(4)に該当するものである場合は物理サーバに依存するライセンス体系に該当する。本実施の形態では、このような判定を容易にするため、SWマスタDB12に物理サーバ依存ライセンスフラグとしてライセンス条項や条件等に基づいて当該情報を予め設定しておくものとする。すなわち、ステップS41では、SWマスタDB12の物理サーバ依存ライセンスフラグの値を判定することになる。
【0094】
ステップS41で対象のソフトウェアが物理サーバに依存するライセンス体系でない場合は、後述するステップS45に進む。物理サーバに依存するライセンス体系である場合は、次に、ライセンスの必要数を算出するための特殊なロジックが必要か否かを判定する(S42)。ここでは、対象のソフトウェアを導入する仮想マシンが稼働する物理サーバのCPU数やコア数からの単純な計算により必要なライセンス数を算出することが困難なライセンス計算グループに属するような場合が該当する。
【0095】
本実施の形態では、このような判断を容易にするため、SWマスタDB12に在庫仮押え特殊ロジックNoとして、予め定義された特殊ロジックを特定する情報を設定可能であるものとする。在庫仮押え特殊ロジックNoの設定内容により特殊ロジックが必要であると判定される場合は、在庫仮押え特殊ロジックNoによって特定される特殊ロジックを利用してライセンスの消費数を算出し(S43)、後述するステップS46に進む。
【0096】
ステップS42で特殊ロジックが必要でない場合は、仮想SW構成DB33を参照して、対象のソフトウェアが構築仕様13にて指定された導入対象の物理サーバに既に導入されているか否かを判定する(S44)。既に導入済みである場合は、対象のソフトウェアについてのライセンスは引当て済みであるとして、何もせずに次のソフトウェアの処理に移る。対象の物理サーバにまだ導入されていない場合は、対象のソフトウェアを対象の物理サーバに導入する際に消費するライセンス数を取得する(S45)。具体的には、SWマスタDB12の仮押えライセンス数の項目の値を取得する。
【0097】
本来では、同一のソフトウェアであっても導入対象の物理サーバや仮想サーバのCPU数等の構成に応じてライセンスの消費数は異なる場合がある。しかしながら、クラウドコンピューティング環境では、大量のハードウェアリソースを維持・管理して提供する必要があることからその構成は物理サーバ間で統一される場合が多いと考えられる。従って、本実施の形態では、リソースプール2で管理される物理サーバのシステム構成は基本的に統一されているものとし、どの物理サーバに導入しても一律にSWマスタDB12における仮押えライセンス数に設定されたライセンス数が消費されるものとして計算の簡略化を図っている。なお、物理サーバの構成が統一されていない環境において、上述したソフトウェア在庫更新処理で示したように、導入対象の物理サーバの構成に基づいてライセンスの消費数を個別に算出する手順とすることも当然ながら可能である。
【0098】
その後、対象のソフトウェアについて必要なライセンス数につき、SW在庫DB52を参照してライセンスの在庫があるか否かを確認し(S46)、在庫がない場合は当該ソフトウェアの情報を記憶した上で次のソフトウェアの処理に移る。
【0099】
ステップS46において在庫がある場合は、SW在庫仮押えDB54に必要なライセンス数の情報をシステム構築部70から指定されたインシデントIDの情報とともに登録する(S47)。このとき対象のソフトウェアについて既に仮押え情報が登録されている場合はこれに加算して更新する。さらに、SW在庫DB52の対応するソフトウェアのライセンスの在庫数を減算して更新し(S48)、さらに構成管理部30に依頼する等により仮想SW構成DB33に対応する構成情報を登録する(S49)。その後、次のソフトウェアの処理に移る。導入対象の全てのソフトウェアについてのループ処理が終了すると、ライセンスの在庫の仮押えの結果をシステム担当者4に通知する等の処理を行った上でソフトウェアの在庫仮押え処理を終了する。
【0100】
なお、上記のハードウェア/ソフトウェアの在庫仮押え処理による構築対象のハードウェア/ソフトウェアリソースの在庫の仮押えの成立をもって、システム担当者4がリソースプール2に対するシステム構築実行の承認(変更承認)を行うようすることが可能である。その後、リソースプール2におけるシステム構築が完了した際に、HW在庫仮押えDB53およびSW在庫仮押えDB54のレコードを削除等することで、仮押えしていた在庫の引当てを確定することができる。
【0101】
以上に説明したように、本発明の一実施の形態であるリソースプール管理システム1もしくはライセンスチェックシステムによれば、リソースプール2において稼働中のシステムにおいて消費されているソフトウェア(特に仮想サーバ上で稼働し、ライセンス体系が複雑なソフトウェア)のライセンス数を適切に算出して、保有するライセンス数との比較により在庫に反映させるとともに、稼働中のシステムがライセンス違反となっていないことを確認することが可能となる。
【0102】
また、新たにシステムを構築する際に、システム構成に応じた適切なライセンス数を在庫から仮押えして確保した上で構築する。また、いずれの場合にも、保有ライセンス数が不足しそうであることを検知した場合は、購買担当者6等に通知してライセンスの購入を促すことができる。このような仕組みにより、クラウドコンピューティング環境でのリソースプールにおけるような大規模なシステム環境におけるソフトウェア(特に仮想サーバで稼働するソフトウェア)のライセンスの管理を効率的に行うことが可能となる。
【0103】
また、ソフトウェアのライセンス条項や条件が特殊なものである場合にも、対応するライセンス計算ロジック42を定義してライセンス計算パターンを割当てることでライセンスの消費数を算出することが可能であり、高い拡張性も有する。
【0104】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0105】
本発明は、クラウドコンピューティングサービス等において利用される仮想マシンや仮想サーバ上で稼働するソフトウェアのライセンスの有無をチェックするライセンスチェックシステムおよびリソースプール管理システムに利用可能である。
【符号の説明】
【0106】
1…リソースプール管理システム、2…リソースプール、3…サービスポータル、4…システム担当者、5…営業担当者、6…購買担当者、
11…HWマスタDB、12…SWマスタDB、13…構築仕様、
20…資産管理部、21…資産台帳DB、
30…構成管理部、31…HW構成DB、32…仮想HW構成DB、33…仮想SW構成DB、
40…ライセンスチェック部、41…ライセンス状況DB、42…ライセンス計算ロジック、
50…在庫管理部、51…HW在庫DB、52…SW在庫DB、53…HW在庫仮押えDB、54…SW在庫仮押えDB、
60…契約管理部、61…契約内容管理DB、
70…システム構築部。
【特許請求の範囲】
【請求項1】
複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、
前記リソースプールにおいて稼働中のシステムの構成情報をディスカバリして、物理サーバの構成情報を含むハードウェア構成、物理サーバ上で稼働する仮想マシンの構成情報を含む仮想ハードウェア構成および仮想マシン上で稼働するソフトウェアの情報を含む仮想ソフトウェア構成の各情報を取得し、これらをそれぞれ、HW構成記録手段、仮想HW構成記録手段および仮想SW構成記録手段に記録して保持する構成管理部と、
前記構成管理部から前記ハードウェア構成、前記仮想ハードウェア構成および前記仮想ソフトウェア構成の情報を取得し、これらの情報に基づいて、前記リソースプールにおいて稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジックに従って算出し、ライセンス状況記録手段に記録するライセンスチェック部とを有することを特徴とするライセンスチェックシステム。
【請求項2】
請求項1に記載のライセンスチェックシステムにおいて、
各ソフトウェアのライセンス体系について、ソフトウェア、バージョンおよびエディションのいずれの単位でライセンスが消費されるかをカテゴライズしたグルーピングパターンと、各ソフトウェアのライセンス体系について、導入される機器の構成によってライセンスの消費数が異なるパターンをカテゴライズしたライセンス計算グループとの組み合わせに対してライセンス計算パターンを割り当て、
前記ライセンスチェック部は、前記ライセンス計算パターンに対応して予め定義された前記ライセンス計算ロジックを保持することを特徴とするライセンスチェックシステム。
【請求項3】
請求項2に記載のライセンスチェックシステムにおいて、
前記グルーピングパターンは、(a)ソフトウェア毎にバージョンおよびエディションの単位でライセンスが必要となるもの、(b)ソフトウェア毎にエディションの単位でライセンスが必要となるもの、(c)ソフトウェア毎にバージョンの単位でライセンスが必要となるもの、(d)ソフトウェアの単位でライセンスが必要となるもの、の各パターンを含み、
前記ライセンス計算グループは、(1)導入される仮想マシンの仮想CPU毎にライセンスが必要となるもの、(2)導入される仮想マシン毎にライセンスが必要となるもの、(3)導入される物理サーバのCPU毎にライセンスが必要となるもの、(4)導入される物理サーバのCPUの物理コア毎にライセンスが必要となるもの、の各パターンを含むことを特徴とするライセンスチェックシステム。
【請求項4】
請求項1〜3のいずれか1項に記載のライセンスチェックシステムを有し、
顧客からの要求に基づく構築仕様の内容に従って、前記リソースプールにおいてハードウェアおよびソフトウェアのリソースを展開してシステムを構築してサービスとして提供するリソースプール管理システムであって、
さらに、前記リソースプールにて保有するハードウェアのリソース量およびソフトウェアのライセンスの数を含む情報を資産台帳記録手段に記録して保持する資産管理部と、
前記リソースプールにて保有するハードウェアのリソースおよびソフトウェアのライセンスの数量の未使用もしくは未割当て分を在庫としてHW在庫記録手段およびSW在庫記録手段にそれぞれ記録して保持する在庫管理部とを有し、
前記在庫管理部は、前記資産管理部が有するハードウェアの保有リソース量と、前記構成管理部が有する前記ハードウェア構成および前記仮想ハードウェア構成から得られる前記リソースプールで稼働中のシステムにおける消費リソース量との差分から、ハードウェアのリソースの在庫情報を算出して前記HW在庫記録手段の内容を更新し、また、前記資産管理部が有するソフトウェアの保有ライセンス数と、前記ライセンスチェック部が有するソフトウェアの消費ライセンス数との差分から、ソフトウェアのライセンスの在庫情報を算出して前記SW在庫記録手段の内容を更新することを特徴とするリソースプール管理システム。
【請求項5】
請求項4に記載のリソースプール管理システムにおいて、
前記在庫管理部は、前記リソースプールにおいてハードウェアまたはソフトウェアのリソースを展開してシステムを構築する際に、前記構築仕様にて指定されたハードウェアまたはソフトウェアについて、必要なリソース量またはライセンス数を、前記HW在庫記録手段または前記SW在庫記録手段に保持する在庫から仮押えすることを特徴とするリソースプール管理システム。
【請求項6】
請求項5に記載のリソースプール管理システムにおいて、
前記リソースプールにおける各物理サーバのシステム構成は統一されており、
前記在庫管理部は、前記構築仕様にて指定されたソフトウェアについて在庫を仮押えする際に、各ソフトウェアについてライセンスの消費数が物理サーバに依存するか否か、および仮押えの際の消費ライセンスの単位数について予め定義された情報に基づいて、前記構築仕様にて指定された導入先の物理サーバもしくは仮想マシンの情報に応じて必要なライセンス数を算出して仮押えすることを特徴とするリソースプール管理システム。
【請求項7】
請求項4〜6のいずれか1項に記載のリソースプール管理システムにおいて、
前記在庫管理部は、前記HW在庫記録手段または前記SW在庫記録手段に保持する在庫の数量が所定の閾値より少ないことを検知した場合に、その旨をユーザに通知することを特徴とするリソースプール管理システム。
【請求項1】
複数の物理サーバ上で稼働する仮想マシンおよび各仮想マシン上で稼働するソフトウェアからなるシステム環境であるリソースプールにおいてソフトウェア毎に実際に消費されているライセンスの数を把握するライセンスチェックシステムであって、
前記リソースプールにおいて稼働中のシステムの構成情報をディスカバリして、物理サーバの構成情報を含むハードウェア構成、物理サーバ上で稼働する仮想マシンの構成情報を含む仮想ハードウェア構成および仮想マシン上で稼働するソフトウェアの情報を含む仮想ソフトウェア構成の各情報を取得し、これらをそれぞれ、HW構成記録手段、仮想HW構成記録手段および仮想SW構成記録手段に記録して保持する構成管理部と、
前記構成管理部から前記ハードウェア構成、前記仮想ハードウェア構成および前記仮想ソフトウェア構成の情報を取得し、これらの情報に基づいて、前記リソースプールにおいて稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジックに従って算出し、ライセンス状況記録手段に記録するライセンスチェック部とを有することを特徴とするライセンスチェックシステム。
【請求項2】
請求項1に記載のライセンスチェックシステムにおいて、
各ソフトウェアのライセンス体系について、ソフトウェア、バージョンおよびエディションのいずれの単位でライセンスが消費されるかをカテゴライズしたグルーピングパターンと、各ソフトウェアのライセンス体系について、導入される機器の構成によってライセンスの消費数が異なるパターンをカテゴライズしたライセンス計算グループとの組み合わせに対してライセンス計算パターンを割り当て、
前記ライセンスチェック部は、前記ライセンス計算パターンに対応して予め定義された前記ライセンス計算ロジックを保持することを特徴とするライセンスチェックシステム。
【請求項3】
請求項2に記載のライセンスチェックシステムにおいて、
前記グルーピングパターンは、(a)ソフトウェア毎にバージョンおよびエディションの単位でライセンスが必要となるもの、(b)ソフトウェア毎にエディションの単位でライセンスが必要となるもの、(c)ソフトウェア毎にバージョンの単位でライセンスが必要となるもの、(d)ソフトウェアの単位でライセンスが必要となるもの、の各パターンを含み、
前記ライセンス計算グループは、(1)導入される仮想マシンの仮想CPU毎にライセンスが必要となるもの、(2)導入される仮想マシン毎にライセンスが必要となるもの、(3)導入される物理サーバのCPU毎にライセンスが必要となるもの、(4)導入される物理サーバのCPUの物理コア毎にライセンスが必要となるもの、の各パターンを含むことを特徴とするライセンスチェックシステム。
【請求項4】
請求項1〜3のいずれか1項に記載のライセンスチェックシステムを有し、
顧客からの要求に基づく構築仕様の内容に従って、前記リソースプールにおいてハードウェアおよびソフトウェアのリソースを展開してシステムを構築してサービスとして提供するリソースプール管理システムであって、
さらに、前記リソースプールにて保有するハードウェアのリソース量およびソフトウェアのライセンスの数を含む情報を資産台帳記録手段に記録して保持する資産管理部と、
前記リソースプールにて保有するハードウェアのリソースおよびソフトウェアのライセンスの数量の未使用もしくは未割当て分を在庫としてHW在庫記録手段およびSW在庫記録手段にそれぞれ記録して保持する在庫管理部とを有し、
前記在庫管理部は、前記資産管理部が有するハードウェアの保有リソース量と、前記構成管理部が有する前記ハードウェア構成および前記仮想ハードウェア構成から得られる前記リソースプールで稼働中のシステムにおける消費リソース量との差分から、ハードウェアのリソースの在庫情報を算出して前記HW在庫記録手段の内容を更新し、また、前記資産管理部が有するソフトウェアの保有ライセンス数と、前記ライセンスチェック部が有するソフトウェアの消費ライセンス数との差分から、ソフトウェアのライセンスの在庫情報を算出して前記SW在庫記録手段の内容を更新することを特徴とするリソースプール管理システム。
【請求項5】
請求項4に記載のリソースプール管理システムにおいて、
前記在庫管理部は、前記リソースプールにおいてハードウェアまたはソフトウェアのリソースを展開してシステムを構築する際に、前記構築仕様にて指定されたハードウェアまたはソフトウェアについて、必要なリソース量またはライセンス数を、前記HW在庫記録手段または前記SW在庫記録手段に保持する在庫から仮押えすることを特徴とするリソースプール管理システム。
【請求項6】
請求項5に記載のリソースプール管理システムにおいて、
前記リソースプールにおける各物理サーバのシステム構成は統一されており、
前記在庫管理部は、前記構築仕様にて指定されたソフトウェアについて在庫を仮押えする際に、各ソフトウェアについてライセンスの消費数が物理サーバに依存するか否か、および仮押えの際の消費ライセンスの単位数について予め定義された情報に基づいて、前記構築仕様にて指定された導入先の物理サーバもしくは仮想マシンの情報に応じて必要なライセンス数を算出して仮押えすることを特徴とするリソースプール管理システム。
【請求項7】
請求項4〜6のいずれか1項に記載のリソースプール管理システムにおいて、
前記在庫管理部は、前記HW在庫記録手段または前記SW在庫記録手段に保持する在庫の数量が所定の閾値より少ないことを検知した場合に、その旨をユーザに通知することを特徴とするリソースプール管理システム。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図19】
【図20】
【図21】
【図1】
【図17】
【図18】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図19】
【図20】
【図21】
【図1】
【図17】
【図18】
【公開番号】特開2012−33096(P2012−33096A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−173677(P2010−173677)
【出願日】平成22年8月2日(2010.8.2)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願日】平成22年8月2日(2010.8.2)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】
[ Back to top ]