JP2013532333A - サーバクラスター - Google Patents

サーバクラスター Download PDF

Info

Publication number
JP2013532333A
JP2013532333A JP2013514510A JP2013514510A JP2013532333A JP 2013532333 A JP2013532333 A JP 2013532333A JP 2013514510 A JP2013514510 A JP 2013514510A JP 2013514510 A JP2013514510 A JP 2013514510A JP 2013532333 A JP2013532333 A JP 2013532333A
Authority
JP
Japan
Prior art keywords
server
virtual
servers
virtual server
neighboring
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.)
Granted
Application number
JP2013514510A
Other languages
English (en)
Other versions
JP5599943B2 (ja
Inventor
ビン フ
フェンユ マオ
ヨンミン ワン
ルオユアン ジャン
Original Assignee
ノキア シーメンス ネットワークス オサケユキチュア
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 ノキア シーメンス ネットワークス オサケユキチュア filed Critical ノキア シーメンス ネットワークス オサケユキチュア
Publication of JP2013532333A publication Critical patent/JP2013532333A/ja
Application granted granted Critical
Publication of JP5599943B2 publication Critical patent/JP5599943B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/1034Reaction to server failures by a load balancer
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】サーバ群によって提供されるサービスの高利用可能性を低コストで達成することができるサーバクラスターを提供すること等。
【解決手段】クラスター内のサーバ間の負荷バランシングを可能にするサーバクラスターを説明する。クラスター内のサーバのうちの少なくとも一部は、複数の仮想サーバに分割され、各仮想サーバは、近隣サーバに関連付けられ、近隣サーバは、この仮想サーバのバックアップとして作用する。特定のサーバの各仮想サーバの近隣サーバは、仮想サーバとは異なる物理サーバの一部であり、物理サーバが使用不可の場合には、この物理サーバの仮想サーバの負荷は、いくつかの異なる物理サーバ間に分割され、それによっていずれかの特定の物理サーバが過負荷になる可能性を低減するようになっている。
【選択図】図2

Description

本発明は、サーバのクラスターに関する。特に、本発明は、コンピュータサーバクラスターにおける負荷バランシング(負荷分散)に関する。
情報技術及び電気通信業界では、システムは、通常は要求メッセージを受け取り、要求に応答して何らかの処理を実行する。多くのこのようなシステムは、拡張可能であるように設計されている。拡張可能なシステムは、より高性能のハードウエア及びソフトウエアで新しいシステムを設計して実施するよりも、既存システムに付加的モジュールを追加することによって性能を改善することができる。
図1は、参照番号1によって一般的に示す拡張可能なシステムの例である負荷バランシングクラスターのブロック図である。クラスター1は、スケジューラー2と、第1サーバ4と、第2サーバ6と、第3サーバ8とを含む。サーバの数は、システム1の所要の又は望ましい容量に従って増減することができる。
使用中は、スケジューラー2はいくつかの要求を受け取る。要求は、スケジューラー2によってサーバ4、6、及び8のうちの1つ又はそれよりも多くに経路指定される。サーバは、サーバ要求によって必要にされる実際のサービス処理を担う(要求のサービス提供の性質は、本発明の原理には関係ない)。
要求の経路指定を実施するために、スケジューラー2は、サーバ間でサービス要求をスケジュールする必要がある負荷バランシング機構を含む。負荷バランシング機構の目的は、サーバクラスターを形成するサーバ4、6、及び8の各々を十分に利用すること、並びにサーバの一部が相対的にビジーで、他は相対的にアイドルであるという状況を回避することである。無作為抽出、ラウンドロビン、最小ビジーなどのような多くのスケジューリング方法が当業技術で公知である。当業者は、使用可能な多くの代替的な負荷バランシングアルゴリズムを認識されると考えられる。
用語「サーバクラスター」は、ローカルネットワークによって接続した及び/又は物理的又は論理的に同一場所に配置されたサーバを表現するのに多くの場合に用いられる。本明細書では、用語「サーバクラスター」及び「クラスター」は、幅広い意味で使用し、サーバが分散される、例えば、広域ネットワーク(WAN)にわたって又は「インターネット」上で分散されるシナリオを包含すると読み取るべきである。
データベースクエリのようなステートレスアプリケーションの場合、システム1内のスケジューラー2の目的は、比較的分かりやすく、すなわち、サーバ4、6、及び8の間で均等に負荷の均衡を取ることである。このようなシステムでは、到着する要求がサーバによって処理された状態で、この特定の要求は完了し、この要求に関連して更に別のアクションは必要ない。
しかし、多くのネットワークアプリケーションの場合、クライアント及びサーバは、複数の要求及び応答のやり取りの間に進行中のステータスを維持するために何らかの種類のコンテクストを確立する。アプリケーションレベルでは、このコンテクストは、セッションと呼ぶことができ、インターネットプロトコル(IP)レベルでは、このコンテクストは、「接続」と呼ぶことができる。コンテクスト、セッション、及び接続という用語は、本明細書ではほぼ同義的に使用する。コンテクストを伴うネットワークアプリケーションの場合、拡張性、負荷バランシング、及び高利用可能性を備えた高収量のシステムアーキテクチャを提供するのは、(図1に示すクラスターのような)クラスターに対してより多くの課題がある。例えば、特定のコンテクストに属する要求が1よりも多く存在する場合がある。これらの要求がクラスター内の1つ又は異なるサーバで処理される時に、このコンテクストにアクセスして正確に修正すべきである。望ましい負荷平衡(バランス)を達成するために、スケジューラー2は、要求を転送する際に(サーバ4、6、及び8の相対的負荷を考慮することに加えて)宛先サーバに対しての関連コンテクストのアクセスし易さを考慮すべきである。代替的に、サーバが何らかの機構を利用して、スケジュールされたサーバに対しての要求のコンテクストのアクセスし易さを保証することができる。
アプリケーションがコンテクストデータを有するサーバクラスターを実施するための3つの方法を以下で説明する。第1の方法(多くの場合に「スティッキーセッション」と呼ばれる)では、特定のセッションの全ての要求を同じサーバに送信する必要があり、このサーバがセッション自体を維持する。第2の方法は、1サーバ内のセッションを同じクラスター内の残りの全てのサーバに対して複製するものである。従って、要求は、処理のためにあらゆるサーバに対してスケジュールすることができる。第3の方法は、セッションを格納するために、サーバが「ストレージエリアネットワーク(SAN)」のような共有ストレージを使用することを可能にすることである。クラスター内のいずれのサーバも、この共有ストレージ内のセッションにアクセス可能である。いずれのサーバも、要求の関連セッションにアクセス可能なので、いずれのサーバに対しても要求をスケジュールすることができる。
第1の(スティッキーセッション)方法では、サーバ4、6、及び8は簡単であるが、スケジューラー2は、セッション情報を維持し、様々なセッションの要求を区別する必要がある。セッションの数が非常に膨大な場合、スケジューラー2は、セッションのテーブルを格納し、各要求のセッションを識別するための検索機能を提供するのに十分に強力である必要がある。スケジューラーの背後のサーバの性能が非常に高くなることがあるので、スケジューラー2は、システム1において障害になる場合がある。
第2の(セッション複製)方法では、スケジューラーは、コンテクスト情報を格納する必要はなく、(上述の無作為抽出、ラウンドロビン、及び最小ビジーアルゴリズムのうちの1つのような)何らかの簡単なアルゴリズムによって選択されたサーバに単に要求を転送するだけなので、スケジューラー2は簡単である。しかし、サーバ4、6、及び8に関しては、より多くの要件が存在する。サーバは、フルメッシュ複製を要求する相互間のセッションの複製を管理する。この複製は、高いネットワーク帯域幅及び計算機能のオーバヘッドを示唆する。高収量システムでは、コンテクスト情報は膨大になる場合がある。更に、クラスターシステムは、要求されるフルメッシュ複製により、容易に拡張可能ではない。
第3の(セッション共有)方法では、スケジューラー2は簡単であるが、セッション情報を格納して管理するために、高価な高性能SAN(図1には図示せず)が必要である。非常に頻繁なコンテクスト修正を要する高収量アプリケーションの場合、セッション情報による共有セッション方法は、十分な性能をもたらすことはできない。このような設定では、SANへのアクセスが、システム1において障害になる場合がある。
クラスター内のサーバの障害の場合に、更に別の問題が発生する。この場合には、サーバによって処理中の要求は、クラスター内の残りのサーバ間で再割り当てする必要がある。この処理は、スケジューラー2によってシステム1内で処理される。例示的に、第1サーバ4に障害が生じると仮定する。サーバによって処理中のセッションは、第2サーバ6及び/又は第3サーバ8に再割り当てする必要がある。セッションを処理するために次に利用可能なサーバを単に用いるような一部の単純な機構では、クラスター内の別のサーバの障害の場合に1サーバが過負荷になることがある。
本発明は、上記で概要を示した問題の少なくとも一部に対処することを目指すものである。
本発明は、独立請求項に示すような装置及び方法を提供する。本発明は、以下の利点の少なくとも一部を提供することを目指すものである。
・サーバ群によって提供されるサービスの高利用可能性を低コストで達成すること。
・適度のメモリ要件による要求スケジューリングのための高速検索。
・デバイスの高利用率。
・高価なストレージエリアネットワーク(SAN)媒体及びネットワークが要求されないこと。
・必要なセッション複製が限定されること。
本発明は、要求を受け取る段階と、要求を転送するための第1仮想サーバを選択する段階とを含む方法を提供し、第1仮想サーバは、複数の(物理)サーバのうちの1つによって提供され、(物理)サーバのうちの少なくとも一部(全ての場合もある)は、複数の仮想サーバを含み又は提供し、選択した第1仮想サーバが要求を受け取ることができない場合には、要求を第1仮想サーバの近隣仮想サーバに転送し、第1仮想サーバの近隣仮想サーバは、第1仮想サーバとは異なるサーバの一部である。従って、第1仮想サーバの近隣サーバは、このサーバのバックアップとして作用する。本方法は、第1仮想サーバに要求を転送し、又は転送するよう試みる段階を含むことができる。
本発明はまた、要求を受け取るための入力と、要求を第1仮想サーバに転送する(又は転送するよう試みる)ための出力とを備えた(スケジューラーのような)装置を提供し、第1仮想サーバは、複数のサーバのうちの1つによって提供され、サーバのうちの少なくとも一部は、複数の仮想サーバを提供し、装置は、第1仮想サーバを選択するためのプロセッサを含み、選択した第1仮想サーバの障害(例えば、第1仮想サーバが一部を形成するサーバの障害)の場合には、プロセッサが第1仮想サーバの近隣(仮想)サーバを選択し、スケジューラーの出力は、要求を近隣サーバに転送し、第1仮想サーバの近隣サーバは、第1仮想サーバとは異なるサーバによって提供される仮想サーバである。近隣サーバは、第1仮想サーバと同時に選択することができる(第1仮想サーバが利用不可又は作動不能な場合に選択するのではなく)。
(物理)サーバの各仮想サーバは、異なる他の(物理)サーバによって提供される近隣サーバを有することができる。従って、特定の物理サーバが作動不能になる場合、物理サーバによって提供される様々な仮想サーバの負荷は、多くの異なる他のサーバ間に分散される。
本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りのサーバの各仮想サーバは、異なる他の(物理)サーバによって提供される近隣サーバを有する。従って、第1物理サーバが作動不能になる場合にこのサーバの負荷を分散させるだけでなく、第2物理サーバも作動不能になる場合にも、第2物理サーバによって提供される様々な仮想サーバの負荷を多くの異なる他のサーバ間に分散する。
代替的に、本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りの(物理)サーバの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、あらゆる残りの仮想サーバが各々、異なる他のサーバによって提供される近隣サーバを有する。この状況は、例えば、上記に示した前者の条件が数学的に可能でない場合に生じることがある。
要求に関連付けられたセッション情報は、選択した第1仮想サーバに及びこの選択した第1仮想サーバの近隣サーバに送信することができる。例えば、本発明の装置の出力は、要求に関連付けられたセッション情報を選択した第1仮想サーバに及び選択した第1仮想サーバの選択した近隣に提供することができる。従って、仮想サーバが利用不可であり、この仮想サーバに割り当てられたであろうタスクを代わりにこの仮想サーバの近隣サーバに送信する場合には、この近隣サーバが既にこのタスクに関連するセッション情報へのアクセスを有する。従って、上述のようなフルメッシュ複製、又は高性能SANの提供、又は何らかの他のストレージ機構を必要とすることなく、コンテクストが関連付けられた要求を容易に近隣サーバに再割り当てすることができる。
本発明はまた、複数の仮想サーバを含むサーバを提供し、サーバは、複数のサーバを含むシステムの一部を形成し、複数のサーバのうちの少なくとも一部(全ての場合もある)は、複数の仮想サーバを含み、サーバは、各仮想サーバが近隣仮想サーバに関連付けられるようになっており、各仮想サーバの近隣サーバは、異なるサーバの一部であり、仮想サーバの近隣サーバは、このサーバのバックアップとして作用する。
要求で第1仮想サーバに提供されるセッションデータは、第1仮想サーバの近隣仮想サーバに対して複製することができる。従って、上述のようなフルメッシュ複製、又は高性能SANの提供、又は何らかの他のストレージ機構を必要とすることなく、コンテクストが関連付けられた要求を容易に近隣サーバに再割り当てすることができる。
本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りのサーバの各仮想サーバが、異なる他の(物理)サーバによって提供される近隣サーバを有する。
本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りの(物理)サーバの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、サーバのあらゆる残りの仮想サーバの各々は、異なる他のサーバによって提供される近隣サーバを有する。
本発明の多くの形態において、以下の条件の1つ又はそれよりも多くが適用される。
1.あらゆる仮想サーバ/ノード(ピア)に関して、この仮想サーバ及びこの近隣(後継)は、異なる(物理)サーバによって提供される。
2.同じ物理サーバ内のあらゆる2つの仮想サーバ/ノード(ピア)に関して、これらの近隣は、異なる他の物理サーバ内に位置する。
3.いずれか1つの物理サーバに障害が生じた後でも、あらゆる仮想サーバ/ノードに関して、このノードの仮想サーバ及びこの近隣は、依然として異なる物理サーバ内に位置する。
4.2つの物理サーバが故障した場合には、あらゆる仮想サーバ/ノード(ピア)に関して、この仮想サーバ及びこの近隣は、異なる物理サーバによって提供される。
本発明は、複数のサーバを含むシステムを更に提供し、サーバのうちの少なくとも一部(全ての場合もある)は、複数の仮想サーバを含み、各仮想サーバは、近隣サーバに関連付けられ、各仮想サーバの近隣サーバは、異なる他のサーバの一部であり、仮想サーバの近隣サーバは、このサーバのバックアップとして作用する。
本発明の多くの形態において、サーバの各々は、複数の仮想サーバを含む(又は提供する)。
本発明の多くの形態において、特定の(物理)サーバによって提供される複数の仮想サーバの各々は、異なる他のサーバによって提供される近隣サーバを有する。従って、特定の物理サーバが作動不能になる場合、この物理サーバによって提供される様々な仮想サーバの負荷は、多くの異なる他のサーバ間に分散される。
システムは、スケジューラーを更に含み、スケジューラーは、要求を受け取るための入力と、要求を第1仮想サーバに転送するための出力と、第1仮想サーバを選択するためのプロセッサとを含む。更に、選択した仮想サーバの障害(例えば、仮想サーバが一部を形成するサーバの障害)の場合には、プロセッサが第1仮想サーバの近隣サーバを選択することができ、スケジューラーの出力は、要求を近隣サーバに転送することができる。
要求で第1仮想サーバに提供されるセッションデータは、第1仮想サーバの近隣仮想サーバに対して複製することができる。
本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りのサーバの各仮想サーバが、異なる他の(物理)サーバによって提供される近隣サーバを有する。
本発明の一部の形態では、(物理)サーバが作動不能な場合に、残りの(物理)サーバの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、サーバのあらゆる残りの仮想サーバの各々は、異なる他のサーバによって提供される近隣サーバを有する。
本発明は、要求を受け取るためのコード(又は何らかの他の手段)と、要求を転送するための第1仮想サーバを選択するためのコード(又は何らかの他の手段)とを含むコンピュータプログラムを更に含み、第1仮想サーバは、複数の(物理)サーバのうちの1つによって提供され、(物理)サーバのうちの少なくとも一部(全ての場合もある)は、複数の仮想サーバを含み又は提供し、コンピュータプログラムは、更に、選択した第1仮想サーバが要求を受け取ることができない場合には、要求を第1仮想サーバの近隣仮想サーバに転送するためのコード(又は何らかの他の手段)を含み、第1仮想サーバの近隣仮想サーバは、第1仮想サーバとは異なるサーバによって提供される。コンピュータプログラムは、コンピュータと共に使用するために内部に具現化されたコンピュータプログラムコードを有するコンピュータ可読媒体を備えたコンピュータプログラム製品とすることができる。
付番された以下の概略図面を単に例示的に参照して本発明の例示的な実施形態について以下で説明する。
クラスターの複数のサーバ間で要求を割り当てるための公知のシステムのブロック図である。 本発明の態様によるシステムのブロック図である。 本発明の態様による仮想サーバ配備を示す図である。 仮想サーバの一部が作動不能な場合の図3の仮想サーバ配備を示す図である。 本発明の更に別の態様による仮想サーバ配備を示す図である。 仮想サーバの一部が作動不能な場合の図5の仮想サーバ配備を示す図である。 仮想サーバの一部が作動不能な場合の図5及び6の仮想サーバ配備を示す図である。
図2は、参照番号10によって一般的に示す本発明の態様によるシステムのブロック図である。
システム10は、スケジューラー12と、第1サーバ16と、第2サーバ17と、第3サーバ18とを含む。第1サーバ16は、第1仮想サーバ21及び第2仮想サーバ22を含む。第2サーバ17は、第1仮想サーバ23及び第2仮想サーバ24を含む。第3サーバ18は、第1仮想サーバ25及び第2仮想サーバ26を含む。
システム10において、スケジューラー12は、到着する要求を受け取り、要求を何らかのアルゴリズムに従ってサーバに転送する責任を担う。仮想サーバ21から26には、アイデンティティ(ID)が割り当てられる。仮想サーバ21から26は、原理上、いずれのアルゴリズムも実施することができ、仮想サーバ21から26によって実施されるアルゴリズムは、本発明には関係ない。
スケジューラー12は、要求をサーバ21から26までに転送し、各サーバの負荷の均衡を保つ。スケジューラーは、高速の要求転送をもたらすために、宛先サーバの検索が簡単なように設計すべきである。同様に、サーバに障害が生じた場合にバックアップサーバを選択するための高速で簡単なアルゴリズムを提供すべきである。「通常の」宛先(仮想)サーバ、及び通常の宛先サーバの障害の場合のバックアップ(仮想)サーバの両方を選択するためのアルゴリズムについて、以下で更に説明する。最後に、スケジューラー12は、あまり多くのメモリを必要とすべきではない。
例として、ハッシュベースの検索を提供することができる。ハッシュベースの検索方法では、スケジューラー12で要求を受け取ると、スケジューラーが、クライアントのIPアドレス及びポート番号、SIPでのクライアントのURL、GTPでのTEIDなどのような要求メッセージから取得可能なセッションの何らかの識別子に基づいてハッシュ値を計算する。各サーバ(又は仮想サーバ)は、値空間全体の一連の値に責任を有するので、スケジューラーは、いずれのサーバの範囲が計算したこのハッシュ値を含むかを見出して、このサーバに要求を転送することになる。
適切なハッシュ関数により、値空間においてハッシュ値の一様分布を得ることができる。従って、サーバの値範囲は、各サーバの実際の処理機能に合うように選択し又は調整することさえ可能である。負荷をセッション番号で測定すると、ハッシュ値に基づいて要求をスケジュールすることによって負荷バランシングが達成される。
所定の値と適合する範囲を見出すための詳細な検索方法に関しては、線形検索、バイナリ検索、平衡バイナリ検索ツリーなどのような使用することができる多くの利用可能なアルゴリズムが存在する。
別の代替的な検索方法は、セッション識別子のハッシュ値をインデックスとして利用して、担当する宛先サーバを検索するものである。正確なハッシュ値をインデックスとして用いて、各インデックス値毎に対応するサーバ情報を格納するための大型のテーブルを構築する。しかし、この方法は、メモリ要件のために一般的には好ましくない。このインデックステーブルのサイズは、インデックス値のいくつかを無視すれば、低減することができる。例えば、インデックス内の一部のプレフィクスビットのみを用いることによってこのテーブルのサイズを低減することができる。
ハッシュ値のプレフィクスを用いることは、ID空間を小さいセグメントに分割するのに等しく、このインデックステーブル内の各エントリがセグメントを表している。プレフィクスビットの数により、値空間内の対応するセグメントのサイズが決まる。これらのセグメントを「メタセグメント」と呼ぶ。各サーバの範囲が、1つ又はそれよりも多くのセグメントのみを包含する場合、所定の値による包含する範囲の検索のタスクは、ハッシュ値をインデックスとして用いてインデックステーブルを検索し、包含するメタセグメントを見出すことになる。
より詳細には、範囲の検索は2段階から構成される。第1段階は、セッション識別子のハッシュ値をインデックスとして用いて、適合するメタセグメントを見出すことである。第2段階では、メタセグメントに対応するサーバ範囲を見出す。従って、別のサーバテーブルがサーバの情報を格納する必要がある。インデックステーブル内のメタセグメントの各エントリは、サーバテーブル内の包含するサーバ範囲を表すエントリを指すことになる。従って、ハッシュ値から何らかのサーバ範囲へのマッピングは、2つの検索テーブルを用いて行うことができる。
上述のように、サーバ16、17、及び18の各々が複数の仮想サーバに分割される。仮想サーバの各々には、通常はアイデンティティ(ID)が与えられる。
図3は、参照番号20によって一般的に示す仮想サーバ21から26の円形の配置を示している。図3の頂点から開始して、円を時計回りに移動すれば、仮想サーバは、以下の順序で与えられる:
1.第1サーバ16の第1仮想サーバ21
2.第2サーバ17の第1仮想サーバ23
3.第3サーバ18の第1仮想サーバ25
4.第2サーバ17の第2仮想サーバ24
5.第1サーバ16の第2仮想サーバ22
6.第3サーバ18の第2仮想サーバ26
本発明では、近隣サーバは、時計回り方向の次の仮想サーバとして定義される。従って、仮想サーバ23は仮想サーバ21の近隣であり、仮想サーバ25は仮想サーバ23の近隣であり、仮想サーバ24は仮想サーバ25の近隣であり、仮想サーバ22は仮想サーバ24の近隣であり、仮想サーバ26は仮想サーバ22の近隣であり、仮想サーバ21は仮想サーバ26の近隣である。
本発明は、1つのサーバ内のセッションを自己の次の近隣サーバに対して複製する。近隣サーバを定義することにより、特定のサーバ(又は仮想サーバ)によるセッションの処理は、第1サーバの障害の場合に近隣サーバによって容易に引き継ぐことができる。このフェイルオーバーでは、スケジューラーが、この障害期間中に要求を正しい宛先に転送する必要がある。
当然ながら、近隣サーバは、別の方法で定義することができる。重要な点は、スケジューラー12が特定のサーバの近隣を決めるのが容易でなければならないことである。
近隣をバックアップとして使用する場合、過負荷状況が発生する可能性がある。第1サーバAに障害が生じると、サーバAが処理する要求が、サーバAのバックアップサーバ、すなわち、サーバBに配送されることになる。従って、サーバAの負荷が、サーバBの負荷に追加されることになる。サーバBが過負荷にならないよう保証するための最も簡単な機構は、障害前のサーバA及びBの通常の負荷が、これらのサーバの容量全体の50%未満になるよう保証することである(これらのサーバに関して同様の容量を前提とする)。当然ながら、これは、かなりの容量を無駄にする。複数の仮想サーバの使用及び図3に示す配置は、以下で説明するようにこの状況を改善する。
図4は、円形に分散された仮想サーバ21から26の配置を示しており、参照番号20’によって示している。配置20’が、図3を参照して上記で説明した配置20と異なるのは、サーバ16が機能していない点である。従って、(物理サーバ16によって提供される)仮想サーバ21及び22が機能しておらず、配置20’には点線に示している。
上述の近隣原理によれば、仮想サーバ21に対して行われたであろう要求は、ここでは仮想サーバ23に経路指定される(次の仮想サーバは配置20を時計回りに移動する)。仮想サーバ22に対して行われたであろう要求は、ここでは仮想サーバ26に経路指定される(次の仮想サーバは配置20を時計回りに移動する)。この経路指定は、スケジューラー12によって処理される。当然ながら、近隣として、仮想サーバ23及び26は、サーバ21及び22にそれぞれ関連するコンテクストデータを既に受け取っていることになる。
仮想サーバ23は、第2サーバ17の一部であり、仮想サーバ26は、第3サーバ18の一部である。従って、サーバ16の仮想サーバに対して行われたであろう要求は、サーバ17及び18の仮想サーバ間に分割される。従って、この状況では、機能している各物理バックアップサーバが、障害のあったサーバから過度の負荷を引き継ぐことはない。各物理サーバが自己の負荷を約60%保持する場合に、障害のあったサーバの負荷が自己のバックアップサーバの負荷に追加されると、負荷全体は約90%である(サーバに関して同様の容量及び負荷を前提とする)。
原理上、物理サーバ毎により多くの仮想サーバを使用して、障害のあったサーバの負荷をより多くの他の物理サーバに更に分散させることができる。従って、通常の状況で、各サーバに関して許容可能な負荷を更に引き上げることができる。
(サーバ16のような)サーバに障害が生じると、スケジューラー12は、サーバ(又はこの物理サーバの仮想サーバ)の要求をこのバックアップ近隣サーバに転送するために迅速に対応する必要がある。ここで、サーバは仮想サーバであり、又は単なるサーバIDと見なすことができる。
線形範囲検索アルゴリズムでは、要求が、現在到達可能でない特定のサーバ範囲に適合することが見出される場合、スケジューラーは、線形テーブル内で1エントリ下に単に移動して、障害のあったサーバの近隣に関する情報を得る必要がある。サーバの情報は、担当する範囲の昇順で配置されると仮定する。
バイナリ検索及びインデックステーブル検索アルゴリズムでは、サーバの情報は、サーバテーブル内に配置することができ、このエントリは、範囲の順序である。検索の結果は、サーバテーブル内の適切なエントリへのポインタである。
従って、要求の検索後に最終ポインタ値をインクリメントすることにより、近隣サーバのエントリを取得することになる。
当然ながら、他のアルゴリズムが可能である。
図4を参照して上述したように、本発明は、あらゆる物理サーバの全ての仮想サーバに関して、バックアップ近隣が異なる他の物理サーバに属する必要がある配置を提供する。それによって物理サーバに障害が生じた場合、障害のあった物理サーバによって提供される仮想サーバの負荷が複数のバックアップサーバ間に分割されることを保証する。図5は、この条件を満たし、更に別の条件も満たす配置を示しており、参照番号30によって一般的に示している。更に別の条件は、いずれか1つの物理サーバに障害が生じた場合に、残されたいずれかの物理サーバの仮想サーバに関して、バックアップ近隣も異なる他の物理サーバに属する必要があるという要件である。
図5に示す配置30は、第1サーバの第1仮想サーバ31及び第2仮想サーバ32と、第2サーバの第1仮想サーバ33及び第2仮想サーバ34と、第3サーバの第1仮想サーバ35及び第2仮想サーバ36と、第4サーバの第1仮想サーバ37及び第2仮想サーバ38と、第5サーバの第1仮想サーバ39及び第2仮想サーバ40とを含む。図5には仮想サーバ31から40を示しているが、明確にするために、これらの仮想サーバを提供する物理サーバは、スケジューラーと同様に省略する。
図5の頂点から開始して、円を時計回りに移動すれば、仮想サーバ31から40は、以下の順序で配置される。
1.仮想サーバ31。
2.仮想サーバ33が仮想サーバ31の近隣になるような仮想サーバ33。
3.仮想サーバ35が仮想サーバ33の近隣になるような仮想サーバ35。
4.仮想サーバ37が仮想サーバ35の近隣になるような仮想サーバ37。
5.仮想サーバ39が仮想サーバ37の近隣になるような仮想サーバ39。
6.仮想サーバ32が仮想サーバ39の近隣になるような仮想サーバ32。
7.仮想サーバ38が仮想サーバ32の近隣になるような仮想サーバ38。
8.仮想サーバ34が仮想サーバ38の近隣になるような仮想サーバ34。
9.仮想サーバ40が仮想サーバ34の近隣になるような仮想サーバ40。
10.仮想サーバ36が仮想サーバ40の近隣になり、仮想サーバ31が仮想サーバ36の近隣になるような仮想サーバ36。
図2から4を参照して上記で説明したシステム10と同様に、仮想サーバ31から40は、仮想サーバの一部を提供する物理サーバのいずれか1つが作動不能な場合に、現在作動不能な仮想サーバの各々が異なる物理サーバの仮想サーバによってバックアップされるように配置する。
図6は、参照番号30’によって一般的に示す配置を示している。配置30’は、配置30に類似し、(点線に示した)仮想サーバ31及び32が作動不能な点だけが異なる。仮想サーバ31及び32はいずれも、第1サーバ(図示せず)によって提供され、従って、配置30’は、第1サーバが作動不能な状況を示している。
上述のように、仮想サーバが作動不能な場合、近隣仮想サーバが使用される。従って、仮想サーバ31に転送されたであろう要求は、ここでは仮想サーバ33に転送され、仮想サーバ32に転送されたであろう要求は、ここでは仮想サーバ38に転送される。仮想サーバ33は第2サーバによって提供され、仮想サーバ38は第4サーバによって提供され、従って、現在作動不能な第1サーバの負荷が2つの異なる他のサーバに分散される。
従って、(配置10と同様に)配置30は、いずれかの物理サーバの全ての仮想サーバに関して、バックアップ近隣が異なる他の物理サーバに属すようになっている。しかし、上記で指摘したように、配置30は、いずれか1つのサーバに障害が生じた場合に、残されたいずれかの物理サーバの仮想サーバに関して、バックアップ近隣も異なる他の物理サーバに属する必要があるので更に踏み込んだものになっている。
図7は、参照番号30’’によって一般的に示す配置を示している。参照番号30’’は、配置30及び30’に類似し、仮想サーバ31、32、35、及び36(点線で図示)が作動不能な点だけが異なる。仮想サーバ31及び32はいずれも第1サーバ(図示せず)によって提供され、仮想サーバ35及び36はいずれも第3サーバ(図示せず)によって提供される。従って、配置30’’は、第1及び第3サーバが作動不能な状況を示している。
従って、仮想サーバ35に転送されたであろう要求は、ここでは仮想サーバ37に転送され、仮想サーバ36に転送されたであろう要求は、ここでは仮想サーバ33に転送される。仮想サーバ37は第4サーバによって提供され、仮想サーバ33は第2サーバによって提供され、従って、現在作動不能な第3サーバの負荷が2つの異なる他のサーバに分散される。
上述の近隣原理は、以下に説明するように一般化することができる。
各物理サーバがN個の仮想サーバを有し、合計でm個の物理サーバが存在すると仮定する。
上述の第1要件(配置10及び30の両方によって満たされる)は、以下のように規定することができる。
・いずれかの物理サーバのN個の全ての仮想サーバに関して、これらのバックアップ近隣は、異なる他のm個の物理サーバに属する必要がある。
上述の第2要件(配置30によって満たされるが、配置10によっては満たされない)は、以下のように規定することができる。
・いずれか1つの物理サーバに障害が生じた場合に、残りの物理サーバのいずれかのN個の仮想サーバに関して、バックアップ近隣は、異なる他のm個の物理サーバに属する必要がある。
第2の条件を満たすことが数学的に可能でないことがある。例えば、N+1=mの場合、障害が生じると、物理サーバの最大数が関わることになる。従って、バックアップ処理を要する要求は、作動中の他のN個の物理サーバの全ての助けを得ることになる。各物理サーバは、最小数の追加要求を引き受けるに過ぎない。
第2の条件を満たすことができない場合には、以下のように言い換えることができる。
・いずれか1つの物理サーバに障害が生じた場合に、いずれかの残りの物理サーバのN個の仮想サーバに関して、これらのバックアップ近隣は、異なる他のm−1個の物理サーバに属する必要がある。従って、同じ物理サーバをバックアップ近隣として共有することができる1物理サーバの2つの仮想サーバが存在する。
ここで、ID空間の円形内に仮想サーバ配備の一部の例を列挙する。状況の各々は、上述の第1及び第3要件を満たす。物理サーバ当たり4、8、及び16仮想サーバを有する例について説明する。当然ながら、N及びmの別の組合せの仮想サーバ配備のソリューションは、当業者には容易に明らかであろう。
仮想サーバを表すために数字を使用し、数字の値は、物理サーバを表している。数字の行を用いて、空間円内の仮想サーバの実際の配置を示し、数字の行を1つずつ時計回りに円に沿って配置すると見なすことができる。
5つの物理サーバが存在する場合、これらに0から4の付番を行う。各物理サーバは4つの仮想サーバを有するので(N+1=mになるように)、各値は、4回出現することになる。以下の表は、上述の第1及び第3要件を満たすソリューションを示している。
例えば、物理サーバ1に障害が生じた場合、4つの仮想サーバがバックアップを提供する必要がある。第1行では、バックアップ仮想サーバは物理サーバ2に属す。第2行では、バックアップ仮想サーバは物理サーバ4に属す。第3行では、バックアップ仮想サーバは物理サーバ0に属す。第4行では、バックアップ仮想サーバは物理サーバ3に属す。4バックアップ仮想サーバ全てが、上述の第1要件で上述のように、4つの異なる物理サーバに属すことを認識することができる。他の物理サーバの障害も依然としてこの要件を満たす。
更に、物理サーバ1の障害後、仮想サーバの配置は以下の通りである。
この状況では、第3要件を満たす。例えば、物理サーバ0の場合、この近隣は2、3、及び4を含み、物理サーバ2に属す2つの仮想サーバが存在する。
9つの物理サーバが存在する場合、0から8の付番を行い、各物理サーバは8仮想サーバを有し、これはすなわち、仮想サーバ配備の表に8行が存在することを意味する。以下の表は、考えられるソリューションの1つを示しており、第1及び第3要件を満たす。
例えば、物理サーバ1に障害が生じた場合、バックアップ近隣は、各行においてそれぞれ物理サーバ2、5、6、8、0、3、4、及び7からになる。
サーバ1の障害後の仮想サーバ配備は、依然として第3要件を満たし、別の物理サーバの更に別の障害により、他の作動中の7サーバへのほぼ均等な要求の分散に至ることになる。
17個の物理サーバが存在する場合、各物理サーバは16個の仮想サーバを有することができる。以下の表は、仮想サーバ配備のソリューションの1つを示している。
例えば、物理サーバ1に障害が生じた場合、バックアップ近隣は、各行においてそれぞれ物理サーバ2、5、6、9、10、13、14、16、0、3、4、7、8、11、12、及び17からになる。近隣のリストに重複はなく、これは第1要求を満たす。
第3要件を満たすことの妥当性確認は、全ての行で数字のいずれかを削除することによって実行することができる。
上述のような仮想サーバの配置の要件を満たす問題は、以下でより詳細に説明するように数学的に表現することができる。
第1の問題は、値が1からmの一連の正の整数が存在する場合に定義することができる。各値に関してk個の数字が存在し、kは、正の整数である。合計でkxmの数字が存在する。これらの数字は円形に配置される。特定の数字の次の数字は、時計回りに沿うように定義し、next(a)と示している。以下の要件を満たす、円形の数字の配置を見出す必要がある:
1.円内のあらゆる数字aに関して、next(a)≠a。
2.1からmのあらゆる値xに関して、セット{b|b=next(a),a=x}内に相互に等しい2つの数字がない。
3.いずれか同じ値(1からm)のk個の数字が円から削除される場合、円内に残された数字は依然として要件1)を満たす必要がある。
4.これらの数字は、(数字によって分割される)円内のセグメントの長さが、できる限り相互に接近するように、できる限り均等に円内に配置する必要がある。
5.(値mの)新しいk個の数字が円に付加される場合、他の数字の位置は変わらず、新しい円内の数字は依然として上述の要件を満たす必要がある。

これは、m個の物理サーバが存在し、各物理サーバがk個のピアIDを有する状況を示している。
要件1)は、あらゆる仮想ノード(ピア)に関して、自己及び自己の第1後継(ピア)が異なる物理サーバ内に位置することを意味する。

要件2)は、同じ物理サーバ内のあらゆる2仮想ノード(ピア)に関して、これらの第1後継が異なる他の物理サーバ内に位置することを意味する。

要件3)は、いずれか1つの物理サーバ障害後にも、あらゆる仮想ノード(ピア)に関して、自己及び自己の第1後継(ピア)が依然として異なる物理サーバ内に位置することを意味する。

要件4)は、ピアの担当する空間セグメントをセグメント長の点で異ならないように保とうとする。

要件5)は、他のピアの位置を移動しないように保ちながら、新しい物理サーバの付加をサポートするよう求める。
第1の問題と類似する第2の問題も定義することができるが、この場合、1からmのm個の整数値が存在し、各値に関してk個の数字が存在する。円形のこれらの数字の配置は、以下の要件を満たすことになる:
1.問題1の要件1)、2)、3)、4)、及び5)全てを満たす。
2.1からmのあらゆる値x、yに関して、X={b|b=next(a),a=x}及びY={b|b=next(a),a=y}を定義し、y∈Xの場合、
である。
3.k個の同じ値の数字の削除後に同じ値を有するk個の数字の別の群が削除される場合、円内に残された数字は依然として要件1)を満たす必要がある。

要件7)は、物理サーバAが物理サーバBのデータの一部をバックアップし、物理サーバBが物理サーバAのデータの一部をバックアップするような場合を除外することに注意する必要がある。要件8)は、2つの物理サーバが機能停止する場合でさえ、あらゆる仮想ノード(ピア)に関して、自己及び自己の第1後継が異なる物理サーバ内に位置することを保証することにも注意する必要がある。
1つの物理サーバが機能停止する場合、問題1及び2に関して、この作業負荷は、他のk(k<m)個の物理サーバに均等に分散させることができる。特に問題1の場合には、k=m−1の時に、フェイルオーバー時の厳密な負荷平衡(LBIF)に達することができ、すなわち、障害のあったサーバの全ての作業負荷が他の全てのサーバに均等に分散され、異なる物理サーバ間の負荷比率は、(k+1):(k+1)であり、他の場合には、異なる物理サーバ間の最大負荷比率は、(k+1):kである。
2つ又はそれよりも多くの物理サーバが機能停止する場合も、ハイプ(hype)最適化された負荷平衡を維持することができ、異なる物理サーバ間の最大負荷比率は、k値及び問題1つ又は2に応じて、(k+3):(k+2)、又は(k+3):(k+1)、又は(k+3):kのいずれかであり、特に問題1の場合には、k=m−1の時に、最大負荷比率は、(k+3):(k+2)である。
「フェイルオーバーにおける負荷バランシングのための仮想ノードID割り当て(VNIAL)」アルゴリズムについて、ここで説明する。第1に、特殊なケース、すなわち、mが素数である場合に関して円形に数字を配置する方法について説明し、第2に、これを一般的なケースに拡大適用し、すなわち、mが素数か又は合成数かに関わらず、新しい数字を円内に付加する方法を紹介する。
定義:所定の自然数mに関して、以下の場合かつ以下の場合に限り、自然数α及びβは共役である。
1)α及びmが、相互に比較的原始的(素)であり、かつ
2)β及びmが、相互に比較的原始的(素)であり、かつ
3)
mが素数である特殊な場合、第1の問題は以下のように解決される。
問題1の説明から、m>kであることは容易に認識することができる。従って、以下の説明は、m>kを前提とする。初等整数論から、あらゆる素数(>4)は、1つ又はそれよりも多くの原始根を有する。rがmの原始根であると仮定して、一連の行ベクトルを以下のように定義する。


