(57)【要約】【課題】  大量の情報を効率よく処理したいという要求と、安定した性能を得たいという要求を共に満たすようなクラウドコンピューティングシステムを実現する。【解決手段】  利用者端末と、利用者端末とネットワークを介して接続され、利用者端末にサービスを提供する複数のサーバと、利用者へサービスを提供するサーバを管理する管理装置と、を備える計算機システムにおいて、利用者端末は、固定起動、優先起動および非優先起動の何れかの起動モードを示す起動情報を管理装置へ送信し、管理装置は、起動情報に基づいて利用者端末へサービスを提供するサーバを選択し、選択されたサーバは、利用者端末へサービスを提供する。【選択図】  図１
2011002975.tif 000002
【特許請求の範囲】
【請求項１】
利用者端末と、前記利用者端末とネットワークを介して接続され、前記利用者端末にサービスを提供する複数のサーバと、前記利用者へサービスを提供するサーバを管理する管理装置と、を備える計算機システムにおいて、
前記利用者端末は、固定起動、優先起動および非優先起動の何れかの起動モードを示す起動情報を前記管理装置へ送信し、
前記管理装置は、前記起動情報に基づいて前記利用者端末へサービスを提供するサーバを選択し、
前記選択されたサーバは、前記利用者端末へサービスを提供することを特徴とする計算機システム。
【請求項２】
請求項１記載の計算機システムにおいて、
前記管理装置は、記憶装置に記録された固定起動、優先起動および非優先起動のそれぞれについて起動可能なサーバの上限数の情報と、固定起動、優先起動および非優先起動のそれぞれについて起動中のサーバの数の情報とを取得し、
前記管理装置は、前記利用者端末から送信された起動情報に示された起動モードのサーバの上限数が、前記起動モードで起動中のサーバの数よりも大きい場合には、前記利用者端末から送信された起動モードのサーバを、前記利用者端末へサービスを提供するサーバとして選択することを特徴とする計算機システム。
【請求項３】
請求項１または２記載の計算機システムにおいて、
前記管理装置は、前記選択されたサーバの前記起動モードでの起動の成否を示す成否情報を前記利用者端末へ送信することを特徴とする計算機システム。
【請求項４】
請求項３記載の計算機システムにおいて、
前記成否情報は、前記利用者端末から送信された起動情報と前記利用者端末へサービスを提供するサーバの実際の提供モードを示す情報とを含むことを特徴とする計算機システム。
【請求項５】
請求項３または４記載の計算機システムにおいて、
前記利用者端末の利用量を制御する課金サーバを更に備え、
前記管理装置は、前記成否情報を、前記課金サーバへ送信し、
前記課金サーバは、前記成否情報に基づいて前記利用者端末の課金額を決定することを特徴とする計算機システム。
【請求項６】
利用者端末とネットワークを介して接続された利用者端末にサービスを提供する複数のサーバのうちから、前記利用者端末へサービスを提供するサーバを選択する管理装置であって、
前記利用者端末とネットワークを介して通信する通信部と、
前記通信部を介して受信した情報に基づいて前記利用者端末へサービスを提供するサーバを選択する演算部と、を備え、
前記通信部は、前記利用者端末から送信された固定起動、優先起動および非優先起動の何れかの起動モードを示す起動情報を受信し、
前記演算部は、前記起動情報に基づいて前記利用者端末へサービスを提供するサーバを選択することを特徴とする管理装置。
【請求項７】
請求項６記載の管理装置において、
前記演算部は、記憶装置に記録された固定起動、優先起動および非優先起動のそれぞれについて起動可能なサーバの上限数の情報と、固定起動、優先起動および非優先起動のそれぞれについて起動中のサーバの数の情報とを取得し、
前記演算部は、前記利用者端末から送信された起動情報に示された起動モードのサーバの上限数が、前記起動モードで起動中のサーバの数よりも大きい場合には、前記利用者端末から送信された起動モードのサーバを、前記利用者端末へサービスを提供するサーバとして選択することを特徴とする管理装置。
【請求項８】
請求項６または７記載の管理装置において、
前記通信部は、前記選択されたサーバの前記起動モードでの起動の成否を示す成否情報を前記利用者端末へ送信することを特徴とする管理装置。
【請求項９】
請求項８記載の管理装置において、
前記成否情報は、前記利用者端末から送信された起動情報と前記利用者端末へサービスを提供するサーバの実際の提供モードを示す情報とを含むことを特徴とする管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムおよび管理装置に関する。
【背景技術】
【０００２】
クラウドコンピューティングサービスは、利用者の要求に基づき、ITリソースを複数の顧客にサービスとして提供するものである。一例として、非特許文献１に記載された技術がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】http://www.gartner.co.jp/b3i/research/081210_inf/index.html、「クラウドコンピューティングの見分け方」、2009年6月5日検索
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドコンピューティングサービスでは、統合されたITリソースを仮想化技術を用いることにより分割し、仮想的な一台または複数台のサーバを利用者に提供する。この仮想的なサーバは、統合されたITリソースから論理的に切り出して提供されるため、従来の物理的なサーバに比べ調達が容易であることから、成長が著しいWebサービスや、大量の情報を一度に処理したいシュミレーションやトランスコーディングといった、短期間に大量のリソースの追加が要求される分野で着目されている。
【０００５】
しかし、サーバを仮想化し、統合されたITリソース上に集約することで運用者側はコスト低減が期待できるものの、ネットワークの回線を共用することから集約度が上がるにつれてネットワークのスループットが悪くなるという問題がある。
【０００６】
また、クラウドコンピューティングサービスはユーザ数に応じて何千台、何万台と大規模化していくが、システムの規模に応じてネットワークの物理的な距離や、ルータやスイッチを経由する数が増加するため、規模に応じてネットワーク性能がボトルネックになりやすくなるという問題がある。このことは、契約当初には問題無く動作していたシステムが、運用側のシステム拡張や集約度の増大の影響を受け、意図した動作が期待できなくなるという結果を引き起こす可能性があり、銀行の会計業務のようなミッションクリティカルな用途にクラウドコンピューティングサービスを利用する場合において、無視できない問題となると予想される。
【０００７】
したがって、クラウドコンピューティングサービスを実現する上では、大量の情報を効率よく処理したいという要求と、安定した性能を得たいという要求を共に満たすようなシステムの実現が課題となる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本願発明は以下の構成を備える。即ち、利用者端末と、利用者端末とネットワークを介して接続され、利用者端末にサービスを提供する複数のサーバと、利用者へサービスを提供するサーバを管理する管理装置と、を備える計算機システムにおいて、利用者端末は、固定起動、優先起動および非優先起動の何れかの起動モードを示す起動情報を管理装置へ送信し、管理装置は、起動情報に基づいて利用者端末へサービスを提供するサーバを選択し、選択されたサーバは、利用者端末へサービスを提供する。
【０００９】
また、利用者端末とネットワークを介して接続された利用者端末にサービスを提供する複数のサーバのうちから、利用者端末へサービスを提供するサーバを選択する管理装置であって、利用者端末とネットワークを介して通信する通信部と、通信部を介して受信した情報に基づいて利用者端末へサービスを提供するサーバを選択する演算部と、を備え、通信部は、利用者端末から送信された固定起動、優先起動および非優先起動の何れかの起動モードを示す起動情報を受信し、演算部は、起動情報に基づいて利用者端末へサービスを提供するサーバを選択する。
【発明の効果】
【００１０】
本発明によれば、大量の情報をより効率よく処理し、安定した性能を得られる技術の提供が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例によるクラウドコンピューティングシステムの一例を示す図である。
【図２】ユーザ管理テーブル１１２及びサーバ群管理テーブル１１４及びグループ管理テーブル１１６の詳細図である。
【図３】サーバ指定フラグ１２０を用いたサーバの起動手順を表したフローチャートである。
【図４】優先起動１２４に基づきサーバを起動する場合の手順を表すフローチャートである。
【図５】非優先起動１２６に基づきサーバを起動する場合の手順を表すフローチャートである。
【図６】ユーザ登録時のサーバ起動手順を表すフローチャートである。
【図７】サーバ初回起動時のサーバ起動手順を表すフローチャートである。
【図８】サーバ利用終了手順を表すフローチャートである。
【図９】サーバの基本構成を示す図である。
【発明を実施するための形態】
【００１２】
クラウドコンピューティングサービスの利用者は、ミッションクリティカルな業務を行うために安定した性能と品質を求めるタイプと、大量のリソースをベストエフォートに利用したいタイプとに大きく分けられる。本発明の実施形態では、この利用者のタイプに応じた指定を利用者が明示的に行うことで、クラウドコンピューティングサービス側が要求に適したITリソースの割り当てを可能とするものである。
【００１３】
この時、前回に利用したのと同じ物理的及び論理的トポロジの個所にプロビジョニングされたITリソースは、同等の性能を期待できるとの仮定に基づき、前者のタイプの数に応じたトポロジのITリソースをあらかじめ確保しておき、残ったトポロジのITリソースを後者に割り当てることで、その制御を実現する。またネットワークに流れるトラフィックについては前者を優先だが経路固定、後者を非優先だが最適経路選択とすることで後者の増加による前者への影響を低減させる制御も行い、異なるタイプの利用者に対して、一つの統合されたITリソースを用いたサービス提供を可能にする。
【００１４】
図１はクラウドコンピューティングシステムの構成を表す第１の実施例である。第１の実施例は、企業が社内に複数のサーバを持ち、それらを情報システム部門が一括管理しているモデルである。情報システム部門は利用者からの要求に応じて、情報システム部門が管理している物理サーバ上に仮想サーバを構築し、仮想サーバ単位で貸出しを行なっている。このとき、情報システム部門は、複数の仮想サーバを一台の物理サーバに割り当てることにより、サーバ台数の集約を実現でき、サーバ設置コスト及びサーバ管理コストを圧縮することができる。この時、どの物理サーバにどの仮想サーバを割り当てるかは、その時々の物理サーバの負荷において動的に決定されたり、最初から固定で割り当てるという運用がなされているが、サーバの負荷に応じて仮想サーバを配備する方式では、新規仮想サーバの配備により、現在物理サーバに配備されている仮想サーバの性能や回線の占有率に影響を及ぼすことから、性能予測に基づいた安定した運用が求められるバッチ処理等の業務には適さないと考えられる。また最初から固定で割り当てる運用では、サーバ集約によるコスト削減効果が見込みにくいという問題がある。本実施例はこの課題を解決する。
【００１５】
図１において、利用者端末１００はネットワークを通じてユーザ管理装置１１０に接続され、ユーザ管理装置１１０はユーザ管理テーブル１１２及びサーバ群管理テーブル１１４、グループ管理テーブル１１６にアクセス可能であるとする。ユーザ管理装置１１０はユーザ管理テーブル１１２及びサーバ群管理テーブル１１４、グループ管理テーブル１１６はデータベースに格納され、例えばＨＤＤなどの記憶装置に格納されているが、ユーザ管理装置１１０内に格納されていてもよいし、ユーザ管理装置１１０外のサーバ等で管理されていてもよい。ユーザ管理装置１１０はDHCPサーバ１４０及びサーバ群１５０及びサーバ群１６０及び課金サーバ１３０及びインスタンス管理サーバ１７０とネットワークを介して接続されている。ここで、ユーザ管理装置１１０、DHCPサーバ１４０、サーバ群１５０中のサーバ、サーバ群１６０中のサーバ、課金サーバ１３０及びインスタンス管理サーバ１７０は、UNIX（商標登録）、Windows（商標登録）、または専用OS等のOSにより制御されるUnix（登録商標）サーバ、Windows（登録商標）サーバまたはメインフレームサーバ等であってもよい。
【００１６】
図９は、ユーザ管理装置１１０、DHCPサーバ１４０、サーバ群１５０中のサーバ、サーバ群１６０中のサーバ、課金サーバ１３０及びインスタンス管理サーバ１７０を構成するサーバの基本構成を表している。これらのサーバのハードウェアの構成はほぼ共通する。以下、この基本構成を有するサーバをサーバ９５０として説明する。
【００１７】
サーバ９５０はCPU９１０、コントローラ９１４、コントローラ９１８、メモリ９１６、ディスプレイコントローラ９１２、ネットワークコントローラ９２０、ストレージIFコントローラ９２２、ペリフェラルコントローラ９２４を有している。、また、CPU９１０とコントローラ９１４はバス９６０を用いて、コントローラ９１４とディスプレイコントローラ９１２はバス９６４を用いて、コントローラ９１４とメモリはバス９６６を用いて、コントローラ９１４とコントローラ９１８はバス９６２を用いて、コントローラ９１８とネットワークコントローラ９２０、ストレージIFコントローラ９２２及びペリフェラルコントローラ９２４とはバス９６８を用いて接続されている。
【００１８】
CPU９１０は、メモリ９１６上に展開されたプログラム及びデータを処理するために演算装置であり、メモリ９１６は主として揮発メモリにより構成されるプログラム及びデータを一時的に格納するための主記憶装置であるが、不揮発メモリとしての特性を備えていてもよい。後述する各図で説明するフローチャートは、特段の説明がない限り、各サーバにおけるＣＰＵがプログラムを実行することにより実現される。
【００１９】
また、ディスプレイコントローラ９１２は、CPUにより処理されたディスプレイ表示用フレームデータを一時的に保持し、ディスプレイに対して同期または非同期に転送する処理装置であるが、ディスプレイ表示用のフレームデータを1フレーム以上メモリ９１６に保持していてもよく、また表示用の演算の一部をCPU９１０の代わりに行ってもよい。またコントローラ９１４は、CPU９１６及びディスプレイコントローラ９１２及びメモリ９１２及びコントローラ９１８との間の通信を制御する処理装置であり、コントローラ９１８は、コントローラ９１４及びネットワークコントローラ９２０及びストレージIFコントローラ９２２及びペリフェラルコントローラ９２４間の通信を制御する処理装置である。ただし、コントローラ９１４とコントローラ９１８の機能の分担はここで挙げた組み合わせに限定されない。また、ここではコントローラ９１４とコントローラ９１８を２つのコントローラとして説明したが、１つのコントローラとして機能するものでも構わない。
【００２０】
またネットワークコントローラ９２０は有線または無線接続により、LANまたはインターネットまたは専用線網等アクセスするための制御装置である。ストレージIFコントローラ９２２は、SATA IFまたはSAS IFなどのディスクドライブへ接続するためのIF制御装置または、SAN接続されたディスクアレイへと接続するためのFiber Channel IF等のIF制御装置である。またペリフェラルコントローラ９２４はUSB IFまたはBluetooth IF（登録商標）またはUART IF等を制御するためのIF制御装置である。
【００２１】
ここでメモリ９１６またはディスプレイコントローラ９１２はコントローラ９１４の機能をCPU９１０が有することでCPU９１０に接続されていてもよく、またCPU９１０に内蔵されていてもよい。同様にディスプレイコントローラ９１２はもCPU９１０に接続されていてもよく、CPU９１０に内蔵されていてもよい。サーバ９５０は論理パーティション、またはハイパーバイザを用いてこれらのハードウエアリソースが仮想化され、複数のサーバであるかのように扱われてもよい。ここでサーバの選択方法は、後述のようにサーバ識別ID２１４に対して行われるが、これが物理サーバを選択の単位として扱う場合は、物理サーバと対応し、仮想サーバを選択の単位とする場合は、仮想サーバと対応させてもよい。
【００２２】
このような構成を持つサーバ９５０は、Windows OS（登録商標）、Unix OS（登録商標）または専用OS等のOSにより制御され、サーバ９５０がユーザ管理装置１１０、DHCPサーバ１４０、課金サーバ１３０またはインスタンス管理サーバ１７０のいずれかであるかは、OS上にインストールされたアプリケーションの動作により区別されてもよい。またサーバ群１５０及びサーバ群１６０に属するサーバは、OSのインストールやこのような特定の役割を与えられていないサーバであり、OS及びアプリケーションのインストールにより、ユーザ管理装置１１０、DHCPサーバ１４０、課金サーバ１３０またはインスタンス管理サーバ１７０等の役割を担うことが可能であってもよい。
【００２３】
また、図1におけるDHCPサーバ１４０はアドレス管理テーブル１４４にアクセス可能であり、アドレス管理テーブル１４４は、仮想サーバのMACアドレス１４６とIPアドレス１４８を対応づけるテーブルである。ここで、テーブル１４４はユーザ管理装置１１０内に格納されていてもよいし、ユーザ管理装置１１０外のサーバ等で管理されていてもよい。またサーバ群１５０はストレージ１８０に接続されているものとする。ストレージ１８０はサーバ群１５０のSATAやIDEで接続されてローカルディスクであっても良いし、SAN等のネットワークで接続されたものであってもよい。
【００２４】
ここで取り上げるシステム構成は以下に説明するユーザ管理装置１１０の特徴を除き、一般的なクラウドコンピューティングシステムの構成に準じている。  したがって、本実施例は上記の構成に制約を受ける物ではない。
【００２５】
本実施例は、利用者端末１００がサーバを起動する際の、ユーザ管理装置１１０を用いたサーバ群の選択方法に特徴を持つ。利用者端末１００はサーバを起動する際に、ユーザ自身を一意に特定するための情報であるユーザID１０２と起動するサーバを識別するための情報であるサーバ識別ID１０３に加え、サーバを立ち上げる場所を指定する情報であるサーバ指定フラグ１２０を送信する。サーバ指定フラグ１２０としては、特定の場所でだけサーバを立ち上げることを要求する固定起動１２２、特定の場所を優先してサーバを立ち上げることを要求するサーバ優先起動１２４、サーバの立ち上げ場所に関して要求を行なわない非優先起動１２６を識別する起動モードを示す起動情報等を含んでいても良い。
【００２６】
図２はユーザ管理テーブル１１２及びサーバ管理テーブル１１４、グループ管理テーブル１１６の詳細を表している。ユーザ管理テーブル１１２及びサーバ管理テーブル１１４、グループ管理テーブル１１６はストレージ上に作成されるデータベース上のテーブルであってもよい。
【００２７】
ユーザ管理テーブル１１２はテーブルの要素として、ユーザID２１２、サーバ識別ID２１４、サーバ群ID２１６、現サーバ群ID２１８、インスタンスID２２０、移動許可２２６、IPアドレス２２８、MACアドレス２３０、達成度２３４、起動種別２３６を含んでいてもよい。ユーザID２１２は、ユーザを識別するための情報で、ユーザ名やシリアル番号、ユーザの端末の固定グローバルアドレス、DNSにエントリされた名前等であってもよい。サーバ識別ID２１４は仮想サーバまたは物理サーバに割り当てられたユニークなIDである。サーバ群ID２１６は、サーバの集合に対して割り当てられるIDである。大量のサーバを管理する場合、サーバは一台毎に離散して管理を行うよりも、L2またはL3スイッチに接続される単位や、サーバを格納するラック単位などで管理するのが適している。これは規模が大きくなると、内部通信で経由するスイッチ数や、経路のネットワーク帯域がボトルネックとなり、ネットワーク的に近くにある場合と遠くにある場合でアクセス性能が均質ではなくなるためである。また同じラックの中にあるサーバは電源装置を共有している場合があり、故障が発生した際など同じラックにあるとディザスタリカバリ構成を取っていても効果がない場合がある。この点からも、サーバをあるまとまった単位で管理することには効果が見込める。現サーバ群ID２１８は、ユーザID２１２が最後に利用したサーバ群ID２１６を格納する。インスタンスID２２０は、選択されたサーバ上で起動させるOSとアプリケーションのセットのIDを記載する。移動許可２２６は、サーバ識別ID２１４で割り当てられるサーバを別のサーバIDが示すサーバに変更してもよいかを示す。IPアドレス２２８はサーバ識別ID２１４に割り当てられるIPアドレスのセットを表す。IPアドレスはローカルに割り当てられるものとグローバルに割り当てられるものが一つ以上格納されていてもよい。MACアドレス２３０は、サーバ識別ID２１４が示すサーバに搭載された物理NICまたは仮想NICのMACアドレスが格納されてもよい。達成度２３４はサーバ指定フラグ１２０に基づく指定の結果、どのようにサーバが立ち上がったかを識別する情報を格納してもよい。起動種別２３６にはサーバが初回起動であるかどうかを表す情報が格納されてもよい。
【００２８】
サーバ群管理テーブル１１４はテーブルの要素として、サーバ群ID２４２、固定起動閾値２４４、優先起動閾値２４６、非優先起動閾値２４８、固定起動数２５０、優先起動数２５２、非優先起動数２５４を有していてもよい。サーバ群ID２４２は、テーブルの点取りがどのサーバ群に対応しているかを示す情報である。固定起動閾値２４４は、そのサーバ群で起動可能な他のサーバ群での起動を許可しないサーバ数を表す。優先起動閾値２４６はサーバの移動許可が与えられているサーバに対して、指定のサーバ群に対して起動を許可するサーバ数を表している。非優先起動閾値は、サーバの指定や移動許可の状態に関係なく起動可能なサーバ数を表している。固定起動数２５０は、現在起動している移動が許可されていないサーバの数、優先起動数２５２は現在起動している移動が許可されているがユーザからの選択によりサーバ群IDが指定されて起動している数、非優先起動数２５２は、ユーザの指示ではなく、サーバ群の空き状況により起動個所が指示されたサーバ数を表している。
【００２９】
グループ管理テーブル１１６はテーブルの要素として、グループID２６２、ユーザID２６４、基本設定２６６、個別設定２６８、サーバ群ID２７０を有していてもよい。グループ管理テーブル１１６は企業のように複数のユーザをまとめて管理したい場合に使われてもよい。その場合、グループID２６２は企業などのグループを識別するためのIDを格納してもよい。ユーザID２６４はグループIDに属するユーザIDを格納してもよい。基本設定２６６は、グループID２６２のこのユーザに対して設定される共通設定情報または共通設定情報を表すIDを格納してもよい。個別設定２６８はこのユーザ個別の設定を格納してもよい。サーバ群ID２７０は、このユーザがサーバを立ち上げる際に標準で割り当てられるサーバ群を表す識別子である。
【００３０】
図３は、サーバ起動時のユーザ管理装置１１０の動作を表すフローチャートである。ユーザ管理装置１１０は利用者端末１００よりユーザID１０２及びサーバ識別ID１０３及びサーバ指定フラグ１２０を受け取ると（３１０，３１２）、ユーザID１０２をキーにしてユーザ管理テーブル１１２から、同じユーザID２１２を有するエントリを検索する（３１４）。この時、ユーザ管理装置１１０は、ユーザ管理テーブル１１２内の、同じユーザID１０２を持つ全てのエントリを検索する。次に検索結果にエントリが一つでも含まれているかどうかを調べる（３１６）。この時、ユーザ管理装置１１０は、ユーザ管理テーブル１１２に格納されている全ての同じユーザIDを持つエントリを調べる。ユーザID１０２と同じユーザID１０２のエントリが存在しない場合、初回利用だと判断し、グループ管理テーブル１１６をユーザID１０２を用いて検索する（３３２）。次に検索結果にユーザID１０２が含まれているエントリが存在しているかどうかを調べる（３３４）。対応するユーザID１０２がない場合、ユーザID１０２を有するユーザが登録されていないと判断し、利用者端末１００に「グループ未登録」を表すエラーを送信する（３３６）。利用者端末１００はこのエラーを受け取った場合、この手続きとは別にグループにユーザを追加する処理を行なっても良い。ユーザが追加された場合、再び手続き３１０に戻りサーバ起動を開始してもよい。  手続き３３４でエントリが存在している場合、一致したエントリに格納されている基本設定２２６に基づき、ユーザ管理テーブル１１２に新しいエントリを登録する（３３８）。このときエントリに登録される情報に、ユーザID２１２、サーバ群ID２１６が含まれていても良い。登録が完了した場合、手続き６１０を実行する。手続き６１０の詳細は後述する。
【００３１】
手続き３１６でエントリが存在する場合、次に発見されたエントリ内をサーバ識別ID２１４を用いて検索する（３１８）。検索結果において一致するエントリかどうかを確認し（３２０）、存在しない場合、「サーバ未登録」を表すエラーを送信する。このとき利用者端末１００は、図7に示すサーバ登録フローチャートを実施する。サーバ登録フローチャートについては後述する。
【００３２】
手続き３２０において一致するエントリが存在する場合、サーバ指定フラグ１２０を調べ、固定起動かどうかを調べる（３２２）。固定起動でない場合、次にサーバ指定フラグ１２０が優先起動であるかどうかを調べる（３４２）。優先起動である場合、手続き４１０を実行し（３４４）、そうでない場合は非優先起動と見なして手続き５１０を実行する（３４６）。サーバ指定フラグ１２０に指定が成されていない場合、非優先起動と見なしてもよい。手続き４１０及び手続き５１０の詳細は後述する。
【００３３】
手続き３２２において固定起動である場合、ユーザ管理装置１１０はユーザ管理テーブル１１２の、手続き３１８において特定されたエントリにおいて、サーバ群ID２１６が現サーバ群ID２１８と等しいかどうかを判断する。ここでサーバ群ID２１６はそのユーザまたはグループに対してに割り当てられたサーバ群のIDであり、現サーバ群ID２１８は現在割り当てられているサーバ群のIDである。優先起動及び非優先起動においては、サーバ利用終了時に現サーバID２１８は消去されるが、前回の起動が固定起動である場合には、現サーバID２１８は消されずに残る。すなわち、サーバリソースは予約されたままになる。しかし、以前に固定起動を選んで成功していても、一度優先起動に移行した場合、次の固定起動が成功する保証はなくなる。手続き３２４においてID２１６及び２１８が一致しない場合、サーバ群管理テーブル１１４において固定起動閾値２４４が固定起動数２５０よりも大きいかどうかを調べる（３５０）。固定起動閾値２４４はそのサーバ群で予約しておくことが可能な仮想サーバの数を表し、固定起動数２５０は予約済みの仮想サーバの数になる。固定起動閾値２４４及び固定起動数２５０は、サーバ群の占有度を表す情報であり、固定起動閾値２４４とサーバ群に割り当て可能な仮想サーバ数とが一致する場合、サーバ群に属する全てのサーバはユーザと対応づけられ、ユーザが利用していない場合であってもそのリソースが他のユーザに割り当てられることはない。ただし、仮想サーバと物理サーバのマッピングについては、実施してもよいし、実施しなくてもよい。
【００３４】
手続き３５０において固定起動閾値２４４の方が大きい場合、エントリ内の固定起動数２５０を＋１する。また起動するサーバ群ID２１６を現サーバ群ID２１８とし（３５２）、手続き３２８に進む。そうでない場合、達成度２３４として、「固定起動において固定起動失敗」を格納し（３４８）、手続き３６０を実行しても良い。
【００３５】
ここで、一つのユーザIDに割り当て可能なサーバ群ID２１６は一つ以上であってもよい。手続き３５０においてサーバの確保が行えなかった場合、ユーザが属するグループの許可するサーバ群の範囲において別のサーバで起動しても良い。ただし、この制御を行なう場合、前回起動時と同じパフォーマンスが期待できなくなる可能性がある。この制御を行なうことを明示するために、サーバ指定フラグ１２０に準固定起動１２８を設けても良い。またこの制御を行なったことを明示するために、成功した場合は達成度２３４に「準固定起動において準固定起動成功」と登録し、サーバ群ID２１６と現サーバ群ID２１８を新たに起動したサーバID２１６と現サーバID２１８に変更しても良い。
【００３６】
手続き３２４においてサーバ群ID２１６と現サーバ群ID２１８が一致する場合、サーバ群ID２１６の示すサーバ群１５０に対して仮想サーバの起動を指示する（３２８）。
【００３７】
図1におけるサーバの起動手順の一例は以下の通りである。ユーザ管理装置１１０はDHCPサーバ１４０にIPアドレス及びMACアドレスの登録を行なう（１４２）。DHCPサーバはアドレス管理テーブル１４４に受信したMACアドレス１４６及びIPアドレス１４８を登録する。次にユーザ管理装置１１０はMACアドレス及びインスタンスIDを含む起動要求をサーバ群１５０に送信する（１５２）。サーバ群１５０は仮想サーバを起動し、その際にNICに送られてきたMACアドレスを登録する。次に送られてきたインスタンスID２２０をインスタンス管理サーバ１７０に送信し（１５６）、IDの指し示すインスタンスが格納されたストレージのアドレス又はディレクトリを返す（１７２）。ここでインスタンスとは、仮想サーバ上で起動するアプリケーションがインストールされた状態のOSのイメージである。OSのイメージは、利用する仮想化層の仕様に基づき物理サーバ上で動作するOSイメージに対して手の加えられた物であっても良い。また、インスタンス管理サーバ１７０にインスタンスID２２０からアドレスを問い合わせる手続きは、ユーザ管理装置１１０が行ない、手続き１５２においてインスタンスID２２０の代りにアドレスを送信しても良い。
【００３８】
サーバ群１５０は手続き１７２で受信したアドレスに基づきストレージ１８０からインスタンスを読み込み（１８２、１８４）、仮想サーバ上で動作させる。起動した仮想サーバはDHCPサーバ１４０にIPアドレスを問い合わせ（１５３）、割り当てられたIPアドレスを受信し、設定する（１５５）。最後にサーバ群１５０は起動完了通知をユーザ管理装置１１０に送信する（１５６）。ただしここで取り上げたサーバ起動の手続きは、サーバ指定フラグ１２０の働きに依存しない部分であり、上記手順に依存しないことはいうまでもない。
【００３９】
以上よりサーバが起動すると、ユーザ管理装置１１０は、ユーザ管理テーブル１２０の達成度２３４に「固定起動において固定起動成功」を表す情報を登録する（３３０）。登録後、ユーザ管理装置１１０は起動状態２３６に基づきサーバ初回起動であるかどうかを判断する（３５４）。起動状態２３６に何も記載がなければ、通常起動となる。サーバ初回起動でない場合、達成度２３４の情報を利用者端末１００に送信し、利用者端末１００はその情報を受信する（３６０，３９０）。またサーバ初回起動である場合、新規のサーバ識別ID２１４を作成し、ユーザ管理テーブル１１２に登録する。達成度２３４とサーバ識別ID２１４を含む情報を利用者端末１００に送信する。利用者端末１００は達成度２３４とサーバ識別ID２１４を含む情報を受信する。サーバ初回起動の場合は、このように起動後にサーバ識別IDが与えられるので、次回以降の接続はこのIDを用いて行なうことになる（３５６，３５８）。
【００４０】
図4は優先起動を行なう場合のフローチャートである。サーバ指定フラグ１２０が優先起動１２４である場合、ユーザ管理装置１１０はサーバ群ID２１６を用いてサーバ群管理テーブル１１４から該当するエントリを検索する（４１２）。該当するエントリが見つかった後、エントリ内の優先起動閾値２４６が優先起動数２５２よりも大きいかどうかを判断する（４１４）。この条件を満たさない場合、ユーザ管理装置１１０はサーバ群管理テーブルに含まれる他のサーバ群を検索する（４２２）。そして同様に、エントリ内の非優先起動閾値２４８が非優先起動数２５４よりも大きいかどうかを判断する（４２４）。この条件を満たさない場合、手続き４２２に戻る。ここで優先起動閾値２４６及び優先起動数２５２を用いないのは、優先起動が同じサーバ群を利用するグループに対して優先的に割り当てるものとしているためであるが、サーバ群とグループの相関が希薄なシステムにおいては、優先起動閾値２４６及び優先起動数２５２を、もしくは非優先起動閾値２４８及び非優先起動数２５４を併せて判断対象とする物であっても良い。手続き４２４の条件を満たす場合、エントリ内の非優先起動数２５２を＋１し（４２６）、対象サーバ群に対して仮想サーバの起動を指示する（４２８）。サーバ起動後は達成度２３４として「優先起動において非優先起動成功」を格納し、現サーバ群ID２１８を起動したサーバ群IDとしてあと（４３０）、手続き３５４以下を実行する（４４０）。
【００４１】
手続き４１４の条件を満たす場合、エントリ内の優先起動数２５２を＋１し（４１６）、サーバ群ID２１６のサーバ群１５０に対して仮想サーバの起動を指示する（４１８）。起動後、達成度２３４として「優先起動において優先起動成功」を格納し、現サーバ群ID２１８を起動したサーバ群IDとして（４２０）、３５４以下を実行する（４４０）。
【００４２】
図5は非優先起動を行なう場合のフローチャートである。サーバ指定フラグ１２０が非優先起動１２６である場合、ユーザ管理装置１１０はサーバ群ID２１６を用いてサーバ群管理テーブル１１４を検索する（５１２）。次に検索結果のエントリに対して非優先起動閾値２４８が非優先起動数２５４よりも大きいかどうかを調べる（５１４）。この条件を満たさない場合、ユーザ管理装置１１０は別のサーバ群を検索し（５２２）、検索された別のサーバ群に対して手続き５１４を実行する。検索する別のサーバ群に関わる条件としては、最初に検索したサーバ群とネットワーク距離が近いものを選択することが望ましい。
【００４３】
手続き５１４の条件を満たす場合、エントリ内の非優先起動数２５２を＋１し（５１６）、対象のサーバ群に対して仮想サーバの起動を指示する（５１８）。サーバが起動した後、達成度２３４として「非優先起動において非優先起動成功」を登録し、現サーバ群ID２１８として起動したサーバ群IDを登録し（５２０）、手続き３５４以下を実行する（５３０）。
【００４４】
図6は、最初にユーザが利用する場合のフローチャートである。ユーザ管理装置１１０は、手続き３３８において基本となるユーザのエントリを登録した後、利用者端末１００に対してこれが初回立ち上げである旨を通知する（６１２）。利用者端末１００はその要求を受信すると（６８０）、インスタンスID６１２及び個別設定６１４を含む情報をユーザ管理装置１１０に送信する（６８２）。ここで個別設定６１４としては、ファイヤーウォールなどのセキュリティ設定や、固定IPアドレスとして運用したいかどうかの区別、立ち上げるサーバの能力や性能に関する情報等が含まれても良い。ユーザ管理装置１１０は情報６１２及び６１４を含む情報を受け取ると（６１４）、ユーザ管理テーブル１１２にそれらの情報の登録を行なう（６１６）。ここでは、一度ユーザのエントリを登録した後で起動するインスタンスのIDや個別設定を送信することとしているが、手続き３１０で送るデータからサーバ識別ID２１４を省き、インスタンスID６１２及び個別設定６１４を含むデータを送ることで1パスでのサーバ機能を実現する仕組みであってもよい。いずれの場合も、サーバ指定フラグ１２０の用法に差異はないことから、このプロトコルの差異が問題とならないことは言うまでもない。
【００４５】
手続き６１６の後、ユーザ管理装置１１０は起動種別２３６にサーバ初回起動を表す情報を格納する（６１７）。この後、ユーザ管理装置１１０はサーバ指定フラグ１２０が固定起動かどうかを判断する（６１８）。この条件を満たさない場合は手続き３４２以下を実行する。この条件を満たす場合、ユーザ管理装置１１０は、固定起動閾値２４４が固定起動数２５０より大きいかどうかを判断する（６２０）。この条件を満たさない場合、達成度２３４として「固定起動において固定起動失敗」を格納し（６３４）、新規サーバ識別ID２１４を作成してユーザ管理テーブル１１２い登録する。また達成度２３４とサーバ識別ID２１４を含む情報を利用者端末１００に送信する（６５０）。利用者端末１００は達成度２３４とサーバ識別ID２１４を含む情報を受信する（６５２）。
【００４６】
手続き６２０の条件を満たす場合、ユーザ管理装置１１０はエントリ内の固定起動数２５０を＋１し（６２２）、サーバ群ID２１６のサーバ群１５０に対して仮想サーバの起動を指示する（６２４）。仮想サーバの起動後、達成度２３４として「固定起動において固定起動成功」を登録し、現サーバ群ID２１８を起動したサーバ群のIDとし（６２６）、手続き６５０以下を実行する。
【００４７】
図7は既にユーザエントリはあるが、初回のサーバ起動が未実施の場合のフローチャートである。利用者端末１００はユーザ管理装置１１０に対してユーザID１０２、インスタンスID７１２、サーバ指定フラグ１２０を送信する（７１０）。ユーザ管理装置１１０はそれらの情報を受信すると（７１２）、ユーザID１０２を用い、ユーザ管理テーブル１１２を検索する（７１４）。検索の結果に対して、エントリが存在するかどうかを調べ（７１６）、条件を満たさない場合は手続き３３２以下を実行する（７２２）。
【００４８】
手続き７１６の条件を満たす場合、ユーザ管理テーブル１１２にインスタンスID７１２を登録し（７１８）、ユーザ管理テーブル１１２の起動種別２３６に「サーバ初回起動」を表す情報を設定し（７２０）、手続き６１８以下を実行する（７２４）。
【００４９】
図8はサーバの利用を終了する場合のフローチャートである。サーバ利用を終了する場合、利用者端末１００はユーザID１０２及びサーバ識別ID１０３及びサーバ停止要求をユーザ管理装置１１０に送信する（８１０）。ユーザ管理装置１１０は、それらの情報を受け取ると（８１２）、ユーザID１０２及びサーバ識別ID１０３を用い、ユーザ管理テーブル１１２を検索する（８１４）。この検索結果に対してエントリが存在するかどうかを調べ（８１６）、存在しない場合は利用者端末１００へ「サーバ不定」の情報を含むエラーを返す（８３０）。手続き８１６の条件が満たされている場合、ユーザ管理装置１１０は、対象のサーバを終了し（８１７）、エントリ中の達成度２３４を調べ、固定起動が成功しているかどうかを判断する（８１８）。この条件を満たしている場合、ユーザ管理装置１１０はユーザ管理テーブル１１２上の達成度２３４及び起動種別２３６をクリアし（８２０）、サーバ終了通知を利用者端末１００に送信する（８６０）。利用者端末１００はこの通知を受け取り、サーバ終了が完了したことを判断する（８７０）。
【００５０】
手続き８１８において条件を満たさない場合、次に達成度２３４が優先起動に成功しているかどうかを判断する（８２４）。この条件を満たしている場合、ユーザ管理テーブル１１２上の現サーバID２１８、達成度２３４、起動種別２３６をクリアし（８２６）、次いでサーバ群管理テーブル１１４上の優先起動数２５２を−１する（８２８）。この後、サーバの終了を通知するために手続き８６０以下を実行する。
【００５１】
手続き８２４において条件を満たさない場合、次に達成度２３４が非優先起動に成功しているかどうかを判断する（８４０）。この条件を満たさない場合、ユーザ管理装置１１０は利用者端末１００に対して「サーバ未起動」の情報を含むエラーを返す（８５０）。
【００５２】
手続き８４０の条件を満たしている場合、ユーザ管理テーブル１１２上のユーザ管理装置１１０は現サーバID２１８、達成度２３４、起動種別２３６をクリアし（８４２）、サーバ群管理テーブル１１４上の非優先起動数を−１する（８４４）。この後、サーバの終了を通知するために手続き８６０以下を実行する。
【００５３】
以上のように、サーバ起動時にサーバ指定フラグ１２０を送り、それをユーザ毎に設定された情報とサーバ群毎に設定された情報を利用し、起動種別に応じた上限の閾値と現在の実行数の差により、立ち上げの可否を判断することでユーザ管理装置１１０のような複数のサーバ群を制御する装置とサーバ群の間でサーバやネットワークの負荷に関する情報を通信することなくサーバの割り当て制御が行なえ、かつそれはユーザ数が増大した場合においてもユーザの利用目的を損なう事無く運用が可能になるという効果がある。また、達成度２３４として利用者端末１００から送信されたサーバ指定フラグ１２０と起動後の結果を保持することで、サーバ終了時にどのサーバのリソースを解放するかを管理可能とするほかに、達成度２３４を起動後に利用者端末１００に通知することで、利用者端末１００は意図通りに起動できたかどうかを知ることが出来る。利用者端末１００はこの情報を元にして、意図しない起動の場合にはサーバ指定フラグ１２０の指定を変えるなどして、別の起動を試みることが出来る。
【００５４】
このシステムにおいて、ユーザ管理装置１１０は達成度２３４で「優先起動において非優先起動成功」の場合で、起動後に優先起動したいサーバ群に空きが生じた場合、その旨を利用者端末１００に通知しても良い。また移動許可２２６が有効の場合は、自動的にサーバの移行を行ない、達成度２３４を「優先起動において優先起動成功」に変更しても良い。また移動許可２２６が有効の場合で非優先起動で起動している場合、サーバの負荷に応じてサーバの移行を行なっても良い。サーバの負荷に応じた移行には２つの種別があり、一つはサーバ台数集約のために集める場合と、負荷分散のために余り使われていないサーバに移行する場合がある。いずれの場合もユーザ管理装置１１０は、現在のポリシーを実行するかどうかを判断するために移動許可２２６を利用しても良い。
【００５５】
また、ユーザ管理装置１１０とサーバ群１５０は、固定起動閾値２４４と固定起動数２５０の差が大きい状態が続く場合、固定起動閾値２４４を減らし、優先起動閾値２４６または非優先起動閾値２４８を増加させてもよい。また、一つのサーバ群内で計算機の性能やメモリの容量等に差がある場合、それぞれの種別に応じた固定起動閾値２４４または優先起動閾値２４６または非優先起動閾値２４８を設けても良い。
【００５６】
また、利用者端末１００は、ユーザID１０２とサーバ識別ID１０３に加え、ユーザ管理テーブル上の該当するエントリを消去するために、エントリ削除の要求を送信してもよく、ユーザ管理装置１１０は要求に基づきエントリを削除しても良い。
【００５７】
また、利用者端末１００は、ユーザID１０２とサーバ識別ID１０３に加え、ユーザ管理テーブル上の該当するエントリを変更するために、エントリ変更の要求及び変更内容に関わる情報を送信してもよく、ユーザ管理装置１１０は要求に基づきエントリを変更しても良い。
【００５８】
また利用者端末１００からユーザ管理装置１１０へ流れるデータは盗聴防止のために暗号化してもよく、また完全性保護のために署名を付与しても良い。また手続き３１０等の情報を送信する前に、利用者端末１００の認証を行なっても良い。
【００５９】
本発明における第２の実施例は、サーバ指定フラグ１２０及び達成度２３４を用いた課金制御システムである。第１の実施例において説明したように、利用者端末１００はサーバ指定フラグ１２０を利用することで、利用目的にあった起動を行なうことが出来る。ただし、システムに運用者にとっては、固定起動はサーバ群のリソースを占有するものであり、非優先起動はサーバ群のリソースの空きを有効活用するためのものとなる。したがってこの両者の運用コストは自ずと異なる物になることから、利用者端末１００に対してコストに応じた制御を行ないたい場合がある。例えば、企業の情報部門が本システムを運用する場合には、企業内の他の部門よりリソースの割り当ての要求を受けるが、固定起動を行ないたいサーバと非優先起動でもよいサーバとに分けて利用時間に応じて部門間決済を行なう、という仕組みが考えられる。またクラウドコンピューティングサービスとして他者や一般ユーザに対してサービスを提供する場合に、起動種別に応じて課金を行なう、と言う仕組みが考えられる。
【００６０】
図１において、ユーザ管理装置１１０は、サーバ起動後（手続き３２８、４１８，５１８、６２４終了後）に課金サーバ１３０に対してユーザID１０２及び達成度２３４を送り（１３２）、課金を開始する。またサーバ終了後（手続き１８７終了後）に同じくユーザID１０２及び達成度２３４を送り（１３３）、課金を終了する。課金サーバ１３０は、ユーザ管理装置１１０から送られてきた達成度２３４を内容に応じて個別のカウンタで管理し、起動時にカウンタを増加させ、終了時に減算させてもよい。カウンタの数は単位時間あたりの課金額に乗じる数となり、単位時間毎にこの和を加算することで課金額としても良い。ユーザ管理装置１１０が課金サーバ１３０に送信する情報にサーバ識別ID２１４を追加することで、サーバ毎の利用時間を個別に管理して課金を行なう仕組みであっても良い。また、この時に送信するユーザID１０２の代りに、グループID２６２を送付しても良い。
【００６１】
このように起動種別に応じて課金額を変えることで、サーバを利用目的に応じて分けることができる。例えば固定起動を一時間あたり５０円、年間の占有契約料が１万円とし、非優先起動を一時間あたり２０円というようなある程度の差を設けた値付けで運用する場合、利用者端末１００はミッションクリティカルが要求される用途にだけ固定起動を行ない、それ以外は非優先起動で済まそうと考えるかもしれない。このとき、運用者は、固定起動を求める利用者端末１００に対しては高い値付けで課金でき、非優先起動を求める利用者端末１００に対しては、サーバ集約による効率的な運用が可能になる。またサーバ管理テーブル上の固定起動閾値２４４と非優先起動閾値２４８を利用トレンドに応じて増減させることで、システム構成に関わるリスクを低減させると共に、ホスティングサービスからクラウドサービスへの移行をシームレスに行えるという効果がある。
【００６２】
また、グループやユーザの種別に応じて、サーバ指定フラグ１２０によらず、常に固定の起動タイプで運用する仕組みであっても良い。この時、サーバ指定フラグ１２０は省略しても良い。
【００６３】
以上のように、本発明の実施形態によれば、一台一台の処理性能の安定性を重要視するユーザは占有を指定することで安定した性能を獲得でき、そうでないユーザは非占有を指定することで、管理者は空いているサーバのリソースを活用することができる。また、占有を指定した場合と非占有を指定した場合のユーザが支払うコストを達成度に応じて差をつけることで、占有を希望するユーザと非占有を希望するユーザに分けることができ、物理サーバと仮想サーバの割り当て管理を単純化することができる。
【符号の説明】
【００６４】
１００…利用者、１１０…ユーザ管理装置１１０、１１２…ユーザ管理テーブル、１１４…サーバ群管理テーブル、１１６…グループ管理テーブル、１３０…課金サーバ、１５０…サーバ群。
【図１】
2011002975.tif 000003
【図２】
2011002975.tif 000004
【図３】
2011002975.tif 000005
【図４】
2011002975.tif 000006
【図５】
2011002975.tif 000007
【図６】
2011002975.tif 000008
【図７】
2011002975.tif 000009
【図８】
2011002975.tif 000010
【図９】
2011002975.tif 000011