JPWO2004088931A1 - データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法 - Google Patents

データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法 Download PDF

Info

Publication number
JPWO2004088931A1
JPWO2004088931A1 JP2004570184A JP2004570184A JPWO2004088931A1 JP WO2004088931 A1 JPWO2004088931 A1 JP WO2004088931A1 JP 2004570184 A JP2004570184 A JP 2004570184A JP 2004570184 A JP2004570184 A JP 2004570184A JP WO2004088931 A1 JPWO2004088931 A1 JP WO2004088931A1
Authority
JP
Japan
Prior art keywords
communication
data
computer
distributed
algorithm
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
JP2004570184A
Other languages
English (en)
Other versions
JP3792707B2 (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
Application granted granted Critical
Publication of JP3792707B2 publication Critical patent/JP3792707B2/ja
Publication of JPWO2004088931A1 publication Critical patent/JPWO2004088931A1/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

トランキング機能を持たないスイッチングハブとの間で柔軟性の高いトランキングを行うことができるようにする。コンピュータ(1)は、複数の通信インターフェース(1a),(1b),(1c),(1d)の物理アドレス、および通信相手コンピュータがコンピュータ(1)宛に送信するデータを複数の通信インターフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット(4)を生成し(ステップS1)、コンピュータ(3)に送信する(ステップS2)。コンピュータ(3)は、コンピュータ(1)に対して送信する送信データ(5)の宛先とすべき通信インターフェースを、通知された分散アルゴリズムに従って決定し、その通信インターフェースの物理アドレスを宛先として指定して、送信データ(5)を送信する。

Description

本発明は多重化した伝送路を介してデータ通信を行う際のデータ通信負荷分散制御プログラム、およびデータ負荷分散制御方法に関し、特にトランキングを用いたデータ通信負荷分散制御プログラム、およびデータ負荷分散制御方法に関する。
複数の装置間の通信の高帯域化を図る方法の1つにトランキングがある。トランキングは、装置間を複数の伝送路で接続する。そして、各装置では、複数の伝送路それぞれに接続されたネットワークインタフェースカード(NIC)を論理的に1つのLANポートとして取り扱う。これにより、装置間の伝送帯域を向上させることができる。
図21は、従来のトランキングシステムの構成例を示す図である。従来のトランキングシステムは、コンピュータ910、スイッチングハブ920、および相手側コンピュータ930,940,950,960で構成される。
コンピュータ910は、アプリケーション911、トランキング機構部912、NIC913〜916を有している。アプリケーション911は、相手側コンピュータ930,940,950,960と通信を行い、様々なデータ処理を行う処理機能である。トランキング機構部912は、複数のNIC913〜916を1つのLANポートとみなしてスイッチングハブ920との間の通信を行う。なお、トランキング機構部912は、複数のNIC913〜916のMAC(Media Access Control)アドレスや各NIC913〜916で共有するIP(Internet Protocol)アドレス等が設定された構成情報912aを有している。
NIC913〜916は、それぞれ個別の伝送路でスイッチングハブ920に接続されており、スイッチングハブ920との間でデータ通信を行う。
スイッチングハブ920は、8つのLANポートのうちの4つが、コンピュータ910のNIC913〜916に接続されている。他の4つのLANポートは、相手側コンピュータ930,940,950,960に接続されている。
また、スイッチングハブ920は、トランキング対応部921を有している。トランキング対応部921は、各LANポートへの接続相手のIPアドレス等の情報が格納された構成情報921aを有している。
このような構成のシステムにおいて、コンピュータ910とスイッチングハブ920との間でトランキングが行われる。すなわち、コンピュータ910は、多重化したNIC913〜916を使用して1つの論理的なNICを生成する。そしてコンピュータ910は、論理的なNICを通してデータの送受信を行う。
スイッチングハブ920は、コンピュータ910から送られたデータを、相手側コンピュータ930,940,950,960へ送る。また、スイッチングハブ920は、相手側コンピュータ930,940,950,960から送られたデータを、トランキング対応部921が、コンピュータ910に接続されたLANポートの1つに振り分け、そのLANポートを介してコンピュータ910にデータを送信する。
これにより、コンピュータ910とスイッチングハブ920との間のデータ通信帯域が拡大される。
なお、トランキング対応部921を有するスイッチングハブ920を介さずに、複数のLANポートの負荷分散制御を行うこともできる。たとえば、複数のLAN(Local Area Network)アダプタを有するホストコンピュータが、通信相手に対して任意のLANアダプタの物理アドレスを通知する。通信相手は、通知された物理アドレスを指定してデータをホストコンピュータに送信する。これにより、複数の通信相手から送られるデータを、複数のLANアダプタに負荷分散して受信することができる(例えば、特許文献1参照)。
特開平7−245619号公報(第1図)
しかし、従来の方式では、基本的にコンピュータとスイッチングハブとが共にトランキング機能を持っていないと接続できず、適用条件が限定されたものとなっていた。しかも、スイッチングハブとコンピュータの間で、使用するNIC数、ポート数や、分散アルゴリズムを一致させて設定する必要があり、トランキングを実行するための専用MACアドレスも定義しなければならないので、設定が煩雑でユーザがミスを引き起こしやすいものとなっていた。
更に、使用するNIC数を増減させたい場合には、上記設定情報を変更するために、一旦通信を中断しなければスイッチングハブ側の設定ができない。そのため、設定変更が、システムの稼働率を低下させる要因となっていた。
また、トランキング機能を持たないスイッチングハブのみを使用してトランキング機能を実現する場合、コンピュータ間でIPアドレスやMACアドレスの情報を交換する等の手段により、使用するNICを決定することができるが、アドレス情報のみの交換では分散アルゴリズムが限定される。例えば、通信相手装置が1台の場合には、特定のNICしか使用されず分散できないといった問題があった。
本発明はこのような点に鑑みてなされたものであり、トランキング機能を持たないスイッチングハブとの間で柔軟性の高いトランキングを行うことができるコンピュータを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデータ通信負荷分散制御プログラムが提供される。本発明に係るデータ通信負荷分散制御プログラムは、複数の通信インタフェース1a,1b,1c,1dを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御部1eの機能を実現するものである。このデータ通信負荷分散制御プログラムに基づいて、コンピュータ1が以下の処理を実行する。
コンピュータ1は、複数の通信インタフェース1a,1b,1c,1dの物理アドレス、および通信相手のコンピュータ3がコンピュータ1宛に送信するデータを複数の通信インタフェース1a,1b,1c,1dに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット4を生成する(ステップS1)。そして、コンピュータ1は、ネットワークを介して接続されている通信相手コンピュータに対し、分散アルゴリズム通知パケット4を送信する(ステップS2)。
これにより、コンピュータ1に実装されている複数の通信インタフェース1a,1b,1c,1dの物理アドレスを他のコンピュータ3に通知し、負荷分散アルゴリズムを指定することができる。
また、上記課題を解決するために、図1に示すような負荷分散データ送信プログラムが提供される。本発明に係る負荷分散データ送信プログラムは、複数の通信インタフェース1a,1b,1c,1dを実装可能な通信相手のコンピュータ1までの伝送路の通信負荷を分散させるための負荷分散データ送信部3bの機能を実現するものである。この負荷分散データ送信プログラムに基づいて、コンピュータ3は以下の処理を実行する。
コンピュータ3は、複数の通信インタフェース1a,1b,1c,1dの物理アドレス、およびコンピュータ1宛に送信するデータを複数の通信インタフェース1a,1b,1c,1dに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット4を受信すると、複数の通信インタフェース1a,1b,1c,1dの物理アドレスと分散アルゴリズムとをデータテーブル3cに格納する。次に、コンピュータ3は、通信相手コンピュータに対して送信する送信データ5の宛先とすべき通信インタフェースを分散アルゴリズムに従って決定する。さらに、コンピュータ3は、宛先に決定された通信インタフェースの物理アドレスを宛先として指定し、送信データ5を送信する。
これにより、コンピュータ3から通信相手コンピュータに対して送信する送信データ5は、分散アルゴリズム通知パケット4で指定された分散アルゴリズムで複数の通信インタフェース1a,1b,1c,1dそれぞれを介した伝送路へ負荷を分散して送信される。
また、上記課題を解決するために、複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御方法において、前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、処理を実行させることを特徴とするデータ通信負荷分散制御方法が提供される。
このようなデータ通信負荷分散制御方法によれば、コンピュータに実装されている複数の通信インタフェースの物理アドレスを他のコンピュータに通知し、負荷分散アルゴリズムを指定することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
図1は、実施の形態に適用される発明の概念図である。
図2は、本発明を適用したシステムの構成例を示す図である。
図3は、トランキング機構部の内部構成を示す図である。
図4は、サーバコンピュータのハードウェア構成例を示す図である。
図5は、データ通信処理手順を示すフローチャートである。
図6は、分散アルゴリズム通知処理を示す概念図である。
図7は、分散アルゴリズム通知パケットのためのフレーム構成を示す図である。
図8は、分散アルゴリズム通知パケットのデータ部の内容例を示す図である。
図9は、サーバコンピュータ側の分散アルゴリズムテーブルのデータ構造例を示す図である。
図10は、分散アルゴリズム通知パケットに応じた分散アルゴリズムテーブルの登録例を示す図である。
図11は、サーバコンピュータから送信するデータの負荷分散処理状況を示す図である。
図12は、クライアントコンピュータから送信するデータの負荷分散処理状況を示す図である。
図13は、第2の実施の形態のシステム構成例を示す図である。
図14は、第2の実施の形態に係る分散アルゴリズムテーブルのデータ構造例を示す図である。
図15は、第2の実施の形態におけるシステム起動時の処理手順を示すフローチャートである。
図16は、複数のサーバコンピュータを用いたときのデータ送信手順を示す図である。
図17は、複数のサーバコンピュータを用いた場合のデータ送信状況を示す図である。
図18は、NICを1枚増設する場合の原理説明図である。
図19は、NIC追加時の分散アルゴリズムテーブル更新手順を示すフローチャートである。
図20は、NICを1枚削除する場合の原理説明図である。
図21は、従来のトランキングシステムの構成例を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。本発明は、コンピュータ1とコンピュータ3の間のデータ通信に適用される。コンピュータ1は、複数の通信インタフェース1a,1b,1c,1dを有している。各通信インタフェース1a,1b,1c,1dの物理アドレスは、それぞれ「a」、「b」、「c」、「d」である。通信インタフェース1a,1b,1c,1dは、それぞれ個別の伝送路でスイッチングハブ2に接続されている。
更にコンピュータ1は、データ通信負荷分散制御プログラムを実行することで、データ通信負荷分散制御部1eの機能が構築される。データ通信負荷分散制御部1eは、伝送路の通信負荷を分散させる機能を有している。具体的には、データ通信負荷分散制御部1eは、以下の処理を実効する。
データ通信負荷分散制御部1eは、複数の通信インタフェース1a,1b,1c,1dの物理アドレス、および通信相手のコンピュータ3がコンピュータ1宛に送信するデータを複数の通信インタフェース1a,1b,1c,1dに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット4を生成する(ステップS1)。そして、データ通信負荷分散制御部1eは、ネットワークを介して接続されている通信相手のコンピュータ3に対し、分散アルゴリズム通知パケット4を送信する(ステップS2)。
これにより、コンピュータ1に実装されている複数の通信インタフェース1a,1b,1c,1dの物理アドレスを他のコンピュータ3に通知し、負荷分散アルゴリズムを指定することができる。
一方、コンピュータ3は、通信インタフェース3aを有しており、この通信インタフェース3aがスイッチングハブ2に接続されている。また、コンピュータ3は、分散負荷データ送信プログラムを実行することで、コンピュータ1までの伝送路の通信負荷を分散させるための負荷分散データ送信部3bの機能を実現する。具体的には、負荷分散データ送信部3bは、以下の処理を実行する。
負荷分散データ送信部3bは、複数の通信インタフェース1a,1b,1c,1dの物理アドレス、およびコンピュータ1宛に送信するデータを複数の通信インタフェース1a,1b,1c,1dに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット4を受信すると、複数の通信インタフェース1a,1b,1c,1dの物理アドレスと分散アルゴリズムとをデータテーブル3cに格納する。図1の例では、物理アドレス「a,b,c,d」、分散アルゴリズム「ラウンドロビン」が登録されている。
次に、負荷分散データ送信部3bは、通信相手コンピュータに対して送信する送信データ5の宛先とすべき通信インタフェースを分散アルゴリズムに従って決定する。さらに、コンピュータ3は、決定された通信インタフェースの物理アドレスを宛先として指定し、送信データ5を送信する。たとえば、送信データ5が4つに分割され、最初のデータ5aは、宛先として物理アドレス「a」が指定されて送信される。これにより、データ5aは、スイッチングハブ2において通信インタフェース1aに転送される。2つ目のデータ5bは、宛先として物理アドレス「b」が指定されて送信される。これにより、データ5bは、スイッチングハブ2において通信インタフェース1bに転送される。3つ目のデータ5cは、宛先として物理アドレス「c」が指定されて送信される。これにより、データ5cは、スイッチングハブ2において通信インタフェース1cに転送される。4つ目のデータ5dは、宛先として物理アドレス「d」が指定されて送信される。これにより、データ5dは、スイッチングハブ2において通信インタフェース1dに転送される。
これにより、コンピュータ3から通信相手コンピュータに対して送信する送信データ5は、分散アルゴリズム通知パケット4で指定された分散アルゴリズムで複数の通信インタフェース1a,1b,1c,1dそれぞれを介した伝送路へ負荷を分散して送信される。
このように、コンピュータ1側からコンピュータ3へ、分散アルゴリズム通知パケット4により、複数の通信インタフェース1a,1b,1c,1dの物理アドレスと分散アルゴリズムとを通知し、コンピュータ3において、分散アルゴリズムに従って決定された通信インタフェースの物理アドレス宛に送信データ5を送信するようにした。そのため、スイッチングハブ2にトランキング機能が無くても、複数の伝送路を用いたトランキングが可能となる。その結果、柔軟性の高いネットワークシステムを構築することができる。
しかも、スイッチングハブ2にトランキング機構が不要であるため、安価なスイッチングハブ2を使用できる。また、分散アルゴリズムをコンピュータ1側から通知するため、アルゴリズムの変更や、通信インタフェースの増減への対応が容易である。
また、コンピュータ1の通信相手となるコンピュータ3が複数存在した場合、それぞれに個別の分散アルゴリズムを通知することで、通信相手のコンピュータ毎に、通信に使用する通信インタフェースを分けることが出来る。
さらに、コンピュータ3において送信相手の通信インタフェースを決定するため、OSI階層モデルにおけるネットワーク層やさらに上位のプロトコルを参照して送信相手の通信インタフェースを決定することも可能である。たとえば、通信に使用されるアプリケーションの種別に応じて、送信相手の通信インタフェースを決定することもできる。
以下、図1に示した構成をサーバクライアントシステムに適用した場合の実施の形態について具体的に説明する。
[第1の実施の形態]
まず、本発明の第1の実施の形態について説明する。なお、以下の説明において、データリンク層でのデータ送信を説明するときには、信号の単位を特にフレームと呼ぶこととする。
図2は、本発明を適用したシステムの構成例を示す図である。サーバコンピュータ100には、スイッチングハブ200を介して複数のクライアントコンピュータ300,300a,300b,300cが接続されている。
サーバコンピュータ100内には、WWW(World Wide Web)サーバ110、トランキング機構部120、およびNIC131〜134が設けられている。
WWWサーバ110は、クライアントコンピュータ300,300a,300b,300c内のWebブラウザ310,310a,310b,310cからの要求に応答して、様々なコンテンツを提供する。なお、サーバコンピュータ100のノード名は「hostA」である。また、クライアントコンピュータ300のノード名は「hostB」、クライアントコンピュータ300aのノード名は「hostC」、クライアントコンピュータ300bのノード名は「hostD」、クライアントコンピュータ300cのノード名は「hostE」である。
トランキング機構部120は、WWWサーバ110とNIC131〜134との間に設けられている。トランキング機構部120は、複数のNIC131〜134束ねて、論理的な高通信帯域を確保している。そして、トランキング機構部120は、WWWサーバ110からクライアントコンピュータ300,300a,300b,300c宛に送信するデータを含むパケットを生成し、複数のNIC131〜134の何れか1つを選択して送信する。
なお、トランキング機構部120は、分散アルゴリズムテーブル121を有している。分散アルゴリズムテーブル121には、データ送信の際の負荷分散のアルゴリズムが定義されている。そして、トランキング機構部120は、分散アルゴリズムテーブル121を参照し、NIC131〜134それぞれを介した通信の負荷が均等になるように、パケットの送信に使用するNICを選択する。すなわち、負荷分散が行われる。負荷分散は、たとえば、ラウンドロビン方式によって行われる。
また、トランキング機構部120は、サーバコンピュータ100の起動時に、各クライアントコンピュータ300,300a,300b,300cに対して分散アルゴリズム通知パケットを送信する。分散アルゴリズム通知パケットは、クライアントコンピュータ300,300a,300b,300cがサーバコンピュータ100宛にパケットを送信する際に宛先として指定すべき物理アドレス(MACアドレス)の選択アルゴリズムを指定する情報である。どのような分散アルゴリズムを通知するのかは、分散アルゴリズムテーブル121に定義されている。なお、分散アルゴリズム通知パケットには、サーバコンピュータ100の各NIC131〜134のMACアドレスも含まれる。
NIC131〜134は、LANケーブル等によりスイッチングハブ200に接続されている。NIC131〜134は、スイッチングハブ200との間でのフレームの送受信を行う。また、各NIC131〜134には、個別のMACアドレスが設定されている。図2の例では、NIC131のMACアドレスは「a」であり、NIC132のMACアドレスは「b」であり、NIC133のMACアドレスは「c」であり、NIC134のMACアドレスは「d」である。
スイッチングハブ200は、複数のLANポート211〜214,221〜224を有しており、LANポートから入力されたフレームを、そのフレームの宛先のMACアドレスに対応するNICが接続されたLANポートへ転送する。LANポート211〜214は、それぞれLANケーブルを介してサーバコンピュータ100のNIC131〜134に接続されている。また、LANポート221〜224は、それぞれLANケーブルを介してクライアントコンピュータ300,300a,300b,300cに接続されている。
複数のクライアントコンピュータ300,300a,300b,300cは、それぞれWebブラウザ310,310a,310b,310cを有している。Webブラウザ310,310a,310b,310cは、ユーザからの操作入力に応答して、WWWサーバ110が提供するコンテンツの取得要求を出力する。
また、クライアントコンピュータ300内には、トランキング機構部320とNIC331とが設けられている。
トランキング機構部320は、Webブラウザ310とNIC331との間に設けられている。トランキング機構部320は、Webブラウザ310から出力されたコンテンツの取得要求を含むフレームをNIC331経由で送信する。
なお、トランキング機構部320は、分散アルゴリズムテーブル321を有している。分散アルゴリズムテーブル321は、サーバコンピュータ100に対して送信するデータを複数のNIC131〜134に負荷分散させるためのアルゴリズムが定義されている。分散アルゴリズムテーブル321は、サーバコンピュータ100のトランキング機構部120からブロードキャストで配信された分散アルゴリズム通知パケットに基づいて設定される。
トランキング機構部320は、データを送信する際、分散アルゴリズムテーブル321に基づいて、サーバコンピュータ100に対して送信するフレームの宛先MACアドレスを決定する。たとえば、ラウンドロビン方式によって、複数のNIC131〜134それぞれに均等にフレーム送信が行われるようにMACアドレスが決定される。
NIC331は、LANケーブルを介してスイッチングハブ200のLANポート221に接続されており、スイッチングハブ200との間でフレームの送受信を行う。NIC331のMACアドレスは、「x」である。
次に、サーバコンピュータ100のトランキング機構部120とクライアントコンピュータ300のトランキング機構部320との内部構成について説明する。
図3は、トランキング機構部の内部構成を示す図である。サーバコンピュータ100のトランキング機構部120は、分散アルゴリズムテーブル121、分散アルゴリズム通知部122、送信データ負荷分散処理部123、および受信データ受け渡し部124を有している。
分散アルゴリズムテーブル121には、クライアントコンピュータ300との間のデータ通信に適用する負荷分散アルゴリズムが定義されている。
分散アルゴリズム通知部122は、分散アルゴリズムテーブル121を参照し、クライアントコンピュータ300に対して、クライアントコンピュータ300からサーバコンピュータ100へ送信するデータに関する分散アルゴリズムを通知する。分散アルゴリズムは、分散アルゴリズム通知パケット20により通知される。
送信データ負荷分散処理部123は、送信データ111を受け取ると、分散アルゴリズムテーブル121を参照し、送信相手となるクライアントコンピュータ300に応じた分散アルゴリズムを決定する。そして、送信データ負荷分散処理部123は、決定した分散アルゴリズムに従って、送信データ111を複数のNIC131〜134に振り分けて送信する。
受信データ受け渡し部124は、クライアントコンピュータ300から受け取ったデータをWWWサーバ110に渡す。なお、受信データ受け渡し部124は、受信データが分散処理により分割転送され、複数のNIC131〜134から入力された場合、分割されたデータを連結してWWWサーバ110に渡す。
クライアントコンピュータ300のトランキング機構部320は、分散アルゴリズムテーブル321、分散アルゴリズム取得部322、送信データ負荷分散処理部323、および受信データ受け渡し部324を有している。
分散アルゴリズムテーブル321には、サーバコンピュータ100との間のデータ通信に適用する負荷分散アルゴリズムが定義されている。
分散アルゴリズム取得部322は、サーバコンピュータ100から送られてくる分散アルゴリズム通知パケット20を受け取り、分散アルゴリズムテーブル321の内容を更新する。
送信データ負荷分散処理部323は、送信データ311を受け取ると、分散アルゴリズムテーブル321を参照し、送信相手となるサーバコンピュータ100に応じた分散アルゴリズムを決定する。そして、送信データ負荷分散処理部323は、決定した分散アルゴリズムに従って、送信データ311を構成する複数のデータの宛先MACアドレスを複数のNIC131〜134に振り分けて送信する。
受信データ受け渡し部324は、サーバコンピュータ100から受け取ったデータをWebブラウザ310に渡す。なお、受信データ受け渡し部324は、受信データが分散処理により分割転送され、複数のNIC131〜134経由で転送された場合、分割されたデータを連結してWebブラウザ310に渡す。
なお、図2、図3では、クライアントコンピュータ300の構成のみが詳細に示されているが、他のクライアントコンピュータ300a,300b,300cも同様の構成である。
このような構成のシステムにより、複数のクライアントコンピュータ300,300a,300b,300cのWebブラウザ310,310a,310b,310cからのコンテンツ取得要求がスイッチングハブ200経由でサーバコンピュータ100に送られる。すると、サーバコンピュータ100内のWWWサーバ110により、要求されたコンテンツが配信される。
このとき、サーバコンピュータ100とスイッチングハブ200との間が複数のLANケーブルで接続されているため、1つの伝送路で接続した場合の4倍の帯域幅を得ることができる。たとえば、1つの伝送路が100Mbpsの帯域幅を有していれば、サーバコンピュータ100とスイッチングハブ200との間で400Mbpsの速度での通信が可能となる。これにより、複数のクライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100への同時アクセスに伴う高負荷に耐えることができる。
しかも、サーバコンピュータ100からクライアントコンピュータ300,300a,300b,300cへ送信するデータは、トランキング機構部120により各NIC131〜134にバランスよく振り分けられるため、1つの回線に通信量が偏ることがない。また、クライアントコンピュータ300からサーバコンピュータ100へ送信するデータの宛先は、トランキング機構部320によってNIC131〜134にバランスよく振り分けられるため、1つの回線に通信量が偏ることがない。
図4は、サーバコンピュータのハードウェア構成例を示す図である。サーバコンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および複数のNIC131〜134が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。NIC131〜134は、それぞれスイッチングハブ200に接続されている。
以上のようなハードウェア構成によって、第1の実施の形態の処理機能を実現することができる。なお、図4には、サーバコンピュータ100のハードウェア構成を示したが、クライアントコンピュータ300,300a,300b,300cも同様のハードウェア構成で実現できる。ただし、クライアントコンピュータ300,300a,300b,300cには、NICは1つあればよい。
次に、サーバコンピュータ100とクライアントコンピュータ300との間の通信を例により、データ通信を行うための処理について説明する。
図5は、データ通信処理手順を示すフローチャートである。図5には、左側にサーバコンピュータ100の処理が示されており、右側にクライアントコンピュータ300の処理が示されている。以下、図5に示す処理をステップ番号に沿って説明する。
[ステップS11]クライアントコンピュータ300は、分散アルゴリズム通知パケット20の受信を待つ。
[ステップS12]サーバコンピュータ100は、システムの起動時等に、分散アルゴリズム通知パケット20を、ブロードキャストフレームで送信する。
[ステップS13]サーバコンピュータ100は、その後、クライアントコンピュータ300からの応答を待つ。
[ステップS14]クライアントコンピュータ300は、分散アルゴリズム通知パケットを受信したか否かを判断する。分散アルゴリズム通知パケットを受信した場合、処理がステップS15に進められる。分散アルゴリズム通知パケットを受信していない場合、処理がステップS11に進められ、引き続き分散アルゴリズム通知パケット20の受信を待つ。
[ステップS15]クライアントコンピュータ300は、サーバコンピュータ100から送られた分散アルゴリズム通知パケット20から分散アルゴリズムに関する情報を抽出し、分散アルゴリズムテーブル321に取り込む。
[ステップS16]クライアントコンピュータ300は、サーバコンピュータ100に対して、分散アルゴリズム通知パケットに関する応答を送信する。
[ステップS17]サーバコンピュータ100は、一定時間内に応答を受信したか否かを判断する。一定時間内に応答を受信した場合、処理がステップS18に進められる。一定時間内に応答を受信しなかった場合、処理がステップS12に進められ、再度、分散アルゴリズム通知パケット20が送信される。
[ステップS18]サーバコンピュータ100は、応答内容を確認し、通信相手のMACアドレスを含む情報を分散アルゴリズムテーブル121に追加する。
[ステップS19]サーバコンピュータ100は、クライアントコンピュータ300との通信を開始する。
[ステップS20]クライアントコンピュータ300は、サーバコンピュータ100との通信を開始する。
[ステップS21]サーバコンピュータ100は、分散アルゴリズムに従ってデータを送信する。
[ステップS22]クライアントコンピュータ300は、分散アルゴリズムに従ったデータを送信する。
このようにして、サーバコンピュータ100からクライアントコンピュータ300へ分散アルゴリズム通知パケットが送信され、分散アルゴリズムが通知される。その結果、クライアントコンピュータ300側でもサーバコンピュータ100のNICの構成を認識に、それらのNICに負荷分散させたデータ送信が可能となる。
図6は、分散アルゴリズム通知処理を示す概念図である。トランキング機構部120内の分散アルゴリズム通知部122は、クライアントコンピュータ300,300a,300b,300cとの通信に先立ち、分散アルゴリズム通知パケット20を生成し、任意のNICを介してイーサネット(登録商標)のフレームに載せて、ブロードキャストで送信する。これにより、分散アルゴリズム通知パケット20が各クライアントコンピュータ300,300a,300b,300cに渡される。例えば、ラウンドロビン方式による受信分散を行いたい場合、自分宛のデータはNIC131〜134を、ラウンドロビン方式を使って送信するように、分散アルゴリズム通知パケット20を送信する。
また、分散アルゴリズム通知パケット20を受け取ったクライアントコンピュータ300,300a,300b,300cからは、応答パケットがサーバコンピュータ100に送信される。
ここで、分散アルゴリズムの通知および応答等を行う際のフレーム構成について説明する。
図7は、分散アルゴリズム通知パケットのためのフレーム構成を示す図である。フレーム30は、相手MACアドレス31、自MACアドレス32、プロトコル識別子33、コマンド部34、およびデータ部35で構成される。
相手MACアドレス31は、フレームの送信先を示すMACアドレスの設定領域である。分散アルゴリズム通知パケット20の場合、ブロードキャスト転送を示す値「FF−FF−FF−FF−FF−FF」が設定される。クライアントコンピュータ300,300a,300b,300cのNICのMACアドレスが既知となった後に、分散アルゴリズムの追加等を行う場合、相手MACアドレス31には、送信相手のNICのMACアドレスが設定される。複数の分散アルゴリズム通知パケット20を送信することもできる。
自MACアドレス32には、サーバコンピュータ100自身のNICのMACアドレスが設定される。サーバコンピュータ100は、任意のNICを選択して分散アルゴリズム通知パケット20を送信するための、その選択されたNICのMACアドレスが、自MACアドレス32に設定される。
プロトコル識別子33には、分散アルゴリズム通知パケットであることを表す識別子が設定される。クライアントコンピュータ300,300a,300b,300c側では、プロトコル識別子を確認することで、受信したパケットが分散アルゴリズム通知パケット20であることを認識する。
コマンド部34には、情報パケットの種別が設定される。種別には、広報、追加、削除、および応答がある。
パケット種別「広報」は、分散アルゴリズムデータの広報(ブロードキャスト)であることを示している。システム運用開始時は、コマンド部24に「広報」を設定した分散アルゴリズム通知パケット20が送信される。コマンド部34に「広報」と設定されたフレームは、サーバコンピュータ100からクライアントコンピュータ300,300a,300b,300cに送信される。
パケット種別「追加」は、分散アルゴリズムデータの追加指示であることを示している。コマンド部34に「追加」と設定されたフレームは、サーバコンピュータ100からクライアントコンピュータ300,300a,300b,300cに送信される。
パケット種別「削除」は、分散アルゴリズムデータの削除指示であることを示している。コマンド部34に「削除」と設定されたフレームは、サーバコンピュータ100からクライアントコンピュータ300,300a,300b,300cに送信される。
パケット種別「応答」は、広報、追加、削除指示に対する応答であることを示している。コマンド部34に「応答」と設定されたフレームは、クライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100に送信される。
データ部35には、分散アルゴリズムデータの内容が設定される。具体的には、サーバコンピュータ100のノード名、クライアントコンピュータ300,300a,300b,300cのノード名、アプリケーション名、分散アルゴリズム、サーバコンピュータ100のNIC131〜134のMACアドレス等の情報がデータ部35に設定される。なお、サーバコンピュータ100が複数のコンピュータで構成されるクラスタ構成の場合、NIC131〜134のMACアドレスへの付帯情報として、そのNICが実装されているコンピュータのノード名が追加される。
なお、データ部35の内容は、クライアントコンピュータ300,300a,300b,300c毎のリスト構造になっており、各クライアントコンピュータ300,300a,300b,300cは自分に対応する情報のみを抽出して、分散アルゴリズムテーブルに設定する。
イーサネット(登録商標)の場合、それぞれのNIC131〜134はMACアドレスと呼ばれる一意のネットワークアドレスを持っている。そのため、各クライアントコンピュータ300,300a,300b,300cは、サーバコンピュータ100から通知された4枚のNIC131〜134のMACアドレス宛にイーサネットフレームをラウンドロビン方式で送信することで、スイッチングハブ200がトランキング機能を持っていなくても、スイッチングハブ200によるトランキング機能と同等の分散処理が可能となる。
ここで、もしARP(Address Resolution Protocol)等のインターネットプロトコルを使用してクライアントコンピュータ300,300a,300b,300cへアドレス情報を通知した場合、通知できるMACアドレスは1つのみである。また、ARPでは、分散アルゴリズム情報は通知できない。そのため、クライアントコンピュータ300,300a,300b,300cそれぞれからサーバコンピュータ100へ送信するデータにおいて使用可能なNICは1枚のみとなってしまう。例えば、1台のクライアントコンピュータ300から大量のデータがサーバコンピュータ100に送信される場合、受信データは4枚中、特定の1枚しか使用されずトランキングは実行されない。第1の実施の形態では、このような場合であっても、トランキングによる負荷分散が可能である。
図8は、分散アルゴリズム通知パケットのデータ部の内容例を示す図である。図8は、ftp(File Transfer Protocol)によるファイル転送を、ラウンドロビンによって負荷分散する場合のデータ部35の例である。
データ部35には、自ノード名、相手ノード名、アプリケーション名、使用アルゴリズムおよび使用NICのMACアドレスが、相手ノード名毎に設定されている。自ノード名は「hostA」である。相手ノード名は、「hostB」、「hostC」、「hostD」、「hostE」である。アプリケーション名は「ftp」である。使用アルゴリズムは「ラウンドロビン」である。MACアドレスの項目には、NIC131〜134それぞれのMACアドレス「a」、「b」、「c」、「d」が設定される。
このような分散アルゴリズム通知パケット20等により分散アルゴリズムがクライアントコンピュータ300,300a,300b,300cに通知されると、通知された内容が分散アルゴリズムテーブルに追加される。その結果、サーバコンピュータ100とクライアントコンピュータ300,300a,300b,300cとの双方に分散アルゴリズムテーブルが構築され、分散アルゴリズムテーブルに従った負荷分散が行われる。
図9は、サーバコンピュータ側の分散アルゴリズムテーブルのデータ構造例を示す図である。分散アルゴリズムテーブル121には、自ノード名、相手ノード名、アプリケーション名、アルゴリズム、自NIC、相手NIC、およびフラグの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられ、レコードを構成している。
自ノード名は、サーバコンピュータ100のノード名(たとえばIPアドレス)である。
相手ノード名は、通信する相手のクライアントコンピュータ300,300a,300b,300cのノード名(たとえば、IPアドレス)である。
アプリケーション名は、分散対象となるアプリケーションの名称(telnet,ftp等である。
アルゴリズムは、アプリケーション名で指定したアプリケーションのデータ送受信を行う際に使用する分散アルゴリズム(たとえば、ラウンドロビン、固定NIC、TCPコネクション数均等分散等)である。
自NICは、サーバコンピュータ100のNIC131〜134のMACアドレスである。自NICが複数存在する場合は、カンマで区切って、リスト形式で表される。
相手NICは、相手側であるクライアントコンピュータ300,300a,300b,300cのNICのMACアドレス(複数ある場合はリスト形式で格納)である。
フラグは、レコードのテーブル情報の有効/無効を示している。フラグが有効の場合、分散アルゴリズムの交換が完了し、通信可状態であることを示す。フラグが無効の場合、分散アルゴリズムの交換が未完了であり、通信不可状態であることを示す。
このようなテーブル構造により、相手ノード毎の分散アルゴリズム、あるいは使用するNICの指定が可能となる。また、アプリケーション毎の分散アルゴリズム、あるいは使用するNICの指定が可能となる。
なお、図9には、サーバコンピュータ100側の分散アルゴリズムテーブル121を示したが、クライアントコンピュータ300側の分散アルゴリズムテーブル321も同様のデータ構造である。クライアントコンピュータ300はNIC331が1つだけであるため、自NICには1つのMACアドレスが設定され、相手NICにはサーバコンピュータ100内のNIC131〜134のMACアドレスが設定される。
図10は、分散アルゴリズム通知パケットに応じた分散アルゴリズムテーブルの登録例を示す図である。図10に示すように、まず、サーバコンピュータ100からクライアントコンピュータ300へ、広報の分散アルゴリズム通知パケット20aが送信される。図10の例では、自ノード名「hostA」、相手ノード名「hostB」、アプリケーション名「ftp」、アルゴリズム「ラウンドロビン」、自NIC「a,b,c,d」である。
この分散アルゴリズム通知パケット20aを受け取ったクライアントコンピュータ300は、分散アルゴリズム通知パケット20aの自ノード名と相手ノード名を入れ替え、自NICを相手NICとして、分散アルゴリズムテーブル321に登録する。次に、クライアントコンピュータ300は、登録したレコードの自NICに自分のNIC331のMACアドレス「x」を設定し、フラグを「有効」にする。そして、クライアントコンピュータ300は、自分のNIC331のMACアドレス「x」を含む応答の分散アルゴリズム通知パケット20bをサーバコンピュータ100に送信する。
サーバコンピュータ100では、応答の分散アルゴリズム通知パケット20bを受け取ると、分散アルゴリズム通知パケット20aの内容に、相手NIC「x」、フラグ「有効」を追加したレコードを分散アルゴリズムテーブル121に登録する。
このようにして構築された分散アルゴリズムテーブルに基づいて、サーバコンピュータ100とクライアントコンピュータ300との間で負荷を分散させたデータ通信が行われる。
図11は、サーバコンピュータから送信するデータの負荷分散処理状況を示す図である。この例では、ラウンドロビンの分散アルゴリズムに従って負荷分散が行われている。ラウンドロビン方式の場合、複数のNIC131〜134に対して、所定の順番でデータが割り振られる。たとえば、NIC131、NIC132、NIC133、NIC134の順番である。NIC134の次は、NIC131にデータが割り振られる。
WWWサーバ110からクライアントコンピュータ300宛の送信データ111がトランキング機構部120に渡される。ここで、送信データ111は、6つのデータに分割して送信されるものとする。ここで、分割されたデータを「D1」、「D2」、「D3」、「D4」、「D5」、「D6」とする。
送信データ111は、トランキング機構部120によって、ラウンドロビン方式で複数のNIC131〜134に振り分けられる。その結果、「D1」のデータは、NIC131を介してクライアントコンピュータ300に送信される。「D2」のデータは、NIC132を介してクライアントコンピュータ300に送信される。「D3」のデータは、NIC133を介してクライアントコンピュータ300に送信される。「D4」のデータは、NIC134を介してクライアントコンピュータ300に送信される。「D5」のデータは、NIC131を介してクライアントコンピュータ300に送信される。「D6」のデータは、NIC136を介してクライアントコンピュータ300に送信される。
このようにして、サーバコンピュータ100からクライアントコンピュータ300宛の送信データ111が伝送路の負荷を分散させてスイッチングハブ200に渡され、その後、クライアントコンピュータ300に渡される。
図12は、クライアントコンピュータから送信するデータの負荷分散処理状況を示す図である。この例では、ラウンドロビンの分散アルゴリズムに従って負荷分散が行われている。
クライアントコンピュータ300からWWWサーバ110宛の送信データ311がトランキング機構部320に渡される。ここで、送信データ311は、4つのデータに分割して送信されるものとする。ここで、分割されたデータを「D11」、「D12」、「D13」、「D14」とする。
送信データ311は、トランキング機構部320によって、ラウンドロビン方式で複数のNIC131〜134に振り分けられる。振り分けられた各データは、そのデータを送信するフレームの宛先MACアドレスに、振り分け対象のNICのMACアドレスが設定される。スイッチングハブ200は、宛先MACアドレスを参照して送出するLANポートを決定するため、各データは、振り分けられたNICに対して送信される。図12の例では「D11」のデータは、サーバコンピュータ100のNIC131に送信される。「D12」のデータは、サーバコンピュータ100のNIC132に送信される。「D13」のデータは、サーバコンピュータ100のNIC133に送信される。「D14」のデータは、サーバコンピュータ100のNIC134に送信される。
このようにして、クライアントコンピュータ300からサーバコンピュータ100宛の送信データ311がスイッチングハブ200を介し、複数の伝送路に負荷を分散させてサーバコンピュータ100に渡される。
以上のようにして、スイッチングハブ200がトランキング機構を有していなくても、サーバコンピュータ100とスイッチングハブ200との間の複数の伝送路に負荷を分散させたデータ通信が可能となる。そのため、トランキングによるシステムを構築する際、トランキングに対応していない任意のスイッチングハブを使用することができ、選択肢の幅が広がる。
また、それぞれのクライアントコンピュータ300,300a,300b,300cが分散アルゴリズム情報を持つため、1対1の2台の装置間のみの通信であっても、トランキングによる送受信分散が実現でき、トランキング対応スイッチ使用時と全く同等の帯域向上を実現できる。
しかも、クライアントコンピュータ300,300a,300b,300cにおいて負荷分散を管理するため、アプリケーションに応じた分散アルゴリズムを指定できる。すなわち、従来のようにスイッチングハブ200でトランキング処理を行わせた場合は、スイッチングハブがOSI階層モデルのデータリンク層で機能するためアプリケーションの判別はできず、アプリケーションに応じたトランキングができなかった。第1の実施の形態では、クライアントコンピュータ300によりアプリケーションに応じた分散アルゴリズの指定が可能であるため、柔軟性の高いトランキング機構を提供することができる。
[第2の実施の形態]
次に、本発明の第2の実施の形態について説明する。第2の実施の形態は、複数のサーバコンピュータが協働して動作することでクラスタを構成している場合に、そのシステムに本発明を適用した例である。
図13は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、2台のサーバコンピュータ100a,100bがシステム間通信パス40で相互に接続されている。システム間通信パス40は、LANに比べて高速の通信が可能な通信インタフェースである。なお、サーバコンピュータ100a,100b以外の構成要素は、第1の実施の形態と同様であるため図2に示した第1の実施の形態と同じ符号を付し、説明を省略する。
サーバコンピュータ100aは、WWWサーバ110a、トランキング機構部120a、NIC131a,132aを有している。トランキング機構部120aは、分散アルゴリズムテーブル121aを有している。同様に、サーバコンピュータ100bは、トランキング機構部120b、NIC131b,132bを有している。トランキング機構部120bは、分散アルゴリズムテーブル121bを有している。
このように各サーバコンピュータ100a,100bは、それぞれ2枚のNIC131a,132a,131b、132bを持っているが、ハードウェアの仕様制限により、それより多い枚数のNICは装着できないものとする。
サーバコンピュータ100aとサーバコンピュータ100bとのトランキング機構部120a,120bは、システム間通信パス40を通して、トランキングのための分散アルゴリズテーブル121a,121bに登録されている制御情報を共有している。
ここで、トランキング機構部120a,120bは、クライアントコンピュータ300,300a,300b,300cに対して、それぞれNIC131a,132a,131b,132bを使用してデータ送受信を行うようにトランキングの制御情報が登録された分散アルゴリズムテーブルを有している。
図14は、第2の実施の形態に係る分散アルゴリズムテーブルのデータ構造例を示す図である。分散アルゴリズムテーブル121aのデータ構造は、自NICを除き、図9に示した第1の実施の形態の分散アルゴリズムテーブル121と同じである。
自NICには、複数のサーバコンピュータ100a,100b双方に実装されているNIC131a,132a,131b,132bのうち、対応するアプリケーションのデータ転送に使用するNICのMACアドレスが設定されている。また、自NICでは、かっこ内に実装計算機名が設定されている。実装計算機名は、各NICを実装しているサーバコンピュータの名称(識別名)である。
このような環境で、WWWサーバ110aが、クライアントコンピュータ300,300a,300b,300cの4台とラウンドロビン方式によるデータ送受信分散を行いたい場合、システム起動時にサーバコンピュータ100a,100b間で以下の処理が行われる。
図15は、第2の実施の形態におけるシステム起動時の処理手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS31]サーバコンピュータ100aのトランキング機構部120aは、第1の実施の形態と同様に分散アルゴリズムテーブル121aを生成する。なお、分散アルゴリズムテーブル121a自には、トランキング機構部120aは分散アルゴリズム通知パケット20をブロードキャストで配信するが、このときの分散アルゴリズム通知パケット20の自NICには、サーバコンピュータ100aとサーバコンピュータ100bとのNIC131a,132a,131b,132bのMACアドレスが含まれる。さらに、そのMACアドレスには、NIC131a,132a,131b,132bが実装されているサーバコンピュータのノード名が付与される。
[ステップS32]トランキング機構部120aは、サーバコンピュータ100aが他のサーバコンピュータと協働してクラスタを構成しているか否かを判断する。複数台のサーバコンピュータで構成される場合、処理がステップS33にすすめられる。1台のサーバコンピュータ100aで構成している場合、処理がステップS36に進められる。
[ステップS33]トランキング機構部120aは、専用のシステム間通信パス40を使用し、分散アルゴリズムテーブル121aの内容をサーバコンピュータ100bへ送信する。
[ステップS34]サーバコンピュータ100bのトランキング機構部120bは、サーバコンピュータ100aから受信した分散アルゴリズムテーブル121aの内容に基づいて、自身の分散アルゴリズムテーブル121bを生成する。
[ステップS35]トランキング機構部120bは、サーバコンピュータ100aに対して、応答を送信する。
[ステップS36]サーバコンピュータ100aは、クライアントコンピュータ300,300a,300b,300cとの間の通信を開始する。
[ステップS37]同様に、サーバコンピュータ100bは、クライアントコンピュータ300,300a,300b,300cとの間の通信を開始する。
このように、システム起動時に分散アルゴリズムテーブルの共通化が行われることで、複数のサーバコンピュータ100a,100bを用いたクラスタシステムによるトランキングが可能となる。トランキングによる負荷分散により以下のようなデータ転送が行われる。
図16は、複数のサーバコンピュータを用いたときのデータ送信手順を示す図である。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS41]サーバコンピュータ100bのトランキング機構部120bは、サーバコンピュータ100aからのイベント待ち状態を維持している。
[ステップS42]サーバコンピュータ100aのトランキング機構部120aは、WWWサーバ110aからのイベント待ち状態を維持している。
[ステップS43]何らかのイベントが発生すると、トランキング機構部120aは、発生したイベントがWWWサーバ110aからのデータ送信依頼か否かを判断する。データ送信依頼であれば、処理がステップS45に進められる。データ送信依頼以外のイベントであれば、処理がステップS44に進められる。
[ステップS44]トランキング機構部120aは、発生したイベントに応じたデータ送信以外の処理を実行する。その後、処理がステップS42に進められ再度イベント待ちとなる。
[ステップS45]トランキング機構部120aは、分散アルゴリズムテーブル121aを検索し、送信に使用するNICを決定する。具体的には、トランキング機構部120aは、分散アルゴリズムテーブル121aを参照し、送信相手、アプリケーション名等から分散アルゴリズムを決定する。そして、決定された分散アルゴリズムに従って、送信に使用するNICを決定する。
[ステップS46]トランキング機構部120aは、分散アルゴリズムテーブル121aから送信に使用するNICが実装されているサーバコンピュータの装置名を取り出す。
[ステップS47]トランキング機構部120aは、使用するNICが、サーバコンピュータ100a自身に実装されたNICか否かを判断する。サーバコンピュータ100aに実装されたNICであれば、処理がステップS49に進められる。他のサーバコンピュータに実装されたNICであれば、処理がステップS48に進められる。
[ステップS48]トランキング機構部120aは、システム間通信パス40を使用し、WWWサーバ110aからのデータを他のサーバコンピュータ100bへ転送する。その後、サーバコンピュータ100a側の処理が終了し、サーバコンピュータ100b側のトランキング機構部120bのステップS50に処理が移行する。
[ステップS49]トランキング機構部120aは、ステップS45で決定されたNICを介して、データをクライアントコンピュータに送信する。
[ステップS50]サーバコンピュータ100bのトランキング機構部120bは、自身の分散アルゴリズムテーブル121b内を検索し、送信に使用するNICを決定する。
[ステップS51]トランキング機構部120bは、ステップS50で決定したNICを介して、データをクライアントコンピュータへ送信する。
図17は、複数のサーバコンピュータを用いた場合のデータ送信状況を示す図である。サーバコンピュータ100aのWebアプリケーション110aが送信データ111aをトランキング機構部120aに渡すと、トランキング機構部120aが送信データ111aを複数のデータに分割し、複数のNIC131a,132a,131b,132bに振り分ける。図17の例では、送信データ111aが4つのデータに分割されるものとし、それぞれのデータを「D21」、「D22」、「D23」、「D24」とする。
送信データ111は、トランキング機構部120によって、ラウンドロビン方式で複数のNIC131a,132a,131b,132bに振り分けられる。その結果、「D11」のデータは、NIC131aを介してクライアントコンピュータ300に送信される。「D22」のデータは、NIC132aを介してクライアントコンピュータ300に送信される。「D23」のデータは、システム間通信パス40を介してサーバコンピュータ100bのトランキング機構部120bに送られた後、トランキング機構部120bで振り分けられNIC131bを介してクライアントコンピュータ300に送信される。「D24」のデータは、システム間通信パス40を介してサーバコンピュータ100bのトランキング機構部120bに送られた後、トランキング機構部120bで振り分けられNIC132bを介してクライアントコンピュータ300に送信される。
この後のデータ転送については、再びNIC131aから順番に使用される。
このようにして、サーバコンピュータ100a,100bからクライアントコンピュータ300,300a,300b,300c宛の送信データ111aが負荷分散をさせてスイッチングハブ200に渡され、その後、クライアントコンピュータ300,300a,300b,300cに渡される。
一方、クライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100aへ送信するデータの分散処理を行う場合、クライアントコンピュータ300,300a,300b,300cは、通信に先立ってサーバコンピュータ100aから送信された分散アルゴリズム通知パケットに基づいて分散方式を判断する。これによりクライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100aに送られるデータが、各NIC131a,132a,131b,132bに分散して送信される。このときNIC131b,132bに対して送信されたデータは、トランキング機構部120bによって、システム間通信パス40を経由してWWWサーバ110aに渡される。
このように、分散アルゴリズムテーブルの内容を統一しておくことで、複数のサーバコンピュータを用いてトランキング処理を行うことができる。その結果、使用するサーバコンピュータ100aのハード仕様(NIC実装の上限値)に依存せずに、使用NIC枚数を増やしてトランキングを実現することができる。
[第3の実施の形態]
次に、第3の実施の形態について説明する。第3の実施の形態は、システムの運用を停止させずにNICの追加削除を可能にしたものである。
図18は、NICを1枚増設する場合の原理説明図である。サーバコンピュータ100cは、WWWサーバ110c、トランキング機構部120c、NIC131c,132c,133c,134c、135およびNIC追加/切り離し制御部140を有している。トランキング機構部210cは、分散アルゴリズムテーブル121cが設けられている。なお、NIC135は、新たに追加実装されたものである。
サーバコンピュータ100cの管理者は、装着された予備のNIC135を、LANケーブルでスイッチングハブ200に接続する。ここで、スイッチングハブ200にはトランキングの設定はされていないため、スイッチングハブ200をリセットすることなく、接続後は直ちに通信に使用することが可能である。言い換えると、トランキング対応のスイッチングハブが使用されていた場合には、設定変更のために、すでに接続されているNICの通信を一旦停止させる必要がある。
一方、サーバコンピュータ100cは、新たに追加したNIC135をトランキング対象に追加する必要がある。ここで、サーバコンピュータ100cのNIC追加/切り離し制御部140は、NIC135の追加を自動認識し、NIC135の追加に応じた情報を分散アルゴリズムテーブル121cに登録する。なお、NIC135の追加の自動認識を待たずに、アプリケーションやオペレータからの指示に応じて、分散アルゴリズムテーブル121cを更新することもできる。
具体的には、NIC追加/切り離し制御部140は、NIC135を追加する場合、その内容をプログラム間通信を利用して、トランキング機構部120cへ通知する。通知を受けたトランキング機構部120cは、対象のNICを分散アルゴリズムテーブル121c内の分散対象に加える。この際、トランキング機構部120cは、更新内容を分散アルゴリズム通知パケットによって、各クライアントコンピュータ300,300a,300b,300cに通知する。以後、トランキング機構部120cは、データ送信時にNIC135を含めてデータ送信の負荷分散を行う。
また、クライアントコンピュータ300,300a,300b,300cには、分散アルゴリズム通知パケットによってNIC135の追加が通知され、通知内容に従ってクライアントコンピュータ300,300a,300b,300c内の分散アルゴリズムテーブルが更新される。したがって、クライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100cに送信するデータに関しても、更新された分散アルゴリズムテーブルに従って、NIC135を含めてデータ送信の負荷分散が行われる。
以下に、サーバコンピュータ100cとクライアントコンピュータ300との間の処理を例に採り、NIC追加時の分散アルゴリズムテーブル更新手順について説明する。
図19は、NIC追加時の分散アルゴリズムテーブル更新手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS61]クライアントコンピュータ300のトランキング機構部320は、分散アルゴリズム通知パケットの受信を待つ。
[ステップS62]サーバコンピュータ100cのNIC追加/切り離し制御部140は、イベントの発生を待つ。
ここで、NIC135が追加されると、I/O割り込みが発生する。
[ステップS63]NIC追加/切り離し制御部140は、I/O割り込みの内容を判断する。NIC追加であれば処理がステップS65に進められる。NIC追加以外I/O割り込みであれば、処理がステップS64に進められる。
[ステップS64]NIC追加/切り離し制御部140は、I/O割り込みに応じた処理を実行し、その後、処理を終了する。
[ステップS65]NIC追加/切り離し制御部140は、追加されたNIC135の情報をI/Oテーブルから取り出す。なお、I/Oテーブルは、OSによって管理されているI/O割り込みに応じた情報が定義されたデータテーブルである。そして、NIC追加/切り離し制御部140は、NICの追加をトランキング機構部120cに指示する。
[ステップS66]トランキング機構部120cは、パケットの種別を追加とした分散アルゴリズム通知パケットを生成し、クライアントコンピュータ300に対して送信する。これにより、クライアントコンピュータ300に対して、追加されたNIC135の情報が通知される。
[ステップS67]トランキング機構部120cは、応答の受信待ち状態となる。
[ステップS68]クライアントコンピュータ300のトランキング機構部320は、分散アルゴリズム通知パケットの受信の有無を判断する。受信した場合、処理がステップS69に進められる。受信していない場合、処理がステップS61に進められ、引き続きパケットの受信を待つ。
[ステップS69]トランキング機構部320は、分散アルゴリズム通知パケットが、新規に実装されたNICの追加指示か否かを判断する。これは、パケットの種別が「追加」か否かで判断できる。NICの追加指示の場合、処理がステップS71に進められる。NICの追加指示以外の指示(たとえば、NICの削除)の場合、処理がステップS70に進められる。
[ステップS70]トランキング機構部320は、分散アルゴリズム通知パケットで指示された処理(NIC追加以外の処理)を実行する。その後、処理がステップS61に進められる。
[ステップS71]トランキング機構部320は、分散アルゴリズム通知パケットで指示された新規のNICを自身の分散アルゴリズムテーブル321に追加する。
[ステップS72]トランキング機構部320は、サーバコンピュータ100cに対して応答のパケットを送信する。
[ステップS73]サーバコンピュータ100cのトランキング機構部120cは、一定時間内に応答があったか否かを判断する。応答があった場合、処理がステップS74に進められる。応答がない場合、処理がステップS66に進められる。
[ステップS74]トランキング機構部120cは、応答を確認後、分散アルゴリズムテーブル121cに、新規に追加されたNICの情報を追加する。
[ステップS75]サーバコンピュータ100cのトランキング機構部120cとクライアントコンピュータ300のトランキング機構部320とは、新規に追加されたNICを通信経路に含めたデータ通信を開始する。
以上のようにして、新規のNICを追加することができる。この動作は、WWWサーバ110c等のアプリケーションの通信とは独立して並列に実行されるため、それまでやりとりされている他のNIC131c,132c,133c,134c上の通信データには影響がない。しかも、スイッチングハブ側も一旦設定をリセットして再起動する必要もない。そのため、通信を継続させたままの状態で、データ転送帯域を動的に拡張することが可能となる。
NICを追加する場合と同様に、運用中にNICを取り外すことも可能である。
図20は、NICを1枚削除する場合の原理説明図である。サーバコンピュータ100cからNIC135を取り外すと、NIC追加/切り離し制御部140に対して、I/O割り込みによりNICの切り離しが通知される。なお、サーバコンピュータ100c等のアプリケーションやオペレータからの操作入力により、NIC切り離しの指示をNIC追加/切り離し制御部140に通知することもできる。
NIC切り離しの通知を受け取ったNIC追加/切り離し制御部140は、内部のシステム構成情報を更新し、その内容をプログラム間通信を利用して、トランキング機構部120cへ通知する。通知を受けたトランキング機構部120cは、該当のNIC135の情報を分散アルゴリズムテーブル121cから削除することでトランキング対象から外す。その後、サーバコンピュータ100c側からはNIC135を使用しないで送信分散が行われる。
また、受信に関しては、トランキング機構部120cからクライアントコンピュータ300,300a,300b,300cへ、NIC135を対象からはずすように更新した分散アルゴリズム通知パケット(パケットの種別が削除)を送信する。これにより、各クライアントコンピュータ300,300a,300b,300cのトランキング機構部が、内部の分散アルゴリズムテーブルからNIC135の情報を削除する。以後、クライアントコンピュータ300,300a,300b,300cからサーバコンピュータ100cに送信されるデータは、NIC135以外のNIC131c,132c,133c,134cが使用される。
その後、スイッチングハブ200の該当LANポートから接続ケーブルを外して、NIC135の削除が完了する。
この動作は、アプリケーションの通信とは独立して並列に実行されるため、それまでやりとりされている他のNIC上の通信データには影響がない。また、スイッチングハブ200側も一旦設定をリセットして再起動する等の必要がないため、通信を継続させたままの状態で、データ転送帯域を動的に縮小することが可能である。
このように、サーバコンピュータ100cの運用を停止させずにNICの追加実装や取り外しが可能となるため、サーバコンピュータ100cとスイッチングハブ200との間の帯域幅の調整が容易となる。すなわち、データ通信量が過大となり帯域幅が不足してきた場合、NICを追加して、運用を継続したまま帯域幅の拡大が可能となる。
なお、上記の各実施の形態を実現するために、サーバコンピュータが有すべき機能の処理内容を記述したサーバプログラム、およびクライアントコンピュータが有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをコンピュータで実行することにより、上記実施の形態に係るサーバコンピュータの処理機能が実現される。また、クライアントプログラムをコンピュータで実行することにより、上記実施の形態に係るクライアントコンピュータの処理機能が実現される。
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(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 disc)などがある。
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
以上説明したように本発明では、分散アルゴリズム通知パケットにより複数の通信インタフェースの物理アドレスと分散アルゴリズムとを通信相手コンピュータに通知し、相手のコンピュータにおいて、分散アルゴリズムに従って決定された通信インタフェースの物理アドレス宛に送信データを送信するようにした。これにより、パケットを中継する装置にトランキング機能が無くても、複数の伝送路を用いたトランキングが可能となる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。

Claims (18)

  1. 複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御プログラムにおいて、
    前記コンピュータに、
    前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
    ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
    処理を実行させることを特徴とするデータ通信負荷分散制御プログラム。
  2. 前記分散アルゴリズム通知パケットは、システム起動時にブロードキャストで送信することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  3. データ通信のアプリケーション毎に前記分散アルゴリズムを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  4. 前記通信相手コンピュータ毎に前記分散アルゴリズムを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  5. データ通信のアプリケーション毎に、通信に使用可能な前記通信インタフェースを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  6. 前記通信相手コンピュータ毎に通信に使用可能な前記通信インタフェースを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  7. 前記通信相手コンピュータへの送信データを、前記複数の通信インタフェースに対して分散させて送信することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  8. 前記コンピュータに対して、前記コンピュータと協働して処理を実行する協働コンピュータが接続されている場合、前記協働コンピュータに実装されている協働通信インタフェースの物理アドレスを含めた前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  9. 前記通信相手コンピュータへの送信データを、前記通信インタフェースと前記協働通信インタフェースとに分散させて送信することを特徴とする請求の範囲第8項記載のデータ通信負荷分散制御プログラム。
  10. 前記コンピュータに対して新たな通信インタフェースが追加されると、追加された前記通信インタフェースの物理アドレスを含み、前記通信インタフェースを分散処理の使用対象に含めることを通知する前記分散アルゴリズム通知パケットを生成し、
    生成した前記分散アルゴリズム通知パケットを前記通信相手コンピュータに送信することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  11. 前記コンピュータから通信インタフェースが取り外されると、取り外された前記通信インタフェースを分散処理の使用対象から除外することを通知する前記分散アルゴリズム通知パケットを生成し、
    生成した前記分散アルゴリズム通知パケットを前記通信相手コンピュータに送信することを特徴とする請求の範囲第1項記載のデータ通信負荷分散制御プログラム。
  12. 複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるための負荷分散データ送信プログラムにおいて、
    コンピュータに、
    前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
    前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
    宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する、
    処理を実行させることを特徴とする負荷分散データ送信プログラム。
  13. 複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御方法において、
    前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
    ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
    処理を実行させることを特徴とするデータ通信負荷分散制御方法。
  14. 複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるためのデータ通信負荷分散方法において、
    前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
    前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
    宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを前記通信相手コンピュータに対して送信する、
    処理を実行させることを特徴とするデータ通信負荷分散方法。
  15. 実装された複数の通信インタフェース経由の通信負荷を分散させるデータ通信負荷分散制御装置において、
    前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータから送られるデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成するパケット生成手段と、
    ネットワークを介して接続されている前記通信相手コンピュータに対し、前記パケット生成手段で生成された前記分散アルゴリズム通知パケットを送信するパケット送信手段と、
    を有することを特徴とするデータ通信負荷分散制御装置。
  16. 複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させる負荷分散データ送信装置において、
    前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納する格納手段と、
    前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを、前記分散アルゴリズムに従って決定する決定手段と、
    宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する送信手段と、
    を有することを特徴とする負荷分散データ送信装置。
  17. 複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体において、
    前記コンピュータに、
    前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
    ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
    処理を実行させることを特徴とするデータ通信負荷分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
  18. 複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるための負荷分散データ送信プログラムを記録したコンピュータ読み取り可能な記録媒体において、
    前記コンピュータに、
    前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
    前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
    宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する、
    処理を実行させることを特徴とする負荷分散データ送信プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2004570184A 2003-03-31 2003-03-31 データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法 Expired - Fee Related JP3792707B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/004148 WO2004088931A1 (ja) 2003-03-31 2003-03-31 データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法

