トップ :: G 物理学 :: G06 計算;計数

【発明の名称】 バイパス回路
【発明者】 【氏名】ジェームズ・エル・ホワイト
【課題】高可用性コンピュータ・システムに用いられる信頼性の高い、フォルト・トレラントな複数周辺デバイス筐体を提供する。

【解決手段】筐体内部の誤動作周辺デバイスのみならず筐体自体の誤動作を診断および分離するため、3段階ポート・バイパス制御回路を使用する。このバイパス制御回路は、通信媒体からのIN入力、通信媒体へのOUT出力、上記デバイスへの上記IN入力のPout出力、上記デバイスからのPin入力、上記デバイスからの制御信号線SD出力および多重化コンポーネントを備え、該多重化コンポーネントが、IN入力、上記Pin入力およびFB制御信号を受け取って、FB制御信号が第1の状態にある時Pin入力を上記OUT出力に出力し、FB制御信号が第2の状態にある時IN入力をOUT出力に出力する用に機能する。
【特許請求の範囲】
【請求項1】デバイスによる通信媒体へのアクセスを制御する、外部から制御可能なバイパス回路であって、該バイパス回路が、上記通信媒体からのIN入力と、上記通信媒体へのOUT出力と、上記デバイスへの上記IN入力のPout出力と、上記デバイスからのPin入力と、上記デバイスからの制御信号線SD出力と、多重化コンポーネントと、を備え、該多重化コンポーネントが、上記IN入力、上記Pin入力および FB制御信号を受け取って、上記FB制御信号が第1の状態にある時上記Pin入力を上記OUT出力に出力し、上記FB制御信号が第2の状態にある時上記IN入力を上記OUT出力に出力する、バイパス回路。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、複数周辺デバイス筐体に関するもので、特に、コンポーネントを分離するため制御エレメントを複数周辺デバイス筐体に組み入れることによって、複数周辺デバイス筐体の信頼性および可用性を増加させる方法およびシステムに関するものである。
【0002】
【従来の技術】ファイバ・チャンネル(すなわちfibre channelで以下"FC"と略称する)は、コンピュータおよび周辺デバイスの多数の異なる組み合わせを接続させるデータ通信ネットワークのためのアーキテクチャおよびプロトコルである。FCは、小規模コンピュータ・システム・インタフェース(すなわちSCSI)プロトコルを含む種々の上位レベル・プロトコルをサポートする。コンピュータまたは周辺装置は、FCポートおよび銅ワイヤまたは光ファイバを経由してネットワークに接続される。FCポートはトランシーバおよびインタフェース・コントローラを含み、FCは、ホストと呼ばれるコンピュータ周辺装置に含まれる。FCポートは、周辺コンピュータ・インタフェース(すなわちPCI)のようなローカル・データ・バスを経由してホストとデータを交換する。インタフェース制御装置は、FCポートが存在するコンピュータまたは周辺デバイスとファイバ・チャンネルの間の下位レベル・プロトコルの交換を制御する。
【0003】FCは、高いバンド幅および柔軟な連続性を備えているので、複数周辺デバイス筐体の範囲内で例えばRAIDのような周辺デバイスを相互接続するため、および、複数周辺デバイス筐体を1つまたは複数のコンピュータと接続させるための一般的媒体となりつつある。これらの複数周辺デバイス筐体は、高い可用性システムにおいて必要とされるミラー機能および故障戦略を実現する大幅に増加した記憶容量および組み込み冗長性を経済的に提供する。FCは、容量および接続性に関する限りこの応用分野に適してはいるが、シリアル通信媒体である。周辺デバイスおよび筐体の誤動作は、特定のケースにおいては、通信品質を低下させ、または、使用不可能にする。
【0004】
【発明が解決しようとする課題】従って、誤動作周辺デバイスを分離し回復するためFC型の複数周辺デバイス筐体の機能を改善し、誤動作複数周辺筐体を分離し回復するため1つまたは複数のホスト・コンピュータおよび相互接続された複数の複数周辺デバイス筐体を含む機能を向上させる方法に対する必要性が存在する。また、複数周辺デバイス筐体の範囲内に通信およびコンポーネント冗長性を付加することによって一層高いレベルのフォルト・トレラント(fault-tolerant)および高い可用性を実現する必要性が存在する。
【0005】
【課題を解決するための手段】発明の課題を解決するため、本発明は、デバイスによる通信媒体へのアクセスを制御する、外部から制御可能なバイパス回路を提供する。該バイパス回路は、通信媒体からのIN入力、通信媒体へのOUT出力、デバイスへのIN入力のPout出力、デバイスからのPin入力、デバイスからの制御信号線SD出力および多重化コンポーネントを備え、該多重化コンポーネントが、IN入力、Pin入力およびFB制御信号を受け取って、FB制御信号が第1の状態にある時Pin入力をOUT出力に出力し、FB制御信号が第2の状態にある時IN入力をOUT出力に出力する。
【0006】本発明は、複数周辺デバイス筐体の範囲内で周辺デバイスを接続するために使用される通信媒体から周辺デバイスを分離し、また、多数の複数周辺デバイス筐体をホスト・コンピュータに接続させるために使用される通信媒体から複数周辺デバイス筐体を分離する方法およびシステムを提供する。本発明は、単一障害ポイントを除去して複数周辺デバイス筐体のフォルト・トレラント機能性および高い可用性を向上させるため、複数周辺デバイス筐体の範囲内のコンポーネントの冗長度を増加させる。
【0007】複数周辺デバイス筐体の範囲内で周辺デバイスを相互接続するために使用される通信媒体への周辺デバイスのアクセスを制御するためポート・バイパス回路が使用される。ポート・バイパス回路自体はポート・バイパス回路コントローラによって制御され、次に、このポート・バイパス回路コントローラは複数周辺デバイス筐体の範囲内のマイクロプロセッサ上で稼働するソフトウェアまたはファームウェア・ルーチンによって制御される。このような3レベル制御によって、周辺デバイスの高機能な管理、誤動作周辺デバイスの診断および誤動作周辺デバイスの分離が容易に実施される。また、誤動作複数周辺デバイス筐体を診断し、該筐体をホスト・プロセッサに接続する通信媒体コネクタから該筐体を分離することができるように、この3レベルのポート・バイパス回路制御を複数周辺デバイス筐体間接続ポートにも適用することができる。3段階ポート・バイパス回路制御を使用して実施される診断および分離戦略の信頼性を向上させるため、冗長なポート・バイパス回路コントローラおよびマイクロプロセッサを使用することができる。
【0008】
【発明の実施の形態】以下の記述は6つの節から構成されている。最初の3つの節は、ファイバ・チャンネル・アーキテクチャおよびプロトコル、SCSIアーキテクチャおよびプロトコル、およびファイバ・チャンネル・プロトコルに基づくSCSIプロトコルの実施形態の詳細を記述する。第4節は、ファイバ・チャンネル仲裁されたループ初期設定プロセスを記述する。第5節は、複数周辺デバイス筐体を概説し、第6節は、SCSIプロトコルを通して1つまたは複数のホスト・コンピュータと通信する周辺デバイスのシステムの範囲内のコンポーネント管理のために使用される専用SCSIコマンド・セットおよびプロトコルを記述する。第7節は、本発明のハードウェア実施形態の詳細を記述する。
【0009】ファイバ・チャンネルファイバ・チャンネル("FC")は、以下を含む多数のANSI規格文書によって定義されている。
(1)ファイバ・チャンネル物理的および信号送信インタフェース(Fibre ChannelPhysical and Signaling Interface、略して"FC-PH"),ANSIX3.230-1994,("FC-PH-2),ANSIX3.297-1997;(2)ファイバ・チャンネル仲裁ループ(Fibre Channel Arbitrated Loop、略して"FC-AL-2"),ANSIX3.272-1996;(3)ファイバ・チャンネル−SCSI直接接続プライベート・ループ(Fibre Channel-Private Loop SCSI Direct Attached、略して"FC-PLDA");(4)ファイバ・チャンネル−ファブリック・ループ接続(Fibre Channel-Fabric Loop Attachment、略して"FC-FLA");(5)SCSIに関するファイバ・チャンネル・プロトコル(Fibre ChannelProtocol for SCSI、略して"FCP");(6)ファイバ・チャンネル・ファブリック要件(Fibre Channel FabricRequirements、略して"FC-FG"),ANSIX3.289:1996;および(7)ファイバ・チャンネル10ビット・インタフェース(Fibre Channel10-BitInterface)。
【0010】これらの規格文書は頻繁に改訂されている。ファイバ・チャンネル・システム・イニシアティブ(Fibre Channel System Initiative、略して"FCSI")規格文書は更に 以下を含む。
(1)ギガボー・モジュール・ファミリ(Giga baud Link Module Family、略して"GLM"),FCSI-301;(2)共通FC-PH機能セット・プロファイル(Common FC-PH Feature Sets Profiles, FCSI-101);および(3)SCSIプロファイル(SCSI profile, FCSI-201)。
【0011】これらの文書は、次のアドレスを持つワールドワイド・ウェブ・インターネット・ページで見ることができる。
"http://www.fibrechannel.com"以下のFCに関する記述は、本発明の説明を容易にするため、これら文書に含まれている一定の情報を紹介および概説することこと意図している。以下の記述において紹介される項目のいずれに関してもその一層の詳細は上記文書を参照して得ることができるであろう。
【0012】FCは、FCノードの間、すなわち、一般的には、1つまたは複数の通信媒体によって接続されるコンピュータ、ワークステーション、ディスク・アレイのような周辺デバイスのアレイまたは集合の間のデータ通信に関するアーキテクチャおよびプロトコルである。通信媒体は、シールドされたツイストペア接続線、同軸ケーブルおよび光ファイバを含む。FCノードは、少なくとも1つのFCポートおよびFCリンクを通して通信媒体に接続される。FCポートは、レジスタおよびメモリ・インタフェースをFCノードの処理コンポーネントと共有し、FCプロトコルの下位レベルをハードウェアおよびファームウェアで実施するFCホスト・アダプタまたはFCコントローラである。FCノードは、一般的に、共用メモリにおける共用データ構造の使用およびFCポートにおける制御レジスタの使用を通して、データおよび制御情報をFCポートと交換する。FCポートは、電線または光ファイバから構成されるリンクを経由して通信媒体に接続する直列伝送および受信コンポーネントを含む。
【0013】以下の記述において、"FC"は、一般的ファイバ・チャンネル・アーキテクチャおよびプロトコルを参照するため形容詞として使用され、ファイバ・チャンネル通信媒体の1つのインスタンスを参照するため名詞として使用される。このように、(アーキテクチャおよびプロトコルの)FCポートは、(通信媒体の)FCから(アーキテクチャおよびプロトコルの)FCのシーケンスを受け取る。
【0014】FCアーキテクチャおよびプロトコルは、図1に示される3つの異なるタイプの接続トポロジをサポートする。図1の(A)は、"ポイント・ツー・ポイント・トポロジ"と呼ばれる3つのうちでは最も単純な相互接続トポロジを示す。図1の(A)のポイント・ツー・ポイント・トポロジにおいて、第1ノード101のFCポート104の伝送器103を第2ノード102のFCポート106の受信器105に直接接続させることによって、そして、第2ノード102のFCポート106の伝送器107を第1ノード101のFCポート104の受信器108に直接に接続することによって、第1ノード101は第2ノード102に直接接続される。ポイント・ツー・ポイント・トポロジにおいて使用されるポート104および106は、N_Portと呼ばれる。
【0015】図1の(B)は、"FC仲裁ループ・トポロジ"と呼ばれるいくぶん複雑なトポロジを示す。図1の(B)は、"FC仲裁ループ・トポロジ"の範囲内で相互接続された4つのノード110−113を示す。電気的または光学的2進データから成る信号が、ループを回って循環形態で1つのノードから次のノードへ伝送される。例えばノード111に関連する伝送器114のような伝送器が、ループの次のノードの受信器(伝送器114の場合にはノード112の受信器115)に直接接続される。仲裁ループの範囲内でFCノードを相互接続させるため、2つのタイプのFCポートが使用される。仲裁ループで使用される最も一般的タイプのポートは、"NL_Port"と呼ばれる。FC仲裁ループをFCファブリック・トポロジに接続させるための特別なタイプのポートは"FL_Port"と呼ばれる。1つのFL_Portだけが仲裁ループ・トポロジに活動状態のあるものとして組み入れられることができる。FC仲裁ループ・トポロジは、最高127の活動的FCポートを含むことができ、更に多くの非活動状態のFCポートを含むことができる。
【0016】FC仲裁ループ・トポロジにおいて、ノードは、仲裁ループの制御をもとめて争うすなわち仲裁を求める。一般に、1つ以上のノードが制御を求めて争う場合、最も低いポート・アドレスを持つノードが制御を取得する。すべてのノードが最終的には合理的な時間の範囲内で制御を受け取ることを保証するような公平アルゴリズムがノードによって実施される。あるノードがループの制御を取得した時、そのノードは仲裁ループの範囲内のいかなる別のノードに対してもチャンネルをオープンすることができる。半2重通信チャネルにおいては、1つのノードがデータを伝送し、別のノードがそれを受け取る。全二重通信チャネルにおいては、第1ノードによって伝送されるデータが第2ノードによって受け取られると同時に、第2ノードによって伝送されるデータが第1ノードによって受け取られることができる。例えば、図1の(B)の仲裁ループにおいてノード111がノード113との全二重通信チャネルをオープンするとすれば、そのチャンネルを経由してノード111からノード113へ伝送されるデータはノード112のNL_Port116を通過し、ノード113によってノード111へ伝送されるデータはノード110のNL_Port117を通過する。
【0017】図1の(C)は、"FCファブリック"と呼ばれる最も一般的で最も複雑なFCトポロジを示す。図1の(C)において、FCファブリックは、図の中央にある不規則な形のオブジェクト118によって表されている。4つのノード119−122はこのオブジェクトに接続されている。FCノード119−122の範囲内のN_Port123−126はファブリック118の範囲内のF_Port127−130に接続されている。ファブリックは、機能的には電話システムと同様の交換型またはクロスポイント切り換えトポロジである。データは、ファブリックによって"ファブリック・エレメント"と呼ばれるスイッチまたは交換機構を通してF_Portの間で伝送される。1つのF_Portと別のF_Portの間でファブリックを経由する多くの可能なルートが存在する。F_Portと関連するファブリックの範囲内のデータの経路指定およびノードのアドレス指定は、FCノードまたはN_PortではなくFCファブリックによって取り扱われる。
【0018】光ファイバを利用すると、単一のFCファブリックは10キロメータにも延伸することができる。FCは、16,000,000以上のFCノードの相互接続をサポートすることができる。単一FCホスト・アダプタは毎秒最高200メガバイトの率でデータの送受信を行うことができる。FCコンポーネントに関する一層高速のデータ交換率が近い将来計画されている。
【0019】FCはシリアル通信媒体である。データは、非常に高い転送速度で1時点に1ビット伝送される。図2は、FCネットワーク経由の伝送のためデータが時間的に構成される非常に単純な階層を図示している。最も低い概念上のレベルにおいて、データはデータ・ビット200のストリームであると見なされる。FCネットワークによってサポートされるデータの最小単位またはデータ・ビットのグループは、FCポートによって8ビット文字として復号される10ビット文字である。FCプリミティブ(primitive)は、10バイト文字またはバイトから構成される。FCポートの間で交換される制御情報を搬送するため特定のFCプリミティブが使用される。次のレベルは、FCプロトコルに関する基本レベルで、そのデータ構成はフレームである。図2には7つのフレーム2020−208が示されている。フレームは、フレームに含まれるデータの特性に従って、36バイトと2、148バイトの間のデータから構成される。例えば、最初のFCフレームは、データ・ビット・ストリーム200のうちの水平大かっこ201によって取り囲まれているデータ・ビットに対応する。
【0020】FCプロトコルは、シーケンスと呼ばれる次に高位の構成レベルを定義する。第1シーケンス210および第2シーケンス212の一部が図2に示されている。第1シーケンス210は、フレームの1から4(202−205)から構成されている。第2シーケンス212は、フレーム5から7(206−208)および付加的フレーム(図示されていない)から構成されている。FCプロトコルは、交換と呼ばれる第3の構成レベルを定義している。図2には、交換214の一部が示されている。この交換214は、図2に示されている少なくとも第1シーケンス210および第2シーケンス212から構成されている。換言すれば、この交換レベルは、フレーム1乃至7(2020−208)および第2シーケンス212および更に付加されるシーケンスの中の付加的フレームから構成されると見ることができる。
【0021】FCは全二重データ伝送媒体である。フレームおよびシーケンスは、発信側すなわちイニシエータと応答側すなわち目標の間で両方向に同時に伝送されることができる。すべてのシーケンスおよびシーケンスの範囲内のフレームを含む交換は、読み取りI/Oトランザクションまたは書き込みI/Oトランザクションのような単一のトランザクションの間に発信側および応答側の間で交換される。FCプロトコルは、インターネット・プロトコル("IP")、小規模コンピュータ・システム・インタフェース("SCSI")プロトコル、高性能パラレル・インターフェース("HIPPI")および高機能周辺インタフェース("IPI")などを含む多数の高位レベル・データ交換プロトコルのいずれかに従ってデータを伝送するように設計される。SCSIバス・アーキテクチャは、次節で取り上げられるが、本節の以下の記述および以降の各節における記述はFCプロトコルに組み込まれるSCSIプロトコルに焦点があてられる。ファイバ・チャンネルに対するSCSIプロトコルの標準的適合は本明細書において以下"FCP"と呼ばれる。このように、FCは、インターネットを実施するために使用されるような比較的オープンで構造化されていない通信プロトコルの他に、SCSIバスおよび他の周辺装置相互接続バスの特徴であるマスター/スレーブ・タイプの通信パラダイムをサポートすることができる。FCPにおいて実施されるイニシエータおよび目標というSCSIバス・アーキテクチャ概念は、FC経由の伝送のためSCSIコマンドおよびデータ交換をカプセル化するように設計される。
【0022】図3は標準FCフレームの内容を示す。FCフレーム302は、5つの高レベル・セクション304、306、308、310および312を含む。第1の高レベル・セクションは、フレーム開始区切り(SOF)304と呼ばれ、フレームの開始をマークする4バイトを含む。次の高レベル・セクションは、フレーム・ヘッダ306と呼ばれ、アドレス指定情報、シーケンス情報、交換情報および種々の制御フラグを含む24バイトからなる。図3において、フレーム・ヘッダ314の詳細がFCフレーム302から拡大されて示されている。行き先識別子("DID")すなわちDESTINATION_DID316は24ビットFCアドレスであり、当該フレームに関する行き先FCポートを標示する。ソース識別子("SID")すなわちSOURCE_ID318は、フレームを送出したFCポートを標示する24ビット・アドレスである。発信側IDすなわちOX_ID320および応答側IDすなわちRX_ID322は組み合わせられて32ビット交換IDを形成し、発信側すなわちイニシエータおよび応答側すなわち目標FCポートに関してフレームが属する交換を識別する。シーケンスIDすなわちSEQ_ID324は、フレームが属するシーケンスを識別する。
【0023】次に高いレベルのセクション308は、データ・ペイロードと呼ばれ、FCフレームの範囲内にパッケージ化される実際のデータを含む。データ・ペイロードは、IPおよびSCSIのような一層高位レベルのプロトコルに従って伝送されるデータおよびカプセル化プロトコル情報を含む。図3は、SCSIプロトコルに従うデータ伝送に関して使用されるデータ・ペイロード・レイアウトの4つの基本タイプ326−329を示す。これらの形式の第1のタイプ326は、FCP_CMNDと呼ばれ、イニシエータから目標へSCSIコマンドを送るために使用される。FCP_LUNフィールド330は、8バイト・アドレスを含み、特定の実施形態において、特定のSCSIバス・アダプタ、そのSCSIバス・アダプタに関連する目標装置およびFCP_CMNDに関する目標を共に表す指定された目標SCSI装置に関連する論理装置に対応する論理装置番号("LUN")を指定する。別の実施形態においては、FCP_LUNフィールド330は、SCSIバス・アダプタ、そのSCSIバス・アダプタに関連する目標装置および指定された目標SCSI装置に関連する論理装置に対応するLUNを決定するために使用されるインデックスまたは参照番号を含む。SCSI読み取りまたは書き込みI/Oコマンドのような実際のSCSIコマンドは、16バイトFCP_CDBフィールド332の範囲内に含まれる。
【0024】図3に示されるデータ・ペイロード形式の第2のタイプ327はFCP_XFER_RDYレイアウトと呼ばれる。このデータ・ペイロード形式は、目標がデートの送信または受信の開始の準備ができている時SCSIプロシード・コマンドを目標からイニシエータへ送るため使用される。図3におけるデータ・ペイロード形式の第3のタイプ328は、FCP_DATA形式であって、SCSII/Oトランザクションの実行の結果読み取りまたは書き込みされる実際のデータを伝送するため使用される。図3に示される最後のデータ・ペイロード形式329は、FCP_RSPレイアウトと呼ばれ、SCSI状態バイト334を、その他のFCP状態情報と共に、I/Oトランザクションの完了とともに目標からイニシエータへ伝送するために使用される。
【0025】SCSIバス・アーキテクチャコンピュータ・バスは、1組の電気信号線であり、それを経由してコンピュータ・システムの処理、記憶および入出力(I/O)コンポーネントの間でコンピュータ・コマンドおよびデータが伝送される。SCSII/Oバスは、ハードディスクおよびCD−ROMのような大容量記憶装置をコンピュータ・システムのメモリおよび処理コンポーネントと接続させる最も広範囲に普及したコンピュータ・バスである。SCSIバス・アーキテクチャは、SCSI-1、SCSI-2およびSCSI-3という3つの主要規格において定義されている。SCSI-1およびSCSI-2規格は、ANSI"X3.131-1986"および"X3.131-1994"によってそれぞれ出版されている。SCSI-3規格は現在ANSI委員会によって開発されている。SCSIバス・アーキテクチャの概要は、"The SCSI Bus and IDE Interface, "Freidhelm Schmidt,Addison-Wesley Publishing Company, ISBN 0-201-17514-2 1997("Schmidt")によって提供されている。
【0026】図4は、SCSIバスを含む一般的パーソナル・コンピュータ("PC")アーキテクチャのブロック図である。PC400は、高速CPUバス406によってシステム・コントローラ404に接続された中央処理装置またはプロセッサ402("CPU")を含む。次に、システム・コントローラは、メモリ・バス410を経由してシステム・メモリ・コンポーネント408に接続される。システム・コントローラ404は、更に、周辺装置コンポーネント相互接続("PCI")バス412を経由して種々の周辺デバイスに接続される。PCIバス412は、比較的遅い業界標準アーキテクチャ・バス("ISA")414およびSCSIバス416に接続される。PCIバス・アーキテクチャは、"PCI System Architecture"(Shanley& Anderson, Mine Share, Inc., Addison-Wesley Publishing Company, ISBN0-201-40993-3, 1995)に記載されている。
【0027】相互接続されたCPUバス406、メモリ・バス410、PCIバス412およびISAバス414によって、CPUがコンピュータ・システムに含まれる種々の処理/メモリ・コンポーネントおよび入出力装置とデータおよびコマンドを交換することが可能とされる。一般に、ビデオ表示装置のような非常に高速で高帯域の入出力デバイス418はPCIバスに直接接続される。キーボード420およびポインティング・デバイス(図示されていない)のような遅い入出力デバイス420はISAバス414に接続される。ISAバスは、バス・ブリッジ・コンポーネント422を経由してPCIバスに接続される。大容量記憶装置、ハードディスク、フロッピーディスク・ドライブ、CD−ROMドライブおよびテープ・ドライブ424−426はSCSIバス416に接続される。SCSIバスは、SCSIバス・アダプタ430を経由してPCIバス412に接続される。SCSIバス・アダプタ430は、53C8xxSCSIプロセッサというSymbiosファミリから選択されるプロセッサのようなプロセッサ・コンポーネントを含み、標準PCIバス・プロトコルを使用してPCIバス412にインタフェースする。
【0028】SCSIバス・アダプタ430は、SCSIバス・プロトコルを使用してSCSIバス416にインタフェースする(詳細は後述)。SCSIバス・アダプタ430は、SCSIバスに接続される各大容量記憶装置424−426またはSCSI装置の範囲内に一般に組み込まれるSCSIコントローラ(図示されていない)とコマンドおよびデータを交換する。SCSIコントローラは、ハードウェア/ファームウェア・コンポーネントであって、SCSIバスを経由してSCSIアダプタから受け取られるSCSIコマンドを解読および応答し、論理装置とインタフェースしてそれを制御することによってSCSIコマンドを実施する。1つの論理装置は、1つまたは複数の物理装置あるいは1つまたは複数の物理装置の部分に対応する。物理装置は、ディスク、テープおよびCD−ROMドライブのようなデータ記憶装置を含む。
【0029】I/Oコマンドと呼ばれる2つの重要なタイプのコマンドが、論理装置からデータを読み取り、論理装置へデータを書き込むようにSCSI装置に指示する。I/Oトランザクションは、コンピュータ・システムの2つのコンポーネントの間のデータの交換であって、一般的にはCPU402のような処理コンポーネントによって始動され、読み取りI/Oコマンドまたは書き込みI/Oコマンドによって部分的に実行される。このように、I/Oトランザクションは、読み取りI/Oトランザクションおよび書き込みI/Oトランザクションを含む。
【0030】SCSIバス416は、多数のデータ・ビットを並列的に転送することができるパラレル・バスである。SCSIバスによって並列的に転送されることができるデータ・ビット数はバスの幅と呼ばれる。SCSIバスは、そのタイプに応じて、8、16および32ビットの幅を持つ。16および32ビットSCSIバスは、ワイドSCSIバスと呼ばれる。すべてのコンピュータ・バスおよびプロセッサの場合と同様に、SCSIバスは、バス上の動作およびデータ転送の速度を決定するクロックによって制御される。クロック速度はSCSIバスによって異なる。SCSIバスが動作するSCSIバス幅およびクロック速度の組み合わせが、SCSIバスを経由して転送されることができる秒当たりのバイト数すなわちSCSIバス・バンド幅を決定する。異なるタイプのSCSIバスは、毎秒2メガバイト未満から40メガバイトの範囲のバンド幅を持ち、将来は80から160メガバイトへの増加が計画されている。バンド幅の増加は、SCSIバスの物理的な長さにおける限界の増加を伴う。
【0031】図5はSCSIバスのトポロジを示す。コンピュータ・システム502または他のハードウェア・システムは、1つまたは複数のSCSIバス・アダプタ504および506を含むことができる。SCSIバス・アダプタ、SCSIバス・アダプタが制御するSCSIバスおよびそのSCSIバスに接続される周辺デバイスが1つのドメインを形成する。図5におけるSCSIバス・アダプタ504は、第1のドメイン508に関連し、SCSIバス・アダプタ506は第2のドメイン510に関連する。最新のSCSI-2バス実施形態は、15の異なるSCSIデバイス513−515および516−517が単一のSCSIバスに接続されることを可能にする。図5においては、SCSIデバイス513−515がSCSIバス518に接続されSCSIバス・アダプタ506によって制御され、SCSIデバイス516−517がSCSIバス520に接続されSCSIバス・アダプタ504によって制御されている。
【0032】各SCSIバス・アダプタおよびSCSIデバイスは、特定のSCSIバスにおけるデバイスまたはアダプタをユニークに識別するSCSI識別番号すなわちSCSI_IDを持つ。習慣として、SCSIバス・アダプタはSCSI_ID 7を持ち、SCSIバスに接続されるSCSIデバイスははSCSI_ID Oから6までおよび8から15までの範囲を持つ。SCSIデバイス513のようなSCSIデバイスは、各々が1つまたは複数の物理装置の部分を含む多数の論理装置とインタフェースする。各論理装置は、論理装置を制御するSCSIデバイスに対して論理装置をユニークに識別する論理装置番号("LUN")によって識別される。例えば、SCSIデバイス513は、それぞれLUNO、1および2を持つ論理装置522−524を制御する。SCSIに関する用語法に従えば、SCSIバス上にI/Oコマンドを始動するデバイスは、イニシエータと呼ばれ、I/O動作の実行を指示するI/OコマンドをSCSIバス上で受け取るSCSIデバイスは目標と呼ばれる。
【0033】一般的に、SCSIバス・アダプタ504および506のようなSCSIバス・アダプタは、目標デバイスにコマンドを送り出すことによってI/O動作を始動する。目標デバイス513−515および516−517はSCSIバスからI/Oコマンドを受け取る。次に、目標デバイス513−515および516−517は、それらが制御する1つまたは複数の論理装置とインタフェースすることによってコマンドを実施して、論理装置からデータを読み取ってそれをSCSIバス経由でイニシエータに返すか、あるいは、SCSIバスを経由してイニシエータから受け取ったデータを論理装置に書き込む。最後に、目標デバイス513−515および516−517は、コマンドの実行の成功または失敗を表示する状態メッセージをSCSIバス経由でイニシエータに応答する。
【0034】図6乃至図8は、読み書き入出力動作の始動および実行に関連SCSIプロトコルを示している。読み書き入出力動作は、SCSIデバイスによって実行される大量の入出力動作を含む。SCSIバスによって接続される大容量記憶装置システムの動作の効率を最大にする努力は、主として、読み書き入出力動作が実行される効率の最大化へ向けられている。従って、以下の記述において、種々のハードウェア・デバイスのアーキテクチャ上の機能が読み書き動作の観点から考察される。
【0035】図6は、(最も一般的にはSCSIバス・アダプタである)SCSIイニシエータから(最も一般的には1つまたは複数の論理装置に関連するSCSIデバイスに組み込まれるSCSIコントローラである)SCSI目標デバイスへの読み取りまたは書き込みI/Oコマンドの送信を示す。読み取りまたは書き込みI/Oコマンドの送信はSCSI入出力動作のコマンド・フェーズと呼ばれる。図6は、中心線によってイニシエータ602および目標604のセクションに分割されている。イニシエータおよび目標セクションの両方は、SCSIバスの状態を記述する"状態"欄606、608、および、イニシエータおよび目標それぞれに関連するSCSIバス・イベントを記述する"イベント"欄610、612を含む。I/Oコマンドの送出に関係するバス状態およびバス・イベントは、図6の上から下へ時間の順に並べられている。図7および図8もこのような形式に従っている。
【0036】図6に示されているイニシエータであるSCSIバス・アダプタから目標SCSIデバイスへのI/Oコマンドの送信は、目標SCSIデバイスによる読み取りまたは書き込み入出力動作を始動する。図4を参照すれば、SCSIバス・アダプタ430はI/Oトランザクションの一部として入出力動作を始動する。一般的には、SCSIバス・アダプタ430は、SCSIバス・アダプタに読み取り動作または書き込み動作の実行を指示する読み取りまたは書き込みコマンドを、PCIバス412、システム・コントローラ404およびCPUバス406を経由して、CPUから受け取る。
【0037】読み取り動作においては、CPU402は、大容量記憶装置424−426からデータを読み取って、SCSIバス416、PCIバス412、システム・コントローラ404およびメモリ・バス410を経由してシステム・メモリ内の1つの位置にそのデータを転送するようにSCSIバス・アダプタ430に指示する。書き込み動作においては、CPU402は、メモリ・バス410、システム・コントローラ404およびPCIバス412を経由してシステム・メモリ408からSCSIバス・アダプタ430にデータを転送するようにシステム・コントローラ404に指示し、SCSIバス416を経由してデータが書き込まれる大容量記憶装置424−426へデータを送るようにSCSIバス・アダプタ430に指示する。
【0038】図6は、現在伝送されているコマンドまたはデータがSCSIデバイスにないことを表示するバス・フリー状態614におかれているSCSIバスから開始する。イニシエータすなわちSCSIバス・アダプタは、バスを調停状態616にするため、SCSIバスのBSY、D7およびSEL信号線をオンにする。この状態において、イニシエータはSCSIバス上にコマンドを伝送する意志をすべてのデバイスに通知する。1つのデバイスだけが1時点においてSCSIバスの動作を制御することができるので、調停が必要である。イニシエータがSCSIバスの制御を得ると仮定すれば、イニシエータは、SCSIバスが選択状態618に入るようにするため、目標SCSI_IDに対応するATN信号線およびDX信号線をオンにする。イニシエータまたは目標デバイスは、上述のような調停状態から選択状態618への状態変更のようなSCSIバス状態変更を実施するため、特定のシーケンスで種々のSCSI信号線をオンおよびオフにする。これらのシーケンスは、上記引用Schmidt文献およびANSI規格に記載されているので、これ以上の記述は行わない。
【0039】目標デバイスがイニシエータによって選択されたことを目標デバイスが検出すると、目標デバイスは、入出力動作のコマンド・フェーズを完了するためSCSIバスの制御620を得たものと仮定する。次に、目標デバイスは、メッセージ送出状態622に入るためSCSI信号線を制御する。メッセージ送出状態において発生する最初のイベントにおいて、目標デバイスはイニシエータから識別メッセージ623を受け取る。識別メッセージ623は、その後に続くコマンド・メッセージがアドレスされるLUNを識別するLUNフィールド624を含む。識別メッセージ623は、また、目標デバイスによる後続のI/Oコマンドの実行の間に目標デバイスがSCSIバスから切断する権限を与えられていることを目標に知らせるため一般にセットされるフラグ625を含む。
【0040】目標デバイスは、次に、後続のI/Oコマンドがどのように待ち行列に入れられるべきかを目標デバイスに指示し、同時に目標デバイスに待ち行列タグ627を与える待ち行列タグ・メッセージ626を受け取る。待ち行列タグは、I/Oコマンドを識別するバイトである。従って、SCSIバス・アダプタは1つのLUNにつき異なるI/Oコマンドを並列的に管理することができる。イニシエータであるSCSIバス・アダプタのSCSI_ID、目標であるSCSIデバイスのSCSI_ID、目標LUNおよび待ち行列タグの組み合わせが、SCSIバスの範囲内で後続するI/Oコマンドに対応する識別I/O動作を識別するI_T_Q_L連結参照番号を形成する。
【0041】次に、目標デバイスは、コマンド状態628に入るためSCSIバス信号線を制御する。コマンド状態において、目標デバイスはイニシエータからI/Oコマンド630を受け取ることを求める。I/Oコマンド630は、実行される特定のコマンドこの場合は読み取りコマンドまたは書み込みコマンドを識別する命令コード632、コマンドによって指定される読み取りまたは書き込み動作の開始ポイントである論理装置の論理ブロックを識別する論理ブロック番号636、および、コマンドの実行の間読み取りまたは書き込みされるブロック数を指定するデータ長638を含む。
【0042】目標デバイスがI/Oコマンドを受け取って処理した時、イニシエータ・デバイスに切断メッセージ642を送り戻す状態であるメッセージ到来状態640に入るため、目標デバイスはSCSIバス信号線を制御する。コマンドによって指定される読み取りまたは書き込み動作を行うように論理装置を準備するため目標デバイスが一般的に論理装置との交信を開始するので、目標デバイスはSCSIバスから切断する。目標デバイスはデータを受け取るバッファを準備する必要があるかもしれない。ディスク・ドライブまたはCD−ROMドライブの場合、目標デバイスは、読み取りまたは書き込みコマンドに関する開始位置として指定された適切なブロックにアクセスするように論理装置に指示するかもしれない。切断によって、目標デバイスは、SCSIバス・アダプタと目標デバイスの間における更なるメッセージ、コマンドまたはデータの伝送のため、SCSIバスを解放する。このようにして、多数の異なる入出力動作がSCSIバス上で並列的に多重送信されることができる。最後に、目標デバイスは、SCSIバスをバス・フリー状態644に戻すため、BSY信号線をオフにする。
【0043】次に、目標デバイスは読み取りまたは書き込み動作のため論理装置を準備する。論理装置がデータの読み取りまたは書き込みの準備ができている時、入出力動作に関するデータ・フェーズに入る。図7はSCSI入出力動作のデータ・フェーズを示す。SCSIバスは、初期的にはバス・フリー状態646にある。目標デバイスは、今や、読み取りI/Oコマンドに応答してデータを返すか書き込みI/Oコマンドに応答してデータを受け入れる準備ができていて、調停状態648に入るためSCSIバス信号線を制御する。目標デバイスがSCSIバスの制御に関する仲裁に成功していると仮定すれば、目標デバイスは、再選択状態650に入るためSCSIバス信号線を制御する。再選択状態は、図6の選択状態に類似しているが、選択状態においてはSCSIバス・アダプタが目標デバイスを選択しているのに対して、この再選択状態では通信相手のSCSIバス・アダプタを選択するのは目標デバイスである点が相違している。
【0044】一旦目標デバイスがSCSIバス・アダプタを選択したならば、目標デバイスは、SCSIバスがメッセージ到来状態652に入るようにするためSCSIバス信号線を処理する。メッセージ到来状態において、目標デバイスは、識別メッセージ654および待ち行列タグ・メッセージ656の両方をSCSIバス・アダプタに送り出す。これらのメッセージは、図6において示された、イニシエータから目標デバイスへのI/Oコマンドの伝送の間にイニシエータから目標デバイスへ送られた待ち行列タグ・メッセージと同一である。イニシエータは、イニシエータおよび目標デバイスのSCSI_ID、目標LUNおよび待ち行列タグ・メッセージに含まれる待ち行列タグの組み合わせであるI_T_Q_L連結参照番号を使用して、読み取り動作の場合目標デバイスからイニシエータへ引き続いて送られるデータに関するI/Oトランザクションを、書き込み動作の場合イニシエータによって引き続き伝送されるデータに関するI/Oトランザクションを識別する。このように、I_T_Q_L連結参照番号は、読み取りの場合目標デバイスからデータを受け取るためまたは書き込みの場合目標デバイスへデータを伝送するための適切なバッファを特定するため処理中I/OコマンドのテーブルへのインデックスとしてSCSIバス・アダプタによって使用されることができる入出力動作ハンドルである。
【0045】識別および待ち行列タグ・メッセージを送信した後、目標デバイスはデータ状態658への移行のためSCSI信号線を制御する。読み取り入出力動作の場合、SCSIバスはデータ到来状態へ移行する。書き込み入出力動作の場合、SCSIバスはデータ送出状態へ移行する。SCSIバスがデータ状態にある間、目標デバイスは、SCSIバス・クロック・サイクル毎に、データが伝送されている特定のSCSIバスの幅に等しいビット・サイズを持つ1データ単位を伝送する。一般的には、データの各単位の伝送の一部として信号線ACKおよびREQを伴うSCSIバス信号線ハンドシェークが存在する。例えば、読み取りI/Oコマンドの場合、目標デバイスはSCSIバス上に次のデータ単位を送出してREQ信号線をオンにする。イニシエータはREQ信号線オンを検出して、SCSIバスから伝送されたデータを取り出し、データの受け取りを確認するためACK信号線をオンにする。このようなタイプのデータ転送は非同期伝送と呼ばれる。
【0046】SCSIバス・プロトコルは、また、イニシエータからの最初の肯定応答を受け取ることに先行して目標デバイスが一定数のデータ単位を伝送することを許容する。この伝送モードは同期伝送と呼ばれ、このモードにおいては、最初のデータ単位の送出とその伝送のための肯定応答の受け取りの間の待ち時間が回避される。データ伝送の間、目標デバイスは、ポインタ保存メッセージおよびそれに続く切断メッセージをイニシエータに送信し、バス・フリー状態に入るようにSCSIバス信号線を制御することによって、データ伝送に割り込むことができる。これによって、更にデータが伝送される前に目標デバイスが制御する論理装置と交信するため目標デバイスは伝送を中断することが可能とされる。SCSIバスからの切断の後、目標デバイスは、再び、SCSIバスの制御に対する仲裁を求め、イニシエータへ付加的識別および待ち行列タグ・メッセージを送信して、イニシエータが割り込みされたポイントでデータ受信または送信を再開することができるようにする。データ状態658に割り込む切断および再接続の例が図7に示されている。最後に、入出力動作に関するすべてのデータが伝送された時、目標デバイスは、メッセージ到来状態662に入るためSCSI信号線を制御する。この際、目標デバイスはイニシエータに切断メッセージを送る(この前にオプションとしてポインタ保存メッセージが送られる場合もある)。切断メッセージを送信した後、目標デバイスはBSY信号線をオフにし、SCSIバスはバス・フリー状態664へ移行する。
【0047】図7に示されるように、入出力動作に関するデータ伝送に続いて、目標デバイスは入出力動作の状態フェーズの間に状態をイニシエータに返す。図8は入出力動作の状態フェーズを示す。図6および図7の場合と同様に、SCSIバスは、バス・フリー状態666から調停状態668、再選択状態670およびメッセージ到来状態672へ移行する。メッセージ到来状態672の間の目標デバイスによるイニシエータへの識別メッセージ674および待ち行列タグ・メッセージ676の伝送に続いて、目標デバイスは、状態状態678に入るためSCSIバス信号線を制御する。状態状態678において、目標デバイスは、I/Oコマンドが成功裡に完了したか否かを標示するため状態バイト684をイニシエータへ送る。0という状態コードによって表されている成功裡の完了に対応する状態バイト680が目標デバイスからイニシエータへ送られていることが図8に示されている。状態バイトの伝送に続いて、目標デバイスは、メッセージ到来状態682に入るためSCSIバス信号線を制御する。この際、目標デバイスはイニシエータへコマンド完了メッセージ684を送る。この時点で入出力動作は完了した。次に、SCSIバスがバス・フリー状態686へ戻るように、目標デバイスはBSY信号線をオフにする。SCSIバス・アダプタは、今や、I/Oコマンドの当該部分を終了し、コマンドを実行するために割り当てられた内部資源を解放し、PCIバスを経由してCPUへ完了メッセージまたは状態を送り戻すことができる。
【0048】SCSIプロトコルのFCPへの対応付け図9および図10は、イニシエータおよび目標デバイスの間で交換されるFCPシーケンスと図6乃至図8で示されたSCSIバス・フェーズおよび状態の対応関係を示す。図9および図10において、目標SCSIアダプタは、FCPホスト・アダプタと共にパッケージ化されていると仮定され、従って、目標SCSIアダプタは、FCを経由してイニシエータと、SCSIバスを経由して目標SCSIデバイスと通信することができる。図9は、FCPシーケンスとI/Oトランザクショに関するSCSIフェーズおよび状態の間の対応関係を示す。イニシエータがFCを経由して目標SCSIアダプタ702にFCP_CMDデータ・ペイロードを含む単一フレームFCPシーケンスを送り出すと、トランザクションが始動される。目標SCSIバス・アダプタがFCP_CMNDフレームを受け取ると、目標SCSIバス・アダプタは、図6に示された仲裁、再選択、メッセージ送出、コマンドおよびメッセージ到来を含むコマンド・フェーズ704というSCSI状態に進む。
【0049】図6に示されているように、コマンド・フェーズの終了時に、目標SCSIデバイスがトランザクションを実行する準備をする間SCSIバスを解放するため、I/Oトランザクションの目標であるSCSIデバイスはSCSIバスから切断する。その後、目標SCSIデバイスはSCSIバス制御のため再度仲裁を求め、I/Oトランザクション706のデータ・フェーズを開始する。この時点で、SCSIバス・アダプタは、データ伝送を現在進めることができることを標示するFCP_XFER_RDY信号フレーム・シーケンス708をイニシエータへ送り返すことができる。読み取りI/Oトランザクションの場合、FCP_XFER_RDY信号フレーム・シーケンスはオプションである。データ・フェーズが続くにつれて、目標SCSIデバイスは論理装置からのデータの読み取りおよびSCSIバスを経由する目標SCSIバス・アダプタへのそのデータの伝送を開始する。次に、目標SCSIバス・アダプタは、目標SCSIデバイスから受け取ったデータを、I/O読み取りトランザクションに対応する交換の第3のシーケンスを形成する多数のFCPデータ・フレームにパッケージ化して、それらFCPデータ・フレームをFC経由でイニシエータへ送り返す。
【0050】すべてのデータが伝送され、目標SCSIデバイスがSCSIバスの制御を放棄すると、目標SCSIデバイスは再びSCSIバスの制御のため仲裁を求め、I/Oトランザクション714の状態フェーズを始動する。このフェーズの中で、SCSIバスは、図8に示されているように、目標SCSIデバイスから目標SCSIバス・アダプタへSCSI状態バイトを送るため、バス・フリー状態から調停、再選択、メッセージ到来、状態、メッセージ到来およびバス・フリー状態へ移行する。状態バイトを受け取り次第、目標SCSIバス・アダプタは、FCP_RSP単一フレーム・シーケンス716に状態バイトをパッケージ化して、FCを経由してFCP_RSP単一フレーム・シーケンスをイニシエータへ送り返す。これによって読み取りI/Oトランザクションは完了する。
【0051】多くのコンピュータ・システムにおいては、目標FCホスト・アダプタと目標SCSIバス・アダプタの間にはPCIバスのような付加的内部コンピュータ・バスが存在する可能性がある。言い換えると、FCホスト・アダプタおよびSCSIアダプタは単一の目標コンポーネントに一緒にパッケージ化されない可能性がある。単純化のため、そのような付加的相互接続は図9および図10に示されていない。
【0052】図10は、図9と同様の形態で、FCP_CMNDフレーム718によって示されている書き込みトランザクションの間のFCPシーケンスとSCSIバス・フェーズ/状態の間の対応関係を表している。図10が図9と相違している点は、書き込みトランザクションの間、FCP_DATAフレーム722−725がイニシエータから目標へFC上で伝送され、目標からイニシエータ720へ送られるFCP_XFER_RDY単一フレーム・シーケンス720は読み取りI/Oトランザクションの場合のようにオプションではなく必須であるといういう点である。図9の場合と同様に、書き込みI/Oトランザクションは、目標がイニシエータへFCP_RSP単一フレーム・シーケンス726を返す場合を含む。
【0053】仲裁ループ初期設定上述のように、FCフレーム・ヘッダは、FCフレームのソースおよび行き先ファブリック・アドレスを指定するフィールドを含む。D_IDおよびS_IDは、特定のFCポートに関する3部分ファブリック・アドレスを指定する3バイト数量である。これらの3部分は、FCノードの範囲内におけるFCドメイン、FCノード・アドレスおよびFCポートの指定を含む。仲裁ループ・トポロジにおいては、127の可能な活動ノードの各々が、ループ初期設定の間、仲裁ループ物理アドレス("AL_PA")を取得する。AL_PAは、FCフレーム・ヘッダのD_IDおよびS_IDの範囲内のFCポート指定に対応する1バイト数量である。仲裁ループ・トポロジによって接続される活動ノードは多くとも127であるので、仲裁ループの範囲内の各ノードをユニークにアドレスするためには1バイトのAL_PPで十分である。
【0054】ループ初期設定プロセスは、様々な理由のため、仲裁ループ・トポロジに接続されるノードによって始動される。それらの理由には、ノードの電力リセットに続くループ初期設定、仲裁ループの最初のノードのスタートアップ後の初期設定、すでに動作中の仲裁ループへFCノードを引き続き含める動作、および種々のエラー回復動作が含まれる。FC仲裁ループ初期設定は、7つの独立したフェーズを含む。図11は、FC仲裁ループ初期設定の7つのフェーズを示している。図12は、図11に示されるループ初期設定の7つのフェーズの各々の間にFCノードによって伝送される仲裁ループ・トポロジにおけるFCフレームのデータ・ペイロードを示す。ループ初期設定の異なるフェーズの各々において使用されるFCフレームに関するデータ・ペイロードは、図12の欄902−904に示される3つの異なるフィールドからなる。異なるデータ・ペイロード構造の各々の範囲内の第1のフィールド902はLI_IDフィールドである。LI_IDフィールドは、グループ初期設定の7つのフェーズのうちの1つに対応する1つの6ビット・コードを含む。図12に示されている異なるデータ・ペイロード・レイアウトの各々に対するLI_FLフィールド903は、ループ初期設定の最終の2つのフェーズが特定のFCポートによってサポートされるか否かを指定するフラグを含め、種々のフラグを含む。TLは、ループ初期設定の7つのフェーズすべてをサポートする。最後に、データ・ペイロード・レイアウト904の各々のデータ・ペイロードのデータ部分は、ループ初期設定の7つのフェーズの各々に固有の可変長のデータ・フィールドを含む。以下において、ループ初期設定の7つのフェーズは図11および図12を参照して記述される。
【0055】"LISM"と呼ばれるループ初期設定802の第1のフェーズにおいて、ループ初期設定マスタが選択される。ループ初期設定のこの第1のフェーズは、ループ初期設定プリミティブ("LIP")によるループの充満に続く。すべての活動ノードは、伝送側ノードの8バイト・ポート名を含むLISMFC仲裁ループ初期設定フレーム906を伝送する。ループ初期設定に参加する各FCポートは、LISMFC仲裁ループ初期設定フレームの伝送を続行し、受け取ったLISMFC仲裁ループ初期設定フレームを仲裁ループにおける後続のFCノードへの送信を続行する。この動作は、FCポートが一層低い(D_ID、S_IDおよび8バイト・ポート名からなる)結合ポート・アドレスを持つ別のFCポートによって伝送されるFCフレームを検出するか(この場合この別のFCポートがループ設定マスタLIMとなる)、あるいは、FCポートがそのFCポートが元々伝送したFC仲裁ループ初期設定フレームを受け取る(この場合このFCポートがLIMとなる)か、いずれかまで、続く。このようにして、一般的には、FC仲裁ループ初期設定プロセスに参加している最も低い結合アドレスを持つノードがLIMとなる。定義に従えば、FL_PORTは、最も低い結合アドレスを持つので、LIMになる。ループ初期設定フェーズの各々において、ループ初期設定は、種々の異なる理由から失敗する可能性があり、その場合ループ初期設定プロセス全体の再開が必要とされる。
【0056】一旦LIMが選択されると、ループ初期設定はLIFAフェーズ804へ進み、そこで、AL_PAを割り当てられたファブリックを持つノードがそのAL_PAの取得を試みる。LIMは、図12のデータ・ペイロード・レイアウト908に従ってフォーマットされたデータ・ペイロードを持つFC仲裁ループ初期設定フレームを伝送する。このデータ形式のデータ・フィールドは16バイトのAL_PAビットマップを含む。LIMがAL_PAを割り当てられたファブリックを持つとすれば、LIMは、AL_PAを割り当てられたそのファブリックに対応するビットマップの範囲内にビットをセットする。このFCフレームが各FCポートを経由して仲裁ループの範囲内を循環するので、そのノードがAL_PAを割り当てられたファブリックを持てばそのことを標示するように各ノードはビットマップにビットをセットする。ビットマップにおけるデータが仲裁ループにおける別のFCノードによって既にセットされていれば、FCノードは、3つの後続のグループ初期設定フェーズのうちの1つの間にAL_PAを取得することを試みなければならない。ファブリックに割り当てられたAL_PAは、FL_Portを経由して仲裁ループに接続されるFCノードによってAL_PAが指定されることを可能にする手段を提供する。
【0057】LIPAループ初期設定フェーズ806において、LIMは、図12のデータ形式910に従ってフォーマットされたデータ・ペイロードを含むFCフレームを伝送する。データ・フィールドは、ループ初期設定のLIPAフェーズの間に返されるAL_PAビットマップを含む。LIPAフェーズ910の間に、AL_PAをいまだに取得していない仲裁ループにおけるLIMおよび他のFCノードは、FCノードのメモリの範囲内に保存された以前に取得されたAL_PAに対応するビットマップの範囲内のビットをセットしようと試みる。FCノードが、LIPAFCフレームを受け取り、そのノードの以前に取得されたAL_PAに対応するビットマップの範囲内のビットがセットされていないことを検出すると、FCノードはそのビットをセットして、それによってそのAL_PAを取得することができる。
【0058】ループ初期設定の次の2つのフェーズのLIHA808およびLISA810は、上記LIPAフェーズ806と類似している。LIHAフェーズ808およびLISAフェーズ810は共に、LIPAフェーズ910およびLIFAフェーズ908に関するデータ・レイアウトと同じデータ・レイアウト912および914を含むFCフレームを利用する。LIHAフェーズ808およびLISAフェーズ810の両フェーズにおいて、前のフェーズからのビットマップがLIMによって再循環されるので、AL_PAをまだ取得していない仲裁ループにおけるいかなるFCポートもポートのメモリに含まれるハード的に割り当てられたAL_PAの取得を試みるか、または最後のよりどころとして仲裁ループ・トポロジの他のFCポートのいずれによってもまだ取得されていない恣意的またはソフト的AL_PAのいずれかを取得することを試みる。FCポートがLISAフェーズ810の完了時にAL_PAを取得することができないとすれば、そのFCポートは仲裁ループに参加しないかもしれない。FC-AL-2規格は、ループ初期設定プロセスの再開を含め、非参加ノードが仲裁ループに加わることを試みることを可能にする種々の条項を含む。
【0059】ループ初期設定812のLIPRフェーズにおいて、LIMは、図12におけるデータ形式916を持つデータ・ペイロードを含むFCフレームを伝送する。このデータ形式916のデータ・フィールド917は128バイトのAL_PA位置マップを含む。LIMは、AL_PAを取得したとすれば、取得したAL_PAをAL_PA位置マップの範囲内で、データ・フィールド917のバイト0におけるAL_PAカウント・バイトに続く最初のAL_PA位置に書き込む。LIPRFC仲裁ループ初期設定フレームを受け取り再送信する連続FCノードの各々は、FCノードのAL_PAをAL_PA位置マップの範囲内の連続する位置に書き込む。
【0060】最後のループ初期設定フェーズLILP814において、AL_PA位置マップは各FCポートを経由して仲裁ループ技術で再循環されるので、FCポートは、完結したAL_PA位置マップを取得しメモリに保存することができる。このAL_PA位置マップによって、仲裁ループの範囲内の各FCポートは、仲裁ループの範囲内の他のFCポートに対するその位置を決定することができる。
【0061】SCSI-3筐体サービス・コマンド過去10年の間に、コンピュータ周辺機器製造業者が単一筐体の範囲内に多数の異なる周辺デバイスを含めることが益々一般的となった。そのような筐体の1つの例は、RAIDである。単一筐体の範囲内に多数の異なる周辺デバイスをグループ化することによって、周辺装置メーカは一定の製造効率を達成することができる。例えば、筐体の範囲内の周辺デバイスのすべては、1つまたは複数の共通の電源、冷却装置および相互接続媒体を共有することができる。そのような筐体は、個別の周辺デバイスによって与えられる資源よりも大きい資源の集合的セットを提供することができる。加えて、個々の周辺デバイスは、筐体の範囲内の他の周辺デバイスが動作を続ける間に、筐体からスワップ・インおよびスワップ・アウトすることが可能である。このようなプロセスはホット・スワッピングとして知られている。また、経済的で高可用性の資源を達成するため、記憶装置冗長性およびミラー機能に関してそのような筐体のバンクを使用することが可能である。
【0062】図13は、単純な複数周辺デバイス筐体を示す。筐体1002は、電源1004、冷却ファン1006、4つのディスク・ドライブ1008−1011を含む。筐体の範囲内の回路ボード1014は、プロセッサ1016、内部バス1018、および、プロセッサ1016、ディスク・ドライブ1008−1011および筐体1002がそれを経由してホスト・コンピュータ(図示されていない)に接続されることができるポート1022を接続する接続媒体1020を含む。システムによっては、ホスト・コンピュータが、プロセッサ1016の他にディスク・ドライブ1008−1011に個別にアドレスおよび対話するか、あたかも筐体が単一アドレス基底を持つ1つの非常に大きいディスク・ドライブを表すかのように筐体1002と対話するものもある。プロセッサ1016は、一般的には、電源1004および冷却ファン1006の状態と共に、筐体1002の範囲内の周辺デバイス1008−1011の各々の状態を監視するプロセスを実行する。プロセッサ1016は、図13における内部バス1018のような内部通信媒体を経由して電源1004および冷却ファン1006と通信する。
【0063】電源1004および冷却ファン1006のような種々のコンポーネントによって筐体の範囲内で提供される情報へのホスト・コンピュータのアクセスを実現するため、また、筐体の範囲内の種々のコンポーネントを個別に制御する能力をホスト・コンピュータに与えるため、ホスト・コンピュータと図13の筐体1002のような筐体の範囲内で稼働する筐体サービス・プロセスの間の通信のための通信規格としてSCSIコマンド・セットが定義されている。SCSI筐体サービス("SES"と略称される)コマンド・セットは、"American National Standard for Information Technology Standards Document NCITS 305-199X"に記述されている。SESコマンド・セットは、現在X3T10 Committeeによって開発中の参照規格において定義される予定である。
【0064】図14は、SESコマンド・セットによって表される基本通信パラダイムを示す。ホスト・コンピュータ1102が、筐体1108の範囲内で稼働する筐体サービス・プロセス1106にSESコマンド1104を送る。筐体サービス・プロセスは例えば図13におけるプロセッサ1016上で実行される。筐体サービス・プロセス1106は、筐体1108の範囲内の種々のコンポーネント1110−1113と交信し、次に、ホスト・コンピュータ1102によって筐体サービス・プロセス1106に送られたSESコマンドに対する応答1114を返す。
【0065】SESコマンドおよびSESコマンドへの応答には多数の異なるタイプがある。そのような種々のタイプの詳細については上記引用ANSI規格文書を参照することができる。一般的には、ホスト・コンピュータ1102と筐体サービス・プロセス1106の間の大量の通信トラフィックは、2つの基本的コマンドを必要とする。それらは、(1)ホスト・コンピュータが筐体サービス・プロセスに制御情報を伝送するために使用するSEND DIAGNOSTICS(診断送信)コマンド、および、(2)ホスト・コンピュータが、筐体の範囲内の種々のコンポーネントに関する状態情報を含む情報の送信を筐体サービス・プロセスに求めるためのRECEIVE D IAGNOSTIC RESULTS(診断結果受け取り)コマンドである。ホスト・コンピュータは、筐体制御ページを介して筐体サービス・プロセスにSEND DIAGNOSTICSコマンドを伝送する。筐体制御ページのレイアウトは以下の表1に示されている。
【0066】
【表1】
筐体制御ページ ビット バイト 7 6 5 4 3 2 1 0 0 ページ・コード(02H) UN-1 <--- 予約 ---> 情報 非CRIT CRIT RECOV (MSB) 2-3 <--- ページ長(N-3) ---> (LSB)4-7 <--- 生成コード --->8-11 OVERALL CONTROL(第1エレメント・タイプ)12-15 ELEMENT CONTROL(第1エレメント・タイプの第1エレメント) ***(4バイト) ELEMENT CONTROL(第1エレメント・タイプの最後のエレメント)(4バイト) OVERALL CONTROL(第2エレメント・タイプ)12-15 ELEMENT CONTROL(第2エレメント・タイプの第1エレメント) ***(4バイト) ELEMENT CONTROL(第2エレメント・タイプの最後のエレメント) ***(n-3)-n ELEMENT CONTROL(最後のエレメント・タイプの最後のエレメント)【0067】筐体制御ページは、筐体の範囲内のコンポーネントの各タイプに関するOVERALL CONTROL(全般的制御)フィールド、および、筐体の範囲内の各個別コンポーネントに関するELEMENNT CONTROL(エレメント制御)フィールドを含む。特定タイプのコンポーネントすべてに関するELEMENT CONTROLフィールドは、そのタイプのコンポーネントに関するOVERALL CONTROLフィールドの後に、グループとして集められる。これらの制御フィールドは、コンポーネントまたはエレメントのタイプに依存する種々の形式を持つ。いくつかのタイプのデバイスに関する筐体制御ページの制御フィールドに関する形式を以下に記述する。SESコマンド・セットによって現在サポートされているエレメントのタイプが次の表2に示されている。
【0068】
【表2】
タイプ タイプコード エレメント・タイプ コード エレメント・タイプ 00h 未定義 0Dh キーパッド入力装置 01h 装置 0Eh 予約 02h 電源 0Fh SCSIポート/トランシーバ 03h 冷却エレメント 10h 言語 04h 温度センサ 11h 通信ポート 05h ドア・ロック 12h 電圧センサ 06h 警報音 13h 電流センサ 07h 筐体サービスコントローラ 14h SCSI目標ポート 08h SCCコントローラ 15h SCSIイニシエータ・ポート 09h 不揮発性キャッシュ 16h 下位筐体 0Ah 予約 17-7Fh 予約 0Bh 割り込み不能電源 80-FFh メーカー使用コード 0Ch ディスプレイ【0069】ホスト・コンピュータが筐体サービス・プロセスにRECEIVE DIAGNOSTIC RESULTSコマンドを発すると、筐体サービス・プロセスは、筐体の範囲内のコンポーネントまたはエレメントの各々から状態情報を収集して、収集した状態情報を含む筐体状態ページをホスト・コンピュータに返す。筐体状態ページのレイアウトは次の表3に示されている。
【0070】
【表3】
筐体状態ページ ビット バイト 7 6 5 4 3 2 1 0 0 ページ・コード(02H) UN-1 <--- 予約 ---> 情報 非CRIT CRIT RECOV (MSB) 2-3 <--- ページ長(N-3) ---> (LSB)4-7 <--- 生成コード --->8-11 OVERALL STATUS(第1エレメント・タイプ)12-15 ELEMENT STATUS(第1エレメント・タイプの第1エレメント) ***(4バイト) ELEMENT STATUS(第1エレメント・タイプの最後のエレメント)(4バイト) OVERALL STATUS(第2エレメント・タイプ)12-15 ELEMENT STATUS(第2エレメント・タイプの第1エレメント) ***(4バイト) ELEMENT STATUS(第2エレメント・タイプの最後のエレメント) ***(n-3)-n ELEMENT STATUS(最後のエレメント・タイプの最後のエレメント)【0071】上述された筐体制御ページと同様に、特定のコンポーネントまたはエレメントに関する筐体状態ページは、そのタイプのコンポーネントに関するOVERALL CONTROLフィールドの後にグループとして集められる。このように、筐体状態ページは、筐体の範囲内の特定タイプのエレメントの各々に関する個々のELEMENT STATUS(エレメント状態)フィールドが後に続く各タイプのエレメントに関するOVERALL STATUS(全般的状態)フィールドを含む。状態フィールドの形式はエレメントのタイプによって変わる。いくつかのデバイスに関する状態フィールド形式が後述される。筐体および筐体の範囲内のすべてのコンポーネントまたはエレメントを記述する構成ページを筐体サービス・プロセスから受け取ることを求めるため、ホスト・コンピュータは、特別なページ・コードを用いてRECEIVE DIAGONOSTIC RESULTSコマンドを発することができる。次の表4は構成ページのレイアウトを示す。
【0072】
【表4】
構成ページコンポーネント バイト フィールド名 筐体 8 予約記述子 9 下部筐体識別子ヘッダ 10 サポートされるエレメント・タイプ数 11 筐体識別子長(m)筐体 12-19 筐体論理識別子記述子 20-27 筐体メーカー識別子 28-43 製品標識 44-47 製品改訂レベル 48- メーカー固有情報 (11+m)タイプ (4バイト) タイプ記述子ヘッダ(第1エレメント・タイプ)記述子 ***ヘッダ・ (4バイト) タイプ記述子ヘッダ(T番目エレメント・タイプ)リストタイプ 可変 タイプ記述子テキスト(第1エレメント・タイプ)記述子 ***テキスト -n タイプ記述子テキスト(T番目エレメント・タイプ)【0073】構成ページは、筐体に含まれるコンポーネントまたはエレメントの各タイプに関する情報を含むタイプ記述子ヘッダ・リストと共に、全体として筐体を記述する筐体記述子ヘッダおよび筐体記述子を含み、更に、エレメント・タイプの各々に対応する記述子テキストを含むタイプ記述子テキスト・リストを含む。次の表5および表6は、ファンのような冷却エレメントに関する筐体制御ページにおけるELEMENT CONTROLフィールドの形式形式を示す。
【0074】
【表5】
筐体制御ページに関する冷却エレメント ビット バイト 7 6 5 4 3 2 1 0 0 <--- 共通制御 --->1-2 <--- 予約 --->3 予約 RQST RQST 予約 <-- REQESTED SPEED CODE --> FAIL ON (所望の速度コード)【0075】
【表6】REQUESTED SPEED CODEの値速度コード 説明000b 予約001b 最低スピードファン010b 2番目に遅い速度のファン011b 速度3のファン100b 速度4のファン101b 速度5のファン110b 中間速度のファン111b 最高速度のファン【0076】ELEMENT CONTROLフィールドの範囲内のビット・フィールドによって、ホスト・コンピュータが筐体サービス・プロセスに対して特定の冷却エレメントに関連する一定のアクションを指定することが可能とされる。例えば、REQT FAILビットをセットすることによって、ホスト・コンピュータは、冷却エレメントの故障を標示するため視覚インジケータをオンにすることを指定する。RQST ONフィールドをセットすることによって、ホスト・コンピュータは冷却エレメントがオンにされその状態を維持することを要求する。REQUESTED SPEED CODE(所望の速度コード)フィールドは、冷却エレメントが動作すべき特定の冷却ファン速度をホスト・コンピュータが指定することを可能にする。表6は、所望の速度コード・フィールドに指定されることができる異なるファン速度設定値を含む。次の表7および表8は、表3に示された筐体状態ページの範囲内の冷却ELEMENT STATUSフィールドのレイアウトを示している。
【0077】
【表7】
筐体状態ページに関する冷却エレメント ビット バイト 7 6 5 4 3 2 1 0 0 <--- 共通制御 --->1-2 <--- 予約 --->3 予約 FAIL RQSTED OFF 予約 <-- 実際速度コード--> ON【0078】
【表8】実際速度コード値速度コード 説明000b 停止中ファン001b 最低スピードファン010b 2番目に遅い速度のファン011b 速度3のファン100b 速度4のファン101b 速度5のファン110b 中間速度のファン111b 最高速度のファン【0079】表7に示されているELEMET STATUSフィールドの範囲内の種々のビット・フィールドは、特定の冷却エレメントまたはファンの状態をホスト・コンピュータに標示する。FAILビットがセットされていると、筐体サービス・プロセスは、特定のファンに関する故障標識がセットされたことを示している。RQSTED ONビットがセットされていると、ファンが手動でオンとされたかまたはSEND DIAGNOSTICSコマンドを介してオンにするよう要求されたことを筐体サービス・プロセスはホスト・コンピュータに標示する。OFFビットがセットされていると、ファンが動作していないことを筐体サービス・プロセスがホスト・コンピュータに標示する。筐体サービス・プロセスは、実際速度コード・フィールドを介してファンの動作の実際の速度をホスト・コンピュータに通知することができる。実際速度コード値は上記表8に示されている。
【0080】表1に示された筐体制御ページの範囲内の電源に関するELEMENT CONTROLフィールドのレイアウトは次の表9に示されている。表3に示された筐体状態ページに含まれる電源エレメントに関するELEMENT STATUSフィールドのレイアウトは次の表10に示されている。
【0081】
【表9】
筐体制御ページに関する電源エレメント ビット バイト 7 6 5 4 3 2 1 0 0 <--- 共通制御 --->1-2 <--- 予約 --->3 予約 RQST RQST <--- 予約 ---> FAIL ON【0082】
【表10】
筐体状態ページに関する電源エレメント ビット バイト 7 6 5 4 3 2 1 0 0 <--- 共通制御 --->1 <--- 予約 --->2 <--- 予約 ---> 過電圧 電圧不足 過電流 予約3 予約 FAIL RQSTED OFF 温度 温度 バッテリ 交流 ON 超過 警告 不足 切断【0083】電源制御および状態フィールドにおけるフィールドの多くは、表5および表7の冷却エレメント制御および状態フィールドと同様であるので、これ以上の説明は行わない。電源状態フィールドは、また、不足電圧、過電圧、過電流、電源異常およびその他の温度条件を標示するビット・フィールドを含む。
【0084】SESコマンド・セットおよびSESプロトコルは、ホスト・コンピュータと複数の周辺デバイスを含む筐体の間の標準SCSI通信を指定する。SESプロトコルは、ホスト・コンピュータが筐体の範囲内の個々の周辺デバイスの動作を制御し、周辺デバイスの動作の状態に関する情報を取得することを可能にする。
【0085】複数ディスク筐体FCによって提供される高バンド幅および柔軟な接続性は、SESコマンド・セットおよびプロトコルをサポートするFCの能力と共に、複数周辺デバイスを含む筐体とホスト・プロセッサを接続させ、筐体の範囲内で複数の周辺デバイスを相互接続させる魅力的通信媒体にFCをさせた。以下に複数のディスク・ドライブを包含する筐体について記述するが、筐体の範囲内で複数のディスク・ドライブを相互接続し、また、筐体とホスト・コンピュータを接続するための技術および手法はその他のタイプの周辺デバイスに関しても同様に適用することができる。
【0086】図15は、現在使用可能な特定のFC型複数ディスク筐体の製造業者によって使用される設計のブロック図である。図15には、8つのディスク・ドライブ1204−1211を内包する筐体1202が示されている。ディスク・ドライブは、背面配線板1212に取り付けられ、それによって相互接続されている。複数コンポーネント回路ボード1214が、また、背面配線板1212に接続されている。2つのギガビット・インタフェース・コンバータ(略して"GBIC")1216および1218が筐体1202への外部光ファイバ・ケーブル接続を提供する。回路ボード1214は、プロセッサ1220および内部FCループ1230によって相互接続される多数のポート・バイパス回路(略して"PBC")1222−1229を含む。筐体サービス・プロセスはプロセッサ1220上で動作して、ホスト・コンピュータ(図示されてない)が筐体の範囲内の(ファン、電源、温度センサ等々のような)種々の付加的コンポーネントを制御することを可能にする。
【0087】筐体の個々のディスク・ドライブ1204−1211は、筐体の別のディスク・ドライブの動作の間に取り替え、取り外し、または追加を実施することが可能である。ホット・スワッピングは、図15に示されている現在使用可能なシステムにおいてポート・バイパス回路1222−1229によって可能とされている。ある1つのディスクが存在して機能している時、FC信号は、FCループ1230から、ポート・バイパス回路(例えばポート・バイパス回路1225)を経由して、ディスク・ドライブ(例えばディスク・ドライブ1207)へ送られる。あるディスク・ドライブが取り外されている時、ポート・バイパス回路は、FC信号を次のポート・バイパス回路に直接送るか、またはFCループ1230に沿って他のコンポーネントへ送る。例えば、ディスク・ドライブ1207がホット・スワッピングによって取り替えられるとすれば、FC信号は、ディスク・ドライブ1206からポート・バイパス回路1224を経由してポート・バイパス回路1225へ、そして、ポート・バイパス回路1225からポート・バイパス回路1226へ直接送られる。
【0088】単一のGBIC(例えばGBIC1216)は、光ファイバを介してホスト・コンピュータへの筐体の接続を可能にする。第2のGBIC(例えばGBIC1218)は、その筐体の別の筐体へのデージーチェーン方式の接続を可能にし、それによって、ファイバ・チャンネル・ループ1230に別のグループのディスク・ドライブが加えられることになる。第2のGBICが存在するがその第2のGBICを通してデージーチェーン方式で接続された筐体がない場合、FC信号を筐体を通して折り返しさせ、最終的にはホスト・コンピュータへ送り戻すため、一般的には、折り返しコネクタまたはターミネータが第2GBICに取り付けられる。
【0089】図16の(A)は、図15におけるポート・バイパス回路1222−1229のようなポート・バイパス回路の概要を示している。入力FC信号("IN")1302が加算アンプ1304に送られ、微分的に符号化されたFC信号がPBC回路の範囲内で使用される線形信号に変換される。同様に、加算アンプ1306−1308は線形および微分信号を相互変換するため使用される。変換された入力信号1310は分割され、バッファ付き出力("Pout")1312およびマルチプレクサ1314へ送られる。第2のFC信号("Pin")1316が加算アンプ1307を通過して、マルチプレクサ1314へ入力される。マルチプレクサ1314からのFC出力信号("OUT")1318はSEL制御入力線1320によって制御される。SEL制御入力線がオンにされていると、マルチプレクサ1314は、Pin入力1316を出力信号(OUT)1318に渡す。EL制御入力線がオンにされていないと、マルチプレクサ1314は、IN入力信号1302を出力信号(OUT)1318に渡す。
【0090】図16の(B)は、ポート・バイパス回路を経由するファイバ・チャンネル・ループへのディスク・ドライブの接続を示す。簡潔さのため、図16の(A)に示されているコンポーネントと同じものであるポート・バイパス回路のコンポーネントには、(A)と同じラベルを付け、それらコンポーネントの説明は省略する。ディスク・ドライブ1322は、ポート信号1312を介してファイバ・チャンネル・ループから入力信号IN1302を受け取る。ディスク・ドライブがSEL制御信号1320をオンにする時、ディスク・ドライブは、マルチプレクサ1314によって出力信号OUT1318に渡される信号Pin1316を提供する。出力信号OUTはFCループを経由してFC信号の方向の次のFCポートに伝送される。SEL制御信号1320がオフにされる時、ディスク・ドライブ1322はバイパスされ、入力信号IN1302が、出力信号1318として、FC信号方向の次のFCポートに渡される。ディスク・ドライブ1322は、筐体に安全に装着され、背面配線板に接続され、FCループと機能的に相互動作する準備ができている時にSEL制御信号をオンにする。
【0091】ディスク・ドライブ1322が装着されていないまたは機能的にFCループと相互動作できる状態にない時、SEL制御線1320はオフにされ、FC信号はディスク・ドライブをバイパスする。ディスク・ドライブがオンライン筐体との間でホットスワップされている時、機能中のディスク・ドライブを相互接続させるFCループは、上述のような再初期設定を実行しなければならないが、発生する割込みは比較的わずかであり、割り込まれたいかなるデータ伝送も回復される。しかしながら、FCループの動作を劣化または停止させ、本質的に受動的PBCによって検出およびバイパスされることができないようなディスク・ドライブの異なる可能な故障モードが存在する。例えば、ディスク・ドライブは擬似信号を間欠的に伝送するか、さもなければ、要求されたデータを伝送した後にFCループの制御の生成に失敗する可能性がある。このように、受動的PBCは、ディスク・ドライブのホット・スワッピングを可能にするけれども、高可用性システムに必要な高レベルのコンポーネント誤動作検出および回復を提供しない。
【0092】本発明本発明の方法およびシステムは、信頼性の増加、フォルト・トレランスの増大、可用性の増加を提供する新しいタイプの複数周辺デバイス筐体に関するものである。前述の場合と同様に、この新しい複数周辺デバイス筐体は複数ディスク筐体の観点から記述されるが、本発明の技術および方法は、一般的に、種々のタイプの周辺デバイスの異なる組み合わせを内包する筐体に適用することができる。本発明の方法およびシステムは、筐体の範囲内の種々の周辺デバイスの間のみならずホスト・コンピュータと筐体の間のFC相互接続に基づく筐体に関して以下に記述される。しかしながら、FCに代えて、他のタイプの通信媒体を利用することもできる。また、SESコマンド・セットおよびプロトコルがホスト・コンピュータにコンポーネント・レべル制御を提供する場合の複数ディスク筐体に関して本発明の方法およびシステムが記述されるが、このコンポーネント・レべル制御は他のタイプのプロトコルおよびコマンド・セットによって提供されることもできる。
【0093】図17は、本発明に関連した技術を組み入れた高可用性筐体を示す。以下の記述において、高可用性筐体を、その英語表現の"highly available enclosure"の頭文字をとって"HAE"と略称する場合がある。図17に示される高可用性筐体は、8つのディスク・ドライブ1402−1409を含む。ディスク・ドライブ1402−1409は背面配線板1412に接続される。背面配線板は、ディスク・ドライブをHAEにおける他のコンポーネントと接続すると共に、ディスク・ドライブと独立して、HAEにおける一定の他のコンポーネントを相互接続する。背面配線板1412は受動的である。すなわち、それは演算エレメントのような能動的コンポーネントを含まず、従ってHAEの範囲内での故障ポイントになる可能性はきわめて少ない。2つのリンク制御カード("LCC")1414および1416が背面配線板に接続される。2つのLCCは本質的に同一である。上部LCC1414に含まれるコンポーネントだけを以下記述するので、図ではそれらにだけ符号がつけられている。
【0094】LCCは、2つのGBIC1418および1420、多数のポート・バイパス回路1422−1424およびいくつかのポート・バイパス回路チップ1426および1428を含む。ポート・バイパス回路チップの各々は4つの独立したポート・バイパス回路を含む。ポート・バイパス回路1422、1423を接続する線分1430のような図17において太線で表されているFCループおよびポート・バイパス回路バス1432の両方によって、ポート・バイパス回路およびポート・バイパス回路チップは相互接続される。図17に示されているように、ポート・バイパス回路は、ポート・バイパス回路1422および1423の間の接続のようなFCループのみならずポート・バイパス回路バスによっても相互接続されている。
【0095】図17において、バイパス回路チップ1426、1428は、8つのディスク・ドライブ1402−1409への線1434のような単一線によって集合的に表されているPout、PinおよびSEL制御線信号をファンアウトする。各ポート・バイパス回路チップは、4つのディスク・ドライブに対するFCループ・アクセスを制御する。LCCは筐体サービス・プロセスおよび他の制御プログラムを実行するプロセッサ1436を含む。このプロセッサ1436は、3つの異なる内部バスへのポートと共にFCポートを実施する回路を含む。1つの好ましい実施形態において、内部バス1438のうちの1つであるI2Cバスが、PBCコントローラ・チップ1440および1442および(温度検出器および電力監視器1444および1446のような)他のコンポーネントにプロセッサ1436を接続する。1つのLCCのプロセッサ1446は、背面配線板1412を通過する2つの別々の内部バス1450および1452によって別のLCC1448上のプロセッサと接続される。
【0096】HAEは高度に冗長である。ディスク・ドライブ1402−1409は、2つのLCCカード1414および1416上で部分的に実施される2つの別々のFCループによって相互接続される。従って、1つのFCループが故障したとしても、ホスト・コンピュータ(図示されてない)は、他のFCループを経由してその筐体のディスク・ドライブに対するデータのアクセスおよび交換をなおも行うことができる。同様に、2つのプロセッサ1436および1448を相互接続する1つの内部バスが故障しても、2つのプロセッサはもう1つの内部バスを経由して通信することができる。図14には図示されていないが、HAEは、二重の電源およびその他の冗長コンポーネントを含む。2つのプロセッサの各々が2つの冗長コンポーネントの1つ(例えば1つの電源)を制御することによって、故障したプロセッサが両方の電源を遮断してHAEを使用不可能にしないことが保証される。
【0097】ポート・バイパス回路が、上述の既存の筐体の場合と同様に、ディスク・ドライブのホット・スワッピングを可能にする。しかしながら、ポート・バイパス回路自体がポート・バイパス回路コントローラ1440および1442によって制御されるので、更に一層高いレベルのコンポーネント制御が達成される。例えば、プロセッサ1436上で稼働するソフトウェア・ルーチンが、故障ディスク・ドライブを識別および分離し、特定ディスク・ドライブを強制的にバイパスするようにポート・バイパス回路コントローラに信号を送ることができる。冗長な環境監視機構が、両方のプロセッサのHAEの範囲内の条件の用心深いフォルト・トレラント監視機能を可能にする。いかなる特定のセンサまたは相互接続内部バスの故障もHAE全体の故障を生み出さない。
【0098】図18の(A)は、ポート・バイパス回路制御チップによるポート・バイパス回路の制御を示す。図18の(A)に示されている回路は、上述の図16の(B)に示された回路に類似している。しかしながら、この回路において、"SD"という符号の制御信号線1502はマルチプレクサ1504の出力を直接制御しない。その代わりに、SD制御信号線1502はPBC制御回路1506へ入力される。PBC制御回路は、マイクロプロセッサによって実施されるか、あるいは状態マシン論理機構に基づいて実施される。PBC制御回路1506は、強制的バイパス制御回路線("FB")を出力する。線"FB"は、上記図16の(B)の場合と同様に、入力信号IN1508が出力信号OUT1510にそのまま渡されるか、あるいは、あるいはその代わりにPin信号1512がマルチプレクサ1504によって出力信号OUT1510へ渡されるかを決定する。PBC制御回路1506は、また、シリアル・バス1510経由でマイクロプロセッサ1508と、あるいは、その他のタイプの通信メディアと、データを交換することができる。マイクロプロセッサ1508は、ディスク・ドライブ1514をバイパスするためPBC制御回路1506がFC制御信号1503をオンにしなければならないことをPBC制御回路1506に指示することができる。このようにして、図18(A)に示される回路において、信号線SD1502を経由してディスク1514によってはたらかされる制御の他にいくつかの付加的レベルの制御が利用できることとなる。PBC制御回路1506は、内部的規則セットに従ってディスク1514を強制的にバイパスすることが可能であり、マイクロプロセッサ1508の範囲内で稼働するプログラムによって、PCB制御回路1506に伝送されるデータを介してディスク1514が強制的にバイパスされることが可能とされる。これらの付加的レベルの制御は、環境監視機構およびそのような他のセンサの信号によって通知されるディスク誤動作または臨界イベントの検出の後の個々のディスク・ドライブのマイクロプセッサに制御されたバイパスを可能にする。
【0099】図18の(B)はハードウェアで実施されるPBC制御回路の例を示す。Dフリップフロップ1516は強制的バイパス信号("FB")1518を出力する。Dフリップフロップは、ストローブ入力信号1520を受け取り次第状態を変更する。Dフリップフロップは、SD制御信号線1522から入力を、マイクロプロセッサから書き込みデータ1524を受け取る。SD制御線が状態を変更する時、あるいは、マイクロプロセッサ書き込み動作が存在する時必ずストローブ信号が生成される。SD入力1512に対する変更、あるいは、マイクロプロセッサから入力される書き込みデータ1524に対する変更のいずれかに基づいて、Dフリップフロップはセットまたはクリアされる。強制的バイパス信号("FB")は、SD制御信号1522を追跡するが、マイクロプロセッサ制御に優先される場合がある。このようにして、図18の(B)の制御回路が、PCB制御回路1506として図18の(A)に含まれると、マイクロプロセッサがバイパスすべきディスク自体に従うのではなく、強制的にディスクをバイパスすることを決めるケースを除いて、図18の(A)の回路は、図16の(A)の回路と同様に機能することができる。
【0100】また、図18(A)の強化されたPBCC制御回路をHAEにおいて使用して、種々の入れ替え動作を実行することができる。例えば、図17におけるPBC回路1422および1423は、それぞれGBIC1418および1420をバイパスするようにPBCコントローラ1440および1442によって制御されることができる。図19は、1つのGBICをバイパスするために入れ替動作の実施が役立つことを示している。図19の(A)において、2つのHAE1602および1604が単一のFCループ1606を通してデージーチェーン方式で接続されている。ホスト・コンピュータ(図示されてない)から延伸してくるFC光ファイバが、第1のGBIC1608を通して第1のHAE1602に接続する。FCループは、GBIC1610において第1のHAEを出て、GBIC1612において第2のHAE1604に入る。FCループは、最後に、GBIC1614において第2のHAE1604を出て、戻りの経路を通ってホスト・コンピュータに戻る。FC回路は、外部ループバック・フード1616を使用してGBIC1614から折り返される。
【0101】図19(A)に例示されている単純な形式のデージーチェーン方式には問題がある。第2のHAE1604の範囲内の一定の誤動作が第1のHAE1602を含むFCループ全体を停止させる可能性がある。すなわち、図19(A)の方式に従ってデージーチェーン方式で接続されている場合、HAEは、容易に分離およびバイパスすることができない。また、外部ループバック・フード1616は、システム全体にコストを加える付加的コンポーネントであり、設置における問題を派生させ、また単一ポイント故障の別の1つの発生源となる。
【0102】図19(A)のデージーチェーン方式の接続に関連する上記の欠陥は、PBC制御論理回路によって制御される分路動作を使用して克服することができる。図19の(B)は、図19の(A)に示されたHAEを示しているが、図16の(A)において外部ループバック・フード1616によって提供された機能性がここでは1つのPBCによって実施されている。図16の(B)において、HAE1620の右端のGBIC1618はPBC1622によって制御される。PBC自体は、マイクロプロセッサ(図示されていない)によって制御されるPBCコントローラ1624によって制御される。
【0103】戻りFC信号1626は、変換の後、制御信号線1628としてPBCコントローラ1624へフィードバックされる。GBIC1618が別のHAEに接続される光ファイバ・ケーブルに接続されている場合、FC戻り信号1626に応じて、制御信号線1628がオンにされ、PBCコントローラ1624は、当該HAE内部での信号送付および外部の付加HAEへの信号送付を行うようにPBC1622を制御する。しかしながら、HAEがGBIC1618および光ファイバ・ケーブルを経由して他のHAEに接続されていない場合、制御信号線1628はオフとされ、PBCコントローラ1624はGBIC1618をバイパスするようにPBC1622を制御し、この結果、FC信号は戻り経路を経由してホスト・コンピュータへ折り返される。このメカニズムは、外部ループバック・フード1616の必要性を排除し、デージーチェーン方式で接続される筐体の自動検出機能を提供する。更に、ある1つの筐体が誤動作するHAE1620の下流側にあれば、ホスト・コンピュータ(図示されていない)は、そのHAE(やはり図示されてない)の範囲内のマイクロプロセッサと交信して、PBCコントローラ1624がPBC1622を介してGBIC1618を強制的にバイパスするように指示し、それによって、下流筐体はそのFCループから取り外される。このようにして、欠陥筐体は、GBICのマイクロプロセッサ制御の分路動作によって、分離および除去されることができる。
【0104】以上本発明を1つの特定の実施形態の観点から記述したが、上記記述は本発明をそのような実施形態に限定するように意図されていない。本発明の理念を逸脱することなく上記実施形態の修正が可能である点は当業者に明らかであろう。例えば、上記実施形態で使われるFC通信媒体とは異なる筐体内または筐体間通信媒体を使用する複数周辺デバイス筐体において本発明を実施することは可能である。また、別の例を挙げれば、多数の異なるタイプのコントローラ、マイクロプロセッサおよびポート・バイパス回路を任意の多数の異なる構成で使用することによって、本発明の3段階ポート・バイパス回路制御戦略を実現することができる。コントローラ、マイクロプロセッサ、通信バスおよびファームウェア/ソフトウェア・ルーチンにおける冗長性を更に付加することによって、本発明の方法に従って設計される複数周辺デバイス筐体の信頼性を更に向上させることができる。
【0105】上記記述は、本発明の完全な理解を提供するため、説明の目的から特定の用語を使用したが、本発明を実施するために特定の詳細は必要とされないことは当業者に明らかであろう。更に別の例を挙げれば、本題の発明から関心が不必要にそれることを避けるため、既知の回路およびデバイスはブロック図形式で示されている。このように、本発明の特定の実施形態の上記記述は、例示および説明の目的のため提示されているもので、本発明を前述された形態に制限またはそれ以外を除外するように意図されていない。種々の修正およびバリエーションは明らかに可能である。本発明の原理およびその現実的応用を最も良く説明し、それによって当業者が本発明および特定の用途に適するように種々の修正を加えた上で実施形態を最も良く活用することができるように、上記実施形態が選択され記述された。
【0106】本発明には、例として次のような実施様態が含まれる。
(1)デバイスによる通信媒体へのアクセスを制御する、外部から制御可能なバイパス回路であって、該バイパス回路が、上記通信媒体からのIN入力と、上記通信媒体へのOUT出力と、上記デバイスへの上記IN入力のPout出力と、上記デバイスからのPin入力と、上記デバイスからの制御信号線SD出力と、多重化コンポーネントと、を備え、該多重化コンポーネントが、上記IN入力、上記Pin入力およびFB制御信号を受け取って、上記FB制御信号が第1の状態にある時上記Pin入力を上記OUT出力に出力し、上記FB制御信号が第2の状態にある時上記IN入力を上記OUT出力に出力する、バイパス回路。
(2)上記デバイスが導入されていて通信媒体とデータを交換する準備ができている時、該デバイスが上記制御信号線SDを第1の状態にセットし、上記デバイスが導入されてなく通信媒体とデータを交換する準備ができていない時、該デバイスが上記制御信号線SDを第2の状態にセットする、前記(1)に記載のバイパス回路。
【0107】(3)バイパス回路コントローラが、上記デバイスからのSD制御信号線を受け取ってそれを多重化コンポーネントに出力する、前記(1)に記載のバイパス回路。
(4)上記バイパス回路コントローラがプロセッサと読み取り/書き込みデータを交換する、前記(3)に記載のバイパス回路。
(5)上記バイパス回路コントローラがマイクロプロセッサに基づくものである、前記(4)に記載のバイパス回路。
(6)上記バイパス回路コントローラが状態マシンとして実施される、前記(4)に記載のバイパス回路。
(7)上記バイパス回路コントローラが、上記SD制御信号線の状態およびバイパス回路コントローラに組み込まれた論理および規則に基づいて通信媒体へのデバイスのアクセスを制御する、前記(4)に記載のバイパス回路。
(8)上記バイパス回路コントローラが、上記SD制御信号線の状態およびプロセッサから受け取るデータに基づいて通信媒体へのデバイスのアクセスを制御する、前記(4)に記載のバイパス回路。
【0108】(9)複数デバイス筐体内部の接続分路であって、該接続分路が、該複数デバイス筐体の内部の内部通信媒体を外部通信媒体と接続する複数デバイス筐体間通信媒体コネクタと、上記複数デバイス筐体間通信媒体コネクタによる上記外部通信媒体へのアクセスを制御する、外部から制御可能なバイパス回路と、上記複数デバイス筐体間通信媒体コネクタを介して上記外部から制御可能なバイパス回路を制御するコントローラ内部に配置される制御論理機構と、を備え、該制御論理機構が、該筐体をホスト・コンピュータおよび多数の他の複数デバイス筐体に接続するため上記内部通信媒体を上記外部通信媒体に接続し、該筐体を上記ホスト・コンピュータおよび上記多数の他の複数デバイス筐体から分離するため上記内部通信媒体を上記外部通信媒体から切断する、接続分路。
【0109】(10)内部および外部通信媒体の両方がファイバ・チャンネル仲裁ループの一部であり、該接続分路が、拡張複数デバイス筐体間通信媒体コネクタからファイバ・チャンネル仲裁ループの下流側部分へのアクセスを制御し、上記コントローラが下流複数デバイス筐体から信号を検出する時、上記コントローラは当該複数デバイス筐体をファイバ・チャンネル仲裁ループの下流部分に接続するように該接続分路に指示し、上記コントローラが下流複数デバイス筐体から信号をなにも検出しない時、上記コントローラは当該複数デバイス筐体をファイバ・チャンネル仲裁ループの下流部分から切断するように該接続分路に指示する、前記(9)に記載の接続分路。
【0110】(11)内部および外部通信媒体の両方がファイバ・チャンネル仲裁ループの一部であり、該接続分路が主複数デバイス筐体間通信媒体コネクタからファイバ・チャンネル仲裁ループの上流側部分へのアクセスを制御し、上記コントローラがファイバ・チャンネル仲裁ループの上流部分に接続されるホスト・コンピュータおよびその他のデバイスに当該複数デバイス筐体が接続されるべきであると決定する時、上記コントローラは当該複数デバイス筐体をファイバ・チャンネル仲裁ループの上流部分に接続するように該接続分路に指示し、上記コントローラがファイバ・チャンネル仲裁ループの上流部分に接続されるホスト・コンピュータおよびその他のデバイスから当該複数デバイス筐体が切断されるべきであると決定する時、上記コントローラは当該複数デバイス筐体をファイバ・チャンネル仲裁ループの上流部分から切断するように該接続分路に指示する、前記(9)に記載の接続分路。
(12)外部から制御可能なバイパス回路を制御する上記コントローラがマイクロプロセッサに基づくものである、前記(9)に記載の接続分路。
(13)外部から制御可能なバイパス回路を制御する上記コントローラが状態マシンとして実施される、前記(9)に記載の接続分路。
(14)上記コントローラそれ自体はプロセッサから受け取られるデータによって制御される、前記(9)に記載の接続分路。
【0111】(15)複数周辺デバイス筐体内部のデータ交換コンポーネントの通信媒体へのアクセスを制御する方法であって、上記通信媒体からの入力を上記データ交換コンポーネントへ接続するステップと、上記通信媒体からの入力を多重化コンポーネントへ接続するステップと、上記多重化コンポーネントからの出力を上記通信媒体へ接続するステップと、上記データ交換コンポーネントからの出力を上記多重化コンポーネントへ接続するステップと、FB制御信号線を経由してコントローラを上記多重化コンポーネントに接続して、上記多重化コンポーネントから上記通信媒体への出力を選択するステップと、を含む方法。
(16)上記データ交換エレメントが周辺デバイスであり、上記通信媒体は上記複数周辺デバイス筐体の内部通信媒体で、上記複数周辺デバイス筐体の内部の周辺デバイスを相互接続し、上記コントローラが上記周辺デバイスから制御信号線経由で制御信号を受け取り、上記コントローラが上記周辺デバイスを上記内部通信媒体に接続するため上記FB制御信号線の状態を第1の状態にセットし、上記周辺デバイスを上記内部通信媒体から切断するため上記FB制御信号線の状態を第2の状態にセットする、前記(15)に記載の方法。
【0112】(17)上記データ交換エレメントが複数周辺デバイス筐体間コネクタであり、上記通信媒体は上記複数周辺デバイス筐体の外部通信媒体で、上記複数周辺デバイス筐体を外部デバイスに接続し、上記コントローラが上記複数周辺デバイス筐体を上記外部通信媒体に接続するため上記FB制御信号線の状態を第1の状態にセットし、上記複数周辺デバイス筐体を上記外部通信媒体から切断するため上記FB制御信号線の状態を第2の状態にセットする、前記(15)に記載の方法。
(18)上記複数周辺デバイス筐体間コネクタが複数周辺デバイス筐体をホスト・コンピュータに接続する、前記(17)に記載の方法。
(19)上記複数周辺デバイス筐体間コネクタが複数周辺デバイス筐体を別の複数周辺デバイス筐体に接続する、前記(17)に記載の方法。
(20)上記通信媒体がファイバ・チャンネル仲裁ループである、前記(15)に記載の方法。
【0113】
【発明の効果】本発明によると、高い可用性を持ち、フォール・トレラントの複数デバイス筐体が実現される。
【出願人】 【識別番号】398038580
【氏名又は名称】ヒューレット・パッカード・カンパニー
【氏名又は名称原語表記】HEWLETT−PACKARD COMPANY
【出願日】 平成11年11月11日(1999.11.11)
【代理人】 【識別番号】100081721
【弁理士】
【氏名又は名称】岡田 次生
【公開番号】 特開2000−215151(P2000−215151A)
【公開日】 平成12年8月4日(2000.8.4)
【出願番号】 特願平11−320976