JP2022050512A - コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム - Google Patents

コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム Download PDF

Info

Publication number
JP2022050512A
JP2022050512A JP2021215255A JP2021215255A JP2022050512A JP 2022050512 A JP2022050512 A JP 2022050512A JP 2021215255 A JP2021215255 A JP 2021215255A JP 2021215255 A JP2021215255 A JP 2021215255A JP 2022050512 A JP2022050512 A JP 2022050512A
Authority
JP
Japan
Prior art keywords
adapter
server
agent
interface
network
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.)
Pending
Application number
JP2021215255A
Other languages
English (en)
Inventor
ハンコ、ジェイムス・ジー
G Hanko James
アンケル、クリストファー
Unkel Christopher
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.)
Twitter Inc
Original Assignee
Twitter Inc
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 Twitter Inc filed Critical Twitter Inc
Publication of JP2022050512A publication Critical patent/JP2022050512A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • 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/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • 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
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • 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
    • 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

Abstract

Figure 2022050512000001
【課題】ネットワーク中のトラフィックの不均衡を改善するシステムを提供する。
【解決手段】システムにおいて、コンバージドネットワークに接続された少なくとも1つの計算装置(サーバ)は、少なくとも1つのアダプタにより接続された少なくとも1つの記憶装置にアクセスする。サーバに組み込まれたサーバエージェント及びアダプタに組み込まれたエージェントは、コンバージドネットワーク中の記憶及びデータトラフィックの不均衡を検出及び応答を行うよう構成され、不均衡を減少させ、それにより、データ通信及び記憶トラフィックの全体的なネットワーク性能を改善する。各エージェントは、アダプタのエージェントがサーバのエージェントからの要求又は通知に応答する場合を除いて自律的に動作する。
【選択図】図1

Description

本発明は、ネットワークに接続された計算装置がアダプタを介してネットワークに接続
された記憶装置にアクセスする方法及びシステム、並びにこのような方法及びシステムを
実行するための装置に関する。いくつかの実施形態では、本発明は、ネットワークに接続
された計算装置(サーバ)が、アダプタによりネットワークに接続された記憶装置にアク
セスするようなシステムにおいて記憶データトラフィックを(例えば、最適化により)均
衡化することに関する。
これまで、データセンターは一般に、まったく別の2つのインフラ基盤、すなわち、(
一般にイーサネット(登録商標)を基にした)データ通信、及び、記憶装置アクセスのた
めの別の「記憶」ネットワークにより実施していた。一般的な記憶ネットワークは、従来
のファイバーチャネルプロトコルにより実施していた。「データ通信ネットワーク」及び
「データネットワーク」の表現は、記憶ネットワークは本来「記憶データ」トラフィック
(ここで、「記憶データ」は、少なくとも1つの記憶装置から取り出すかまたはこの記憶
装置に保存するデータを意味する)を支えるための構造でありそのために採用されている
点、及び、データネットワークは他のデータトラフィック(すなわち、記憶データではな
いデータ)を支えるための構造でありそのために採用されている点で、「記憶ネットワー
ク」のクラスから区別されるクラスでのネットワークを意味する類義語として用いられる
しかしながら、(例えば、データネットワークと記憶ネットワークを別にした)複数ネ
ットワークタイプの実施は、データセンターを稼働させるための資本コスト及び運転コス
トを増大させるので好ましくない。
最近、多くのデータセンターは、記憶データトラフィック及び他の(記憶データトラフ
ィックではない)トラフィックの両方を通過する単一ネットワークの使用について調査を
始めている(使用を開始しているデータセンターもある)。そのような単一ネットワーク
をここでは、「コンバージドネットワーク」と称することとする。コンバージドネットワ
ークの一例は、ネットワークに接続されたサーバと、ネットワークに接続された記憶装置
との間ですべてのトラフィックが送信されるイーサネットベースのネットワークである。
残念ながら、コンバージドネットワークを介して送信される2つのタイプのネットワーク
トラフィック(記憶データトラフィックと他のデータトラフィック)は異なる特性を有す
る。
データネットワーク(例えば、インターネットプロトコルと同時にイーサネットを実装
するようなネットワーク)は、記憶データトラフィック以外のトラフィックを通信するた
めに、管理しないネットワーク又は最低限の管理しかしないネットワークとして実装する
ことができる(これが通常である)。これにより、データネットワークにコンピュータや
他のハードウェアを追加したり取り除いたりすることが簡単になる。例えば、DHCPプ
ロトコルにより、一般に、データネットワーク上で動作させるのに必要な情報のすべてを
新しい装置に(人的介入なしに)提供することができる。
しかしながら、ネットワークループは、データネットワークに深刻な問題(すなわち、
確実に失われるパケットの転送を続ける)を生じさせることがある。このため、データネ
ットワークはしばしば、データネットワーク上の2つの装置間での経路を唯一つのみ決定
するためのプロトコル(例えば、スパニングツリープロトコル)を導入する。余分なデー
タ経路がデータネットワーク上に明示的に設定されることはめったにない。さらに、デー
タネットワーク上のトラフィックは比較的予測不可能であり、アプリケーションは、通常
、どのような帯域幅がデータネットワーク上で利用可能であっても許容できるよう記述さ
れる。
一方、記憶ネットワークは通常管理されているネットワークである。ネットワーク管理
者は、どのコンピュータが記憶ネットワーク上のどの記憶装置と通信することができるか
を手動で割りつける(すなわち、通常、自己構成機能を持たない)。(データネットワー
クとは別に隔離されている記憶ネットワークにおいて)現段階ではネットワーク接続を条
件が変わったときでも対応可能にするような進歩は、ほとんどない。さらに、低レベルの
データ記憶装置に一般に必要とされる高レベルの利用可能性及び障害に対する耐性を提供
するために、(記憶ネットワークに接続された)記憶装置とコンピュータとの間に、完全
な余分な経路を作る。
記憶ネットワーク(及び記憶データトラフィック)とデータネットワーク(及び記憶デ
ータトラフィック以外のトラフィック)との間に差異があるため、コンバージドネットワ
ーク中で記憶データトラフィックと他のトラフィックとを統合すると、ネットワークの利
用に不均衡が生じる可能性があり、これによりデータセンター中のアプリケーションの全
体的な性能を損なうことがある。本願発明の一般的な実施形態では、コンバージドネット
ワークの利用におけるそのような不均衡に対処し、例えば、データセンターのアプリケー
ションが最大の性能を発揮できるようにすることを目標とする。
以下の定義は、特許請求の範囲を含む、この明細書全体に適用される。
「記憶装置」は、データを記憶させ、取り出すよう構成された装置を意味する(例えば
、ディスクドライブ)。一般に、論理ブロックアドレス(LBA)及び複数のブロックを
用いて記憶装置にアクセスする。論理ブロックは、一定の固定サイズの記憶容量(例えば
、512バイト又は4096バイト)の総体的な塊である。伝統的な回転式のディスクド
ライブはこの「記憶装置」の例である。
「サーバ」は、データ(例えば、ファイル及び/又はアプリケーション)を記憶させ、
取り出すためにネットワーク(コンバージドネットワーク)を介して記憶装置にアクセス
しこれを使用するよう構成された計算装置を意味する。
「アダプタ」は、記憶装置、又は2以上の記憶装置からなる記憶システム(例えば、J
BOD)をネットワーク(例えば、コンバージドネットワーク)に接続するよう構成され
た装置を意味する。本発明の一般的な実施形態において、各記憶装置は、記憶装置に記憶
されたデータへのアクセスが故障に対する耐性を有するようにするために、通常は2以上
のアダプタを介してサーバにアクセス可能となっている。
「インタフェース」は、装置(サーバ又はアダプタ)をネットワーク(例えば、コンバ
ージドネットワーク)に接続させるためのサーバ又はアダプタの構成要素を意味する。イ
ンタフェースの例として物理的装置(すなわち、ネットワークインタフェースコントロー
ラ(NIC))、及び、ソフトウェア的に定義される(リンク集合体に関して)複数のN
ICのラッパーがあげられる。本発明の一般的な実施形態において、インタフェースは、
コンバージドネットワーク中にインターネットプロトコル(IP)アドレスを有するハー
ドウェア又はソフトウェア要素である。
「エージェント」は、ネットワーク(例えば、コンバージドネットワーク)上の記憶デ
ータトラフィックの交換(又は交換の準備)をするためサーバ(又はアダプタ)が動作し
ている間、サーバ(又はアダプタ)上で実行するよう構成された、サーバ(又はアダプタ
)のソフトウェア又はハードウェア構成要素又はサブシステムを意味する。本発明のいく
つかの実施形態では、コンバージドネットワーク上のすべてのサーバ及びアダプタがエー
ジェントを有するわけではない。しかしながら、関係のないサーバ及び/又はアダプタ(
エージェントなしのサーバ及び/又はアダプタ)のネットワークへの接続により、(本発
明の実施形態により)達成することのできる、均衡の程度を制限する可能性がある。
「データ経路」は、アダプタ及びサーバの各々にある1つのインタフェースを用いて、
アダプタを介して記憶装置とサーバとの間でデータが送信される経路を意味する(すなわ
ち、アダプタインタフェースを通り、そしてサーバインタフェースを通る、記憶装置から
サーバへの経路、又は、サーバインタフェース、そしてアダプタインタフェースを通る、
サーバから記憶装置への経路)。IPネットワークにおいて、データ経路は一般に、サー
バのインタフェースのIPアドレスとアダプタのインタフェースのIPアドレスとの組み
合わせにより表示され、或いは、アダプタで用いられるポート番号でも表示される。しか
しながら、リンクの集合体の場合において、すべての経路は、1つのIPアドレスに割り
当てられたインタフェースのグループ内の経路に用いられる実際のインタフェースに依存
することになる。
2以上の記憶装置からなる記憶システム(例えば、JBOD)が1つのアダプタに接続
され、アダプタ及びサーバの両方がコンバージドネットワークに接続されているとき、我
々は、サーバは(記憶システムの記憶装置にアクセスするために)、記憶システムの具体
的な記憶装置(例えば、JBODの1つのディスクドライブ)及びサーバと記憶装置との
データ経路を一般的に特定する(すなわち、使用するよう構成されている)ことを想定す
る。本願発明の一般的な実施形態によれば、データ経路は、ネットワーク上の記憶データ
トラフィックの均衡をとるために時々変更されることがある。本願発明のいくつかの実施
形態によれば、(サーバと記憶システムとの間の)データ経路は、ネットワーク上の記憶
データトラフィックを均衡させるために時々変更されることがある(また、サーバにアク
セスされる記憶システムの特定の装置のアダプタによる選択は、時々変更されることがあ
るが、このような変更は、必ずしも本発明により決定されるものではない)。
一般に、記憶データトラフィックがコンバージドネットワーク上で他のデータトラフィ
ックと統合されたとき、異なるタイプのトラフィックの特性が交りあうことになり、結果
としてネットワークの全体的な帯域幅の非効率的な使用となり、データ通信トラフィック
及び/又は記憶トラフィックの能力の制限となる。
例えば、最近のサーバコンピュータが2以上の1Gbps又は10Gbpsネットワー
クインタフェースを有することは普通である(ここで、サーバがコンバージドネットワー
クに接続されることを表す意味において「インタフェース」の語を使う)。多くのこのよ
うなサーバは、膨大な量のデータに絡んだ問題を解決するために、多数のサーバを同時に
働かせることのできるソフトウェアパッケージ(例えば、Hadoopオープンソースソ
フトウェアパッケージ)を実行する。しかしながら、そのようなソフトウェア(例えば、
Hadoop)は、一般に、各サーバが一意的な名前とアドレスを有することを要求する
。したがって、ソフトウェア(例えば、Hadoop)を実行するサーバ間のデータ通信
トラフィックは、一般に、各サーバで利用可能な2つ(又はそれ以上の)のネットワーク
接続のうちの1つのみを用いる。
一方、記憶データトラフィックは、通常、どれかの構成要素が故障した場合でも作動可
能にするため、サーバとディスクドライブとの間に通常余分な経路を有するよう構成され
る。このような余分な経路を、データ通信トラフィック(非記憶型トラフィック)により
ネットワークインタフェースが多忙となるのを回避するために、記憶データトラフィック
(例えば、ネットワークインタフェース間に広がった記憶データトラフィック)の経路を
変更するのに用いることができる。しかしながら、この変更を実施する標準的な機構(例
えば、多経路I/O又は「MPIO」方法)では、コンバージドネットワーク上の記憶デ
ータトラフィックのパフォーマンスに厳しく不利な条件を作り出す。具体的には、通常の
記憶データ負荷分散機構は、ラウンドロビン方式ですべての利用可能なインタフェースに
記憶命令を送信すること、又は(例えば、未処理命令の数、又は未処理バイトの数、又は
他の方法で)各リンクでどれだけの作業が未処理になっているかの測定をおこない、「最
も忙しくない」インタフェースに命令を送信することに基づく。これらの機構がサーバと
ディスクドライブとの間の記憶データトラフィックにおいて性能発揮に大きな不利益をも
たらす理由は、最大性能を得るために、ディスクドライブで実行される命令は、ディスク
上の連続的な位置に送られなければならないからである。命令が連続的な位置に送られな
い場合は、新しい位置にディスクドライブのリード/ライトヘッドを動かすために「シー
ク」操作が必要となる。そのようなシーク操作の各々は、全体的な性能を約1%以上下げ
ている。従来の分散機構(ラウンドロビン又は「最も忙しくない」分散機構)は、しばし
ば次々と連続した命令がサーバからディスクドライブへの異なる経路を取るようにするの
で、ディスクにアクセスする一連の命令を実行するために必要なシークの数を増大させる
。異なる経路とすることは、(各経路で他の操作を行うため)異なる処理時間と待ち時間
を有することになり、ある順序で出された命令がしばしば異なる順序で実行されることに
なる。順序変更により、シークが必要となり、それにより全体的なデータ移送能力が減少
する。これらの従来の分散機構は、Hadoop記憶操作に適用する場合、記憶データト
ラフィックの全体的性能をおよそ75%減少させる現象がみられる(すなわち、伝達する
ことのできる記憶データの量が、ラウンドロビン又は最も忙しくない機構を用いないこと
が可能な場合の量の約25%となる)。
「リンクアグリゲーション」として知られる従来の他の技術には、第1の装置をネット
ワークに接続するのに利用可能な複数のインタフェースを有する第1の装置(一般的に、
サーバ)と、第2の装置をネットワークに接続するのに利用可能な複数のインタフェース
を有する第2の装置(一般的に、もう一つのサーバ)との間や、これらの装置をネットワ
ークに接続するのに利用可能なすべてのインタフェースの間で、しばしばトラフィックを
分割するのに用いられる。リンクアグリゲーションによれば、一種の負荷均衡を行うため
、第1の装置のインタフェースの1つと第2の装置のインタフェースの1つを(例えば、
ランダム又は疑似乱数による方法で)新たに選択した後、各データ値の新たな流れ(すな
わち、順序を狂わせて伝達されることのない新たな各データ値の列)が、1つの装置の選
択されたインタフェースから、ネットワークを通じて、他の装置の選択されたインタフェ
ースへ伝達される。これにより、(多くの流れにより平均化された)データ通信トラフィ
ックがすべての利用可能なインタフェースを使うことができ、(1つのインタフェースが
故障しない限り)各インタフェースで転送されたデータ量の間での大まかな均衡を維持す
ることになる。
従来、記憶データをネットワークを介して伝送するためにリンクアグリゲーションを行
うことは推奨されていない。しかしながら、サーバの複数インタフェースとアダプタの複
数インタフェースとの間のコンバージドネットワークで記憶データトラフィックを均衡さ
せる試みにおいて(従来推奨されていた方法に反して)リンクアグリゲーションの形式が
用いられた場合でも、このようなリンクアグリゲーションは、コンバージドネットワーク
中の記憶データトラフィックにおける顕著な不均衡を抑制しない。顕著な不均衡は、記憶
トラフィックの障害に対する許容性を維持するために必要な設計上の判断の結果生じる。
つまり、サーバから(少なくとも1つのアダプタを介して)各記憶装置への完全に余分な
経路が必要になるということは、各記憶装置(又は、複数の記憶装置を具備する記憶サブ
システム)が、それぞれ記憶装置(又は記憶サブシステム)をネットワークに接続する2
つの完全に別々のネットワーク接続装置(すなわち、2つの別々のアダプタ)によりネッ
トワークに接続されなければならないことを必要とする。そうでなければ、アダプタがた
だ1つだけという場合、アダプタの故障により記憶装置(又は、サブシステム)が利用で
きなくなってしまう。このようなアダプタの各々を別々の装置にしなければならないので
、リンクアグリゲーションは、同じ記憶装置(又は、記憶サブシステム)に余分なデータ
経路を提供する2つのアダプタ間の負荷を均衡させることはできず、又、1つのアダプタ
を通る記憶データトラフィックにおける、同じ記憶装置(又は、記憶サブシステム)に余
分なデータ経路を提供する他のアダプタを通る記憶データトラフィックと比較して、顕著
な不均衡を抑制することができない。アダプタが別々の装置なので、1つは、同じ記憶装
置にアクセスする他のアダプタより忙しく、したがって遅くなることがある。一方、本発
明の一般的な実施形態では、コンバージドネットワークにおいて、リンクアグリゲーショ
ンを使っている時でも、記憶データトラフィックの不均衡を緩和することができる(そし
て記憶トラフィックの顕著な不均衡を抑制する)。
ここで、システム(例えば、ネットワーク、又は、ネットワークに接続された装置、又
は、ネットワークに接続することができる装置のネットワークインタフェース)の「帯域
幅」なる用語は、システムの「消費された帯域幅」又はシステムの「利用可能な帯域幅」
を意味する。ここで、システムの「消費された帯域幅」なる用語はシステムを通るデータ
レート(ビットレート)を意味する(例えば、システムでデータトラフィックが生じるレ
ート、又は、ある時間間隔における、システムでデータトラフィックが生じるレートの平
均又は統計的特徴付けを行ったレート)をいう。ここで、システムの「利用可能な全帯域
幅」なる用語は、システムの可能な最大データレート(ビットレート)(すなわち、デー
タトラフィックがシステムで生じることのある最大レート)を意味する。ここで、システ
ムの「利用可能な帯域幅」とは、システムの利用可能な全帯域幅からシステムの消費され
た帯域幅をマイナスしたものを意味する。
いくつかの実施形態では、本発明は、コンバージドネットワークに接続された計算装置
(ここでは「サーバ」と称される)が(アダプタにより)前記ネットワークに接続された
記憶装置にアクセスするシステムにおいて、記憶データトラフィックを均衡させる方法(
例えば、記憶データトラフィックを最適化する試み)である。前記サーバに組み込まれた
ひと組のエージェント(「サーバエージェント」)及び前記アダプタに組み込まれたひと
組のエージェント(「アダプタエージェント」)は、ネットワーク全体において、記憶及
びデータトラフィックの不均衡を検出し応答するよう、及び記憶データトラフィックを経
路変更して前記不均衡を減少させ、それにより(データ通信及び記憶トラフィックに関す
る)ネットワーク全体の性能を改善するよう構成される。他の実施形態にはこのような方
法を実行するよう構成されたシステム、及びこのような方法を実施するよう、又はこのよ
うなシステムに用いるよう構成された装置が含まれる。
一般的に、前記エージェント(サーバエージェント及びアダプタエージェント)は、(
アダプタエージェントについては、いくつかの環境ではサーバエージェントからの要求又
は通知に応答する点を除いて)自律的に動作し、中央のコンピュータ又はマネージャーが
前記エージェントの操作を指揮することはない。一般的に、アダプタエージェントは、サ
ーバエージェントと、(それらが組み込まれた)前記アダプタ及びサーバが少なくとも1
つの記憶装置に記憶データ経路を提供するときに、直接相互作用のみをおこない、サーバ
エージェントは、他のサーバエージェントと直接通信することはなく、アダプタエージェ
ントは他のアダプタエージェントと直接通信することはない。それにもかかわらず、本発
明の一般的な実施形態では、全体的なネットワークトラフィックを均衡させ、動作の不安
定化を避けるために、前記すべてのエージェントは前記他のエージェントの動作に反応し
、および、影響を与えることができる。加えて、ネットワークに接続されたいずれかの装
置が故障した場合、ネットワークに接続された生き残った装置が中断することなくネット
ワークトラフィックを均衡させる動作を続ける(そして、前記故障による不具合の調整を
行う)。
一般的な実施形態によれば、コンバージドネットワークによる記憶データトラフィック
は、(サーバ間、アダプタ間、又はアダプタから2以上のサーバまでではなく)アダプタ
とサーバとの間の各データ経路の終点間のみで行われる均衡を保つための通信によって、
完全に分散化された方法で均衡が保たれている。関連物(すなわち、サーバインタフェー
ス、サーバエージェント、アダプタインタフェース、又はアダプタエージェント)が故障
したとしても、その関連物が構成員になっている経路にのみ影響を与える。一般に、サー
バエージェントとアダプタエージェントとの間の1対1通信のみがある(例えば、サーバ
エージェントは2以上のアダプタエージェントとこの通信を共有しない)。一方、複数の
記憶装置及び複数のサーバ間で記憶データトラフィックの均衡を保つ従来の方法は、この
方法のように分散化されていない。
一般的な実施形態によれば、前記サーバエージェント及びアダプタエージェントは、前
記ネットワークの状態についての情報を収集するよう動作し、(適切な状況で)サーバに
記憶装置へのすべてのトラフィックを(前記サーバと前記記憶装置との間の)1つのデー
タ経路から、ネットワークの不均衡を低減するために選ばれた(前記サーバと前記記憶装
置との間の)別のデータ経路へと変更させる。
本発明の方法の一般的な実施形態において、他の仕組み(例えば、管理又は割り当ての
プロセス)が、各サーバ(及びそのエージェント)に、それらと各記憶装置(たとえばデ
ィスクドライブ)との間で用いられるデータ経路の全てを告知しており、サーバは記憶装
置との間でデータを送受信できるように設けられていることを想定している。通常は更に
、各サーバ(及び、そのエージェント)には、サーバと記憶装置との間で、(例えば、ネ
ットワークの統計処理に基づいて、又は決定論的方法により判断されて(例えば、最下位
のIPを有するアダプタインタフェースへの経路))、好ましいデータ経路が通知される
一実施形態において、本発明は、少なくとも1つのサーバインタフェースを有する少な
くとも1つのサーバを含み、前記サーバは、サーバインタフェースによりコンバージドネ
ットワークに接続されるよう構成され、又、前記サーバは、サーバエージェントと、少な
くとも1つの記憶装置と、前記記憶装置に接続されるよう構成され、少なくとも1つのア
ダプタインタフェース(及び、任意的に、少なくとも1つのアダプタインタフェースを有
し前記ネットワークに前記記憶装置を接続するよう構成された、少なくとも1つの別のア
ダプタ)を有する少なくとも1つのアダプタと、を含むよう構成され、そして、前記アダ
プタは、前記アダプタインタフェースを介して前記ネットワークに前記記憶装置を接続さ
せるよう構成され、前記アダプタはアダプタエージェントを含むよう構成される。
アダプタエージェントは、接続され、
前記アダプタインタフェースの各々について過負荷になっているか否かを判断し、前記
アダプタインタフェースの各々についてアダプタインタフェース過負荷表示を生成し、こ
こで、前記アダプタインタフェースの各々について前記アダプタインタフェース過負荷表
示は、前記アダプタインタフェースが過負荷になっているか否かを表示し、
少なくとも1つの前記アダプタインタフェース過負荷表示を、前記サーバエージェント
からの要求に応じて(例えば、前記サーバエージェントからの要求に応じて、前記アダプ
タインタフェースの少なくとも1つに、少なくとも1つの前記アダプタインタフェース過
負荷表示を示すデータを、前記アダプタにアサートさせることを)、前記サーバエージェ
ントに報告するよう、構成される。
サーバエージェントは、接続され、
前記サーバに、前記アダプタエージェントへの要求をアサートさせ、前記要求に応答し
て前記アダプタエージェントによりアサートされた少なくとも1つのアダプタインタフェ
ース過負荷表示を特定させ、
前記サーバインタフェースを含む経路であり、前記アダプタを介して前記記憶装置に前
記サーバがアクセスする経路について、前記アダプタインタフェース過負荷表示を用いる
方法で、前記経路が過負荷か否かを判断するよう構成される。
いくつかの実施形態では、前記サーバエージェントは、接続され、
次の使用のために前記記憶装置への新たな経路を選択すべきか否かを判断すること、及
び、
新たな経路が選択すべきとの判断により、前記サーバに前記サーバと前記記憶装置の間
の記憶データトラフィックの経路を変更させること、
を含むステップにより前記経路が過負荷であることの判断に応じるよう構成される。好
ましくは、前記サーバエージェントは、接続され、前記サーバに、前記サーバと前記記憶
装置の間の記憶データトラフィックの経路を新たな経路に変更させた後、新たな経路への
変化の影響が前記アダプタエージェントの各アダプタインタフェースのトラフィックの前
記各アダプタエージェントにより継続中の監視の結果に反映されるようになるまで十分な
時間間隔だけ待機し、そして、待機した後、前記新たな経路以外の少なくとも1つの経路
を含む、前記記憶装置への経路の評価(例えば、再評価)を開始するよう構成される。好
ましい実施形態では、前記待機のための時間間隔は、所定の最大待機時間及び最少待機時
間の制約を受けつつ、選択された間隔の標準変量として選択されたランダムな数値(例え
ば、10秒)に決定される。
いくつかの実施形態では、前記システムは、前記記憶装置を前記ネットワークに接続さ
せるよう構成された第1のアダプタと、前記記憶装置を前記ネットワークに接続させるよ
う構成された第2のアダプタと、(随意的に、前記記憶装置を前記ネットワークに接続さ
せるよう構成された少なくとも1つの他のアダプタと)を含み、前記第1のアダプタは少
なくとも1つの第1のアダプタインタフェースを含み、前記第2のアダプタは少なくとも
1つの第2のアダプタインタフェースを含み、前記第1のアダプタは第1のアダプタエー
ジェントを含み、前記第2のアダプタは第2のアダプタエージェントを含み、前記サーバ
エージェントは、接続され、
前記サーバインタフェースの各々に生じるデータトラフィック(例えば、受信トラフィ
ック及び送信トラフィック)を監視し、前記サーバインタフェースの各々で消費された帯
域幅を判断し、前記サーバインタフェースの各々で消費された帯域幅から、前記サーバイ
ンタフェースの各々で利用可能な帯域幅を判断し、そして、
前記サーバから前記第1のアダプタへアサートされた要求に応答して前記第1のアダプ
タエージェントにより前記サーバへ提供された少なくとも1つの利用可能な帯域幅表示を
特定し、ここで、前記利用可能な帯域幅表示の各々は、1つの前記第1のアダプタインタ
フェースの利用可能な帯域幅の表示であることを特徴とし、そして、前記サーバから前記
第2のアダプタへアサートされた要求に応答して前記第2のアダプタエージェントにより
前記サーバへ提供された少なくとも1つの付加的な利用可能な帯域幅表示を特定し、ここ
で、前記利用可能な帯域幅表示の各々は、1つの前記第2のアダプタインタフェースの利
用可能な帯域幅の表示であることを特徴とし、そして、
前記サーバインタフェース及び前記第2のアダプタの前記第2のアダプタインタフェー
スの1つを、前記最小限の前記サーバインタフェース上の前記利用可能な帯域幅及び前記
1つの前記第2のアダプタインタフェースの利用可能な帯域幅として含む経路上の利用可
能な帯域幅を判断する、よう構成される。
随意的に、アダプタエージェントもまた接続され、
前記アダプタインタフェースの各々に生じるデータトラフィック(例えば、受信トラフ
ィック及び送信トラフィック)を監視し、前記アダプタインタフェースの各々での消費さ
れた帯域幅表示を生成し、ここで、前記アダプタインタフェースの各々での前記消費され
た帯域幅表示は、前記アダプタインタフェースの消費された帯域幅の表示であり、そして

