JP4686606B2 - 複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間での入力/出力作業負荷の動的分散のための方法、コンピュータ・プログラム、およびシステム - Google Patents

複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間での入力/出力作業負荷の動的分散のための方法、コンピュータ・プログラム、およびシステム Download PDF

Info

Publication number
JP4686606B2
JP4686606B2 JP2008529572A JP2008529572A JP4686606B2 JP 4686606 B2 JP4686606 B2 JP 4686606B2 JP 2008529572 A JP2008529572 A JP 2008529572A JP 2008529572 A JP2008529572 A JP 2008529572A JP 4686606 B2 JP4686606 B2 JP 4686606B2
Authority
JP
Japan
Prior art keywords
network
port
hba
path
paths
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008529572A
Other languages
English (en)
Other versions
JP2009508196A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009508196A publication Critical patent/JP2009508196A/ja
Application granted granted Critical
Publication of JP4686606B2 publication Critical patent/JP4686606B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/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]
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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

Description

本発明は全体としてストレージ・エリア・ネットワークに関し、とりわけ、ストレージ・エリア・ネットワーク内での入力/出力作業負荷の動的分散に関する。
現在のITシステムでは、サーバおよびテープ・ドライブがストレージ・エリア・ネットワーク(たとえばFibre Channel SAN、iSCSI SAN)を介して接続される。これに加えて、取り外し可能メディア管理に関するIEEE 1244標準が、異機種サーバおよびアプリケーションの境界をまたがって効率良くテープ・ドライブを共有するために、アーキテクチャおよびプロトコルを定義する。構成およびアクセス制御を簡略化するために、IEEE 1244はドライブをドライブ・グループに編成する。どちらも共通ドライブ・グループのドライブへのアクセスが許可されている2つのアプリケーションの場合、IEEE 1244管理ドライブを共有することができる。
理論上、IEEE 1244のようなテープ管理システムは、いくつかのアプリケーション間で非常に柔軟なテープ・ドライブの共有を可能にするが、実際には、帯域幅を考えるとこの共有は制限される。ホストのI/Oバス(たとえばPCIバス)およびサーバのI/Oポート(たとえばFibre Channelポート、iSCSIポート)の帯域幅制限により、I/Oポートが効率良く利用できるドライブは一定数に限られる。I/Oポートによって利用されるドライブの数があるしきい値を超えた場合、性能が低下することになる。
この数は、しばしばI/Oポートのドライブ制限と呼ばれる。さらに、異機種混合環境では、異なるI/Oポートが異なるドライブ制限を有する可能性がある。たとえば、2GビットのFibre Channelポートは、1GビットのFibre Channelポートまたは1GビットのiSCSIポートよりも多くのドライブをドライブ最高速で利用することができる。ドライブという用語はテープ・ドライブに限られず、ディスク、光、ランダム・アクセス・メモリ、ホログラフィック、またはナノテクノロジ・デバイスなどの、任意の他のI/Oデバイスとすることができる。
従来技術では、以下の方法およびシステムを使用して、ドライブ共有環境において、I/Oポートによって同時に使用されているドライブの数がそのドライブ制限を超えないことを保証する。
1.ソフトウェア構成を介したリソースの区分化
ポートのドライブ制限を超えないための典型的な手法は、ポートで可視のドライブ数を減らすことである。たとえば本発明者等は、それぞれドライブ制限がnのI/Oポート1つを備える2つのサーバを有する。ストレージ管理者が、どちらのサーバも1日のうちの異なる時間にnドライブを必要とすることを知っていれば、通常は両方のサーバに同じnドライブをゾーン付けする(zone)。これにより、両方のサーバ間でのドライブ共有を可能にしながら、それぞれのドライブ制限を超えないことを保証する。
この手法の欠点は柔軟性の欠如である。たとえばドライブのうちの1つが活動停止となった場合、手動介入が必要である。管理者は、両方のサーバのI/Oポートにゾーン付け可能な、使用可能な予備ドライブを識別しなければならない。さらに管理者は、両方のサーバのオペレーティング・システムを起動し、新しいハードウェアをスキャンしてからでなければ、アプリケーションが新しいドライブを使用することはできない。これに加えて、第3のサーバのアクセス特徴を熟知してからでなければ、他の2つのサーバのリソース要件に反することなくこの環境に第3のサーバを統合することはできない。さらに、サーバのうちの1つのアクセス特徴が変わった場合、構成も適合させなければならない。経時的に両方のサーバが1日の同じ時間にドライブを必要とする場合、または経時的にサーバのうちの1つの作業負荷を1ドライブ未満で満たすことができる場合、追加の手段が必要である。このシナリオが、テープ・インフラストラクチャ全体の集中的な(aggregated)ドライブ使用率を向上させるために必要なSANゾーニング変更につながる。その結果、全体として柔軟性が制限されるため、この手法は大規模環境には釣り合わない。
2.ディスク・キャッシュを備えた仮想テープ・サーバ
他の手法は、サーバとテープとの間のI/Oパスにディスク・キャッシュを配置することである。こうしたシナリオでは、いわゆる仮想テープ・サーバが仮想テープ・ドライブ内の仮想カートリッジをサーバに提示するが、仮想テープ・サーバは内部的にデータをディスク・キャッシュにリダイレクトする。その後、仮想テープ・サーバは、ディスク・キャッシュから実ドライブを介して実テープ・カートリッジへとデータをデステージする(destage)。この手法の欠点は、仮想テープ・サーバを構築するために追加のハードウェアおよびソフトウェアが必要なことである。
3.ディスク・キャッシュを備えていない仮想テープ・サーバ
他のシナリオでは、仮想テープ・サーバは、サーバが使用可能な仮想テープ・ドライブの数がソフトウェア構成におけるパラメータによって制限されるサーバに、仮想テープ・ドライブをエクスポートする。サーバがカートリッジをマウント(mount)しようとする場合、仮想テープ・サーバは仮想テープ・ドライブを物理テープ・ドライブに動的に接続する。このようにして、サーバI/Oポートへの物理テープ・ドライブの柔軟なマッピングを達成することができる。この手法の欠点は、仮想テープ・サーバを構築するために追加のハードウェアおよびソフトウェアが必要なことである。
4.複数ポートを備えたテープ・ドライブ
テープ・ドライブの中には複数のポートを備えるものがある。加えて、マルチパス・ソフトウェアを使用して、すべての使用可能なパスにわたってI/Oのバランスを取ることができる。この手法の欠点は、追加のハードウェア(テープ・ドライブ側ポート、第2のドライブ・ポートを接続するためのストレージ・ネットワーク側ポート)およびソフトウェア(マルチパス・ソフトウェアなど)が必要なことである。通常、一度に1ポートがアクティブであり、他のポートは万が一の予備の目的で働くため、アクティブ・ポートを介したI/O実行の問題がある。したがって、この手法は大規模環境には釣り合わない。
したがって、複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間でのI/O作業負荷分散の動的分散を容易にする、方法およびシステムが求められている。
本発明に従って、入力/出力(I/O)ネットワーク・パスをセット・オフI/Oネットワーク・パスから識別するためのロード・バランシング(load balancing)方法が提供される。セット・オフI/Oネットワーク・パスの各パスは、ネットワークを介してホスト・システムをストレージ・サブシステムに接続する。ホスト・システムは、少なくとも1つのホスト・バス・アダプタ(HBA)を備える。ストレージ・サブシステムは、少なくとも1つのI/Oデバイスを備え、ネットワークは少なくとも1つのネットワーク・デバイスを備える。HBA、I/Oデバイス、およびネットワーク・デバイスは、それぞれ少なくとも1つのI/Oポートを備える。少なくとも1つのHBAの少なくとも1つのI/Oポートそれぞれについて、HBAポート制限が決定される。その後、少なくとも1つのHBAそれぞれの少なくとも1つのI/Oポートを、少なくとも1つのネットワーク・デバイスのI/Oポートを介して、少なくとも1つのI/Oデバイスそれぞれの少なくとも1つのI/Oポートに接続する、I/Oネットワーク・パスのセットが決定される。次に、各I/Oネットワーク・パスについてファブリック使用率制限が決定され、少なくとも1つのHBAの少なくとも1つのI/OポートそれぞれについてHBAポート使用率が決定される。HBAポート使用率がHBAポート制限を超えるすべてのネットワーク・パスは廃棄される。残りのパスそれぞれについて、ネットワーク・パス距離が決定される。ネットワーク・パス距離がパス距離制限を超えるすべてのネットワーク・パスは廃棄される。その後、残りのパスそれぞれについて、ファブリック使用率が決定される。ファブリック使用率がファブリック使用率制限を超えるすべてのパスは廃棄され、残りのネットワーク・パスからI/Oネットワーク・パスが決定される。
本発明は、HBAポート使用率、パス距離、およびファブリック使用率というパラメータを考慮に入れることにより、HBAからI/Oデバイスへのネットワーク・パスを動的に決定するため、特に有利である。これらのパラメータは、それぞれHBAポート制限、パス距離制限、およびファブリック使用率制限というパラメータに照らしてチェックされる。このようにして、すべての適格なネットワーク・パスから最良のネットワーク・パスが識別される。
本発明の実施形態に従い、HBAのI/Oポートによって並行処理が可能なI/Oデバイスの数により、少なくとも1つのHBAそれぞれの少なくとも1つのI/Oポートそれぞれについて、HBAポート制限が決定される。これは通常、HBAのI/Oポートによって並行処理が可能なI/Oデバイスの数が指定されるため、特に有利である。この指定は、たとえばシステム管理者によって提供可能であるか、または本発明に従ったロード・バランシング・システムによって対応するI/Oポートから読み取ることが可能である。この指定が、HBAの1つのI/Oポートが提供可能であり、当該HBA I/OポートからI/Oを受信可能なI/Oデバイスの数に直接関係する、帯域幅を定義する。帯域幅は、実質的に、1つのHBA I/Oポートによって実行可能な1秒あたりのI/O動作数を定義し、通常は1秒あたりのメガバイト数(MB/秒)単位で測定される。
本発明の実施形態に従い、HBAのI/Oポートによって処理可能な1秒あたりの最大ビット数によって、少なくとも1つのHBAそれぞれの少なくとも1つのI/Oポートそれぞれについて、HBAポート制限が決定される。I/OポートをHBAポート制限として処理できる1秒あたりのビット数を使用することは、この値がロード・バランシング・システムによって動的に決定可能であるため、特に有利である。
本発明の実施形態に従い、HBAのI/Oポートに割り当てられた作業負荷(または帯域幅)によって、HBAのI/OポートのHBAポート使用率が決定される。これは、ロード・バランシング・システムがHBAに照会コマンドを送信することによって、作業負荷が動的に決定できるため、特に有利である。
本発明の実施形態に従い、ドライブ重みを使用することによってHBAポート使用率が決定される。ドライブ重みはI/Oデバイスに割り当てられ、ドライブ重みはI/Oデバイスの作業負荷を示す。
本発明の実施形態に従い、I/Oデバイスの作業負荷を示し、圧縮率によって調整される、ドライブ重みを使用することによって、HBAポート使用率が決定され、圧縮率はI/Oデバイスから取得される。
本発明は、少なくとも1つのホスト・バス・アダプタの少なくとも1つのI/OポートのHBAポート制限を考慮に入れることが可能であり、HBAポート使用率がHBAポート制限を超えるすべてのパスを廃棄するため、特に有利である。各HBAの各I/Oポートは、独自の特定HBAポート制限を有することに留意されたい。これにより、HBAのI/Oポートによって最適な数のドライブのみが使用されることが保証される。これは、全I/Oデバイス・インフラストラクチャの集中的な帯域幅全体の改善に寄与する。
本発明の実施形態に従い、I/Oネットワーク・パスに含まれるすべての相互接続の待ち時間を合計すること、およびI/Oネットワーク・パスに含まれるI/Oポートの数を追加することによって、残りの各ネットワーク・パスについてネットワーク・パス距離が決定される。
本発明の実施形態に従い、ネットワーク・パスに含まれる少なくとも1つのネットワーク・デバイスのI/Oポートを通過するデータ速度を合計することによって、ファブリック使用率が決定される。ネットワーク・デバイスを通るネットワーク・パスは、一般に、1つの入力ポートおよび1つの出力ポートの、少なくとも2つのポートを備える。
本発明の実施形態に従い、ネットワーク・パスに含まれるI/Oポートの合計数に対する、ネットワーク・パスに含まれるアクティブなI/Oポート数の比率によって、ネットワーク・パスのファブリック使用率が決定される。
ネットワーク・パスの決定にファブリック使用率を使用することは、ネットワーク・パスに含まれるすべてのコンポーネントの作業負荷が考慮に入れられるため、特に有利である。ファブリック使用率が最低のパスを選択することで、すべてのアクティブなリソースの最良の使用率が与えられる。さらに本発明は、ネットワーク・パスのファブリック使用率制限を考慮に入れ、ファブリック使用率の大きさがファブリック使用率制限を下回るかどうかをチェックするため、特に有利である。これにより、I/Oデバイス・インフラストラクチャの最大帯域幅を決して超えないことが保証される。
本発明の実施形態によれば、「最良の」I/Oネットワーク・パスは、HBAポート使用率、ネットワーク・パス距離、およびファブリック使用率を考慮に入れる関数が最低の関数値を引き出す、残りのネットワーク・パスである。HBA使用率、ネットワーク・パス距離、およびファブリック使用率の、3つのパラメータが、すべてのパスに割り当てられ、ここから最良のパスが選択される。たとえば、システム管理者によって関数が指定される。最良のパスを決定するために関数を使用することは、システム管理者が3つのパラメータを等しく、または異なるように重みづけできるようにするという利点を有する。
他の態様では、本発明は、方法を実行するためのコンピュータ実行可能命令を備えるコンピュータ・プログラム製品に関する。
他の態様では、本発明は、I/Oネットワーク・パスのセットからI/Oネットワーク・パスを識別するためのロード・バランシング・システムに関し、このI/Oネットワーク・パスのセットは、ネットワークを介してホスト・システムをストレージ・サブシステムに接続する。
次に、単なる例示として図面を参照しながら、本発明の好ましい諸実施形態についてより詳細に説明する。
図1は、本発明の一実施形態を実装するシステムを示すブロック図である。このシステムは、取り外し可能メディア管理システム118、ホスト・システム102、ネットワーク112、ストレージ・サブシステム149を備える。取り外し可能メディア管理システム118は、ロード・バランシング・システム106、マイクロプロセッサ103、不揮発性メモリ・デバイス105、および揮発性メモリ・デバイス107を備える、コンピュータ・システムである。ホスト・システムは、アプリケーション104、取り外し可能メディア管理システム118と通信するためのエージェント109、デバイス・ドライバ108、ならびに、それぞれI/Oポート160、161および162を備えるホスト・バス・アダプタ(HBA)110、111を備える、たとえばサーバ・システムなどのコンピュータ・システムでもある。
ネットワーク112は、たとえばストレージ・ネットワーク(たとえばFibre Channel、iSCSI)内のスイッチ、ルータ、およびハブなどの、典型的なネットワーク・デバイスである、ネットワーク・コンポーネント113、114、および115を備える。各ネットワーク・デバイスは、I/Oポート130、131、132、133、134、140、141、142、143、144、145、および146を備える。
ストレージ・サブシステム149は、I/Oデバイス120、121、125、および126を備える。I/Oデバイスは、通常、テープ、ディスク、ホログラフィック、ナノテクノロジ、または光I/Oデバイスなどの、取り外し可能メディア・デバイスである。I/Oデバイス120、121、125、および126は、それぞれ1つまたは複数のI/Oポート150、151、152、153、および154を備える。
I/Oネットワーク・パスは、相互接続を使用することにより、1つまたは複数のネットワーク・デバイスのI/Oポートを介して、HBAのI/OポートをI/OデバイスのI/Oポートに接続する。たとえばネットワーク・パス190は、相互接続を使用して、HBA 111のI/Oポート161をネットワーク・デバイス114のI/Oポート131に接続し、ネットワーク・デバイス114の他のI/Oポート145をI/Oデバイス126のI/Oポート153に接続する。HBAは複数のI/Oポートを備えることができることに留意されたい。4つまでのI/Oポートが典型的である。さらにネットワーク・デバイスは、実際に2つまたはそれ以上のI/Oポートを備え、I/Oデバイスも複数のI/Oポートを備えることができる。
パスは、1つまたは複数の相互接続を備える。相互接続は、1つのI/Oポートから他のI/Oポートへデータが移送される際に使用する任意のデバイスとすることができる。相互接続の例は、Fibre Channelケーブル、イーサネット(登録商標)・ケーブル、あるいは、CWDM、DWDM、ATM、Sonet/SDH、またはTCP/IPのようなWAN相互接続である。相互接続は、無線接続によっても提供することができる。たとえばホスト・システムおよびストレージ・サブシステムは、無線ローカル・エリア・ネットワークによって相互接続することが可能であり、これにより1つのI/Oポートから他のI/Oポートへと光信号によってデータが伝送され、さらにこれにより、たとえば光信号は赤外線周波数領域内の周波数を有する。
光ケーブルが相互接続として採用される場合、または無線相互接続が使用される場合、相互接続自体が信号周波数の異なるいくつかのチャネルを備えることが可能である。したがって相互接続は、チャネルによって、またはそれに対応してデータの転送に使用される光周波数によって、各パスが特徴付けられる、いくつかのパスを提供することが可能である。
ネットワーク・パスは、複数のネットワーク・コンポーネントも備えることができる。たとえばI/Oネットワーク・パス170では、相互接続がI/Oポート160をI/Oポート130に接続し、次に相互接続がI/Oポート140をI/Oポート132に接続し、さらに相互接続がI/Oポート142をI/Oデバイス120のI/Oポート150に接続する。
ネットワーク・パスは、ネットワーク・コンポーネントを備えないこともできる。I/OデバイスのI/Oポートは、相互接続によってHBAのI/Oポートと直接接続することができる。ネットワーク・パスは、当該相互接続からなる。
アプリケーション104は、ホスト・システム102を使用して、I/Oデバイス120、121、125、および126にアクセスする。ホスト・システム102、とりわけアプリケーション104は、エージェント109およびTCP/IPなどの適切な通信方法を介して、メディア管理システム118に含まれるロード・バランシング・システム106と接触する。ロード・バランシング・システム106は、アプリケーション104がI/Oデバイス120、121、125、126へのデータの読み取りまたは書き込みの際に使用可能なネットワーク・パスのセットから、ネットワーク・パス170を決定する。アプリケーション104は、マウント、読み取り、または書き込みのコマンドなどの、データ・アクセス要求の結果として、ロード・バランシング・システム106に接触することができる。ネットワーク・パスのセットからI/Oネットワーク・パスを識別するために採用される方法の様々な実施形態について、以下で説明する。
ロード・バランシング・システム106は、エージェント109を使用して、揮発性メモリ・デバイス107上に格納された、ネットワークおよびストレージ・サブシステム149のいくつかのパラメータを決定する。別の方法として、それらは不揮発性メモリ・デバイス105上に格納することもできる。ホスト・システム102は、I/Oデバイス120、121、125、および126にアクセスするために、1つまたは複数のデバイス・ドライバ108を採用する。
しかしながら、本発明に従ったシステムは、決してこの実施形態に制約されることはない。たとえばロード・バランシング・システム106を備えるメディア管理システム118は、ホスト・システム102またはストレージ・サブシステム149に含まれる場合がある。メディア管理システム118は、たとえばアプリケーションに組み込まれたライブラリ・マネージャの形でホスト・システム102内に実装される場合がある。メディア管理システム118は、たとえばテープ・ライブラリ用の拡張ライブラリ・マネージャの形でストレージ・サブシステム149内に実装される場合がある。しかしながら、外部メディア管理システム118の利点は、異なるネットワークおよびストレージ・サブシステムに、または同じネットワークおよびストレージ・サブシステムに接続された、いくつかのホスト・システムによって同時に使用されることが可能なことである。
ネットワーク・パスのセットは、HBA 110または111のI/Oポート160、161、または162を、ネットワーク112を介してストレージ・サブシステム149のI/Oデバイス120、121、125、および126に接続する、すべてのパスからなる。たとえばI/Oネットワーク・パス170は、HBA 110のI/Oポート160からネットワーク・デバイス113のI/Oポート130へとつながる相互接続、ならびにネットワーク・デバイス113のI/Oポート140からネットワーク・デバイス115のI/Oポート132へとつながる相互接続、ならびにネットワーク・デバイス115のI/Oポート142からI/Oデバイス120のI/Oポート150へとつながる相互接続によって、具体化される。
本発明の実施形態に従い、ロード・バランシング・システム106は、以下で指定される他のパラメータに加えて、揮発性メモリ・デバイス107または不揮発性メモリ・デバイス105上に格納された、HBAポート制限180、HBAポート使用率182、ネットワーク・パス距離184、パス距離制限185、ファブリック使用率制限186、ファブリック使用率188、圧縮率192、およびドライブ重み194の、パラメータを決定する。次に、これらのパラメータが決定される方法について詳細に説明する。
ロード・バランシング方法は、アプリケーション104からのデータ・アクセス要求の受け取りに応答して、マイクロプロセッサ103によって実行される。データ要求に関する例には、カートリッジのマウント要求、ストレージ・ネットワーク内でのSCSIソースからSCSIターゲットへの接続確立、およびストレージ・ネットワーク内での新しいゾーンの作成が含まれる。
図2は、本発明の好ましい実施形態において、「最良の」I/Oネットワーク・パスが決定される方法を示す流れ図である。プロセスは202で開始され、すべてのパスのセットが決定される204へと続く。各I/Oネットワーク・パスは、システムのHBAのI/Oポート(ホスト・システムは複数のHBAを備えることが可能であり、各HBAは1つまたは複数のI/Oポートを備える)から、ネットワークを介した、I/OデバイスのI/Oポート(ストレージ・サブシステムも、複数のI/Oポートを備えることが可能な複数のI/Oデバイスを備えることが可能である)へのルートを記述する。HBAのI/Oポートは、以下ではHBAポートとも言い表される。ステップ204の結果として、セットP204はすべてのパスのセットを記述する。ステップ206は、I/Oにとって適格でないすべてのパスを除去する。適格でないI/Oネットワーク・パスの例には、アクティブなFibre Channelゾーンのメンバでない物理I/Oネットワーク・パスが含まれる。適格でないネットワーク・パスの他の例は、フリーまたは使用可能でないデバイスである。デバイスは、他のアプリケーションまたは他のホスト・システムによって使用中であるため、フリーでない可能性がある。デバイスは、不良またはオフラインである場合、使用できない可能性がある。新しいデータ・アクセス要求を処理する場合、ステップ204は、現在使用中でないドライブへのパスのみを考慮することに留意されたい。ステップ206の結果、セットP206はすべての適格なパスの集合を記述する。代替実施形態では、ステップ204は適格なパスのみを決定するため、ステップ206は省略することができる。
次にプロセスは、意思決定チェックポイント208へと進む。この地点で、適格なパスが残っていない場合(P206=φ)、プロセスはステップ299で終了する。ステップ299は、この時点で使用できる適格なパスがないことを示す。ステップ299で、またはステップ299の結果として実行されるアクションは、環境に依存する。たとえば、取り外し可能メディア管理システムでは、それぞれのマウント要求は、マウント要求がマウント要求キューに追加されることを意味するブロックが行われるか、または拒否される。他の実施形態では、ストレージ・ネットワーク容量計画モジュールが、それぞれのゾーニングまたはアクセス要求を拒絶する場合がある。さらに他の実施形態では、ステップ299は、パス発見を再試行するために、この流れ図の開始地点であるステップ202にループバックすることができる。さらに他の実施形態では、パスP204のセットにさらにパスを追加するために、追加のインフラストラクチャを動的に提供する、オンデマンド・モジュールを呼び出すことができる。
チェックポイント208で、アクセス要求を満たす適格なパスが存在する場合(P206≠φ)、プロセスはステップ210へと続行される。ステップ210は、ホスト・バス・アダプタのすべてのI/OポートhのセットHを構築し、ここでhは少なくとも1つのI/Oネットワーク・パスp要素P206(p∈P206)の開始点である。さらにステップ210で、アクセス要求がスケジューリングされたという仮定の下で、Hの各ホスト・バス・アダプタI/Oポートh要素について、HBAポート使用率uが決定される。HBAポート使用率の計算に関する代替実施形態については、後で詳細に説明する。
次に、プロセスはステップ212へと進む。ステップ212は、各HBAポートh∈HのHBAポート使用率uと、HBAポート制限lとを比較し、HBAポート使用率u>HBAポート制限l180であるすべてのパスpを廃棄する。一実施形態では、HBAポート制限lは、プロセス200がアプリケーションによって起動された後に、動的に決定される。この決定は、ネットワーク内のネットワーク・コンポーネントのパラメータと、メディア管理システムのプロセッサによってスキャンおよび照会されたストレージ・システム内のI/Oデバイス特徴とに基づく。たとえば、ロード・バランシング・システムは、ネットワーク・パスに関連付けられたすべてのコンポーネントを照会し、パス内で可能な最高データ速度を決定する。この最高データ速度は、HBAポート制限と等価である。他の実施形態では、HBAポート制限lは各HBAポートのユーザによって構成される。パラメータHBAポート制限lについては、後で詳細に説明する。ステップ212の結果は、ネットワーク・パスのセットP212であり、ここでP212={“hはpの開始点”AND“新しいHBAポート使用率u≦HBAポート制限l”を伴うp∈P206}である。
ステップ212で適格な候補が決定されない場合(P212=φ)、プロセスは、適格なパスが見つからなかったことを示すステップ299に進む。
決定された場合、プロセスはステップ214に進み、ここですべての残りのパスp∈P212のネットワーク・パス距離Nが決定される。パスp∈P212のネットワーク・パス距離Nは、2つのポート間の物理的距離、または相互接続の長さである。パスp∈P212のネットワーク・パス距離Nは、メディア管理システムのマイクロプロセッサが、たとえばネットワーク上のテスト・パッケージを送信すること、および折り返し(turn around)時間を測定することによって、自動的に決定することができる。折り返し時間は、当該パッケージがネットワーク上を移動しなければならない距離に比例する。代替実施形態では、ネットワーク・パス距離Nはユーザ構成可能であり、これは、ネットワーク内の任意の所与のパスに関する距離をユーザが構成することを意味する。ネットワーク・パス距離パラメータについては、後でより詳細に説明する。
次のステップ216は、I/Oネットワーク・パスpのネットワーク・パス距離Nが、パス距離制限lよりも大きい、すべてのパスp∈P212を廃棄する。本発明の一実施形態では、パス距離制限lは、プロセス200がアプリケーションによって起動された後に、本発明に従い、ロード・バランシング・システムによって動的に決定される。この決定は、スキャンおよび照会されたホスト・システムおよびストレージ・バスシステムを接続するネットワーク・コンポーネントのパラメータに基づく。他の実施形態では、パス距離制限は、各相互接続についてユーザによって構成される。パス距離制限lパラメータについては、後でより詳細に説明する。ステップ216の結果はP216のセットであり、ここでP216={“I/Oネットワーク・パスpのネットワーク・パス距離N≦I/Oネットワーク・パスpのパス距離制限l”を伴うp∈P212}である。適格な候補が残っていない場合、処理はステップ299で終了する(P216=φ)。
ステップ218は、すべての残りのパスp要素P216のファブリック使用率を計算する。パスp∈P216に関するファブリック使用率Fは、パスpを含むファブリックFが管理しなければならない作業負荷によって定義される。パスp∈P216に関するファブリック使用率Fは、メディア管理システムのマイクロプロセッサが、たとえば1秒あたりのI/O回数を照会するファブリックFのネットワーク・コンポーネントに照会を送信することによって、自動的に決定することができる。次にこの回数が、ファブリックFのパスpに関するすべてのネットワーク・コンポーネントにわたって累積される。パラメータ・ファブリック使用率については、後でより詳細に説明する。
次のステップ220は、パスpのファブリック使用率がI/Oネットワーク・パスpのファブリック使用率制限lよりも大きい、すべてのパスp要素P216を廃棄する。本発明の一実施形態では、ファブリック使用率制限lは、プロセス200がアプリケーションによって起動された後に、本発明に従ったロード・バランシング・システムによって動的に決定される。この決定は、スキャンおよび照会されたホスト・システムおよびストレージ・バスシステムを接続するネットワーク内のネットワーク・コンポーネントのパラメータに基づく。他の実施形態では、ファブリック使用率制限はユーザによって構成される。パラメータ・ファブリック使用率制限lについては、後でより詳細に説明する。
ステップ220の結果はセットP220であり、ここでP220={“パスpの新しいファブリック使用率≦パスpのファブリック使用率制限”を伴うp∈P216}である。P220に適格な候補が残っていない場合(P220=φ)、プロセスは適格なパスが見つからなかったことを示すステップ299に進む。適格な候補が残っている場合、すべてのパスp∈P220は帯域幅を超えないため、「最良のパス」の潜在的な候補であり、プロセスはステップ222へと進む。したがって処理の残りのステップは、追加のパスを廃棄せず、最適なパスを決定する。
ステップ222は、HBAポート使用率u、ファブリック使用率p、および距離pの、3つのパラメータに重みづけする関数fを導入する。一実施形態では、関数fは重みづけされた合計f(u,p,p)=a×u+b×p+c×pであり、この式でa、b、cは、たとえばシステム管理者によって指定される定数値である。
最後にステップ224で、上記で与えられた関数fがすべてのp∈P220のうち最低の関数値pmin=min(f(u,p,p))を引き出す、I/Oネットワーク・パスが選択される。この処理はステップ226で終了し、最良の性能を特徴とする「最良パス」として決定されたネットワーク・パスを戻す。
本発明の実施形態では、ステップ202から212、およびステップ226またはステップ299のいずれかのみが実施される。前述のように、ステップ212の結果はネットワーク・パスのセットp212であり、ここでP212={“hはpの開始点”AND“新しいHBAポート使用率u≦HBAポート制限l”を伴うp∈P206}である。P212≠φの場合、プロセスはステップ226で続行され、たとえば、リストP212から第1のネットワーク・パスを選択すること、またはセットP212からランダムにネットワーク・パスを選択することによって、セットP212から1つのネットワーク・パスが選択される。P212=φの場合、プロセスはステップ299で続行される。
本発明によれば、各I/Oネットワーク・パスp要素P220は、「最良パス」の決定に使用される3つのパラメータ、(a)HBAポート使用率、(b)ネットワーク・パス距離184、および(c)ファブリック使用率によって特徴付けられる。これらのパラメータについて、以下で説明する。
HBAポート使用率u − 現在どれだけの作業負荷がHBAのI/Oポートに割り当てられているかを追跡し、1秒あたりのメガバイト数(MB/秒)で表される。このHBAポートで現在ドライブが使用されていない場合、その値はゼロである。HBAポートで1つまたは複数のドライブの使用がスケジューリングされている場合、この値はそれぞれのドライブのドライブ重みの合計に設定される。
ドライブ重みは、I/OデバイスがどれだけのI/Oリソースを消費するかを示す、追加のパラメータである。これは、1秒あたりのメガバイト数(MB/秒)単位のI/O速度で表される。このパラメータは、どのデータ速度が達成可能であるかを報告するようにドライブに命じる照会コマンドをドライブに送信することによって、自動的に取得可能である。照会コマンドは、たとえばドライブにその特徴を照会するSCSI INQUIRYコマンドであり、通常、1つのパラメータがドライブ帯域幅を示す。ドライブ帯域幅は、たとえばI/Oデバイスが処理可能なデータ速度を示し、通常は1秒あたりのメガバイト数で表される。代替実施形態では、ドライブ重みパラメータをユーザが構成することができる。
さらに他の実施形態では、ドライブ重みは、本発明に従ったメディア管理システムによるI/Oデバイス動作に基づいて、動的に調整される。I/Oデバイスは、通常、前述の動作で処理されたデータ速度に関する統計データを維持する。この統計データをメディア管理システムが照会することができる。照会コマンドの例は、SCSI LOG SENSEコマンドである。メディア管理システムはこの情報に基づき、複数のマウントにわたって平均I/O速度を計算することにより、ドライブ重みを動的に更新することができる。
一実施形態では、ドライブ重みパラメータは、ドライブ重みが非圧縮データに関する場合、圧縮率によって調整される。圧縮は、通常、ある比率のI/Oデバイス・レベルで実行され、I/OデバイスのI/O速度に影響を与える。この実施形態では、ドライブ重みパラメータに圧縮率を掛けた後、HBAポート使用率に追加され、HBAポート制限と比較される。一実施形態では、圧縮率パラメータは、I/Oデバイスからメディア管理によって照会される。メディア管理システムは、圧縮率平均を計算し、これを揮発性メモリ・デバイスに格納する。照会コマンドはSCSI−3 LOG SENSEコマンドである。他の実施形態では、圧縮率はユーザによって構成される。
HBAポート使用率を更新するための方法は非常に単純である。この方法は、そのポートを介して使用されるI/Oデバイスがない場合に、値ゼロで開始される。図2のプロセスの結果として、I/OデバイスがHBAポート(マウント要求)向けにスケジューリングされる場合、HBAポート使用率の値は、I/Oデバイスの圧縮率によって調整可能なドライブ重みパラメータ分増加される。その後、HBAポート使用率はメディア管理システムに格納される。ドライブがHBAポートからスケジュール解除(アンマウント要求)されると、HBAポート使用率の値はドライブ重み分低減される。
ネットワーク・パス距離N − ネットワーク・パス距離は、主に、I/Oネットワーク・パスに含まれる相互接続の物理長さの合計であるI/Oネットワーク・パスの長さによって提示される。好ましい実施形態は、I/Oネットワーク・パスに含まれるI/Oポートの数を含むことである。その理由は、各ポートが、データ速度に影響を与える、したがって考慮に入れるべき、何らかのレベルのオーバヘッドを表すためである。ネットワーク・パス距離は、好ましい実施形態に従って、メートル(m)などの長さエンティティで測定される。代替実施形態では、このパラメータは、ミリ秒(ms)などの時間単位で測定された、このパス上でのデータ・パッケージの折り返し時間で表される。所与のネットワーク・パスの長さを決定するために、ロード・バランシング・プロセスは、TCP/IPプロトコルに従った「ping」コマンドと同様に、パスを横切ってパッケージを送信し、折り返し時間を測定する。折り返し時間は、ネットワーク・パス距離パラメータとしてメディア管理システムのメモリ・デバイス内に格納される。代替実施形態では、パス距離はユーザによって構成され、メートル単位で表される。
ファブリック使用率F − パスpが常駐するファブリックの使用率を示す。ファブリックはいくつかのスイッチまたはネットワーク・コンポーネントからなる。ネットワーク・コンポーネントまたはスイッチは、いくつかのI/Oポートからなる。パスpのファブリック使用率は、パス内のI/OポートのI/O速度の合計によって計算される。したがって、ファブリック全体は考慮されず、1つのHBAと1つのI/Oデバイスとの間のI/Oネットワーク・パス内のコンポーネントのみが考慮される。このパラメータは、ファブリック内のパスpに関連するポートの含まれるデータ速度を表す、1秒あたりのメガバイト数などのデータ速度で表される。ロード・バランシング・システムは、適切なコマンドを介してパスに関連するポートのデータ速度を決定する。たとえば従来技術に従ったSANスイッチ・コンポーネントは、I/Oポートのデータ速度を照会するためにロード・バランシング・システムが使用可能なアウトバウンド接続に、アプリケーション・プログラミング・インターフェース(API)を提供する。代替実施形態では、パスpのファブリック使用率は、ファブリック内の合計ポート数に対するファブリック内のアクティブ・ポート数の比率によって決定される。ポートの動作は、たとえばSANコンポーネントによって提供されるAPIを介して、ロード・バランシング・システム106によって照会される。このパラメータは、図2のプロセスのステップ218の一部として決定される。ファブリック使用率は動的に変化するため、別の方法として、バックグラウンドで決定することができる。
このパラメータを使用することによって、本発明に従ったロード・バランシングの方法およびシステムは、HBAポートおよびI/Oデバイスを接続するパスのすべてのコンポーネントの作業負荷を考慮に入れる。ファブリック使用率が最低のパスを選択することで、すべてのリソースに等しい使用率が与えられる。
図2に記載されたプロセスは、(a)HBAポート制限、(b)ネットワーク・パス距離制限、および(c)ファブリック使用率制限などの、一定のパスを排除することが可能な、これら3つのパラメータに関する制限またはしきい値も含む。これらの制限は、ステップ212、216、および220で概説し、以下でより詳細に説明する、3つのパラメータのうちの1つと比較される。
HBAポート制限l − HBAポート制限は、HBAの各ポートに関する新しいメタデータ属性である。一実施形態では、HBAポート制限は、単にこのポートが並行して処理可能なドライブの数を表す。他の実施形態では、HBAポート制限は、ポートが処理可能な最大スループット(たとえば100Gビット)を表す。相互接続がいくつかのチャネルを備える光ケーブルまたは無線接続であり、異なる光周波数を使用して各チャネル上をデータが転送される、他の実施形態では、HBAポート制限は、HBAポートによって処理可能なチャネル数とすることもできる。
パス距離制限l − パスの最大許容距離を表し、パス距離と比較される。パス距離制限は、ユーザによって構成される定数値である。
ファブリック使用率制限l − ファブリックの最大許容使用率を表し、ファブリック使用率と比較される。ファブリック使用率制限はユーザによって構成される。
図3は、「最良I/Oネットワーク・パス」を選択するための他の実施形態を教示する。200で示されたプロセスに対する最も重要な相違点は、プロセス300が禁止されたパスを除去しないことである。特にプロセス300は、HBAポート使用率に関する制限、ネットワーク・パス距離に関する制限、およびファブリック使用率に関する制限を考慮しない。その代わりにこのプロセスは、上記で説明された3つのパラメータ(a)HBAポート使用率、(b)ネットワーク・パス距離、および(c)ファブリック使用率のそれぞれについて、最低値を選択する。この実施形態は、図2に示された実施形態と共に、ロード・バランシング・システムの実装に関して様々な代替実施形態が存在することを示す。
プロセス300は、アプリケーション104からのデータ・アクセス要求に応答して、ロード・バランシング・システム106によって実行される。代替実施形態は、このプロセスが、ホスト・システム102の使用率がより低い場合に実行されることである。
プロセス300は302で開始され、304へと進み、ここですべてのパスのセットが決定される。各I/Oネットワーク・パスは、ホスト・システム102のホスト・バス・アダプタ110または111のI/Oポート160、161、または162から、ネットワーク112を介して、I/Oデバイス120、121、125、および126の少なくとも1つのI/Oポートへのルートを示す。たとえばI/Oネットワーク・パス170は、HBA 110のI/Oポート160、I/Oポート160からI/Oポート130へとつながる相互接続、ネットワーク・デバイス113、I/Oポート140からI/Oポート132へとつながる相互接続、ネットワーク・デバイス115、および、I/Oポート142からI/Oデバイス120のI/Oポート150へとつながる相互接続を含む。
ステップ305では、いずれかのネットワーク・パスが存在するかどうかがチェックされる。ネットワーク・パスが存在しない場合、流れはステップ399へと続行されて停止し、パスは決定されない。少なくとも1つのネットワーク・パスが存在する場合、流れはステップ306へと続行される。ステップ306では、各ホスト・バス・アダプタ110または111の各I/Oポート160、161、または162のHBAポート使用率が決定される。ステップ308は、使用率が最低のI/Oポート160、161、または162を決定する。ステップ310では、HBAポート160、161、および162のHBAポート使用率が比較され、使用率が最低のHBAポートが選択される。HBAポート使用率が最低のI/Oネットワーク・パスが1つしかない場合、プロセスは、後で論じるステップ326へと続行される。
これに対して、使用率が最低のI/Oネットワーク・パスが複数存在する場合、プロセスはステップ312へと続行され、同じ最低使用率を有するI/Oネットワーク・パスに関して、ホスト・バス・アダプタ・ポート160、161、および162と、ドライブ120、121、125、126のI/Oポート150、151、152、153、および154との間の距離が決定される。
ステップ314では、ステップ312で考慮されたI/Oネットワーク・パスの中で、最低ネットワーク・パス距離が決定される。ステップ316では、最低距離を有するパスの数が1より大きいかどうかが判別される。その回答がNO、すなわちパスが1つのみの場合、プロセスは、後で論じるステップ326へと続行される。最低距離を有するI/Oネットワーク・パスが複数存在する場合、プロセス流れはステップ318へと進み、ここで、ネットワーク・パス距離が最低のすべてのパスについてファブリック使用率が決定される。ステップ320では、I/Oネットワーク・パスに関する最低ファブリック使用率が決定される。
その後、プロセス流れはステップ322へと進み、ここで、ファブリック使用率が最低のI/Oネットワーク・パスが複数存在するかどうかが判別される。その回答がNO、すなわちパスが1つのみの場合、プロセスはステップ326へと進む。ステップ326は、ステップ310、ステップ316、またはステップ322から、I/Oネットワーク・パスを1つだけ受け取る。このI/Oネットワーク・パスが、ステップ326で「最良パス」として識別される。ステップ326は終了330へと進む。
ステップ322で、ファブリック使用率が最低のネットワーク・パスが複数存在すると判別された場合、プロセス流れはステップ324へと進み、いわゆる第1のネットワーク・パスが選択される。本発明の一実施形態では、ステップ322で決定されたすべてのネットワーク・パスがリストに格納される。その後、いわゆる第1のネットワーク・パスが、リストの第1の要素であるI/Oネットワーク・パスとなる。本発明の代替実施形態では、リスト内の最後のI/Oネットワーク・パスを選択する。ステップ324は終了地点へと進む。
本発明の実施形態では、ステップ302から310、ならびにステップ326またはステップ399のいずれか、のみが実施される。ステップ310で決定されたパスの数が1より大きい場合、たとえばランダムに1つのパスが選択され、この方法は「最良パス」を伴うステップ326で終了する。
本発明の一実施形態を実装するシステムを示すブロック図である。 本発明の好ましい実施形態において、I/Oネットワーク・パスが決定される方法を示す流れ図である。 本発明の他の好ましい実施形態において、I/Oネットワーク・パスが決定される方法を示す流れ図である。

