JP4405935B2 - マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 - Google Patents

マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 Download PDF

Info

Publication number
JP4405935B2
JP4405935B2 JP2005092587A JP2005092587A JP4405935B2 JP 4405935 B2 JP4405935 B2 JP 4405935B2 JP 2005092587 A JP2005092587 A JP 2005092587A JP 2005092587 A JP2005092587 A JP 2005092587A JP 4405935 B2 JP4405935 B2 JP 4405935B2
Authority
JP
Japan
Prior art keywords
paths
host computer
operations
path
computer
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 - Lifetime
Application number
JP2005092587A
Other languages
English (en)
Other versions
JP2005259155A (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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of JP2005259155A publication Critical patent/JP2005259155A/ja
Application granted granted Critical
Publication of JP4405935B2 publication Critical patent/JP4405935B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、マルチパス・コンピュータ・システムに関し、更に特定すれば、かかるコンピュータ・システムにおける多数のパス間でワークロードのバランスを取る方法および装置に関する。
多くのコンピュータ・システムは、1つ以上のホスト・コンピュータと、ホスト・コンピュータが通信する1つ以上のシステム資源とを含む。このようなシステム、ホスト・コンピュータと、システム資源(即ち、記憶システム)とを含む。ホスト・コンピュータはシステム資源と通信し、ホスト・コンピュータが用いるデータの格納および読み出しを行なう。
記憶システムは複数の記憶装置を含み、その上にデータを格納する。記憶システムは、複数のディスク・ドライブと、ディスク・ドライブに対するアクセスをそれぞれ制御する複数のディスク・コントローラとを含む。更に、記憶システムは、複数のストレージ・バス・ディレクタを含み、通信バスを通じてホスト・コンピュータとの通信を制御する。記憶システムは、更に、当該記憶システムの処理能力を向上させるキャッシュを含む。即ち、ホスト・コンピュータが記憶システムからの読み取りを実行するとき、記憶システムは、ディスク・ドライブの1つからではなく、キャッシュからの読み出しを行い(データがキャッシュに格納されている場合)、読み取りを一層効率的に実行する。同様に、ホスト・コンピュータが記憶システムに対して書き込みを実行する場合、対応するストレージ・バス・ディレクタはキャッシュに対して書き込みを実行する。その後、ホスト・コンピュータには透過的に、書き込みはディスク・ドライブの内適切な1つに対して、非同期にディステージ(destage)することができる。最後に、記憶システムは、内部バスを含み、これを通じて、ストレージ・バス・ディレクタ、ディスク・コントローラおよびキャッシュが通信を行なう。
ホスト・コンピュータは、プロセッサと、1つ以上のホスト・バス・アダプタとを含む。ホスト・バス・アダプタの各々は、通信バスの対応する1つを通じて、プロセッサおよび記憶システム間の通信を制御する。尚、単一のプロセッサではなく、ホスト・コンピュータは多数のプロセッサを含むことができることは認められよう。各バスは、多数の異なる形式の通信リンクのいずれでも可能であり、ホスト・バス・アダプタおよびストレージ・バス・ディレクタは、それらの間に結合されている通信バスに対して適切なプロトコルを用いて通信するように構成されている。例えば、通信バスの各々は、SCSIバスとして実現することができ、ディレクタおよびアダプタは各々SCSIドライバを含む。
典型的に、多数の通信パスが設けられているが、それは2つの理由の内1つによる。第1に、ホスト・コンピュータおよびシステム資源(例えば、記憶システム)間の通信パスの1つに障害を発生した場合、多数の通信パスによって何らかのフォールト・トレランスが得られる。したがって、コンピュータ・システムの中には、いずれの特定時点においても動作状態にあるのは単一の通信パスのみであるが、一次パスに障害が発生した場合動作状態となる少なくとも1つの追加パスが設けられているコンピュータ・システムがある。
別のコンピュータ・システムでは、システムの処理能力を向上させるために、多数の通信パスが設けられている。このようなシステムは、多数の通信パスは同時に動作し、ホスト・コンピュータとシステム資源(例えば、記憶システム)との間で多数の通信動作を同時に行なうことができ、システムの処理能力が向上する。
多数の通信パスを同時に用いるシステムでは、従来、多数のパス上でのアクティビティのバランスを取るために、単純なラウンド・ロビン技法が用いられてきた。即ち、通信パスの各々を用いて動作が実行され終わるまで、ホスト・コンピュータと資源(例えば、記憶システム)との間の第1動作は、第1通信パス(例えば、パスA)上で実行され、次の動作は次の通信パス(例えば、パスB)を用いて実行される等というように行われる。各通信パスが用いられた時点で、ラウンド・ロビン技法は最初に戻り、次の動作を第1通信パス(例えば、パスA)上で送信することから再び開始する。このように、システムでは、ホスト・コンピュータおよび記憶システム間での一連の連続する通信動作が、次のパス順序、即ち、A,B,C,D,A、B,C,D,...,A,B,C,Dの順にそれぞれ実行されることになる。
本出願人は、従来のラウンド・ロビン技法はシステムの処理能力を最大限高めるものではないことを発見した。したがって、本発明の目的は、マルチパス・コンピュータ・システム内にある多数のパス間においてアクティビティのバランスを取るために改良された方法および装置を提供することである。
本発明の例示としての一実施形態は、ホスト・コンピュータと、システム資源と、ホスト・コンピュータをシステム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法を対象とする。この方法は、ホスト・コンピュータとシステム資源との間の送信のために割り当てられる次のI/O動作に対して、少なくとも2つのパスを通じた送信のため以前に割り当てられ待ち行列となっているI/O動作の状態に基づいて、次のI/O動作の送信のために、少なくとも2つのパスから1つを選択するステップから成る。
本発明の例示としての別の実施形態は、マルチパス・コンピュータ・システムにおいて使用可能なホスト・コンピュータを対象とし、このマルチパス・コンピュータ・システムは、システム資源と、ホスト・コンピュータをシステム資源に結合する複数のパスを含む。ホスト・コンピュータは、ホスト・コンピュータによって開始された入出力(I/O)動作を、システム資源に送信するために複数のパスの内少なくとも2つの間で分散するドライバを備え、このドライバは、ホスト・コンピュータからシステム資源への送信のために割り当てられる次のI/O動作に対して、複数のパスの内少なくとも2つを通じてシステム資源に送信するため以前に割り当てられ待ち行列となっているI/O動作の状態に基づいて、少なくとも2つのパスの内1つを選択する。
本出願人は、従来のマルチパス・システムにおいて用いられているラウンド・ロビン技法は、多数のシステム・パスを効果的に利用しておらず、したがってシステムの処理能力を最大限生かしていないことを発見した。即ち、ラウンド・ロビン・システムにおける基本的な想定は、ホスト・コンピュータとシステム資源(例えば、記憶システム)との間のパスを通じて実行されるいずれのI/O動作も同じ実行時間を有するので、I/O動作が多数のシステム・パス間で均等に分散されている場合、システム・パスの各々は等しく用いられ、これによってシステムの処理能力を最大に高めるということである。しかしながら、本出願人は、この基本的な想定は正しくなく、異なるI/O動作を完了するには異なる時間量を要し、ラウンド・ロビン・バランシング技法を使用すると、多数のシステム・バス上で実行されるアクティビティのバランスを均一に取ることができず、一部のパスはそれらの最大容量で利用されない結果となることを発見した。
前述のことを念頭に入れ、本発明の一態様は、多数のシステム・パス上で実行されるアクティビティのバランスをインテリジェントに取ることによってシステムの処理能力を向上させる方法および装置を対象とする。以下で詳しく論ずるが、本出願人は、マルチパス・コンピュータ・システム内にある多数のパスでは、そのいずれの1つにおいて実行される一連のI/O動作についても、いかに迅速に実行するかということに影響を及ぼす要因は多数あることを発見した。その結果、ラウンド・ロビン技法にしたがってマルチパス・コンピュータ・システムにおける多数のパス間で均等にI/O動作を分散させると、一部のパスに割り当てられたI/O動作は、他のパスよりも迅速に完了するという状況が発生する可能性がある。その結果、I/O動作の比較的長いキューが多数のシステム・パスの一部に生じるが、他のパスは空であるという可能性がある。この例を図1に示す。この場合、3つのI/O動作21〜23がパスAに待ち行列となっており、2つのI/O動作25〜26がパスBに待ち行列となっており、4つのI/O動作27〜30がパスDに待ち行列となっているが、パスCは空である。更に、このマルチ・パス間のI/O動作の分散は、I/O動作が多数のパスに最後に割り当てられた順序には無関係であってもよいことが認められよう。例えば、パスCは、最後に分配されたI/O動作が割り当てられたパスであるにも拘らず、空になっていることもある。
前述のことを念頭に入れ、本発明の一実施形態では、多数のシステム・パスの内、最も短いパスであると判定された1つに各I/O動作を分配するように優先順位を与える。即ち、I/O動作が最も迅速に完了すると予期されるパスが選択される。I/O動作に対するパスの選択は、選択を行なう時点において既に割り当てられ多数のシステム・パスに待ち行列となっているI/O動作のステータスに基づく。本出願人は、個々のI/O動作に対して最も短いパスを選択するために採用可能な多数の異なる基準を考え出した。本発明の種々の実施形態において、これらの基準の各々を別個に用いることができる。あるいは、以下に論ずる本発明の別の実施形態では、これらの要因の各々を組み合わせて、選択基準の各々に重み係数を割り当て、個々のI/O動作に対するパスの選択を最適化する。
本発明の一実施形態では、個々のI/Oに対して最短パスを選択するために用いられる基準は、多数のパスの各々に待ち行列となっているI/O動作の数という評価を含む。本発明のこの実施形態について、図1に示す例を参照しながら説明することができる。この場合、3つのI/O動作がパスAに待ち行列となっており、2つのI/O動作がパスBに待ち行列となっており、パスCは空であり、4つのI/O動作がパスDに待ち行列となっている。多数のパスのいずれに対しても保留となっているI/O動作が最小数であるという基準を用いると、パスCが選択されるのは明らかである。何故なら、これは空であり、これにI/O動作を送れば直ちに処理を進めるからである。コンピュータ・システムがパスA、BおよびDを含む3つのパスのみを採用する場合、この基準を用いると、パスBが選択される。何故なら、これは最小数のI/O動作を採用するからである。
尚、待ち行列となっているI/O動作の数に基づくパスの選択を含む本発明の実施形態は、選択が行われる時点において多数のシステム・パスに待ち行列となっているI/O動作のステータスに基づく、インテリジェントな選択基準を用いたパス選択を全く行なわない従来技術のラウンド・ロビン技法に対して利点があることが認められよう。その結果、ラウンド・ロビン技法を用いると、I/O動作は、保留I/O動作の大きなキューを含むパスに送られる可能性があり、その結果、本発明のこの実施形態による選択基準が採用された場合よりも、I/O動作の完了に長い時間を要することになる。
尚、待ち行列となっているI/O動作の数に基づくパスの選択に関連する本発明の実施形態は、ホスト・コンピュータに単純に実現することができ、更に本発明はいずれの特定の実現態様にも限定されないことは認められよう。例えば、殆どのコンピュータ・システムにおいて、プロセッサは、ホスト・バス・アダプタ間でI/O動作を分散する役割を担うフィルタ・ドライバを含む。フィルタ・ドライバは、単にホスト・バス・アダプタの各々に問い合わせて各々に待ち行列となっているI/O動作の数を判定し、待ち行列となっているI/O動作の数が最も少ないパスに、次のI/O動作を分配することができる。
待ち行列となっているI/O動作の数に基づくパスの選択に関係する本発明の実施形態の基礎となる1つの前提は、各I/O動作は完了に同じ時間量を要するという仮定である。本出願人は、この仮定は精度が高くないことを発見した。ホスト・コンピュータと記憶システムのようなシステム資源との間でI/O動作を完了する時間長に影響を及ぼす基本的な要因は3つある。これら3つの要因は、(1)ホスト・コンピュータとシステム資源との間に特定のパスを通じて接続を確立するために要する調停時間、(2)一旦資源がパスの1つを通じてI/O要求を受信したときに、資源が応答するためのデータ・アクセス時間、および(3)特定のパスを実現するために用いられる通信バス上でホスト・コンピュータとシステム資源との間でデータを送信するための転送時間を含む。
本発明の代替実施形態では、単純に各パス上に待ち行列となっているI/O動作の数に着目する代わりに、各パス毎に待ち行列となっているI/O動作の集合によって転送されるデータ・ブロック数を考慮する。何故なら、これは各パスに待ち行列となっているI/O動作の集合に対するデータ転送時間に影響を及ぼすからである。この点を示すにあたり、図2に2つのパスAおよびBを示す。パスAには1つのI/O動作32が待ち行列となっており、パスBは2つの待ち行列となっているI/O動作33および34を含む。待ち行列となっているI/O動作の数に関係する前述の選択基準のみを用いてパスAおよびB間で選択を行なうと、パスAが選択される。何故なら、こちらの方が含むI/O動作の数が少ないからである。しかしながら、図2に示すように、パスA上に待ち行列となっているI/O動作32は、8つのデータ・ブロック(即ち、ブロック32a〜32h)を含み、一方パスBに待ち行列となっているI/O動作は合計3つのデータ・ブロック(即ち、I/O動作33におけるデータ・ブロック33aおよび33b、ならびにI/O動作34内の1つのデータ・ブロック)のみを含む。したがって、パスAおよびBが同じデータ転送速度を含む場合、パスBに待ち行列となっている2つのI/O動作は、実際には、パスAに待ち行列となっている1つのI/O動作よりも転送時間は短くて済む。したがって、本発明の例示の一実施形態によれば、待ち行列となっているデータ・ブロック数が少ないために、パスBを通じての方がパスAを通じるよりも次のI/O動作が迅速に完了するという予測により、次のI/O動作をパスBに待ち行列にする。
本発明の別の代替実施形態では、各パス毎に用いられる通信バスの特定の形式に関する追加情報を選択基準に追加する。尚、コンピュータ・システムでは、各パスを同じ形式の通信バスで実現する必要がないように、異なる形式の通信バスを用いて種々のパスA〜Dを形成可能であることは認められよう。加えて、種々の通信バスのデータ転送レートおよび調停時間は幅広く変動する可能性があることも認められよう。例えば、ホスト・コンピュータとシステム資源との間のパスA〜Dのためにバスを実現するために使用可能な典型的な通信リンクは、Fibre Channel、Fast WideおよびUltra SCSIを含む。Fibre Channelは、約100メガバイト/秒のデータ転送レート、および約40マイクロ秒の調停時間を含む。Fast Wideは、約20メガバイト/秒のデータ転送レート、および約200マイクロ秒の調停時間を含み、Ultra SCSIは、約40メガバイト/秒のデータ転送レート、および約160マイクロ秒の調停時間を含む。したがって、パスA〜Dの1つのための通信バスを実現するために用いたFibre Channel接続を通じたデータ転送レートは、Fast Wideを用いて実現したパスの別の1つに対するそれよりも5倍も速いことが認められよう。図2に示す例を参照すると、Fibre Channelを用いてパスAを実現し、Fast Wideを用いてパスBを実現する場合、パスAに待ち行列となっている8つのデータ・ブロックに対するデータ転送時間は、パスBに待ち行列となっている3つのデータ・ブロックのそれよりも短い。このように、待ち行列となっているデータ・ブロック数のみに基づいたこれらパス間の選択では、次のI/O動作に可能な最短パスを選択するという目的を達成できない。したがって、本発明の代替実施形態では、通信パスを実現するために用いる特定の技術を選択基準に加える。本発明のこの実施形態では、各パスに待ち行列となっているI/O動作の数を、それによって表されるデータ・ブロック数、ならびにパスの各々に対する調停時間およびデータ転送レートと共に考慮に入れる。これら3つの情報ピースを用いると、待ち行列となっているI/O動作の各々対する調停、およびそれによって表されるデータ・ブロックの転送に最短の合計時間をもたらすパスを選択することができる。
先に論じたように、調停およびデータ転送時間に加えて、特定のパスに待ち行列となっているI/O動作をいかに迅速に完了するかに影響を及ぼす別の要因は、各I/O動作がシステム資源(例えば、記憶システム)内の目標データにアクセスする時間である。したがって、本発明の別の代替実施形態では、多数のシステム・パスに待ち行列となっているI/O動作に対するアクセス時間を、次のI/O動作に最短パスを選択する基準に含ませる。この点について、従来のラウンド・ロビン技法の基礎となる仮定は、各I/O動作は、システム資源に対して同じアクセス時間がかかるということにある。本出願人は、この仮定が常に正しい訳ではなく、多数のパス間でワークロードのバランスを取る場合に考慮に入れないと、マルチパス・コンピュータ・システムの処理能力に重大な影響を及ぼし得ることを発見した。
本発明のロード・バランシング技法を用いることができる例示の一システムは、コンピュータ・システムである。この場合、ホスト・コンピュータに接続されている資源は、複数のディスク・ドライブを含む記憶システムである。先に論じたように、記憶システムは、記憶システムの処理能力を向上するために用いられているキャッシュも含む。即ち、ホスト・コンピュータが記憶システムに対して読み出しまたは書き込みを実行する場合、記憶システムは、キャッシュに対して読み出しまたは書き込みを行なう(キャッシュ内で所望のデータに対するヒットがあった場合)。したがって、読み出しがキャッシュにおいてヒットした場合、読み出しがキャッシュにおいてミスし、ディスク・ドライブの内目標とする1つにアクセスしなければならない場合よりも迅速に実行することができる。同様に、書き込みがキャッシュにおいてミスした場合、キャッシュ内のあるデータを典型的にディスク・ドライブにディステージし、新たなデータをキャッシュに書き込むための余裕を作らなければならず、このため動作が遅くなる。
前述のことから、キャッシュ記憶システムでは、キャッシュにおいてヒットしたI/O動作(読み出しまたは書き込みのいずれか)は、ミスしたものよりも極めて速いデータ・アクセス時間を有することが認められよう。即ち、ホスト・コンピュータの観点から、記憶システムに対するデータ・アクセス時間は、キャッシュにおいてヒットしたI/O動作の方が、ミスした場合よりも遥かに短い。アクセス時間の差は重大となる可能性がある。例えば、キャッシュ記憶システムの一例は、MA,HopkintonのEMC Corporation(EMC社)から入手可能なSYMMETRIX型というディスク・アレイである。SYMMETRIX型ディスク・アレイは、通常、3ミリ秒(ms)ないし12msの間のアクセス時間がかかり、この範囲の下端はキャッシュ・ヒットに対応し、上端はキャッシュ・ミスに対応する。したがって、ホスト・コンピュータから記憶システムに送信されるI/O動作間には、300%のアクセス時間差が生ずる可能性がある。
前述のことを念頭に入れると、特定の資源に対するアクセス時間は全てのI/O動作に対して同一であるとする仮定は常に正しい訳ではないことが認められよう。したがって、本発明の別の代替実施形態では、次のI/O動作にどのパスを利用すべきかの判定に用いられる選択基準は、各パスに待ち行列となっているI/O動作に対する予測データ・アクセス時間の分析を含む。尚、キャッシュ記憶システムの説明は、単に例示の目的で行なうに過ぎず、アクセス時間が動作毎に変動するコンピュータ・システムの資源には多くの種類があるので、資源のアクセス時間の考慮に関する本発明の態様は、この種のコンピュータ・システムにもその他のいずれの種類のコンピュータ・システムにも限定されるのではないことは認められよう。
尚、多数のシステム・パスに待ち行列となっているいずれのI/O動作に対しても、データ・アクセス時間は、次のI/O動作を実行するために最も迅速なパスの選択に重大な影響を及ぼす可能性があることは認められよう。例えば、図3を参照すると、2つのパスAおよびBが示されており、パスAはキャッシュにおいてミスするであろう1つのI/O動作40を含み、パスBは、各々キャッシュにおいてヒットするであろう待ち行列となっている1対のI/O動作41および42を含む。パスBに待ち行列となっているI/O動作の方が多いという事実にも拘らず、パスA上でのミス動作は、パスBに待ち行列となっているI/O動作のいずれよりも、記憶システム内部で動作するために、4倍長くかかるという事実から、ホスト・コンピュータと記憶システムとの間での送信のために待ち行列となる次のI/O動作を最も迅速に実行するためには、パスBがより良い選択となり得る。したがって、本発明の図示した一実施形態によれば、多数のパスに待ち行列となっているI/O動作に対するアクセス時間を、次のI/O動作に対して最短のパスを選択する際に考慮に入れる。
先に論じたように、システム資源にアクセスするときにどのパスを用いるかという選択は、ホスト・コンピュータ(例えば、プロセッサ上で実行するソフトウエアにおいて実現されるフィルタ・ドライバ)によって実行される。アプリケーションによっては、ホスト・コンピュータは待ち行列となっている各I/O動作に対して正確にアクセス時間を決定する十分な情報を有していない場合もある。例えば、例示のシステムでは、システム資源がキャッシュ記憶システムであり、ホスト・コンピュータは、いずれのデータI/O動作についても、キャッシュにおいてヒットするかまたはミスするか、確実に言うことはできない。しかしながら、ホスト・コンピュータは、履歴情報に基づいて、適度に精度が高い何らかの予測を行なうことができる。この点について、ホスト・コンピュータは、記憶システムとのI/O動作の開始(initiation)を制御する。したがって、ホスト・コンピュータは、各I/O動作毎に処理時間を監視することができ、その完了時間に基づいて、動作がキャッシュにおいてヒットしたかまたはミスしたか判定することができる。このように、経時的に個々のアプリケーションについて、キャッシュにおいてヒットするI/O動作の数またはミスするI/O動作の数を予期し、その割合を決定することができる。加えて、本出願人は、殆ど全てのアプリケーションに対して、ホスト・コンピュータから記憶システムへの書き込みは、読み出しよりもキャッシュ内においてヒットする可能性が高いことを発見した。即ち、I/O動作がほぼ等しく読み出しおよび書き込みの間で分散されているアプリケーションでは、書き込みは時間の約99%、キャッシュにおいてヒットすると仮定することができる。逆に、I/O動作が書き込み動作に対してより大きく重み付けされているアプリケーションでは、ヒット・レートは約70%よりも低い)。読み出しに対するヒット数はさほど均一ではなく、アプリケーション毎に一層著しく変動する。また、本出願人は、SYMMETRIX型ディスク・アレイにおけるキャッシュ・ヒットでは、読み取りは書き込みよりも約30%速いことを発見した。何故なら、キャッシュに対する書き込みは、キャッシュ置換方式を実現するために用いられる機構にロックをかけるからである。
前述のことを念頭に入れて、キャッシュ記憶システムを含むコンピュータ・システムにおける使用に適合化した本発明の一実施形態では、次のI/O動作に対する最短パスの選択は、読み出しおよび書き込み間で各パスに対するI/O動作の割合の内訳の考慮、および読み出しおよび書き込み双方に対する特定のアプリケーションに推定したヒット率の考慮を含む。これらの選択基準は、単独で用いることができ、あるいは先に論じた別の選択基準の各々と共に考慮に入れることができる。前述のように、読み出しおよび書き込みの間およびキャッシュ・ヒットおよびミスの間のアクセス時間の差に関してここに含まれる具体的な論述は、単に例示の目的として提示するに過ぎない。何故なら、選択基準においてデータ・アクセス時間を考慮することに関する本発明の態様は、ホスト・コンピュータとキャッシュ記憶システムとの間の多数のパス上でアクティビティのバランスを取ることに限定される訳ではなく、別の種類のマルチパス・コンピュータ・システムにも使用可能であるからである。
本発明の更に別の実施形態では、あるアプリケーションに対する履歴データ・アクセス時間率とI/O動作の最新バッチとの間の不一致に基づいて、選択基準を調節することができる。例えば、アプリケーションが以前より約80%の読み出しヒット率を含み、I/O動作の最新のバッチではキャッシュのヒットがわずか60%である場合、ヒット・レートは80%の履歴マークを越え、最近観察した低い60%レートを補償するという期待から、選択アルゴリズムは、I/O動作の次のバッチに更に大きな重み付けをすることができる。勿論、アプリケーションが、かなりの期間にわたって履歴データ・アクセス時間率から逸脱する場合、ホスト・コンピュータはその履歴データベースを更新し、アプリケーションが動作している態様を一層正確に反映することができる。
前述のことから認められようが、本発明の種々の実施形態では、いくつかの選択基準を共に採用し、次のI/O動作に用いるパスを決定することができる。これは、多数の方法のいずれでも行なうことができ、本発明は、いずれの特定的な実現態様にも限定されない。例えば、ソフトウエア・エンティティを用いて選択機能を実行することができ、多数の判断ステップ(例えば、「if,then,else」ステートメントを用いる)を実装して種々の選択基準のバランスを取ることができる。しかしながら、本発明の例示の一実施形態によれば、選択基準の各々に異なる重み係数を与える重み付けの数式を採用し、ソフトウエアで実現する場合に、パス選択プロセスを一層効率的に行なえるようにすることができる。
重み付けの数式を採用して選択基準を実装する技法の一例は、使用可能なパスの各々に重み係数Wを適用することである。次のI/O動作に対して選択するパスを決定する際、パスの重み係数の各々を考慮し、特定のI/O動作に対して最も低い重み係数を有するパスを選択する。各パス毎の重み係数は、先に論じた選択基準の1つ以上を用いて、多数の方法のいずれでも決定することができる。例えば、各パスの重み係数Wを決定する式の一例は次の通りである。