Publications (2)

Publication Number Publication Date
JP3792707B2 JP3792707B2 (ja) 2006-07-05
JPWO2004088931A1 true JPWO2004088931A1 (ja) 2006-07-06

Family

ID=33105370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004570184A Expired - Fee Related JP3792707B2 (ja) 2003-03-31 2003-03-31 データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法

Country Status (6)

Country Link
US (1) US8068498B2 (ja)
JP (1) JP3792707B2 (ja)
CN (1) CN100474833C (ja)
AU (1) AU2003221109A1 (ja)
DE (1) DE10394206T5 (ja)
WO (1) WO2004088931A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101248628A (zh) * 2005-09-02 2008-08-20 富士通株式会社 网络接口控制程序以及网络接口控制装置
WO2007094520A1 (ja) * 2006-02-16 2007-08-23 Nec Corporation ノード、ネットワークシステム、フレーム転送方法及びフレーム転送プログラム
JP4579850B2 (ja) * 2006-03-07 2010-11-10 富士通株式会社 ブレード型システムおよびコネクション管理方法
US20070237084A1 (en) * 2006-03-29 2007-10-11 Rothman Michael A Data communication using multiple input/output devices
US7813286B2 (en) * 2006-08-30 2010-10-12 Hewlett-Packard Development Company, L.P. Method and system of distributing multicast group join request in computer systems operating with teamed communication ports
US7649892B2 (en) * 2006-08-30 2010-01-19 Hewlett-Packard Development Company, L.P. Method and system of network communication receive load balancing
JP5585660B2 (ja) 2010-10-14 2014-09-10 日本電気株式会社 通信システム、制御装置、処理規則の設定方法およびプログラム
US8694618B2 (en) 2011-04-13 2014-04-08 Microsoft Corporation Maximizing data transfer through multiple network devices
US8627412B2 (en) 2011-04-14 2014-01-07 Microsoft Corporation Transparent database connection reconnect
CN103297354B (zh) * 2012-03-02 2017-05-03 日电(中国)有限公司 服务器互连系统、服务器和数据转发方法
EP3304865B1 (en) 2015-05-26 2021-01-13 Idevices, LLC Systems and methods for server failover and load balancing
US11050746B2 (en) 2019-01-29 2021-06-29 Cisco Technology, Inc. Media access control (MAC) address anonymization based on allocations by network controller elements
US11973823B1 (en) * 2023-01-11 2024-04-30 Dell Products L.P. Offloading namespace redirection to backup clients in a scale out cluster

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07245619A (ja) * 1994-03-03 1995-09-19 Hitachi Ltd Lanシステムの制御方法
US5617417A (en) * 1994-09-07 1997-04-01 Stratacom, Inc. Asynchronous transfer mode communication in inverse multiplexing over multiple communication links
US5608733A (en) * 1994-11-29 1997-03-04 Valle; Richard ATM inverse multiplexing
US6016319A (en) * 1995-10-31 2000-01-18 Lucent Technologies, Inc. Communications system for transmission of datagram packets over connection-oriented networks
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6151297A (en) 1997-07-08 2000-11-21 Hewlett-Packard Company Method and system for link level server/switch trunking
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US7197044B1 (en) * 1999-03-17 2007-03-27 Broadcom Corporation Method for managing congestion in a network switch
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards
US6560630B1 (en) * 1999-03-18 2003-05-06 3Com Corporation Receive load balancing and fail over with multiple network interface cards
US6553028B1 (en) * 1999-04-30 2003-04-22 Cisco Technology, Inc. Method and apparatus for multicast switching using a centralized switching engine
US6874147B1 (en) * 1999-11-18 2005-03-29 Intel Corporation Apparatus and method for networking driver protocol enhancement
JP2001292153A (ja) 2000-04-05 2001-10-19 Hitachi Cable Ltd スイッチングハブ
US20030028644A1 (en) * 2001-08-02 2003-02-06 Patrick Maguire System and method for load sharing within a core network
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
US20040151111A1 (en) * 2003-01-31 2004-08-05 Yarroll La Monte Resource pooling in an Internet Protocol-based communication system

