(57)【要約】【課題】分散ファイルシステムのノード群に追加された複数の追加済Ｗｅｂサーバを共有する構成において、新たに追加される新規追加Ｗｅｂサーバが分散ファイルシステムにアクセスできるようにするプロセスを自動化する技術を提供する。【解決手段】仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバ１１０が共通して分散ファイルシステム１１２にアクセスする負荷分散システムであって、仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバ４００は、自身の識別情報をメッセージキュー５００に投入させる第１プログラムを有し、追加済Ｗｅｂサーバ１１０は、メッセージキュー５００から取り出した識別情報に基づいて新規追加Ｗｅｂサーバ４００を分散ファイルシステム１１２にアクセス可能なノードとして追加させる第２プログラムを有する。【選択図】図１
2014186698.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムであって、
前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバは、自身の識別情報をメッセージキューに投入させる第１プログラムを有し、
前記追加済Ｗｅｂサーバは、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加させる第２プログラムを有する、負荷分散システム。
【請求項２】
請求項１に記載の負荷分散システムにおいて、
前記識別情報は、起動時に割り当てられる可変の情報である、負荷分散システム。
【請求項３】
請求項１に記載の負荷分散システムにおいて、
前記新規追加Ｗｅｂサーバの前記第１プログラムは、自身の秘密鍵により前記新規追加Ｗｅｂサーバの前記識別情報を電子署名した署名済識別情報を前記メッセージキューに投入させ、
いずれかの前記追加済Ｗｅｂサーバの前記第２プログラムは、前記メッセージキューから前記署名済識別情報を取り出し、取り出した前記署名済識別情報を自身の公開鍵により検証して前記識別情報を取得し、取得した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加させる、負荷分散システム。
【請求項４】
請求項１〜３のいずれか一項に記載の負荷分散システムにおいて、
前記仮想マシンイメージには、前記第１プログラムと前記第２プログラムとを含む、負荷分散システム。
【請求項５】
請求項３に記載の負荷分散システムにおいて、
前記仮想マシンイメージには、前記公開鍵と前記秘密鍵とを含む、負荷分散システム。
【請求項６】
仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムにおける負荷分散システムデータ共有方法であって、
前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバにより、自身の識別情報をメッセージキューに投入する第１ステップと、
前記追加済Ｗｅｂサーバにより、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加する第２ステップと、を有する、負荷分散システムデータ共有方法。
【請求項７】
仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムのコンピュータを機能させるための負荷分散システムデータ共有プログラムであって、
前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバにより、自身の識別情報をメッセージキューに投入する第１ステップと、
前記追加済Ｗｅｂサーバにより、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加する第２ステップと、を前記コンピュータに実行させる、負荷分散システムデータ共有プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散システムおよび負荷分散システムデータ共有方法ならびに負荷分散システムデータ共有プログラムに関する。  
【背景技術】
【０００２】
大規模Ｗｅｂアプリケーションのパフォーマンスを確保する手法のひとつとして、複数のＷｅｂアプリケーションサーバとロードバランサを用いた負荷分散がある。近年、パブリッククラウドの普及に伴い、仮想サーバ群によってＷｅｂサーバを構築し、その負荷状態に応じてＷｅｂアプリケーションサーバを増減することで、サーバリソースを最適化することが可能になった。
【０００３】
このような負荷分散システムにおいては、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）を構築することで、Ｗｅｂアプリケーションサーバに保存される静的コンテンツを、複数のＷｅｂアプリケーションサーバでネットワークを介して共有するような構成をとることが一般的であった。
【０００４】
特開２００４−２５２９５７号公報（特許文献１）には、「ネットワークストレージを
導入することにより、複数のクライアント計算機間でデータを共有できる」と記載されている。
【０００５】
従来のＮＡＳを使った手法では、ネットワークを介して共有されたＮＡＳへＷｅｂアプリケーションサーバがアクセスする。よって、Ｗｅｂアプリケーションサーバの数が増えることに伴い、ＮＡＳへ同時にアクセスするＷｅｂアプリケーションサーバの数が増えると、ネットワークの帯域の逼迫やスループットの低下などが起こり、パフォーマンスを維持することが難しかった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５２９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
その一方で、分散ファイルシステムを構築するためのソフトウェアを利用してＷｅｂアプリケーションサーバのＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）の情報を複数のＷｅｂアプリケーションサーバ（ノード群）で同期させれば、パフォーマンスを維持できる。
【０００８】
しかし、新たにＷｅｂアプリケーションサーバを分散ファイルシステムの信頼されたノード群に追加させるには、分散ファイルシステムを構成しているいずれかのノードにおいて新たに参加させるＷｅｂアプリケーションサーバを、分散ファイルシステムのノードとして信頼させるための設定が必要である。
【０００９】
そして、この設定では、新たに追加されるＷｅｂアプリケーションサーバのホスト名やＩＰアドレスなど、Ｗｅｂアプリケーションサーバとして追加されるノードを一意に決定できる情報を指定する必要がある。
【００１０】
ここで、パブリッククラウドの場合、Ｗｅｂアプリケーションを動作させるのに必要なファイル（例えば、アプリケーションプログラム）を仮想サーバがノード群に追加された後に分散ファイルシステムから読み込み、その後、Ｗｅｂアプリケーションサーバとして動作するものがある。その場合、Ｗｅｂアプリケーションサーバは、自らが仮想サーバとして起動された際に決定されたＩＰアドレスやホスト名を用いて新たなノードとして指定されることでノード群に追加される。そして、ノード群に追加されることで分散ファイルシステムにアクセス可能になり、分散ファイルシステムからＷｅｂアプリケーションプログラムを読み込むことで、Ｗｅｂアプリケーションを動作させる。よって、Ｗｅｂアプリケーションサーバが仮想サーバとして起動されるまでは、新たに追加されるＷｅｂアプリケーションサーバのホスト名やＩＰアドレスを取得できないため、ノードを追加する設定を人手で行わなければならなかった。
【００１１】
このように、従来は、仮想サーバを起動し、自身のＩＰアドレスやホスト名を取得し、ノード群に追加された後にＷｅｂアプリケーションを立ち上げるという一連のプロセスを自動化させることが困難だった。
【００１２】
本発明の目的は、分散ファイルシステムのノード群に追加された複数の追加済Ｗｅｂサーバによって分散ファイルシステムを共有する構成において、新たに追加される新規追加Ｗｅｂサーバが分散ファイルシステムにアクセスできるようにするプロセスを自動化する負荷分散システムおよび負荷分散システムデータ共有方法ならびに負荷分散システムデータ共有プログラムを提供することである。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１４】
本発明の一実施の形態は、仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムであって、前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバは、自身の識別情報をメッセージキューに投入させる第１プログラムを有する。また、前記追加済Ｗｅｂサーバは、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加させる第２プログラムを有する。
【００１５】
また、他の実施の形態では、仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムにおける負荷分散システムデータ共有方法であって、前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバにより、自身の識別情報をメッセージキューに投入する第１ステップを有する。さらに、前記追加済Ｗｅｂサーバにより、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加する第２ステップを有する。
【００１６】
また、他の実施の形態では、仮想マシンイメージから作成された複数の追加済Ｗｅｂサーバが共通して分散ファイルシステムにアクセスする負荷分散システムのコンピュータを機能させるための負荷分散システムデータ共有プログラムであって、前記仮想マシンイメージから新たに作成された新規追加Ｗｅｂサーバにより、自身の識別情報をメッセージキューに投入する第１ステップと、前記追加済Ｗｅｂサーバにより、前記メッセージキューから取り出した前記識別情報に基づいて前記新規追加Ｗｅｂサーバを前記分散ファイルシステムにアクセス可能なノードとして追加する第２ステップと、を前記コンピュータに実行させる。
【発明の効果】
【００１７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１８】
本発明の一実施の形態によれば、分散ファイルシステムのノード群に追加された複数の追加済Ｗｅｂサーバを共有する構成において、新たに追加される新規追加Ｗｅｂサーバが分散ファイルシステムにアクセスできるようにするプロセスを自動化できるようになる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施の形態における負荷分散システムの構成例の概要を示す図である。
【図２】本発明の一実施の形態における新規追加Ｗｅｂサーバの処理の流れを示す図である。
【図３】本発明の一実施の形態における追加済Ｗｅｂサーバの処理の流れを示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２１】
本発明の一実施の形態である負荷分散システムは、仮想サーバからなる複数のＷｅｂアプリケーションサーバが分散ファイルシステムによりＤＡＳを共有する構成の負荷分散システムにおいて、新規に追加されるＷｅｂアプリケーションサーバが暗号化した自身の識別情報を、メッセージキューを介してノード群に既に追加されているＷｅｂアプリケーションサーバに渡す。そして、渡された識別情報をこのＷｅｂアプリケーションサーバが復号することで、新規に追加されるＷｅｂアプリケーションサーバが信頼できるものであることを分散ファイルシステムに設定する。また、これらの処理を行うプログラムと、暗号化するための秘密鍵と復号するための公開鍵とのペアをＷｅｂアプリケーションサーバの仮想マシンイメージとに組み込んでおく。これによって、手動で設定させることなく、新規にＷｅｂアプリケーションサーバを分散ファイルシステムのノード群に追加できるようになる。
【００２２】
＜システム構成＞
図１は、本発明の一実施の形態における負荷分散システム１００の構成例の概要を示す。
【００２３】
本発明の一実施の形態における負荷分散システム１００は例えば、パブリッククラウドシステム１０上での仮想サーバからなる複数の追加済Ｗｅｂサーバ１１０と、分散ファイルシステム１１２と、メッセージキュー５００とを有する。
【００２４】
パブリッククラウドシステム１０は、不特定多数のクライアント端末２００に対してサーバやストレージ等のサービス（リソース）を提供する。また、パブリッククラウドシステム１０は、物理的なコンピュータ上で生成された複数の仮想サーバ（例えば、追加済Ｗｅｂサーバ１１０）を稼働させるサーバ仮想化技術が用いられる。
【００２５】
パブリッククラウドシステム１０では、負荷分散システム１００のために最低でも必要な数の追加済Ｗｅｂサーバ１１０が稼働している。また、パブリッククラウドシステム１０は、ノード群の負荷を監視し、負荷が所定の閾値を超えた場合に、追加済Ｗｅｂサーバ１１０と同じ仮想マシンイメージに基づいて作成された新規追加Ｗｅｂサーバ４００を起動する。なお、ノード群の負荷を監視することは、別途設けられる図示しない監視サーバが行うようにしてもよい。または、パブリッククラウドシステム１０のスケールアウトサービスを利用することで、新規追加Ｗｅｂサーバ４００を起動するようにしてもよい。なお、仮想サーバの仮想マシンイメージには、キーペア（秘密鍵１１５とこれに対応する公開鍵１１６）、Ｗｅｂアプリケーション１１１，４０１、エージェント１１４，４０２が組み込まれている。よって、追加済Ｗｅｂサーバ１１０と新規追加Ｗｅｂサーバ４００は、同一のエージェント１１４，４０２、キーペアを有している。
【００２６】
負荷分散装置３００（例えば、ロードバランサ）は、クライアント端末２００からパブリッククラウドシステム１０へのアクセスに対して追加済Ｗｅｂサーバ１１０へのトランザクションを分散させる。なお、負荷分散の仕組みについては、公知の技術を適宜適用することができる。
【００２７】
負荷分散システム１００は、分散ファイルシステム１１２を用いて複数の追加済Ｗｅｂサーバ１１０間でアプリケーションなどのデータを共有する。
【００２８】
分散ファイルシステム１１２は、記憶した情報が追加済Ｗｅｂサーバ１１０のどこに記憶されているのかを管理する。また、分散ファイルシステム１１２は、追加済Ｗｅｂサーバ１１０のＤＡＳを、他の追加済Ｗｅｂサーバ１１０からも共有でアクセス可能にする。なお、ＤＡＳを共有でアクセス可能にする仕組みについては、公知の技術を適宜適用することができる。
【００２９】
エージェント１１４およびエージェント４０２は、追加済Ｗｅｂサーバ１１０のノード群への許可および追加を管理させるプログラムである。マシンイメージから新規追加された新規追加Ｗｅｂサーバ４００のエージェント４０２は、起動時にノードへの追加要求をさせる。さらに、新規追加Ｗｅｂサーバ４００のエージェント４０２は、起動時に割り振られた新規追加Ｗｅｂサーバ４００の識別情報を自身の秘密鍵１１５で電子署名した署名済識別情報をメッセージキュー５００に投入させる第１プログラムによって実装される。これによって、新規追加Ｗｅｂサーバ４００の起動時に割り振られた識別情報を、メッセージキュー５００を介して追加済Ｗｅｂサーバ１１０に渡すことができるようになる。
【００３０】
また、追加済Ｗｅｂサーバ１１０のエージェント１１４は、メッセージキュー５００から署名済識別情報を取り出し、取り出した署名済識別情報を自身の公開鍵１１６により検証して識別情報を取得し、取得した識別情報に基づいて新規追加Ｗｅｂサーバ４００を分散ファイルシステム１１２にアクセス可能なノードとして追加させる第２プログラムによって実装される。そして、ノードとして追加された新規追加Ｗｅｂサーバ４００は、分散ファイルシステム１１２にアクセスできるようになる。
【００３１】
なお、エージェント４０２の第１プログラムとエージェント１１４の第２プログラムとは同一のプログラムモジュールとして実装してもよい。
【００３２】
＜処理の流れ＞
図２は、本発明の一実施の形態における新規追加Ｗｅｂサーバ４００の処理の流れを示す。
【００３３】
まず、Ｓ２０１にて、追加済Ｗｅｂサーバ１１０が起動している状態で高負荷状態になった場合、仮想マシンイメージに基づき、新規追加Ｗｅｂサーバ４００が新たに起動される。このとき、当該新規追加Ｗｅｂサーバ４００にＩＰアドレスやホスト名が割り当てられ、その後、エージェント４０２が常駐プロセスとして起動する（予めＯＳに設定することで、常駐プロセスとして起動する）。なお、ノード群が高負荷状態であるか否かの判定は、例えば、別途設けられる図示しない監視サーバが、ノード群の平均ＣＰＵ使用率を監視することで行う。そして、監視サーバは、例えば平均ＣＰＵ使用率が６０％を超える状態が３分以上継続した場合に、高負荷状態であると判定する。
【００３４】
次に、Ｓ２０２にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、識別情報（例えば、自身に割り当てられた新規追加Ｗｅｂサーバ４００のＩＰアドレスやホスト名）を取得する。
【００３５】
次に、Ｓ２０３にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、Ｓ２０２にて取得した識別情報に対してヘッダ情報を付加し、秘密鍵１１５で暗号化して電子署名することで、署名済識別情報を生成する。
【００３６】
次に、Ｓ２０４にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、Ｓ２０３にて電子署名した署名済識別情報を、メッセージキュー５００へ投入する。
【００３７】
次に、Ｓ２０５にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、Ｗｅｂアプリケーション４０１の動作に必要なファイル（以下、動作ファイル）の読み込みを開始する。ここで、エージェント４０２は、動作ファイルを分散ファイルシステム１１２から読み込む。よって、エージェント４０２が動作ファイルを読み込むためには、新規追加Ｗｅｂサーバ４００がノード群に追加され、分散ファイルシステム１１２にアクセス可能になっていることが前提となる。
【００３８】
次に、Ｓ２０６にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、所定時間以内に動作ファイルを読み込めたか否かを判定する。Ｓ２０６にて、エージェント４０２が動作ファイルを読み込めないと判定する場合（Ｓ２０６−Ｎｏ）、エージェント４０２は、新規追加Ｗｅｂサーバ４００がノード群に追加されなかったと判定し、Ｓ２０８へ進む。そして、Ｓ２０８にて、新規追加Ｗｅｂサーバ４００のエージェント４０２は、新規追加Ｗｅｂサーバ４００をシャットダウンする。一方、Ｓ２０６にて、新規追加Ｗｅｂサーバ４００のエージェント４０２が動作ファイルを読み込めた場合（Ｓ２０６−Ｙｅｓ）、エージェント４０２は、Ｓ２０７へ進む。そして、Ｓ２０７にて、新規追加Ｗｅｂサーバ４００は、動作ファイルに基づきＷｅｂアプリケーション４０１を動作する。動作ファイルを読み込めた新規追加Ｗｅｂサーバ４００は、ノード群に追加されていることを意味する。そして、ノード群に追加されたこの新規追加Ｗｅｂサーバ４００は、以降は追加済Ｗｅｂサーバ１１０として機能する。なお、Ｓ２０８でシャットダウンされた場合、まだ全体の負荷が高い場合は、また新たに新規追加Ｗｅｂサーバ４００が起動され、図２の処理が行われる。
【００３９】
なお、エージェント４０２は、電子署名せずに、取得した識別情報をそのままメッセージキュー５００へ投入するようにしてもよい。
【００４０】
図３は、本発明の一実施の形態における追加済Ｗｅｂサーバ１１０の処理の流れを示す。
【００４１】
まず、Ｓ３０１にて、各追加済Ｗｅｂサーバ１１０のエージェント１１４は、常時メッージキュー５００をポーリングする。そして、いずれかの追加済Ｗｅｂサーバ１１０のエージェント１１４がメッセージキュー５００から署名済識別情報を取り出して、取り出した署名済識別情報を公開鍵１１６で復号して検証する。
【００４２】
次に、Ｓ３０２にて、追加済Ｗｅｂサーバ１１０のエージェント１１４は、Ｓ３０１で検証した結果を判定し、検証できなかった場合（Ｓ３０２−Ｎｏ）、新規追加Ｗｅｂサーバ４００を信用できないと判定し、処理を終了する。すなわち、新規追加Ｗｅｂサーバ４００を放置しノード群に追加しない。一方、Ｓ３０１で検証した結果、検証できた場合（Ｓ３０２−Ｙｅｓ）、新規追加Ｗｅｂサーバ４００を信用可能と判定し、Ｓ３０３へ進む。
【００４３】
次に、Ｓ３０３にて、追加済Ｗｅｂサーバ１１０のエージェント１１４は、メッセージキュー５００から取得した識別情報により設定されるサーバを新たなノードとして分散ファイルシステム１１２に設定することで、新規追加Ｗｅｂサーバ４００をノード群に追加する。これにより、新規追加Ｗｅｂサーバ４００は、図２のＳ２０５で分散ファイルシステム１１２にアクセス可能となり、Ｗｅｂアプリケーションなどを読み込めるようになる。
【００４４】
なお、識別情報は、起動時に割り当てられる可変の情報であれば良く、ＩＰアドレスやホスト名に限定されない。
【００４５】
ここで、本発明の負荷分散システムデータ共有方法および負荷分散システムデータ共有プログラムは、Ｓ２０４が第１ステップに相当し、Ｓ３０３が第２ステップに相当する。
【００４６】
＜本実施の形態の効果＞
以上説明した本実施の形態によれば、新規追加Ｗｅｂサーバ４００が自身の秘密鍵１１５で電子署名した署名済識別情報を、追加済Ｗｅｂサーバ１１０が自身の公開鍵１１６で検証できた場合に、新規追加Ｗｅｂサーバ４００を信頼できるものとしてノード群に追加させることで、新規追加Ｗｅｂサーバ４００を負荷分散システム１００のノード群に追加させる設定を自動で行うことができる。
【００４７】
以上、本発明によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００４８】
本発明は、負荷分散システムのノード群に追加された複数の追加済Ｗｅｂサーバを共有する構成において、新たに追加される新規追加Ｗｅｂサーバが分散ファイルシステムにアクセスできるようにするプロセスを自動化できるようになるという優れた効果を有し、負荷分散システムおよび負荷分散システムデータ共有方法ならびに負荷分散システムデータ共有プログラムにも適用することができる。
【符号の説明】
【００４９】
１０    パブリッククラウドシステム
１００  負荷分散システム
１１０  追加済Ｗｅｂサーバ
１１１，４０１  Ｗｅｂアプリケーション
１１２  分散ファイルシステム
１１４，４０２  エージェント
１１５  秘密鍵
１１６  公開鍵
２００  クライアント端末
３００  負荷分散装置
４００  新規追加Ｗｅｂサーバ
５００  メッセージキュー
【図１】
2014186698.tif 000003
【図２】
2014186698.tif 000004
【図３】
2014186698.tif 000005