前記アダプタインタフェースの各々での利用可能な帯域幅表示を生成し、ここで、前記
アダプタインタフェースでの前記利用可能な帯域幅表示は、前記アダプタインタフェース
の利用可能な帯域幅の表示であり、そして、
前記サーバエージェントからの要求に応答して、少なくとも1つの前記アダプタインタ
フェース過負荷表示、及び少なくとも1つの前記消費された帯域幅表示及び/又は少なく
とも1つの前記利用可能な帯域幅表示を前記サーバエージェントに報告する(例えば、前
記サーバエージェントからの要求に応答して、前記アダプタに、少なくとも1つの前記ア
ダプタインタフェースに、少なくとも1つの前記アダプタインタフェース過負荷表示、及
び少なくとも1つの前記消費された帯域幅表示及び/又は少なくとも1つの利用可能な帯
域幅表示を表示するデータをアサートさせる)よう構成される。
随意的に、前記アダプタエージェントもまた、接続され、
前記アダプタの容量を推定し、付加的データ(例えば、前記アダプタの計算負荷容量)
を処理し、
生の過負荷表示値にフィルターを掛け、フィルターを掛けた過負荷値を生成し、ここで
、前記生の過負荷表示値は、測定された過負荷を表示し、前記フィルターを掛けた過負荷
値は、前記測定された過負荷が不変か否かを表示し、少なくとも1つの前記アダプタイン
タフェース過負荷表示は、前記フィルターを掛けた過負荷値を表示する、よう構成される
いくつかの実施形態では、前記アダプタエージェントは接続され、前記アダプタインタ
フェースの各々での利用可能な帯域幅表示を生成し、ここで、前記アダプタインタフェー
スの各々での利用可能な帯域幅表示は、前記アダプタインタフェースの利用可能な帯域幅
を表示し、エージングにより前記アダプタインタフェースの各々への少なくとも1つの前
記サーバエージェントから受信した計画した付加的帯域幅の使用値を含み、これにより、
前記アダプタインタフェースへのエージングした計画した帯域幅の使用値を生成し、前記
アダプタインタフェースの各々へ、前記アダプタインタフェースへの前記エージングした
計画した帯域幅の使用値の各々の合計を保持する、よう構成される。いくつかのこのよう
な実施形態において、前記アダプタエージェントは接続され、前記アダプタインタフェー
スの利用可能な全帯域幅から、前記アダプタインタフェースの各々への利用可能な帯域幅
表示、前記アダプタインタフェースの消費された帯域幅の少なくとも1つの大きさ、付加
的データを処理するための前記アダプタの容量、及び、前記アダプタインタフェースへの
前記エージングした計画した帯域幅の前記アダプタインタフェースの前記合計を生成する
よう構成される。
いくつかの実施形態では、各サーバは、前記各サーバのサーバエージェントを実行する
ソフトウェアでプログラムされ、各アダプタは、前記各アダプタのアダプタエージェント
を実行するソフトウェアでプログラムされる。いくつかの実施形態では、少なくとも1つ
のサーバエージェント又は少なくとも1つのアダプタエージェントがハードウェアに組み
込まれる(例えば、少なくとも1つの前記サーバは、前記サーバエージェントを実行する
ハードウェアサブシステムを含む)。
本発明の他の形態は、(本発明に係るアダプタエージェントの実施形態を実行するよう
プログラム又は構成された)アダプタ、このようなアダプタと一体化されたディスクドラ
イブ(又は、その他の記憶装置)、このようなアダプタと一体化されたJBOD(又は、
その他の記憶装置システム)、(本発明に係るサーバエージェントの実施形態を実行する
ようプログラム又は構成された)サーバ、本発明に係るサーバエージェントの実施形態の
ハードウェアによる実施形態、及び、本発明に係るアダプタエージェントの実施形態のハ
ードウェアによる実施形態である。
本発明の他の形態は、本発明に係るシステム、アダプタ、記憶装置、JBOD、サーバ
、その他の装置の実施形態の操作において遂行する方法である。
本発明に係るシステムの実施形態のブロック図である。 本発明に係るシステムの他の実施形態のブロック図である。
実施形態の分野において、本発明は、少なくとも1つのサーバインタフェースによりコ
ンバージドネットワークに接続された少なくとも1つのサーバと、少なくとも2つのアダ
プタにより前記ネットワークに接続された少なくとも1つの記憶装置とを含むシステムで
ある。
このようなシステムの一例を図1を参照して記述する。図1のシステムにおいて、サー
バ1及び3(及び随意的に他のサーバも)、及びアダプタ5、7、9、及び11(及び随
意的に他のアダプタも)の各々はコンバージドネットワーク20に接続されている。記憶
サブシステム13は、アダプタ5及び7の各々により、ネットワーク20に接続されてい
る。記憶サブシステム15は、アダプタ9及び11の各々により、ネットワーク20に接
続されている。記憶サブシステム13及び15の各々は、ディスクドライブ又は記憶装置
、或いは、複数の記憶装置からなる記憶サブシステム(例えば、JBOD)とすることが
できる。
サーバ1は、(サーバ1をネットワーク20に接続するよう構成された)インタフェー
ス2を含み、また、サーバ1は、アプリケーションサブシステム4を含むよう構成されて
いる(例えば、アプリケーションサブシステム4を実行するソフトウェアでプログラムさ
れている)。サーバ1もまた、サーバエージェントサブシステム6を含むよう構成されて
いる(例えば、サーバエージェントサブシステム6を実行するソフトウェアでプログラム
されている)。サーバ3は(サーバ3をネットワーク20に接続するよう構成された)イ
ンタフェース8を含み、また、アプリケーションサブシステム10を含むよう構成されて
いる(例えば、アプリケーションサブシステム10を実行するソフトウェアでプログラム
されている)。サーバ3もまた、サーバエージェントサブシステム12を含むよう構成さ
れている(例えば、サーバエージェントサブシステム12を実行するソフトウェアでプロ
グラムされている)。
いくつかの実施形態では、インタフェース2及び8の各々は、物理的装置(即ち、ネッ
トワークインタフェースコントローラ(「NIC」))として実施されている。他の実施
形態では、インタフェース2及び8の各々は、ソフトウェアで定義される複数のNICの
ラッパーとして実施されている。本発明の一般的な実施形態において、インタフェース2
及び8の各々は、自分自身のインターネットプロトコル(IP)アドレスを有するハード
ウェア又はソフトウェア要素となる。
アダプタ5は、アダプタエージェントサブシステム14を含むよう構成されている(例
えば、アダプタエージェントサブシステム14を実行するソフトウェアでプログラムされ
ている)。アダプタ7は、アダプタエージェントサブシステム16を含むよう構成されて
いる(例えば、アダプタエージェントサブシステム16を実行するソフトウェアでプログ
ラムされている)。アダプタ9は、アダプタエージェントサブシステム18を含むよう構
成されている(例えば、アダプタエージェントサブシステム18を実行するソフトウェア
でプログラムされている)。アダプタ11は、アダプタエージェントサブシステム22を
含むよう構成されている(例えば、アダプタエージェントサブシステム22を実行するソ
フトウェアでプログラムされている)。
例示的実施形態において、ネットワーク20はイーサネットネットワークであり、要素
1、3、5、7、9、及び11は、iSCSI(インターネットスモールコンピュータシ
ステムインタフェース)ネットワーキングプロトコルに従いネットワーク20を介して通
信するよう構成されている。iSCSIプロトコルは、LAN、WAN、又はインターネ
ットを介してデータの送信を可能にする、通常のインターネットプロトコルに基づく記憶
ネットワーキング標準である。この例示的実施形態において、要素1、3、5、7、9、
及び11(及びエージェント6、12、14、16、18、及び22)は、サーバ1(又
は3)と任意のアダプタ5、7、9、又は11との間での通信を許容するが、各サーバ(
1又は3)と各アダプタ(5、7、9、又は11)との間では同時に1つの接続経路しか
ない単純な方法(多くの従来型アプリケーションよりはるかに単純な方法)でiSCSI
ネットワークプロトコルを用いる。
前記例示的実施形態において、
アダプタ5は、ネットワーク20を介してサーバ1又は3と通信するためのiSCSI
インタフェースを含む。本発明に基づくアダプタエージェント14とサーバエージェント
6及び12との間の通信は、このiSCSIインタフェースにより実行される。アダプタ
5もまた、サーバ1(又は3)とサブシステム13との間の記憶データトラフィックを実
行するために、よく知られたSerial Attached SCSI(「SAS」)
プロトコルに基づき記憶サブシステム13と通信するよう構成されている。
アダプタ7は、ネットワーク20を介してサーバ1又は3と通信するためのiSCSI
インタフェースを含む。本発明に基づくアダプタエージェント16とサーバエージェント
6及び12との間の通信は、このiSCSIインタフェースにより実行される。アダプタ
7もまた、サーバ1(又は3)とサブシステム13との間の記憶データトラフィックを実
行するために、SASプロトコルに基づき記憶サブシステム13と通信するよう構成され
ている。
アダプタ9は、ネットワーク20を介してサーバ1又は3と通信するためのiSCSI
インタフェースを含む。本発明に基づくアダプタエージェント18とサーバエージェント
6及び12との間の通信は、このiSCSIインタフェースにより実行される。アダプタ
9もまた、サーバ1(又は3)とサブシステム15との間の記憶データトラフィックを実
行するために、SASプロトコルに基づき記憶サブシステム15と通信するよう構成され
ている。
アダプタ11は、ネットワーク20を介してサーバ1又は3と通信するためのiSCS
Iインタフェースを含む。本発明に基づくアダプタエージェント22とサーバエージェン
ト6及び12との間の通信は、このiSCSIインタフェースにより実行される。アダプ
タ11もまた、サーバ1(又は3)とサブシステム15との間の記憶データトラフィック
を実行するために、SASプロトコルに基づき記憶サブシステム15と通信するよう構成
されている。
サーバ1のアプリケーションサブシステム4は、ネットワーク20に接続された記憶装
置(例えば、サブシステム13又は15中の記憶装置)へのアクセスを開始するように構
成されている。サーバ3のアプリケーションサブシステム10は、ネットワーク20に接
続された記憶装置(例えば、サブシステム13又は15中の記憶装置)へのアクセスを開
始するように構成されている。標準的な操作において、1つの要素(例えば、管理処理又
は割り当て処理)は、サーバ1と、このサーバがアクセスし、記憶装置へ又は記憶装置か
らのデータの転送をおこなうことのできる各記憶装置との間で使うことのできるすべての
データ経路を、アプリケーションサブシステム4及びエージェント6に通知しており、ア
プリケーションサブシステム4及びエージェント6には、サーバ1と記憶装置との間の(
サーバ1からアクセスすることのできる各記憶装置への)好ましいデータ経路(例えば、
ネットワークの静的解析に基づき、又は決定論的方法で決定された(例えば、最少IPア
ドレスを有するアダプタインタフェースへの経路))が通知されている。同様に、標準的
な操作において、1つの要素(例えば、管理処理又は割り当て処理)は、サーバ3と、こ
のサーバがアクセスし、記憶装置へ又は記憶装置からのデータの転送をおこなうことので
きる各記憶装置との間で使うことのできるすべてのデータ経路を、アプリケーションサブ
システム10及びエージェント12に通知しており、アプリケーションサブシステム10
及びエージェント12には、サーバ3と記憶装置との間の(サーバ3からアクセスするこ
とのできる各記憶装置への)好ましいデータ経路が通知されている。
一般的な実施形態において、アダプタエージェントサブシステム14、16、18、及
び22(ここでは、アダプタエージェント、又はエージェントとも称す)の各々、及び、
サーバエージェントサブシステム6及び12(ここでは、サーバエージェント、又はエー
ジェントとも称す)の各々は、本発明に基づき(例えば、以下に記載した方法により)構
成され、コンバージドネットワーク20を介して記憶データトラフィック中の不均衡を検
出しこの不均衡に応答し、不均衡を減少させるために記憶データトラフィックを変更し、
それにより、(データ通信及び記憶トラフィックの両方に対して)全体的なネットワーク
性能を向上させる。例えば、一般的な実施形態において、サーバエージェントサブシステ
ム6は、本発明に基づき(例えば、以下に記載した方法により)構成され、ネットワーク
20を介してサーバ1と特定の(サブシステム13又は15中の)記憶装置との間の1つ
のデータ経路から、サーバ1と、同じ特定の記憶装置との間の他のデータ経路へと、記憶
データトラフィックを変えることにより、記憶データトラフィック中の不均衡を(適切な
環境で)検出しこの不均衡に応答する。
本発明によるシステムの他の実施形態が図2に示される。図2のシステムにおいて、サ
ーバ21(及び随意的に他のサーバ)及びアダプタ25、27、29、及び31(及び随
意的に他のアダプタも)は、(図1のネットワーク20と同一としてもよい)コンバージ
ドネットワーク20に接続される。記憶サブシステム23は、アダプタ25及び27の各
々によりネットワーク20に接続されている。記憶サブシステム33は、アダプタ29及
び31の各々によりネットワーク20に接続されている。記憶サブシステム23及び33
の各々は、複数の記憶装置からなる記憶サブシステムである(例えば、各々が複数のディ
スクドライブからなるJBODである)。
サーバ21は、各々が自分自身のインターネットプロトコル(IP)アドレスを有する
ネットワークインタフェースコントローラ(NIC)であり、そしてサーバ21をネット
ワーク20に接続するよう構成された、インタフェース22及び24を含む。サーバ21
は、アプリケーションサブシステム26を含むよう(例えば、アプリケーションサブシス
テム26を実行するソフトウェアでプログラムされるよう)構成され、また、サーバエー
ジェントサブシステム28を含むよう(例えば、サーバエージェントサブシステム28を
実行するソフトウェアでプログラムされるよう)構成される。
アダプタ25は、各々が自分自身のインターネットプロトコル(IP)アドレスを有す
るネットワークインタフェースコントローラ(NIC)であり、そしてアダプタ25をネ
ットワーク20に接続するよう構成された、インタフェース30及び32を含み、アダプ
タ25は、アダプタエージェントサブシステム38を含むよう(例えば、アダプタエージ
ェントサブシステム38を実行するソフトウェアでプログラムされるよう)構成される。
アダプタ25もまた、各々が記憶サブシステム23に接続されたポート34及び36を含
み、(サブシステム23内の)記憶装置を、ポート34又は36のいずれか、及びインタ
フェース30又は32のいずれか、を介して、ネットワーク20に接続するよう構成され
る。
アダプタ27は、各々が自分自身のインターネットプロトコル(IP)アドレスを有す
るネットワークインタフェースコントローラ(NIC)であり、そしてアダプタ27をネ
ットワーク20に接続するよう構成された、インタフェース40及び42を含み、アダプ
タ27は、アダプタエージェントサブシステム48を含むよう(例えば、アダプタエージ
ェントサブシステム48を実行するソフトウェアでプログラムされるよう)構成される。
アダプタ27もまた、各々が記憶サブシステム23に接続されたポート44及び46を含
み、(サブシステム23内の)記憶装置を、ポート44又は46のいずれかと及びインタ
フェース40又は42のいずれかとを介して、ネットワーク20に接続するよう構成され
る。
アダプタ29は、各々が自分自身のインターネットプロトコル(IP)アドレスを有す
るネットワークインタフェースコントローラ(NIC)であり、そしてアダプタ29をネ
ットワーク20に接続するよう構成された、複数のインタフェース(不図示)を含み、ア
ダプタ29は、アダプタエージェントサブシステム50を含むよう(例えば、アダプタエ
ージェントサブシステム50を実行するソフトウェアでプログラムされるよう)構成され
る。アダプタ29もまた、各々が記憶サブシステム33に接続された複数のポート(不図
示)を含み、(サブシステム33内の)記憶装置を、ポートのいずれか1つと及びNIC
のいずれか1つとを介して、ネットワーク20に接続するよう構成される。
アダプタ31は、各々が自分自身のインターネットプロトコル(IP)アドレスを有す
るネットワークインタフェースコントローラ(NIC)であり、アダプタ31をネットワ
ーク20に接続するよう構成された、複数のインタフェース(不図示)を含み、アダプタ
31は、アダプタエージェントサブシステム52を含むよう(例えば、アダプタエージェ
ントサブシステム52を実行するソフトウェアでプログラムされるよう)構成される。ア
ダプタ31もまた、各々が記憶サブシステム33に接続された複数のポート(不図示)を
含み、(サブシステム33内の)記憶装置を、ポートのいずれか1つと及びNICのいず
れか1つとを介して、ネットワーク20に接続するよう構成される。
例示的実施形態において、ネットワーク20はイーサネットネットワークであり、要素
21、25、27、29、及び31は、iSCSI(インターネットスモールコンピュー
タシステムインタフェース)ネットワーキングプロトコルに従いネットワーク20を介し
て通信するよう構成されている。この例示的実施形態において、要素21、25、27、
29、及び31(及びエージェント28、38、48、50、及び52)は、サーバ21
と任意のアダプタ25、27、29、又は31との間での通信を許容するが、このサーバ
と各アダプタ(25、27、29、又は31)との間では同時に1つの接続経路しかない
単純な方法(多くの従来型アプリケーションよりはるかに単純な方法)でiSCSIネッ
トワークプロトコルを用いる。
前記例示的実施形態において、
アダプタ25のインタフェース30及び32は、ネットワーク20を介してサーバ21
と通信するためのiSCSIインタフェースである。本発明に基づくアダプタエージェン
ト38とサーバエージェント28との間の通信は、このiSCSIインタフェースにより
実行される。アダプタ25もまた、サーバ21とサブシステム23との間の記憶データト
ラフィックを実行するために、Serial Attached SCSI(「SAS」
)プロトコルに基づき、ポート34又は36のいずれかを介して記憶サブシステム23と
通信するよう構成されている。
アダプタ27のインタフェース40及び42の各々は、ネットワーク20を介してサー
バ21と通信するためのiSCSIインタフェースである。本発明に基づくアダプタエー
ジェント48とサーバエージェント28との間の通信は、このiSCSIインタフェース
により実行される。アダプタ27もまた、サーバ21とサブシステム23との間の記憶デ
ータトラフィックを実行するために、Serial Attached SCSI(「S
AS」)プロトコルに基づき、ポート44又は46のいずれかを介して記憶サブシステム
23と通信するよう構成されている。
アダプタ29は、ネットワーク20を介してサーバ21と通信するためのiSCSIイ
ンタフェースを含む。本発明に基づくアダプタエージェント50とサーバエージェント2
8との間の通信は、このiSCSIインタフェースにより実行される。アダプタ29もま
た、サーバ21とサブシステム33との間の記憶データトラフィックを実行するために、
SASプロトコルに基づき、記憶サブシステム33と通信するよう構成されている。
アダプタ31は、ネットワーク20を介してサーバ21と通信するためのiSCSIイ
ンタフェースを含む。本発明に基づくアダプタエージェント52とサーバエージェント2
8との間の通信は、このiSCSIインタフェースにより実行される。アダプタ31もま
た、サーバ21とサブシステム33との間の記憶データトラフィックを実行するために、
SASプロトコルに基づき、記憶サブシステム33と通信するよう構成されている。
サーバ21のアプリケーションサブシステム26は、ネットワーク20に接続された記
憶装置(例えば、サブシステム23又は33中の記憶装置)へのアクセスを開始するよう
に構成されている。標準的な操作において、1つの要素(例えば、管理処理又は割り当て
処理)は、サーバ21と、このサーバがアクセスし記憶装置へ又は記憶装置からのデータ
の転送をおこなうことのできる各記憶装置との間で使うことのできるすべてのデータ経路
を、アプリケーションサブシステム26及びエージェント28に通知しており、アプリケ
ーションサブシステム26及びエージェント28には、サーバ21と記憶装置との間の(
サーバ21からアクセスすることのできる各記憶装置への)好ましいデータ経路(例えば
、ネットワークの静的解析に基づき、又は決定論的方法で決定された(例えば、最少IP
アドレスを有するアダプタインタフェースへの経路))が通知されている。
一般的な実施形態において、アダプタエージェントサブシステム38、48、50、及
び52(ここでは、アダプタエージェント、又はエージェントとも称す)の各々、及び、
サーバエージェントサブシステム26(ここでは、サーバエージェント、又はエージェン
トとも称す)の各々は、本発明に基づき(例えば、以下に記載した方法により)構成され
、コンバージドネットワーク20を介して記憶データトラフィック中の不均衡を検出しこ
の不均衡に応答し、不均衡を減少させるために記憶データトラフィックを変更し、それに
より、(データ通信及び記憶トラフィックの両方に対して)全体的なネットワーク性能を
向上させる。例えば、一般的な実施形態において、サーバエージェント26は、本発明に
基づき(例えば、以下に記載した方法により)構成され、ネットワーク20を介してサー
バ21と特定の(サブシステム23又は33中の)記憶装置との間の1つのデータ経路か
ら、サーバ21と、同じ特定の記憶装置との間の他のデータ経路へと、記憶データトラフ
ィックを変えることにより、記憶データトラフィック中の不均衡を(適切な環境で)検出
しこの不均衡に応答する。
各アクセス可能な(一般的に、各々はディスクドライブである)記憶装置へのサーバ2
1の各イーサネットポート(NIC22又は24)間に少なくとも4つのデータ経路(例
えば、インタフェース30、32、40、及び42の各々を通る経路)があり、従って、
サーバ21と各アクセス可能な記憶装置との間に少なくとも8つのデータ経路がある。し
たがって、図2のシステムは、アクセスするための多くの余剰部分を有する記憶装置を示
している。
一般的なデータセンター(例えば、図1のシステム又は図2のシステムで実施されるも
の)において、管理サーバ(図1及び図2には不図示)は、データセンターを構成又は変
更するのに使用するためにネットワークに接続される(例えば、図2のアプリケーション
サブシステム26及びエージェント28に、サーバ21と、データを記憶装置に送受信す
るためにネットワーク20を介してアクセスすることのできる記憶装置との間で用いるこ
とができるすべてのデータ経路について情報伝達することを含む)。
本発明に係るサーバのいくつかの実施形態では、多数のサーバを(一般的には、大量の
データに関する)問題解決のために一体となって動作させるソフトウェアパッケージ (
例えば、ハドゥープオープンソースソフトウェアパッケージ)を走らせるようプログラム
されている(例えば、サーバのアプリケーションサブシステムがプログラムされている)
と考えられる。また、多数のこのようなサーバ(及び、各々が本発明に係るアダプタエー
ジェントの実施形態を実施するよう構成された多数のアダプタ)は、単一の建物に配置す
ることができるデータセンター(例えば、ハドゥープデータセンター)中のコンバージド
ネットワークに接続することができると考えられる。各アダプタは一般に、JBODのそ
れぞれのディスクドライブがこのアダプタを介してネットワークを通じてサーバからアク
セス可能なように、JBODに接続される。各サーバに対して「ローカル」であると考え
られるディスクドライブは、一般的に1つのJBOD(又は2つ以上のJBOD)に配置
され、JBODは一般に1つのラックに搭載される(例えば、1つのサーバが処理するデ
ータの3つのコピーを作り、1つのラック上の2つのディスクドライブに各々1つのコピ
ーを記憶させ、別のラック上の1つのディスクドライブに3番目のコピーを記憶させるこ
とができる)。このような実施形態において、サーバは、一組の(例えば、大きな一組)
のデータのうちの相異なるサブセットを(サーバの各々からアサートされた命令に応答し
て実行されるいくつかの処理により)並行して分散処理することが可能となるように、ネ
ットワークを介して接続される。
さらに、本発明に係るシステム、サーバ、又はアダプタの一般的な実施形態において、
各アダプタエージェント(例えば、図1のエージェント14、16、18、又は22、又
は図2のエージェント38、48、50、又は52)及び各サーバエージェント(例えば
、図1のエージェント6又は12又は図2のエージェント28)は、本発明の実施形態に
従い動作させるためのソフトウェア(例えば、ソースコードが言語Python及び/又
は言語Cにより書かれたソフトウェア)を構成する処理用ハードウェアである。例えば、
サーバのサーバエージェント及びアプリケーションサブシステムの両方(例えば、図1の
サーバ1のエージェント6及びサブシステム4の両方、又は図1のサーバ3のエージェン
ト12及びサブシステム10の両方)は、ソフトウェアで構成された処理ハードウェア(
例えば、コンピュータ)で実行される。一般に、いずれのアプリケーション(例えば、図
1のサーバ1のサブシステム4又はサーバ3のサブシステム10、又は図2のサーバ21
のサブシステム26により実行されるアプリケーション)も、本発明の一般的な実施形態
の利点を獲得するために変更する必要はない。一般的に、各サーバエージェント及びアダ
プタエージェントは、アプリケーションに対して見えないように動作し、(データ通信操
作のみを行うものを含む)関連するサーバ又はアダプタインタフェースを用いるアプリケ
ーショは、本発明により実行される記憶データ負荷均衡による利益を享受する。
本発明の実施形態の区分に従い、本発明に係るシステムの実施形態を操作している間の
、各アダプタエージェント及びサーバエージェントの操作について記載する。記載中「受
信トラフィック」(又は「受信データ」)は、ネットワークからアダプタ(又はサーバ)
へアサートされた(すなわち、提供された)データを意味し、「送信トラフィック」(又
は「送信データ」)は、アダプタ(又はサーバ)からネットワークへアサートされた(す
なわち、提供された)データを意味する。一般的に、1つのアダプタ(及び1つのサーバ
)は、ネットワークに対して2つのインタフェースを有し、ネットワークに対して2以上
のインタフェースを有することもできる。
いくつかの実施形態では、各アダプタエージェント(例えば、図1の各エージェント1
4、16、18、及び22、又は図2の各エージェント38、48、50、及び52)は
、以下の操作のすべて又は一部を行うように構成される。
1.アダプタエージェントは、アダプタの各インタフェースで生じる受信トラフィック
と送信トラフィック(例えば、1秒あたりのビット数単位で)監視し、各インタフェース
にて消費された少なくとも1つの帯域幅の計測値を生成する。一般的に、各監視サンプル
は、比較的短時間(例えば、数秒)で引き継がれ、アダプタエージェントは、受信データ
サンプルの流れ及び送信データサンプルの流れについて統計的特性を決定し、各インタフ
ェースの消費された帯域幅(使われている帯域幅)の短期計測値と長期計測値とを別々に
提供する。最新のNICは全二重(一般的に、アダプタのNICは同時に送信と受信を行
うことができる)であり、各インタフェースの受信データ及び送信データについて独立し
た統計値が一般的に維持される。好ましい実施形態において、数値の指数平滑移動平均を
決定するよく知られた方法(すなわち、この場合、固定期間の移動時間窓におけるインタ
フェースの受信トラフィックの指数平滑移動平均、又は固定期間の移動時間窓におけるイ
ンタフェースの送信トラフィックの指数平滑移動平均)を用いて、このような指数平滑移
動平均の計算は安価なので、各インタフェースの受信トラフィックの統計的特性、及び各
インタフェースの送信トラフィックの統計的特性を決定する。このような指数(重みつき
)移動平均を決定する方法の例として、米国特許6,438,141(2002年8月2
0日発行)に図8を参照して記載されている。好ましい実施形態では、各短期移動平均は
、20秒間隔(窓)(又は実質的に20秒に等しい間隔)での算術移動平均に近く、各長
期移動平均は、60秒間隔(窓)(又は実質的に60秒に等しい間隔)での算術移動平均
に近い。他の窓期間及び計算方法を本発明の他の実施形態に用いることが可能である。
2.アダプタエージェントは、付加的なデータを処理するためのアダプタの能力を計算
(例えば、推定)する。好ましい実施形態では、これはアダプタの計算負荷能力である。
付加的データの処理は、さらなる計算作業を伴うので、アダプタがその計算能力限度で動
いている場合、たとえインタフェースが全部使われていないとしても、付加的記憶データ
トラフィックを処理することができないことがある。いくつかの実施形態では、アダプタ
エージェントは、付加的データの処理のためにアダプタの能力をその計算(例えば、推定
)に用いることにより、記憶データトラフィックを扱っているアダプタで消費される他の
リゾースの残りの能力を組み入れることができる。随意的に、アダプタエージェントもま
た、アダプタインタフェースごとに利用可能な付加的帯域幅の限定的な推定量を決定する
ために(例えば、以下に説明するように、アダプタエージェントがインタフェースのため
に使用可能としてレポートするような帯域幅を限定するために)アダプタインタフェース
ごとに利用可能な付加的帯域幅の生の推定量にアダプタエージェントが乗算するための、
アダプタでのディレーティング係数を決定することもできる。
3.サーバエージェントがアダプタエージェントに、(サーバエージェントが組み込ま
れている)サーバが近い将来、将来の付加的帯域幅を(アダプタのインタフェースを含む
経路で)使う計画であることを示していた場合、アダプタエージェントは、このような各
サーバエージェントがアダプタインタフェースを含む経路をアダプタエージェントに示し
ていた、計画していた付加的な将来の帯域幅の使用の合計を維持する。好ましい実施形態
では、(アダプタの)アダプタエージェントは、アダプタを含む経路上の記憶装置(例え
ば、ディスクドライブ)にサーバがアクセスした場合に限り、サーバからの計画した帯域
幅使用通知を受け入れるだけである。サーバエージェントによる計画した将来の帯域幅使
用の表示は、予約又は帯域幅の割り当てではなく、アダプタエージェントにより判断され
た実際の消費された帯域幅の統計値が近い将来変化することを知らせるものである。サー
バエージェントによるこのような表示、及びアダプタエージェントにより合計を維持する
ことの目的は、多くの記憶装置へのデータトラフィックが一度に1つのアダプタの1つの
インタフェースに向かう可能性を無くすか又は制限することである。アダプタエージェン
トは、一般的に、計画した付加的帯域幅使用通知の各々を時間をかけて減少(即ち、「エ
ージング」)させ、アダプタの各インタフェースへのエージングさせた計画した付加的帯
域幅使用値の最新の(エージングさせた)合計値を維持する。新たなトラフィックはイン
タフェースを実際に経由するので、このような実際のトラフィックは、アダプタエージェ
ントにより作られたプレインタフェーストラフィック計測値中に含まれる。好ましい実施
形態において、アダプタエージェントは、各計画した付加的帯域幅使用通知を、この通知
により表示された帯域幅値を半減期20秒(又は、20秒に実質的に等しい半減期)で指
数関数的に減少させることで(すなわち、表示された計画した付加的帯域幅使用値の指数
関数的減少を実行することで)、エージングさせる。代替的に、他の機構又は値(例えば
、指数関数的減少半減期値)を、表示された各計画した付加的帯域幅使用値の好ましいエ
ージングを行うために用いることができる。
4.アダプタエージェントは(エージェントが組み込まれている)アダプタの各インタ
フェースが過負荷かどうかを判断(計算)しサーバエージェントに、(過負荷となってい
ると判断されたならば)そのような過負荷の表示を(サーバエージェントからの要求に応
じて)報告する。このような過負荷表示は、可能ならインタフェースの使用の停止を試み
ることができるかをサーバが判断するために用いることができる。サーバは、一般的に、
リンクがしばらくの間ほとんど全部使用されていてこれからも使用されるかどうかを判断
し、その場合は、リンクが過負荷になるかどうか、そして他の記憶データトラフィックの
経路にしたほうがよいかどうかを判断するためにこの表示を用いる。アダプタエージェン
トは、生の過負荷表示値(過負荷であるとの判断の表示)にフィルターを掛け、判断した
過負荷が持続しているかどうかを表示するフィルターを掛けた過負荷値を生成し、(サー
バエージェントからの要求に応じて)生の過負荷表示値ではなく、フィルターを掛けた過
負荷値を通知することができる。一般的な実施形態では、アダプタエージェントは、過負
荷帯域幅レベルとして、インタフェースが全部使われていると考えられる選択された帯域
幅を使用するよう構成されている。1つの好ましい実施形態では、過負荷帯域幅レベルは
、インタフェースの利用可能な全帯域幅の92.5%に選定され、過負荷計算が連続して
少なくとも2回連続して正しいと判断した場合、(フィルターを掛けた過負荷値により)
インタフェースは過負荷であると通知される。一般的な実施形態では、過負荷計算は、以
下のどちらかが正しい場合、正しいと考えられる。
消費された送信帯域幅の短期及び長期計測値(例えば、短期及び長期の送信帯域幅の平
均)が両方とも過負荷帯域幅レベル以上であるか、又は、消費された受信帯域幅の短期及
び長期計測値(例えば、短期及び長期の受信帯域幅の平均)が両方とも過負荷帯域幅レベ
ル以上である場合、或いは、
データを処理するアダプタの容量が限界に達していた(又はほぼ限界に達していた)場
合。
5.アダプタエージェントは、アダプタインタフェースごとに利用可能な帯域幅(すな
わち、サーバによりそのインタフェースへと経路変更することがある新しい記憶装置のデ
ータトラフィックを受け入れるために用いることが可能な付加的帯域幅)の推定量を計算
する。この計算は、前記新しい記憶装置の状態又は能力について知る必要がなく、アダプ
タエージェントにより決定された特別な記憶データトラフィックの推定量を必要とし、そ
のような特別のトラフィックがインタフェースに向けらていたなら、インタフェースによ
り取り扱いが可能となる。この利用可能な帯域幅の推定は、一般にインタフェースの利用
可能な全帯域幅(例えば、1秒あたりのビット数単位の生の容量)、インタフェースのト
ラフィック統計量(すなわち、アダプタインタフェースの消費された帯域幅の少なくとも
1つの計測値)、付加的データを処理するためのアダプタの能力(すなわち、計算負荷)
、及び、表示された全てのインタフェースへの将来の帯域幅の通知、から計算される。記
憶データトラフィックは、いろいろな時に、読み取りトラフィックと書き込みトラフィッ
クの両方を含むので、推定される付加的な使用可能トラフィックの計算では、付加的なト
ラフィックは、送信トラフィック又は受信トラフィックのうちのすでにビジー状態となっ
ている方から、トラフィックを送信又は受信するものとみなす。これにより、付加的なト
ラフィックがすでに負荷が重くなっているインタフェース上を移動するデータ方向で過負
荷になるのを防止する。好ましい実施形態において、現在の作業処理を減速させるのを避
けるために、推定される利用可能な帯域幅は、インタフェースへ送受信される平均データ
、プラス、最新のトラフィックにおける通常の変動の推定、例えば、標準偏差、に基づく
。好ましい実施形態において、トラフィックの平均及び期待変動量は、例えば、上述の米
国特許6,438,141に記載されているような、「速いアップ、遅いダウン」指数平
滑移動平均(最新に生成された統計値が先に生成された統計値より大きい場合は、比較的
大きな重み付けが次の平均値に適用され、最新に生成された統計値が先に生成された統計
値より小さい場合は、比較的小さな重み付けが次の平均値に適用される)により計算され
る。このような「速いアップ、遅いダウン」指数平滑移動平均により、簡単な計算を用い
て、最新の平均値プラス一組の標準偏差を推定することができる。さらに、推定した生の
利用可能な全帯域幅は、インタフェースを介してトラフィック中に短い急変動があっても
、性能を下げることなく切り抜けることができるよう、安全係数により減少させておくこ
とができる。1つの実施形態において、以下の方程式で数値「available」で示されるよ
うな、アダプタインタフェースのための利用可能な帯域幅の推定量は、以下のように計算
される(しかし当然のことながら、動作を調整するために、付加的な項及び係数をこの計
算に加えることはできる)。
available = (safety_factor * (raw_bandwidth - worst-case)) *
processing_capacity_derating_factor、
ここで、値「worst-case」は、max(transmit_mean_and_variation, receive_mean_and_
variation) + sum(aged-future-bandwidth-notices)に等しく、「max(a、b)」は、値「
a」又は、値「b」のどちらか大きい方を意味する。
transmit_mean_and_variationは、インタフェースでの消費された送信帯域幅の計測値
(例えば、インタフェースでの平均送信データの推定プラス最新の送信データトラフィッ
クにおける通常の変動(標準偏差))であり、
receive_mean_and_variationは、インタフェースでの消費された受信帯域幅の計測値(
例えば、インタフェースでの平均受信データの推定プラス最新の受信トラフィックにおけ
る通常の変動(標準偏差))であり、
「sum(aged-future-bandwidth-notices)」は、アダプタインタフェースでのエージング
した計画した付加的帯域幅の使用値の合計であり、
safety_factorは、前記安全係数であり、
raw_bandwidthは、インタフェースの利用可能な全帯域幅を意味し、そして、
processing_capacity_derating_factorは、アダプタでのディレーティング係数である
。及び/又は、
6.アダプタエージェントは、サーバエージェントからのステータス要求(すなわち、
アダプタと同じ記憶データ経路上のサーバのサーバエージェントからのステータス要求)
に応答する。一般的に、サーバエージェントへ返された現状報告は、各アダプタインタフ
ェースでの、現在の過負荷状態、及び上述したようなインタフェースの利用可能な帯域幅
を含む。
いくつかの実施形態では、各サーバエージェント(例えば、図1のエージェント6及び
12の各々、又は図2のエージェント28)は、以下の操作のすべて又は一部を実行する
よう構成される。すなわち、
1.アダプタエージェントの一般的な実施形態を行うとき、サーバエージェントは、サ
ーバの各インタフェースに生じる送受信トラフィックを(例えば、1秒あたりのビット数
単位で)監視し、上記各インタフェースの消費された帯域幅の少なくとも1つの計測値を
生成する。一般的に、各モニタリングサンプルは、一般に、比較的短時間(例えば、数秒
)で取り出され、サーバエージェントは、受信データサンプルの流れ及び送信データサン
プルの流れの統計的特性を判断し、各インタフェースの消費された帯域幅(使われた帯域
幅)の短期計測値と長期計測値とを別々に提供する。最新のNICは全二重(一般的に、
サーバのNICは同時に送信と受信を行うことができる)であり、各インタフェースの受
信データ及び送信データについて独立した統計値が一般的に維持される。好ましい実施形
態において、数値の指数平滑移動平均を決定するよく知られた方法(すなわち、この場合
、固定期間の移動時間窓におけるインタフェースの受信トラフィックの指数平滑移動平均
、又は固定期間の移動時間窓におけるインタフェースの送信トラフィックの指数平滑移動
平均)を用いて、各インタフェースの受信トラフィックの統計的特性、及び各インタフェ
ースの送信トラフィックの統計的特性を(例えば、上述した本発明に係るアダプタエージ
ェントの一般的な実施形態と同じ方法で)決定する。
2.サーバに割りつけられている各記憶装置(例えば、ディスクドライブ)へのアクセ
ス経路について(記憶装置にコンバージドネットワークを介してこの経路でサーバからア
クセス可能であるという意味で)、サーバエージェントは、サーバに、経路の他の終端で
あるアダプタに要求をアサートさせることができ、サーバエージェントはアダプタの帯域
幅(消費された帯域幅及び/又は利用可能な帯域幅)及び/又は過負荷情報(すなわち、
要求に応じてアダプタのアダプタエージェントにより生成された過負荷及び/又は帯域幅
レポート)を取り戻す。多くの場合、同じアダプタがいくつかの記憶装置及び経路に用い
られるので、1つの要求に応じて受信したアダプタデータは、しばしば多くの経路で用い
られる。
3.(サーバエージェントが組み込まれた)サーバへの各経路で、アダプタを介して記
憶装置にアクセスし、サーバエージェントは、その経路が過負荷かどうかそして負荷を削
減するかどうか、及び利用可能な(使用していない)帯域幅の経路はどれかを計算する。
一般的な実施形態において、サーバエージェントは、(経路に沿って接続された)サーバ
のインタフェースの利用可能な帯域幅または、(経路に沿って接続された)アダプタのイ
ンタフェースの利用可能な帯域幅の最小値として、経路で利用可能な帯域幅を決定する。
一般的な実施形態において、サーバエージェントは、サーバのインタフェース又はアダプ
タのインタフェースのどちらかが過負荷となった場合、経路は過負荷であると判断する(
一般に、サーバからの要求に応じてアダプタエージェントにより、サーバにアサートされ
たリポート中のインタフェース過負荷表示を用いることが含まれる)。
4.少なくとも1つの過負荷経路が(記憶装置にアクセスするためにサーバにより)使
用されている場合、サーバエージェントは、一般に各過負荷を評価するために選択処理を
導入している。好ましい実施形態において、サーバにより少なくとも2つの過負荷経路が
使用されている場合、サーバエージェントは、ランダムな順序でこれらを考慮し、サイク
ルごとに1つだけ選択する。
過負荷ではなく、他の記憶装置のために利用可能な帯域幅が十分あるもう1つの経路が
ある場合、サーバエージェントは次の使用のためにそのような他の経路を選択する。2以
上のそのような代替的な経路が利用可能な場合、サーバエージェントは、最も大きな利用
可能な帯域幅を有する経路を選択する。
そうでなければ、サーバ(及びそのサーバエージェント)がサーバと過負荷となった経
路に接続された記憶装置との間の好ましいデータ経路が通知されていて、現在の(過負荷
となった)経路が、サーバにより記憶装置にアクセスするようもともと割り当てられてい
た経路でない場合、(好ましいデータ経路が過負荷であろうとなかろうと)好ましいデー
タ経路が次の使用のために選択される。一般的に、現在の(過負荷となった)経路の割り
当てが変化しない場合(すなわち、現在の経路に代えて他の経路が選択されない場合)、
次の過負荷となった経路は、現在の経路についての場合と同様に考慮される。
5.新たな経路割り当てを行った場合(すなわち、サーバエージェントが現在の経路に
代わる他の経路を選択した場合)、サーバエージェントは一般に以下の動作を行う。
サーバエージェントは、(新たに選択された経路に沿って接続された)サーバインタフ
ェースが特定の帯域幅(例えば、1つのディスクの将来の負荷にふさわしい帯域幅)を有
する記憶データトラフィックをアダプタの特定のインタフェースにアサートすることを、
新たに選択された経路と関連付けられたアダプタエージェントに通知する。これは、直ち
に統計量に反映され、アダプタのアダプタエージェントにより生成されたことを報じ、そ
して一般に、2つのサーバがアダプタインタフェースの同じ過剰な帯域幅を使用しようと
試みることを(直接)防止する。そして、
サーバエージェントは、サーバに、サーバと対応する記憶装置との間の記憶データトラ
フィックの経路を新たに選択した経路に変更させる。及び/又は、
6.サーバに、サーバと記憶装置との間の記憶データトラフィックの経路を新たに選択
した経路に変更させた後、サーバエージェントは、アダプタエージェントの各アダプタイ
ンタフェース上のトラフィックの各アダプタエージェントにより進行中の監視による結果
(例えば、監視中の統計値)に、サーバエージェントの最新の動作の帰結を反映させるこ
とが出来るように、十分な長さの時間(例えば、所定の又はランダムに選んだ時間)待機
する。待機した後、サーバエージェントは、新な経路以外の少なくとも1つの経路を含む
、記憶装置まで経路の評価(例えば、再評価)を開始する。好ましい実施形態において、
待機する時間は、所定の最小待機時間及び最大待機時間を満たす範囲で、選択された時間
間隔(例えば、10秒)の標準変量として選択されたランダム数により決定される。
本発明に係るシステムの実施形態により実行される例示的方法は以下の通りである。サ
ーバエージェント(この例では、図2のサーバ21のエージェント28)は、サーバ21
が(アダプタ25によりネットワーク20に接続された)記憶装置にアクセスすべきであ
るとの判断に応答して、アダプタ25の特定のインタフェース(すなわち、この例では、
インタフェース30)を通る経路を介して、アダプタエージェント(この例では、図2の
アダプタ25のアダプタエージェント38)に、計画した付加的帯域幅使用通知を送る。
これに応じて、アダプタエージェント38は時間とともに、通知に示された計画した付加
的帯域幅使用値を縮小(すなわち、「エージング」)し、受信したすべてのエージングし
た計画した付加的帯域幅使用値の更新された(エージングした)合計をインタフェース3
0のために維持する(そして、現在の過負荷状態及び利用可能な帯域幅の表示を生成する
ためにこのエージングした合計を使用する)。新たなトラフィックは、実際にはインタフ
ェース30を通るルートとなり、このような新たな実際のトラフィックは、アダプタエー
ジェント38により計測されるインタフェースごとのトラフィックの計測に含まれる(そ
して、各アダプタインタフェースへの現在の過負荷状態及び利用可能な帯域幅の表示を生
成するために用いられる)。サーバエージェント28は、(各アダプタエージェントから
)このような各アダプタエージェントが組み込まれサーバにより用いられる記憶装置への
経路の一部となっている、アダプタの各インタフェースへの現在の過負荷状態及び利用可
能な帯域幅を示す報告を要求し、それを受けた問い合わせを受けた各アダプタエージェン
トは、サーバエージェント28に要求された報告を独立に送信する。サーバエージェント
28は、この報告、エージェント28自身が自らのサーバインタフェースのために生成し
たトラフィックの統計的特性を用い、サーバ21が(ごく最近アサートされた計画した付
加的帯域幅使用により推定された)現在の経路を介して記憶装置にアクセスできるか、又
は、サーバ21により記憶装置にアクセスするための他の経路を(現在の経路に置き換え
るために)選択するべきかを判断する。サーバ21により記憶装置にアクセスするために
サーバエージェント28が新たな経路を選択した場合は、サーバエージェント28は、新
たに選択された経路と関連付けられたアダプタエージェントに、(新たに選択された経路
と接続されることになる)サーバインタフェースが特定の帯域幅を有する記憶データトラ
フィックにアダプタの特定のインタフェースにアサートするよう計画していることを通知
し、そして、サーバエージェント28は、サーバ21に、サーバ21と対応する記憶装置
との間の経路を新たに選択された経路に変更させる。このようにして、システムは、サー
バにより記憶装置にアクセスする最適な経路を選択する分散型方法を(個々のアダプタエ
ージェントからサーバのサーバエージェントまでの独立に生成した通知の独立したアサー
ションにより)動作させる。
本発明のいくつかの実施形態では、コンバージドネットワークに接続されたサーバのサ
ーバエージェント(例えば、図1のエージェント6及び12の各々、又は図2のエージェ
ント28)は、アダプタインタフェーストラフィック又はアダプタの能力により生じるも
の以外のネットワークの隘路周辺の記憶トラフィックを検出し経路変更するよう構成され
る。このような隘路の例として、サーバと、再均衡化機構に加わっていない他のサーバと
の間の一般的なデータ通信トラフィックにより生じるネットワーク隘路が挙げられる。
好ましい実施形態の形では、サーバ及びアダプタ(例えば、各々複数のネットワークイ
ンタフェースにより実行される、図1の要素1、3、5、7、9、及び11)は、イーサ
ネットネットワークであるコンバージドネットワーク(例えば、図1のネットワーク20
)に接続され、サーバ及びアダプタは、iSCSI(インターネット・スモール・コンピ
ュータ・システム・インタフェース)ネットワーキングプロトコルに従い、ネットワーク
を通して通信するよう構成される。この実施形態の形では、サーバエージェント及びアダ
プタエージェント(例えば、図1のエージェント6、12、14、16、18、及びand
22)は、簡単なやり方(多くの一般的なアプリケーションよりはるかに簡単なやり方)
で、iSCSIネットワークプロトコルを用い、それにより、サーバ(例えば、サーバ1
又は3)と任意のアダプタ(例えば、アダプタ5、7、9、又は11)との間の通信を可
能にするが、各サーバと(記憶装置への)各アダプタとの間の通信経路は同時にただ1つ
だけとなる。この実施形態の形では、サーバエージェントは、通常の複数経路I/O(「
MPIO」)技術(又は新たな、通常のMPIO技術を簡単化したもの)を、本発明によ
る記憶データトラフィック均衡化を達成するために用いる。「MPIOライクサブシステ
ム」との語句は、ここでは、通常のMPIOを実行する(例えば、サーバの)処理サブシ
ステム、又は、通常のMPIOを簡単化したものを実行する処理サブシステムを意味する
説明したこの形の実施形態において、各サーバは、サーバのインタフェースのうち選択
された1つを介してiSCSIに従いデータ入出力を管理する、MPIOライクサブシス
テム(例えば、カーネル中のMPIOドライバ)を含む。サーバのサーバエージェントは
、サーバエージェントにより選択されているサーバのインタフェースのうちの1つを通し
てのみサーバによる記憶装置へのアクセスを認める、記憶装置アクセス「方針」を設定す
ることによる場合も含んで、MPIOライクサブシステムとのやり取りを行う。このよう
な方針は、付加均衡を行わず、その代わりネットワークアクセスに単一の動作中の経路を
用いる従来のMPIO「フェイルオーバーオンリー」方針(他の使用の可能性がある経路
は、単一の動作中の経路が故障した場合のみ用いる単なる予備経路となる)と類似してい
る。しかしながら、この記憶装置アクセス方針は、新しい方法で記憶データトラフィック
均衡化を行うために、本発明による創作性のあるサーバエージェントにより用いられる。
サーバのサーバエージェントが、新たに選択されたこのサーバのインタフェースを介して
サーバにより記憶装置にアクセスするために、(一般にアダプタエージェントからの要求
された通知を受信するステップを含む、本発明に係る方法の実施形態により)新たな経路
を選択したとき、このサーバエージェントは、サーバエージェントにより選択されていた
サーバのインタフェースのうちの新たな1つを介してのみ、サーバにより記憶装置にアク
セスすることを可能にする新たな記憶装置アクセス「方針」をMPIOライクサブシステ
ムに特定させることで、サーバに、(記憶装置からの又は記憶装置への)記憶データトラ
フィックの経路指定を新たに選択された経路に変更させる。サーバエージェントもまた、
この新たな記憶装置アクセス経路を、サーバエージェントにより選択された適切なアダプ
タインタフェースにまで広げさせる。
このように、説明した実施形態の形において、本発明により、コンバージドネットワー
ク上の記憶データトラフィックを均衡させるためにMPIOライクサブシステムが(本発
明に係るサーバエージェントにより)用いられる。
MPIOは、もともと隔離された記憶ネットワーク上で開発され、従来のMPIO負荷
均衡化は、コンバージドネットワーク上ではうまく働かなかった。例えば、ネットワーク
に接続されたサーバの複数のイーサネットポートと、ネットワークに接続されたアダプタ
の複数のイーサネットポートとの間の記憶データトラフィックを均衡させるために、(イ
ーサネットネットワークとして組み込まれた)コンバージドネットワーク中のMPIOを
用いるための試みがなされ、ここでアダプタもまたサーバによりアクセスされるディスク
ドライブサブシステム(すなわち、JBOD)に接続された複数の「バックエンド」SA
Sポートを有すると考える。この例では、従来の全てのMPIO負荷均衡化「方針」(ラ
ウンドロビン方式で全ての可能なイーサネットインタフェースに記憶命令を送るか、又は
、各リンクでどれだけの作業が未実施かの指標を決定し、「最も忙しくない」イーサネッ
トインタフェースに命令を送る)は、一般に一連のディスクアクセス命令を実行するため
に必要なシークの数が増大する。なぜなら、これらはしばしば、次々と一連の命令にサー
バからディスクドライブまでの異なる経路をとる(しばしば、命令の順序が狂った状態で
ディスクドライブに到着する)ことを引き起こすからであり、したがって、急速なそして
変更が好ましいかどうかにかかわらないネットワークを通る記憶データ経路の変更の結果
として先に説明した過剰なシークが行われるという問題を引き起こすからである。それに
ひきかえ、本発明の一般的な実施形態(上述したような、コンバージドネットワーク上の
記憶データトラフィックの均衡化を行うためにサーバのMPIOライクサブシステムを用
いる本発明に係るサーバエージェントの実施形態を含む)では、一般に、必要な時のみ、
そして一般に非常にまれに(例えば、1時間に1回、2回、又は数回)、いずれかのディ
スクドライブにアクセスするための記憶データ経路を変更するので、過剰シークの問題を
引き起こすことがない。本発明の一般的な実施形態の重要な利点は、(記憶データトラフ
ィック均衡化を行うために)クロストラフィックを調整する間、コンバージドネットワー
クを介してディスクに命令を順序正しく送ることを維持する点である。
実施形態の他の形において、本発明に係るサーバエージェントの実施形態を実施するサ
ーバもまた、ユーザインタフェースを実行する。サーバに接続された表示装置を有するよ
うな実施形態におけるサーバの一般的な操作において、ユーザインタフェースにより、サ
ーバエージェントの操作又は状態、及び/又は、受信した通知又はサーバエージェントに
よりなされた決定を、表示装置に表示させる。例えば、以下の形式の表示をすることがで
きる、すなわち、サーバエージェントが監視しているサーバインタフェーストラフィック
及び/又は帯域幅、アダプタエージェントから受け取った(例えば、アダプタインタフェ
ース状態及び利用可能な帯域幅に関する)通知、及び現在の記憶装置アクセス経路は変更
すべき化すべきでないかの判断、である。
本発明の一般的な実施形態の利点及び特徴には以下が含まれる。
1.コンバージドネットワークを通る記憶データトラフィックは、アダプタとサーバと
の間(サーバ同士の間、アダプタ同士の間、又は、アダプタから2以上のサーバまででは
ない)のそれぞれのデータ経路の端部同士(例えば、図1のサーバ1及びアダプタ5、又
は図2のサーバ21及びアダプタ25)の間のみで生じる均衡化を達成するよう行われた
通信により、完全に分散化された方法で均衡化がおこなわれる。関係者(すなわち、サー
バインタフェース、サーバエージェント、アダプタインタフェース、又はアダプタエージ
ェント)の故障は、その関係者がメンバーとなっている経路にのみ影響を与える。一般に
、サーバエージェントとアダプタエージェントとの間の1対1通信のみが存在する(例え
ば、サーバエージェントはこの通信を2以上のアダプタエージェントと共有しない)。一
方、複数の記憶装置と複数のサーバとの間で記憶データトラフィックの均衡化を行う従来
の方法では、このような分散化は行われなかった。
2.記憶トラフィックの再均衡化を行うために必要な通信は、アダプタとサーバとの間
の各データ経路の端部同士(例えば、図1のサーバ1及びアダプタ5、又は図2のサーバ
21及びアダプタ25)のみである。したがって、サーバとアダプタとの間の接続の数は
、サーバとアダプタとの間の経路に結びついた記憶装置(例えば、ディスクドライブ)の
数で制限される。したがって、数千のサーバ及びアダプタを有する非常に大きなデータセ
ンター内であっても、本発明の一般的な実施形態を実行するのに必要な各サーバ及びアダ
プタでの計算負荷、及びネットワーク負荷は小さい。
3.記憶データトラフィックの帯域幅をあらかじめ予約したり固定したりすることはな
い。したがって、関係者(すなわち、サーバインタフェース、サーバエージェント、アダ
プタインタフェース、又はアダプタエージェント)の故障は、すぐに全体的な統計値に反
映され、関係者が(故障前に)使っていたリソースは、自動的に残りの装置により使用す
ることが可能になる。その後故障した装置が回復した場合、本発明の方法の一般的な実施
形態の実行により、トラフィックが過負荷をもたらす場合は、他のサーバは、トラフィッ
クを、回復した装置により使われていた経路から変更する。
4.サーバが計画した付加的帯域幅使用通知をアダプタに送信した時であっても、(ア
ダプタ内に組み込まれた)アダプタエージェントは、一般的に、各通知に表示された計画
した付加的帯域幅使用を時間をかけて減少させる(すなわち、「エージングする」)。こ
のエージングは、一般に、アダプタの各インタフェースのエージングした計画した付加的
帯域幅使用値を比較的急速に(ゼロまで)減少させる。これにより、付加的な観測された
記憶データトラフィックにすぐには反映されない計画した付加的帯域幅使用通知は、直ち
に無視される。
5.一時的に過負荷となるような結果が生じるサーバにより選択されたデータ経路は、
通常は非常に短時間で修正される(すなわち、同じ記憶装置までの新たなデータ経路に置
き換えられる)。
6.新たな経路を用いて起動するとの各サーバの意図を通知する処理(すなわち、各サ
ーバエージェントにより、表示された計画した付加的帯域幅の使用が実際に生じることに
より直接影響を受ける各アダプタのアダプタエージェントに計画した付加的帯域幅の使用
通知を送ること)により、多くのサーバがほぼ同時刻に同じ決定をすることを防止する。
つまり、これまでのデータのみに基づいてほぼ同時に経路決定を行うことにより生じる可
能性がある振動を実質的に防止する。さもなければ、軽負荷状態となっている1つのイン
タフェースを指し示す統計値を全てのサーバが見る場合があり、そして全てのサーバがそ
のインタフェースへと経路変更し、深刻な過負荷状態が生じる可能性がある。
7.(例えば、サーバに、サーバと記憶装置との間の記憶データトラフィックのルート
を新たに選択された経路に変更させた後、サーバエージェントの最新の動作の結果が監視
している統計値に反映されるように、ランダムに決定された時間間隔で待機した後、サー
バエージェントが記憶装置への経路の再評価を開始する、実施形態において)ランダムサ
イクルを用いることにより、サーバが固定された動作を行うことを防止し、さらに同時に
矛盾した判断を行うことを避ける。
8.ネットワークが完全に使用された状態(すなわち、全てのインタフェースが過負荷
状態)となり、記憶トラフィックの経路変更の機会がない場合、一般的な実施形態におい
て、全てのサーバ及びアダプタは、サーバとアダプタとの間の所定の「好ましい」データ
経路に戻る。このことは、無用な経路変更の試みは行わないことを意味する。加えて、全
てのデータトラフィックを静的に均衡させるような方法で好ましいデータ経路を選択した
とすると、それらの経路は、負荷がいっぱいの状態のネットワークにおいて最適な構成を
形成する。
9.アプリケーション(例えば、図1のサーバ1のサブシステム4又はサーバ3のサブ
システム10、又は、図2のサーバ21のサブシステム26により実行されるアプリケー
ション)は、本発明の一般的な実施形態の利点を獲得するため変更する必要がある。通常
は、サーバエージェント及びアダプタエージェントの各々は、アプリケーションから見え
ないような方法で動作し、関係するインタフェースのいずれかを使用するどのようなプロ
グラム及び装置も、(データ通信操作のみを行うプログラム及び装置も含めて)記憶デー
タ負荷均衡化の利益をうける。
本発明の他の特徴は、本発明に係るアダプタエージェントの実施形態を実行するようプ
ログラムされた、又はその他で構成されたアダプタ(例えば、図1のアダプタ5、7、9
、及び11のいずれか、又は、図2のアダプタ25、27、29、及び31のいずれか)
、このようなアダプタと一体化したディスクドライブ(又は他の記憶装置)(例えば、図
1に示したような単一の装置100としてのアダプタ9(及びアダプタ11)と一体化し
た、ディスクドライブとしての記憶サブシステム15の実施形態)、そのようなアダプタ
と一体化したJBOD(又は他の記憶システム)(例えば、図2に示したような単一の装
置101としてのアダプタ29(及びアダプタ31)と一体化した、JBODとしての記
憶サブシステム33の実施形態)、本発明に係るサーバエージェントの実施形態を実行す
るようプログラムされた、又はその他で構成されたサーバ(例えば、図1のサーバ1及び
3のいずれか、又は図2のサーバ21)、本発明に係るサーバエージェントの実施形態の
ハードウェアによる実施形態(例えば、ハードウェアに組み込まれた、図1のエージェン
ト6)、及び、本発明に係るアダプタエージェントの実施形態のハードウェアによる実施
形態(例えば、ハードウェアに組み込まれた、図1のエージェント14)である。
本発明の他の特徴は、本発明に係るシステム、アダプタ、記憶装置、JBOD、サーバ
、又は他の装置の実施形態での操作を行う方法である。そのような方法は、
コンバージドネットワークを介して、サーバからアダプタへ要求をアサートするステッ
プであって、前記サーバは、サーバエージェントを含むよう構成され、前記アダプタはア
ダプタエージェントを含むよう構成されていることを特徴とするステップと、
前記要求に応答して前記アダプタエージェントにより前記サーバのサーバインタフェー
スにアサートされた少なくとも1つのアダプタインタフェース過負荷表示を特定するため
にサーバエージェントを採用するステップであって、前記アダプタインタフェース過負荷
表示は、前記アダプタのアダプタインタフェースが過負荷かどうかを表示することを特徴
とするステップと、
前記サーバインタフェースを含む経路であって、その経路を通って前記アダプタを介し
て少なくとも1つの記憶装置に前記サーバがアクセスするように設けられた、経路におい
て、前記アダプタインタフェース過負荷表示を用いる方法で前記経路が過負荷かどうかを
判断するために前記サーバエージェントを採用するステップと、を含む。
本発明の特定の形態が図示され説明されているが、本発明は、説明され図示された特定
の実施形態又は説明された特定の方法に限定されるべきではないことを理解すべきである
。方法を記述する特許請求の範囲は、請求項に明示的に記載されていない限り、特定の順
序のステップを含意するものではない。

Claims (1)

  1. 少なくとも1つのサーバインタフェースによりコンバージドネットワークに接続された少なくとも1つのサーバ及び少なくとも1つの記憶装置を含むシステムで用いるよう構成されたアダプタであって、前記サーバはサーバエージェントを含み、前記コンバージドネットワークは記憶データトラフィックと記憶データトラフィックではないトラフィックの両方が通過する単一ネットワークであり、前記アダプタは、
    前記記憶装置を前記アダプタに接続させるよう構成された少なくとも1つのポートと、
    前記アダプタを前記コンバージドネットワークに接続し、それにより、前記記憶装置が前記少なくとも1つのポートに接続されたとき、前記アダプタを介して前記記憶装置を前記コンバージドネットワークに接続するよう構成された少なくとも1つのアダプタインタフェースと、
    アダプタエージェントであって、前記アダプタエージェントは前記コンバージドネットワークに接続されて、
    前記アダプタインタフェースの各々が過負荷かどうかを判断し、前記アダプタインタフェースの各々についてアダプタインタフェース過負荷表示を生成し、前記アダプタインタフェースの各々についてアダプタインタフェース過負荷表示は、前記アダプタインタフェースが過負荷かどうかの表示であり、
    前記サーバエージェントからの要求に応じて、前記アダプタに、少なくとも1つの前記アダプタインタフェースへ、少なくとも1つの前記アダプタインタフェース過負荷表示を表示するデータをアサートさせる、よう構成されたことを特徴とするアダプタエージェントと、
    を含むことを特徴とするアダプタと、
    前記少なくとも1つのサーバインタフェースを有する前記少なくとも1つのサーバであって、前記サーバは、前記サーバエージェントを含み、前記サーバインタフェースによりコンバージドネットワークに接続されるように構成されているサーバと、
    を含み、
    前記サーバエージェントは、前記コンバージドネットワークに接続されて、
    前記サーバに、前記アダプタエージェントへ要求をアサートさせ、前記要求に応答して前記アダプタエージェントにより前記サーバに提供された少なくとも1つのアダプタインタフェース過負荷表示を特定させ、
    前記サーバインタフェースを含み、前記アダプタを介して前記記憶装置に前記サーバがアクセスする経路について、前記アダプタインタフェース過負荷表示を用いる方法で、前記経路が過負荷か否かを判断するよう構成されている、
    ことを特徴とするシステム。
JP2021215255A 2015-08-06 2021-12-28 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム Pending JP2022050512A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/819,775 2015-08-06
US14/819,775 US9794112B2 (en) 2015-08-06 2015-08-06 Method and system for balancing storage data traffic in converged networks
JP2018526481A JP2018530845A (ja) 2015-08-06 2016-07-01 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
PCT/US2016/040654 WO2017023461A1 (en) 2015-08-06 2016-07-01 Method and system for balancing storage data traffic in converged networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018526481A Division JP2018530845A (ja) 2015-08-06 2016-07-01 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム

Publications (1)

Publication Number Publication Date
JP2022050512A true JP2022050512A (ja) 2022-03-30

Family

ID=57943537

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018526481A Pending JP2018530845A (ja) 2015-08-06 2016-07-01 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
JP2021215255A Pending JP2022050512A (ja) 2015-08-06 2021-12-28 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018526481A Pending JP2018530845A (ja) 2015-08-06 2016-07-01 コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム

Country Status (8)

Country Link
US (2) US9794112B2 (ja)
EP (2) EP3332323B1 (ja)
JP (2) JP2018530845A (ja)
KR (2) KR20220093388A (ja)
CN (1) CN108027749B (ja)
DE (2) DE202016009092U1 (ja)
HK (1) HK1250539A1 (ja)
WO (1) WO2017023461A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455097B2 (en) * 2016-01-28 2022-09-27 Weka.IO Ltd. Resource monitoring in a distributed storage system
US10749942B2 (en) * 2016-12-28 2020-08-18 Hitachi, Ltd. Information processing system and method
US11436113B2 (en) * 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
US11126358B2 (en) * 2018-12-14 2021-09-21 EMC IP Holding Company LLC Data migration agnostic of pathing software or underlying protocol
US11169941B2 (en) * 2020-04-09 2021-11-09 EMC IP Holding Company LLC Host device with automated connectivity provisioning
US11509548B1 (en) * 2021-07-16 2022-11-22 Google Llc Adaptive exponential moving average filter
US11665087B2 (en) 2021-09-15 2023-05-30 International Business Machines Corporation Transparent service-aware multi-path networking with a feature of multiplexing
CN115037642B (zh) * 2022-03-30 2023-11-21 武汉烽火技术服务有限公司 一种识别流量瓶颈的方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504186A (ja) * 2002-10-21 2006-02-02 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション 複数の伝送路フェイルオーバー、フェイルバックおよび負荷分散を備えるシステム
JP2007328611A (ja) * 2006-06-08 2007-12-20 Hitachi Ltd ストレージ仮想化システム及び方法
JP2008083939A (ja) * 2006-09-27 2008-04-10 Hitachi Ltd 計算機システム及び動的ポート割当方法
JP2010079626A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd 計算機システムの負荷分散方法及びシステム
JP2013197868A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 中継装置、中継装置の制御方法及び中継システム
US20150095445A1 (en) * 2013-09-30 2015-04-02 Vmware, Inc. Dynamic Path Selection Policy for Multipathing in a Virtualized Environment
JP2015520423A (ja) * 2012-04-23 2015-07-16 株式会社日立製作所 計算機システム、及び、計算機システムの仮想サーバ移行制御方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438141B1 (en) 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
US6556541B1 (en) 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
US6868062B1 (en) * 2000-03-28 2005-03-15 Intel Corporation Managing data traffic on multiple ports
US7269185B2 (en) * 2000-05-22 2007-09-11 Nortel Networks Limited Management and control of multi-layer networks
US7134040B2 (en) * 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device
US20050050187A1 (en) * 2003-09-03 2005-03-03 International Business Machines Corporation Method and apparatus for support of bottleneck avoidance in an intelligent adapter
US7760626B2 (en) * 2004-03-31 2010-07-20 Intel Corporation Load balancing and failover
US7590775B2 (en) 2004-08-06 2009-09-15 Andrew Joseph Alexander Gildfind Method for empirically determining a qualified bandwidth of file storage for a shared filed system
US7876689B2 (en) * 2005-06-29 2011-01-25 Hewlett-Packard Development Company, L.P. Method and apparatus for load balancing network interface adapters based on network information
US20070156879A1 (en) * 2006-01-03 2007-07-05 Klein Steven E Considering remote end point performance to select a remote end point to use to transmit a task
US8635376B2 (en) 2006-02-22 2014-01-21 Emulex Design & Manufacturing Corporation Computer system input/output management
US7773504B2 (en) * 2007-11-13 2010-08-10 Intel Corporation Bandwidth allocation for network packet traffic
US9430297B2 (en) * 2008-12-15 2016-08-30 International Business Machines Corporation Load balancing of adapters on a multi-adapter node
US8155518B2 (en) * 2009-03-30 2012-04-10 Lsi Corporation Dynamic load balancing of fibre channel traffic
US8977784B2 (en) * 2010-04-30 2015-03-10 Intel Corporation Port teaming
US9124423B2 (en) * 2010-05-14 2015-09-01 International Business Machines Corporation Iterative data secret-sharing transformation
US8521922B2 (en) * 2011-01-10 2013-08-27 International Business Machines Corporation Input/output (I/O) path selection based on workload types
CN102118319B (zh) * 2011-04-06 2013-09-18 杭州华三通信技术有限公司 流量负载均衡方法和装置
CN102347876B (zh) * 2011-09-30 2013-11-13 鞠洪尧 一种云计算网络多链路聚合控制装置
US11474704B2 (en) * 2012-05-18 2022-10-18 Atto Technology, Inc. Target path selection for storage controllers
US9401862B2 (en) * 2013-02-07 2016-07-26 Dell Products L.P. Optimized internet small computer system interface path
US9781041B2 (en) * 2013-07-24 2017-10-03 Dell Products Lp Systems and methods for native network interface controller (NIC) teaming load balancing
CN103716251B (zh) * 2014-01-14 2017-06-27 三星电子(中国)研发中心 用于内容分发网络的负载均衡方法及设备
US10209898B2 (en) * 2014-04-03 2019-02-19 International Business Machines Corporation Estimation of performance utilization of a storage device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504186A (ja) * 2002-10-21 2006-02-02 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション 複数の伝送路フェイルオーバー、フェイルバックおよび負荷分散を備えるシステム
JP2007328611A (ja) * 2006-06-08 2007-12-20 Hitachi Ltd ストレージ仮想化システム及び方法
JP2008083939A (ja) * 2006-09-27 2008-04-10 Hitachi Ltd 計算機システム及び動的ポート割当方法
JP2010079626A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd 計算機システムの負荷分散方法及びシステム
JP2013197868A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 中継装置、中継装置の制御方法及び中継システム
JP2015520423A (ja) * 2012-04-23 2015-07-16 株式会社日立製作所 計算機システム、及び、計算機システムの仮想サーバ移行制御方法
US20150095445A1 (en) * 2013-09-30 2015-04-02 Vmware, Inc. Dynamic Path Selection Policy for Multipathing in a Virtualized Environment

Also Published As

Publication number Publication date
DE202016009092U1 (de) 2022-06-29
KR20180037992A (ko) 2018-04-13
WO2017023461A1 (en) 2017-02-09
EP3332323A1 (en) 2018-06-13
US20180006874A1 (en) 2018-01-04
EP3332323B1 (en) 2021-12-01
US20170041182A1 (en) 2017-02-09
EP4068730A1 (en) 2022-10-05
KR20220093388A (ko) 2022-07-05
US9794112B2 (en) 2017-10-17
US9998322B2 (en) 2018-06-12
KR102413148B1 (ko) 2022-06-27
EP3332323A4 (en) 2019-03-06
HK1250539A1 (zh) 2018-12-21
JP2018530845A (ja) 2018-10-18
DE202016009110U1 (de) 2022-06-01
CN108027749A (zh) 2018-05-11
CN108027749B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
JP2022050512A (ja) コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
US10895984B2 (en) Fabric attached storage
JP6199514B2 (ja) ファブリック分散リソースのスケジューリング
EP3117335B1 (en) Coordinated admission control for network-accessible block storage
GB2555324B (en) Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit
US10250507B2 (en) Persistent connection rebalancing
US10250673B1 (en) Storage workload management using redirected messages
EP2972855A1 (en) Automatic configuration of external services based upon network activity
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
JP2023539212A (ja) ストレージレベルの負荷分散
Wang et al. Swarm-based incast congestion control in datacenters serving web applications
Fernando et al. SDN-based order-aware live migration of virtual machines
US11799948B2 (en) Cloud service datacenter selection based on data sovereignty policies
US11474827B1 (en) Reboot migration between bare-metal servers
KR20230129693A (ko) 트래픽 지역성을 고려한 쿠버네티스 기반 엣지 컴퓨팅 환경에서의 트래픽 분배 방법 및 트래픽 분배 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220127

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220916

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221206