(57)【要約】  占有サーバ、仮想サーバが混在したシステムを効率的に構築する。  割り当て部（１５０）は、システム構成情報（５０１）、及び、リソース情報（６０１）を参照し、システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、１以上の処理装置（２００）の内、占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置（２００）を割り当て、占有サーバとして配備すべきサーバではないサーバに対しては、１以上の処理装置（２００）の内、占有サーバとして配備すべきサーバに割り当てられていない処理装置（２００）上の、占有サーバとして配備すべきサーバではないサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる。
2014091734.tif 000002
【特許請求の範囲】
【請求項１】
システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得する、構成情報取得手段と、
１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得する、リソース情報取得手段と、
前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバではないサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバではないサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、割り当て処理を行う、割り当て手段と、
を備えるシステム構築装置。
【請求項２】
前記割り当て手段は、１以上のリソースの全体量を表すリソース評価値を算出するための所定のリソース評価式を用いて、前記１以上の処理装置の各々のリソース評価値を算出し、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する、割り当てられていない処理装置の内、他の処理装置よりも小さいリソース評価値を有する処理装置を、前記占有サーバとして配備すべきサーバに割り当てる、
請求項１に記載のシステム構築装置。
【請求項３】
前記システム構成情報は、前記所定のリソース評価式を含み、
前記割り当て手段は、前記システム構成情報に含まれる前記リソース評価式を用いて、前記１以上の処理装置の各々のリソース評価値を算出する、
請求項２に記載のシステム構築装置。
【請求項４】
前記所定のリソース評価式は、複数の評価式を含み、
前記割り当て手段は、前記割り当て処理を、前記システムに含まれる１以上のサーバの全てに対する処理装置、または、リソースの割り当てができるまで、前記複数の評価式の各々を順番に用いて繰り返す、
請求項２または３に記載のシステム構築装置。
【請求項５】
前記占有条件は、処理装置を占有する優先度を示し、
前記割り当て手段は、前記割り当て処理において、前記優先度が閾値以上のサーバを占有サーバとして配備すべきサーバ、前記優先度が前記閾値未満のサーバを占有サーバとして配備すべきサーバではないサーバとして、前記割り当て処理を、前記システムに含まれる１以上のサーバの全てに対する処理装置、または、リソースの割り当てができるまで、前記閾値を増やしながら繰り返す、
請求項１乃至４のいずれかに記載のシステム構築装置。
【請求項６】
システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得し、
１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得し、
前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバではないサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバではないサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、割り当て処理を行う、
システム構築方法。
【請求項７】
前記割り当て処理において、１以上のリソースの全体量を表すリソース評価値を算出するための所定のリソース評価式を用いて、前記１以上の処理装置の各々のリソース評価値を算出し、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する、割り当てられていない処理装置の内、他の処理装置よりも小さいリソース評価値を有する処理装置を、前記占有サーバとして配備すべきサーバに割り当てる、
請求項６に記載のシステム構築方法。
【請求項８】
前記所定のリソース評価式は、複数の評価式を含み、
前記割り当て処理が、前記システムに含まれる１以上のサーバの全てに対する処理装置、または、リソースの割り当てができるまで、前記複数の評価式の各々を順番に用いて繰り返される、
請求項７に記載のシステム構築方法。
【請求項９】
前記占有条件は、処理装置を占有する優先度を示し、
前記割り当て処理において、前記優先度が閾値以上のサーバを占有サーバとして配備すべきサーバ、前記優先度が前記閾値未満のサーバを占有サーバとして配備すべきサーバではないサーバとし、前記割り当て処理が、前記システムに含まれる１以上のサーバの全てに対する処理装置、または、リソースの割り当てができるまで、前記閾値を増やしながら繰り返される、
請求項６乃至８のいずれかに記載のシステム構築方法。
【請求項１０】
コンピュータに、
システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得し、
１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得し、
前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバではないサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバではないサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム構築装置、及び、システム構築方法に関する。
【背景技術】
【０００２】
近年のサーバ仮想化技術の発達によって、顧客管理、給与管理のような企業向けの業務システムや、一般消費者向けのＷｅｂ店舗、ＳＮＳ（Social Networking Service）を提供するシステムなど、多くのＩＴ（Information Technology）システムが、クラウド環境における仮想サーバにより構築されている。クラウド環境では、大量のベアメタルサーバ上に、仮想化基盤と呼ばれるミドルウェアを用いて、大量の仮想サーバが収容される。【０００３】
ＩＴシステム（以下、単にシステム）の多くは、単一のサーバではなく、機能コンポーネント毎にサーバを割り当てる、あるいは、重い負荷を複数のサーバで分散処理するために、多数のサーバにより構成される。このように多数のサーバにより構成されるシステムを、上記のような仮想化基盤上に効率的に構築する技術が、例えば、特許文献１に開示されている。特許文献１に開示された技術では、空きリソースの状態から各サーバの配置先のコンピュータを求めることで、仮想サーバの収容が効率的に行われる。【０００４】
一方、システムの要件によっては、システムを上述のクラウド環境のような、他者と共有する環境における仮想化基盤上ではなく、所有者が保有、管理する環境（オンプレミス環境）に構築、運用することが要求される。これは、例えば、システムが持ち出し不能な機微情報を扱う場合や、システムの処理を法制度上、他者と共有する環境では実行できない場合、あるいは、システムが機能、性能上、特殊な操作や対応を必要とする場合である。【０００５】
オンプレミス環境上に、一般のクラウド環境と同等の仮想化基盤を効率的に構築するアプライアンス製品が、例えば、非特許文献１に開示されている。非特許文献１のアプライアンス製品は、システムのハードウェアからアプリケーションまでを垂直統合的に構築する。【０００６】
なお、関連技術として、特許文献２には、グループ条件に従って、複数の仮想サーバを同一の物理リソースに配置するか、異なる物理リソースに配置するかを決定する技術が開示されている。特許文献３には、物理リソースの優先順位、制約条件、仮想マシンの負荷情報をもとに、仮想マシンを配置する物理リソースを決定する技術が開示されている。特許文献４には、仮想マシン中のアプリケーションの優先度に従って、仮想マシンに割り当てるリソースを調整する技術が開示されている。特許文献５には、ｍ台のサーバ装置をｎ（ｎ＜ｍ）台のサーバ装置に統合するための、リソース割り当て装置が開示されている。特許文献６には、資源数算出式により算出した必要資源数に対して、有効資源数判定式により算出した有効資源数をもとに、サービスに割り当てる資源数を調整する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１４６４２０号公報
【特許文献２】特開２００９−１９９３９５号公報
【特許文献３】特開２０１１−０１３８２２号公報
【特許文献４】特開２００９−１８１５７８号公報
【特許文献５】国際公開第２０１０／０４４１３１号
【特許文献６】特開２００５−１７３９２８号公報
【非特許文献】
【０００８】
【非特許文献１】"IBM PureFlex System（登録商標）"、International Business Machines Corporation、［online］、［平成24年12月3日検索］、インターネット〈URL：http://www-06.ibm.com/systems/jp/pureflex/enterprise/〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述の特許文献１、特許文献２に開示された技術では、全ての物理リソースを仮想化し、仮想化基盤上にシステムを構築することを前提としている。【００１０】
しかしながら、システムによっては、情報管理や性能要件上、システムを構成するサーバの一部を、仮想マシン上で動作する仮想サーバではなく、サーバが占有する物理的なコンピュータ（ハードウェア）上で動作する占有サーバとして配備（インストール）する必要がある。【００１１】
また、オンプレミス環境でも、常に十分な数のコンピュータや、そのリソースを準備できるとは限らない。そのため、ファシリティやランニングコストを考慮し、最小限の数のコンピュータを用いる、あるいは、既存の余剰なコンピュータを用いて、システムを構築するというような制約が生じることがある。この場合、システムを構成する全てのサーバを占有サーバとして配備するためのコンピュータが準備できるとは限らず、重要度の低いサーバは、仮想サーバとして配備する必要がある。【００１２】
上述の特許文献１、特許文献２に開示された技術では、このように、占有サーバと仮想サーバが混在したシステムに対して、リソースを割り当て、システムを構築することは考慮されていない。【００１３】
本発明の目的は、上述の課題を解決し、占有サーバ、仮想サーバが混在したシステムを効率的に構築できる、システム構築装置、及び、システム構築方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の一態様におけるシステム構築装置は、システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得する、構成情報取得手段と、１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得する、リソース情報取得手段と、前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバ以外のサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバ以外のサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、割り当て処理を行う、割り当て手段と、を備える。【００１５】
本発明の一態様におけるシステム構築方法は、システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得し、１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得し、前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバ以外のサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバ以外のサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、割り当て処理を行う。【００１６】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得し、１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得し、前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバ以外のサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバ以外のサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、処理を実行させるプログラムを格納する。
【発明の効果】
【００１７】
本発明の効果は、占有サーバ、仮想サーバが混在したシステムを効率的に構築できることである。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、システム構築装置１００の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、システム構成情報５０１の例を示す図である。
【図４】本発明の第１の実施の形態における、リソース要求情報５１１の例を示す図である。
【図５】本発明の第１の実施の形態における、リソース情報６０１の例を示す図である。
【図６】本発明の第１の実施の形態における、割り当て結果７０１の例を示す図である。
【図７】本発明の第１の実施の形態における、システム構築装置１００の処理を示すフローチャートである。
【図８】本発明の第１の実施の形態における、割り当て処理（ステップＳ１０３）の詳細を示すフローチャートである。
【図９】本発明の第２の実施の形態における、システム構成情報５０１の例を示す図である。
【図１０】本発明の第３の実施の形態における、割り当て処理（ステップＳ１０３）の詳細を示すフローチャートである。
【図１１】本発明の第４の実施の形態における、リソース要求情報５１１の例を示す図である。
【図１２】本発明の第４の実施の形態における、割り当て処理（ステップＳ１０３）の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１９】
（第１の実施の形態）
次に、本発明の第１の実施の形態について説明する。
【００２０】
はじめに、本発明の第１の実施の形態の構成について説明する。図２は、本発明の第１の実施の形態における、システム構築装置１００の構成を示すブロック図である。
【００２１】
図２を参照すると、本発明の第１の実施の形態のシステム構築装置１００は、システム構築先の環境に含まれる複数の処理装置２００と、ネットワーク等により接続される。ここで、処理装置２００は、例えば、通信機能を持つ基本ＯＳ（Operating System）やインストールプログラム等を備えた物理的なコンピュータである。
【００２２】
本発明の第１の実施の形態では、システムは、構成要素として、複数のサーバを含む。各サーバは、構成要素として、ＯＳ、ミドルウェア、アプリケーション等の１以上のプログラムモジュール（以下、モジュール）を含む。
【００２３】
サーバは、サーバが占有する処理装置２００上で動作する占有サーバ、または、他のサーバと共有する処理装置２００の仮想化基盤上に構築された仮想マシン上で動作する、仮想サーバとして配備（インストール）される。ここで、仮想化基盤は、例えば、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）モニタやハイパーバイザ等であり、仮想マシンの生成、及び、管理を行う。
【００２４】
サーバが占有サーバとして配備される場合、システム構築先の環境における処理装置２００が、当該サーバに割り当てられる。そして、当該サーバを構成する各モジュールが、割り当てられた処理装置２００に配備（インストール）されることにより、当該サーバが配備される。ここで、サーバを構成する全てのモジュールを、ディスクイメージにより配備してもよい。また、ＯＳ等、サーバを構成する一部のモジュールを、ディスクイメージにより配備し、その上位のモジュールを順番に配備してもよい。
【００２５】
サーバが仮想サーバとして配備される場合、システム構築先の環境における、占有サーバとして配備されるサーバに割り当てられていない処理装置２００上のリソースが、当該サーバに割り当てられ、割り当てられたリソースにより、仮想マシンが構築される。そして、当該サーバを構成する各モジュールが、構築された仮想マシンに配備（インストール）されることにより、当該サーバが配備される。ここで、サーバを構成する全てのモジュールを、仮想イメージにより配備してもよい。また、ＯＳ等、サーバを構成する一部のモジュールを、仮想イメージにより配備し、その上位のモジュールを順番に配備してもよい。
【００２６】
このように、システムを構成する各サーバが、占有サーバ、または、仮想サーバとして配備されることにより、システムが構築される。
【００２７】
システム構築装置１００は、構成情報取得部１１０、構成情報記憶部１２０、リソース情報取得部１３０、リソース情報記憶部１４０、割り当て部１５０、構築部１６０、及び、モジュール記憶部１７０を含む。
【００２８】
構成情報取得部１１０は、管理者等から、システム構成情報５０１を取得する。システム構成情報５０１は、構築対象であるシステムを構成する各サーバのリソースに係る要求条件と、各サーバを構成するモジュールに係る情報を示す。
【００２９】
図３は、本発明の第１の実施の形態における、システム構成情報５０１の例を示す図である。システム構成情報５０１は、リソース要求情報５１１、及び、モジュール情報５１２を含む。
【００３０】
図４は、本発明の第１の実施の形態における、リソース要求情報５１１の例を示す図である。リソース要求情報５１１は、各サーバの識別子（サーバＩＤ（identifier））、当該サーバのリソースに係る要求条件として、リソース条件、及び、占有条件を含む。リソース条件は、当該サーバが必要とするＣＰＵ（Central Processing Unit）のグレード（ＣＰＵグレード）、ＣＰＵのコア数（ＣＰＵコア数）、メモリの容量（メモリ容量）、ネットワークインタフェースカードの数（ＮＩＣ数）、及び、ハードディスク容量（ディスク容量）を含む。占有条件は、占有フラグを含む。占有フラグは、当該サーバを占有サーバとして配備すべき（ＹＥＳ）か、否（ＮＯ）かを示す。なお、リソース要求情報５１１は、当該サーバの必要な台数を含んでいてもよい。
【００３１】
モジュール情報５１２（図示せず）は、各サーバを構成するモジュールの識別子、当該モジュールに対する設定を含む。
【００３２】
構成情報記憶部１２０は、取得したシステム構成情報５０１を記憶する。
【００３３】
リソース情報取得部１３０は、処理装置２００から、リソース情報６０１を取得する。リソース情報６０１は、システム構築先の環境における各処理装置２００が割り当て可能なリソースに係る情報を示す。
【００３４】
図５は、本発明の第１の実施の形態における、リソース情報６０１の例を示す図である。リソース情報６０１は、各処理装置２００の識別子（装置ＩＤ）、当該処理装置２００がサーバに対して割り当て可能なリソースを含む。割り当て可能なリソースには、ＣＰＵのグレード（ＣＰＵグレード）、ＣＰＵのコア数（ＣＰＵコア数）、メモリの容量（メモリ容量）、ネットワークインタフェースカードの数（ＮＩＣ数）、及び、ハードディスク容量（ディスク容量）を含む。なお、リソース情報６０１は、当該処理装置２００の台数を含んでいてもよい。
【００３５】
また、リソース情報取得部１３０は、各処理装置２００に含まれるエージェント２１０を介して、リソース情報６０１を取得してもよい。エージェント２１０は、管理者等によりマニュアルで各処理装置２００に配備されてもよい。また、エージェント２１０は、Tivoli Provisioning Manager for Operating System Deployment（http://www-06.ibm.com/software/jp/tivoli/products/prov-mgr-os-deploy/）のようなツールを用いて、各処理装置２００に自動的に配備されてもよい。また、エージェント２１０は、ネットワークブートにより、エージェント２１０を組み込んだＯＳで各処理装置２００を起動することにより、各処理装置２００に配備されてもよい。
【００３６】
リソース情報記憶部１４０は、取得したリソース情報６０１を記憶する。
【００３７】
割り当て部１５０は、リソース要求情報５１１、及び、リソース情報６０１をもとに、システムを構成する各サーバに、処理装置２００、または、処理装置２００上のリソースを割り当てる（システムの構成とシステム構築先の環境とのマッチングを行う）。
【００３８】
構築部１６０は、モジュール情報５１２をもとに、各サーバに割り当てられた処理装置２００、または、各サーバに割り当てられた処理装置２００上のリソースを用いて構築される仮想マシンに、当該サーバを構成する各モジュールを配備する。構築部１６０は、モジュール記憶部１７０から、各モジュールを取得し、配備する。
【００３９】
モジュール記憶部１７０は、サーバを構成するために用いられる、ＯＳ、ミドルウェア、アプリケーション等のモジュールを記憶する。
【００４０】
なお、システム構築装置１００はＣＰＵとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、構成情報記憶部１２０、リソース情報記憶部１４０、及び、モジュール記憶部１７０は、それぞれ個別の記憶媒体でも、一つの記憶媒体によって構成されてもよい。
【００４１】
次に、本発明の第１の実施の形態の動作を説明する。図７は、本発明の第１の実施の形態における、システム構築装置１００の処理を示すフローチャートである。
【００４２】
システム構築装置１００の構成情報取得部１１０は、管理者等から、構築対象のシステムのシステム構成情報５０１を取得する（ステップＳ１０１）。構成情報取得部１１０は、取得したシステム構成情報５０１を、構成情報記憶部１２０に保存する。
【００４３】
例えば、構成情報取得部１１０は、図４のリソース要求情報５１１を含むシステム構成情報５０１を取得する。
【００４４】
リソース情報取得部１３０は、システム構築先の環境における処理装置２００から、リソース情報６０１を取得する（ステップＳ１０２）。リソース情報取得部１３０は、取得したリソース情報６０１を、リソース情報記憶部１４０に保存する。
【００４５】
例えば、リソース情報取得部１３０は、図５のリソース情報６０１を取得する。
【００４６】
割り当て部１５０は、後述する「割り当て処理」を実行し、占有サーバとして配備すべきサーバへの処理装置２００の割り当て、及び、それ以外のサーバへの処理装置２００上のリソースの割り当てを行う（ステップＳ１０３）。
【００４７】
「割り当て処理」の処理結果が「割り当て成功」の場合（ステップＳ１０４／Ｙ）、割り当て部１５０は、割り当て結果７０１を生成し、管理者等に出力する（ステップＳ１０５）。
【００４８】
図６は、本発明の第１の実施の形態における、割り当て結果７０１の例を示す図である。割り当て結果７０１は、サーバのサーバＩＤ、及び、当該サーバの処理装置２００の割り当て形態、当該サーバに割り当てられた処理装置２００の装置ＩＤ、及び、当該サーバに割り当てられたリソース量（割り当てリソース量）を含む。ここで、割り当て形態は、サーバが処理装置２００を占有する（占有サーバとして配備される）（占有）か、サーバが他のサーバと処理装置２００を共有する（仮想サーバとして配備される）（共有）か、を示す。割り当てリソース量（ＣＰＵコア数、メモリ容量、及び、ディスク容量）は、割り当て形態が「共有」の場合に設定される。
【００４９】
例えば、割り当て部１５０は、図６の割り当て結果７０１を生成する。
【００５０】
構築部１６０は、管理者等からの指示に応じて、割り当て結果７０１により示される、割り当てられた処理装置２００、または、処理装置２００上のリソースを用いて、システムを構築する（ステップＳ１０６）。ここで、構築部１６０は、モジュール情報５１２を参照し、システムを構成する各サーバの各モジュールを配備する。構築部１６０は、占有サーバとして配備するサーバについては、割り当てられた処理装置２００に、当該サーバを構成する各モジュールを配備する。また、構築部１６０は、仮想サーバとして配備するサーバについては、割り当てられたリソースを有する処理装置２００に、仮想化基盤を配備する。そして、構築部１６０は、配備した仮想化基盤上で、割り当てられたリソースを用いて仮想マシンを構築し、構築された仮想マシンに、当該サーバを構成する各モジュールを配備する。
【００５１】
例えば、構築部１６０は、図６の割り当て結果７０１をもとに、サーバ「ａ」、「ｂ」を占有サーバとして、処理装置２００「２」、「３」にそれぞれ配備する。また、構築部１６０は、サーバ「ｃ」、「ｄ」を仮想サーバとして、処理装置２００「４」に配備する。
【００５２】
一方、「割り当て処理」の処理結果が「割り当て失敗」の場合（ステップＳ１０４／Ｎ）、割り当て部１５０は、「エラー」を管理者等に出力し（ステップＳ１０７）、処理を終了する。
【００５３】
次に、割り当て処理（ステップＳ１０３）の詳細について説明する。図８は、本発明の第１の実施の形態における、割り当て処理（ステップＳ１０３）の詳細を示すフローチャートである。
【００５４】
はじめに、割り当て部１５０は、リソース要求情報５１１から、占有サーバとして配備すべきサーバのサーバＩＤを抽出する（ステップＳ２０１）。ここで、割り当て部１５０は、リソース要求情報５１１の占有条件において、占有フラグが「ＹＥＳ」のサーバを抽出する。
【００５５】
例えば、割り当て部１５０は、図４のリソース要求情報５１１から、サーバ「ａ」、「ｂ」を抽出する。
【００５６】
割り当て部１５０は、ステップＳ２０１で抽出した各サーバについて、当該サーバの必要リソースに係るリソース評価値を算出し、サーバＩＤをリソース評価値の多い順番に並べた、サーバリストを生成する（ステップＳ２０２）。ここで、リソース評価値は、リソース全体の量の大きさを表す。割り当て部１５０は、例えば、数１に示すリソース評価式を用いて、必要リソースに係るリソース評価値を算出する。
【００５７】
[数１]
2014091734.tif 000003
【００５８】
ここで、リソース評価式、及び、リソース評価式内のパラメータ（数１式における、最大要求メモリ容量、最大要求ディスク容量、及び、各リソースの重みBp、Bm、Bn、Bd）は、予め、管理者等により、システム構築装置１００に設定されていると仮定する。
【００５９】
割り当て部１５０は、ステップＳ２０２で生成したサーバリストの先頭から順番にサーバを選択する（ステップＳ２０３）。
【００６０】
割り当て部１５０は、リソース要求情報５１１における、ステップＳ２０３で選択したサーバのリソース条件を満足する処理装置２００の装置ＩＤを全て抽出する（ステップＳ２０４）。ここで、割り当て部１５０は、リソース情報６０１に含まれる、他のサーバに割り当てられていない処理装置２００の中から、装置ＩＤを抽出する。割り当て部１５０は、リソース情報６０１を参照し、次の２つの条件の両方を満たす処理装置２００を抽出する。第１の条件は、「割り当て可能なＣＰＵグレードがリソース条件で示されるＣＰＵグレード以上」である。第２の条件は、「割り当て可能なＣＰＵコア数、メモリ容量、及び、ディスク容量がリソース条件で示されるＣＰＵコア数、メモリ容量、及び、ディスク容量以上」である。
【００６１】
ステップＳ２０４で、リソース条件を満足する処理装置２００がある場合（ステップＳ２０５／Ｙ）、割り当て部１５０は、ステップＳ２０４で抽出した各処理装置２００の、割り当て可能なリソースに係るリソース評価値を算出する。そして、割り当て部１５０は、算出したリソース評価値が最小の処理装置２００を抽出する（ステップＳ２０６）。ここで、割り当て部１５０は、ステップＳ２０２と同様に、数１式に示すリソース評価式を用いて、各処理装置２００の割り当て可能なリソースに係るリソース評価値を算出する。
【００６２】
割り当て部１５０は、抽出した処理装置２００を、サーバに割り当てる（ステップＳ２０７）。割り当て部１５０は、割り当て結果７０１に、割り当てた処理装置２００の装置ＩＤを設定する。
【００６３】
割り当て部１５０は、ステップＳ２０２で生成したサーバリストに含まれる全サーバについて、ステップＳ２０３〜Ｓ２０７を繰り返す（ステップＳ２０８）。
【００６４】
例えば、割り当て部１５０は、図６の割り当て結果７０１のように、サーバ「ａ」、「ｂ」に、それぞれ、処理装置２００「２」、「３」を割り当てる。
【００６５】
次に、割り当て部１５０は、リソース要求情報５１１から、占有サーバとして配備すべきサーバ以外の（仮想サーバとして配備される）サーバのサーバＩＤを抽出する（ステップＳ２０９）。ここで、割り当て部１５０は、リソース要求情報５１１の占有条件において、占有フラグが「ＮＯ」であるサーバＩＤを抽出する。
【００６６】
例えば、割り当て部１５０は、図４のリソース要求情報５１１から、サーバ「ｃ」、「ｄ」、…を抽出する。
【００６７】
割り当て部１５０は、ステップＳ２０９で抽出した各サーバのサーバＩＤを、必要リソースのグレードやリソース量の大きい（ＣＰＵグレード、及び、ＣＰＵコア数が大きい）順番に並べた、サーバリストを生成する（ステップＳ２１０）。
【００６８】
割り当て部１５０は、リソース情報６０１から、サーバに割り当てられていない処理装置２００の装置ＩＤを全て抽出する（ステップＳ２１１）。
【００６９】
割り当て部１５０は、ステップＳ２１１で抽出した処理装置２００の装置ＩＤを、割り当て可能なリソースのグレードやリソース量の小さい（ＣＰＵグレード、及び、ＣＰＵコア数が小さい）順番に並べた、配備先リストを生成する（ステップＳ２１２）。
【００７０】
割り当て部１５０は、ステップＳ２１０で生成したサーバリストの先頭から順番にサーバを選択する（ステップＳ２１３）。
【００７１】
割り当て部１５０は、配備先リストの先頭の処理装置２００から、リソース要求情報５１１における、ステップＳ２１３で選択したサーバのリソース条件を満足するリソースを割り当て可能な処理装置２００を検索し、抽出する（ステップＳ２１４）。ここで、割り当て部１５０は、リソース情報６０１を参照し、次の２つの条件の両方を満たす処理装置２００を抽出する。第１の条件は、「割り当て可能なＣＰＵグレードがリソース条件で示されるＣＰＵグレード以上」である。第２の条件は、「割り当て可能なＣＰＵコア数、メモリ容量、及び、ディスク容量がリソース条件で示されるＣＰＵコア数、メモリ容量、及び、ディスク容量以上」である。
【００７２】
ステップＳ２１４で、リソースを割り当て可能な処理装置２００がある場合（ステップＳ２１５／Ｙ）、割り当て部１５０は、当該処理装置２００におけるリソースの内、リソース条件で示されるリソース量のリソースを、サーバに割り当てる（ステップＳ２１６）。割り当て部１５０は、割り当て結果７０１に、割り当てた処理装置２００の装置ＩＤ、及び、リソース量を設定する。
【００７３】
割り当て部１５０は、リソース情報６０１における、割り当てた処理装置２００の割り当て可能なリソース量（ＣＰＵコア数、メモリ容量、及び、ディスク容量）から、ステップＳ２１６で割り当てたリソース量を減算する（ステップＳ２１７）。
【００７４】
割り当て部１５０は、ステップＳ２１０で生成したサーバリストに含まれる全サーバについて、ステップＳ２１３〜Ｓ２１７を繰り返す（ステップＳ２１８）。
【００７５】
例えば、割り当て部１５０は、図６の割り当て結果７０１のように、サーバ「ｃ」、「ｄ」に、処理装置２００「４」のリソースを割り当てる。
【００７６】
割り当て部１５０は、処理結果に「割り当て成功」を設定し（ステップＳ２１９）、処理を終了する。
【００７７】
一方、ステップＳ２０４で、リソース条件を満足する処理装置２００が無い場合（ステップＳ２０５／Ｎ）、割り当て部１５０は、処理結果に「割り当て失敗」を設定し（ステップＳ２２０）、処理を終了する。また、ステップＳ２１４で、リソースを割り当て可能な処理装置２００が無い場合（ステップＳ２１５／Ｎ）も、割り当て部１５０は、処理結果に「割り当て失敗」を設定し（ステップＳ２２０）、処理を終了する。
【００７８】
以上により、本発明の第１の実施の形態の動作が完了する。
【００７９】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００８０】
図１を参照すると、システム構築装置１００は、構成情報取得部１１０、リソース情報取得部１３０、及び、割り当て部１５０を含む。
【００８１】
構成情報取得部１１０は、システム構成情報５０１を取得する。システム構成情報５０１は、システムに含まれる１以上のサーバの各々対応に、リソース条件、及び、占有条件を含む。リソース条件は、サーバが必要とする処理装置２００のリソースに係る条件を示す。占有条件は、サーバを処理装置２００を占有する占有サーバとして配備すべきかどうかを示す。
【００８２】
リソース情報取得部１３０は、リソース情報６０１を取得する。リソース情報６０１は、１以上の処理装置２００の各々対応に、当該処理装置２００のリソースに係る情報を含む。
【００８３】
割り当て部１５０は、システム構成情報５０１、及び、リソース情報６０１を参照し、割り当て処理を行う。割り当て処理において、割り当て部１５０は、システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、１以上の処理装置２００の内、当該サーバのリソース条件に合致するリソースを有する処理装置２００を割り当てる。また、割り当て処理において、割り当て部１５０は、占有サーバとして配備すべきサーバ以外のサーバに対しては、１以上の処理装置２００の内、占有サーバとして配備すべきサーバに割り当てられていない処理装置２００上のリソースを割り当てる。ここで、割り当て部１５０は、占有サーバとして配備すべきサーバ以外のサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる。
【００８４】
本発明の第１の実施の形態によれば、占有サーバ、仮想サーバが混在したシステムを効率的に構築できる。
【００８５】
その理由は、割り当て部１５０が、システムのリソース条件と占有条件とを含むシステム構成情報５０１、及び、システム構築先の環境から取得したリソース情報６０１をもとに、システムを構成するサーバに、次のようにリソースを割り当てるためである。すなわち、システムを構成するサーバが、占有サーバとして配備すべきサーバである場合、割り当て部１５０は、リソース条件に合致するリソースを有する処理装置２００を、当該サーバに割り当てる。システムを構成するサーバが、占有サーバとして配備すべきサーバでない場合、割り当て部１５０は、占有サーバとして配備すべきサーバに割り当てられていない処理装置２００上のリソースを、当該サーバに割り当てる。この場合、割り当て部１５０は、当該処理装置２００上の、リソース条件に合致するリソースを、当該サーバを仮想サーバとして配備するためのリソースとして割り当てる。
【００８６】
また、本発明の第１の実施の形態によれば、同一のシステム構成情報５０１に対応するシステムを、複数の異なる環境に効率的に構築できる。
【００８７】
その理由は、上述の通り、割り当て部１５０が、システム構成情報５０１とリソース情報６０１とをもとに、システムを構成する各サーバに割り当てる処理装置２００やリソースを決定するためである。これにより、システム構築先の環境に応じた構成情報や、システム構築手順を用意することなく、同一のシステム構成情報５０１を、異なる環境に、繰り返し適用することができる。
【００８８】
また、本発明の第１の実施の形態によれば、システム構築先の環境において、処理装置２００が潤沢に存在しない場合でも、システムを構築できる。
【００８９】
その理由は、割り当て部１５０が、占有サーバとして配備すべきサーバ以外のサーバに、仮想サーバとして配備するためのリソースを割り当てるためである。これにより、各環境において、できるだけ多くのサーバを仮想サーバとして配備でき、より多くのシステムを構築できる。
【００９０】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００９１】
本発明の第２の実施の形態においては、リソース評価式が、システム毎に指定される点において、本発明の第１の実施の形態と異なる。
【００９２】
本発明の第２の実施の形態の構成は、本発明の第１の実施の形態と同様となる。
【００９３】
図９は、本発明の第２の実施の形態における、システム構成情報５０１の例を示す図である。システム構成情報５０１は、リソース要求情報５１１、モジュール情報５１２に加えて、評価式情報５１３を含む。
【００９４】
評価式情報５１３は、システム構成情報５０１のシステムに対して適用されるリソース評価式を含む。なお、評価式情報５１３では、リソース評価式内のパラメータ（例えば、数１式における、各リソースの重みBp、Bm、Bn、Bd）が指定されていてもよい。
【００９５】
次に、本発明の第２の実施の形態の動作を説明する。
【００９６】
本発明の第２の実施の形態の動作は、ステップＳ２０２、Ｓ２０６を除いて、本発明の第１の実施の形態と同様となる。
【００９７】
ステップＳ２０２、及び、Ｓ２０６において、割り当て部１５０は、評価式情報５１３で指定されているリソース評価式を用いて、サーバの必要リソースに係るリソース評価値、及び、各処理装置２００の割り当て可能なリソースに係るリソース評価値を算出する。
【００９８】
本発明の第２の実施の形態によれば、構築するシステムの特性に適した、処理装置２００やリソースの割り当てができる。その理由は、割り当て部１５０が、評価式情報５１３で指定されるリソース評価式を用いて、リソース評価値を算出するためである。
【００９９】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
【０１００】
本発明の第３の実施の形態においては、リソース評価式として、複数の評価式が用いられる点において、本発明の第１の実施の形態と異なる。
【０１０１】
本発明の第３の実施の形態の構成は、本発明の第１の実施の形態と同様となる。
【０１０２】
本発明の第３の実施の形態においては、システム構築装置１００に設定されているリソース評価式が、複数の評価式のリストとして設定されている。
【０１０３】
次に、本発明の第３の実施の形態の動作を説明する。
【０１０４】
図１０は、本発明の第３の実施の形態における、システム構築装置１００の処理を示すフローチャートである。
【０１０５】
はじめに、本発明の第１の実施の形態（ステップＳ１０１、Ｓ１０２）と同様に、構成情報取得部１１０が、システム構成情報５０１を取得し（ステップＳ３０１）、構成情報取得部１１０が、リソース情報６０１を取得する（ステップＳ３０２）。
【０１０６】
割り当て部１５０は、リソース評価式としてシステム構築装置１００に設定されている評価式のリストを取得する（ステップＳ３０３）。
【０１０７】
割り当て部１５０は、取得したリストの先頭から順番に、評価式を選択する（ステップＳ３０４）。
【０１０８】
割り当て部１５０は、選択した評価式を用いて、上述の「割り当て処理」（ステップＳ２０１〜Ｓ２２０）を行う（ステップＳ３０５）。
【０１０９】
「割り当て処理」の処理結果が「割り当て成功」であった場合（ステップＳ３０６／Ｙ）、本発明の第１の実施の形態（ステップＳ１０５、Ｓ１０６）と同様に、割り当て部１５０は、割り当て結果７０１を出力する（ステップＳ３０７）。そして、構築部１６０は、システムを構築する（ステップＳ３０８）。
【０１１０】
「割り当て処理」の処理結果が「割り当て失敗」であった場合（ステップＳ３０６／Ｎ）、割り当て部１５０は、ステップＳ３０３で取得したリストに含まれる全ての評価式について処理が行われているか判断する（ステップＳ３０９）。全ての評価式について処理が行われていれば（ステップＳ３０９／Ｙ）、割り当て部１５０は、本発明の第１の実施の形態（ステップＳ１０７）と同様に、「エラー」を出力する（ステップＳ３１０）。
【０１１１】
処理が行われていない評価式があれば（ステップＳ３０９／Ｎ）、割り当て部１５０は、ステップＳ３０４からの処理を繰り返す。
【０１１２】
以上により、本発明の第３の実施の形態の動作が完了する。
【０１１３】
なお、本発明の第３の実施の形態では、本発明の第１の実施の形態において複数の評価式を用いた割り当て処理を行う場合を例に説明したが、本発明の第２の実施の形態において複数の評価式を用いた割り当て処理を行ってもよい。この場合、評価式情報５１３に含まれるリソース評価式が、複数の評価式のリストとして設定される。
【０１１４】
本発明の第３の実施の形態では、リソース評価式に起因して、割り当て処理が失敗することがある場合でも、失敗の頻度を低減できる。その理由は、リソース評価式が、複数の評価式のリストで与えられ、割り当て部１５０は、複数の評価式を順番に適用して、割り当て処理を行うためである。
【０１１５】
（第４の実施の形態）
次に、本発明の第４の実施の形態について説明する。
【０１１６】
本発明の第４の実施の形態においては、占有条件が占有優先度で指定される点において、本発明の第１の実施の形態と異なる。
【０１１７】
本発明の第４の実施の形態の構成は、本発明の第１の実施の形態と同様となる。
【０１１８】
図１１は、本発明の第４の実施の形態における、リソース要求情報５１１の例を示す図である。本発明の第４の実施の形態では、リソース要求情報５１１の占有条件は、占有フラグの代わりに、占有優先度を含む。占有優先度は、サーバが処理装置２００を占有する優先度を示す。ここでは、占有優先度の値が大きいほど、優先度が高いことを示す。
【０１１９】
次に、本発明の第４の実施の形態の動作を説明する。
【０１２０】
図１２は、本発明の第４の実施の形態における、システム構築装置１００の処理を示すフローチャートである。
【０１２１】
はじめに、本発明の第１の実施の形態（ステップＳ１０１、Ｓ１０２）と同様に、構成情報取得部１１０が、システム構成情報５０１を取得し（ステップＳ４０１）、構成情報取得部１１０が、リソース情報６０１を取得する（ステップＳ４０２）。割り当て部１５０は、占有優先度の閾値を決定する（ステップＳ４０３）。ここで、割り当て部１５０は、例えば、リソース要求情報５１１に含まれる占有優先度の最小値を、閾値に決定する。
【０１２２】
例えば、割り当て部１５０は、図１１のリソース要求情報５１１における、占有優先度の最小値「１」を、閾値に決定する。
【０１２３】
割り当て部１５０は、リソース要求情報５１１における占有優先度が、ステップＳ４０１で決定した閾値以上のサーバを占有サーバとして配備すべきサーバとして、上述の「割り当て処理」（ステップＳ２０１〜Ｓ２２０）を行う（ステップＳ４０４）。
【０１２４】
「割り当て処理」の処理結果が「割り当て成功」であった場合（ステップＳ４０５／Ｙ）、本発明の第１の実施の形態（ステップＳ１０５、Ｓ１０６）と同様に、割り当て部１５０は、割り当て結果７０１を出力する（ステップＳ４０６）。そして、構築部１６０は、システムを構築する（ステップＳ４０７）。
【０１２５】
「割り当て処理」の処理結果が「割り当て失敗」であった場合（ステップＳ４０５／Ｎ）、割り当て部１５０は、閾値に１を加算する（ステップＳ４０８）。
【０１２６】
そして、閾値が、リソース要求情報５１１に含まれる占有優先度の最大値を超えていれば（ステップＳ４０９／Ｙ）、割り当て部１５０は、本発明の第１の実施の形態（ステップＳ１０７）と同様に、「エラー」を出力する（ステップＳ４１０）。
【０１２７】
閾値が、最大値を超えていなければ（ステップＳ４０９／Ｎ）、割り当て部１５０は、ステップＳ４０４からの処理を繰り返す。
【０１２８】
例えば、割り当て部１５０は、閾値を「１」から「１０」の間で増やしながら、「割り当て成功」になるまで「割り当て処理」を繰り返す。
【０１２９】
以上により、本発明の第４の実施の形態の動作が完了する。
【０１３０】
なお、本発明の第４の実施の形態では、本発明の第１の実施の形態において占有優先度を用いて割り当て処理を行う場合を例に説明したが、本発明の第２、または、第３の実施の形態において占有優先度を用いた割り当て処理を行ってもよい。
【０１３１】
本発明の第４の実施の形態によれば、システム構築先の環境に応じて、システムを構成するサーバの内のできるだけ多くのサーバを占有サーバとして配備できる。その理由は、割り当て部１５０が、割り当て処理において、占有優先度が閾値以上のサーバを占有サーバとして配備すべきサーバとし、閾値を増やしながら、割り当て処理を行うためである。
【０１３２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３３】
この出願は、２０１２年１２月１４日に出願された日本出願特願２０１２−２７３７７５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１３４】
１００    システム構築装置
１１０    構成情報取得部
１２０    構成情報記憶部
１３０    リソース情報取得部
１４０    リソース情報記憶部
１５０    割り当て部
１６０    構築部
１７０    モジュール記憶部
２００    処理装置
２１０    エージェント
５０１    システム構成情報
５１１    リソース要求情報
５１２    モジュール情報
５１３    評価式情報
６０１    リソース情報
７０１    割り当て結果
【図１】
2014091734.tif 000004
【図２】
2014091734.tif 000005
【図３】
2014091734.tif 000006
【図４】
2014091734.tif 000007
【図５】
2014091734.tif 000008
【図６】
2014091734.tif 000009
【図７】
2014091734.tif 000010
【図８】
2014091734.tif 000011
【図９】
2014091734.tif 000012
【図１０】
2014091734.tif 000013
【図１１】
2014091734.tif 000014
【図１２】
2014091734.tif 000015
【手続補正書】
【提出日】平成27年6月12日(2015.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに、
システムに含まれる１以上のサーバの各々対応に、当該サーバが必要とする処理装置のリソースに係る条件を示すリソース条件、及び、当該サーバを処理装置を占有する占有サーバとして配備すべきかどうかを示す占有条件を含むシステム構成情報を取得し、
１以上の処理装置の各々対応に、当該処理装置のリソースに係る情報を含むリソース情報を取得し、
前記システム構成情報、及び、前記リソース情報を参照し、前記システムに含まれる１以上のサーバの内、占有サーバとして配備すべきサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバのリソース条件に合致するリソースを有する処理装置を割り当て、占有サーバとして配備すべきサーバではないサーバに対しては、前記１以上の処理装置の内、前記占有サーバとして配備すべきサーバに割り当てられていない処理装置上の、前記占有サーバとして配備すべきサーバではないサーバのリソース条件に合致するリソースを、仮想サーバとして配備するためのリソースとして割り当てる、処理を実行させるプログラム。
【国際調査報告】
2014091734.tif 000016
2014091734.tif 000017