W=(icoeff × no_of_ios)
+(wcoeff × no_of_write_blocks)
+(rcoeff × no_of_read_blocks)

ここで、icoeffは、I/O動作に伴うオーバーヘッドに関する係数定数、wcoeffは、データ・ブロック毎の書き込み動作に関する係数定数、および、rcoeffは、データ・ブロック毎の読み出し動作に関する係数定数である。
尚、上述のような重み付けの数式を用いることによって、次のI/O動作に対する選択プロセスは計算上簡単になることは認められよう。何故なら、選択プロセスは、使用可能なパス各々の重み係数を比較すれば、最も低い重み係数Wを有するパスを選択できるからである。更に、先に論じた選択基準を、種々の重み係数icoeff、wcoeffおよびrcoeffに対して与えた定数に組み入れ(factor)可能であることも認められよう。例えば、通信パスの各々を実現するために用いられる特定の技術の処理能力に関する選択基準をこれらの係数に組み込むことができ、異なる技術を用いて実現したパス間で係数が異なるようにすることができる。加えて、キャッシュ・システムにおける予測ミスおよびヒット比率に関する要因も、読み取りおよび書き込み係数(それぞれ、rcoeffおよびwcoeff)に組み入れることができる。係数に対する特定の定数は、前述の選択基準のどれをその中に組み込むかだけでなく、特定のマルチパス・コンピュータ・システムの特定の処理能力特性にも依存する。例えば、読み出し対書き込み動作の相対的処理能力、およびキャッシュ・ミスに対して生ずる相対的な不利は、システム毎に大きく異なることは認められよう。したがって、係数に対する特定の値は広範囲に変動する可能性があり、本発明はいずれの特定の係数値にも限定されない。
本発明の別の実施形態では、特定のI/O動作に対する選択基準は、当該I/O動作によって目標とされるシステム資源内の装置(例えば、記憶システムにおける特定のディスク・ドライブ)によって影響を受ける。本出願人は、同じ装置を目標とするI/O動作を多数のパスを通じて拡散させると、実際には、動作を並列に処理するときに通常期待される処理能力向上を達成するどころではなく、システムの処理能力を低下させることを発見して驚愕した。例示のシステムを再度参照すると、ディスク・ドライブの内特定の1つがパスA〜Dの1つを通じたI/O動作に関与する場合、このディスク・ドライブは当該特定のパスに対してロックされ、パスA〜Dの別の1つを通じて同じディスク・ドライブを目標とする他のI/O動作によって割り込まれずに、I/O動作を完了できるようにすることが認められよう。このような割込が生ずると、最初のI/O動作に関するデータの変転が生ずる虞れがある。ロック機能の結果、多数のパスの1つ(例えば、パスB)を通じたI/O動作は、異なるパス(例えば、パスA)を通じて同じディスク・ドライブを目標とする以前にI/O動作の完了まで、ディスク・ドライブの1つにアクセスすることはできない。したがって、パスA〜Dの1つから他に特定のディスク・ドライブに対するロックを移動させるには、時間的な不利が生ずる。この時間的な不利は、少なくとも部分的に、ロックの制御を取得しようとする多数のI/Oパスに対する調停時間に関係する。この調停時間は、ロックの制御を取得しようとするパスの数と共に増大する。本出願人は、ある数の並列動作では、異なるパス間でロックを移動するための時間は、異なるパスを通じた同じディスク・ドライブに対して同時に待ち行列となっている多数のI/O動作によってもたらされるあらゆる利点を相殺し得ることを発見した。したがって、場合によっては、特定の装置を目標にするI/O動作を限られた数のパスに制限すると、たとえこれらのパスが他のI/O動作に用いられていても、効果的な場合もある。SYMMETRIX型ディスク・アレイでは、同じ装置を目標とするI/O動作を送るために用いられるパスの数を2または3つのパスに限定することによって、最適な処理能力が得られることがわかっている。尚、この選択基準は、I/O動作毎に異なる特定の特性(即ち、目標装置)に基づいており、1つのI/O動作に対して選択した最も迅速なパスが、異なるI/O動作に対して選択したパスとは異なる場合もあることは認められよう。
SYMMETRIX型ディスク・アレイは、ディスク・ドライブの1つの内複数の部分をトラック・レベルで異なるパスにロックし、同じ装置内の異なるトラックを異なるパスにロックできるようにする機能を含む。これによって、装置は、同時に異なるパスから多数のI/O動作を受け入れることができ、先に論じたロック遅延の懸念もない。SYMMETRIXのこの機能を用いると、8つよりも多いパスが1つの装置にI/O動作を送るために用いられるまで、同じ装置に向けられた多数のI/O動作に伴う収穫逓減(diminishing return)は発生しない。
特定のパスに割り当てるときにI/O動作に対する目標装置を考慮することの別の利点は、特定の装置(例えば、ディスク・ドライブの特定の1つ)を目標とするI/O動作の処理能力が目標装置自体の処理能力によって生来的に制限されるという事実に関する。したがって、一旦特定の装置を目標とする1組のI/O動作を多数のパス間で分散し、これら多数のパス全体に及ぶ帯域幅が目標装置自体のそれと等しくしても、パスA〜Dによる帯域幅の増大がシステムの処理能力向上をもたらすことは全くない。実際に、このようにすると、特定の目標装置に対するアクセスを待たなければならないI/O動作が増大し、多数のシステム・パスの一部を不必要に塞いでしまう虞れがある。例えば、ディスク・ドライブの特定の1つに対して一連のI/O動作を実行し、パスA〜Dの内2つの使用がディスク・ドライブの帯域幅を得るのに十分である場合、I/O動作を4つのパスA〜D全てに分散しても、I/O動作の一部は、他が完了するまで、待たなければならない。これでは非効率である。何故なら、同じ装置を目標とするI/O動作の全てをパスの2つ(例えば、パスAおよびB)に交互に待ち行列にすれば、他の2つのパスは異なる目標ディスク・ドライブに宛てられたI/O動作のために使用することができるからである。
前述のことを念頭に入れ、本発明の一実施形態は、特定のI/O動作を実行するために最も迅速なパスを選択する際、当該I/O動作に対する目標装置を考慮に入れている。尚、本発明のこの機能は、システム資源が先に明記したような記憶システムであるコンピュータ・システムとの使用に限定されないことは認められよう。むしろ、コンピュータ・システムは、本発明のこの態様を採用可能なシステムの単なる一例に過ぎず、特定のI/O動作に対する目標装置を考慮に入れることは、他の種類のコンピュータ・システムにおいても有利であり得ることは理解されよう。先に論じた多数の別の選択基準の場合と同様、次のI/O動作に対する目標装置を考慮することに関連する本発明の実施形態は、単独でも、または先に論じた他の選択基準との組み合わせでも使用可能である。
特定のI/O動作に対する目標装置を考慮に入れる本発明の実施形態は、多数の方法のいずれでも実現することができ、本発明はいずれの特定の実現技術にも限定されない。本発明の例示の一実施形態によれば、特定の目標装置に関する選択基準は、パスの各々に適用される前述の重み係数Wと共に実施する。即ち、各目標装置には、いずれの一時点においても目標装置に保留中のI/O動作を供給するために使用すべきパスの数について限度を規定するスレシホルド数を設けることができる。この点について、保留中のI/O動作を宛てる目標装置の各々を識別する情報、およびこれらのI/O動作を送信するために選択されたパスを識別する情報を格納することができる。あるパスが次のI/O動作に選択された場合、前述の重み係数Wを用いて、重み係数が最も低いパスを選択することができる。その後、次のI/O動作の、選択したパスを通じての送信が、目標装置のスレシホルドを超過するか否かについて判定を行なうことができる。超過しない場合、このパスを選択する。重み係数Wが最も低いパスでは、目標装置にI/O動作を供給するために用いられるパスの数がスレシホルド数を超過する場合、次に最も低い重み係数を有するパスを選択する。このように、次のI/O動作に選択するパスは、目標装置に対するスレシホルド数に違反しないパスの中で、最も低い重み係数Wを有するパスとなる。
本発明の別の実施形態では、関連するアプリケーションの処理能力に対して重大なある種のI/O動作を優先する。即ち、従来のラウンド・ロビン技法は、資源をできるだけビジーに保持することによって、システム資源(例えば、記憶システム)の処理能力を最大限高めようとする。本出願人は、ホスト・コンピュータ上で実行するアプリケーションによっては、あるI/O動作を優先することにより、当該アプリケーションの処理能力を最大限高められることを発見した。したがって、ある動作を優先することは、システム資源の稼働率(business)を最大限高めることと同等またはそれ以上に重要であり得る。
動作を優先させることができる態様の一例は、電話の注文を受信する小売店が走らせる注文入力アプリケーションに関する。小売店にとって、目標はそのオペレータができるだけ素早く注文を取ることができ、これによって特定の期間内に小売店が処理できる注文数を最大限増やすことである。このような注文入力アプリケーションは、典型的に、コンピュータ・システム上で走り、注文情報を、3つの構成要素、即ち、テーブル、インデックスおよびログを含むデータベースに格納する。注文入力アプリケーション用データベースの処理能力は、ログ更新の処理能力のみに基づく。即ち、データベースは、最初に、ログへのトランザクションをコミット(commit)し、次いでテーブルおよびインデックスを更新する。データベースの処理能力の観点からは、テーブルおよびインデックスが更新されていなくても、一旦ログが更新されたなら、トランザクションは完了する。したがって、本発明の一実施形態によれば、注文入力アプリケーションでは、全てのログ更新を優先する。これの一例を図4に示す。この場合、3つのI/O動作50〜52がパスA上に待ち行列となっており、テーブル空間の更新に関係する。ログ更新を表す1つのI/O動作53がパスBに待ち行列となっており、ログ更新を表す1つのI/O動作54がパスCに待ち行列となっており、パスDは空である。次のI/O動作がログ更新である場合、この更新をパスDに割り当て、これをできるだけ素早く完了することが好ましい。しかしながら、次のI/O動作がテーブル空間の更新である場合、そのI/O動作をパスAに割り当て、パスDを今後のログ更新のために開けておくこともできる。したがって、テーブル空間の更新を表すI/O動作では、あるパスにI/O動作を割り当てた結果最も素早く完了しない場合もあるが、これによってアプリケーション全体としての処理能力は最大となる。
尚、あるI/O動作を優先することに関係する本発明の実施形態は、先に論じた注文入力アプリケーションに限定される訳でなく、あるI/O動作が当該アプリケーション全体の処理能力にとって他よりも重大であるあらゆるアプリケーションとでも使用可能であることは認められよう。加えて、異なる種類のI/O動作に異なるレベルの優先順位を与えることができ、各々、多数のパスA〜Dの適切な1つを選択するプロセスにおいて考慮した異なる重み係数を受けることも認められよう。この選択基準は、個別に、または先に論じた1つ以上の選択基準と組み合わせて用いることも可能である。
前述の実施形態の場合と同様、優先順位方式を用いてある種のI/O動作を優先させるには、多数の方法のいずれでも実現可能であり、本発明はいずれの特定の実現態様にも限定されない。尚、多くのコンピュータ・システムでは、ある種のI/O動作は特定の目標装置(例えば、論理ボリューム)に宛てられることは認められよう。これは、本発明の例示の一実施形態による前述の優先順位方式を実現する際に考慮される。即ち、優先順位方式は、関連するアプリケーションの処理能力にとって重要であるI/O動作の目標であることがわかっている、ある目標装置を優先することによって、実現することができる。しかしながら、本発明はこの観点に限定される訳ではなく、本発明の優先化の態様は、I/O動作が宛てられる目標装置ではなく、優先順位を直接あるI/O動作に割り当てる他の方法でも実現可能であることは認められよう。
本発明の一実施形態では、優先順位方式は、前述の選択基準と共に実現することができ、その際、重み係数Wを計算するために用いる式を次のように修正する。