Claims (12)

  1. 入力/出力(I/O)ネットワーク・パス(170)をI/Oネットワーク・パスのセットから識別するためのロード・バランシング方法(106)であって、前記I/Oネットワーク・パスのセットはネットワーク(112)を介してホスト・システム(102)をストレージ・サブシステム(149)に接続し、前記ホスト・システム(102)は少なくとも1つのホスト・バス・アダプタ(HBA)(110、111)を備え、前記ストレージ・サブシステム(149)は少なくとも1つのI/Oデバイス(120、121、125、126)を備え、前記ネットワーク(112)は少なくとも1つのネットワーク・デバイス(113、114、115)を備え、前記HBA(110、111)のそれぞれ、前記I/Oデバイス(120、121、125、126)のそれぞれ、および前記ネットワーク・デバイス(113、114、115)のそれぞれは、少なくとも1つのI/Oポート(130、131、132、133、134、140、141、142、143、144、145、150、151、152、153、160、161、162)を備え、
    前記ロード・バランシング方法を実行するマイクロプロセッサ(103)が、前記ホスト・システム(102)からのデータ・アクセス要求の受け取りに応答して、
    a)前記少なくとも1つのHBA(110、111)それぞれの前記少なくとも1つのI/Oポート(160、161、162)を、前記少なくとも1つのネットワーク・デバイス(113、114、115)のI/Oポート(130、131、132、133、134、140、141、142、143、144、145)を介して、前記少なくとも1つのI/Oデバイス(120、121、125、126)それぞれの少なくとも1つのI/Oポート(150、151、152、153)に接続する、適格なI/Oネットワーク・パスのセットを決定するステップと、
    b)前記少なくとも1つのHBA(110、111)それぞれの前記少なくとも1つのI/Oポート(160、161、162)それぞれについて、HBAポート使用率(182)を決定するステップと、
    c)前記HBAポート使用率(182)が予め決定されたHBAポート制限(180)よりも大きいすべてのネットワーク・パスを前記適格なI/Oネットワーク・パスのセットから廃棄するステップと、
    d)ステップc)による廃棄後の残りのネットワーク・パスそれぞれについて、ネットワーク・パス距離(184)を決定するステップと、
    e)前記ネットワーク・パス距離(184)が予め決定されたパス距離制限(185)よりも大きいすべてのネットワーク・パスを前記ステップc)による廃棄後の残りのネットワーク・パスから廃棄するステップと、
    f)ステップe)による廃棄後の残りのネットワーク・パスそれぞれについて、ファブリック使用率(188)を決定するステップと、
    g)前記ファブリック使用率(188)が予め決定されたファブリック使用率制限(186)よりも大きいすべてのネットワーク・パスを前記ステップe)による廃棄後の残りのネットワーク・パスから廃棄するステップと、
    h)ステップg)による廃棄後の残りのネットワーク・パスから前記I/Oネットワーク・パス(170)を決定するステップと、
    を含む、方法。
  2. 前記HBAポート制限(180)が、前記少なくとも1つのHBA(110、111)の前記少なくとも1つのI/Oポート(160、161、162)のそれぞれによって並行処理が可能なI/Oデバイスの数により、前記少なくとも1つのHBA(110、111)それぞれの前記少なくとも1つのI/Oポート(160、161、162)それぞれについて決定される、請求項1に記載の方法。
  3. 前記HBAポート制限(180)が、前記HBA(110、111)の前記I/Oポート(160、161、162)によって処理可能な1秒当たりの最大ビット数により、前記少なくとも1つのHBA(110、111)それぞれの前記少なくとも1つのI/Oポート(160、161、162)それぞれについて決定される、請求項1に記載の方法。
  4. ステップb)において、HBA(110、111)のI/Oポート(160、161、162)の前記HBAポート使用率(182)が、前記HBAの前記I/Oポートに割り当てられた作業負荷によって決定される、請求項1から3のいずれか一項に記載の方法。
  5. ステップb)において、前記HBAポート使用率(182)がドライブ重み(194)の使用によって決定され、前記ドライブ重み(194)がI/Oデバイスに割り当てられ、前記ドライブ重み(194)が前記I/Oデバイスに割り当てられた前記作業負荷を示す、請求項4に記載の方法。
  6. ステップb)において、前記HBAポート使用率(182)がドライブ重み(194)の使用によって決定され、前記ドライブ重みがI/Oデバイスに割り当てられた前記作業負荷によって決定され、前記ドライブ重み(194)が圧縮率(192)によって調整され、前記圧縮率が前記I/Oデバイスから取得される、請求項4に記載の方法。
  7. ステップd)において、前記残りのネットワーク・パスのそれぞれについての前記ネットワーク・パス距離(184)が、前記I/Oネットワーク・パスに含まれるすべての相互接続の待ち時間を合計するステップと、前記I/Oネットワーク・パスに含まれる前記I/Oポートの数を追加するステップと、によって決定される、請求項1から6のいずれか一項に記載の方法。
  8. ステップf)において、前記ファブリック使用率(188)が、ネットワーク・パスに含まれる前記少なくとも1つのネットワーク・デバイスの前記I/Oポートを通過するデータ速度を合計するステップによって決定される、請求項1から7のいずれか一項に記載の方法。
  9. ステップf)において、ネットワーク・パスの前記ファブリック使用率(188)が、前記ネットワーク・パスに含まれるI/Oポートの合計数に対する、前記ネットワーク・パスに含まれるアクティブなI/Oポート数の比率によって決定される、請求項1から7のいずれか一項に記載の方法。
  10. ステップh)において、前記I/Oネットワーク・パス(170)が、前記HBAポート使用率(182)、前記ネットワーク・パス距離(184)、および前記ファブリック使用率(188)を考慮に入れる関数が最低の関数値を引き出す、残りのネットワーク・パスである、請求項1から9のいずれか一項に記載の方法。
  11. 請求項1から10のいずれか一項に記載の方法をコンピュータに実行させるためのコンピュータ実行可能命令を含む、コンピュータ・プログラム。
  12. 入力/出力(I/O)ネットワーク・パス(170)を、ネットワーク(112)を介してホスト・システム(102)をストレージ・サブシステム(149)に接続するI/Oネットワーク・パスのセットから識別するためのロード・バランシング・システム(106)であって、前記ホスト・システム(102)は少なくとも1つのホスト・バス・アダプタ(HBA)(110、111)を備え、前記ストレージ・サブシステム(149)は少なくとも1つのI/Oデバイス(120、121、125、126)を備え、前記ネットワーク(112)は少なくとも1つのネットワーク・デバイス(113、114、115)を備え、前記HBA(110、111)のそれぞれ、前記I/Oデバイス(120、121、125、126)のそれぞれ、および前記ネットワーク・デバイス(113、114、115)のそれぞれは、少なくとも1つのI/Oポート(130、131、132、133、134、140、141、142、143、144、145、150、151、152、153、160、161、162)を備え、
    a)前記ホスト・システム(102)からのデータ・アクセス要求の受け取りに応答して、前記少なくとも1つのHBA(110、111)それぞれの前記少なくとも1つのI/Oポート(160、161、162)を、前記少なくとも1つのネットワーク・デバイス(113、114、115)のI/Oポート(130、131、132、133、134、140、141、142、143、144、145)を介して、前記少なくとも1つのI/Oデバイス(120、121、125、126)それぞれの少なくとも1つのI/Oポート(150、151、152、153、154)に接続する、適格なI/Oネットワーク・パスのセットを決定するための手段と、
    b)前記少なくとも1つのHBA(110、111)の前記少なくとも1つのI/Oポート(160、161、162)それぞれについて、HBAポート使用率(182)を決定するための手段と、
    c)前記HBAポート使用率(182)が予め決定されたHBAポート制限(180)よりも大きいすべてのネットワーク・パスを前記適格なI/Oネットワーク・パスのセットから廃棄するための手段と、
    d)手段c)による廃棄後の残りのネットワーク・パスそれぞれについて、ネットワーク・パス距離(184)を決定するための手段と、
    e)前記ネットワーク・パス距離(184)が予め決定されたパス距離制限(185)よりも大きいすべてのネットワーク・パスを前記手段c)による廃棄後の残りのネットワーク・パスから廃棄するための手段と、
    f)手段e)による廃棄後の残りのネットワーク・パスそれぞれについて、ファブリック使用率(188)を決定するための手段と、
    g)前記ファブリック使用率(188)が予め決定されたファブリック使用率制限(186)よりも大きいすべてのネットワーク・パスを前記手段e)による廃棄後の残りのネットワーク・パスから廃棄するための手段と、
    h)手段g)による廃棄後の残りのネットワーク・パスから前記I/Oネットワーク・パス(170)を決定するための手段と、
    を含む、システム。
