説明

リソース提供装置及びリソース提供方法

【課題】リソース提供システムのノードコントローラに対し、インスタンス起動によりユーザ端末にコンピュータリソースを提供する以外の用途を付与すること。
【解決手段】複数のインスタンスを動作させることにより、ネットワークを介した端末のユーザに対し自装置のコンピュータリソースを提供するリソース提供装置であって、端末のユーザに対しコンピュータリソースを提供するために起動されるクラウドインスタンスと、自装置に接続された入出力デバイスを操作するユーザに対してコンピュータリソースを提供するために起動されるパーソナルインスタンスと、をそれぞれ制御するインスタンス制御部と、自装置に接続された入力デバイスから入力された信号をパーソナルインスタンスに対して中継し、パーソナルインスタンスから出力デバイスに対して出力された信号を、自装置に接続された出力デバイスに対して中継する中継部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ端末から送信されるコンピュータリソースの提供要求に応じてコンピュータリソースの提供を行うための技術に関する。
【背景技術】
【0002】
コンピュータ装置のプロセッサ、メモリ、ディスク等のハードウェアリソースを、複数のコンピュータリソースに仮想化し、1台の物理マシンに複数の仮想マシン(インスタンス)を起動させる仮想化技術が研究されている。また、このような仮想化技術に基づいてユーザ端末に対しコンピュータリソースを提供するシステムも研究されている。このようなリソース提供システムでは、上述したような仮想化機能を備える複数の装置が用いられる。ネットワークを介してユーザ端末から送信されるリソース提供要求に応じて各装置がインスタンスを起動し、ユーザ端末に対しインスタンスのリソースが提供される。このようなリソース提供システムによれば、コンピュータのハードウェアやソフトウェアを、買い取りやリースではなく、従量制の課金により提供することが可能である。また、ユーザが必要な時に必要なだけコンピュータリソースを提供することが可能である。
【0003】
このようなリソース提供システムは、データセンタ等に大量に用意された物理マシンのハードウェアリソースを仮想化し、インターネットを介して広く公開して提供するいわゆるパブリッククラウドが一般的であった。これに加えて、近年ではこのようなクラウドを特定の企業等の組織内等の閉じられた環境内におけるコンピュータシステムに適用する、いわゆるプライベートクラウドが研究されている(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】「クラウド大全 サービス詳細から基盤技術まで」、日経BP社、2009年4月
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、リソース提供システムには、インスタンスを起動する物理マシン(以下、「ノードコントローラ」という。)が必要となる。ノードコントローラは、インスタンスを起動させてユーザ端末にコンピュータリソースを提供するための専用装置として用いられることが一般的であった。
【0006】
上記事情に鑑み、本発明は、リソース提供システムにおいてインスタンスを起動させるノードコントローラに対し、インスタンスを起動させてユーザ端末にコンピュータリソースを提供する以外の用途を付与する技術を提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一態様は、複数のインスタンスを動作させることによって、ネットワークを介して接続された端末のユーザに対し自装置のコンピュータリソースを提供するリソース提供装置であって、前記端末のユーザに対して前記コンピュータリソースを提供するために起動されるクラウドインスタンスと、自装置に接続された入出力デバイスを操作するユーザに対して前記コンピュータリソースを提供するために起動されるパーソナルインスタンスと、をそれぞれ制御するインスタンス制御部と、自装置に接続された入力デバイスから入力された信号を前記パーソナルインスタンスに対して中継し、前記パーソナルインスタンスから出力デバイスに対して出力された信号を、自装置に接続された出力デバイスに対して中継する中継部と、を備える。
【0008】
本発明の一態様は、上記のリソース提供装置であって、前記パーソナルインスタンスによって、前記入力デバイスとして認識される仮想入力デバイス部と、前記パーソナルインスタンスによって、前記出力デバイスとして認識される仮想出力デバイス部と、をさらに備え、前記中継部は、前記入力デバイスから入力された信号を、前記仮想入力デバイス部に対して中継し、前記パーソナルインスタンスから前記仮想出力デバイスへ出力された信号を前記出力デバイスに対して中継する、ことを特徴とする。
【0009】
本発明の一態様は、上記のリソース提供装置であって、前記インスタンス制御部は、前記端末から前記ネットワークを介して受信した通信データを、その宛先に応じて前記クラウドインスタンスに対して転送することを特徴とする。
【0010】
本発明の一態様は、上記のリソース提供装置であって、前記インスタンス制御部は、前記パーソナルインスタンスからネットワークへ送信される通信データ及び前記ネットワークから前記パーソナルインスタンス宛に送信された通信データについて、自装置の通信ハードウェアと前記パーソナルインスタンスとの間で中継することを特徴とする。
【0011】
本発明の一態様は、上記のリソース提供装置であって、リソース提供装置は、前記端末のユーザに対しコンピュータリソースを提供するリソース提供システムに備えられる装置であり、前記インスタンス制御部は、前記リソース提供システムに備えられる他の装置から受信する制御データに応じて前記クラウドインスタンスを制御することを特徴とする。
【0012】
本発明の一態様は、複数のインスタンスを動作させることによって、ネットワークを介して接続された端末のユーザに対し自装置のコンピュータリソースを提供するリソース提供装置が行うリソース提供方法であって、前記端末のユーザに対して前記コンピュータリソースを提供するために起動されるクラウドインスタンスと、自装置に接続された入出力デバイスを操作するユーザに対して前記コンピュータリソースを提供するために起動されるパーソナルインスタンスと、をそれぞれ制御するインスタンス制御ステップと、自装置に接続された入力デバイスから入力された信号を前記パーソナルインスタンスに対して中継し、前記パーソナルインスタンスから出力デバイスに対して出力された信号を、自装置に接続された出力デバイスに対して中継する中継ステップと、を備える。
【発明の効果】
【0013】
本発明により、リソース提供システムにおいてインスタンスを起動させるノードコントローラに対し、インスタンスを起動させてユーザ端末にコンピュータリソースを提供する以外の用途を付与することが可能となる。
【図面の簡単な説明】
【0014】
【図1】リソース提供システムのシステム構成を表すシステム構成図である。
【図2】ノードコントローラの機能構成を表す概略ブロック図である。
【図3】ノード管理部の機能構成を表す概略ブロック図である。
【図4】仮想デバイス名テーブルの具体例を表す図である。
【図5】パーソナルインスタンスを起動する際の動作を表すシーケンス図である。
【図6】パーソナルインスタンスが起動している状態でNCユーザが入力装置を操作した場合の、ノードコントローラの動作を表すシーケンス図である。
【図7】パーソナルインスタンスが処理結果に応じて出力装置信号を出力した場合の、ノードコントローラの動作を表すシーケンス図である。
【図8】リソース提供システムにおいて、クラウドインスタンスが起動される際の動作を表すシーケンス図である。
【図9】変形例のノードコントローラの動作を表すシーケンス図である。
【図10】変形例の仮想化部が記憶するテーブルの具体例を表す図である。
【発明を実施するための形態】
【0015】
図1は、リソース提供システム100のシステム構成を表すシステム構成図である。リソース提供システム100は、ユーザ端末1、クラウドコントローラ2、複数台のクラスタコントローラ3、複数台のノードコントローラ4を備える。ユーザ端末1と、クラウドコントローラ2及び複数台のクラスタコントローラ3とは、互いに通信可能に構成されている。ユーザ端末1と、クラウドコントローラ2及び各クラスタコントローラ3とは、インターネットを用いて通信するように構成されても良いし、LAN(Local Area Network)を用いて通信するように構成されても良いし、その他の通信路を用いて通信するように構成されても良い。また、クラウドコントローラ2と各クラスタコントローラ3とは互いに通信可能に構成されている。また、各クラスタコントローラ3と各ノードコントローラ4とは互いに通信可能に構成されている。クラウドコントローラ2と各クラスタコントローラ3、各クラスタコントローラ3と各ノードコントローラ4とは、それぞれLAN等を用いて通信するように構成される。なお、リソース提供システム100が備えるクラスタコントローラ3やノードコントローラ4の台数は、図1に示されたものに限定されない。
【0016】
ユーザ端末1は、ワークステーション、パーソナルコンピュータ、スマートフォン等の情報処理装置を用いて構成される。ユーザ端末1は、クラウドコントローラ2に対しコンピュータリソースの提供要求を送信し、提供要求に応じて提供されるコンピュータリソースを利用する。以下、ユーザ端末1についてさらに具体的に説明する。
【0017】
ユーザ端末1は、例えばインターネットブラウザの機能を備えている。ユーザ端末1は、予め定められたURL(Uniform Resource Locator)に基づいて、クラウドコントローラ2によって提供されるウェブサイトに接続する。ユーザ端末1は、クラウドコントローラ2に対し、コンピュータリソースの提供要求を送信する。ユーザ端末1は、提供要求に対する応答として、ノードコントローラ4において起動されたインスタンスのIP(Internet Protocol)アドレスを、クラウドコントローラ2から受信する。なお、ノードコントローラ4とは、コンピュータリソースの提供元の装置である。ユーザ端末1は、受信したIPアドレスに基づいてノードコントローラ4に接続し、ノードコントローラ4のコンピュータリソースを利用する。ここで、インスタンスとは、ノードコントローラ4のスロット上に起動された仮想マシンである。また、スロットとは、CPU、メモリ、ディスクなどの物理的なハードウェアリソースを仮想化して特定の単位として切り出した仮想的なコンピュータリソースである。また、コンピュータリソースの提供要求については、ユーザ端末1は、ブラウザ機能ではなく専用のアプリケーションソフトウェアにより提供される機能によって行っても良い。
【0018】
クラウドコントローラ2は、サーバ装置、ワークステーション、パーソナルコンピュータ等の情報処理装置を用いて構成される。クラウドコントローラ2の機能は、既存のクラウドシステムにおけるクラウドコントローラ機能を用いて実現される。以下、クラウドコントローラ機能の具体例について説明する。クラウドコントローラ2は、ユーザ端末1に対しウェブサイトを提供し、ユーザ端末1から送信されるコンピュータリソースの提供要求を受信する。クラウドコントローラ2は、受信した提供要求に応じて、クラスタコントローラ3に余剰リソース確認やインスタンス起動要求を送信する。例えば、クラウドコントローラ2は、ユーザ端末1に対応するユーザアカウントを自身の記憶領域に予め記憶しておく。また、クラウドコントローラ2は、ユーザアカウント毎にコンピュータリソースを提供するクラスタコントローラ3を対応付けて記憶しておく。クラウドコントローラ2は、ユーザ端末1からコンピュータリソースの提供要求を受信すると、ユーザ端末1に対応するクラスタコントローラ3に対し余剰リソース確認やインスタンス起動要求を送信する。クラウドコントローラ2は、インスタンス起動要求を受信したノードコントローラ4からインスタンスのイメージファイルの要求を受信する。クラウドコントローラ2は、予めインスタンスのイメージファイルを記憶しており、この要求に応じてイメージファイルを送信する。なお、上述したクラウドコントローラ2の構成は一例にすぎず、既存のクラウドコントローラ機能を実現できればどのように構成されても良い。
【0019】
クラスタコントローラ3は、サーバ装置、ワークステーション、パーソナルコンピュータ等の情報処理装置を用いて構成される。クラスタコントローラ3は、ネットワークを介して複数のノードコントローラ4に接続されている。クラスタコントローラ3は、自身の配下のノードコントローラ4の動作を制御する。クラスタコントローラ3の機能は、既存のクラウドシステムにおけるクラスタコントローラの機能を用いて実現される。クラスタコントローラ3は、既存のクラスタコントローラ機能を実現できればどのように構成されても良い。
【0020】
ノードコントローラ4は、ワークステーション、パーソナルコンピュータ等の情報処理装置を用いて構成される。ノードコントローラ4は、自身のハードウェアリソースを仮想化してユーザ端末1に提供する。以下、ノードコントローラ4について詳細に説明する。
図2は、ノードコントローラ4の機能構成を表す概略ブロック図である。ノードコントローラ4は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、ノードコントローラ用プログラムを実行する。ノードコントローラ4は、ノードコントローラ用プログラムを実行することによって、ハードウェアリソース41、仮想化部42、ノード管理部43、パーソナルインスタンス44、クラウドインスタンス45−1、クラウドインスタンス45−2を備える装置として機能する。なお、ノードコントローラ4の仮想化部42及びノード管理部43は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。
【0021】
ハードウェアリソース41は、CPU、メモリ、補助記憶装置、I/Oインターフェース、ネットワークインターフェース等の物理的な装置である。
仮想化部42は、Xenなどの仮想化マシンソフトウェアがハードウェアリソース41によって実行されることにより実現される機能部である。仮想化部42は、ハードウェアリソース41を仮想化し、複数のインスタンスの実行を実現する。また、仮想化部42は、ノード管理部43から出力されたデータや信号を、その宛先に応じてパーソナルインスタンス44やクラウドインスタンス45やハードウェアリソース41へ転送する。また、仮想化部42は、パーソナルインスタンス44、クラウドインスタンス45及びハードウェアリソース41から出力されたデータや信号を、ノード管理部43へ転送する。
【0022】
ノード管理部43は、クラスタコントローラ3や他のノードコントローラ4のノード管理部43と通信を行い、ノードコントローラ4におけるコンピュータリソースの提供を制御する。ノード管理部43の詳細については後述する。
パーソナルインスタンス44は、ノード管理部43によって起動され制御されるインスタンスの一つである。パーソナルインスタンス44は、ノードコントローラ4のI/Oインターフェースに対して接続された入出力装置を操作するユーザ(以下、「NCユーザ」という。)に対して提供されるインスタンスである。NCユーザが、ノードコントローラ4のI/Oインターフェースに接続された入力装置を操作すると、入力装置によって生成された操作信号はパーソナルインスタンス44に入力される。パーソナルインスタンス44は、入力された操作信号に応じて動作し、出力信号を生成する。パーソナルインスタンス44によって生成された出力信号は、ノードコントローラ4のI/Oインターフェースに接続された出力装置に出力される。なお、ノードコントローラ4のI/Oインターフェースに接続される入力装置とは、例えばキーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置である。また、ノードコントローラ4のI/Oインターフェースに接続される出力装置とは、例えばCRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置であっても良いし、スピーカーやプリンタ装置等であっても良い。
【0023】
クラウドインスタンス45(45−1及び45−2)は、ノード管理部43によって起動され制御されるインスタンスの一つである。クラウドインスタンス45は、既存のクラウドシステムにおけるノードコントローラ上で動作するインスタンスと同じである。すなわち、クラウドインスタンス45は、ノードコントローラ4のコンピュータリソースをユーザ端末1に提供するために起動されるインスタンスである。
【0024】
なお、図2には、パーソナルインスタンス44及び複数のクラウドインスタンス45が記載されているが、これらは常にノードコントローラ4で起動している必要は無い。すなわち、ノードコントローラ4においては、少なくともハードウェアリソース41、仮想化部42及びノード管理部43が備えられていればよく、パーソナルインスタンス44及び各クラウドインスタンス45は、必要に応じてノード管理部43によって起動される。また、図2には、クラウドインスタンス45は二つ記載されているが、一台のノードコントローラ4において動作するクラウドインスタンス45の数は二つに限定される必要は無い。すなわち、一台のノードコントローラ4において動作するクラウドインスタンス45の数は、一つであっても良いし、三つ以上であっても良い。
【0025】
図3は、ノード管理部43の機能構成を表す概略ブロック図である。次に、図3を用いてノード管理部43の詳細について説明する。ノード管理部43は、入力部431、出力部432、仮想デバイス記憶部433、インスタンス制御部434、中継ドライバ435を備える。
【0026】
入力部431は、仮想化部42からデータや信号の入力を受け付ける。例えば、入力部431は、ハードウェアリソース41のネットワークインターフェースにおいて受信された通信データを、仮想化部42から受ける。また、入力部431は、ハードウェアリソース41のI/Oインターフェースに接続された入力装置から入力される信号を、仮想化部42から受ける。また、入力部431は、インスタンス(パーソナルインスタンス44及びクラウドインスタンス45)から出力されたデータ又は信号を、仮想化部42から受ける。
【0027】
出力部432は、仮想化部42に対しデータや信号を出力する。例えば、出力部432は、ハードウェアリソース41のネットワークインターフェースから他の装置へ送信する通信データを、仮想化部42を介してハードウェアリソース41へ出力する。また、出力部432は、ハードウェアリソース41のI/Oインターフェースに接続された出力装置に対し、仮想化部42を介して信号を出力する。また、出力部432は、インスタンス(パーソナルインスタンス44及びクラウドインスタンス45)に対し、仮想化部42を介してデータ又は信号を出力する。
【0028】
仮想デバイス記憶部433は、仮想デバイス名テーブルを記憶する。図4は、仮想デバイス名テーブルの具体例を表す。仮想デバイス名テーブルは、各インスタンスに対して割り当てられている物理デバイス毎の仮想デバイス名を表すテーブルである。物理デバイス名は物理デバイスの名称を表す。物理デバイスは、ハードウェアリソース41として表される個々の装置(補助記憶装置やネットワークインターフェース等)や、I/Oインターフェースに接続される個々の装置(マウス、キーボード、ディスプレイ等)を示す。仮想デバイス名は仮想デバイスの名前である。仮想デバイスは、物理デバイスとインスタンスとの組み合わせ毎に、仮想化部42に設けられる。各インスタンスは、仮想デバイスを、実際の物理デバイスであるものと想定して動作する。そのため、例えば、パーソナルインスタンス44に対し、マウスの仮想デバイスを介して信号が入力されると、パーソナルインスタンス44は入力された信号をマウスの信号として取り扱う。また、パーソナルインスタンス44は、ディスプレイに対し画像信号を出力しようとする際、ディスプレイの仮想デバイスに対し画像信号を出力する。
【0029】
図3に戻ってノード管理部43の説明を続ける。インスタンス制御部434は、既存のクラウドシステムにおけるノード管理部の機能を実現する。すなわち、インスタンス制御部434は、クラスタコントローラ3や他のノードコントローラ4のノード管理部43と通信を行い、必要に応じてクラウドインスタンス45を制御することによって、ノードコントローラ4におけるコンピュータリソースの提供を制御する。
【0030】
さらに、インスタンス制御部434は、パーソナルインスタンス44に対する制御も行う。具体的には、インスタンス制御部434は、パーソナルインスタンス44が起動していない状態でNCユーザからパーソナルインスタンス44の起動命令を受けると、パーソナルインスタンス44を起動する。このとき、インスタンス制御部434は、パーソナルインスタンス44に対応する仮想デバイスを仮想化部42に構築させる。そして、インスタンス制御部434は、構築された各仮想デバイスの名称(仮想デバイス名)を、仮想デバイス記憶部433の仮想デバイス名テーブルに登録する。また、インスタンス制御部434は、パーソナルインスタンス44の起動が完了すると、中継ドライバ435に対し、パーソナルインスタンス44が起動したことを通知する。
【0031】
一方、インスタンス制御部434は、パーソナルインスタンス44が起動している状態でNCユーザからパーソナルインスタンス44の終了命令を受けると、パーソナルインスタンス44を終了させる。このとき、インスタンス制御部434は、パーソナルインスタンス44に対応する仮想デバイスを、仮想化部42において終了させる。そして、インスタンス制御部434は、終了した各仮想デバイスの名称(仮想デバイス名)を、仮想デバイス名テーブルから削除する。また、インスタンス制御部434は、パーソナルインスタンス44が終了すると、中継ドライバ435に対し、パーソナルインスタンス44が終了したことを通知する。
【0032】
また、インスタンス制御部434は、ハードウェアリソース41のネットワークインターフェースから、仮想化部42及び入力部431を介して通信データを受けると、通信データの宛先となるインスタンスに対して通信データを中継する。例えば、通信データの宛先IPアドレスがパーソナルインスタンス44のIPアドレスである場合には、インスタンス制御部434は、出力部432及び仮想化部42を介してパーソナルインスタンス44にこの通信データを転送する。また、通信データの宛先IPアドレスがクラウドインスタンス45−1のIPアドレスである場合には、インスタンス制御部434は、出力部432及び仮想化部42を介してクラウドインスタンス45−1にこの通信データを転送する。また、通信データの宛先IPアドレスがノード管理部43のIPアドレスである場合には、インスタンス制御部434は、この通信データの内容に応じて動作する。
【0033】
中継ドライバ435は、パーソナルインスタンス44が起動している場合に、入力部431から入力される信号を出力部432へ中継する。より具体的には以下のとおりである。中継ドライバ435は、ハードウェアリソース41のI/Oインターフェースに接続された入力装置から入力される信号(以下、「入力装置信号」という。)を、仮想化部42及び入力部431を介して受ける。そして、中継ドライバ435は、入力装置信号を、出力部432を介して、パーソナルインスタンス44の仮想デバイスに対して中継する。このとき入力装置信号の中継先となる仮想デバイスは、入力装置信号の入力元である入力装置に応じた仮想デバイスとなる。すなわち、入力装置信号の入力元がマウスである場合には、マウスに対応した仮想デバイスが中継先となる。また、入力装置信号の入力元がキーボードである場合には、キーボードに対応した仮想デバイスが中継先となる。中継ドライバ435は、仮想デバイス記憶部433に記憶されている仮想デバイス名テーブルを参照することによって、パーソナルインスタンス44の各仮想デバイス名を特定する。そして、中継ドライバ435は、特定した仮想デバイス名に基づいて、入力装置信号を仮想デバイスに対して中継する。
【0034】
また、中継ドライバ435は、パーソナルインスタンス44から仮想デバイスに対して出力された信号(以下、「出力装置信号」という。)を、仮想化部42及び入力部431を介して受ける。そして、中継ドライバ435は、出力装置信号を、出力部432及び仮想化部42を介して、ハードウェアリソース41のI/Oインターフェースのうち、対応する出力装置が接続されたI/Oインターフェースへ出力する。
【0035】
次に、ノードコントローラ4の動作について説明する。図5は、パーソナルインスタンス44を起動する際の動作を表すシーケンス図である。NCユーザがノードコントローラ4の入力装置を操作することによってパーソナルインスタンス(PI)の起動を指示すると(ステップS101)、パーソナルインスタンスの起動指示を表す入力装置信号が仮想化部42へ入力される(ステップS102)。仮想化部42は、入力装置信号をノード管理部43へ転送する(ステップS103)。ノード管理部43は、入力装置信号を受けると、パーソナルインスタンス44が起動していない状態であるため、インスタンス制御部434が入力装置信号を受け取る。そして、インスタンス制御部434は、入力装置信号が表すパーソナルインスタンス44の起動指示に応じて、パーソナルインスタンス44を起動させる(ステップS104)。このとき、インスタンス制御部434は、パーソナルインスタンス44に対してIPアドレスを付与し、このIPアドレスを記憶する。また、インスタンス制御部434は、パーソナルインスタンス44に必要となる仮想デバイスを仮想化部42に構築させる。そして、インスタンス制御部434は、構築された各仮想デバイスの名称を、仮想デバイス名テーブルに登録する。このようなインスタンス制御部434の処理に応じて、パーソナルインスタンス44が起動する(ステップS105)。
【0036】
図6は、パーソナルインスタンス44が起動している状態でNCユーザが入力装置を操作した場合の、ノードコントローラ4の動作を表すシーケンス図である。NCユーザが入力装置を操作すると(ステップS201)、操作に応じた入力装置信号が仮想化部42へ入力される(ステップS202)。仮想化部42は、入力装置信号をノード管理部43へ転送する(ステップS203)。ノード管理部43は、入力装置信号を受けると、パーソナルインスタンス44が起動している状態であるため、中継ドライバ435が入力装置信号を受け取る。中継ドライバ435は、パーソナルインスタンス44の仮想デバイスの中から、受け取った入力装置信号の入力元の物理デバイスに対応する仮想デバイスの仮想デバイス名を特定する。このとき、中継ドライバ435は、仮想デバイス記憶部433に記憶されている仮想デバイス名テーブルを参照する。
【0037】
次に、中継ドライバ435は、特定した仮想デバイス名に基づいて、パーソナルインスタンス44の仮想デバイスに対し入力装置信号を中継する(ステップS204)。仮想デバイスに入力された入力装置信号は、パーソナルインスタンス44に受信される(ステップS205)。そして、パーソナルインスタンス44は、入力装置信号の内容に応じて処理を行う(ステップS206)。
【0038】
図7は、パーソナルインスタンス44が処理結果に応じて出力装置信号を出力した場合の、ノードコントローラ4の動作を表すシーケンス図である。パーソナルインスタンス44が処理を行い(ステップS301)、処理結果に応じた出力装置信号を出力する(ステップS302)。このとき、パーソナルインスタンス44は、自身に割り当てられている仮想デバイスのうち、出力装置信号に応じた仮想デバイスに対して出力装置信号を出力する。仮想デバイス(仮想化部42)は、出力装置信号をノード管理部43に転送する(ステップS303)。
【0039】
ノード管理部43は、出力装置信号を受けると、パーソナルインスタンス44が起動している状態であるため、中継ドライバ435が出力装置信号を受け取る。中継ドライバ435は、受け取った出力装置信号を仮想化部42へ中継する(ステップS304)。仮想化部42は、出力装置信号を、対応する出力装置が接続されているI/Oインターフェースに対して送信する(ステップS305)。出力装置は、受け取った出力装置信号に応じて出力処理を行う(ステップS306)。例えば、出力装置が画像表示装置である場合は、出力装置は受け取った出力装置信号に応じた画面を表示する。また、例えば出力装置がプリンタ装置である場合は、出力装置は受け取った出力装置信号に応じた印刷を行う。NCユーザは、出力装置によって出力された内容(出力内容)を確認することができる(ステップS307)。
【0040】
図8は、リソース提供システム100において、クラウドインスタンス45が起動される際の動作を表すシーケンス図である。まず、ユーザ端末1がリソース提供要求をクラウドコントローラ2に対して送信する(ステップS401)。クラウドコントローラ2は、リソース提供要求を受けると、クラスタコントローラ3に対し余剰リソースの確認を行う(ステップS402)。クラスタコントローラ3は、余剰リソースの確認の要求を受けると、自身が管轄するクラスタに所属する各ノードコントローラ4に対し、余剰リソースの確認を行う(ステップS403)。各ノードコントローラ4のノード管理部43は、自装置における余剰リソース量を確認する。そして、各ノードコントローラ4のノード管理部43は、確認結果を余剰リソース量応答としてクラスタコントローラ3に送信する(ステップS404)。クラスタコントローラ3は、各ノードコントローラ4から受信した余剰リソース量応答を、クラウドコントローラ2に対し送信する(ステップS405)。
【0041】
クラウドコントローラ2は、各クラスタコントローラ3から受信した余剰リソース量に基づいて、クラウドインスタンス45を起動させるノードコントローラ4を決定する。そして、クラウドコントローラ2は、決定したノードコントローラ4を制御するクラスタコントローラ3に対し、クラウドインスタンス45の起動を要求する(ステップS406)。クラスタコントローラ3は、クラウドインスタンス45の起動の要求を受けると、クラウドコントローラ2によって指定されたノードコントローラ4に対し、クラウドインスタンス45の起動を要求する(ステップS407)。
【0042】
ノードコントローラ4のインスタンス制御部434は、クラウドインスタンス45の起動の要求を受けると、クラウドコントローラ2に対しインスタンスイメージを要求する(ステップS408)。クラウドコントローラ2は、要求されたインスタンスイメージをノードコントローラ4に対して送信する(ステップS409)。ノードコントローラのインスタンス制御部434は、インスタンスイメージを受信すると、このインスタンスイメージにしたがってクラウドインスタンス45を起動する(ステップS410)。以降は、クラスタコントローラ3が、ユーザ端末1とノードコントローラ4のクラウドインスタンス45との間の通信を中継する(ステップS411)。
【0043】
このように構成されたリソース提供システム100では、ノードコントローラ4において、ユーザ端末1に対してリソース提供を行うために起動されるクラウドインスタンス45の他に、NCユーザに対するパーソナルインスタンス44が起動される。そして、NCユーザは、ノードコントローラ4に接続された入力装置や出力装置を用いて、ノードコントローラ4を自身の端末装置として使用することが可能となる。すなわち、ノードコントローラ4には、インスタンス(クラウドインスタンス45)を起動させてユーザ端末1にコンピュータリソースを提供する以外に、NCユーザに対しユーザ端末として機能する、という新たな用途を与えることが可能となる。
【0044】
また、リソース提供システムを新たに構築する際には、従来はインスタンスを起動するためのノードコントローラが必要となる。そのため、ノードコントローラを設置するためのスペースを確保しておく必要がある。さらに、ノードコントローラの他にも、ユーザ端末を設置するためのスペースも必要である。このように、従来は、リソース提供システムを構築するためには、多くのコンピュータ装置が必要となり、そのための費用やスペース等が必要となっていた。これに対し、上記のように構成されたリソース提供システム100では、NCユーザがノードコントローラ4でパーソナルインスタンス44を起動させることによって、ノードコントローラ4をユーザ端末1として用いることが可能となる。すなわち、図1において図示されているユーザ端末1とノードコントローラ4とを同一の装置によって実現させることが可能となる。この場合、ノードコントローラ4とユーザ端末1とが同一の装置上で機能するため、リソース提供システムに用いられるコンピュータマシンの台数を削減することが可能となる。例えば、従来のリソース提供システムを構築する際に、クラウドコントローラを1台、クラスタコントローラを3台、ノードコントローラを20台、ユーザ端末を100台、合計124台必要であったとする。これと同様のリソース提供システムを構築する際に、上記ノードコントローラ4を用いることによって、ユーザ端末100台のうち20台分でノードコントローラ20台分の機能を実現させることが可能となる。この場合、合計104台で同様のリソース提供システム100を構築することが可能となる。したがって、必要となる費用やスペースを削減することが可能となる。
【0045】
<変形例>
上記のリソース提供システム100では、ノードコントローラ4が起動していてもパーソナルインスタンス44が起動されていない場合があった。すなわち、ノードコントローラ4に電源を投入して起動した場合には、ハードウェアリソース41上で仮想化部42及びノード管理部43が起動していた。そして、パーソナルインスタンス44は、NCユーザによって起動指示を入力するまでは起動していなかった。これに対し、ノードコントローラ4は、電源が投入されて起動した際に、自動的にパーソナルインスタンス44を起動するように構成されても良い。図9は、このように構成された変形例のノードコントローラ4の動作を表すシーケンス図である。NCユーザがノードコントローラ4の電源ボタンを操作し電源オン操作を行うと(ステップS501)、この操作に応じてノードコントローラ4の仮想化部42及びノード管理部43が起動する(ステップS502、S503)。ノード管理部43は、自身が起動すると、NCユーザの操作にかかわらず自動的にパーソナルインスタンス44を起動させる(ステップS504)。そして、パーソナルインスタンス44が起動する(ステップS505)。このように構成されることによって、NCユーザは、ノードコントローラ4を、ノードコントローラ機能を有する装置であることを意識することなく、一般的なパーソナルコンピュータを操作する意識で、自身のユーザ端末1として使用することが可能となる。
【0046】
ノードコントローラ4のノード管理部43は、自装置の電源が落とされる際に、ライブマイグレーションを実行するように構成されても良い。具体的には以下のような構成となる。ノード管理部43は、自装置に対して電源オフの指示が出されると、その時点で動作しているクラウドインスタンス45の有無を確認する。動作しているクラウドインスタンス45が無い場合には、ノード管理部43はライブマイグレーションを行うことなく、自装置の電源をオフにする。一方、動作しているクラウドインスタンス45が有る場合には、ノード管理部43はライブマイグレーションを行うことによって、動作しているクラウドインスタンス45を他のノードコントローラ4において動作させる。そして、ノード管理部43は、動作中の全てのクラウドインスタンス45を他のノードコントローラ4に移動させ終わると、自装置の電源をオフにする。
【0047】
上記のリソース提供システム100では、パーソナルインスタンス44及び各クラウドインスタンス45に入力されるデータや信号がノード管理部43を経由する。また、パーソナルインスタンス44及び各クラウドインスタンス45から出力されるデータや信号もノード管理部43を経由する。これに対し、リソース提供システム100は、各クラウドインスタンス45に入力されるデータと、各クラウドインスタンス45から出力されるデータとがノード管理部43を経由しないように構成されても良い。この場合、具体的には以下のようにリソース提供システム100が構成される。
【0048】
図10は、上記のように構成された変形例の仮想化部42が記憶するテーブルの具体例を表す図である。変形例の仮想化部42が記憶するテーブルは、物理デバイス名、仮想デバイス名、対応するインスタンス、インスタンスのMACアドレス、をそれぞれ対応付けて有する。物理デバイスのNICは、ハードウェアリソース41に含まれる物理的な装置のうち、ネットワークインターフェースカードを表す。物理デバイスのNICに対応する仮想デバイスは、クラウドインスタンス45毎に生成され、図10のように仮想化部42のテーブルに登録される。また、仮想化部42のテーブルには、NICの仮想デバイス毎に、各クラウドインスタンス45に割り当てられているMACアドレスも対応付けて登録される。仮想化部42は、ノード管理部43から通知を受けることによって、仮想デバイス名やMACアドレスの値をテーブルに登録する。
【0049】
仮想化部42は、物理デバイスのNICにおいて通信データが受信されると、通信データの宛先がテーブルに登録されているMACアドレスであるか否かに応じて処理を行う。仮想化部42は、通信データの宛先がテーブルに登録されていない場合には、その通信データをノード管理部43に中継する。一方、通信データの宛先がテーブルに登録されている場合には、仮想化部42は、NICの仮想デバイスのうち通信データの宛先に対応するクラウドインスタンス45の仮想デバイスに通信データを中継する。例えば、通信データの宛先MACアドレスが“MAC A”である場合には、仮想化部42は、テーブルにおいてMACアドレス“MAC A”及び物理デバイス名“NIC”に対応付けて記憶される仮想デバイス名“nic104y”に対して通信データを中継する。クラウドインスタンス45−1は、仮想デバイス“nic104y”に入力された通信データを受信し、この通信データの内容に応じて動作する。また、仮想化部42は、クラウドインスタンス45からNICの仮想デバイスに対して通信データを受けると、この通信データを物理デバイスNICに対して中継する。この中継により、各クラウドインスタンス45から仮想デバイスに対して出力された通信データが、ハードウェアリソース41のNICに受信される。NICは、仮想化部42によって中継された通信データを、ネットワークに対して送出する。このように構成されることによって、ノード管理部43を経由するデータ量を削減させることが可能となる。これに伴って、ノード管理部43の負荷を軽減させることが可能となる。
【0050】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0051】
1…ユーザ端末, 2…クラウドコントローラ, 3…クラスタコントローラ, 4…ノードコントローラ, 41…ハードウェアリソース, 42…仮想化部, 43…ノード管理部, 44…パーソナルインスタンス, 45…クラウドインスタンス, 431…入力部, 432…出力部, 433…仮想デバイス記憶部, 434…インスタンス制御部, 435…中継ドライバ, 100…リソース提供システム

【特許請求の範囲】
【請求項1】
複数のインスタンスを動作させることによって、ネットワークを介して接続された端末のユーザに対し自装置のコンピュータリソースを提供するリソース提供装置であって、
前記端末のユーザに対して前記コンピュータリソースを提供するために起動されるクラウドインスタンスと、自装置に接続された入出力デバイスを操作するユーザに対して前記コンピュータリソースを提供するために起動されるパーソナルインスタンスと、をそれぞれ制御するインスタンス制御部と、
自装置に接続された入力デバイスから入力された信号を前記パーソナルインスタンスに対して中継し、前記パーソナルインスタンスから出力デバイスに対して出力された信号を、自装置に接続された出力デバイスに対して中継する中継部と、
を備えるリソース提供装置。
【請求項2】
前記パーソナルインスタンスによって、前記入力デバイスとして認識される仮想入力デバイス部と、
前記パーソナルインスタンスによって、前記出力デバイスとして認識される仮想出力デバイス部と、
をさらに備え、
前記中継部は、前記入力デバイスから入力された信号を、前記仮想入力デバイス部に対して中継し、前記パーソナルインスタンスから前記仮想出力デバイスへ出力された信号を前記出力デバイスに対して中継する、
ことを特徴とする請求項1に記載のリソース提供装置。
【請求項3】
前記インスタンス制御部は、前記端末から前記ネットワークを介して受信した通信データを、その宛先に応じて前記クラウドインスタンスに対して転送することを特徴とする請求項1又は2に記載のリソース提供装置。
【請求項4】
前記インスタンス制御部は、前記パーソナルインスタンスからネットワークへ送信される通信データ及び前記ネットワークから前記パーソナルインスタンス宛に送信された通信データについて、自装置の通信ハードウェアと前記パーソナルインスタンスとの間で中継することを特徴とする請求項1〜3のいずれか1項に記載のリソース提供装置。
【請求項5】
リソース提供装置は、前記端末のユーザに対しコンピュータリソースを提供するリソース提供システムに備えられる装置であり、
前記インスタンス制御部は、前記リソース提供システムに備えられる他の装置から受信する制御データに応じて前記クラウドインスタンスを制御する、
ことを特徴とする請求項1〜4のいずれか1項に記載のリソース提供装置。
【請求項6】
複数のインスタンスを動作させることによって、ネットワークを介して接続された端末のユーザに対し自装置のコンピュータリソースを提供するリソース提供装置が行うリソース提供方法であって、
前記端末のユーザに対して前記コンピュータリソースを提供するために起動されるクラウドインスタンスと、自装置に接続された入出力デバイスを操作するユーザに対して前記コンピュータリソースを提供するために起動されるパーソナルインスタンスと、をそれぞれ制御するインスタンス制御ステップと、
自装置に接続された入力デバイスから入力された信号を前記パーソナルインスタンスに対して中継し、前記パーソナルインスタンスから出力デバイスに対して出力された信号を、自装置に接続された出力デバイスに対して中継する中継ステップと、
を備えるリソース提供方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−3536(P2012−3536A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−138344(P2010−138344)
【出願日】平成22年6月17日(2010.6.17)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)