以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、クラウド運用システム100の一例を概略的に示す。クラウド運用システム100は、ユーザ端末110と、クラウド管理装置120と、クラウド提供会社130の仮想マシン管理装置132と、クラウド提供会社140の仮想マシン管理装置142と、クラウド提供会社150の仮想マシン管理装置152とを備える。クラウド運用システム100は、管理システムの一例であってよい。クラウド管理装置120は、管理装置の一例であってよい。
本実施形態において、ユーザ端末110、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152は、ネットワーク10を介して接続される。ネットワーク10としては、インターネット、専用回線、無線パケット通信網などを例示することができる。
クラウド運用システム100は、仮想サーバサービスまたはクラウドサービス(クラウドサービス等と称する場合がある。)を、ユーザに提供する。ユーザは、クラウド運用システム100を用いて、複数の物理マシン上に仮想的に生成される複数の仮想マシンにより、一定の機能を実現するシステムを構築することができる。
物理マシンとしては、物理サーバ、ルータ、ストレージなどを例示することができる。一定の機能を実現するシステムとしては、宿泊予約システム、電子商取引システム、勘定系システムなどを例示することができる。
ユーザは、ユーザ端末110を介してクラウド運用システム100との間で情報をやりとりすることができる。ユーザは、クラウドサービス等を利用して構築するシステムの仕様を規定する仕様条件を、クラウド運用システム100に入力してよい。仕様条件の少なくとも一部は、クラウド運用システム100の初期設定として設定されていてもよい。
仕様条件としては、ユーザがクラウドサービス等を利用して構築するシステムの構造に関する条件(システムの構造に関する条件と称する場合がある。)、クラウドサービス等の仕様または運用に対するユーザの要求に関する条件(ユーザの要求に関する条件と称する場合がある。)などを例示することができる。仕様条件は、システム毎に設定されてもよく、当該システムを構成するサブシステム毎に設定されてもよく、当該システムを構成する仮想マシン毎に設定されてもよい。
システムの構造に関する条件としては、当該システムがいくつのサブシステムを有するのか、それぞれのサブシステムはどのような機能を有するのか、それぞれのサブシステムはいくつの仮想マシンを有するのか、それぞれの仮想マシンはどの仮想マシンと接続されるのか等を例示することができる。
ユーザの要求に関する条件としては、システムを実現する複数の仮想マシンのそれぞれについて、どのような物理マシン上に生成されるべきかを規定するシステム配置条件、システムを運用する条件を規定するシステム運用条件、仮想マシンの演算処理環境に関する条件、クラウド提供会社に関する条件、システムを構成するサブシステムを複数のグループに分類するシステム構成条件などを例示することができる。
仕様条件は、目的の異なる複数のシステム構成条件を含んでよい。例えば、仕様条件は、演算処理資源の共有が許される複数のサブシステムを規定する目的でサブシステムを分類したシステム構成条件と、物理サーバの共有が許される複数のサブシステムを規定する目的でサブシステムを分類したシステム構成条件とを含んでよい。演算処理資源(リソースと称する場合がある。)としては、CPU、メモリ、ストレージ、ネットワークのI/Oなどを例示することができる。
クラウド運用システム100は、クラウド提供会社130、クラウド提供会社140およびクラウド提供会社150が提供するクラウドサービス等の中から、ユーザが入力した仕様条件を満足するクラウドサービス等を抽出してよい。クラウド運用システム100は、クラウド提供会社130、クラウド提供会社140およびクラウド提供会社150が提供するクラウドサービス等を組み合わせて、ユーザが入力した仕様条件を満足するクラウドサービス等を提供してよい。
ユーザは、ユーザ端末110およびネットワーク10を介して、クラウド管理装置120との間で情報をやりとりすることができる。ユーザ端末110は、ネットワーク10を介してクラウド管理装置120と通信できる装置であればよく、Webブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末、無線端末などにより実現することができる。
クラウド管理装置120は、クラウド提供会社が提供するクラウドサービス等を利用して、ユーザが入力した仕様条件を満足するシステムを構築してよい。これにより、クラウド管理装置120は、ユーザが入力した仕様条件を満足するシステムを、複数の物理マシン上に仮想的に生成される複数の仮想マシンにより実現することができる。
クラウド管理装置120は、ユーザ端末110から、ユーザが入力した仕様条件を受け取ってよい。クラウド管理装置120は、ユーザが入力した仕様条件に基づいて、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を制御してよい。
クラウド管理装置120は、ユーザが入力した仕様条件と、複数のクラウド提供会社が提供するクラウドサービス等とを比較して、システムを構築するクラウド提供会社を選択してよい。クラウド管理装置120は、選択したクラウド提供会社の仮想マシン管理装置に対して、ユーザが入力した仕様条件を通知してよい。クラウド管理装置120からの通知を受け取った仮想マシン管理装置は、ユーザが入力した仕様条件に基づいて、システムを構築してよい。
クラウド管理装置120は、ユーザが入力した仕様条件に基づいて、システムを複数のサブシステムに分割してもよい。クラウド管理装置120は、複数のサブシステムのそれぞれを、異なるクラウド提供会社が提供するクラウドサービス等を利用して構築してもよい。クラウド管理装置120は、システムを構築した後で、複数のクラウド提供会社が提供するクラウドサービス等を比較して、システムまたはサブシステムを構築するクラウド提供会社を変更してもよい。
クラウド管理装置120は、ユーザが入力した仕様条件に基づいて、構築したシステムを管理してよい。クラウド管理装置120は、ユーザが入力した仕様条件の中から、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152のそれぞれが管理すべき条件を抽出してよい。これにより、クラウド管理装置120は、ユーザが入力した仕様条件に基づき、複数の物理マシンへの複数の仮想マシンの割り当てを決定することができる。
クラウド管理装置120は、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152に対して、それぞれが管理すべき条件を通知してよい。仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152は、通知された条件を満足すべく、仮想マシンを管理してよい。これにより、クラウド管理装置120は、仮想マシンの演算処理性能の変動を、予め定められた条件の範囲内に抑制することができる。
例えば、クラウド管理装置120がクラウド提供会社130のクラウドサービス等を利用してシステムを構築する場合、クラウド管理装置120は、ユーザが入力した仕様条件を仮想マシン管理装置132に通知する。ユーザが入力した仕様条件の中に、仮想マシンの演算処理性能を予め定められた範囲内に制限するという条件が含まれている場合、ある物理マシン134の負荷が大きくなり、当該物理マシン134上に生成された仮想マシンの演算処理性能が低下したときに、仮想マシン管理装置132は、例えば、当該仮想マシンを負荷の大きな物理マシン134から負荷の小さな別の物理マシン134に移動させることで、当該仮想マシンの演算処理性能を向上させる。
しかし、仮想マシンの演算処理性能が向上すると、システムの監視が困難になる場合がある。例えば、仮想マシンの移動により、システムが実行しているバッチ処理の所要時間が大きく変動すると、システムの監視が困難になる。このとき、仮想マシン管理装置132は、例えば、仮想マシンのCPUの処理速度を低下させたり、演算処理結果の出力を遅延させたりすることで、当該仮想マシンの見かけ上の演算処理性能を予め定められた範囲内に維持してよい。
これにより、仮想マシンの演算処理性能の変動を、予め定められた条件の範囲内に抑制することができる。また、クラウド管理装置120が、システムを複数のサブシステムに分割して、複数のサブシステムのそれぞれを、異なるクラウド提供会社が提供するクラウドサービス等を利用して構築している場合であっても、システムを安定して運用することができる。
クラウド管理装置120は、仮想マシンを静的に制御する機能(静的制御機能と称する場合がある。)を有してよい。クラウド管理装置120は、仮想マシンを動的に制御する機能(動的制御機能と称する場合がある。)を有してよい。クラウド管理装置120は、システムまたは仮想マシンに関する情報を収集する機能(センサー機能と称する場合がある。)を有してよい。
クラウド管理装置120は、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を制御して、静的制御機能、動的制御機能およびセンサー機能を実現してよい。静的制御機能、動的制御機能およびセンサー機能は、クラウド管理装置120により、予め定められた時間に実行されてもよく、ユーザにより手動で実行されてもよい。
クラウド管理装置120は、センサー機能によりシステム、仮想マシンもしくは物理マシンの稼働状況を監視して、当該稼働状況が予め定められた状態になれば、静的制御機能もしくは動的制御機能を開始してもよく、また予め定められた状態が一定期間継続した場合に、静的制御機能もしくは動的制御機能を開始してもよい。クラウド管理装置120は、静的制御機能もしくは動的制御機能を複数回に分けて実施してもよく、断続的に実施してもよい。
仮想マシンを静的に制御するとは、仮想マシンの運用を停止した状態で、仮想マシンを制御することを言う。仮想マシンの運用を停止した状態としては、仮想マシンを生成する物理マシンの電源を停止している状態、仮想マシンまたは当該仮想マシンを生成する物理マシンを再起動している状態、仮想マシンを一時停止している状態などを例示することができる。仮想マシンを静的に制御する場合としては、新たにシステムを構築する場合、クラウド提供会社の間でシステムまたはサブシステムを移動する場合などを例示することができる。
例えば、サブシステムを構築している仮想マシンの運用を一時的に停止して、その間に当該仮想マシンを異なる物理マシン上に移動させる。その後、上記の仮想マシンの運用を再開することで、当該仮想マシンの運用を一時的に停止する前に実行していた処理を継続して実行することができる。また、仮想マシンを静的に制御して仮想マシンを異なる物理マシン上に移動させることで、システムの均衡を維持することができる。
ユーザは、仮想マシンを静的に制御してよい時間帯、一定時間以内であれば仮想マシンを静的に制御してよい旨などを仕様条件として入力してよい。クラウド管理装置120は、上記の仕様条件に基づいて、仮想マシンを静的に制御する時期を決定してよい。
クラウド管理装置120は、静的制御の対象となる仮想マシンの数、リソース量などに基づいて、上記の時間帯または上記の一定時間の間に静的に制御する仮想マシンを決定してよい。これにより、仮想マシンの静的制御に伴う、一時的なリソース使用量の増加を抑制することができる。その結果、仮想マシンを静的に制御する間も、提供中のクラウドサービス等の品質を維持することができる。
クラウド管理装置120は、管理するシステム単位もしくはサブシステム単位、またはユーザ単位で静的制御を実施してよい。例えば、上記の時間帯または上記の一定時間の間に、全ての仮想マシンを静的に制御することができないケースもある。この場合、クラウド管理装置120は、管理するシステム単位もしくはサブシステム単位、またはユーザ単位で、静的制御の実施時期を順番にシフトしながら静的制御を実施してよい。これにより、ユーザは、利用者の視点でクラウド基盤の状況を容易に把握することができる。
クラウド管理装置120は、物理マシンの稼動拠点、物理マシンが設置されている電算センターの格付け、当該電算センターが設置されている地域において自然災害が発生する確率または当該電算センターへの交通の利便性に基づいて、仮想マシンを静的に制御することで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、内部ファイアウォール、IDS(Intrusion Detection System)、IPS(Intrusion Prevention System)、WAF(Web Application Firewall)、ハイパーバイザーのウイルス検知機能などのセキュリティシステムの有無に基づいて、仮想マシンを静的に制御することで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを静的に制御して、仮想マシンの演算処理性能、信頼性または品質を予め定められた範囲内に維持することで、ユーザが入力した仕様条件を達成してよい。仮想マシンの信頼性としては、物理マシンの2重化の有無、物理マシンの再起動の頻度、使用しているソフトウエアの信頼性、連続稼動時間の長短などを例示することができる。
クラウド管理装置120は、暗号化アクセラレータ、3D演算アクセラレータ、フォールトトレラント、仮想マシンInメモリー化技術を施した仮想化装置など特殊な用途に使用される装置または機能の有無に基づいて、仮想マシンを静的に制御することで、ユーザが入力した仕様条件を達成してよい。仮想マシンInメモリー化技術を施した仮想化装置とは、例えば、仮想マシンのイメージが記録されている保存領域を高速な揮発性メモリーのDRAM、不揮発性のFeRAM、PRAMもしくはRRAMなどのメモリー上に配置し、高速化を図った仮想マシン提供基盤または装置をいう。特殊な用途に使用される装置の他の例としては、補助演算装置、補助画像処理装置、セキュリティボックスなどを例示することができる。
クラウド管理装置120は、仮想マシンを静的に制御して、WEBサーバとアプリケーションサーバとを異なる物理マシン上に生成することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、仮想マシンを静的に制御して、アプリケーションサーバとデータベースサーバとを異なる物理マシン上に生成することで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを静的に制御して、DMZにWEBサーバを配置することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、仮想マシンを静的に制御して、災害対策用などのバックアップシステムと現在使用に供されているシステムとを異なる物理マシン上に構築することで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを静的に制御して、同一の機能を有する複数の仮想マシンを、異なる物理マシン上に生成することで、ユーザが入力した仕様条件を達成してよい。このとき、複数の仮想マシンのそれぞれを、全て異なる物理マシン上に生成してもよく、一部の仮想マシンを、他の仮想マシンとは異なる物理マシン上に生成してもよい。例えば、3台のWEBサーバを、3台の物理サーバ上に生成してもよく、2台の物理サーバに生成してもよい。
クラウド管理装置120は、仮想マシンを生成する物理マシンを固定することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、仮想マシンを特定の物理マシン上に優先的に生成することで、ユーザが入力した仕様条件を達成してよい。例えば、複数の仮想マシンにより構成されるシステムに障害が発生した場合に、物理マシンの障害と上記システムとの対応付けを容易にすることなどを目的として、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152が、仮想マシンを生成する物理マシンを固定してよい。
仮想マシンを生成する物理マシンを固定する他の例としては、複数の仮想マシンにより構成されるシステムにおいて、ユーザの仕様条件の中に、物理マシンの設置場所がユーザの住所から1km以内という条件が含まれている場合を例示することができる。この場合、当該ユーザの仮想マシンを生成している物理マシンの負荷が所定の値より大きくなると、例えば仮想マシン管理装置132が、当該ユーザの仮想マシンを当該物理マシンに固定して、他のユーザの仮想マシンを別の物理マシンに移動させる。これにより、上記の仕様条件を達成することができる。
仮想マシンを動的に制御するとは、仮想マシンの運用を継続した状態で、仮想マシンを制御することを言う。仮想マシンの運用を継続した状態とは、仮想マシンが現実に稼動している状態だけでなく、仮想マシンの停止時間がアプリケーション層への影響を無視しうる程度である場合をも含む。
この場合の仮想マシンの停止時間は、数マイクロ秒から数十ミリまたは数百ミリ秒程度であってもよい。例えば、ネットワークの瞬断の場合には、仮想マシンが停止したとしても、OSまたはミドルウェアの動的リカバリ機能が動作するので、アプリケーション層への影響を無視しうる。仮想マシンを動的に制御する場合としては、仮想マシンの演算処理性能を予め定められた範囲内に維持する場合、複数の仮想マシンの間でリソースを共有する場合などを例示することができる。
クラウド管理装置120は、仮想マシンを動的に制御して、演算処理装置リソース、記憶装置リソースなどの演算処理資源の優先度をリアルタイムに制御することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、演算処理資源の使用量をリアルタイムに制御することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、仮想マシンを動的に制御して、記憶装置の通信速度またはサービス用通信速度の優先度を制御することで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを動的に制御して、仮想マシンの状態を制御することで、ユーザが入力した仕様条件を達成してよい。仮想マシンの状態としては、仮想マシンの稼動、停止、一時停止または再開を例示することができる。クラウド管理装置120は、仮想マシンを予め定められた時間に起動させたり、停止させたりしてもよい。クラウド管理装置120は、仮想マシンを動的に制御して、仮想マシンを異なる物理マシン上に移動させることで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを動的に制御して、直列に接続された複数の仮想マシンの間で演算処理資源を分配してよい。これにより、複数の仮想マシンの演算処理性能のバランス(演算処理性能の直列対称性と称する場合がある。)を調整することができる。クラウド管理装置120は、演算処理性能の直列対称性を維持することにより、ユーザが入力した仕様条件を達成してよい。
例えば、3層クライアント・サーバモデルにおいて、1つのトランザクション処理を複数の処理ステップに分割した場合、WEBサーバ、APサーバおよびDBサーバの何れかに処理能力の偏りがあると、システム全体の処理能力は、処理能力の低いサーバに依存する。そこで、WEBサーバ、APサーバおよびDBサーバの処理能力のバランスを均等化することで、演算処理性能の直列対称性を維持することができる。
クラウド管理装置120は、仮想マシンを動的に制御して、並列に接続された複数の仮想マシンの間で演算処理資源を分配してよい。これにより、複数の仮想マシンの演算処理性能のバランス(演算処理性能の並列対称性と称する場合がある。)を調整することができる。クラウド管理装置120は、演算処理性能の並列対称性を維持することにより、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシンを動的に制御して、アイドリング中の仮想マシンのリソース割り当ての優先度を制御したり、当該仮想マシンを一時的に停止することで、ユーザが入力した仕様条件を達成してよい。例えば、アイドリング中の仮想マシンに割り当てる演算処理資源の優先度を下げることで、クラウドサービス等の運用コスト、排出される二酸化炭素量などを抑制することができる。
クラウド管理装置120は、仮想マシンを動的に制御して、夜間地域に設置された物理マシン上に生成された仮想マシンを優先的に稼動させることで、ユーザが入力した仕様条件を達成してよい。これにより、夜間電力を利用することができ、クラウドサービス等の運用コスト、排出される二酸化炭素量などを抑制することができる。
クラウド管理装置120は、仮想マシンを動的に制御して、ウイルスが検出された物理マシンを一時的に停止したり、当該物理マシンのサービス用通信ラインを停止することで、ユーザが入力した仕様条件を達成してよい。クラウド管理装置120は、仮想マシンを動的に制御して、ハザードが検知された電算センタもしくは当該電算センタ内のフロアに設置された物理マシンから、仮想マシンもしくはシステムを移動させることで、ユーザが入力した仕様条件を達成してよい。
クラウド管理装置120は、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を介して、セキュリティに関する情報、障害に関する情報、システムに関する情報などを収集してよい。システムに関する情報としては、システムの性能もしくは稼動状態、リソースの共有状態、物理マシンの共有状態、または、システムを構成する複数の仮想マシンの演算処理環境もしくは稼働状況を例示することができる。仮想マシン管理装置142および仮想マシン管理装置152は、上記の情報を収集して、クラウド管理装置120に通知してよい。
システムの性能としては、予め定められた業務に関する単位時間あたりの処理量を例示することができる。仮想マシンの演算処理環境としては、仮想マシンの演算処理性能、仮想マシンに割り当てられている演算処理資源、仮想マシンを生成している物理マシン、当該物理マシンの仕様などを例示することができる。
物理マシンの仕様としては、物理マシンの識別記号、物理マシンの有する演算処理資源、物理マシンのセキュリティに関する情報、物理マシンが設置されている電算センタに関する情報などを例示することができる。稼働状況としては、稼動中、停止中、一時停止中、障害発生の有無、リソース使用量などを例示することができる。
ここで、仮想マシンの演算処理性能とは、実際の演算処理性能だけでなく、見かけ上の演算処理性能をも含む。例えば、CPUの処理速度を低下させたり、演算処理結果の出力を遅延させたりすることで、演算処理性能を制限することができる。
クラウド管理装置120は、収集した情報に基づいて、複数のクラウド提供会社が提供するクラウドサービス等を評価してよい。クラウド管理装置120は、定期的に評価を実施してもよく、随時、評価を実施してもよい。
クラウド管理装置120は、上記の評価に基づいて、利用するクラウド提供会社を変更してよい。クラウド管理装置120は、クラウド提供会社を変更した場合であっても、ユーザへの影響を抑制すべく、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を制御してよい。
クラウド管理装置120は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスクドライブ、ストレージ等を含んで構成される。クラウド管理装置120は、ネットワーク10を介して、ユーザ端末110、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152と通信できる装置であればよく、サーバ用コンピュータ、パーソナルコンピュータ、携帯電話、携帯端末、無線端末などにより実現することができる。
クラウド提供会社130は、クラウドサービス等を提供してよい。クラウド提供会社130は、仮想マシン管理装置132と、物理マシン134と、ネットワーク138とを有してよい。仮想マシン管理装置132は、ネットワーク138を介して、物理マシン134と接続されてよい。
仮想マシン管理装置132は、ユーザが入力した仕様条件に基づいて、複数の物理マシン134のうち、少なくとも1つの物理マシン134上に少なくとも1つの仮想マシンを生成してよい。仮想マシン管理装置132は、生成した仮想マシンを管理してよい。仮想マシン管理装置132は、クラウド管理装置120からの指示に基づいて、生成した仮想マシンを管理してよい。
仮想マシン管理装置132は、CPU、RAM、ROM、ハードディスクドライブ、ストレージ等を含んで構成される。仮想マシン管理装置132は、ネットワーク10を介してクラウド管理装置120と通信でき、ネットワーク138を介して物理マシン134と通信できる装置であればよく、サーバ用コンピュータ、パーソナルコンピュータ、携帯電話、携帯端末または無線端末などにより実現することができる。
物理マシン134は、ネットワーク138を介して仮想マシン管理装置132と通信できる装置であればよく、サーバ用コンピュータ、パーソナルコンピュータ、携帯電話、携帯端末または無線端末、ストレージ、ルータなどにより実現することができる。ネットワーク138としては、インターネット、専用回線、無線パケット通信網などを例示することができる。
クラウド提供会社140は、クラウドサービス等を提供してよい。クラウド提供会社140は、仮想マシン管理装置142と、物理マシン144と、ネットワーク148とを有してよい。仮想マシン管理装置142、物理マシン144およびネットワーク148は、それぞれ、仮想マシン管理装置132、物理マシン134およびネットワーク138と同様の構成を有してよい。
クラウド提供会社150は、クラウドサービス等を提供してよい。クラウド提供会社150は、仮想マシン管理装置152と、物理マシン154と、ネットワーク158とを有してよい。仮想マシン管理装置152、物理マシン154およびネットワーク158は、それぞれ、仮想マシン管理装置132、物理マシン134およびネットワーク138と同様の構成を有してよい。
図2は、クラウド管理装置120の内部構成の一例を概略的に示す。図3は、クラウド管理装置120における処理の一例を概略的に示す。図2および図3を用いて、クラウド管理装置120について説明する。
クラウド管理装置120は、通信制御部210と、入力部212と、出力部214と、仕様条件取得部222と、システム定義部224と、クラウド評価部226と、システム配置部230と、情報収集部232と、システムパッケージ記憶部242と、システム定義記憶部244と、クラウド仕様記憶部246とを有してよい。これらの構成要素は互いに接続されており、互いに情報をやり取りすることができる。
通信制御部210は、ネットワーク10を介して、ユーザ端末110、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152と通信するインターフェースであってよい。通信制御部210は、クラウド管理装置120の設定もしくは操作に関する指示、または、ユーザが入力した仕様条件を受け付けてよい。
入力部212は、クラウド管理装置120の設定もしくは操作に関する指示、または、システムパッケージ記憶部242、システム定義記憶部244もしくはクラウド仕様記憶部246に格納すべき情報が入力されてよい。入力部212としては、キーボード、マウス、トラックボール、ジョグタイヤル、タッチパネルディスプレイ、記憶媒体の読取装置などを例示することができる。
出力部214は、クラウド管理装置120の動作状態、入力部212から入力した内容のエコーバック等を表示する。出力部214としては、液晶表示装置、有機ELディスプレイ、タッチパネルディスプレイ、プリンタなどを例示することができる。なお、図3において、出力部214は作図を省略している。
仕様条件取得部222は、通信制御部210または入力部212を介して、ユーザが入力した仕様条件を取得してよい。仕様条件取得部222は、取得した仕様条件のうち、システムの構造に関する条件を、システム定義部224に通知してよい。仕様条件取得部222は、取得した仕様条件のうち、ユーザの要求に関する条件を、クラウド評価部226に通知してよい。
仕様条件取得部222は、通信制御部210または出力部214を介して、ユーザの入力を補助する情報をユーザに提供してよい。ユーザの入力を補助する情報は、特定の機能を実現するシステムについて、当該システムの機能と、当該システムの構造に関する条件とを対応付けたシステムパッケージであってよい。システムパッケージは、特定の機能を実現するシステムの雛形であってよい。システムパッケージは、特定の機能を実現するシステムについて、当該システムの機能と、当該システムの構造に関する条件とを対応付ける情報であってよい。
システムパッケージは、システムパッケージの識別記号と、システムパッケージの機能を実現するシステムの構造と、システムパッケージに含まれる仮想マシン間の接続関係と、仮想マシン上で動作するOSおよびアプリケーションプログラム等の動作プログラムとを含んでよい。ユーザは、規模または用途に応じたシステムパッケージを組み合わせることで、システムの構造に関する条件を容易に入力することができる。
ユーザの入力を補助する情報の別の例は、ユーザが構築するシステムの規模または用途における、仮想マシンの演算処理環境に関する条件の典型例であってよい。仮想マシンの演算処理環境に関する条件としては、仮想マシンの演算処理性能、記憶容量、通信速度、セキュリティ、信頼性などを例示することができる。これにより、ユーザは、提示された条件の中から希望する条件を選択することで、当該条件を容易に入力することができる。
システム定義部224は、仕様条件取得部222から、システムの構造に関する条件を受け取ってよい。システム定義部224は、システムパッケージ記憶部242から、システムパッケージ記憶部242に格納されているシステムパッケージの情報を受け取ってよい。システム定義部224は、仕様条件取得部222から受け取ったシステムの構造に関する条件をシステム定義記憶部244に格納してよい。
仕様条件取得部222から受け取ったシステムの構造に関する条件の中に、システムパッケージの識別記号が含まれている場合、システム定義部224は、仕様条件取得部222から受け取った情報と、システムパッケージ記憶部242に格納されているシステムパッケージに関する情報とを照合して、システムの構造に関する条件を作成してよい。
これにより、仮想マシンの数、それぞれの仮想マシンの上で動作する動作プログラム、仮想マシン間の接続関係などを規定することができる。システムの構造に関する条件に仮想マシン間の接続関係が含まれることで、クラウド管理装置120が仮想マシンと物理マシンとのマッピングを容易に実行することができる。システム定義部224は、作成したシステムの構造に関する条件をシステム定義記憶部244に格納してよい。
クラウド評価部226は、仕様条件取得部222から、ユーザの要求に関する条件を受け取ってよい。クラウド評価部226は、システム定義部224から、ユーザが構築するシステムの構造に関する条件を受け取ってよい。クラウド評価部226は、クラウド仕様記憶部246から、クラウド仕様記憶部246に格納されている複数のクラウド提供会社に関する情報を受け取ってよい。クラウド提供会社に関する情報としては、クラウド提供会社の格付け、経営状態、提供しているクラウドサービス等の種類および運用コスト、所有している物理マシンの仕様などを例示することができる。
クラウド評価部226は、ユーザが入力した仕様条件と、複数のクラウド提供会社に関する情報とを照合してよい。これにより、クラウド評価部226は、複数のクラウド提供会社の中から、ユーザが入力した仕様条件を満足するクラウドサービス等を提供するクラウド提供会社を抽出することができる。
クラウド評価部226は、1つのクラウド提供会社が提供する1つのクラウドサービス等を利用して、システムを構築する場合について、抽出結果を算出してよい。クラウド評価部226は、ユーザが構築するシステムを複数のサブシステムに分割して、1以上のクラウド提供会社が提供する複数のクラウドサービス等を利用して、システムを構築する場合について、抽出結果を算出してよい。クラウド評価部226は、複数のサブシステムと、複数のクラウドサービス等との全ての組合せの中から、ユーザが入力した仕様条件を満足する組合せを抽出してよい。
クラウド評価部226は、通信制御部210または出力部214を介して、抽出結果をユーザに提供してよい。クラウド評価部226は、抽出結果を並び替えた後、ユーザに提供してもよい。クラウド評価部226は、システムを運用するコストが低額な順番に、抽出結果を並べ替えてよい。クラウド評価部226は、仕様条件のそれぞれについて優先順位が入力されている場合には、優先順位の高い仕様条件をキーとして、抽出結果を並べ替えてよい。
ユーザは、抽出された組合せの中から、どの組合せに基づいてシステムを構築するかを選択してよい。クラウド評価部226は、ユーザが選択した組合せを抽出結果として出力してよい。クラウド評価部226は、評価結果の最もよい組合せを抽出結果として出力してもよい。
システム配置部230は、クラウド評価部226から、ユーザの要求に関する条件と、抽出結果とを受け取ってよい。システム配置部230は、システム定義記憶部244から、システムの構造に関する条件を受け取ってよい。
システム配置部230は、ユーザが入力した仕様条件に含まれるシステム配置条件に基づいて、複数の物理マシンへの複数の仮想マシンの割り当てを決定してよい。システム配置部230は、ユーザが入力した仕様条件と、抽出結果とに基づいて、複数の物理マシンへの複数の仮想マシンの割り当てを決定してよい。ここで、「複数の物理マシンへの複数の仮想マシンの割り当てを決定する」とは、どの物理マシン上に、どの仮想マシンを生成するかを決定する場合だけでなく、どのクラウドサービス等を利用して、どのサブシステムを構築するかを決定する場合をも含む。
複数の物理マシンへの複数の仮想マシンの割り当ては、例えば、以下の手順により決定することができる。まず、システム配置部230は、抽出結果に基づいて、ユーザが構築するシステムを複数のサブシステムに分割する。次に、システム配置部230は、抽出結果に基づいて、どのクラウド提供会社のどのクラウドサービス等を利用して、どのサブシステムを構築するかを決定する。
次に、システム配置部230は、ユーザが入力した仕様条件に基づいて、それぞれのサブシステムに関する仕様条件を作成する。このとき、ユーザの要求に関する条件が複数のクラウド提供会社に関連する場合には、システム配置部230は、当該条件を複数のクラウド提供会社に按分してよい。
クラウド提供会社130のクラウドサービスを利用してサブシステムAを構築して、クラウド提供会社140のクラウドサービスを利用してサブシステムBを構築する場合を例として、ユーザの要求に関する条件の按分方法について説明する。ユーザの要求に関する条件として、サブシステムAおよびサブシステムBの1ヶ月あたりの運用コストの合計を一定額以下にする条件がある場合を想定する。
このとき、システム配置部230は、サブシステムAおよびサブシステムBのそれぞれが要求する演算処理資源の使用量、セキュリティの程度、特殊な機能の有無などに基づいて、1ヶ月当りの運用コストに関する条件を按分してよい。これにより、例えば、サブシステムAおよびサブシステムBの1ヶ月あたりの運用コストの合計を50万円以下にする条件に基づいて、サブシステムAの1ヶ月あたりの運用コストを30万円以下にする条件と、サブシステムBの1ヶ月あたりの運用コストを20万円以下にする条件とを作成することができる。
システム配置部230は、通信制御部210を介して、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152に対して、それぞれが管理するサブシステムに関する仕様条件を通知してよい。仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152は、システム配置部230からサブシステムに関する仕様条件を受け取り、受け取った仕様条件を満足するサブシステムを構築してよい。また、構築したサブシステムが受け取った仕様条件を満足するように、仮想マシンを管理してよい。
システム配置部230は、情報収集部232から、構築したシステムに関する情報を受け取ってよい。システム配置部230は、情報収集部232から受け取った情報に基づいて、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を制御してよい。
例えば、仮想マシン管理装置132は、複数の物理マシン134の稼働率が低い場合に、複数の物理マシン上に生成された仮想マシンを、1台の物理マシン上に移動させて、クラウドサービス等の運用コストを低減させる場合がある。また、1台の物理マシン134の負荷が増加した場合に、当該物理マシン上に生成された複数の仮想マシンのうちの一部を、他の物理マシン134に移動させて、仮想マシンに割り当てる演算処理資源の使用量を確保する場合がある。
仮想マシン管理装置132が、仮想マシンを異なる物理マシン134に移動させることで、仮想マシンの演算処理性能が変動する場合がある。しかし、システムを構築する複数の仮想マシンのうち、一部の仮想マシンの演算処理性能が急激に向上すると、システムのボトルネックが変化したり、バッチ処理の所要時間が変化したりすることにより、システムの監視が困難になる場合がある。
システム配置部230は、少なくとも1つの仮想マシンの演算処理性能が向上した場合に、当該仮想マシンの演算処理性能の変動が予め定められた範囲内になるように、当該仮想マシンの演算処理性能を制限してよい。このとき、システム配置部230は、ユーザが入力した仕様条件を満足するように、仮想マシン管理装置132を制御してよい。システム配置部230は、ユーザの要求に関する条件を満足するように、仮想マシン管理装置132を制御してよい。これにより、仮想マシン管理装置132における物理マシンの構成が変更された場合であっても、システム配置部230は、当該変更がユーザに与える影響を抑制することができる。
システム配置部230が仮想マシンの演算処理性能を制限する方法としては、仮想マシン管理装置132に対して通知する仕様条件の中に上記の条件を含めておく方法、仮想マシンの演算処理性能が向上した場合に、複数の物理マシンへの複数の仮想マシンの割り当て(システム配置パターンと称する場合がある。)を新たに決定する方法、仮想マシンの演算処理性能が向上した場合に、仮想マシン管理装置132に対して、当該仮想マシンの演算処理性能を制限する制限信号を出力する方法を例示することができる。
システム配置部230は、情報収集部232が収集した情報、システム運用条件および仮想マシンの演算処理環境に関する条件とに基づき、仮想マシン管理装置132に対して、仮想マシンの演算処理性能を制限する制限信号を出力してよい。仮想マシン管理装置132は、制限信号を受け取ると、演算処理性能が向上した仮想マシンに割り当てる演算処理資源を減少させたり、当該仮想マシンのCPUの処理速度を低下させたり、演算処理結果の出力を遅延させたりすることで、当該仮想マシンの演算処理性能を予め定められた範囲内に維持してよい。これにより、当該仮想マシンの演算処理性能を制限することができる。
制限信号は、上記の仮想マシンの演算処理性能を制御する制御信号の一例であってよい。クラウド管理装置120は、複数の仮想マシンのそれぞれが仕様条件を満足するように制御信号を生成してよい。クラウド管理装置120は、生成した制御信号を仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152の少なくとも1つに通知してよい。仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152は、クラウド管理装置120から受け取った制御信号に基づいて、仮想マシンの演算処理性能などを制御してよい。
システム配置部230は、情報収集部232が収集した情報に基づいて、演算処理性能が向上した仮想マシンの演算処理性能を制限してよい。システム配置部230は、情報収集部232から、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152が管理する複数の仮想マシンの演算処理環境に関する情報を受け取ってよい。
例えば、仮想マシン管理装置132が管理する複数の仮想マシンに割り当てる演算処理資源を変更する場合、システム配置部230は、1以上のシステム配置パターンを生成して、生成したシステム配置パターンのそれぞれについて、複数の仮想マシンのそれぞれの演算処理性能を事前にシミュレートしてよい。システム配置部230は、シミュレーション結果を評価して、システム運用条件および仮想マシンの演算処理環境に関する条件を満足するシステム配置パターンを、評価結果として抽出してよい。システム配置部230は、評価結果に基づいて、仮想マシン管理装置132が管理する複数の仮想マシンに割り当てる演算処理資源を決定して、制限信号を作成してよい。
システム配置部230は、システム配置パターンのそれぞれをスコアリングすることにより、シミュレーション結果を評価してよい。スコアリングの方法としては、システム運用条件および仮想マシンの演算処理環境に関する条件のそれぞれについて評価点を算出し、評価点の合計によりシミュレーション結果を評価してよい。また、上記の条件の一部に重みを付けて、シミュレーション結果を評価してもよい。例えば、コスト、セキュリティ、信頼性または顧客満足度など特定の分野に関する条件を重視する場合には、当該分野に関連する条件と、当該分野に関連しない条件との間で重み付けを変えて、シミュレーション結果を評価してよい。
上記のシミュレーション結果の中に、システム運用条件および仮想マシンの演算処理環境に関する条件の全てを同時に満足するシステム配置パターンが存在しない場合、システム配置部230は、システム運用条件および仮想マシンの演算処理環境に関する条件のうち、一部の条件を無視して、再度、1以上のシステム配置パターンを生成して、生成したシステム配置パターンのそれぞれについて、複数の仮想マシンのそれぞれの演算処理性能をシミュレートして、シミュレーション結果を評価してよい。
例えば、システム運用条件および仮想マシンの演算処理環境に関する条件の中から、ユーザが構築するシステムに対する影響の小さな条件を選択して、選択した条件を無視して、再度、複数の仮想マシンのそれぞれの演算処理性能をシミュレートしてよい。上記の影響の小さな条件は、例えば、以下の手順で選択してよい。まず、システム運用条件および仮想マシンの演算処理環境に関する条件のそれぞれについて、当該条件を充足しないことを許容できるシステムまたはサブシステムの数と、当該条件の評価点とを積算した値を算出する。次に、システム運用条件および仮想マシンの演算処理環境に関する条件の中から、算出した値が小さい条件を選択してよい。
このような場合、クラウド管理装置120は、複数の仮想マシンに割り当てる演算処理資源を変更する前に、警告メッセージをユーザ端末110に出力してよい。警告メッセージとしては、システム運用条件および仮想マシンの演算処理環境に関する条件の全てを同時に満足するシステム配置パターンが存在しない旨、一部の条件を無視すれば、その他の条件を満足するシステム配置パターンが存在する旨、複数の仮想マシンに割り当てる演算処理資源を変更しない旨、どのような演算処理資源がどの程度不足しているのか、などを例示することができる。
クラウド管理装置120は、演算処理資源の使用量に関する情報を定期的に収集して、演算処理資源の利用状況をユーザ端末110に出力してよい。クラウド管理装置120は、システム運用条件および仮想マシンの演算処理環境に関する条件のそれぞれについて、演算処理資源の利用状況を算出してもよい。演算処理資源の利用状況としては、例えば、現状の物理的な提供リソースでは、実際に使用されているリソース量を何回転できるかという指標を用いてもよい。
なお、本実施形態においては、クラウド管理装置120の静的制御機能および動的制御機能の対象が仮想マシンである場合について説明した。しかし、クラウド管理装置120の静的制御機能および動的制御機能の対象はこれに限定されない。例えば、ユーザのシステムが仮想マシンと物理マシンとを用いて構築されている場合には、クラウド管理装置120は、当該物理マシンを静的制御機能および動的制御機能の対象としてよい。物理マシン上の処理を異なる物理マシンに移動させることが困難な場合には、クラウド管理装置120は、当該処理を当該物理マシンに固定して、静的制御機能および動的制御機能を実施してよい。
システム配置部230は、システム運用条件および仮想マシンの演算処理環境に関する条件を満足する結果を抽出することができなかった場合には、シミュレートの対象を仮想マシン管理装置142および仮想マシン管理装置152が管理する複数の仮想マシンに拡大してよい。これにより、システム配置部230は、複数の物理マシンへの複数の仮想マシンの割り当てを新たに決定することができる。
システム配置部230は、クラウド評価部226に対して、クラウド提供会社の評価を実行するよう指示してよい。システム配置部230は、情報収集部232から受け取った情報を解析して、システムの性能または仮想マシンの演算処理性能が一定値以上変化したと判断した場合に、クラウド評価部226に対して、クラウド提供会社の評価を実行するよう指示してよい。
システム配置部230は、クラウド評価部226の評価結果に基づいて、複数の物理マシンへの複数の仮想マシンの割り当てを、新たに決定してよい。システム配置部230は、決定結果を仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152に通知してよい。
情報収集部232は、システムに関する情報を収集してよい。情報収集部232は、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を介して、システムに関する情報を収集してよい。情報収集部232は、システムに関する情報を解析して、所定期間における統計値を算出してよい。情報収集部232は、収集した情報をシステム配置部230に通知してよい。
システムパッケージ記憶部242は、システムパッケージを格納してよい。システム定義記憶部244は、ユーザが構築するシステムごとに、システムの構造に関する条件を格納してよい。クラウド仕様記憶部246は、クラウド提供会社に関する情報を格納してよい。クラウド仕様記憶部246は、クラウド提供会社ごとに、クラウド提供会社の格付け、経営状態、提供しているクラウドサービス等の種類および運用コスト、所有している物理マシンの仕様などを格納してよい。
図4は、仮想マシン管理装置132の内部構成の一例を概略的に示す。仮想マシン管理装置132は、通知受付部412と、情報収集部414と、リソース割り当て調整部416と、物理マシン管理部418とを有してよい。これらの構成要素は互いに接続されており、情報をやり取りすることができる。通知受付部412は、ネットワーク10を介して、クラウド管理装置120からの通知を受け付けてよい。通知受付部412は、クラウド管理装置120からの通知を、リソース割り当て調整部416に通知してよい。
情報収集部414は、仮想マシン管理装置132が管理する仮想マシンの演算処理環境に関する情報を収集してよい。情報収集部414は、収集した情報をリソース割り当て調整部416に通知してよい。情報収集部414は、収集した情報を情報収集部232に通知してよい。情報収集部414は、所定期間内に収集した情報に基づいて、複数の仮想マシンのそれぞれについて、稼働時間、負荷、演算処理性能、通信速度などの統計値を算出してよい。
情報収集部414は、物理マシン管理部418から、物理マシン134に関する情報を収集してよい。情報収集部414は、所定期間内に収集した情報に基づいて、物理マシンの稼動時間、負荷、演算処理性能、通信速度などの統計値を算出してよい。情報収集部414は、ある物理マシンが新しい機種に更新された場合には、当該物理マシンのメーカ名、型番、CPUの演算処理性能、記憶容量、通信速度等の情報を収集してよい。
リソース割り当て調整部416は、物理マシン134の演算処理資源のうち、複数の仮想マシンのそれぞれに割り当てる演算処理資源を調整してよい。リソース割り当て調整部416は、通知受付部412から、ユーザが入力した仕様条件を受け取ってよい。リソース割り当て調整部416は、仕様条件に基づいて、物理マシン134の演算処理資源のうち、複数の仮想マシンのそれぞれに割り当てる演算処理資源を調整してよい。
リソース割り当て調整部416は、システム配置条件、システム運用条件および仮想マシンの演算処理環境に関する条件に基づいて、物理マシン134の演算処理資源のうち、複数の仮想マシンのそれぞれに割り当てる演算処理資源を調整してよい。リソース割り当て調整部416は、それぞれの仮想マシンに割り当てる演算処理資源を決定して、リソース割り当て量を規定するリソース割り当て調整信号を物理マシン管理部418に対して出力してよい。
リソース割り当て調整部416は、通知受付部412から、システム配置部230の出力した制限信号を受け取ってよい。この場合、リソース割り当て調整部416は、制限信号に基づいて、制限信号により指定された仮想マシンを特定する情報と、当該仮想マシンに割り当てる演算処理資源に関する情報とを含む、リソース割り当て調整信号を生成してよい。リソース割り当て調整部416は、物理マシン管理部418に対して、リソース割り当て調整信号を出力してよい。
物理マシン管理部418は、物理マシン134を管理してよい。物理マシン管理部418は、リソース割り当て調整部416からリソース割り当て調整信号を受け取ってよい。物理マシン管理部418は、リソース割り当て調整信号に基づいて、指定された仮想マシンに割り当てる演算処理資源を調整してよい。
図5は、クラウド運用システム100における情報処理の一例を概略的に示す。図5は、システムを構築する処理の一例を概略的に示す。本実施形態では、まず、S502において、仕様条件取得部222が、ユーザが入力した仕様条件を取得する。S504において、クラウド評価部226が、仕様条件に含まれるシステムの構造に関する条件に基づいて、ユーザが構築するシステムを、複数のサブシステムに分割する。
S506において、クラウド評価部226が、複数のサブシステムと、1以上のクラウド提供会社が提供する複数のクラウドサービス等との全ての組合せについて、ユーザが入力した仕様条件を満足するか否かを検討する。次に、クラウド評価部226が、ユーザが入力した仕様条件を満足する組合せを抽出する。
S508において、クラウド評価部226が、一定の評価基準に従って、上記の抽出結果を並べ替える。これにより、複数のクラウドサービス等を順位付けることができ、複数のクラウドサービス等およびクラウド提供会社を評価することができる。次に、クラウド評価部226またはユーザが、抽出結果の中から、1つの組合せを選択する。これにより、複数のサブシステムのそれぞれについて、システムを構築するクラウド提供会社を決定することができる。
S510において、システム配置部230が、仕様条件に含まれるシステム配置条件に基づいて、複数の物理マシンへの複数の仮想マシンの割り当てを決定する。これにより、システムを構成する複数の仮想マシンのそれぞれについて、どの物理マシン上に生成するかを決定することができる。
S512において、システム配置部230が、仕様条件に基づいて、それぞれのサブシステムに関する仕様条件を作成する。次に、システム配置部230が、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152のそれぞれに対して、それぞれが管理するサブシステムに関する仕様条件を通知する。
次に、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152が、システム配置部230から受け取ったサブシステムに関する仕様条件を満足すべく、仮想マシンを生成する。これにより、ユーザが入力した仕様条件を満足するシステムを構築することができる。
図6は、システムパッケージ記憶部242に格納されるデータテーブル600の一例を概略的に示す。データテーブル600は、システムパッケージの種類612ごとに、システムパッケージの機能614と、システムパッケージの構造616と、システムパッケージに含まれる構成間の接続関係618と、動作プログラム620とを格納してよい。システムパッケージの構造616は、システムパッケージに含まれ、システムパッケージの機能を実現する構成を規定してよい。動作プログラム620は、システムパッケージに含まれる構成上で動作するプログラムを規定してよい。
データテーブル600は、システムパッケージの種類612の一例として、システムパッケージ601、システムパッケージ602、システムパッケージ603、システムパッケージ604およびシステムパッケージ605を格納してよい。システムパッケージの種類612は、システムパッケージの識別記号の一例であってよい。
図7は、ユーザが入力する仕様条件の一例を概略的に示す。データテーブル710は、X社が構築するシステム700の仕様条件の一例であってよい。本実施形態において、システム700は、共用DMZシステム702と、宿泊予約システム703と、通信販売システム704と、決済システム705と、開発中のシステム706とを有する。
データテーブル710は、仕様条件712ごとに、ユーザの入力714を格納してよい。仕様条件712は、システムの構造720と、システム構成条件730と、演算処理環境740と、システム配置条件750と、システム運用条件760と、クラウド提供会社に関する条件770とを含んでよい。演算処理環境740は、仮想マシンの演算処理環境に関する条件の一例であってよい。
システムの構造720は、システムの名称722と、サブシステムの名称724と、システムパッケージの種類726とを含んでよい。システムの名称722、サブシステムの名称724およびシステムパッケージの種類726は、それぞれ、システムの識別記号、サブシステムの識別記号およびシステムパッケージの識別記号の一例であってよい。
システム構成条件730は、リソース共有グループ732と、物理サーバ共有グループ734とを含んでよい。リソース共有グループ732は、演算処理資源の共有が許されるサブシステムを規定する。物理サーバ共有グループ734は、物理サーバの共有が許されるサブシステムを規定する。
演算処理環境740は、CPUの性能742と、記憶容量744と、通信速度746とを含んでよい。CPUの性能742としては、所定期間内における演算処理性能の平均値、演算処理性能の最低値、演算処理性能の最大値、演算処理性能の範囲などを例示することができる。CPUの性能742は、仮想マシンの演算処理性能の一例であってよい。
システム配置条件750は、セキュリティレベル752、設置場所753と、災害対策レベル754と、ミラーリング755と、稼動時間756とを含んでよい。システム配置条件750は、システムまたはサブシステムを構成する仮想マシンを生成する物理マシンが満足すべき条件を規定してよい。
システム運用条件760は、運用コスト762と処理時間764とを含んでよい。処理時間764は、システムまたはサブシステムが、予め定められた業務を処理する場合に要する時間であってよい。システム運用条件760の他の例としては、予め定められた時間にシステムを起動または停止する定例運行を保証するか否かを例示することができる。
クラウド提供会社に関する条件770は、格付け772と、再委託の可否774とを含んでよい。再委託の可否774は、クラウド提供会社が、システムの運用を外部に委託することを許可するか否かを規定する。
図8は、システム定義記憶部244に格納されるデータテーブル800の一例を概略的に示す。データテーブル800は、図7に関連して説明したX社のシステム700のデータテーブルであってよい。データテーブル800は、システム配置部230がデータテーブル600およびデータテーブル710に基づいて作成した、サブシステムに関する仕様条件の一例であってよい。
データテーブル800において、テーブルの列は、ユーザ830ごとに、ユーザが構築するシステムの構造840と、仮想マシンと物理マシンとの対応関係850とを格納してよい。システムの構造840は、サブシステムの名称844と、サブシステムを構成する仮想マシン846と、仮想マシン間の接続関係848とを含んでよい。
システム配置部230は、データテーブル710のサブシステムの名称724に基づいて、サブシステムの名称844を作成してよい。システム配置部230は、データテーブル710のシステムパッケージの種類726と、データテーブル600のシステムパッケージの構造616とに基づいて、サブシステムを構成する仮想マシン846を作成してよい。システム配置部230は、データテーブル710のシステムパッケージの種類726と、データテーブル600のシステムパッケージに含まれる構成間の接続関係618に基づいて、仮想マシン間の接続関係848を作成してよい。
仮想マシンと物理マシンとの対応関係850は、クラウド提供会社852と、物理マシン854とを含んでよい。クラウド提供会社852には、クラウド提供会社の識別記号が入力されてよい。物理マシン854には、物理マシンの識別記号が入力されてよい。
データテーブル800により、システム700の構造を定義することができる。本実施形態において、共用DMZシステム702は、WEBサーバ801、WEBサーバ802およびWEBサーバ803を有する。宿泊予約システム703は、アプリケーションサーバ804、アプリケーションサーバ805、データベースサーバ806およびデータベースサーバ807を有する。通信販売システム704は、アプリケーションサーバ808、アプリケーションサーバ809、データベースサーバ810およびデータベースサーバ811を有する。宿泊予約システム703および通信販売システム704は、共用DMZシステム702を共用する。
決済システム705は、WEBサーバ812、WEBサーバ813およびWEBサーバ814を有する。決済システム705は、アプリケーションサーバ815、アプリケーションサーバ816、データベースサーバ817およびデータベースサーバ818を有する。開発中のシステム706は、WEBサーバ819、WEBサーバ820およびWEBサーバ821を有する。開発中のシステム706は、アプリケーションサーバ822、アプリケーションサーバ823、データベースサーバ824およびデータベースサーバ825を有する。
図9は、クラウド運用システム100における情報処理の一例を概略的に示す。図9は、クラウド管理装置120におけるシステム管理の一例を概略的に示す。本実施形態では、S902において、図5に関連して説明した方法と同様にして、システムを構築するクラウド提供会社を決定する。また、図5に関連して説明した方法と同様にして、システムを構築して、システムを運用する。
S904において、情報収集部232が、システムの性能に関する情報を収集する。S906において、システム配置部230が、システムの性能に関する情報と、ユーザの仕様条件とを比較する。本実施形態において、システム配置部230は、複数の仮想マシンのそれぞれの演算処理性能について、情報収集部232が収集した情報と、ユーザの仕様条件とを比較する。
S908において、システム配置部230が、ユーザの仕様条件で規定された演算処理性能よりも、情報収集部232が収集した演算処理性能の方が大きな仮想マシンを抽出する。次に、システム配置部230は、抽出された仮想マシンの演算処理性能を予め定められた範囲内に制限する制限信号を生成して、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152に対して、出力する。そして、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152が、システム配置部230が出力した制限信号に基づいて、抽出された仮想マシンの演算処理性能を制限する。
図10Aは、クラウド運用システム100における情報処理の他の例を概略的に示す。図10B、図10Cおよび図10Dは、図10Aの情報処理の一部における処理の一例を概略的に示す。図10Aから図10Dは、構築したシステムの運用状況を管理する処理の一例を概略的に示す。
本実施形態では、S1012において、システム配置部230が、仕様条件取得部222から、ユーザが入力した仕様条件を取得する。システム配置部230は、システム定義記憶部244から、システムの構造に関する条件を取得してよい。S1014において、情報収集部232がシステムの情報を収集する。情報収集部232は、収集した情報をシステム配置部230に通知する。
S1016において、システム配置部230が、情報収集部232が収集した情報と、ユーザが入力した仕様条件とを比較して、システムが仕様条件を満たしているか否かを判断する。システム配置部230は、システムを構築する複数の仮想マシンのそれぞれについて、仕様条件を満たしているか否かを判断してよい。
S1016において、システム配置部230が、システムが仕様条件を満たしていると判断した場合(S1016のYES)には、システムの運用状況を管理する処理を終了する。システム配置部230は、システムを構築する全ての仮想マシンが仕様条件を満たすと判断した場合に、システムが仕様条件を満たしていると判断してよい。
S1016において、システム配置部230が、システムが仕様条件を満たすことが困難と判断した場合(S1016のNO)には、S1018の処理を実行する。システム配置部230は、システムを構築する仮想マシンのうち、少なくとも1台の仮想マシンが仕様条件を満たすことが困難と判断した場合には、S1018の処理を実行してよい。S1018において、システム配置部230が、システムが仕様条件を満たすには、物理マシン間での仮想マシンの移動が必要になるか否かを判断する。
例えば、情報収集部232が物理マシンの更新が予定されているという情報を収集した場合、システム配置部230は、当該物理マシン上に生成されている仮想マシンの仕様条件と、更新後の物理マシンの仕様とを比較して、物理マシン間での仮想マシンの移動が必要になるか否かを判断する。システム配置部230は、同一の物理マシンに生成された複数の仮想マシンの仕様条件と、当該物理マシンの負荷の履歴とを比較して、物理マシン間での仮想マシンの移動が必要になるか否かを判断する。
S1018において、システム配置部230が、物理マシン間での仮想マシンの移動が必要と判断した場合(S1018のYES)には、S1020において、仮想マシンの移動処理を実行する。S1018において、システム配置部230が、物理マシン間での仮想マシンの移動が不要と判断した場合(S1018のNO)には、S1022の処理を実行する。
S1022において、システム配置部230が、他の仮想マシンとの間でのリソース制御が必要になるか否かを判断する。システム配置部230は、システムが仕様条件を満たすには、他の仮想マシンのリソース使用量を削減する必要があるか否かを判断してよい。
S1022において、システム配置部230が、他の仮想マシンとの間でのリソース制御が必要と判断した場合(S1022のYES)には、S1024において、仮想マシン間でのリソース制御を実行する。S1022において、システム配置部230が、他の仮想マシンとの間でのリソース制御が不要と判断した場合(S1022のNO)には、S1026において、仮想マシンのリソース制御を実行する。S1026において、仮想マシンのリソース制御が完了したら、システムの運用状況を管理する処理を終了する。
図10Bは、S1020およびS1058における、仮想マシンの移動処理の一例を概略的に示す。本実施形態において、S1032において、システム配置部230は、クラウド評価部226に対して、仕様条件を満足する物理マシンを抽出するよう指示する。システム配置部230は、S1018で物理マシン間の移動が必要と判断された仮想マシンに関する情報と、情報収集部232が収集した情報と、ユーザが入力した仕様条件とを通知する。
クラウド評価部226は、情報収集部232が収集した物理マシンの稼動状況および現在の仕様から、利用できる物理マシンを特定する。クラウド評価部226は、物理マシン間の移動が必要と判断された仮想マシンのそれぞれと、利用できる物理マシンのそれぞれとの全ての組合せについて、ユーザが入力した仕様条件を満足するか否かを検討する。クラウド評価部226は、ユーザが入力した仕様条件を満足する組合せを抽出する。これにより、仕様条件を満足する物理マシンを抽出することができる。
S1034において、まず、システム配置部230が、抽出結果の中から1つの組合せを選択する。システム配置部230は、一定の基準に基づいて抽出結果を並べ替えて、抽出結果を評価してよい。システム配置部230は、仕様条件のそれぞれについて優先順位が入力されている場合には、優先順位の高い仕様条件をキーとして抽出結果を並べ替えてよい。システム配置部230は、評価結果の最も良い組合せを選択してよい。
次に、システム配置部230は、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152を制御して、選択した組合せに基づいて、仮想マシンを異なる物理マシン上に移動させる。システム配置部230は、異なる物理マシン上に移動する必要のある仮想マシンの全てを移動したら、仮想マシンの移動処理を終了する。
図10Cは、S1024における、仮想マシン間でのリソース制御の一例を概略的に示す。本実施形態において、S1042において、まず、システム配置部230が、S1022で仮想マシン間でのリソース制御が必要と判断された仮想マシンのそれぞれについて、リソースの共有を許可されている仮想マシンを抽出する。システム配置部230は、それぞれの仮想マシンに関するシステム構成条件に基づいて、抽出処理を実行してよい。
次に、システム配置部230は、抽出された仮想マシンの稼動状況から、抽出された仮想マシンのそれぞれについて、削減できるリソース使用量を算出する。また、システム配置部230は、仮想マシン間でのリソース制御が必要と判断された仮想マシンのそれぞれについて、仕様条件の達成に必要なリソース量を算出する。
S1044において、システム配置部230は、仮想マシン間でのリソース制御が必要と判断された仮想マシンを生成している物理マシンのそれぞれについて、当該仮想マシンに対して、追加で割り当てることができるリソース量を算出する。次に、システム配置部230は、仕様条件の達成に必要なリソース量と、追加で割り当てることができるリソース量とを比較して、物理マシンのリソースが十分かどうかを判断する。
S1044において、システム配置部230が物理マシンのリソースが十分と判断した場合(S1044のYES)には、S1046において、仮想マシンのリソース制御を実行する。S1026において、仮想マシンのリソース制御が完了したら、システムの運用状況を管理する処理を終了する。
S1044において、システム配置部230が物理マシンのリソースが不十分と判断した場合(S1044のNO)には、S1050において、システム配置部230が、S1042で抽出されなかった仮想マシンの中から、リソース使用量を削減することができる仮想マシンを抽出する。
S1052において、システム配置部230が、S1050で抽出された仮想マシンに割り当てるリソースを削減することで、仕様条件を達成することができるか否かを判断する。S1052において、システム配置部230が仕様条件を達成することができると判断した場合(S1052のYES)には、S1054において、システム配置部230が、S1050で抽出された仮想マシンのそれぞれについて、リソース制御を実行する。S1054において、リソース制御が完了したら、S1044の処理を実行する。
S1052において、システム配置部230が仕様条件を達成することが困難と判断した場合(S1052のNO)には、S1056において、システム配置部230が、他の物理サーバへ移動することができる仮想マシンを抽出する。S1058において、仮想マシンの移動処理を実行して、抽出した仮想マシンを他の物理サーバに移動させる。S1058において、仮想マシンの移動処理が完了したら、S1044の処理を実行する。以上により、仮想マシン間でのリソース制御を実行することができる。
図10Dは、S1026、S1046およびS1054における、仮想マシンのリソース制御の一例を概略的に示す。本実施形態において、S1072において、システム配置部230が、制御対象となる仮想マシンの稼動状況と、仕様条件の達成に必要なリソース量とに基づいて、制御対象となる仮想マシンに割り当てるリソース量を調整する。システム配置部230は、仮想マシンに割り当てるリソースを調整したら、仮想マシンのリソース制御を終了する。
図11Aおよび図11Bは、仕様条件とクラウド管理装置120の機能との対応関係の一例を示す。テーブル1102およびテーブル1104は、仮想マシンの演算処理環境に関する条件1120ごとに、クラウド管理装置120の機能1140と、制御項目1142と、機能の種類1144とを格納する。テーブル1102およびテーブル1104は、システム構成条件1160を格納してよい。システム構成条件1160は、クラウド管理装置120が機能1140を実行するときに参照する参照条件であってよい。
本実施形態において、仮想マシンの演算処理環境に関する条件1120は、リソース制御に関する条件、稼動スペックの最適化に関する条件、セキュリティに関する条件および信頼性に関する条件を含んでよい。リソース制御に関する条件は、演算処理装置の処理速度を指定する条件、記憶装置の応答速度を指定する条件および通信速度を指定する条件を含んでよい。稼動スペックの最適化に関する条件は、演算処理性能の直列対称性を最適化するか否かを指定する条件と、演算処理性能の並列対称性を最適化するか否かを指定する条件とを含んでよい。
セキュリティに関する条件は、ウイルスが検知されていない物理マシンを使用することを保証するか否かを指定する条件を含んでよい。信頼性に関する条件は、ワーニングの実績の有無または故障間隔を指定する条件と、障害の実績の有無または障害対策の有無を指定する条件とを含んでよい。
テーブル1102およびテーブル1104において、○は、仮想マシンの演算処理環境に関する条件1120に含まれるそれぞれの条件について、制御項目1142を制御して機能1140を実行することで、当該条件を改善することができることを示す。テーブル1102およびテーブル1104において、△は、仮想マシンの演算処理環境に関する条件1120に含まれるそれぞれの条件について、機能1140を実行するときに参照する条件を示す。テーブル1102およびテーブル1104において、▼は、仮想マシンの演算処理環境に関する条件1120またはシステム構成条件1160に含まれるそれぞれの条件を改善するときに、利用してよい機能を示す。
例えば、仮想マシンの演算処理環境に関する条件1120のリソース制御に関する条件のうち、演算処理装置の処理速度を指定する条件を例として、テーブル1102およびテーブル1104について説明する。テーブル1102およびテーブル1104において、列1122に○が記載されている機能は、演算処理装置の処理速度を指定する条件を改善することができることを示す。
これにより、演算処理装置の処理速度を指定する条件を改善する場合、クラウド管理装置120は、演算処理装置リソースの優先度をリアルタイムで制御する機能、演算処理装置リソースの使用量をリアルタイムで制御する機能、記憶装置の通信速度の優先度を制御する機能、および、仮想マシンの他の物理移動を動的に制御する機能の少なくとも1つを実行すればよいことがわかる。また、演算処理装置の処理速度を指定する条件を改善するときに、列1122に▼が記載されている機能を利用できることがわかる。
テーブル1102の演算処理装置リソースの優先度をリアルタイムで制御する機能の行を参照することで、クラウド管理装置120が、演算処理装置リソースの優先度をリアルタイムで制御する機能により、演算処理装置の処理速度を指定する条件を改善する場合には、クラウド管理装置120は、システム構成条件1160を満足するように、当該機能を実行すればよいことがわかる。また、制御項目1142の記載を参照することで、クラウド管理装置120は、演算処理装置リソースの割当優先度を変更することで、当該機能を実行すればよいことがわかる。
クラウド管理装置120は、動的制御機能、静的制御機能およびセンサー機能により、ユーザが入力した仕様条件を満足するように、システムを管理することができる。クラウド管理装置120は、テーブル1102およびテーブル1104を利用してシステムを管理することで、システムの性能の変化に対する応答速度を向上させることができる。これにより、仕様条件を満足するシステムを安定して運用することができる。クラウド管理装置120は、機能の種類1144を参照して、機能の種類1144が動的制御機能であれば、システムの管理に有効な機能であり、機能の種類1144が動的制御機能であれば、システムの構築に有効な機能であると判断してよい。
クラウド管理装置120は、センサー機能により、各仮想マシン、または、仮想マシン管理装置132、仮想マシン管理装置142もしくは仮想マシン管理装置152から、様々な情報を収集することができる。クラウド管理装置120が収集する情報としては、仮想マシンもしくはシステムの性能に関する情報、物理マシンの設置場所における温度もしくは騒音のような稼働環境に関する情報、システム、仮想マシンもしくは物理マシンのセキュリティに関する情報、障害に関する情報、または、システム、仮想マシンもしくは物理マシンの構成に情報を例示することができる。
クラウド管理装置120は、センサー機能により、各仮想マシン、または、仮想マシン管理装置132、仮想マシン管理装置142もしくは仮想マシン管理装置152からのオペレーション操作に関するリクエストを収集してもよい。オペレーション操作に関するリクエストとしては、一時的にリソースの使用量を増加する旨のメッセージを例示することができる。
図12Aおよび図12Bは、仕様条件とクラウド管理装置120の機能との対応関係の一例を示す。テーブル1202およびテーブル1204は、システム配置条件1220ごとに、クラウド管理装置120の機能1240と、制御項目1242と、機能の種類1244とを格納する。テーブル1202およびテーブル1204は、システム構成条件1260を格納してよい。システム構成条件1260は、クラウド管理装置120が機能1240を実行するときに参照する参照条件であってよい。テーブル1202およびテーブル1204において、テーブル1102およびテーブル1104と類似する部分については、説明を省略する。
図13Aおよび図13Bは、仕様条件とクラウド管理装置120の機能との対応関係の一例を示す。テーブル1302およびテーブル1304は、システム運用条件1320ごとに、クラウド管理装置120の機能1340と、制御項目1342と、機能の種類1344とを格納する。テーブル1302およびテーブル1304は、システム構成条件1360を格納してよい。システム構成条件1360は、クラウド管理装置120が機能1340を実行するときに参照する参照条件であってよい。テーブル1302およびテーブル1304において、テーブル1102およびテーブル1104と類似する部分については、説明を省略する。
クラウド管理装置120は、テーブル1102、テーブル1104、テーブル1202、テーブル1204、テーブル1302およびテーブル1304を、システム定義記憶部244に格納してよい。システム配置部230は、システムを構築または管理するときに、テーブル1102、テーブル1104、テーブル1202、テーブル1204、テーブル1302およびテーブル1304を参照してよい。
以上の記載によれば、本願明細書には以下の管理方法が記載されていることは明らかである。本願明細書には、複数の物理マシン上に仮想的に生成される複数の仮想マシンにより実現されるシステムを管理する管理方法であって、システムの仕様を規定する仕様条件を取得する仕様条件取得段階と、仕様条件に基づき、複数の物理マシンへの複数の仮想マシンの割り当てを決定するシステム配置段階とを備え、システム配置段階は、複数の仮想マシンのうち、少なくとも1つの仮想マシンの演算処理性能が向上した場合に、少なくとも1つの仮想マシンの演算処理性能の変動が予め定められた範囲内になるように、少なくとも1つの仮想マシンの演算処理性能を制限する制限段階を有する管理方法が記載されている。
本実施形態においては、クラウド管理装置120が、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152とは別の物理マシン上に設けられ、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を制御する場合について説明した。しかしながら、クラウド管理装置120はこれに限定されない。
例えば、仮想マシン管理装置132がクラウド管理装置120と同様の機能を実現してよい。また、クラウド管理装置120は、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152と同一の物理マシン上に設けられてもよい。さらに、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152の少なくとも1つが、仮想マシンにより構成されていてもよい。
本実施形態においては、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152を例として、それぞれに含まれる構成の機能について説明した。しかし、各構成の機能は厳密に区別されるものではなく、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152のそれぞれの構成は、これに限定されない。仕様条件取得部222がシステム定義部224の機能の一部を担ってもよく、システム定義部224が仕様条件取得部222の機能の一部を担ってもよい。
本実施形態においては、プログラムが実行されることにより、コンピュータがクラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152として機能する場合について説明した。しかし、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142および仮想マシン管理装置152は、これに限定されない。
クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152は、それぞれの用途に特化したシステムであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。
例えば、CPU、ROM、RAM、通信インターフェース等を有するデータ処理装置と、入力装置と、出力装置と、記憶装置とを備えた一般的な構成の情報処理装置において、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152の各部の動作を規定したソフトウエアを起動することにより、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152を実現できる。上記特化したシステムおよび上記情報処理装置は、単一のコンピュータにより構成されてもよく、ネットワーク上に分散した複数のコンピュータにより構成されてもよい。
図14は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、予め定められた条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
コンピュータ1900にインストールされ、コンピュータ1900をクラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152として機能させるプログラムは、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152の各部の動作を規定したモジュールを備える。
これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、クラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152の各部としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のクラウド運用システム100、クラウド管理装置120、仮想マシン管理装置132、仮想マシン管理装置142または仮想マシン管理装置152を構築できる。
以上より、本願明細書には以下のプログラムが記載されていることが明らかである。即ち、本願明細書には、コンピュータを、複数の物理マシン上に仮想的に生成される複数の仮想マシンにより実現されるシステムを管理する管理装置であって、システムの仕様を規定する仕様条件を取得する仕様条件取得部と、仕様条件に基づき、複数の物理マシンへの複数の仮想マシンの割り当てを決定するシステム配置部とを備える管理装置として機能させ、システム配置部を、複数の仮想マシンのうち、少なくとも1つの仮想マシンの演算処理性能が向上した場合に、少なくとも1つの仮想マシンの演算処理性能の変動が予め定められた範囲内になるように、少なくとも1つの仮想マシンの演算処理性能を制限するように機能させる管理プログラムが記載されている。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。