W=(icoeff × no_of_ios)
+(wcoeff × no_of_wirte_blocks)
+(rcoeff × no_of_read_blocks)
+(PW−(pcoeff × priority
× no_of_ios_of_this_device))

重み係数Wのための修正した式の基礎となる前提は、優先順位が高い目標装置に宛てられるI/O動作は、これらが送信されるパス上に人工的に高い負荷を置くように思わせることによって、その後に他の優先順位が低い目標装置に宛てられるI/O動作によって、これらのパスが選択されないようにするということにある。その結果、選択されたパス上の実際の負荷は減少し、これによって優先順位が高い目標装置に宛てられる追加のI/O動作の処理促進を容易にする。この点において、特定のパスに対する重み係数Wは、パスを選択するときに重み係数を試験する次のI/O動作全てによって、同じ値であると認められるのではない。むしろ、目標装置Nに宛てられる次のI/O動作に対する特定のパスの負荷を評価する場合、N以外の目標装置に宛てられるI/O動作によって当該パスに置かれる人工的な優先順位負荷を考慮するが、同じ目標装置Nに宛てられるI/O動作によってパス上に置かれる優先順位重みは考慮されない。
前述のことは、先に明記した式に示されており、「PW」は、全ての目標装置に宛てられるI/O動作によってパスに置かれる全優先順位重みに対応し、「pcoeff」は、特定の目標装置に関連する優先順位値に与えられるべき重みに算入される優先順位係数であり、「priority」は、重み係数を評価する次のI/O動作の主題である目標装置に割り当てられる優先順位値であり、「no_of_ios_of_this_device」は、重み係数Wを評価している次のI/O動作と同じ目標装置Nに宛てられる、考慮対象のパス上で保留中のI/O動作の数である。したがって、項PWは、全ての優先されるI/O動作によってパス上に置かれた全人工的負荷の総和を表し、先に明記した式においてそれから減算される挿入(parenthetical)は、重み係数Wを評価する次のI/O動作の主題である目標装置Nによってのみパスに置かれた人工的負荷の部分に関係する。
前述のことから認められようが、特定のパス上にいくつかの高優先順位I/O動作が保留となっている場合、当該パスに対する値PWは高くなる。優先順位が低い目標装置に宛てられる次のI/O動作に対して、先に明記した式において値PWに続く挿入は低い(例えば0)ので、高いPW値から減算されるのは、たとえあるとしても僅かである。したがって、PW値が大きいと、優先順位が低い目標装置に宛てられる次のI/O動作によって認められる重み係数Wは大きくなる。その結果、次のI/O動作が他のパス上でより低い重み係数Wを見つけ、したがって優先順位が低い装置に宛てられた次のI/O動作を送信するために異なるパスを選択する可能性が高くなる。逆に、次のI/O動作が、特定のパスに対して保留中になっているI/O動作と同じ優先順位が高い目標装置に宛てられている場合、先に明記した式においてPWから減算される挿入値は大きくなり、全PW値と等しくなる場合もある。その結果、重み係数Wに加算される人工的な負荷(優先度が高いI/O動作によって認められる)は、小さいかまたは存在しない。優先順位が低い装置に宛てられたI/O動作は優先順位が高いI/O動作によってその上に置かれる人工的な負荷によって、このパスから離されるので、パス上の実際の負荷も小さくなる結果、優先順位が高い目標装置に宛てられる次のI/O動作が、重み係数Wを小さいと認める可能性が高い。その結果、次のI/O動作は、この低いトラフィック・パスに送られ、迅速に処理される。
前述のように、本発明の優先順位付けの態様は、多数の方法で実現可能であり、本発明は前述の態様で人工的負荷を与えることに限定される訳ではないことは認められよう。
本発明の一実施形態では、多数のパス間でアクティビティのバランスを取るために用いられる選択基準は、ホスト・コンピュータの管理者によって選択することができる。この選択は、先に論じた異なる選択基準のいずれからでも選択可能であり、ラウンド・ロビン、最少動作のパス選択、最少データ・ブロックのパス選択、または最適化ルーチンを含み、本発明の前述の機能の各々に重み付けし、最適な選択アルゴリズムを達成するという利点がある。先に論じたように、本発明の種々の態様は、その使用や、このような最適化した様式に限定される訳ではなく、更に、これらの選択基準を共に重み付けした場合、本発明はいずれの特定の重み係数にも限定されないことも認められよう。
尚、以前に割り当てられ送信のために待ち行列となっているI/O動作の状態に基づいてパスを選択することに関する本発明の前述の実施形態の各々は、単純にホスト・コンピュータにおいて実現することができ、更に、本発明はいかなる特定の実現の態様にも限定されないことは認められよう。例えば、殆どのコンピュータ・システムにおいて、プロセッサは、ホスト・バス・アダプタ間でI/O動作を分散する役割を担うフィルタ・ドライバを含む。フィルタ・ドライバは、単にホスト・バス・アダプタの各々に問い合わせて、各々に待ち行列となっているI/O動作のステータスを判定することができ、前述の選択基準のいずれかを満たすパスに次のI/O動作を分配することができる。フィルタ・ドライバは、ソフトウエア・プログラムとして実現し、コンピュータ読み取り可能媒体上に格納し、プロセッサ上で実行することができる。この点について、本発明の一実施態様は、コンピュータ・プログラムをエンコードされ、プロセッサ上で実行されると、本発明の先に論じた機能を実行するコンピュータ読み取り可能媒体(例えば、コンピュータ・メモリ、フロッピ・ディスク、コンパクト・ディスク、テープ等)から成ることが認められよう。コンピュータ読み取り可能媒体は、輸送可能であり、その上に格納されているプログラムをコンピュータ・システム上にロードし、先に論じた本発明の態様を実現することができる。加えて、実行すると先に論じた機能を実行するコンピュータ・プログラムに対する言及は、ホスト・コンピュータ上のアプリケーション空間において走るアプリケーション・プログラムに限定される訳ではないことも認められよう。むしろ、コンピュータ・プログラムという用語は、ここでは、先に論じた本発明の態様を実現するためにプロセッサをプログラムする際に使用可能なあらゆる種類のコンピュータ・コード(例えば、ソフトウエアまたはマイクロコード)に言及する、汎用的な意味で用いられている。あるいは、フィルタ・ドライバに、それ自体の専用プロセッサを設け、ソフトウエア・プログラムを実行して前述のパス選択機能を実行することも可能であり、あるいは専用ハードウエアを設けてこの機能を実行することも可能である。
前述の本発明の実施形態の各々では、本発明の態様は、ホスト・コンピュータと1つの記憶システムとの間にある多数のパス間でワークロードのバランスを取るために用いられている。尚、コンピュータ・システムの中には、2つ以上の記憶システムに結合されたホスト・コンピュータで実現され、ホスト・コンピュータと記憶システムの各々との間に1つまたは多数のパスが延びているという構成も可能であることは認められよう。尚、本発明の前述の態様は、異なる記憶システムに至るパス間においてワークロードのバランスを取るためにも用いられることも認められよう。このようなコンピュータ・システムは、METHOD AND APPARATUS FOR MANAGING DATA STORED IN A STORAGE SYSTEM TO ACHIEVE IMPROVED SYSTEM PERFOMANCE(システムの処理能力向上を図るために記憶システムに格納されているデータを管理する方法および装置)と題し、1998年12月30日に出願され、少なくとも一人の出願人を本願と共有する関連出願に記載されている。その内容は、この言及により本願にも含まれるものとする。このように、ホスト・コンピュータおよびシステム資源を含むマルチパス・コンピュータ・システムにおける少なくとも2つのパス間でI/O動作を分散する方法に関する本発明の前述の態様は、システム資源が複数の記憶システムを含み、各々が少なくとも1つの通信パスを通じてホスト・コンピュータに結合されている場合に実現することができる。
先に論じたように、本発明のいくつかの実施形態は、次のI/O動作の送信のためにパスを選択するときに、既に割り当てられているI/O動作に関する情報を用いる。前述の実施形態の各々では、以前に割り当てたI/O動作に関して用いられる情報は、ホスト・コンピュータによってのみ提供された。この点について、ホスト・コンピュータは、記憶システムに送信するあらゆるI/O動作に関係する情報を収集し(例えば、フィルタ・ドライバに)格納することができる。各I/O動作毎にホスト・コンピュータに知られている情報の種類の例は、以下を含む。(1)I/O動作の種類(例えば、読み出しまたは書き込み)、(2)I/O動作を発したアプリケーション、(3)I/O動作のサイズ、(4)I/O動作が関係するアプリケーション空間における論理オブジェクト(例えば、ファイル名)、(5)I/O動作が目標とする特定の論理ボリューム、(6)I/O動作を送信するために用いられる特定の通信パス、(7)あらゆる特定のパスに待ち行列となっているI/O動作の数、(8)特定のパスにI/O動作を送る異なるプロセスまたはアプリケーションの数、(9)特定のパスに送信されるI/O動作の種類およびサイズ、および(10)特定の種類のI/O動作、特定のパス、および特定の目標論理ボリュームに対する平均応答時間。
ホスト・コンピュータの観点から収集することができる統計および情報は非常に有効であり、前述のように用いることができて有利であるが、記憶システムがインテリジェント記憶システムである場合、ホスト・コンピュータの視野では、コンピュータ・システムの処理能力に関する全体像が解明されないことが認められよう。インテリジェント記憶システムは、ホスト・コンピュータを介してアクセス可能なデータが最終的に格納される位置を制御する。したがって、あらゆるデータ・ブロックが実際に格納される正確な物理的位置(即ち、ディスク・ドライブの内のどれ、そして当該ディスク・ドライブ上の位置)は、ホスト・コンピュータには透過的である。この点に関して、コンピュータ・システムは、典型的に、図5に示すように、複数のレイヤを含む。
レイヤは、ホスト・コンピュータ上に常駐し、アプリケーションによって用いられるデータ・オブジェクト(例えば、ファイル)を参照するアプリケーション・レイヤ61を含む。加えて、ホスト・コンピュータは、アプリケーション・レイヤ61によって指定された各データ・オブジェクトを、ホスト・コンピュータが、データ・オブジェクトが格納されている実際の物理記憶装置に対応すると認める特定の論理ボリュームにマップするファイル・システムおよび/または論理ボリューム・マネージャ・レイヤ63も含む。したがって、コンピュータ・システムが、インテリジェンスの全くない記憶システムを含む場合、ファイル・システム/LVMレイヤ63によって指定される論理ボリュームは、特定の物理装置、およびデータ・オブジェクトを格納する特定の記憶位置を指定する。最後に、コンピュータ・システムは、更に記憶システム・マッピング・レイヤ65を含む。これは、記憶システム上に常駐し、レイヤ63から与えられる論理ボリュームから、ディスク・ドライブの少なくとも1つ、および論理ボリュームが格納されている当該ディスク・ドライブ上の物理位置を含む、実際の物理位置にマップする。論理ボリュームと物理ディスク・ドライブとの間のマッピングは1:1でなくてもよい。何故なら、1つの論理ボリュームを多数の物理ディスク・ドライブ全体に分割することができ、あるいは多数の論理ボリュームを同じ物理ディスク・ドライブ上に格納することができるからである。
尚、図2に示すようなインテリジェント記憶システムは、ホスト・コンピュータから記憶システムに送信されるI/O動作に関する統計のログを作成する能力も有することは認められよう。記憶システム内にログすることができる形式の情報の例は、(1)各I/O動作を送ったパス、(2)I/O動作によって目標とされた実際の物理記憶装置(例えば、ディスク・ドライブ)、(3)I/O動作の種類(例えば、読み出しまたは書き込み)、および(4)I/O動作がキャッシュ内でヒットしたかまたはミスしたかを含む。尚、この情報の一部はホスト・コンピュータには入手できないことは認められよう。例えば、ホスト・コンピュータは、目標とされた論理ボリュームが格納されている実際の物理記憶装置に関する情報を有していない。同様に、ホスト・コンピュータが、記憶システムの応答時間に基づいて、特定のI/O動作がキャッシュ内においてヒットしたかまたはミスしたかに関して、学習し予測することはできるが、ヒットまたはミスのどちらが発生したか確実に知っているのは、記憶システムだけである。
記憶システムによって収集可能な統計は、エリアによっては、ホスト・コンピュータによって収集可能な統計よりも詳細であるが、これらも他のエリアでは不足している。この点に関して、記憶システムは、典型的に、アプリケーション・レイヤ61(図5)においてI/O動作のソースに関する情報を有していないことが認められよう。したがって、記憶システムは、それ自体とホスト・コンピュータとの間におけるI/O動作の生の処理能力を分析するのに有用な多数の統計を蓄積することができるが、記憶システムは、通常、ホスト・コンピュータ上で実行するアプリケーションの処理能力に対する、あるI/O動作の影響を直接判定することはできない。
前述のことから認められるように、ホスト・コンピュータまたは記憶システムのみに関する処理能力統計を維持しても、ホスト・コンピュータ上で走るアプリケーションを実行する際に、コンピュータ・システム全体の処理能力を分析するのに有効な完全な処理能力の像は得られない。したがって、本発明の例示の一実施形態によれば、ホスト・コンピュータに入手可能な情報を、記憶システムに入手可能な情報と組み合わせ、コンピュータ・システムの処理能力に関して完成度を高めた像を提供する1組の情報を作成するロギング・ファシリティ(logging facility)を設けている。これは、多数の方法のいずれでも行なうことができる。例えば、本発明の一実施形態では、I/O動作を記憶システムに送ることに加えて、ホスト・コンピュータは、記憶システム内のロギング・ファシリティに格納するために、I/O動作に関する情報も送信する。この情報およびI/O動作間の相関は、各I/O動作およびその対応する情報を一意に識別するI/Oタグを与えることによる等、多数の方法のいずれでも得ることができる。次に、ホスト・コンピュータによって提供される情報は、記憶システムがそれ自体でI/O動作に関して発生可能な追加情報とインターリーブすることによって、I/O動作に関する終端間(end−to−end)の統計情報全てを提供することができる。次いで、統計ログを発生し、記憶システムに格納することができ、多数の方法のいずれでも用いることができる。あるいは、本発明のこの態様は、記憶システムからホスト・コンピュータに、各I/O動作に関する情報を送信することによって、逆に実現することも可能であることが認められよう。しかしながら、この実現の方が好ましくない。何故なら、記憶システムにおける方が大きな記憶空間が使用可能であり、相当なサイズに成長する可能性がある統計ログを格納する候補としては、こちらの方がよいからである。
統計ログの作成に関する本発明の態様は、多数の方法のいずれでも使用可能である。本発明の一実施形態では、このようなログを単純に機械的な分析に用い、コンピュータ・システム全体の処理能力に関して、従来のロギング技法を用いて得ることができるよりも良い像をシステム管理者またはシステム開発者に与えることができる。従来のロギング技法では、前述のような全体像を与えることはできない。例えば、本発明の一態様に関連付けて先に論じたように、アプリケーションによっては、あるI/O動作を優先することの方が、記憶システムまたはその他のシステム資源の稼働率を最大限高めることよりも重要である可能性がある。したがって、資源の処理能力のみに的を絞った従来のロギング技法では、限られた使用が可能であるに過ぎず、ホスト・コンピュータ上で走るアプリケーションの処理能力に関する有意な情報を提供することができないために、誤った方向に導く可能性さえある。
ロギング・サブシステムの別の用法として、前述の本発明の負荷のバランスを取る態様を実施する際の補助があげられる。ホスト・コンピュータ上で走るアプリケーションの振る舞いのより良い全体像を与えることによって、本発明のロギング・サブシステムは、I/O動作を多数のパス間で分散しアプリケーションの処理能力を最大限高める場合に、一層インテリジェントな判断を行なうことを可能にする。例えば、ロギング・サブシステムは、アプリケーション全体の処理能力にとって重要であり、前述のように優先すべき特定のI/O動作を識別する際に役立つことができる。勿論、ロギング・サブシステムのその他の用法も、前述の本発明の負荷のバランスを取る態様によって可能であることは明白である。したがって、機械的な処理能力の分析に対して統計的情報を提供することに加えて、本発明のロギング・サブシステムの態様は、ホスト・コンピュータおよび記憶サブシステムによって資源として用いることができ、その上で走っている意思決定プロセス(例えば、本発明の負荷のバランスを取る態様)が、より良いシステム処理能力を達成するために判断を下す際に、ロギング・サブシステム内に含まれる情報を用いることができるようにする。このようなロギング・サブシステムの使用は、システム管理者の仲介なく、自動的に実行することができる。
先に論じた図示の例では、多数のパス間でワークロードのバランスを取ることに関する本発明の実施形態について、ホスト・コンピュータとインテリジェント・ディスク・ドライブ・アレイ記憶システムとの間に延びる多数のパスに関連付けて説明した。しかしながら、本発明はこの点に限定される訳ではなく、本発明の負荷のバランスを取る態様は、他の種類の記憶システム(例えば、非インテリジェント記憶システム、テープ・ドライブ記憶システム等)、更に他の種類のコンピュータ・システム資源に対してワークロードのバランスを取ることに関連して用いることも可能であることは認められよう。この点について、本発明の負荷のバランスを取る態様は、コンピュータ・システムのいずれの2構成要素間にある多数のパス上でもワークロードのバランスを取るために用いることができる。
以上、本発明の実施形態をいくつか詳細に説明したが、種々の変更や改良も当業者には容易に想起されよう。このような変更や改良は、本発明の精神および範囲内に該当するものと見なす。したがって、前述の説明は一例に過ぎず、限定として意図するのではない。本発明は、以下の特許請求の範囲およびその均等物によってのみ定義されることとする。
各々異なる数の待ち行列入出力(I/O)動作を有する、複数のパスの構成図である。 異なる数のデータ・ブロックを有する待ち行列I/O動作を含む1対のパスの構成図である。 キャッシュ・システムにおいてミスまたはヒットとなるI/O動作を含む1対のパスの構成図である。 ある種のI/O動作を優先するマルチ・パス・システムの構成図である。 公知の計算機システム内に存在する多数のマッピング・レイヤの構成図である。

Claims (12)

  1. ホスト・コンピュータと、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法であって、
    (A)前記ホスト・コンピュータと前記システム資源との間の伝送のために割り当てられる次のI/O動作に対して、前記少なくとも2つのパスを通じた伝送のため以前に割り当てられ待ち行列となっているI/O動作に基づいて、前記次のI/O動作の伝送のために、前記少なくとも2つのパスから1つを選択するステップから成り、
    前記I/O動作の各々は、前記システム資源における特定の目標装置に宛てられており、前記ステップ(A)は、伝送のため以前に割り当てられ待ち行列となっているI/O動作のみならず前記次のI/O動作の目標装置自体に基づいて、前記少なくとも2つのパスの内前記1つを選択するステップを含む方法。
  2. 請求項1記載の方法において、前記次のI/O動作の目標装置自体に基づいて、前記少なくとも2つのパスの内前記1つを選択する前記ステップは、前記少なくとも2つのパスに対して以前に割り当てられ待ち行列となっているI/O動作が前記次のI/O動作と同じ目標装置に宛てられているか否か判定するステップを含む方法。
  3. 請求項1記載の方法において、前記次のI/O動作の目標装置自体に基づいて前記少なくとも2つのパスの内前記1つを選択する前記ステップは、単一の目標装置に宛てられた複数のI/O動作同時に待ち行列となる少なくとも2つのパス制限するステップを含む方法。
  4. ホスト・コンピュータと、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法であって、
    (A)前記ホスト・コンピュータと前記システム資源との間の伝送のために割り当てられる次のI/O動作に対して、前記少なくとも2つのパスを通じた伝送のため以前に割り当てられ待ち行列となっているI/O動作に基づいて、前記次のI/O動作の伝送のために、前記少なくとも2つのパスから1つを選択するステップから成り、前記I/O動作は、前記ホスト・コンピュータ上で実行されるアプリケーション・プログラム・レベルにおける入出力動作であり、前記ステップ(A)は、伝送のため以前に割り当てられ待ち行列となっているI/O動作のみならず前記次のI/O動作に対する優先順位評定に基づいて、前記少なくとも2つのパスの内前記1つを選択するステップを含み、前記優先順位評定は、前記次のI/O動作が前記アプリケーション・プログラムの処理能力に与える影響に関係している、方法。
  5. 請求項4記載の方法において、前記次のI/O動作に対する優先順位評定に基づいて、前記少なくとも2つのパスの内前記1つを選択する前記ステップは、
    前記次のI/O動作が前記アプリケーション・プログラムの処理能力に対して重大な影響を与えものである場合、前記少なくとも2つのパスから前記次のI/O動作を実行する時間が最も短いパスであると予期される前記1つを選択するステップを含む方法。
  6. 請求項5記載の方法において、前記次のI/O動作に対する優先順位評定に基づいて、前記少なくとも2つのパスの内前記1つを選択する前記ステップは、
    前記次のI/O動作が前記アプリケーション・プログラムの処理能力に対して重大な影響を与えないものである場合、前記少なくとも2つのパスから前記次のI/O動作を実行する時間が最も短いパスでないと予期される前記1つを選択するステップを含む方法。
  7. マルチパス・コンピュータ・システムにおいて使用可能なホスト・コンピュータであって、前記マルチパス・コンピュータ・システムは、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスを含み、前記ホスト・コンピュータは、
    前記ホスト・コンピュータによって開始された入出力(I/O)動作を、前記システム資源に伝送するために前記複数のパスの内少なくとも2つの間で分散するドライバを備え、該ドライバは、前記ホスト・コンピュータから前記システム資源への伝送のために割り当てられる次のI/O動作に対して、前記複数のパスの内前記少なくとも2つを通じて前記システム資源に伝送するため以前に割り当てられ待ち行列となっているI/O動作に基づいて、前記少なくとも2つのパスの内1つを選択し、
    前記I/O動作の各々は、前記システム資源における特定の目標装置に宛てられており、前記ドライバは、前記次のI/O動作の目標装置自体に基づいて、前記複数のパスの前記少なくとも2つの内前記1つを選択する、
    ホスト・コンピュータ。
  8. 請求項7記載のホスト・コンピュータにおいて、前記ドライバは、前記複数のパスの内前記少なくとも2つに対して以前に割り当てられ待ち行列となっているI/O動作が前記次のI/O動作と同じ目標装置に宛てられているか否か判定するホスト・コンピュータ。
  9. 請求項7記載のホスト・コンピュータにおいて、前記ドライバは、単一の目標装置に宛てられた複数のI/O動作同時に待ち行列となる、前記複数のパスの内少なくとも2つのパス制限するホスト・コンピュータ。
  10. マルチパス・コンピュータ・システムにおいて使用可能なホスト・コンピュータであって、前記マルチパス・コンピュータ・システムは、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスを含み、前記ホスト・コンピュータは、
    前記ホスト・コンピュータによって開始された入出力(I/O)動作を、前記システム資源に伝送するために前記複数のパスの内少なくとも2つの間で分散するドライバを備え、該ドライバは、前記ホスト・コンピュータから前記システム資源への伝送のために割り当てられる次のI/O動作に対して、前記複数のパスの内前記少なくとも2つを通じて前記システム資源に伝送するため以前に割り当てられ待ち行列となっているI/O動作に基づいて、前記少なくとも2つのパスの内1つを選択し、
    前記I/O動作は、前記ホスト・コンピュータ上で実行されるアプリケーション・プログラム・レベルにおける入出力動作であり、前記ドライバは、伝送のため以前に割り当てられ待ち行列となっているI/O動作のみならず前記次のI/O動作に対する優先順位評定に基づいて、前記複数のパスの前記少なくとも2つの内前記1つを選択し、前記優先順位評定は、前記次のI/O動作が前記アプリケーション・プログラムの処理能力に与える影響に関係している
    ホスト・コンピュータ。
  11. 請求項10記載のホスト・コンピュータにおいて、前記次のI/O動作が前記アプリケーション・プログラムの処理能力に対して重大な影響を与えものである場合、前記ドライバは、前記複数のパスの内前記少なくとも2つから前記次のI/O動作を実行する時間が最も短いパスであると予期される前記1つを選択するホスト・コンピュータ。
  12. 請求項11記載のホスト・コンピュータにおいて、前記次のI/O動作が前記アプリケーション・プログラムの処理能力に対して重大な影響を与えないものである場合、前記ドライバは、前記複数のパスの内前記少なくとも2つから次のI/O動作を実行する時間が最も短いパスでないと予期される前記1つを選択するホスト・コンピュータ。