JP2008529572A 2005-09-08 2006-07-13 複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間での入力/出力作業負荷の動的分散のための方法、コンピュータ・プログラム、およびシステム Expired - Fee Related JP4686606B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05108246.9 2005-09-08
EP05108246 2005-09-08
PCT/EP2006/064191 WO2007036372A1 (en) 2005-09-08 2006-07-13 Load distribution in storage area networks

Publications (2)

Publication Number Publication Date
JP2009508196A JP2009508196A (ja) 2009-02-26
JP4686606B2 true JP4686606B2 (ja) 2011-05-25

Family

ID=37192337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008529572A Expired - Fee Related JP4686606B2 (ja) 2005-09-08 2006-07-13 複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間での入力/出力作業負荷の動的分散のための方法、コンピュータ・プログラム、およびシステム

Country Status (5)

Country Link
US (1) US7743198B2 (ja)
EP (1) EP1922855A1 (ja)
JP (1) JP4686606B2 (ja)
CN (1) CN101258725B (ja)
WO (1) WO2007036372A1 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266406B2 (en) 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
CA2564967C (en) 2004-04-30 2014-09-30 Commvault Systems, Inc. Hierarchical systems and methods for providing a unified view of storage information
US7668884B2 (en) 2005-11-28 2010-02-23 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US20110010518A1 (en) 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US8661216B2 (en) * 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8572330B2 (en) * 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US8930496B2 (en) 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
JP4757038B2 (ja) * 2006-01-25 2011-08-24 株式会社日立製作所 ストレージシステム及び記憶制御装置
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8572302B1 (en) * 2006-10-13 2013-10-29 Marvell International Ltd. Controller for storage device with improved burst efficiency
US8677091B2 (en) 2006-12-18 2014-03-18 Commvault Systems, Inc. Writing data and storage system specific metadata to network attached storage device
US7957398B1 (en) * 2007-03-05 2011-06-07 Emc Corporation Methods and systems for dynamic division of path capacity
US20090119452A1 (en) * 2007-11-02 2009-05-07 Crossroads Systems, Inc. Method and system for a sharable storage device
JP4521678B2 (ja) * 2007-11-19 2010-08-11 フェリカネットワークス株式会社 通信システム、情報処理方法、プログラム、及び情報処理装置
US7839788B2 (en) * 2008-05-19 2010-11-23 Lsi Corporation Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
US9178842B2 (en) 2008-11-05 2015-11-03 Commvault Systems, Inc. Systems and methods for monitoring messaging applications for compliance with a policy
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8572276B2 (en) 2010-04-29 2013-10-29 International Business Machines Corporation Pipelining protocols in misaligned buffer cases
US8572038B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Systems and methods for performing data replication
US9400605B2 (en) 2011-01-12 2016-07-26 International Business Machines Corporation Efficient management of a virtual tape library cluster
US9015372B2 (en) * 2012-01-12 2015-04-21 Hewlett-Packard Development Company, L.P. Managing data paths between computer applications and data storage devices
US8954575B2 (en) * 2012-05-23 2015-02-10 Vmware, Inc. Fabric distributed resource scheduling
US8892523B2 (en) 2012-06-08 2014-11-18 Commvault Systems, Inc. Auto summarization of content
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
CN103559155B (zh) * 2013-10-25 2016-09-14 华为技术有限公司 一种数据传输方法、相关装置及数据传输系统
JP6323194B2 (ja) * 2014-06-13 2018-05-16 富士通株式会社 ネットワーク管理装置及び方法
US10725684B2 (en) * 2014-09-30 2020-07-28 EMC IP Holding Company LLC Method and apparatus for cost-based load balancing for port selection
US9953070B1 (en) 2015-04-05 2018-04-24 Simply Data Now Inc. Enterprise resource planning (ERP) system data extraction, loading, and directing
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10002014B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit
US9973432B2 (en) * 2015-07-10 2018-05-15 International Business Machines Corporation Load balancing in a virtualized computing environment based on a fabric limit
US10002015B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
CN106909310B (zh) 2015-12-22 2020-06-05 伊姆西Ip控股有限责任公司 用于存储系统的路径选择的方法和装置
CN106527970A (zh) * 2016-09-22 2017-03-22 华为技术有限公司 通信路径选择方法及装置
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US10642886B2 (en) 2018-02-14 2020-05-05 Commvault Systems, Inc. Targeted search of backup data using facial recognition
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
US11636053B2 (en) 2020-09-28 2023-04-25 Vmware, Inc. Emulating a local storage by accessing an external storage through a shared port of a NIC
US11593278B2 (en) 2020-09-28 2023-02-28 Vmware, Inc. Using machine executing on a NIC to access a third party storage not supported by a NIC or host
US11606310B2 (en) 2020-09-28 2023-03-14 Vmware, Inc. Flow processing offload using virtual port identifiers
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
US11716383B2 (en) * 2020-09-28 2023-08-01 Vmware, Inc. Accessing multiple external storages to present an emulated local storage through a NIC
CN114003371B (zh) * 2021-09-28 2023-03-07 中汽创智科技有限公司 一种自动驾驶负载均衡方法、装置、电子设备及存储介质
US11863376B2 (en) 2021-12-22 2024-01-02 Vmware, Inc. Smart NIC leader election
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
US20240098003A1 (en) * 2022-09-15 2024-03-21 Schweitzer Engineering Laboratories, Inc. Systems and methods for network traffic monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274368A (ja) * 2003-03-07 2004-09-30 Fujitsu Ltd 品質保証制御装置および負荷分散装置
JP2005078507A (ja) * 2003-09-02 2005-03-24 Hitachi Ltd 仮想化制御装置、アクセス経路制御方法及び計算機システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US5926463A (en) * 1997-10-06 1999-07-20 3Com Corporation Method and apparatus for viewing and managing a configuration of a computer network
US6502135B1 (en) * 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US7145869B1 (en) * 1999-03-17 2006-12-05 Broadcom Corporation Method for avoiding out-of-ordering of frames in a network switch
EP1192528B1 (en) * 1999-06-11 2003-03-26 Storage Technology Corporation Intelligent storage area network
US6775230B1 (en) * 2000-07-18 2004-08-10 Hitachi, Ltd. Apparatus and method for transmitting frames via a switch in a storage area network
US6963927B1 (en) * 2000-08-29 2005-11-08 Lucent Technologies Inc. Method and apparatus for computing the shortest path between nodes based on the bandwidth utilization link level
US6920498B1 (en) * 2000-08-31 2005-07-19 Cisco Technology, Inc. Phased learning approach to determining closest content serving sites
US7111074B2 (en) * 2001-07-24 2006-09-19 Pluris, Inc. Control method for data path load-balancing on a data packet network
CN1258145C (zh) * 2002-08-06 2006-05-31 中国科学院计算技术研究所 基于虚拟存储的智能网络存储设备的系统
US7586944B2 (en) * 2002-08-30 2009-09-08 Hewlett-Packard Development Company, L.P. Method and system for grouping clients of a storage area network according to priorities for bandwidth allocation
CN1305265C (zh) * 2003-11-07 2007-03-14 清华大学 San系统中基于负载自适应的异步远程镜像方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274368A (ja) * 2003-03-07 2004-09-30 Fujitsu Ltd 品質保証制御装置および負荷分散装置
JP2005078507A (ja) * 2003-09-02 2005-03-24 Hitachi Ltd 仮想化制御装置、アクセス経路制御方法及び計算機システム

