JP2002530728A - ネットワークのためのシステムおよび方法並びにi/oデバイス・ドライバー - Google Patents

ネットワークのためのシステムおよび方法並びにi/oデバイス・ドライバー

Info

Publication number
JP2002530728A
JP2002530728A JP2000582514A JP2000582514A JP2002530728A JP 2002530728 A JP2002530728 A JP 2002530728A JP 2000582514 A JP2000582514 A JP 2000582514A JP 2000582514 A JP2000582514 A JP 2000582514A JP 2002530728 A JP2002530728 A JP 2002530728A
Authority
JP
Japan
Prior art keywords
network
driver
storage
data
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000582514A
Other languages
English (en)
Inventor
シシャー シィー シャー
トーマス ダブリュー トンプソン
ディビッド ケー ワグナー
Original Assignee
クロジック コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クロジック コーポレーション filed Critical クロジック コーポレーション
Publication of JP2002530728A publication Critical patent/JP2002530728A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ネットワーク・プロトコルとI/Oプロトコル両者を同じインターフェース回路を使用して通信リンクに伝送できるシステムを提供する。 【解決手段】 本発明は同じインターフェース回路を使用して送信記憶データとネットワーク・データ両方を伝送するシステムおよび方法に向けられている。ネットワーク・データはネットワーク・ドライバーから下位階層記憶ドライブへ伝送される。記憶装置データとネットワーク・データは通信リンク・インターフェース回路に伝送され、この記憶装置データは記憶プロトコルを使用して伝送され、ネットワーク・データがネットワーク・プロトコルを使用して伝送される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明はネットワークおよびI/O通信を処理するための方法およびシステム
、またより詳しくはネットワークおよびI/Oデバイス・システムに関する。
【0002】
【従来の技術】
(背景技術) コンピュータ・システムは、一般的にアプリケーション・プログラムとハード
ウエア間にインターフェースを提供するオペレーティング・システムを利用して
いる。例えば、オペレーティング・システムはタスクを計画し、記憶を割り当て
し、例えばハード・デバイス、光学ディスク・ドライブ、テープ・デバイス、ネ
ットワーク・デバイス等々のような周辺ハードウエアに対してインターフェース
を処理するのに使用されている。オペレーティング・システムはカーネル・プロ
グラムと種々のシステム・プログラムに分離されている。システム・プログラム
は、カーネルによって提供された装置を使用して、より高いレベルのハウスキー
ピンング・タスクを実行し、しばしばクライアント−サーバー関係におけるサー
バーとして機能する。
【0003】 上述したように、オペレーティング・システムはアプリケーション・プログラ
ムとハードウエアとをインターフェースしている。例えば、アプリケーション・
プログラムはリクエストを伝送して周辺ハードウエアにアクセスする。このリク
エストがオペレーティング・システムによって受信され、次にそのリクエストが
デバイスによって利用可能なフォーマットに翻訳される。こうして、オペレーテ
ィング・システムは、翻訳されたリクエストを、適切なデバイスに送信し、デバ
イスによって通信が処理される。
【0004】 周辺デバイスを制御するのに使用されるソフトウェアは、一般的にデバイス・
ドライバーと呼ばれる。このデバイスは普通一つのルーチンまたは一連のルーチ
ンであって、汎用I/O操作のデバイス−特定アスペクトを実行する。デバイス
・ドライバーは、デバイスのハードウエア・レジスターにアクセスし、I/O操
作を開始および実行し、エラー処理を実行するために応答可能であり、また、し
ばしばインターラプト・ハンドラーを含んでおり、デバイスによって発生された
インターラプト(割り込み)をサービスする。デバイス・ドライバーは一般的に
カーネル・モード・ドライバーであって、しばしば操作システム・カーネルの最
低レベルの部分を形成し、カーネルが構築されたときにリンクされる。ウインド
ウズNTのようなあるオペレーティング・システムは読み込み可能デバイス・ド
ライバーを有しており、オペレーティング・システムが稼働した後でファイルか
らインストールすることができる。
【0005】 ウインドウズNTにおいて、I/Oマネージャーがドライバーとアプリケーシ
ョン・プログラムまたはカーネル要素間の通信を処理する。I/Oマネージャー
がI/Oリクエスト・パケットを適切なデバイス・ドライバーに発することによ
ってI/Oリクエストに応答する。ドライバーがリクエストを目的デバイスに対
して適切な形態に翻訳し、デバイスをしてリクエストされたI/O操作を開始せ
しめる。一度、デバイスがI/O操作を完了すると、デバイスはデバイス・ドラ
イバーによってサービスされるインターラプトを発生する。次に、I/Oマネー
ジャーがI/Oリクエストを、例えばI/O操作の結果を記録することを含む種
々の操作を実行することによって完成する。
【0006】 ウインドウズNT、またはUNIX(登録商標)のようなあるオペレーティン グ・システムは関連するデバイス・ドライバー内で階層的アプローチを使用する 。これらの操作システムはいくつかのドライバー階層をアプリケーション・プロ グラムとデバイス間に存在させることを許容する。例えば、一つのまたはそれ以 上の中間ドライバーが物理的デバイス・ドライバーのトップに積層される。これ らの中間ドライバー階層は、より一般的な管理問題から分離されるべきハードウ エア特定操作を許容する。ウインドウズNT用語において、一つのこの種の中間 ドライバー・タイプは「クラス・ドライバー」と呼ばれ、一方ハードウエア・ド ライバーは「ポート・ドライバー」と呼ばれる。
【0007】 デバイス・ドライバーの一例は、SCSIドライブ・デバイス・ドライバーで
ある。このSCSIデバイス・ドライバーは一般的にいくつかの階層からなる。
例えば、SCSIデバイス・ドライバーはクラス・ドライバー、SCSIポート
・ドライバーおよびSCSIミニポート・ドライバーを含んでいる。アプリケー
ション・プログラムが、ディスク上に配置されたファイルのための読取リクエス
トに問題があれば、オペレーティング・システムは適切なSCSIクラス・ドラ
イバーを実施し、読取リクエストをクラス・ドライバーに送る。クラス・ドライ
バーが受信されたI/Oリクエスト・パケットを、SCSI指令デスクリプタ・
ブロックを含むSCSIリクエストブロック(SRB)で規定されたシステムで
I/Oリクエスト・パケットに翻訳する。翻訳されたI/Oリクエスト・パケッ
トが、例えばSCSIポート・ドライバーのような次に低位のドライバーに送ら
れる。SCSIポート・ドライバーがクラス・ドライバーからのSCSIリクエ
スト・ブロックを翻訳し、SCSIリクエスト・ブロックと指令デスクリプタ・
ブロックをSCSIミニポートにパスする。SCSIミニポート・ドライバーが
動的にSCSIポート・ドライバーにリンクされ、特定するSCSIホスト・バ
ス・アダプター(HBA)のためのハードウエア特定サポートを提供する。SC
SIドライブが読取操作を実行し、インターラプトをSCSIミニポートに発生
して、インターラプトをサービスする。
【0008】 デバイス・ドライバーの他の例はネットワーク・ドライバーである。このネッ
トワーク・ドライバーは、NIC(ネットワーク・インターフェース・カード)
のようなネットワーク処理ハードウエアとの通信を処理する。ウインドウズNT
のような多数のオペレーティング・システムは、ドライバー階層を使用して実際
のデータ転送からのネットワーク・プロトコル管理を解放する。従って、ネット
ワーク・ドライバーはNDISまたはNICミニポート・ドライバーによって従
属されたウインドウズNT LAN(大規模ネットワーク)を含んでいる。ネッ
トワーク・ドライバー階層はウインドウズNT NDIS(ネットワーク・デバ
イス・インターフェース仕様)インターフェースを使用して相互連絡される。従
来のシステムにおいて、NDIDミニポート・ドライバーはNICにインターフ
ェースする。従って、従来のシステムにおいて、NDISミニポートはNICを
管理するのに必要とされるハードウエア特定操作を実行する。
【0009】 多数の従来のコンピュータ・システムは、少なくとも二つのインターフェース
・カード、すなわち、I/O HBAとネットワーク・インターフェース・カー
ドを含んでおり、それぞれI/Oプロトコルとネットワーク・プロトコルを処理
する。上述したように、これらのカードはそれぞれSCSIミニポートおよびN
SISミニポートによって管理される。各カードは一般的に別々の通信媒体に連
結される。例えば、I/O HBAは高速ファイバー・チャネル通信リンクに連
結され、次に一つまたはそれ以上のサーバー・システムまたは他のコンピュータ
・システムに連結されることになる。ファイバー・チャネル・リンクは通信に関
連した記憶内容を処理する。NDISミニポートはNICを介して、他のコンピ
ュータ・システムに連結されたイーサネット・リンクに接続される。次に、イー
サネット・リンクは、クラスター化サーバー・システムの場合において、「ハー
トビート」情報のようなネットワーク関連通信を処理する。ネットワーク・ハー
トビート・トラフィックは一般的に決っしてトラフィックに関連した記憶内容、
従って、より低い帯域、より低いコストではなく、イーサネット・リンクは、こ
のようなより低い帯域通信を処理するのに最も適している。従って、例えばホス
ト・システムおよび記憶サブシステムを有する一般的なクラスター・サービス・
システムにおいて、各ホスト・システムは少なくとも1つのI/O HBAおよ
び一つのイーサネット・インターフェース・カードを有することになる。さらに
、各記憶サブシステムは少なくとも一つのI/O HBAを有する。ホスト・シ
ステムはハートビート情報をイーサネット・リンクを通して互いに連絡し合う。
ホスト・システムと記憶サブシステム両者は、ファイバー・チャネルを通して記
憶情報を連絡し合う。
【0010】
【発明が解決しようとする課題】 しかし、上述した従来のアプローチは各ホスト・システム・コンピュータ内に
少なくとも二つのスロット、すなわち、その一つは記憶装置ないしI/O HB
A用であり、もう一つがNIC用のスロットと、記憶装置に関連する通信とネッ
トワークに関連する通信の両者を処理するための二つの通信リンクを必要とする
欠点がある。この状況はさらに記憶装置と通信リンク両者のためのシステムと共
動する冗長チャネルをさらに悪化させる。従来のシステムにおいて、この種の冗
長は四つのホスト・バス・アダプターを必要とし、次に各ホスト・コンピュータ
・システムに四つのカード・スロットを必要とすることになる。しかし、多数の
標準的コンピュータは利用可能な極めて制限された数のスロットを有している。
従って、四つのHBAと順応させるために、非標準的大規模シャーシを備えるか
、または付加的なスロット位置を有する付加的なシャーシとしたものをホスト・
コンピュータ・システムに接続する必要がある。いずれの場合においても、高価
な大型システムとなる。
【0011】
【課題を解決するための手段】
(発明の開示) 本発明の一実施例は、ネットワーク・プロトコルとI/Oプロトコル両者を同
じインターフェース回路を使用して通信リンクに伝送できる利点を提供する。例
えば、一実施例において、二つのまたはそれ以上のコンピュータ・システムが、
ファイバー・チャネル・リンクのような通信リンクを使用して相互接続される。
SCSIプロトコルのようなI/Oプロトコルと、インターネット・プロトコル
(IP)のようなネットワーク・プロトコル両者が、同じホスト・バス・アダプ
ターを使用する同じファイバー・チャネル・リンクを介してデータを送信するの
に使用される。従って、従来のシステムと比較して、本発明の一実施例はSCS
IプロトコルとIPプロトコル両者を使用してデータを搬送するのに多数の通信
リンクの半分と多数のホスト・バス・アダプターの半分を必要とする。
【0012】 通信リンクの数とホスト・バス・アダプターの数の削減は、冗長リンクを有す
るネットワーク・システムにおいてさえも重要である。例えば、本発明の一実施
例において、二つのまたはそれ以上のコンピュータ・システムが二つの通信リン
クを使用して相互連結される。通常操作中、一つのリンクがSCSIのようなI
/Oプロトコルを使用してデータを搬送するのに使用され、一方他のリンクがI
Pのようなネットワーク・プロトコルを使用してデータを搬送するのに使用され
る。二つのリンクのいずれか一方が故障したときにおいても、本発明の一実施例
は故障を検出するとともに、残りのリンクを使用してI/Oプロトコルとネット
ワーク・プロトコル両者を使用してデータを搬送する。従って、本発明の一実施
例は、二つのリンクと二つのホスト・バス・アダプターを使用してネットワーク
とI/Oプロトコル・データ両者のための冗長リンクを提供する。これが、一般
的にI/Oプロトコル・データのための二つの冗長通信リンクと二つのホスト・
バス・アダプターと、ネットワーク・プロトコル・データのための二つの付加的
な冗長リンクおよび二つの付加的なホスト・バス・アダプターを使用する従来技
術と対照をなす。
【0013】
【発明の実施の形態】
(好ましい実施例の詳細な説明) 本発明は同じ通信リンクを介してネットワーク・プロトコルと記憶プロトコル
を稼働するための方法およびシステムを提供する。従って、例によって説明する
と、本発明の一実施例は、インターフェアレンス・カード、インターフェース回
路およびネットワーク・クラスター化サーバー・システムとともに必要とする通
信リンク数を有利に削減する。インターフェアレンス・カード、インターフェー
ス回路およびネットワークの数の削減は、従来のシステムと比較して費用の削減
とより小型のシステムを提供する。
【0014】 図1は本発明の一実施例と併用される典型的なシステムのハードウエアの概観
を示す。図示システムは、クラスター化サーバー・システムである。クラスター
化サーバー・システムは一般的に、共通のデータ記憶装置にアクセスし、共通す
る一連の顧客に対してサービスを提供する二つまたはそれ以上の独立サーバーを
含んでいる。しかし、本発明はクラスター化サーバー・システムに限定するもの
ではない。例えば、本発明はネットワークと記憶プロトコル両者を利用する他の
システムと組み合わせることもできる。
【0015】 図1に示したように、典型的なシステム100は二つの記憶サブシステム10
6、108および二つのホスト・システム102、104を含んでいるが、この
クラスター化サーバー・システム100はこれより多いか、または少ないホスト
・システムおよび記憶サブシステムを備えていてもよい。各記憶サブシステム1
06、108およびホスト・システム102、104は、例えばペンティアム( 登録商標)・IIプロセッサまたはアルファ・プロセッサのような一つまたはそ れ以上のプロセッサを含めることができる。一実施例において、各ホスト・シス テム102、104は、マイクロソフト・ウインドウズ・NTバージョン4また は5、あるいはユニックスのようなオペレーティング・システムを稼働する。本 発明の典型例を示す目的で、システムはマイクロソフト・ウインドウズ・NTを 稼働するものと仮定する。各記憶サブシステム106、108およびホスト・シ ステム102、104は、一般的にCD−ROMドライブまたはDVDドライブ (図示省略)のようなハード・ドライブおよび光学ドライブだけでなくランダム ・アクセス・メモリ(RAM)を含んでいる。さらに、各ホスト・システムは一 般的にホスト・バス・アダプター(図示省略)のようなインターフェース・カー ドを含んでおり、その一つとしてQLogic ISP21xx またはISP22xx ファミリーを 挙げることができる。一実施例において、ホスト・アダプターはCISC(複雑 命令セット・コンピュータ)またはRISC(縮小命令セット・コンピュータ) プロセッサのようなプロセッサ、およびRAMまたはEEPROMのようなメモ リを有している。一実施例において、少なくともメモリの一部はホスト・コンピ ュータ・システムからダウンロードされたアダプター・コードを保持するのに使 用される。一実施例において、各ホスト・アダプターは別体の回路カード上に配 備される。他の実施例において、一つ以上のホスト・アダプターが回路カード上 に配備される。各ホスト・バス・アダプター・カードは一般的にPCIバス・ス ロットのようなローカル・コンピュータ・バス・スロットに連結される。
【0016】 従来のシステムと対比して、図1に示したシステム100は共通の通信リンク
110上の同じホスト・バス・アダプター・インターフェース回路を使用して記
憶およびネットワーク通信両者を稼働する。従って、ホスト・システム当り二つ
のインターフェース・カードと二つの対応する通信リンクを使用する従来のシス
テムと対比して、図1に示した実施例は、ホスト・システム当り一つのインター
フェース・カードないし回路と一つの通信リンクのみを必要とするだけである。
さらに、次に説明するように、一実施例において、本発明の使用はオペレーティ
ング・システムに対して透過性である。加えて、本発明の一実施例において、ウ
インドウズNTの標準クラスのドライバーは修正なしに使用することが可能であ
る。
【0017】 本発明の一実施例において、クラスター記憶プロトコルは、SCSIIIのよう
なSCSIプロトコルであり、一方ネットワーク・プロトコルはインターネット
・プロトコル(IP)である。一実施例において、種々のクラスター・システム
ないし「ノード」に連結される通信リンク110は、ファイバー・チャネル・ル
ープ(FCL)である。ファイバー・チャネルは、SCSIおよびIPのような
共通の伝送プロトコルを有利にマップする高速データ伝送インターフェース技術
である。従って、ファイバー・チャネル技術を使用すれば、SCSIのような高
速I/Oとネットワーク機能を単一の連結技術で併合することが可能である。し
かし、別の実施例はSCSIバスのような他のバス技術を使用してI/Oとネッ
トワーク・プロトコルを共通のリンク上で使用することができる。従って、一実
施例において、ネットワークおよび記憶パケットがIPおよびSCSIプロトコ
ルのような標準ネットワークとI/Oプロトコルを使用するコンピュータ間で伝
送される。この実施例はQLogic ISP2200 を基本とするようなHBAがIPおよ
びSCSIプロトコル両者をサポートしたときに、使用できる。他の実施例にお
いて、HBAがSCSIプロトコルをサポートしているが、IPプロトコルをサ
ポートしていなければ、ネットワーク・パケットがSCSIパケットないし命令
内にカプセル化される。この「カプセル化」実施例において、HBAはより一般
的なイニシエータ・モードだけでなく、SCSIターゲット・モードをサポート
し、これによってHBAをしてSCSIパケット・カプセル化IPパケットを受
信せしめる。
【0018】 ファイバー・チャネル・ループ110がホスト・システム102、104と記
憶サブシステム106、108のホスト・バス・アダプターに連結されている。
従って、記憶およびネットワーク・パケットはホスト・システム102、104
と記憶サブシステム106、108間をルートすることができる。IPプロトコ
ルを使用して伝送されるデータには、「ハートビート」関連情報を含めることが
できる。「ハートビート」はクラスター化ノードを横切って伝送され、全て適切
に同期化されることが保証され、これによって各ノードは他のノードが機能する
ことを保証できる。
【0019】 ファイバー・チャネル・ループ110は、各ノード102−108内に存在す
るホスト・バス・アダプターに連結される。従って、データはそれぞれのホスト
・バス・アダプターを介してファイバー・チャネル・ループ110間で送受され
る。各ノードを稼働するオペレーティング・システムが、デバイス・ドライバー
を使用してそれぞれのホスト・バス・アダプターと連絡している。一実施例にお
いて、デバイス・ドライバーはホスト・バス・アダプターの内部レジスターにア
クセスし、I/Oオペレーションを開始し完了し、エラー処理を実行し、また、
デバイスによって発生されたインターラプトをサービスする作用をする。
【0020】 一実施例において、フェール−オーバー経路が設けられており、高い信頼性を
保証するとともに、通信リンクの故障の場合にクラスター化サーバー・システム
のシャットダウンを回避する。例として示すと、図2は二つのファイバー・チャ
ネル・ループ210、212を有するクラスター化サーバー・システム200を
示す。平常動作において、ループ1 210はI/Oトラフィックを処理し、一
方ループ2 212はネットワーク・トラフィックを処理する。従って、両通信
ループ210、212は、平常動作で有効に利用され、ループ1の帯域がI/O
トラフィックに割り当てられ、またループ2の帯域がネットワーク・トラフィッ
クに割り当てられる。しかし、ファイバー・チャネル・ループ、例えばループ1
210の故障の場合においては、本発明の一実施例は故障を検出する。故障が
検出されたときに、ループ2 212のようなファイバー・チャネル・ループを
作動する残りの部分がフェイル−オーバー経路として使用され、ネットワークと
I/Oトラフィック両方を実行する。従って、四つの通信リンクを利用してネッ
トワークとI/Oトラフィック両方のために冗長となる従来のシステムに反して
、本発明の図示実施例200は二つの通信リンク210、212を利用する。さ
らに、少なくとも二つのHBAと二つのNICを利用してこの種の冗長を伴う従
来のシステムに反して、図示実施例200はホスト・システム202、204当
り二つのHBAを使用して所望のフェイル−オーバー経路を提供する。
【0021】 一実施例において、フェイル−オーバー技術は次のように作用する。一般的に
、ウインドウズNTクラスター・アドミニストレータがネットワーク経路と記憶
デバイスを管理するとともに、これを形成している。従来のシステムにおいて、
対応する多重通信リンクを備えた多重ネットワーク・パスが形成されれば、一つ
の経路は主ネットワーク経路として設計される。クラスター・アドミニストレー
タが信号指示ないし同様のロスを介して、主経路による通信が不可能であること
を決定した場合に、ウインドウズNTクラスター・アドミニストレータが第2ネ
ットワーク経路と、対応する第2通信リンクに切り替える。従来のシステムに反
して、本発明の一実施例はSCSIバスまたはファイバー・チャネル・ループの
ようなI/Oバスを、I/Oまたは記憶経路として作用するのに加えて第2ない
し第1ネットワーク経路として形成することを許容する。従って、ネットワーク
経路の故障が検出されると、ウインドウズNTクラスター・アドミニストレータ
はI/Oバスにフェール−オーバーできる。
【0022】 本発明の一実施例のソフトウエア・アーキテクチャをよりよく示すために、従
来のNICおよびSCSIドライバーにつきここで説明する。図3は従来のウイ
ンドウズNT NDIS(ネットワーク・デバイス・インターフェース仕様)ド
ライバー・アーキテクチャ300を示す。NDISインターフェース304がN
DIS NICミニポート・ドライバー302に関するラッパーを形成し、従っ
て、NDIS NICミニポート・ドライバー302と、一つまたはそれ以上の
NDIS中間ドライバー306と、LANプロトコル・ドライバー308とネイ
ティブ媒体認知プロトコル・ドライバー310との間にインターフェースを提供
する。付加的に、NDISインターフェース304が共通の事前決定機能をND
IS NICミニポート・ドライバー302とNIC312間に提供する。ND
IS NICミニポート302は、これらの事前決定機能を使用しており、次に
他の要素をコールしてNICハードウエアを管理する。
【0023】 図4は従来のウインドウズSCSIドライバー・アーキテクチャ400を示す
。上位レベルにあるのがSCSIクラス・ドライバー404である。SCSIク
ラス・ドライバー404が、I/Oシステム・サービスを介してアプリケーショ
ン・プログラムとこれと同様のものから受信されたI/Oリクエストを翻訳する
。翻訳されたI/Oリクエストが、SCSI命令デスクリプター・ブロックを包
含するシステム規定SCSIリクエスト・ブロックを伴うパケットの形態にある
。翻訳されたI/Oリクエスト・パケットがこうして次のより低位のドライバー
、例えばSCSIポート・ドライバー406に送られる。SCSIポート・ドラ
イバー406が、クラス・ドライバー404からのSCSIリクエスト・ブロッ
クを翻訳してSCSIリクエスト・ブロックと命令デスクリプター・ブロックを
SCSIミニポート・ドライバー402にパスする。SCSIミニポート・ドラ
イバー402が動的にSCSIポート・ドライバー406にリンクされ、特定の
SCSIホスト・バス・アダプター408のためのハードウエア特定サポートを
提供する。SCSIドライバー400は、エンクリプション・ドライバーまたは
フィルター・ドライバーのような他のオプショナルなドライバー階層を含めるこ
ともできる。従って、図3および4に示したように、従来のシステムにおいて、
NICドライバー300およびSCSIドライバー400は独立してそれらそれ
ぞれのインターフェース・カード312、408にインターフェースする。
【0024】 図1に示された実施例100のソフトウエア・アーキテクチャおよび動作を次
に詳細に説明する。図5は本発明のドライバー・アーキテクチャ500の一実施
例を示す。例えば、図示実施例500は図1または2に示したホスト・システム
の一つに使用することができる。NICドライバーとSCSIドライバーの上部
階層は図3および4に示した従来のドライバー・アーキテクチャ300、400
に見られるものと同様のものである。しかし、それ自体ネットワーク・インター
フェース・カード312とインターフェースする図3に示したNICミニポート
302に反して、図5に示したNDISミニポート502はインターフェース5
04を介してエンハンストSCSIミニポート・ドライバー508との通信にリ
ダイレクトする。次に、エンハンストSCSIミニポート・ドライバー508が
NDISミニポート502から図1に示した共通のファイバー・チャネル・ルー
プ110にネットワーク・トラフィックをルートする。従って、一実施例におい
て、ネットワーク・ミニポート・ドライバー502とSCSIミニポート・ドラ
イバー508はホスト対ホストのネットワーク・トラフィックをファイバー・チ
ャネル・バス、または別の実施例においては、SCSIバスへの重畳(オーバー
レイ)を許容する。これがホスト対ホスト・トラフィックをして同じバス上での
平常ディスク記憶関連トラフィックとの平行した動作を許容する。従って、エン
ハンスド・ドライバー502、508がHBAと共動して、ネットワーク・イン
ターフェース・カード(NIC)をエミュレートすることになる。
【0025】 従って、一実施例において、NDISミニポート・ドライバー502は、共通
のファイバー・チャネルまたはSCSIバスと共用する多重システム間のイーサ
ネット接続と匹敵するものとなる。このイーサネット・エミュレーションは、エ
ンハンスドSCSIミニポートによって、クラスター化システム間で共用される
ディスク・デバイスにアクセスするのに使用される同じデータ・チャネル上に重
畳される。図1を参照してこれまでに説明したように、このアプローチはPCI
スロットのようなカード・スロット上で短く稼働するクラスター化システムに特
に有利である。付加的に、図2を参照して説明したように、一実施例において、
本発明はフェイル−オーバー経路を提供してローカル・ホスト対ホスト通信のた
めに使用されるNICアダプターをバックアップすることができる。一実施例に
おいて、ネットワーク・ドライバーは、アダプター・タイプの独立形態であり、
多重エンハンスド・ミニポート・ドライバーを同時に介して多重イーサネット・
エミュレーションをサポートする。
【0026】 一実施例において、いくつかの特徴がドライバー・アーキテクチャ500と共
動してエンハンスドSCSIミニポート508をしてNDISミニポート通信と
標準SCSIミニポート通信両方の処理を可能にする。例えば、SCSIミニポ
ート508は付加的エントリー点でエンハンスドされ、NDISミニポート50
2への接続を許容する。これらの付加的エントリー点は「バックドア」エントリ
ー点と呼ばれる。同様にして、NDISミニポート502は、ネットワーク・イ
ンターフェース・カードとよりは、むしろ付加的SCSIミニポート・エントリ
ー点との通信にアドレスする。
【0027】 付加的に、SCSIミニポート508が、ホスト・システム・メモリ内に記憶
されたNIC命令データの物理的アドレスを認知していないので、SCSIミニ
ポート508は、命令データとデータバッファに関連したネットワークのための
散布/集合リストを構築できない。当業者によって理解されるように、散布/集
合リストは非連続物理的アドレスを有する論理的に連続するデータをトラックす
るのに使用される。従って、一実施例において、一つのまたはそれ以上の上部階
層ドライバーがネットワーク・データのための散布/集合リストを発生する。例
えば、SCSIフィルター・ドライバー、SCSIポート・ドライバー406お
よび(または)NDISドライバー502が散布/集合リストを完成する。次に
、散布/集合リストは、次に説明するようにSCSIリクエスト・ブロック(S
RB)エクステンションを介してSCSIミニポート508に送られる。
【0028】 さらに、SRBエクステンションは命令コールバック・ルーチンのためのポイ
ンターおよびコンテキスト・パラメータ情報をパスするのに使用される。命令コ
ールバック・ルーチンは、各命令が完了すると、ミニポート・ドライバー508
によってコールされる。命令コールバック・ルーチンは完了した命令に対するポ
インターを、完了した命令ポインターのキューに配置し、DPC(延期プロシー
ジャ・コール)サービス・ルーチンを計画し、リターンする。
【0029】 次に示す典型的なバックドア(BD)SRBエクステンションは、リンク・ポ
インター、完了ルーチン・ポインターとコンテキスト、散布/集合カウントおよ
び散布/集合要素のリストを含んでいる。一般的なSRBエクステンションは、
ネットワーク・パケットが通信リンクを介して伝送される前に、パケットがSC
SIパケット内にカプセル化されるようになったときに使用される。
【0030】 typedef struct_BD_SRB _EXTENSION { SRB_EXTENSION stdExt; PSCSI_REQUEST _BLOCK nextSrb; PSCSI_REQUEST _BLOCK previousSrb; PCOMPLETION_CALLBACK completionRoutine; PVOID completionContext; PVOID driverContext; LONG sgEntryCnt; BD _SG_ELEMENT sgList[MAX_SG_ENTRIES]; } BD _SRB _EXTENSION, *PDB _SRB _EXTENSION; PSCSI _REQUEST _BLOCK は標準NTタイプであり、PVOID はそれ自体関連す
るパラメータが予示されていないことを示し、また、LONGは関連するパラメータ
が32ビットであることを示している。nextSrb およびpreviousSrb パラメータ
は、それぞれ前のSRBおよび次のSRBに関連するSRBポインターである。
これらのポインターは連続、ないし一連のSRBに使用される。エンハンスドS
CSIミニポート508が所与のSRBで終了されると、SCSIミニポート5
08が、completionRoutine パラメータによって識別された完了コールバック・
ルーチンをコールし、完了コンテキスト・パラメータcompletionContext をパス
する。driverContext パラメータがスクラッチパッドとして使用され、命令完了
時点で前のコンテキストにリターンするのに必要とされるコンテキスト関連情報
を記憶する。sgEntryCntおよびsgListパラメータは多数の散布/集合エントリー
およびエントリ自体の数をパスするように使用される。
【0031】 加うるに、いくつかのアイテムが、エンハンスド・ミニポート508をサポー
トするためにSCSIドライバー・オブジェクト・エクステンション構造に付加
される。この構造はHBAコンテキストを保持するためにSCSIミニポート5
08によって管理される各アダプターに割り当てされる。この構造は次のものが
含まれる: ■HBAプロセッサのためのリクエスト・キューおよびSRBリクエスト・キ
ューに同期アクセスするのに使用されるスピンクロック。
【0032】 ■目下接続されている、SCSI、ネットワークおよび他のデバイスのリスト
を包含するポート・データベース・アレイ。ポート・データベース・アレイは一
般的に、対応するHBAから受信されたデータを使用するドライバーの初期化中
に構築される。
【0033】 ■インポートされた通知コールバック・ルーチンおよび次に説明するインポー
トされたゲット・バッファ・ルーチンのための情報を含むポインタおよびコンテ
キスト・パラメータ情報。
【0034】 一実施例において、ホストないし記憶システムはマルチプロセッサをベースに
している。ホストないし記憶システムはさらに、単一プロセッサ・システムまた
は対称マルチプロセッサ・システム(SMP)のようなマルチプロセッサ・シス
テムのいずれかで稼働するように形成されたオペレーティング・システムを含ん
でいる。マルチプロセッサ・システムに生じる一つの問題は、マルチプロセッサ
・コンピュータに同時にアクセスできるリソースを共用する二つのスレッドの実
行を同期化することである。例えば、二つのスレッドが異なるプロセッサ上で同
期して稼働され、同じデータを修正することが達成される。このようなアクセス
は同期化が必要である。ウインドウズNTはスピンブロックのようなロックを利
用し、インターラプト・レベルで稼働するカーネル−モード・スレッドによって
共通化されたリソースを保護するための同期化機構を提供する。スピンロックが
マルチプロセッサ・コンピュータで同時に稼働する種々の実行スレッド内で同期
化を処理する。スレッドはデータ構造のような保護されたリソースにアクセスす
る前にスピンロックを得る。スピンロックは、リソースを使用することからスピ
ンロックを保有するものを除いて、すべてスレッドを保持する。スレッドがスピ
ンロック・ループ上で待機されるか、またはスピンロックを保有するスレッドに
よって解放されるまで「スピン」がスピンロックを得るように試行される。一度
に一つのプロセッサのみがスピンロックを保有できるので、リソースは衝突に対
して安全である。
【0035】 スピンロックの一般的な使用はドライバーの一つを超える階層によって使用さ
れたキューを保護することである。例えば、ミニポート機能がプロトコル・ドラ
イバーによってこれをパスされたパケットをキューすることになる。他のドライ
バー機能もこのキューを使用するので、ミニポート機能はスピンロックでキュー
を保護する必要があり、これによって一度にただ一つのスレッドがリンクまたは
コンテンツを処理することができる。ミニポート機能がスピンロックを得て、パ
ケットをキューに付加し、次にスピンロックを解放する。スピンロックを使用す
ることで、スピンロックを保有するスレッドがキュー・リンクを修正するスレッ
ドのみであり、一方パケットが安全にキューに付加されることを保証する。
【0036】 本発明の一実施例において、エンハンスドSCSIミニポート508がスピン
ロックを使用してホスト・バス・アダプター・プロセッサ・リクエスト・キュー
へのアクセスを同期化し、SCSIおよびIPパケットをHBAプロセッサと、
SCSIリクエスト・ブロック(SRB)キューをパスする。
【0037】 さらに、デバイス・エクステンション構造が、通知コールバック・ルーチンと
ゲット・バッファ・ルーチンのためのポインターとコンテキスト・パラメータ情
報を記憶するのに使用される。通知コールバック・ルーチンは、情報を必要とす
る他のドライバーと通信するためのループ・ダウン・エラーのようなエラー・タ
イプをパスするように使用できる。
【0038】 ドライバー・アーキテクチャはさらに種々のルーチンによってサポートされて
いる。これらのルーチンのいくつかは標準的ないし、ドライバー・エントリー・
ルーチン、ファインド・アダプター・ルーチン、イニシャライズ・アダプター・
ルーチン、スタートIOルーチン、インタラプト・サービス・ルーチン、インタ
ラプトDPCルーチンのような修正されたウインドウズNTタイプのルーチン、
さらに次に説明する他のルーチンである。
【0039】 SCSIミニポート508を初期化し利用するためのプロシージャの一実施例
を次に説明する。最初に、ドライバー・エントリー・ルーチンは、ミニポート・
ドライバーがロードされたときに、実行される。このドライバー・エントリー・
ルーチンはハードウエア初期化データ構造を構築し、SCSIポート・ドライバ
ーにリターンする。ハードウエア初期化データ構造は、SCSIミニポート・ド
ライバー508によってサポートされたHBAタイプを識別する情報を含んでお
り、さらにSCSIポート・ドライバーによってコールされる他のSCSIミニ
ポート・ドライバー・エントリー点も含んでいる。一実施例において、ドライバ
ー・エントリー・ルーチンの修正は、エンハンスド・ミニポート・ドライバーに
対しては全く必要としない。
【0040】 次に、ファインド・アダプター・ルーチンは、コンピュータ・システム中に見
られるSCSIミニポート・ドライバー・アダプタータイプの各場合にコールさ
れる。ファインド・アダプター・ルーチンはポート形成情報データ構造を構築し
、SCSIミニポート・ドライバー508に復帰する。ポート形成情報データ構
造はSCSIミニポート・ドライバー508とHBAの特徴に関する情報を含ん
でいる。さらに、一実施例において、ファインド・アダプター・ルーチンはHB
Aプロセッサ・リクエスト・キューへのアクセスを制御するのに使用するスピン
ロックの初期状態をセットする。ファインド・アダプター・ルーチンはまた初期
同期化インタラプト・リクエスト(IRQ)レベルを、ディスパッチ・レベルに
セットし、他のプロセスが平行して稼働するのを保証する。さらに、IPパケッ
トがSCSIパケット内にカプセル化される実施例において、ファインド・アダ
プター・ルーチンは、他の接続システムから受信された照会命令に応答するター
ゲット・モードのために使用された「初期化照会」データを初期化する。この最
後の工程は、現システムがIPパケットをSCSIパケット内にカプセル化する
ことが可能であることを、他の接続されたシステムが認識することを保証するの
に使用される。
【0041】 システムの初期化中、初期化アダプター・ルーチンがシステム内に見つけられ
た各ホスト・アダプターのために一度コールされる。初期化アダプター・ルーチ
ンはホスト・アダプターを初期化する責任があり、一実施例において、ホスト・
アダプター・プロセッサをリセットし、コードをホスト・アダプターにダウンロ
ードし、ホスト・アダプター・コードを開始して初期化する。エンハンスドSC
SIミニポート・ドライバー508に対して、初期化アダプター・ルーチンはポ
ート・データベースも初期化し、またIPパケットがSCSIパケット内に埋め
込まれておれば、ホスト・アダプター・ターゲット・モードを可能にし、これに
よってHBAがSCSI命令を送信するだけでなく、受信することもできる。
【0042】 StartIO ルーチンはSCSIポート・ドライバーによってコールされ、SRB
にパスされ、エンハンスドSCSIミニポート508を実行するための命令を含
んでいる。ウインドウズNTドライバーにおいて、StartIO ルーチンは物理的デ
バイス上でI/O動作を開始させる責任がある。一実施例において、StartIO ル
ーチンは、ホスト・バス・アダプター・プロセッサ・キューとSRBキューにア
クセスするときに、スピンロックをリザーブし解放するようにエンハンスドされ
る。
【0043】 一実施例において、StartIO ルーチンはさらにエンハンスドされて二つの付加
的命令をサポートする。第1命令、すなわち、「IOCTL_BD_INQUI
RY」命令が、エンハンスドSCSIミニポート508によって管理されたホス
ト・バス・アダプターを位置付けするように使用される。この命令はStartIO IR
Q レベルを確保し、このレベルがスピンロック制御リソースに同期化アクセスし
、またIRQレベルをデバイス・エクステンション内に保持するのに使用される
。この命令はまた次に説明するように、バックドアStartIO エントリー点とリク
エスト・ルーチンのためのエントリー点をエクスポートする。
【0044】 ネットワーク・パケットが記憶パケットまたはI/Oパケット内にカプセル化
されるときに使用されるIOCTL_BD_INQUIRY命令に関連するデー
タ構造の一実施例は次の通りである: typedef struct_BD_INQUIRY _DATA { ULONG options; //ミニポートでサポートされたオプションをエクスポートする。 PSTARTIO BACKDOOR startIoRoutine; //バックドアStartIo エントリーをエクスポートする。 PVOID startIoContext; //ミニポートpDevExt ポインターをエクスポートする。 PRESET_BACKDOOR resetRoutine; //バックドアReset エントリーをエクスポートする。 PVOID resetContext; //ミニポートpDevExt ポインターをエクスポートする。 USHORT numberBuses; //アダプター・バス・カウントをエクスポートする。 USHORT idsPerBus; //バス当りのID数をエクスポートする。 USHORT adapterBusId[MAX_BUS _COUNT]; //アダプター・バスIDをエクスポートする。
【0045】 USHORT maxDataSegments; //最大データ・セグメント・カウントをエクスポートする。
【0046】 }BD_INQUIRY _DATA, *PBD_INQUIRY _DATA; 従って、上述のデータ構造はエンハストSCSIミニポート・オプションをエ
クスポートするのに使用される。照会データ構造はまた、StartIo context 情報
をパスするのに使用されるstartIoContextポインターに関連するstartIoRoutine
バックドアStartIo エントリー・アドレスもエクスポートする。さらに、照会デ
ータ構造は、NDISミニポート502によって使用されるバックドアresetRou
tineエントリー・アドレスと関連するresetContextをエクスポートし、SCSI
ミニポート508をしてHBAリセットを初期化せしめる。さらに、照会データ
構造はnumberBuses,IdsPerBus およびBusIdsパラメータをエクスポートするのに
使用され、これによってアダプター・バス・カウント、バス当りのID数および
バス・アダプターIDにパスする。
【0047】 一実施例において、エンハンスドSCSIミニポート・サポート・オプション
は、フィルター・ドライバーのためのサポート、エンハンスドNDIS NIC
ミニポート・ドライバーのためのサポートおよびポート・データベースのための
サポートを含んでいる。オプションは次のように定義される: //IOCTL _BD_INQUIRY オプション #define BDI _FILTER_SUPPORT 0x00000001 //フィルター・ドライバーによるサポート #define BDI _LAN _SUPPORT 0x00000002 // LANドライバーによるサポート #define BDI _PORT_DATABASE 0x00000003 //ポート・データベースによるサポート StartIO ルーチンをエンハンスドするのに使用される第2命令はIOCTLBc
kdoor Enable命令または「 IOCTL _BD_ENABLE」 命令と名付けられる。IOCTL
_BD_ENABLE backdoor enable命令はネットワーク・ドライバーによって発せら
れ、エンハンスドSCSIミニポート・ドライバー508によるバックドア操作
を可能にする。照会命令を使用するエンハンスド・ミニポート・ドライバーに関
連してホスト・アダプターを配備した後、またオスト・アダプターの初期化を完
了した後、ネットワーク・ドライバーが可能命令を発し、エンハンスドSCSI
ミニポート・ドライバー508とのリンクを可能にする。ネットワーク・パケッ
トが記憶装置またはI/Oパケット内にカプセル化される実施例に対して、次な
るデータ構造がIOCTL_BD_ENABLE命令と併用されて、対応するデ
ータをエンハンスドSCSIミニポート508にインポートする。
【0048】 typedef struct_ BD_ENABLE_DATA { ULONG options; //オプションでサポートされたドライバーをインポートする。 PNOTIFY _CALLBACK notifyRoutine; //通知ルーチンをインポートする。 PVOID notifyContext; //通知パラメータをインポートする。 PPORT _DATA_CALLBACK portDataUpdateRoutine; //ポート・データベース・ルーチンをインポートする。 PVOID portDataUpdateContext; //ポート・データベース・パラメータをインポートする。 PGET_BUFFER_CALLBACK getBufferRoutine; //ゲット・バッファ・ルーチンをインポートする。 PVOID getBufferContext; //ゲット・バッファ・パラメータをインポートする。 USHORT receiveBufferCount; //バッファ・カウントをインポートする。 }BD_ENALBE_DATA, *PBD_ENABLE_DATA; バックドア可能オプションは次のものを含んでいる。
【0049】 //IOCTL _BD_ENALBEoptions #defdine BDE_NOTIFY_ROUTINE 0x00000001 //通知ルーチンによるインポート #define BDE _DATABASE_ROUTINE 0x00000002 //ポート・データベース・ルーチンによるインポート #define BDE _BUFFER_ROUTINE 0x00000004 //ゲット・バッファ〃ルーチンによるインポート ネットワーク・パケットがSCSI命令内に埋め込まれた実施例に対して、バ
ックドアStartIO ルーチンがネットワーク・ミニポート・ドライバーによってコ
ールされ、SCSI命令内に埋め込まれるべきネットワーク・パケットに送られ
る。バックドアStartIO ルーチンは、上述したStartIO ルーチンと同様のもので
ある。記憶装置ないしI/Oパケット中にネットワーク・パケットがカプセル化
された実施例に対して、このルーチンはI/O命令ブロック(IOCB)を命令
リクエスト・キュー内に構築し、SCSI命令をホスト・バス・アダプター・プ
ロセッサにパスして実行する。SRBが上述したSRBエクステンションを使用
して、命令のために散布/集合リスト中にパスする。標準StartIO ルーチンが、
インタラプト・サービス・ルーチン(ISR)として同じIRQレベルで稼働し
、一方このルーチンはDISPATCH_LEVEL ないしこれより低いレベルでコールされ
る。従って、バックドアStartIO ルーチンは、デバイス・エクステンションから
セーブされたIRQレベルを使用し、スピンロックを得てリクエスト・キューま
たはSRBキューにアクセスする前に、そのIRQLを標準の開始IOルーチン
と同じレベルに高める。
【0050】 インタラプト・サービス・ルーチン(ISR)は、アダプターがホスト・シス
テムからのサービスをリクエストされたときに、SCSIポート・ドライバーに
よってコールされる。このルーチンは通常、メールボックス・レジスターを介す
る高速ポスティング命令完了のためにコールされる。SRbエクステンション内
のフラグは、バックドアSRBを確認するための使用される。これらの命令のた
めに、SRBエクステンションは命令完了コールバック・ルーチンのためのポイ
ンターとパラメータも含んでいる。このコールバック・ルーチンは上部SCSI
階層ドライバーないしネットワーク・ドライバーの一部であり、またISRによ
ってコールされ、完了命令を適切なドライバーに戻す。
【0051】 さらに、ISRはアダプターによってポストされた他の種々の非同期事象も処
理する。一実施例において、これらの事象のほとんどに対して、ISRはデバイ
ス・エクステンション内の事象を表すフラグをセットし、またインタラプトDP
Cルーチンの実行を計画して事象をさらに処理する。インタラプトDPCルーチ
ンは、またアダプター応答キューとホスト・アダプターからの到来ターゲット・
モード・リクエストによって完成される命令を処理するように計画される。
【0052】 このように、例えば、インタラプトDPCルーチンは、エラー処理のようなよ
り時間を消費するタスクを処理するために、インタラプト・サービス・ルーチン
によりスケジュールされる。次はインタラプトDPCルーチンによって実行され
るタスクの典型的なリストである。
【0053】 ・致命的なエラーの検出時に、DPCルーチンが全命令を戻すとともに、アダ
プターを再初期化する。
【0054】 ・バス・リセットの検出時に、DPCルーチンがキューされた命令を完成させ
、ホスト・アダプター・キューを再開し、他の接続ドライバーに通知する。上位
階層SCSIドライバーおよび(または)ネットワーク・ドライバーが通知ルー
チンをインポートすれば、通知ルーチンがResetDetected 事象コードによってコ
ールされる。
【0055】 ・ホスト・アダプターからのポート・データベース更新事象の受信に、DPC
ルーチンがホスト・アップデータから更新を得て、SCSIミニポート・デバイ
ス・エクステンション内のデータを更新する。上位階層SCSIドライバーおよ
び(または)ネットワーク・ドライバーがPort Database コールバック・ルーチ
ンをインポートすれば、Port Database コールバック・ルーチンがポインターに
よってSCSIミニポート・デバイス・エクステンション内の更新ポート・デー
タベースにコールされる。
【0056】 ・DPCルーチンがホスト・アダプター応答キュー・エントリーを処理する。
エラー状態を伴う命令が応答キューを介してリターンされる。応答キューはまた
ターゲット・モード操作をサポートするためにも使用される。ネットワーク・ド
ライバーをサポートするために、エンハンスドSCSIミニポート・ドライバー
508はターゲット・モードのために必要とされるI/O命令ブロック−タイプ
のためのサポートを含んでいる。
【0057】 ・ネットワーク・データ・パケットが到来するために、ホスト・アダプターが
応答キューにあるATIO(アクセプト・ターゲットI/O)エントリーをSC
SIミニポート・ドライバー508に送る。次に、SCSIミニポート・ドライ
バー508が、ネットワーク・ミニポート・ドライバーからインポートされたゲ
ット・バッファ・ルーチンをコールして、あて先バッファとして使用できるフリ
ー・バッファのアドレスを得る。こうしてSCSIミニポート・ドライバー50
8がCTIO(連続ターゲットI/O)エントリーをホスト・アダプターに送り
、到来するデータ・パケットのためのあて先バッファ・アドレスにパスする。デ
ータの伝送が完了したときに、メールボックス・レジスターに完了をポストし、
ISRがネットワーク・ドライバー命令完了コールバック・ルーチンをコールし
て、受信パケットをNDISミニポート・ドライバー502にパスする。
【0058】 ・DPCルーチンがSRBキュー内で待機している命令を開始するのに使用さ
れる。
【0059】 リセット・ルーチンがバスをリセットし、未決命令を処理する。リセット・ル
ーチンは、一般的に命令がタイムアウト、または同様のことが発生したときにコ
ールされる。リセット・ルーチン・エントリー点が、一つまたはそれ以上の上位
階層SCSIドライバーとネットワーク・ドライバーにエクスポートされる。リ
セット・ルーチンがSCSIポートからコールされたとき、IRQレベルがIS
Rと同じレベルにセットされる。バックドア・ドライバーからのコールがあった
とき、IRQレベルがDISPATCH_LEVEL にセットされる。このルーチンからのS
RBキューにアクセスされたときに、現IRQレベルがチェックされ、ISRレ
ベルになければ、スピンロックが得られる前に、このレベルに上げられる。
【0060】 ポート・データベース更新非同期事象がバス・アダプターから受信されたとき
に、SCSIミニポート・データベース・ルーチンが、インタラプトDPCルー
チンからコールされる。この非同期事象は、ポート・データベースの更新を必要
とする「ホット・プラグ」デバイスの「ホット」挿入または除去が可能である。
データベース・ルーチンがメールボックス命令をバス・アダプターに発生して、
ポート・データを得るとともに、デバイス・エクステンション内のポート・デー
タベースを更新する。上部SCSIドライバー階層および(または)ネットワー
クドライバーがポート・データベース・コールバック・ルーチンによってインポ
ートされれば、ルーチンがポインターによってSCSIデバイス・エクステンシ
ョン内の更新ポート・データベースにコールされる。
【0061】 エンハンスドNDISミニポート・ルーチンとデータ構造につき次に説明する
。上述したように、一実施例において、NDISミニポート502は、同じ通信
リンクを介して同じホスト・アダプターを使用してネットワーク・プロトコルと
I/Oプロトコルの伝送を許容するようにエンハンスドされる。例えば、NDI
Sミニポート502がイーサネット・エミュレーションを実行する実施例におい
て、アダプター制御ブロック構造が各イーサネット・エミュレーション・ドライ
バー初期化のために割り当てされる。このアダプター制御ブロック構造には次の
データが含まれる。
【0062】 ・ホスト・アダプターIEEE IDおよびアダプター・バスIDから形成さ
れる現ネットワーク・アドレスであって、その物理的アドレスがネットワーク・
アドレス内にカプセル化される。ネットワーク・アドレス内の物理的SCSIア
ドレスのカプセル化が、SCSIパケット内のIPパケットのカプセル化を僅か
なオーバーヘッドで迅速に達成する。
【0063】 ・現パケット・フィルター・フラグが高レベルネットワーク・ドライバーから
低いレベルに渡す。 ・バックドア開始IOエントリー点およびパラメータがSCSIエンハンスド
・ミニポート・ドライバーからエクスポートされる。 ・自由送信バッファのキュー。 ・自由受信バッファのキュー。 ・受信データ・パケットのキュー。
【0064】 ・高レベル・ネットワーク・ドライバーから低いレベルに渡されたマルチキャ
スト・リスト。 ・ポート・データベースから構築されたバス上の他のアダプターのブロードキ
ャスト・リスト。 ・統計的カウンタ。 次はエンハンスドNDISミニポート502に関して使用される種々のルーチ
ンの説明である。
【0065】 一般的に、NDISドライブ・エントリー・ルーチンは、NDISミニポート
・ドライブがロードされたときに、実行される第1ルーチンである。NDISド
ライバー・エントリー・ルーチンは、NDIS階層でNDISミニポート・ドラ
イバー502を登録し、他のドライバー・エントリー点とドライバー特性をエク
スポートする責任がある。 NDISミニポート初期化ルーチンが、次に一度各イーサネット・エミュレー
ションがインストールされると実行される。このNDISミニポート初期化ルー
チンは次のタスクの一つまたはそれ以上を実行する。
【0066】 ・初期化ルーチンが、バックドア照会IOCTL命令を使用してエンハンスド
SCSIミニポート・ドライバー508によって管理される次の利用可能なバス
・アダプターのために走査する。 ・初期化ルーチンが、上述したアダプター制御ブロックを割り当てし、初期化
する。 ・初期化ルーチンが送信バッファのキューを割り当てし、初期化する。SRB
およびSRBエクステンションが各バッファに対して割り当てされ、初期化され
る。
【0067】 ・初期化ルーチンが受信バッファのキューを割り当てし、初期化する。SRB
およびSRBエクステンションが各バッファに対して割り当てされ、初期化され
る。 ・初期化ルーチンがDPCルーチンを初期化する。 ・初期化ルーチンが上述したバックドア可能IOCTLをエンハンスドSCS
Iミニポート・ドライバーに送信し、ゲット・バッファ・ルーチンとポート・デ
ータベース・コールバック・ルーチンをエキスポートする。
【0068】 送信ルーチンが高レベルネットワーク・ドライバーによってコールされ、デー
タ・パケットを通信リンクに送信する。一実施例において、送信ルーチンが次に
利用可能な送信バッファを割り当てし、断続データ・パケットを連続送信バッフ
ァに移動する。他の実施例において、断続散布/集合リストがSRBエクステン
ション内に構築される。256バイトないしこれ以下のサイズの小さいセグメン
トが、小さいバッファにロードされ、一つのセグメントとしてパスされる。次に
より大きいパケットが対応する散布/集合リストとともに送信される。
【0069】 送信バッファに関連するSRBがSCSI送信CDB(命令データ・ブロック
)で初期化され、バックドア開始IOルーチンを介してエンハンスドSCSIミ
ニポート・ドライバー508に送信される。データ・パケットのフロントにおけ
るあて先アドレスがユニークなブロードキャスト・アドレス(例えば、すべてF
s)につきチェックされる。パケットがブロードキャスト・メッセージであれば
、送信ルーチンがこれをブロードキャスト・リスト内のアドレスに送信する。従
って、IPブロードキャストが同じパケットを、ドライバーのブロードキャスト
・リスト中の全てのノードに送信することによってシミュレートされる。送信バ
ッファがまったく利用できなければ、送信ルーチンは、送信キューが停止され、
NDIS_STATUS_RESOURCESエラー状態にもどることを示すフ
ラグをセットする。以下に説明するように、他の実施例において、ブロードキャ
ストはIP可能ホスト・バス・アダプターによって処理できる。従って、ブロー
ドキャスト・リストはアダプター制御ブロック構造内に含まれない。
【0070】 送信コールバック・ルーチンがSRBエクステンション内のエンハンスド・ミ
ニポート・ドライバーにエクスポートされる。ネットワーク・データ・パケット
の送信後、エンハンスドSCSIミニポート・ドライバー508がそのインタラ
プト・サービス・ルーチンから送信コールバック・ルーチンをコールする。送信
コールバック・ルーチンは送信バッファを自由送信バッファのキューに戻し、キ
ュー停止フラグをチェックして送信キューが停止したかどうかを見る。もし停止
しておれば、このルーチンは送信DPCルーチンの実行を計画する。
【0071】 送信バッファの不足による結果としての送信キューの停止があったときに、送
信DPCルーチンが送信コールバック・ルーチンによって計画される。送信DP
Cルーチンは、リソースが目下付加的なパケットを受信するのに利用可能である
適切な高いレベルのネットワーク・ドライバーを通知する責任がある。この通知
は標準NdisMSendResourcesAvailable コールによって実行される。しかし、この
コールは発せられる前に、送信DPCルーチンが、標準NdisIMSwitchToMiniport
コールを使用するネットワーク・ミニポート・スピンロックを達成することによ
って他のネットワーク・ミニポート機能で同期化する必要がある。スピンロック
がコールによりNdisIMRevertBackに戻される。
【0072】 受信バッファ・ルーチンが、バックドア可能IOCTL機能を介してエンハン
スドSCSIミニポート・ドライバー508にエクスポートされる。エンハンス
ドSCSIミニポート508が、共通バス上の第2ホスト・アダプターからSC
SI送信CDBを受信したときに、エンハンスドSCSIミニポート508が受
信バッファ・ルーチンをコールして、到来するデータ・パケットのための自由受
信バッファを得る。
【0073】 受信コールバック・ルーチンが、受信バッファを受信パケットのキューに受信
バッファを挿入するのに使用され、受信DPCルーチンの実行を計画するのに使
用される。到来データ・パケットを受信後、エンハンスドSCSIミニポート・
ドライバー508がこのルーチンをそのインタラプト・サービス・ルーチンから
コールする。受信コールバック・ルーチンがSRBエクステンション内のエンハ
ンスド・ミニポート・ドライバーにエクスポートされる。
【0074】 受信DPCルーチンは、到来データ・パケットのキュー操作の後、受信コール
バック・ルーチンによって計画される。受信DPCルーチンは標準NdisMEthIndi
cateReciveとNdisMEthIndicateReceiveComplete コールを使用するプロトコル・
ドライバーまでの受信パケットをパスする責任がある。このバックドア・ルーチ
ンはNdisIMSwitchToMiniportとNdisIMRevertBackコールを使用するネットワーク
・ミニポート・スピンロックを得て、またこれを解放することによって他のネッ
トワーク・ミニポート機能と同期化する必要もある。
【0075】 受信DPCルーチンはパケット・フィルタリングとマルチキャスト・リストの
ためのサポートも含んでいる。パケット・フィルタリング・フラグとマルチキャ
スト・リストが、次に説明するNDIS_OID機能を介してネットワーク・ミ
ニポートにパスされる。データ・パケットのフロントにおけるあて先アドレスが
、例えばダイレクト・アドレス、ブロードキャストまたはマルチキャスト・メッ
セージ・タイプのようなメッセージを表している。受信DPCルーチンがフィル
ター・フラグを強化し、高レベル・ドライバーが受信される興味のないメッセー
ジ・タイプを放棄する。マルチキャスト・メッセージが可能であり、またマルチ
キャスト・メッセージが受信されれば、プロトコル・ドライバーまでのパケット
をパスする前に、パケットあて先アドレスがマルチキャスト・リスト内にあるこ
とを受信DPCルーチンが証明する。データ・パケットがプロトコル・ドライバ
ーをパスするかまたは放棄した後で、受信バッファが自由受信バッファのキュー
に復帰する。
【0076】 他の実施例において、リソースがパケットを送信するのに利用可能である高レ
ベル・ドライバーを通知するタスクと、プロトコル・ドライバーにパケットをパ
スするタスクの両方を単独DPCルーチンが処理する。
【0077】 ポート・データベース・コールバック・ルーチンが、バックドア可能IOCT
L機能を介してエンハンスド・ミニポート・ドライバーにエクスポートされる。
上述したように、このルーチンはSCSIミニポート・ドライバー508によっ
てIOCTL機能から最初にコールされ、後でポート・データベースが更新され
るたびにコールされる。このルーチンは、ポートデータベースを走査し、バス上
のホストアダプターを探す。各アダプターの発見がアダプター制御ブロック中に
維持されたブロードキャスト・リストに付加され、これによってドライバーが現
在のブロードキャスト・リストを有する。
【0078】 照会情報ルーチンが、高レベル・ネットワーク・ドライバーからのDIS_O
ID(NDISオブジェクト識別子)照会リクエストを処理する。各NDISド
ライバーは情報ブロックを含んでおり、そのドライバーがマルチキャスト・アド
レス・リストのような動的形態情報と、処理能力の存在が照会されセットされる
静的情報を記憶する。情報ブロック内の各情報要素は一般的にオブジェクトとし
て参照される。オブジェクト識別子(OID)がオブジェクトとして使用される
。従って、処理能力存在が、任意のオブジェクトを照会ないしセットされるとき
に適切なOIDを提供するのに必要である。
【0079】 セット情報ルーチンが、高レベル・ネットワーク・ドライバーからのNDIS
_OIDリクエストを処理し、情報をネットワーク・ミニポート・ドライバーに
パスする。セット情報ルーチンがフィルター・フラグとマルチキャスト・リスト
をネットワーク・ミニポート・ドライバーにパスするために使用される。
【0080】 ネットワークおよび記憶パケットが、IPパケットがSCSIパケット内にカ
プセル化されるよりむしろ標準IPとSCSIプロトコルを使用するコンピュー
タ・システム間に伝送される実施例について次に説明する。この実施例のための
データ構造とルーチンは、以下の修正を伴った、上述した「カプセル化」の具体
例と類似している。概して、修正例はNDISミニポート・ドライバー502と
HBAプロセッサをネットワーク非カプセル化IPパケットを送信し、また関連
する散布/集合リストをHBAプロセッサに送信することができる。さらに、修
正例は、リクエストされたときにエンハンスドNDISミニポート502からエ
ンハストSCSIミニポート508に受信バッファをゲットするよりはむしろ受
信バッファを直ちにHBAプロセッサ受信バッファ・キューをしてプッシュせし
める。修正例は、ネットワークとI/Oプロトコル両方をサポートするHBAを
利用する助けをする。
【0081】 いくつかのルーチンとデータ構造は実質的に「カプセル化」の実施例と同じで
ある。例えば、エンハンスドSCSIミニポート・ドライバー・エントリー・ル
ーチンとリセット・ルーチンが、本実施例と「カプセル化」実施例両方において
実質的に同じである。同様に、エンハンスドNDISミニポート送信コールバッ
ク・ルーチン、照会情報ルーチンおよびセット情報ルーチンは実質的に変更され
ない。
【0082】 第1に、SCSIミニポート・ドライバー・ルーチンと構造に対する修正につ
いて説明する。これまでに説明したSCSIドライバー・オブジェクト・エクス
テンション構造は、修正されてエンハンスドNDISミニポート502からイン
ポートされた付加的なデータのための記憶装置を提供する。加うるに、SCSI
ドライバー・オブジェクト・エクステンション構造は、受信バッファを、到来I
PパケットのためのHBAプロセッサにパスするためのキューを含むように修正
され、さらに接続されたIPデバイスのリストを含むように使用された別体のポ
ート・データベースをサポートする。エンハンスドNDISミニポート502か
らインポートされた付加的なデータが、次に示したバックドア可能データ構造B
D_ENABLE_DATAのような受信バッファとReturnReceive ルーチンに
関連する情報を含んでいる。
【0083】 HBAがI/Oとネットワーク・プロトコル両方をサポートし、従って、IP
パケットを直接受信できるので、HBAはSCSIターゲット・モードを必要と
しない。従って、SCSIミニポート・ファインド・アダプター・ルーチンがS
CSIターゲット・モードをなくすように修正される。このように、ファインド
・アダプター・ルーチンは、SCSIターゲット・モードのためのデータの初期
化をもはや必要としない。これによって、ファインド・アダプター・ルーチンが
IP受信バッファ・キューを初期化するようにさらに修正される。SCSIター
ゲット・モードのためのサポートはインタラプトDPCルーチンから除去しても
よい。
【0084】 SCSIミニポート初期化アダプター・ルーチンは同様に修正され、SCSI
ターゲット・モードのためのサポートを除去することができる。例えば、初期化
アダプター・ルーチンはもはやHBA内でターゲット・モードを可能にする必要
はない。初期化アダプター・ルーチンはさらに修正されてHBA内でIPモード
を可能にし、さらに、受信バッファ・キュー・アドレスをHBAにパスする。
【0085】 以下に説明するように、BD_INQUIRY_DATAデータ構造が、エン
ハンスドSCSIミニポート・ドライバー508からの付加的な情報をNDIS
ミニポート・ドライバー502にエキスポートするように修正される。例えば、
データ構造は、NDISミニポート・ドライバー502にパスすることのできる
受信バッファ・キューのサイズだけでなく受信バッファ・キューに対するポイン
ターも含んでいる。これがNDISミニポート・ドライバー502をして自由受
信バッファをHBAプロセッサへ直接パスすることを許容せしめる。さらに、付
加バッファ・バックドア・ルーチン・エントリーが、NDISミニポート・ドラ
イバー502へパスされる。自由バッファが受信バッファ・キューに付加されれ
ば、付加バッファ・バックドア・ルーチンがNDISミニポート・ドライバー5
02を許容してSCSIミニポート・ドライバー508に通知する。さらに、デ
ータ構造がファイバー・チャネル・アダプター・ワールド・ワイド・ノード名を
パスするためのエントリーも含んでいる。従って、ネットワーク・アドレス内で
物理的アドレスをカプセル化するよりもむしろ、上述したようにノード名を使用
する。
【0086】 typedef struct_BD_INQUIRY _DATA { ULONG Options; //ミニポートにサポートされたオプションをエクスポートする。 PSTARTIO_BACKDOOR StartIoRoutine; //バックドアStartIo エントリーをエクスポートする。
【0087】 PVOID StartIoContext; //ミニポートDevExtポインターをエクスポートする。
【0088】 PRESET_BACKDOOR ResetRoutine; //バックドア・リセット・エントリーをエクスポートする。 PVOID ResetContext; //ミニポートDevExtポインターをエクスポートする。 USHORT ReceiveBufferQueueSize; //受信バッファ・キュー・サイズをエクスポートする。 PVOID Receive BufferQueue; //受信バッファ・キュー・ポインターをエクスポートする。 PBUFFERS_BACKDOOR AddBuffersRoutine; //バックドアAddBuffersエントリーをエクスポートする。 PVOID AddBuffersContext; //ミニポートDevExtポインターをエクスポートする。 UCHAR AcNodeName[8]; //アダプター・ノード名をエクスポートする。 }BD_INQUIRY _DATA, *PBD_INQUIRY _DATA; BD_ENABLE_DATAデータ構造が、同様に修正されて付加的情報を
エンハンスドNDISミニポート・ドライバー502からエンハンスドSCSI
ミニポート・ドライバー508にインポートする。例えば、データ構造は各受信
バッファのサイズとサポートされたIPパケットの最大サイズをインポートする
のに使用される。データ構造はReturnRecieve ルーチンのためのポインターとコ
ンテキスト・パラメータをインポートするのにも使用され、このルーチンはSC
SIミニポート・ドライバー508からの受信パケットをNDISミニポート・
ドライバー502にパスするのに使用される。データ構造はまたNICエミュレ
ーションのためのIPアドレスをインポートするのに使用される。注意しなけれ
ばならないのは、NDISミニポート502はもはやポート・データベース・ル
ーチン、ゲット・バッファ・ルーチンまたは通知ルーチンをもはやインポートし
ないことである。NDISミニポート・ドライバー502はポート・データベー
スを必要としない。なぜなら全てのアドレス操作がSCSIミニポート・ドライ
バー508によって処理されるからである。本実施例において、SCSIミニポ
ート・ドライバー508はIPパケット・ヘッダー内にネットワーク・ノード名
をとり、IPポート・データベース内に対応するループIDを検索し、またルー
プIDをHBAに提供する。
【0089】 typedef struct_BD_ENABLE_DATA { ULONG Options; //ドライバーにサポートされたオプションをインポートする。 USHORT ReceiveBufferCount; //バッファ・カウントをインポートする。 ULONG ReceiveBufferSize; //バッファ・サイズをインポートする。 ULONG MaximumTransfereSize; //最大伝送サイズをインポートする。
【0090】 PRETURN _PACKETS _CALLBACK ReturnReceivePacketsRoutine; //リターン・パケット・ルーチンをインポートする。 PVOID ReturnReceivePacketsContext; //リターン・パケット・パラメータをインポートする。 PVOID ReceiveBufferCBs; //受信バッファ制御ブロックをインポートする。 ULONG IpAddress; //IPアドレスをインポートする。
【0091】 }BD_ENABLE_DATA, *PBD_ENABLE_DATA; Backdoor Start IO ルーチンも修正され、もはやIOCBを構築する必要はな
く、カプセル化IPルーチンを伴うSCSI命令がHBAプロセッサにパスされ
る。この代わりに、本実施例において、Backdoor Start IO ルーチンが、関連す
る散布/集合リストとともに非カプセル化IPパケットをHBAに送信するため
にIOCBを構築し、送信する。他の実施例において、Backdoor Start IO ルー
チンが、NDISミニポート・ドライバー502からの単一コール上で多重送信
パケットを処理するように修正される。
【0092】 インタラプト・サービス・ルーチン(ISR)が、IPパケットを送信すると
きの「カプセル化」実施例と実質的に同じように操作する。SRBエクステンシ
ョンはNDISミニポート・コールバック・ルーチンへのポインターを含んでお
り、このルーチンが送信バッファをNDISミニポート502への送信バッファ
を戻すために使用される。到来する受信IPパケットのために、HBAプロセッ
サが、必要とされる受信バッファ・キューから空の受信バッファを得る。全パケ
ットが一つまたはそれ以上の受信バッファ内に受信されたときに、HBAがホス
トをインタラプトする。次にISRルーチンが、ReturnReceivePacketsコールバ
ック・ルーチンを使用して受信パケットをNDISミニポート502にパスする
【0093】 ポート・データベース・ルーチンが、同じファイバー・ループに添付された他
のHBAのような全てのIPタイプのデバイスの別体リストを保持するように修
正される。このリストは、エンハンスドSCSIミニポート508によって使用
され、パケットに送られるときに、ファイバー・チャネル・アドレスを獲得する
。全てのファイバー・チャネル・アドレス操作がSCSIミニポート508によ
って解決されるので、NDISミニポート502はもはやポート・データベース
を使用することはない。
【0094】 NDISミニポート・ドライバー・ルーチンと構造に対する修正について次に
説明する。一実施例において、IP可能HBAがここでIPブロードキャスト操
作を処理する。従って、他のループ接続デバイスのブロードキャスト・リストが
、アダプター制御ブロック構造から排除される。アダプター制御ブロック構造は
さらに、これまでに説明したようにSCSIミニポート・ドライバーからエクス
ポートされた付加的情報のための記憶装置を提供するように修正される。
【0095】 NDISミニポート502がもはやポート・データベースを使用しないので、
ポート・データベース・コールバック・ルーチンが除去できる。
【0096】 上述したように、 初期化ルーチンが修正されて、付加情報がSCSIミニポ
ート・ドライバー508に、またここからインポート/エクスポートされる。本
実施例において、SRBおよびSRBエクステンションはもはや受信バッファ・
キューを割り当てまたは初期化するのに使用されない。その代わりに、受信バッ
ファ・キューが、上述したようにSCSIミニポート・ドライバー508によっ
て初期化される。次に受信バッファが直接HBAプロセッサ受信バッファ・キュ
ーに付加される。従って、初期化ルーチンが修正されてSCSIミニポート・バ
ックドア・ルーチンと、どれだけのバッファーがキューに付加されたかSCSI
ミニポート508とHBAプロセッサに報告するAddBufferRoutineにコールする
【0097】 ネットワーク・データがもはやSCSI命令内にカプセル化されることはない
ので、送信ルーチンが修正されもはやSCSI送信CDBがSRB内に構築され
ることはない。さらに、IP可能HBAがここでブロードキャスト・メッセージ
を処理し、IPブロードキャストをシミュレートする送信ルーチン・コードが除
去される。付加的に、一実施例において、送信ルーチンが、一度に多重パケット
を送信するようにNDISコールをサポートするように修正される。従って、多
重送信パケットが、単一コールでSCSIミニポート・バックドアStartIO ルー
チンを送信することができる。
【0098】 一実施例において、送信DPCルーチンと受信DPCルーチンが、単一DPC
ルーチンに組み合わされて両方の機能を処理する。ドライバー階層が高いレベル
のネットワーク・ドライバーに積層されたことを受信パッケージが指示した後、
自由受信バッファが直接HBAプロセッサ受信バッファ・キューに戻される。S
CSIミニポート・バックドア・ルーチン、AddBuffersRoutine がSCSIミニ
ポートおよび付加的な自由バッファのHBAプロセッサに通知するようにコール
される。
【0099】 本実施例において、全ての自由受信バッファは直ちにHBAプロセッサ受信バ
ッファ・キューにプッシュされる。従って、受信バッファ・ルーチンが完全に排
除できる。
【0100】 受信コールバック・ルーチンに対する変更は必要ではない。しかし、受信コー
ルバック・ルーチン・ポインタがここで、SRBエクステンションによる代わり
に、IOCTL命令を介してSCSIミニポート・ドライバー508にインポー
トされる。
【0101】 本発明のある好ましい実施例につき説明してきたが、これらの実施例は例とし
てのみ提示したものであり、本発明を限定することを意図するのもではない。従
って、本発明の幅と範囲は、請求項およびそれらの均等なものによってのみ規定
される。
【図面の簡単な説明】
【図1】 本発明の一実施例を示す図。
【図2】 冗長通信リンクを備えた本発明の一実施例を示す図。
【図3】 従来のネットワーク・ドライバー・アーキテクチャを示す図。
【図4】 従来のI/Oドライバー・アーキテクチャを示す図。
【図5】 本発明のドライバー・アーキテクチャの一実施例を示す図。
【符号の説明】
102,104 ホスト・システム 202,204 ホスト・システム 106,108 記憶サブシステム 206,208 記憶サブシステム 110 ループ 210,212 ループ
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MD ,MG,MK,MN,MW,MX,NO,NZ,PL, PT,RO,RU,SD,SE,SG,SI,SK,S L,TJ,TM,TR,TT,TZ,UA,UG,UZ ,VN,YU,ZA,ZW (72)発明者 ワグナー ディビッド ケー アメリカ合衆国 92083 カリフォルニア 州 ヴィスタ、クリスタル リッジ ウェ イ 1721 Fターム(参考) 5B014 EA02 EB03 FA05 GD45 GD46 GE04

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク・プロトコルと記憶プロトコルを同じホスト・
    アダプターを介して送信するためのシステムであって、 少なくとも一つのネットワーク・ミニポートを含むネットワーク・ドライバー
    と、 前記ネットワーク・ドライバーに結合され前記ネットワーク・ミニポートから
    ネットワーク関連情報を受信するSCSIミニポート・ドライバー階層と、 前記SCSIミニポート・ドライバー階層よりも上位のSCSIドライバー階
    層であって、前記SCSIミニポート・ドライバー階層に記憶関連情報をパスす
    るSCSIドライバー階層と、 前記SCSIミニポート・ドライバー階層に結合されたバス・アダプターであ
    って、前記SCSIミニポート・ドライバー階層により、ネットワーク関連情報
    と記憶関連情報が伝送されるバス・アダプターと、 前記バス・アダプターに結合された通信媒体リンクであって、前記ネットワー
    ク関連情報と前記記憶関連情報の両者を受信するとともに、第1コンピュータ・
    システムを第2コンピュータ・システムに結合するように形成された通信媒体リ
    ンクとを具備するシステム。
  2. 【請求項2】 前記ネットワーク・ドライバーが少なくとも中間ドライバー
    を含んでいる請求項1に記載のネットワーク・プロトコルと記憶プロトコルを同
    じホスト・アダプターを介して送信するためのシステム。
  3. 【請求項3】 前記通信媒体リンクがファイバー・チャネル−コンパーチブ
    ルである請求項1に記載のネットワーク・プロトコルと記憶プロトコルを同じホ
    スト・アダプターを介して送信するためのシステム。
  4. 【請求項4】 前記通信媒体リンクがSCSI−コンパーチブルである請求
    項1に記載のネットワーク・プロトコルと記憶プロトコルを同じホスト・アダプ
    ターを介して送信するためのシステム。
  5. 【請求項5】 前記ネットワーク関連情報がイーサネット(登録商標)・プ ロトコルを使用して伝送される請求項1に記載のネットワーク・プロトコルと記 憶プロトコルを同じホスト・アダプターを介して送信するためのシステム。
  6. 【請求項6】 前記記憶関連データがSCSIプロトコルを使用して伝送さ
    れる請求項1に記載のネットワーク・プロトコルと記憶プロトコルを同じホスト
    ・アダプターを介して送信するためのシステム。
  7. 【請求項7】 前記記憶関連データがファイバー・チャネル・プロトコルを
    使用して伝送される請求項1に記載のネットワーク・プロトコルと記憶プロトコ
    ルを同じホスト・アダプターを介して送信するためのシステム。
  8. 【請求項8】 同じホスト・アダプターを介して記憶プロトコルとネットワ
    ーク・プロトコルとを使用するデータ伝送方法であって、 上位階層の記憶ドライバー階層から下位階層の記憶ドライバー階層に記憶デー
    タを伝送する工程と、 ネットワーク・ドライバーから前記下位階層の記憶ドライバーにネットワーク
    ・データを伝送する工程と、 前記記憶データと前記ネットワーク・データを通信リンク・インターフェース
    回路に伝送する工程とを含むデータ伝送方法。
  9. 【請求項9】 前記下位階層の記憶ドライバーがミニポート・ドライバーで
    ある請求項8に記載のデータ伝送方法。
  10. 【請求項10】 前記上位階層の記憶ドライバーがポート・ドライバーであ
    る請求項8に記載のデータ伝送方法。
  11. 【請求項11】 前記ネットワーク・ドライバーが少なくともネットワーク
    ・ミニポート・ドライバーを含んでいる請求項8に記載のデータ伝送方法。
  12. 【請求項12】 前記ネットワーク・データを記憶命令内にカプセル化する
    工程をさらに含む請求項8に記載のデータ伝送方法。
  13. 【請求項13】 ネットワーク散布/集合リストを前記下部記憶ドライバー
    にパスする工程をさらに含む請求項8に記載のデータ伝送方法。
  14. 【請求項14】 前記下位階層の記憶ドライバーがインターフェースを前記
    ネットワーク・ドライバーに対してサポートしているかどうかを決定する工程を
    さらに含む請求項8に記載のデータ伝送方法。
  15. 【請求項15】 同じドライバーを使用してネットワーク・データと記憶デ
    ータを送信するシステムであって、 ネットワーク・ドライバーと、 前記ネットワーク・ドライバーに結合され、ネットワーク関連情報を受信する
    記憶ドライバーであって、オペレーティング・システムから記憶関連情報を受信
    し、前記ネットワーク関連情報と前記記憶関連情報をインターフェース・カード
    に伝送するように形成された記憶ドライバーとを具備するネットワーク・データ
    と記憶データを送信するシステム。
  16. 【請求項16】 前記記憶ドライバーが、前記ネットワーク・ドライバーと
    通信するための少なくとも一つのエントリー点をさらに含む請求項15に記載の
    ネットワーク・データと記憶データを送信するシステム。
  17. 【請求項17】 前記記憶ドライバーによって管理されるスピンロックをさ
    らに含み、前記スピンロックが少なくとも第1リソースへのアクセスを制御する
    のに使用される請求項15に記載のネットワーク・データと記憶データを送信す
    るシステム。
  18. 【請求項18】 前記インターフェース・カードがファイバー・チャネル・
    ネットワークに結合されるように形成されている請求項15に記載のネットワー
    ク・データと記憶データを送信するシステム。
  19. 【請求項19】 前記インターフェース・カードがSCSIバスと結合され
    るように形成されている請求項15に記載のネットワーク・データと記憶データ
    を送信するシステム。
  20. 【請求項20】 同じインターフェース回路を介してネットワーク情報と記
    憶情報を通信するデバイス・ドライバーであって、 少なくとも一つの通信リンクに伝送することを意図した記憶データを受信する
    ように使用された第1エントリー点と、 前記少なくとも一つの通信リンクに伝送することを意図したネットワーク・デ
    ータを受信するように使用された第2エントリー点と、 記憶プロトコルを使用する前記記憶データと、ネットワーク・プロトコルを使
    用する前記ネットワーク・データを通信リンク・インターフェース回路との通信
    するのに使用されるインターフェースとを具備するデバイス・ドライバー。
  21. 【請求項21】 少なくとも標準ウインドウズNTクラス階層をさらに含む
    請求項20に記載のデバイス・ドライバー。
  22. 【請求項22】 少なくともクラス階層と、ポート階層と、ミニポート階層
    をさらに含み、前記第2エントリー点が前記ミニポート階層に関連している請求
    項20に記載のデバイス・ドライバー。
  23. 【請求項23】 通信リンクによって結合された少なくとも二つのコンピュ
    ータ・システムを含み、ネットワーク・プロトコルと記憶プロトコルを使用する
    前記コンピュータ・システム間でデータを伝送するネットワーク・システムであ
    って、 前記少なくとも二つのコンピュータ・システムの少なくとも第1コンピュータ
    ・システム内に配備された少なくとも第1プロセッサと、 前記第1プロセッサによって実行されるように形成された第1オペレーティン
    グ・システムと、 前記第1コンピュータ・システムによって実行されるように形成された第1ネ
    ットワーク・ドライバーであって、前記オペレーティング・システムからネット
    ワークに関連する情報を受信するように使用されたインターフェースを有する第
    1ネットワーク・ドライバーと、 前記第1コンピュータ・システムによって実行されるように形成された第1記
    憶ドライバーであって、前記ネットワーク・ドライバーから前記ネットワーク関
    連情報を受信するように使用される第1インターフェースを有するとともに、前
    記オペレーティング・システムからの記憶関連情報を受信するのに使用された少
    なくとも第2インターフェースを有する第1記憶ドライバーと、 前記第1記憶ドライバーと通信する第1バス・アダプターであって、前記ネッ
    トワーク関連情報と前記記憶関連情報を受信するように使用された第1バス・ア
    ダプターと、 前記第1アダプターと通信する通信媒体であって、ネットワーク・プロトコル
    と記憶プロトコルをそれぞれ使用して前記ネットワーク関連データと前記記憶関
    連データを、少なくとも二つのコンピュータ・システムの少なくとも第2コンピ
    ュータ・システムに伝送するように使用される通信媒体とを具備するネットワー
    ク・システム。
  24. 【請求項24】 前記少なくとも二つのコンピュータの第2コンピュータ内
    の少なくとも第2プロセッサに結合され、前記通信媒体に結合された第2ホスト
    ・アダプターと、 前記第2コンピュータ・システムによって実行されるように形成され、前記第
    2ホスト・アダプターから前記ネットワーク関連情報と記憶関連情報を受信する
    ように使用された少なくとも第1インターフェースを有している第2記憶ドライ
    バーと、 前記第2コンピュータ・システムによって実行されるように形成され、前記記
    憶ドライバーからネットワーク関連情報を受信するための少なくとも第1インタ
    ーフェースを有する第2ネットワーク・ドライバーと、 前記第2コンピュータ・システムの少なくとも第1プロセッサーによって実行
    されるように形成され、前記記憶ドライバーと前記ネットワーク・ドライバーか
    ら情報を受信するための少なくとも一つのインターフェースを有する第2オペレ
    ーティング・システムとをさらに具備する請求項23に記載のネットワーク・シ
    ステム。
  25. 【請求項25】 前記通信媒体がファイバー・チャネルである請求項23に
    記載のネットワーク・システム。
  26. 【請求項26】 前記通信媒体がSCSI−コンパチブルである請求項23
    に記載のネットワーク・システム。
  27. 【請求項27】 前記第1オペレーティング・システムがウインドウズNT
    である請求項23に記載のネットワーク・システム。
  28. 【請求項28】 前記第1コンピュータ・システムが前記第1オペレーティ
    ング・システムを実行するように形成された少なくとも第2プロセッサをさらに
    具備する請求項23に記載のネットワーク・システム。
  29. 【請求項29】 少なくとも二つの通信リンクによって結合された少なくと
    も二つのコンピュータ・システムを含むネットワーク・システムであって、 第1コンピュータ・システムと、 第2コンピュータ・システムと、 前記第1コンピュータ・システムと前記第2コンピュータ・システムを結合す
    る第1通信リンクであって、I/Oプロトコルを使用してデータを伝送する第1
    通信リンクと、 前記第1コンピュータ・システムと前記第2コンピュータ・システムを結合す
    る第2通信リンクであって、ネットワーク・プロトコルを使用してデータを伝送
    する第2通信リンクと、 前記第1通信リンクと前記第2通信リンクの故障を検出するように形成された
    故障検出ルーチンであって、前記第1および第2通信リンクの故障が検出された
    ときに、I/Oプロトコルとネットワーク・プロトコルをして記憶データとネッ
    トワーク・データをそれぞれ非故障通信リンクに伝送するように使用せしめる故
    障検出ルーチンとを具備するネットワーク・システム。
  30. 【請求項30】 前記I/OプロトコルがSCSIプロトコルである請求項
    29に記載のネットワーク・システム。
  31. 【請求項31】 少なくとも二つのコンピュータ・システム間に冗長通信を
    提供する方法であって、 I/Oプロトコルを使用する第1通信リンクを介してデータを送信する工程と
    、 ネットワーク・プロトコルを使用する第2通信リンクを介してデータを送信す
    る工程と、 前記第1通信リンクまたは前記第2通信リンクのいずれかが少なくとも第1モ
    ードの故障を生じたときを検出する工程と、 前記第2通信リンク内の前記故障の検出に応答して前記第1通信リンクを介し
    て前記ネットワーク・プロトコルを使用してデータを送信する工程と、 前記第1通信リンク内の前記故障の検出に応答して前記第2通信リンクを介し
    て前記I/Oプロトコルを使用してデータを送信する工程とを含む少なくとも二
    つのコンピュータ・システム間に冗長通信を提供する方法。
  32. 【請求項32】 同じインターフェース回路を使用してネットワーク情報と
    記憶情報を通信するためのデバイス・ドライバーであって、 少なくとも一つの通信リンクに送信することを意図した記憶データを受信する
    ように使用された第1インターフェースと、 少なくとも一つの通信リンクに送信することを意図したネットワーク・データ
    を受信するように使用された第2インターフェースと、 前記記憶プロトコルと前記ネットワーク・データを使用して前記記憶データを
    通信リンク・インターフェース回路に通信するように使用される第3インターフ
    ェースであって、前記ネットワーク・データが前記記憶プロトコルを使用してカ
    プセル化される第3インターフェースと、 を具備する同じインターフェース回路を使用してネットワーク情報と記憶情報
    を通信するためのデバイス・ドライバー。
  33. 【請求項33】 ネットワーク・プロトコルとI/Oプロトコルをそれぞれ
    使用して同じインターフェース回路を使用するネットワーク情報とI/O情報を
    通信するためのデバイス・ドライバーであって、 少なくとも一つの通信リンクに送信することを意図したI/Oデータを受信す
    る手段と、 少なくとも一つの通信リンクに送信することを意図したネットワーク・データ
    を受信する手段と、 I/Oプロトコルを使用する前記I/Oデータと、前記ネットワーク・プロト
    コルを使用する前記ネットワーク・データを、通信媒体にインターフェースする
    ための手段に通信するための手段とを具備するデバイス・ドライバー。
JP2000582514A 1998-11-16 1999-10-29 ネットワークのためのシステムおよび方法並びにi/oデバイス・ドライバー Pending JP2002530728A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10852798P 1998-11-16 1998-11-16
US09/280,506 1999-03-30
US09/280,506 US6470397B1 (en) 1998-11-16 1999-03-30 Systems and methods for network and I/O device drivers
US60/108,527 1999-03-30
PCT/US1999/025595 WO2000029529A2 (en) 1998-11-16 1999-10-29 Systems and methods for network and i/o device drivers

Publications (1)

Publication Number Publication Date
JP2002530728A true JP2002530728A (ja) 2002-09-17

Family

ID=26805985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000582514A Pending JP2002530728A (ja) 1998-11-16 1999-10-29 ネットワークのためのシステムおよび方法並びにi/oデバイス・ドライバー

Country Status (8)

Country Link
US (1) US6470397B1 (ja)
EP (1) EP1131933B1 (ja)
JP (1) JP2002530728A (ja)
AT (1) ATE285152T1 (ja)
AU (1) AU1334400A (ja)
CA (1) CA2350516C (ja)
DE (1) DE69922693T2 (ja)
WO (1) WO2000029529A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005302026A (ja) * 2004-04-14 2005-10-27 Hewlett-Packard Development Co Lp ネットワーク接続周辺装置にアクセスするためのコンピュータ可読媒体、方法およびコンピュータシステム
JP2007328811A (ja) * 2007-08-06 2007-12-20 Sharp Corp 受像機

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US6807581B1 (en) 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6615264B1 (en) * 1999-04-09 2003-09-02 Sun Microsystems, Inc. Method and apparatus for remotely administered authentication and access control
US6732166B1 (en) * 1999-05-28 2004-05-04 Intel Corporation Method of distributed resource management of I/O devices in a network cluster
US6636908B1 (en) * 1999-06-28 2003-10-21 Sangate Systems, Inc. I/O system supporting extended functions and method therefor
US6832379B1 (en) * 1999-08-17 2004-12-14 Emc Corporation Computer architecture utilizing layered device drivers
US7483967B2 (en) 1999-09-01 2009-01-27 Ximeta Technology, Inc. Scalable server architecture based on asymmetric 3-way TCP
US6959439B1 (en) * 1999-09-30 2005-10-25 Mindspeed Technologies System interface abstraction layer
US7089322B1 (en) * 1999-10-28 2006-08-08 Motient Communications Inc. System and method of aggregating data from a plurality of data generating machines
US7039922B1 (en) * 1999-11-29 2006-05-02 Intel Corporation Cluster with multiple paths between hosts and I/O controllers
US6772189B1 (en) * 1999-12-14 2004-08-03 International Business Machines Corporation Method and system for balancing deferred procedure queues in multiprocessor computer systems
US6983330B1 (en) * 1999-12-29 2006-01-03 Emc Corporation Method and apparatus for using multiple paths for processing out of band commands
US20010033554A1 (en) * 2000-02-18 2001-10-25 Arun Ayyagari Proxy-bridge connecting remote users to a limited connectivity network
US6990669B1 (en) 2000-03-21 2006-01-24 Microsoft Corporation Real-time scheduler
US6957432B2 (en) 2000-03-21 2005-10-18 Microsoft Corporation Real-time scheduler
US6779185B1 (en) * 2000-04-24 2004-08-17 Microsoft Corporation Bluetooth miniport driver model
US7389334B2 (en) * 2000-04-24 2008-06-17 Microsoft Corporation Exposing bluetooth compliant wireless device connection as modems or sockets
US6754718B1 (en) * 2000-05-10 2004-06-22 Emc Corporation Pushing attribute information to storage devices for network topology access
FI20001509A (fi) 2000-06-26 2001-12-27 Nokia Networks Oy Pakettitiedon lähetysjärjestelmä ja verkkoelementti
US6922414B1 (en) * 2000-08-21 2005-07-26 Hewlett-Packard Development Company, L.P. Apparatus and method for dynamic command queue depth adjustment for storage area network nodes
US6952734B1 (en) 2000-08-21 2005-10-04 Hewlett-Packard Development Company, L.P. Method for recovery of paths between storage area network nodes with probationary period and desperation repair
US6804819B1 (en) * 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6813670B1 (en) * 2000-09-26 2004-11-02 Microsoft Corporation Automatic server-side plug-and-play without user intervention
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7792923B2 (en) 2000-10-13 2010-09-07 Zhe Khi Pak Disk system adapted to be directly attached to network
US6978300B1 (en) 2000-10-19 2005-12-20 International Business Machines Corporation Method and apparatus to perform fabric management
US6990528B1 (en) 2000-10-19 2006-01-24 International Business Machines Corporation System area network of end-to-end context via reliable datagram domains
US6941350B1 (en) 2000-10-19 2005-09-06 International Business Machines Corporation Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US7099955B1 (en) 2000-10-19 2006-08-29 International Business Machines Corporation End node partitioning using LMC for a system area network
US7636772B1 (en) 2000-10-19 2009-12-22 International Business Machines Corporation Method and apparatus for dynamic retention of system area network management information in non-volatile store
US7113995B1 (en) 2000-10-19 2006-09-26 International Business Machines Corporation Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system
US6981025B1 (en) 2000-10-19 2005-12-27 International Business Machines Corporation Method and apparatus for ensuring scalable mastership during initialization of a system area network
US6961942B1 (en) 2000-11-06 2005-11-01 Microsoft Corporation Bluetooth TDI and winsock interface
US20020073257A1 (en) * 2000-12-07 2002-06-13 Ibm Corporation Transferring foreign protocols across a system area network
US20020083150A1 (en) * 2000-12-27 2002-06-27 Linden Minnick Accessing information from memory
KR100372915B1 (ko) * 2001-01-02 2003-02-19 김한규 네트워크에 직접 부착 가능한 디스크 시스템
US20020144004A1 (en) * 2001-03-29 2002-10-03 Gaur Daniel R. Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing
US20020159458A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for reserved addressing in a communications network
AU2002319929A1 (en) 2001-07-16 2003-03-03 Han Gyoo Kim Scheme for dynamically connecting i/o devices through network
US6839706B2 (en) * 2001-08-06 2005-01-04 Lefthand Networks, Inc. Block data storage within a computer network
US6973512B1 (en) * 2001-09-06 2005-12-06 Cypress Semiconductor Corp. Adaptive peripheral device driver and software call methodology for creating same
US7389332B1 (en) 2001-09-07 2008-06-17 Cisco Technology, Inc. Method and apparatus for supporting communications between nodes operating in a master-slave configuration
US7248570B2 (en) * 2001-09-17 2007-07-24 Microsoft Corporation System and method for coordinating bandwidth usage of a communication channel by wireless network nodes
US7194263B2 (en) * 2001-09-17 2007-03-20 Microsoft Corporation System and method for concurrent operation of a wireless device in two disjoint wireless networks
US7093265B1 (en) * 2001-09-21 2006-08-15 Lsi Logic Corporation Method and apparatus for providing highly-transparent, host-based multi-pathing support
US7464016B2 (en) * 2001-11-09 2008-12-09 Sun Microsystems, Inc. Hot plug and hot pull system simulation
JP2003241903A (ja) * 2002-02-14 2003-08-29 Hitachi Ltd 記憶制御装置、ストレージシステム、及びその制御方法
US7421478B1 (en) 2002-03-07 2008-09-02 Cisco Technology, Inc. Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration
US7188194B1 (en) * 2002-04-22 2007-03-06 Cisco Technology, Inc. Session-based target/LUN mapping for a storage area network and associated method
US7165258B1 (en) * 2002-04-22 2007-01-16 Cisco Technology, Inc. SCSI-based storage area network having a SCSI router that routes traffic between SCSI and IP networks
US7200610B1 (en) 2002-04-22 2007-04-03 Cisco Technology, Inc. System and method for configuring fibre-channel devices
US7415535B1 (en) 2002-04-22 2008-08-19 Cisco Technology, Inc. Virtual MAC address system and method
US6895461B1 (en) * 2002-04-22 2005-05-17 Cisco Technology, Inc. Method and apparatus for accessing remote storage using SCSI and an IP network
US7433952B1 (en) 2002-04-22 2008-10-07 Cisco Technology, Inc. System and method for interconnecting a storage area network
US7587465B1 (en) 2002-04-22 2009-09-08 Cisco Technology, Inc. Method and apparatus for configuring nodes as masters or slaves
US7509436B1 (en) * 2002-05-09 2009-03-24 Cisco Technology, Inc. System and method for increased virtual driver throughput
US7240098B1 (en) 2002-05-09 2007-07-03 Cisco Technology, Inc. System, method, and software for a virtual host bus adapter in a storage-area network
US7385971B1 (en) 2002-05-09 2008-06-10 Cisco Technology, Inc. Latency reduction in network data transfer operations
US7953876B1 (en) * 2002-10-24 2011-05-31 Emulex Design & Manufacturing Corporation Virtual interface over a transport protocol
US7831736B1 (en) 2003-02-27 2010-11-09 Cisco Technology, Inc. System and method for supporting VLANs in an iSCSI
US7295572B1 (en) 2003-03-26 2007-11-13 Cisco Technology, Inc. Storage router and method for routing IP datagrams between data path processors using a fibre channel switch
US7904599B1 (en) 2003-03-28 2011-03-08 Cisco Technology, Inc. Synchronization and auditing of zone configuration data in storage-area networks
US7433300B1 (en) 2003-03-28 2008-10-07 Cisco Technology, Inc. Synchronization of configuration data in storage-area networks
US7526527B1 (en) 2003-03-31 2009-04-28 Cisco Technology, Inc. Storage area network interconnect server
US7451208B1 (en) 2003-06-28 2008-11-11 Cisco Technology, Inc. Systems and methods for network address failover
US7457880B1 (en) 2003-09-26 2008-11-25 Ximeta Technology, Inc. System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US7421710B2 (en) * 2003-10-08 2008-09-02 Lsi Corporation System and method of creating virtual data paths using a multiple-path driver
US7406509B2 (en) * 2004-01-07 2008-07-29 Network Appliance, Inc. Dynamic switching of a communication port in a storage system between target and initiator modes
US20050149732A1 (en) 2004-01-07 2005-07-07 Microsoft Corporation Use of static Diffie-Hellman key with IPSec for authentication
US7664836B2 (en) 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
US7293019B2 (en) * 2004-03-02 2007-11-06 Microsoft Corporation Principles and methods for personalizing newsfeeds via an analysis of information novelty and dynamics
US7325075B1 (en) 2004-03-15 2008-01-29 Hewlett-Packard Development Company, L.P. Methods for address and name discovery for Ethernet entities
WO2005091141A1 (en) * 2004-03-19 2005-09-29 Zakrytoe Aktsionernoe Obschestvo 'intel A/O' Failover and load balancing
US7760626B2 (en) * 2004-03-31 2010-07-20 Intel Corporation Load balancing and failover
US7533190B2 (en) * 2004-04-08 2009-05-12 Intel Corporation Network storage target boot and network connectivity through a common network device
US8228931B1 (en) * 2004-07-15 2012-07-24 Ciena Corporation Distributed virtual storage switch
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7746900B2 (en) 2004-07-22 2010-06-29 Zhe Khi Pak Low-level communication layers and device employing same
US7860943B2 (en) 2004-08-23 2010-12-28 Zhe Khi Pak Enhanced network direct attached storage controller
US7373433B2 (en) 2004-10-22 2008-05-13 International Business Machines Corporation Apparatus and method to provide failover protection in an information storage and retrieval system
US8789051B2 (en) 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
US7849257B1 (en) 2005-01-06 2010-12-07 Zhe Khi Pak Method and apparatus for storing and retrieving data
US7430629B2 (en) * 2005-05-12 2008-09-30 International Business Machines Corporation Internet SCSI communication via UNDI services
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US20070073966A1 (en) * 2005-09-23 2007-03-29 Corbin John R Network processor-based storage controller, compute element and method of using same
US20070174360A1 (en) * 2006-01-11 2007-07-26 Yuichi Yagawa Storage system embedding database
JP2008059312A (ja) * 2006-08-31 2008-03-13 Hitachi Ltd 制御装置およびその開発システム
US8108882B1 (en) * 2006-09-28 2012-01-31 Emc Corporation Method and apparatus for interfacing an operating system with a network interface device
US20080155571A1 (en) * 2006-12-21 2008-06-26 Yuval Kenan Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US8578000B2 (en) * 2008-12-05 2013-11-05 Social Communications Company Realtime kernel
US7908404B1 (en) * 2007-11-09 2011-03-15 Qlogic, Corporation Method and system for managing network and storage data
US7720064B1 (en) * 2007-12-21 2010-05-18 Qlogic, Corporation Method and system for processing network and storage data
US8711817B2 (en) * 2008-06-04 2014-04-29 Microsoft Corporation Low cost mesh network capability
US8391300B1 (en) * 2008-08-12 2013-03-05 Qlogic, Corporation Configurable switch element and methods thereof
US8978052B1 (en) 2009-04-29 2015-03-10 Qlogic, Corporation System and methods for inter-driver communication
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8225004B1 (en) 2010-03-31 2012-07-17 Qlogic, Corporation Method and system for processing network and storage data
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
WO2012118917A2 (en) 2011-03-03 2012-09-07 Social Communications Company Realtime communications and network browsing client
US8812707B2 (en) 2011-05-25 2014-08-19 Lsi Corporation Transmitting internet protocol over SCSI in a high availability cluster
WO2013001578A1 (ja) * 2011-06-29 2013-01-03 株式会社日立製作所 入出力制御装置及び入出力制御装置のフレーム処理方法
US8769088B2 (en) 2011-09-30 2014-07-01 International Business Machines Corporation Managing stability of a link coupling an adapter of a computing system to a port of a networking device for in-band data communications
JP5890648B2 (ja) * 2011-10-21 2016-03-22 キヤノンイメージングシステムズ株式会社 情報処理装置、その制御方法、およびデバイス制御システム
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US20140359612A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Sharing a Virtual Hard Disk Across Multiple Virtual Machines
US10897506B2 (en) 2014-07-02 2021-01-19 Hewlett Packard Enterprise Development Lp Managing port connections
CN106796572A (zh) * 2014-09-05 2017-05-31 慧与发展有限责任合伙企业 通过光纤通道的数据存储
US10733131B1 (en) 2019-02-01 2020-08-04 Hewlett Packard Enterprise Development Lp Target port set selection for a connection path based on comparison of respective loads

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2502914B2 (ja) 1992-07-31 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ転送方法及び装置
AU4632693A (en) 1992-09-04 1994-03-29 Jostens Learning Corporation Local area video network
US5491812A (en) * 1992-09-28 1996-02-13 Conner Peripherals, Inc. System and method for ethernet to SCSI conversion
US5802391A (en) 1993-03-16 1998-09-01 Ht Research, Inc. Direct-access team/workgroup server shared by team/workgrouped computers without using a network operating system
US5613096A (en) * 1994-11-04 1997-03-18 Canon Information Systems, Inc. Network protocol sensor
JPH08235084A (ja) 1995-02-23 1996-09-13 Fujitsu Ltd 伝送線制御装置多重化システム
GB2308904A (en) 1996-01-06 1997-07-09 Earl Walter Roper SCSI bus extension over the ethernet
US6148346A (en) * 1996-06-20 2000-11-14 Peerless Systems Imaging Products, Inc. Dynamic device driver
US6118776A (en) * 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6233624B1 (en) * 1997-05-08 2001-05-15 Microsoft Corporation System and method for layering drivers
US6173346B1 (en) * 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US5991813A (en) * 1997-05-16 1999-11-23 Icon Cmt Corp. Network enabled SCSI interface
US5905509A (en) * 1997-09-30 1999-05-18 Compaq Computer Corp. Accelerated Graphics Port two level Gart cache having distributed first level caches
US6044415A (en) * 1998-02-27 2000-03-28 Intel Corporation System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection
US6209023B1 (en) * 1998-04-24 2001-03-27 Compaq Computer Corporation Supporting a SCSI device on a non-SCSI transport medium of a network
US6202147B1 (en) * 1998-06-29 2001-03-13 Sun Microsystems, Inc. Platform-independent device drivers
US6233619B1 (en) * 1998-07-31 2001-05-15 Unisys Corporation Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems
DE19852971A1 (de) * 1998-11-17 2000-05-18 Cognis Deutschland Gmbh Schmiermittel für Bohrspülungen
US6317842B1 (en) * 1999-02-16 2001-11-13 Qlogic Corporation Method and circuit for receiving dual edge clocked data
US6330626B1 (en) * 1999-05-05 2001-12-11 Qlogic Corporation Systems and methods for a disk controller memory architecture

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005302026A (ja) * 2004-04-14 2005-10-27 Hewlett-Packard Development Co Lp ネットワーク接続周辺装置にアクセスするためのコンピュータ可読媒体、方法およびコンピュータシステム
US8914459B2 (en) 2004-04-14 2014-12-16 Hewlett-Packard Development Company, L.P. Redirecting I/O request to remote networked peripheral device
JP2007328811A (ja) * 2007-08-06 2007-12-20 Sharp Corp 受像機
JP4571171B2 (ja) * 2007-08-06 2010-10-27 シャープ株式会社 受像機

Also Published As

Publication number Publication date
DE69922693T2 (de) 2005-12-22
EP1131933B1 (en) 2004-12-15
WO2000029529A2 (en) 2000-05-25
AU1334400A (en) 2000-06-05
CA2350516A1 (en) 2000-05-25
EP1131933A2 (en) 2001-09-12
ATE285152T1 (de) 2005-01-15
DE69922693D1 (de) 2005-01-20
WO2000029529A3 (en) 2000-07-20
CA2350516C (en) 2006-01-24
US6470397B1 (en) 2002-10-22

Similar Documents

Publication Publication Date Title
JP2002530728A (ja) ネットワークのためのシステムおよび方法並びにi/oデバイス・ドライバー
US5784617A (en) Resource-capability-based method and system for handling service processor requests
JP3266481B2 (ja) クラスタ化コンピューティング・システムのディスク・アクセス・パスにおける障害から回復する方法および関連する装置
US7143410B1 (en) Synchronization mechanism and method for synchronizing multiple threads with a single thread
US6078990A (en) Volume set configuration using a single operational view
US8250165B2 (en) Method and system for communicating between memory regions
US6256740B1 (en) Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US8489848B2 (en) Data communications between the computer memory of the logical partitions and the data storage devices through a host fibre channel adapter
US7475124B2 (en) Network block services for client access of network-attached data storage in an IP network
JP3385091B2 (ja) 計算機間の排他制御装置
US6148349A (en) Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US4831620A (en) Controller for controlling multiple LAN types
JPH11328135A (ja) 並列処理コンピュ―タ・システム
EP0989490A2 (en) Protocol for dynamic binding of shared resources
JPH11316748A (ja) 並列処理コンピュ―タ・システムにおけるデ―タの転送方法
JP2003503796A (ja) インテリジェントスプリッタ、システム、および使用方法
US4750114A (en) Local area network control block
JPH06202883A (ja) プロセス間通信装置及び通信方法
US20090282116A1 (en) Method and device for managing cluster membership by use of storage area network fabric
JPS6352260A (ja) コンピュータ・ネットワーク・システム
US20040117687A1 (en) High-availability architecture using high-speed pipes
EP1302854A2 (en) Data transfer
US6374248B1 (en) Method and apparatus for providing local path I/O in a distributed file system
US20040085908A1 (en) Method and apparatus for managing locking of resources in a cluster by use of a network fabric
US7149821B2 (en) Predictably defining input/output configurations for environments employing fabrics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090417

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091112