JP2006351030A - マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 - Google Patents
マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 Download PDFInfo
- Publication number
- JP2006351030A JP2006351030A JP2006210923A JP2006210923A JP2006351030A JP 2006351030 A JP2006351030 A JP 2006351030A JP 2006210923 A JP2006210923 A JP 2006210923A JP 2006210923 A JP2006210923 A JP 2006210923A JP 2006351030 A JP2006351030 A JP 2006351030A
- Authority
- JP
- Japan
- Prior art keywords
- paths
- operations
- host computer
- path
- aligned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
【課題】マルチパス・コンピュータ・システム内にある多数のパス間においてアクティビティのバランスをとるために改良した方法および装置を提供する。
【解決手段】ホスト・コンピュータと、システム資源と、ホスト・コンピュータをシステム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法および装置。ホスト・コンピュータとシステム資源との間の送信のために割り当てられる次のI/O動作に対して、少なくとも2つのパスを通じた送信のために以前に割り当てられ整列されているI/O動作の状態に基づいて、次のI/O動作の送信のために、前記少なくとも2つのパスから1つを選択する。
【選択図】図1
【解決手段】ホスト・コンピュータと、システム資源と、ホスト・コンピュータをシステム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法および装置。ホスト・コンピュータとシステム資源との間の送信のために割り当てられる次のI/O動作に対して、少なくとも2つのパスを通じた送信のために以前に割り当てられ整列されているI/O動作の状態に基づいて、次のI/O動作の送信のために、前記少なくとも2つのパスから1つを選択する。
【選択図】図1
Description
本発明は、マルチパス・コンピュータ・システムに関し、更に特定すれば、かかるコンピュータ・システムにおける多数のパス間でワークロードのバランスを取る方法および装置に関する。
多くのコンピュータ・システムは、1つ以上のホスト・コンピュータと、ホスト・コンピュータが通信する1つ以上のシステム資源とを含む。このようなシステムの一例を図1に示し、ホスト・コンピュータ1と、システム資源(即ち、記憶システム3)とを含む。ホスト・コンピュータ1はシステム資源と通信し、ホスト・コンピュータ1が用いるデータの格納および読み出しを行なう。
記憶システム3は複数の記憶装置を含み、その上にデータを格納する。図1に示すシステムの一例では、記憶システムは、複数のディスク・ドライブ5a〜5bと、ディスク・ドライブ5aおよび5bに対するアクセスをそれぞれ制御する複数のディスク・コントローラ7a〜7bとを含む。更に、記憶システム3は、複数のストレージ・バス・ディレクタ9を含み、通信バス17を通じてホスト・コンピュータ1との通信を制御する。記憶システム3は、更に、当該記憶システムの処理能力を向上させるキャッシュ11を含む。即ち、ホスト・コンピュータ1が記憶システム3からの読み取りを実行するとき、記憶システム3は、ディスク・ドライブ5a〜5bの1つからではなく、キャッシュ11からの読み出しを行い(データがキャッシュに格納されている場合)、読み取りを一層効率的に実行する。同様に、ホスト・コンピュータ1が記憶システム3に対して書き込みを実行する場合、対応するストレージ・バス・ディレクタ9はキャッシュ11に対して書き込みを実行する。その後、ホスト・コンピュータ1には透過的に、書き込みはディスク・ドライブ5a〜5bの内適切な1つに対して、非同期にディステージ(destage)することができる。最後に、記憶システム3は、内部バス13を含み、これを通じて、ストレージ・バス・ディレクタ9、ディスク・コントローラ7a〜7bおよびキャッシュ11が通信を行なう。
ホスト・コンピュータ1は、プロセッサ16と、1つ以上のホスト・バス・アダプタ15とを含む。ホスト・バス・アダプタ15の各々は、通信バス17の対応する1つを通じて、プロセッサ16および記憶システム3間の通信を制御する。尚、単一のプロセッサ16ではなく、ホスト・コンピュータ1は多数のプロセッサを含むことができることは認められよう。各バス17は、多数の異なる形式の通信リンクのいずれでも可能であり、ホスト・バス・アダプタ15およびストレージ・バス・ディレクタ9は、それらの間に結合されている通信バス17に対して適切なプロトコルを用いて通信するように構成されている。例えば、通信バス17の各々は、SCSIバスとして実現することができ、ディレクタ9およびアダプタ15は各々SCSIドライバを含む。
典型的に、多数の通信パスが設けられているが、それは2つの理由の内1つによる。第1に、ホスト・コンピュータ1およびシステム資源(例えば、記憶システム3)間の通信パスの1つに障害を発生した場合、多数の通信パスによって何らかのフォールト・トレランスが得られる。したがって、コンピュータ・システムの中には、いずれの特定時点においても動作状態にあるのは単一の通信パスのみであるが、一次パスに障害が発生した場合動作状態となる少なくとも1つの追加パスが設けられているコンピュータ・システムがある。
別のコンピュータ・システムでは、システムの処理能力を向上させるために、多数の通信パスが設けられている。このようなシステムは、多数の通信パスは同時に動作し、ホスト・コンピュータ1とシステム資源(例えば、記憶システム3)との間で多数の通信動作を同時に行なうことができ、システムの処理能力が向上する。
多数の通信パスを同時に用いるシステムでは、従来、多数のパス上でのアクティビティのバランスを取るために、単純なラウンド・ロビン技法が用いられてきた。即ち、通信パスの各々を用いて動作が実行され終わるまで、ホスト・コンピュータ1と資源(例えば、記憶システム3)との間の第1動作は、第1通信パス(例えば、図1におけるパスA)上で実行され、次の動作は次の通信パス(例えば、パスB)を用いて実行される等というように行われる。各通信パスが用いられた時点で、ラウンド・ロビン技法は最初に戻り、次の動作を第1通信パス(例えば、パスA)上で送信することから再び開始する。このように、図1に示すシステムでは、ホスト・コンピュータ1および記憶システム3間での一連の連続する通信動作が、次のパス順序、即ち、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つを選択する。
本出願人は、従来のマルチパス・システムにおいて用いられているラウンド・ロビン技法は、多数のシステム・パスを効果的に利用しておらず、したがってシステムの処理能力を最大限生かしていないことを発見した。即ち、ラウンド・ロビン・システムにおける基本的な想定は、ホスト・コンピュータ1とシステム資源(例えば、記憶システム3)との間のパスを通じて実行されるいずれのI/O動作も同じ実行時間を有するので、I/O動作が多数のシステム・パス間で均等に分散されている場合、システム・パスの各々は等しく用いられ、これによってシステムの処理能力を最大に高めるということである。しかしながら、本出願人は、この基本的な想定は正しくなく、異なるI/O動作を完了するには異なる時間量を要し、ラウンド・ロビン・バランシング技法を使用すると、多数のシステム・バス上で実行されるアクティビティのバランスを均一に取ることができず、一部のパスはそれらの最大容量で利用されない結果となることを発見した。
前述のことを念頭に入れ、本発明の一態様は、多数のシステム・パス上で実行されるアクティビティのバランスをインテリジェントに取ることによってシステムの処理能力を向上させる方法および装置を対象とする。以下で詳しく論ずるが、本出願人は、マルチパス・コンピュータ・システム内にある多数のパスでは、そのいずれの1つにおいて実行される一連のI/O動作についても、いかに迅速に実行するかということに影響を及ぼす要因は多数あることを発見した。その結果、ラウンド・ロビン技法にしたがってマルチパス・コンピュータ・システムにおける多数のパス間で均等にI/O動作を分散させると、一部のパスに割り当てられたI/O動作は、他のパスよりも迅速に完了するという状況が発生する可能性がある。その結果、I/O動作の比較的長いキューが多数のシステム・パスの一部に生じるが、他のパスは空であるという可能性がある。この例を図2に示す。この場合、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動作の数という評価を含む。本発明のこの実施形態について、図2に示す例を参照しながら説明することができる。この場合、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動作の数に基づくパスの選択に関連する本発明の実施形態は、ホスト・コンピュータ1に単純に実現することができ、更に本発明はいずれの特定の実現態様にも限定されないことは認められよう。例えば、殆どのコンピュータ・システムにおいて、プロセッサ16は、ホスト・バス・アダプタ15間でI/O動作を分散する役割を担うフィルタ・ドライバを含む。フィルタ・ドライバは、単にホスト・バス・アダプタ15の各々に問い合わせて各々に整列されているI/O動作の数を判定し、整列されているI/O動作の数が最も少ないパスに、次のI/O動作を分配することができる。
整列されているI/O動作の数に基づくパスの選択に関係する本発明の実施形態の基礎となる1つの前提は、各I/O動作は完了に同じ時間量を要するという仮定である。本出願人は、この仮定は精度が高くないことを発見した。ホスト・コンピュータ1(図1)と記憶システム3のようなシステム資源との間でI/O動作を完了する時間長に影響を及ぼす基本的な要因は3つある。これら3つの要因は、(1)ホスト・コンピュータ1とシステム資源との間に特定のパスを通じて接続を確立するために要する調停時間、(2)一旦資源がパスの1つを通じてI/O要求を受信したときに、資源が応答するためのデータ・アクセス時間、および(3)特定のパスを実現するために用いられる通信バス17上でホスト・コンピュータ1とシステム資源との間でデータを送信するための転送時間を含む。
本発明の代替実施形態では、単純に各パス上に整列されているI/O動作の数に着目する代わりに、各パス毎に整列されているI/O動作の集合によって転送されるデータ・ブロック数を考慮する。何故なら、これは各パスに整列されているI/O動作の集合に対するデータ転送時間に影響を及ぼすからである。この点を示すにあたり、図3に2つのパスAおよびBを示す。パスAには1つのI/O動作32が整列されており、パスBは2つの整列されたI/O動作33および34を含む。整列されているI/O動作の数に関係する前述の選択基準のみを用いてパスAおよびB間で選択を行なうと、パスAが選択される。何故なら、こちらの方が含むI/O動作の数が少ないからである。しかしながら、図3に示すように、パス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に整列させる。
本発明の別の代替実施形態では、各パス毎に用いられる通信バス17(図1)の特定の形式に関する追加情報を選択基準に追加する。尚、図1に示すようなコンピュータ・システムでは、各パスを同じ形式の通信バス17で実現する必要がないように、異なる形式の通信バス17を用いて種々のパスA〜Dを形成可能であることは認められよう。加えて、種々の通信バスのデータ転送レートおよび調停時間は幅広く変動する可能性があることも認められよう。例えば、ホスト・コンピュータ1とシステム資源との間のパスA〜Dのためにバス17を実現するために使用可能な典型的な通信リンクは、Fibre Channel、FastWideおよびUltra SCSIを含む。FibreChannelは、約100メガバイト/秒のデータ転送レート、および約40マイクロ秒の調停時間を含む。Fast Wideは、約20メガバイト/秒のデータ転送レート、および約200マイクロ秒の調停時間を含み、Ultra SCSIは、約40メガバイト/秒のデータ転送レート、および約160マイクロ秒の調停時間を含む。したがって、パスA〜Dの1つのための通信バス17を実現するために用いたFibre Channel接続を通じたデータ転送レートは、Fast Wideを用いて実現したパスの別の1つに対するそれよりも5倍も速いことが認められよう。図3に示す例を参照すると、Fibre Channelを用いてパスAを実現し、Fast Wideを用いてパスBを実現する場合、パスAに整列されている8つのデータ・ブロックに対するデータ転送時間は、パスBに整列されている3つのデータ・ブロックのそれよりも短い。このように、整列されているデータ・ブロック数のみに基づいたこれらパス間の選択では、次のI/O動作に可能な最短パスを選択するという目的を達成できない。したがって、本発明の代替実施形態では、通信パスを実現するために用いる特定の技術を選択基準に加える。本発明のこの実施形態では、各パスに整列されているI/O動作の数を、それによって表されるデータ・ブロック数、ならびにパスの各々に対する調停時間およびデータ転送レートと共に考慮に入れる。これら3つの情報ピースを用いると、整列されているI/O動作の各々対する調停、およびそれによって表されるデータ・ブロックの転送に最短の合計時間をもたらすパスを選択することができる。
先に論じたように、調停およびデータ転送時間に加えて、特定のパスに整列されているI/O動作をいかに迅速に完了するかに影響を及ぼす別の要因は、各I/O動作がシステム資源(例えば、図1における記憶システム3)内の目標データにアクセスする時間である。したがって、本発明の別の代替実施形態では、多数のシステム・パスに整列されているI/O動作に対するアクセス時間を、次のI/O動作に最短パスを選択する基準に含ませる。この点について、従来のラウンド・ロビン技法の基礎となる仮定は、各I/O動作は、システム資源に対して同じアクセス時間がかかるということにある。本出願人は、この仮定が常に正しい訳ではなく、多数のパス間でワークロードのバランスを取る場合に考慮に入れないと、マルチパス・コンピュータ・システムの処理能力に重大な影響を及ぼし得ることを発見した。
本発明のロード・バランシング技法を用いることができる例示の一システムは、図1のコンピュータ・システムである。この場合、ホスト・コンピュータ1に接続されている資源は、複数のディスク・ドライブ5a〜5bを含む記憶システム3である。先に論じたように、記憶システム3は、記憶システムの処理能力を向上するために用いられているキャッシュ11も含む。即ち、ホスト・コンピュータ1が記憶システム3に対して読み出しまたは書き込みを実行する場合、記憶システムは、キャッシュ11に対して読み出しまたは書き込みを行なう(キャッシュ内で所望のデータに対するヒットがあった場合)。したがって、読み出しがキャッシュにおいてヒットした場合、読み出しがキャッシュにおいてミスし、ディスク・ドライブ5a〜5bの内目標とする1つにアクセスしなければならない場合よりも迅速に実行することができる。同様に、書き込みがキャッシュにおいてミスした場合、キャッシュ内のあるデータを典型的にディスク・ドライブにディステージし、新たなデータをキャッシュに書き込むための余裕を作らなければならず、このため動作が遅くなる。
前述のことから、図1に示すようなキャッシュ記憶システムでは、キャッシュ11においてヒットしたI/O動作(読み出しまたは書き込みのいずれか)は、ミスしたものよりも極めて速いデータ・アクセス時間を有することが認められよう。即ち、ホスト・コンピュータ1の観点から、記憶システム3に対するデータ・アクセス時間は、キャッシュにおいてヒットしたI/O動作の方が、ミスした場合よりも遥かに短い。アクセス時間の差は重大となる可能性がある。例えば、図1に示すようなキャッシュ記憶システムの一例は、MA,HopkintonのEMC Corporation(EMC社)から入手可能なSYMMETRIX型というディスク・アレイである。SYMMETRIX型ディスク・アレイは、通常、3ミリ秒(ms)ないし12msの間のアクセス時間がかかり、この範囲の下端はキャッシュ・ヒットに対応し、上端はキャッシュ・ミスに対応する。したがって、ホスト・コンピュータ1から記憶システム3に送信されるI/O動作間には、300%のアクセス時間差が生ずる可能性がある。
前述のことを念頭に入れると、特定の資源に対するアクセス時間は全てのI/O動作に対して同一であるとする仮定は常に正しい訳ではないことが認められよう。したがって、本発明の別の代替実施形態では、次のI/O動作にどのパスを利用すべきかの判定に用いられる選択基準は、各パスに整列されているI/O動作に対する予測データ・アクセス時間の分析を含む。尚、図1に示すようなキャッシュ記憶システムの説明は、単に例示の目的で行なうに過ぎず、アクセス時間が動作毎に変動するコンピュータ・システムの資源には多くの種類があるので、資源のアクセス時間の考慮に関する本発明の態様は、この種のコンピュータ・システムにもその他のいずれの種類のコンピュータ・システムにも限定されるのではないことは認められよう。
尚、多数のシステム・パスに整列されているいずれのI/O動作に対しても、データ・アクセス時間は、次のI/O動作を実行するために最も迅速なパスの選択に重大な影響を及ぼす可能性があることは認められよう。例えば、図4を参照すると、2つのパスAおよびBが示されており、パスAはキャッシュ11(図1)においてミスした1つのI/O動作40を含み、パスBは、各々キャッシュ11においてヒットした、整列されている1対のI/O動作41および42を含む。パスBに整列されているI/O動作の方が多いという事実にも拘らず、パスA上でのミス動作は、パスBに整列されているI/O動作のいずれよりも、記憶システム3(図1)内部で動作するために、4倍長くかかるという事実から、ホスト・コンピュータ1と記憶システム3との間での送信のために整列される次のI/O動作を最も迅速に実行するためには、パスBがより良い選択となり得る。したがって、本発明の図示した一実施形態によれば、多数のパスに整列されているI/O動作に対するアクセス時間を、次のI/O動作に対して最短のパスを選択する際に考慮に入れる。
先に論じたように、システム資源にアクセスするときにどのパスを用いるかという選択は、ホスト・コンピュータ1(例えば、プロセッサ16上で実行するソフトウエアにおいて実現されるフィルタ・ドライバ)によって実行される。アプリケーションによっては、ホスト・コンピュータ1は、整列されている各I/O動作に対して正確にアクセス時間を決定する十分な情報を有していない場合もある。例えば、図1に示す例示のシステムでは、システム資源がキャッシュ記憶システムであり、ホスト・プロセッサ1は、いずれのデータI/O動作についても、キャッシュにおいてヒットするかまたはミスするか、確実に言うことはできない。しかしながら、ホスト・コンピュータ1は、履歴情報に基づいて、適度に精度が高い何らかの予測を行なうことができる。この点について、ホスト・コンピュータ1は、記憶システム3とのI/O動作の開始(initiation)を制御する。したがって、ホスト・コンピュータ1は、各I/O動作毎に処理時間を監視することができ、その完了時間に基づいて、動作がキャッシュにおいてヒットしたかまたはミスしたか判定することができる。このように、経時的に個々のアプリケーションについて、キャッシュにおいてヒットするI/O動作の数またはミスするI/O動作の数を予期し、その割合を決定することができる。加えて、本出願人は、殆ど全てのアプリケーションに対して、ホスト・コンピュータ1から記憶システム3への書き込みは、読み出しよりもキャッシュ11内においてヒットする可能性が高いことを発見した。即ち、I/O動作がほぼ等しく読み出しおよび書き込みの間で分散されているアプリケーションでは、書き込みは時間の約99%、キャッシュにおいてヒットすると仮定することができる。逆に、I/O動作が書き込み動作に対してより大きく重み付けされているアプリケーションでは、ヒット・レートは約70%よりも低い)。読み出しに対するヒット数はさほど均一ではなく、アプリケーション毎に一層著しく変動する。また、本出願人は、SYMMETRIX型ディスク・アレイにおけるキャッシュ・ヒットでは、読み取りは書き込みよりも約30%速いことを発見した。何故なら、キャッシュに対する書き込みは、キャッシュ置換方式を実現するために用いられる機構にロックをかけるからである。
前述のことを念頭に入れて、キャッシュ記憶システム3を含むコンピュータ・システムにおける使用に適合化した本発明の一実施形態では、次のI/O動作に対する最短パスの選択は、読み出しおよび書き込み間で各パスに対するI/O動作の割合の内訳の考慮、および読み出しおよび書き込み双方に対する特定のアプリケーションに推定したヒット率の考慮を含む。これらの選択基準は、単独で用いることができ、あるいは先に論じた別の選択基準の各々と共に考慮に入れることができる。前述のように、読み出しおよび書き込みの間およびキャッシュ・ヒットおよびミスの間のアクセス時間の差に関してここに含まれる具体的な論述は、単に例示の目的として提示するに過ぎない。何故なら、選択基準においてデータ・アクセス時間を考慮することに関する本発明の態様は、ホスト・コンピュータとキャッシュ記憶システムとの間の多数のパス上でアクティビティのバランスを取ることに限定される訳ではなく、別の種類のマルチパス・コンピュータ・システムにも使用可能であるからである。
本発明の更に別の実施形態では、あるアプリケーションに対する履歴データ・アクセス時間率とI/O動作の最新バッチとの間の不一致に基づいて、選択基準を調節することができる。例えば、アプリケーションが以前より約80%の読み出しヒット率を含み、I/O動作の最新のバッチではキャッシュのヒットがわずか60%である場合、ヒット・レートは80%の履歴マークを越え、最近観察した低い60%レートを補償するという期待から、選択アルゴリズムは、I/O動作の次のバッチに更に大きな重み付けをすることができる。勿論、アプリケーションが、かなりの期間にわたって履歴データ・アクセス時間率から逸脱する場合、ホスト・コンピュータ1はその履歴データベースを更新し、アプリケーションが動作している態様を一層正確に反映することができる。
前述のことから認められようが、本発明の種々の実施形態では、いくつかの選択基準を共に採用し、次のI/O動作に用いるパスを決定することができる。これは、多数の方法のいずれでも行なうことができ、本発明は、いずれの特定的な実現態様にも限定されない。例えば、ソフトウエア・エンティティを用いて選択機能を実行することができ、多数の判断ステップ(例えば、「if,then,else」ステートメントを用いる)を実装して種々の選択基準のバランスを取ることができる。しかしながら、本発明の例示の一実施形態によれば、選択基準の各々に異なる重み係数を与える重み付けの数式を採用し、ソフトウエアで実現する場合に、パス選択プロセスを一層効率的に行なえるようにすることができる。
重み付けの数式を採用して選択基準を実装する技法の一例は、使用可能なパスの各々に重み係数Wを適用することである。次のI/O動作に対して選択するパスを決定する際、パスの重み係数の各々を考慮し、特定のI/O動作に対して最も低い重み係数を有するパスを選択する。各パス毎の重み係数は、先に論じた選択基準の1つ以上を用いて、多数の方法のいずれでも決定することができる。例えば、各パスの重み係数Wを決定する式の一例は次の通りである。
W = (icoeff x no_of_ios) + (wcoeff x no_of_write_blocks) +
(rcoeff x no_of_read_blocks)
ここで、icoeffは、I/O動作に伴うオーバーヘッドに関する係数定数、wcoeffは、データ・ブロック毎の書き込み動作に関する係数定数、および、rcoeffは、データ・ブロック毎の読み出し動作に関する係数定数である。
(rcoeff x no_of_read_blocks)
ここで、icoeffは、I/O動作に伴うオーバーヘッドに関する係数定数、wcoeffは、データ・ブロック毎の書き込み動作に関する係数定数、および、rcoeffは、データ・ブロック毎の読み出し動作に関する係数定数である。
尚、上述のような重み付けの数式を用いることによって、次のI/O動作に対する選択プロセスは計算上簡単になることは認められよう。何故なら、選択プロセスは、使用可能なパス各々の重み係数を比較すれば、最も低い重み係数Wを有するパスを選択できるからである。更に、先に論じた選択基準を、種々の重み係数icoeff、wcoeffおよびrcoeffに対して与えた定数に組み入れ(factor)可能であることも認められよう。例えば、通信パスの各々を実現するために用いられる特定の技術の処理能力に関する選択基準をこれらの係数に組み込むことができ、異なる技術を用いて実現したパス間で係数が異なるようにすることができる。加えて、キャッシュ・システムにおける予測ミスおよびヒット比率に関する要因も、読み取りおよび書き込み係数(それぞれ、rcoeffおよびwcoeff)に組み入れることができる。係数に対する特定の定数は、前述の選択基準のどれをその中に組み込むかだけでなく、特定のマルチパス・コンピュータ・システムの特定の処理能力特性にも依存する。例えば、読み出し対書き込み動作の相対的処理能力、およびキャッシュ・ミスに対して生ずる相対的な不利は、システム毎に大きく異なることは認められよう。したがって、係数に対する特定の値は広範囲に変動する可能性があり、本発明はいずれの特定の係数値にも限定されない。
本発明の別の実施形態では、特定のI/O動作に対する選択基準は、当該I/O動作によって目標とされるシステム資源内の装置(例えば、図1の記憶システム3における特定のディスク・ドライブ5a〜5b)によって影響を受ける。本出願人は、同じ装置を目標とするI/O動作を多数のパスを通じて拡散させると、実際には、動作を並列に処理するときに通常期待される処理能力向上を達成するどころではなく、システムの処理能力を低下させることを発見して驚愕した。図1に示す例示のシステムを再度参照すると、ディスク・ドライブ5a〜5bの内特定の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型ディスク・アレイは、ディスク・ドライブ5a〜5bの1つの内複数の部分をトラック・レベルで異なるパスにロックし、同じ装置内の異なるトラックを異なるパスにロックできるようにする機能を含む。これによって、装置は、同時に異なるパスから多数のI/O動作を受け入れることができ、先に論じたロック遅延の懸念もない。SYMMETRIXのこの機能を用いると、8つよりも多いパスが1つの装置にI/O動作を送るために用いられるまで、同じ装置に向けられた多数のI/O動作に伴う収穫逓減(diminishing return)は発生しない。
特定のパスに割り当てるときにI/O動作に対する目標装置を考慮することの別の利点は、特定の装置(例えば、ディスク・ドライブ5a〜5bの特定の1つ)を目標とするI/O動作の処理能力が目標装置自体の処理能力によって生来的に制限されるという事実に関する。したがって、一旦特定の装置を目標とする1組のI/O動作を多数のパス間で分散し、これら多数のパス全体に及ぶ帯域幅が目標装置自体のそれと等しくしても、パスA〜Dによる帯域幅の増大がシステムの処理能力向上をもたらすことは全くない。実際に、このようにすると、特定の目標装置に対するアクセスを待たなければならないI/O動作が増大し、多数のシステム・パスの一部を不必要に塞いでしまう虞れがある。例えば、ディスク・ドライブ5a〜5bの特定の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動作に対する目標装置を考慮に入れている。尚、本発明のこの機能は、システム資源が先に明記したような記憶システムであるコンピュータ・システムとの使用に限定されないことは認められよう。むしろ、図1に示すコンピュータ・システムは、本発明のこの態様を採用可能なシステムの単なる一例に過ぎず、特定の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動作を優先する。即ち、従来のラウンド・ロビン技法は、資源をできるだけビジーに保持することによって、システム資源(例えば、図1における記憶システム3)の処理能力を最大限高めようとする。本出願人は、ホスト・コンピュータ1上で実行するアプリケーションによっては、あるI/O動作を優先することにより、当該アプリケーションの処理能力を最大限高められることを発見した。したがって、ある動作を優先することは、システム資源の稼働率(business)を最大限高めることと同等またはそれ以上に重要であり得る。
動作を優先させることができる態様の一例は、電話の注文を受信する小売店が走らせる注文入力アプリケーションに関する。小売店にとって、目標はそのオペレータができるだけ素早く注文を取ることができ、これによって特定の期間内に小売店が処理できる注文数を最大限増やすことである。このような注文入力アプリケーションは、典型的に、図1に示すようなコンピュータ・システム上で走り、注文情報を、3つの構成要素、即ち、テーブル、インデックスおよびログを含むデータベースに格納する。注文入力アプリケーション用データベースの処理能力は、ログ更新の処理能力のみに基づく。即ち、データベースは、最初に、ログへのトランザクションをコミット(commit)し、次いでテーブルおよびインデックスを更新する。データベースの処理能力の観点からは、テーブルおよびインデックスが更新されていなくても、一旦ログが更新されたなら、トランザクションは完了する。したがって、本発明の一実施形態によれば、注文入力アプリケーションでは、全てのログ更新を優先する。これの一例を図5に示す。この場合、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 x no_of_ios) + (wcoeff x no_of_wirte_blocks) +
(rcoeff x no_of_read_blocks) + (PW - (pcoeff x priority x
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動作によってパス上に置かれる優先順位重みは考慮されない。
W = (icoeff x no_of_ios) + (wcoeff x no_of_wirte_blocks) +
(rcoeff x no_of_read_blocks) + (PW - (pcoeff x priority x
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動作は、この低いトラフィック・パスに送られ、迅速に処理される。
前述のように、本発明の優先順位付けの態様は、多数の方法で実現可能であり、本発明は前述の態様で人工的負荷を与えることに限定される訳ではないことは認められよう。
本発明の一実施形態では、多数のパス間でアクティビティのバランスを取るために用いられる選択基準は、ホスト・コンピュータ1の管理者によって選択することができる。この選択は、先に論じた異なる選択基準のいずれからでも選択可能であり、ラウンド・ロビン、最少動作のパス選択、最少データ・ブロックのパス選択、または最適化ルーチンを含み、本発明の前述の機能の各々に重み付けし、最適な選択アルゴリズムを達成するという利点がある。先に論じたように、本発明の種々の態様は、その使用や、このような最適化した様式に限定される訳ではなく、更に、これらの選択基準を共に重み付けした場合、本発明はいずれの特定の重み係数にも限定されないことも認められよう。
本発明の一実施形態では、多数のパス間でアクティビティのバランスを取るために用いられる選択基準は、ホスト・コンピュータ1の管理者によって選択することができる。この選択は、先に論じた異なる選択基準のいずれからでも選択可能であり、ラウンド・ロビン、最少動作のパス選択、最少データ・ブロックのパス選択、または最適化ルーチンを含み、本発明の前述の機能の各々に重み付けし、最適な選択アルゴリズムを達成するという利点がある。先に論じたように、本発明の種々の態様は、その使用や、このような最適化した様式に限定される訳ではなく、更に、これらの選択基準を共に重み付けした場合、本発明はいずれの特定の重み係数にも限定されないことも認められよう。
尚、以前に割り当てられ送信のために整列されているI/O動作の状態に基づいてパスを選択することに関する本発明の前述の実施形態の各々は、単純にホスト・コンピュータ1において実現することができ、更に、本発明はいかなる特定の実現の態様にも限定されないことは認められよう。例えば、殆どのコンピュータ・システムにおいて、プロセッサ16は、ホスト・バス・アダプタ15間でI/O動作を分散する役割を担うフィルタ・ドライバを含む。フィルタ・ドライバは、単にホスト・バス・アダプタ15の各々に問い合わせて、各々に整列されているI/O動作のステータスを判定することができ、前述の選択基準のいずれかを満たすパスに次のI/O動作を分配することができる。フィルタ・ドライバは、ソフトウエア・プログラムとして実現し、コンピュータ読み取り可能媒体上に格納し、プロセッサ16上で実行することができる。この点について、本発明の一実施態様は、コンピュータ・プログラムをエンコードされ、プロセッサ上で実行されると、本発明の先に論じた機能を実行するコンピュータ読み取り可能媒体(例えば、コンピュータ・メモリ、フロッピ・ディスク、コンパクト・ディスク、テープ等)から成ることが認められよう。コンピュータ読み取り可能媒体は、輸送可能であり、その上に格納されているプログラムをコンピュータ・システム上にロードし、先に論じた本発明の態様を実現することができる。加えて、実行すると先に論じた機能を実行するコンピュータ・プログラムに対する言及は、ホスト・コンピュータ上のアプリケーション空間において走るアプリケーション・プログラムに限定される訳ではないことも認められよう。むしろ、コンピュータ・プログラムという用語は、ここでは、先に論じた本発明の態様を実現するためにプロセッサをプログラムする際に使用可能なあらゆる種類のコンピュータ・コード(例えば、ソフトウエアまたはマイクロコード)に言及する、汎用的な意味で用いられている。あるいは、フィルタ・ドライバに、それ自体の専用プロセッサを設け、ソフトウエア・プログラムを実行して前述のパス選択機能を実行することも可能であり、あるいは専用ハードウエアを設けてこの機能を実行することも可能である。
前述の本発明の実施形態の各々では、本発明の態様は、ホスト・コンピュータと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動作、特定のパス、および特定の目標論理ボリュームに対する平均応答時間。
ホスト・コンピュータ1の観点から収集することができる統計および情報は非常に有効であり、前述のように用いることができて有利であるが、記憶システム3が図1に示すようなインテリジェント記憶システムである場合、ホスト・コンピュータ1の視野では、コンピュータ・システムの処理能力に関する全体像が解明されないことが認められよう。インテリジェント記憶システムは、ホスト・コンピュータ1を介してアクセス可能なデータが最終的に格納される位置を制御する。したがって、あらゆるデータ・ブロックが実際に格納される正確な物理的位置(即ち、ディスク・ドライブ5a〜5bの内のどれ、そして当該ディスク・ドライブ上の位置)は、ホスト・コンピュータには透過的である。この点に関して、図1に示すようなコンピュータ・システムは、典型的に、図6に示すように、複数のレイヤを含む。
レイヤは、ホスト・コンピュータ1上に常駐し、アプリケーションによって用いられるデータ・オブジェクト(例えば、ファイル)を参照するアプリケーション・レイヤ61を含む。加えて、ホスト・コンピュータ1は、アプリケーション・レイヤ61によって指定された各データ・オブジェクトを、ホスト・コンピュータ1が、データ・オブジェクトが格納されている実際の物理記憶装置に対応すると認める特定の論理ボリュームにマップするファイル・システムおよび/または論理ボリューム・マネージャ・レイヤ63も含む。したがって、コンピュータ・システムが、インテリジェンスの全くない記憶システムを含む場合、ファイル・システム/LVMレイヤ63によって指定される論理ボリュームは、特定の物理装置、およびデータ・オブジェクトを格納する特定の記憶位置を指定する。最後に、コンピュータ・システムは、更に記憶システム・マッピング・レイヤ65を含む。これは、記憶システム上に常駐し、レイヤ63から与えられる論理ボリュームから、ディスク・ドライブ5a〜5bの少なくとも1つ、および論理ボリュームが格納されている当該ディスク・ドライブ上の物理位置を含む、実際の物理位置にマップする。論理ボリュームと物理ディスク・ドライブとの間のマッピングは1:1でなくてもよい。何故なら、1つの論理ボリュームを多数の物理ディスク・ドライブ5a〜5b全体に分割することができ、あるいは多数の論理ボリュームを同じ物理ディスク・ドライブ上に格納することができるからである。
尚、図3に示すようなインテリジェント記憶システムは、ホスト・コンピュータ1から記憶システム3に送信されるI/O動作に関する統計のログを作成する能力も有することは認められよう。記憶システム3内にログすることができる形式の情報の例は、(1)各I/O動作を送ったパス、(2)I/O動作によって目標とされた実際の物理記憶装置(例えば、ディスク・ドライブ5a〜5b)、(3)I/O動作の種類(例えば、読み出しまたは書き込み)、および(4)I/O動作がキャッシュ11内でヒットしたかまたはミスしたかを含む。尚、この情報の一部はホスト・コンピュータ1には入手できないことは認められよう。例えば、ホスト・コンピュータ1は、目標とされた論理ボリュームが格納されている実際の物理記憶装置に関する情報を有していない。同様に、ホスト・コンピュータ1が、記憶システムの応答時間に基づいて、特定のI/O動作がキャッシュ11内においてヒットしたかまたはミスしたかに関して、学習し予測することはできるが、ヒットまたはミスのどちらが発生したか確実に知っているのは、記憶システム3だけである。
記憶システム3によって収集可能な統計は、エリアによっては、ホスト・コンピュータ1によって収集可能な統計よりも詳細であるが、これらも他のエリアでは不足している。この点に関して、記憶システム3は、典型的に、アプリケーション・レイヤ61(図6)においてI/O動作のソースに関する情報を有していないことが認められよう。したがって、記憶システム3は、それ自体とホスト・コンピュータ1との間におけるI/O動作の生の処理能力を分析するのに有用な多数の統計を蓄積することができるが、記憶システム3は、通常、ホスト・コンピュータ1上で実行するアプリケーションの処理能力に対する、あるI/O動作の影響を直接判定することはできない。
前述のことから認められるように、ホスト・コンピュータ1または記憶システム3のみに関する処理能力統計を維持しても、ホスト・コンピュータ1上で走るアプリケーションを実行する際に、コンピュータ・システム全体の処理能力を分析するのに有効な完全な処理能力の像は得られない。したがって、本発明の例示の一実施形態によれば、ホスト・コンピュータ1に入手可能な情報を、記憶システム3に入手可能な情報と組み合わせ、コンピュータ・システムの処理能力に関して完成度を高めた像を提供する1組の情報を作成するロギング・ファシリティ(logging facility)を設けている。これは、多数の方法のいずれでも行なうことができる。例えば、本発明の一実施形態では、I/O動作を記憶システム3に送ることに加えて、ホスト・コンピュータ1は、記憶システム3内のロギング・ファシリティに格納するために、I/O動作に関する情報も送信する。この情報およびI/O動作間の相関は、各I/O動作およびその対応する情報を一意に識別するI/Oタグを与えることによる等、多数の方法のいずれでも得ることができる。次に、ホスト・コンピュータ1によって提供される情報は、記憶システム3がそれ自体でI/O動作に関して発生可能な追加情報とインターリーブすることによって、I/O動作に関する終端間(end−to−end)の統計情報全てを提供することができる。次いで、統計ログを発生し、記憶システム3に格納することができ、多数の方法のいずれでも用いることができる。あるいは、本発明のこの態様は、記憶システム3からホスト・コンピュータ1に、各I/O動作に関する情報を送信することによって、逆に実現することも可能であることが認められよう。しかしながら、この実現の方が好ましくない。何故なら、記憶システム3における方が大きな記憶空間が使用可能であり、相当なサイズに成長する可能性がある統計ログを格納する候補としては、こちらの方がよいからである。
統計ログの作成に関する本発明の態様は、多数の方法のいずれでも使用可能である。本発明の一実施形態では、このようなログを単純に機械的な分析に用い、コンピュータ・システム全体の処理能力に関して、従来のロギング技法を用いて得ることができるよりも良い像をシステム管理者またはシステム開発者に与えることができる。従来のロギング技法では、前述のような全体像を与えることはできない。例えば、本発明の一態様に関連付けて先に論じたように、アプリケーションによっては、あるI/O動作を優先することの方が、記憶システム3またはその他のシステム資源の稼働率を最大限高めることよりも重要である可能性がある。したがって、資源の処理能力のみに的を絞った従来のロギング技法では、限られた使用が可能であるに過ぎず、ホスト・コンピュータ1上で走るアプリケーションの処理能力に関する有意な情報を提供することができないために、誤った方向に導く可能性さえある。
ロギング・サブシステムの別の用法として、前述の本発明の負荷のバランスを取る態様を実施する際の補助があげられる。ホスト・コンピュータ1上で走るアプリケーションの振る舞いのより良い全体像を与えることによって、本発明のロギング・サブシステムは、I/O動作を多数のパス間で分散しアプリケーションの処理能力を最大限高める場合に、一層インテリジェントな判断を行なうことを可能にする。例えば、ロギング・サブシステムは、アプリケーション全体の処理能力にとって重要であり、前述のように優先すべき特定のI/O動作を識別する際に役立つことができる。勿論、ロギング・サブシステムのその他の用法も、前述の本発明の負荷のバランスを取る態様によって可能であることは明白である。したがって、機械的な処理能力の分析に対して統計的情報を提供することに加えて、本発明のロギング・サブシステムの態様は、ホスト・コンピュータおよび記憶サブシステム3によって資源として用いることができ、その上で走っている意思決定プロセス(例えば、本発明の負荷のバランスを取る態様)が、より良いシステム処理能力を達成するために判断を下す際に、ロギング・サブシステム内に含まれる情報を用いることができるようにする。このようなロギング・サブシステムの使用は、システム管理者の仲介なく、自動的に実行することができる。
先に論じた図示の例では、多数のパス間でワークロードのバランスを取ることに関する本発明の実施形態について、図1に示したホスト・コンピュータとインテリジェント・ディスク・ドライブ・アレイ記憶システム3との間に延びる多数のパスに関連付けて説明した。しかしながら、本発明はこの点に限定される訳ではなく、本発明の負荷のバランスを取る態様は、他の種類の記憶システム(例えば、非インテリジェント記憶システム、テープ・ドライブ記憶システム等)、更に他の種類のコンピュータ・システム資源に対してワークロードのバランスを取ることに関連して用いることも可能であることは認められよう。この点について、本発明の負荷のバランスを取る態様は、コンピュータ・システムのいずれの2構成要素間にある多数のパス上でもワークロードのバランスを取るために用いることができる。
以上、本発明の実施形態をいくつか詳細に説明したが、種々の変更や改良も当業者には容易に想起されよう。このような変更や改良は、本発明の精神および範囲内に該当するものと見なす。したがって、前述の説明は一例に過ぎず、限定として意図するのではない。本発明は、以下の特許請求の範囲およびその均等物によってのみ定義されることとする。
Claims (6)
- ホスト・コンピュータと、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスとを含むマルチパス・コンピュータ・システムにおいて、少なくとも2つのパス間で入出力(I/O)動作を分散する方法であって、
(A)前記ホスト・コンピュータと前記システム資源との間の伝送のために割り当てられる次のI/O動作に対して、前記少なくとも2つのパスを通じた伝送のため以前に割り当てられ整列されているI/O動作の状態に基づいて、前記少なくとも2つのパスから前記次のI/O動作の送信のための1つを選択するステップから成り、各I/O動作は、前記システム資源によって処理されるときに関連するデータ・アクセス時間を有し、
前記ステップ(A)は、前記少なくとも2つのパスに対して以前に割り当てられ整列されているI/O動作の予測されるデータ・アクセス時間に基づいて、前記少なくとも2つのパスの内前記1つを選択するステップを含み、
前記システム資源は、キャッシュを含む少なくとも1つの記憶システムを含み、キャッシュ・ヒットおよびキャッシュ・ミスが前記記憶システムにおいて異なる平均データ・アクセス時間を有し、前記ステップ(A)は、前記少なくとも2つのパスに対して以前に割り当てられ整列されているI/O動作に対するキャッシュ・ヒットおよびキャッシュ・ミスの数を推定し、キャッシュ・ヒットおよびキャッシュ・ミスの前記推定数に基づいて、前記少なくとも2つのパスの内前記1つを選択することを含む、方法。 - 請求項1記載の方法において、前記システム資源は少なくとも1つの記憶システムを含み、前記記憶システムからの読み出しおよび前記記憶システムへの書き込みは異なる平均データ・アクセス時間を有し、前記ステップ(A)は、前記少なくとも2つのパスに対して以前に割り当てられ整列されているI/O動作における読み出しおよび書き込みの数に基づいて、前記少なくとも2つのパスの内前記1つを選択するステップを含む、方法。
- 請求項1に記載の方法において、更に、
前記ホスト・コンピュータと前記システム資源との間の伝送のために割り当てられる全てのI/O動作毎に、前記少なくとも2つのパスを通じた伝送のため以前に割り当てられ整列されているI/O動作の状態に基づいて、前記少なくとも2つのパスから前記I/O動作の伝送のための1つを選択するステップを含む方法。 - マルチパス・コンピュータ・システムにおいて使用可能なホスト・コンピュータであって、前記マルチパス・コンピュータ・システムは、システム資源と、前記ホスト・コンピュータを前記システム資源に結合する複数のパスを含み、前記ホスト・コンピュータは、
前記ホスト・コンピュータによって開始された入出力(I/O)動作を、前記システム資源に伝送するために前記複数のパスの内少なくとも2つの間で分散するドライバを備え、該ドライバは、前記ホスト・コンピュータから前記システム資源への伝送のために割り当てられる次のI/O動作に対して、前記複数のパスの内前記少なくとも2つを通じて前記システム資源に伝送するため以前に割り当てられ整列されているI/O動作の状態に基づいて、前記少なくとも2つのパスの内1つを選択し、
各I/O動作は、前記システム資源によって処理されるときに関連するデータ・アクセス時間を有し、前記ドライバは、前記複数のパスの内前記少なくとも2つに対して以前に割り当てられ整列されているI/O動作の予測されるデータ・アクセス時間に基づいて、前記複数のパスの前記少なくとも2つの内前記1つを選択し、
前記システム資源は、キャッシュを含む記憶システムであり、キャッシュ・ヒットおよびキャッシュ・ミスが前記記憶システムにおいて異なる平均データ・アクセス時間を有し、前記ドライバは、前記複数のパスの内前記少なくとも2つに対して以前に割り当てられ整列されているI/O動作におけるキャッシュ・ヒットおよびキャッシュ・ミスの数を推定し、キャッシュ・ヒットおよびキャッシュ・ミスの前記推定数に基づいて、前記複数のパスの前記少なくとも2つの内前記1つを選択する、ホスト・コンピュータ。 - 請求項4記載のホスト・コンピュータにおいて、前記システム資源は記憶システムであり、前記記憶システムからの読み出しおよび前記記憶システムへの書き込みは異なる平均データ・アクセス時間を有し、前記ドライバは、前記複数のパスの内前記少なくとも2つに対して以前に割り当てられ整列されているI/O動作における読み出しおよび書き込みの数に基づいて、前記複数のパスの前記少なくとも2つの内前記1つを選択する、ホスト・コンピュータ。
- 請求項4に記載のホスト・コンピュータにおいて、
前記ホスト・コンピュータと前記システム資源との間の伝送のために割り当てられる全てのI/O動作毎に、前記ドライバが前記少なくとも2つのパスを通じた伝送のため以前に割り当てられ整列されているI/O動作の状態に基づいて、前記少なくとも2つのパスから前記I/O動作の伝送のための1つを選択する、ホスト・コンピュータ。
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 (1)
Publication Number | Publication Date |
---|---|
JP2006351030A true JP2006351030A (ja) | 2006-12-28 |
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 (2)
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 | マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置 |
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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011186944A (ja) * | 2010-03-10 | 2011-09-22 | Nec Corp | 物理装置制御システム |
Families Citing this family (114)
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 |
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 |
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 |
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 |
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 |
US6802021B1 (en) * | 2001-01-23 | 2004-10-05 | Adaptec, Inc. | Intelligent load balancing for a multi-path storage system |
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 |
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 |
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 |
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 |
US7080221B1 (en) | 2003-04-23 | 2006-07-18 | Emc Corporation | Method and apparatus for managing migration of 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 |
US7263590B1 (en) | 2003-04-23 | 2007-08-28 | Emc Corporation | Method and apparatus for migrating data in a computer system |
US7805583B1 (en) | 2003-04-23 | 2010-09-28 | Emc Corporation | Method and apparatus for migrating 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 | ストレージシステム |
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 |
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 |
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 |
US8146092B2 (en) | 2008-10-10 | 2012-03-27 | Hitachi, Ltd. | System and method for selecting and executing an optimal load distribution processing in a storage system |
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 |
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 |
US8775713B2 (en) * | 2011-12-27 | 2014-07-08 | Intel Corporation | Multi-protocol tunneling over an I/O interconnect |
US8856420B2 (en) * | 2011-12-27 | 2014-10-07 | Intel Corporation | Multi-protocol I/O interconnect flow control |
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 |
US8972405B1 (en) | 2012-07-26 | 2015-03-03 | Emc Corporation | Storage resource management information modeling in a cloud processing environment |
US10528262B1 (en) | 2012-07-26 | 2020-01-07 | EMC IP Holding Company LLC | Replication-based federation of scalable data across multiple sites |
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 | 資料傳輸選擇電路及方法 |
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 |
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 |
US9473590B1 (en) | 2012-12-21 | 2016-10-18 | Emc Corporation | Client connection establishment over fibre channel using a block device access model |
US9407601B1 (en) * | 2012-12-21 | 2016-08-02 | Emc Corporation | Reliable client transport 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 |
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 |
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 |
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)
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 |
-
1998
- 1998-12-31 US US09/223,998 patent/US6434637B1/en not_active Expired - Lifetime
-
1999
- 1999-12-29 GB GB0114064A patent/GB2359170B/en not_active Expired - Lifetime
- 1999-12-29 WO PCT/US1999/031105 patent/WO2000039679A2/en active Application Filing
- 1999-12-29 JP JP2000591507A patent/JP2002533831A/ja active Pending
- 1999-12-29 DE DE19983857T patent/DE19983857T1/de not_active Ceased
-
2002
- 2002-05-15 US US10/145,932 patent/US6542944B2/en not_active Expired - Lifetime
-
2005
- 2005-03-28 JP JP2005092587A patent/JP4405935B2/ja not_active Expired - Lifetime
-
2006
- 2006-08-02 JP JP2006210923A patent/JP2006351030A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011186944A (ja) * | 2010-03-10 | 2011-09-22 | Nec Corp | 物理装置制御システム |
Also Published As
Publication number | Publication date |
---|---|
WO2000039679A3 (en) | 2000-11-23 |
US6434637B1 (en) | 2002-08-13 |
GB0114064D0 (en) | 2001-08-01 |
JP4405935B2 (ja) | 2010-01-27 |
JP2005259155A (ja) | 2005-09-22 |
US6542944B2 (en) | 2003-04-01 |
US20020166005A1 (en) | 2002-11-07 |
WO2000039679A2 (en) | 2000-07-06 |
JP2002533831A (ja) | 2002-10-08 |
GB2359170B (en) | 2003-12-24 |
DE19983857T1 (de) | 2002-01-31 |
GB2359170A (en) | 2001-08-15 |
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 | |
JP4383132B2 (ja) | 仮想化制御装置及び計算機システム | |
JP3541744B2 (ja) | ストレージサブシステム及びその制御方法 | |
US9043571B2 (en) | Management apparatus and management method | |
KR100419680B1 (ko) | 계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체 | |
US5131087A (en) | Computer system having apparatus for automatically redistributing data records stored therein | |
KR100420419B1 (ko) | 계산 환경의 분할들의 그룹들을 관리하는 방법, 시스템 및 기록 매체 | |
JP4790372B2 (ja) | ストレージのアクセス負荷を分散する計算機システム及びその制御方法 | |
EP0426354A2 (en) | Method for channel path load balancing and data processing system employing same | |
US7627731B2 (en) | Storage apparatus and data management method using the same | |
US20020065833A1 (en) | System and method for evaluating changes in performance arising from reallocation of files among disk storage units | |
JPH05225066A (ja) | 優先順位付けキャッシュ管理方法 | |
US6480904B1 (en) | Disk-time-sharing apparatus and method | |
US20050149638A1 (en) | Storage control device and method for management of storage control device | |
US20110119407A1 (en) | Method and system for implementing workload management by monitoring disk utilizations | |
JP2005165852A (ja) | ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法 | |
JP2009015844A (ja) | 要求優先順位シーク・マネージャ | |
JP2003131908A (ja) | 記憶制御装置 | |
US6671774B1 (en) | Method and apparatus for performing swap analysis | |
US6633955B1 (en) | Four way support for dynamic mirror service policy | |
US9465745B2 (en) | Managing access commands by multiple level caching | |
US20060039351A1 (en) | Computer system for controlling routed data amount | |
JP2001184175A (ja) | ストレージ管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090407 |