説明

クロスコール機能を備えるディスク制御装置

【課題】リクエストの送受信は同一ポートで行われるため、あるポートにリクエストが集中した場合、そのリクエスト全てを処理する必要があり、その分処理負荷が高くなる。
【解決手段】ディスク制御装置内部の共有領域にリクエスト処理とその制御情報を記したテーブル、依頼可能なポートを記したテーブルを用意し、それを参照することで処理を依頼する。リクエストが集中しているポートの負荷を分散、及びリクエスト発行元に対するスループットが向上する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続可能な複数の入出力ポートを備えたディスク制御装置を用いたネットワークストレージシステムに関し、アクセス集中に伴うネットワーク帯域の圧迫回避、及び入出力ポートを制御する制御プロセッサの負荷を軽減する技術に関する。
【背景技術】
【0002】
複数台のディスク駆動装置に対するデータの格納、読み出しを行うディスク制御装置がある。ディスク駆動装置とディスク制御装置はあわせてディスクサブシステムと総称される。
【0003】
図1には、ディスクサブシステムの一例を示す。100は、ディスク制御装置であり、ホストコンピュータ、及びディスク駆動装置140とのインターフェースを持つ。105は、入出力チャネルであり、ホストコンピュータとの入出力インターフェースである。
【0004】
110は、チャネル制御部であり、ホストコンピュータからのリクエスト処理をディスク制御装置内部に指示を与える。115は、チャネル制御部110―キャッシュメモリ制御部120・共有メモリ制御部125間接続パスであり、ユーザデータの通信、及び共有データの通信はこのパスを介して行う。120は、キャッシュメモリ制御部であり、ホストコンピュータ、及びディスク駆動装置140にあるユーザデータを一時的に格納するキャッシュメモリを備え、チャネル制御部110、またはディスク制御部135からのキャッシュメモリアクセスの制御を行う。125は、共有メモリ制御部であり、ディスク制御装置100内部で行われる通信に関する制御情報、及びクロスコールを実現するためのテーブルを格納する共有メモリを備え、チャネル制御部110、及びディスク制御部135からの共有メモリアクセスの制御を行う。130は、ディスク制御部135−キャッシュメモリ制御部120・共有メモリ制御部125間接続パスであり、ユーザデータの通信、及び共有データの通信はこのパスを介して行う。140は、ディスク駆動装置であり、複数のドライブで構成されユーザデータなどを格納する。ホストコンピュータとディスクサブシステム間の接続形態は、技術的な背景、ユーザのニーズに伴い変化している。近年、インターネットの爆発的な普及、ギガビットイーサネットなどの登場によってネットワークインフラストラクチャの普及、高速化・帯域拡大が進んでいる。ここで、「イーサネット」は米国Xerox社の登録商標である。また、IP(Internet Protocol)を使ったネットワーク(以下、IPネットワークと呼ぶ)には、低管理・運用コスト、LAN(Local Area Network)に代表されるように相互接続性の良さなどの利点を持つことから、SAN(Storage Area Network)へ適用する動きがある。SANとは、1台以上のホストコンピュータ、1台以上のストレージ装置が接続されたネットワーク環境のことを指し、ストレージ装置としてはディスクアレイ装置(以下、ディスク制御装置と呼ぶ)などがある。
【0005】
一方、IPネットワークでは、ホストコンピュータとディスクサブシステム間の伝送経路は、ルーティングプロトコルで決定する。代表的なルーティングプロトコルとしては、RIP(Route Information Protocol)、OSPF(Open Shortest Path First)などがある。
【0006】
RIPは、経路制御情報をネットワーク上に送信し、ホストコンピュータとディスクサブシステム間の経路において通過するルータの数(ホップと呼ぶ)が一番少ない経路を選択する。OSPFは、各ネットワークのリンク状態(トポロジ)情報を基に経路制御情報を生成し、隣接するルータ間で経路制御情報を交換する。OSPFでは各リンクに重み(メトリックと呼ぶ)をつけ、そのメトリックが小さくなる経路を選択する。メトリックとは、ホップ数の他に、伝送遅延、回線スピード、トポロジ種などが含まれる。従って、複数のホストコンピュータからあるディスクサブシステムに対してリクエストを発行すると、上記のRIP、OSPFによって決められた経路を使うため、その経路にアクセスが集中してしまう。加えて、IPネットワーク上には不特定多数のユーザが存在し、かつディスクサブシステムに対するアクセスでは比較的大きなデータを要求することが多い。ディスクサブシステム側では、ディスク制御装置の入出力ポートにアクセスが集中し、その入出力ポートを制御している制御プロセッサに高負荷がかかってしまうため、転送性能の劣化につながる。
【0007】
それを回避する技術としてホストコンピュータがメインフレームでESCON(Enterprise Systems Connection Architecture)チャネルで接続されたディスクサブシステムにおける、クロスコール機能(以下、ESCONクロスコールと呼ぶ)がある。ESCONクロスコールの目的は、ホストコンピュータからのアクセスに対し、要求されているデータをディスク駆動装置から取り出す(厳密には、ディスクのシーク時間)ときにかかるオーバヘッドを取り除くことによる転送性能の向上、及び障害発生時のフェールオーバである。
【0008】
ESCONクロスコールは、複数のチャネル(チャネルパスグループと呼ぶ)間で実施されるもので、ホストコンピュータからのリクエストを受信した第一のチャネルとは異なる第二のチャネルからそのリクエストに対する応答を送信可能とする技術である。以下、ESCONクロスコールについて図12,図13を用いて説明する。
【0009】
図12は、機器構成を示している。1305はホストコンピュータであり、ディスク制御装置1370に対してリクエストを発行する。1310a、1311a、1312a、1313a、1314a、1315a、1316a、1317aは、ESCONチャネルであり、メインフレーム対応の入出力インターフェースである。1310b、1311b、1312b、1313b、1314b、1315b、1316b、1317bはチャネル制御プロセッサであり、ホストコンピュータ1305から受信したリクエストを解読し、そのリクエスト内容に従いディスク制御装置内部処理を指示する。
【0010】
1320はキャッシュメモリであり、ホストコンピュータからのユーザデータ、及びディスク駆動装置1340のデータを一時的に格納するメモリ領域である。1325は、共有メモリであり、ディスク制御装置内部で必要な制御情報が格納されているメモリ領域である。1330、1331、1332、1333、1334、1335、1336、1337はディスク制御プロセッサであり、チャネル制御プロセッサからの要求に従いディスク駆動装置へのアクセスを制御する。1340は、ディスク駆動装置であり、複数のドライブで構成されデータを格納する装置である。1350は、ディスク制御部であり、ディスク制御プロセッサを含みディスク駆動装置とのインターフェースを持つ。1360は、チャネル制御部であり、チャネル制御プロセッサを含みホストコンピュータとのインターフェースを持つ。またホストコンピュータとのチャネルを複数有する。図13では、1つのチャネル制御部1360につき4チャネル、2つのチャネル制御部で計8チャネル有しているが、1つのチャネル制御部あたりのチャネル数、及びディスク制御装置が有するチャネル制御部の数は、特に問わない。
【0011】
図13は、ESCONクロスコールのフローチャートを示している。図13と合わせて以下、ESCONクロスコールに関してホストコンピュータ側、ディスク制御装置側それぞれの処理を説明する。前提として、第一のESCONチャネル1310a、第二のESCONチャネル1314aがチャネルパスグループに属しているとし、第一のESCONチャネルよりリクエストを発行し、第二のESCONチャネルから応答が送信されるとする。ここで、チャネルパスグループとは、ホストコンピュータとディスク制御装置間の通信で、チャネルパスグループに属しているチャネルであれば、どのチャネルを使って通信をしても構わないチャネルを示すものである。従って、第一のESCONチャネルから送信されたリクエストの応答が第二のESCONチャネルから送信されても別に問題はない。
【0012】
クロスコールアクセス開始1400は、具体的にはディスク駆動装置にあるデータの読み出し処理である。以降、ディスク駆動装置のデータ読み出し処理を例にとり、上記の前提を踏まえた上で説明する。
【0013】
まず、ホストコンピュータは第一のチャネル(1310a)で最初のリクエストを送信する(ステップ1410)。最初のリクエストを受け取ったディスク制御装置側のチャネル制御プロセッサ1310bは、リクエストの内容を解析する(ステップ1415)。このとき、ディスク駆動装置にあるデータの読み出しであると判断する。
【0014】
チャネル制御プロセッサは、一旦第一のチャネルパスを切断し(ステップ1420)、ディスク駆動装置にあるデータの読み出しを指示し、ホストコンピュータに対してデータを送信する準備を行う(ステップ1425)。
【0015】
ホストコンピュータに対してデータを送信する準備が完了したら、チャネルパスグループに属するチャネル制御プロセッサがデータ送信準備完了の旨を検出し(ステップ1430)、ホストコンピュータに対して再接続要求を発行する(ステップ1435)。
【0016】
再接続要求を受信したホストコンピュータは、チャネルパスグループのチャネルの状況を見て、リクエストを再発行するチャネルを決定する。これは、最初にリクエストを発行したチャネルが別の処理を行っていたり、または何らかの障害で使用不可能になっている可能性があるためである。ここで、ホストコンピュータは第二のチャネルを選択し、リクエストを再発行する(ステップ1440)。ディスク制御装置側の第二のチャネルを制御するチャネル制御プロセッサはリクエストの内容を解析、準備されているデータをホストコンピュータへ送信する(ステップ1440)。ホストコンピュータはデータを受領(ステップ1445)し処理が終了する(ステップ1450)。
【0017】
以上の動作から、1I/O単位で見てみると、リクエストを発行したチャネル(第一のESCONチャネル)とは異なるチャネル(第二のESCONチャネル)からリクエストの応答(ここでは、データ送信)をしていることになる。
【発明の開示】
【発明が解決しようとする課題】
【0018】
ESCONクロスコールは、リクエストを受けたチャネルと同一のチャネルでそのリクエストの応答を返すことが基本である。従って、複数のホストコンピュータからのリクエストが同一のチャネルに集中した場合、逐次的に処理を行うことしか出来ず、伝送プロトコル処理、リクエストの解析等の処理に加えて、ディスクサブシステム内の処理も加わるため、当該チャネルを制御している制御プロセッサに高い負荷がかかってしまい、転送性能が劣化してしまう。
【0019】
またESCONクロスコールは、複数のチャネルパスによって構成されるチャネルパ
スグループは、ホストコンピュータが複数のチャネルパスを有する場合でのみ有効な技術である。従って、ホストコンピュータが複数のチャネルパスを有していないシステムには適用できない。現状、ストレージとホストコンピュータの接続形態は多様化しているが、メインフレームのように複数のチャネルパスを備えているホストコンピュータは多くない。
【0020】
更には、ホストコンピュータとディスクサブシステム側で矛盾のないようなチャネルパスグループの形成が必須であり、それを実現するためには、ホストコンピュータ側に何らかの機構を追加する必要がある。不特定多数のホストコンピュータが存在する中で、個々のホストコンピュータに対して何らかの機構が必須となるのは汎用性に欠ける。
【課題を解決するための手段】
【0021】
本発明では、ホストコンピュータ側からのリクエストが特定の入出力ポートに集中した場合、他の入出力ポートの状況を見てリクエスト処理を依頼する処理をディスク制御装置内部で行う。これによって、信号入出力ポートを制御する制御プロセッサの負荷が軽減される。結果的に、外部環境、ホストコンピュータに特別な手段を設けることなく、ホストコンピュータに対して迅速に応答し、転送性能の向上を図ることが実現可能となる。
【0022】
処理されたホストコンピュータのリクエストを最終的にホストコンピュータに返信する入出力ポートはディスク制御部が選択する。
【0023】
また、本発明では、実際にホストコンピュータからリクエストを受信した入出力ポートがディスク制御装置の別の入出力ポートにリクエスト処理を依頼するときに、前記リクエストに関する制御情報を、チャネル制御部側とディスク制御部側とで双方からアクセス可能にした。これにより、ホストコンピュータとディスク制御装置間、実際にはリクエストを発行した入出力ポート間で交わした制御情報に関して矛盾が生じ無いようにした。
【発明の効果】
【0024】
リクエストが集中しているチャネル制御プロセッサは高負荷となりスループット低下につながる。そこで、他のチャネル制御プロセッサに集中しているリクエストの処理を依頼することにより、自チャネル制御プロセッサの負荷を下げ、かつリクエスト発行元に対するスループットが向上する。
【発明を実施するための最良の形態】
【0025】
[実施例1]
以下、本発明に係わるクロスコール機能を備えたディスク制御装置の実施例1を図面に示しさらに詳細に説明する。
【0026】
図5は、本発明に係わるクロスコール機能を備えたディスク制御装置の実施例1における全体構成図を示している。500は入出力パスであり、ホストコンピュータとディスク制御装置502内チャネル制御部505とを接続するパスである。なお、以下述べるチャネル制御部505、キャッシュメモリ制御部520,共有メモリ制御部530,ディスク制御部550は、信号が入出力される入出力端子をそれぞれ備えており、いずれの入出力端子も入出力ポートと呼ばれている。505はチャネル制御部であり、ホストコンピュータとのインタフェースを持ち、ホストコンピュータとのユーザデータ送受信、ディスク制御装置502内部の制御情報などの共有データ制御などを行う。チャネル制御部505は、ディスク制御装置502内に複数存在する。510は、チャネル制御部−キャッシュメモリ制御部・共有メモリ制御部間接続パスであり、ユーザデータの通信、及び共有データの通信はこのパスを介して行う。520は、キャッシュメモリ制御部であり、ホストコンピュータ、及びディスク駆動装置にあるユーザデータを一時的に格納するキャッシュメモリを備え、チャネル制御部、またはディスク制御部からのキャッシュメモリアクセスの制御を行う。
【0027】
530は共有メモリ制御部であり、ディスク制御装置内部で行われる通信に関する制御情報、及びクロスコールを実現するためのテーブルを格納する共有メモリを備え、チャネル制御部、及びディスク制御部からの共有メモリアクセスの制御を行う。
【0028】
535はアクセス依頼テーブルであり、クロスコールを実現する際、元々ホストコンピュータからリクエストを受信したチャネル制御部のチャネル制御プロセッサから、ディスク制御装置内の他の制御プロセッサに対してそのリクエストの処理を依頼する時に使うテーブルである。540はクロスコール管理テーブルであり、リクエストの処理を依頼可能なチャネル制御プロセッサ(ポート)を示すテーブルである。ディスク制御装置502に接続されている入出力パスの接続先が直接ホストコンピュータというケースもあれば、ネットワークを介してホストコンピュータと接続されているケースも考えられる。後者の場合、例えば第一の入出力パスからリクエストを受信して、第一の入出力パスとは異なる第二の入出力パスより応答を送信する例を考えると、第二の入出力パスがホストコンピュータが属するネットワークとは異なるネットワークに接続されていると、クロスコールを実施しても応答がホストコンピュータへ届かなくなる。届いたとしても、様々な経路を経てホストコンピュータへ到着するため、転送性能に多大な影響を与える。これを解決するための方法が、クロスコール管理テーブル540であり、入出力パス500の接続先の状況から判断して、ホストコンピュータからのリクエストの応答を確実に送信可能な入出力パスを示す識別子を格納する。545は、ディスク制御部−キャッシュメモリ制御部・共有メモリ制御部間接続パスであり、ユーザデータの通信、及び共有データの通信はこのパスを介して行う。
【0029】
550は、ディスク制御部であり、ディスク駆動装置560に対するアクセスの制御、及びキャッシュメモリ・共有メモリへのアクセスなどを行う。ディスク制御部550は、ディスク制御装置502内に複数存在する。560は、ディスク駆動装置であり、複数のドライブで構成されユーザデータなどを格納する。
【0030】
図2は、本発明の実施例1におけるリクエスト依頼テーブル200の内容を示している。
【0031】
205は、リクエスト内容であり、元々リクエストを受信したチャネル制御プロセッサが書き込む領域で、依頼する処理内容を示す。210は、発行元ポート識別子であり、どこの入出力ポートのチャネル制御プロセッサからの依頼かを示す。215は、シーケンス番号であり、リクエストのパケットに付加されている通し番号を示し、リクエスト依頼を受けたチャネル制御プロセッサがホストコンピュータに応答を送信するときに生成されるパケットの構成情報として使う。220は、ポート番号であり、ホストコンピュータと入出力ポート間のコネクション関係を示す識別子であり、シーケンス番号215と同様に、ホストコンピュータに応答を送信するときに生成されるパケットの構成情報として使う。225は、準備完了フラグであり、リクエスト処理依頼を受けたチャネル制御プロセッサから指示された処理の結果、ホストコンピュータへ応答を送信可能な状態になったことを示すフラグである。準備完了フラグ225が’1’であれば、キャッシュメモリ上に所望のデータある状態を示し、’0’であれば、キャッシュメモリ上に所望のデータはまだ準備されていない状態、もしくはアイドル状態を示す。230は、キャッシュ格納先アドレスであり、所望のデータがキャッシュ上のどこに格納されたかを示すアドレスである。235は、データ転送終了フラグであり、リクエスト依頼を受けたチャネル制御プロセッサが管理する入出力パスを介して、ホストコンピュータへ応答を送信完了したことを示すフラグである。データ転送終了フラグ235が、’1’であればホストコンピュータへ応答を送信済み、’0’であれば送信中、もしくはアイドル状態を示す。
【0032】
ここで、図8の現在の処理状況確認805において、準備完了フラグ、及びデータ転送終了フラグを用いて、他のチャネル制御プロセッサにリクエストを依頼するか判定を行う。
【0033】
準備完了フラグ225が’0’、データ転送終了フラグ235が’0’であれば、レディ状態で、依頼可能であることを示す。
【0034】
準備完了フラグ225が’0’、データ転送終了フラグ235が’1’であれば、このような状態は考えられないためエラーとなる。
【0035】
準備完了フラグ225が’1’、データ転送終了フラグ235が’0’であれば、依頼を受けたチャネル制御プロセッサ管理の下、ホストコンピュータへ応答を送信中、または送信しようとしている状態を示す。準備完了フラグ225が’1’、データ転送終了フラグ235が’1’であれば、ホストコンピュータへの送信が完了した状態を示す。この状態の後、両フラグが’0’となりレディ状態へ遷移する。
【0036】
図3は、本発明の実施例1におけるクロスコール管理テーブルの内容を示している。305は、発行元ポートであり、ディスク制御装置502内部のチャネル制御プロセッサ605を識別する識別子を示す。310は、依頼先ポートであり、図8の依頼先ポート確認825の際、どのポート(チャネル制御プロセッサ)に対して依頼可能かを示す。
【0037】
図8のクロスコール管理テーブルリード820処理においては、自チャネル制御プロセッサに相当する識別子を指定して、依頼先ポート310を確認する。
【0038】
図4は、TCPセグメントのフォーマットを示している。
【0039】
405は送信元ポート番号であり、セグメントを送信したアプリケーション層サービスのポート番号を示す。410は送信先ポート番号であり、セグメントの受信側のアプリケーション層サービスのポート番号を示す。415はシーケンス番号であり、セグメントの送受信によりカウントアップされる番号を示す。420は確認応答番号であり、この確認応答番号−1の数だけデータを受信したことを示す。425はDataOffsetであり、セグメントのヘッダの長さを示す。430は予約領域(Rsv.)であり、どのセグメントにおいてもあらかじめ決められた内容が示される。435はコードビットであり、コネクション制御等に使われる。例えば、コネクションを終了させるときには、この領域にFINを示す値がセットされる。440はウインドウサイズであり、送信元からどのくらいのデータサイズを送信可能かを示す。445はチェックサムであり、ヘッダとデータのチェックコードである。450は緊急ポインタであり、緊急を要する処理のデータフィールド465の終わりを示す。455はオプションであり、最大セグメント長を指定することが出来るフィールドである。460はパディングであり、データが32ビット単位で始まっていることを保障するための領域である。
【0040】
ホストコンピュータからリクエストを受信した入出力ポートから他の入出力ポートに処理を依頼した場合、プロトコル的に矛盾がないように、送信元ポート番号405、送信先ポート番号410、シーケンス番号415、確認応答番号420を依頼先の入出力ポートを制御するチャネル制御プロセッサへ、リクエスト依頼テーブルを介して伝達する。
【0041】
図6は、本発明の実施例1におけるチャネル制御部の構成ブロックを示している。
【0042】
605はチャネル制御プロセッサであり、ホストコンピュータから入出力パス500を介して届いたリクエストの受信、解析を行い、解析したリクエストの内容に従い、ディスク制御装置内部に指示を与えるプロセッサである。610はデータ転送制御部であり、チャネル制御プロセッサ605からの指示により、ホストコンピュータから送信されたユーザデータの転送、及びディスク駆動装置にあるデータの読み出し処理を行う。620は共有データ制御部であり、制御情報等の共有データが格納されている共有メモリへのアクセスを制御する。
【0043】
図7は、本発明の実施例1におけるホストコンピュータからリクエストを受信して、そのリクエスト処理を依頼するか判定するまでのフローチャートを示している。ステップ710では、他チャネル制御プロセッサからリクエスト依頼を受けたか判定する。もし、リクエスト依頼を受けている場合、ステップ740のデータ送信処理へ進む。リクエスト依頼を受けていなければ、ステップ715へ進む。ステップ715では、ホストコンピュータからリクエストを含むパケットを受信したか確認する。もしパケットを受信していなければ、ステップ700のパケット受信処理の開始へ進む。受信していれば、ステップ720のTCP/IP処理へ進む。ステップ720では、受信したパケットからSCSIコマンドを抽出する処理を行う。SCSIコマンドは、IPパケットのデータグラムとしてカプセル化されてホストコンピュータから送信される。ステップ725では、SCSIコマンドか判定する処理を行う。もし、SCSIコマンドであれば、ステップ745のリクエスト依頼処理へ進む。もし、SCSIコマンドではない場合、ステップ730のその他の処理へ進む。ステップ730では、IPパケットのデータグラムが示す該当の処理を行い、再びステップ700のパケット受信処理へ戻る。
【0044】
一方、ステップ740のデータ送信処理、及びステップ745のリクエスト依頼処理に移っている間、ホストコンピュータからパケットを受信した場合、各入出力ポートにあるキューにそのリクエストを入れる。以上により、他チャネル制御プロセッサからリクエスト処理依頼を受けても、その処理を実行可能となる。
【0045】
図8は、リクエスト依頼判定を行うフローチャートを示している。ステップ745によりSCSIコマンドリクエストを受けていると判断した場合、ステップ745のリクエスト依頼処理を開始する。ステップ805では、自チャネル制御プロセッサの処理状況を確認する。ディスク制御装置内部処理予定数(現在実行中の処理とジョブとして積まれている数の和)がある一定数を超えてないかで判定する。ステップ810では、ステップ805により自チャネル制御プロセッサで処理可能と判定した場合、ステップ815の通常処理へ進む。処理不可能であれば、他チャネル制御プロセッサへ依頼するということでステップ820へ進む。ステップ815では、自チャネル制御プロセッサで当該リクエスト処理を実行し、ステップ700のパケット受信処理へ戻る。ステップ820では、クロスコール管理テーブルを読み出し、ステップ825でどのチャネル制御プロセッサへ処理を依頼可能か確認する。ステップ830では、依頼先ポートの準備完了フラグ225、及びデータ転送終了フラグ235から、依頼先ポートを決定する。ステップ835では、依頼可能な入出力ポートを制御するチャネル制御プロセッサがすべてビジーか判定する。すべてビジーの場合、自チャネル制御プロセッサで処理を実施することとし、ステップ815の通常処理へ進む。そうでなければステップ840へ進む。ステップ840では、リクエストの処理を依頼するために、アクセス依頼テーブルへ書き込みを行う。書き込む内容としては、処理内容、制御情報である。実施例1においては、発行元ポート識別子、シーケンス番号、ポート番号である。ここで、制御情報としては、シーケンス番号、ポート番号に限らず、ホストコンピュータと入出力ポート間で整合性を保つための情報を指す。ステップ840の後は、パケット受信処理700へ戻る。
【0046】
図9は、リクエスト処理依頼を受けたチャネル制御プロセッサのデータ送信処理のフローチャートを示している。ステップ745のデータ送信処理開始は、他のチャネル制御プロセッサからリクエスト処理依頼を受けていることを検知したときである。ステップ905では、アクセス依頼テーブルに書き込まれたリクエスト内容205を取得する。ステップ910では、ステップ905で取得したリクエスト内容205に従い処理を実施する。ステップ915では、ステップ910の処理が終了するまで待機し、終了した時点でステップ920へ進み、処理中はステップ915をループする。このとき、処理が終了したことを示す準備完了フラグ225が、ディスク制御部のディスク制御プロセッサによって書き込まれる。当該チャネル制御プロセッサは、その準備完了フラグ225によってリクエスト処理の終了を検知する。
【0047】
ステップ920では、キャッシュメモリ上に格納されたデータを、アクセス依頼テーブル200のキャッシュ格納先アドレス230に従い読み出す。ステップ925では、アクセス依頼テーブル200の制御情報207を読み出し、ステップ930では、ステップ920で読み出したデータ、及びステップ925で読み出した制御情報207よりホストコンピュータへ送信するパケットを生成し、ステップ935のデータ送信処理を実施する。ステップ940では、ステップ935では、ステップ930の処理が終了したら、アクセス依頼テーブル200のデータ転送終了フラグ235に書き込み、ステップ700のデータ受信処理へ戻る。以上、図5から図9に示した実施例1によれば、複数の入出力パスを有するディスク制御装置において、ディスク制御装置内共有メモリに、アクセス依頼テーブル、クロスコール管理テーブルを持つことにより、ホストコンピュータからリクエストを受けた入出力パスを管理するチャネル制御プロセッサが、ディスク制御装置内の他の入出力ポートを管理しているチャネル制御プロセッサにそのリクエストの処理を依頼することで、装置全体の使用効率を上げ、依頼元のチャネル制御プロセッサの負荷を軽減させることが可能になる。
【0048】
[実施例2]
以下に、本発明に係わるクロスコール機能を備えるディスク制御装置の別の実施例2を図面に示し詳細に説明する。なお、以下特に説明のない部分は実施例1と同じとする。本実施例で、実施例1と異なる所は、ホストコンピュータからのリクエストがデータリード処理で、リードデータをクロスコール管理テーブルに示されている複数の入出力ポートからデータを分割して送信する点である。
【0049】
図10は本発明の実施例2におけるアクセス依頼テーブル1000を示している。実施例1と異なるところは、制御情報1015の内容である。実施例2では、実施例1の制御情報207に、ID1005、データオフセット1010を追加している。
【0050】
ID1005は分割したデータの整合性をとるための識別子であり、ホストコンピュータへデータを送信するとき生成するパケットのIPヘッダ内のフラグフィールドに設定する。このようにすることで、複数の入出力ポートから送信されたパケットに対し、このフラグフィールドを参照することで、分割されたデータを復元可能となる。データオフセット1010は分割されたデータが分割前のデータのどこに位置しているかを示すものである。
【0051】
図11は本発明の実施例2におけるリクエスト依頼判定フローチャートを示している。実施例1と異なるところは、リクエストを受けたチャネル制御プロセッサが、依頼先ポートを確認後、アクセスするデータ長を依頼先ポートに対して割り当てる処理を追加した点である。ステップ1105では、ホストコンピュータからのリクエスト内容からアクセスデータ長を依頼先ポート数で割った値をアクセスデータ長とし、処理依頼内容を決定する。
【0052】
以上より、複数の入出力ポートに渡り、並列に処理を実行できるためスループットが向上する。
【図面の簡単な説明】
【0053】
【図1】ディスク制御装置の構成を示す図である。
【図2】本発明の実施例1におけるアクセス依頼テーブルの内容を示す図である。
【図3】本発明の実施例1におけるクロスコール管理テーブルの内容を示す図である。
【図4】TCPパケットヘッダの内容を示す図である。
【図5】本発明の実施例1における全体構成を示す図である。
【図6】本発明の実施例1におけるチャネル制御部の構成ブロックを示す図である。
【図7】本発明の実施例1におけるホストコンピュータからリクエストを受信してコマンド解釈までのフローチャートを示す図である。
【図8】本発明の実施例1におけるコマンド解析からリクエスト処理依頼先ポートに対する依頼処理までのフローチャートを示す図である。
【図9】本発明の実施例1おけるディスク駆動装置からのデータ取り出しからリクエスト依頼先プロセッサがホストコンピュータに対するデータ送信完了までのフローチャートを示す図である。
【図10】本発明の実施例2におけるアクセス依頼テーブルの内容を示す図である。
【図11】本発明の実施例2におけるコマンド解析からリクエスト処理依頼先ポートに対する依頼処理までのフローチャートを示す図である。
【図12】ESCONクロスコールにおける全体構成を示す図である。
【図13】ESCONクロスコール処理のフローチャートを示す図である。
【符号の説明】
【0054】
500…入出力パス、502…ディスク制御装置、505…チャネル制御部、510…チャネル制御部−キャッシュメモリ制御部・共有メモリ制御部間接続パス、520…キャッシュメモリ制御部、530…共有メモリ制御部、535…アクセス依頼テーブル、540…クロスコール管理テーブル、545…ディスク制御部−キャッシュメモリ制御部・共有メモリ制御部間接続パス、550…ディスク制御部、560…ディスク駆動装置。

【特許請求の範囲】
【請求項1】
ホストコンピュータと、複数のドライブを備えるディスク駆動装置との間に接続されたディスク制御装置であって、
該ディスク駆動装置を制御するディスク制御部と、チャネル制御部とを有し、
該チャネル制御部は、前記ホストコンピュータとの通信を行うための信号が通過する複数の入出力ポートとを備え、
該入出力ポートは、入出力ポートを通過する信号の制御をそれぞれ行なう複数の制御プロセッサを備え、
前記入出力ポートの1であり受信ポートと呼ばれる入出力ポートが、ホストコンピュータからのリクエストを受信すると、前記制御プロセッサの1であり該受信ポートと対応する制御プロセッサは、処理の予定数に基づき、前記ホストコンピュータからのリクエストを、前記チャネル制御部に選択され、かつ、依頼先ポートと呼ばれる入出力ポートに対応する制御プロセッサへ転送するかどうかを判断する
こと特徴とするディスク制御装置。
【請求項2】
前記ホストコンピュータのリクエストを受信した入出力ポートの識別子と、前記チャネル制御部により選択された依頼先ポートの識別子を含む制御情報とが記録されたアクセス依頼テーブルを備える
ことを特徴とする請求項1に記載のディスク制御装置。
【請求項3】
前記ホストコンピュータのリクエストが転送された依頼先ポートに対応する制御プロセッサを処理依頼先プロセッサと定義するとき、
該処理依頼先プロセッサは、
前記転送されたホストコンピュータからのリクエストの処理を行い、該処理依頼先プロセッサに対応する依頼先ポートから前記リクエストの応答をホストコンピュータへ送信する
ことを特徴とする請求項2に記載のディスク制御装置。
【請求項4】
前記リクエストの応答をホストコンピュータへ送信する際に、前記処理依頼先プロセッサは、前記アクセス依頼テーブルに基づき生成したパケット情報をホストコンピュータに対し送信する
ことを特徴とする請求項3に記載のディスク制御装置。
【請求項5】
前記アクセス依頼テーブルには、受信ポートが受け取ったリクエストの内容と、ディスク駆動装置から指定されたデータの取り出し処理を完了したことを示すフラグと、前記データの格納先を示すアドレスと、前記受信ポートが持っているリクエストに関する通し番号と、前記処理依頼先プロセッサが制御する依頼先ポートを使ったホストコンピュータに対するデータの送信が完了したことを示すフラグが記録される
ことを特徴とする請求項2に記載のディスク制御装置。
【請求項6】
前記受信ポートからリクエスト処理を依頼可能な入出力ポートを示すクロスコール管理テーブルを有する
ことを特徴とする請求項2に記載のディスク制御装置。
【請求項7】
前記アクセス依頼テーブルおよび前記クロスコール管理テーブルが格納される共有メモリを備える
ことを特徴とする請求項6に記載のディスク制御装置。
【請求項8】
前記受信ポート以外の入出力ポートに対応する制御プロセッサの各々は、前記アクセス依頼テーブルを参照することにより、前記リクエストの処理が自分宛に転送されたか否かを判断する
ことを特徴とする請求項2に記載のディスク制御装置。
【請求項9】
前記受信ポートの制御プロセッサは、ホストコンピュータからのリクエストを、該受信ポート以外の複数の入出力ポートに対してブロードキャストすることにより、前記リクエストの処理を他の制御プロセッサに対して依頼する
ことを特徴とする請求項2に記載のディスク制御装置。
【請求項10】
前記受信ポートの制御プロセッサは、他の入出力ポートの1を選択し、該選択した入出力ポートに対して前記リクエストの処理を送信する
ことを特徴とする請求項2記載のディスク制御装置。
【請求項11】
前記処理依頼先プロセッサは、ホストコンピュータへの応答が完了したことを前記受信ポートの制御プロセッサへ通知し、前記受信ポートの制御プロセッサは、前記通知に基づきホストコンピュータとの接続を切断する
ことを特徴とする請求項4に記載のディスク制御装置。
【請求項12】
前記受信ポートの制御プロセッサへ通知する際に、前記処理依頼先プロセッサは、ホストコンピュータへの応答完了フラグを前記アクセス依頼テーブルに書き込み、前記受信ポートの制御プロセッサへ、ホストコンピュータへの応答完了を送信する
ことを特徴とする請求項11に記載のディスク制御装置。
【請求項13】
前記処理依頼先プロセッサは、複数の入出力ポートに対してホストコンピュータへの応答完了通知をブロードキャストすることにより、前記受信ポートに対してホストコンピュータへの応答完了を通知する
ことを特徴とする請求項12に記載のディスク制御装置。
【請求項14】
前記処理依頼先プロセッサは、
前記受信ポートに対してのみ、ホストコンピュータへの応答完了を通知する
ことを特徴とする請求項12に記載のディスク制御装置。
【請求項15】
ホストコンピュータと、複数のドライブを備えるディスク駆動装置との間に接続されたディスク制御装置であって、
該ディスク駆動装置を制御するディスク制御部と、チャネル制御部とを有し、
該チャネル制御部は、前記ホストコンピュータとの通信を行うための信号が通過する複数の入出力ポートとを備え、
該入出力ポートは、入出力ポートを通過する信号の制御をそれぞれ行なう複数の制御プロセッサを備え、
前記入出力ポートの1であり受信ポートと呼ばれる入出力ポートが、ホストコンピュータからのリクエストを受信すると、前記制御プロセッサの1であり該受信ポートと対応する制御プロセッサは、処理の予定数に基づき、前記ホストコンピュータからのリクエストを、前記チャネル制御部に依頼先プロセッサとして選択され、かつ、依頼先ポートと呼ばれる入出力ポートに対応する制御プロセッサへ転送するかどうかを判断すること特徴とするディスク制御装置において、
前記ディスク制御装置は、前記ホストコンピュータのリクエストを受信した入出力ポートの識別子と、前記チャネル制御部により選択された依頼ポートの識別子を含む制御情報とが記録されたアクセス依頼テーブルを備え、
前記処理依頼先プロセッサは、前記転送されたホストコンピュータからのリクエストの処理を行い、該処理依頼先プロセッサに対応する依頼先ポートから前記リクエストの応答をホストコンピュータへ送信し、
前記リクエストの応答をホストコンピュータへ送信する際に、前記処理依頼先プロセッサは、前記アクセス依頼テーブルに基づき生成したパケット情報をホストコンピュータに対し送信する
ことを特徴とするディスク制御装置。
【請求項16】
前記アクセス依頼テーブルには、受信ポートが受け取ったリクエストの内容と、ディスク駆動装置から指定されたデータの取り出し処理を完了したことを示すフラグと、前記データの格納先を示すアドレスと、前記受信ポートが持っているリクエストに関する通し番号と、前記処理依頼先プロセッサが制御する依頼先ポートを使ったホストコンピュータに対するデータの送信が完了したことを示すフラグが記録される
ことを特徴とする請求項15に記載のディスク制御装置。
【請求項17】
前記受信ポートからリクエスト処理を依頼可能な入出力ポートを示すクロスコール管理テーブルを有することを特徴とする請求項15に記載のディスク制御装置。
【請求項18】
請求項3に記載のディスク制御装置において、
前記アクセス依頼テーブルおよび前記クロスコール管理テーブルが格納される共有メモリを備える
ことを特徴とする請求項17に記載のディスク制御装置。
【請求項19】
前記受信ポート以外の入出力ポートに対応する制御プロセッサの各々は、
前記アクセス依頼テーブルを参照することにより、前記リクエストの処理が自分宛に転送されたか否かを判断する
ことを特徴とする請求項15に記載のディスク制御装置。
【請求項20】
前記受信ポートの制御プロセッサは、ホストコンピュータからのリクエストを、該受信ポート以外の複数の入出力ポートに対してブロードキャストすることにより、前記リクエストの処理を他の制御プロセッサに対して依頼する
ことを特徴とする請求項15に記載のディスク制御装置。
【請求項21】
前記受信ポートの制御プロセッサは、他の入出力ポートの1を選択し、該選択した入出力ポートに対して前記リクエストの処理を送信する
ことを特徴とする請求項15記載のディスク制御装置。
【請求項22】
前記処理依頼先プロセッサは、ホストコンピュータへの応答が完了したことを前記受信ポートの制御プロセッサへ通知し、前記受信ポートの制御プロセッサは、前記通知に基づきホストコンピュータとの接続を切断する
ことを特徴とする請求項15に記載のディスク制御装置。
【請求項23】
前記受信ポートの制御プロセッサへ通知する際に、前記処理依頼先プロセッサは、ホストコンピュータへの応答完了フラグを前記アクセス依頼テーブルに書き込み、前記受信ポートの制御プロセッサへ、ホストコンピュータへの応答完了を送信する
ことを特徴とする請求項22に記載のディスク制御装置。
【請求項24】
前記処理依頼先プロセッサは、複数の入出力ポートに対してホストコンピュータへの応答完了通知をブロードキャストすることにより、前記受信ポートに対してホストコンピュータへの応答完了を通知する
ことを特徴とする請求項23に記載のディスク制御装置。
【請求項25】
前記処理依頼先プロセッサは、前記受信ポートに対してのみ、ホストコンピュータへの応答完了を通知する
ことを特徴とする請求項23に記載のディスク制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−135048(P2008−135048A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2007−334503(P2007−334503)
【出願日】平成19年12月26日(2007.12.26)
【分割の表示】特願2002−37604(P2002−37604)の分割
【原出願日】平成14年2月15日(2002.2.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】