Also Published As

Publication number Publication date
CN1765084A (zh) 2006-04-26
CN100474833C (zh) 2009-04-01
DE10394206T5 (de) 2006-03-30
US8068498B2 (en) 2011-11-29
US20060013224A1 (en) 2006-01-19
AU2003221109A1 (en) 2004-10-25
JP3792707B2 (ja) 2006-07-05
WO2004088931A1 (ja) 2004-10-14

Similar Documents

Publication Publication Date Title
TWI839379B (zh) 在網路路由環境中的單節點和多節點資料儲存空間架構
US10491523B2 (en) Load distribution in data networks
US8068498B2 (en) Computer readable record medium on which data communication load distribution control program is recorded and data load distribution control method
US7222150B1 (en) Network server card and method for handling requests received via a network interface
CN100544342C (zh) 存储系统
US20150052252A1 (en) Method and system for optimizing a network by independently scaling control segments and data flow
US8578053B2 (en) NAS load balancing system
JP4658412B2 (ja) データ共有装置
JP2010050988A (ja) 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術
JP2004192305A (ja) iSCSIストレージ管理方法及び管理システム
JP2001526814A (ja) 分散型キャッシュ、プリフェッチ、複写の方法およびそのシステム
EP2343867B1 (en) System and method of reducing intranet traffic on bottleneck links in a telecommunications network
KR100834361B1 (ko) 단일 시스템에서 효율적으로 지원하는 다중 원시 네트워크 프로토콜 구현
JP5034495B2 (ja) ストレージシステムとプログラム並びに方法
JPH04275742A (ja) データ・パケツトの転送システム及びデータ・パケツトの転送方法
JP3609948B2 (ja) マルチプロトコルネットワーク管理方法、マルチプロトコルネットワーク管理プロキシサーバシステム、マルチプロトコルアドレス管理サーバシステム、および、マルチプロトコルネットワーク管理システム
JP4133738B2 (ja) 高速ネットワークアドレス引継ぎ方法、ネットワーク装置及びプログラム
JP2006100906A (ja) ネットワークシステムの運用管理方法及びストレージ装置
KR100650003B1 (ko) 데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산제어 방법
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
WO2024129061A1 (en) Seamless nfs server pod addition
JP3708085B2 (ja) Dns問い合わせ装置およびdns問い合わせ方法

Legal Events

Date Code Title Description
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: 20060404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060405

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140414

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees