(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022182744
(43)【公開日】2022-12-08
(54)【発明の名称】分散処理支援システム
(51)【国際特許分類】
G06F 9/50 20060101AFI20221201BHJP
【FI】
G06F9/50 150A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2021090457
(22)【出願日】2021-05-28
(71)【出願人】
【識別番号】514190246
【氏名又は名称】株式会社フロムスクラッチ
(74)【代理人】
【識別番号】110002790
【氏名又は名称】One ip弁理士法人
(72)【発明者】
【氏名】安部 泰洋
(57)【要約】
【課題】信頼性の低いノードを用いた場合でも分散処理を効率良く行うことができるようにする。
【解決手段】分散処理支援システムは、分散処理を行う複数の仮想サーバを含むクラスタを複数作成するクラスタ作成部と、クラスタのそれぞれの現在の処理能力を取得する処理能力測定部と、処理能力に応じてクラスタを選択し、選択したクラスタへの接続情報を送出する接続情報送信部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
分散処理を行う複数の仮想サーバを含むクラスタを複数作成するクラスタ作成部と、
前記クラスタのそれぞれの現在の処理能力を取得する処理能力測定部と、
前記処理能力に応じて前記クラスタを選択し、選択した前記クラスタへの接続情報を送出する接続情報送信部と、
を備えることを特徴とする分散処理支援システム。
【請求項2】
請求項1に記載の分散処理支援システムであって、
前記処理能力測定部は、前記クラスタのそれぞれについて、前記クラスタに含まれる前記仮想サーバのそれぞれが動作しているか否かを判定し、全ての前記仮想サーバが動作している前記クラスタからひとつを選択すること、
を特徴とする分散処理支援システム。
【請求項3】
請求項2に記載の分散処理支援システムであって、
前記クラスタ作成部は、動作していない前記仮想サーバが含まれている前記クラスタについて、当該クラスタを再起動すること、
を特徴とする分散処理支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散処理支援システムに関する。
【背景技術】
【0002】
分散処理のために複数のノードから構成されるクラスタが利用されている。特許文献1には、リソース使用に空きがでないようにタスクを実行する環境を作る技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では確実に利用可能なコンピュータが起動されていることを前提としているところ、クラウドコンピューティングでは、複数の利用者が1台のコンピュータを共有できるようにしてコスト低減を図ることが行われており、そのような場合、ノードを起動したとしても実際に利用を開始するまで、そのノードが確実に利用可能であることが保障されず、効率的なタスク処理を行うことができない。
【0005】
本発明はこのような背景を鑑みてなされたものであり、信頼性の低いノードを用いた場合でも分散処理を効率良く行うことのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するための本発明の主たる発明は、分散処理支援システムであって、分散処理を行う複数の仮想サーバを含むクラスタを複数作成するクラスタ作成部と、前記クラスタのそれぞれの現在の処理能力を取得する処理能力測定部と、前記処理能力に応じて前記クラスタを選択し、選択した前記クラスタへの接続情報を送出する接続情報送信部と、を備えることとする。
【0007】
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【0008】
本開示によれば、信頼性の低いノードを用いた場合でも分散処理を効率良く行うことができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係る分散処理システムの全体構成を説明するための図である。
【
図2】管理コンピュータ2のハードウェア構成例を示す図である。
【
図3】管理サーバ2のソフトウェア構成例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態の内容を列記して説明する。本発明は、以下のような構成を備える。
【0011】
[項目1]
分散処理を行う複数の仮想サーバを含むクラスタを複数作成するクラスタ作成部と、
前記クラスタのそれぞれの現在の処理能力を取得する処理能力測定部と、
前記処理能力に応じて前記クラスタを選択し、選択した前記クラスタへの接続情報を送出する接続情報送信部と、
を備えることを特徴とする分散処理支援システム。
[項目2]
項目1に記載の分散処理支援システムであって、
前記処理能力測定部は、前記クラスタのそれぞれについて、前記クラスタに含まれる前記仮想サーバのそれぞれが動作しているか否かを判定し、全ての前記仮想サーバが動作している前記クラスタからひとつを選択すること、
を特徴とする分散処理支援システム。
[項目3]
項目2に記載の分散処理支援システムであって、
前記クラスタ作成部は、動作していない前記仮想サーバが含まれている前記クラスタについて、当該クラスタを再起動すること、
を特徴とする分散処理支援システム。
【0012】
以下、本発明の一実施形態に係る分散処理システムについて図面を参照して説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【0013】
図1は、本実施形態に係る分散処理システムの全体構成を説明するための図である。本実施形態の分散処理システムは、ユーザ装置1、管理サーバ2およびクラウドサービス3を含んで構成されている。本実施形態の分散処理システムは、クラスタ31をクラウドサービス3が提供し、ユーザ装置1がクラスタ31を利用したMapReduce処理を行うことを想定する。ここでMapReduce処理を実行するクラスタ31は複数のノード32から構成される。ノード32は仮想コンピュータである。本実施形態では、ノード32はスポット利用、すなわち、クラウドサービス3内で利用されていない仮想コンピュータを利用可能となることを想定している。したがって、予めクラスタ31を起動していても、実際に使用する際に確実にノード32が動作している保証が存在しない。そこで、本実施形態では、管理サーバ2がクラスタ31の状態を監視し、ユーザ装置1は、管理サーバ2に利用可能なクラスタ31を問い合わせて利用するようにしている。
【0014】
ユーザ装置1は、MapReduce処理を利用したアプリケーションを実行するコンピュータである。ユーザ装置1は、たとえば、パーソナルコンピュータやスマートフォンなどのクライアント側のコンピュータであってもよいし、クライアントコンピュータからアクセスされるるサーバコンピュータであってもよい。
【0015】
管理サーバ2は、クラスタ31の起動や監視を行うコンピュータである。管理サーバ2は、たとえば、パーソナルコンピュータやワークステーションなどのコンピュータとすることができる。また、管理サーバ2も、クラウドサービス3が提供する仮想コンピュータにより実現することもできる。なお、管理サーバ2についてはスポット利用ではなく、常時利用可能であるオンデマンド利用されることを想定している。
【0016】
クラウドサービス3は、各種のクラウドコンピューティングサービスを提供する。クラウドサービス3は、たとえば複数のコンピュータにより実現することができる。本実施形態では、クラウドサービス3は、1台のコンピュータとして管理サーバ2は認識可能であり、クラウドサービス3に対してアクセスすることにより、仮想コンピュータの起動や停止を含む各種のクラウドコンピューティングサービスを了する利用することができる。
【0017】
図2は、管理コンピュータ2のハードウェア構成例を示す図である。管理コンピュータ2は、CPU201、メモリ202、記憶装置203、通信インタフェース204、入力装置205、出力装置206を備える。記憶装置203は、各種のデータやプログラムを記憶する、例えばハードディスクドライブやソリッドステートドライブ、フラッシュメモリなどである。通信インタフェース204は、通信ネットワークに接続するためのインタフェースであり、例えばイーサネット(登録商標)に接続するためのアダプタ、公衆電話回線網に接続するためのモデム、無線通信を行うための無線通信機、シリアル通信のためのUSB(Universal Serial Bus)コネクタやRS232Cコネクタなどである。入力装置205は、データを入力する、例えばキーボードやマウス、タッチパネル、ボタン、マイクロフォンなどである。出力装置206は、データを出力する、例えばディスプレイやプリンタ、スピーカなどである。
【0018】
図3は、管理サーバ2のソフトウェア構成例を示す図である。管理サーバ2は、クラスタ作成部211、処理能力測定部212、接続情報送信部213、設定情報記憶部231を備える。
【0019】
なお、クラスタ作成部211、処理能力測定部212、接続情報送信部213は、管理サーバ2が備えるCPU201が記憶装置203に記憶されているプログラムをメモリ202に読み出して実行することにより実現され、設定情報記憶部231は、メモリ202および記憶装置203が提供する記憶領域の一部として実現される。
【0020】
設定情報記憶部231は、クラスタ31に関する設定情報を記憶する。設定情報には、たとえば、クラスタ31を構成するノード32の数や、クラスタ31(または、その管理ノード)に割り当てるIPアドレスおよびホスト名などを含めることができる。
【0021】
クラスタ作成部211は、クラスタ31を作成する。クラスタ作成部211は、たとえば、クラウドサービス3に対してコマンドを送信することにより、ノード32を起動し、クラスタ31を構築することができる。本実施形態では、クラスタ作成部211は、スポット利用によるノード32を起動することができる。
【0022】
処理能力測定部212は、クラスタ31の状態(処理能力)を検出する。処理能力測定部212は、たとえば、ICMPのリクエストを送信し、その応答を検出する、いわゆるpingによりノード31が利用可能かどうかの、いわゆる死活を監視することができる。処理能力測定部212は、pingのみでなく、たとえば、SSHなどによるログイン処理が可能かどうかなど、ノード31がMapReduce処理を行うことが可能かどうかを判定するようにしてもよい。また、処理能力測定部212は、たとえば、クラスタ31の管理を行っているノード32(管理ノード)に対してリクエストを送信して、クラスタ31におけるMapReduce処理による負荷の状態を取得することができる。
【0023】
接続情報送信部213は、ユーザ装置1に対してクラスタ31への接続情報を送信する。接続情報とは、クラスタ31(またはその管理ノード)にアクセスするための情報であり、たとえば、URLやIPアドレスなどを含めることができる。接続情報送信部213は、APIサーバとして機能し、ユーザ装置1からのリクエストに応じて、ユーザ装置1がアクセスすべきクラスタ31を決定し、決定したクラスタ31にアクセスするための接続情報を応答する。接続情報送信部213は、たとえば、処理能力測定部212による検出結果に応じて、たとえば、クラスタ31を構成する利用可能なノード32の数が最も多いクラスタ31、あるいは、ノード32のCPUの利用率やメモリの使用量の合計が最も小さい(処理負荷が最も小さい)クラスタ31を、ユーザ装置1がアクセスすべきクラスタ31として決定することができる。
【0024】
図1に戻り、本実施形態の分散処理システムの動作について説明する。
【0025】
まず管理サーバ2のクラスタ作成部211は、予め所定数(設定情報として指定することができる。)のクラスタ31を作成する(S101)。すなわち、クラウドサービス3においてクラスタ作成部211は、設定情報に応じた数のノード32を起動し、クラスタ31として構成するようにノード32の設定処理を行うことができる。
【0026】
管理サーバ2がユーザ装置1からMapReduce処理を行うために利用するクラスタ31の問い合わせを受信すると(S102)、処理能力測定部212は、クラスタ31の状態を検出し(S103)、接続情報送信部213は、検出結果に応じて、ユーザ装置1がアクセスすべきクラスタ31を決定して、決定したクラスタ31への接続情報を応答する(S104)。
【0027】
ユーザ装置1は、管理サーバ2から応答された接続情報を用いて、クラウドサービス3が提供するクラスタ31にアクセスして、MapReduce処理を実行する(S105)。
【0028】
以上のようにして、本実施形態の分散処理システムによれば、クラスタ31の状態(処理が可能かどうか、処理の負荷が高いかどうか)に応じて、ユーザ装置1が利用するべきクラスタ31を決定して、そこにユーザ装置1を接続させることができる。したがって、効率的にクラスタ31を利用することが可能となる。
【0029】
また、本実施形態の分散処理システムによれば、クラスタ31を構成するノード32の死活を確認することができるので、スポット利用のようにノード32の利用可能性が保証されていないようなサービスであっても、ユーザ装置1には利用可能なクラスタ31への接続情報を提供することができる。よって、比較的安価に提供されるスポット利用のノード32を利用しながらも、ユーザ装置1に対しては常時利用可能な状態を仮想的に実現することができる。
【0030】
以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することが出来る。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
【0031】
たとえば、本実施形態では、管理サーバ2は予め起動したクラスタ31の状態のみに基づいて接続情報を応答するものとしたが、これに限らず、たとえば、所定の条件(たとえば、CPUの利用率が所定値以下であることやメモリの空き容量が所定値以上であることなど、任意の条件を指定することができる)を満たすクラスタ31が存在していない場合には、クラスタ起動部211が新たにクラスタ31を作成し、接続情報送信部213は、作成したクラスタ31に対する接続情報を応答するようにしてもよい。
【0032】
また、本実施形態では、クラスタ31を構成するノード32は全てスポット利用を想定していたが、これに限らず、たとえば、MapReduce処理に関する管理を行う管理ノードについては、スポット利用ではなくオンデマンド利用とし、処理能力測定部212が常に管理ノードとの間で、クラスタ31の状況をやりとりすることができるようにしてもよい。
【0033】
また、本実施形態では、接続情報送信部213は、クラスタ31の状況を総合的に判断して、ユーザ端末1がアクセスすべきクラスタ31を決定するものとしたが、たとえば、ノード32が所定数(たとえば1とすることができる。)動作していない(あるいは、処理を受け付けていない)場合に、そのクラスタ31を候補から外すようにしてもよい。さらに、ノード32が所定数動作していない(あるいは、処理を受け付けていない)場合には、クラスタ作成部211は、そのクラスタ31を再起動するようにしてもよい。
【符号の説明】
【0034】
211 クラスタ作成部
212 処理能力測定部
213 接続情報送信部
231 設定情報記憶部