rはmの原始根なので、m−1個の特殊な行ベクトルが存在するだけであって、いずれの
に関しても
であり、
は、数字1,2,・・・m−1の完全置換である。これは、すなわち、kの最大がm−1であり、まずk=m−1と見なす。
i(i=1,2,3,...,m−1)を円に沿って順に配置するこのような配置は、新しい数字を付加する要件以外の問題1の要件を満たすことができる。新しい数字を付加するアルゴリズムについては、別の節で説明する。
実際に、一連の行ベクトルを以下のように定義することができる。
この場合、以下のようになる。


結論:以下を立証することができる
1)
この場合、
2)
この場合、
3)問題1の要件を満たすために、Viには、Vm-i以外のいずれかの他のベクトルが(時計回りで)続くことができる。
4)問題1の要件を満たすことができるこれらのベクトルを配置するための様々な方法があり、例えば、以下の通りである。
この場合、
5)Vi及びVm-iの各共役の組から、ただ1つのみを選択し、また、問題1の付加的要件7)も満たすことができる。例えば、以下の通りである。
第2の問題は、以下のように解決することができる。mが素数の時に、rはmの原始根である。m−1個の異なる行ベクトルXi(i=1,2,3,...,m−1)が節0で上述のように生成された。いずれの2つの値も、ただ一度だけ近隣になり得るので、
を得ることができる。
とすると、上述のm−1個のベクトルからt個のベクトルを選択して、一定の順序に従ってこれらを円に沿って配置することができる。
結論:以下を立証することができる
1)2もm−2もmの原始根でない場合、円に沿って以下のt個のベクトルを配置すると、問題2の要件を満たすことができる。
この場合、あらゆる数字が、ある意味でMOD演算であり、すなわち、これらは[1,m]の範囲にある。
2)2又はm−2がmの原始根である場合(m>7)、この原始根を用いて上述のようなベクトル
を生成し、以下のように偶奇性に基づいて円に沿ってt個のベクトルを配置すると、問題2の要件を満たすことができる。
3)m=7の場合には、V1、V4、V2を円に沿って配置すると、問題2の要件を満たすことができる。

m=5は小さすぎて、k>1の場合は問題2の要件を満たすことができないことに注意する必要がある。
mが素数であるか否かに関わらず、第1の問題は以下のように解決することができる。いずれのmに関しても、1からmの全ての数字に関して、mに対して比較的原始的(素)なのは、
である。
及び
は、共役であることを立証することができる。これで、
個の行ベクトルを有する。
結論:以下を立証することができる
1)いずれのベクトルViに関しても、唯一のベクトルVj(すなわち、
)が存在し、これは、円に沿って(時計回りに)Viの次のベクトルにはなり得ない。
2)いずれの
に関しても、ベクトルの以下の配置は、問題1の要件を満たす。
3)kの最大値は
である。
4)mが素の場合、

であり、i=1,2,3,...,m−1である。
第2の問題は、以下のように解決することができる。依然として上述のベクトルセット{Vi
}内には、
φ(m)/2個のベクトルが存在し、何らかの一定の順序によるこれらの配置が問題2の要件を満たすことができることを立証することができる。このベクトルセットのベクトルを選択する方法は、mの偶奇性に依存する。
αi及びm−αiの各共役の組において、これらのうちの1つを選択すればよい。このようにして、合計でφ(m)/2の数のαiが存在する。選択したαiを用いてφ(m)/2個のベクトルを生成することができる。
ここで、ベクトルの正しい位置を形成する方法について別々に説明する。
・mが偶数:円に沿って(時計回りに)φ(m)/2ベクトルのいずれの順序も、問題2に関しては許容されることを立証することができる。
・mが奇数:φ(m)/2≧7の時には、問題2の要件を満たすφ(m)/2ベクトルの順序が存在することを立証することができる。しかし、ベクトルの順序を解決するための特定の方法は見出していない。ベクトルの実現可能な配置は、素数mの状況に基づいて数字を付加することによって達成することができ、これについて、次の節で説明する。
第1及び第2の問題の基本要件を満たすように円に沿って数字を配置するという問題が解決されると、次の目標は、数字の近隣への制約に違反することなく、確定済みの円に新しい数字を付加することによってシステムを拡張することである。mが素数の場合はこれらの数字を配置するための完璧なソリューションが存在するので、このケース(mが素数)から開始する。新しい数字を付加する方法があれば、より小さいが素数mのケースから数字を付加することにより、非素数mの他のいずれのケースも解決することができる。
更なる説明の前に、以下のようにVi(i=1,2,3,...,m−1)から(m−1)xm行列を生成し、これを基本世代行列と呼ぶ。
かつ(m−1)xm行列を定義する。
(m−1)xm行列の連続を以下のように定義する。