Also Published As

Publication number Publication date
US20080250178A1 (en) 2008-10-09
CN101258725A (zh) 2008-09-03
JP2009508196A (ja) 2009-02-26
US7743198B2 (en) 2010-06-22
CN101258725B (zh) 2011-04-13
EP1922855A1 (en) 2008-05-21
WO2007036372A1 (en) 2007-04-05

Similar Documents

Publication Publication Date Title
JP4686606B2 (ja) 複数のホスト・バス・アダプタを介して取り付けられた取り外し可能メディア・デバイス間での入力/出力作業負荷の動的分散のための方法、コンピュータ・プログラム、およびシステム
US10254991B2 (en) Storage area network based extended I/O metrics computation for deep insight into application performance
US10725684B2 (en) Method and apparatus for cost-based load balancing for port selection
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
US8001295B2 (en) Optimisation of the selection of storage device ports
EP3117335B1 (en) Coordinated admission control for network-accessible block storage
US7761629B2 (en) Method for using host and storage controller port information to configure paths between a host and storage controller
US7685310B2 (en) Computer system and dynamic port allocation method
US8949392B2 (en) Workload management with network dynamics
US7421509B2 (en) Enforcing quality of service in a storage network
US7839788B2 (en) Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
US6820172B2 (en) Method, system, and program for processing input/output (I/O) requests to a storage space having a plurality of storage devices
US20080301333A1 (en) System and article of manufacture for using host and storage controller port information to configure paths between a host and storage controller
US8639808B1 (en) Method and apparatus for monitoring storage unit ownership to continuously balance input/output loads across storage processors
JP2013246821A (ja) ファブリック分散リソースのスケジューリング
JP2005216151A (ja) 資源運用管理システム及び資源運用管理方法
US8745326B2 (en) Request priority seek manager
Yildirim et al. End-to-end data-flow parallelism for throughput optimization in high-speed networks
JP2004199697A (ja) 記憶アレイ帯域を動的に割り振る方法および装置
US20070124555A1 (en) Restricting access to improve data availability
US6633955B1 (en) Four way support for dynamic mirror service policy
JP2023539212A (ja) ストレージレベルの負荷分散
US20210191623A1 (en) Storage system
GB2601905A (en) Endpoint notification of storage area network congestion
US10630554B1 (en) Input/output (I/O) performance of hosts through bi-directional bandwidth feedback optimization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090326

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101116

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees