JP4188602B2 - クラスタ型ディスク制御装置及びその制御方法 - Google Patents
クラスタ型ディスク制御装置及びその制御方法 Download PDFInfo
- Publication number
- JP4188602B2 JP4188602B2 JP2002002936A JP2002002936A JP4188602B2 JP 4188602 B2 JP4188602 B2 JP 4188602B2 JP 2002002936 A JP2002002936 A JP 2002002936A JP 2002002936 A JP2002002936 A JP 2002002936A JP 4188602 B2 JP4188602 B2 JP 4188602B2
- Authority
- JP
- Japan
- Prior art keywords
- control unit
- channel control
- access request
- channel
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1012—Load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、データを複数の磁気ディスク装置に格納するディスクサブシステムに関し、特にクラスタ型ディスク制御装置とその制御方法に関する。
【0002】
【従来の技術】
多数台の磁気ディスク装置(以下ドライブと呼ぶ)に対するデータの格納および読み出しを行うディスク制御装置(以下DKCと呼ぶ)があり、ドライブとDKCとをあわせてディスクサブシステムと総称されている。
ディスクサブシステムに対する要求の1つとして記憶容量の増大および管理コストの削減とがある。1台のDKCで管理可能なドライブの容量には限界があるため、複数のディスクサブシステムを用意して記憶容量を増加する。すると、その管理に必要となる管理コストも同様に増大するのである。そこで、従来サーバ毎に接続されこの結果分散配置されていたディスクサブシステムの集中化を図るべくストレージエリアネットワーク(以下SANと呼ぶ)が注目されている。
図2には、SAN環境におけるディスクサブシステムの典型例を示す。複数台のディスクサブシステム1がSANスイッチ39を介してホストコンピュータ0に接続される。1つのディスクサブシステムは1台のディスク制御装置10のみから構成されていて、チャネル2を介してSANスイッチ39と接続されている。論理ディスク7は、ホストコンピュータ0が認識する記憶領域である。ホストコンピュータ0は、SANスイッチ39とチャネル2を介して論理ディスク7の特定のアドレスに対してデータの参照、更新要求を指示する。チャネル2としては、ファイバチャネル、SCSIなどがある。ディスク制御装置10と複数台のドライブ17は、ドライブIF16で接続される。ドライブIF16には、ファイバチャネル、SCSIなどが用いられる。DKC10は、大きくは、チャネルの制御を行うチャネル制御部11、ドライブの制御を行うディスク制御部14、DKCの制御情報3を格納する制御メモリ部12、キャッシュデータ5を保持するキャッシュメモリ部13、さらに、各構成部品を相互に接続する結合機構15から構成される。結合機構15は、バス、相互結合網などが用いられる。ディスク制御装置10は、ホストコンピュータ0の指示に従い、データの参照、更新処理を行う。
一方、SAN環境においては、ホストコンピュータは、アクセス対象とするデータがどのディスクサブシステムに存在しているかを知らなければデータにアクセスできない。したがって、ユーザがデータの所在を管理せねばならないという問題がある。特開平2000−99281号公報には、従来1台のDKCから構成していたディスクサブシステムを、SANスイッチを介さずに複数台のDKCでクラスタ構成して記憶容量と接続チャネル数を増大したディスクサブシステムが開示されている。クラスタ型ディスクサブシステムは、1台のディスクサブシステムとして管理が可能なので管理コストも削減できる。
図3には、クラスタ型ディスクサブシステムの構成例を示す。図3のディスクサブシステムでは、複数のDKC10間にディスク制御装置間接続手段20を設けることによりDKC間での相互データアクセスを可能としている。これにより複数のディスク制御装置間でのデータの共有が可能になる。
【0003】
【発明が解決しようとする課題】
図3に示すような従来のクラスタ構成のディスクサブシステムにおいては、内部のDKC間で負荷に偏りが生じた場合に負荷を分散することができず、内部DKC間で同等の性能を引き出すことができない。ホストコンピュータからのアクセス要求が特定DKCに集中した場合、別のDKCの稼働率が低い場合においても、ホストコンピュータが指定した要求先DKCが処理を実行するので、要求先として特定DKCによってしか処理が実行されないため負荷に偏りが生じるのである。
【0004】
また、チャネル制御部が障害に陥った場合には、そのチャネル制御部に接続されているチャネルは使用不可能になってしまう。ホストコンピュータが指定したチャネルのみを経由してディスク制御装置にアクセスするためである。
【0005】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、クラスタ型ディスク制御装置において、複数のディスク制御装置と、前記複数のディスク制御装置の各々が有するチャネル制御部を相互に接続するスイッチとを有し、前記スイッチは、ホストコンピュータと接続され、前記ホストコンピュータから指定されたアクセス要求の宛先であるチャネル制御部と当該アクセス要求に応じたリード処理又はライト処理を代行するチャネル制御部との対応情報を保持し、前記対応情報に基づいて、前記ホストコンピュータから送信された前記アクセス要求を当該アクセス要求に応じたリード処理又はライト処理を代行するチャネル制御部に転送し、各前記ディスク制御装置は、それぞれ前記アクセス要求に応じたリード処理又はライト処理をどの段階まで代行するかを規定した代行レベル情報を保持し、前記チャネル制御部は、当該代行レベル情報に基づいて、前記スイッチから転送された他の前記チャネル制御部を宛先とする前記アクセス要求に応じたリード処理又はライト処理のうちの対応する段階までの処理を代行するようにした。
【0006】
また本発明においては、複数のディスク制御装置と、前記複数のディスク制御装置の各々が有するチャネル制御部を相互に接続するスイッチとを有するクラスタ型ディスク制御装置の制御方法であって、前記スイッチが、ホストコンピュータからのアクセス要求を所定の情報に基づき所定のチャネル制御部へ転送し、前記アクセス要求が転送された前記チャネル制御部が前記ホストコンピュータからのアクセス要求の宛先と異なる場合、前記アクセス要求を受信したチャネル制御部が、前記アクセス要求に応じた途中段階までのリード処理又はライト処理を実行し、前記アクセス要求の宛先の前記チャネル制御部に途中段階までの処理終了を通知し、途中段階まで前記アクセス要求を処理した前記チャネル制御部が、前記アクセス要求の返答として、前記ホストコンピュータからアクセス要求先として指定された宛先チャネル制御部が返答の発行元であるとするデータを前記ホストコンピュータに対して送信すると共に、前記アクセス要求に対応するリード処理又はライト処理の残りを前記アクセス要求の宛先の前記チャネル制御部が実行するようにした。
【0007】
【発明の実施の形態】
以下、図面を用いて、発明の詳細を説明する。
【0008】
はじめに、図1を用いて、本発明に係るディスク制御装置について説明する。図1は、本発明に係わるディスク制御装置の概要を示すブロック図の一例である。ディスクサブシステム1は複数台のDKC10とチャネル−DKC間スイッチ30と複数のドライブにより構成する。ディスクサブシステム1は、複数のチャネル2を介して、複数のホストコンピュータ0に接続する。チャネル−DKC間スイッチ30はホストコンピュータ0からの要求を分配テーブル31に基づいて該当DKC10に転送する。各DKC10は、各DKC10の間を接続するディスク制御装置間接続手段20を介して、他のDKCに接続したドライブ17に格納した格納データ4を参照、更新できる。本発明では、特に、ホストコンピュータ0からのアクセス要求をチャネル−DKC間スイッチ30が受信し、アクセス要求の宛先と分配テーブル31に基づいて、該当アクセス要求を該当DKC10のチャネル制御部11に転送することに特徴がある。
【0009】
以下、詳細に説明するが先立って、用いる用語の定義を行う。本発明では、ホストコンピュータ0からのアクセス要求の宛先となるDKC10のチャネル制御部11を宛先チャネル制御部と呼ぶ。チャネル−DKC間スイッチ30の転送先変更により該当アクセス要求を受信したチャネル制御部11を要求受信チャネル制御部または代行チャネル制御部と呼ぶ。代行チャネル制御部が、該当アクセス要求に対する処理を行うことを代行と呼び、その処理を代行処理と呼ぶ。また、代行チャネル制御部が代行を途中段階で中断し、他のチャネル制御部が継続して処理を行うことを引継ぎと呼び、その処理を引継ぎ処理と呼ぶ。また、代行チャネル制御部がアクセス要求に対する処理を全て行うことを完全代行と呼び、その処理を完全代行処理と呼ぶ。
【0010】
図1に示したディスクサブシステム1は、大きくは、複数台のDKC10と、ドライブ17、チャネル−DKC間スイッチ30から構成する。DKC10の詳細は2台のみ詳細に示しているが、各DKC10の各々の構成は同一である。DKC10は、大きくは、チャネルの制御を行うチャネル制御部11、ドライブの制御を行うディスク制御部14、DKC10の制御情報3を格納する制御メモリ部12、ドライブ17のデータを一時的にキャッシュデータ5として保持するキャッシュメモリ部13、さらに、各構成部品を相互に接続する結合機構15から構成する。チャネル制御部11は、単独のチャネル制御部に複数のチャネルを持つ構成でもよい。しかし以降の説明では、簡単化のため、1つのチャネル制御部11は1つのチャネル2のみを持つ場合を示す。このため、後述するチャネル制御部の識別子とチャネルの識別子は一致している。制御メモリ部12は、キャッシュメモリ部13内データのディレクトリ情報も格納されており、各キャッシュメモリ部13に要求データが存在するかどうかを確認できる。また、制御メモリ部12は装置構成情報も格納しており、アクセス要求先のアドレスにより、アクセス要求先のディスク制御装置番号とドライブ番号を識別できる。図示はしていないが、チャネル制御部11やディスク制御部14は、制御用のプロセサを備え、プロセサ上で処理プログラムが動作する。チャネル−DKC間スイッチ30は、分配テーブル31を備える。
図4は、図1におけるチャネル−DKC間スイッチ30の構成とチャネル−DKC間スイッチに備えた分配テーブル31に格納する情報の一例を示したブロック図である。チャネル−DKC間スイッチは、ホストコンピュータ0とチャネルを介して接続するホストコンピュータ側入出力部301と、DKCに接続するDKC側入出力部302を備える。ホストコンピュータ側入出力部301は複数のホスト側ポート3011を、DKC側入出力部302は複数のDKC側ポート3021を備える。これらが相互結合網303を介して接続されており、任意のホスト側ポート3011と任意のDKC側ポート3021でデータ転送が可能となる。一般にポートはそれぞれに識別子をもつ。例えばインターネットプロトコルならばMACアドレス、ファイバチャネルプロトコルならばWWNである。ここでは一般化のため、番号として表記し、各々のチャネル制御部の識別子をチャネル制御部番号、ホストコンピュータの識別子をホストコンピュータ番号などとする。チャネル−DKC間スイッチ30は、DKC側から来たデータに関してはホストコンピュータ−ポート番号変換テーブル32に基づき該当するDKC側ポートが該当するホスト側ポートに転送する。ホストコンピュータ側から来たデータ(アクセス要求)に関しては分配テーブル31に基づき転送を行う。
【0011】
分配テーブル31は、ホストコンピュータからのアクセス要求の宛先チャネル制御部とその要求を転送するDKC側ポート番号の対応情報を保持する。本実施例では、ホストコンピュータからのアクセス要求を宛先チャネル制御部に対応する転送先DKC側ポート番号の要素が0の場合は、その転送先DKC側ポート3021には該当する宛先の要求を転送せず、それ以外の場合には、宛先が該当チャネル制御部番号の要求を転送するDKC側ポート3021の候補となる。ここでは、要素上段のように転送先候補のものを1とするものや、要素下段のようにそれぞれが選択される確率を示すものでもよい。前者の方法では、複数の転送先が1の場合は、ラウンドロビンなどの方法で転送先のチャネル制御部を選択する。後者の方法については、図25を用いて後述する。本実施例図4で示した分配テーブル31の要素は、チャネル制御部番号3のチャネル制御部は障害下にあり、チャネル制御部番号1のチャネル制御部は高負荷状態にある場合の例である。分配テーブル31の宛先チャネル制御部番号が3の列は、障害下にあるチャネル制御部番号3のチャネル制御部に代わってチャネル制御部番号5のチャネル制御部がアクセス要求を処理することを示している。また、宛先チャネル制御部番号が1の列は、チャネル制御部番号4が高負荷状態にあるチャネル制御部番号1の宛先の要求を半分の割合で処理することを示している。分配テーブル31は1つの宛先に対して複数の転送先を設定可能な点が特徴である。分配テーブル31を用いることにより、要求を本来の宛先チャネル制御部から他のチャネル制御部に割り振ることが可能になりチャネル制御部11の負荷分散や障害処理が可能になる。
【0012】
図5は、図1におけるチャネル制御部11に備えられた代行レベルテーブル113に格納する情報の一例を示したブロック図である。チャネル制御部は制御プロセッサ110を有し、制御プロセッサ部110はホスト要求処理部111とモニタ機構部112を備える。ホスト要求処理部111により、チャネル制御部11が受領したホストコンピュータのアクセス要求を処理する。またモニタ機構部112により、SVP40にチャネル制御部11の状態を報告する。本実施例では、チャネル制御部11に代行レベルテーブル113を備えているが、該代行レベルテーブルは、制御メモリ部12に備えても良い。
【0013】
代行レベルテーブル113は、宛先チャネル制御部に代わりに、要求を受信したチャネル制御部がどの段階まで処理を行うかの段階を示す代行レベル情報を保持する。例えば、チャネル制御部11のキャッシュミス時のリード要求は、コマンド解析(段階1)、キャッシュヒット判定(段階2)、キャッシュにドライブのデータを格納するステージング処理をディスク制御部に要求(段階3)、ステージング処理終了判定(段階4)、データ転送(段階5)となるとする。本実施例の代行レベルテーブル113では、該当チャネル制御部がチャネル制御部番号4に対するリード要求に関しては段階2、つまり、キャッシュヒット判定までの処理を行い、段階3以降の処理はチャネル制御部番号4のチャネル制御部が行う。また、チャネル制御部番号6に対するアクセス要求に関しては該当チャネル制御部が段階1から段階5までの全ての処理を行う(完全代行)。本実施例では、リード/ライトアクセスに対する代行レベルを分けているが、リードおよびライトアクセスに対して同一の代行レベルとなるような代行レベルテーブルとしても良い。
【0014】
図6は、図1における制御メモリ部12に備えた代行処理情報124に格納する情報の一例を示したブロック図である。制御メモリ部12は、制御情報121、ディレクトリ情報122、装置構成情報123、代行処理情報124を有する。制御情報121は、装置制御に用いる情報が格納されており、例えば、チャネル制御部11がディスク制御部14にデータのステージング処理を依頼するなどに用いる。ディレクトリ情報122は、データの存在する装置の対応を示す。装置構成情報123は、各部の存在や容量などの情報を保持している。次に、代行処理情報124について説明する。
【0015】
代行処理情報124は、処理の引継ぎに関する情報であり、ジョブ番号1241、要求ホスト1242、要求宛先1243、コマンド内容1244、処理段階1245、データ存在アドレス1246を有する。ジョブ番号1241は、アクセス要求処理に対する識別番号で、ディスク制御部に対するデータ転送を依頼するときなどに用いる。要求ホスト1242はアクセス要求をしたホストコンピュータ0の識別子である。要求宛先1243は該当ホストコンピュータ0が発行した要求の本来の宛先チャネル制御部識別子である。要求宛先1243を参照することにより、該当要求宛先以外のチャネル制御部が該当要求宛先のチャネル制御部から要求に対する応答を返したような情報を応答に記載することが可能になる。コマンド内容1244は、要求を受領したチャネル制御部が行った要求の解析結果が、リード、ライト等どのコマンドであるかをあらわす情報である。処理段階1245は、要求を受領したチャネル制御部がどの段階までの処理を行ったかを示す情報である。処理段階1245には、キャッシュヒット/ミス等の処理の進行に関する情報も含む。データ存在アドレス1246は代行した処理段階で得られたデータが存在するアドレスを示す。
【0016】
本実施例では、制御メモリ部12に代行処理情報124を格納しているが、代行処理情報124をチャネル制御部間でメッセージとして伝達してもよい。
【0017】
図20は、図1におけるSVP40の詳細である。SVP40は制御プロセッサ400、負荷情報テーブル401、チャネル制御部−ポート番号変換テーブル402、ポート番号−チャネル制御部変換テーブル403、装置管理インタフェース部404を有する。制御プロセッサ400は障害監視部4001、負荷監視部4002、テーブル指示部4003、ローカルメモリ4004を有する。障害監視部4001は、ディスクサブシステム1各部の定期的なアクセスや各部からの報告を受ける機能を行う部位であり、ディスクサブシステム1各部の障害情報を管理する。負荷監視部4002は、ディスクサブシステム1各部の負荷率を各部からの報告を受けることにより計測する機能で、各部の負荷状況を管理する。テーブル指示部4003は、分配テーブル31または代行レベルテーブル113を変更する機能を持つ。ローカルメモリ4004は負荷率順にソートした結果を収容するなど、一連の手続きで必要となる一時的な情報を格納する。装置管理インタフェース部404は、装置管理者が装置設定を行う場合や装置状態を確認する場合の入出力インタフェースである。負荷情報テーブル401は、負荷監視部4002により得られた各チャネル制御部の負荷率を格納する。負荷情報テーブル401を参照し、各チャネル制御部を負荷率順でソートすることなどが可能となる。チャネル制御部−ポート番号変換テーブル402とポート番号−チャネル制御部変換テーブル403は、チャネル制御部11番号とDKC側ポート3021番号の対応情報を保持する。これらにより、後述するSVP40による分配テーブル31の更新が、チャネル制御部11番号とDKC側ポート3021番号の関係がどのような場合であっても可能となる。
【0018】
SVP40が分配テーブル31の参照や更新を行う場合、チャネル制御部−ポート番号変換テーブル402やポート番号−チャネル制御部変換テーブル403に照らし合わせ、実際のチャネル制御部番号に対応するDKC側ポート番号を知る。以降では簡単化のため、SVPはチャネル制御部番号に対応するDKC側ポート番号を予め知っているものとして「該当転送先チャネル制御部の行」等の記述を用いる。
【0019】
本実施例では、負荷情報テーブル401、チャネル制御部−ポート番号変換テーブル402、ポート番号−チャネル制御部変換テーブル403をSVP40に格納したが、制御メモリ部12やチャネル−DKC間スイッチ30に格納しても良い。
【0020】
次に流れ図を用いてチャネル制御部11およびSVP40の制御方法を説明する。この制御方法は、チャネル制御部が負荷の高い状態や障害状態にある場合、チャネル−DKC間スイッチ30によりアクセス要求が該当チャネル制御部とは別のチャネル制御部に転送して負荷分散およびフェイルオーバを可能にするものである。本発明の制御方法の形態は大きく2つある。アクセス要求を受信したチャネル制御部が処理をすべて行う完全代行の形態と、アクセス要求を受信したチャネル制御部が途中段階まで処理を行い(代行)その後該当アクセス要求の本来の宛先であるチャネル制御部が該当処理を継続し該当アクセス要求処理を完了する(引継ぎ)代行引継ぎの形態である。この2つの形態ごとに、リード・ライト要求に対するチャネル制御部11の制御方法、チャネル制御部障害発生時および障害回復時のSVP40の制御方法、チャネル制御部間の負荷に偏りが生じた場合のSVP40の制御方法を説明する。なお、ここでは分配テーブル31の実施形態として、分配テーブルの要素が転送先候補とするか否かの2値とした場合と転送先とする確率を示した場合とがある。SVP40のそれぞれの制御方法では分配テーブルの各実施形態についての説明を行う。
【0021】
まず、完全代行の制御方法を説明する。図7はリードアクセス要求に、図8はライトアクセス要求に対するチャネル制御部11の制御方法を示す流れ図である。この方法で制御するチャネル制御部を備える装置で、SVP40が分配テーブル31を変更することによりチャネル制御部の障害を回避する制御方法を流れ図で示したものが図9である。同様に該当チャネル制御部が障害から回復した場合のSVPの制御方法を流れ図で示したものが図10である。また、チャネル制御部間の負荷に偏りが生じた場合に、分配テーブル31を変更し高い負荷状態にあるチャネル制御部に転送するアクセス要求の割合を減らすことにより負荷分散するSVPの制御方法を図11に示す。図9、図10、図11はいずれも分配テーブルの要素が転送先候補とするか否かの2値で示す場合の実施例であり、分配テーブルの要素を転送先とする確率を示す場合の対応する実施例は図14、図13、図12に示す。
【0022】
図7は、リード要求受領時の処理の一例を示す流れ図である。リード要求を受領すると、受信要求から、本来の要求宛先のチャネル制御部とコマンドとアクセス先アドレスを解析し、リードアクセスであることを認識する(ステップ1)。アクセス先アドレスは、制御メモリ部12の装置構成情報123を参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できる。次に、ステップ1で識別した当該DKCのキャッシュに対してキャッシュヒットミス判定を行う(ステップ2)。制御メモリ部12のディレクトリ情報122を参照することで、アクセス先データがキャッシュに保持されているかを識別可能である。キャッシュに保持しているか判定し(ステップ3)、キャッシュに保持していないキャッシュミスの場合は、当該DKCのディスク制御部対して当該データのドライブからキャッシュへの転送依頼を行う(ステップ5)。通常この処理はステージング処理と呼ばれる。この場合転送終了までリード処理を中断し(ステップ6)、ステージング終了後、再びリード処理を継続することになる。また、転送先のキャッシュアドレスは、キャッシュの空きリストなど一般的な方法で管理、取得すればよいが、転送先アドレスをディレクトリ情報122を更新することで登録する必要がある。ステップ3でヒット判定の場合、または、ステップ7でステージング処理が終了した場合は、ホストコンピュータに対して当該データを転送する(ステップ4)。ステップ4の際、処理を行ったチャネル制御部がホストコンピュータのアクセス要求の宛先と異なっていても、該当チャネル制御部と異なる本来の宛先チャネル制御部の識別子を応答データの発信元として応答データに付与し、本来の宛先チャネル制御部が応答したとするようにデータを転送する。この点が本実施例の特徴である。
図8は、ライト要求受信時の処理の一例を示す流れ図である。ライト要求を受領すると、受信要求から、本来の要求宛先のチャネル制御部とコマンドとアクセス先アドレスを解析し、ライトコマンドであると認識する(ステップ1)。アクセス先アドレスは、制御メモリ部12の装置構成情報123を参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できる。次に、ステップ1で識別した当該DKCのキャッシュに対してキャッシュヒットミス判定を行う(ステップ2)。制御メモリ部12のディレクトリ情報122を参照することで、アクセス先データがキャッシュに保持されているかを識別可能である。キャッシュに保持していないキャッシュミスの場合は、当該DKCのディスク制御部対して当該データのドライブからキャッシュへの転送依頼を行う(ステップ6)。通常この処理はステージング処理と呼ばれる。この場合転送終了までライト処理を中断し(ステップ7)、ステージング終了後、再びライト処理を継続することになる。また、転送先のキャッシュアドレスは、キャッシュの空きリストなど一般的な方法で管理、取得すればよいが、転送先アドレスをディレクトリ情報122を更新することで登録する必要がある。ステップ3でヒット判定の場合、または、ステップ7でステージング処理が終了した場合は、当該DKCのキャッシュに対して当該データの更新を行う(ステップ4)。更新終了後、ホストコンピュータに対してライト処理の完了報告を行う(ステップ5)。ステップ5の際、処理を行ったチャネル制御部がホストコンピュータのアクセス要求の宛先と異なっていても、本来の宛先チャネル制御部が応答したとする完了報告をする。この点が本実施例の特徴である。
図9は、あるチャネル制御部11が障害に陥った場合に、該当チャネル制御部をフェイルオーバするSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は、転送先候補とするか否かの2値の場合の説明をする。ここでは障害下にあるチャネル制御部を障害チャネル制御部と呼ぶ。SVP40の障害監視部4001により、チャネル制御部が障害となったことを認識する(ステップ1)。次に負荷監視部4002により得られた正常なチャネル制御部の負荷率を障害情報テーブル401より参照し、最低負荷率のチャネル制御部を見つける(ステップ2)。その後、分配テーブル31を参照し要求転送先チャネル制御部が障害チャネル制御部の行を順次チェックする(ステップ3)。該当要素が1、すなわちチャネル−DKC間スイッチ30が障害チャネル制御部に要求を転送することになっていた場合は、該当要素を0として障害チャネル制御部に要求を転送しないようにし、また、該当要素の列の要求転送先チャネル制御部が該当最低負荷率のチャネル制御部の要素を1にして要求転送先チャネル制御部が無い状態を防ぐ(ステップ4)。ステップ3、ステップ4を該当行全体に対してチェック終了するまで続ける。
【0023】
図10は、障害下にあったチャネル制御部が障害から回復した場合のSVP40が分配テーブル31を更新する処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先候補とするか否かの2値の場合の説明をする。SVP40の障害監視部4001により、障害下にあったチャネル制御部が障害から回復したことを確認する(ステップ1)。それを受けて、分配テーブル31の要求宛先チャネル制御部の列と要求転送先チャネル制御部の行が共に該当チャネル制御部である要素を1にして、該当チャネル制御部に要求が転送されるようにする(ステップ2)。該当チャネル制御部のフェイルオーバしていたチャネル制御部はこの処理以降の負荷分散を目的とした分配テーブル31の変更により、順次、代行を解除される。
【0024】
図11は、各チャネル制御部11の負荷に偏りが生じた場合におけるSVP40の処理の一例を示す流れ図である。SVP40の負荷監視部4002により得られた負荷情報テーブル401から各チャネル制御部の負荷率に偏りがあることを確認する(ステップ1)。負荷率の偏りは、例えば、最高負荷率と最低負荷率の差が閾値を超えた場合で定義できる。次に、チャネル制御部を負荷率昇順でソートする(ステップ2)。その結果により最高負荷率のチャネル制御部の負荷を下げるように分配テーブル31を更新する。分配テーブルで要求宛先チャネル制御部が該当最高負荷率のチャネル制御部の列をステップ2のソート順にチェックしていく(ステップ3)。該当要素が0ならば、該当要素を1として負荷分散先として登録する(ステップ6)。該当要素が1ならば次の要素をチェックする。全要素チェック後またはステップ6終了後は、分配テーブルで要求転送先チャネル制御部が該当最高負荷率のチャネル制御部である行をステップ2のソート順にチェックしていく(ステップ7)。該当要素が1ならば、該当要素を0として該当最高負荷率のチャネル制御部を負荷分散先から削除する(ステップ10)。該当要素が0ならば次の要素をチェックする。全要素チェック後またはステップ10終了後は、この処理を終了とする。
【0025】
図12は、各チャネル制御部11の負荷に偏りが生じた場合におけるSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先とする確率を示したものである場合の説明をする。SVP40の負荷監視部4002により得られた負荷情報テーブル401から各チャネル制御部の負荷率に偏りがあることを確認する(ステップ1)。次に正常チャネル制御部の負荷率が最低であるものと最高であるものを選択する(ステップ2)。分配テーブル31中の最高負荷率のチャネル制御部が転送先ポートの行について全てのΔ以上の要素からΔを減算する(ステップ3)。この際、障害下にあるチャネル制御部に該当する要素については除外する。さらに、分配テーブル31中の最低負荷率のチャネル制御部が転送先ポートの行についてステップ3にて減算した宛先ポートに対応する要素にΔを足す(ステップ4)。
【0026】
図13は、障害下にあったチャネル制御部が障害から回復した場合におけるSVP40が分配テーブル31を更新する処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先とする確率を示したものである場合の説明をする。SVP40の障害監視部4001により、障害下にあったチャネル制御部が障害から回復したことを確認する(ステップ1)。それを受けて、分配テーブル31の宛先が該当チャネル制御部の列について、ある定数Δ以上の要素に関してはΔを引く。それに対応する障害回復チャネル制御部の列の要素についてΔを足す(ステップ2)。
【0027】
図14は、あるチャネル制御部11が障害に陥った場合に、該当チャネル制御部をフェイルオーバするSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先とする確率を示したものである場合の説明をする。ここでは障害下にあるチャネル制御部を障害チャネル制御部と呼ぶ。SVP40の障害監視部4001により、障害チャネル制御部の存在を確認する(ステップ1)。次に負荷監視部4002により得られた負荷情報テーブル401から正常なチャネル制御部の負荷率を参照し、最低負荷率のチャネル制御部を見つける(ステップ2)。その後、分配テーブル31を参照し要求転送先チャネル制御部が障害チャネル制御部の行を順次チェックする(ステップ3)。該当要素が0より大きい、すなわちチャネル−DKC間スイッチ30が障害チャネル制御部に要求を転送することになっていた場合は、該当要素を0として障害チャネル制御部に要求を転送しないようにし、該当最低負荷率のチャネル制御部の要素に、障害チャネル制御部の元の要素を加算する(ステップ4)。ステップ3、ステップ4を該当行全体に対してチェック終了するまで続ける。
つぎに、代行引継ぎの制御方法を説明する。リードアクセス要求の宛先のチャネル制御部11が高い負荷状態にあるために、チャネル−DKC間スイッチ30により、他のチャネル制御部にリード要求が転送され、リード要求を受信したチャネル制御部11が処理を途中段階まで代行処理行い、その後本来の宛先チャネル制御部が残りの段階の引継ぎ処理を行う場合について、図15にリード要求が転送されたチャネル制御部の代行処理を、図16に本来の宛先チャネル制御部が行う引継ぎ処理を流れ図で示した。ライトアクセス要求の場合に図15、図16に対応するのが図17、図18である。この方法で制御するチャネル制御部を備える装置で、SVP40が、分配テーブル31を変更することによりチャネル制御部の障害を回避しフェイルオーバを行うチャネル制御部の代行レベルテーブル113を変更することで完全代行を指定する制御方法を流れ図で示したものが図19である。該当チャネル制御部が障害から回復した場合のSVPの制御方法は完全代行による場合と同様で図10の流れ図で示される。また、チャネル制御部間の負荷に偏りが生じた場合に、分配テーブル31を変更し高い負荷状態にあるチャネル制御部に転送するアクセス要求の割合を減らし、かつ代行レベルテーブル113により負荷分散先チャネル制御部の代行レベルを設定することにより負荷分散するSVPの制御方法を図21に示す。図19、図10、図21はいずれも分配テーブルの要素が転送先候補とするか否かの2値で示す場合の実施例であり、分配テーブルの要素を転送先とする確率を示す場合の対応する実施例は図22、図13、図23に示す。また、代行レベルを変更することにより、より細かい負荷分配の設定を行う場合のSVP40の制御方法を示す流れ図を図24に示す。
【0028】
図15は、リード要求受信時の処理の一例を示す流れ図である。代行レベルテーブル113に設定された段階の処理までを要求受領チャネル制御部が行い、以降の段階の処理を要求宛先チャネル制御部が行うことが本実施例の特徴である。
【0029】
リード要求を受領すると、受信要求から、本来の要求宛先のチャネル制御部とコマンドとアクセス先アドレスを解析し、リードアクセスであることを認識する(ステップ1)。アクセス先アドレスは、制御メモリ部12の装置構成情報123を参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できる。次に代行レベルテーブル113を参照し、該当チャネル制御部に対する代行レベルを獲得する。該当代行レベルが1の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ11)。本実施例では、制御メモリ部12を通じて代行処理情報124を示すが、メッセージ通信などで該当チャネル制御部に直接代行処理情報124を示してもよい。該当代行レベルが2以上の場合は、ステップ1で識別した当該DKCのキャッシュに対してキャッシュヒットミス判定を行う(ステップ2)。キャッシュに保持していないキャッシュミスの場合は、当該DKCのディスク制御部対して当該データのドライブからキャッシュへの転送依頼を行う(ステップ3)。ここで該当代行レベルが2の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ13)。該当代行レベルが3以上の場合は、転送終了までリード処理を中断し(ステップ6)、ステージング終了後、再びリード処理を継続することになる。ここで該当代行レベルが3の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ14)。ステップ3でヒット判定の場合、該当代行レベルが2以上の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ15)。その後、または、ステップ4でステージング処理が終了した場合は、ホストコンピュータに対して当該データを転送する(ステップ5)。ステップ5の際、処理を行ったチャネル制御部がホストコンピュータのアクセス要求の宛先と異なっていても、本来の宛先チャネル制御部が応答したとするようにデータを転送する。
【0030】
図16は、図15に対応するリード要求に対する代行処理の引継ぎ処理の一例を示す流れ図である。リード要求を受領した代行チャネル制御部の代行レベルテーブル113に設定された段階の処理までを代行チャネル制御部が行い、以降の段階の処理を要求宛先チャネル制御部が行うこと(引継ぎ処理)が本実施例の特徴である。
【0031】
チャネル制御部が該当チャネル制御部を対象とした代行処理情報124の存在を確認すると、該当代行処理情報を解析する(ステップ1)。代行処理情報を解析し処理段階1245を取り出すことにより、代行レベルが判別できる。代行レベルが1ならば、アクセス先DKCのキャッシュに対してキャッシュヒット/ミス判定を行う(ステップ2)。代行レベルが2以上ならば、処理段階1245よりキャッシュヒット/ミスが判別できる。ステップ2でキャッシュミスもしくは代行レベル2でキャッシュミスの場合は、該当ディスク制御部に該当データをキャッシュに転送依頼する(ステップ3)。代行レベル3でキャッシュミスまたはステップ3終了後は、転送終了までリード処理を中断し(ステップ4)、ステージング終了後、再びリード処理を継続することになる。キャッシュヒットもしくはステップ4終了後、該当DKCのチャネル制御部に対し、該当データを参照しチャネルに転送する(ステップ5)。
【0032】
図17は、ライト要求受信時の処理の一例を示す流れ図である。代行レベルテーブル113に設定された段階の処理までを要求受領チャネル制御部が行い、以降の段階の処理を要求宛先チャネル制御部が行うことが本実施例の特徴である。
【0033】
ライト要求を受領すると、受信要求から、本来の要求宛先のチャネル制御部とコマンドとアクセス先アドレスを解析し、ライトアクセスであることを認識する(ステップ1)。アクセス先アドレスは、制御メモリ部12の装置構成情報123を参照することで、アクセス要求先のディスク制御装置番号とドライブ番号を識別できる。次に代行レベルテーブル113を参照し、該当チャネル制御部に対する代行レベルを獲得する。該当代行レベルが1の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ11)。本実施例では、制御メモリ部12を通じて代行処理情報124を示すが、メッセージ通信などで該当チャネル制御部に直接代行処理情報124を示してもよい。該当代行レベルが2以上の場合は、ステップ1で識別した当該DKCのキャッシュに対してキャッシュヒットミス判定を行う(ステップ2)。キャッシュに保持していないキャッシュミスの場合は、当該DKCのディスク制御部対して当該データのドライブからキャッシュへの転送依頼を行う(ステップ3)。ここで該当代行レベルが2の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ13)。該当代行レベルが3以上の場合は、転送終了までライト処理を中断し(ステップ6)、ステージング終了後、再びライト処理を継続することになる。ここで該当代行レベルが3の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ14)。ステップ3でヒット判定の場合、該当代行レベルが2または3の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ15)。その後、または、ステップ4でステージング処理が終了した場合は、当該DKCのキャッシュに対して当該データの更新を行う(ステップ5)。該当代行レベルが4の場合は、要求宛先チャネル制御部に代行処理情報124を示すことで処理の引継ぎを行い、要求受領チャネル制御部は処理を終了する(ステップ16)。更新終了後、ホストコンピュータに対してライト処理の完了報告を行う(ステップ6)。ステップ6の際、処理を行ったチャネル制御部がホストコンピュータのアクセス要求の宛先と異なっていても、本来の宛先チャネル制御部が応答したとする完了報告をする。
【0034】
図18は、図17に対応するライト要求に対する代行処理の引継ぎ処理の一例を示す流れ図である。ライト要求を受領した代行チャネル制御部の代行レベルテーブル113に設定された段階の処理までを代行チャネル制御部が行い、以降の段階の処理を要求宛先チャネル制御部が行うこと(引継ぎ処理)が本実施例の特徴である。
【0035】
チャネル制御部が該当チャネル制御部を対象とした代行処理情報124の存在を確認すると、該当代行処理情報を解析する(ステップ1)。代行処理情報を解析し処理段階1245を取り出すことにより、代行レベルが判別できる。代行レベルが1ならば、アクセス先DKCのキャッシュに対してキャッシュヒット/ミス判定を行う(ステップ2)。代行レベルが2以上ならば、処理段階1245よりキャッシュヒット/ミスが判別できる。ステップ2でキャッシュミスもしくは代行レベル2でキャッシュミスの場合は、該当ディスク制御部に該当データをキャッシュに転送依頼する(ステップ3)。代行レベル3でキャッシュミスまたはステップ3終了後は、転送終了までライト処理を中断し(ステップ4)、ステージング終了後、再びライト処理を継続することになる。代行レベル3でキャッシュヒットもしくはステップ4終了後、該当DKCのキャッシュに対し該当データを更新する(ステップ5)。ステップ5終了後もしくは代行レベル4の場合はホストにライト完了報告する(ステップ6)。
【0036】
図19は、あるチャネル制御部11が障害に陥った場合に、該当チャネル制御部をフェイルオーバするSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先候補とするか否かの2値であり、更に各チャネル制御部が代行レベルテーブル113を持ちSVPにより更新される場合の説明をする。ここでは障害下にあるチャネル制御部を障害チャネル制御部と呼ぶ。SVP40の障害監視部4001により、障害チャネル制御部の存在を確認する(ステップ1)。次に負荷監視部4002により得られた正常なチャネル制御部の負荷率を障害情報テーブル401より参照し、最低負荷率のチャネル制御部を見つける(ステップ2)。その後、分配テーブル31を参照し要求転送先チャネル制御部が障害チャネル制御部の行を順次チェックする(ステップ3)。該当要素が1、すなわちチャネル−DKC間スイッチ30が障害チャネル制御部に要求を転送することになっていた場合は、該当要素を0として障害チャネル制御部に要求を転送しないようにし、また、該当要素の列の要求転送先チャネル制御部が該当最低負荷率のチャネル制御部の要素を1にして要求転送先チャネル制御部が無い状態を防ぐ(ステップ4)。また、該当最低負荷率のチャネル制御部が有する代行レベルテーブル113の障害チャネル制御部に対応する要素を完全代行とする(ステップ5)。ステップ3、ステップ4、ステップ5を該当行全体に対してチェック終了するまで続ける。
【0037】
図21は、各チャネル制御部11の負荷に偏りが生じた場合におけるSVP40の処理の一例を示す流れ図である。SVP40の負荷監視部4002により得られた負荷情報テーブル401から各チャネル制御部の負荷率に偏りがあることを確認する(ステップ1)。負荷率の偏りは、例えば、最高負荷率と最低負荷率の差が閾値を超えた場合で定義できる。次に、チャネル制御部を負荷率昇順でソートする(ステップ2)。その結果により最高負荷率のチャネル制御部の負荷を下げるように分配テーブル31を更新する。分配テーブルで要求宛先チャネル制御部が該当最高負荷率のチャネル制御部の列をステップ2のソート順にチェックしていく(ステップ3)。該当要素が0ならば、該当転送先チャネル制御部が有する代行レベルテーブル113の最高負荷率チャネル制御部の代行レベルを代行時の初期値に設定し(ステップ4)、該当要素を1として負荷分散先として登録する(ステップ5)。該当要素が1ならば次の要素をチェックする。全要素チェック後またはステップ5終了後は、分配テーブルで要求転送先チャネル制御部が該当最高負荷率のチャネル制御部である行をステップ2のソート順にチェックしていく(ステップ6)。該当要素が1ならば、該当要素を0として該当最高負荷率のチャネル制御部を負荷分散先から削除し(ステップ7)、最高負荷率チャネル制御部の代行レベルテーブルの該当宛先チャネル制御部の代行レベルを代行しないに設定する(ステップ8)。該当要素が0ならば次の要素をチェックする。全要素チェック後またはステップ8終了後は、この処理を終了とする。
【0038】
図22は、あるチャネル制御部11が障害に陥った場合に、該当チャネル制御部をフェイルオーバするSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先とする確率を示したものであり、更に各チャネル制御部が代行レベルテーブル113を持ちSVPにより更新される場合の説明をする。ここでは障害下にあるチャネル制御部を障害チャネル制御部と呼ぶ。SVP40の障害監視部4001により、障害チャネル制御部の存在を確認する(ステップ1)。次に負荷監視部4002により得られた正常なチャネル制御部の負荷率を障害情報テーブル401より参照し、最低負荷率のチャネル制御部を見つける(ステップ2)。その後、分配テーブル31を参照し要求転送先チャネル制御部が障害チャネル制御部の行を順次チェックする(ステップ3)。該当要素が0より大きい、すなわちチャネル−DKC間スイッチ30が障害チャネル制御部に要求を転送することになっていた場合は、該当要素を0として障害チャネル制御部に要求を転送しないようにし、該当最低負荷率のチャネル制御部の要素に、障害チャネル制御部の元の要素を加算する(ステップ4)。また、該当最低負荷率のチャネル制御部が有する代行レベルテーブル113の障害チャネル制御部に対応する要素を完全代行とする(ステップ5)。ステップ3、ステップ4、ステップ5を該当行全体に対してチェック終了するまで続ける。
【0039】
図23は、各チャネル制御部11の負荷に偏りが生じた場合におけるSVP40の処理の一例を示す流れ図である。SVPが更新する分配テーブル31の要素は転送先とする確率を示したものであり、更に各チャネル制御部が代行レベルテーブル113を持ちSVPにより更新される場合の説明をする。SVP40の負荷監視部4002により得られた負荷情報テーブル401から各チャネル制御部の負荷率に偏りがあることを確認する(ステップ1)。次に正常チャネル制御部の負荷率が最低であるものと最高であるものを選択する(ステップ2)。分配テーブル31中の最高負荷率のチャネル制御部が転送先ポートの行について全てのΔ以上の要素からΔを減算する(ステップ3)。この際、障害下にあるチャネル制御部に該当する要素については除外する。ここで、代行レベルテーブル113についての整合を取る。ステップ3にて0になった要素に対応する最高負荷率チャネル制御部の代行レベルテーブルの該当宛先チャネル制御部の代行レベルを代行しないに設定する(ステップ4)。次に、分配テーブル31中の最低負荷率のチャネル制御部が転送先ポートの行についてステップ3にて減算した宛先ポートに対応する要素にΔを足す(ステップ5)。またここでも、代行レベルテーブル113についての整合を取る。ステップ5にて0から増加した要素に対応する転送先チャネル制御部の代行レベルテーブルについて最高負荷率チャネル制御部の代行レベルを代行時の初期値に設定する(ステップ6)。
【0040】
図24は、各チャネル制御部11の負荷に偏りが生じた場合におけるSVP40が各チャネル制御部の代行レベルテーブル113の変更を行う処理の一例を示す流れ図である。SVP40の負荷監視部4002により得られた負荷情報テーブル401から各チャネル制御部の負荷率に偏りがあることを確認する(ステップ1)。次に正常チャネル制御部の負荷率が最低であるものと最高であるものを選択する(ステップ2)。ここで、分配テーブル31を参照し、最低負荷率のチャネル制御部が最高負荷率のチャネル制御部を代行しているように記載されているか調べる(ステップ3)。まだ記載が無ければ、前述の実施例により分配テーブル31を更新し処理を終了する(ステップ6)。すでに有るならば、最低負荷率のチャネル制御部の代行レベルテーブル113を参照し、現在の最高負荷率チャネル制御部に対する代行レベルを調査する(ステップ4)。既に最高レベルならばこの処理は終了する。まだ最高レベルに至っていない場合には、最低負荷率チャネル制御部の最高負荷率チャネル制御部に対する代行レベルを1段階上げる(ステップ5)。
【0041】
以上で、チャネル制御部11およびSVP40の制御方法を説明した。次に分配テーブルの要素が転送先確率を示す場合におけるチャネル−DKC間スイッチ30のアクセス要求の転送制御方法を図25により説明する。
【0042】
図25は、分配テーブル31の要素が転送先とする確率を示す場合のチャネル−DKC間スイッチ30において、ホスト側ポート3011がアクセス要求を受けた場合どのDKC側ポート3021に転送するかの選択方法を流れ図で示したものである。まず、ホストコンピュータ0のアクセス要求がホスト側ポート3011に到着したことをホスト側ポートが確認する(ステップ1)。次に、該当アクセス要求の宛先ポートを解析する(ステップ2)。更に、擬似乱数を発生する(ステップ3)。擬似乱数は、つねにカウントアップしているカウンタ値や、毎回更新される乱数の種に一定規則の演算を施し、その結果の下位を用いるなどの方法がある。次に、分配テーブル31の該当宛先ポートの列を参照し、要素がステップ3で得た擬似乱数以上のものを転送先候補とする(ステップ4)。もし候補数が0ならばステップ3に戻る(ステップ5)。候補があるならば、候補の中で、前回選択されたもののインデックスから周期境界条件で正の方向に最も近いものを転送先ポート番号として選択し、該当要求を選択したDKC側ポートに転送する(ステップ6)。
【0043】
次に、装置管理者がSVP40を通じて装置の負荷分散に関する設定を行う場合の画面の一例について図26により説明する。
【0044】
図26は、SVP40がチャネル制御部に対して指示を行うことにより実行する負荷分散について、SVP40の装置管理インタフェース部404を通じて端末(図示せず)等で装置管理者が設定を行う場合の設定画面の実施例である。代行レベル設定画面2601は設定するチャネル制御部を選択する設定チャネル制御部選択欄2630と各チャネル制御部に対応した代行レベル選択欄2610を有する。装置管理者は、キーボード入力やGUIによる選択入力等の方法で、設定チャネル制御部選択欄2630や代行レベル選択欄2610にて、設定するチャネル制御部を選択し、各チャネル制御部の代行レベルを設定可能である。これらは、設定ボタン2621を前述した入力方法で選択すると、本画面で設定した内容が、SVP40を通じて代行レベルテーブル113と分配テーブル31に反映される。代行レベル選択欄2610にて自動設定に選択されたチャネル制御部は、SVP40が代行レベルの更新を行う。これら設定された情報はSVP40のローカルメモリ4004に収納され次回に本画面にて再設定されるまで保持される。また、取消ボタン2622を前述した入力方法で選択すると、本画面を呼び出す前の設定情報が引き続き使用される。
【0045】
【発明の効果】
チャネル−DKC間スイッチを設け、アクセス要求を複数のチャネル制御部に振り分けることを可能にした。このことにより、ホストコンピュータ側に装置の内部構造を意識させないで、チャネル制御部の負荷に応じた負荷分散が可能になる。同様に、障害下にあるチャネル制御部を迂回してアクセス要求を他のチャネル制御部で処理することができる。この場合についても、ホストコンピュータ側は該当チャネル制御部が障害に陥ったことや装置内部構造を意識せずに操作を継続することができる。
【0046】
さらに、本発明の代行処理により負荷分散を行えば、設定した代行レベルによっては、リードアクセス要求処理に、処理を引継ぐチャネル制御部のDKCに対象データが存在するとすれば、リードデータがディスク制御装置間の通信手段を経ることが無くホストコンピュータに応答することが可能になる。これにより、ディスク制御装置間の通信手段に対する負荷分散にもなる。特にシーケンシャルリードの要求が多い環境において負荷分散をする場合、完全代行のような方法ではリードデータがディスク制御装置間の通信手段を占有し、ディスク制御装置間の通信手段がボトルネックとなってしまう。しかしながら、代行処理を用いることにより、装置使用環境に特徴的なアクセス種類によらず、チャネル制御部の負荷分散が可能になる。
【図面の簡単な説明】
【図1】本発明に係わるディスク制御装置の概要を示すブロック図の一例である。
【図2】従来のディスク制御装置の概要を示すブロック図の一例である。
【図3】従来のディスク制御装置の概要を示すブロック図の一例である。
【図4】本発明のディスク制御装置のチャネル−DKC間スイッチを示すブロック図の一例である。
【図5】本発明に係わるディスク制御装置のチャネル制御部を示すブロック図の一例である。
【図6】本発明に係わるディスク制御装置の制御メモリを示すブロック図の一例である。
【図7】本発明に係わるディスク制御装置のチャネル制御部の完全代行リード要求処理の一例を示す流れ図である。
【図8】本発明に係わるディスク制御装置のチャネル制御部の完全代行ライト要求処理の一例を示す流れ図である。
【図9】本発明に係わるディスク制御装置のSVPがチャネル制御部障害によるフェイルオーバの処理の一例を示す流れ図である。
【図10】本発明に係わるディスク制御装置のSVPによるチャネル制御部障害回復した場合の処理の一例を示す流れ図である。
【図11】本発明に係わるディスク制御装置のSVPがチャネル制御部の負荷分散を行う場合の処理の一例を示す流れ図である。
【図12】本発明に係わるディスク制御装置のSVPがチャネル制御部の負荷分散を行う場合の処理の一例を示す流れ図である。
【図13】本発明に係わるディスク制御装置のSVPによるチャネル制御部障害回復した場合の処理の一例を示す流れ図である。
【図14】本発明に係わるディスク制御装置のSVPによるチャネル制御部障害のフェイルオーバの処理の一例を示す流れ図である。
【図15】本発明に係わるディスク制御装置のチャネル制御部の代行リード要求処理の一例を示す流れ図である。
【図16】本発明に係わるディスク制御装置のチャネル制御部の代行引継ぎリード要求処理の一例を示す流れ図である。
【図17】本発明に係わるディスク制御装置のチャネル制御部の代行ライト要求処理の一例を示す流れ図である。
【図18】本発明に係わるディスク制御装置のチャネル制御部の代行引継ぎライト要求処理の一例を示す流れ図である。
【図19】本発明に係わるディスク制御装置のSVPによるチャネル制御部障害のフェイルオーバの処理の一例を示す流れ図である。
【図20】本発明に係わるディスク制御装置のSVPを示すブロック図の一例である。
【図21】本発明に係わるディスク制御装置のSVPがチャネル制御部の負荷分散を行う場合の処理の一例を示す流れ図である。
【図22】本発明に係わるディスク制御装置のSVPによるチャネル制御部障害のフェイルオーバの処理の一例を示す流れ図である。
【図23】本発明に係わるディスク制御装置のSVPがチャネル制御部の負荷分散を行う場合の処理の一例を示す流れ図である。
【図24】本発明に係わるディスク制御装置のSVPがチャネル制御部の負荷分散を行う場合の処理の一例を示す流れ図である。
【図25】本発明に係わるディスク制御装置のチャネル−DKC間スイッチのアクセス要求転送先ポートを決定する処理の一例を示す流れ図である。
【図26】本発明に係わるディスク制御装置の代行レベルを設定時にSVPにより表示される画面の一例を示すブロック図である。
【符号の説明】
0・・・ホストコンピュータ、1・・・ディスクサブシステム、2・・・チャネル、3・・・制御情報、4・・・格納データ、5・・・キャッシュデータ、7・・・論理ディスク、10・・・ディスク制御装置、11・・・チャネル制御部、12・・・制御メモリ、13・・・キャッシュメモリ部、14・・・ディスク制御部、15・・・結合機構、16・・・ドライブIF、17・・・ドライブ、20・・・ディスク制御装置間接続手段、30・・・チャネル−DKC間スイッチ、31・・・分配テーブル、39・・・SANスイッチ、40・・・SVP。
Claims (9)
- 複数のディスク制御装置と、
前記複数のディスク制御装置の各々が有するチャネル制御部を相互に接続するスイッチとを有し、
前記スイッチは、
ホストコンピュータと接続され、前記ホストコンピュータから指定されたアクセス要求の宛先であるチャネル制御部と当該アクセス要求に応じたリード処理又はライト処理を代行するチャネル制御部との対応情報を保持し、前記対応情報に基づいて、前記ホストコンピュータから送信された前記アクセス要求を当該アクセス要求に応じたリード処理又はライト処理を代行するチャネル制御部に転送し、
各前記ディスク制御装置は、
それぞれ前記アクセス要求に応じたリード処理又はライト処理をどの段階まで代行するかを規定した代行レベル情報を保持し、前記チャネル制御部は、当該代行レベル情報に基づいて、前記スイッチから転送された他の前記チャネル制御部を宛先とする前記アクセス要求に応じたリード処理又はライト処理のうちの対応する段階までの処理を代行する
ことを特徴とするクラスタ型ディスク制御装置。 - 前記スイッチは、
前記ホストコンピュータからのアクセス要求の転送先として複数の前記チャネル制御部が指定可能であり、前記対応情報には、前記複数のチャネル制御部の各々が転送先として選ばれる確率の情報が格納される
ことを特徴とする請求項1記載のクラスタ型ディスク制御装置。 - さらにディスク制御装置内情報を管理するサービスプロセッサ(SVP)を有し、前記SVPは前記対応情報を変更する
ことを特徴とする請求項1に記載のクラスタ型ディスク制御装置。 - 前記代行レベル情報は、
前記チャネル制御部ごとに、当該チャネル制御部を宛先とする前記アクセス要求に応じたリード処理又はライト処理をどの段階まで代行するかが規定された
ことを特徴とする請求項1記載のクラスタ型ディスク制御装置。 - 複数のディスク制御装置と、前記複数のディスク制御装置の各々が有するチャネル制御部を相互に接続するスイッチとを有するクラスタ型ディスク制御装置の制御方法であって、
前記スイッチが、ホストコンピュータからのアクセス要求を所定の情報に基づき所定のチャネル制御部へ転送し、
前記アクセス要求が転送された前記チャネル制御部が前記ホストコンピュータからのアクセス要求の宛先と異なる場合、前記アクセス要求を受信したチャネル制御部が、前記アクセス要求に応じた途中段階までのリード処理又はライト処理を実行し、前記アクセス要求の宛先の前記チャネル制御部に途中段階までの処理終了を通知し、
途中段階まで前記アクセス要求を処理した前記チャネル制御部が、前記アクセス要求の返答として、前記ホストコンピュータからアクセス要求先として指定された宛先チャネル制御部が返答の発行元であるとするデータを前記ホストコンピュータに対して送信すると共に、前記アクセス要求に対応するリード処理又はライト処理の残りを前記アクセス要求の宛先の前記チャネル制御部が実行する
ことを特徴とするクラスタ型ディスク制御装置の制御方法。 - 前記複数のディスク制御装置の各々は、前記ホストコンピュータからのアクセス要求を受信したチャネル制御部が前記アクセス要求に応じたリード処理又はライト処理をどの段階まで代行するかを規定した代行レベル情報を有し、
前記アクセス要求が転送された前記チャネル制御部が前記ホストコンピュータからのアクセス要求の宛先と異なる場合、前記アクセス要求を受信したチャネル制御部が、前記代行レベル情報に基づいて、前記アクセス要求に応じたリード処理又はライト処理のうちの対応する段階までの処理を代行する
ことを特徴とする請求項5に記載のクラスタ型ディスク制御装置の制御方法。 - 前記所定情報は、
前記ホストコンピュータから指定されたアクセス要求の宛先である前記チャネル制御部と当該アクセス要求に応じたリード処理又はライト処理を代行するチャネル制御部との対応情報であり、
前記クラスタ型記憶制御装置は、
ディスク制御装置内情報を管理するサービスプロセッサ(SVP)を備え、
前記SVPが、前記チャネル制御部の負荷情報を参照し、負荷が高いチャネル制御部を宛先とした前記ホストコンピュータからの前記アクセス要求を負荷が低いチャネル制御部に転送するように、前記対応情報を変更する
ことを特徴とする請求項6に記載のクラスタ型ディスク制御装置の制御方法。 - 前記SVPが、前記チャネル制御部の障害情報を参照し、障害が発生したチャネル制御部を宛先とした前記ホストコンピュータからの前記アクセス要求を正常なチャネル制御部に転送するように、前記対応情報を変更する
ことを特徴とした請求項7に記載のクラスタ型ディスク制御装置の制御方法。 - 前記SVPが、前記チャネル制御部の負荷情報を参照し、負荷が低いチャネル制御部に対する前記ホストコンピュータからのアクセス要求に応じたリード処理又はライト処理を代行する段階を上げるように前記代行レベル情報を変更する
ことを特徴とする請求項8に記載のクラスタ型ディスク制御装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002002936A JP4188602B2 (ja) | 2002-01-10 | 2002-01-10 | クラスタ型ディスク制御装置及びその制御方法 |
US10/090,767 US7058761B2 (en) | 2002-01-10 | 2002-03-06 | Clustering disk controller, its disk control unit and load balancing method of the unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002002936A JP4188602B2 (ja) | 2002-01-10 | 2002-01-10 | クラスタ型ディスク制御装置及びその制御方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003208267A JP2003208267A (ja) | 2003-07-25 |
JP2003208267A5 JP2003208267A5 (ja) | 2005-06-23 |
JP4188602B2 true JP4188602B2 (ja) | 2008-11-26 |
Family
ID=19190809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002002936A Expired - Fee Related JP4188602B2 (ja) | 2002-01-10 | 2002-01-10 | クラスタ型ディスク制御装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7058761B2 (ja) |
JP (1) | JP4188602B2 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6953392B2 (en) * | 2001-01-05 | 2005-10-11 | Asm Nutool, Inc. | Integrated system for processing semiconductor wafers |
JP4220166B2 (ja) * | 2002-02-19 | 2009-02-04 | 株式会社日立製作所 | ストレージエリアネットワークシステムのアクセス制御方法 |
US7685287B2 (en) * | 2002-05-30 | 2010-03-23 | Microsoft Corporation | Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports |
JP2004102852A (ja) * | 2002-09-12 | 2004-04-02 | Hitachi Ltd | ホットスタンバイ計算機システム |
US7222173B2 (en) * | 2003-02-10 | 2007-05-22 | International Business Machines Corporation | Limited knowledge of configuration information of a FICON controller |
JP2004362146A (ja) * | 2003-06-03 | 2004-12-24 | Hitachi Ltd | ストレージ制御装置の制御方法及びストレージ制御装置 |
US7392445B2 (en) * | 2003-09-11 | 2008-06-24 | International Business Machines Corporation | Autonomic bus reconfiguration for fault conditions |
JP4429703B2 (ja) * | 2003-11-28 | 2010-03-10 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
JP4401788B2 (ja) * | 2004-01-06 | 2010-01-20 | 株式会社日立製作所 | ストレージ制御装置 |
JP4441286B2 (ja) * | 2004-02-10 | 2010-03-31 | 株式会社日立製作所 | ストレージシステム |
JP4405277B2 (ja) * | 2004-02-16 | 2010-01-27 | 株式会社日立製作所 | ディスク制御装置 |
US7467238B2 (en) * | 2004-02-10 | 2008-12-16 | Hitachi, Ltd. | Disk controller and storage system |
JP2005293370A (ja) | 2004-04-01 | 2005-10-20 | Hitachi Ltd | 記憶制御システム |
JP4475079B2 (ja) * | 2004-09-29 | 2010-06-09 | 株式会社日立製作所 | 計算機システムの構成管理方法 |
JP4721734B2 (ja) * | 2005-03-15 | 2011-07-13 | 株式会社日立製作所 | ストレージシステム、及び情報処理システム |
JP2007122531A (ja) * | 2005-10-31 | 2007-05-17 | Hitachi Ltd | 負荷分散システム及び方法 |
CN100423491C (zh) | 2006-03-08 | 2008-10-01 | 杭州华三通信技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
JP5089896B2 (ja) * | 2006-03-17 | 2012-12-05 | 株式会社日立製作所 | マイクロプロセッサの負荷分散機能を備えたストレージシステム |
JP2007280258A (ja) * | 2006-04-11 | 2007-10-25 | Hitachi Ltd | 記憶制御装置 |
JP4901316B2 (ja) * | 2006-06-06 | 2012-03-21 | 株式会社日立製作所 | ストレージシステム及び記憶制御装置 |
US7751329B2 (en) * | 2007-10-03 | 2010-07-06 | Avaya Inc. | Providing an abstraction layer in a cluster switch that includes plural switches |
US20090193436A1 (en) * | 2008-01-30 | 2009-07-30 | Inventec Corporation | Alarm display system of cluster storage system and method thereof |
US20090213736A1 (en) * | 2008-02-27 | 2009-08-27 | Inventec Corporation | Method of processing external service request in storage area network |
JP2009230484A (ja) * | 2008-03-24 | 2009-10-08 | Nec Corp | ストレージサブシステム、ストレージシステム、ファームウェア置換方法、及びプログラム |
WO2010131373A1 (en) * | 2009-05-15 | 2010-11-18 | Hitachi,Ltd. | Storage subsystem |
US20100322236A1 (en) * | 2009-06-18 | 2010-12-23 | Nokia Corporation | Method and apparatus for message routing between clusters using proxy channels |
EP2764440B1 (en) * | 2011-10-07 | 2021-02-17 | Hitachi, Ltd. | Storage system |
US8819371B2 (en) | 2011-10-07 | 2014-08-26 | Hitachi, Ltd. | Storage system |
CN102769568B (zh) * | 2012-07-19 | 2015-10-21 | 中兴通讯股份有限公司 | 一种基于虚拟交换集群的流量转发方法及系统 |
US20150331615A1 (en) * | 2012-11-20 | 2015-11-19 | Empire Technology Development Llc | Multi-element solid-state storage device management |
JP5976937B2 (ja) * | 2013-07-26 | 2016-08-24 | 株式会社日立製作所 | コンピュータシステム |
JP6336813B2 (ja) * | 2014-04-16 | 2018-06-06 | 富士通株式会社 | ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム |
US11222258B2 (en) * | 2020-03-27 | 2022-01-11 | Google Llc | Load balancing for memory channel controllers |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680539A (en) * | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US6374336B1 (en) * | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6804245B2 (en) * | 2001-08-17 | 2004-10-12 | Mcdata Corporation | Compact, shared route lookup table for a fiber channel switch |
-
2002
- 2002-01-10 JP JP2002002936A patent/JP4188602B2/ja not_active Expired - Fee Related
- 2002-03-06 US US10/090,767 patent/US7058761B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030131192A1 (en) | 2003-07-10 |
US7058761B2 (en) | 2006-06-06 |
JP2003208267A (ja) | 2003-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4188602B2 (ja) | クラスタ型ディスク制御装置及びその制御方法 | |
US8683482B2 (en) | Computer system for balancing access load of storage systems and control method therefor | |
US6950914B2 (en) | Storage system | |
JP5039951B2 (ja) | ストレージ・デバイス・ポートの選択の最適化 | |
US8937965B2 (en) | Storage system comprising function for migrating virtual communication port added to physical communication port | |
US7177991B2 (en) | Installation method of new storage system into a computer system | |
US8151013B2 (en) | Storage system | |
US8694749B2 (en) | Control method of device in storage system for virtualization | |
US8312233B2 (en) | Storage system that is connected to external storage | |
US7281032B2 (en) | File sharing system with data mirroring by storage systems | |
US7702962B2 (en) | Storage system and a method for dissolving fault of a storage system | |
US8683025B2 (en) | Method for managing storage system | |
US7069276B2 (en) | Computer system | |
US20030005080A1 (en) | Systems and methods for accessing data | |
US20100057989A1 (en) | Method of moving data in logical volume, storage system, and administrative computer | |
JP2009295045A (ja) | ストレージシステム、ストレージサブシステム、及び記憶制御方法 | |
JP2006155640A (ja) | アクセスの設定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040924 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040924 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070710 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070830 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20070830 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080128 |
|
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: 20080902 |
|
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: 20080911 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130919 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |