JP4101251B2 - 負荷分散プログラム、負荷分散方法、及び負荷分散装置 - Google Patents

負荷分散プログラム、負荷分散方法、及び負荷分散装置 Download PDF

Info

Publication number
JP4101251B2
JP4101251B2 JP2005150418A JP2005150418A JP4101251B2 JP 4101251 B2 JP4101251 B2 JP 4101251B2 JP 2005150418 A JP2005150418 A JP 2005150418A JP 2005150418 A JP2005150418 A JP 2005150418A JP 4101251 B2 JP4101251 B2 JP 4101251B2
Authority
JP
Japan
Prior art keywords
server
client
user
service
data center
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.)
Expired - Fee Related
Application number
JP2005150418A
Other languages
English (en)
Other versions
JP2006332825A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005150418A priority Critical patent/JP4101251B2/ja
Priority to US11/226,217 priority patent/US20060271700A1/en
Publication of JP2006332825A publication Critical patent/JP2006332825A/ja
Application granted granted Critical
Publication of JP4101251B2 publication Critical patent/JP4101251B2/ja
Priority to US12/615,126 priority patent/US20100057935A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は複数のサーバそれぞれにかかる処理負荷を分散させる負荷分散プログラム、負荷分散方法、及び負荷分散装置に関し、特にクライアントから処理要求を受け取る毎にその処理を実行するサーバを動的に決定する負荷分散プログラム、負荷分散方法、及び負荷分散装置に関する。
一般的なクライアント・サーバシステムでは、クライアントからのリクエスト量を事前に見積もった上で、サービス提供に必要なサーバ・ネットワーク等のリソース(資源)を確保する。そして、確保したリソースを用いて、クライアントに対してサービスが提供される。
ところが、近年の急激なインターネットの普及に伴い、将来必要なリソース量の見積もりが難しくなっている。特にコンシューマ向けにWeb経由でネットワークサービスを提供する場合、期間限定のイベント等に伴いリクエスト量が一時的かつ急激に増大するケースがある。特にこのようなケースでは、必要なリソース量の見積が困難となる。そして、単位時間当たりのリクエスト量の見積を誤ることにより、リクエスト集中時にサービス提供が滞るという問題が発生していた。
これに対し、リソース量を動的に増減させることでサービスの運用効率の向上を目指し、同時に予備リソースを複数サービスで共用しリソース利用効率を高める方式がある。このようなリソース管理が行われるネットワーク環境を、オンデマンド環境と呼ぶ。
オンデマンド環境によって、急激なリクエスト量増大時でも必要なリソース量を適宜確保できるようになる。また、予備リソースを複数のセンタで用意し相互に融通することで、リソースの利用効率を高めることも可能である。
このようなオンデマンド環境においても、サービスの差別化のためにユーザ毎の細かい管理が要求されてきている。ユーザ管理をオンデマンド環境で行うには、ユーザ固有情報のデータセンタ間での共有や、ユーザクラス毎のサービス品質管理を行うことが必要となる。この際の情報管理については、データセンタ間をネットワークで接続すれば解決可能である。ただし、それだけではサービスクラス間でサービス品質の不整合をおこす事がある。
すなわち、ユーザから見た品質を正しく維持するためにはユーザ・データセンタ間のネットワーク状況やサーバ負荷、バックエンドネットワークの遅延等を考慮しなければならない。そして、ユーザ毎に決められた遅延や品質が保証されるようサーバの追加やユーザ間で利用サーバの変更等の制御を行うことが必要になる。
例えば、需要に合わせてサーバ上のリソース容量をオンデマンドで調整できる技術が考えられている(特許文献1参照)。
特開2001−067377号公報
しかし、特許文献1記載の技術は静的なコンテンツの配布をターゲットとしており、アプリケーションサーバの場合や、サービス内部の処理が多層に分かれる構成は考慮していない。また、サービスの割り振りやセンタ選択に際し、他のユーザ特性や複数サービスの調整による割り振りの調整は考慮していない。すなわち、リソースの量について検討されているものの、割り当てるリソースの質については考慮がなされてこなかった。
ここで、リソースの量とはクライアントにサービスを提供する能力を示し、リソースの質とはクライアントに対してより品質の高いサービスを提供できるかを示す。リソースの質としては、例えば、クライアントから見て、要求を出力してから応答が返ってくるまでの時間(遅延時間)の早さによって判断される。
一般に、ネットワーク経由でリクエストの送受を伴うクライアント・サーバシステムでは、クライアントから見た性能は、サーバで処理にかかる時間だけでなく、クライアント・サーバ間やサーバ・バックエンドサーバ間の通信にかかる時間も考慮する必要がある。そのため、クライアントからの要求に応じた処理を実行するサーバとして、ネットワーク的にクライアントに近い場所のサーバを利用することが好ましい。
通常、オンデマンド環境ではサービスを提供するセンタが複数存在し得る。そのため、各クライアントに対してネットワーク的に近い位置にあるセンタの利用を指示することでクライアントから見た性能を向上させることが可能である。つまりそのユーザにとってネットワーク的に近い位置にあるセンタのリソースは質の高いリソースとなる。
クライアントおよびセンタが分散して存在する場合には、クライアントによって最も質の高いリソースを持つセンタが異なることになり、クライアント分布に合わせてオンデマンドでセンタ毎にリソースを割り振り、それを各クライアントに割り当てることでサービス品質を最も高くできる。
実際には各センタで確保可能なリソース量やユーザ分布の集中等の要因がありうるため、全クライアントを各々に最適なセンタに割り当てることは困難であり、またリソースの利用効率という点でも無駄が生じやすい。そのため要求されるサービス品質の範囲内で可能な割当先を選ぶことが必要である。またサービスによってはクライアント・サーバ間の通信遅延でなくサーバ・バックエンドサーバ間の通信遅延が大きく影響することもあり得る。
この部分の通信遅延は従来の構成では同一センタ上に存在しているため考慮の必要はなかったが、オンデマンド環境で処理レイヤ毎にサーバを割り当てる場合にはこのレイヤ間の遅延についても考慮が必要となる。実際のサービスでは、クライアントのクラス分けを行っている場合がある。例えばニュースサイト等では有料会員に優先してサービスを提供し、無料ユーザに関してはサービスの提供は行うが品質を下げることがある。
このような場合に、有料会員に対して質の高い、つまりクライアントから見て通信処理遅延が小さいセンタのリソースを優先的に割り当てていく処理を行うことで、クライアント種別によるサービスの差別化を行うことが可能になる。
また、リソースの追加・削除に伴い、クライアントから見た最適なセンタが変化するため、状況の変化に応じてセンタへのユーザの割り振りをやり直すことが必要になる。
さらに、サービスへのリソース割当時に、どのセンタのリソースを割り当てるかによってクライアントから見た性能が変化するため、複数サービスのセンタへの割当についても何らかのルールに基づいて割当や再割当が必要になる。
本発明はこのような点に鑑みてなされたものであり、クライアントの設置場所に応じて、品質の高いサービスを提供可能なサービス提供サーバを動的に決定することができる負荷分散プログラム、負荷分散方法、及び負荷分散装置を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような負荷分散プログラムが提供される。本発明に係る負荷分散プログラムは、複数のデータセンタ4a〜4cに対してクライアント3a〜3cからの要求を動的に振り分けるために、図1に示す機能をコンピュータに実行させることができる。
遅延時間判断手段1aは、クライアントから送られたリクエストを解析し、クライアントのネットワーク2a〜2c上の位置を識別し、クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、クライアントがデータセンタから応答を受け取るまでの処理遅延時間をデータセンタ毎に判断する。振り分け先決定手段1bは、遅延時間判断手段1aで判断された処理遅延時間に基づいて、クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する。サービス振り分け手段1cは、リクエストを出力したクライアントへのサービスを、推奨センタ内のサーバに実行させる。
このような負荷分散プログラムを実行するコンピュータによれば、遅延時間判断手段1aにより、クライアントから送られたリクエストが解析され、クライアントのネットワーク上の位置を識別され、クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、クライアントがデータセンタから応答を受け取るまでの処理遅延時間がデータセンタ毎に判断される。次に、振り分け先決定手段1bにより、遅延時間判断手段1aで判断された処理遅延時間に基づいて、クライアントに対して少ない遅延時間でサービスを提供可能なデータセンタが優先的に、推奨センタとして選択される。そして、サービス振り分け手段1cの制御により、リクエストを出力したクライアントへのサービスが、推奨センタ内のサーバで実行される。
本発明では、クライアントのネットワーク上での位置に応じた遅延時間が少ないデータセンタでクライアントに対するサービス提供を行わせるようにリクエストの振り分けを行うため、ネットワーク上に分散配置されたデータセンタを効率的に運用して、各クライアントに対して品質の高いサービスを提供することが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本実施の形態の概略を示す図である。図1に示すように、負荷分散装置1は、複数のネットワーク2a〜2cを介して、複数のクライアント3a〜3c、および複数のデータセンタ4a〜4cに接続されている。データセンタ4a〜4cは、1つ以上のサーバを有しており、サーバによってクライアント3a〜3cに対して所定のサービスを提供する。負荷分散装置1は、複数のデータセンタ4a〜4cに対してクライアント3a〜3cからの要求を動的に振り分けるために、遅延時間判断手段1a、振り分け先決定手段1b、およびサービス振り分け手段1cを有している。
遅延時間判断手段1aは、クライアントから送られたリクエストを解析し、クライアントのネットワーク2a〜2c上の位置を識別する。例えば、リクエストの送信元アドレスに基づいて、クライアントが接続されているインターネット接続サービス用のサーバを特定する。インターネット接続サービス用のサーバのネットワーク上の位置を予め遅延時間判断手段1aに登録しておけば、リクエストを送信したクライアントのネットワーク上の位置(どこのサーバの配下にいるか)が分かる。
そして、遅延時間判断手段1aは、クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、クライアントがデータセンタから応答を受け取るまでの処理遅延時間をデータセンタ毎に判断する。
例えば、図1に示すクライアント3aとデータセンタ4aとの間は、1つのネットワーク2aのみで接続されている。そのため、ネットワーク2aでの通信時間と、データセンタ4aでの処理時間との加算値となる。また、クライアント3aとデータセンタ4cとの間は、3つのネットワーク2a〜2cを介して接続されている。そのため、ネットワーク2a〜2cでの通信時間と、データセンタ4cでの処理時間との加算値となる。すると、クライアント3aとデータセンタ4cとの間は通信経路が長くなり、その結果、処理遅延時間も長くなる。
振り分け先決定手段1bは、遅延時間判断手段1aで判断された処理遅延時間に基づいて、クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する。クライアント3aから出力されたリクエストであれば、データセンタ4aが最も優先的に選択される。データセンタ4aにおいて余剰資源が不足している場合、次に処理遅延時間が短くなるデータセンタ4bが選択される。
サービス振り分け手段1cは、リクエストを出力したクライアントへのサービスを、推奨センタ内のサーバに実行させる。
例えば、サービス振り分け手段1cは、クライアント3aからのリクエストに対して、データセンタ4aを推奨センタとして選択した場合、クライアント3aに対し、データセンタ4aへの再アクセスを指示するリダイレクトメッセージを応答する。すると、クライアント3aは、リダイレクトメッセージに応じて、データセンタ4aに対してリクエストを送信する。データセンタ4a内のサーバは、クライアント3aからのリクエストに応じて、クライアント3aへサービスを提供する。
このような負荷分散プログラムを実行するコンピュータによれば、例えば、クライアント3aからリクエストが送信されると、遅延時間判断手段1aによりそのリクエストが解析され、クライアント3aのネットワーク上の位置を識別される。そして、遅延時間判断手段1aにより、クライアント3aの位置とネットワーク上の各データセンタ4a〜4cの位置との通信経路に基づいて、クライアント3aがデータセンタ4a〜4cから応答を受け取るまでの処理遅延時間がデータセンタ4a〜4c毎に判断される。次に、振り分け先決定手段1bにより、クライアント3aに対して最も少ない遅延時間でサービスを提供可能なデータセンタ4aがサービス提供可能かどうかが検討され、サービス提供可能であれば、推奨センタとして選択される。そして、サービス振り分け手段1cの制御により、リクエストを出力したクライアント3aへのサービスが、推奨センタであるデータセンタ4a内のサーバで実行される。
このような負荷分散装置1がリクエストを複数のデータセンタ4a〜4cの何れかに振り分けることで、クライアントに対して少ない処理遅延時間でサービスを提供することができるようになる。その結果、サービス品質を向上させることができる。
次に、本実施の形態の詳細を説明する。
図2は、本実施の形態のシステム構成例を示す図である。本実施の形態のシステムでは、クライアント群41,42,43は、それぞれ異なるネットワーク21,22,23に接続されている。ネットワーク21,22,23は、例えば、インターネットの一部を構成している。インターネットの内部は一般に、地域ごとの網(プロバイダ内の網等)とそれを相互に接続する接続(IX接続(複数のプロバイダのネットワーク相互接続)、ピアリング等)から成っており、ここではそれらを個別のネットワーク21,22,23として表している。
ここで、クライアント群41,42,43は、クライアントの集合である。クライアントは、サーバで提供されるサービスを利用する装置である。ネットワーク21とネットワーク22とは、互いに接続されている。また、ネットワーク22とネットワーク23とは、互いに接続されている。
また、各ネットワーク21,22,23は、それぞれデータセンタ200、300,400に接続されている。ネットワーク21には、さらに広域負荷分散装置100が接続されている。
広域負荷分散装置100は、ユーザが使用するクライアントからのリクエストに対する割り振り先のデータセンタを決定するためのものである。ユーザは広域負荷分散装置100に問い合わせることで、どのデータセンタを利用すべきかを認識する。なお一般的な運用では広域負荷分散装置100は、いずれかのデータセンタ内に設置されることが想定される。
具体的には、広域負荷分散装置100は、クライアントからのリクエスト(サービス要求)を、どのデータセンタのどのサーバで処理させるかを決定する。その際、広域負荷分散装置100は、要求を出力したクライアントの設置場所に応じて、処理効率が最適となるデータセンタを決定する。すなわち、クライアント−センタ間はネットワーク群で接続されているが、個々のクライアントとセンタとの間の通信遅延時間は、クライアント−センタの組み合わせによって異なる。同様にサーバ−固定サーバ間の通信遅延もセンタによって異なる。そこで、広域負荷分散装置100は、クライアントからのリクエストの振り分け先として、通信遅延時間が短くなるようなデータセンタに決定する。
データセンタ200,300,400は、クライアントからのリクエストに対して実際に処理を行い、応答を返すサービスの提供を行う。なお、データセンタ200,300,400では、サービスに対して固定的にサーバを割り当てるのでなく、負荷状況に応じて割当を変化させるユーティリティ運用に対応している。各データセンタ200,300,400にはサービスを稼動させ処理を行うための複数のサーバ(サーバ群220,320,420)と、サーバに対して負荷を割り振るセンタ内負荷分散装置210,310,410とが含まれる。
センタ内負荷分散装置210,310,410は各データセンタ200,300,400の入口に設置され、センタ内のサーバを代表してアクセスを受け付け、センタ内のサーバに転送する。その際、センタ内負荷分散装置210,310,410は、負荷に余裕のあるサーバに、リクエストを振り分ける。
サーバ群220,320,420内の各サーバは、クライアントからのリクエストを処理し、必要に応じてバックエンドサーバ60に対し処理を依頼する。そして、各サーバは、処理結果をクライアントに返送する。
なお、サーバ群220は、ネットワーク24を介して、バックエンドサーバ60に接続されている。サーバ群320は、ネットワーク25とネットワーク24とを介して、バックエンドサーバ60に接続されている。サーバ群420は、ネットワーク26、ネットワーク25、及びネットワーク24を介して、バックエンドサーバ60に接続されている。
バックエンドサーバ60は、各サーバ群220,320,420に属するサーバからの依頼に応じてデータ処理を行う。例えば、バックエンドサーバ60は、データベース管理機能を有し、他のサーバからの要求に応じて、データベース内のデータ取得またはデータ更新を行う。
すなわち、データベース等、オンデマンドで分散することが難しい機能については、ネットワーク24〜26を通して複数のセンタと接続されるバックエンドサーバ60で提供される。ここで利用されるネットワーク24〜26は、通常インターネットとは論理的には異なる管理専用網が利用される。なお、バックエンドサーバ60は、ユーザに対してサービスを提供するデータセンタ200,300,400のいずれかで運用することも、それ以外のデータセンタ(サービスを運営する企業内のデータセンタ等)で運用することも可能である。また、サービスの構成によってはバックエンドサーバ60が存在しないこともあり得る。
広域負荷分散装置100、センタ内負荷分散装置210,310,410、サーバ群220,320,420内の各サーバ、およびバックエンドサーバ60は、それぞれ管理ネットワーク30を介して、管理サーバ50に接続されている。管理サーバ50は、各データセンタや装置に対して設定や監視を行うものであり、バックエンドサーバ60と同様に管理ネットワーク30を通して各機器の制御を行う。
具体的には、管理サーバ50は、管理ネットワーク30を介して接続された装置から状態情報を収集し、動作環境を管理する。例えば、管理サーバ50は、各サーバ群220,320,420の負荷状態を管理し、負荷が過大となったサーバ群に対して、予備のサーバとして用意しておいたサーバを追加する。このサーバの追加処理は、管理サーバ50が、データセンタ200,300,400内の各装置を遠隔制御することで実施される。
ここで、クライアントと広域負荷分散装置100や各データセンタ200,300,400を繋ぐネットワーク21,22,23はインターネット等の広域分散ネットワークである。一方、サーバとバックエンドサーバ60とを繋ぐネットワーク24,25,26には、専用線等専有可能で安全なネットワークが利用される。
このようなシステムにおいて、クライアントは、広域負荷分散装置100宛にサービスに対するリクエストを発行する。すると、広域負荷分散装置100がリクエストを処理すべきデータセンタおよびサーバを決定する。このとき、広域負荷分散装置100は、決定したセンタのセンタ内負荷分散装置およびサーバに対して、ユーザ情報を送信する。すると、センタ内負荷分散装置及びサーバにおいて、ユーザ情報が登録される。
そして、広域負荷分散装置100は、決定したデータセンタに対応するアドレスを指定したリダイレクトメッセージをクライアントに応答する。この際、サーバの負荷が過大になると、管理サーバによって、各センタに配置されるサーバがオンデマンドで追加配置される。
クライアントは、リダイレクトメッセージに応じて、広域負荷分散装置100で決定されたデータセンタに対するリクエストを出力する。そのリクエストは、センタ内負荷分散装置で受け取られる。そして、リクエストは、センタ内負荷分散装置によって、広域負荷分散装置100で決定されたサーバに振り分けられる。
リクエストを受け取ったサーバは、リクエストに応じた処理を実行し、処理結果をクライアントに応答する。なおサーバは、バックエンドサーバ60の情報に必要に応じてアクセスする。
本実施の形態における負荷分散処理は、広域負荷分散装置100が中心となって実行される。具体的には、広域負荷分散装置100におけるデータセンタおよびサーバの決定は、以下のような手順で行われる。
広域負荷分散装置100は、リクエストを受け取ると、ユーザから各センタまでの通信遅延時間を見積もる。次に、広域負荷分散装置100は、通信時間に対して、サーバ処理時間・バックサーバ処理時間・バックネット通信時間(バックエンドサーバ60に対して処理を依頼し、結果を受け取るまでの時間)を加えた処理時間をセンタ毎に求める。
その後、広域負荷分散装置100は、求めた値を処理時間が短い順に並べ直し、未使用処理能力もしくは低クラスユーザが利用する処理能力が新規ユーザの必要量に足りているかを判定する。性能が足りていてかつ処理時間が保証値以下であれば、広域負荷分散装置100は、そのデータセンタおよびサーバを、リクエストを出力したユーザに割り当てる。
処理能力が確保できたが処理時間が保証値を超えるようであれば、広域負荷分散装置100は、処理時間の保証値を満たすことができないデータセンタに対して、ユーザ割当を行う。そして、広域負荷分散装置100は、管理サーバ50に対して、ユーザに対する処理時間の保証が可能なデータセンタへのサーバの追加割当を依頼する。サーバの追加完了後、広域負荷分散装置100は、ユーザを適切なデータセンタに移動させる(ユーザの再割当を行う)。
なお、処理能力割当の際に低クラスユーザ分を利用したのであれば、それらのユーザに対し同様の方法でセンタ・サーバが選択し直しされ、ユーザに対する振り分け先となるデータセンタの移動(ユーザの移動)が行われる。
次に、広域負荷分散装置100のハードウェア構成について説明する。
図3は、広域負荷分散装置のハードウェア構成例を示す図である。広域負荷分散装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106,107が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
通信インタフェース106は、ネットワーク21に接続されている。通信インタフェース106は、ネットワーク21を介して、クライアント等のコンピュータとの間でデータの送受信を行う。
通信インタフェース107は、管理ネットワーク30に接続されている。通信インタフェース107は、管理ネットワーク30を介して、管理サーバ50との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、広域負荷分散装置100のハードウェア構成を示したが、クライアント、センタ内負荷分散装置210,310,410、データセンタ200,300,400内の各サーバ、管理サーバ50、およびバックエンドサーバ60も同様のハードウェア構成で実現することができる。
次に、広域負荷分散装置100の機能について詳細に説明する。
図4は、広域負荷分散装置の機能を示すブロック図である。広域負荷分散装置100には、サービス管理データベース(DB)110、リクエスト振り分け制御部121、ユーザ識別部122、クラス判定部123、ネットワーク遅延算出部124、振り分け先決定部125、サーバ選択部126、およびユーザ移動部127を有している。
サービス管理DB110には、リクエストを振り分けるために必要なデータが格納されている。具体的には、サービス管理DB110には、サービス情報表111、ユーザ情報表112、サービス/ユーザ割当表113、ネットワーク遅延算出表114が格納されている。
サービス情報表111には、サーバで提供するサービスに関する情報が登録されている。
ユーザ情報表112には、サービス提供対象となるユーザに関する情報が登録されている。
サービス/ユーザ割当表113には、各サーバの資源を、現在のどのユーザにどれだけ割り当てているのかを示す情報が登録されている。
ネットワーク遅延算出表114には、クライアントを接続するためにサービスプロバイダに設置されたサーバのアドレスと、そのサーバから各センタまでのネットワーク遅延時間とが予め設定されている。
リクエスト振り分け制御部121は、クライアントからのリクエストを受け付け、そのリクエストの振り分け先の判断処理を制御する。そして、リクエスト振り分け制御部121は、決定した振り分け先を指定したリダイレクトメッセージをクライアントに返す。
ユーザ識別部122は、リクエスト振り分け制御部121からの要求に応じて、リクエストを出力したクライアントを使用しているユーザを識別する。
クラス判定部123は、リクエスト振り分け制御部121からの要求に応じて、サービス提供を求めているユーザのクラス(サービス品質毎に分けられたユーザグループ)や、そのクラスで許容される遅延時間を判定する。
ネットワーク遅延算出部124は、リクエスト振り分け制御部121からの要求に応じて、ユーザが使用するクライアントから各データセンタまでのネットワーク遅延時間を判定する。
振り分け先決定部125は、リクエスト振り分け制御部121からの要求に応じて、リクエストの振り分け先となるデータセンタおよびサーバを決定する。
サーバ選択部126は、振り分け先決定部125からの要求に応じて、ネットワーク遅延時間を考慮して、リクエストを処理すべきデータセンタおよびサーバを選択する。
ユーザ移動部127は、振り分け先決定部125からの要求に応じて、ユーザの移動処理を行う。ユーザの移動処理とは、サービスを提供するサーバに振り分けられているユーザを、別のサーバに再振り分けする処理である。
次に、サービス管理DB110に格納される情報を具体的に説明する。
図5は、サービス情報表のデータ構造例を示す図である。図5に示すようにサービス情報表111には、サービス、最小割当、最大割当、サービスクラス、優先度、必要性能、許容可遅延時間、処理遅延時間の欄が設けられている。
サービスの欄には、サービスを一意に識別するための名称(サービス名)が設定される。最小割当の欄には、対応するサービスに対して割当可能な資源量(性能)の下限を示す数値が設定される。なお、性能は、例えば、所定のハードウェア構成のコンピュータで実行可能な処理能力を基準単位として、そのコンピュータの何倍の処理能力かによって示される。最大割当の欄には、対応するサービスに対して割当可能な資源量の上限を示す数値が設定される。
サービスクラスの欄には、対応するサービスに設定されている品質の分類を示す1以上のクラスが設定される。なお、サービスクラスに設定されるクラスのうちの1つが、デフォルトに設定されている。ユーザの属性としてサービスクラスが指定されていないときは、デフォルトのクラスが割り当てられる。
優先度の欄には、対応するクラスの優先度を示す数値が設定される。設定される数値が小さいほど、高い優先度を示す。必要性能の欄には、対応するクラスに属する1人のユーザに対してサービスを提供するために必要な性能が設定される。許容可遅延時間の欄には、対応するクラスに属するユーザに対して許容可能な遅延時間(ユーザとの契約によって保証している遅延時間)が設定される。ここで、遅延時間は、ユーザが使用するクライアントがリクエストを出力してから、そのリクエストに対する処理結果がクライアントに到達するまでの時間である。すなわち、遅延時間に設定される値には、ネットワーク部分の伝送遅延が含まれている。
処理遅延時間の欄には、各クラスに応じたサービスを実行する際のサーバでの実処理時間が、データセンタ毎に設定される。なお、クラス毎にサービスの処理に割り当てられる性能(必要性能)が異なるため、処理時間もクラス毎に異なる値となる。
なお、サービス情報表111の全パラメータは、サービス開始時に設定される。これらのうち、最小割当、最大割当および必要性能はサーバ性能を適当な基準で正規化したものである。また、処理時間に関しては初期状態で静的に設定するだけでなく動的に計測し更新する方法も考えられる。
図6は、ユーザ情報表のデータ構造例を示す図である。ユーザ情報表112には、ユーザ、識別子、利用サービス、サービスクラス、利用センタ、利用サーバ、推奨センタ、及びネットワーク遅延時間の各欄が設けられている。
ユーザの欄には、サービスを利用するユーザの識別情報(ユーザ名)が設定される。識別子の欄には、ユーザをシステム内で一意に識別するための識別子(ユーザID)が設定される。利用サービスの欄には、対応するユーザが利用するサービス名が設定される。サービスクラスの欄には、ユーザがサービスを利用する際のクラスが設定される。
利用センタの欄には、対応するユーザが現在利用しているデータセンタ(利用センタ)の名称が設定される。利用サーバの欄には、対応するユーザが現在利用しているサーバ(利用サーバ)の名称が設定される。推奨センタの欄には、対応するユーザが利用するのに適していると判断されたセンタの名称が設定される。ネットワーク遅延時間の欄には、データセンタにアクセスする際のネットワーク上の遅延時間が、データセンタ毎に設定される。
なお、ユーザ情報表112は、広域負荷分散装置100において設定された後、関連するセンタ内負荷分散装置に対してコピーが渡される。また、ユーザ、識別子、利用サービス、およびサービスクラスの各欄については、サービス開始時に情報が設定される。利用センタ・サーバ、推奨センタおよびネットワーク遅延時間の欄には、ユーザがアクセスをしてきたときに情報が設定され、サービス利用終了時に情報が削除される。
図7は、サービス/ユーザ割当表のデータ構造例を示す図である。サービス/ユーザ割当表113には、センタ、サーバ、総性能、割当済、稼働サービス、確保済、利用済、ユーザ、および割当量の欄が設けられている。
センタの欄には、データセンタの名称が設定される。サーバの欄には、各データセンタに設置されているサーバの名称が設定される。総性能の欄には、各サーバの性能が設定される。割当済の欄には、各サーバで実行するサービスに割り当てられた性能が設定される。稼働サービスの欄には、対応するサーバで提供しているサービスの名称が設定される。確保済の欄は、対応するサービスを提供するために確保したサーバの性能が設定される。利用済の欄には、サービスに割り当てられた性能のうち、ユーザが利用している性能が設定される。ユーザの欄には、対応するサーバを利用するユーザのユーザIDが設定される。割当量の欄には、対応するユーザに応じたサービス提供のために割り当てられた性能が設定される。
なお、サービス/ユーザ割当表113のセンタ、サーバ、総性能の欄には、サービス開始時に情報が設定される。また、割当済み、稼動サービス、確保済みの欄には、サービス割当時に情報が設定される。利用済み、ユーザ、割当量の欄の情報は、ユーザへの割当や移動時に更新される。
図8は、ネットワーク遅延算出表のデータ構造例を示す図である。ネットワーク遅延算出表114には、送信元IP、範囲(マスク)、およびネットワーク遅延時間の欄が設けられている。送信元IPの欄には、クライアントを接続するためのインターネットサービスプロバイダ(ISP)に設けられたサーバのIPアドレスが設定される。範囲(マスク)の欄には、ISPに設けられたサーバのサブネットマスクの範囲が設定される。ネットワーク遅延時間の欄には、ISPのサーバからデータセンタまでの遅延時間が、データセンタ毎に設定される。
ネットワーク遅延算出表114の各欄には、開始時に情報が設定される。また、設定された情報は、サービス提供中に計測等によって動的に更新される。
広域負荷分散装置100は、サービス提供開始時には、サービス管理DB110内の所定の項目に情報を設定する。さらに、広域負荷分散装置100は、各データセンタのセンタ内負荷分散装置210,310,410に対し、ユーザ情報表112およびサービス/ユーザ割当表113のうち、そのセンタに該当する部分の情報を設定する。また広域負荷分散装置100は、各サーバに対し、サービス/ユーザ割当表113のうち、そのサーバに該当する部分の情報を設定する。
以上のような機能および情報を有する広域負荷分散装置100を中心として負荷分散が行われ、クライアントに対するサービス提供が行われる。以下、サービス提供の際の、負荷分散処理を詳細に説明する。
図9は、広域負荷分散装置の処理手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]広域負荷分散装置100のリクエスト振り分け制御部121が、クライアントからのリクエストを受信する。
[ステップS12]リクエスト振り分け制御部121は、ユーザ識別部122に対してユーザ識別を依頼する。すると、ユーザ識別部122においてリクエストからユーザIDが取り出される。そして、リクエスト振り分け制御部121は、ユーザIDをユーザ識別部122から受け取る。
[ステップS13]リクエスト振り分け制御部121は、ユーザの再振り分けが必要か否かを判断する。ユーザの再振り分けを行うかどうかは、予めリクエスト振り分け制御部121に設定された再振り分け条件を満たすか否かによって判断される。例えば、一度サーバに振り分けたユーザであっても、所定の時間間隔で振り分け先の強制的な見直しを行うこともできる。その場合、見直し間隔となる所定時間が振り分け条件として設定され、リクエスト振り分け制御部121は、リクエストを出力したユーザの前回の振り分け処理から所定時間経過したか否かによって、再振り分けの要否を判断する。
なお、ユーザからの最初のリクエストの場合、再振り分けは不要と判断される。再振り分けが必要な場合、処理がステップS19に進められる。再振り分けが不要な場合、処理がステップS14に進められる。
[ステップS14]リクエスト振り分け制御部121は、振り分け先が設定済みか否かを判断する。具体的には、リクエスト振り分け制御部121は、ユーザ情報表112を参照し、リクエストを出力したユーザのユーザIDに対応付けて、利用センタおよび利用サーバが登録されているか否かを判断する。利用センタおよび利用サーバが登録されていれば、振り分け先設定済みと判定される。振り分け先設定済みの場合、処理がステップS15に進められる。振り分け先未設定の場合、処理がステップS16に進められる。
[ステップS15]リクエスト振り分け制御部121は、ユーザ情報表112からリクエストを出力したユーザのユーザIDに対応付けて登録されている利用センタおよび利用サーバを選択する。その後、処理がステップS19に進められる。
[ステップS16]リクエスト振り分け制御部121は、クラス判定部123に対して、サービスに対するユーザのクラスの判定を依頼する。そして、リクエスト振り分け制御部121は、クラス判定部123からクラスを示す情報を取得する。
[ステップS17]リクエスト振り分け制御部121は、ネットワーク遅延算出部124に対して、ネットワーク遅延時間の算出を依頼する。そして、リクエスト振り分け制御部121は、ネットワーク遅延算出部124からネットワーク遅延時間を取得する。
[ステップS18]リクエスト振り分け制御部121は、振り分け先決定部125に対して、振り分け先とするデータセンタとサーバとの決定を依頼する。そして、リクエスト振り分け制御部121は、振り分け先決定部125から、データセンタおよびサーバの名称を取得する。
[ステップS19]リクエスト振り分け制御部121は、振り分け先が実サーバか否かを判断する。ステップS18において、実在するデータセンタの名称とサーバの名称とを取得した場合、振り分け先は実サーバである。ステップS18において、データセンタの名称とサーバの名称として、空のデータを取得した場合(あるいは、不存在を示すメッセージ)、振り分け先は実サーバではない。振り分け先が実サーバの場合、処理がステップS21に進められる。振り分け先が実サーバでない場合、処理がステップS20に進められる。
[ステップS20]リクエスト振り分け制御部121は、ソーリーメッセージ(サーバを振り当てられないことを示す)と再読込メッセージ(指定時間後に、リクエストを出力することを依頼するメッセージ)とを合わせたメッセージを、クライアントに送信し、処理を終了する。
[ステップS21]リクエスト振り分け制御部121は、ユーザに対するサーバの振り分けが、再振り分けか否かを判断する。ステップS14において、振り分け先設定済みと判断した場合、再振り分けである。再振り分けの場合、処理がステップS22に進められる。再振り分けではない場合、処理がステップS24に進められる。
[ステップS22]リクエスト振り分け制御部121は、移動元のサーバに登録されていた該当ユーザ(リクエストを出力したユーザ)に関連する全ての情報を、移動先のサーバに移動する。
[ステップS23]リクエスト振り分け制御部121は、サービス管理DB110内の情報を、ユーザの割当先の変更に応じて更新する。具体的には、リクエスト振り分け制御部121は、ユーザ情報表112の該当ユーザに対応する利用センタ、利用サーバを更新、および推奨センタの各欄の情報を更新する。また、リクエスト振り分け制御部121は、ユーザの移動元のデータセンタと、移動先のデータセンタとのセンタ内負荷分散装置に登録されているユーザの情報を更新する。その後、処理がステップS25に進められる。
[ステップS24]リクエスト振り分け制御部121は、振り分け先となったデータセンタ内のサーバおよびセンタ内負荷分散装置の設定を行う。
[ステップS25]リクエスト振り分け制御部121は、クライアントに対して、振り分け先となったデータセンタ宛にリクエストを送信することを指定したリダイレクトメッセージを送信する。
このようにして、リクエストがクライアントから送られると、広域負荷分散装置100により振り分け先が決定される。このとき、振り分け先が変化していれば、広域負荷分散装置100により、サーバ間で情報の移動やセンタ内負荷分散装置の情報変更が指示される。そして、振り分け先が決定したら、広域負荷分散装置100により、クライアントに対して、振り分け先のデータセンタを指定したリダイレクトメッセージが送信される。なお、振り分け先が決定できない場合、広域負荷分散装置100により、指定時間後の再読込を指示するメッセージがクライアントに返される。
次に、ユーザ識別処理の詳細を説明する。
図10は、ユーザ識別処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS31]ユーザ識別部122は、リクエスト振り分け制御部121からの要求に応じて、クライアントから送られたリクエストを解析し、リクエストに含まれるユーザの識別情報を抽出する。ユーザの識別情報は、例えば、HTTPによる要求であれば、クッキーやリクエスト行内にパラメータとして設定される文字列によってリクエストに含められる。
[ステップS32]ユーザ識別部122は、ユーザ情報表112の識別子の欄の各識別子と、リクエストから抽出した識別子とを照合する。そして、ユーザ識別部122は、識別子が一致したレコードのユーザの欄の情報(ユーザ名)を、リクエスト振り分け制御部121に渡す。
次に、ユーザのクラスの判定処理の詳細を説明する。
図11は、クラス判定処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS41]クラス判定部123は、リクエスト振り分け制御部121からの要求に応じて、ユーザ情報表112から該当ユーザのクラスを抽出する。具体的には、クラス判定部123は、ユーザ識別部で取得されたユーザ名に該当するレコードをユーザ情報表112から検索し、そのレコードの利用サービスの欄からサービスの名称を取得し、サービスクラスの欄からクラスの名称を取得する。
[ステップS42]クラス判定部123は、サービス情報表111から、ステップS41で抽出したサービスおよびクラスに対応付けられた各種情報(処理遅延時間等)を抽出する。そして、クラス判定部123は、ステップS41,S42で抽出した情報を、リクエスト振り分け制御部121に渡す。
このようにして、ユーザに割り当てるクラスと、そのクラスに関する情報とが取得される。なお、ユーザ情報表112の情報がクラス未割当となっている場合は、サービス情報表111からは、デフォルトと指定されたクラスの情報が読み出される。
次に、ネットワーク遅延算出処理について詳細に説明する。
図12は、ネットワーク遅延算出処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]ネットワーク遅延算出部124は、リクエスト振り分け制御部121からの要求に応じて、リクエストからリクエスト送信元のIPアドレスを取得する。すなわち、クライアントのIPアドレスが取得される。
[ステップS52]ネットワーク遅延算出部124は、ネットワーク遅延算出表114の送信元IPと範囲(マスク)の欄を参照し、クライアントを収容するサーバに対応するレコードを特定する。具体的には、ネットワーク遅延算出部124は、ネットワーク遅延算出表114の送信元IPのネットワークアドレス部分を範囲(マスク)に設定されているサブネットマスクで特定する。そして、ネットワーク遅延算出部124は、各サーバのネットワークアドレスと、クライアントのIPアドレスの対応する部分とを比較する。そして、ネットワーク遅延算出部124は、ネットワークアドレスが一致するサーバを、クライアントを収容するサーバとして特定する。
[ステップS53]ネットワーク遅延算出部124は、ネットワーク遅延算出表114から、リクエストを送信したクラインを収容するサーバから、各データセンタまでのネットワーク遅延時間を取得する。そして、ネットワーク遅延算出部124は、取得したネットワーク遅延時間を、リクエスト振り分け制御部121に渡す。
このように、アクセスしてきたクライアントの送信元IPアドレスに基づいて、クライアントと各センタ間の通信遅延を求めることができる。
次に、振り分け先決定処理を詳細に説明する。
図13は、振り分け先決定処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS61]振り分け先決定部125は、リクエスト振り分け制御部121からの要求に応じて、データセンタ毎の総遅延値を計算する。総遅延値は、ネットワーク遅延時間と、処理遅延時間との加算値である。
[ステップS62]振り分け先決定部125は、総遅延値に基づいて、処理を振り分けるべきデータセンタおよびサーバの選択処理を行う。このときの選択処理は、ユーザのクラスに応じた許容遅延時間を保証したデータセンタおよびサーバの選択処理が行われる。具体的には、振り分け先決定部125は、サーバ選択部126に対してサーバの選択を依頼する。
[ステップS63]振り分け先決定部125は、振り分け先のデータセンタおよびサーバの確保に成功したか否かを判断する。成功した場合、処理がステップS64に進められる。失敗した場合、処理がステップS67に進められる。
[ステップS64]振り分け先決定部125は、ユーザの移動があるか否かを判断する。ユーザの移動がある場合とは、データセンタおよびサーバに対して優先度の高いユーザを振り分けることで、優先度の低いユーザに振り分ける資源が枯渇する場合である。この場合、優先度の低いユーザを、他のデータセンタおよびサーバに移動させる必要が生じる。
ユーザの移動がある場合、処理がステップS65に進められる。ユーザの移動がない場合、処理がステップS66に進められる。
[ステップS65]振り分け先決定部125は、ユーザ移動処理を、ユーザ移動部127に依頼する。
[ステップS66]振り分け先決定部125は、ステップS62で選択されたデータセンタおよびサーバを、振り分け先となるデータセンタおよびサーバとして決定する。その後、処理が終了する。
[ステップS67]振り分け先決定部125は、管理サーバ50に対して、サーバ追加指示を出す。そして、振り分け先決定部125は、管理サーバ50からサーバ追加完了の応答を待たずに、処理をステップS68に進める。
[ステップS68]振り分け先決定部125は、処理を振り分けるべきデータセンタおよびサーバの選択処理を行う。このときの選択処理は、ユーザのクラスに応じた許容遅延時間を保証せずに行われる。具体的には、振り分け先決定部125は、サーバ選択部126に対してサーバの選択を依頼する。
[ステップS69]振り分け先決定部125は、振り分け先のデータセンタおよびサーバの確保に成功したか否かを判断する。成功した場合、処理がステップS70に進められる。失敗した場合、処理がステップS73に進められる。
[ステップS70]振り分け先決定部125は、ユーザの移動があるか否かを判断する。ユーザの移動がある場合、処理がステップS71に進められる。ユーザの移動がない場合、処理がステップS72に進められる。
[ステップS71]振り分け先決定部125は、ユーザ移動処理を、ユーザ移動部127に依頼する。
[ステップS72]振り分け先決定部125は、ステップS68で選択されたデータセンタ及びサーバを、振り分け先となるデータセンタおよびサーバとして決定する。このとき、振り分け先決定部125は、ステップS62で選択されたデータセンタを、推奨センタとしてユーザ情報表に登録する。その後、処理が終了する。
[ステップS73]振り分け先決定部125は、ステップS69において確保に失敗と判断された場合、ユーザをソーリーサーバ(ソーリーメッセージを応答する際に定義する仮想のサーバ)に振り分ける。
このように、クラス情報およびユーザ情報の遅延値を元にそのユーザからみた総処理遅延値に基づいて、遅延が保証値以下でかつ容量確保が可能なセンタが探索される。そして、条件に合うデータセンタが見つかればそのデータセンタが、振り分け先に決定される。
見つからなかった場合は、ユーザに対し充分な品質のサービスが提供できない状態と判断し、サーバをオンデマンドで追加し、それによって充分な品質での提供が試みられる。そのとき、サーバの追加処理にはある程度時間が必要なため、追加完了までの間に処理に利用するセンタが探索され、見つかればそのセンタに一時的にユーザの割当が行われる(以後の再配置で推奨サーバに移動される)。資源不足によりこの段階でサーバが割り当てられない場合にはソーリー応答を返すよう設定する。
次に、サーバ追加指示に応じた管理サーバ50でのサーバ追加処理ついて説明する。
図14は、サーバ追加処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS81]管理サーバ50は、広域負荷分散装置100からのサーバ追加指示を受け取ると、サーバ構成変更処理を実行中か否かを判断する。サーバ構成変更処理を実行中であれば、その処理により不足しているサーバの追加が行われるため、管理サーバ50からの要求に応じた処理は終了する。サーバ構成変更処理が実行中でなければ、処理がステップS82に進められる。
[ステップS82]管理サーバ50は、広域負荷分散装置100が有するユーザ情報表112を参照し、各ユーザの最適なデータセンタ(推奨センタ)を取得し、データセンタそれぞれについて、そのデータセンタを推奨センタとするユーザに割り当てる資源の総容量(最適値)を集計する。
[ステップS83]管理サーバ50は、広域負荷分散装置100が有するサービス/ユーザ割当表113を参照し、データセンタそれぞれについて、そのデータセンタに割当済の資源量(割当済容量)をデータセンタ毎に集計する。割当済資源量とは、そのデータセンタに配置されたサーバの割当済の性能の合計値である。
[ステップS84]管理サーバ50は、データセンタ毎に、最適値と割当済容量との差分を算出する。
[ステップS85]管理サーバ50は、全データセンタに対してステップS86〜S88の処理を行ったか否かを判断する。全データセンタに対する処理が完了していれば、処理がステップS90に進められる。未処理のデータセンタがあれば、処理がステップS86に進められる。
[ステップS86]管理サーバ50は、最適値と割当済容量との差分が大きい順に、データセンタを選択する。
[ステップS87]管理サーバ50は、サービス/ユーザ割当表を参照し、選択したデータセンタの割当済容量が最大割当量以上か否かを判断する。すなわち、選択されたデータセンタを推奨センタとする全てのユーザを割り当てられるだけの資源が、割当済となっているか否かが判断される。割当済容量が最大割当量以上であれば、処理がステップS90に進められる。割当済容量が最大割当量に達していなければ、処理がステップS88に進められる。
[ステップS88]管理サーバ50は、選択したデータセンタに空きサーバ(サービス/ユーザ割当表113における割当済の値が総性能値に達していないサーバ)があるか否かを判断する。空きサーバがあれば、処理がステップS89に進められる。空きサーバがなければ、処理がステップS85に進められる。
[ステップS89]管理サーバ50は、選択したデータセンタに空きサーバを1台追加する。すなわち、該当するデータセンタにおける割当済の資源量が増やされる。その後、処理がステップS83に進められ、割当済容量が再計算される。
[ステップS90]管理サーバ50は、サーバ実割当処理を行う。
[ステップS91]管理サーバ50は、全ユーザの再配置処理を行う。その後、処理が終了する。
このように、サーバ追加・削除処理が実行中でないことを確認後、現在利用中の全ユーザそれぞれに対し最適なセンタが調査され、センタ毎に最適状態で必要な割当量が算出される。また、センタ毎に現在割り当てられている資源量が算出される。そして、増設しなければならない資源量を充足するまで、最適値に対し割当値が少ないセンタから優先してサーバ増設候補として選出される。その後実際にサーバ割当と全ユーザの再配置とが行われる。
次に、遅延保証を行う場合のセンタ/サーバ選択処理(その1)について詳細に説明する。
図15は、センタ/サーバ選択処理(その1)の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS101]サーバ選択部126は、全てのデータセンタに関して、ステップS102〜S104の処理が完了している否かを判断する。全データセンタに対して処理が行われた場合、処理がステップS107に進められる。未処理のデータセンタがある場合、処理がステップS102に進められる。
[ステップS102]サーバ選択部126は、遅延時間が少ないデータセンタから順に、データセンタを選択する。
[ステップS103]サーバ選択部126は、選択したデータセンタの遅延時間が保証値以下か否かを判断する。遅延時間が保証値以下(総遅延時間が、許容可遅延時間以下)であれば、処理がステップS104に進められる。遅延時間が保証値より大きければ、処理がステップS101に進められる。
[ステップS104]サーバ選択部126は、未使用の資源の容量と、および現在振り分けた対象としているユーザよりも優先度が低いクラスのユーザに割り当てられた資源の容量との加算値を計算する。
[ステップS105]サーバ選択部126は、ステップS104で計算した値が、リクエストに応じてユーザに割り当てるべき資源の容量以上あるか否かにより、必要容量を確保可能か否かを判断する。必要容量を確保可能であれば、処理がステップS106に進められる。必要容量が確保できなければ、処理がステップS101に進められ、他のデータセンタについて検討される。
[ステップS106]サーバ選択部126は、選択されたデータセンタ内の空きサーバを、ユーザに対する資源の振り分け対象として選択する。そして、サーバ選択部126は、選択したデータセンタおよびサーバの情報を、振り分け先決定部125(ユーザ移動処理中であれば、ユーザ移動部127)に渡す。この際、サーバ選択部126は、低クラスユーザの資源を転用が必要であれば、それらのユーザを移動予定として移動ユーザリストに登録する。その後、処理が終了する。
[ステップS107]サーバ選択部126は、全てのデータセンタについて検討した結果、必要容量を確保可能なデータセンタが検出できなかった場合、確保失敗のメッセージを、振り分け先決定部125(ユーザ移動処理中であれば、ユーザ移動部127)に渡す。
このように、ユーザから見た遅延値が保証値以下であり、未使用および割当ユーザよりも低クラスのユーザが利用する資源によって、割当ユーザに対しサービスが提供可能であるセンタが探索される。そして、該当するデータセンタが見つかった場合はそのデータセンタ内のサーバが振り分け対象として選択される。
次に、遅延保証を行わない場合のセンタ/サーバ選択処理(その2)について詳細に説明する。
図16は、センタ/サーバ選択処理(その2)の手順を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS111]サーバ選択部126は、全てのデータセンタに関して、ステップS112〜S114の処理が完了している否かを判断する。全データセンタに対して処理がおこなわれた場合、処理がステップS116に進められる。未処理のデータセンタがある場合、処理がステップS112に進められる。
[ステップS112]サーバ選択部126は、遅延時間が少ないデータセンタから順に、データセンタを選択する。
[ステップS113]サーバ選択部126は、未使用の資源の容量と、現在振り分けた対象としているユーザよりも優先度が低いクラスのユーザに割り当てられた資源の容量との加算値を計算する。
[ステップS114]サーバ選択部126は、ステップS113で計算した値が、リクエストに応じてユーザに割り当てるべき資源の容量以上であるか否かにより、必要容量を確保可能か否かを判断する。必要容量を確保可能であれば、処理がステップS115に進められる。必要容量が確保できなければ、処理がステップS111に進められ、他のデータセンタについて検討される。
[ステップS115]サーバ選択部126は、選択されたデータセンタ内の空きサーバを、ユーザに対する資源の振り分け対象として選択する。そして、サーバ選択部126は、選択したデータセンタおよびサーバの情報を、振り分け先決定部125(ユーザ移動処理中であれば、ユーザ移動部127)に渡す。この際、サーバ選択部126は、低クラスユーザの資源を転用が必要であれば、それらのユーザを移動予定として移動ユーザリストに登録する。その後、処理が終了する。
[ステップS116]サーバ選択部126は、全てのデータセンタについて検討した結果、必要容量を確保可能なデータセンタが検出できなかった場合、確保失敗のメッセージを、振り分け先決定部125(ユーザ移動処理中であれば、ユーザ移動部127)に渡す。
このように、遅延保証をおこなわない場合、サービス品質が保証値外であってもサービス提供可能なセンタ・サーバが選択される。
次に、ユーザ移動処理について説明する。
図17は、ユーザ移動処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS121]ユーザ移動部127は、振り分け先決定部125からの要求に応じて、移動が必要なユーザでまだ移動処理を行っていないユーザがあるか否かを判断する。移動が必要なユーザとは、移動ユーザリストに移動予定として登録されたユーザである。移動が必要なユーザがある場合、処理がステップS122に進められる。移動が必要なユーザが無い場合、処理が終了する。
[ステップS122]ユーザ移動部127は、移動が必要なユーザの中で、最も優先度の高いレベルのユーザを選択する。
[ステップS123]ユーザ移動部127は、遅延保証をしたセンタ/サーバ選択処理をサーバ選択部126に依頼する。
[ステップS124]ユーザ移動部127は、ステップS123の処理によって、データセンタおよびサーバの確保に成功したか否かを判断する。データセンタおよびサーバが確保できた場合、処理がステップS125に進められる。確保できなかった場合、処理がステップS126に進められる。
[ステップS125]ユーザ移動部127は、他のユーザの移動があるか否かを判断する。他のユーザの移動を伴う場合、処理がステップS129に進められる。他のユーザの移動を伴わない場合、処理がステップS130に進められる。
[ステップS126]ユーザ移動部127は、遅延保証したデータセンタおよびサーバが確保できなかった場合、遅延保証なしのセンタ/サーバ選択処理を、サーバ選択部126に依頼する。
「ステップS127」ユーザ移動部127は、ステップS126の処理によって、データセンタおよびサーバの確保に成功したか否かを判断する。データセンタおよびサーバが確保できた場合、処理がステップS128に進められる。確保できなかった場合、処理がステップS133に進められる。
[ステップS128]ユーザ移動部127は、他のユーザの移動があるか否かを判断する。他のユーザの移動を伴う場合、処理がステップS129に進められる。他のユーザの移動を伴わない場合、処理がステップS130に進められる。
[ステップS129]ユーザ移動部127は、他のユーザを移動させる必要がある場合、そのユーザを移動ユーザリストに追加登録する。
[ステップS130]ユーザ移動部127は、移動先のセンタ内負荷分散装置に、移動させるユーザの情報を登録する。
[ステップS131]ユーザ移動部127は、移動元のセンタ内負荷分散装置に、移動させるユーザが他のデータセンタに移動することを登録する。
[ステップS132]ユーザ移動部127は、移動元のサーバと移動先のサーバとに指示を出し、移動元のサーバから移動先のサーバへ、移動すべきユーザに関連する情報(サービスを引き継ぐために必要な情報)を転送させる。その際、移動元のサーバに対して、次回のユーザが使用するクライアントからのリクエストに対し、広域負荷分散装置100への再アクセスを指示するメッセージを返すように設定する。すると、そのクライアントからのアクセスが広域負荷分散装置100に転送され、移動先となるデータセンタにリクエストが振り分けられる。その後、処理がステップS135に進められる。
[ステップS133]ユーザ移動部127は、移動すべきユーザが現在割り振られているデータセンタのセンタ内負荷分散装置に対して、ソーリー返答を該当ユーザの使用するクライントに送信するように指示を出す。
[ステップS134]ユーザ移動部127は、移動すべきユーザが現在割り振られているサーバに、そのユーザの情報を保存するように指示を出す。その後、処理がステップS135に進められる。
[ステップS135]ユーザ移動部127は、移動先の決定済のユーザをリストから削除する。その後、処理がステップS121に進められる。
このようにして、移動が必要なユーザに関して、ユーザクラスの高い順にサーバの移動処理が行われる。このとき、遅延時間を保証可能なサーバが選択できれば、そのサーバが優先的に選択される。一方、遅延時間を保証可能なサーバがなければ、遅延保証値外でも資源確保が可能なセンタが選択される。どちらも選択できなければソーリー応答の返送指示が行われる。
ユーザを新しいセンタに移動するために、移動元のサーバには、次回のユーザからのリクエストに対し、広域負荷分散装置100への再アクセスを指示するメッセージを返すよう設定される。さらに、移動元のサーバに保存されていたユーザ情報が、移動先のサーバに移動される。また、移動元と移動先のセンタ内負荷分散装置に対しても、移動するユーザの情報の更新が行われる。これらのユーザ処理により再度別のユーザが移動となった場合には、移動させられるユーザが移動先ユーザリストに追加される。そして、全ユーザの移動先が決定するまで、図17の処理が繰り返される。
次に、全ユーザ再配置処理を詳細に説明する。
図18は、全ユーザ再配置処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS141]ユーザ移動部127は、ユーザ割当テーブルを作成する。ユーザ割当テーブルは、各ユーザの割当先となるデータセンタおよびサーバを登録するテーブルである。
[ステップS142]ユーザ移動部127は、全てのユーザについて、ステップS143〜S150の処理が完了したか否かを判断する。全てのユーザについて処理が完了してれば、処理がステップS151に進められる。未処理のユーザが存在していれば、処理がステップS143に進められる。
[ステップS143]ユーザ移動部127は、優先度の高い順にユーザを選択する。
[ステップS144]ユーザ移動部127は、遅延時間を保証したセンタ/サーバ選択処理(その1)をサーバ選択部126に依頼する。
[ステップS145]ユーザ移動部127は、ステップS144の処理によって、データセンタおよびサーバの確保に成功したか否かを判断する。確保に成功した場合、処理がステップS150に進められる。確保に失敗した場合、処理がステップS146に進められる。
[ステップS146]ユーザ移動部127は、データセンタおよびサーバの確保に失敗した場合、要再追加フラグをONに設定する。
[ステップS147]ユーザ移動部127は、遅延時間を保証しないセンタ/サーバ選択処理(その2)をサーバ選択部126に依頼する。
[ステップS148]ユーザ移動部127は、ステップS147の処理によって、データセンタおよびサーバの確保に成功したか否かを判断する。確保に成功した場合、処理がステップS150に進められる。確保に失敗した場合、処理がステップS149に進められる。
[ステップS149]ユーザ移動部127は、ユーザ割当テーブルに対して、選択したユーザの割当先としてソーリーサーバ(割当に失敗したことを示す)を登録する。その後、処理がステップS142に進められ、他のユーザに対する処理が行われる。
[ステップS150]ユーザ移動部127は、ユーザ割当テーブルに対して、選択したユーザの割当先として、選択されたデータセンタおよびサーバを登録する。その後、処理がステップS142に進められ、他のユーザに対する処理が行われる。
[ステップS151]ユーザ移動部127は、全てのユーザに対して、データセンタおよびサーバの割当処理が完了したら、要再追加フラグがONか否かを判定する。要再追加フラグがONの場合、処理がステップS152に進められる。要再追加フラグがOFF(初期状態)の場合、処理がステップS153に進められる。
[ステップS152]ユーザ移動部127は、管理サーバ50に対してサーバ追加指示を出す。
[ステップS153]ユーザ移動部127は、各ユーザに対して現在割り当てられているデータセンタおよびサーバ(現割当)と、ステップS142〜S150の処理で各ユーザに対して選択されたデータセンタおよびサーバ(新割当)との差分(現割当と新割当とが異なるユーザのリスト)を作成する。
[ステップS154]ユーザ移動部127は、差分で検出された全てのユーザに対して移動処理が完了したか否かを判断する。移動処理が完了した場合、処理が終了する。移動していないユーザがある場合、処理がステップS155に進められる。
[ステップS155]ユーザ移動部127は、移動ユーザを優先度の低い順に選択する。
[ステップS156]ユーザ移動部127は、ユーザ移動処理を実行する。その後、処理がステップS154に進められる。
このようにして、全ユーザの割当の最適化が行われる。すなわち、全ユーザが、高優先度のユーザから順に、適したサーバに割り当てられる。この際に遅延保証値を守れないユーザが存在した場合、サーバ増設処理が行われる。
次に、管理サーバ50で実行される過不足容量判定処理について説明する。過不足容量判定処理は、定期的に実行される処理であり、処理能力の過不足に応じてサーバの追加または削除を自動的に行う処理である。
図19は、過不足容量判定処理の手順を示すフローチャートの前半である。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS161]管理サーバ50は、サーバ構成変更中か否かを判断する。サーバ構成変更中でなければ、処理がステップS162に進められる。サーバ構成変更中であれば、処理が終了する。
[ステップS162]管理サーバ50は、ユーザ利用中の資源の合計(利用中容量)を計算する。なお、利用中の資源は、サービス/ユーザ割当表113の利用済の欄の値によって判断できる。
[ステップS163]管理サーバ50は、サービス提供用に割り当てられているサーバ資源(サーバ割当量)の合計を計算する。なお、割り当てられたサーバ資源は、サービス/ユーザ割当表113の割当済の欄の値によって判断できる。
[ステップS164]管理サーバ50は、利用中容量÷割当量の値が0.5以下(利用割合が50%以下)か否かを判断する。0.5以下であれば、処理がステップS165に進められる。0.5を超えていれば、処理がステップS181(図20に示す)に進められる。
[ステップS165]管理サーバ50は、新しい割当容量を計算する。これは、必要な資源量の見積処理である。この処理は現利用量の50%にする等の単純な方式や、負荷変動から近未来に必要な資源量を予測する方法等が考えられる。
[ステップS166]管理サーバ50は、広域負荷分散装置100が有するユーザ情報表112を参照し、各ユーザの最適なデータセンタ(推奨センタ)を取得し、データセンタそれぞれについて、そのデータセンタを推奨センタとするユーザに割り当てる資源の総容量(最適値)を集計する。
[ステップS167]管理サーバ50は、広域負荷分散装置100が有するサービス/ユーザ割当表113を参照し、データセンタそれぞれについて、そのデータセンタに割当済の資源量(割当済容量)をデータセンタ毎に集計する。
[ステップS168]管理サーバ50は、データセンタ毎に、最適値と割当済容量との差分を算出する。
[ステップS169]管理サーバ50は、全データセンタに対してステップS170〜S172の処理を行ったか否かを判断する。全データセンタに対する処理が完了していれば、処理がステップS173に進められる。未処理のデータセンタがあれば、処理がステップS170に進められる。
[ステップS170]管理サーバ50は、最適値と割当済容量との差分が小さい順に、データセンタを選択する。
[ステップS171]管理サーバ50は、サービス/ユーザ割当表113を参照し、選択したデータセンタの割当済容量が、最低割当量以下か否かを判断する。最低割当量以下であれば、処理がステップS173に進められる。最低割当量より大きければ、処理がステップS172に進められる。
[ステップS172]管理サーバ50は、選択したデータセンタからサーバを1台削除する設定を行う。その後、処理がステップS169に進められる。
[ステップS173]管理サーバ50は、広域負荷分散装置100に対して、全ユーザの再配置処理を依頼する。
[ステップS174]管理サーバ50は、全ユーザの再配置完了後、サーバ実割当解除処理を行う。その後、処理が終了する。
図20は、過不足容量判定処理の手順を示すフローチャートの後半である。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS181]管理サーバ50は、利用中容量÷割当量の値が0.9以上(利用割合が90%以上)か否かを判断する。0.9以上であれば、処理がステップS182に進められる。0.9未満であれば、処理が終了する。
[ステップS182]管理サーバ50は、新しい割当容量を計算する。この処理では、必要な資源量の見積が行われる。見積処理としては、例えば、現在の利用量の倍に増やす等の単純な方式や、負荷変動から近未来に必要な資源量を予測する方法等が考えられる。
[ステップS183]管理サーバ50は、広域負荷分散装置100が有するユーザ情報表112を参照し、各ユーザの最適なデータセンタ(推奨センタ)を取得し、データセンタそれぞれについて、そのデータセンタを推奨センタとするユーザに割り当てる資源の総容量(最適値)を集計する。
[ステップS184]管理サーバ50は、広域負荷分散装置100が有するサービス/ユーザ割当表113を参照し、データセンタそれぞれについて、そのデータセンタに割当済の資源量(割当済容量)をデータセンタ毎に集計する。
[ステップS185]管理サーバ50は、データセンタ毎に、最適値と割当済容量との差分を算出する。
[ステップS186]管理サーバ50は、全データセンタに対してステップS187〜S190の処理を行ったか否かを判断する。全データセンタに対する処理が完了していれば、処理がステップS191に進められる。未処理のデータセンタがあれば、処理がステップS187に進められる。
[ステップS187]管理サーバ50は、最適値と割当済容量との差分が大きい順に、データセンタを選択する。
[ステップS188]管理サーバ50は、サービス/ユーザ割当表を参照し、選択したデータセンタの割当済容量が、最大割当量以上か否かを判断する。すなわち、選択されたデータセンタを推奨センタとする全てのユーザを割り当てられるだけの資源が、割当済となっているか否かが判断される。割当済容量が最大割当量以上であれば、処理がステップS191に進められる。割当済容量が最大割当量に達していなければ、処理がステップS189に進められる。
[ステップS189]管理サーバ50は、選択したデータセンタに空きサーバ(サービス/ユーザ割当表113における割当済の値が0のサーバ)があるか否かを判断する。空きサーバがあれば、処理がステップS190に進められる。空きサーバがなければ、処理がステップS186に進められる。
[ステップS190]管理サーバ50は、選択したデータセンタに空きサーバを1台追加する。すなわち、該当するデータセンタにおける割当済の資源量が増やされる。その後、処理がステップS184に進められ、割当済容量が再計算される。
[ステップS191]管理サーバ50は、サーバ実割当処理を行う。
[ステップS192]管理サーバ50は、全ユーザの再配置処理を行う。その後、処理が終了する。
このようなサービス容量の過不足確認処理が定期的に行われる。例えば、この処理は数秒から数分おきに実行される。
過不足確認処理では、まずサーバ増設・削減中でないことが確認され、その後ユーザが利用中の総容量とサーバとして割り当てられている総容量が算出される。それらを比較した結果、利用している割合が50%等一定値以下となったときは余剰サーバの割合が高いと判断しサーバの削減処理が行われる。
サーバ削減処理ではまず必要な資源量の見積が行われる。その後センタ毎に、そのセンタが最適なユーザ群に必要な資源量と、そのセンタに割当済みの資源量が算出される。そして割合として余剰資源が多いセンタからサーバ削除の対象としてサーバが選択される。削除対象のサーバが決定したら残るサーバ群に対して全ユーザの再割当が行われる。そうすることで削除対象のサーバを利用するユーザは稼動しつづけるサーバに移動することとなる。その後利用するユーザがいなくなったサーバはオンデマンド制御でサービスへの割当対象から外される。
また、利用している割合が90%等一定値以上になったときは、サーバ資源が不足しつつあると判断しサーバの増設処理が行われる。その後センタ毎に、そのセンタが最適なユーザ群に必要な資源量と、そのセンタに割当済みの資源量が算出される。そして割合として割当資源が少ないセンタからサーバ追加の対象としてサーバが選択される。追加対象のサーバが決定したらサーバのオンデマンド割当処理が行われる。割当処理完了後はユーザ割当再最適化処理が行われる。
次に、センタ内負荷分散装置の処理について説明する。
図21は、センタ内負荷分散装置の処理手順を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS201]センタ内負荷分散装置は、クライアントからのリクエストを受信する。
[ステップS202]センタ内負荷分散装置は、ユーザ識別処理を行う。ユーザ識別処理の詳細は、図10に示した広域負荷分散装置100におけるユーザ識別処理と同様である。
[ステップS203]センタ内負荷分散装置は、リクエストを出力したユーザのユーザ情報を保持しているか(該当ユーザがサービス対象として設定されているか)否かを判断する。ユーザ情報を保持していれば、処理がステップS204に進められる。ユーザ情報を保持していなければ、処理がステップS207に進められる。
[ステップS204]センタ内負荷分散装置は、振り分け先が設定済みか否かを判断する。振り分け先が設定済みであれば、処理がステップS205に進められる。振り分け先が設定済みでなければ、処理がステップS207に進められる。
[ステップS205]センタ内負荷分散装置は、振り分け先として他のデータセンタへの移動が設定されているか否かを判断する。他のデータセンタへ移動させる場合、処理がステップS207に進められる。他のデータセンタへ移動させない場合、処理がステップS206に進められる。
[ステップS206]センタ内負荷分散装置は、同じデータセンタ内のサーバへ、リクエストのパケットを転送する。その後、処理が終了する。
[ステップS207]センタ内負荷分散装置は、広域負荷分散装置100へ再アクセスさせるためのリダイレクトメッセージをクライアントに送信する。その後、処理が終了する。
このように、センタ内負荷分散装置は、ユーザからのリクエストを受け取ったとき、そのユーザの情報の確認を行う。ユーザ情報がサーバ内に存在しない、もしくは他サーバに移動させるよう設定されている場合は、広域負荷分散装置100へのリダイレクトを指示する。また、センタ内負荷分散装置は、ユーザからのリクエストを受け取ったとき、そのユーザの情報および振り分け先サーバの設定が行われていればそのサーバにリクエストの中継を行う。ユーザ情報が存在しない場合には広域負荷分散装置100にリダイレクトを指示する。これにより、広域負荷分散装置100によるユーザクラス判定およびサーバ割当処理が行われる。
次に、サーバで行われる処理を詳細に説明する。
図22は、サーバの処理手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS211]サーバは、クライアントからのリクエストを受信する。
[ステップS212]サーバは、ユーザ識別処理を行う。ユーザ識別処理の詳細は、図10に示した広域負荷分散装置100におけるユーザ識別処理と同様である。
[ステップS213]サーバは、リクエストに応じた処理を実行し、サービスを提供する。そして、サーバは、処理結果をクライアントに返送する。
次に、クライアントの動作について説明する。
図23は、クライアントの処理手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS221]クライアントは、広域負荷分散装置100のIPアドレスをアクセス先のサーバとして設定する。
[ステップS222]クライアントは、アクセス先として設定されたサーバへリクエストを送信する。
[ステップS223]クライアントは、リクエストに対する応答を受信する。
[ステップS224]クライアントは、応答がリダイレクト指示か否かを判断する。リダイレクト指示であれば、処理がステップS225に進められる。リダイレクト指示でなければ、処理がステップS226に進められる。
[ステップS225]クライアントは、アクセス先を、リダイレクトで指示されれたサーバ(データセンタの代表のIPアドレス)に変更する。
[ステップS226]クライアントは、応答で返された情報を利用した処理(例えば、取得した情報の画面表示)を行う。
[ステップS227]クライアントは、サービス利用を終了するか否かを判断する。例えば、ユーザによってサービス利用終了の操作入力がおこなわれた場合、サービス利用終了と判断する。サービス利用終了の場合、処理が終了する。サービス利用終了ではない場合、処理がステップS222に進められる。
このように、クライアントはまずサービス利用にあたり広域負荷分散装置100に対して初期リクエストの送信を行う。ここでクライアントは、広域負荷分散装置100も通常のサーバと同一視している。広域負荷分散装置100からは、リダイレクトを指示した応答が返される。そこで、クライアントは、自身のアクセス先サーバを指示されたサーバに変更し同一リクエストの再送を行う。これ以降、クライアントは、応答としてリダイレクトが来た場合はサーバの変更とリクエスト再送、通常の応答が来ればサービス利用を行う。
次に、サーバ増設・縮退処理について、図24〜図26を参照して説明する。なお、これらの処理はオンデマンド運用におけるサーバ増設・縮退の一手法を説明するものであり、他の方式によってオンデマンド配備を行うこともできる。
図24は、サーバ実割当処理の手順を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS231]管理サーバ50は、全てのサーバに対して、ステップS232〜S234の処理を行ったか否かを判断する。全てのサーバに対して処理が完了していれば、処理がステップS235に進められる。未処理のサーバがあれば、処理がステップS232に進められる。
[ステップS232]管理サーバ50は、増設対象のサーバを選択する。
[ステップS233]管理サーバ50は、選択したサーバが稼働中か否かを判断する。稼働中であれば、処理がステップS234に進められる。稼働中でなければ、処理がステップS231に進められる。
[ステップS234]管理サーバ50は、選択したサーバの縮退処理(サーバ実割当解除処理)を行う。その後、処理がステップS231に進められる。
[ステップS235]管理サーバ50は、処理対象となるデータセンタ内の何れかのサーバに必要なシステムイメージがあるか否かを判断する。ここで、システムイメージとは、サーバ上にサービス環境を構築するために必要な全てのデータ(OSやアプリケーションのプログラムや、環境設定等の管理情報を含む)を1つの纏まりとしたものである。システムイメージがあれば、処理がステップS237に進められる。システムイメージがなければ、処理がステップS236に進められる。
[ステップS236]管理サーバ50は、システムイメージがないデータセンタに対して、他のデータセンタからシステムイメージを転送させる。
[ステップS237]管理サーバ50は、データセンタ内のシステムイメージを保持しているサーバにおいて、システムイメージのコピーを作成させる。
[ステップS238]管理サーバ50は、全てのサーバに対して、ステップS239〜S241の処理を行ったか否かを判断する。全てのサーバに対して処理が完了していれば、処理がステップS242に進められる。未処理のサーバがあれば、処理がステップS239に進められる。
[ステップS239]管理サーバ50は、増設対象のサーバを選択する。
[ステップS240]管理サーバ50は、コピーしたシステムイメージのサーバ固有情報を更新する。
[ステップS241]管理サーバ50は、選択したサーバに対して、コピーしたシステムイメージからの起動を指示する。その後、処理がステップS238に進められる。
[ステップS242]管理サーバ50は、サーバ起動完了確認処理を開始する。その後、処理が終了する。
このように、処理対象のサーバが稼動中であれば、それらのサーバに対し終了(サーバ縮退処理)が指示される。続いて割当対象のセンタ内に既に起動させるサービスのシステムイメージが存在しているかが確認され、存在しない場合は他のデータセンタから処理対象のデータセンタ内にファイルシステムがコピーされる。さらにデータセンタ内で稼動させるサーバ用の利用システムイメージのコピーが作成され、各々の実サーバと関連付けが行われる(サーバ固有情報の設定)。そして、サーバに対し、コピーしたシステムイメージからシステムを起動するよう指示が出される。これにより、所定のサービスを提供可能なサーバが、データセンタ内に追加される。
次に、起動完了確認処理を詳細に説明する。
図25は、サーバ起動完了確認処理の手順を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS251]管理サーバ50は、起動確認対象となるサーバの状態を示す情報として、「起動中」を設定する。
[ステップS252]管理サーバ50は、起動確認対象の全てのサーバに対して、ステップS253〜S257の処理を行ったか否かを判断する。全てのサーバに対して処理が完了していれば、処理がステップS258に進められる。未処理のサーバがあれば、処理がステップS253に進められる。
[ステップS253]管理サーバ50は、起動中のサーバを選択する。
[ステップS254]管理サーバ50は、選択したサーバを監視し、起動が完了したか否かを判断する。完了した場合、処理がステップS255に進められる。完了しない場合、処理がステップS256に進められる。
[ステップS255]管理サーバ50は、選択したサーバの状態を「起動完了」に設定し、処理をステップS252に進める。
[ステップS256]管理サーバ50は、選択したサーバが起動に失敗したか否かを判断する。起動に失敗した場合、処理がステップS257に進められる。まだ起動中の場合、処理がステップS252に進められる。
[ステップS257]管理サーバ50は、選択したサーバの状態を「起動失敗」に設定し、処理をステップS252に進める。
[ステップS258]管理サーバ50は、起動確認対象の全てのサーバについて起動が完了したか否かを判断する。全てのサーバの起動が完了した場合、処理がステップS262に進められる。起動失敗のサーバがあれば、処理がステップS259に進められる。
[ステップS259]管理サーバ50は、処理を開始してからの総待ち時間が所定の限度以内か否かを判断する。限度以内であれば、処理がステップS260に進められる。限度を超えていれば、処理がステップS261に進められる。
[ステップS260]管理サーバ50は、一定時間待って、処理をステップS252に進める。
[ステップS261]管理サーバ50は、未起動のサーバの状態を「起動失敗」に設定する。
[ステップS262]管理サーバ50は、起動に成功したサーバのリストを作成する。その後、処理が終了する。
このようにして、サーバが起動完了したかが調査される。そのとき、起動完了または起動失敗との判断がされないサーバがあった場合、所定の時間経過するまで繰り返し調査が行われる。そして、全サーバの起動が完了するか起動失敗と判断されるか、一定時間以上経過したとき、起動に成功したサーバの情報が生成される。
次に、サーバ実割当解除処理について説明する。
図26は、サーバ実割当解除処理の手順を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS271]管理サーバ50は、縮退対象の全サーバに対して、ステップS272〜S273の処理が完了したか否かを判断する。全サーバに対して処理が完了していれば、処理がステップS274に進められる。未処理のサーバがあれば、処理がステップS272に進められる。
[ステップS272]管理サーバ50は、縮退対象のサーバを選択する。
[ステップS273]管理サーバ50は、選択したサーバに対して停止を指示する。その後、処理がステップS271に進められる。
[ステップS274]管理サーバ50は、縮退対象のサーバを、停止中に設定する。
[ステップS275]管理サーバ50は、停止中と設定された全サーバに対して、ステップS276〜S278の処理が完了したか否かを判断する。全サーバに対して処理が完了していれば、処理がステップS279に進められる。未処理のサーバあれば、処理がステップS276に進められる。
[ステップS276]管理サーバ50は、停止中のサーバを選択する。
[ステップS277]管理サーバ50は、選択したサーバの停止が完了したか否かを判断する。停止が完了した場合、処理がステップS278に進められる。停止が完了していない場合、処理がステップS275に進められる。
[ステップS278]管理サーバ50は、選択したサーバの状態を「停止完了」に設定し、処理をステップS275に進める。
[ステップS279]管理サーバ50は、縮退対象の全てのサーバに対して停止の有無の調査が終了したら、縮退対象の全サーバが「停止完了」の状態になったか否かを判断する。全ての「停止完了」となった場合、処理がステップS283に進められる。「停止完了」でないサーバがある場合、処理がステップS280に進められる。
[ステップS280]管理サーバ50は、待ち時間が所定の限度(例えば10分)以内か否かを判断する。限度以内であれば、処理がステップS281に進められる。限度を超えている場合、処理がステップS282に進められる。
[ステップS281]管理サーバ50は、待ち時間が限度以内であれば、一定時間(例えば10秒)待った後、処理をステップS275に進める。
[ステップS282]管理サーバ50は、待ち時間が限度を超えた場合、停止していないサーバの状態を「停止失敗」に設定する。
[ステップS283]管理サーバ50は、状態が「停止完了」となっている停止成功サーバのリストを作成し、処理を終了する。
このようにして、サーバ実割当解除処理では、処理対象の全サーバに対しサーバ停止の指示が出される。停止処理の中には、サービス処理の終了や必要なデータの固定サーバへの転送、システムのシャットダウン等の処理が含まれる。サーバ停止の指示を出した後、全サーバが停止するか、あるいは一定時間経過するまで待って、停止に成功したサーバの情報が生成される。
以上のようにして、各ユーザに対してユーザクラスで指定されたサービス品質が維持できるようになる。その結果、ユーザに対し常に充分な品質のサービスを提供できるようになる。また、それによってサービス提供側には付加価値の高いサービスを提供できる。
しかも、サービスの種別毎にサービス品質保証値(クライアントに保証する処理遅延時間の最大値)を変更することができる。また、ユーザ毎に優先度を設定し、サービス品質保証値を変更することもできる。さらに、クライアントとセンタの位置関係の違いに応じて、サービスを稼動させるセンタの選択および再割当およびクライアントのリクエストを誘導するセンタの選択および再割当を行うことができる。これにより、従来にない柔軟なサービス運用とサービス品質保証が行われる。
以下、上記の実施の形態による全体の処理の流れを、具体例を用いて説明する。
以下の具体例では、インターネット上で提供されるEコマースサイトによって、電子商取引サービスを提供するものとする。この例では、カタログ情報や購入手続き等についてはオンデマンドで運用されるデータセンタ200,300,400内のサーバ上で提供・処理が行われる。また、購入情報や決済等の管理・処理は、バックエンドサーバ60で行われる。
また、クライアント上で利用されるサービス利用のためのソフトとしては、一般的なWebブラウザが利用される。このとき、サービス利用者としても一般ユーザが対象となるため、クライアントに対する専用アプリケーションの導入等を求めるのは困難である。従って、以下の具体例では一般的なWebブラウザが標準的に持つ機能を利用してセンタ間の移動等の処理を実現するものとする。
以下、クライアントからのリクエスト処理の流れについて説明する。
1.基本的な処理の流れ
図2に示すような典型的なネットワーク構成において、ユーザが、クライアント群41〜43の何れかに含まれるクライアントを操作し、Webブラウザに対して処理要求の指示を入力する。すると、クライアントのWebブラウザが、広域負荷分散装置100に対してリクエストを送信する。
例えば、公開するサービスのURL(http://www.xxx.com/等)に含まれるホスト名(www.xxx.com)に対応するIPアドレスとして、広域負荷分散装置100のIPアドレスをDNS(Domain Name System)に登録することが考えられる。この例ではユーザが利用するWebブラウザはユーザ識別情報を持っていない。従って送信されるリクエストにユーザ情報は含まれない。
クライアントのWebブラウザからのリクエストを受け取った広域負荷分散装置100は、ユーザからのリクエスト内容の解析を行う。ユーザから送信されたリクエストがどのサービス宛のものであり、ユーザ情報が含まれているか、どのユーザか、の識別を行う。この例ではユーザからのリクエストにはユーザ情報は含まれていないため、広域負荷分散装置100はユーザ識別に失敗し、デフォルト状態なるクラスに設定される。
ここで、広域負荷分散装置100は、Webブラウザからのリクエストを介して、提供すべきサービスの種別を判断する。1台の広域負荷分散装置100を単一のサービス種別に対してのみ利用している場合は、広域負荷分散装置100は、全リクエストを特定のサービス宛のものと判断する。
一方、複数のサービスで広域負荷分散装置100を共用する場合には、広域負荷分散装置100にサービス種別毎の複数のIPアドレスを割り当て、リクエストの宛先として指定されたIPアドレスによってサービス種別を識別することができる。また、サービス毎に利用するTCPポート番号を変更し、ポート番号でサービス種別を識別することもできる。さらに、サービス種別毎にURL等の識別情報を割り当て、リクエストヘッダに含まれるHost行で示されるFQDN(Fully Qualified Domain Name)情報を参照することで、サービス種別を判別することもできる。
広域負荷分散装置100はユーザのクラスおよびサービス種別に基づいて、そのユーザに割り当てるデータセンタおよびサーバを決定する。また、広域負荷分散装置100は新規ユーザに対してユニークな識別情報を発行し、その情報を自身および利用するセンタのセンタ内負荷分散装置および利用するサーバに対し登録する。
その後、広域負荷分散装置100はユーザ識別情報と転送先となるデータセンタのセンタ内負荷分散装置とを指定したリダイレクトメッセージをWebブラウザに返答する。返答を受け取ったWebブラウザは、リダイレクトメッセージが指定するセンタ内負荷分散装置に再度リクエストを送信する。このとき、Webブラウザは、広域負荷分散装置100から受け取ったユーザ情報を同時に送信する。リダイレクトの方法としては、HTTPで規定されるサーバ転送の方法が利用できる。具体的には応答として"301 Moved Permanently"等によって新しいサーバを返す方法や、メタタグによるページ更新("<META HTTP-EQUIV="Refresh" CONTENT="0;URL">")による方法等がある。
ユーザからのリクエストを受け取ったセンタ内負荷分散装置は、広域負荷分散装置100と同様にリクエストの解析を行う。そしてユーザ識別情報に基づき実処理サーバの特定を行い、リクエストをそのサーバに転送する。この部分の転送はセンタ内負荷分散装置がパケットレベルでリクエストと応答を中継することを想定している。
リクエストを受信したサーバは応答を作成し、Webブラウザに返送する。これ以降はWebブラウザ−センタ内負荷分散装置−サーバの間で通常のWebサービスと同等の処理が開始される。
2.ユーザ識別情報、ユーザクラス情報の更新
前項の処理によってサービスが開始されるが、この状態ではまだユーザは望ましいクラスに分類されていない。このためユーザに対し正しいクラス情報を付与する必要がある。このためには、まず何らかの方法でユーザ認証を行う。ユーザ認証処理は、通常のWebサービスで行われるログイン処理と同等のものである。認証に成功した場合には、そのユーザを適切なクラスに移動させる必要がある。例えば、各サーバは、広域負荷分散装置100に対しユーザ識別情報と対応する正しいクラスを設定する。その際に、再割当を行うように設定を行う。そしてユーザに対しては広域負荷分散装置100に再度アクセスするようにリダイレクトメッセージを返送する。広域負荷分散装置100はユーザからのリクエストに対し、クラス情報に基づいて再度割当処理を行う。そして、広域負荷分散装置100は、旧サーバから新サーバへ情報の移動および広域負荷分散装置100とセンタ内負荷分散装置との有する管理情報の更新を行う。
3.優先クラスユーザによる他ユーザの移動
優先度の高いクラスのユーザ(高クラスユーザ)からのリクエストは、優先度が低いクラスのユーザ(低クラスユーザ)のリクエストよりも優先して処理する必要がある。そのため、高クラスユーザは、他に同等もしくはより高クラスユーザが存在しない限り最適なセンタに割当が行われる。また、その際には低クラスユーザの他のセンタへの移動やサービス中断がおき得る。中断した低クラスユーザ向けのサービスはサーバ追加後に再開される。なお、実際には事前予測をしながらサーバが追加されるため、サービス中断が発生するのは致命的な予測ミスが発生した場合に限られる。
ここで、新しく高クラスユーザがリクエストを送信してきた場合の例を示す。ユーザは通常と同様に広域負荷分散装置100に対してリクエストを送信する(簡略化のためこの時点でユーザクラスは設定されているものとする)。広域負荷分散装置100はリクエストからクラスを判定し、サーバを割り当てようとする。この際にそのユーザに最適なデータセンタに必要な空き容量があれば、通常と同様の振り分け処理が行われる。ところが、最適なセンタの未使用容量が足りず、かつそのデータセンタを利用する低クラスユーザが存在する場合には、低クラスユーザを他のデータセンタに移動させた上でそのセンタにユーザを割り当てる処理が行われる。
具体的には空き容量として未使用+低クラスユーザ利用量が利用され、割り当てるデータセンタが決定される。その際に必要な容量を低クラスユーザの利用枠から確保する必要があれば、容量確保のために移動させる低クラスユーザが選択され、それに対して同様の割当判定が再度行われる。この際にさらに他ユーザを移動させた場合には、最終的に未割当ユーザがいなくなるかもしくは空き容量が無くなるまで移動が繰り返される。そして利用するサーバが変更になる全ユーザに対し、サーバ間でのユーザ固有情報の移動および広域負荷分散装置100・センタ内負荷分散装置の設定変更が行われ、ユーザに対して再度広域負荷分散装置100に転送されるようリダイレクトメッセージの送信が行われる。
4.ユーザ増加によるサーバ台数の増加
以下、ユーザ増大に伴うサーバ容量拡大時の処理について説明する。
サーバ能力拡大が発生する要因は大きくふたつある。ひとつは観測された負荷変動と負荷予測に基づいて容量不足になる前に容量を増大させる場合、もうひとつは急激な負荷上昇やサーバ障害等により割当可能な未使用容量が無くなった場合である(後者は可能な限り発生しないように前者で制御する)。
容量が不足しているかの判定は、簡単な方法としては総容量に対して使用済み容量が90%を超えた場合等、割合で判定する方法がある。また負荷予測を行い、近い将来に不足する可能性が高いか否かで判断することも考えられる。
総容量不足が検出された場合、広域負荷分散装置100は、現在必要な容量の計算を行う。最も簡単な実装としては現在の利用量の30%増しを、現在必要な容量とする方法がある。また他にも過去の負荷変動から線形近似およびサーバ追加に必要な時間から将来予測を行う方法も考えられる。
続いて広域負荷分散装置100は、現在の全ユーザが推奨センタへ配置された場合に各データセンタに必要となる容量の計算、および現在各センタに割り当てられているサーバの総容量の計算を行う。そして、広域負荷分散装置100からの指示を受けた管理サーバ50は、必要量に対し割当量が少ない(不足する資源量が多い)データセンタからサーバの追加割当を行っていく。
割当処理完了後、広域負荷分散装置100は、新しいセンタ配置を元に全ユーザの再配置を行う。この処理は、優先度の高いユーザから順に利用可能なセンタを選択していくとこで行われる。この際、同一センタを利用しつづけるユーザに対しては同じサーバを割り当てつづけることで移動対象ユーザを少なくすることができる。
5.ユーザ減少によるサーバ台数の削減
ユーザが減少することで割り当てられたサーバ量が過剰と判断される場合には、余剰容量を減らすためサーバの開放が行われる。容量が過剰かの判定は、簡単なものとしては割当済み容量に対し利用中の容量が50%未満である等、割合で判断する方法がある。また負荷予測によって当面必要な容量に比べて過剰か否かで判断する方法もある。
過剰容量と判断された場合、現在必要な容量の計算が行われる。簡単な方法としては現在の利用量の30%増し等で決定する方法がある。
続いて新サーバ構成に合わせて、広域負荷分散装置100は、ユーザの再配置を行う。この手順はサーバ削減後の状態を前提に割り振り直されること以外サーバ増設のときと基本的に同一である。ユーザの割り振り直し完了後、広域負荷分散装置100の依頼を受けた管理サーバ50は、余剰サーバとして選ばれたサーバの停止処理を行う。
このように、ユーザのデータセンタへの割り振りを動的に決定し、適宜全ユーザの再割り振りを行うことで、ユーザに対する高品質のサービスを継続して提供することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、各負荷分散装置や管理サーバが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散プログラムにおいて、
コンピュータに、
クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断する遅延時間判断手段、
前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する振り分け先決定手段、
前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させるサービス振り分け手段、
として機能させることを特徴とする負荷分散プログラム。
(付記2) 前記遅延時間判断手段は、前記リクエストの送信元アドレスに基づいて前記クライアントが接続されたクライアント接続サーバを特定し、特定されたクライアント接続サーバの位置に基づいて、前記クライアントと各データセンタとの間の処理遅延時間を判断することを特徴とする付記1記載の負荷分散プログラム。
(付記3) 前記遅延時間判断手段は、前記クライアントに対してインターネットへの接続サービスを提供するクライアント接続サーバと前記データセンタとの間の通信遅延時間が予め設定された遅延時間管理テーブルを参照して、前記クライアントと各データセンタとの間の処理遅延時間を判断することを特徴とする付記2記載の負荷分散プログラム。
(付記4) 前記サービス振り分け手段は、前記推奨センタの処理能力に前記リクエストに応じた処理を実行するための余剰資源が無い場合、前記推奨センタの処理能力を増強させることを特徴とする付記1記載の負荷分散プログラム。
(付記5) 前記サービス振り分け手段は、前記推奨センタの処理能力の増強作業が完了するまで、前記リクエストを出力した前記クライアントへのサービスを一時的に他のデータセンタに実行させることを特徴とする付記4記載の負荷分散プログラム。
(付記6) 前記振り分け先決定手段は、許容できる処理遅延時間の最大値が許容可遅延時間として予め設定されており、前記許容可遅延時間が保証され、且つ前記リクエストに応じた処理するための余剰資源があるデータセンタを前記推奨センタとすることを特徴とする付記1記載の負荷分散プログラム。
(付記7) 前記振り分け先決定手段は、サービスで保証する品質を示すサービスクラス毎に前記許容可遅延時間が設定されており、前記クライアントを使用するユーザが属するサービスクラスに基づいて、前記リクエストを振り分ける際の前記許容可遅延時間を決定することを特徴とする付記6記載の負荷分散プログラム。
(付記8) 前記振り分け先決定手段は、サービスで保証する品質を示すサービスクラス毎に優先度が設定されており、前記推奨センタにおいて前記リクエストに応じた処理を実行するための余剰資源がない場合、前記クライアントを使用するユーザの属するクラスよりも優先度が低いクラスのユーザへのサービスを停止させて、資源を確保することを特徴とする付記1記載の負荷分散プログラム。
(付記9) 前記振り分け先決定手段は、所定のタイミングで、前記データセンタそれぞれでサービスの提供を受けている全ユーザの前記データセンタへの再振り分けを実施することを特徴とする付記1記載の負荷分散プログラム。
(付記10) コンピュータにより、複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散方法において、
遅延時間判断手段が、クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断し、
振り分け先決定手段が、前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択し、
サービス振り分け手段が、前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させる、
ことを特徴とする負荷分散方法。
(付記11) 複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散装置において、
クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断する遅延時間判断手段と、
前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する振り分け先決定手段と、
前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させるサービス振り分け手段と、
を有することを特徴とする負荷分散装置。
本実施の形態の概略を示す図である。 本実施の形態のシステム構成例を示す図である。 広域負荷分散装置のハードウェア構成例を示す図である。 広域負荷分散装置の機能を示すブロック図である。 サービス情報表のデータ構造例を示す図である。 ユーザ情報表のデータ構造例を示す図である。 サービス/ユーザ割当表のデータ構造例を示す図である。 ネットワーク遅延算出表のデータ構造例を示す図である。 広域負荷分散装置の処理手順を示すフローチャートである。 ユーザ識別処理の手順を示すフローチャートである。 クラス判定処理の手順を示すフローチャートである。 ネットワーク遅延算出処理の手順を示すフローチャートである。 振り分け先決定処理の手順を示すフローチャートである。 サーバ追加処理の手順を示すフローチャートである。 センタ/サーバ選択処理(その1)の手順を示すフローチャートである。 センタ/サーバ選択処理(その2)の手順を示すフローチャートである。 ユーザ移動処理の手順を示すフローチャートである。 全ユーザ再配置処理の手順を示すフローチャートである。 過不足容量判定処理の手順を示すフローチャートの前半である。 過不足容量判定処理の手順を示すフローチャートの後半である。 センタ内負荷分散装置の処理手順を示すフローチャートである。 サーバの処理手順を示すフローチャートである。 クライアントの処理手順を示すフローチャートである。 サーバ実割当処理の手順を示すフローチャートである。 サーバ起動完了確認処理の手順を示すフローチャートである。 サーバ実割当解除処理の手順を示すフローチャートである。
符号の説明
1 負荷分散装置
1a 遅延時間判断手段
1b 振り分け先決定手段
1c サービス振り分け手段
2a〜2c ネットワーク
3a〜3c クライアント
4a〜4c データセンタ

Claims (10)

  1. 複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散プログラムにおいて、
    コンピュータに、
    クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断する遅延時間判断手段、
    前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する振り分け先決定手段、
    前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させるサービス振り分け手段、
    として機能させることを特徴とする負荷分散プログラム。
  2. 前記遅延時間判断手段は、前記リクエストの送信元アドレスに基づいて前記クライアントが接続されたクライアント接続サーバを特定し、特定されたクライアント接続サーバの位置に基づいて、前記クライアントと各データセンタとの間の処理遅延時間を判断することを特徴とする請求項1記載の負荷分散プログラム。
  3. 前記遅延時間判断手段は、前記クライアントに対してインターネットへの接続サービスを提供するクライアント接続サーバと前記データセンタとの間の通信遅延時間が予め設定された遅延時間管理テーブルを参照して、前記クライアントと各データセンタとの間の処理遅延時間を判断することを特徴とする請求項2記載の負荷分散プログラム。
  4. 前記サービス振り分け手段は、前記推奨センタの処理能力に前記リクエストに応じた処理を実行するための余剰資源が無い場合、前記推奨センタの処理能力を増強させることを特徴とする請求項1記載の負荷分散プログラム。
  5. 前記サービス振り分け手段は、前記推奨センタの処理能力の増強作業が完了するまで、前記リクエストを出力した前記クライアントへのサービスを一時的に他のデータセンタに実行させることを特徴とする請求項4記載の負荷分散プログラム。
  6. 前記振り分け先決定手段は、許容できる処理遅延時間の最大値が許容可遅延時間として予め設定されており、前記許容可遅延時間が保証され、且つ前記リクエストに応じた処理するための余剰資源があるデータセンタを前記推奨センタとすることを特徴とする請求項1記載の負荷分散プログラム。
  7. 前記振り分け先決定手段は、サービスで保証する品質を示すサービスクラス毎に優先度が設定されており、前記推奨センタにおいて前記リクエストに応じた処理を実行するための余剰資源がない場合、前記クライアントを使用するユーザの属するクラスよりも優先度が低いクラスのユーザへのサービスを停止させて、資源を確保することを特徴とする請求項1記載の負荷分散プログラム。
  8. 前記振り分け先決定手段は、所定のタイミングで、前記データセンタそれぞれでサービスの提供を受けている全ユーザの前記データセンタへの再振り分けを実施することを特徴とする請求項1記載の負荷分散プログラム。
  9. コンピュータにより、複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散方法において、
    遅延時間判断手段が、クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断し、
    振り分け先決定手段が、前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択し、
    サービス振り分け手段が、前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させる、
    ことを特徴とする負荷分散方法。
  10. 複数のデータセンタに対してクライアントからの要求を動的に振り分ける負荷分散装置において、
    クライアントから送られたリクエストを解析し、前記クライアントのネットワーク上の位置を識別し、前記クライアントの位置とネットワーク上の各データセンタの位置との通信経路に基づいて、前記クライアントが前記データセンタから応答を受け取るまでの処理遅延時間を前記データセンタ毎に判断する遅延時間判断手段と、
    前記遅延時間判断手段で判断された処理遅延時間に基づいて、前記クライアントに対して少ない処理遅延時間でサービスを提供可能なデータセンタを優先して、推奨センタとして選択する振り分け先決定手段と、
    前記リクエストを出力した前記クライアントへのサービスを、前記推奨センタ内のサーバに実行させるサービス振り分け手段と、
    を有することを特徴とする負荷分散装置。

JP2005150418A 2005-05-24 2005-05-24 負荷分散プログラム、負荷分散方法、及び負荷分散装置 Expired - Fee Related JP4101251B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005150418A JP4101251B2 (ja) 2005-05-24 2005-05-24 負荷分散プログラム、負荷分散方法、及び負荷分散装置
US11/226,217 US20060271700A1 (en) 2005-05-24 2005-09-15 Record medium with a load distribution program recorded thereon, load distribution method, and load distribution apparatus
US12/615,126 US20100057935A1 (en) 2005-05-24 2009-11-09 Record medium with a load distribution program recorded thereon, load distribution method, and load distribution apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005150418A JP4101251B2 (ja) 2005-05-24 2005-05-24 負荷分散プログラム、負荷分散方法、及び負荷分散装置

Publications (2)

Publication Number Publication Date
JP2006332825A JP2006332825A (ja) 2006-12-07
JP4101251B2 true JP4101251B2 (ja) 2008-06-18

Family

ID=37464794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005150418A Expired - Fee Related JP4101251B2 (ja) 2005-05-24 2005-05-24 負荷分散プログラム、負荷分散方法、及び負荷分散装置

Country Status (2)

Country Link
US (2) US20060271700A1 (ja)
JP (1) JP4101251B2 (ja)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US7885859B2 (en) * 2006-03-10 2011-02-08 Yahoo! Inc. Assigning into one set of categories information that has been assigned to other sets of categories
FR2902267A1 (fr) * 2006-06-09 2007-12-14 Thomson Licensing Sas Procedes de reception et d'emission de services de television numerique
US7925757B1 (en) * 2006-07-25 2011-04-12 Hewlett-Packard Development Company, L.P. Determining a portion of required capacity attributed to applications in multiple classes of service
US9990110B1 (en) 2006-08-14 2018-06-05 Akamai Technologies, Inc. Private device cloud for global testing of mobile applications
US9154611B1 (en) 2006-08-14 2015-10-06 Soasta, Inc. Functional test automation for gesture-based mobile applications
US9720569B2 (en) 2006-08-14 2017-08-01 Soasta, Inc. Cloud-based custom metric/timer definitions and real-time analytics of mobile applications
US20080052397A1 (en) 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8028060B1 (en) 2007-01-05 2011-09-27 Apple Inc. Background task execution over a network based on network activity idle time
CA2686564C (en) * 2007-05-15 2018-04-17 American Power Conversion Corporation Methods and systems for managing facility power and cooling
US8447847B2 (en) * 2007-06-28 2013-05-21 Microsoft Corporation Control of sensor networks
US20090119233A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Power Optimization Through Datacenter Client and Workflow Resource Migration
RU2010127309A (ru) * 2007-12-05 2012-01-10 Онлайв, Инк. (Us) Система и способ сжатия интерактивного потокового видео
US8756340B2 (en) 2007-12-20 2014-06-17 Yahoo! Inc. DNS wildcard beaconing to determine client location and resolver load for global traffic load balancing
US7962631B2 (en) * 2007-12-21 2011-06-14 Yahoo! Inc. Method for determining network proximity for global traffic load balancing using passive TCP performance instrumentation
JP4702756B2 (ja) * 2008-05-27 2011-06-15 株式会社アイ・オー・データ機器 中継装置、周辺装置、テレビ受像機、及び、情報処理システム
US8019858B2 (en) * 2008-09-09 2011-09-13 International Business Machines Corporation System and method for utilizing system lag to send facts to an end user
US9367257B2 (en) * 2008-09-11 2016-06-14 Microsoft Technology Licensing, Llc Techniques for resource location and migration across data centers
US9519517B2 (en) * 2009-02-13 2016-12-13 Schneider Electtic It Corporation Data center control
US9778718B2 (en) 2009-02-13 2017-10-03 Schneider Electric It Corporation Power supply and data center control
US8219362B2 (en) 2009-05-08 2012-07-10 American Power Conversion Corporation System and method for arranging equipment in a data center
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US9021018B2 (en) 2009-10-30 2015-04-28 Nec Europe Ltd. Method and system for supporting the selection of communication peers in an overlay network
JP2011113268A (ja) * 2009-11-26 2011-06-09 Nomura Research Institute Ltd クラウドファサード管理システム
FR2955005B1 (fr) * 2010-01-04 2011-12-23 Alcatel Lucent Procede pour activer une carte de preference dans un receptacle deja active, dans un reseau de communication
JPWO2011132662A1 (ja) * 2010-04-20 2013-07-18 日本電気株式会社 配信システム、配信制御装置及び配信制御方法
JP5531278B2 (ja) * 2010-07-15 2014-06-25 株式会社日立ソリューションズ サーバ構成管理システム
US8341462B2 (en) * 2010-07-19 2012-12-25 Soasta, Inc. System and method for provisioning and running a cross-cloud test grid
US9229842B2 (en) 2010-07-19 2016-01-05 Soasta, Inc. Active waterfall charts for continuous, real-time visualization of website performance data
US9251035B1 (en) 2010-07-19 2016-02-02 Soasta, Inc. Load test charts with standard deviation and percentile statistics
US9021362B2 (en) 2010-07-19 2015-04-28 Soasta, Inc. Real-time analytics of web performance using actual user measurements
US9495473B2 (en) 2010-07-19 2016-11-15 Soasta, Inc. Analytic dashboard with user interface for producing a single chart statistical correlation from source and target charts during a load test
US9436579B2 (en) 2010-07-19 2016-09-06 Soasta, Inc. Real-time, multi-tier load test results aggregation
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9654333B2 (en) * 2010-10-06 2017-05-16 Telefonaktiebolaget L M Ericsson (Publ) Application allocation in datacenters
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
JP5609730B2 (ja) 2011-03-18 2014-10-22 富士通株式会社 情報処理プログラム及び方法、転送処理装置
JP5782925B2 (ja) 2011-08-31 2015-09-24 富士通株式会社 情報処理装置、プログラム、および制御方法
US9225944B2 (en) 2011-09-08 2015-12-29 Schneider Electric It Corporation Method and system for displaying a coverage area of a camera in a data center
US9229784B2 (en) * 2011-09-21 2016-01-05 International Business Machines Corporation Determining resource instance placement in a networked computing environment
US9785533B2 (en) 2011-10-18 2017-10-10 Soasta, Inc. Session template packages for automated load testing
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
CN104205746A (zh) * 2012-03-28 2014-12-10 日本电气株式会社 计算机系统和通信路由改变方法
JP5740652B2 (ja) * 2012-03-28 2015-06-24 株式会社日立製作所 計算機システム及びサブシステム管理方法
CN103457967B (zh) * 2012-05-30 2015-05-20 腾讯科技(深圳)有限公司 服务节点切换方法及系统
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
JP5958301B2 (ja) 2012-11-21 2016-07-27 富士通株式会社 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9772923B2 (en) 2013-03-14 2017-09-26 Soasta, Inc. Fast OLAP for real user measurement of website performance
WO2014144837A1 (en) 2013-03-15 2014-09-18 A10 Networks, Inc. Processing data packets using a policy based network path
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
JP6142673B2 (ja) * 2013-05-29 2017-06-07 富士通株式会社 サーバ、データセンタ、システム、および制御方法
US9836330B2 (en) 2013-07-16 2017-12-05 Hitachi, Ltd. Virtual resource management tool for cloud computing service
JP6223151B2 (ja) * 2013-11-28 2017-11-01 日本放送協会 配信サーバ振り分けシステム、配信サーバ管理装置および受信装置
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
WO2015101419A1 (en) * 2014-01-02 2015-07-09 Sky Atlas Iletisim Sanayi Ve Ticaret Anonim Sirketi Method and system for allocating resources to resource consumers in a cloud computing environment
US10601674B2 (en) 2014-02-04 2020-03-24 Akamai Technologies, Inc. Virtual user ramp controller for load test analytic dashboard
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US10346431B1 (en) 2015-04-16 2019-07-09 Akamai Technologies, Inc. System and method for automated run-tme scaling of cloud-based data store
KR102234610B1 (ko) * 2015-06-15 2021-03-31 에스케이텔레콤 주식회사 복수의 통신 인터페이스를 활용한 데이터 수신 경로 스케쥴링 방법 및 장치
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
CN105162665B (zh) * 2015-08-31 2019-01-11 小米科技有限责任公司 服务器接入方法及装置
JP6368699B2 (ja) * 2015-12-09 2018-08-01 日本電信電話株式会社 負荷分散装置および負荷分散方法
US9948521B2 (en) * 2016-01-11 2018-04-17 Equinix, Inc. Architecture for data center infrastructure monitoring
US9866637B2 (en) 2016-01-11 2018-01-09 Equinix, Inc. Distributed edge processing of internet of things device data in co-location facilities
US10162958B2 (en) * 2016-03-15 2018-12-25 Ricoh Company, Ltd. Information processing system, information processing method, and non-transitory computer program product
US10568231B1 (en) 2016-12-30 2020-02-18 Equinix, Inc. Power supply and distribution skid frames for data centers
JP6569692B2 (ja) 2017-02-09 2019-09-04 日本電気株式会社 管理サーバ、通信システム、管理サーバの制御方法、及びプログラム
US10904173B2 (en) 2017-06-09 2021-01-26 Equinix, Inc. Near real-time messaging service for data center infrastructure monitoring data
JP6696941B2 (ja) * 2017-07-12 2020-05-20 日本電信電話株式会社 負荷分散装置および負荷分散方法
CN109547515A (zh) * 2017-09-22 2019-03-29 阿里巴巴集团控股有限公司 一种服务调用方法及相关设备
US10819556B1 (en) 2017-10-16 2020-10-27 Equinix, Inc. Data center agent for data center infrastructure monitoring data access and translation
JP2019101949A (ja) * 2017-12-07 2019-06-24 富士通株式会社 情報処理装置、情報処理システムおよびプログラム
JP7067187B2 (ja) * 2018-03-27 2022-05-16 日本電気株式会社 通信制御装置、通信制御方法、及びプログラム
CN108683613B (zh) * 2018-05-10 2022-05-27 Oppo广东移动通信有限公司 一种资源调度的方法、装置及计算机存储介质
CN110515672B (zh) * 2018-05-21 2023-01-31 阿里巴巴集团控股有限公司 业务数据加载方法、装置以及电子设备
US10715615B1 (en) * 2018-08-01 2020-07-14 The Government Of The United States Of America As Represented By The Secretary Of The Air Force Dynamic content distribution system and associated methods
JP7183762B2 (ja) * 2018-12-19 2022-12-06 日本電信電話株式会社 サーバ選択装置、サーバ選択方法及びプログラム
JP7356026B2 (ja) * 2020-01-17 2023-10-04 富士通株式会社 ロードバランサ配備位置決定方法、及びロードバランサ配備位置決定プログラム
WO2022013907A1 (ja) * 2020-07-13 2022-01-20 日本電信電話株式会社 中継装置、振分装置、中継装置の経路切替方法、振分装置の経路切替方法、及びプログラム
US20220035684A1 (en) * 2020-08-03 2022-02-03 Nvidia Corporation Dynamic load balancing of operations for real-time deep learning analytics
US20220043694A1 (en) * 2020-08-06 2022-02-10 Bank Of America Corporation System and method for allocation of resources within an environment
WO2022038789A1 (ja) * 2020-08-21 2022-02-24 日本電信電話株式会社 データベース選択装置、データベース選択方法及びプログラム
JPWO2022038790A1 (ja) * 2020-08-21 2022-02-24
CN113891387B (zh) * 2021-11-12 2024-03-29 山东亚华电子股份有限公司 一种音视频通信链路的探测方法及设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671225A (en) * 1995-09-01 1997-09-23 Digital Equipment Corporation Distributed interactive multimedia service system
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6466980B1 (en) * 1999-06-17 2002-10-15 International Business Machines Corporation System and method for capacity shaping in an internet environment
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US7523181B2 (en) * 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
WO2001040954A1 (en) * 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for directing a client to a content source
US6920498B1 (en) * 2000-08-31 2005-07-19 Cisco Technology, Inc. Phased learning approach to determining closest content serving sites
US6795858B1 (en) * 2000-12-29 2004-09-21 Cisco Technology, Inc. Method and apparatus for metric based server selection
EP1239369A1 (de) * 2001-03-07 2002-09-11 Siemens Aktiengesellschaft Fehlertolerante Rechneranordnung und Verfahren zum Betrieb einer derartigen Anordnung
US7035933B2 (en) * 2001-09-13 2006-04-25 Network Foundation Technologies, Inc. System of distributing content data over a computer network and method of arranging nodes for distribution of data over a computer network
US7970876B2 (en) * 2002-07-23 2011-06-28 Avaya Communication Israel Ltd. Global server load balancer
US8255407B1 (en) * 2002-11-14 2012-08-28 Hewlett-Packard Development Company, L.P. Matching of data center resource capabilities and resource needs by match-overlapping
KR100570836B1 (ko) * 2003-10-14 2006-04-13 한국전자통신연구원 부하 분산 세션 레이블을 이용한 서버간의 부하 분산장치 및 방법
US7853953B2 (en) * 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers

Also Published As

Publication number Publication date
US20100057935A1 (en) 2010-03-04
JP2006332825A (ja) 2006-12-07
US20060271700A1 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4101251B2 (ja) 負荷分散プログラム、負荷分散方法、及び負荷分散装置
US7065526B2 (en) Scalable database management system
US7584292B2 (en) Hierarchical system configuration method and integrated scheduling method to provide multimedia streaming service on two-level double cluster system
US7933995B2 (en) Computer program and apparatus for controlling computing resources, and distributed processing system
US8635265B2 (en) Communicating between a server and clients
JP4681615B2 (ja) ノードのワークロードの分割
JP5000456B2 (ja) 資源管理システム、資源管理装置およびその方法
CN106302565A (zh) 业务服务器的调度方法及系统
JP2010533399A (ja) 最善のdhcpサーバを見出すためのルータの動的な構成
JP3892002B2 (ja) リソース割り当て方法及びプログラム
US20060200469A1 (en) Global session identifiers in a multi-node system
US8275889B2 (en) Clone-managed session affinity
JP2012043098A (ja) 管理装置,ファイルサーバシステム,処理方法及び管理プログラム
CN114938375A (zh) 一种容器组更新设备及容器组更新方法
EP1816565B1 (en) Computer system and information processing method
JP3782429B2 (ja) 負荷分散システム及び計算機管理プログラム
KR102289100B1 (ko) 빅데이터 분석을 위한 컨테이너 기반의 클러스터 구축 방법 및 클러스터 장치
JP2005149283A (ja) 情報処理システム、情報処理システムの制御方法及びプログラム
KR100618159B1 (ko) 정책 쿼럼 기반의 그리드 자원 관리 시스템 및 그 방법
US12028269B2 (en) Method for optimal resource selection based on available GPU resource analysis in large-scale container platform
KR101146742B1 (ko) SaaS의 분산된 세션 관리 방법 및 그 관리 시스템
CN113973092A (zh) 链路资源调度方法、装置、计算设备及计算机存储介质
JP2014049057A (ja) サーバ管理方法、情報処理装置、およびプログラム
JP2005352689A (ja) 対話型サービス配置方法、対話型サービス配置プログラムおよびその記録媒体、ならびに、サービスブローカ装置
JP2008225793A (ja) 負荷分散システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080305

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: 20080318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140328

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees