JP6235973B2 - サーバ - Google Patents

サーバ Download PDF

Info

Publication number
JP6235973B2
JP6235973B2 JP2014169113A JP2014169113A JP6235973B2 JP 6235973 B2 JP6235973 B2 JP 6235973B2 JP 2014169113 A JP2014169113 A JP 2014169113A JP 2014169113 A JP2014169113 A JP 2014169113A JP 6235973 B2 JP6235973 B2 JP 6235973B2
Authority
JP
Japan
Prior art keywords
server
memory
servers
cluster
reduction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014169113A
Other languages
English (en)
Other versions
JP2016045682A (ja
Inventor
博史 野口
博史 野口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014169113A priority Critical patent/JP6235973B2/ja
Publication of JP2016045682A publication Critical patent/JP2016045682A/ja
Application granted granted Critical
Publication of JP6235973B2 publication Critical patent/JP6235973B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、複数のサーバから構成されるクラスタ(「クラスタシステム」、または、「システム」、と称する場合もある。)のリソースの利用効率を最適化する技術に関する。
高負荷処理、大容量データの使用が求められるシステムとして、複数のサーバリソースを協調させることでシステム全体の性能を向上させるクラスタシステムが用いられている。クラスタを構築する技術の一つとして、SSI(Single System Image)という技術が存在する(非特許文献1参照)。
SSIはOS(Operating System)と連携して動作するソフトウェアである。SSIソフトウェアは、アプリケーションの実行をサーバに要求するクライアントに対して、複数のサーバを単一のサーバであるかのように見せかけることを可能にする。例えば、SSIソフトウェアの1つであるKerrighed(非特許文献2参照)は、クラスタを構成する各サーバのリソース情報を統合することで、アプリケーションに意識させることなくプロセスを複数のサーバに分散して処理させることや、システム稼働中であっても、プロセス、および、メモリ上のデータを他のサーバに移動することが可能である。このとき、プロセスの分散は、SSIソフトウェアの持つスケジューラによって実現される。また、SSIは、システム稼働中にサーバ数を増減させることもできる。
SSIソフトウェアを用いることで、複数のサーバへプロセスを分散することができる。しかし、システムの運用コスト、電力コストなどのコストを削減するという観点から、余剰のサーバを減設し、残りのサーバについては常に高いリソースの利用効率でシステムを運用したいという要望がある。この要望を実現するためには、サーバに分散するプロセスに関して、サーバの増減設を意識したプロセス分散ロジックが必要である。
Kerrighedは、クラスタを構成する各サーバのCPU(Central Processing Unit)使用率に基づいてプロセスを分散している。しかし、Kerrighedは、プロセスが動作するときのメモリ使用量は考慮しないため、サーバが十分なメモリ空き容量を確保できない可能性が高い。その結果、クラスタ全体として見ればメモリに余裕があっても(つまり、クラスタ全体のリソース利用効率は低くても)、大きなメモリ空き容量を必要とするプロセスを起動するためにサーバを増設しなければならず、コストの増大化を招いてしまう。
また、サーバを減設するためには、そのサーバ上で動作するプロセスを無くす必要がある。しかし、負荷分散のためにプロセスの分散を確率的に行うクラスタシステムにおいて、どのサーバについても動作中のプロセスが無くなることは稀であり、サーバの減設をする機会は一向に生じない。こうした事態は、クラスタ全体のリソース利用効率が概ね低く、無駄なコストが生じており、望ましくない。
クラスタ運用の都合上、止むを得ずサーバを増設しなければならない場合はあるものの、Kerrighedをはじめ、従来技術は、クラスタ全体のリソース利用効率が概して低くなってしまうため、コスト削減という観点から、従来技術のプロセス分散ロジックには問題がある。
Bruce J. Walker, Hewlett-Packard、"Open Single System Image (openSSI) Linux(登録商標) Cluster Project"、[online]、[2014年8月1日検索]、インターネット <URL:http://openssi.org/ssi-intro.pdf> Christine Morin, et al, "Kerrighed: A Single System Image Cluster Operating System for High Performance Computing"、Euro-Par 2003 Parallel Processing Lecture Notes in Computer Science Volume 2790, 2003, pp 1291-1294
このような背景に鑑みて、本発明は、サーバの増減設によって、クラスタ全体のリソース利用効率を高くするためのプロセス配置ロジックを提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、複数のサーバ間でプロセスを移行することで分散処理を行うクラスタを構成するサーバであって、前記サーバの記憶部は、前記クラスタを構成するサーバごとに、前記サーバ上で動作する1または複数のプロセス、前記プロセスの動作に基づいて求められるメモリのメモリ使用量、および、前記メモリのメモリ空き容量、を対応付けて記憶しており、前記サーバの制御部は、前記クラスタを構成するサーバの中に、前記メモリ使用量が、前記サーバの各々に対して予め設定された減設閾値を下回った減設候補サーバが存在するか否かを判定する制御と、前記減設候補サーバが存在する場合には、前記クラスタを構成するサーバの中に、前記減設候補サーバ上で動作するすべてのプロセスがメモリを使用するときに求められるメモリ使用量を上回る前記メモリ空き容量を有する空き余裕サーバが存在するか否かを判定する制御と、を実行し、前記減設候補サーバであるサーバの制御部は、前記空き余裕サーバが存在する場合には、前記減設候補サーバ上で動作するすべてのプロセスを前記空き余裕サーバに移行し、前記減設候補サーバを減設する制御を実行する、ことを特徴とする。
請求項1に記載の発明によれば、メモリ使用量が小さく、リソースの利用効率が低い減設候補サーバと、減設候補サーバ上で動作するプロセスを配置できる空き余裕サーバを特定する。これにより、減設候補サーバの減設によってクラスタに関するコストを削減できるとともに、空き余裕サーバのリソースの利用効率が高まることでクラスタ全体のリソース利用効率を高くすることができる。したがって、サーバの減設によって、クラスタ全体のリソース利用効率を高くするためのプロセス配置ロジックを提供することができる。このようなプロセス配置ロジックは、既存のSSI技術の機能と親和性が高いロジックであり、ハードウェアの改造を必要とせず、ソフトウェアの改造のみで実現可能である。
また、請求項2に記載の発明は、複数のサーバ間でプロセスを移行することで分散処理を行うクラスタを構成するサーバであって、前記サーバの記憶部は、前記クラスタを構成するサーバごとに、前記サーバ上で動作する1または複数のプロセス、前記プロセスの動作に基づいて求められるメモリのメモリ使用量、および、前記メモリのメモリ空き容量、を対応付けて記憶しており、前記クラスタにて新規プロセスが生成された場合、一時サーバとして機能する前記サーバの制御部は、記新規プロセスの初期起動を行う制御と、前記新規プロセスの動作に基づいて求められるメモリのメモリ使用量を推定する制御と、前記クラスタを構成するサーバの中に、前記推定したメモリ使用量を上回る前記メモリ空き容量を有する移行可能サーバが存在するか否かを判定する制御と、前記移行可能サーバが存在する場合には、前記新規プロセスを前記移行可能サーバに移行する制御と、前記移行可能サーバが存在しない場合には、前記一時サーバから通常サーバに昇格するとともに、前記一時サーバと同様に機能する新規一時サーバの増設を前記クラスタに要求する制御と、を実行する、ことを特徴とする。
請求項2に記載の発明によれば、新規プロセスの取り扱いに関して、一時サーバが前もって新規プロセスの動作に伴うメモリ使用量を推定することで、サーバ増設の必要性を判定することができる。この判定において、既存の移行可能サーバに新規プロセスを移行することを優先することによって、サーバの増設を必要最小限にとどめるとともに、移行可能サーバのリソースの利用効率を高めることができる。したがって、サーバの増設によって、クラスタ全体のリソース利用効率を高くするためのプロセス分散ロジックを提供することができる。このようなプロセス配置ロジックは、既存のSSI技術の機能と親和性が高いロジックであり、ハードウェアの改造を必要とせず、ソフトウェアの改造のみで実現可能である。
また、請求項3に記載の発明は、請求項2に記載の発明において、前記一時サーバとして機能するサーバの制御部は、前記移行可能サーバが複数存在する場合には、前記記憶部を参照して、前記メモリ空き容量の最も小さなサーバを特定する制御と、前記新規プロセスを、前記特定されたサーバに移行する制御と、を実行する、ことを特徴とする。
請求項3に記載の発明によれば、大きなメモリ使用量を必要とするプロセスを配置することができる移行可能サーバを優先的に残すことができるので、このようなプロセスに対してサーバを増設するという手段を極力とらずに済ませることができる。
また、請求項4に記載の発明は、請求項2または請求項3に記載の発明において、前記一時サーバとして機能するサーバの制御部は、前記クラスタを構成するサーバの中に、前記メモリ使用量が、前記サーバの各々に対して予め設定された減設閾値を下回った減設候補サーバが存在するか否かを判定する制御と、前記減設候補サーバが存在する場合には、前記減設候補サーバ以外のサーバを優先的に前記移行可能サーバとする制御、を実行する、ことを特徴とする。
請求項4に記載の発明によれば、減設候補サーバに新規プロセスを移行してしまうことで、メモリ使用量が減設候補サーバの減設閾値を超えてしまい、減設候補とならず、サーバの減設によるコスト削減という目的を果たせなくなってしまう、という不都合を避けることができる。
本発明によれば、サーバの増減設によって、クラスタ全体のリソース利用効率を高くするためのプロセス分散ロジックを提供することができる。
本実施形態のサーバから構成されるクラスタの全体構成図である。 SSIソフトウェアの機能構成図である。 サーバ管理テーブルのデータ構造図である。 サーバの減設処理を示すフローチャートである。 一時サーバによるサーバ増設処理を示すフローチャートである。
≪構成≫
図1に示すように、本実施形態のサーバ1は、図示しないクライアントからの要求に対しアプリケーション(図1では、「APL」と表記。)を実行することで、所定のサービスをクライアントに提供する。複数のサーバ1は、互いに通信可能に接続されており、所定の情報を送受信することができる。サーバ1は、自身のOS20と連携して動作することで他のサーバ1とクラスタを構成するSSIソフトウェア10を有している。つまり、SSIソフトウェア10を有する複数のサーバ1は、OSレイヤにてクラスタを構成する。
SSIソフトウェア10は、アプリケーションおよびクライアントに対して、複数のサーバ1を単一のサーバとして見せている。SSIソフトウェア10は、アプリケーションを実行するときにクラスタの内部処理で発生するプロセスを、クラスタを構成する特定のサーバ1に移行することができる。所定のプロセスがサーバ1上で動作すると、そのサーバ1のメモリのメモリ使用量(図1では、斜線領域で図示)が増大し、メモリ空き容量が小さくなる。なお、SSIソフトウェア10は、クラスタが稼働中であっても、サーバ1(破線で図示)の増減設を行うことができる。
一時サーバ1Aは、他のサーバ1とともにクラスタを構成し、他のサーバ1と同様に機能するサーバである。一時サーバ1Aに関する詳細は後記する。
サーバ1は、入力部、出力部、制御部および記憶部といったハードウェアを含むコンピュータである。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現する。また、そのコンピュータが含む記憶部は、CPUが指令し、そのコンピュータの機能を実現するためのプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供される。
〔SSIソフトウェア10〕
図2に示すように、SSIソフトウェア10は、リソース情報取得部11、プロセス移行部12、データ移行部13、減設候補サーバ決定部14、空き余裕サーバ決定部15、増減設実行部16、一時サーバ指定部17、メモリ使用量推定部18、移行可能サーバ決定部19、サーバ管理テーブルT、といった機能部を有する。また、SSIソフトウェア10は、外部(例えば、クラスタシステムのオペレータが操作するHMI(Human Machine Interface))から入力された減設閾値(詳細は後記)を有する。サーバ1の各々は、SSIソフトウェア10を有しており、したがって、上記した機能部、および、自身のサーバ1に設定された減設閾値を有する。
リソース情報取得部11は、クラスタを構成するすべてのサーバ1を監視して、すべてのサーバ1から、各々のサーバ1のリソース情報を取得する。取得されるリソース情報には、例えば、サーバ1のCPU使用率、メモリ使用量、メモリ空き容量、搭載メモリ量、サーバ1上で動作するプロセスを識別するプロセスID(Identifier)がある。リソース情報取得部11は、取得したリソース情報の一部または全部をサーバ管理テーブルTに格納する。
プロセス移行部12は、サーバ1上で動作するプロセスを別のサーバ1に移行する。
データ移行部13は、サーバ1がメモリに格納しているデータを他のサーバ1に移行する。前記データは、例えば、アプリケーションがアクセスするデータである。
減設候補サーバ決定部14は、サーバ管理テーブルTを参照して、クラスタを構成するサーバ1各々について、メモリ使用量が、予め設定された減設閾値を下回った減設候補サーバが存在するか否かを判定する。存在する場合、減設候補サーバ決定部14は、サーバ管理テーブルTにおいて、減設候補サーバと決定したサーバ1の減設候補フラグをオンにする。
空き余裕サーバ決定部15は、減設候補サーバ決定部14によって減設候補フラグがオンになった減設候補サーバが存在する場合には、サーバ管理テーブルTを参照して、クラスタを構成するサーバ1の中に、減設候補サーバ上で動作するすべてのプロセスがメモリを使用するときに求められるメモリ使用量を上回るメモリ空き容量を有する空き余裕サーバが存在するか否かを判定する。減設候補サーバのプロセス移行部12は、空き余裕サーバ決定部15が存在すると決定した空き余裕サーバにすべてのプロセスを移行する。
増減設実行部16は、クラスタを構成するサーバ1の増設および減設を実行する。本実施形態では、減設されるサーバ1は、減設候補サーバであり、増設されるサーバ1は、一時サーバ1Aが通常サーバに昇格した後に増設される新規一時サーバである(詳細は後記)。増減設実行部16は、減設されるサーバ1については、サーバ管理テーブルT内の該当レコードを削除し、増設されるサーバ1については、サーバ管理テーブルT内に該当レコードを新規に作成する。
一時サーバ指定部17は、クラスタを構成するサーバ1のうち、新規プロセスの初期起動を行うサーバを一時サーバ1Aとして指定する。一時サーバ指定部17は、クラスタを構成している一時サーバ1Aが通常サーバに昇格した場合に、増設するサーバを新規一時サーバとして指定する。指定された新規一時サーバについては、サーバ管理テーブルTにおいてレコードが作成され、一時サーバ指定フラグがオンになる。
メモリ使用量推定部18は、クラスタを構成するサーバ1が一時サーバ1Aである場合に、新規プロセスの動作に基づいて求められるメモリのメモリ使用量を推定する。メモリ使用量を推定するロジックとしては、例えば、新規プロセス起動後に、クラスタシステムの保守者が任意に設定した周期および回数にわたってメモリ使用量を計測し、計測したメモリ使用量からOS20が使用するメモリ量を減算した平均量を、新規プロセスが使用するメモリ量を概算量として推定する方法がある。
移行可能サーバ決定部19は、サーバ管理テーブルTを参照して、クラスタを構成するサーバ1の中に、推定したメモリ使用量を上回るメモリ空き容量を有する移行可能サーバが存在するか否かを判定する。一時サーバ1Aのプロセス移行部12は、移行可能サーバ決定部19が決定した移行可能サーバに、メモリ使用量を推定した新規プロセスを移行する。
サーバ管理テーブルTは、クラスタを構成するサーバ1を管理するためのテーブルである。各サーバ1は、互いに情報を送受信することで、サーバ管理テーブルTの最新の内容を共有することができる。
図3に示すように、サーバ管理テーブルTは、サーバID(Identifier)、プロセスID、搭載メモリ量、メモリ使用量、メモリ空き容量、減設候補フラグ、および一時サーバ指定フラグ、といった項目を有し、サーバ1ごとにレコードが作成される。
サーバIDの項目には、クラスタを構成するサーバ1を識別する識別子が格納される。前記識別子は、例えば、サーバ1に割り当てられたIP(Internet Protocol)アドレスである。また、サーバ1に割り当てられるMAC(Media Access Controller)アドレスでもよい。
プロセスIDの項目には、該当のサーバ1上で動作中の1または複数のプロセスを識別する識別子が格納される。
搭載メモリ量の項目には、サーバ1が有するメモリのサイズが格納される。
メモリ使用量の項目には、サーバ1が使用中のメモリの容量が格納される。サーバ管理テーブルTのメモリ使用量は、サーバ1上で動作中のすべてのプロセスが使用するメモリのサイズが含まれるが、サーバ1が有するデータの使用サイズを含めても、または含めなくてもよいし、OS20の使用サイズを含めても、または含めなくてもよい。
メモリ空き容量の項目には、サーバ1が使用していないメモリの容量が格納される。
減設候補フラグの項目には、該当のサーバ1が減設候補サーバであるか否かを示すフラグが格納される。格納されるフラグには、減設候補サーバであることを示す「オン」と、減設候補サーバではないことを示す「オフ」がある。
一時サーバ指定フラグの項目には、該当サーバ1が一時サーバであるか否かを示すフラグが格納される。格納されるフラグには、一時サーバであることを示す「オン」と、一時サーバではないことを示す「オフ」がある。
図2に戻って、減設閾値は、サーバ1のメモリ使用量に関する閾値である。減設閾値は、例えば、クラスタシステムの保守者が任意に設定することができる。
図1に示すように、メモリ使用量の値が減設閾値を下回るサーバ1(図1では、最も左側のサーバ1)があった場合、そのサーバ1を減設候補サーバとする。このとき、サーバ管理テーブルTにおいて、減設候補サーバの減設候補フラグはオンになる。所定の条件(後記)を満たしたのち、減設候補サーバは減設される。
≪処理≫
本実施形態の処理について説明する。処理の主体は、サーバ1の制御部であるが、説明の便宜上、「制御部」という語は省略する。
図4を参照して、サーバの減設処理を説明する。この処理は、クラスタを構成するサーバ1の各々が定期的に実行し、ステップS1から処理を開始する。なお、サーバの減設処理が行われない間は、クラスタシステム内で負荷分散処理に基づくプロセスの分散が実行されており、サーバの減設処理を実行する場合には、プロセスの分散よりもサーバの減設処理を優先する。
ステップS1において、サーバ1は、リソース情報取得部11によって、自身を含むすべてのサーバ1のリソース情報を、すべてのサーバ1から取得する。ステップS1の後、ステップS2に進む。
ステップS2において、サーバ1は、取得したリソース情報を用いて、サーバ1ごとに、サーバ1上で動作している1または複数のプロセス、当該プロセスの動作に基づいて求められるメモリのメモリ使用量、および、メモリのメモリ空き容量を決定する。なお、決定したプロセスのプロセスID、メモリ使用量、および、メモリ空き容量は、サーバ管理テーブルTに格納される。なお、サーバ1は、取得したリソース情報を用いて、サーバ1ごとの搭載メモリ量も決定し、サーバ管理テーブルTに格納する。ステップS2の後、ステップS3に進む。
ステップS3において、サーバ1は、減設候補サーバ決定部14によって、サーバ管理テーブルTを参照して、減設閾値を下回るメモリ使用量を有するサーバ1が存在するか否かを判定する。存在する場合(ステップS3でYes)、ステップS4に進み、存在しない場合(ステップS4でNo)、ステップS1に戻ってサーバ1を監視する。
ステップS4において、サーバ1は、減設候補サーバ決定部14によって、減設閾値を下回るメモリ使用量を有する、1または複数のサーバ1を、減設候補サーバとして決定するとともに、サーバ管理テーブルTの対応する減設候補フラグをオンにする。ステップS4の後、ステップS5に進む。
ステップS5において、サーバ1は、空き余裕サーバ決定部15によって、サーバ管理テーブルTを参照して、十分なメモリ空き容量を有する空き余裕サーバが存在するか否かを判定する。ここで、「十分なメモリ空き容量」とは、例えば、減設候補サーバ上で動作するすべてのプロセスがメモリを使用するときに求められるメモリ使用量を上回る程度のメモリ空き容量という意味である。空き余裕サーバが存在する場合(ステップS5でYes)、ステップS6に進む。一方、空き余裕サーバが存在しない場合(ステップS5でNo)、ステップS1に戻って各サーバ1のメモリ使用量の監視を継続し、減設候補サーバ以外のサーバ1でのプロセスの実行終了によってプロセスの移行が実施可能になるのを待つ。
ステップS6において、サーバ1は、空き余裕サーバ決定部15によって、すでに決定されている減設候補サーバに対する空き余裕サーバを決定する。もし、空き余裕サーバが複数存在する場合には、メモリ空き容量が最も小さい空き余裕サーバを選び、決定するとよい。これにより、選ばれなかった空き余裕サーバに大きなメモリ使用量を要するプロセスを移行することができる可能性を大きくし、クラスタ全体のリソースの利用効率を高くすることができる。ステップS6の後、ステップS7に進む。
ステップS7において、サーバ1は、プロセス移行部12によって、減設候補サーバ上で動作するすべてのプロセスを決定した空き余裕サーバに移行する。なお、サーバ1は、データ移行部13によって、メモリに格納しているデータを減設候補サーバに移行する。ステップS7の後、ステップS8に進む。
ステップS8において、サーバ1は、増減設実行部16によって、プロセスが無くなった減設候補サーバを減設する。減設されたサーバ1については、サーバ管理テーブルTから該当のレコードが削除される。ステップS8の後、図4の処理を終了する。
なお、クラスタを構成するすべてのサーバ1は、どのサーバ1が減設候補サーバに該当し、どのサーバ1が空き余裕サーバに該当するか、という情報を共有している。サーバ1自身が減設候補サーバに該当すれば、決定された空き余裕サーバに、サーバ1自身で動作中のプロセスを移行した後、減設する。また、サーバ1自身が空き余裕サーバに該当すれば、決定された減設候補サーバからプロセスを受け取った後、減設候補サーバの減設を確認する。減設候補サーバにも空き余裕サーバにも該当しないサーバ1は、どのサーバ1が減設されたかを常時把握している。
図4の処理によれば、各サーバ1にプロセスを確率的に分散させてクラスタ内で負荷分散を行っていたことに対して、減設候補サーバ上で動作するプロセスを無くす状況を誘導的に作り出すことができるので、サーバ1の減設を促進し、システムのコストを削減することができる。
[新規プロセスに対する必要最小限のサーバの増設]
クラスタシステムに新規プロセスが発生した場合、各サーバ1間で動作中のプロセスをどのように移動させてもすべてのサーバ1がメモリ不足に陥るため、サーバ1の増設を余儀なくされる場合がある。このような場合であっても、コストの観点から、サーバ1の増設は必要最小限にとどめたい。サーバ1の増設を必要最小限にとどめるためには、1サーバ当たりのメモリ利用効率が高くなるようなプロセス配置の最適化が必要である。プロセス配置を最適化するためには、新規プロセスのメモリ使用量を知っておく必要がある。しかし、新規プロセスを起動したことも無いのに、新規プロセスのメモリ使用量を知るのは困難である。
そこで、図1に示すように、クラスタを構成するサーバ1の中に一時サーバ1Aを設ける。一時サーバ1Aは、クラスタを構成する他のサーバ1(説明の便宜上、「通常サーバ」と称する場合がある)と同じ機能を有しており、一時サーバ1AのSSIソフトウェア10の機能構成は、図2に示すとおりである。
一時サーバ1Aは、一時サーバ指定部17によって指定される。指定された一時サーバ指定部17について、サーバ管理テーブルTの一時サーバ指定フラグはオンに更新される。クラスタシステムに発生した新規プロセスは、まず一時サーバ1Aに配置されるように処理される。クラスタ中に存在する一時サーバ1Aは、1体のみである。本実施形態では、一時サーバ1Aは新規プロセスのメモリ使用量を推定するという役割を持つために減設しない。よって、一時サーバ1Aに対して減設閾値および減設候補フラグは設定せず、一時サーバ1Aが減設候補サーバとなることはない。
次に、図5を参照して、一時サーバによるサーバ増設処理を説明する。この処理は、クラスタに新規プロセスが発生し、一時サーバ1Aに配置された場合に開始し、ステップS11から処理を開始する。
ステップS11において、一時サーバ1Aは、配置された新規プロセスを初期起動する。ステップS11の後、ステップS12に進む。
ステップS12において、一時サーバ1Aは、メモリ使用量推定部18によって、新規プロセスの起動後のメモリ使用状況を観測することにより、新規プロセスの動作に基づいて求められるメモリのメモリ使用量を推定する。ステップS12の後、ステップS1に進む。
ステップS12の後、一時サーバ1Aは、図4を参照して説明した、ステップS1〜ステップS4の処理を行う。これらのステップS1〜ステップS4の処理によって、一時サーバ1Aは、もし存在していれば、1または複数の減設候補サーバを決定する。ステップS3にて減設閾値を下回るメモリ使用量を有するサーバが存在しない場合(ステップS3でNo)、およびステップS4の後、ステップS13に進む。
ステップS13において、一時サーバ1Aは、移行可能サーバ決定部19によって、サーバ管理テーブルTを参照して、減設候補サーバ以外のサーバのうち、ステップS12にて推定したメモリ使用量を上回るメモリ空き容量を有するサーバが存在するか否かを判定する。このような判定は、減設候補サーバ上で動作するプロセスを意図的に無くしたいため、新規プロセスを減設候補サーバに極力移行させたくない、という考えによる。ステップS13にて提示した条件を満たすサーバが存在する場合(ステップS13でYes)、ステップS14に進み、存在しない場合(ステップS13でNo)、ステップS16に進む。
ステップS14において、一時サーバ1Aは、移行可能サーバ決定部19によって、減設候補サーバ以外であって、推定したメモリ使用量を上回るメモリ空き容量を有するサーバを、第1の移行可能サーバ(移行可能サーバ)として決定する。ここで、当該サーバが複数存在する場合には、一時サーバ1Aは、サーバ管理テーブルTを参照して、メモリ空き容量が最も小さいサーバを第1の移行可能サーバとして決定する。このように決定し、決定した第1の移行可能サーバに新規プロセスを移行することで、大きなメモリ使用量を必要とするプロセスを大きなメモリ空き容量を有するサーバに移行する可能性を高くすることができる。そして、大きなメモリ使用量を必要とするプロセスに対してサーバの増設を行う可能性を低くすることができる。ステップS14の後、ステップS15に進む。
ステップS15において、一時サーバ1Aは、プロセス移行部12によって、新規プロセスを、決定した第1の移行可能サーバに移行する。ステップS14の後、図5の処理を終了する。
ステップS16において、一時サーバ1Aは、移行可能サーバ決定部19によって、サーバ管理テーブルTを参照して、減設候補サーバのうち、ステップS12にて推定したメモリ使用量を上回るメモリ空き容量を有するサーバが存在するか否かを判定する。このような判定は、新規プロセスを移行できるサーバが減設候補サーバしかないので、プロセスを意図的に無くしたい減設候補サーバに仕方なく新規プロセスを移行させる、という考えによる。ステップS16にて提示した条件を満たすサーバが存在する場合(ステップS16でYes)、ステップS17に進み、存在しない場合(ステップS16でNo)、サーバ1を増設する必要があることを意味しており、ステップS19に進む。
ステップS17において、一時サーバ1Aは、移行可能サーバ決定部19によって、減設候補サーバであって、推定したメモリ使用量を上回るメモリ空き容量を有するサーバを、第2の移行可能サーバ(移行可能サーバ)として決定する。ここで、当該サーバが複数存在する場合には、一時サーバ1Aは、サーバ管理テーブルTを参照して、メモリ空き容量が最も小さい減設候補サーバを第2の移行可能サーバとして決定する。ステップS17の処理の意図は、ステップS14の場合と同様である。ステップS17の後、ステップS18に進む。
ステップS18において、一時サーバ1Aは、プロセス移行部12によって、新規プロセスを、決定した第2の移行可能サーバに移行する。ステップS18の後、図5の処理を終了する。
ステップS19において、一時サーバ1Aは、通常サーバに昇格し、新規プロセスが動作するサーバ1として稼働する。このとき、サーバ管理テーブルTにおいて、通常サーバに昇格した一時サーバ1Aの一時サーバ指定フラグはオフに更新される。ステップS19の後、ステップS20に進む。
ステップS20において、通常サーバに昇格した一時サーバ1Aは、新規の一時サーバ1Aとなるサーバ1の増設をクラスタに要求する。この要求に対してクラスタがサーバ1を増設すると、クラスタを構成するすべてのサーバ1(通常サーバに昇格した元の一時サーバ1Aも含む)は、一時サーバ指定部17により、増設されたサーバ1を新規の一時サーバ1Aとして指定する。このとき、サーバ管理テーブルTにおいて、新規の一時サーバ1Aのレコードが作成され、その一時サーバ指定フラグはオンになる。ステップS20の後、図5の処理を終了する。
図5の処理によれば、新規プロセスの実行に影響を及ぼすことのない、必要最小限のサーバの増設を実現することができる。
≪まとめ≫
本実施形態によれば、メモリ使用量が小さく、リソースの利用効率が低い減設候補サーバと、減設候補サーバ上で動作するプロセスを配置できる空き余裕サーバを特定する。これにより、減設候補サーバの減設によってクラスタに関するコストを削減できるとともに、空き余裕サーバのリソースの利用効率が高まることでクラスタ全体のリソース利用効率を高くすることができる。したがって、サーバの減設によって、クラスタ全体のリソース利用効率を高くするためのプロセス配置ロジックを提供することができる。このようなプロセス配置ロジックは、既存のSSI技術の機能と親和性が高いロジックであり、ハードウェアの改造を必要とせず、ソフトウェアの改造のみで実現可能である。
また、新規プロセスの取り扱いに関して、一時サーバが前もって新規プロセスの動作に伴うメモリ使用量を推定することで、サーバ増設の必要性を判定することができる。この判定において、既存の移行可能サーバに新規プロセスを移行することを優先することによって、サーバの増設を必要最小限にとどめるとともに、移行可能サーバのリソースの利用効率を高めることができる。したがって、サーバの増設によって、クラスタ全体のリソース利用効率を高くするためのプロセス配置ロジックを提供することができる。このようなプロセス配置ロジックは、既存のSSI技術の機能と親和性が高いロジックであり、ハードウェアの改造を必要とせず、ソフトウェアの改造のみで実現可能である。
また、大きなメモリ使用量を必要とするプロセスを配置することができる移行可能サーバを優先的に残すことができるので、このようなプロセスに対してサーバを増設するという手段を極力とらずに済ませることができる(図5のステップS14の説明、ステップS17の説明を参照)。
また、減設候補サーバに新規プロセスを移行してしまうことで、メモリ使用量が減設候補サーバの減設閾値を超えてしまい、減設候補とならず、サーバの減設によるコスト削減という目的を果たせなくなってしまう、という不都合を避けることができる(図5のステップS13の説明を参照)。
≪その他≫
本発明は、SSIに限らず、サーバ間で特定のプロセスを移動できるソフトウェアを有するサーバに対しても適用可能である。
サーバの減設処理(図4)では、原則として、減設候補サーバと決定されたサーバ1にプロセスを移行しないことが好ましい。プロセスを移行したら、減設閾値を超えてしまい減設候補サーバとはならず、減設する機会を失う可能性があるからである。しかし、例外的に、減設候補サーバにプロセスを移行する場合を許容してもよい。例えば、減設候補サーバ決定部14が減設候補サーバを同時に2以上決定した場合には、空き余裕サーバ決定部15は減設候補サーバの1つを空き余裕サーバとみなし、減設候補サーバ間でプロセスを移行してもよい。
本実施形態では、一時サーバによるサーバ増設処理(図5)において、一時サーバ1Aには、減設閾値および減設候補フラグは設定しないようにした。しかし、一時サーバ1Aに対して、減設閾値および減設候補フラグは設定してもよく、一時サーバ1Aが減設候補サーバとなり得るようにしてもよい。一時サーバ1Aが減設候補サーバとして減設された場合、各サーバ1の一時サーバ指定部17によって新たな一時サーバ1Aを指定することができる。
もし一時サーバによるサーバ増設処理(図5)のステップS12において、メモリ使用量推定部18による新規プロセスのメモリ使用量の推定に大きな誤差が生じた場合には、新規プロセスに対して必要となるメモリ使用量が第1の移行可能サーバまたは第2の移行可能サーバのメモリ空き容量に収まらない可能性がある。しかし、SSIソフトウェアには、CPUとメモリ間のアクセス速度を犠牲にすることで、1プロセスが複数のサーバ1のメモリを跨って使用する機能を有している。その機能を利用して、不足したメモリの空き容量を他のサーバ1のメモリの空き容量で補う処理を行えばよい。このような処理は、他のプロセスによるメモリの上書きといった、システム運用における致命的な事態を回避することを可能にする。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
1 サーバ
10 SSIソフトウェア
11 リソース情報取得部
12 プロセス移行部
13 データ移行部
14 減設候補サーバ決定部
15 空き余裕サーバ決定部
16 増減設実行部
17 一時サーバ指定部
18 メモリ使用量推定部
19 移行可能サーバ決定部
T サーバ管理テーブル
20 OS

Claims (4)

  1. 複数のサーバ間でプロセスを移行することで分散処理を行うクラスタを構成するサーバであって、
    前記サーバの記憶部は、
    前記クラスタを構成するサーバごとに、前記サーバ上で動作する1または複数のプロセス、前記プロセスの動作に基づいて求められるメモリのメモリ使用量、および、前記メモリのメモリ空き容量、を対応付けて記憶しており、
    前記サーバの制御部は、
    前記クラスタを構成するサーバの中に、前記メモリ使用量が、前記サーバの各々に対して予め設定された減設閾値を下回った減設候補サーバが存在するか否かを判定する制御と、
    前記減設候補サーバが存在する場合には、前記クラスタを構成するサーバの中に、前記減設候補サーバ上で動作するすべてのプロセスがメモリを使用するときに求められるメモリ使用量を上回る前記メモリ空き容量を有する空き余裕サーバが存在するか否かを判定する制御と、を実行し、
    前記減設候補サーバであるサーバの制御部は、
    前記空き余裕サーバが存在する場合には、前記減設候補サーバ上で動作するすべてのプロセスを前記空き余裕サーバに移行し、前記減設候補サーバを減設する制御を実行する、
    ことを特徴とするサーバ。
  2. 複数のサーバ間でプロセスを移行することで分散処理を行うクラスタを構成するサーバであって、
    前記サーバの記憶部は、
    前記クラスタを構成するサーバごとに、前記サーバ上で動作する1または複数のプロセス、前記プロセスの動作に基づいて求められるメモリのメモリ使用量、および、前記メモリのメモリ空き容量、を対応付けて記憶しており、
    前記クラスタにて新規プロセスが生成された場合、一時サーバとして機能する前記サーバの制御部は、
    記新規プロセスの初期起動を行う制御と、
    前記新規プロセスの動作に基づいて求められるメモリのメモリ使用量を推定する制御と、
    前記クラスタを構成するサーバの中に、前記推定したメモリ使用量を上回る前記メモリ空き容量を有する移行可能サーバが存在するか否かを判定する制御と、
    前記移行可能サーバが存在する場合には、前記新規プロセスを前記移行可能サーバに移行する制御と、
    前記移行可能サーバが存在しない場合には、前記一時サーバから通常サーバに昇格するとともに、前記一時サーバと同様に機能する新規一時サーバの増設を前記クラスタに要求する制御と、を実行する、
    ことを特徴とするサーバ。
  3. 前記一時サーバとして機能するサーバの制御部は、
    前記移行可能サーバが複数存在する場合には、前記記憶部を参照して、前記メモリ空き容量の最も小さなサーバを特定する制御と、
    前記新規プロセスを、前記特定されたサーバに移行する制御と、を実行する、
    ことを特徴とする請求項2に記載のサーバ。
  4. 前記一時サーバとして機能するサーバの制御部は、
    前記クラスタを構成するサーバの中に、前記メモリ使用量が、前記サーバの各々に対して予め設定された減設閾値を下回った減設候補サーバが存在するか否かを判定する制御と、
    前記減設候補サーバが存在する場合には、前記減設候補サーバ以外のサーバを優先的に前記移行可能サーバとする制御、を実行する、
    ことを特徴とする請求項2または請求項3に記載のサーバ。
JP2014169113A 2014-08-22 2014-08-22 サーバ Active JP6235973B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014169113A JP6235973B2 (ja) 2014-08-22 2014-08-22 サーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014169113A JP6235973B2 (ja) 2014-08-22 2014-08-22 サーバ

Publications (2)

Publication Number Publication Date
JP2016045682A JP2016045682A (ja) 2016-04-04
JP6235973B2 true JP6235973B2 (ja) 2017-11-22

Family

ID=55636205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014169113A Active JP6235973B2 (ja) 2014-08-22 2014-08-22 サーバ

Country Status (1)

Country Link
JP (1) JP6235973B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228340B (zh) * 2017-08-07 2021-02-19 珠海市魅族科技有限公司 终端控制方法及装置、终端设备及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793262A (ja) * 1993-09-27 1995-04-07 Nec Corp アプリケーションツール実行管理システム
JP4373742B2 (ja) * 2002-09-13 2009-11-25 株式会社リコー 画像形成装置およびアプリ起動制限方法
JP2005107958A (ja) * 2003-09-30 2005-04-21 Fujitsu Ltd ネットワークに接続されたコンピュータ間におけるプロセス分散システムのためのプログラム
JP5526780B2 (ja) * 2007-09-13 2014-06-18 日本電気株式会社 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム
JP2010108409A (ja) * 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法

Also Published As

Publication number Publication date
JP2016045682A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
JP5471080B2 (ja) 情報システム、制御装置、そのデータ処理方法およびプログラム
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
WO2016030973A1 (ja) マルチテナントリソース調停方法
US20160142323A1 (en) Systems and/or methods for resource use limitation in a cloud environment
KR101959601B1 (ko) 관리 시스템 및 관리 시스템을 제어하기 위한 방법
US8131783B2 (en) Storage system, volume management method, and management computer
US10846129B2 (en) Systems and methods for organizing on-demand migration from private cluster to public cloud
JP2011258119A (ja) クラスタ構成管理方法、管理装置及びプログラム
US10142195B1 (en) Partitioned performance tracking core resource consumption independently
US10148531B1 (en) Partitioned performance: adaptive predicted impact
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
CN105760391B (zh) 数据动态重分布的方法、数据节点、名字节点及系统
JPWO2012077390A1 (ja) ネットワークシステム、及びそのサービス品質制御方法
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
US10033620B1 (en) Partitioned performance adaptive policies and leases
US10725819B2 (en) System and method for scheduling and allocating data storage
JP6235973B2 (ja) サーバ
JP5549189B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
JP2010108114A (ja) ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム
JP2013210683A (ja) オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
JP2011197775A (ja) データ管理システム、管理サーバ、データ管理方法およびデータ管理用プログラム
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
US11625358B1 (en) Automatic object archiving based on user selections
CN104537081B (zh) 文件管理系统和方法
JP6020803B2 (ja) 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171027

R150 Certificate of patent or registration of utility model

Ref document number: 6235973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150