(57)【要約】【課題】  外部フロントエンド・サーバを必要としない、改善されたネットワーク・インタフェースを有するデータ記憶システムを提供する。【解決手段】  データ記憶システムは、バックプレーン、処理回路及びネットワーク・インタフェース装置を有する。処理回路は、ブロックベースのデータ・アクセス・オペレーションを実行する。ネットワーク・インタフェース装置は、第１インタフェース、第２インタフェース、及び第１インタフェースと第２インタフェースの間に相互接続された制御回路を有する。制御回路は、（ｉ）ファイルベースの通信を受信し、処理回路にブロックベースの通信を提供し、（ｉｉ）処理回路からブロックベースの通信を受信し、ファイルベースの通信を提供し、（ｉｉｉ）アプリケーション・サーバ・リソースを提供することができる。【選択図】      図２
2007080282.tif 000002
【特許請求の範囲】
【請求項１】
ブロックベースのデータアクセスオペレーションを実行するためにバックプレーンおよび処理回路を有するデータ記憶システムのネットワーク・インタフェース装置であって、データ記憶システムの処理回路がデータ記憶システムにバックプレーンに物理的に接続され、該ネットワーク・インタフェース装置が、
外部ネットワークに結合することができる第１インタフェースと、
データ記憶システムのバックプレーンに物理的に接続することができる第２インタフェースと、
第１インタフェースと第２インタフェースの間に相互接続された制御回路とを備え、該制御回路が、第１インタフェースが外部ネットワークに結合し、第２インタフェースがデータ記憶システムのバックプレーンに物理的に接続している場合、
（ｉ）第１インタフェースを通して外部ネットワークからファイルベースの通信を受信し、ファイルベースの通信に応答して、第２インタフェースおよびバックプレーンを通してデータ記憶システムの処理回路にブロックベースの通信を提供し、
（ｉｉ）第２インタフェースおよびバックプレーンを通して処理回路からブロックベースの通信を受信し、ブロックベースの通信に応答して、第１インタフェースを通して外部ネットワークにファイルベースの通信を提供し、
（ｉｉｉ）アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動するアプリケーション・サーバ・リソースを提供するように構成され、
前記第２インタフェースは、（ｉ）制御回路と処理回路の間で、データ記憶システムに記憶するデータを搬送するデータ経路の部分を形成するデータ経路コンダクタのセット、および（ｉｉ）制御回路と処理回路の間で、データの記憶を制御するためのメッセージを搬送するメッセージ経路の部分を形成するメッセージ経路コンダクタのセットを有する、ネットワーク・インタフェース装置。
【請求項２】
前記データ経路コンダクタのセットは、制御回路と処理回路の間でファイバチャネルバスの一部を形成する、請求項１に記載の装置。
【請求項３】
請求項１に記載のネットワーク・インタフェース装置において、制御回路が、（ｉ）第１インタフェースを通して外部ネットワークとインターネット・プロトコル通信を交換し、（ｉｉ）第２インタフェースおよびデータ記憶システムのバックプレーンを通してデータ記憶システムの処理回路とブロッ
クベースの通信を交換するように構成される装置。
【請求項４】
請求項３に記載のネットワーク・インタフェース装置において、前記制御回路が、ファイル名をデータ記憶システムのデータ記憶装置のセットのブロックにマッピングし、前記制御回路が、さらに、外部ネットワークからファイルベースのインターネット・プロトコル・データ・アクセス要求を受信して、ファイルベースのインターネット・プロトコル・データ・アクセス要求およびマップに基づいてデータ記憶システム内でデータのブロックにアクセスするように構成される装置。
【請求項５】
請求項１に記載のネットワーク・インタフェース装置において、前記制御回路が、複数のアプリケーション・レベルのオペレーションを同時に実行する多重プロセッサ・システムのプロセッサとして作動するように構成される装置。
【請求項６】
請求項５に記載のネットワーク・インタフェース装置において、前記制御回路がハードウェア回路を含み、これは各アプリケーション・レベルのオペレーションを、多重プロセッサ・システムが同時に実行する複数のアプリケーション・レベルのオペレーションの中でそのアプリケーション・レベルのオペレーションを識別する番号に関連付ける装置。
【請求項７】
請求項１に記載のネットワーク・インタフェース装置において、前記ネットワーク・インタフェース装置がネットワーク・インタフェース・カードからなり、第１インタフェースが第１ポートからなり、第２インタフェースが第２ポートからなる装置。
【請求項８】
請求項１に記載のネットワーク・インタフェース装置において、前記制御回路が診断情報を提供するように構成される装置。
【請求項９】
請求項１に記載のネットワーク・インタフェース装置において、前記制御回路が、故障許容データ記憶システム内の他のネットワーク・インタフェース装置を制御するように構成される装置。
【請求項１０】
請求項１に記載のネットワーク・インタフェース装置において、前記制御回路が回路カードに組み込まれ、該回路カードが、
複数の第１インタフェースおよび対応する複数の第２インタフェースを備え、インタフェースはデータ記憶システムの信号転送システムを介してデータ記憶システムの入出力コントローラに結合され、インタフェースがコントローラと回路カード間の通信を可能にし、さらに、
第１処理セクションおよび第２処理セクションと、
第１セットのポートおよび対応する第２セットのポートとを備え、
第１処理セクションが、複数の第１インタフェースを介してコントローラと通信するように構成され、
第２処理セクションが、複数の第２インタフェースを介してコントローラと通信するように構成され、
第１処理セクションおよび第２処理セクションが、それぞれ第１セットのポートおよび第２セットのポートを介してデータ交換装置と通信する装置。
【請求項１１】
前記データ記憶システムの処理回路はフロントエンドのディレクタのセット、キャッシュ、及びバックエンドのディレクタのセットを備え、前記フロントエンドのディレクタのセットは前記ネットワーク・インタフェース装置と前記キャッシュの間のインタフェースとして動作し、前記バックエンドのディレクタのセットは前記キャッシュと複数の記憶装置のセットの間のインタフェースとして動作し、かつ、前記ネットワーク・インタフェース装置は、前記処理回路と協働して前記外部ネットワークと前記複数の記憶装置のセットの間の共通パスウェイの少なくとも一部を形成するように構成されている、請求項１に記載のネットワーク・インタフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶システムに関し、特にバックプレーン、処理回路およびネットワーク・インタフェース装置を有するデータ記憶システムに関する。
【背景技術】
【０００２】
通常、データ記憶システムは、データ記憶システムにロードおよび記憶操作を実行するよう指令するブロックベースの入出力（Ｉ／Ｏ）要求に応答することにより、１つまたは複数の外部サーバ・コンピュータ（または単にサーバ）に対する大容量記憶装置として働く。ブロックベースの通信の例には、ブロック多重チャネル通信、スカジー（ＳＣＳＩ）コマンド、ファイバ・チャネル通信、企業システム結合（ＥＳＣＯＮ：Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ｃｏｎｎｅｃｔｉｏｎ）信号、Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ（ＦＩＣＯＮ）チャネル通信などがある。
【０００３】
典型的なサーバは、クライアントと呼ばれる１つまたは複数の他のコンピュータにサービス（例えば、データ記憶システムへのクライアント指向のアクセス）を提供する。サーバおよびデータ記憶システムが相互に通信するために通常使用するブロックベースの通信とは異なり、クライアントとサーバは、通常、クライアント指向およびサーバ指向の通信（以下、概してクライアント指向の通信と呼ぶ）を使用して相互に通信する。クライアント指向の通信の例には、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）通信、ギガビット・イーサネット信号、非同期転送モード（ＡＴＭ）通信などがある。
【０００４】
サーバとクライアントはネットワーク上で相互に接続することができる。ネットワーク・コンピュータ・システムは、通常、複数の地理的に分離した、または分散したコンピュータ・ノードを含み、これはネットワーク接続を介して通信し、それによって相互接続されるように構成される。ネットワーク・コンピュータ・システムの従来の１つのタイプは、ネットワーク・データ記憶サブシステムを含み、これはネットワーク内にデータを記憶し、データを検索する集中化位置を提供する。ネットワーク内でこのような記憶サブシステムを使用することにより、ネットワークのデータ記憶管理および制御機能の多くをネットワーク・ノード間に分散するのではなく、サブシステムで集中化することができるので有利である。
【０００５】
ネットワーク化したクライアント／サーバ・システムの１つの構成では、クライアントはクライアント指向の要求（例えば、ＴＣＰ／ＩＰ信号）をサーバ（すなわちホスト）に送信することにより、データ記憶システムからデータを検索することができる。これでサーバはブロックベースの要求（例えば、ＳＣＳＩ信号）を１つまたは複数のデータ・ブロックからデータ記憶システムへと提供する。次に、データ記憶システムは、ブロックベースの要求に応答して、要求されたデータ・ブロック（例えば、ＳＣＳＩ信号）をサーバに提供する。サーバはそのデータをファイルベースの応答（例えば、ＴＣＰ／ＩＰ信号）の形態でクライアントに提供する。次に、この構成のさらなる詳細を図１に関して提供する。
【０００６】
サーバは、通常、データ記憶システムとクライアント間のデータ交換／通信を容易にする特定のサービス（以下、「サーバ挙動」と呼ぶ）を提供するように構成される。例えば、サーバ挙動の１タイプでは、サーバはクライアントから受信したファイル指向のＩ／Ｏ要求を対応するブロック指向のＩ／Ｏ要求に変換し、ブロック指向のＩ／Ｏ要求をデータ記憶システムに転送する。サーバは、このブロック指向要求に対してデータ記憶システム
から受信したブロック指向要求を対応するファイル指向の応答に変換して、このファイル指向要求をクライアントに転送する。このように、このタイプのサービスでは、サーバは、データ記憶ネットワークでクライアントＩ／Ｏ要求変換リソースとして働く。
【０００７】
他のタイプのサーバ挙動では、サーバはアプリケーション・レベルのプログラム・プロセス・リソースを提供する。例えば、サーバは、データ記憶システムに記憶されたデータベースにアクセスするデータベース・エンジンとしても動作する。ファイル指向データベース命令（例えば、データベース照会）に応答して、サーバはデータ記憶システムにブロック指向の命令を提供し、ブロック指向の命令を実行した後、システムはシステムによるブロック指向命令の実行結果をサーバに提供する。次に、サーバはファイル指向の通信プロトコルを使用して、この結果をクライアントに転送する。
【０００８】
図１は、データ記憶システム２２、サーバ２４−１、２４−２（まとめてサーバ２４）、外部ネットワーク２６（例えば、インターネット）、サーバ２４を外部ネットワーク２６に接続する伝送媒体２８、およびサーバ２４をデータ記憶システム２２に接続する伝送媒体３０を有する従来通りの構成２０を示す。
【０００９】
サーバ２４は、データ記憶システム２２のフロントエンドとして作動することにより、外部ネットワーク２６の装置（例えば、クライアント）にデータ記憶サービスを提供する。例えば、サーバ２４は、ファイルベースの命令に応答して、データ記憶システム２２内にデータのブロックをロードし、記憶する（すなわちデータ記憶システム２２内のデータのブロックにファイルベースのアクセスを提供する）ことができる。さらに、サーバ２４は、データ記憶システム２２内の個々のデータベースにアクセスするデータベース・エンジンとして作動することができる。したがって、クライアントは、伝送媒体２８を通してサーバ２４の１つにファイルベースの通信（例えば、ＴＣＰ／ＩＰ信号の形態のデータベース照会）を送信し、データベース記憶システム２２のデータベースにアクセスすることができる。そのサーバ２４は、ファイルベースの通信に応答して、伝送媒体３０を介して１つまたは複数のブロックベースの命令（例えば、ファイバ・チャネル信号）をデータ記憶システム２２に送信して、そのデータベースを検索および照会し、次に照会結果をクライアントに戻すことができる。
【００１０】
図１に示すように、データ記憶システム２２はネットワーク・インタフェース・カード３２−１、３２−２のセット（ＮＩＣ３２）、フロントエンド回路３４、キャッシュ３６、バックエンド回路３８、およびデータを記憶するブロック４２を有するディスク・ドライブ４０のセットを含む。データ記憶システム２２は、さらに、接続部４４のセットを含み、これはＮＩＣ３２をフロントエンド回路３４に接続する。また、データ記憶システム２２は、フロントエンド回路３４、キャッシュ３６およびバックエンド回路３８を相互に接続するバス４６を含む。さらに、データ記憶システム２２は、バックエンド回路３８とディスク・ドライブ４０のセットを相互に接続する接続部４８のセットを含む。
【００１１】
概して、キャッシュ３６は、サーバ２４とディスク・ドライブ４０のセット間で交換されるデータのバッファとして作動する。また、フロントエンド回路３４は、サーバ２４とキャッシュ３６間のインタフェースとして作動する。同様に、バックエンド回路３８は、キャッシュ３６とディスク・ドライブ４０のセット間のインタフェースとして作動する。
【００１２】
ＮＩＣ３２がサーバ２４からブロックベースの信号を受信すると、そのＮＩＣ３２はそのブロックベースの信号をフロントエンド回路３４へと伝達する。この伝達は通常、信号のフォーマットの変更を伴う。例えば、サーバ３４から光ファイバ・シリアル信号を受信し、それをフロントエンド回路３４が使用するパラレルバス電気信号に変換するか、その逆を実行する。例えば、サーバ２４がデータ記憶システム２２にデータを書き込むと、Ｎ
ＩＣ３２がそのデータを受信して、フロントエンド回路３４が使用するのに適したフォーマットへと（例えば、光ファイバ・シリアル信号からパラレルバス用の電気信号へと）変換し、次にそのデータをフロントエンド回路３４へ提供する。次に、フロントエンド回路３４は、キャッシュ３６内のデータをバッファし、バックエンド回路３８にデータの到着を通知する。次にバックエンド回路３８は、キャッシュ３６からディスク・ドライブ４０のセットへとデータをコピーする。
【００１３】
データ記憶システム２２からデータを読み取るには、サーバ２４がブロックベースの読み取り命令をデータ記憶システム２２に送信する。ＮＩＣ３２が読み取り命令をフロントエンド回路３４による使用に適したフォーマットへと（例えば、光ファイバ・シリアル信号からパラレルバス用電気信号へと）変換し、次にその命令をフロントエンド回路３４へ提供する。次に、フロントエンド回路３４は、バックエンド回路３８に命令を通知する。これに応答して、バックエンド回路３８は、データのコピーをディスク・ドライブ４０のセットからキャッシュ３６へと転送する。次に、フロントエンド回路３４は、サーバ２４による使用に適したフォーマット（例えば、光ファイバ信号）でデータを提供するＮＩＣ３２を通して、キャッシュ３６からサーバ２４へとデータを転送する。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
残念ながら、上述した図１の従来通りの構成２０には欠点がある。例えば、構成２０のサーバ２４は、高価になることがある。にもかかわらず、ファイルに基づく通信環境（例えば、ＴＣＰ／ＩＰ環境）でデータ記憶システム２２を使用するには、構成２０では１つまたは複数のサーバ２４がデータ記憶システム２２のフロントエンドとして作動する必要がある。したがって、サーバ２４は、例えば、ファイル名でデータにアクセスするネットワーク・ファイル・システム（ＮＦＳ）コマンドなどのファイルベースのデータ・アクセス命令を、ブロック・レベル（例えば、ディスク、トラック、およびセクタ番号）でデータにアクセスするブロックベースの通信（例えば、ＳＣＳＩ命令）へと変換する。
【００１５】
また、サーバ２４の存在は、データが通過すべき別の（すなわちネットワーク２６とディスク・ドライブ４０のセット間の）ステージ、すなわちホップを提供し、したがって、ネットワーク２６とディスク・ドライブ４０のセット間におけるデータ移動に多少の待ち時間を追加する。他のステージはＮＩＣ３２、フロントエンド回路３４、キャッシュ３６およびバックエンド回路３８を含む。
【００１６】
さらに、データ記憶システム２２に対するフロントエンドとして作動するサーバ２４が複数ある場合、複数のサーバ２４の作動は、通常、よく調整されない。すなわち、サーバ２４は、通常、相互に独立して作用する（例えば、データ記憶システム２２の個々のデータベースへとアクセスを提供する）。例えば、１つのサーバ２４が過度に作業している間に、他のサーバ２４は十分に利用されていない可能性がある。
【００１７】
サーバ２４を従来通りのデータ記憶システム２２のフロントエンドとして使用する従来通りの上述の構成２０とは反対に、本発明は、（ｉ）ファイルベースの通信とブロックベースの通信間のインタフェース、および（ｉｉ）アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード（ＮＩＣ）を使用するデータ記憶システム技術を志向する。ＮＩＣはファイルベースの通信とブロックベースの通信間のインタフェースとして作動することができるので、ファイルベースの通信からブロックベースの通信へ、およびその逆へと変換するための外部サーバを必要としない（例えば、図１の従来通りの構成２０で必要とされる従来通りのサーバ２４を参照）。また、ＮＩＣは、アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるので、データ記憶シ
ステムはサーバ・オペレーションを実行することができる（例えば、データベース照会を実行するデータベース・エンジンとして作動する）。したがって、このようなＮＩＣを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する１つまたは複数の外部サーバ（例えば、図１の従来通りのサーバ２４）が必要ではない。
【課題を解決するための手段】
【００１８】
本発明の１つの配置構成は、バックプレーン、処理回路およびＮＩＣを有するデータ記憶システムを指向する。処理回路は物理的にバックプレーンに接続され、ブロックベースのデータ・アクセス・オペレーションを実行するように構成される。ＮＩＣは、外部ネットワークに結合することができる第１ポート、物理的にバックプレーンに接続される第２ポート、および第１ポートと第２ポート間に相互接続される制御回路を有する。制御回路は、（ｉ）第１ポートを通して外部ネットワークからファイルベースの通信を受信し、ファイルベースの通信に応答して、第２ポートおよびバックプレーンを通して処理回路にブロックベースの通信を提供し、（ｉｉ）処理回路から第２ポートおよびバックプレーンを通してブロックベースの通信を受信し、ブロックベースの通信に応答して、第１ポートを通して外部ネットワークにファイルベースの通信を提供し、（ｉｉｉ）アプリケーション・レベルのプログラムを実行する外部サーバとして実行するため、アプリケーション・サーバ・リソースを提供するように構成される。ＮＩＣの制御回路は、アプリケーション・サーバとして作動するように構成されるので、従来の構成で必要とされるような外部フロントエンド・サーバが必要ではない（例えば、図１の従来のデータ記憶システム２０の従来のサーバ２４を参照）。
【００１９】
１つの配置構成では、制御回路は回路基板材料とプロセッサのセクションを含み、これが回路基板材料のセクションに物理的に装着される。プロセッサは、第１ポートと第２ポート間のデータ転送を媒介する（例えば、データを整列させ配向するなど）ように構成される。第２ポートはバックプレーン・コネクタを含み
、これは回路基板材料のセクションに物理的に装着され、バックプレーン・コネクタはデータ記憶システムのバックプレーンと係合することができる。したがって、制御回路はバックプレーンに直接接続し、したがってデータ記憶システムの処理回路と同じコンピュータ・キャビネット内に常駐することができる。したがって、制御回路は、データ記憶システムの処理回路が使用するものと同じシステム・リソース（例えば、同じ電源、同じファン・アセンブリなど）を流用することができる。
【００２０】
１つの配置構成では、制御回路はさらにメモリを含み、これは回路基板材料のセクションに物理的に装着される。メモリは、第１ポートが外部ネットワークと結合し、バックプレーン・コネクタがデータ記憶システムのバックプレーンと係合している場合、第１ポートと第２ポート間で移動するデータをバッファするように構成される。したがって、制御回路は、メモリを使用することにより、データを操作またはフォーマット化することができる（例えば、シリアルからパラレルに変換したり、データをより大きいデータ・タイプまたはブロックに整列したりする）。
【００２１】
１つの配置構成では、第２ポートは、（ｉ）制御回路と処理回路の間で、データ記憶システムに記憶するデータを搬送するデータ経路の部分を形成するデータ経路コンダクタのセット、および（ｉｉ）制御回路と処理回路の間で、データの記憶を制御するためのメッセージを搬送するメッセージ経路の部分を形成するメッセージ経路コンダクタのセットを含む。この配置構成では、データとメッセージとで別個の経路があり、したがって、より高速で組織化が優れたスループットを提供する。
【００２２】
１つの配置構成では、データ経路コンダクタのセットは、制御回路と処理回路の間でファイバ・チャネル・バスの部分を形成する。この配置構成により、制御回路はファイバ・
チャネル経路を通して処理回路と通信することができる。処理回路が既に装備されてファイバ・チャネル通信を処理している（例えば、処理回
路が、ファイバ・チャネル信号を介して従来のＮＩＣを通して外部サーバと通信するよう設計された従来のディレクタを含むことができる）場合、さらにアプリケーション・サーバとして作動することができるＮＩＣと処理回路が通信するために、処理回路に改修を加える必要がない。
【００２３】
１つの配置構成では、制御回路は、（ｉ）第１ポートを通して外部ネットワークとインターネット・プロトコル通信を交換し、（ｉｉ）第２ポートおよびデータ記憶システムのバックプレーンを通してデータ記憶システムの処理回路とブロックベースの通信を交換するように構成される。この配置構成では、制御回路はマップを含むことが好ましく、これはファイル名をデータ記憶システムのデータ記憶装置のセットのブロックにマッピングする。また、制御回路は、さらに、外部ネットワークからファイルベースのインターネット・プロトコル・データ・アクセス要求を受信し、ファイルベースのインターネット・プロトコル・データ・アクセス要求およびマップに基づいてデータ記憶システム内のデータのブロックにアクセスするように構成することが好ましい。したがって、データ記憶システムは、ＩＰネットワーク（例えば、インターネット）に直接接続することができる。
【００２４】
１つの配置構成では、制御回路は、多重プロセッサ・システムのプロセッサとして作動するように構成され、これは複数のアプリケーション・レベルのオペレーションを同時に実行する。制御回路は、ハードウェア回路を含み、これはアプリケーション・レベルの各オペレーションに、多重プロセッサ・システムが同時に実行する複数のアプリケーション・レベルのオペレーションの中でそのアプリケーション・レベルのオペレーションを識別する番号を関連付けることが好ましい。したがって、データ記憶システムは、多重処理の方法で作動して、アプリケーション・レベルのオペレーションを実行する（例えば、多重処理、データベース・エンジン、多重処理ウェブサイトなどとして作動する）ように構成された複数のプロセッサ（例えば、複数のＮＩＣ）を含むことができる。
【００２５】
本発明の１つの配置構成では、ネットワーク・データ記憶システムで使用され、１つまたは複数の外部データ交換装置およびシステム内に常駐するＩ／Ｏコントローラの間のデータ通信を容易にするネットワーク・アダプタを設ける。データ記憶システムは、通常、ネットワーク・アダプタを介してデータ交換装置とデータを交換する大容量記憶装置（例えば、大容量ディスク記憶装置）のセットで構成される。ネットワーク・アダプタは、通常、システム内の信号転送媒体／システム（例えば、電気バックプレーン）に物理的に結合される１つまたは複数のインタフェースを含む。バックプレーンはコントローラに結合され、インタフェースがバックプレーンに結合されている場合に、コントローラとネットワーク・アダプタ間のデータ通信を可能にするように構成される。ネットワーク・アダプタは、データ交換装置に１つまたは複数のサーバ挙動を提供することができる。
【００２６】
ネットワーク・アダプタの１つの実施形態では、ネットワーク・アダプタは、データ記憶システムのバックプレーン内にある回路カード・スロットに挿入し、それで受けるように構成された電気回路カードである。回路カードをスロットに挿入し、それで受けると、カードはデータ記憶システムのバックプレーンに電気的および機械的に結合され、したがって、カードの１つまたは複数のインタフェースがバックプレーンに電気的に結合される。
【００２７】
さらに、ネットワーク・アダプタは、少なくとも部分的にはアダプタ・カードが挿入され、常駐するバックプレーン回路カードスロットの位置を識別するスロット識別番号に基づき、第１ネットワーク・レイヤ・アドレスが割り当てられる。第１ネットワーク・レイヤ・アドレスは、データ記憶システムの構成中に第２ネットワーク・レイヤ・アドレスに
変更することができる。
【００２８】
ネットワーク・アダプタの別の実施形態では、ネットワーク・アダプタの１つまたは複数のインタフェースが少なくとも１つのインタフェースを有し、これを通して命令がネットワーク・アダプタに発行されて、ネットワーク・アダプタを第１（オペレーション）モードからオペレーションの第２（診断）モードへと変
更させる。例えば、ネットワーク・アダプタの１つまたは複数のインタフェースは、通常、第１インタフェースおよび第２インタフェースを含む。第１インタフェースにより、アダプタ・カードの外部にあるプロセッサ、コントローラ、およびデータ交換装置は、管理または診断試験関連の命令をバックプレーンを介してアダプタ・カードに発行することができる。任意選択で、外部プロセッサはデータ記憶システムにとっても外部であり、それ自体が、例えば、ネットワークを介してアダプタに結合され、第２ネットワーク・レイヤ・アドレスを使用してネットワークを介してアダプタ・カードにアクセスする。第２インタフェースにより、コントローラはバックプレーンを介して管理または診断命令をアダプタ・カードに発行することができる。ネットワーク・アダプタの１つまたは複数のインタフェースは、さらに、アダプタ・カードに含まれる非揮発性メモリ（例えば、１つまたは複数の電気的消去書込み可能な読出し専用メモリ（ＥＥＰＲＯＭ）デバイス）からバックプレーンを介して構成関連の情報（例えば、ネットワーク・アダプタの構成に関連する情報）を検索できるようにする第３インタフェースを含む。
【００２９】
上述したような本発明の特徴は、データ記憶システム、装置および方法、さらにマサチューセッツ州ホプキントンのＥＭＣ  Ｃｏｒｐｏｒａｔｉｏｎが製造するような他のコンピュータ関連のコンポーネントに使用することができる。
【００３０】
本発明の以上およびその他の目的、特徴および利点は、同様の参照文字が異なる図を通して同じ部品を指す添付の図面で示したような、本発明の好ましい実施形態に関する以下のさらに詳細な説明から明らかになる。図は一律の縮尺ではなく、本発明の原理の図示を強調している。
【発明を実施するための最良の形態】
【００３１】
本発明は、（ｉ）ファイルベースの通信とブロックベースの通信間のインタフェース、および（ｉｉ）アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード（ＮＩＣ）を使用するデータ記憶システムの技術を指向する。ファイルベースの通信をブロックベースの通信に、およびその逆に変換するための外部サーバは必要でない。何故なら、ＮＩＣが、ファイルベースの通信とブロックベースの通信間のインタフェースとして作動することができるからである。また、ＮＩＣがアプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるので、データ記憶システムは、アプリケーション・レベルのオペレーションを実行する（例えば、データベース照会を実行するデータベース・エンジンとして作動する）ことができる。したがって、このようなＮＩＣを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する（例えば、図１の従来通りのデータ記憶システム構成２０で必要とされるような）１つまたは複数の外部サーバが必要ではない。
【００３２】
図２は、本発明で使用するのに適したデータ記憶システム５０を示す。データ記憶システム５０は、接続媒体５２を介して外部ネットワーク２６（例えば、図１参照）に直接接続することができる。データ記憶システム５０は、ＮＩＣ５４−Ａ，・・・，５４−Ｎのセット（まとめてＮＩＣ５４）、フロントエンド回路５６、キャッシュ５８、バックエンド回路６０、およびブロック６４内にデータを記憶することができる記憶装置６２のセットを含む。データ記憶システム５０は、さらに、ＮＩＣ５４をフロントエンド回路５６に
接続する接続部６６のセット、およびバックエンド回路６０を記憶装置６２のセットに接続する別の接続部６８のセットを含む。また、データ記憶システム５０はバス７０を含み、これはフロントエンド回路５６とキャッシュ５８とバックエンド回路６０を相互に接続する。
【００３３】
各ＮＩＣ５４は、特に制御回路７２を含み、これはファイルベースの通信とブロックベースの通信間のインタフェースとして作動し、さらにアプリケーション・レベルのプログラムを実行するためのアプリケーション・サーバ・リソースを提供することができる。１つの配置構成では、各ＮＩＣ５４の制御回路７２は、複数のアプリケーション・レベルのオペレーションを同時に実行することができ
る多重プロセッサ・システム７４のプロセッサとして作動するように構成される。
【００３４】
従来通りのデータ記憶システム（例えば、図１のデータ記憶システム２２）とは異なり、図２のデータ記憶システム５０は、データ記憶システム５０のフロントエンドとして作動する外部サーバを必要としない。何故なら、各ＮＩＣ５４の制御回路７２が、ファイルベースの通信とブロックベースの通信間のインタフェース（例えば、ＮＦＳサーバ）として作動することができるからである。したがって、データ記憶システム５０に１つまたは複数の外部サーバを提供する費用を回避することができる。
【００３５】
また、データ記憶システム５０のフロントエンドとして作動する外部サーバがないので、ネットワーク２６とデータ記憶システム５０との間にデータが通過しなければならない余分なホップまたはステージを配置しなくてすむ。ホップが減少すると、ネットワーク２６と記憶装置６２のセット間で移動するデータの待ち時間が減少する。
【００３６】
また、ＮＩＣ５４のセットは信頼性を向上させる。例えば、ＮＩＣ５４は、１つのＮＩＣ５４が故障すると、別のＮＩＣ５４が介入して、故障したＮＩＣ５４が実行すべき作業を処理するように構成することができる。別の例として、データ記憶システム５０は、冗長電源などの故障許容ハードウェアを含むことができ、ＮＩＣ５４は、このようなハードウェア（例えば、冗長電源で電力を供給され、電源故障に対して保護されるなどしたハードウェア）を流用することができる。
【００３７】
さらに、各ＮＩＣ５４の制御回路７２の動作を調整することができる。例えば、ＮＩＣ５４の制御回路７２が多重プロセッサ・システム７４を形成することができる。したがって、データ記憶システム５０は、ロード・バランシングや故障許容などの多重処理サーバの特徴を提供することができる。次に、本発明のさらなる詳細を、図３に関して提供する。
【００３８】
図３は、図２のＮＩＣ５４のうち１つの斜視図である。図示のように、ＮＩＣ５４は、回路基板材料８０のセクション（例えば、導電性および非導電性材料の層）、および回路基板材料８０のセクションに（例えば、はんだ、圧入ピンなどを使用して）装着される回路基板コンポーネント８２のセット（例えば、集積回路、抵抗器、コンデンサなど）を有する制御回路７２を含む。ＮＩＣ５４は、さらに、外部ネットワーク２６に接続するポート８４、およびフロントエンド回路５６（図２も参照）に接続するポート８６を含む。ポート８４は、図２の接続媒体５２と係合するコネクタ・インタフェース８８（例えば、ギガビット・イーサネット通信のコネクタ）を含む。同様に、ポート８６は、図２の接続部６６のセットと係合するコネクタ・インタフェース９０（例えば、バックプレーン・コネクタ）を含む。次に、本発明のさらなる詳細を、図４に関して提供する。
【００３９】
図４は、図２のデータ記憶システム５０の特定部分のブロック図１００である。図示のように、データ記憶システム５０はコンピュータ・キャビネット１０２、バックプレーン
１０４、処理回路１０６、電源１０８、ファン・アセンブリ１１０、および入出力（Ｉ／Ｏ）装置１１２（例えば、コンソール）、Ｉ／Ｏ装置をバックプレーン１０４に接続するＩ／Ｏコネクタ１１４、および前述したＮＩＣ５４を含む。
【００４０】
バックプレーン１０４は、図２の接続部６６およびバス７０のセットを含む。ＮＩＣ５４は、バックプレーン１０４に直接取り付けられる。特に、図４に示すように、ＮＩＣ５４のポート８６はバックプレーン１０４に（例えば、バックプレーン１０４の対応するコネクタに）物理的および電気的に接続される。
【００４１】
処理回路１０６は、フロントエンド回路５６およびバックエンド回路６０を形成するディレクタ・ボード１１６、およびキャッシュ５８（図２も参照）を形成するメモリ・ボード１１８のセットを含む。ＮＩＣ５４と同様の方法で、ディレ
クタ・ボード１１６およびメモリ・ボード１１８はバックプレーン１０４にも物理的および電気的に接続される。ディレクタ・ボード１１６は、データ記憶システム５０（図２も参照）のフロントエンド回路５６およびバックエンド回路６０を形成する。メモリ・ボード１１８はキャッシュ５８（図２を参照）を形成する。
【００４２】
次に、データ記憶システム５０に記憶したデータへの経路について説明する。フロントエンド回路５６を形成するディレクタ・ボード１１６は、バックプレーン１０４を通してＮＩＣ５４からデータを獲得し、それをバックプレーン１０４を通してメモリ・ボード１１８に提供することにより、データを記憶する。次に、バックエンド回路６０を形成するディレクタ・ボード１１６は、バックプレーン１０４を通してメモリ・ボード１１８からデータを獲得し、それをデータ記憶装置６２に提供することにより、データ記憶プロセスを完成する。
【００４３】
次に、データ記憶システム５０によって検索されるデータの経路について説明する。バックエンド回路６０を形成するディレクタ・ボード１１６が、データ記憶装置６２からデータを獲得し、バックプレーン１０４を通してそれをメモリ・ボード１１８に提供することにより、データを検索する。次に、フロントエンド回路５６を形成するディレクタ・ボード１１６が、バックプレーン１０４を通してメモリ・ボード１１８からデータを獲得し、バックプレーン１０４を通してそれをＮＩＣ５４に提供することにより、データ検索プロセスを完成する。
【００４４】
ディレクタ・ボード１１６は、従来通りのデータ記憶システムでの使用にも適した従来通りのディレクタ・ボードでよいことを理解されたい。例えば、図１の従来通りのデータ記憶システム２２が、ファイバ・チャネル信号を使用して外部サーバ２４と通信するディレクタ・ボードを使用するとする。データ記憶システム２２の従来通りのディレクタ・ボードも、図２から図４のデータ記憶システム５０に使用することができる。そのため、ＮＩＣ５４のポート８６は、従来通りのディレクタ・ボードと同じ信号フォーマット（例えば、ファイバ・チャネル信号）を使用するように構成することができ、したがって、ディレクタ・ボードを改修する必要がなくなる。したがって、本発明は、既存のデータ記憶システムの機器を流用し、既存のディレクタ・ボードの改修に伴う追加の時間および費用を最小限に抑えることができる。
【００４５】
図４に示すように、電源１０８は、バックプレーン１０４を通してディレクタ・ボード１１６のセット、メモリ・ボード１１８のセットおよびＮＩＣ５４に電力を供給する。電源１０８は、さらに、ファン・アセンブリ１１０にも電力を供給する（単純化のため、ファン・アセンブリへの電力供給接続部は図４には図示せず）。その結果、ファン・アセンブリ１１０は、コンピュータ・キャビネット１０２を通って流れて、ディレクタ・ボード１１６のセット、メモリ・ボード１１８のセットおよびＮＩＣ５４が発生する熱を除去す
る空気の流れ１１８を提供する。
【００４６】
Ｉ／Ｏ装置１１２は、ＮＩＣ５４およびディレクタ・ボード１１６など、データ記憶システム５０の様々な装置へのアクセスを提供する。したがって、ユーザ（例えば、現場の技術者）は、外部ネットワーク２６上の外部装置（例えば、クライアント）を通してデータ記憶システム５０にアクセスする代わりに、データ記憶システム５０の動作を直接モニタおよび／または制御することができる。
【００４７】
アプリケーション・サーバとして作動することができるＮＩＣ５４は、物理的にバックプレーン１０４に接続され、データ記憶システムの処理回路１０６と同じコンピュータ・キャビネット１０２内にあるので、アプリケーション・サーバ機構は、基本的に、データ記憶システムの処理回路１０６と同じリソースを流用する。例えば、ＮＩＣ５４（すなわちアプリケーション・サーバ）は、同じ電源１０８および同じファン・アセンブリ１１０を使用する。また、データ記憶システムの残りのコンポーネントと同じキャビネット１０２に囲まれて、物理的に保護され、同じフロア・スペース上にある。したがって、データ記憶システム５０を使用して、外部サーバに伴う追加のリソース（例えば、フロア・スペース、費
用など）を回避することができる。次に、本発明のさらなる詳細を、図５に関連して提供する。
【００４８】
図５は、図２から図４のＮＩＣ５４の特定部分のブロック図１２０である。図示のように、制御回路７２はプロセッサ１２２、メモリ１２４、支援論理１２６、ポート８４につながるトランシーバ１２８、およびポート８６につながる別のトランシーバ１３０を含む。メモリ１２４はオペレーティング・システム１３２、テーブル（またはマップ）１３４のセット、バッファされたデータ１３６およびアプリケーション１３８のセットを記憶する。支援論理１２６は、オペレーション番号を生成するハードウェア１４０を含む。支援論理１２６は、さらに、他のＮＩＣ５４の支援論理１２６と直接通信する接続部１４２を含むことが好ましい。
【００４９】
テーブル１３４のセットは、ディスク・ドライブのブロック位置にファイル（例えば、ＵＮＩＸファイル）をマッピングするために従来通りの外部サーバが使用するものと同様のマッピング情報を含む。特に、テーブル１３４のセットは、記憶装置６２のセット（図２参照）のブロック６４にファイルをマッピングするためのマッピング情報を含む。したがって、ＮＩＣ５４は、ディスク・ドライブとのファイルベースの通信によって識別されたファイル、およびブロックベースの通信によって識別されたセクタを相互参照する機能を有する。
【００５０】
例示のみにより、ポート８４は、制御回路７２と外部ネットワーク２６間でファイルベースの通信を実行するためのギガビット・イーサネット・コネクタを含む。また、例示により、ポート８６は、バックプレーン１０４（図４および図２も参照）を通して制御回路７２と（フロントエンド回路５６を形成する）ディレクタ・ボード１１６間でデータ（例えば、ファイバ・チャネル通信）およびメッセージ（例えば、制御命令）を搬送するバックプレーン・コネクタを含む。
【００５１】
１つの配置構成では、ポート８６は、（ｉ）データを搬送するデータ経路の部分、および（ｉｉ）メッセージを搬送する別個のメッセージ経路の部分を画定する。この配置構成では、ポート８６を通る通信は、データおよびメッセージを同じ経路で搬送する別の配置構成より高速で（すなわち高いスループットで）しかも優れた編成になる。
【００５２】
ＮＩＣ５４が作動中の場合、プロセッサ１２２は、オペレーティング・システム１３２
に従って作動し、（ｉ）ファイルベースとブロックベースの通信両方を処理し、（ｉｉ）アプリケーション・レベルのプログラムを実行するためのアプリケーション・サーバ・リソースを提供する。特に、プロセッサ１２２は、ポート８４およびトランシーバ１２８を通る外部ネットワーク２６からのファイルベースの通信（例えば、ファイル・アクセス命令）を処理し、ポート８６およびトランシーバ１３０を通るデータ記憶システムの処理回路１０６からのブロックベースの通信（例えば、ブロックのロードおよび記憶命令）を処理する。ファイルベースの通信とブロックベースの通信間でデータを変換するため、プロセッサ１２２は、データ１３６をメモリ１２４内に一時的にバッファする。また、プロセッサ１２２はアプリケーション１３８（例えば、データベース・エンジン）を実行し、したがってサーバ・レベルのオペレーション（例えば、データベース照会）を実行する。
【００５３】
図２の多重プロセッサ・システム７４を形成するため、ＮＩＣ５４の制御回路７２の動作を他のプロセッサ（例えば、他のＮＩＣ５４の制御回路７２）の動作と調整できることを理解されたい。この多重処理システムが調整された方法で複数のオペレーションを同時に実行できるようにするため、各ＮＩＣ５４の制御回路７２の支援論理１２６が、多重処理システムが実行する各オペレーションにオペレーション番号を関連付ける。特に、オペレーション番号ハードウェア１４０が他のＮＩＣ５４の他の同様のハードウェア１４０と通信して、多重処理システムによって実行される各オペレーションに識別オペレーション番号（すなわち任意の時刻でデータ記憶システム５０に一意の番号）を割り当てる。したがって、多重処理システムは、複数のオペレーションを同時に追跡して調整し（例えば、オペレーションを１つのプロセッサから別のプロセッサへ転送し、多重処理システム全体で一意のオペレーション番号を使用して、そのオペレーションを遠隔追跡する）、オペレーションの衝突（例えば、ロック、テスト・アンド・セット、およびセマフォ発行）を回避することができる。次に、本発明のさらなる詳細を、図６に関連して提供する。
【００５４】
図６は、図２から図５のデータ記憶システム５０のユーザが実行する手順１５０の流れ図を示す。ステップ１５２では、ユーザは物理的にＮＩＣ５４のポート８６をデータ記憶システムのバックプレーン１０４（図４も参照）に接続する。１つの配置構成では、ポート８６のバックプレーン・コネクタがバックプレーン１０４の対応するコネクタと係合、すなわち係合するよう、ユーザがＮＩＣ５４をカード・ケージのスロットに挿入する。
【００５５】
ステップ１５４では、ユーザがＮＩＣ５４のポート８４を外部ネットワーク２６（図２も参照）に結合する。１つの配置構成では、ユーザが、外部ネットワーク２６につながるネットワーク・ケーブルをＮＩＣ５４のポート８４（図４も参照）に差し込む。
【００５６】
ステップ１５６では、ユーザがＮＩＣ５４の制御回路７２を構成して、（ｉ）ポート８４を通して外部ネットワーク２６からファイルベースの通信を受信し、受信したファイルベースの通信に応答して、ポート８６およびバックプレーン１０４を通しデータ記憶システムの処理回路１０６にブロックベースの通信を提供し、（ｉｉ）ポート８６およびバックプレーン１０４を通して処理回路１０６からブロックベースの通信を受信し、受信したブロックベースの通信に応答して、ポート８４を通し外部ネットワーク２６にファイルベースの通信を提供する。また、ユーザは、制御回路７２を構成して、アプリケーション・サーバ・リソースを提供し、アプリケーション・レベルのオペレーション（例えば、図５のアプリケーション１３８）を実行するアプリケーション・サーバとして作動する。
【００５７】
ユーザは、多重プロセッサ・システムとして作動するようＮＩＣ５４を構成するため、複数のＮＩＣ５４で手順１５０を反復できることを理解されたい。そのため、ユーザがステップ１６２でＮＩＣ５４をバックプレーン１０４に物理的に接続する場合、ユーザは、個々の接続部１４２（図５参照）を通して、各ＮＩＣ５４の制御回路７２を相互に接続することが好ましい。１つの配置構成では、各ＮＩＣ５４の接続部１４２が、そのＮＩＣ５
４のポート８６のバックプレーン・コネクタにある。次に、本発明のさらなる詳細を、図７に関連して提供する。
【００５８】
図７は、各ＮＩＣ５４のオペレーション番号ハードウェア１４０が、バックプレーン１０４内の接続部１６２を通して相互に接続する方法を示す。各ＮＩＣ５４のオペレーション番号ハードウェア１４０は、この接続部１６２を通してオペレーションを調整する。特に、各オペレーション番号ハードウェア１４０は、そのＮＩＣ５４の支援論理１２６内にあるオペレーション番号の個々のテーブル１６４にアクセスする。各テーブル１６４は、使用済みビット・フィールド１６８を有する項目１６６およびオペレーション番号フィールド１７０の同一セットを含む。各ＮＩＣ５４の支援論理１２６は、そのＮＩＣ５４のプロセッサ１２２によって実行されるオペレーションにオペレーション番号を顕著な方法で関連させるため、その個々のテーブル１６４にアクセスする（すなわち任意の時刻で一意の番号）。１つの配置構成では、オペレーション番号ハードウェア１４０はポインタ１７２を使用し、これはテーブル１６４は１テーブル１６４ずつ実行して、使用可能なオペレーション番号を検出する。
【００５９】
各ＮＩＣ５４のハードウェア１４０は、例としてのみ識別番号のテーブル１６４を循環するものとして上述されていることを理解されたい。トークンまたはアービトレーション・キーをＮＩＣ５４間で渡したり、番号の各リストを実行したり、カウンタを実行させたりなど、識別番号または一意の番号を生成する他の方式も、使用するのに適している。１つの配置構成では、ＮＩＣ５４のオペレーション番号ハードウェア１４０が、データ記憶システム５０上で識別番号を作成するため、トークン・パス・オペレーションを実行する。このようなトークン・パスは、速度および信頼性の目的のため、ハードウェア内で排他的に実現されることが好ましい。１つの配置構成では、ＮＩＣ５４のオペレーション番号ハードウェア１４０がリング構成で接続し、トークン・パスがリング構成上で発生する。別の配置構成では、ＮＩＣ５４のオペレーション番号ハードウェア１４０がバス構成で接続され、トークン・パスがバス構成上で発生する。このような改修および強化は、本発明の様々な実施形態の範囲内であるものとする。
【００６０】
図８は、本発明の代替実施形態のブロック図である。本発明のこの代替実施形態では、ネットワーク２６とデータ記憶システム５０のコンポーネント間のインタフェース装置としてネットワーク・アダプタを設ける。ネットワーク・アダプタは、通常、システム内の信号転送媒体／システム（例えば、電気バックプレーン）に物理的に結合される１つまたは複数のインタフェースを含む。バックプレーンはコントローラに結合され、インタフェースがバックプレーンに接続された場合にコントローラとネットワーク・アダプタ間のデータ通信を可能にするように構成される。ネットワーク・アダプタは、データ交換装置に１つまたは複数のサーバ挙動を提供することができる。
【００６１】
図８に示すように、複数のＮＩＣ５４の代わりとなるのは、複数のネットワーク・アダプタ２００である。この実施形態では、フロントエンド回路５６が、ネットワーク・アダプタ２００をバス・システム２０６に接続するネットワークＩ／Ｏコントローラ２０２である。代替実施形態は、さらに、これもバス・システム２０６に接続された共用キャッシュ・メモリ・リソース２０４（共用キャッシュ）を含む。この実施形態のバックエンド回路６０は、記憶装置２０２に接続されたディスクＩ／Ｏコントローラ２０８およびディスク・アダプタ２１０である。ディスクＩ／Ｏコントローラ２０８はバス・システム２０６にも接続される。
【００６２】
システム内にある同様のタイプの複数のコンポーネントにより、故障許容構成を実現することができる。冗長機能コンポーネントおよびメカニズムは、特定の１つのコンポーネントが故障したと検出された場合、その故障が記憶システムの
故障を引き起こさないことを保証する。故障したコンポーネントの動作は、システム内にある同タイプの１つまたは複数のコンポーネントが引き受ける。
【００６３】
図９は、ネットワーク・アダプタ２００をネットワークＩ／Ｏコントローラ２０２に接続するネットワーク・アダプタ・バックプレーン２１８のブロック図である。各ネットワーク・アダプタ２００は、データ記憶システム５０のバックプレーン２１８内の回路カード・スロット２１６に挿入し、これで受けるように構成された電気回路カード２１４である。回路カード２１４をスロット２１６に挿入し、それで受けると、カード２１４はデータ記憶システム５０のバックプレーン２１８に電気的および機械的に結合され、したがってカード２１４の１つまたは複数のインタフェースがバックプレーン２１８に電気的に結合される。ネットワークＩ／Ｏコントローラ２２０もバックプレーン２１８に電気的および機械的に結合される。ネットワーク・アダプタ構成のさらなる代替実施形態では、ネットワーク・アダプタがコネクタ５０２を通して、記憶システム・コントローラとして作動する外部プロセッサ５００に接続される。
【００６４】
各ネットワーク・アダプタ２００には、少なくとも部分的には、アダプタ・カードが挿入されて存在するバックプレーンの回路カード・スロットの位置を識別するスロット識別番号に基づき、第１ネットワーク・レイヤ・アドレスが割り当てられる。第１ネットワーク・レイヤ・アドレスは、データ記憶システム５０の構成中に第２ネットワーク・レイヤ・アドレスに変更することができる。
【００６５】
外部プロセッサの構成では、ネットワーク・アダプタには、外部プロセッサ５００との通信に使用するＩＰアドレスが割り当てられる。このＩＰアドレスは、（デフォルト・パラメータで最初に予め決定された、または外部プロセッサ５００を介してユーザが改修した）ネットワーク・レイヤ・アドレスのオフセットに、アダプタ・カード２１４が挿入されたバックプレーン・スロット２１６に割り当てられたバックプレーン接続スロット識別番号（またはそのビットの所定の番号）によって指定された値を追加することによって決定される。次に、この識別番号を使用して、ネットワーク・アダプタ２００が外部プロセッサ５００と通信するのを可能にするＩＰアドレスを生成する。デフォルト・パラメータのデフォルトＩＰアドレス・オフセットは、プログラム５０４のユーザの所望に従い、プログラム５０４を使用して第２および／またはその後のオフセット値に変更することができる。これは、初期ネットワーク・レイヤ・アドレス・オフセットおよびスロット位置識別番号に基づいて、ネットワーク・アダプタ２００に割り当てられた初期ネットワーク・レイヤ・アドレスを別のネットワーク・レイヤ・アドレスに変更した結果を有する。
【００６６】
図１０は、ネットワーク・アダプタ２００の回路３００のブロック図である。回路３００は、複数の外部Ｉ／Ｏポート／インタフェースおよび関連する通信関連の回路（まとめて数字３０８で指す）、中央処理回路３３０、プログラム可能論理デバイス（ＰＬＤ）３０２、ＰＬＤ３０４、および電気的消去書込み可能な読出し専用メモリ（ＥＥＰＲＯＭ）３０６を含む制御およびサーバ処理回路３００を含む。
【００６７】
外部Ｉ／Ｏポート／インタフェースおよび関連する回路３０８は、複数の別個の外部ポート／インタフェース３１０、３１２、３１４、３１６、３１８、３２０、３２２、３２４、３２６および３２８を含む。インタフェース３１０、３１２、３１４、３１６、３１８、３２０、３２２、３２４および３２８はそれぞれ、ネットワーク・アダプタ２００がネットワーク２６とデータを交換し、通信できるようにする個々のネットワーク通信回路（図示せず）を含む。
【００６８】
処理回路３３０は、２つの別個の中央処理装置セクションまたは「スライス」３３２および３３４を含む多重プロセッサ・システムである。セクション３３２はマイクロプロセ
ッサ３３６、およびコンピュータで読み取り可能なランダム・アクセスおよび読み出し専用メモリ３４０を有する。セクション３３４はマイクロプロセッサ３３８、およびコンピュータで読み取り可能なランダム・アクセスおよび読み出し専用メモリ３４２を有する。
【００６９】
メモリ３４０および３４２はそれぞれ、ネットワーク・アダプタ２００が実行するよう本明細書で説明されている本発明および他の機能、方法、技術、およびオペレーションに関連し、それを実行するためのソフトウェア・プログラムおよびデータ構造を記憶する。マイクロプロセッサ３３６および３３８、および回路３００に含まれる他の回路は、ネットワーク・アダプタ２００が実行するよう本明細書で説明されている本発明および他の機能、方法、技術およびオペレーションを容易にするよう、ソフトウェア・プログラムを実行し、これらのデータ構造を操作するように構成される。例えば、本発明のこの実施形態によると、複数のコンピュータ・プログラムのプロセスおよび関連するデータ構造３４４、３４６、３４８および３５０がメモリ３４０および３４２に常駐する。以下でさらに詳細に説明するよう、プロセッサ３３６および３３８および処理セクション３３２および３３４にある他の回路がこれらのプロセスおよび関連するデータ構図３４４、３４６、３４８、３５０を実行し、操作すると、ネットワーク・アダプタ２００がクライアント・コンピュータに１つまたは複数のサーバ挙動を提供することができるようになる。回路３３０は２つの別個の論理メモリ３４０および３４２を有するものとして考えることができるが、プロセッサ３３６および３３８を適切にプログラムして従来通りの技術を使用し、メモリ・クラッシュの発生を防止すれば、プロセッサ３３６および３３８はネットワーク・アダプタ２００内のメモリ・リソースを共用できることを理解されたい。
【００７０】
システム５０およびネットワーク・アダプタ２００が初期の電源投入またはリセット・ブート手順を実行した後、ネットワーク・アダプタ２００は最初にオペレーションのデフォルト・モードに入ることができる。オペレーションのこのデフォルト・モードでは、ネットワーク・アダプタ２００が所定のデフォルト構成パラメータに従って作動する。これらのパラメータは、例えば、ネットワーク・アダプタ２００に割り当てられる特定の個々のネットワーク・レイヤ・アドレス（例えば、ＩＰアドレス）を決定する際に使用する初期ネットワーク・レイヤ・アドレス・オフセット（例えば、１０．１．１．０）、ネットワーク・アダプタ２００とクライアント・ノード間でデータおよび命令を交換するネットワーク・アダプタ２００モードの初期オペレーション・モードを指定する。これらのデフォルト・パラメータは回路３００に予めプログラムしてよい。
【００７１】
また、ネットワーク・アダプタ２００が通常のオペレーション・モードにある間、ネットワークＩ／Ｏコントローラ２０２は、回路３００に命令を発行する機能を有し、これは回路３００で受信すると、回路３００がネットワーク・アダプタ２００の構成に関する情報を非揮発性ＥＥＰＲＯＭ３０６から検索する。このような構成に関する情報は、例えば、カード２１４の製造業者がカード２１４に割り当てた部品番号、カード２１４に割り当てられたシリアル番号、カード２１４に組み込まれたハードウェア／ソフトウェアの改訂レベル、カード２１４に関連する（例えば、遭遇した以前の問題、またはカード２１４に施された修理を説明して技術者が書き込む）テキスト・コメントなどを指定することができる。この情報は、カード２１４の将来の処理、診断、修理およびトラブルシューティングが容易になるよう、カード２１４の製造、修理および／またはトラブルシューティング中にＥＥＰＲＯＭ３０６に書き込まれる。ＥＥＰＲＯＭ３０６から検索した情報は、回路３００によってコントローラ２０２に転送される。ネットワークＩ／Ｏコントローラ２０２は、ＥＥＰＲＯＭ３０６から検索した情報を受信した後、プログラム５０４による使用および／または表示のために、情報をプロセッサ５００に供給する。
【００７２】
プログラム５０４によって、人間のユーザがネットワーク・アダプタ２００の回路３００に対して、ネットワーク・アダプタ２００の診断試験を開始する命令を発行することも
できる。この命令は、回路３００によって受信されると、ネットワーク・アダプタ２００を、ネットワーク・アダプタ２００またはシステム５０の初期電源投入またはリセット後にネットワーク・アダプタ２００が入る最初の通常オペレーション・モードから、オペレーションの診断試験モードに変化させる。このオペレーション診断モードでは、ネットワーク・アダプタ２００が１つまたは複数の診断ルーチンまたは手順を実行する。これらの手順は、ネットワーク・アダプタ２００自体、制御回路３００、処理回路３３０、処理セクション３３２および３３４、ポート３０８、回路カードとバックプレーン２１８とのインタフェースおよび／またはそのコンポーネントの１つまたは複数の従来通りの組込み自己試験（ＢＩＳＴ）および／または他のタイプの診断手順を含む。１つまたは複数のＢＩＳＴおよび／またはネットワーク・アダプタ２００が実行する他の診断ルーチンのタイプおよび／または性質は、人間のユーザがプログラム５０４を使用して選択することができる。ユーザはプログラム５０４を使用して、１つまたは複数のＢＩＳＴおよび／またはアダプタによる他の診断試験の実行をモニタし、ネットワーク・アダプタ２００が１つまたは複数のＢＩＳＴおよび／またはユーザが選択した他の診断試験を完了した後、回路３０８は１つまたは複数のＢＩＳＴおよび／または他の診断試験の結果をプログラム５０４に報告し、プログラム５０４はこれらの結果をユーザが理解可能なフォームで表示させる。また、ネットワーク・アダプタ２００をプログラムして、ネットワーク・アダプタ２００の電源投入時に１つまたは複数の電源投入時自己試験診断ルーチンまたは手順を実行することができる。
【００７３】
本発明のこの実施形態によると、プロセス３４４および３４８は、Ｄａｔａ  Ａｃｃｅｓｓ  ｉｎ  Ｒｅａｌ  Ｔｉｍｅ（ＤＡＲＴ）、ＵＮＩＸまたはＬｉｎｕｘ  ＯＳが生成するようなコンピュータ・オペレーティング・システム（ＯＳ）プロセスを含むことができる。プロセッサ３４６および３５０は、クライアント・ノードにサーバ挙動を提供するＯＳプロセス３４４および３４８によって提供されるサービス（例えば、システム・コール、ライブラリ機能など）を使用するプロセスを備えることができる。プログラムのプロセス３４６および３５０は、例えば、ファイル指向の通信を対応するブロック指向の通信に、およびその逆に変換するように構成することができ、それに加えてプロセス３４６および３５０は、１つまたは複数のアプリケーション・レベルのプログラム・プロセス（例えば、クライアント・ノードによるデータベース照会および関連機能の使用を容易にする）を含む。
【００７４】
本発明の代替実施形態では、システム５０内の他のネットワーク・アダプタ（以下「被制御アダプタ」と呼ぶ）のオペレーションをモニタし、管理して制御するよう、ネットワーク・アダプタの１つ（以下、「制御アダプタ」と呼ぶ）を構成することができる。これを容易にするため、ネットワーク・アダプタ２００はそれぞれ、各ネットワーク・アダプタ２００の制御および処理回路３００が相互にデータおよび命令を交換するのを可能にするイーサネット通信リンクを介して、相互に結合される。制御アダプタの回路３００は、これらのイーサネット通信リンクを介して被制御アダプタに適切な命令（例えば、命令に基づく簡易ネットワーク管理プロトコル（ＳＮＭＰ））を発行することにより、被制御アダプタのオペレーションを制御するように構成される。被制御アダプタそれぞれの回路３００は、イーサネット通信リンクを介してそれに発行された命令を実行するように構成され、被制御アダプタの個々のオペレーションの状態を示す個々のメッセージ（例えば、ＳＮＭＰベースのメッセージ）を制御アダプタの回路３０に転送するように構成してもよい。制御アダプタが、このモニタ活動の結果として被制御アダプタの１つが故障したと判断した場合、制御アダプタは、システム５０内でフェイル・オーバ障害処理プロセスを開始させ、故障した被制御アダプタが実行するはずの処理を、正常に作動している被制御アダプタが代わりに実行することを可能にする。
【００７５】
上述したように、本発明は、（ｉ）ファイルベースの通信とブロックベースの通信間の
インタフェース、および（ｉｉ）アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるＮＩＣ５４を使用するデータ記憶システム技術を指向する。ファイルベースの通信をブロックベースの通信に、およびその逆に変換する外部サーバは必要でない。ＮＩＣ５４が、ファイルベースの通信とブロックベースの通信間のインタフェースとして動作することができるからである。また、データ記憶システムが、アプリケーション・レベルのオペレーションを実行する（例えば、データベース照会を実行するデータベース・エンジンとして作動する）ことができる。ＮＩＣ５４が、アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるからである。したがって、このようなＮＩＣを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する（例えば、図１の従来通りのデータ記憶システム構成２０で必要とされるような）１つまたは複数の外部サーバが必要ない。本発明の機構は、上述したように、マサチューセッツ州ホプキントンのＥＭＣ  Ｃｏｒｐｏｒａｔｉｏｎのもののようなコンピュータ・システム、コンポーネントおよび手順に使用することができる。
【００７６】
本発明を好ましい実施形態に関連して特に図示し、説明してきたが、添付請求の範囲で規定されるような本発明の精神および範囲から逸脱することなく、形状および細部を様々に変更できることが当業者には理解される。
【００７７】
例えば、ＮＩＣ５４のポート８４は、例としてのみ、ギガビット・イーサネット・ネットワーク（図５の外部ネットワーク２６参照）に接続されるものとして上述されていることを理解されたい。トークン・リング、ＡＴＭなど、他のタイプのネットワークも外部ネットワーク２６としての使用に適している。
【００７８】
また、ＮＩＣのポート８６は、例としてのみ、ファイバ・チャネル通信を扱うものとして説明したが、ＥＳＣＯＮ、ＦＩＣＯＮ、Ｂｌｏｃｋ  Ｍｕｘ、ＳＣＳＩなど、他のブロックベースの通信も使用に適していることを理解されたい。さらに、ＮＩＣ５４と処理回路１０６（図４参照）間のインタフェースは、周辺コンポーネント相互接続（ＰＣＩ）バス、業界標準アーキテクチャ（ＩＳＡ）バスなど、従来通りのバス・アーキテクチャを使用することができる。
【００７９】
さらに、データ記憶システム５０は例としてのみ、複数のＮＩＣ５４−１，・・・，５４−Ｎ（Ｎはプラスの整数）を含むよう説明されていることを理解されたい。データ記憶システム５０は１つのＮＩＣを含んでもよいことを理解されたい。１つのＮＩＣの構成でも、外部サーバの必要性を低下させる。
【００８０】
また、ＮＩＣ５４は様々なアプリケーション・レベルのプログラムおよび／または複数のアプリケーション・レベルのプログラムを同時に実行できることを理解されたい。したがって、データ記憶システム５０は、１つまたは複数のデータベースのデータベース・エンジンとして作動したり、ウェブ・サーバとして作動したり、ＮＦＳファイル・サーバとして作動したりなど、様々なサーバ・レベルの特徴を提供することができる。
【００８１】
さらに、データ記憶システム５０のトポロジが、例としてのみ、フロントエンド回路５６を接続するバス７０、キャッシュ５８およびバックエンド回路６０を相互に接続するバス７０を含むことを理解されたい。フロントエンド回路５６、キャッシュ５８およびバックエンド回路６０を形成するディレクタ・ボードとメモリ・ボード間のポイント間接続のマトリクスなど、他のトポロジも適切である。
【００８２】
また、記憶装置６２は例としてのみ、ディスク・ドライブとして上述したことを理解されたい。テープ・ドライブ、ＣＤ−ＲＯＭドライブ、半導体メモリなど、他のタイプの記
憶装置も適している。
【００８３】
以上詳細に説明したように、本発明によれば、従来の構成で必要とされるような外部フロントエンド・サーバを必要としない、（ｉ）ファイルベースの通信とブロックベースの通信間のインタフェース、および（ｉｉ）アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード（ＮＩＣ）を使用する、改善されたネットワーク・インタフェースを有するデータ記憶システムを供給できるという効果がある。
【図面の簡単な説明】
【００８４】
【図１】ブロックベースの通信を外部サーバに提供するネットワーク・インタフェース・カードを含む従来通りのデータ記憶システムのブロック図である。
【図２】本発明の実施形態により、（ｉ）ファイルベースの通信を外部ネットワークに提供し、（ｉｉ）アプリケーション・サーバとして作動することができるネットワーク・インタフェース・カードを含むデータ記憶システムのブロック図である。
【図３】図２のデータ記憶システムのネットワーク・インタフェース・カードの斜視図である。
【図４】図２のデータ記憶システムの特定部分のブロック図である。
【図５】図３のネットワーク・インタフェース・カードの特定部分のブロック図である。
【図６】図２のデータ記憶システムのユーザが実行する手順の流れ図である。
【図７】多重処理システムを形成するよう配置構成された図２のデータ記憶装置の複数のネットワーク・インタフェース・カードのブロック図である。
【図８】ネットワーク・アダプタを含むデータ記憶システムの代替実施形態である。
【図９】図８のネットワーク・アダプタをネットワークＩ／Ｏコントローラに接続するバックプレーン配置構成のブロック図である。
【図１０】図８のネットワーク・アダプタの制御回路のブロック図である。
【符号の説明】
【００８５】
５０・・・ データ記憶システム、５２・・・ 接続媒体、２６・・・ 外部ネットワー
ク、５４・・・ ＮＩＣ、５６・・・ フロントエンド回路、５８・・・ キャッシュ、６
０・・・ バックエンド回路、６４・・・ ブロック、６２・・・ 記憶装置、６６・・・ 接続部、６８・・・ 別の接続部６８、７０・・・ バス、７２・・・ 制御回路、７４・
・・ 多重プロセッサ・システム。
【図１】
2007080282.tif 000003
【図２】
2007080282.tif 000004
【図３】
2007080282.tif 000005
【図４】
2007080282.tif 000006
【図５】
2007080282.tif 000007
【図６】
2007080282.tif 000008
【図７】
2007080282.tif 000009
【図８】
2007080282.tif 000010
【図９】
2007080282.tif 000011
【図１０】
2007080282.tif 000012