(57)【要約】仮想クランアントシステムにおける物理サーバのリソースの有効活用を達成する、コンピュータシステムを提供する。  本発明は、仮想クライアントシステムにおいて、仮想マシンの稼働情報を獲得し、仮想マシンにユーザがログオンしているかといったアクセス情報を獲得し、接続情報からユーザが仮想マシンを使用しているか否かを判定し、仮想マシンが使用するリースの容量から、起動しているもののユーザがアクセスしていない仮想マシンの容量を算出し、ユーザが使用している仮想マシンとそれ以外の仮想マシンを識別する。
2010109681.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザコンピュータが接続する第１のサーバコンピュータと、
前記第１のコンピュータに前記複数のユーザコンピュータを割り当てる第２のサーバコンピュータと、
前記第１のサーバコンピュータの資源を管理する第３のサーバコンピュータと、を備えるコンピュータシステムであって、
前記第１のサーバコンピュータは、
制御及び／又は記憶処理を実現するためのリソースと、
このリソースを共有する複数の仮想マシンを形成する仮想マシン提供プログラムからなる仮想化機構と、
前記複数の仮想マシンと前記複数のユーザコンピュータとの間の割り当て情報に基づいて、前記複数の仮想マシンのそれぞれに前記割り当てられたユーザコンピュータからの入力情報に対する処理を行い、その処理に伴う情報を前記ユーザコンピュータに提供する演算装置と、を備え、
前記第３のサーバコンピュータは、
起動中の前記仮想マシンを判別する第１の処理と、
起動中の前記仮想マシンに対して前記ユーザコンピュータからのアクセスがあるか否かを判別する第２の処理と、
前記第１及び第２の処理結果から、起動中ではあるものの前記ユーザコンピュータからのアクセスがない前記仮想マシンを判別する第３の処理と、
前記リソースの容量のうち、前記第３の処理によって判別された仮想マシンが利用している容量を求める第４の処理と、
前記第４の処理結果を出力する第５の処理と、
を実行する、コンピュータシステム。
【請求項２】
前記第３のサーバコンピュータは、
前記仮想マシンの起動の有無に対応する情報と、前記仮想マシンにログオンしているユーザと、前記仮想マシンの識別情報と、前記仮想マシンが利用している前記リソースの容量と、が記録されたテーブルを有し、
前記第３の処理として、前記テーブルを参照して、起動中であって、前記ログオンユーザが設定されていない仮想マシンを取得し、
前記第４の処理として、この仮想マシンから利用している前記リソース容量を取得することを行い、
さらに、前記第１のサーバの前記リソースの利用量を取得する第６の処理を行い、
前記第４の処理によって求められた容量を、前記ユーザコンピュータに利用されていない空き容量として、起動中であって、前記ログオンユーザＩＤが設定されていない仮想マシンとともに表示装置に出力し、
前記第６の処理によって求められた容量から前記第４の処理によって求められた容量を減じた容量を、前記リソースに対する実利用量として前記表示装置に出力し、
前記仮想マシンはエージェントプログラムを備え、このエージェントプログラムがリソース利用量と、前記ログオンユーザＩＤを前記第３のサーバコンピュータに通知する、請求項１記載のコンピュータシステム。
【請求項３】
前記第３のサーバコンピュータは、
前記仮想マシンの起動の有無に対応する情報と、前記仮想マシンのＩＤと、前記仮想マシンが利用している前記リソースの容量と、前記仮想マシンに対する前記ユーザコンピュータのログオン時刻とログオフ時刻と、が記録されたテーブルを有し、
前記第３の処理として、前記テーブルを参照して、起動中であって、前記ユーザコンピュータからのログオフされている仮想マシンのＩＤを取得し、
前記第４の処理として、このＩＤを持った仮想マシンが利用している前記リソース容量を取得し、
さらに、前記第１のサーバの前記リソースの利用量を取得する第６の処理を行い、
前記第４の処理によって求められた容量を、前記ユーザコンピュータに利用されていない空き容量として、起動中であって、前記ユーザコンピュータからログオフされている仮想マシンのＩＤとともに表示装置に出力し、
前記第６の処理によって求められた容量から前記第４の処理によって求められた容量を減じた容量を、前記リソースに対する実利用量として前記表示装置に出力
する、請求項１記載のコンピュータシステム。
【請求項４】
前記第３のサーバコンピュータは、前記仮想マシンへの前記ユーザコンピュータからのアクセスの有無を、前記仮想コンピュータへの前記ユーザコンピュータからのログオンの有無に基づいて判別する、請求項１記載のコンピュータシステム。
【請求項５】
前記第３のサーバコンピュータは、前記仮想マシンへの前記ユーザコンピュータからのアクセスの有無を、前記仮想マシンと前記ユーザコンピュータとの間のコネクションの確立の有無で判別する、請求項１記載のコンピュータシステム。
【請求項６】
前記第３のサーバコンピュータは、前記仮想マシンへの前記ユーザコンピュータからのアクセスの有無を、前記ユーザコンピュータからの前記仮想マシンに対するプロセス数に基づいて判別する、請求項１記載のコンピュータシステム。
【請求項７】
前記第３のサーバコンピュータは、前記プロセス数がゼロである場合に、前記仮想マシンへの前記ユーザコンピュータからのアクセスが無いと判別する請求項６記載のコンピュータシステム。
【請求項８】
前記リソースは前記記憶処理を行うメモリである、請求項２記載のコンピュータシステム。
【請求項９】
複数のユーザーコンピュータが利用する複数の仮想マシンを提供する第１のサーバコンピュータを管理する管理サーバであって、
前記管理サーバは、
前記第１のサーバコンピュータと通信するインターフェースと、
前記第一のサーバコンピュータの管理情報を出力する出力装置と、
前記複数の仮想マシンが使用する前記第１のサーバコンピュータのリソースの容量を示すリソース使用量管理情報を格納する第１のメモリと、
演算装置と、
を有し、
前記演算装置は、前記インターフェースを介して前記複数の仮想マシンにアクセスすることで起動中の前記仮想マシンを特定し、前記特定した起動中の前記仮想マシンから、前記ユーザコンピュータからのアクセスがない起動中の仮想マシンを判別し、
前記演算装置は、前記リソース使用量管理情報に基づいて、前記リソースの容量のうち、判別したアクセスのない起動中の仮想マシンが利用している容量を求め、前記表示装置に、前記アクセスのない起動中の管理マシンが利用している容量を管理情報として表示させる、
ことを特徴とした管理サーバ。
【請求項１０】
請求項１０記載の管理サーバであって、
前記リソースは、前記第１のコンピュータが有し、前記複数の仮想マシンを提供するために用いられる第２のメモリであって、
前記演算装置は、前記第２のメモリの容量と、前記仮想マシンと前記仮想マシンを提供するために前記第１のコンピュータが有する仮想化提供プログラムが使用するメモリの容量を前記出力装置に表示する、
ことを特徴とした管理サーバ。
【請求項１１】
複数の仮想マシンを備え、各仮想マシンにユーザコンピュータがアクセスし、このユーザコンピュータに対して演算処理機能を提供し、前記複数の仮想マシンは前記処理機能を実現するためのリソースを共有するコンピュータシステムの前記リソースの管理方法であって、
前記複数の仮想マシンの各々について、この仮想マシンが起動しているか否かを判別する第１の処理と、
前記複数の仮想マシンの各について、前記ユーザコンピュータがアクセスしているか否かを判別する第２の処理と、
前記第１の処理と前記第２の処理の結果に基づいて、起動しているものの前記ユーザコンピュータからアクセスが無い仮想マシンを判別する第３の処理と、
前記第３の処理によって判別された仮想マシンが利用する前記リソース容量を、管理者に対して、他のユーザコンピュータがアクセスしている仮想マシンに割り当てることができる余剰リソース量として報知する、コンピュータシステムのリソース管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想マシンを備え、仮想マシンがユーザ端末から要求された処理を行い、処理結果の画面情報ユーザ端末に提供するコンピュータシステムに関するものである。
【背景技術】
【０００２】
従来から、ユーザのコンピュータで稼働していたオペレーションシステム、アプリケーションプログラムを、サーバマシンの仮想マシンにおいて実行する仮想クライアントシステムが存在する。仮想クライアントシステムを実現するために、サーバコンピュータは、ホストＯＳ上にハードウエアをエミュレーションする環境をマウントし、仮想ハードウエアの上で仮想マシンのゲストＯＳを動作させる。
仮想クライアントシステムでは、ユーザ端末からの入力情報に基づいて、仮想マシンが情報処理を行い、仮想マシンの画面出力情報をそのままユーザ端末に転送し、ユーザ端末で出力する。仮想クライアントシステムの形態として、ユーザが、ネットワーク経由で仮想マシンにリモートアクセスし、仮想マシンの環境やアプリケーションを適宜設定することができるものがある。この種のシステムは、仮想デスクトップシステムとして知られている。
ユーザに仮想デスクトップ環境を実現する場合、複数台の物理サーバ上にユーザ数に応じた仮想マシンを用意する必要がある。１台のサーバあたりの仮想マシン数は物理サーバのリソースや、仮想マシン毎のリソース使用状況に影響されるので、管理者は物理サーバの構築や仮想マシンの配置を行う上で、リソースの使用状況を知る必要がある。
複数のサーバに仮想マシンを最適に配置するために、物理サーバのリソースの使用状況を参照する従来例として、特許３８６１０８７号公報に開示された仮想マシン管理装置が存在する。
また、仮想マシンが行う処理の一部を、他の仮想マシンのリソースを利用して行う仮想化システムであって、リソースの使用量を管理する際、仮想マシン単位だけでなく、仮想マシン間の依存関係を考慮して、仮想マシンが使用するリソース使用量を算出する従来例として、特開２００８−２１７３３２号公報に記載のものが存在する。
なお、利用者数よりコンピュータリソース数が少ない環境で効率的にコンピュータリソースを利用者に割り当てるために、コンピュータリソースの利用状態を監視する手段、ユーザの属性およびコンピュータリソースの属性に応じて解除の可否の条件を登録する手段を備え、全てのコンピュータリソースが割り当てられている状態であらたな割当要求があった場合、利用状態、解除の可否の条件に応じて、活用されていないコンピュータリソースを特定し、解除して、割り当てるシステムが、特開２００７−１８８２０８号公報に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許３８６１０８７号公報
【特許文献２】特開２００８−２１７３３２号公報
【特許文献３】特開２００７−１８８２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数の仮想マシンが物理サーバのリソースを共有する仮想デスクトップ環境では、仮想マシンが起動していても、ユーザが仮想マシンに接続していないことがある。これでは、物理サーバのメモリが、ユーザが接続していない仮想マシンによって消費されてしまうなど、物理サーバのリソースが有効に利用されていないことになる。
従来技術は、物理サーバのリソースを仮想マシンが活用している状況に基づいて、物理サーバに仮想マシンを最適に配置することを目的とするものの、起動していながらユーザが接続されていない仮想マシンを判別していないため、仮想デスクトップシステムにおいて、仮想マシンに物理サーバのリソースを最適に利用させるものではなかった。
そこで、この発明は、仮想マシンに物理サーバのリソースを最適に利用させることに役立つ情報を提供することによって、仮想クランアントシステムにおける物理サーバのリソースの有効活用を達成するコンピュータシステム、コンピュータシステムのリソース資源管理サーバ、及びコンピュータシステムのリソース管理方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、仮想クライアントシステムにおいて、仮想マシンの稼働情報を獲得する手段と、仮想マシンにユーザがログオンしているかといったアクセス情報を獲得する手段と、接続情報からユーザが仮想マシンを使用しているか否かを判定する手段と、仮想マシンが使用するリースの容量から、起動しているもののユーザがアクセスしていない仮想マシンの容量を算出する手段と、を備え、ユーザが使用している仮想マシンとそれ以外の仮想マシンを識別して、この情報を提供するようにしたことを特徴とするものである。
【発明の効果】
【０００６】
本発明によれば、仮想マシンに物理サーバのリソースを最適に利用させることに役立つ情報を提供することによって、仮想クランアントシステムにおける物理サーバのリソースの有効活用を達成するコンピュータシステム、コンピュータシステムのリソース資源管理サーバ、及びコンピュータシステムのリソース管理方法を提供すことができる。
【図面の簡単な説明】
【０００７】
図１は、本発明のコンピュータシステムの一例を示すハードウエアブロック図である。
図２は、資産管理サーバのリソース使用量管理プログラムの機能モジュール構成を示すブロック図である。
図３は、資産管理サーバが有する、仮想マシンの情報として保持する構成情報の一例を示すテーブルである。
図４は、リソース使用量の管理テーブルである。
図５は、資産管理サーバが図４の各仮想マシンの使用量から空き容量等を算出するフローチャートである。
図６は、資産管理サーバが保持するメモリ使用量管理テーブルである。
図７は、資産管理サーバが出力する画面情報の一例である。
図８は、資産管理サーバがエージェントプログラムから入手した情報を登録するテーブルである。
図９は、管理サーバが図８のテーブルを参照して仮想マシンが利用するリソース量を算出するフローチャートである。
図１０は、資産管理サーバが、ユーザ端末と仮想マシンとの間のコネクションの状態を加味して、仮想マシンの実質的に使用するリソース量を算出するためのフローチャートである。
図１１は、資産管理サーバの処理の変形例を示すフローチャートである。
図１２は、ユーザプロセス数を利用する資産管理サーバの処理を説明するフローチャートである。
図１３は、ユーザによって、一定期間使用されていない仮想マシンを、遊休仮想マシンとしてユーザに提示する際に参照される管理テーブルである。
図１４は、仮想マシンに物理サーバのリソースを最適に利用させる、コンピュータシステムのブロック図である。
【符号の説明】
【０００８】
１０１  デスクトップサーバ
１０２  資産管理サーバ
１０３  デスクトップ割当サーバ
１０４  ユーザ端末
１０５  ストレージ装置
１０６  リモートアクセス用ネットワーク
１０７  管理用ネットワーク
１１５  仮想マシン
１１６  仮想化機構
１１７  リソース使用量管理プログラム
１１８  画面転送プログラム
【発明を実施するための形態】
【０００９】
以下に本発明を説明する。なお、以後の説明では「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等の表現にて本発明の情報を説明するが、これら情報は、必ずしもテーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等について「ｘｘｘ情報」と呼ぶことがある。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはＣＰＵ（プロセッサと呼ぶことがある）によって実行されることで定められた処理をメモリ及び通信ポート（ネットワークインターフェース）を用いながら行うため、ＣＰＵを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等のコンピュータ、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
また、各種プログラムはプログラム配布サーバや記憶メディアによって各コンピュータにインストールされてもよい。
図１は、本発明のコンピュータシステムの一例を示すハードウエアブロック図である。このコンピュータシステムは、一つ又は複数の仮想マシンを実行するデスクトップサーバ１０１と、ユーザ毎にデスクトップ環境データを保持するストレージ装置１０５、デスクトップサーバの仮想マシンにネットワーク経由でリモートから接続し、ユーザが操作する端末１０４と、ユーザへの仮想マシンの割り当てを管理するデスクトップ割当管理サーバ１０３と、仮想マシンがデスクトップサーバのリソースを使用している量を管理する資産管理サーバ１０２とを備えている。リスースとは、制御処理／記憶処理を行うハードウエア又はソフトウエア資源であり、特に、ディスクトップサーバのメモリである。なお、ストレージ装置１０５が提供する記憶領域についても、リソースとして管理することを適用可能である。また、デスクトップ環境データとは、デスクトップに表示する壁紙やアイコン、スクリーンセーバの設定などデスクトップ環境に関する設定情報を示す。どの仮想マシンを利用しても同じ設定情報をロードすることでユーザは同じデスクトップ環境で作業することができる。
符号１０６は、デスクトップサーバ１０１とユーザ端末１０４とデスクトップ割当管理サーバ１０３とを接続するネットワークである。符号１０７は、デスクトップサーバ１０１とストレージ装置１０５と資産管理サーバとを接続するネットワークである。
デスクトップサーバ１０１は、メインメモリ１１１と、ハードディスクなどの２次記憶装置と、演算装置（ＣＰＵ）１１０と、ユーザ端末１０４、デスクトップ割当管理サーバ１０３、資産管理サーバ１０２と通信するためのネットワークインタフェース１１３と、操作端末（キーボード、マウス）、出力装置（デスプレイ）との間の入出力を制御する入出力インターフェース１１２とを備えている。
符号１１６は、ＣＰＵやメモリといったリソースを仮想マシンにスケジューリングする仮想化機構である。仮想化機構はデスクトップサーバのホストＯＳ上で実行されるものであり、仮想マシン提供プログラム（これを仮想化機構プログラムいうこともある。）から成る。仮想マシン１１５のゲストＯＳは仮想化機構上で稼働する。複数の仮想マシンがリソースを共有している。仮想マシン提供プログラムの一部または全てを、ハードウェア（仮想マシン提供プロセッサ）によって大体されてもよい。
メモリ１１１には、仮想マシン提供プログラムと、仮想マシン１１５のゲストＯＳがロードされている。ＣＰＵ１１０はこれらプログラムを実行することにより、デスクトップサーバに仮想マシンを実現する。なお、仮想化機構は、ホストＯＳ上ではなく、ハードウェア上で直接動作するものであってもよい。
仮想マシンは個々のユーザに割り当てられている。ユーザデータ領域は、デスクトップサーバ１０１内の二次記憶装置１１４、又はストレージ装置１０５に確保されている。ユーザが使用するＯＳ、アプリケーションプログラムも同様である。
資産管理サーバ１０２は、ＣＰＵ１０２Ｂと、メモリ１０２Ｃと、ネットワークインタフェース１０２Ｄと、入出力インターフェース１０２Ａと、二次記憶装置１０２Ｅと、を備えている。メモリ１０２Ｃには、リソース使用量管理プログラム１１７がロードされ、ＣＰＵ１０２Ｂによって仮想マシン１１５が利用するリソース量の管理が実行される。
ユーザ端末１０４は、キーボードやマウス等のユーザインターフェースデバイスおよびディスプレイを備えるコンピュータであり、ＣＰＵ１０４Ｂ、メモリ１０４Ｃ、ネットワークインターフェース１０４Ａ、入出力インターフェース１０５Ｄを備えている。
図１は、二次記憶装置を持たないシンクライアント端末を示しているが、二次記憶装置を持つ端末でもよい。ＣＰＵ１０４Ｂは、画面制御プログラム１１８を実行する。ＣＰＵ１０４Ｂは、仮想マシン１１５から画面情報を受信してディスプレイへ出力する処理や、入力インターフェースを介してマウス、キーボードから入力された情報を仮想マシンへ送信する処理を行う。
デスクトップ割当管理サーバ１０３は、資産管理サーバと同様な構造を持っている。デスクトップ割当管理サーバ１０３は、デスクトップサーバの仮想マシンをユーザに割り当てる割当管理プログラムを実行する。割当管理プログラムは、ユーザへの仮想マシンの割り当てと仮想マシンの起動を行うようにデスクトップサーバ１０１を制御する。
仮想マシンのユーザへの割り当てについては、ユーザに同じ仮想マシンを割り当てる固定割当方法と、ユーザが仮想マシンを使用する都度、他のユーザによって使用されていない仮想マシンを割り当てる動的割当方法がある。デスクトップ割当管理サーバ１０３は、仮想マシンをどのユーザに割り当てているかの管理情報を有している。
ユーザは、先ず、デスクトップ割当管理サーバ１０３に接続し、これに仮想デスクトップシステムを使用する要求を送信する。デスクトップ割当管理サーバ１０３がデスクトップサーバ１０１にアクセスすると、デスクトップサーバ１０１のＣＰＵ１１０は仮想マシンを起動する。デスクトップ割当管理サーバ１０３は、ユーザ端末１０４に、仮想マシンにユーザ端末が接続するための情報であるＩＰアドレを応答として通知する。この応答を受けたユーザ端末１０４は、デスクトップサーバの目的とする仮想マシン１１５に接続して仮想マシンを使用する。
なお、資産管理サーバとデスクトップ割当管理サーバとデスクトップサーバの一つ以上または全ての機能を同じコンピュータが果たしても良い。例えば、資産管理サーバとデスクトップ割当管理サーバの機能を有するコンピュータとして管理サーバがある場合等が該当する。
管理サーバが有する入出力インターフェースは例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外の装置であってもよい。また、入出力インターフェースの代替としてシリアルインターフェースやイーサーネットインターフェースを入出力装置とし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用コンピュータを接続し、表示用情報を表示用コンピュータに送信したり、入力用情報を表示用コンピュータから受信することで、表示用コンピュータで表示を行ったり、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。また、端末が表示用コンピュータであってもよい。
以後、コンピュータシステムを管理し、本願発明の表示用情報を表示する一つ以上のコンピュータの集合を管理システムと呼ぶことがある。管理サーバが表示用情報を表示する場合は管理サーバが管理システムである、また、管理サーバと表示用コンピュータの組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数のコンピュータで管理サーバと同等の処理を実現してもよく、この場合は当該複数のコンピュータ（表示を表示用コンピュータが行う場合は表示用コンピュータも含む）が管理システムである。
図２は資産管理サーバ１０２のリソース使用量管理プログラム１１７の機能モジュール構成を示すブロック図である。このプログラムは、デスクトップサーバ１０１において起動（あるいは稼働）している仮想マシンの識別情報を取得する仮想マシン稼働情報取得部２０２と、ユーザが仮想マシンを使用していることに関するログ（ログオン、ログオフ）などの情報を取得するユーザ情報取得部２０１、取得したユーザ情報からユーザが仮想マシンを使用中であるか否かを判断するユーザ使用状況判断部２０４、デスクトップサーバと仮想マシンとがそれぞれ使用しているリソースに関する情報を取得するリソース使用量取得部２０３、リソースの容量のうち使用されている容量、又は、使用されていない空き容量を算出するリソース使用量算出部２０５、ディスプレイに管理情報を表示する出力処理部２０６と、を有している。仮想マシンの起動はゲストＯＳの起動によって判断される。
デスクトップサーバのメモリ使用量とは、仮想化機構や仮想マシンを含むデスクトップサーバで実行中のソフトウェア全体が消費している量の合計である。ただし、定められた一部のプログラムの消費量を除いてもよい。一部のプログラムの一例として、カーネルやＢＩＯＳの消費領域がある。
仮想マシンのメモリ使用量とは、各仮想マシンが消費している量の合計である。ただし、定められた一定量を差し引いた値であってもよい。仮想マシンのメモリ使用量とは、例えば、仮想マシンが消費している量として仮想マシンのメモリ空間として割り当てられた物理メモリの量と仮想マシンを維持するために必要となる管理情報とを合わせたもの、あるいは、メモリ空間として割り当てられた物理メモリの量のみである。  ユーザ情報取得部２０１、仮想マシン稼働情報取得部２０２、及びリソース使用量取得部２０３が取得した情報は、後述のようなテーブルに纏められ、データベース２０７に登録される。ユーザ使用状況判断部２０４は、データベースの登録情報から、仮想マシンに対するユーザの使用状況を判断する。リソース使用量算出部２０５は、データベースの登録情報からリソース使用量を算出し、その結果をデータベース２０７に登録する。
図３は、資産管理サーバが有する、仮想マシンの情報として保持する構成情報の一例である。この管理情報はテーブルの形式で、資産管理サーバ１０２のメモリ１０２Ｃ、又は、２次記憶装置１０２Ｅに格納されている。
この仮想マシンの構成情報は、デスクトップサーバを識別するサーバＩＤ３０１、仮想マシンを識別する仮想マシンＩＤ３０２、仮想マシンの稼働状態３０３、構成情報の取得時点で仮想マシンにログオン中のユーザを識別するログオンユーザＩＤ３０４と、を有している。サーバＩＤと仮想マシンＩＤは、ＩＤとして一意である。仮想マシンの稼働状態には、「起動」、又は「停止」のいずれかとし、「一時停止」は起動に含める。これらの情報は資産管理サーバのリソース使用管理プログラム１１７が、定期的に仮想化機構１１６又は仮想マシン１１５と通信することで取得する。
仮想マシン稼働情報取得部２０２は、定期的に、デスクトップサーバ１０１の仮想化機構に係る仮想化機構プログラムと通信して、仮想マシンＩＤと仮想マシンの稼働状態を取得し、取得時刻とともにこれらを仮想マシンの構成情報テーブル（図３）に記録する。ユーザ情報取得部２０１も仮想マシン１１５と通信して、ログオンしているユーザＩＤを取得し、これを取得時刻とともに構成情報テーブルに記録する。情報取得時点でログオンしているユーザが存在しない場合には、テーブルの該当項目を空とする。
資産管理サーバ１０２が仮想マシンの情報をデスクトップサーバから取得する方法としては、定期的に仮想マシンのゲストＯＳに対して要求を出力する方法と、仮想マシンにエージェントプログラムを配置し、エージェントプログラムが一定時間毎ログオンユーザ情報を取得して資産管理サーバに送信する方法とがある。エージェントプログラムが一定期間分にログを記録し、これをまとめて資産管理サーバに送信するようにしてもよい。
図４は、リソース使用量（利用量）の管理テーブルである。資産管理サーバ１０２が有している。リソース使用量の管理テーブルは、リソースを使用（利用）するデスクトップサーバや仮想マシンを識別するＩＤ４０１と、リソースを使用するマシン（デスクトップサーバ、又は仮想マシン）のＣＰＵの使用率４０２、メモリの使用量４０３、ディスク入出力量（Ｉ／Ｏ）４０４、そして、ネットワーク入出力量（Ｉ／Ｏ）４０５の各情報を有している。
ｓｖｒ１は特定のデスクトップサーバのＩＤである。ｓｖｒ１に登録された各情報は、サーバ全体の情報であることを示している。図１のシステムにおいては、サーバはデスクトップサーバであることから、サーバ全体の情報とは、全ての仮想マシンを合わせたものに対する情報である。なお、図１はデスクトップサーバを単体として示しているが、これが複数であってもよい。この場合、ユーザ端末は所定のデスクトップサーバの所定の仮想マシンに接続することができる。
図４に示す情報をリソース使用量取得部２０３（図２）が、デスクトップサーバの仮想化機構（仮想化機構プログラム）１１６と通信して取得し、取得時刻とともにテーブルに登録する。
図５は、資産管理サーバ１０２が図４の各仮想マシンの使用量から空き容量等を算出するフローチャートである。資産管理サーバ１０２は、管理者からの命令を受信した場合のほか、デスクトップサーバから情報を定期的に取得する場合に、このフローチャートを実行する。資産管理サーバは、デスクトップサーバ単位でフローチャートを実行する。管理者からの命令には、デスクトップサーバのＩＤや、期間の指定を含ませることができる。
なお、図５の説明に当たっては、管理者からの命令が資産管理サーバになされたことを前提にする。まず、デスクトップサーバ１０１の仮想化機構１１６から仮想マシンのメモリ使用量の情報を取得して、仮想マシンのＩＤ毎にメモリ使用量を図４に示すテーブルに登録する（ステップＳ５０１）。
次に、図３のテーブルを参照して、稼働状態が起動中である仮想マシンを判定し（ステップ（Ｓ５０２）、起動中の仮想マシンの台数をカウントする。次いで、仮想マシンからユーザの情報を取得し、（ステップＳ５０３）、この仮想マシンにログイン中のユーザがいる場合には、この仮想マシンはユーザによって使用されていると判断する（ステップＳ５０４）。そして、ユーザが使用中の仮想マシンの台数をカウントする。
起動はしているがユーザが使用中ではない仮想マシン（これを、有効に活用されていない仮想マシンという意味で、以後“非有効仮想マシン”という。）が占有しているメモリ量を決定し、全ての非活用仮想マシンについて、このメモリ量を累算し（ステップＳ５０５）、その結果を“非有効量”として記憶する。起動中の全仮想マシンの情報を取得後、メモリ使用率、空き容量を次のように算出する（ステップ５０５Ａ，Ｓ５０６）。仮想マシンの使用あるいはその未使用は、仮想マシンにユーザがログインしているか否かによって判定される。仮想マシンにログイン中のユーザがある場合は、仮想マシンが使用中であることを示している。
資産管理サーバは、仮想化機構プログラムから取得した、デスクトップサーバ全体のメモリ使用量から既述の非有効量を減算し、この結果を、実際にユーザが使用している仮想マシンのゲストＯＳと仮想化機構を実現するホストＯＳが占有する実メモリ量と判定する。物理メモリの全体容量に対する実メモリ量のパーセントをメモリの使用率とする。
全体容量から実メモリ量を減算した結果を全体空き容量とする（Ｓ５０６）。そして、算出した結果を表示装置の画面に出力する（ステップＳ５０７）。さらに、これらの結果をデータベース（図２の２０７）に図６に示すテーブルの形態にして登録する（ステップＳ５０８）。このように非有効仮想マシンが占有しているメモリ容量が空き容量に分類されるため、資産管理サーバ１０２又はデスクトップサーバ１０１は、非有効仮想マシンが占有しているリソースを、ユーザが使用中の仮想マシンに振り分けることをユーザ、管理者に促したり、あるいは振り分けることができる。
図６のテーブルでは、デスクトップサーバＩＤ６０１毎に情報が纏められ、データの取得時刻６０２毎に、取得時点で起動中である仮想マシン台数６０３、ユーザが使用中である仮想マシンの台数６０４、仮想化機構から取得した全体のメモリ使用量６０５、算出されたメモリ使用率６０６、そして、算出された空き容量６０７が登録されている。
図７に、図５のステップＳ５０７において、資産管理サーバ１０２が出力する画面の例を示す。デスクトップサーバ毎に物理メモリ容量、全体メモリ使用量、稼働中の仮想マシン台数、ユーザが使用中の仮想マシンの台数、ユーザ未使用の仮想マシンを除くメモリの使用率、ユーザ未使用の仮想マシンを含む空き容量を表示する。
また、これら数値の履歴を出力する場合は、横軸に取得時刻、縦軸にユーザ使用台数やメモリの使用率、空き容量といったデータの値を設定し、これら特性値の変化をグラフで表示すればよい。リソース資産の利用状況を管理者が把握するといった観点からーか月や一年といった長期間での表示を可能とする。この場合、日単位や週単位などで特性値の平均値またはピーク値を決定し、これを用いることでもよい。このように、資産管理サーバは、実際にユーザが使用していない仮想マシンが占有するメモリ量を空き容量に含めるため、資産管理サーバは、ユーザが仮想マシンを利用する状況を加味して、リソース使用量の実態を管理者に提供することができる。
既述の説明では、リソース使用量管理プログラム１１７が仮想マシンにアクセスして、仮想マシンから情報を取得することについて説明した。さらに、別な方法によって仮想マシンから情報を取得する例について説明する。
仮想マシン１１５にエージェントプログラムを配置する。エージェントプログラムは、仮想マシンのゲストＯＳから仮想マシンの電源状態を変化（オン／オフ）させた時刻を取得する。さらに、ユーザログオンおよびログオフスクリプトにより、ユーザのログオン、ログオフ時間をゲストＯＳから取得する。エージェントプログラムは、これらの情報を定期的にまたは資産管理サーバから要求があった時点で資産管理サーバに送信する。この形態では、資産管理サーバは、図３のログインユーザＩＤを必要としないため、テーブルに記録しない。ゲストＯＳは、電源状態のフラグをメモリに記録してあり、エージェントプログラムはこのフラグをチェックする
図８に、資産管理サーバがエージェントプログラムから入手した情報を登録するテーブルを示している。このテーブルはデータベース２０７に記録される。このテーブルは、仮想マシンＩＤ８０１毎に、仮想マシンを起動した時刻（電源オンの時刻）８０２、起動を終了させた時刻（電源オフの時刻）８０３、仮想マシンにログインしたユーザのＩＤ８０４とユーザのログイン時刻８０５、ログオフ時刻８０６を備えている。
図９は、定期的または管理者からの要求があった時に、管理サーバが図８のテーブルを参照して仮想マシンが利用するリソース量を算出するフローチャートを示す。資産管理サーバは、時刻（または期間）を指定してこの算出を行う。
資産管理サーバは、図３及び図４に示す、仮想マシンの構成情報を読み出し（Ｓ９０１）、仮想マシンＩＤを得る（ステップＳ９０１）。さらに、資産管理サーバは、仮想マシンＩＤに基づいて、図８のテーブルを参照し、仮想マシンの起動時刻、終了時刻から指定された時刻に仮想マシンが起動中であったか否かを判別する（ステップＳ９０２）。仮想マシンが起動中であった場合は、仮想マシンに対するユーザのログオン時刻、ログオフ時刻から、指定時刻にユーザがログオン中であったかを判別する（ステップＳ９０３）。ユーザがログオン中でなかった仮想マシンを非有効仮想マシンと判定し、全ての非有効仮想マシンが利用するメモリ量（Ｓ９０４）を非有効量と判定する。
資産管理サーバは、全仮想マシンの情報を取得するまで、Ｓ９０２からＳ９０４までを繰り返す（ステップＳ９０５）。以後の処理Ｓ９０６−９０８は図５と同様である。
次に、変形例として、ユーザは仮想マシンにログオン中であるものの、ユーザ端末と仮想マシンとのコネクション（パス）が切断されている場合についての資産管理を説明する。この場合、資産管理サーバは、仮想マシンを実質的には非有効状態にあると判定し、この仮想マシンが占有するリソースを空きリソース（余剰リソース）にカウントする。
資産管理サーバは、ユーザ端末と仮想マシンとのパス状態を判定するための情報として、図３で説明した仮想マシンの構成情報にリモート端末アドレスを追加する。資産管理サーバは、仮想マシンのゲストＯＳからリモート接続している端末のＩＰアドレスを取得する。
資産管理サーバは、仮想マシンにログオンしているユーザの情報を取得することに合わせて、端末と仮想マシンとのコネクションをチェックし、これが確立されていれば、管理テーブルに端末のＩＰアドレスを書き込む。このようにして、管理サーバは、特定時点でユーザ端末と仮想マシンとの間のコネクションが確立されているかどうかを管理する。仮想マシンのエージェントプログラムは、この管理に、リモート接続用プロトコルのポート番号を利用する。
図１０は、資産管理サーバが、ユーザ端末と仮想マシンとの間のコネクションの状態を加味して、仮想マシンの実質的に使用するリソース量を算出するためのフローチャートである。図５に説明したフローチャートとの違いは、仮想マシンからの情報を取得する時（ステップＳ１００３）に、ユーザのログオン情報に加えて、仮想マシンにリモートアクセスするユーザ端末と仮想マシンとの間のコネクションの情報を取得することと、ユーザがログオン中であっても、ユーザ端末と切断されている仮想マシンであるか否かを判断するステップ（Ｓ１００９）が存在する点である。
また、別の変形例として、ユーザが使用中かどうかの判断を仮想マシンの稼働状態を基に行う方法について説明する。資産管理サーバは、仮想マシンの電源状態変更に合わせて、仮想マシンの稼働状態を起動、停止、一時停止に区別して、図３の構成情報に記録する。図１１は、この方法を行うための資産管理サーバの処理に係るフローチャートである。このフローチャートは、図５に示したフローチャートと異なり、仮想マシンの状態が起動中（ステップＳ１１０２）でも、仮想マシンの状態が一時停止の場合は、この仮想マシンにユーザからログオンがあるか否かに拘わらず、このような仮想マシンに割り当てられているリソース量を空き量とする（ステップＳ１１０３）。
仮想マシンの電源状態は、起動、停止、一時停止がある。電源状態の起動は、起動状態に分類され、その停止は停止状態に分類され、その一時停止は起動状態に分類される。仮想マシンの一時停止も含めて電源状態の変更イベントをエージェントが取得する。
図３では、一時停止は特に状態として記録されていないため、起動状態に分類され、さらにユーザのログオン情報が判断条件として使用されているが、図１１の実施形態では、資産管理サーバが、仮想マシンの一時停止状態を把握することで、一時停止状態のリソースを空きと判断する。これは、ユーザがログオン中であったとしても一時停止であれば実際にはユーザは使用していないと分類されることを意味する。このとき、仮想マシンへログオン中かどうかの情報は使用されない。
さらに、他の変形例として、資産管理サーバが、ユーザが仮想マシンを使用中かどうかの判断を仮想マシン上のユーザプロセス数を基に行う方法について説明する。資産管理サーバは、図３で説明した構成情報に、ユーザプロセス数を追加する。資産管理サーバは、ユーザプロセス数を仮想マシンのゲストＯＳから取得する。資産管理サーバは、仮想マシンにログオンしているユーザの情報を仮想マシンから取得するタイミングで、ユーザプロセス数を取得する。ユーザプロセスとは、仮想マシン上でユーザによって起動されたプロセスのことである。ユーザ端末は仮想マシンへの入出力手段として使用されている。
図１２は、ユーザプロセス数を利用する資産管理サーバの処理を説明するフローチャートである。図５のフローチャートとの違いは、ユーザプロセス数を取得することと、ユーザがログオン中であっても、ユーザプロセス数が所定値以下（ステップＳ１２０９）、例えば、ユーザプロセスが実行されていない仮想マシンを非有効仮想マシンと判定することである。
図１３は、ユーザによって、一定期間使用されていない仮想マシンを、遊休仮想マシンとしてユーザに提示する際に参照される管理テーブルを示す。この管理テーブルは資産管理サーバによって作成され、データベース２０７に登録される。
管理サーバが、既述のとおり、起動中ではあるがユーザによって使用されていない仮想マシンを判定するための処理を実行する際、その判定結果を図１３に登録する。図１３において、符号１３０１は、仮想マシンのＩＤのフィールドであり、符号１３０２は、仮想マシンに対する使用状態を示すフィールドである。仮想マシンの使用状態が変更される際には、状態変更時刻がフィール１３０３に記録される。そして、仮想マシンの状態が未使用に変更され、その時刻より予め定め時間・期間が経過すると、資産管理サーバは、管理フラグ１３０４に、“遊休”に対する値をセットする。
資産管理サーバが図１３のテーブルを参照することによって、遊休状態にある仮想マシンのＩＤと、これを備えるサーバのＩＤを管理者に表示することができる。これによって、管理者は、仮想マシンが関係する、物理サーバのリソースの使用量と、ユーザに使用されていない遊休仮想マシンを知ることができる。
既述の実施形態で説明したコンピュータシステムによれば、仮想マシンに対するユーザの割り当てを変更したり、遊休状態にある仮想マシンをユーザから返却させたり、リソースの使用率が低い物理サーバからそうではない物理サーバへ仮想マシンを移行させることができる。
図１４は、そのことを示すブロック図である。仮想マシンの動作する物理サーバのリソース使用状況の情報や、仮想マシン毎のユーザの使用状況の状況を管理者が受けて、仮想マシンが固定的にユーザに割り当てられている場合に、管理者は、ユーザへの割り当ての見直しや、ユーザから遊休状態の仮想マシンを返却させ、仮想マシンのイメージを削除または初期化や、別ユーザへの仮想マシンの割り当てを行う。
また、管理者は、物理サーバ全体のリソース使用率が低い物理サーバへ仮想マシンを移行したり、物理サーバを集約することで資産を有効に活用し、さらに、ユーザ使用のピーク時とリソース使用量のトレンドから、リソース使用率が限界値より高いことが続く場合は、物理サーバの増設を行う。
既述の説明では、デスクトップサーバと、資産管理サーバと、デスクトップ割当管理サーバとを、異なるハードウエアとして説明したが、共通のハードウエアにこれらサーバを設けるようにしてもよい。
また、ユーザ情報取得部２０１、仮想マシン稼働情報取得部２０２を、デスクトップ割当管理サーバに設けてもよい。
複数の仮想マシン間でデスクトップサーバのメモリの同じ領域を割り当てられる場合もある。例えば、決められたパターン（ゼロ等）しか書かれていない仮想マシンのメモリ空間上の（メモリ）ページを一まとめにしてメモリ使用量を削減する場合である。
仮想化機構は、仮想マシンには物理メモリの別々な領域を割り当てるが、ある物理メモリの領域を複数の仮想マシンに割り当てても良い。このような場合、図７の画面にて表示する「ユーザー未使用分を除く使用率」及び／又は「ユーザ未使用分を含む空き容量」の値はこのような物理マシン〉間での物理メモリ共有を考慮して算出してもよい。例えば、以下の方法が考えられる。
（Ａ）図５のＳ５０４にて使用中でないと判断された仮想マシンについてＳ５０５の前に、仮想マシン間共有の物理メモリ領域についての情報（特に容量）を仮想化機構から収集し、Ｓ５０５で加算する際に当該共有の物理メモリ領域の容量加算を抑止する。
（Ｂ）さらに、この共有の物理メモリ領域を共有する仮想マシンを識別する情報が得られる場合は、この識別する情報に基づいて当該物理メモリ領域を共有する仮想マシンすべてが使用中でないことを確認した場合に空き容量として加算してもよい。
【図１】
2010109681.tif 000003
【図２】
2010109681.tif 000004
【図３】
2010109681.tif 000005
【図４】
2010109681.tif 000006
【図５】
2010109681.tif 000007
【図６】
2010109681.tif 000008
【図７】
2010109681.tif 000009
【図８】
2010109681.tif 000010
【図９】
2010109681.tif 000011
【図１０】
2010109681.tif 000012
【図１１】
2010109681.tif 000013
【図１２】
2010109681.tif 000014
【図１３】
2010109681.tif 000015
【図１４】
2010109681.tif 000016
【国際調査報告】
2010109681.tif 000017
2010109681.tif 000018
2010109681.tif 000019
2010109681.tif 000020