この場合の
(i=1,2,3,...,m)は、(m−1)次元の列ベクトルであり、
である。ここで、
を見出すことができる。実際に、
は、あらゆる要素に(j−1)mが付加される以外は、Vに同等の行列である。

行列(世代行列と呼ぶ)であるとして定義し、これを、本節のアルゴリズムに従って{

}の融合から生成する。

)は、(m−1)xm行列である。
アルゴリズムの説明−m+1から2mまでの数字を挿入
なので、m+1から2m(mは素数)までの新しい数字を付加することは、行列
及び
を融合すると見なすことができる。手法は、以下のようになる。
1)2つの列
及び
の間に
を挿入する。この場合、以下の通りである。
2)行列
の末尾に
を保持する。

ここで、
である。次に、

結論:以下を立証することができる
1)
(又は
又は
)の全ての行ベクトルのある一定の配置は、問題1の要件を満たすことができ、t個の行ベクトル(例えば、行1、2、・・・、t)のある一定の配置は、問題2の要件を満たすことができる。
2)行列
に関してm+1から2mまでのいずれかの数字を削除後、残りの行列の全ての行ベクトルのある一定の配置は、問題1の要件を満たすことができ、残りの行列のt個の行ベクトルのある一定の配置は、問題2の要件を満たすことができる。
3)所定のkに関して、
又はm+1から2mまでのいずれかの数字の削除後の残りの行列からk個の行を選択し、問題1及び問題2に関して上述した同様の方法でこれらを配置することができる。
2m+1から4mまでの数字の挿入