JP2005092587A 1998-12-31 2005-03-28 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 Expired - Lifetime JP4405935B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/223,998 US6434637B1 (en) 1998-12-31 1998-12-31 Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000591507A Division JP2002533831A (ja) 1998-12-31 1999-12-29 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置

Publications (2)

Publication Number Publication Date
JP2005259155A JP2005259155A (ja) 2005-09-22
JP4405935B2 true JP4405935B2 (ja) 2010-01-27

Family

ID=22838863

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000591507A Pending JP2002533831A (ja) 1998-12-31 1999-12-29 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置
JP2005092587A Expired - Lifetime JP4405935B2 (ja) 1998-12-31 2005-03-28 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置
JP2006210923A Pending JP2006351030A (ja) 1998-12-31 2006-08-02 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000591507A Pending JP2002533831A (ja) 1998-12-31 1999-12-29 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006210923A Pending JP2006351030A (ja) 1998-12-31 2006-08-02 マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置

Country Status (5)

Country Link
US (2) US6434637B1 (ja)
JP (3) JP2002533831A (ja)
DE (1) DE19983857T1 (ja)
GB (1) GB2359170B (ja)
WO (1) WO2000039679A2 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118387B2 (en) * 1997-11-03 2015-08-25 Qualcomm Incorporated Pilot reference transmission for a wireless communication system
US7184426B2 (en) 2002-12-12 2007-02-27 Qualcomm, Incorporated Method and apparatus for burst pilot for a time division multiplex system
US8064409B1 (en) 1999-08-25 2011-11-22 Qualcomm Incorporated Method and apparatus using a multi-carrier forward link in a wireless communication system
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US7568052B1 (en) * 1999-09-28 2009-07-28 International Business Machines Corporation Method, system and program products for managing I/O configurations of a computing environment
US6621804B1 (en) 1999-10-07 2003-09-16 Qualcomm Incorporated Method and apparatus for predicting favored supplemental channel transmission slots using transmission power measurements of a fundamental channel
US6754897B1 (en) * 1999-11-12 2004-06-22 Emc Corporation Operation prioritization and selection in a probability-based job scheduler
US6665740B1 (en) 1999-11-12 2003-12-16 Emc Corporation Logical volume selection in a probability-based job scheduler
US6728770B1 (en) * 1999-12-03 2004-04-27 Storage Technology Corporation Method and apparatus for workload balancing along multiple communication paths to a plurality of devices
US6775720B1 (en) * 2000-04-04 2004-08-10 Emc Corporation Method and system for configuring a mass storage system for measuring system performance
US6587893B1 (en) * 2000-04-28 2003-07-01 Hewlett-Packard Development Company, L.P. Method and apparatus to determine when all outstanding fetches are complete
US6850997B1 (en) * 2000-09-27 2005-02-01 International Business Machines Corporation System, method, and program for determining the availability of paths to a device
US6751683B1 (en) * 2000-09-29 2004-06-15 International Business Machines Corporation Method, system and program products for projecting the impact of configuration changes on controllers
US6973098B1 (en) 2000-10-25 2005-12-06 Qualcomm, Incorporated Method and apparatus for determining a data rate in a high rate packet data wireless communications system
US7068683B1 (en) 2000-10-25 2006-06-27 Qualcomm, Incorporated Method and apparatus for high rate packet data and low delay data transmissions
US6704812B2 (en) * 2000-11-30 2004-03-09 International Business Machines Corporation Transparent and dynamic management of redundant physical paths to peripheral devices
US7401161B2 (en) * 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
US6802021B1 (en) * 2001-01-23 2004-10-05 Adaptec, Inc. Intelligent load balancing for a multi-path storage system
US6823477B1 (en) * 2001-01-23 2004-11-23 Adaptec, Inc. Method and apparatus for a segregated interface for parameter configuration in a multi-path failover system
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
US8578215B2 (en) * 2001-11-19 2013-11-05 Hewlett-Packard Development Company, L.P. Method and system for gathering data using automatic appliance failover
JP2003162439A (ja) * 2001-11-22 2003-06-06 Hitachi Ltd ストレージシステム及びその制御方法
JP3683211B2 (ja) * 2001-12-10 2005-08-17 エヌイーシーコンピュータテクノ株式会社 ノード間データ転送方法及びノード間データ転送装置
US6738839B2 (en) * 2001-12-27 2004-05-18 Storage Technology Corporation Method and system for allocating logical paths between a host and a controller in a virtual data storage system
JP3848587B2 (ja) * 2002-03-15 2006-11-22 株式会社日立製作所 情報処理装置および通信路選択方法
US6820172B2 (en) * 2002-03-25 2004-11-16 International Business Machines Corporation Method, system, and program for processing input/output (I/O) requests to a storage space having a plurality of storage devices
US7099814B2 (en) * 2002-03-29 2006-08-29 International Business Machines Corportion I/O velocity projection for bridge attached channel
US7076690B1 (en) 2002-04-15 2006-07-11 Emc Corporation Method and apparatus for managing access to volumes of storage
US7134040B2 (en) * 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device
US7707151B1 (en) 2002-08-02 2010-04-27 Emc Corporation Method and apparatus for migrating data
US7546482B2 (en) * 2002-10-28 2009-06-09 Emc Corporation Method and apparatus for monitoring the storage of data in a computer system
US7120765B2 (en) * 2002-10-30 2006-10-10 Intel Corporation Memory transaction ordering
US7197012B2 (en) * 2002-10-31 2007-03-27 Hewlett-Packard Development, L.P. System and method for extending performance data collection for a network
US7376764B1 (en) 2002-12-10 2008-05-20 Emc Corporation Method and apparatus for migrating data in a computer system
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US7263590B1 (en) 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
US7415591B1 (en) 2003-04-23 2008-08-19 Emc Corporation Method and apparatus for migrating data and automatically provisioning a target for the migration
US7379988B2 (en) * 2003-04-23 2008-05-27 International Business Machines Corporation Autonomic performance tuning of a distributed virtual storage server
US7805583B1 (en) 2003-04-23 2010-09-28 Emc Corporation Method and apparatus for migrating data in a clustered computer system environment
US7093088B1 (en) 2003-04-23 2006-08-15 Emc Corporation Method and apparatus for undoing a data migration in a computer system
US7080221B1 (en) 2003-04-23 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a clustered computer system environment
US7234079B2 (en) * 2003-07-11 2007-06-19 Agency For Science, Technology & Research Method and system for enabling recovery of data stored in a computer network; a method and a system for recovering data stored in a computer network
US7379974B2 (en) * 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
US7058758B2 (en) * 2003-10-16 2006-06-06 International Business Machines Corporation Load balancing to support tape and disk subsystems on shared fibre channel adapters
JP4012498B2 (ja) * 2003-11-18 2007-11-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US7076573B2 (en) * 2003-11-20 2006-07-11 International Business Machines Corporation Method, apparatus, and program for detecting sequential and distributed path errors in MPIO
US7962914B2 (en) * 2003-11-25 2011-06-14 Emc Corporation Method and apparatus for load balancing of distributed processing units based on performance metrics
US20050114595A1 (en) * 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
JP2005196331A (ja) * 2004-01-05 2005-07-21 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の構成変更方法
JP4322173B2 (ja) * 2004-06-17 2009-08-26 富士通株式会社 データ転送方法及びシステム、入出力要求装置、並びに、データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US20060020720A1 (en) * 2004-07-23 2006-01-26 Lsi Logic Corporation Multi-controller IO shipping
JP4643198B2 (ja) * 2004-07-28 2011-03-02 株式会社日立製作所 負荷分散コンピュータシステム、経路設定プログラム及びその方法
US7337235B2 (en) * 2004-10-28 2008-02-26 International Business Machines Corporation Dynamic path partitioning to multipath storage devices
JP4609848B2 (ja) * 2005-04-06 2011-01-12 株式会社日立製作所 負荷分散コンピュータシステム、経路設定プログラム及びその方法
JP4327130B2 (ja) 2005-06-24 2009-09-09 富士通株式会社 ディスクアレイアクセス動的制御装置、及び方法
US7702851B2 (en) * 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
JP2007109141A (ja) * 2005-10-17 2007-04-26 Hitachi Ltd ストレージシステム
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
US7957398B1 (en) * 2007-03-05 2011-06-07 Emc Corporation Methods and systems for dynamic division of path capacity
JP2008268994A (ja) * 2007-04-16 2008-11-06 Hitachi Ltd 計算機システム、負荷分散方法及び管理計算機
US20090049456A1 (en) * 2007-08-13 2009-02-19 Ibm Corporation Limiting receipt of unsolicited events by a logical partition in a data storage system
US9110597B2 (en) * 2007-12-10 2015-08-18 Hewlett-Packard Development Company, L.P. Data processing method and system
JP4551947B2 (ja) * 2008-05-23 2010-09-29 株式会社日立製作所 ストレージシステムを構成する電子機器を管理する装置
JP2010033188A (ja) * 2008-07-25 2010-02-12 Fujitsu Ltd 送信経路選択装置、データ送信システム、コンピュータ装置および送信経路選択方法
US20100036981A1 (en) * 2008-08-08 2010-02-11 Raghavendra Ganesh Finding Hot Call Paths
JP5490093B2 (ja) 2008-10-10 2014-05-14 株式会社日立製作所 ストレージシステムおよびその制御方法
JP2010108300A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd 情報処理システム、及び情報処理システムにおけるi/oのパスへの割り当て方法
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
JP2010205207A (ja) 2009-03-06 2010-09-16 Nec Corp ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP5182162B2 (ja) * 2009-03-10 2013-04-10 日本電気株式会社 計算機システム及びi/o制御方法
JP5333932B2 (ja) * 2009-07-17 2013-11-06 日本電気株式会社 ディスクアレイ装置及びその制御方法
US8811200B2 (en) 2009-09-22 2014-08-19 Qualcomm Incorporated Physical layer metrics to support adaptive station-dependent channel state information feedback rate in multi-user communication systems
JP5257384B2 (ja) * 2010-03-10 2013-08-07 日本電気株式会社 物理装置制御システム
US8281033B1 (en) 2010-06-29 2012-10-02 Emc Corporation Techniques for path selection
US8769542B2 (en) * 2010-10-26 2014-07-01 Palo Alto Research Center Incorporated System for adaptive lot sizing in cellular manufacturing for balancing workloads across multiple cells using split-then-merge operations and earliest completion route algorithm
US20120229514A1 (en) * 2011-03-10 2012-09-13 Microsoft Corporation Transitioning presence indication through animation
US8572407B1 (en) 2011-03-30 2013-10-29 Emc Corporation GPU assist for storage systems
JP5668982B2 (ja) * 2011-03-31 2015-02-12 日本電気株式会社 ストレージシステム、アクセスパス状態更新方法およびアクセスパス状態更新プログラム
US8825919B1 (en) 2011-12-22 2014-09-02 Emc Corporation Path performance data collection
US8856420B2 (en) * 2011-12-27 2014-10-07 Intel Corporation Multi-protocol I/O interconnect flow control
US8775713B2 (en) * 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8819307B1 (en) * 2011-12-29 2014-08-26 Emc Corporation Identification and use of preferred path groups in host computer based on differential performance
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US9197522B1 (en) 2012-03-21 2015-11-24 Emc Corporation Native storage data collection using multiple data collection plug-ins installed in a component separate from data sources of one or more storage area networks
US8880923B2 (en) 2012-03-29 2014-11-04 Intel Corporation Link power management in an I/O interconnect
US8812542B1 (en) 2012-03-30 2014-08-19 Emc Corporation On-the-fly determining of alert relationships in a distributed system
US8856257B1 (en) 2012-06-29 2014-10-07 Emc Corporation Sending alerts from cloud computing systems
US10528262B1 (en) 2012-07-26 2020-01-07 EMC IP Holding Company LLC Replication-based federation of scalable data across multiple sites
US8972405B1 (en) 2012-07-26 2015-03-03 Emc Corporation Storage resource management information modeling in a cloud processing environment
US8832498B1 (en) 2012-07-30 2014-09-09 Emc Corporation Scalable codebook correlation for cloud scale topology
US9202304B1 (en) 2012-09-28 2015-12-01 Emc Corporation Path performance mini-charts
US9602356B1 (en) 2012-09-28 2017-03-21 EMC IP Holding Company LLC Groups based performance data collection
TWI453605B (zh) * 2012-11-13 2014-09-21 Askey Computer Corp 資料傳輸選擇電路及方法
US9407601B1 (en) * 2012-12-21 2016-08-02 Emc Corporation Reliable client transport over fibre channel using a block device access model
US9563423B1 (en) 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9531765B1 (en) 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9823951B2 (en) * 2013-02-27 2017-11-21 International Business Machines Corporation Link optimization for callout request messages
US9736046B1 (en) 2013-05-30 2017-08-15 EMC IP Holding Company LLC Path analytics using codebook correlation
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
RU2013156784A (ru) * 2013-12-20 2015-06-27 ИЭмСи КОРПОРЕЙШН Способ и устройство выбора маршрута чтения и записи данных
US9826039B2 (en) 2014-02-04 2017-11-21 Honeywell International Inc. Configurable communication systems and methods for communication
US9063661B1 (en) 2014-03-27 2015-06-23 Emc Corporation Automated updating of parameters and metadata in a federated storage environment
US9747040B1 (en) 2015-06-30 2017-08-29 EMC IP Holding Company LLC Method and system for machine learning for write command selection based on technology feedback
JP2017102777A (ja) * 2015-12-03 2017-06-08 富士通株式会社 負荷分散処理サーバ、負荷分散処理方法、及び、システム
US10515038B2 (en) 2016-09-26 2019-12-24 Red Hat, Inc. Input/output command rebalancing in a virtualized computer system
US11366590B2 (en) * 2019-10-11 2022-06-21 EMC IP Holding Company LLC Host device with multi-path layer providing dynamic control of one or more path selection algorithms
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

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1002275B (it) * 1973-12-27 1976-05-20 Honeywell Inf Systems Sistema di elaborazione dati a piu canali di ingresso uscita a risorse orientate per livelli di servizio distinti e interrompi bili
US4368513A (en) 1980-03-24 1983-01-11 International Business Machines Corp. Partial roll mode transfer for cyclic bulk memory
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4577272A (en) 1983-06-27 1986-03-18 E-Systems, Inc. Fault tolerant and load sharing processing system
US4858108A (en) * 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4680773A (en) 1985-10-30 1987-07-14 Microcom, Inc. Data telecommunications system and method utilizing a multi-mode modem
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5388243A (en) 1990-03-09 1995-02-07 Mti Technology Corporation Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture
US5311578A (en) 1992-05-07 1994-05-10 At&T Bell Laboratories Technique for automatic identification of a remote modem
JP3041175B2 (ja) 1993-11-12 2000-05-15 株式会社東芝 Ofdm同期復調回路
US5448566A (en) 1993-11-15 1995-09-05 International Business Machines Corporation Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel
US5644573A (en) 1995-01-20 1997-07-01 Amati Communications Corporation Methods for coordinating upstream discrete multi-tone data transmissions
JP3474646B2 (ja) * 1994-09-01 2003-12-08 富士通株式会社 入出力制御装置及び入出力制御方法
US5528584A (en) 1994-10-27 1996-06-18 Hewlett-Packard Company High performance path allocation system and method with fairness insurance mechanism for a fiber optic switch
US5463661A (en) 1995-02-23 1995-10-31 Motorola, Inc. TX preemphasis filter and TX power control based high speed two wire modem
EP0842464B1 (en) 1995-07-21 2002-02-27 Emc Corporation Dynamic load balancing
US5715277A (en) 1995-07-28 1998-02-03 Motorola, Inc. Apparatus and method for determining a symbol rate and a carrier frequency for data transmission and reception
US5751914A (en) 1995-10-10 1998-05-12 International Business Machines Corporation Method and system for correlating a plurality of events within a data processing system
US5995511A (en) * 1996-04-05 1999-11-30 Fore Systems, Inc. Digital network including mechanism for grouping virtual message transfer paths having similar transfer service rates to facilitate efficient scheduling of transfers thereover
US5796808A (en) 1997-01-09 1998-08-18 Paradyne Corporation System and method for automatically selecting the mode of communication between a plurality of modems
JP3278831B2 (ja) * 1996-10-01 2002-04-30 日本電信電話株式会社 パケット処理装置
US6034946A (en) * 1997-04-15 2000-03-07 International Business Machines Corporation Selection of routing paths in data communications networks to satisfy multiple requirements
JP3715071B2 (ja) * 1997-04-30 2005-11-09 株式会社野村総合研究所 通信回線制御システム
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6145028A (en) * 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US6230229B1 (en) * 1997-12-19 2001-05-08 Storage Technology Corporation Method and system for arbitrating path contention in a crossbar interconnect network

Also Published As

Publication number Publication date
WO2000039679A2 (en) 2000-07-06
US20020166005A1 (en) 2002-11-07
GB0114064D0 (en) 2001-08-01
GB2359170B (en) 2003-12-24
US6434637B1 (en) 2002-08-13
WO2000039679A3 (en) 2000-11-23
US6542944B2 (en) 2003-04-01
DE19983857T1 (de) 2002-01-31
JP2005259155A (ja) 2005-09-22
JP2006351030A (ja) 2006-12-28
GB2359170A (en) 2001-08-15
JP2002533831A (ja) 2002-10-08

Similar Documents

Publication Publication Date Title
JP4405935B2 (ja) マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置
US6959360B2 (en) Data storage system and method of hierarchical control thereof
US6957433B2 (en) System and method for adaptive performance optimization of data processing systems
JP3541744B2 (ja) ストレージサブシステム及びその制御方法
US5131087A (en) Computer system having apparatus for automatically redistributing data records stored therein
US6507893B2 (en) System and method for time window access frequency based caching for memory controllers
JP4383132B2 (ja) 仮想化制御装置及び計算機システム
US6415372B1 (en) Rolling back storage subsystem reconfigurations
US7539709B1 (en) Dynamic data migration in a multi-tier storage system
US8271991B2 (en) Method of analyzing performance in a storage system
US6954768B2 (en) Method, system, and article of manufacture for managing storage pools
US6480930B1 (en) Mailbox for controlling storage subsystem reconfigurations
US20060031656A1 (en) Method, system, and article of manufacture for returning physical volumes
EP1952227A1 (en) System, method and program for managing storage
US7606934B1 (en) Dynamic routing of I/O requests in a multi-tier storage environment
JP2005165852A (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
US9465745B2 (en) Managing access commands by multiple level caching
US6633955B1 (en) Four way support for dynamic mirror service policy
EP0266586A2 (en) Decreasing response time to I/O request by duplicating data
JP2001184175A (ja) ストレージ管理システム
US7240151B1 (en) Methods and apparatus for transferring data in a content addressable computer system
GB2388223A (en) Method and apparatus for balancing workloads among paths in a multi path computer based upon the target device of the I/O request
AU628911B2 (en) Computer system memory performance improvement apparatus

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060808

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070912

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081117

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

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

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4405935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

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

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

EXPY Cancellation because of completion of term