(57)【特許請求の範囲】
【請求項１】
利用者にサービスを提供する複数のサーバで構成されるリソースプールと、前記リソースプール内の全サーバが提供する前記サービスを管理するリソースマネージャとを備えるクラスタシステムであって、
前記リソースマネージャは、
前記サーバを一意に識別するサーバ識別子と、当該サーバが提供しているサービスを示すサービス種別または当該サーバが待機していることを示すサーバ状態と、当該サーバに固有のハードウェアを示すハードウェア種別とを対応づけて記憶するサーバデータベースと、
前記サービス種別と、前記サービス種別が示すサービスを提供するソフトウェアが含まれるテンプレートディスクイメージの格納場所とを含むテンプレートディスクイメージ対応表を記憶し、前記テンプレートディスクイメージの要求を示すテンプレートディスクイメージ取得要求に含まれるサービス種別を検索条件として、前記テンプレートディスクイメージ対応表から前記テンプレートディスクイメージの格納場所を検索し、検索した前記テンプレートディスクイメージの格納場所に格納されたテンプレートディスクイメージを出力するテンプレートイメージレポジトリと、
前記サービス種別と、前記ハードウェア種別と、前記サーバに固有のハードウェアに対応するドライバの格納場所とを含むドライバ対応表を記憶し、前記ドライバの要求を示すドライバ取得要求に含まれるサービス種別およびハードウェア種別を検索条件として、前記ドライバ対応表から前記ドライバの格納場所を検索し、検索した前記ドライバの格納場所に格納されたドライバを出力するドライバレポジトリと、
前記リソースプール内の全サーバを監視して、前記サーバデータベースの前記サーバ状態を更新するサーバ状態監視機能部と、
増設したい前記サービス種別を示すサービス増設要求が入力され、当該サービス増設要求のサービス種別が含まれる前記テンプレートディスクイメージ取得要求を前記テンプレートイメージレポジトリに出力して、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得すると共に、前記サービス増設要求のサービス種別と、前記サーバデータベースにおいて前記待機となっている１台の前記サーバのハードウェア種別とが含まれる前記ドライバ取得要求を前記ドライバレポジトリに出力して、前記ドライバレポジトリから前記ドライバを取得し、前記１台のサーバに出力するサーバ起動処理機能部と、を備え、
前記サーバは、
前記リソースマネージャからテンプレートディスクイメージとドライバとが入力され、入力された当該テンプレートディスクイメージと当該ドライバとを当該サーバにデプロイする起動エージェント、を備えることを特徴とするクラスタシステム。
【請求項２】
前記サーバ起動処理機能部は、
前記サービス増設要求が入力されるサービス増設要求入力部と、
前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから１台の前記サーバを選択する待機サーバ選択部と、
前記テンプレートディスクイメージ取得要求を生成して前記テンプレートイメージレポジトリに出力すると共に、当該テンプレートディスクイメージ取得要求に応じて、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得するテンプレートイメージ取得部と、
前記ドライバ取得要求を生成して前記ドライバレポジトリに出力すると共に、当該ドライバ取得要求に応じて、前記ドライバレポジトリから前記ドライバを取得するドライバ取得部と、
前記テンプレートイメージ取得部が取得したテンプレートディスクイメージと、前記ドライバ取得部が取得したドライバとを、前記待機サーバ選択部が選択した１台のサーバに出力するテンプレートイメージ・ドライバ出力部と、
を備えることを特徴とする請求項１に記載のクラスタシステム。
【請求項３】
前記待機サーバ選択部は、前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから、通信遅延が最小となる前記１台のサーバを選択することを特徴とする請求項２に記載のクラスタシステム。
【請求項４】
請求項２に記載のクラスタシステムにおけるソフトウェアデプロイ方法であって、
前記サーバ起動処理機能部が、
前記サービス増設要求が入力されるサービス増設要求入力ステップと、
前記サーバデータベースに対して、前記サーバ状態が前記待機とないっている前記サーバを問い合わせる待機サーバ問い合わせステップと、
前記サーバデータベースに対する問い合わせ結果に基づいて、前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから１台の前記サーバを選択する待機サーバ選択ステップと、
前記テンプレートディスクイメージ取得要求を生成して前記テンプレートイメージレポジトリに出力するテンプレートイメージ取得要求ステップと、
当該テンプレートディスクイメージ取得要求に応じて、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得するテンプレートイメージ取得ステップと、
前記ドライバ取得要求を生成して前記ドライバレポジトリに出力するドライバ取得要求ステップと、
当該ドライバ取得要求に応じて、前記ドライバレポジトリから前記ドライバを取得するドライバ取得ステップと、
前記テンプレートイメージ取得部が取得したテンプレートディスクイメージと、前記ドライバ取得部が取得したドライバとを、前記待機サーバ選択部が選択した１台のサーバに出力するテンプレートイメージ・ドライバ出力ステップと、
を実行することを特徴とするソフトウェアデプロイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者にサービスを提供するクラスタシステムに関し、特に、スケールアウト型のアーキテクチャを採用した分散・並列システムにおけるサーバ資源増設技術に関する。
【背景技術】
【０００２】
近年、設備維持コストの低減を目的として、通信網のＩＰ（Internet Protocol）化が進んでおり、従来の交換機のような専用ハードウェアではなく、汎用的なサーバを用いて通信ネットワーク・通信サービスを提供することが一般的である。その際、汎用的なサーバのみで高可用性・高信頼性を獲得するため、複数のサーバが連携した集合体であるサーバクラスタを構成することがある。また、通信サービスの多様化に伴って、サービスの利用者数を事前に予測することが困難になっている。従って、設備維持コストの低減の観点からは、最低限のサーバ資源によってスモールスタートし、利用者の拡大に応じて、新たなサーバ資源を追加するスケールアウト型のアーキテクチャが注目されている（例えば、非特許文献１参照）。
【０００３】
この非特許文献１に記載のスケールアウト型のアーキテクチャにおいて、サーバ資源をリソースプールとして集約し、複数のサービスがサーバ資源を共有することによって、資源利用効率をさらに高める技術が提案されている。以下、図８を参照して、資源利用効率を高める技術を採用した従来のクラスタシステム９について説明する。図８に示すように、クラスタシステム９は、複数のサーバ９５でリソースプール９３を構成する。図８の例では、リソースプール９３内の全てのサーバ９５について、固有のハードウェア種別を丸字で付した。つまり、リソースプール９３は、ハードウェア種別Ａのサーバ９５を２台、ハードウェア種別Ｂのサーバ９５を４台、ハードウェア種別Ｃのサーバ９５を２台、含んでいる。
【０００４】
あるサービスの増設要求があった際、クラスタシステム９は、リソースプール９３からサーバ９５を１台選択する。そして、クラスタシステム９は、増設したいサービスに適したテンプレートディスクイメージＴｄｉをレポジトリ９１から取得して、サーバ９５にデプロイする。
【０００５】
デプロイとは、サービスを提供するためのオペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーション（ＡＰＬ）などのソフトウェアと、サーバ９５のドライバが含まれたテンプレートディスクイメージＴｄｉとをサーバ９５に出力すると共に、ＩＰアドレスの設定、ホスト名の設定、パラメータの設定など、サーバ９５に固有の設定を施すことである。
【０００６】
テンプレートディスクイメージＴｄｉは、何れかのサーバ９５において、手動または自動インストーラを用いてソフトウェア環境構築した後、各サーバ９５に固有の設定を削除することによって、これを作成できる。そして、作成したテンプレートディスクイメージＴｄｉは、レポジトリ９１によって一元的に管理され、前記したようにサービスの増設要求があった際にサーバ９５に出力される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】西村豪生，入江道生，金子雅志，飯尾政美，"ネットワークサーバの資源利用効率向上に向けた一検討"，第１０回ネットワークソフトウェア研究会，石垣市市民会館，２０１０年６月３日〜４日
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、従来のクラスタシステム９では、以下のような問題がある。クラスタシステム９において、サービスを増設する時、ブランクサーバ９５に転送するテンプレートディスクイメージＴｄｉは、そのテンプレートディスクイメージＴｄｉを作成したサーバ９５に対応するドライバが含まれている。つまり、デプロイ対象のブランクサーバ９５と、テンプレートディスクイメージＴｄｉを作成したサーバ９５とが、異なるハードウェア種別の場合、ブランクサーバ９５に必要なドライバがテンプレートディスクイメージＴｄｉに含まれないために、ブランクサーバ９５が起動不可能な状況に陥ってしまう。なお、テンプレートディスクイメージＴｄｉが何もデプロイされていないサーバを「ブランクサーバ」と呼ぶ。
【０００９】
一見すると、このような問題は、リソースプール９３において、全てのサーバ９５のハードウェア種別を統一すれば解決できるとも思われる。しかし、このようなハードウェアの統一は、運用上、許容できるとは限られない。さらに、このようなハードウェアの統一は、生産終了（ＥＯＬ：End of Life)によって、従来と同機種のサーバ９５が調達不可能となった場合、リソースプール内の全てのサーバ９５を新しい機種に変更する必要があり、現実的ではない。
【００１０】
ここで、テンプレートディスクイメージＴｄｉを、ハードウェア種別に応じて個別に生成することも考えられる。図８の例では、ハードウェア種別がＡ用テンプレートディスクイメージ、ハードウェア種別がＢ用テンプレートディスクイメージ、および、ハードウェア種別がＣ用テンプレートディスクイメージというように、１種類のサービスを提供するだけでも、複数のテンプレートディスクイメージＴｄｉが必要になる。さらに、テンプレートディスクイメージＴｄｉは、オペレーティンシステムやアプリケーションなどを含むため、数ギガバイト以上の大容量になることが一般的である。従って、従来のクラスタシステム９では、大容量のテンプレートディスクイメージＴｄｉを多数記憶する必要があるため、大記憶容量のストレージが必要となり、クラスタシステム９の構成が大規模化するという問題がある。さらに、従来のクラスタシステム９では、オペレーティングシステム、アプリケーションなどのソフトウェアが更新された際、多数のテンプレートディスクイメージＴｄｉを再作成する必要があり、管理コストが高くなる。
【００１１】
なお、サーバ仮想化技術を適用することにより、ハイパーバイザーによって、各サーバ９５のハードウェア差分を隠蔽することが可能であると言われている。しかし、ハイパーバイザーは、ネットワーク通信に関するオーバーヘッドが甚大であり、通信を多用するクラスタシステム９に適用した場合、パフォーマンスが著しく低下してしまう。
【００１２】
そこで、本発明は、前記した問題を解決し、リソースプール内にハードウェア構成が異なるサーバが存在する場合でも、簡易な構成で管理コストを抑えたクラスタシステムおよびソフトウェアデプロイ方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
前記した課題に鑑みて、本願第１発明に係るクラスタシステムは、利用者にサービスを提供する複数のサーバで構成されるリソースプールと、前記リソースプール内の全サーバが提供する前記サービスを管理するリソースマネージャとを備えるクラスタシステムであって、前記リソースマネージャが、前記サーバを一意に識別するサーバ識別子と、当該サーバが提供しているサービスを示すサービス種別または当該サーバが待機していることを示すサーバ状態と、当該サーバに固有のハードウェアを示すハードウェア種別とを対応づけて記憶するサーバデータベースと、前記サービス種別と、前記サービス種別が示すサービスを提供するソフトウェアが含まれるテンプレートディスクイメージの格納場所とを含むテンプレートディスクイメージ対応表を記憶し、前記テンプレートディスクイメージの要求を示すテンプレートディスクイメージ取得要求に含まれるサービス種別を検索条件として、前記テンプレートディスクイメージ対応表から前記テンプレートディスクイメージの格納場所を検索し、検索した前記テンプレートディスクイメージの格納場所に格納されたテンプレートディスクイメージを出力するテンプレートイメージレポジトリと、前記サービス種別と、前記ハードウェア種別と、前記サーバに固有のハードウェアに対応するドライバの格納場所とを含むドライバ対応表を記憶し、前記ドライバの要求を示すドライバ取得要求に含まれるサービス種別およびハードウェア種別を検索条件として、前記ドライバ対応表から前記ドライバの格納場所を検索し、検索した前記ドライバの格納場所に格納されたドライバを出力するドライバレポジトリと、前記リソースプール内の全サーバを監視して、前記サーバデータベースの前記サーバ状態を更新するサーバ状態監視機能部と、増設したい前記サービス種別を示すサービス増設要求が入力され、当該サービス増設要求のサービス種別が含まれる前記テンプレートディスクイメージ取得要求を前記テンプレートイメージレポジトリに出力して、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得すると共に、前記サービス増設要求のサービス種別と、前記サーバデータベースにおいて前記待機となっている１台の前記サーバのハードウェア種別とが含まれる前記ドライバ取得要求を前記ドライバレポジトリに出力して、前記ドライバレポジトリから前記ドライバを取得し、前記１台のサーバに出力するサーバ起動処理機能部と、を備え、前記サーバが、前記リソースマネージャからテンプレートディスクイメージとドライバとが入力され、入力された当該テンプレートディスクイメージと当該ドライバとを当該サーバにデプロイする起動エージェント、を備えることを特徴とする。
【００１４】
かかる構成によれば、クラスタシステムでは、ドライバが含まれていないテンプレートイメージを格納する。そして、クラスタシステムは、リソースマネージャによって、サービスを増設するときに、サーバに対応するドライバを取得し、テンプレートイメージと共にドライバをサーバに出力する。そして、クラスタシステムは、サーバにおいて、このテンプレートイメージとドライバとをデプロイして、サービスの提供に必要な環境を動的に構築する。
【００１５】
これによって、クラスタシステムは、リソースプール内の全サーバのハードウェア種別に応じてテンプレートイメージを格納する場合に比べて、テンプレートイメージの数を少なくできる。従って、クラスタシステムは、テンプレートイメージを記憶するために、大記憶容量のストレージを必要とせず、簡易な構成を可能する。さらに、クラスタシステムは、ソフトウェアが更新された場合でも、再作成が必要なテンプレートイメージの数を少なくでき、管理コストを抑えることができる。
【００１６】
また、本願第２発明に係るクラスタシステムは、前記サーバ起動処理機能部が、前記サービス増設要求が入力されるサービス増設要求入力部と、前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから１台の前記サーバを選択する待機サーバ選択部と、前記テンプレートディスクイメージ取得要求を生成して前記テンプレートイメージレポジトリに出力すると共に、当該テンプレートディスクイメージ取得要求に応じて、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得するテンプレートイメージ取得部と、前記ドライバ取得要求を生成して前記ドライバレポジトリに出力すると共に、当該ドライバ取得要求に応じて、前記ドライバレポジトリから前記ドライバを取得するドライバ取得部と、前記テンプレートイメージ取得部が取得したテンプレートディスクイメージと、前記ドライバ取得部が取得したドライバとを、前記待機サーバ選択部が選択した１台のサーバに出力するテンプレートイメージ・ドライバ出力部と、を備えることが好ましい。
【００１７】
また、本願第３発明に係るクラスタシステムは、前記待機サーバ選択部が、前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから、通信遅延が最小となる前記１台のサーバを選択することが好ましい。
【００１８】
また、本願第４発明に係るソフトウェアデプロイ方法は、前記サーバ起動処理機能部が、前記サービス増設要求が入力されるサービス増設要求入力ステップと、前記サーバデータベースに対して、前記サーバ状態が前記待機とないっている前記サーバを問い合わせる待機サーバ問い合わせステップと、前記サーバデータベースに対する問い合わせ結果に基づいて、前記サーバデータベースの前記サーバ状態が前記待機となっている前記サーバから１台の前記サーバを選択する待機サーバ選択ステップと、前記テンプレートディスクイメージ取得要求を生成して前記テンプレートイメージレポジトリに出力するテンプレートイメージ取得要求ステップと、当該テンプレートディスクイメージ取得要求に応じて、前記テンプレートイメージレポジトリから前記テンプレートディスクイメージを取得するテンプレートイメージ取得ステップと、前記ドライバ取得要求を生成して前記ドライバレポジトリに出力するドライバ取得要求ステップと、当該ドライバ取得要求に応じて、前記ドライバレポジトリから前記ドライバを取得するドライバ取得ステップと、前記テンプレートイメージ取得部が取得したテンプレートディスクイメージと、前記ドライバ取得部が取得したドライバとを、前記待機サーバ選択部が選択した１台のサーバに出力するテンプレートイメージ・ドライバ出力ステップと、を実行することが好ましい。
【発明の効果】
【００１９】
本発明によれば、テンプレートイメージの数を少なくできるために、大記憶容量のストレージを必要とせずに簡易な構成を可能とし、ソフトウェアが更新された場合でも、再作成が必要なテンプレートイメージの数を少なくでき、管理コストを抑えることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係るクラスタシステムの概略を示す概略図である。
【図２】本発明の実施形態に係るクラスタシステムの構成を示すブロック図である。
【図３】図２のサーバデータベースのデータ項目を示す図である。
【図４】図２のテンプレートイメージレポジトリに記憶されたテンプレートディスクイメージ対応表のデータ項目を示す図である。
【図５】図２のドライバレポジトリに記憶されたドライバ対応表のデータ項目を示す図である。
【図６】図２のサーバ起動処理機能部の構成を示すブロック図である。
【図７】図２のクラスタシステムの動作を示すフローチャートである。
【図８】従来のクラスタシステムの概略を示す概略図である。
【発明を実施するための形態】
【００２１】
（本実施形態の概略）
以下、図１を参照し、本発明の実施形態に係るクラスタシステム１の概略について説明する。クラスタシステム１は、最低限のサーバ３０によってスモールスタートし、利用者の拡大に応じて、新たなサービスを増設するスケールアウト型のアーキテクチャを採用したシステムである。ここで、クラスタシステム１が提供するサービスとしては、例えば、ＨＴＴＰ（HyperText Transfer Protocol）、ＳＭＴＰ（Simple Mail Transfer Protocol）、ＰＯＰ（Post Office Protocol）、ＦＴＰ（File Transfer Protocol）などの非同期ネットワークサービスがあげられる。さらに、クラスタシステム１が提供するサービスとしては、例えば、ＳＩＰ（Session Initiation Protocol）のように、リアルタイム性（スループット、遅延）に対する要求が強いネットワークサービスもあげられる。なお、図１では、説明を簡易にするため、クラスタシステム１の一部構成を省略した。
【００２２】
図１に示すように、リソースプール３は、サーバ資源を集約したものであり、例えば、６台のサーバ３０で構成されている。ここで、サーバ３０に固有のハードウェア種別を丸字で付した。つまり、リソースプール３は、ハードウェア種別１のサーバ３０を１台、ハードウェア種別２のサーバ３０を２台、および、ハードウェア種別３のサーバ３０を３台、含んでいる。
【００２３】
テンプレートイメージレポジトリ２３は、ドライバＤｒを除き、オペレーティンシステムやアプリケーションなど、サービスの提供に必要なソフトウェアが含まれるテンプレートディスクイメージＴｄｉが格納されている。
【００２４】
ドライバレポジトリ２４は、サーバ３０のハードウェア種別に応じて、ドライバＤｒが格納されている。図１の例では、ドライバレポジトリ２４は、「ドライバ１」、「ドライバ２」および「ドライバ３」という、３種類のドライバＤｒが格納されている。ここで、「ドライバ１」がハードウェア種別１のサーバ３０に対応し、「ドライバ２」がハードウェア種別２のサーバ３０に対応し、「ドライバ３」がハードウェア種別３のサーバ３０に対応することとする。
【００２５】
以下、ハードウェア種別２のサーバ３０を用いて、新たなサービスを増設する一例を説明する。この場合、クラスタシステム１は、増設するサービスの提供に必要となるテンプレートディスクイメージＴｄｉを、テンプレートイメージレポジトリ２３から取得する。また、クラスタシステム１は、ハードウェア種別２のサーバ３０に対応した「ドライバ２」を、ドライバレポジトリ２４から取得する。そして、クラスタシステム１は、取得したテンプレートディスクイメージＴｄｉと「ドライバ２」とをサーバ３０に出力する。すると、クラスタシステム１は、サーバ３０において、このテンプレートディスクイメージＴｄｉと「ドライバ２」とをデプロイする。
【００２６】
なお、デプロイとは、テンプレートディスクイメージＴｄｉおよびドライバＤｒをサーバ３０に出力すると共に、ＩＰアドレスの設定、ホスト名の設定、パラメータの設定などのサーバ３０に固有の設定を施して、利用者にサービスを提供可能な環境をサーバ３０に構築すること言う。
【００２７】
（本発明の実施形態）
以下、図２を参照して、クラスタシステム１が含まれるサービス提供システム１００について説明する。図２に示すように、サービス提供システム１００は、クラスタシステム１と、保守者端末５と、利用者端末７とを備える。ここで、サービス提供システム１００は、インターネット、イントラネットなどの保守ネットワークＮＷ１によって、クラスタシステム１と保守者端末５とを接続する。また、サービス提供システム１００は、サービスネットワークＮＷ３によって、クラスタシステム１と利用者端末７とを接続する。以下、保守者端末５および利用者端末７の構成を先に説明し、その後、クラスタシステム１の構成を説明する。
【００２８】
［保守者端末の構成］
保守者端末５は、クラスタシステム１の保守を行うコンピュータ、携帯電話などの端末装置である。例えば、保守者端末５は、保守者の指示によって、増設を要求するサービスの種別が含まれているサービス増設要求をクラスタシステム１に出力する。
【００２９】
また、保守者端末５は、例えば、保守者の指示によって、サービスを提供するためのサーバクラスタ（不図示）の構築、および、サーバクラスタに対するサーバ３０の増設を行う。このサーバクラスタとは、個々のサービスを提供するために現用されているサーバ３０で構成されたサーバ群である。例えば、「サービスＡ」を提供するために３台のサーバ３０が用いられている場合、「サービスＡ」は、３台のサーバ３０で構成されたサーバクラスタによって提供されていると言える。従って、サーバクラスタに対するサーバ３０の増設とは、サーバクラスタに対して、リソースプール３内のサーバ３０を追加し、サーバクラスタの規模を拡大することを言う。
【００３０】
また、保守者端末５は、例えば、保守者の指示によって、あるサーバ３０が提供しているサービスの停止を行う。さらに、保守者端末５は、例えば、保守者の指示によって、後記するサーバデータベース２２（図３）、テンプレートディスクイメージ対応表２３０（図４）、および、ドライバ対応表２４０（図５）の登録、更新または削除を行う。なお、これらの処理は、従来技術と同様のため、説明を省略する。
【００３１】
［利用者端末の構成］
利用者端末７は、利用者が使用するコンピュータ、携帯電話などの端末装置である。つまり、利用者は、利用者端末７を用いて、クラスタシステム１が提供するサービスを利用する。
【００３２】
［クラスタシステムの構成］
クラスタシステム１は、リソースプール３と、リソースマネージャ２とを備える。ここで、クラスタシステム１は、管理ネットワークＮＷ２によって、リソースマネージャ２と、６台のサーバ３０とを接続する。
【００３３】
なお、６台のサーバ３０のうち、１台目のサーバ３０をサーバ３０１とし、５台目のサーバ３０をサーバ３０５とし、６台目のサーバ３０をサーバ３０６とする。また、図２では、図面を見やすくするため、２台目〜４台目のサーバ３０２〜３０４を省略した。
【００３４】
＜リソースマネージャ＞
以下、リソースマネージャ２について説明する。図２に示すように、リソースマネージャ２は、リソースプール３内の全てのサーバ３０が提供するサービスを管理するものであり、管理インタフェース２１と、サーバデータベース２２と、テンプレートイメージレポジトリ２３と、ドライバレポジトリ２４と、サーバ起動処理機能部２５と、サーバ状態監視機能部２６とを備える。
【００３５】
管理インタフェース２１は、保守者端末５とのインタフェースである。つまり、管理インタフェース２１は、保守者端末５からの指示が入力されると共に、この指令に応じた適切な処理を他の機能部と連動して実行する。例えば、管理インタフェース２１は、保守者端末５からサービス増設要求が入力された場合、このサービス増設要求をサーバ起動処理機能部２５に出力する。
【００３６】
以下、図３を参照し、サーバデータベース２２について説明する（適宜図２参照）。サーバデータベース２２は、リソースプール３内の全てのサーバ３０に関する情報を格納するデータベースであり、サーバＩＤ（サーバ識別子）２２Ａと、サーバ状態２２Ｂと、ハードウェア種別２２Ｃとを対応付けて記憶する。
【００３７】
サーバＩＤ２２Ａは、リソースプール３内の全てのサーバ３０を一意に識別するＩＤ（IDentification）である。図３の例では、サーバＩＤ２２Ａとして、「サーバ１」〜「サーバ６」というユニークなＩＤが登録されていることを示す。なお、サーバ３０１〜３０６が、それぞれ、「サーバ１」〜「サーバ６」に対応する。
【００３８】
サーバ状態２２Ｂは、サーバ３０が提供しているサービスを示すサービス種別またはサーバ３０が待機していることを示す情報である。図３の例では、「サーバ１」が「サービスＡ」を提供しており、「サーバ４」および「サーバ５」が「サービスＢ」を提供していることを示す。また、サーバ状態２２Ｂは、「サーバ２」、「サーバ３」および「サーバ６」が、何のサービスも提供しておらず「待機」していることを示す。
【００３９】
ハードウェア種別２２Ｃは、サーバ３０に固有のハードウェアを示すハードウェア種別を示す情報である。図３の例では、「サーバ１」がハードウェア種別１であり、「サーバ２」および「サーバ３」がハードウェア種別２であり、「サーバ４」〜「サーバ６」がハードウェア種別３であることを示す。なお、図３では、ハードウェア種別１〜ハードウェア種別３を、「ハード１」〜「ハード３」と略記した。
【００４０】
サーバデータベース２２は、後記するサーバ起動処理機能部２５から、「待機」しているサーバ３０についての問い合わせが入力される。そして、サーバデータベース２２は、この問い合わせに対する結果として、サーバ状態２２Ｂが「待機」となっているサーバ３０のサーバＩＤとハードウェア種別とを取得して、サーバ起動処理機能部２５に出力する。
【００４１】
なお、サーバデータベース２２のデータ項目のうち、サーバＩＤ２２Ａおよびハードウェア種別２２Ｃは、保守者によって手動で設定される。一方、サーバ状態２２Ｂは、後記するサーバ状態監視機能部２６によって随時更新される。
【００４２】
以下、図４を参照し、テンプレートイメージレポジトリ２３ついて説明する（適宜図２参照）。テンプレートイメージレポジトリ２３は、図４に示すように、サービス種別２３０Ａと、テンプレートディスクイメージの格納場所２３０Ｂとを備えるテンプレートディスクイメージ対応表２３０を記憶する。
【００４３】
サービス種別２３０Ａは、利用者に提供するサービスを示す情報である。図４の例では、サービス種別２３０Ａとして、「サービスＡ」と、「サービスＢ」とが登録されていることを示す。
【００４４】
テンプレートディスクイメージの格納場所２３０Ｂは、サービス種別２３０Ａが示すサービスを提供するときに必要となるテンプレートディスクイメージＴｄｉの格納場所を示す情報である。図４の例では、「file://path/to/serviceA.img」に格納されたテンプレートディスクイメージＴｄｉが、「サービスＡ」に対応することを示す。また、「file://path/to/serviceB.img」に格納されたテンプレートディスクイメージＴｄｉが、「サービスＢ」に対応することを示す。
【００４５】
ここで、テンプレートディスクイメージの格納場所２３０Ｂは、リソースマネージャ２、および、リソースプール３内のサーバ３０がアクセス可能な場所であれば、特に制限されない。本実施形態では、テンプレートイメージレポジトリ２３は、ストレージ（不図示）を備え、このストレージにテンプレートディスクイメージＴｄｉを格納することとした。
【００４６】
テンプレートイメージレポジトリ２３は、テンプレートディスクイメージ取得要求に含まれるサービスを検索条件（検索キー）として、テンプレートディスクイメージ対応表２３０からテンプレートディスクイメージの格納場所２３０を検索する。そして、テンプレートイメージレポジトリ２３は、検索したテンプレートディスクイメージの格納場所２３０が示す位置に格納されたテンプレートディスクイメージＴｄｉを取得して、サーバ起動処理機能部２５に出力する。
【００４７】
なお、テンプレートディスクイメージ取得要求は、テンプレートイメージレポジトリ２３に対して、テンプレートディスクイメージＴｄｉを要求することを示す情報であり、サーバ起動処理機能部２５から入力される。
【００４８】
なお、テンプレートディスクイメージＴｄｉは、個々のサービスの提供に必要なソフトウェア（オペレーティングシステム、アプリケーション）が含まれるように予め生成される。従って、テンプレートディスクイメージＴｄｉは、ドライバＤｒを一切含まないこと以外、従来と同様の手法で生成できる。また、テンプレートディスクイメージ対応表２３０、保守者によって手動で設定される。
【００４９】
以下、図５を参照し、ドライバレポジトリ２４ついて説明する（適宜図２参照）。ドライバレポジトリ２４は、図５に示すように、サービス種別２４０Ａと、ハードウェア種別２４０Ｂと、ドライバの格納場所２４０Ｃとを備えるドライバ対応表２４０を記憶する。
【００５０】
サービス種別２４０Ａは、図４のサービス種別２３０Ａと同様のデータ項目であるため、その説明を省略する。また、ハードウェア種別２４０Ｂは、図３のハードウェア種別２２Ｃと同様のデータ項目であるため、その説明を省略する。
【００５１】
ドライバの格納場所２４０Ｃは、あるサーバ３０でサービスを提供するときに、そのサーバ３０に固有のハードウェアに対応するドライバＤｒの格納場所を示す情報である。図５の例では、「サービスＡ」を「ハード１」のサーバ３０で提供する場合、「file://path/to/A1.lib」に格納されたドライバＤｒが対応することを示す。また、「サービスＢ」を「ハード２」のサーバ３０で提供する場合、「file://path/to/B2.lib」に格納されたドライバＤｒが対応することを示す。
【００５２】
ここで、ドライバの格納場所２４０Ｃは、リソースマネージャ２、および、リソースプール３内のサーバ３０がアクセス可能な場所であれば、特に制限されない。本実施形態では、ドライバレポジトリ２４は、ストレージ（不図示）を備え、このストレージにドライバＤｒを格納することとした。
【００５３】
ドライバレポジトリ２４は、ドライバ取得要求に含まれるサービスおよびハードウェア種別を検索条件（検索キー）として、ドライバ対応表２４０からドライバの格納場所２４０Ｃを検索する。そして、ドライバレポジトリ２４は、検索したドライバの格納場所２４０Ｃが示す位置に格納されたドライバＤｒを取得して、サーバ起動処理機能部２５に出力する。
【００５４】
なお、ドライバ取得要求は、ドライバレポジトリ２４に対して、ドライバＤｒを要求することを示す情報であり、サーバ起動処理機能部２５から入力される。また、ドライバ対応表２４０は、保守者によって手動で設定される。
【００５５】
以下、図６を参照し、サーバ起動処理機能部２５について説明する（適宜図２参照）。サーバ起動処理機能部２５は、リソースプール３内のサーバ３０にテンプレートディスクイメージＴｄｉおよびドライバＤｒをデプロイして、サービスを提供可能な環境をサーバ３０に構築する。このため、図６に示すように、サーバ起動処理機能部２５は、サービス増設要求入力部２５１と、待機サーバ選択部２５２と、テンプレートイメージ取得部２５３と、ドライバ取得部２５４と、テンプレートイメージ・ドライバ出力部２５５とを備える。
【００５６】
サービス増設要求入力部２５１は、保守者端末５から、前記したサービス増設要求が入力される。そして、サービス増設要求入力部２５１は、このサービス増設要求に含まれるサービス種別を、テンプレートイメージ取得部２５３と、ドライバ取得部２５４とに出力する。
【００５７】
待機サーバ選択部２５２は、サーバデータベース２２に対して、サーバ状態２２Ｂが「待機」となっているサーバ３０を問い合わせる。そして、待機サーバ選択部２５２は、その問い合わせ結果として、「待機」しているサーバ３０のサーバＩＤとハードウェア種別とを取得する。図３の例では、待機サーバ選択部２５２は、サーバデータベース２２から、「サーバ２」、「サーバ３」および「サーバ６」のサーバＩＤとハードウェア種別とを取得する。
【００５８】
ここで、待機サーバ選択部２５２は、「待機」しているサーバ３０が複数の場合、その中から１台のサーバ３０を選択する。例えば、待機サーバ選択部２５２は、サーバデータベース２２で最初にエントリされているサーバ３０を１台選択する（図３では「サーバ２」）。また、例えば、待機サーバ選択部２５２は、サーバデータベース２２において、サーバ状態２２Ｂが「待機」となっているサーバ３０を無作為に１台選択する。
【００５９】
前記した単純な選択方法のほか、待機サーバ選択部２５２は、通信遅延が最小となる１台のサーバ３０を選択することもできる。具体的には、待機サーバ選択部２５２は、ネットワークトポロジまたはリソースプール３内のサーバ３０の物理的位置などのサーバ位置情報を管理している。そして、待機サーバ選択部２５２は、このサーバ位置情報に基づいて、例えば、同一のハブに接続されているまたはネットワークケーブルで直接接続されているなど、リソースプール３内で最も通信遅延が少ないサーバ３０を１台選択する。このように、通信遅延が最小となるサーバ３０を選択することで、クラスタシステム１は、サービスの提供効率を向上させることができる。
【００６０】
そして、待機サーバ選択部２５２は、選択した１台のサーバ３０のハードウェア種別をドライバ取得部２５４に出力する。なお、サーバデータベース２２において、サーバ状態２２Ｂが「待機」となっているサーバ３０が１台の場合、待機サーバ選択部２５２は、無条件にそのサーバを選択することは言うまでもない。
【００６１】
テンプレートイメージ取得部２５３は、サービス増設要求入力部２５１からサービス種別が入力される。そして、テンプレートイメージ取得部２５３は、このサービス種別を含むテンプレートディスクイメージ取得要求を生成して、テンプレートイメージレポジトリ２３に出力する。さらに、このテンプレートディスクイメージ取得要求に応じて、テンプレートイメージ取得部２５３は、テンプレートイメージレポジトリ２３からテンプレートディスクイメージＴｄｉを取得する。その後、テンプレートイメージ取得部２５３は、取得したテンプレートディスクイメージＴｄｉを、テンプレートイメージ・ドライバ出力部２５５に出力する。
【００６２】
ドライバ取得部２５４は、サービス増設要求入力部２５１からサービスが入力され、待機サーバ選択部２５２からハードウェア種別が入力される。そして、ドライバ取得部２５４は、このサービスおよびハードウェア種別を含むドライバ取得要求を生成して、ドライバレポジトリ２４に出力する。さらに、このドライバ取得要求に応じて、ドライバ取得部２５４は、ドライバレポジトリ２４からドライバＤｒを取得する。その後、ドライバ取得部２５４は、取得したドライバＤｒを、テンプレートイメージ・ドライバ出力部２５５に出力する。
【００６３】
テンプレートイメージ・ドライバ出力部２５５は、テンプレートイメージ取得部２５３からテンプレートディスクイメージＴｄｉが入力され、ドライバ取得部２５４からドライバＤｒが入力される。そして、テンプレートイメージ・ドライバ出力部２５５は、このテンプレートディスクイメージＴｄｉおよびドライバ取得部２５４を、待機サーバ選択部２５２が選択したサーバ３０に出力する。
【００６４】
図２に戻り、説明を続ける。サーバ状態監視機能部２６は、リソースプール３内の全てのサーバ３０を監視して、サーバデータベース２２のサーバ状態２２Ｂを更新する。具体的には、サーバ状態監視機能部２６は、各サーバ３０に対して、サーバ状態の問い合わせを示す状態問い合わせを出力し、その状態問い合わせに応じて、サーバデータベース２２のサーバ状態２２Ｂを更新する。
【００６５】
＜サーバ＞
以下、サーバ３０について説明する。サーバ３０は、利用者に各種サービスを提供するものであり、起動エージェント３１と、ローカル格納部３２と、計算処理機能部３３とを備える。
【００６６】
起動エージェント３１は、リソースマネージャ２との間で通信を行う。具体的には、サーバ状態監視機能部２６からの状態問い合わせに対して、そのサーバ３０で実行中のサービス種別、または、何のサービスも提供しておらず、「待機」していることを応答する。
【００６７】
また、起動エージェント３１は、サーバ起動処理機能部２５から入力されたテンプレートディスクイメージＴｄｉおよびドライバＤｒをデプロイする。例えば、起動エージェント３１は、サーバ起動処理機能部２５から入力された、そのサーバ３０に固有の設定をテンプレートディスクイメージＴｄｉに適用する。そして、起動エージェント３１は、このテンプレートディスクイメージＴｄｉおよびドライバＤｒをローカル格納部３２に起動ディスクイメージとして格納する。
【００６８】
このとき、起動エージェント３１は、所定の展開位置(例えば、「/lib/modules/」)にドライバＤｒを展開するができる。また、起動エージェント３１は、別の位置にドライバＤｒを展開した後、オペレーティングシステムの起動時、そのドライバを展開位置(例えば、「/lib/modules/」)にマウントしてもよい。
【００６９】
さらに、起動エージェント３１は、テンプレートディスクイメージＴｄｉに対して、そのサーバ３０に固有の設定を適用した後、計算処理機能部３３に対して起動指示を出力する。なお、各サーバ３０に固有の設定としては、例えば、ＩＰアドレス、ネットマスク、ＤＮＳサーバなどネットワーク設定、バッファサイズ、同時接続数などミドルウェア設定、オペレーティングシステムのパラメータがあげられる。
【００７０】
ローカル格納部３２は、前記した起動ディスクイメージを格納するものであり、例えば、ハードディスクなどの不揮発メモリ、または、揮発性メモリである。また、ローカル格納部３２は、起動ディスクイメージの他、サービスの提供に必要となる各種データを格納してもよい。
【００７１】
計算処理機能部３３は、ＣＰＵ（Central Processing Unit）および主記憶装置を備える演算装置である。また、計算処理機能部３３は、起動エージェント３１から起動指示が入力されると、ローカル格納部３２に格納された起動ディスクイメージを用いて、オペレーティンシステムを起動して、サービスを提供する。
【００７２】
［クラスタシステムの動作］
以下、図７を参照して、図２のクラスタシステム１の動作について説明する（適宜図２、図６参照）。ここで、図３のサーバデータベース２２と、図４のテンプレートディスクイメージ対応表２３０と、図５のドライバ対応表２４０とを用いて、「サーバ２」に「サービスＡ」を増設する例で説明する。
【００７３】
まず、保守者端末５は、保守者が「サービスＡ」の増設を指示すると、「サービスＡ」を示すサービス増設要求を生成して、サーバ起動処理機能部２５に入力する。つまり、サーバ起動処理機能部２５は、サービス増設要求入力部２５１によって、保守者端末５から、「サービスＡ」を含むサービス増設要求が入力される（ステップＳ１：サービス増設要求入力ステップ）。
【００７４】
サーバ起動処理機能部２５は、待機サーバ選択部２５２によって、サーバ状態が「待機」のサーバ３０をサーバデータベース２２に問い合わせる（ステップＳ２：待機サーバ問い合わせステップ）。
【００７５】
ステップＳ２の処理に応じて、サーバデータベース２２は、「サーバ２」、「サーバ３」および「サーバ６」という、３台分のサーバＩＤを待機サーバ選択部２５２に出力する（図３参照）。そして、サーバ起動処理機能部２５は、待機サーバ選択部２５２によって、３台のサーバ３０の中から、例えば、サーバデータベース２２で最初のエントリである「サーバ２」を選択する（ステップＳ３：待機サーバ選択ステップ）。
【００７６】
サーバ起動処理機能部２５は、テンプレートイメージ取得部２５３によって、「サービスＡ」を含むテンプレートディスクイメージ取得要求を生成して、テンプレートイメージレポジトリ２３に出力する（ステップＳ４：テンプレートイメージ取得要求ステップ）。
【００７７】
ステップＳ４の処理に応じて、テンプレートイメージレポジトリ２３は、「サービスＡ」を検索条件（検索キー）として、テンプレートディスクイメージ対応表２３０から、テンプレートディスクイメージの格納場所を検索して、この格納場所に格納されたテンプレートディスクイメージＴｄｉを出力する。すなわち、サーバ起動処理機能部２５は、テンプレートイメージ取得部２５３によって、テンプレートイメージレポジトリ２３から、「file://path/to/serviceA.img」に格納されたテンプレートディスクイメージＴｄｉを取得する（ステップＳ５：テンプレートイメージ取得ステップ）。
【００７８】
サーバ起動処理機能部２５は、ドライバ取得部２５４によって、「サービスＡ」および「ハード２」を含むドライバ取得要求を生成して、ドライバレポジトリ２４に出力する（ステップＳ６：ドライバ取得要求ステップ）。
【００７９】
ステップＳ４の処理に応じて、ドライバレポジトリ２４は、「サービスＡ」および「ハード２」を検索条件として、ドライバ対応表２４０から、ドライバＤｒの格納場所「file://path/to/A2.lib」を検索して、この格納場所に格納されたドライバＤｒを出力する。すなわち、サーバ起動処理機能部２５は、ドライバ取得部２５４によって、ドライバレポジトリ２４から、「file://path/to/A2.lib」に格納されたドライバＤｒを取得する（ステップＳ７：ドライバ取得ステップ）。
【００８０】
サーバ起動処理機能部２５は、テンプレートイメージ・ドライバ出力部２５５によって、テンプレートイメージ取得部２５３が取得したテンプレートディスクイメージＴｄｉおよびドライバ取得部２５４が取得したドライバＤｒを、待機サーバ選択部２５２が選択した「サーバ２」に出力する（ステップＳ８：テンプレートイメージ・ドライバ出力ステップ）。
【００８１】
サーバ３０２は、起動エージェント３１によって、このサーバ３０２に固有の設定をテンプレートディスクイメージＴｄｉに適用し、テンプレートディスクイメージＴｄｉおよびドライバＤｒをローカル格納部３２に起動ディスクイメージとして格納する。そして、サーバ３０２は、起動エージェント３１によって、計算処理機能部３３に起動指示を出力する。その後、サーバ３０２は、計算処理機能部３３によって、ローカル格納部３２に格納された起動ディスクイメージを用いて、オペレーティンシステムを起動して、サービスを提供する。
【００８２】
なお、図７では、サーバ起動処理機能部２５は、ステップＳ４，５の処理を実行した後、ステップＳ６，７の処理を実行するとして説明したが、これに限定されない。例えば、サーバ起動処理機能部２５は、ステップＳ６，７の処理を実行した後、ステップＳ４，５の処理を実行してもよい。
【００８３】
また、別の例として、ステップＳ３の処理において、「サーバ２」ではなく「サーバ６」が選択された場合を考える。この場合、サーバ起動処理機能部２５は、「サーバ６」に対して、「サービスＡ」に対応するテンプレートディスクイメージＴｄｉ、すなわち、「file://path/to/serviceA.img」に格納されたテンプレートディスクイメージＴｄｉを出力することになる。また、サーバ起動処理機能部２５は、「サービスＡ」、かつ、「ハード３」に対応するドライバＤｒ、すなわち、「file://path/to/A3.lib」に格納されたドライバＤｒを出力することになる。
【００８４】
以上のように、本発明の実施形態に係るクラスタシステム１は、異なるハードウェア種別のサーバ３０がリソースプール３に含まれる場合でも、サービスに対応するテンプレートディスクイメージＴｄｉと、サービスを提供するサーバのハードウェア種別に応じたドライバＤｒとを組み合わせることで、ストレージに格納するテンプレートディスクイメージＴｄｉの数を低減できる。これによって、クラスタシステム１は、記憶容量が大きなストレージを必要とせずに簡易な構成を可能とし、ソフトウェアが更新された場合でも、この更新に伴う管理コストを抑えることができる。
【００８５】
なお、前記したリソースマネージャ２において、管理インタフェース２１、サーバデータベース２２、テンプレートイメージレポジトリ２３、ドライバレポジトリ２４、サーバ起動処理機能部２５、サーバ状態監視機能部２６は、入出力インタフェース、通信インタフェース、記憶手段を備えるコンピュータにより実現してもよい。このとき、リソースマネージャ２の各機能は、ＣＰＵによるプログラム実行処理により実現してもよいし、専用のハードウェアにより実現してもよい。
【符号の説明】
【００８６】
１  クラスタシステム
２  リソースマネージャ
２１  管理インタフェース
２２  サーバデータベース
２３  テンプレートイメージレポジトリ
２４  ドライバレポジトリ
２５  サーバ起動処理機能部
２５１  サービス増設要求入力部
２５２  待機サーバ選択部
２５３  テンプレートイメージ取得部
２５４  ドライバ取得部
２５５  テンプレートイメージ・ドライバ出力部
２６  サーバ状態監視機能部
３  リソースプール
３０  サーバ
３１  起動エージェント
３２  ローカル格納部
３３  計算処理機能部
【図１】
0005276632.tif 000002
【図２】
0005276632.tif 000003
【図３】
0005276632.tif 000004
【図４】
0005276632.tif 000005
【図５】
0005276632.tif 000006
【図６】
0005276632.tif 000007
【図７】
0005276632.tif 000008
【図８】
0005276632.tif 000009