−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の情報処理システム10のネットワーク構成図である。図1に示す情報処理システム10は、ネットワーク140を介して互いに接続された、複数のブレードPC300、前記ブレードPC300とシンクライアント接続される端末200、前記ブレードPC300と端末200とのシンクライアント接続を管理するセッション管理サーバ400(第1の情報処理装置)、前記ブレードPC300が挿入される格納区画35を有したシャーシ30に付帯するコントロールボックス500(第3の情報処理装置)、およびバックアップサーバ100(第2の情報処理装置)、を有するシステムである。なお、前記端末200(ないしブレードPC300)にアプリケーションのストリーミング配信を行う配信サーバ600も備わるとしてもよい。
なお、前記ブレードPC300は、端末200との間にVPN(Virtual Private Network)を構築し、このVPNを介して、端末200から送られてきた入力情報(入力装置の操作内容)を受信し処理すると共に、処理結果を示す映像情報(表示装置のデスクトップ画面)を端末200に送信することとなる。ブレードPC300は、通常は入出力装置をローカル接続しないで使用するサーバ装置である。
また、 前記コントロールボックス500は、シャーシ30におけるブレードPC300の格納区画のデータを記憶する区画データベース525を不揮発性目の記憶手段501に備えたコンピュータ装置である。そしてこのコントロールボックス500は、前記シャーシ30へのブレードPC300の挿入を検知して、前記ブレードPC300が挿入された格納区画35のデータを前記区画データベース525から読み出し、前記ブレードPC300の備えるアドレス記憶手段たるBMC350に対し、シャーシ30および格納区画35の情報の書き込み処理を実行する、区画書込手段510を備えるものである。勿論、当該コントロールボックス500は、コンピュータ装置として、CPUやRAM、他装置と通信するNIC等を当然に備えている(図示はしない)。また前記区画書込手段510は、例えば、記憶手段501に格納されたプログラムとして生成され、このプログラムをCPUがRAMに読み出して実行することで実現される。
次に、本実施形態における前記情報処理システム10を構成する各装置について各々説明する。図2は本実施形態のバックアップサーバ(第2の情報処理装置)の構成例を示す図である。前記バックアップサーバ100は、本実施形態を実現する機能を備えるべくハードディスクドライブ101などに格納されたプログラム102をRAM103に読み出し、演算装置たるCPU104により実行する。
また、前記バックアップサーバ100は、各種ボタンなどの入力インターフェイス105、ディスプレイなどの出力インターフェイス106を必要に応じて備え、また、前記ブレードPC300やセッション管理サーバ400、配信サーバ600などとの間のデータ授受を担うNIC(Network Interface Card)107を有している。このNICには当然ながらMACアドレスが設定されている。
前記バックアップサーバ100は、前記NIC107により、前記ブレードPC300らと例えばインターネットやLANなどのネットワーク140を介して接続し、データ授受を実行する。また、バックアップサーバ100は、フラッシュROM108と、各機能部や装置等を接続するバスを中継するブリッジ109と、電源120と、を有する。
なお、前記フラッシュROM108には、BIOS135が記憶されている。CPU104は、電源120の投入後、先ずフラッシュROM108にアクセスしてBIOS135を実行することにより、バックアップサーバ100のシステム構成を認識する。また、ハードディスクドライブ101には、各機能部(手段)やデータベース類の他に、OS136が記憶されている。このOS136は、CPU104がバックアップサーバ100の各部を統括的に制御して、後述する各手段を実行するためのプログラムである。CPU104は、BIOS135に従い、ハードディスクドライブ101からOS136をRAM103にロードして実行する。これにより、CPU104は、バックアップサーバ100の各部を統括的に制御する。
続いて、前記バックアップサーバ100が、例えばプログラム102に基づき構成・保持する手段につき説明を行う。なお、前記バックアップサーバ100は、CB位置データベース125およびイメージデータベース126をハードディスクドライブ101に有しているものとする。勿論、CB位置データベース125およびイメージデータベース126は、管理サーバ100が自身のハードディスクドライブ101に備える例のみならず、ネットワーク140上に配置された他のサーバ装置に配置されているとしてもよい。
こうしたバックアップサーバ100は、前記CB位置データベース125に格納されているIPアドレスに基づいて該当格納区画のブレードPCに対する電源状態の問い合わせを実行して、前記ブレードPC300の電源がオンであるとの応答を得て、前記第1の情報処理装置に対し、該当ブレードPCのユーザ利用状態の問い合わせを行い、該当ブレードPCがユーザ利用中で無いとの応答を得て、前記ブレードPC300についてハイバネーションを行った上でネットーワークブートし、バックアップイメージの取得と前記イメージデータベース126への格納を実行する、バックアップ手段110を備える。
また、前記バックアップ手段110は、前記ユーザ利用状態の問い合わせにより、前記ブレードPC300がユーザ利用中であるとの応答を得て、前記セッション管理サーバ400から前記ブレードPC300の利用終了通知を受信するまで待機し、前記ブレードPC300についてハイバネーションを行った上でネットーワークブートし、バックアップイメージの取得と前記イメージデータベース126への格納を実行する。
また、前記バックアップ手段110は、前記電源状態の問い合わせにより、前記ブレードPC300の電源がオフであるとの応答を得て、該当ブレードPC300についてネットーワーク経由の電源投入およびネットワークブートを行い、前記ブレードPC300のバックアップイメージの取得とイメージデータベース126への格納を実行する。
また前記バックアップサーバ100は、前記BMC350へのIPアドレスの書込処理が実行された前記ブレードPC300について、前記CB位置データベース125においてリストア要否の情報を読み取って、前記リストア要否の情報が要リストアを示すものであるなら、該当ブレードPC300についてバックアップイメージをリストアするためのプログラムをネットーワークブートし、前記イメージデータベース126からバックアップイメージを読み出して前記ブレードPC300に対し書込を行ってリストア処理を実行する、リストア手段115を備える。
前記リストア手段115は、前記BMC350へのIPアドレスの書込処理が実行された前記ブレードPC300について、前記CB位置データベース125においてリストア要否の情報を読み取って、前記リストア要否の情報がプール対象を示すものであるなら、該当ブレードPC300の停止プログラムをネットーワークブートするか、または、該当ブレードPC300の電源制御装置=BMC350に電源オフの通知を送信する。
また、前記バックアップサーバ100は、ブレードPC300についてバックアップイメージの取得ないし格納の処理中に、前記セッション管理サーバ400から該当ブレードPC300についての利用要求を受信して、バックアップイメージの取得ないし格納の処理の残り時間の通知を前記セッション管理サーバ400に実行する、残り時間算定手段111を備える。
前記バックアップサーバ100は、ブレードPC300についてバックアップイメージの取得ないし格納の処理中に、前記セッション管理サーバ400から該当ブレードPCについての利用要求を受信して、前記ブレードPCの利用不可との通知を前記セッション管理サーバ400に実行する、利用不可通知手段112を備える。
また、前記バックアップサーバ100は、前記シャーシ30への挿入が検知されたブレードPC300からの要求を受けて、仮IPアドレスを前記ブレードPC300に割り当てて、前記仮IPアドレスに基づいて前記ブレードPC300のネットーワークブートを実行する、仮IP割当手段113を備える。
また、前記バックアップサーバ100は、前記ブレードPC300に対し、前記アドレス記憶手段たるBMC350に書き込みされているシャーシ30および格納区画35の情報の読み出しを要求して前記シャーシ30および格納区画35の情報を取得し、このシャーシ30および格納区画35に応じたIPアドレスを前記CB位置データベース125より読み出して、該当IPアドレスの通知を前記ブレードPC300に対し実行する、IPアドレス通知手段114を備える。
前記リストア手段115は、前記セッション管理サーバ400から、前記代替前ブレードPCおよび前記代替ブレードPCのシャーシ30および格納区画35の情報を受信し、前記代替ブレードPCに前記代替前ブレードPCのバックアップイメージをリストアするためのプログラムをネットーワークブートし、前記イメージデータベース126から該当バックアップイメージを読み出して前記代替ブレードPCに対し書込を行ってリストア処理を実行し、リストア完了の通知を前記セッション管理サーバ400に送信する。
前記バックアップサーバ100は、前記CB位置データベース125において、前記代替前ブレードPCについて前記リストア要否の情報を故障中に設定し、前記代替前ブレードPCについてメンテナンス完了通知を入力インターフェイス105を介して受けたなら、前記代替前ブレードPCについてのリストア要否の情報をプール状態へ変更する、状態設定手段116を備える。
また、前記バックアップサーバ100は、所定ユーザの端末に割り当てられた一時利用目的のブレードPCのIPアドレスに基づき、前記配信サーバ600に対し、前記一時利用目的のブレードPCのIPアドレスのデータを含む、アプリケーションストリーミング配信要求をNIC107を介して送信する手段を備えるとしてもよい。
続いて、前記端末200について説明する。図3は本実施形態の端末200の構成例を示す図である。一方、前記端末200は、セッション管理サーバ400の利用割当処理により、ネットワーク140を介してブレードPC300を利用する装置であって、シンクライアントとして必要な機能を備えるべくTPM201に格納されたプログラム202をRAM203に読み出し、演算装置たるCPU204により実行する。
また、前記端末200は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力インターフェイス205、ディスプレイなどの出力インターフェイス206、ならびにブレードPC300やセッション管理サーバ400、あるいは配信サーバ600などとの間のデータ授受を担うNIC207などを有している。
前記端末200は、前記NIC207により、前記ブレードPC300、セッション管理サーバ400らと例えばインターネットやLANなどのネットワーク140を介して接続し、データ授受を実行する。
こうした端末200として、本実施形態では、いわゆるHDDレスタイプのシンクライアント端末を想定したが、これに限定されることなく、通常のHDDを備える既存PCをシンクライアント化した端末を想定してもよい。この一般PCをシンクライアント端末化する技術については、OS内蔵のUSBメモリを一般PCのUSBインターフェイスに接続し、OS起動、VPN接続、管理サーバ認証といった一連のシンクライアント処理を実行するといった既存技術(参考:http://www.hitachi-ics.co.jp/product/seihin/jyourou/sec/sec.htmlなど)を採用すればよい。
また、前記端末200は、各種デバイスを接続するためのUSBポート244、フラッシュROM208、キーボードおよびマウスを接続するためのI/Oコネクタ260、ディスプレイを接続するためのビデオカード230、これらの各部201〜260と接続するバスを中継するブリッジ209、電源220を有する。前記CPU204は、電源220の投入後、先ずフラッシュROM208にアクセスしてBIOS235を実行することにより、端末200のシステム構成を認識する。
フラッシュROM208におけるOS236は、CPU204が端末200の各部201〜260を統括的に制御して、後述する各手段に対応するプログラムを実行するためのプログラムである。CPU204は、BIOS235に従い、フラッシュROM208からOS236をRAM203にロードして実行する。なお、本実施形態のOS236には、組み込み型OS等のフラッシュROM208に格納可能な比較的サイズの小さいものが利用される。
前記端末200は、USBポート244に接続された可搬型記憶媒体50(USBメモリ)が格納する利用者に関する証明書情報などと、入力インターフェイス205で入力された利用者のID、パスワードの情報とを用いた、セッション管理サーバ400に対するブレードPC割当要求処理やブレードPC300との接続確立処理を実行する機能をシンクライアント端末として当然に備える。
前記可搬型記憶媒体50の例としては、ICチップ55をプラスティック筐体などの適宜な収納ケースに格納し、端末200のUSBポート244にデータ通信可能に接続される、例えばUSBデバイスなどがあげられる。こうしたICチップ55は、CPUと、メモリとから構成される。なお、この可搬型記憶媒体50としては、ICカード部とフラッシュメモリとが一体化したメモリカードに、個人証明書や秘密鍵およびパスワード、モバイル利用に必要な各種アプリケーションソフトウェアをプレインストールした認証デバイス(商標名:KeyMobile)を採用することができる。この可搬型記憶媒体50がメモリにて記憶する情報としては、チップID、個人証明書や秘密鍵およびパスワードを格納した認証用情報、端末200とブレードPC300との間の利用割当処理を行う管理サーバ400のIPアドレス、およびソフトウェア(OSや、当該可搬型記憶媒体50の利用者に関する個人認証処理を実行するソフトウェアなど)が想定できる。
また、前記端末200は、ブレードPC300との接続確立処理の実行に伴い、当該端末200の入力インターフェイス205にて入力された操作情報を前記ブレードPC300のアドレスに宛てて送信し、当該操作情報に対応した映像情報を前記ブレードPC300から受信して、当該端末200の出力インターフェイス206に表示する機能もシンクライアント端末として当然に備える。
こうした前記端末200は、リモートクライアントプログラム270と、暗号化通信プログラム271とを前記TPM201にて備えている。前記リモートクライアントプログラム270は、端末200が遠隔からブレードPC300のデスクトップにアクセスするためのプログラムであり、例えばVNCのクライアント(ビューワ)プログラムである。CPU204は、OS236に従い、TPM201からリモートクライアントプログラム270をRAM203にロードして実行する。これにより、CPU204は、I/Oコネクタ260の入力情報(キーボードおよびマウスの操作内容)を、例えばVPNなどのネットワーク140を介してブレードPC300に送信すると共に、VPN等のネットワーク140を介して当該ブレードPC300から送られてきた映像情報(ディスプレイのデスクトップ画面)をビデオカード230に接続されたディスプレイなどの出力インターフェイス206に出力する。
また、前記暗号化通信プログラム271は、リモートクライアントプログラム270より通知されたアドレスを持つブレードPC300との間に、VPNなどのセキュアな通信ネットワークを構築するための通信プログラムである。例えば、IPsecを用いた通信プログラムを想定できる。CPU204は、OS236に従い、TPM201から暗号化通信プログラム271をRAM203にロードして実行する。これにより、CPU204は、NIC207を介して自端末200に割当てされたブレードPC300へ通信開始要求を送信して、当該ブレードPC300との間にVPN等のネットワークを構築し、このVPN等を介して当該ブレードPC300と通信する。
また、本実施形態における前記端末200は、機器情報273を前記TPM201にて備えている。前記機器情報273は、端末200から接続確立要求等を送信する際に、この接続確立要求等に含まれる、当該端末200の認証用情報である。具体的には、例えば、端末200のIDや型番、MACアドレスなどが想定できる。
なお、前記TPM201は、スマートカード(IC カード)に搭載されるセキュリティチップに似た機能を持っており、非対称鍵による演算機能、またこれら鍵を安全に保管するための耐タンパー性を有するハードウェアチップである。このTPM201の機能としては、例えば、RSA(Rivest-Shamir-Adleman Scheme)秘密鍵の生成・保管、RSA秘密鍵による演算(署名、暗号化、復号)、SHA−1(Secure Hash Algorithm 1)のハッシュ演算、プラットフォーム状態情報(ソフトウェアの計測値)の保持(PCR)、 鍵、証明書、クレデンシャルの信頼チェーンの保持、高品質な乱数生成、不揮発性メモリ、その他Opt-in やI/O等があげられる。
前記TPM201は、暗号鍵(非対称鍵)の生成・保管・演算機能の他、プラットフォーム状態情報(ソフトウェアの計測値)をTPM内のレジスタPCR(Platform Configuration Registers)に安全に保管し、通知する機能を有している。TPMの最新仕様では、さらにローカリティやデリゲーション(権限委譲)等の機能が追加されている。なお、TPM201は、物理的にプラットフォームのパーツ(マザーボードなど)に取り付けることとなっている。
ここで、上記端末200は、代替ブレードPCの割当がなされるまでの一時利用目的でアプリケーションストリーミング配信を前記配信サーバ600から受ける端末となりうるものである。勿論、前記配信サーバ600からのストリーミング配信の対象を端末200ではなくブレードPC300としてもよい。この場合、前記ブレードPC300にストリーミング配信されたアプリケーションのデスクトップイメージが、当該ブレードPC300から端末200(当然、ブレードPC300と接続確立されている)に転送される状況となる。
前記配信サーバ600からアプリケーションのストリーミング配信を受ける場合の前記端末200は、専用のソフト(例:ストリーミングクライアント210)をTPM201に備えることを想定できる。当該端末200において起動した前記ストリーミングクライアント210は、配信サーバ600で一括管理されているアプリケーションのインストールイメージを取得することとなる。このインストールイメージは端末200にキャッシュでき、配信サーバ600と端末200とがオフライン状態となっても、当該端末200で該当アプリケーションの利用が可能となる。なお、前記インストールイメージは、該当アプリケーションのインストールに必要なファイルやレジストリ設定情報などがパッケージ化されたデータである。
なお、前記配信サーバ600は、ハードディスクドライブなど適宜な記憶手段601において、アプリケーションストリーミングを実行するためのストリーミングサーバプログラム610と、配信先リスト611と、配信対象のアプリケーションを格納したアプリケーションデータベース612とを記憶している。前記配信先リスト611は、一時利用目的のアプリケーション利用希望者のデータ(ユーザや端末200、或いはブレードPC300の各IDまたはIPアドレス、など)が、前記バックアップサーバ100により格納される。
また、配信サーバ600は、前記バックアップサーバ100よりストリーミング配信要求を受けて、この要求に応じて端末200(またはブレードPC300)に対するアプリケーションのストリーミング配信を実行することとなる。なお、前記ストリーミング配信要求には、配信対象のアプリケーションのIDと、配信先となる端末200のIDやネットワーク上のアドレス、端末ユーザのIDなどを含んでいる。
前記ストリーミング配信要求を受けた配信サーバ600では、ストリーミングサーバプログラムが起動する。そしてこのストリーミングサーバプログラムが、配信対象のアプリケーションを前記配信要求が含むアプリケーションIDに基づいて前記アプリケーションデータベースで検索して特定する。また、ここで特定したアプリケーションについて、前記ストリーミングサーバプログラムは、例えば前記ユーザの端末200のIPアドレスにあててストリーミング配信を実行する。このストリーミングサーバプログラムは、前記端末200が備えるストリーミングクライアント210と通信しながら前記ストリーミング配信を実行する。
次に、ブレードPC300について説明する。図4は本実施形態のブレードPC300の構成例を示す図である。一方、前記ブレードPC300は、データセンターなどに設置されたシャーシ30に挿入されて使用され、前記端末200とシンクライアント接続を形成するサーバ装置である。前記シャーシ30は、複数の格納区画35を備えており、格納区画35ごとにブレードPC300の挿入を受け付けることができる。また、ブレードPC300は、セッション管理サーバ400の利用割当処理により、端末200からのネットワークを介した利用を受付ける装置であり、更には、前記バックアップサーバ100によるデプロイメント処理の対象となる装置であって、必要な機能を備えるべくHDD(ハードディスクドライブ)301などに格納されたプログラム302をRAM303に読み出し、演算装置たるCPU304により実行する。
また、前記ブレードPC300は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力インターフェイス305や、ディスプレイなどの出力インターフェイス306を必要に応じて備え、また、バックアップサーバ100や端末200、セッション管理サーバ400、あるいは配信サーバ600などとの間のデータ授受を担うNIC307などを有している。
前記ブレードPC300は、前記NIC307により、前記バックアップサーバ100や端末200、セッション管理サーバ400らと例えばインターネットやLANなどのネットワーク140を介して接続し、データ授受を実行する。また、ブレードPC300は、他にも、フラッシュROM(Read Only Memory)308と、デスクトップの映像情報を生成するビデオカード330と、これらの各部301〜330とバスとを中継するブリッジ309と、電源320とを有する。
前記フラッシュROM308には、BIOS(Basic Input/Output System)335が記憶されている。前記CPU304は、電源320の投入後、先ずフラッシュROM308にアクセスしてBIOS335を実行することにより、ブレードPC300のシステム構成を認識する。
こうしたブレードPC300は、前記HDD301において、リモートサーバプログラム370、暗号化通信プログラム371、OS(Operating System)336、セッション管理エージェント390を格納している。前記OS336は、CPU304がブレードPC300の各部301〜330を統括的に制御して、各手段を実現する各プログラムを実行するためのプログラムである。CPU304は、BIOS335に従い、HDD301からOS336をRAM303にロードして実行する。これにより、CPU304は、ブレードPC300の各部301〜330を統括的に制御する。
また、リモートサーバプログラム370は、ブレードPC300のデスクトップを端末200から遠隔操作を可能とするためのプログラムであり、例えばAT&Tケンブリッジ研究所で開発されたVNC(Virtual Network Computing)のサーバプログラムである。CPU304は、OS336に従い、HDD301からリモートサーバプログラム370をRAM303にロードして実行する。これにより、CPU304は、VPN等のネットワーク140を介して端末200から送られてきた入力情報(キーボードおよびマウスの操作内容)を受信し処理すると共に、処理結果を示す映像情報(ディスプレイのデスクトップ画面)を、VPN等のネットワーク140を介して端末200に送信する。
また、前記暗号化通信プログラム371は、端末200との間にVPN等のネットワーク140を構築するための通信プログラムであり、例えばIPsec(Security Architecture for the Internet Protocol)を用いた通信プログラムである。CPU304は、OS336に従い、HDD301から暗号化通信プログラム371をRAM303にロードして実行する。これにより、CPU304は、NIC307を介して端末200から受付けた接続確立要求等に従い、端末200との間にVPN等のセキュアなネットワーク140を構築し、このVPN等を介して端末200と通信を行なう。
また、前記ブレードPC300は、前記配信サーバ600からアプリケーションのストリーミング配信を受ける場合、専用のソフト(例:ストリーミングクライアント310)をHDD301に備えることを想定できる。
また、前記ブレードPC300は、自身の格納先であるシャーシ30および前記シャーシ30での格納区画35の情報と、当該ブレードPC用のIPアドレスとを記憶するBMC350(アドレス記憶手段)を備える。前記BMC350は、当該ブレードPCの電源状態について、前記IPアドレスに基づいた他装置(バックアップサーバ100)からのデータ要求に応じて応答処理を実行する手段ともなる。
前記BMC350、つまり、ベースボード管理コントローラは、IPMI仕様をサポートし、前記ブレードPC300におけるシステムボード上の各種センサー (温度、電圧、ファン、バスなど)等と通信して所定イベントを監視し、パラメータが基準値を超えた場合に警告とログイベントを送信したり、電源等のリモート制御を行う。
前記ブレードPC300は、前記バックアップサーバ100からIPアドレスを受信し、前記アドレス記憶手段たるBMC350への前記IPアドレスの書込処理を実行する、IP書込手段311を備える。このIP書込手段311は、前記ブレードPC300が、例えばプログラム302に基づき構成・保持する手段である。
また、前記セッション管理エージェント390は、セッション管理サーバ400を介して割り当てされた端末200とのシンクライアント接続におけるセッション状態を管理するエージェントである。例えば、端末200とのシンクライアント接続終了をモニタリングしており、セッション終了時にはその旨をセッション管理サーバ400に通知する。
続いて、前記セッション管理サーバ400について説明する。図5は、本実施形態のセッション管理サーバ(第1の情報処理装置)の構成例を示す図である。前記セッション管理サーバ400は、前記端末200各々の利用者が用いる可搬型記憶媒体50の格納情報と、前記可搬型記憶媒体50に紐付いた端末200の利用割当先となる前記ブレードPC300のアドレスとの対応関係を格納する割当管理データベースをハードディスクなどの適宜な記憶装置に有して、端末200とブレードPC300との接続確立処理時に、端末200へのブレードPC300の割当処理等を担う、シンクライアントシステムにおける一般的な管理サーバを想定できる。
図に示すセッション管理サーバ400は、本実施形態を実現する機能を備えるべくハードディスクドライブ401などに格納されたプログラム402をRAM403に読み出し、演算装置たるCPU404により実行する。
また、前記セッション管理サーバ400は、各種ボタンなどの入力インターフェイス405、ディスプレイなどの出力インターフェイス406を必要に応じて備え、また、前記ブレードPC300や端末200、バックアップサーバ100などとの間のデータ授受を担うNIC(Network Interface Card)407を有している。
前記セッション管理サーバ400は、前記NIC407により、前記ブレードPC300や端末200らと例えばインターネットやLANなどのネットワーク140を介して接続し、データ授受を実行する。また、セッション管理サーバ400は、フラッシュROM408と、各機能部や装置等を接続するバスを中継するブリッジ409と、電源420と、を有する。
なお、前記フラッシュROM408には、BIOS435が記憶されている。CPU404は、電源420の投入後、先ずフラッシュROM408にアクセスしてBIOS435を実行することにより、セッション管理サーバ400のシステム構成を認識する。また、ハードディスクドライブ401には、各機能部(手段)やデータベース類の他に、OS436が記憶されている。このOS436は、CPU404がセッション管理サーバ400の各部を統括的に制御して、後述する各手段を実行するためのプログラムである。CPU404は、BIOS435に従い、ハードディスクドライブ401からOS436をRAM403にロードして実行する。これにより、CPU404は、セッション管理サーバ400の各部を統括的に制御する。
続いて、前記セッション管理サーバ400が、例えばプログラム402に基づき構成・保持する手段につき説明を行う。なお、前記セッション管理サーバ400は、割当管理データベース425をハードディスクドライブ401に有しているものとする。勿論、割当管理データベース425は、セッション管理サーバ400が自身のハードディスクドライブ401に備える例のみならず、ネットワーク140上に配置された他のサーバ装置に配置されているとしてもよい。
こうしたセッション管理サーバ400は、シンクライアント接続するブレードPC300と端末200とのセッション管理を実行するセッション管理手段410を備える。前記セッション管理手段410は、リストア完了の通知を前記バックアップサーバ100より受信し、前記代替前ブレードPCと前記端末200とのシンクライアント接続処理を実行する。
また、このセッション管理サーバ400は、各ブレードPC300の格納先となるシャーシ30と格納区画35の情報、格納区画35に応じたIPアドレス、および端末への割当状況の情報を格納した割当管理データベース425を備える。この割当管理データベース425は、バックアップサーバ100が備えているCB位置データベース125と同様のデータ構成を備えるものであり、バックアップサーバ100とセッション管理サーバ400とでデータ同期を図っているとすれば好適である。
また、前記セッション管理サーバ400は、ユーザ利用中の前記ブレードPC300についてセッション終了を検知して、セッション終了から所定時間経過後にバックアップサーバ100に対し、前記ブレードPC300の利用終了通知の送信処理を実行する、終了通知手段411を備える。なお、セッション終了については、ブレードPC300にセットされているセッション管理エージェント390からの通知を受けて検知するものとする。
また、前記セッション管理サーバ400は、前記残り時間の通知を前記バックアップサーバ100より受信し、この通知の送信を前記ブレードPC300の利用を要求していた端末200に実行する、残り時間通知手段412を備える。
前記セッション管理サーバ400は、前記利用不可の通知をバックアップサーバ100より受信し、どの端末ともセッションが切断され現在利用可能なブレードPCの割当を、前記利用要求を行ってきた端末200に実行する、一時割当手段413を備える。前記一時割当手段413は、前記バックアップサーバ100における前記代替ブレードPCに対するリストア処理に際し、どの端末ともセッションが切断され現在利用可能なブレードPCの割当を、前記代替前ブレードPCが割り当てられていた端末に実行する。
前記セッション管理サーバ400は、端末200より代替ブレードPCの要求通知を受信して、割当状況がプール状態となっているブレードPCを前記割当管理データベース425の割当状況の情報より特定し、ここで特定した代替ブレードPCの前記端末200への割当処理を実行する、代替割当手段414を備える。
また、前記セッション管理サーバ400は、前記要求通知の受信時までは前記端末200に割り当てられていた代替前ブレードPCと前記代替ブレードPCのそれぞれ格納先となるシャーシ30および格納区画35の情報を、前記バックアップサーバ100に送信する、代替情報通知手段415を備える。
なお、これまで示した情報処理システム10を構成する各装置における各手段110〜116、210、310〜311、410〜415らは、ハードウェアとして実現してもよいし、メモリやHDD(Hard Disk Drive)などの適宜な記憶装置に格納したプログラムとして実現するとしてもよい。この場合、前記各CPUがプログラム実行に合わせて記憶装置より該当プログラムをRAMに読み出して、これを実行することとなる。
また、前記ネットワーク140に関しては、インターネット、LANの他、ATM回線や専用回線、WAN(Wide Area Network)、電灯線ネットワーク、無線ネットワーク、公衆回線網、携帯電話網など様々なネットワークを採用することも出来る。また、VPN(Virtual Private Network)など仮想専用ネットワーク技術を用いれば、インターネットを採用した際にセキュリティ性を高めた通信が確立され好適である。
−−−データベース構造−−−
次に、本実施形態において用いるデータベースの構造について説明する。図6は本実施形態における、(a)CB位置データベース125、(b)イメージデータベース126、の各データ構造例を示す図である。
前記CB位置データベース125は、バックアップサーバ100がその記憶手段101に備えるデータベースであり、例えば、シャーシ30の格納区画35のIDをキーとして、格納区画に応じたIPアドレス、該当格納区画に挿入されているブレードPC300のIDおよびそのMACアドレス、前記ブレードPC300について取得されているバックアップイメージ名とその格納先情報、前記ブレードPC300に関する状態情報(MACアドレス未登録、IPアドレス割当済み、プール状態、リストア要/否、故障中など)といったデータを関連づけたレコードの集合体となっている。
また、前記イメージデータベース126は、前記バックアップサーバ100がその記憶手段101に備えるデータベースであり、例えば、ブレードPC300について取得したバックアップイメージを、シャーシIDおよびその格納区画のID、ユーザID、ブレードPC300のMACアドレス、イメージ取得日時などと対応づけて格納した構造となっている。
図7は本実施形態における、(a)割当管理データベース425、(b)区画データベース525の各データ構造例を示す図である。前記割当管理データベース425は、前記セッション管理サーバ400がその記憶手段401に備えるデータベースであり、例えば、各ブレードPC300について、割当先のユーザID(または端末ID)、格納先となるシャーシ30と格納区画35の情報(バックアップサーバ100から取得)、格納区画に応じたIPアドレス(バックアップサーバ100から取得)、MACアドレス、セッション状態、および端末200への割当状況の情報を格納したデータ構造となっている。この割当管理データベース425は、バックアップサーバ100が備えているCB位置データベース125と同様のデータ構成を備えるものであり、バックアップサーバ100とセッション管理サーバ400とでデータ同期を図っているとすれば好適である。データベース間でのデータ同期は既存技術を採用すればよい。
また、前記区画データベース525は、前記コントロールボックス500がその記憶手段501に備えるものであり、管理対象のシャーシ30が備えている格納区画35のIDおよび位置の情報を記憶するデータベースである。
−−−処理フロー例1−−−
以下、本実施形態における情報処理方法の実際手順について、図に基づき説明する。図8は本実施形態における情報処理方法の処理フロー例1を示す図である。なお、以下で説明する情報処理方法に対応する各種動作は、前記情報処理装システム10を構成する各装置らがRAMに読み出して実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
ここでは、前記端末200によるブレードPC300の利用と、前記端末200に割り当てられているブレードPC300について前記バックアップサーバ100によるバックアップ処理との衝突を回避して、適宜な処理を実行する例について説明する。この場合、まず、あるユーザの端末200がセッション管理サーバ400に対してブレードPC300の利用要求を行ったとする(s10)。この要求は通常のシンクライアント接続を行う際の手順と同じである。
セッション管理サーバ400では前記端末200からの前記利用要求を受け、セッション管理手段410が、前記利用要求に含まれているユーザID等の認証情報に基づいた認証を実行する。認証処理を問題なく通過できた利用要求については、前記ユーザID(例えば、‘u00016’)に基づく割当ブレードPC300の検索を前記割当管理データベース425で実行する。これにより、セッション管理サーバ400は、前記ユーザ‘u00016’に割り当てられているブレードPC300‘bp0101’とその位置やIPアドレスを特定する。
前記セッション管理サーバ400は、前記特定したブレードPC300について、その状態をバックアップサーバ100に対し問い合わせする(s11)。バックアップサーバ100では前記問い合わせを受けて、前記ブレードPC‘bp0101’について、バックアップイメージの取得ないし格納といったバックアップの処理中であるか確認する(バックアップサーバ自身での処理であるので実行中のバックアップ処理を自ら確認すればよい)。前記ブレードPC300についてバックアップ処理中でなければ、前記利用不可通知手段112は、前記セッション管理サーバ400に対し、該当ブレードPC‘bp0101’の利用可との通知を実行する(s12)。
一方、前記セッション管理サーバ400は、バックアップサーバ100から前記ブレードPC300の利用可との通知を受信し、前記ブレードPC‘bp0101’についてのセッション確立用のデータと共に前記端末200に送信する(s13)。端末200ではセッション確立用のデータ等に基づいて前記ブレードPC‘bp0101’とのシンクライアント接続を確立し、利用を開始する(s14)。
−−−処理フロー例2−−−
他方、前記利用要求に対応するブレードPCについてバックアップ処理が実行中である場合を想定する。図9は、本実施形態における情報処理方法の処理フロー例2を示す図である。この場合、まず、あるユーザの端末200がセッション管理サーバ400に対してブレードPC300の利用要求を行ったとする(s20)。この要求は通常のシンクライアント接続を行う際の手順と同じである。
セッション管理サーバ400では前記端末200からの前記利用要求を受け、セッション管理手段410が、前記利用要求に含まれているユーザID等の認証情報に基づいた認証を実行する。認証処理を問題なく通過できた利用要求については、前記ユーザID(例えば、‘u00005’)に基づく割当ブレードPC300の検索を前記割当管理データベース425で実行する。これにより、セッション管理サーバ400は、前記ユーザ‘u00005’に割り当てられているブレードPC300‘bp0011’とその位置やIPアドレスを特定する。前記セッション管理サーバ400は、前記特定したブレードPC300について、その状態をバックアップサーバ100に対し問い合わせする(s21)。 バックアップサーバ100では前記問い合わせを受けて、前記ブレードPC‘bp0011’について、バックアップイメージの取得ないし格納といったバックアップの処理中であるか確認する(バックアップサーバ自身での処理であるので実行中のバックアップ処理を自ら確認すればよい)。前記ブレードPC300についてバックアップ処理中であれば、前記残り時間算定手段111は、前記ブレードPC300についてのバックアップイメージの取得ないし格納の処理の残り時間を算定し前記セッション管理サーバ400に通知する(s22)。この時、前記利用不可通知手段112は、前記セッション管理サーバ400に対し、該当ブレードPC‘bp0011’の利用不可との通知をあわせて実行する。
一方、前記セッション管理サーバ400の残り時間通知手段412は、利用不可との通知と前記残り時間の通知を受信し、これら通知を前記ブレードPC‘bp0011’の利用を要求していた端末200に送信する(s23)。またこの時、前記セッション管理サーバ400の一時割当手段413は、前記利用不可の通知に応じて、どの端末ともセッションが切断され現在利用可能なブレードPCの割当を、前記利用要求を行ってきた端末200に実行する。前記一時割当手段413は、割当管理データベース425において、例えば、割当状況が「プール」となっているブレードPC‘bp0002’を特定し、このブレードPCとのセッション確立用のデータを前記端末200に通知することとなる。
前記端末200ではセッション確立用のデータ等に基づいて、一時利用目的の前記ブレードPC‘bp0002’とシンクライアント接続を確立し、利用を開始する(s24)。
−−−処理フロー例3−−−
続いて、端末200によるブレードPC300の利用終了を待って、バックアップサーバ100によるバックアップ処理を実行する手順について説明する。図10は、本実施形態における情報処理方法の処理フロー例3を示す図である。なお、バックアップサーバ100において、管理者によりバックアップ開始時期の設定があらかじめなされているとする。
ここで前記バックアップサーバ100のバックアップ手段110は、バックアップ時期が到来したブレードPC300について、前記CB位置データベース125に格納されているIPアドレスに基づく、該当ブレードPCに対する電源状態の問い合わせを実行する(s100)。ブレードPC300では前記問い合わせに対して前記BMC350が対応し、ブレードPC300の電源状態のデータを返す。
例えば、BMC350が返してきたデータが、「電源オンである」との応答であった時、前記バックアップサーバ100のバックアップ手段110は、前記セッション管理サーバ400に対し、該当ブレードPCのユーザ利用状態の問い合わせを行う(s101)。
前記セッション管理サーバ400では前記割当管理データベース425で該当ブレードPC300についての割当状況を確認し、例えば、「利用中」との応答を、前記バックアップサーバ100に返信したとする(s102)。この時、前記バックアップサーバ100のバックアップ手段110は、前記セッション管理サーバ400から前記ブレードPC300の利用終了通知を受信するまで待機する。
一方、前記セッション管理サーバ400の終了通知手段411は、ユーザ利用中の前記ブレードPC300についてセッション状態を監視している。また、前記ブレードPC300を利用中であった端末200からセッション終了の指示が出たとする(s103)。この指示を受けた前記ブレードPC300では、前記セッション管理エージェント390が、利用終了の通知をセッション管理サーバ400に送信する(s104)。セッション管理サーバ400でも、この通知を受信することで前記ブレードPC300の利用終了を検知し、セッション終了から所定時間経過後にバックアップサーバ100に対し、前記ブレードPC300の利用終了通知の送信処理を実行する(s105)。
他方、前記バックアップサーバ100の側では、前記バックアップ手段110が、利用終了と認識できた前記ブレードPC300について、前記CB位置データベース125に格納されているIPアドレスに基づく、該当ブレードPCに対する電源状態の問い合わせを実行し、「電源オン」状態であったなら、前記ブレードPC300についてハイバネーションを行う(s106)。なお、前記電源状態の問い合わせにより、前記ブレードPC300が「電源オフ」であるとの応答を得た場合、該当ブレードPC300についてネットーワーク経由の電源投入(例:wake-on-lanなどによる)を行う。
また、前記バックアップ手段110は、前記ハイバネーションを行った上でネットーワークブート要求を前記ブレードPC300に行う(s107)。そして、前記ブレードPC300からのネットーワークブートイメージの要求(s108)に応じてネットーワークブートイメージの送信を実行する(s109)。ブレードPC300では前記ネットーワークブートイメージによりバックアップ処理用のアプリケーションが起動し、自身の記憶手段についてバックアップイメージを取得し、バックアップサーバ100に送信する(s110)。バックアップサーバ100ではこのバックアップイメージを受信して取得し、イメージデータベース126へ格納する。こうして、ブレードPC300のディスクイメージをバックアップする。
−−−処理フロー例4−−−
図11は、本実施形態における情報処理方法の処理フロー例4を示す図である。次に、シャーシ30の格納区画35に、新たなブレードPC300がセットされた時の処理について説明する。まず、あるシャーシ30で空いている格納区画35に対し、新規なブレードPC300が挿入されたとする。
この時、前記シャーシ30を管理している前記コントロールボックス500の区画書込手段510は、前記ブレードPC300の挿入を、例えば、格納区画毎に備わる電気接点やネットーワーク端子等とブレードPC側の端子との接続を認識することで検知する(s150)。また、前記区画書込手段510は、前記ブレードPC300が挿入された格納区画35の情報(例えば、シャーシIDや格納区画IDなど)を前記区画データベース525から読み出し、前記ブレードPC300の備えるアドレス記憶手段たるBMC350に対し、シャーシ30および格納区画35の情報の書き込み処理を実行する(s151)。 続いて前記コントロールボックス500は、例えば、Wake-On-LAN要求を前記ブレードPC300に行って、ブレードPC300の起動を行う(s152)。ここで起動したブレードPC300は、例えば、DHCPに従って自身のIPアドレス要求を前記ネットーワーク140上にマルチキャストする(s153)。
一方、前記バックアップサーバ100の仮IP割当手段113は、前記ブレードPC300からのIPアドレス要求を受けて、仮IPアドレスを割り当てる(s154)。また、この仮IPアドレスに基づいて前記ブレードPC300のネットーワークブート(ネットーワークブート起動要求→ネットーワークブートイメージ要求受信→ネットーワークブートイメージ送信→起動)を実行する(s155)。前記ブレードPC300は前記バックアップサーバ100からネットーワークブートイメージを受信してシステム起動する(s156)。
また、前記バックアップサーバ100のIPアドレス通知手段114は、前記ブレードPC300に対し、前記アドレス記憶手段たるBMC350に書き込みされているシャーシ30および格納区画35の情報の読み出しを要求して前記シャーシ30および格納区画35の情報を取得する(s157)。例えば、ここで取得したシャーシID(例えば、‘s0001’)および格納区画ID(例えば、‘c1004’)に応じたIPアドレス‘192.168・・・13’を前記CB位置データベース125より読み出して、該当IPアドレスの通知を前記ブレードPC300に対し実行する(s158)。
これに対し前記ブレードPC300のIP書込手段311は、前記バックアップサーバ100からIPアドレスを受信し、前記アドレス記憶手段たるBMC350へ書込み処理する(s159)。さらに、ブレードPC300は、自身のMACアドレスをバックアップサーバ100に送信する(s160)。バックアップサーバ側では、このMACアドレスを受信して、CB位置データベース125における前記IPアドレスに対応づけて格納することとなる。
なお、本実施形態においてバックアップ処理がなされるブレードPC300は、すべてこうした、シャーシID、格納区画ID、IPアドレス、およびMACアドレスの確認や設定が事前になされているものとする。
−−−処理フロー例5−−−
続いて、リストア処理について説明する。図12は、本実施形態における情報処理方法の処理フロー例5を示す図である。ここでのリストア処理は、シャーシ30の格納区画35に新規に挿入されたブレードPC300に対するリストア処理を想定している。
この場合、前記バックアップサーバ100のリストア手段115は、前記BMC350へのIPアドレスの書込処理が実行された前記ブレードPC300(上記処理フロー例4で処理されたもの)について、前記CB位置データベース125においてリストア要否の情報を読み取る(s170)。
そしてこのリストア要否の情報が「要リストア」を示すものであるなら、前記リストア手段115は、該当ブレードPC300についてバックアップイメージをリストアするためのプログラムをネットーワークブートする(s171)。また、前記ブレードPC300のIDをキーに、前記セッション管理サーバ400に対して前記ブレードPC300が割り当てられたユーザの検索を依頼する。これにより前記セッション管理サーバ400から得たユーザIDをキーに、前記イメージデータベース126から、前記ユーザのバックアップイメージを読み出す(s172)。そして前記ブレードPC300に対し前記バックアップイメージの書込を行ってリストア処理を実行する(s173)。
一方、前記リストア手段115は、前記リストア要否の情報が「プール」を示すものであるなら、該当ブレードPC300の停止プログラムをネットーワークブートするか、または、該当ブレードPC300の電源制御装置=BMC350に電源オフの通知を送信することとなる。
−−−処理フロー例6−−−
次に、ブレードPCに障害が発生し、これを利用していたユーザから代替装置の要求がある状況を想定する。図13は、本実施形態における情報処理方法の処理フロー例6を示す図である。前記端末200が元々割り当てられていたブレードPCを利用しようとした際、セッション確立に失敗したとする(s200)。
ここで前記セッション管理サーバ400の代替割当手段414は、前記端末200より代替ブレードPCの要求通知を受信する(s201)。そして、割当状況が「プール」状態となっているブレードPC300を前記割当管理データベース425の割当状況の情報より特定する。また、ここで特定した代替ブレードPCの前記端末200への割当処理を実行する。
また、前記セッション管理サーバ400の代替情報通知手段415は、前記要求通知の受信時までは前記端末200に割り当てられていた代替前ブレードPCと前記代替ブレードPCのそれぞれ格納先となるシャーシ30および格納区画35のIDを、前記バックアップサーバ100に送信する(s202)。
一方、前記バックアップサーバ100の状態設定手段116は、前記CB位置データベース125において、前記代替前ブレードPCについて前記リストア要否の情報を「故障中」に設定する。また、代替ブレードPCについては、前記リストア要否の情報を「要リストア」に設定する。
また、前記バックアップサーバ100のリストア手段115は、前記セッション管理サーバ400から、前記代替前ブレードPCおよび前記代替ブレードPCのシャーシ30および格納区画35の情報を受信し、前記代替ブレードPCに前記代替前ブレードPCのバックアップイメージをリストアするため、前記代替ブレードPCに対してネットーワークブート起動要求を通知する(s203)。そして、前記代替ブレードPCからネットーワークブートイメージの要求を受信し(s204)、ネットーワークブートイメージを返信する(s205)。前記代替ブレードPCでは前記ネットーワークブートイメージにより起動がなされる。
他方、前記バックアップサーバ100のリストア手段115は、前記イメージデータベース126から前記ユーザのIDに対応するバックアップイメージを読み出して前記代替ブレードPCに対し送信・書込を行ってリストア処理を実行する(s206)。なお、前記残り時間通知手段412は、リストア処理の残り時間の推定とセッション管理サーバ400への通知処理を行うものとする(s207)。このため前記残り時間通知手段412は、例えば、リストア対象の前記代替ブレードPCに対する所定サイズのデータの書込速度から前記残り時間を推定する。例えば、前記代替ブレードPCでのデータ書込速度が2Gバイト/分であり、現時点でまだ書き込めていないバックアップイメージが、30Gバイトであった時、残りのリストア時間は30G/2G=15分となる。
一方、前記セッション管理サーバ400の一時割当手段413は、前記リストア完了までの予測時間の通知をバックアップサーバ100から受信すると共に、どの端末ともセッションが切断され現在利用可能な一時利用目的のブレードPCの割当を、前記代替前ブレードPCが割り当てられていた端末に実行する。そして、前記前記リストア完了までの予測時間の情報と、一時利用目的のブレードPCの情報(セッション確立用)とを、前記端末200に送信する(s208)。
前記端末200では前記一時利用目的のブレードPCの情報を得て、該当ブレードPCとのセッションを確立して利用を開始する(s209)。上記例であれば、リストア完了までの約15分間強の使用となるであろう。
その後、時間が経過し、前記代替ブレードPCに対するバックアップイメージの書込、つまりリストア処理が完了した時、前記バックアップサーバ100のリストア手段115は、リストア完了通知を前記セッション管理サーバ400に送信する(s210)。この時、前記セッション管理サーバ400のセッション管理手段410は、リストア完了の通知を前記バックアップサーバ100より受信し、このリストア完了通知と共に、前記端末200に対し、代替前ブレードPCとのセッション確立用のデータを送信する(s211)。また、前記端末200からの要求に応じて、前記端末200と前記代替ブレードPCとのシンクライアント接続処理を実行する。これにより前記端末200のユーザは、障害が発生していた代替前のブレードPCに代えて、故障直前までの自分の利用環境を反映した代替ブレードPCの利用を開始できる。
なお、上記リストア処理中に、一時利用目的のブレードPCを前記端末200に割り当てることに代えて、別の環境(アプリケーションストリーミングの環境など)を提供してもよい。こうした一時利用目的の環境の提供に際しては、例えば、バックアップサーバ100ないしセッション管理サーバ400が、前記端末200に対して環境選択画面のデータ等を送信し、この画面をインターフェイスとしてユーザの環境選択を受け付けるとしてもよい。また、障害が発生するなどした前記代替前ブレードPCは、初期化して「プール」状態のブレードPCとして、その情報をCB位置データベース125に設定してもよい。この場合、前記バックアップサーバ100の状態設定手段116は、前記代替前ブレードPCについてメンテナンス完了通知を入力インターフェイス105を介して受けて、前記CB位置データベース125における代替前ブレードPCについてのリストア要否の情報を「プール」状態へ変更する。
以上本実施形態によれば、代替環境をユーザ側に提供する状況に際し、該当ユーザの直近の利用状態(ハイバネーション等による)に応じた内容の代替環境が提供されることとなり、前記ユーザが必要とするアプリケーションやデータ類が代替環境で確実に提供される。また、ディスクイメージでバックアップを取得する場合、ユーザ利用中か否かを確認した上でバックアップ動作に入るため、バックアップ処理のために作業中断をユーザに強いるといった必要は無くなる。
さらに、割り当てられていたブレードPCに障害が発生したユーザについて、新たに割り当てられる代替ブレードPCに対し、該当ユーザのバックアップイメージを確実に特定し、これを前記代替ブレードPCのセット場所に応じたIPアドレスを利用してリストアすることが可能となる。本実施形態において、前記IPアドレスはシャーシにおける格納区画と固定的関係になっており、格納区画に挿入されたブレードPCのIPアドレスはその格納区画に対応して自動的に決定される。そのため、多数のシャーシにおける多数の格納区画をまたがってIPアドレスが入り乱れて設定されるといった事態も発生しない。本実施形態におけるIPアドレスは、例えば、常に格納区画の配列順に順序正しく設定・管理され、管理が非常に容易である。
したがって、シンクライアントシステムにおいて、ブレードPCのユーザ利用状態を反映したユーザごとのバックアップイメージの効率的取得や、代替環境たるブレードPCへの対応ユーザのバックアップイメージの確実なリストアが可能となる。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。