JP6199514B2 - ファブリック分散リソースのスケジューリング - Google Patents

ファブリック分散リソースのスケジューリング Download PDF

Info

Publication number
JP6199514B2
JP6199514B2 JP2017006651A JP2017006651A JP6199514B2 JP 6199514 B2 JP6199514 B2 JP 6199514B2 JP 2017006651 A JP2017006651 A JP 2017006651A JP 2017006651 A JP2017006651 A JP 2017006651A JP 6199514 B2 JP6199514 B2 JP 6199514B2
Authority
JP
Japan
Prior art keywords
storage
host
paths
load
path
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.)
Active
Application number
JP2017006651A
Other languages
English (en)
Other versions
JP2017084406A (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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2017084406A publication Critical patent/JP2017084406A/ja
Application granted granted Critical
Publication of JP6199514B2 publication Critical patent/JP6199514B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明概念は、一般にデータ記憶装置の分野に関する。より詳細には、本開示は、共有記憶システムおよび関連方法に関する。
共有記憶システムでは、複数のホストは、記憶装置の同一の組および/または記憶入出力(I/O)経路の同一の組を共有してよい。共有記憶システムの実例の1つには、多くの仮想マシン(VM:virtual machine)を実行する仮想データセンタがある。或る現存システムでは、ファブリック輻輳(congestion)を防止するのが困難である。この困難は、部分的には、ファブリック・トポロジ、I/O負荷、およびI/O経路選択の複雑さによる場合がある。また、ファブリック・トポロジ、I/O負荷、およびI/O経路選択の変更による困難が存在することもある。例えば、仮想マシン、仮想ディスク、ホスト、記憶装置(または他の記憶領域)、およびファイバ・チャネル・リンクが、動的に付加されたり除去されたりする可能性がある。
固体ディスク(SSD:solid−state disk)などの先進のディスク技術は、他のタイプのディスクよりも優れたランダムI/O性能をもたらす。SSDは、キャッシュ記憶装置として、フロントエンド段として、および/または完全なスピンドル交換として使用されている。SSDを用いると、3ギガバイト/秒ものランダム・ディスクのI/Oトラフィックを達成することが可能になり得て、記憶装置または論理装置番号(LUN:logical unit number)当たりのI/O帯域幅の向上をもたらす。さらに、バックアップ、クローニング、およびテンプレート配置など、高スループットの連続した入出力操作によって、ファブリック・リンクの飽和状態および/または故障が生じる恐れがある。
米国特許出願公開第2012/0054329号明細書 米国特許出願公開第2010/0083262号明細書 米国特許出願公開第2011/0119413号明細書 米国特許出願公開第2011/0072208号明細書
GULATI et al.,"PARDA:Proportional Allocation of Resources for Distributed Storage Access",7th USENIX Conference on File and Storage Technologies, 2009,14 pages. UNKNOWN,"VMware VROOM! Blog:350,000 I/O operations per Second, One vSphere Host", Retrieved from <<http://blogs.vmware.com/performance/2009/05/350000−io−operations−per−second−one−vsphere−host−with−30−efds.html>>,May 18,2009,2 pages. UNKNOWN,"Veritas Storage Foundation 5.0 Dynamic Multi−Pathing",Retrieved from <<http://eval.symantec.com/mktginfo/enterprise/white_papers/ent−whitepaper_vsf_5.0_dynamic_multi−pathing_05−2007.en−us.pdf>>,May 2007,41 pages.
個々のホスト向け最適パスを手動で求めることによって動的事象に応答することは、困難であり、信頼性が低く、エラーが発生しやすく、効果的な負荷バランシングをもたらす可能性が低い。さらに、現存システムには、マルチパス化、入出力制限、LUNパス選択技法の遂行、1つのホストから別のホストへの作業負荷の移動、または1つのLUNもしくはデータストアから別のLUNへとデータを移動することによって、負荷バランスを試みるものもある。しかし、このような現存システムは、LUN輻輳とリンク輻輳を区別しない。そのため、これらの現存システムは、現行パスが輻輳しているとき、LUNにアクセスするための代替パスを提案することができない。さらに、現存システムの多くはホスト・レベルで動作するものであり、したがって、全体最適をもたらすこと、あるいはボトルネックを改善するためのトポロジ変更または代替パスを推奨することができない。
当技術のこれらの困難または他の困難に対処するシステムおよび方法の提供が望まれており、これらのシステムおよび方法は、当業者に、本明細書の教示および議論を考慮した後に理解されるであろう。
本発明によれば、添付の特許請求の範囲で説明される装置および方法が提供される。本発明の他の特徴は、従属請求項およびそれに続く記述から明らかになるであろう。
この概要は、以下で、より詳細に説明される概念の選択を紹介する。この概要は、基本的な特徴を列挙したり、要求された対象の範囲を限定したりするようには意図されていない。
1例では、共有ストレージ・エリア・ネットワーク(SAN:storage area network)における、集中型の全体最適化された入出力(I/O)負荷ベースパス管理を有するシステムが提供される。複数のホストのうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスが識別される。少なくとも記憶パス上のI/O負荷および反復検索技法に基づき、それぞれのリンクまたは記憶パスに対する最小限の帯域幅が求められる。ホストと論理的記憶装置の各対に対して、記憶パスのうちの1つが最小限の帯域幅に基づき選択される。
本明細書で説明される例示的システムは、記憶パスに沿って、かつ/または論理的記憶装置において、輻輳の確率を低減するために、SANトポロジおよびI/O負荷を監視して、トポロジの変更を識別し、変更を開始する。或る実例では、トポロジの変更には、ホスト上で動作している複数の仮想マシン(VM)と関連した移動する負荷および/またはデータストアが含まれる。
1例では、エリア・ネットワーク(SAN)における複数の仮想マシン(VM)向けの、集中型の入出力(I/O)負荷ベースパス選択用システムが提供され、前記システムは、少なくともSAN用の閾値容量を含む同SANのトポロジ記述を記憶する、コンピュータ装置に関連した記憶エリアと、VMを実行する複数のホストのうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスを識別することによって、初期のパス選択を遂行し、識別された記憶パスのそれぞれについてI/O負荷を求め、記憶パスのそれぞれについて求められたI/O負荷を閾値容量から減じて
、識別された記憶パスのそれぞれに対して、それぞれの識別された記憶パスに適合する最小限の帯域幅を見いだし、複数のホストのそれぞれに対して、識別された記憶パスのうちの1つを最小限の帯域幅に基づき選択するようにプログラムされたプロセッサと、からなる。
1例では、このプロセッサは、SANのトポロジの変更を検出し、検出された変更に応じて、初期のパス選択を再度遂行するようにさらにプログラムされる。
1例では、このプロセッサは、求められたI/O負荷に基づきSANのトポロジ変更を推奨するようにさらにプログラムされる。
1例では、このプロセッサは、ホストのうち少なくとも1つに対して複数の記憶パスから別のパスを選択する工程と、様々なコントローラに対して論理的記憶装置を再マッピングするように、記憶プロセッサ・アレイに命じる工程と、この論理的記憶装置から別の論理的記憶装置へとデータを移動する工程と、複数のホストの中の第1のホストから複数のホストの中の第2のホストへとデータストアを移動する工程と、のうち1または複数をSANの管理者からの入力なしで遂行することによって、SANのトポロジに対する推奨された変更を開始するようにさらにプログラムされる。
1例では、複数の記憶パスのそれぞれが複数のリンクからなり、記憶エリアは、複数のリンクに関連したリンク容量をさらに記憶する。
1例では、このプロセッサは、最小限の帯域幅および記憶エリアに記憶されたリンク容量に基づき、識別された記憶パスのうち1つを選択するようにプログラムされる。
1例では、このシステムは、記憶パスの輻輳を修正するためにトポロジ変更を識別する手段と、記憶パスの輻輳を修正するためにトポロジ変更を自動的に開始する手段とを含む。
1例では、分散型共有リソース記憶システムにおける集中型入出力(I/O)負荷ベースパス選択の方法が提供され、前記方法は、複数のホストのうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスに、該分散型共有記憶システムにおいて動作するプロセッサでアクセスする工程と、アクセスされた記憶パスのそれぞれについてI/O負荷を求める工程と、記憶パスのそれぞれについての求められたI/O負荷を閾値容量から減じて、アクセスされた記憶パスのそれぞれに対して、それぞれのアクセスされた記憶パスについての最小限の帯域幅を見いだす工程と、複数のホストのそれぞれに対して、アクセスされた記憶パスのうちの1つを最小限の帯域幅に基づき選択する工程と、からなる。
1例では、この方法は、求められたI/O負荷に基づき、分散型共有リソース記憶システムにおけるトポロジ変更を選択する工程を含む。
1例では、この方法は、選択されたトポロジ変更を開始する工程を含む。
1例では、この方法は、変更を検出するために長時間にわたってI/O負荷を監視する工程を含む。
1例では、この方法は、記憶パスのうちの1つに関して、監視されたI/O負荷における変更を検出すると、記憶パスのうちの1つに対する更新されたI/O負荷を求める工程と、記憶パスのそれぞれに対して、それぞれの記憶パスに適合する最小限の帯域幅を算定する工程と、複数のホストのそれぞれに対して、記憶パスのうちの1つを、算定された最小限の帯域幅に基づき選択する工程と、を含む。
1例では、複数のホストのそれぞれに対して記憶パスのうちの1つを選択する工程は、
最小限の帯域幅に基づきバイナリ・サーチを遂行する工程をさらに含む。
1例では、この方法は、各繰返しに対してエッジ・ウェイトを増す最大フロー・アルゴリズムを繰り返し遂行することによって、複数の記憶パスを検索する工程を含む。
1例では、この方法は、対応するホストに対して選択されたパスのそれぞれを識別する工程を含む。
1例では、この方法は、複数のホスト、ホスト・バス・アダプタ、アレイ・ポート、および論理装置番号(LUN)のうちの1つを識別することによって、複数の記憶パスのそれぞれを定義する工程を含む。
1例では、コンピュータ実行可能命令を含むコンピュータ可読記憶媒体が提供され、これらのコンピュータ実行可能命令が実行されると、少なくとも1つのプロセッサが、複数のホストのうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスに、分散型共有記憶システムにおいて動作するプロセッサでアクセスする工程と、アクセスされた記憶パスの少なくとも1つにおける少なくとも1つのリンクに対して上限リンク容量を定義する工程と、アクセスされた記憶パスのそれぞれに対するI/O負荷を求める工程と、記憶パスのそれぞれについての求められたI/O負荷を閾値容量から減じて、記憶パスのそれぞれに対して、それぞれの記憶パスおよび定義された上限リンク容量に適合する最小限の帯域幅を見いだす工程と、複数のホストのそれぞれに対して、記憶パスのうちの1つを、算定された最小限の帯域幅に基づき選択する工程と、によって集中型の入出力(I/O)負荷ベースパス選択を遂行する。
1例では、これらの工程は、複数の記憶パスの中のリンクの過剰な予約を防止するために上限リンク容量を定義する工程を含む。
1例では、これらの工程は、記憶パスの内部のスイッチに問い合わせてスイッチの最大帯域幅容量を得ることによって、上限リンク容量を定義する工程を含む。
1例では、これらの工程は、最小限の帯域幅およびスイッチの最大帯域幅容量に基づき、複数のホストのそれぞれに対して記憶パスのうちの1つを選択する工程を含む。
1例では、ストレージ・エリア・ネットワーク(SAN)における複数の仮想マシン(VM)向けの、集中型の入出力(I/O)負荷ベースパス管理の方法が提供され、前記方法は、VMを実行する複数のホストのうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスに、プロセッサでアクセスする工程と、アクセスされた記憶パスのそれぞれについてI/O負荷を監視する工程と、監視されたI/O負荷が記憶パスの少なくとも1つにおける輻輳を表していると判断すると、1または複数のトポロジ変更を識別する工程と、識別された1または複数のトポロジ変更を、プロセッサによって開始する工程と、からなる。
1例では、識別された1または複数のトポロジ変更を開始する工程は、SANの管理者からの入力なしでトポロジ変更を開始する工程を含む。
1例では、識別された1または複数のトポロジ変更を開始する工程は、複数の記憶パスから、ホストのうち少なくとも1つ向けに別のパスを選択する工程と、ホストのうち少なくとも1つに対して選択された別のパスを用いるように指示する工程とをさらに含む。
1例では、識別された1または複数のトポロジ変更を開始する工程は、論理的記憶装置を管理している記憶プロセッサ・アレイに対して、論理的記憶装置を別のコントローラに再マッピングするように命令を送る工程を含む。
1例では、識別された1または複数のトポロジ変更を開始する工程は、この論理的記憶装置から別の論理的記憶装置へとデータを移動する工程と、複数のホストの中の第1のホ
ストから複数のホストの中の第2のホストへとデータストアを移動する工程と、のうち1または複数を含む。
例示のホスト・コンピュータ装置のブロック図。 図1に示されたホスト・コンピュータ装置などのコンピュータ装置上にインスタンスが生成される仮想マシンのブロック図。 ネットワーク・スイッチによって記憶パスを介してディスク・アレイにアクセスするホストを含む例示のストレージ・エリア・ネットワーク(SAN)構成のブロック図。 ネットワーク・フロー解析に対する最適の記憶パス選択の例示のマッピングのブロック図。 集中型の入出力(I/O)記憶パスの選択および管理を実施するための例示のコンピュータ装置のブロック図。 SANの中の最適の記憶パスを選択するように、複数のホストを管理する集中型システムによって遂行される例示の方法の流れ図。 リンクまたは論理装置番号(LUN)の輻輳に応答してトポロジ変更を開始するように、複数のホストを管理する集中型システムによって遂行される例示の方法の流れ図。
対応する参照文字は、各図面を通じて該当部分を示す。
本明細書で説明される実施形態は、共有ストレージアレイを有し、SAN 512などのストレージ・エリア・ネットワーク(SAN)における複数のホスト(例えばクラスタ)にわたって集中型の入出力(I/O)パス選択および管理を実施する。パス推奨は、ファブリック(例えばリンク)のI/O負荷状態に基づくものであり、例えばネットワーク・フロー・アルゴリズム(例えば最大フロー・アルゴリズム)の最上位で条件付き反復検索を用いて選択される。結果として、本開示の態様は、ホスト514からアレイ302までのパス(経路)上のどの単一ポイントにも過負荷をかけず、したがって全体最適をもたらすように、各ホストとLUNの対に対してI/Oパスを選択する。
或る実施形態では、初期のパス選択推奨は、ディスク・アレイ302などのストレージアレイにおけるホスト・バス・アダプタ(HBA:host bus adapter)およびポート304にわたってパスの数のバランスをとるように、ホスト514ごとに記憶装置当たりの均一なI/O負荷を想定して、本明細書に説明される動作を遂行することによって求められる。ホスト514ごとに記憶装置当たりのI/O帯域幅消費(例えば負荷または要求)が長時間にわたって監視されながら、パス選択推奨は、再構成される。SAN 512トポロジが変更されるときも、パス選択推奨が再構成されてよい。或る実施形態では、リンク当たりの帯域幅制限が(既知のとき)強制される。
本開示の態様は、ファブリックにおけるI/O輻輳の可能性を低減し、トポロジ変更および動的I/O状態に適合する、または対応する。集中的管理は、所与のトポロジに対して、各ホスト514上で認識可能な個々のLUN用のI/Oパスを、負荷バランスをとるやり方で計算し、トポロジ変更または他の改善を開始して、トポロジの変更およびリンク輻輳の他の徴候につながる事象に対処する。例えば、集中型のパス選択は、記憶プロセッサ306または他の記憶コントローラにわたってLUNまたはLUN負荷の不平衡などの輻輳シナリオを識別するばかりでなく、特定のホスト514用パスの変更、LUN侵入(例えばLUNとコントローラのマッピングの変更)の開始、および/またはI/O負荷の移動などの改善も提案する。
或る実施形態は、共有ストレージアレイを有する多くの仮想マシン(VM)を実行する仮想データセンタにおいて実施される。共有ストレージアレイでは、複数のLUNは、複数の別々のホスト514によって同一の記憶パスを介してアクセスされる可能性がある。そのため、合計のスループットが単一パス上で利用可能なリンクの帯域幅を超えることがあり、ボトルネックが生じる。1例として、LUNが、8Gb/秒のファイバ・チャネルのリンク速度によって250MB/秒の能力がある場合、1000MB/秒の理論上の最大帯域幅は、4つのLUN上の同時の連続したI/Oによって飽和状態になる可能性がある。このような同時の連続したI/O動作は、例えば、バックアップ、クローニング、およびテンプレート配置の間に起こる可能性がある。本開示の態様により、パス選択は、リンク上で、またLUNにおいて、このような輻輳を低減することができる。
さらに、集中型パス選択によって、ホスト514からアレイへのマルチホップパス上のすべてのリンクが、その最大のリンク容量で動作することが可能になり、ストレージアレイ・ポート304および/またはファブリックのリンクのいくつかが、ホスト514上のHBAよりも低いリンク速度で動作するときでさえ、最大のエンドツーエンド帯域幅が使用可能になる。例えば、HBAが8ギガビット/秒で動作する一方で、ストレージアレイ・ポート304は、4ギガビット/秒で動作しうる。
さらに、本開示の態様は、複数のパスが単一の記憶ポート304に集中する可能性がある、かつ/または不均衡なLUN−コントローラのマッピング(例えば「インキャスト」問題)がある環境で動作可能である。例えば、複数のホスト514が、ディスク・アレイ302上のより少量の記憶ポート304に接続していることがある。本開示の態様は、このようなシステムの性能を改善する。
次に、1または複数の仮想マシンを実行するホスト・コンピュータ装置100を含む例示の動作環境が説明される。しかし、本開示の態様は、このような環境に限定されることなく、非VM環境にも適用可能である。
図1は、例示のホスト・コンピュータ装置100のブロック図である。ホスト・コンピュータ装置100は、命令を実行するためのプロセッサ102を含み、ホスト514のうちの1つと称されてよい。或る実施形態では、実行可能命令は、記憶装置104に記憶される。記憶装置104は、実行可能命令および/または他のデータなどの情報が記憶され、かつ取り出され得る任意の装置である。例えば、記憶装置104は、1または複数のランダム・アクセス・メモリ(RAM)モジュール、フラッシュ・メモリ・モジュール、ハード・ディスク、固体ディスク、および/または光ディスクを含んでよい。
ホスト・コンピュータ装置100は、ユーザ108からデータを受け取るため、および/またはユーザ108にデータを表示するためのユーザ・インターフェース装置110を含んでよい。ユーザ108は、VMwareのvCenter Serverまたは他の管理装置など別のコンピュータ装置を介してホスト・コンピュータ装置100と間接的に対話してよい(interact)。ユーザ・インターフェース装置110は、例えばキーボード、ポインティング・デバイス、マウス、スタイラス、タッチ・パネル(例えばタッチ・パッドまたはタッチ・スクリーン)、ジャイロスコープ、加速度計、位置検出器、および/またはオーディオ入力装置を含んでよい。或る実施形態では、ユーザ・インターフェース装置110は、ユーザ108からデータを受け取るように動作し、別の装置(例えばプレゼンテーション装置)は、ユーザ108にデータを見せるように動作する。他の実施形態では、ユーザ・インターフェース装置110は、ユーザ108へのデータ出力およびユーザ108からのデータ受取りのどちらにも機能するタッチ・スクリーンなどの単一の構成要素を有する。このような実施形態では、ユーザ・インターフェース装置110は、ユーザ108に情報を表示するためのプレゼンテーション装置として動作する。この
ような実施形態では、ユーザ・インターフェース装置110は、ユーザ108に情報を伝えることができる任意の構成要素を表す。例えば、ユーザ・インターフェース装置110は、限定されることなく、表示装置(例えば液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、または「電子インク」ディスプレイ)および/または音声出力装置(例えばスピーカまたはヘッドホン)を含んでよい。或る実施形態では、ユーザ・インターフェース装置110は、ビデオ・アダプタおよび/またはオーディオ・アダプタなどの出力アダプタを含む。出力アダプタは、プロセッサ102に対して動作可能に結合され、表示装置または音声出力装置などの出力装置に対して動作可能に結合されるように構成される。
ホスト・コンピュータ装置100は、ネットワーク通信インターフェース112も含み、これによって、有線または無線のパケット・ネットワークなどの通信媒体を介して遠隔装置(例えば別のコンピュータ装置)と通信することができる。例えば、ホスト・コンピュータ装置100は、ネットワーク通信インターフェース112を介してデータを送受してよい。ユーザ・インターフェース装置110および/またはネットワーク通信インターフェース112は、まとめて入力インターフェースと称されてよく、ユーザ108から情報を受け取るように構成されてよい。
ホスト・コンピュータ装置100はさらに、記憶インターフェース116を含み、これによって、仮想ディスク・イメージ、ソフトウェア・アプリケーション、および/または本明細書に説明された方法とともに用いるのに適切なその他のデータを記憶する1または複数のデータストア316と通信することができる。例示的実施形態では、記憶インターフェース116は、ホスト・コンピュータ装置100を、(例えばパケット・ネットワークを介して)SAN512などのストレージ・エリア・ネットワーク(例えばファイバ・チャネル・ネットワーク)におよび/またはネットワークに接続された記憶(NAS:network−attached storage)システムに結合する。記憶インターフェース116は、ネットワーク通信インターフェース112と一体化されてよい。
図2は、ホスト・コンピュータ装置100上にインスタンスが生成される仮想マシン235、235、...、235のブロック図を示す。ホスト・コンピュータ装置100は、x86アーキテクチャのプラットフォームなどのハードウェア・プラットフォーム205を含む。ハードウェア・プラットフォーム205は、プロセッサ102、記憶装置104、ネットワーク通信インターフェース112、ユーザ・インターフェース装置110、およびプレゼンテーション装置106(図1に示されている)など他の入出力(I/O)装置を含んでよい。以下でハイパーバイザ210とも称される仮想化ソフトウェア層が、ハードウェア・プラットフォーム205の最上位にインストールされる。
仮想化ソフトウェア層は、複数の仮想マシン(VM 235〜235)が同時にインスタンスを生成され、かつ実行され得る仮想マシン実行空間230に対応する。ハイパーバイザ210は、装置ドライバ層215を含む。ハイパーバイザ210は、ハードウェア・プラットフォーム205の物理的リソース(例えばプロセッサ102、記憶装置104、ネットワーク通信インターフェース112、および/またはユーザ・インターフェース装置110)を、「仮想」リソースVM 235〜235のそれぞれに対して、マッピングする。それによって、VM 235〜235のそれぞれが、それ自体の仮想ハードウェア・プラットフォーム(例えば仮想ハードウェア・プラットフォーム240〜240の対応するもの)を有し、各仮想ハードウェア・プラットフォームが、それ自体のエミュレートされたハードウェア(VM 235のプロセッサ245、記憶装置250、ネットワーク通信インターフェース255、ユーザ・インターフェース装置260および他のエミュレートされた入出力デバイスなど)を有する。ハイパーバイザ210は、「VM 235〜235は、ハイパーバイザ210の予想外の終了および/または
初期設定に際して自動的に再起動されること」などのハイパーバイザ210に関する方針に従って、VM 235〜235の実行を管理してよい(例えば、監視、開始、および/または終了してよい)。それに加えて、またはその代わりに、ハイパーバイザ210は、ホスト・コンピュータ装置100とは別の装置から受け取った要求に基づきVM 235〜235の実行を管理してよい。例えば、ハイパーバイザ210は、管理装置から、ネットワーク通信インターフェース112を介して第1のVM 235の実行開始を指示する実行指示を受け取り、これを実行して第1のVM 235の実行を開始してよい。
或る実施形態では、第1の仮想ハードウェア・プラットフォーム240の記憶装置250は、ホスト・コンピュータ装置100の記憶装置104(例えばハード・ディスクまたは固体ディスク)に記憶された1または複数の仮想ディスク・イメージに関連づけられた、すなわち「マッピングされた」仮想ディスクを含む。仮想ディスク・イメージは、第1のVM 235によって、単一のファイルまたはそれぞれがファイル・システムの一部分を含んでいる複数のファイルの中で用いられるファイル・システム(例えばディレクトリおよびファイルの階層)を表す。それに加えて、またはその代わりに、仮想ディスク・イメージは、SAN構成の中などの1または複数の遠隔コンピュータ装置100の記憶装置104に記憶されてよい。このような実施形態では、いかなる量の仮想ディスク・イメージも遠隔コンピュータ装置100によって記憶され得る。
例えば、装置ドライバ層215は、例えばホスト・コンピュータ装置100に接続されたローカル・エリア・ネットワーク(LAN)との間でデータを送受するネットワーク通信インターフェース112と相互作用する通信インターフェース・ドライバ220を含む。通信インターフェース・ドライバ220には、1つの通信インターフェース(例えばネットワーク通信インターフェース112)から他の通信インターフェース(例えばVM 235〜235の仮想通信インターフェース)が受け取る、物理的ネットワークにおけるデータ・パケットの同送をシミュレートする仮想ブリッジ225も含まれる。第1のVM 235用ネットワーク通信インターフェース255など、各VM 235〜235用の各仮想通信インターフェースには、仮想ブリッジ225がネットワーク通信インターフェース112からの着信データ・パケットの転送をシミュレートすることを可能にする、独自の仮想媒体アクセス制御(MAC:Media Access Control)アドレスが割り当てられてよい。1実施形態では、ネットワーク通信インターフェース112は、(それ自体の物理的MACアドレス宛てのイーサネット(登録商標)・パケットばかりでなく)受け取ったイーサネット(登録商標)・パケットのすべてを仮想ブリッジ225に渡す「プロミキャス・モード」に構成されたイーサネット(登録商標)・アダプタであり、仮想ブリッジ225は、同様に、これらのイーサネット(登録商標)・パケットをVM 235〜235へさらに転送することができる。この構成によって、宛先アドレスとして仮想MACアドレスを有するイーサネット(登録商標)・パケットは、このような仮想MACアドレスに対応する仮想通信インターフェースを有するホスト・コンピュータ装置100の中のVMに適切に到達することができる。
仮想ハードウェア・プラットフォーム240は、任意のx86互換デスクトップ・オペレーティング・システム(例えばマイクロソフトWINDOWS(登録商標)のオペレーティング・システム、LINUX(登録商標)のオペレーティング・システム、SOLARIS(登録商標)のオペレーティング・システム、NETWARE、またはFREEBSD)が、第1のVM 235などのインスタンスを生成されたVM向けのアプリケーション270を実行するためのゲスト・オペレーティング・システム(OS)265としてインストールされるように、標準的なx86ハードウェア・アーキテクチャ相当品として機能してよい。仮想ハードウェア・プラットフォーム240〜240は、ハイパーバイザ210と対応するVM 235〜235との間の動作を調整するために仮想
システム・サポートを実施する仮想マシン・モニタ(VMM:virtual machine monitor)275〜275の一部分であると見なされてよい。当業者は、図2の中の仮想化構成要素を説明するのに用いられた様々な用語、層、および分類は、それらの機能または本開示の趣旨もしくは範囲から逸脱することなく、別々に参照されてよいことを理解するであろう。例えば、仮想ハードウェア・プラットフォーム240〜240はVMM 275〜275と分離していると考えられてもよく、VMM 275〜275はハイパーバイザ210と分離していると考えられてもよい。本開示の実施形態で用いられ得るハイパーバイザ210の実例の1つは、VMwareのESX商標のソフトウェアに構成要素として含まれており、VMware社から市販されている。
図3は、ネットワーク・スイッチ516によって記憶パスを介してディスク・アレイ302にアクセスするホスト514を含む例示のストレージ・エリア・ネットワーク(SAN)アーキテクチャのブロック図である。一般に、I/Oパスは、ホスト・バス・アダプタ、ケーブル、SANスイッチ(例えばスイッチ516)、記憶ポート304、およびディスク・アレイ302におけるディスク・コントローラまたは記憶プロセッサ306を含んでよい。他の実施形態では、I/Oパスまたは他の記憶パスは、ホスト514、1つのホスト・バス・アダプタ、1つのアレイ・ポート304、およびLUNのうちの1つを識別することによって定義されてよい。記憶プロセッサ306当たり複数のポート304があってもよい。記憶プロセッサ306は、1または複数のLUNを構成して、これらを単一の記憶装置としてホスト514に表示することによって、アレイの中のディスクを仮想化する。ホスト514、スイッチ516、ポート304、コントローラ、およびLUNのそれぞれの独特な組合せは、様々なI/Oパスを表す。
図3の実例では、ホストA、ホストB、およびホストCを含む3つのホスト514は、ネットワーク・スイッチ1およびネットワーク・スイッチ2を含むネットワーク・スイッチ516を介してディスク・アレイ302に接続する。或る実施形態では、ネットワーク・スイッチ516は、ファイバ・チャネル(FC)のプロトコルに適合する。例示のネットワーク・スイッチ516は、それぞれが、4Gb/秒のリンクを提供し得る。
ホストA、B、およびCのそれぞれは、1または複数の仮想マシンを実行する。これらのホストのそれぞれは、少なくとも1つのホスト・バス・アダプタを含む。ホストAは、ホスト・バス・アダプタA1およびホスト・バス・アダプタA2を含む。ホストBは、ホスト・バス・アダプタB1およびホスト・バス・アダプタB2を含む。ホストCは、ホスト・バス・アダプタC1およびホスト・バス・アダプタC2を含む。例示のHBAは、それぞれが8Gb/秒のリンクを提供し得る。
ディスク・アレイ302は、1または複数のポート304、1または複数の記憶プロセッサ306、および1または複数のLUNを含む。図3の実例では、ディスク・アレイ302は、3つのLUNを管理する1つの記憶プロセッサ306をそれぞれ有する2つのポート304を含む。1方の記憶プロセッサ306がLUN 1、3、および5を管理し、他方の記憶プロセッサ306がLUN 0、2、および4を管理する。例示のLUNのそれぞれが、250MB/秒のリンクを提供し得る。
本開示の態様は、任意のI/Oパス記述に対して動作可能である。1例として、以下で式(1)に示されるように、ホストHとLUN Lの間にI/Oパスが定義され得る。
Figure 0006199514
この実例では、HBAはホスト514における各HBAのうちの1つを示し、Sportknはネットワーク・スイッチ516のうちの1つにおけるポートを示し、Aportはディスク・アレイ302におけるポート304と記憶プロセッサ306の組合せを示す。しかし、ネットワーク・スイッチ516に関する構造の細部が未知の場合(例えば、マルチパス層がスイッチ・ポートを認識できない場合)、I/Oパスは、次の式(2)に示されるようにエンドポイントの観点から記述されてよい。
Figure 0006199514
各ホスト514からLUNへの複数のパスがあると、ディスク・アレイ302の全体の有用性が増す。複数のI/Oパスは、ホスト514から、HBA、SANスイッチ(例えばスイッチ516)、または様々な要素を接続するケーブルを含むディスク・アレイ302までのあらゆる単一故障に対して防護する。例えば、連続したI/O要求または作業負荷に関するキャッシュ・ヒットが一時的飽和をもたらした後に、LUN性能が、I/Oパスの高帯域幅によって制限されることがある。ホスト514は、応答して、またはI/Oパスのいずれかの要素が故障したとき、ホスト514にアクセスしているアプリケーションに対して劣化した性能または要素の故障をさらすのでなく、別の利用可能なパスに切り換える、すなわち転換する(divert)ことを選択してよい。
マルチパス化は、様々な方法で実施されてよい。例えば、アクティブ−アクティブのディスク・アレイは、任意のポート304上の単一のLUNに対するI/O要求を同時に実行する。別の実例として、アクティブ−パッシブのディスク・アレイは、1つの記憶プロセッサ306(アクティブ・コントローラまたは1次コントローラ)の1または複数のポート304の単一のLUNに対するI/O要求を実行するが、これらのI/O要求を、別の記憶プロセッサ306(パッシブ・コントローラまたは2次コントローラ)のポート304のLUNへフェイルオーバすることもできる。このようなフェイルオーバの遂行は、LUN侵入(trespass)と称されることがある。このようなディスク・アレイは、I/O要求が任意の所与の時間に記憶プロセッサ306のうちの1つを通って流れていること確認するために、I/O要求を受け取ったポート304に基づきLUNに対するフェイルオーバを起動する。
ディスク・アレイを実施するさらに別の実例には、疑似アクティブ−アクティブがある。このようなディスク・アレイでは、LUNは、性能が不均一な(例えば様々な程度またはレベルの性能の)複数の記憶プロセッサ306を通じてアクセスされてよい。複数の記憶プロセッサ306を通るパスは、初期の装置発見段階の間に(例えばオペレーティング・システムによって)発見されてよい。発見されたパスは、別々の装置として出現し得るが、パス管理層は、パス間の共通の装置エンドポイントを識別してよく、動的なパス選択を可能にする。
パス管理層は、パス選択の管理およびエラー処理の方針を実施する。例示の方針には、
ラウンドロビン、最小限のキュー長さ、バランスのとれたパス、適応型パス選択、および単一アクティブパスが含まれる。ラウンドロビンの方針は、特にI/O要求によって要求されたデータがほぼ同一サイズであって、パスがHBA、ポート304、およびコントローラにわたって均一に配置されているとき、I/O要求をそれぞれのアクティブパスへ均一に配分する。
最小限のキュー長さの方針は、ホスト514を要求しているホスト・バス・アダプタにおいて顕著な要求の量が最少のアクティブパスへ、各I/O要求をパス設定することによって、局所的負荷バランシングを実施する。バランスのとれたパスの方針は、各I/O要求を、開始ブロック・アドレスに対応するパスに割り当てることができるように、装置のブロック・アドレス空間を、それぞれが各アクティブパスの量の領域に分割する。適応型パス選択の方針は、より高いスループットまたはより優れた性能を最近配送したパスに対してより高い優先順位を割り当てるように、サービス時間および最近のスループットに基づき周期的なパス優先順位を計算する。このような各方針は、様々なパスに対して(厳密な優先順位でなく)重みを割り当て、割り当てられた重みに比例したI/O要求を送る。このような各方針は、高度に動的な作業負荷または非常に様々な性能もしくはホップ・カウントを有するパスに対して動作可能である。単一アクティブパスの方針は、1つのパスを故障するまで用いて、次いでフェイルオーバパスに切り換える。
本開示の態様は、本明細書に説明されたものなど、既存のマルチパス技法に対して動作可能であるが、パス選択の集中的管理はさらに、I/Oパスにおける輻輳を検出して対応する。或る実施形態では、集中型のパス選択は、パス選択を、ネットワークの最大フロー解析へマッピングすることによって実施される。次に例示のネットワークの最大フロー解析を参照しながら説明するが、本開示の態様は、本明細書に説明されるように改良された任意の最大フロー解析に対して動作可能である。
ネットワークの最大フロー解析は、グラフG=(V,E)上で動作する。ここで、Vは頂点の組であり、Eはエッジと各エッジ(u,v)に対する容量c(u,v)の組である。例示のネットワークの最大フロー問題は、以下のようにエッジ(u,v)当たりのフローf(u,v)を計算することによって、起点sと宛先tから最大フローを見つけるものと説明され得る。
1.すべてのエッジに関してf(u,v)≦c(u,v)
2.ノードsおよびtを除いて、あるノードに入るフローの和は、そのノードを出るフローの和に等しい。
3.起点sから宛先tまでの全フローは、可能な最大である。
本開示の態様は、フォード−フルカーソン(Ford−Fulkerson)のアルゴリズムおよびエドモンド−カープ(Edmond−Karp)のアルゴリズムなどの、最大フロー問題を解決する、または最大フロー解析を遂行する様々な現存システムに対して動作可能である。或る実施形態では、集中型のパス選択のマッピングを可能にする複数起点、複数宛先の最大フロー問題の改良は、それぞれのホストHおよびLUN Lに対して起点ノードHを生成することと、各LUN Lに対して宛先ノードLを生成することと、すべてのノードHの前に単一の起点を付加し、エッジ上に無限の容量を有するすべてのLのノードに単一のシンクを付加することと、各ホスト514および各LUNに接続されたアレイ・ポート304においてホスト・バス・アダプタに対応する中間ノードを生成することとを含む。このようなマッピングの1例が、次に図4で示される。
図4は、ネットワーク・フロー解析に対する最適の記憶パス選択の例示のマッピングのブロック図である。この実例では、2つのホスト514(H1およびH2)がそれぞれ2
つのHBAを有し、HBAのそれぞれ(HBA1、HBA2、HBA3、およびHBA4)が3つのLUN(LUN1、LUN2、およびLUN3)に接続されている。
初期のパス選択は、すべてのLUNにわたってI/O負荷が均一であると想定し、各HBAおよび記憶プロセッサ・ポート304を通るパスのバランスをとることによって遂行される。動作においては、起点へのエッジ(例えば起点ノード)およびシンクへのエッジ(宛先ノード)を除いたすべてのエッジ(例えばリンク)に、1の容量が割り当てられる。すべてのHノー ドがLノードへの非ゼロパスを有するかどうか判断するために、最大フロー・アルゴリズムが遂行される。見つかったそれぞれのパスに関して、パスのすべてのエッジによって1に等しい容量が消費される。すべてのノードにパスがあるわけではない場合、エッジ・ウェイトが1だけ増加され、すべてのノードがこのようなパスを有するようになるまで最大フロー・アルゴリズムが(例えば反復して)再実行される。すべてのノードがパスを有するようになった後、このような最大フロー・アルゴリズムの反復動作からもたらされる、すべてのホスト514からのすべてのLUN向けの初期パスは、各HBAおよびコントローラ・ポート304に対する最小ストレスを用いる。
次に、利用可能なパスの数または量ばかりでなく、各ホスト514によって各LUNのために消費される実際のI/O帯域幅を用いることにも基づくパス割当てを可能にするために、負荷ベースI/Oパス選択が遂行される。HノードからHBAノードへのエッジおよびポート・ノードからLUNへのエッジのI/O帯域幅に関して、特定の量の容量Cが定義されている。例えば、エッジ当たりCminおよびCmaxの2つの容量値が、それぞれ、HBA当たりのホスト514ごとの平均的I/O帯域幅および最高の可能なネットワーク・スイッチ・リンク容量として初期化される。しかし、本開示の態様は、他の初期容量値を企図する。
すべてのHノードがLノードへの非ゼロパスを有するかどうか判断するために、最大フロー・アルゴリズムが遂行される。パスが見つかるたびに、ホストHからLへの要求が、パスの容量から減じられる。すべてのパスを満たす最小限のI/O帯域幅または容量を見いだすために、バイナリ・サーチが遂行される。この最小限のI/O帯域幅に対応するパスは、選択されたパスすなわちホスト514に推薦されるパスを表す。
或る実施形態では、特定のパスが過剰に予約されることがある。リンクがその容量以上の要求に対応しないことを保証するために、ホスト・バス・アダプタ、ポート304、または中間リンクの帯域幅もしくは他の容量が既知であれば、このリンク制限を、パス選択アルゴリズムにおけるリンク容量の上限として用いてもよい。最大のリンク容量値は、(例えばキャッシュに入った記憶位置に対してアイドル期間中に大きなI/O要求を用いて)リンク帯域幅を発見すること、および/またはネットワーク・スイッチ516に対して情報を問い合わせることによって、見いだされ得る。特定のホスト514からLUNへの、リンク容量を超えないパスが見つからない場合には、トポロジ変更の提案および/またはリンク飽和の警報が、管理者502に送られてよい。図7を参照しながら以下でさらに説明されるように、トポロジ変更が開始されてよい。例えば、LUN侵入、特定のLUNからのデータ移動、およびLUNからポートへの再構成マッピングが、本明細書の説明のように改良された最大フロー・アルゴリズムを繰り返し実行することによって評価されてよい。
図5は、SANの複数の仮想マシンなどに対して集中型の入出力(I/O)記憶パスの選択および管理を実施するための例示のコンピュータ装置504のブロック図である。コンピュータ装置504は、コンピュータ装置504と関連した動作および機能を実施するための命令を(例えばアプリケーション・プログラム、オペレーティング・システムの機能または両方として)実行する任意の装置を表す。例えば、コンピュータ装置504は、
本明細書に説明されたように、分散型リソース・スケジューリングを管理するための命令を実行する。コンピュータ装置504は、任意のコンピュータ装置または処理ユニットを含んでよい。例えば、コンピュータ装置504は、1群の処理ユニットまたはクラウド・コンピューティング構成など他のコンピュータ装置を表してよい。或る実施形態では、管理者502、またはユーザ108などの他のユーザは、コンピュータ装置504の動作の態様を管理するためにコンピュータ装置504と対話する。
コンピュータ装置504は、少なくとも1つのプロセッサ506および記憶エリア508を有する。プロセッサ506は、何らかの量の処理ユニットを含み、本開示の態様を実施するためのコンピュータ実行可能命令を実行するようにプログラムされる。これらの命令は、プロセッサ506もしくはコンピュータ装置504の内部で動作する複数のプロセッサによって遂行されてよく、またはコンピュータ装置504の外部のプロセッサによって遂行されてもよい。或る実施形態では、プロセッサ506は、分散型共有記憶システムの図に示されたものなどの命令を実行するようにプログラムされる。
記憶エリア508は、コンピュータ装置504に関連した、またはコンピュータ装置504がアクセス可能な、何らかの量のコンピュータ可読媒体を含む。記憶エリア508またはその一部分は、コンピュータ装置504の内部、コンピュータ装置504の外部、またはその両方にあってよい。
図5の実例では、記憶エリア508は、SAN 512のトポロジ記述510を記憶する。トポロジ記述510は、ホスト514、スイッチ516などSAN 512の要素、およびディスク・アレイ302、ならびにその構成(例えばHBA、ポート304、記憶プロセッサ306など)およびその間のリンクを識別する。或る実施形態では、トポロジ記述510はさらに、SAN 512に関する閾値容量を含む。閾値容量は、例えばHBA当たりのホスト514ごとのI/O帯域幅を表すが、他の閾値容量も本開示の範囲内である。記憶エリア508は、リンクと関連したリンク容量も記憶してよい。
或る実施形態では、コンピュータ装置504は、ネットワーク(図示せず)を介してSAN 512の要素にアクセスする。ネットワークは、コンピュータ装置504とSAN
512の要素の間を連絡するための任意の手段を表す。本開示の態様は、任意のネットワークのタイプまたは構成に対して動作可能である。
図6は、SAN 512などのSANの中の最適の記憶パスを選択するように、複数のホスト514を管理する集中型システムによって遂行される例示の方法の流れ図である。方法600は、コンピュータ装置504(図5に示されている)による実行を参照しながら説明されているが、任意のコンピュータ装置によって遂行され得るように企図されている。さらに、図6に示された動作の実行は、VM環境に限定されることなく、任意の複数起点および複数宛先の環境に適用可能である。また、コンピュータ実行可能命令を記憶する1または複数のコンピュータ可読記憶媒体が動作することにより、プロセッサ506は、図6に示された動作を遂行することによって集中型のI/O負荷ベースパス選択を実施してよい。
ステップ604で、複数のホスト514のうちの1つから、同ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスを識別するように、複数のホスト514に対して初期のパス選択が遂行される(図4を参照されたい)。初期のパス選択は、新規のトポロジに対して、またはI/O負荷の変更に際して遂行されるが、或る実施形態は、パスを選択するのでなく、1組の選択されたパスにアクセスする。
一般に、初期のパス選択は、各繰返しに対してエッジ・ウェイトを増す最大フロー・ア
ルゴリズムを繰り返し遂行することによって、記憶パスを繰り返し検索することを含む。各繰返しで、ホスト−LUN対の何らかの量が発見されてよく、または発見されないこともあり、ホスト−LUN対がすべて見つかるまでエッジ・ウェイトが増加される。例えば、ステップ602で、各リンクに対して1のエッジ・ウェイトを定義することによって初期のパス選択が開始する。ステップ606で各ホスト514用に記憶パスが見つからなければ、ステップ607でエッジ・ウェイトが増加され、ステップ604でパス選択が遂行される。このように、各ホスト514からそれぞれの接続されたLUN(例えば記憶装置)へのパスが見つかるまでパス選択を繰り返して、初期のパス選択を完了する。
或る実施形態では、例えばリンクの過剰予約を防止するために、任意選択で、1または複数のリンクに対する上限リンク容量が定義されてよい。或る実施形態では、ネットワーク要素にリンク容量を問い合わせてよく、またはテストI/O要求によってリンク容量を発見することができる。例えば、記憶パスを選択するのに使用されるスイッチ516の最大容量を得るために、記憶パス内のスイッチ516に問い合わせてよい。
ステップ608では、見つかった各記憶パスについて、記憶パスに対するI/O負荷が求められる。ステップ610では、各記憶パスに対して求めたI/O負荷を閾値容量から減じる。ステップ614で、例えばバイナリ・サーチを遂行して、バイナリ・サーチからの各値に対して最大フロー・アルゴリズムを実行することによって、記憶パスのそれぞれに適合する、そうでなければ各ホスト514からそれぞれの接続されたLUNへの少なくとも1つのパスを見つけるのに必要とされる、最小限の帯域幅が見いだされる。
ステップ616で、ホスト514のそれぞれに対して、記憶パスのうちの1つが最小限の帯域幅に基づき選択される。各ホスト514向けに選択された記憶パスが、少なくとも対応するホスト514に対して、表示される、識別される、推奨される、または示される。
図6に示されたパス選択動作は、SAN 512のトポロジの変更またはパスに沿ったI/O負荷の変更に応答して繰り返される。例えば、ステップ618で、トポロジおよびI/Oの負荷が監視されてよい。ステップ620でトポロジ変更が検出された場合、または選択された記憶パスに沿ったI/Oの変更がステップ622で検出された場合、これに応答して、初期のパス選択が再度遂行されてよい。例えば、記憶パスのうちの1つに関して監視されたI/O負荷の変更が検出されるとすぐに、更新されたI/O負荷が求められ、記憶パスのそれぞれに適合する最小限の帯域幅が再度計算され、各ホスト514に対して、記憶パスのうちの1つが、再計算された最小の帯域幅に基づき選択される。
図7を参照しながら次に説明されるように、トポロジ変更が推奨されてよく、或る実施形態では自動的に開始される。
図7は、リンクまたは論理装置番号(LUN)の輻輳に応答してトポロジ変更を開始するように、複数のホスト514を管理する集中型システムによって遂行される例示の方法の流れ図である。方法700は、コンピュータ装置504(図5に示されている)による実行を参照しながら説明されているが、任意のコンピュータ装置によって遂行され得るように企図されている。さらに図7に示された動作の実行は、VM環境に限定されることなく、トポロジ変更が開始され得る任意の複数起点および複数宛先の環境に適用可能である。またコンピュータ実行可能命令を記憶する1または複数のコンピュータ可読記憶媒体が動作することにより、プロセッサ506は、図7に示された動作を遂行することによって集中型のI/O負荷ベースパス選択を実施してよい。
ホスト514(例えば仮想マシンを実行する)のうちの1つから、LUNまたはホスト514から認識可能な他の論理的記憶装置のうちの1つにそれぞれ至る複数の記憶パスが
、識別される、またはアクセスされる。ステップ704で、記憶パスのそれぞれに対するI/O負荷が監視される。ステップ706で、記憶パスの少なくとも1つにおいて監視されたI/O負荷が輻輳を示していると判断すると、ステップ708で、1または複数のトポロジ変更が識別される。例示のトポロジ変更は、それだけではないが、1つの論理的記憶装置から別の論理的記憶装置へデータを移動することと、複数のホスト514の第1のホストから複数のホスト514の第2のホストへデータストアを移動することと、論理的記憶装置をコントローラへ再マッピングすることとを含む。
コンピュータ装置504がSAN 512の中のエンドポイントを再構成することができる実施形態では、ステップ710で、識別された1または複数のトポロジ変更は、自動的に、かつ/または管理者502の入力なしで開始されてよい。例えば、記憶装置を別の記憶プロセッサ306またはコントローラに再マッピングするために、記憶装置を管理する記憶プロセッサ306のうちの1つに命令が送られてよい。或る実施形態では、トポロジ変更を開始することはさらに、記憶パスを再構成することと、ホスト514のうち少なくとも1つに対して別の記憶パスを用いるように指示することとを含んでよい。
追加の実例
本開示の態様が、1つのLUN当たり1つのパスを用いるアクティブ−パッシブ・モードでアクセスされているLUNを参照しながら本明細書で説明されてきたが、他の実施形態は、1つのLUN当たり複数のパスを用いるアクティブ−アクティブ・モードでLUNがアクセスされる環境を企図する。このような実施形態では、最大フロー・アルゴリズムが、k個のパスが許容されるLUNに対してk個のパスを見つけるように変更される。パスが見つかるたびに、要求は、1ではなくkだけインクリメントされる。
例示の動作環境
本明細書で説明された動作は、コンピュータ装置504などのコンピュータまたはコンピュータ装置によって遂行されてよい。コンピュータ装置は、メッセージおよび/または記憶したデータの交換を通じて互いに通信する。通信は、任意の有線または無線の接続にわたって、任意のプロトコルまたは機構を用いて起こり得る。コンピュータ装置は、(例えばネットワークおよび/またはデータバスの全体への)ブロードキャスト・メッセージ、(例えば複数の他のコンピュータ装置にアドレス指定された)マルチキャスト・メッセージ、および/または複数のユニキャスト・メッセージとしてメッセージを伝送してよく、これらのそれぞれが、個々のコンピュータ装置にアドレス指定される。さらに、或る実施形態では、メッセージは、ユーザ・データグラム・プロトコル(UDP:User Datagram Protocol)などの配信を保証しないネットワーク・プロトコルを用いて伝送される。したがってコンピュータ装置は、メッセージを伝送するとき、配信不能のリスクを低減することができるように、メッセージの複数のコピーを伝送してよい。
例示のコンピュータ読取り可能媒体は、フラッシュ・メモリ・ドライブ、デジタル多用途ディスク(DVD)、コンパクト・ディスク(CD)、フロッピー(登録商標)・ディスク、およびテープ・カセットを含む。限定的でない実例として、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラム・モジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性媒体および不揮発性媒体、取外し可能媒体および固定型媒体が、含まれる。コンピュータ記憶媒体は、有形であり、伝搬されたデータ信号を除外し、通信媒体とは相互排他的である。或る実施形態では、コンピュータ記憶媒体はハードウェアで実施される。例示のコンピュータ記憶媒体は、ハード・ディスク、フラッシュ・ドライブ、および他の固体記憶装置を含む。それと対照的に、通信媒体は、一般に、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、または搬送波もしくは他の移送機構などの変調データ信号における他のデータを具体化し、任意の情報配送媒体を含む。
本開示の実施形態は、例示のコンピュータ・システム環境と関連して説明されてきたが、多数の他の汎用または専用のコンピュータ・システムの環境または構成で動作可能である。本開示の態様とともに用いるのに適切であり得る周知のコンピュータ・システムの実例、環境、および/または構成には、それだけではないが、モバイル・コンピューティング装置、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップの装置、マルチプロセッサ・システム、ゲーム機、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な家電、携帯電話、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、上記システムのうち任意ものを含む分散型コンピュータ環境または装置などが含まれる。
本開示の実施形態は、1または複数のコンピュータまたは他の装置によって実行されるプログラム・モジュールなどのコンピュータ実行可能命令の一般的な状況において説明されてよい。コンピュータ実行可能命令は、1または複数のコンピュータ実行可能な構成要素またはモジュールに体系化され得る。一般に、プログラム・モジュールは、それだけではないが、特定のタスクを遂行する、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、およびデータ構造を含む。本開示の態様は、このような構成要素またはモジュールの任意の数および構成を用いて実施され得る。例えば、本開示の態様は、特定のコンピュータ実行可能命令または各図面に示されて本明細書で説明された特定の構成要素もしくはモジュールに限定されない。本開示の他の実施形態は、本明細書に示され説明されたものよりも、程度の差はあるが機能性を有する様々なコンピュータ実行可能命令または構成要素を含んでよい。
本開示の態様は、本明細書に説明された命令を実行するようにプログラムされたとき、汎用コンピュータを専用コンピュータ装置に変換する。
本明細書で図示して説明した実施形態ならびに本明細書で具体的には説明されていないが本発明の態様の範囲内の実施形態は、記憶パスの輻輳を修正するためにトポロジ変更を識別する例示の手段と、記憶パスの輻輳を修正するためにトポロジ変更を自動的に開始する例示の手段とを構成する。例えば、本明細書で説明されたような動作を実行するようにプログラムされたプロセッサ506は、これらの例示の手段を構成する。
図に示された様々な要素の機能の少なくとも一部分は、図中の他の要素、また図には示されていないエンティティ(例えばプロセッサ、ウェブ・サービス、サーバ、アプリケーション・プログラム、コンピュータ装置など)によって遂行されてよい。
或る実施形態では、図に示された動作は、コンピュータ可読媒体に符号化されたソフトウェア命令として、この動作を遂行するようにプログラムされた、もしく設計されたハードウェアで、またはその両方で実施されてよい。例えば、本開示の態様は、チップまたは複数の相互接続された導電素子を含んでいる他の回路上のシステムとして実施されてよい。
本明細書で図示して説明した本開示の実施形態の動作の実行または遂行の順序は、別段の定めがない限り必須ではない。すなわち、これらの動作は、別段の定めがない限り任意の順序で遂行されてよく、本開示の実施形態は、本明細書で開示されたものに対して追加の動作を含んでよく、より少ない動作しか含まなくてもよい。例えば、特定の動作を、別の動作の以前に、同動作と同時に、または同動作の後に、実行する、または遂行するということは、本開示の態様の範囲に入るように企図されている。
本開示の態様の要素またはその実施形態を紹介するとき、冠詞「1つの(a)」、「1つの(an)」、「この(the)」、および「前記(said)」は、同要素の1また
は複数があることを意味するように意図されている。用語「備える」、「含む」、および「有する」は、包含的であるように意図されており、列挙された要素とは別に追加の要素が存在し得ることを意味する。
本開示の態様を詳細に説明してきたが、添付の特許請求の範囲で定義される本開示の態様の範囲から逸脱することなく、修正形態および変形形態が可能であることが明らかであろう。本開示の態様の範囲から逸脱することなく、上記の構成、結果、および方法に様々な変更を加えることができるので、上記の記述の中に含まれ、添付図面に示されていることは、すべて例示であって限定する意味ではないと解釈されるべきであることが意図されている。

Claims (20)

  1. ストレージ・エリア・ネットワーク(SAN)における複数の仮想マシン(VM)向けの、集中型の入出力(I/O)負荷ベースパス管理用システムであって、
    コンピュータ装置に関連した記憶エリアであって、前記記憶エリアは前記SANのトポロジ記述を記憶し、前記トポロジ記述は少なくとも前記SAN用の閾値容量を含む、記憶エリアと、
    プロセッサと、
    を備え、前記プロセッサは、
    前記仮想マシンを実行する複数のホストのうちの1つから、前記ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスを識別することによって、パス管理を遂行する工程であって、前記識別には最大フロー・アルゴリズムを繰り返し用い、同最大フロー・アルゴリズムに用いる、前記ホストと前記論理的記憶装置との間の各エッジのウェイトを、前記識別を繰り返す毎に増大させる、工程と
    識別された前記記憶パスにおけるリンクに基づき、識別された前記記憶パスのそれぞれについてI/O負荷を監視する工程と、
    監視された前記I/O負荷が前記記憶パスの少なくとも1つにおける輻輳を表していると判断することに基づき、1または複数のトポロジ変更を識別する工程と、
    識別された前記1または複数のトポロジ変更を開始する工程と、
    を行うようにプログラムされる、システム。
  2. 前記プロセッサは、初期の装置発見段階の間に前記複数の記憶パスにおけるすべての利用可能な装置を発見するようにさらにプログラムされる、請求項1に記載のシステム。
  3. すべての利用可能な装置を発見することは、前記記憶パス内のスイッチに前記スイッチの最大帯域幅容量を問い合わせることを含む、請求項2に記載のシステム。
  4. 複数の記憶パスを識別することは、前記プロセッサが初期にホストごとに装置当たりの均一なI/O負荷を想定することを含む、請求項1に記載のシステム。
  5. 前記プロセッサはさらに、前記ホストのうち少なくとも1つに対して前記複数の記憶パ
    スから別の記憶パスを選択することと、別のコントローラに対して前記論理的記憶装置を再マッピングするように、記憶プロセッサ・アレイに命じることと、前記論理的記憶装置から別の論理的記憶装置へとデータを移動することと、前記複数のホストのうちの第1のホストから前記複数のホストのうちの第2のホストへとデータストアを移動することと、のうち1または複数を前記SANの管理者からの入力なしで遂行することによって、前記SANの前記トポロジ記述に対する推奨された前記トポロジ変更を開始するようにプログラムされる、
    請求項1に記載のシステム。
  6. 前記1または複数のトポロジ変更を識別する工程は、未利用の記憶パスを識別することを含む、請求項1に記載のシステム。
  7. 前記複数の記憶パスのそれぞれは複数のリンクを含み、
    前記記憶エリアはさらに、前記複数のリンクに関連したリンク容量を記憶する、
    請求項1に記載のシステム。
  8. ストレージ・エリア・ネットワーク(SAN)における複数の仮想マシン(VM)向けの、集中型の入出力(I/O)負荷ベースパス管理の方法であって、
    プロセッサが、前記仮想マシンを実行する複数のホストのうちの1つから、前記ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスを識別する工程であって、前記識別には最大フロー・アルゴリズムを繰り返し用い、同最大フロー・アルゴリズムに用いる前記ホストと前記論理的記憶装置との間の各エッジのウェイトを、前記識別を繰り返す毎に増大させる、工程と
    識別された前記記憶パスのそれぞれについてI/O負荷を監視する工程と;
    監視された前記I/O負荷が前記記憶パスの少なくとも1つにおける輻輳を表していると判断することに基づき、1または複数のトポロジ変更を識別する工程と、
    前記プロセッサが、識別された前記1または複数のトポロジ変更を開始する工程と、を備える、方法。
  9. 識別された前記1または複数のトポロジ変更を開始する工程は、前記ストレージ・エリア・ネットワークの管理者からの入力なしで前記トポロジ変更を開始する工程を含む、請求項8に記載の方法。
  10. 識別された前記1または複数のトポロジ変更を開始する工程は、前記複数の記憶パスから、前記ホストのうち少なくとも1つ向けに別のパスを選択する工程と、前記ホストのうち前記少なくとも1つに対して選択された前記別のパスを用いるように指示する工程とを含む、請求項8に記載の方法。
  11. 識別された前記1または複数のトポロジ変更を開始する工程は、前記論理的記憶装置を管理している記憶プロセッサ・アレイに対して、前記論理的記憶装置を別のコントローラに再マッピングするように命令を送る工程を含む、請求項8に記載の方法。
  12. 識別された前記1または複数のトポロジ変更を開始する工程は、前記論理的記憶装置から別の論理的記憶装置へとデータを移動する工程と、前記複数のホストの中の第1のホストから前記複数のホストの中の第2のホストへとデータストアを移動する工程とのうちの少なくとも1つを含む、請求項8に記載の方法。
  13. 前記1または複数のトポロジ変更を識別する工程は、監視された前記I/O負荷が前記記憶パスの少なくとも1つにおける利用可能な帯域幅を表していると判断する工程を含む、請求項8に記載の方法。
  14. 前記複数の記憶パスを識別することは、テストによって記憶装置の上限リンク容量を発見することを含む、請求項8に記載の方法。
  15. 前記1または複数のトポロジ変更を識別する工程は、前記論理的記憶装置の監視された前記I/O負荷における変更の履歴に基づき、監視された前記I/O負荷の変更を予想する工程を含む、請求項8に記載の方法。
  16. コンピュータ実行可能命令を含む1または複数のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が実行されると、少なくとも1つのプロセッサに入出力(I/O)負荷ベースのトポロジ変更の集中化を行わせ、該集中化は、
    分散型共有記憶システムにおいて動作するプロセッサが、仮想マシン(VM)を実行する複数のホストのうちの1つから、前記ホストが認識可能な少なくとも1つの論理的記憶装置にそれぞれ至る複数の記憶パスを識別する工程であって、前記識別には最大フロー・アルゴリズムを繰り返し用い、同最大フロー・アルゴリズムに用いる前記ホストと前記論理的記憶装置との間の各エッジのウェイトを、前記識別を繰り返す毎に増大させる、工程と、
    識別された前記記憶パスのそれぞれについてI/O負荷を監視する工程と、
    前記記憶パスの少なくとも1つにおける監視された前記I/O負荷の変更に応じて、1または複数のトポロジ変更を識別する工程と、
    前記プロセッサが、識別された前記1または複数のトポロジ変更を開始する工程と、によって行われる、コンピュータ可読記憶媒体。
  17. 前記コンピュータ実行可能命令は前記プロセッサにパス管理を実行するための方針を実装させ、前記方針は、ラウンドロビン、最小限のキュー長さ、適応型パス選択、および単一アクティブパスのうちの少なくとも1つを含む、請求項16に記載のコンピュータ可読記憶媒体。
  18. 前記コンピュータ実行可能命令は前記プロセッサに、新たな記憶装置の追加に応じて複数の記憶パスの再識別を行わせる、請求項16に記載のコンピュータ可読記憶媒体。
  19. 前記コンピュータ実行可能命令は、前記I/O負荷のトレンドを観測することによって、識別された前記記憶パスのそれぞれに対する前記I/O負荷を監視する、請求項16に記載のコンピュータ可読記憶媒体。
  20. 前記コンピュータ実行可能命令は前記プロセッサに、観測された前記トレンドに基づき、識別された前記1または複数のトポロジ変更を開始させる、請求項19に記載のコンピュータ可読記憶媒体。
JP2017006651A 2012-05-23 2017-01-18 ファブリック分散リソースのスケジューリング Active JP6199514B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/479,118 2012-05-23
US13/479,118 US8954575B2 (en) 2012-05-23 2012-05-23 Fabric distributed resource scheduling

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013107281A Division JP6081293B2 (ja) 2012-05-23 2013-05-21 ファブリック分散リソースのスケジューリング

Publications (2)

Publication Number Publication Date
JP2017084406A JP2017084406A (ja) 2017-05-18
JP6199514B2 true JP6199514B2 (ja) 2017-09-20

Family

ID=48236708

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013107281A Active JP6081293B2 (ja) 2012-05-23 2013-05-21 ファブリック分散リソースのスケジューリング
JP2017006651A Active JP6199514B2 (ja) 2012-05-23 2017-01-18 ファブリック分散リソースのスケジューリング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013107281A Active JP6081293B2 (ja) 2012-05-23 2013-05-21 ファブリック分散リソースのスケジューリング

Country Status (4)

Country Link
US (2) US8954575B2 (ja)
EP (1) EP2667569B1 (ja)
JP (2) JP6081293B2 (ja)
AU (1) AU2013205443B2 (ja)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089410B2 (en) 2010-04-02 2018-10-02 Objectivity, Inc. For acceleration of pathway selection, application, and ranking in a hybrid network
US9213564B1 (en) * 2012-06-28 2015-12-15 Amazon Technologies, Inc. Network policy implementation with multiple interfaces
US8909980B1 (en) * 2012-06-29 2014-12-09 Emc Corporation Coordinating processing for request redirection
US9003027B2 (en) 2012-08-17 2015-04-07 Vmware, Inc. Discovery of storage area network devices for a virtual machine
US8825851B2 (en) * 2012-08-17 2014-09-02 Vmware, Inc. Management of a virtual machine in a storage area network environment
US9542125B1 (en) * 2012-09-25 2017-01-10 EMC IP Holding Company LLC Managing data relocation in storage systems
US11301514B2 (en) 2013-03-02 2022-04-12 Leon Guzenda System and method to identify islands of nodes within a graph database
US10789294B2 (en) * 2013-03-02 2020-09-29 Leon Guzenda Method and system for performing searches of graphs as represented within an information technology system
US9819738B2 (en) * 2013-12-13 2017-11-14 Netapp Inc. Access management techniques for storage networks
US9417896B2 (en) * 2014-05-19 2016-08-16 International Business Machines Corporation Allocating hypervisor resources
US9813301B2 (en) * 2014-08-20 2017-11-07 Nec Corporation Optimization framework for multi-tenant data centers
US20160072704A1 (en) * 2014-09-09 2016-03-10 Microsoft Corporation Resource control for virtual datacenters
US9792057B1 (en) * 2014-09-23 2017-10-17 Primaryio, Inc. Data caching system and method for hypervisor-based computer systems
US9804797B1 (en) * 2014-09-29 2017-10-31 EMC IP Holding Company LLC Using dynamic I/O load differential for load balancing
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US9916275B2 (en) * 2015-03-09 2018-03-13 International Business Machines Corporation Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
WO2016209313A1 (en) * 2015-06-23 2016-12-29 Hewlett-Packard Development Company, L.P. Task execution in a storage area network (san)
CN105162823B (zh) * 2015-06-30 2019-07-09 广东轩辕网络科技股份有限公司 一种虚拟机管理方法及装置
US10417029B2 (en) * 2015-08-03 2019-09-17 Hewlett Packard Enterprise Development Lp Virtual machine migration
US9942132B2 (en) * 2015-08-18 2018-04-10 International Business Machines Corporation Assigning communication paths among computing devices utilizing a multi-path communication protocol
US10346423B2 (en) 2015-11-17 2019-07-09 Leon Guzenda Minimizing resource contention while loading graph structures into a distributed database
US20170322827A1 (en) * 2016-05-06 2017-11-09 Nutanix, Inc. Testing and benchmarking for enterprise data centers
US10742509B2 (en) * 2016-11-03 2020-08-11 Nicira, Inc. Logical network configuration span
US10552186B2 (en) 2017-05-15 2020-02-04 International Business Machines Corporation Avoiding overloading of network adapters in virtual environments
CN107193647A (zh) * 2017-05-25 2017-09-22 深信服科技股份有限公司 一种numa架构下的沙箱环境任务处理方法及系统
GB201709845D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
US10652206B1 (en) 2017-10-27 2020-05-12 EMC IP Holding Company LLC Storage system with network-wide configurable device names
US10439927B2 (en) * 2018-01-31 2019-10-08 International Business Machines Corporation Distributed storage path configuration
US10757189B2 (en) 2018-04-30 2020-08-25 EMC IP Holding Company LLC Service level objection based input-output selection utilizing multi-path layer of host device
US10742657B2 (en) * 2018-07-11 2020-08-11 International Business Machines Corporation Accessing shared resources without system groups
US11050660B2 (en) * 2018-09-28 2021-06-29 EMC IP Holding Company LLC Host device with multi-path layer implementing path selection based at least in part on fabric identifiers
US10754572B2 (en) 2018-10-09 2020-08-25 EMC IP Holding Company LLC Migrating control of a multi-path logical device from a current MPIO driver to a target MPIO driver
US11044313B2 (en) 2018-10-09 2021-06-22 EMC IP Holding Company LLC Categorizing host IO load pattern and communicating categorization to storage system
WO2020113875A1 (zh) * 2018-12-07 2020-06-11 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统
US10880217B2 (en) 2018-12-24 2020-12-29 EMC IP Holding Company LLC Host device with multi-path layer configured for detection and resolution of oversubscription conditions
US10754559B1 (en) 2019-03-08 2020-08-25 EMC IP Holding Company LLC Active-active storage clustering with clock synchronization
US11277335B2 (en) 2019-12-26 2022-03-15 EMC IP Holding Company LLC Host device with path selection modification responsive to mismatch in initiator-target negotiated rates
US11099755B2 (en) 2020-01-06 2021-08-24 EMC IP Holding Company LLC Multipath device pseudo name to logical volume mapping for host devices
US11231861B2 (en) 2020-01-15 2022-01-25 EMC IP Holding Company LLC Host device with active-active storage aware path selection
US11461026B2 (en) 2020-01-21 2022-10-04 EMC IP Holding Company LLC Non-disruptive update of host multipath device dependency
US11520671B2 (en) 2020-01-29 2022-12-06 EMC IP Holding Company LLC Fast multipath failover
US11050825B1 (en) * 2020-01-30 2021-06-29 EMC IP Holding Company LLC Storage system port usage information sharing between host devices
US11175840B2 (en) 2020-01-30 2021-11-16 EMC IP Holding Company LLC Host-based transfer of input-output operations from kernel space block device to user space block device
US11093144B1 (en) 2020-02-18 2021-08-17 EMC IP Holding Company LLC Non-disruptive transformation of a logical storage device from a first access protocol to a second access protocol
US11449257B2 (en) 2020-02-21 2022-09-20 EMC IP Holding Company LLC Host device with efficient automated seamless migration of logical storage devices across multiple access protocols
CN111324311B (zh) * 2020-02-28 2021-09-14 苏州浪潮智能科技有限公司 一种lun划分方法和设备
US11204699B2 (en) 2020-03-05 2021-12-21 EMC IP Holding Company LLC Storage system port maintenance information sharing with host device
US11397589B2 (en) 2020-03-06 2022-07-26 EMC IP Holding Company LLC Snapshot transmission from storage array to cloud using multi-path input-output
US11042327B1 (en) 2020-03-10 2021-06-22 EMC IP Holding Company LLC IO operation cloning using change information sharing with a storage system
US11265261B2 (en) 2020-03-18 2022-03-01 EMC IP Holding Company LLC Access path management based on path condition
US11368399B2 (en) * 2020-03-27 2022-06-21 EMC IP Holding Company LLC Congestion aware multipathing based on network congestion notifications
US11080215B1 (en) 2020-03-31 2021-08-03 EMC IP Holding Company LLC Host device providing automated prediction of change intervals to reduce adverse impacts on applications
US11169941B2 (en) 2020-04-09 2021-11-09 EMC IP Holding Company LLC Host device with automated connectivity provisioning
US11366756B2 (en) 2020-04-13 2022-06-21 EMC IP Holding Company LLC Local cached data coherency in host devices using remote direct memory access
US11561699B2 (en) 2020-04-24 2023-01-24 EMC IP Holding Company LLC Input-output path selection using switch topology information
US11216200B2 (en) 2020-05-06 2022-01-04 EMC IP Holding Company LLC Partition utilization awareness of logical units on storage arrays used for booting
US11099754B1 (en) 2020-05-14 2021-08-24 EMC IP Holding Company LLC Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations
US11175828B1 (en) 2020-05-14 2021-11-16 EMC IP Holding Company LLC Mitigating IO processing performance impacts in automated seamless migration
US11012512B1 (en) 2020-05-20 2021-05-18 EMC IP Holding Company LLC Host device with automated write throttling responsive to storage system write pressure condition
US11023134B1 (en) 2020-05-22 2021-06-01 EMC IP Holding Company LLC Addition of data services to an operating system running a native multi-path input-output architecture
US11151071B1 (en) 2020-05-27 2021-10-19 EMC IP Holding Company LLC Host device with multi-path layer distribution of input-output operations across storage caches
US11226851B1 (en) 2020-07-10 2022-01-18 EMC IP Holding Company LLC Execution of multipath operation triggered by container application
US11256446B1 (en) 2020-08-03 2022-02-22 EMC IP Holding Company LLC Host bus adaptor (HBA) virtualization aware multi-pathing failover policy
US11916938B2 (en) 2020-08-28 2024-02-27 EMC IP Holding Company LLC Anomaly detection and remediation utilizing analysis of storage area network access patterns
US11157432B1 (en) 2020-08-28 2021-10-26 EMC IP Holding Company LLC Configuration of block devices based on provisioning of logical volumes in a storage system
US11392459B2 (en) 2020-09-14 2022-07-19 EMC IP Holding Company LLC Virtualization server aware multi-pathing failover policy
US11320994B2 (en) 2020-09-18 2022-05-03 EMC IP Holding Company LLC Dynamic configuration change control in a storage system using multi-path layer notifications
US11032373B1 (en) 2020-10-12 2021-06-08 EMC IP Holding Company LLC Host-based bandwidth control for virtual initiators
US11397540B2 (en) 2020-10-12 2022-07-26 EMC IP Holding Company LLC Write pressure reduction for remote replication
US11630581B2 (en) 2020-11-04 2023-04-18 EMC IP Holding Company LLC Host bus adaptor (HBA) virtualization awareness for effective input-output load balancing
US11397539B2 (en) 2020-11-30 2022-07-26 EMC IP Holding Company LLC Distributed backup using local access
US11385824B2 (en) 2020-11-30 2022-07-12 EMC IP Holding Company LLC Automated seamless migration across access protocols for a logical storage device
US11543971B2 (en) 2020-11-30 2023-01-03 EMC IP Holding Company LLC Array driven fabric performance notifications for multi-pathing devices
US11204777B1 (en) 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
US11620240B2 (en) 2020-12-07 2023-04-04 EMC IP Holding Company LLC Performance-driven access protocol switching for a logical storage device
US11409460B2 (en) 2020-12-08 2022-08-09 EMC IP Holding Company LLC Performance-driven movement of applications between containers utilizing multiple data transmission paths with associated different access protocols
US11455116B2 (en) 2020-12-16 2022-09-27 EMC IP Holding Company LLC Reservation handling in conjunction with switching between storage access protocols
US11651066B2 (en) 2021-01-07 2023-05-16 EMC IP Holding Company LLC Secure token-based communications between a host device and a storage system
US11308004B1 (en) 2021-01-18 2022-04-19 EMC IP Holding Company LLC Multi-path layer configured for detection and mitigation of slow drain issues in a storage area network
US11494091B2 (en) 2021-01-19 2022-11-08 EMC IP Holding Company LLC Using checksums for mining storage device access data
US11449440B2 (en) 2021-01-19 2022-09-20 EMC IP Holding Company LLC Data copy offload command support across multiple storage access protocols
US11467765B2 (en) 2021-01-20 2022-10-11 EMC IP Holding Company LLC Detection and mitigation of slow drain issues using response times and storage-side latency view
US11386023B1 (en) 2021-01-21 2022-07-12 EMC IP Holding Company LLC Retrieval of portions of storage device access data indicating access state changes
US11640245B2 (en) 2021-02-17 2023-05-02 EMC IP Holding Company LLC Logical storage device access in an encrypted storage environment
US11797312B2 (en) 2021-02-26 2023-10-24 EMC IP Holding Company LLC Synchronization of multi-pathing settings across clustered nodes
US11755222B2 (en) 2021-02-26 2023-09-12 EMC IP Holding Company LLC File based encryption for multi-pathing devices
US11928365B2 (en) 2021-03-09 2024-03-12 EMC IP Holding Company LLC Logical storage device access using datastore-level keys in an encrypted storage environment
US11294782B1 (en) 2021-03-22 2022-04-05 EMC IP Holding Company LLC Failover affinity rule modification based on node health information
US11782611B2 (en) 2021-04-13 2023-10-10 EMC IP Holding Company LLC Logical storage device access using device-specific keys in an encrypted storage environment
US11422718B1 (en) 2021-05-03 2022-08-23 EMC IP Holding Company LLC Multi-path layer configured to provide access authorization for software code of multi-path input-output drivers
US11550511B2 (en) 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives
US11822706B2 (en) * 2021-05-26 2023-11-21 EMC IP Holding Company LLC Logical storage device access using device-specific keys in an encrypted storage environment
US11625232B2 (en) 2021-06-07 2023-04-11 EMC IP Holding Company LLC Software upgrade management for host devices in a data center
US11526283B1 (en) 2021-06-08 2022-12-13 EMC IP Holding Company LLC Logical storage device access using per-VM keys in an encrypted storage environment
US11762588B2 (en) 2021-06-11 2023-09-19 EMC IP Holding Company LLC Multi-path layer configured to access storage-side performance metrics for load balancing policy control
US11954344B2 (en) 2021-06-16 2024-04-09 EMC IP Holding Company LLC Host device comprising layered software architecture with automated tiering of logical storage devices
US11750457B2 (en) 2021-07-28 2023-09-05 Dell Products L.P. Automated zoning set selection triggered by switch fabric notifications
CN113434283B (zh) * 2021-08-26 2021-11-26 广州三七互娱科技有限公司 服务调度方法及装置、服务器、计算机可读存储介质
US11625308B2 (en) 2021-09-14 2023-04-11 Dell Products L.P. Management of active-active configuration using multi-pathing software
US11586356B1 (en) 2021-09-27 2023-02-21 Dell Products L.P. Multi-path layer configured for detection and mitigation of link performance issues in a storage area network
US11656987B2 (en) 2021-10-18 2023-05-23 Dell Products L.P. Dynamic chunk size adjustment for cache-aware load balancing
US11418594B1 (en) 2021-10-20 2022-08-16 Dell Products L.P. Multi-path layer configured to provide link availability information to storage system for load rebalancing
US12001595B2 (en) * 2021-12-03 2024-06-04 Dell Products L.P. End-to-end encryption of logical storage devices in a Linux native multi-pathing environment
US11567669B1 (en) 2021-12-09 2023-01-31 Dell Products L.P. Dynamic latency management of active-active configurations using multi-pathing software
US12001679B2 (en) 2022-03-31 2024-06-04 Dell Products L.P. Storage system configured to collaborate with host device to provide fine-grained throttling of input-output operations
US11620054B1 (en) 2022-04-21 2023-04-04 Dell Products L.P. Proactive monitoring and management of storage system input-output operation limits
US11983432B2 (en) 2022-04-28 2024-05-14 Dell Products L.P. Load sharing of copy workloads in device clusters
US11789624B1 (en) 2022-05-31 2023-10-17 Dell Products L.P. Host device with differentiated alerting for single points of failure in distributed storage systems
US11886711B2 (en) 2022-06-16 2024-01-30 Dell Products L.P. Host-assisted IO service levels utilizing false-positive signaling
US11983429B2 (en) 2022-06-22 2024-05-14 Dell Products L.P. Migration processes utilizing mapping entry timestamps for selection of target logical storage devices
US12001714B2 (en) 2022-08-16 2024-06-04 Dell Products L.P. Host device IO selection using buffer availability information obtained from storage system
US11934659B1 (en) 2022-09-28 2024-03-19 Dell Products L.P. Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system
US11989156B1 (en) 2023-03-06 2024-05-21 Dell Products L.P. Host device conversion of configuration information to an intermediate format to facilitate database transitions

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813270B2 (en) * 2003-05-15 2010-10-12 Alcatel-Lucent Usa Inc. Route precomputation method and apparatus for bandwidth guaranteed traffic
US8560671B1 (en) 2003-10-23 2013-10-15 Netapp, Inc. Systems and methods for path-based management of virtual servers in storage network environments
GB0514541D0 (en) * 2005-07-14 2005-08-24 Ibm Data transfer apparatus and method
EP1922855A1 (en) * 2005-09-08 2008-05-21 International Business Machines Corporation Load distribution in storage area networks
JP4699849B2 (ja) * 2005-09-28 2011-06-15 株式会社日立製作所 アクセスパス管理方法及び装置
US7930583B1 (en) * 2006-09-14 2011-04-19 Symantec Operating Corporation System and method for domain failure analysis of a storage area network
US20080256323A1 (en) * 2007-04-09 2008-10-16 Hewlett-Packard Development Company, L.P. Reconfiguring a Storage Area Network
US7836332B2 (en) 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
EP2248003A1 (en) * 2007-12-31 2010-11-10 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US8392633B2 (en) 2008-06-25 2013-03-05 Hewlett-Packard Development Company, L.P. Scheduling requesters of a shared storage resource
US7912951B2 (en) 2008-10-28 2011-03-22 Vmware, Inc. Quality of service management
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
US8914598B2 (en) 2009-09-24 2014-12-16 Vmware, Inc. Distributed storage resource scheduler and load balancer
US8276148B2 (en) * 2009-12-04 2012-09-25 International Business Machines Corporation Continuous optimization of archive management scheduling by use of integrated content-resource analytic model
US8751638B2 (en) * 2010-07-02 2014-06-10 Futurewei Technologies, Inc. System and method to implement joint server selection and path selection
US9467505B2 (en) 2010-08-27 2016-10-11 Vmware, Inc. Saturation detection and admission control for storage devices
JP5830599B2 (ja) * 2011-10-28 2015-12-09 株式会社日立製作所 計算機システム及びその管理システム

Also Published As

Publication number Publication date
JP2013246821A (ja) 2013-12-09
EP2667569B1 (en) 2019-07-10
JP2017084406A (ja) 2017-05-18
EP2667569A1 (en) 2013-11-27
AU2013205443B2 (en) 2015-05-21
US9336041B2 (en) 2016-05-10
JP6081293B2 (ja) 2017-02-15
US8954575B2 (en) 2015-02-10
US20150242235A1 (en) 2015-08-27
US20130318228A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
JP6199514B2 (ja) ファブリック分散リソースのスケジューリング
US10895984B2 (en) Fabric attached storage
US11895016B2 (en) Methods and apparatus to configure and manage network resources for use in network-based computing
US8380853B2 (en) Method and apparatus for locating candidate data centers for application migration
JP5489601B2 (ja) 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム
US8613085B2 (en) Method and system for traffic management via virtual machine migration
US11669360B2 (en) Seamless virtual standard switch to virtual distributed switch migration for hyper-converged infrastructure
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20150263960A1 (en) Method and apparatus for cloud bursting and cloud balancing of instances across clouds
US10560535B2 (en) System and method for live migration of remote desktop session host sessions without data loss
US11726684B1 (en) Cluster rebalance using user defined rules
US10587529B1 (en) Dynamic selection of router groups to manage computing instances
US11683273B2 (en) Endpoint notification of storage area network congestion
US20240137320A1 (en) Cloud-native workload optimization
US11360798B2 (en) System and method for internal scalable load service in distributed object storage system
AU2015202178A1 (en) Fabric distributed resource scheduling
Soursouri et al. Adaptive resource allocation for software defined networking controllers
TUB BigFoot: Big Data Analytics of Digital Footprints

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170823

R150 Certificate of patent or registration of utility model

Ref document number: 6199514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350