2m+1から4m(mは素数)までの新しい数字を付加することは、行列
及び
を融合し、行列
及び
を融合すると見なすことができ、上記と同様の手法に従う。
及び
を融合する時に、
(又は
)の2つの列
及び
の間に

を挿入する。i+jが偶数の場合とi+jが奇数の場合とで以下のようになる。
及び
の融合も同様である。
・行列
の末尾に
を保持する。

結論:以下を立証することができる
1)



及び、
の全ての行ベクトルのある一定の配置は、問題1及び問題2の要件を満たすことができる。
2)行列
に関して2m+1から4mまでのいずれかの数字を削除後、残りの行列の全ての行ベクトルのある一定の配置は、問題1の要件を満たすことができ、t個の行ベクトル(例えば、行1、2、・・・、t)のある一定の配置は、問題2の要件を満たすことができる。
3)所定のkに関して、
又は2m+1から4mまでのいずれかの数字の削除後の残りの行列からk個の行を選択し、問題1及び問題2の上述の同様の方法でこれらを配置することができる。
から
までの数字の挿入

それは、
及び
の融合と見なすことができ、この場合、
である。上記と同様の手法が続く。
・2つの列
及び
の間の

を挿入し、
及び
は、行列
(又は
)内で近隣であり、i+jが偶数の場合とi+jが奇数の場合とで以下のようになる。
・行列
の末尾に
を保持する。

結論:
の場合に、以下を立証することができる
1)


・・・、
の全ての行ベクトルのある一定の配置は、問題1及び問題2の要件、更により厳しい要件さえも満たすことができる。
2)行列
から、
から
までのいずれかの数字を削除後、残りの行列の全ての行ベクトルのある一定の配置は、問題1及び問題2の要件を満たすことができる。
3)所定のkに関して、
又は
から
までのいずれかの数字の削除後の残りの行列からk個の行を選択し、問題1及び問題2に関して上述した同様の方法でこれらを配置することができる。
実際のところ、
の時に、数字0、1、・・・、mに関して有効な行列を得ていた場合、数字m+1の新しいk個の複製は発見的検索によって行列に挿入することができることを立証することができる。言い換えれば、各行ベクトル内には新しい数字m+1のための少なくとも1つの有効な位置があり、新しい数字の位置は、計算ではなく検索によって見出すことができる。従って、発見的検索は、
の時の別の手法である。
非素数又は大きな素数Mのための世代行列を構築するための具体的な段階を以下のように説明する:
・段階1:素数mを見出す。この場合、m≦M。
・段階2:基本世代行列を生成する
・段階3:節0で説明するように行列を拡張する。
・段階4:世代行列において値≧Mの要素を削除する
多くの物理サーバの各々内の仮想サーバの数が同じである実施形態に関連して、本発明について一般的に説明した。これは、本発明の全ての実施形態に対して必須ではない。
コンピュータサーバクラスターに関連して本発明を説明した。しかし、本発明の原理は、より広範にピアツーピアネットワークに適用することができる。特に、本発明は、構造的ピアツーピアオーバーレイで適用可能であり、この場合、全てのリソース及びピアには、1つの共通ハッシュID空間で識別子が割り当てられ、各ピアが空間の1エリアを担い、このエリアによって網羅されるリソースを担当する。1次元DHT、例えば、Chordにおいて、ID空間は、通常は線形セグメントに分割され、各ピアは1セグメントの責任を担い、CANのようなd次元DHTでは、d次元空間がd次元エリアに分割される。特定のリソースへの要求は、オーバーレイにより、このオーバーレイでこのリソースを担当する宛先ピアに経路指定される。
いずれかのピアが何らかの理由で障害を生じ、オーバーレイから離れる場合、これが担当するエリア及びこのエリアで網羅されるリソースは、その第1の有効後継物(ピア)によって引き継がれ、このピア宛ての全ての要求が後継物に経路指定されてそれによって処理されることになり、この作業負荷は、この後継物にシフトされることになる。オーバーレイによって提供されるこの高利用可能性機能は、システムレベルHAと見なすことができる。
本発明の実施形態は、限定的よりもむしろ例示的なものである。当業者には、上述のデバイス及び方法は、本発明の一般的な範囲から逸脱することなくいくつかの修正を受け入れ可能であることが明らかであろう。このような全ての修正は、特許請求の範囲に収まる限りにおいて本発明の範囲に含まれるものとする。
10 システム
12 スケジューラー
16 第1サーバ
21 第1仮想サーバ
22 第2仮想サーバ

Claims (17)

  1. 要求を受け取る段階と、
    前記要求を転送するための第1仮想サーバを選択する段階であって、該第1仮想サーバが、複数のサーバのうちの1つによって提供され、該サーバのうちの少なくとも一部が、複数の仮想サーバを提供する前記選択する段階と、
    前記第1仮想サーバが前記要求を受け取ることができない場合に該要求を該第1仮想サーバの近隣仮想サーバに転送する段階であって、該第1仮想サーバの該近隣仮想サーバが、該第1仮想サーバとは異なるサーバの一部である前記転送する段階と、
    を含むことを特徴とする方法。
  2. サーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項1に記載の方法。
  3. サーバが作動不能な場合に、残りのサーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項1又は請求項2に記載の方法。
  4. サーバが作動不能な場合に、残りのサーバのうちの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、あらゆる残りの仮想サーバの各々が、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項1又は請求項2に記載の方法。
  5. 要求に関連付けられたセッション情報が、前記第1仮想サーバにかつ該第1仮想サーバの前記近隣サーバに送信されることを特徴とする請求項1から請求項4のいずれか1項に記載の方法。
  6. 要求を受け取るための入力と、
    前記要求を第1仮想サーバに転送するための出力であって、該第1仮想サーバが、複数のサーバのうちの1つによって提供され、該サーバのうちの少なくとも一部が、複数の仮想サーバを提供する前記出力と、
    前記第1仮想サーバを選択するためのプロセッサであって、該第1仮想サーバの障害の場合に、該プロセッサが、該第1仮想サーバの近隣サーバを選択し、スケジューラーの出力が、前記要求を該近隣サーバに転送し、該第1仮想サーバの該近隣サーバが、該第1仮想サーバとは異なるサーバによって提供される仮想サーバである前記プロセッサと、
    を含むことを特徴とする装置。
  7. 前記出力は、要求に関連付けられたセッション情報を前記第1仮想サーバにかつ該第1仮想サーバの前記近隣サーバに提供することを特徴とする請求項6に記載の装置。
  8. サーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項6又は請求項7に記載の装置。
  9. サーバが作動不能な場合に、残りのサーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項6から請求項8のいずれか1項に記載の装置。
  10. サーバが作動不能な場合に、残りのサーバのうちの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、あらゆる残りの仮想サーバの各々が、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項6から請求項8のいずれか1項に記載の装置。
  11. システムであって、
    複数のサーバ、
    を含み、
    前記サーバのうちの少なくとも一部が、複数の仮想サーバを含み、
    各仮想サーバが、近隣仮想サーバに関連付けられ、
    各仮想サーバの前記近隣サーバは、異なる他のサーバの一部であり、
    仮想サーバの前記近隣サーバは、そのサーバのバックアップとして作用する、
    ことを特徴とするシステム。
  12. サーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項11に記載のシステム。
  13. サーバが作動不能な場合に、残りのサーバの各仮想サーバが、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項11又は請求項12に記載のシステム。
  14. サーバが作動不能な場合に、残りのサーバのうちの2つの仮想サーバが、同じ他のサーバによって提供される近隣サーバを有し、あらゆる残りの仮想サーバの各々が、異なる他のサーバによって提供される近隣サーバを有することを特徴とする請求項11又は請求項12に記載のシステム。
  15. 要求を受け取るための入力と、
    前記要求を第1仮想サーバに転送するための出力と、
    前記第1仮想サーバを選択するためのプロセッサと、
    を含むスケジューラー、
    を更に含むことを特徴とする請求項11から請求項14のいずれか1項に記載のシステム。
  16. サーバであって、
    複数の仮想サーバ、
    を含み、
    サーバが、複数のサーバを含むシステムの一部を形成し、
    前記複数のサーバの少なくとも一部が、複数の仮想サーバを含み、
    サーバが、各仮想サーバが近隣仮想サーバに関連付けられるようになっており、
    各仮想サーバの前記近隣サーバは、異なるサーバの一部であり、
    仮想サーバの前記近隣サーバは、そのサーバのバックアップとして作用する、
    ことを特徴とするサーバ。
  17. 要求を受け取る手段と、
    前記要求を転送するための第1仮想サーバを選択するための手段であって、該第1仮想サーバが、複数のサーバのうちの1つによって提供され、該サーバの少なくとも一部が、複数の仮想サーバを提供する前記選択するための手段と、
    前記第1仮想サーバが前記要求を受け取ることができない場合に該要求を該第1仮想サーバの近隣仮想サーバに転送するための手段であって、該第1仮想サーバの該近隣仮想サーバが、該第1仮想サーバとは異なるサーバによって提供される前記転送するための手段と、
    を含むことを特徴とするコンピュータプログラム。
JP2013514510A 2010-06-18 2010-06-18 サーバクラスター Expired - Fee Related JP5599943B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/000886 WO2011156932A1 (en) 2010-06-18 2010-06-18 Server cluster

Publications (2)

Publication Number Publication Date
JP2013532333A true JP2013532333A (ja) 2013-08-15
JP5599943B2 JP5599943B2 (ja) 2014-10-01

Family

ID=45347613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013514510A Expired - Fee Related JP5599943B2 (ja) 2010-06-18 2010-06-18 サーバクラスター

Country Status (7)

Country Link
US (1) US20130204995A1 (ja)
EP (1) EP2583417B1 (ja)
JP (1) JP5599943B2 (ja)
KR (1) KR101433816B1 (ja)
CN (1) CN102934412B (ja)
PL (1) PL2583417T3 (ja)
WO (1) WO2011156932A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122343A (ja) * 2014-12-25 2016-07-07 日本電信電話株式会社 予備系システム、およびセッション制御方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012164689A1 (ja) * 2011-05-31 2012-12-06 株式会社日立製作所 ジョブ管理サーバ及びジョブ管理方法
CN104426694B (zh) * 2013-08-28 2018-10-12 新华三技术有限公司 一种调整虚拟机资源的方法和装置
US9699251B2 (en) 2014-05-13 2017-07-04 Nutanix, Inc. Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management
US9798634B2 (en) * 2014-10-30 2017-10-24 Sap Se Distributed failover for multi-tenant server farms based on load times of replicated tenants
CN104506605B (zh) * 2014-12-18 2018-04-06 北京金和软件股份有限公司 一种多个服务器之间的轮询方法
CN106302569B (zh) * 2015-05-14 2019-06-18 华为技术有限公司 处理虚拟机集群的方法和计算机***
CN107104841A (zh) * 2017-05-22 2017-08-29 深信服科技股份有限公司 一种集群高可用交付方法及***
CN112995054B (zh) * 2021-03-03 2023-01-20 北京奇艺世纪科技有限公司 流量分配方法、装置、电子设备和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273270A (ja) * 2000-03-24 2001-10-05 Yokogawa Electric Corp サービス提供維持方法及びこれを用いた分散オブジェクトシステム
JP2003330740A (ja) * 2002-05-15 2003-11-21 Hitachi Ltd 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
JP2010063022A (ja) * 2008-09-05 2010-03-18 Hitachi Communication Technologies Ltd アクセスゲートウェイ装置の制御方法及び通信システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976079B1 (en) * 2000-09-29 2005-12-13 International Business Machines Corporation System and method for upgrading software in a distributed computer system
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7287186B2 (en) * 2003-06-02 2007-10-23 Surgient Inc. Shared nothing virtual cluster
JP4448719B2 (ja) * 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US20060155912A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. Server cluster having a virtual server
US20070220302A1 (en) * 2006-02-28 2007-09-20 Cline Brian G Session failover management in a high-availability server cluster environment
CN100435530C (zh) * 2006-04-30 2008-11-19 西安交通大学 一种多机服务器***中双向负载均衡机制的实现方法
US20080189700A1 (en) * 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
CN101378400B (zh) * 2007-08-30 2013-01-30 国际商业机器公司 实现桌面应用和Web应用聚合的方法、服务器和***
JP5262145B2 (ja) * 2008-02-04 2013-08-14 日本電気株式会社 クラスタシステムおよび情報処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273270A (ja) * 2000-03-24 2001-10-05 Yokogawa Electric Corp サービス提供維持方法及びこれを用いた分散オブジェクトシステム
JP2003330740A (ja) * 2002-05-15 2003-11-21 Hitachi Ltd 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
JP2010063022A (ja) * 2008-09-05 2010-03-18 Hitachi Communication Technologies Ltd アクセスゲートウェイ装置の制御方法及び通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122343A (ja) * 2014-12-25 2016-07-07 日本電信電話株式会社 予備系システム、およびセッション制御方法

Also Published As

Publication number Publication date
CN102934412B (zh) 2016-06-29
EP2583417A1 (en) 2013-04-24
JP5599943B2 (ja) 2014-10-01
EP2583417A4 (en) 2016-03-02
WO2011156932A1 (en) 2011-12-22
KR20130045331A (ko) 2013-05-03
EP2583417B1 (en) 2018-08-29
PL2583417T4 (pl) 2019-05-31
CN102934412A (zh) 2013-02-13
US20130204995A1 (en) 2013-08-08
PL2583417T3 (pl) 2019-05-31
KR101433816B1 (ko) 2014-08-27

Similar Documents

Publication Publication Date Title
JP5599943B2 (ja) サーバクラスター
KR100984384B1 (ko) 클러스터 노드들을 권위적 도메인 네임 서버들로서사용하여 액티브 부하 조절을 하는 시스템, 네트워크 장치,방법, 및 컴퓨터 프로그램 생성물
JP2018164285A (ja) エニーキャストデータトラフィックをロードバランシングするための方法およびシステム
EP2122966A1 (en) Consistent and fault tolerant distributed hash table (dht) overlay network
US20120297056A1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US7773609B2 (en) Overlay network system which constructs and maintains an overlay network
US8880665B2 (en) Nonstop service system using voting, and information updating and providing method in the same
EP2856355A1 (en) Service-aware distributed hash table routing
Chen et al. Scalable request routing with next-neighbor load sharing in multi-server environments
Teng et al. A self-similar super-peer overlay construction scheme for super large-scale P2P applications
CN117176796A (zh) 消息推送方法、装置、计算机设备和存储介质
US20190387054A1 (en) Method, electronic device and computer program product for searching for node
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
Janson et al. A self-stabilizing locality-aware peer-to-peer network combining random networks, search trees, and dhts
US11310309B1 (en) Arc jump: per-key selection of an alternative server when implemented bounded loads
Wickramarachchi et al. Andes: A highly scalable persistent messaging system
JP7515693B2 (ja) 複数のパーティショングループ間のハートビート通信のランダム化
Sun et al. RPCC: A Replica Placement Method to Alleviate the Replica Consistency under Dynamic Cloud
Aoki et al. Ballistic skip graph: a skip graph-style constant-degree structured overlay
Zhelev et al. A DHT-based scalable and fault-tolerant cloud information service
Litwin et al. LH* RSP2P: A scalable distributed data structure for P2P environment
Amft et al. The Benefit of Stacking Multiple Peer-to-Peer Overlays
Yousuf et al. Kistree: A reliable constant degree DHT
Nakashima et al. Tree-based consistency maintenance scheme for peer-to-peer file sharing of editable contents
Guo et al. Theory and network applications of balanced Kautz tree structures

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140414

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140813

R150 Certificate of patent or registration of utility model

Ref document number: 5599943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees