JP2007080282A - 改善されたネットワーク・インタフェースを有するデータ記憶システム - Google Patents

改善されたネットワーク・インタフェースを有するデータ記憶システム Download PDF

Info

Publication number
JP2007080282A
JP2007080282A JP2006281609A JP2006281609A JP2007080282A JP 2007080282 A JP2007080282 A JP 2007080282A JP 2006281609 A JP2006281609 A JP 2006281609A JP 2006281609 A JP2006281609 A JP 2006281609A JP 2007080282 A JP2007080282 A JP 2007080282A
Authority
JP
Japan
Prior art keywords
data storage
storage system
data
network
interface
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
JP2006281609A
Other languages
English (en)
Inventor
Jonathan J Barrow
ジェイ.バロー ジョナサン
Kendell A Chilton
エイ.チルトン ケンデル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
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
Priority claimed from US09/852,580 external-priority patent/US7027439B1/en
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2007080282A publication Critical patent/JP2007080282A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0658Controller construction 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/12Protocol engines

Abstract

【課題】 外部フロントエンド・サーバを必要としない、改善されたネットワーク・インタフェースを有するデータ記憶システムを提供する。
【解決手段】 データ記憶システムは、バックプレーン、処理回路及びネットワーク・インタフェース装置を有する。処理回路は、ブロックベースのデータ・アクセス・オペレーションを実行する。ネットワーク・インタフェース装置は、第1インタフェース、第2インタフェース、及び第1インタフェースと第2インタフェースの間に相互接続された制御回路を有する。制御回路は、(i)ファイルベースの通信を受信し、処理回路にブロックベースの通信を提供し、(ii)処理回路からブロックベースの通信を受信し、ファイルベースの通信を提供し、(iii)アプリケーション・サーバ・リソースを提供することができる。
【選択図】 図2

Description

本発明は、データ記憶システムに関し、特にバックプレーン、処理回路およびネットワーク・インタフェース装置を有するデータ記憶システムに関する。
通常、データ記憶システムは、データ記憶システムにロードおよび記憶操作を実行するよう指令するブロックベースの入出力(I/O)要求に応答することにより、1つまたは複数の外部サーバ・コンピュータ(または単にサーバ)に対する大容量記憶装置として働く。ブロックベースの通信の例には、ブロック多重チャネル通信、スカジー(SCSI)コマンド、ファイバ・チャネル通信、企業システム結合(ESCON:Enterprise System Connection)信号、Fibre Connectivity(FICON)チャネル通信などがある。
典型的なサーバは、クライアントと呼ばれる1つまたは複数の他のコンピュータにサービス(例えば、データ記憶システムへのクライアント指向のアクセス)を提供する。サーバおよびデータ記憶システムが相互に通信するために通常使用するブロックベースの通信とは異なり、クライアントとサーバは、通常、クライアント指向およびサーバ指向の通信(以下、概してクライアント指向の通信と呼ぶ)を使用して相互に通信する。クライアント指向の通信の例には、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)通信、ギガビット・イーサネット信号、非同期転送モード(ATM)通信などがある。
サーバとクライアントはネットワーク上で相互に接続することができる。ネットワーク・コンピュータ・システムは、通常、複数の地理的に分離した、または分散したコンピュータ・ノードを含み、これはネットワーク接続を介して通信し、それによって相互接続されるように構成される。ネットワーク・コンピュータ・システムの従来の1つのタイプは、ネットワーク・データ記憶サブシステムを含み、これはネットワーク内にデータを記憶し、データを検索する集中化位置を提供する。ネットワーク内でこのような記憶サブシステムを使用することにより、ネットワークのデータ記憶管理および制御機能の多くをネットワーク・ノード間に分散するのではなく、サブシステムで集中化することができるので有利である。
ネットワーク化したクライアント/サーバ・システムの1つの構成では、クライアントはクライアント指向の要求(例えば、TCP/IP信号)をサーバ(すなわちホスト)に送信することにより、データ記憶システムからデータを検索することができる。これでサーバはブロックベースの要求(例えば、SCSI信号)を1つまたは複数のデータ・ブロックからデータ記憶システムへと提供する。次に、データ記憶システムは、ブロックベースの要求に応答して、要求されたデータ・ブロック(例えば、SCSI信号)をサーバに提供する。サーバはそのデータをファイルベースの応答(例えば、TCP/IP信号)の形態でクライアントに提供する。次に、この構成のさらなる詳細を図1に関して提供する。
サーバは、通常、データ記憶システムとクライアント間のデータ交換/通信を容易にする特定のサービス(以下、「サーバ挙動」と呼ぶ)を提供するように構成される。例えば、サーバ挙動の1タイプでは、サーバはクライアントから受信したファイル指向のI/O要求を対応するブロック指向のI/O要求に変換し、ブロック指向のI/O要求をデータ記憶システムに転送する。サーバは、このブロック指向要求に対してデータ記憶システム
から受信したブロック指向要求を対応するファイル指向の応答に変換して、このファイル指向要求をクライアントに転送する。このように、このタイプのサービスでは、サーバは、データ記憶ネットワークでクライアントI/O要求変換リソースとして働く。
他のタイプのサーバ挙動では、サーバはアプリケーション・レベルのプログラム・プロセス・リソースを提供する。例えば、サーバは、データ記憶システムに記憶されたデータベースにアクセスするデータベース・エンジンとしても動作する。ファイル指向データベース命令(例えば、データベース照会)に応答して、サーバはデータ記憶システムにブロック指向の命令を提供し、ブロック指向の命令を実行した後、システムはシステムによるブロック指向命令の実行結果をサーバに提供する。次に、サーバはファイル指向の通信プロトコルを使用して、この結果をクライアントに転送する。
図1は、データ記憶システム22、サーバ24−1、24−2(まとめてサーバ24)、外部ネットワーク26(例えば、インターネット)、サーバ24を外部ネットワーク26に接続する伝送媒体28、およびサーバ24をデータ記憶システム22に接続する伝送媒体30を有する従来通りの構成20を示す。
サーバ24は、データ記憶システム22のフロントエンドとして作動することにより、外部ネットワーク26の装置(例えば、クライアント)にデータ記憶サービスを提供する。例えば、サーバ24は、ファイルベースの命令に応答して、データ記憶システム22内にデータのブロックをロードし、記憶する(すなわちデータ記憶システム22内のデータのブロックにファイルベースのアクセスを提供する)ことができる。さらに、サーバ24は、データ記憶システム22内の個々のデータベースにアクセスするデータベース・エンジンとして作動することができる。したがって、クライアントは、伝送媒体28を通してサーバ24の1つにファイルベースの通信(例えば、TCP/IP信号の形態のデータベース照会)を送信し、データベース記憶システム22のデータベースにアクセスすることができる。そのサーバ24は、ファイルベースの通信に応答して、伝送媒体30を介して1つまたは複数のブロックベースの命令(例えば、ファイバ・チャネル信号)をデータ記憶システム22に送信して、そのデータベースを検索および照会し、次に照会結果をクライアントに戻すことができる。
図1に示すように、データ記憶システム22はネットワーク・インタフェース・カード32−1、32−2のセット(NIC32)、フロントエンド回路34、キャッシュ36、バックエンド回路38、およびデータを記憶するブロック42を有するディスク・ドライブ40のセットを含む。データ記憶システム22は、さらに、接続部44のセットを含み、これはNIC32をフロントエンド回路34に接続する。また、データ記憶システム22は、フロントエンド回路34、キャッシュ36およびバックエンド回路38を相互に接続するバス46を含む。さらに、データ記憶システム22は、バックエンド回路38とディスク・ドライブ40のセットを相互に接続する接続部48のセットを含む。
概して、キャッシュ36は、サーバ24とディスク・ドライブ40のセット間で交換されるデータのバッファとして作動する。また、フロントエンド回路34は、サーバ24とキャッシュ36間のインタフェースとして作動する。同様に、バックエンド回路38は、キャッシュ36とディスク・ドライブ40のセット間のインタフェースとして作動する。
NIC32がサーバ24からブロックベースの信号を受信すると、そのNIC32はそのブロックベースの信号をフロントエンド回路34へと伝達する。この伝達は通常、信号のフォーマットの変更を伴う。例えば、サーバ34から光ファイバ・シリアル信号を受信し、それをフロントエンド回路34が使用するパラレルバス電気信号に変換するか、その逆を実行する。例えば、サーバ24がデータ記憶システム22にデータを書き込むと、N
IC32がそのデータを受信して、フロントエンド回路34が使用するのに適したフォーマットへと(例えば、光ファイバ・シリアル信号からパラレルバス用の電気信号へと)変換し、次にそのデータをフロントエンド回路34へ提供する。次に、フロントエンド回路34は、キャッシュ36内のデータをバッファし、バックエンド回路38にデータの到着を通知する。次にバックエンド回路38は、キャッシュ36からディスク・ドライブ40のセットへとデータをコピーする。
データ記憶システム22からデータを読み取るには、サーバ24がブロックベースの読み取り命令をデータ記憶システム22に送信する。NIC32が読み取り命令をフロントエンド回路34による使用に適したフォーマットへと(例えば、光ファイバ・シリアル信号からパラレルバス用電気信号へと)変換し、次にその命令をフロントエンド回路34へ提供する。次に、フロントエンド回路34は、バックエンド回路38に命令を通知する。これに応答して、バックエンド回路38は、データのコピーをディスク・ドライブ40のセットからキャッシュ36へと転送する。次に、フロントエンド回路34は、サーバ24による使用に適したフォーマット(例えば、光ファイバ信号)でデータを提供するNIC32を通して、キャッシュ36からサーバ24へとデータを転送する。
残念ながら、上述した図1の従来通りの構成20には欠点がある。例えば、構成20のサーバ24は、高価になることがある。にもかかわらず、ファイルに基づく通信環境(例えば、TCP/IP環境)でデータ記憶システム22を使用するには、構成20では1つまたは複数のサーバ24がデータ記憶システム22のフロントエンドとして作動する必要がある。したがって、サーバ24は、例えば、ファイル名でデータにアクセスするネットワーク・ファイル・システム(NFS)コマンドなどのファイルベースのデータ・アクセス命令を、ブロック・レベル(例えば、ディスク、トラック、およびセクタ番号)でデータにアクセスするブロックベースの通信(例えば、SCSI命令)へと変換する。
また、サーバ24の存在は、データが通過すべき別の(すなわちネットワーク26とディスク・ドライブ40のセット間の)ステージ、すなわちホップを提供し、したがって、ネットワーク26とディスク・ドライブ40のセット間におけるデータ移動に多少の待ち時間を追加する。他のステージはNIC32、フロントエンド回路34、キャッシュ36およびバックエンド回路38を含む。
さらに、データ記憶システム22に対するフロントエンドとして作動するサーバ24が複数ある場合、複数のサーバ24の作動は、通常、よく調整されない。すなわち、サーバ24は、通常、相互に独立して作用する(例えば、データ記憶システム22の個々のデータベースへとアクセスを提供する)。例えば、1つのサーバ24が過度に作業している間に、他のサーバ24は十分に利用されていない可能性がある。
サーバ24を従来通りのデータ記憶システム22のフロントエンドとして使用する従来通りの上述の構成20とは反対に、本発明は、(i)ファイルベースの通信とブロックベースの通信間のインタフェース、および(ii)アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード(NIC)を使用するデータ記憶システム技術を志向する。NICはファイルベースの通信とブロックベースの通信間のインタフェースとして作動することができるので、ファイルベースの通信からブロックベースの通信へ、およびその逆へと変換するための外部サーバを必要としない(例えば、図1の従来通りの構成20で必要とされる従来通りのサーバ24を参照)。また、NICは、アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるので、データ記憶シ
ステムはサーバ・オペレーションを実行することができる(例えば、データベース照会を実行するデータベース・エンジンとして作動する)。したがって、このようなNICを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する1つまたは複数の外部サーバ(例えば、図1の従来通りのサーバ24)が必要ではない。
本発明の1つの配置構成は、バックプレーン、処理回路およびNICを有するデータ記憶システムを指向する。処理回路は物理的にバックプレーンに接続され、ブロックベースのデータ・アクセス・オペレーションを実行するように構成される。NICは、外部ネットワークに結合することができる第1ポート、物理的にバックプレーンに接続される第2ポート、および第1ポートと第2ポート間に相互接続される制御回路を有する。制御回路は、(i)第1ポートを通して外部ネットワークからファイルベースの通信を受信し、ファイルベースの通信に応答して、第2ポートおよびバックプレーンを通して処理回路にブロックベースの通信を提供し、(ii)処理回路から第2ポートおよびバックプレーンを通してブロックベースの通信を受信し、ブロックベースの通信に応答して、第1ポートを通して外部ネットワークにファイルベースの通信を提供し、(iii)アプリケーション・レベルのプログラムを実行する外部サーバとして実行するため、アプリケーション・サーバ・リソースを提供するように構成される。NICの制御回路は、アプリケーション・サーバとして作動するように構成されるので、従来の構成で必要とされるような外部フロントエンド・サーバが必要ではない(例えば、図1の従来のデータ記憶システム20の従来のサーバ24を参照)。
1つの配置構成では、制御回路は回路基板材料とプロセッサのセクションを含み、これが回路基板材料のセクションに物理的に装着される。プロセッサは、第1ポートと第2ポート間のデータ転送を媒介する(例えば、データを整列させ配向するなど)ように構成される。第2ポートはバックプレーン・コネクタを含み
、これは回路基板材料のセクションに物理的に装着され、バックプレーン・コネクタはデータ記憶システムのバックプレーンと係合することができる。したがって、制御回路はバックプレーンに直接接続し、したがってデータ記憶システムの処理回路と同じコンピュータ・キャビネット内に常駐することができる。したがって、制御回路は、データ記憶システムの処理回路が使用するものと同じシステム・リソース(例えば、同じ電源、同じファン・アセンブリなど)を流用することができる。
1つの配置構成では、制御回路はさらにメモリを含み、これは回路基板材料のセクションに物理的に装着される。メモリは、第1ポートが外部ネットワークと結合し、バックプレーン・コネクタがデータ記憶システムのバックプレーンと係合している場合、第1ポートと第2ポート間で移動するデータをバッファするように構成される。したがって、制御回路は、メモリを使用することにより、データを操作またはフォーマット化することができる(例えば、シリアルからパラレルに変換したり、データをより大きいデータ・タイプまたはブロックに整列したりする)。
1つの配置構成では、第2ポートは、(i)制御回路と処理回路の間で、データ記憶システムに記憶するデータを搬送するデータ経路の部分を形成するデータ経路コンダクタのセット、および(ii)制御回路と処理回路の間で、データの記憶を制御するためのメッセージを搬送するメッセージ経路の部分を形成するメッセージ経路コンダクタのセットを含む。この配置構成では、データとメッセージとで別個の経路があり、したがって、より高速で組織化が優れたスループットを提供する。
1つの配置構成では、データ経路コンダクタのセットは、制御回路と処理回路の間でファイバ・チャネル・バスの部分を形成する。この配置構成により、制御回路はファイバ・
チャネル経路を通して処理回路と通信することができる。処理回路が既に装備されてファイバ・チャネル通信を処理している(例えば、処理回
路が、ファイバ・チャネル信号を介して従来のNICを通して外部サーバと通信するよう設計された従来のディレクタを含むことができる)場合、さらにアプリケーション・サーバとして作動することができるNICと処理回路が通信するために、処理回路に改修を加える必要がない。
1つの配置構成では、制御回路は、(i)第1ポートを通して外部ネットワークとインターネット・プロトコル通信を交換し、(ii)第2ポートおよびデータ記憶システムのバックプレーンを通してデータ記憶システムの処理回路とブロックベースの通信を交換するように構成される。この配置構成では、制御回路はマップを含むことが好ましく、これはファイル名をデータ記憶システムのデータ記憶装置のセットのブロックにマッピングする。また、制御回路は、さらに、外部ネットワークからファイルベースのインターネット・プロトコル・データ・アクセス要求を受信し、ファイルベースのインターネット・プロトコル・データ・アクセス要求およびマップに基づいてデータ記憶システム内のデータのブロックにアクセスするように構成することが好ましい。したがって、データ記憶システムは、IPネットワーク(例えば、インターネット)に直接接続することができる。
1つの配置構成では、制御回路は、多重プロセッサ・システムのプロセッサとして作動するように構成され、これは複数のアプリケーション・レベルのオペレーションを同時に実行する。制御回路は、ハードウェア回路を含み、これはアプリケーション・レベルの各オペレーションに、多重プロセッサ・システムが同時に実行する複数のアプリケーション・レベルのオペレーションの中でそのアプリケーション・レベルのオペレーションを識別する番号を関連付けることが好ましい。したがって、データ記憶システムは、多重処理の方法で作動して、アプリケーション・レベルのオペレーションを実行する(例えば、多重処理、データベース・エンジン、多重処理ウェブサイトなどとして作動する)ように構成された複数のプロセッサ(例えば、複数のNIC)を含むことができる。
本発明の1つの配置構成では、ネットワーク・データ記憶システムで使用され、1つまたは複数の外部データ交換装置およびシステム内に常駐するI/Oコントローラの間のデータ通信を容易にするネットワーク・アダプタを設ける。データ記憶システムは、通常、ネットワーク・アダプタを介してデータ交換装置とデータを交換する大容量記憶装置(例えば、大容量ディスク記憶装置)のセットで構成される。ネットワーク・アダプタは、通常、システム内の信号転送媒体/システム(例えば、電気バックプレーン)に物理的に結合される1つまたは複数のインタフェースを含む。バックプレーンはコントローラに結合され、インタフェースがバックプレーンに結合されている場合に、コントローラとネットワーク・アダプタ間のデータ通信を可能にするように構成される。ネットワーク・アダプタは、データ交換装置に1つまたは複数のサーバ挙動を提供することができる。
ネットワーク・アダプタの1つの実施形態では、ネットワーク・アダプタは、データ記憶システムのバックプレーン内にある回路カード・スロットに挿入し、それで受けるように構成された電気回路カードである。回路カードをスロットに挿入し、それで受けると、カードはデータ記憶システムのバックプレーンに電気的および機械的に結合され、したがって、カードの1つまたは複数のインタフェースがバックプレーンに電気的に結合される。
さらに、ネットワーク・アダプタは、少なくとも部分的にはアダプタ・カードが挿入され、常駐するバックプレーン回路カードスロットの位置を識別するスロット識別番号に基づき、第1ネットワーク・レイヤ・アドレスが割り当てられる。第1ネットワーク・レイヤ・アドレスは、データ記憶システムの構成中に第2ネットワーク・レイヤ・アドレスに
変更することができる。
ネットワーク・アダプタの別の実施形態では、ネットワーク・アダプタの1つまたは複数のインタフェースが少なくとも1つのインタフェースを有し、これを通して命令がネットワーク・アダプタに発行されて、ネットワーク・アダプタを第1(オペレーション)モードからオペレーションの第2(診断)モードへと変
更させる。例えば、ネットワーク・アダプタの1つまたは複数のインタフェースは、通常、第1インタフェースおよび第2インタフェースを含む。第1インタフェースにより、アダプタ・カードの外部にあるプロセッサ、コントローラ、およびデータ交換装置は、管理または診断試験関連の命令をバックプレーンを介してアダプタ・カードに発行することができる。任意選択で、外部プロセッサはデータ記憶システムにとっても外部であり、それ自体が、例えば、ネットワークを介してアダプタに結合され、第2ネットワーク・レイヤ・アドレスを使用してネットワークを介してアダプタ・カードにアクセスする。第2インタフェースにより、コントローラはバックプレーンを介して管理または診断命令をアダプタ・カードに発行することができる。ネットワーク・アダプタの1つまたは複数のインタフェースは、さらに、アダプタ・カードに含まれる非揮発性メモリ(例えば、1つまたは複数の電気的消去書込み可能な読出し専用メモリ(EEPROM)デバイス)からバックプレーンを介して構成関連の情報(例えば、ネットワーク・アダプタの構成に関連する情報)を検索できるようにする第3インタフェースを含む。
上述したような本発明の特徴は、データ記憶システム、装置および方法、さらにマサチューセッツ州ホプキントンのEMC Corporationが製造するような他のコンピュータ関連のコンポーネントに使用することができる。
本発明の以上およびその他の目的、特徴および利点は、同様の参照文字が異なる図を通して同じ部品を指す添付の図面で示したような、本発明の好ましい実施形態に関する以下のさらに詳細な説明から明らかになる。図は一律の縮尺ではなく、本発明の原理の図示を強調している。
本発明は、(i)ファイルベースの通信とブロックベースの通信間のインタフェース、および(ii)アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード(NIC)を使用するデータ記憶システムの技術を指向する。ファイルベースの通信をブロックベースの通信に、およびその逆に変換するための外部サーバは必要でない。何故なら、NICが、ファイルベースの通信とブロックベースの通信間のインタフェースとして作動することができるからである。また、NICがアプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるので、データ記憶システムは、アプリケーション・レベルのオペレーションを実行する(例えば、データベース照会を実行するデータベース・エンジンとして作動する)ことができる。したがって、このようなNICを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する(例えば、図1の従来通りのデータ記憶システム構成20で必要とされるような)1つまたは複数の外部サーバが必要ではない。
図2は、本発明で使用するのに適したデータ記憶システム50を示す。データ記憶システム50は、接続媒体52を介して外部ネットワーク26(例えば、図1参照)に直接接続することができる。データ記憶システム50は、NIC54−A,・・・,54−Nのセット(まとめてNIC54)、フロントエンド回路56、キャッシュ58、バックエンド回路60、およびブロック64内にデータを記憶することができる記憶装置62のセットを含む。データ記憶システム50は、さらに、NIC54をフロントエンド回路56に
接続する接続部66のセット、およびバックエンド回路60を記憶装置62のセットに接続する別の接続部68のセットを含む。また、データ記憶システム50はバス70を含み、これはフロントエンド回路56とキャッシュ58とバックエンド回路60を相互に接続する。
各NIC54は、特に制御回路72を含み、これはファイルベースの通信とブロックベースの通信間のインタフェースとして作動し、さらにアプリケーション・レベルのプログラムを実行するためのアプリケーション・サーバ・リソースを提供することができる。1つの配置構成では、各NIC54の制御回路72は、複数のアプリケーション・レベルのオペレーションを同時に実行することができ
る多重プロセッサ・システム74のプロセッサとして作動するように構成される。
従来通りのデータ記憶システム(例えば、図1のデータ記憶システム22)とは異なり、図2のデータ記憶システム50は、データ記憶システム50のフロントエンドとして作動する外部サーバを必要としない。何故なら、各NIC54の制御回路72が、ファイルベースの通信とブロックベースの通信間のインタフェース(例えば、NFSサーバ)として作動することができるからである。したがって、データ記憶システム50に1つまたは複数の外部サーバを提供する費用を回避することができる。
また、データ記憶システム50のフロントエンドとして作動する外部サーバがないので、ネットワーク26とデータ記憶システム50との間にデータが通過しなければならない余分なホップまたはステージを配置しなくてすむ。ホップが減少すると、ネットワーク26と記憶装置62のセット間で移動するデータの待ち時間が減少する。
また、NIC54のセットは信頼性を向上させる。例えば、NIC54は、1つのNIC54が故障すると、別のNIC54が介入して、故障したNIC54が実行すべき作業を処理するように構成することができる。別の例として、データ記憶システム50は、冗長電源などの故障許容ハードウェアを含むことができ、NIC54は、このようなハードウェア(例えば、冗長電源で電力を供給され、電源故障に対して保護されるなどしたハードウェア)を流用することができる。
さらに、各NIC54の制御回路72の動作を調整することができる。例えば、NIC54の制御回路72が多重プロセッサ・システム74を形成することができる。したがって、データ記憶システム50は、ロード・バランシングや故障許容などの多重処理サーバの特徴を提供することができる。次に、本発明のさらなる詳細を、図3に関して提供する。
図3は、図2のNIC54のうち1つの斜視図である。図示のように、NIC54は、回路基板材料80のセクション(例えば、導電性および非導電性材料の層)、および回路基板材料80のセクションに(例えば、はんだ、圧入ピンなどを使用して)装着される回路基板コンポーネント82のセット(例えば、集積回路、抵抗器、コンデンサなど)を有する制御回路72を含む。NIC54は、さらに、外部ネットワーク26に接続するポート84、およびフロントエンド回路56(図2も参照)に接続するポート86を含む。ポート84は、図2の接続媒体52と係合するコネクタ・インタフェース88(例えば、ギガビット・イーサネット通信のコネクタ)を含む。同様に、ポート86は、図2の接続部66のセットと係合するコネクタ・インタフェース90(例えば、バックプレーン・コネクタ)を含む。次に、本発明のさらなる詳細を、図4に関して提供する。
図4は、図2のデータ記憶システム50の特定部分のブロック図100である。図示のように、データ記憶システム50はコンピュータ・キャビネット102、バックプレーン
104、処理回路106、電源108、ファン・アセンブリ110、および入出力(I/O)装置112(例えば、コンソール)、I/O装置をバックプレーン104に接続するI/Oコネクタ114、および前述したNIC54を含む。
バックプレーン104は、図2の接続部66およびバス70のセットを含む。NIC54は、バックプレーン104に直接取り付けられる。特に、図4に示すように、NIC54のポート86はバックプレーン104に(例えば、バックプレーン104の対応するコネクタに)物理的および電気的に接続される。
処理回路106は、フロントエンド回路56およびバックエンド回路60を形成するディレクタ・ボード116、およびキャッシュ58(図2も参照)を形成するメモリ・ボード118のセットを含む。NIC54と同様の方法で、ディレ
クタ・ボード116およびメモリ・ボード118はバックプレーン104にも物理的および電気的に接続される。ディレクタ・ボード116は、データ記憶システム50(図2も参照)のフロントエンド回路56およびバックエンド回路60を形成する。メモリ・ボード118はキャッシュ58(図2を参照)を形成する。
次に、データ記憶システム50に記憶したデータへの経路について説明する。フロントエンド回路56を形成するディレクタ・ボード116は、バックプレーン104を通してNIC54からデータを獲得し、それをバックプレーン104を通してメモリ・ボード118に提供することにより、データを記憶する。次に、バックエンド回路60を形成するディレクタ・ボード116は、バックプレーン104を通してメモリ・ボード118からデータを獲得し、それをデータ記憶装置62に提供することにより、データ記憶プロセスを完成する。
次に、データ記憶システム50によって検索されるデータの経路について説明する。バックエンド回路60を形成するディレクタ・ボード116が、データ記憶装置62からデータを獲得し、バックプレーン104を通してそれをメモリ・ボード118に提供することにより、データを検索する。次に、フロントエンド回路56を形成するディレクタ・ボード116が、バックプレーン104を通してメモリ・ボード118からデータを獲得し、バックプレーン104を通してそれをNIC54に提供することにより、データ検索プロセスを完成する。
ディレクタ・ボード116は、従来通りのデータ記憶システムでの使用にも適した従来通りのディレクタ・ボードでよいことを理解されたい。例えば、図1の従来通りのデータ記憶システム22が、ファイバ・チャネル信号を使用して外部サーバ24と通信するディレクタ・ボードを使用するとする。データ記憶システム22の従来通りのディレクタ・ボードも、図2から図4のデータ記憶システム50に使用することができる。そのため、NIC54のポート86は、従来通りのディレクタ・ボードと同じ信号フォーマット(例えば、ファイバ・チャネル信号)を使用するように構成することができ、したがって、ディレクタ・ボードを改修する必要がなくなる。したがって、本発明は、既存のデータ記憶システムの機器を流用し、既存のディレクタ・ボードの改修に伴う追加の時間および費用を最小限に抑えることができる。
図4に示すように、電源108は、バックプレーン104を通してディレクタ・ボード116のセット、メモリ・ボード118のセットおよびNIC54に電力を供給する。電源108は、さらに、ファン・アセンブリ110にも電力を供給する(単純化のため、ファン・アセンブリへの電力供給接続部は図4には図示せず)。その結果、ファン・アセンブリ110は、コンピュータ・キャビネット102を通って流れて、ディレクタ・ボード116のセット、メモリ・ボード118のセットおよびNIC54が発生する熱を除去す
る空気の流れ118を提供する。
I/O装置112は、NIC54およびディレクタ・ボード116など、データ記憶システム50の様々な装置へのアクセスを提供する。したがって、ユーザ(例えば、現場の技術者)は、外部ネットワーク26上の外部装置(例えば、クライアント)を通してデータ記憶システム50にアクセスする代わりに、データ記憶システム50の動作を直接モニタおよび/または制御することができる。
アプリケーション・サーバとして作動することができるNIC54は、物理的にバックプレーン104に接続され、データ記憶システムの処理回路106と同じコンピュータ・キャビネット102内にあるので、アプリケーション・サーバ機構は、基本的に、データ記憶システムの処理回路106と同じリソースを流用する。例えば、NIC54(すなわちアプリケーション・サーバ)は、同じ電源108および同じファン・アセンブリ110を使用する。また、データ記憶システムの残りのコンポーネントと同じキャビネット102に囲まれて、物理的に保護され、同じフロア・スペース上にある。したがって、データ記憶システム50を使用して、外部サーバに伴う追加のリソース(例えば、フロア・スペース、費
用など)を回避することができる。次に、本発明のさらなる詳細を、図5に関連して提供する。
図5は、図2から図4のNIC54の特定部分のブロック図120である。図示のように、制御回路72はプロセッサ122、メモリ124、支援論理126、ポート84につながるトランシーバ128、およびポート86につながる別のトランシーバ130を含む。メモリ124はオペレーティング・システム132、テーブル(またはマップ)134のセット、バッファされたデータ136およびアプリケーション138のセットを記憶する。支援論理126は、オペレーション番号を生成するハードウェア140を含む。支援論理126は、さらに、他のNIC54の支援論理126と直接通信する接続部142を含むことが好ましい。
テーブル134のセットは、ディスク・ドライブのブロック位置にファイル(例えば、UNIXファイル)をマッピングするために従来通りの外部サーバが使用するものと同様のマッピング情報を含む。特に、テーブル134のセットは、記憶装置62のセット(図2参照)のブロック64にファイルをマッピングするためのマッピング情報を含む。したがって、NIC54は、ディスク・ドライブとのファイルベースの通信によって識別されたファイル、およびブロックベースの通信によって識別されたセクタを相互参照する機能を有する。
例示のみにより、ポート84は、制御回路72と外部ネットワーク26間でファイルベースの通信を実行するためのギガビット・イーサネット・コネクタを含む。また、例示により、ポート86は、バックプレーン104(図4および図2も参照)を通して制御回路72と(フロントエンド回路56を形成する)ディレクタ・ボード116間でデータ(例えば、ファイバ・チャネル通信)およびメッセージ(例えば、制御命令)を搬送するバックプレーン・コネクタを含む。
1つの配置構成では、ポート86は、(i)データを搬送するデータ経路の部分、および(ii)メッセージを搬送する別個のメッセージ経路の部分を画定する。この配置構成では、ポート86を通る通信は、データおよびメッセージを同じ経路で搬送する別の配置構成より高速で(すなわち高いスループットで)しかも優れた編成になる。
NIC54が作動中の場合、プロセッサ122は、オペレーティング・システム132
に従って作動し、(i)ファイルベースとブロックベースの通信両方を処理し、(ii)アプリケーション・レベルのプログラムを実行するためのアプリケーション・サーバ・リソースを提供する。特に、プロセッサ122は、ポート84およびトランシーバ128を通る外部ネットワーク26からのファイルベースの通信(例えば、ファイル・アクセス命令)を処理し、ポート86およびトランシーバ130を通るデータ記憶システムの処理回路106からのブロックベースの通信(例えば、ブロックのロードおよび記憶命令)を処理する。ファイルベースの通信とブロックベースの通信間でデータを変換するため、プロセッサ122は、データ136をメモリ124内に一時的にバッファする。また、プロセッサ122はアプリケーション138(例えば、データベース・エンジン)を実行し、したがってサーバ・レベルのオペレーション(例えば、データベース照会)を実行する。
図2の多重プロセッサ・システム74を形成するため、NIC54の制御回路72の動作を他のプロセッサ(例えば、他のNIC54の制御回路72)の動作と調整できることを理解されたい。この多重処理システムが調整された方法で複数のオペレーションを同時に実行できるようにするため、各NIC54の制御回路72の支援論理126が、多重処理システムが実行する各オペレーションにオペレーション番号を関連付ける。特に、オペレーション番号ハードウェア140が他のNIC54の他の同様のハードウェア140と通信して、多重処理システムによって実行される各オペレーションに識別オペレーション番号(すなわち任意の時刻でデータ記憶システム50に一意の番号)を割り当てる。したがって、多重処理システムは、複数のオペレーションを同時に追跡して調整し(例えば、オペレーションを1つのプロセッサから別のプロセッサへ転送し、多重処理システム全体で一意のオペレーション番号を使用して、そのオペレーションを遠隔追跡する)、オペレーションの衝突(例えば、ロック、テスト・アンド・セット、およびセマフォ発行)を回避することができる。次に、本発明のさらなる詳細を、図6に関連して提供する。
図6は、図2から図5のデータ記憶システム50のユーザが実行する手順150の流れ図を示す。ステップ152では、ユーザは物理的にNIC54のポート86をデータ記憶システムのバックプレーン104(図4も参照)に接続する。1つの配置構成では、ポート86のバックプレーン・コネクタがバックプレーン104の対応するコネクタと係合、すなわち係合するよう、ユーザがNIC54をカード・ケージのスロットに挿入する。
ステップ154では、ユーザがNIC54のポート84を外部ネットワーク26(図2も参照)に結合する。1つの配置構成では、ユーザが、外部ネットワーク26につながるネットワーク・ケーブルをNIC54のポート84(図4も参照)に差し込む。
ステップ156では、ユーザがNIC54の制御回路72を構成して、(i)ポート84を通して外部ネットワーク26からファイルベースの通信を受信し、受信したファイルベースの通信に応答して、ポート86およびバックプレーン104を通しデータ記憶システムの処理回路106にブロックベースの通信を提供し、(ii)ポート86およびバックプレーン104を通して処理回路106からブロックベースの通信を受信し、受信したブロックベースの通信に応答して、ポート84を通し外部ネットワーク26にファイルベースの通信を提供する。また、ユーザは、制御回路72を構成して、アプリケーション・サーバ・リソースを提供し、アプリケーション・レベルのオペレーション(例えば、図5のアプリケーション138)を実行するアプリケーション・サーバとして作動する。
ユーザは、多重プロセッサ・システムとして作動するようNIC54を構成するため、複数のNIC54で手順150を反復できることを理解されたい。そのため、ユーザがステップ162でNIC54をバックプレーン104に物理的に接続する場合、ユーザは、個々の接続部142(図5参照)を通して、各NIC54の制御回路72を相互に接続することが好ましい。1つの配置構成では、各NIC54の接続部142が、そのNIC5
4のポート86のバックプレーン・コネクタにある。次に、本発明のさらなる詳細を、図7に関連して提供する。
図7は、各NIC54のオペレーション番号ハードウェア140が、バックプレーン104内の接続部162を通して相互に接続する方法を示す。各NIC54のオペレーション番号ハードウェア140は、この接続部162を通してオペレーションを調整する。特に、各オペレーション番号ハードウェア140は、そのNIC54の支援論理126内にあるオペレーション番号の個々のテーブル164にアクセスする。各テーブル164は、使用済みビット・フィールド168を有する項目166およびオペレーション番号フィールド170の同一セットを含む。各NIC54の支援論理126は、そのNIC54のプロセッサ122によって実行されるオペレーションにオペレーション番号を顕著な方法で関連させるため、その個々のテーブル164にアクセスする(すなわち任意の時刻で一意の番号)。1つの配置構成では、オペレーション番号ハードウェア140はポインタ172を使用し、これはテーブル164は1テーブル164ずつ実行して、使用可能なオペレーション番号を検出する。
各NIC54のハードウェア140は、例としてのみ識別番号のテーブル164を循環するものとして上述されていることを理解されたい。トークンまたはアービトレーション・キーをNIC54間で渡したり、番号の各リストを実行したり、カウンタを実行させたりなど、識別番号または一意の番号を生成する他の方式も、使用するのに適している。1つの配置構成では、NIC54のオペレーション番号ハードウェア140が、データ記憶システム50上で識別番号を作成するため、トークン・パス・オペレーションを実行する。このようなトークン・パスは、速度および信頼性の目的のため、ハードウェア内で排他的に実現されることが好ましい。1つの配置構成では、NIC54のオペレーション番号ハードウェア140がリング構成で接続し、トークン・パスがリング構成上で発生する。別の配置構成では、NIC54のオペレーション番号ハードウェア140がバス構成で接続され、トークン・パスがバス構成上で発生する。このような改修および強化は、本発明の様々な実施形態の範囲内であるものとする。
図8は、本発明の代替実施形態のブロック図である。本発明のこの代替実施形態では、ネットワーク26とデータ記憶システム50のコンポーネント間のインタフェース装置としてネットワーク・アダプタを設ける。ネットワーク・アダプタは、通常、システム内の信号転送媒体/システム(例えば、電気バックプレーン)に物理的に結合される1つまたは複数のインタフェースを含む。バックプレーンはコントローラに結合され、インタフェースがバックプレーンに接続された場合にコントローラとネットワーク・アダプタ間のデータ通信を可能にするように構成される。ネットワーク・アダプタは、データ交換装置に1つまたは複数のサーバ挙動を提供することができる。
図8に示すように、複数のNIC54の代わりとなるのは、複数のネットワーク・アダプタ200である。この実施形態では、フロントエンド回路56が、ネットワーク・アダプタ200をバス・システム206に接続するネットワークI/Oコントローラ202である。代替実施形態は、さらに、これもバス・システム206に接続された共用キャッシュ・メモリ・リソース204(共用キャッシュ)を含む。この実施形態のバックエンド回路60は、記憶装置202に接続されたディスクI/Oコントローラ208およびディスク・アダプタ210である。ディスクI/Oコントローラ208はバス・システム206にも接続される。
システム内にある同様のタイプの複数のコンポーネントにより、故障許容構成を実現することができる。冗長機能コンポーネントおよびメカニズムは、特定の1つのコンポーネントが故障したと検出された場合、その故障が記憶システムの
故障を引き起こさないことを保証する。故障したコンポーネントの動作は、システム内にある同タイプの1つまたは複数のコンポーネントが引き受ける。
図9は、ネットワーク・アダプタ200をネットワークI/Oコントローラ202に接続するネットワーク・アダプタ・バックプレーン218のブロック図である。各ネットワーク・アダプタ200は、データ記憶システム50のバックプレーン218内の回路カード・スロット216に挿入し、これで受けるように構成された電気回路カード214である。回路カード214をスロット216に挿入し、それで受けると、カード214はデータ記憶システム50のバックプレーン218に電気的および機械的に結合され、したがってカード214の1つまたは複数のインタフェースがバックプレーン218に電気的に結合される。ネットワークI/Oコントローラ220もバックプレーン218に電気的および機械的に結合される。ネットワーク・アダプタ構成のさらなる代替実施形態では、ネットワーク・アダプタがコネクタ502を通して、記憶システム・コントローラとして作動する外部プロセッサ500に接続される。
各ネットワーク・アダプタ200には、少なくとも部分的には、アダプタ・カードが挿入されて存在するバックプレーンの回路カード・スロットの位置を識別するスロット識別番号に基づき、第1ネットワーク・レイヤ・アドレスが割り当てられる。第1ネットワーク・レイヤ・アドレスは、データ記憶システム50の構成中に第2ネットワーク・レイヤ・アドレスに変更することができる。
外部プロセッサの構成では、ネットワーク・アダプタには、外部プロセッサ500との通信に使用するIPアドレスが割り当てられる。このIPアドレスは、(デフォルト・パラメータで最初に予め決定された、または外部プロセッサ500を介してユーザが改修した)ネットワーク・レイヤ・アドレスのオフセットに、アダプタ・カード214が挿入されたバックプレーン・スロット216に割り当てられたバックプレーン接続スロット識別番号(またはそのビットの所定の番号)によって指定された値を追加することによって決定される。次に、この識別番号を使用して、ネットワーク・アダプタ200が外部プロセッサ500と通信するのを可能にするIPアドレスを生成する。デフォルト・パラメータのデフォルトIPアドレス・オフセットは、プログラム504のユーザの所望に従い、プログラム504を使用して第2および/またはその後のオフセット値に変更することができる。これは、初期ネットワーク・レイヤ・アドレス・オフセットおよびスロット位置識別番号に基づいて、ネットワーク・アダプタ200に割り当てられた初期ネットワーク・レイヤ・アドレスを別のネットワーク・レイヤ・アドレスに変更した結果を有する。
図10は、ネットワーク・アダプタ200の回路300のブロック図である。回路300は、複数の外部I/Oポート/インタフェースおよび関連する通信関連の回路(まとめて数字308で指す)、中央処理回路330、プログラム可能論理デバイス(PLD)302、PLD304、および電気的消去書込み可能な読出し専用メモリ(EEPROM)306を含む制御およびサーバ処理回路300を含む。
外部I/Oポート/インタフェースおよび関連する回路308は、複数の別個の外部ポート/インタフェース310、312、314、316、318、320、322、324、326および328を含む。インタフェース310、312、314、316、318、320、322、324および328はそれぞれ、ネットワーク・アダプタ200がネットワーク26とデータを交換し、通信できるようにする個々のネットワーク通信回路(図示せず)を含む。
処理回路330は、2つの別個の中央処理装置セクションまたは「スライス」332および334を含む多重プロセッサ・システムである。セクション332はマイクロプロセ
ッサ336、およびコンピュータで読み取り可能なランダム・アクセスおよび読み出し専用メモリ340を有する。セクション334はマイクロプロセッサ338、およびコンピュータで読み取り可能なランダム・アクセスおよび読み出し専用メモリ342を有する。
メモリ340および342はそれぞれ、ネットワーク・アダプタ200が実行するよう本明細書で説明されている本発明および他の機能、方法、技術、およびオペレーションに関連し、それを実行するためのソフトウェア・プログラムおよびデータ構造を記憶する。マイクロプロセッサ336および338、および回路300に含まれる他の回路は、ネットワーク・アダプタ200が実行するよう本明細書で説明されている本発明および他の機能、方法、技術およびオペレーションを容易にするよう、ソフトウェア・プログラムを実行し、これらのデータ構造を操作するように構成される。例えば、本発明のこの実施形態によると、複数のコンピュータ・プログラムのプロセスおよび関連するデータ構造344、346、348および350がメモリ340および342に常駐する。以下でさらに詳細に説明するよう、プロセッサ336および338および処理セクション332および334にある他の回路がこれらのプロセスおよび関連するデータ構図344、346、348、350を実行し、操作すると、ネットワーク・アダプタ200がクライアント・コンピュータに1つまたは複数のサーバ挙動を提供することができるようになる。回路330は2つの別個の論理メモリ340および342を有するものとして考えることができるが、プロセッサ336および338を適切にプログラムして従来通りの技術を使用し、メモリ・クラッシュの発生を防止すれば、プロセッサ336および338はネットワーク・アダプタ200内のメモリ・リソースを共用できることを理解されたい。
システム50およびネットワーク・アダプタ200が初期の電源投入またはリセット・ブート手順を実行した後、ネットワーク・アダプタ200は最初にオペレーションのデフォルト・モードに入ることができる。オペレーションのこのデフォルト・モードでは、ネットワーク・アダプタ200が所定のデフォルト構成パラメータに従って作動する。これらのパラメータは、例えば、ネットワーク・アダプタ200に割り当てられる特定の個々のネットワーク・レイヤ・アドレス(例えば、IPアドレス)を決定する際に使用する初期ネットワーク・レイヤ・アドレス・オフセット(例えば、10.1.1.0)、ネットワーク・アダプタ200とクライアント・ノード間でデータおよび命令を交換するネットワーク・アダプタ200モードの初期オペレーション・モードを指定する。これらのデフォルト・パラメータは回路300に予めプログラムしてよい。
また、ネットワーク・アダプタ200が通常のオペレーション・モードにある間、ネットワークI/Oコントローラ202は、回路300に命令を発行する機能を有し、これは回路300で受信すると、回路300がネットワーク・アダプタ200の構成に関する情報を非揮発性EEPROM306から検索する。このような構成に関する情報は、例えば、カード214の製造業者がカード214に割り当てた部品番号、カード214に割り当てられたシリアル番号、カード214に組み込まれたハードウェア/ソフトウェアの改訂レベル、カード214に関連する(例えば、遭遇した以前の問題、またはカード214に施された修理を説明して技術者が書き込む)テキスト・コメントなどを指定することができる。この情報は、カード214の将来の処理、診断、修理およびトラブルシューティングが容易になるよう、カード214の製造、修理および/またはトラブルシューティング中にEEPROM306に書き込まれる。EEPROM306から検索した情報は、回路300によってコントローラ202に転送される。ネットワークI/Oコントローラ202は、EEPROM306から検索した情報を受信した後、プログラム504による使用および/または表示のために、情報をプロセッサ500に供給する。
プログラム504によって、人間のユーザがネットワーク・アダプタ200の回路300に対して、ネットワーク・アダプタ200の診断試験を開始する命令を発行することも
できる。この命令は、回路300によって受信されると、ネットワーク・アダプタ200を、ネットワーク・アダプタ200またはシステム50の初期電源投入またはリセット後にネットワーク・アダプタ200が入る最初の通常オペレーション・モードから、オペレーションの診断試験モードに変化させる。このオペレーション診断モードでは、ネットワーク・アダプタ200が1つまたは複数の診断ルーチンまたは手順を実行する。これらの手順は、ネットワーク・アダプタ200自体、制御回路300、処理回路330、処理セクション332および334、ポート308、回路カードとバックプレーン218とのインタフェースおよび/またはそのコンポーネントの1つまたは複数の従来通りの組込み自己試験(BIST)および/または他のタイプの診断手順を含む。1つまたは複数のBISTおよび/またはネットワーク・アダプタ200が実行する他の診断ルーチンのタイプおよび/または性質は、人間のユーザがプログラム504を使用して選択することができる。ユーザはプログラム504を使用して、1つまたは複数のBISTおよび/またはアダプタによる他の診断試験の実行をモニタし、ネットワーク・アダプタ200が1つまたは複数のBISTおよび/またはユーザが選択した他の診断試験を完了した後、回路308は1つまたは複数のBISTおよび/または他の診断試験の結果をプログラム504に報告し、プログラム504はこれらの結果をユーザが理解可能なフォームで表示させる。また、ネットワーク・アダプタ200をプログラムして、ネットワーク・アダプタ200の電源投入時に1つまたは複数の電源投入時自己試験診断ルーチンまたは手順を実行することができる。
本発明のこの実施形態によると、プロセス344および348は、Data Access in Real Time(DART)、UNIXまたはLinux OSが生成するようなコンピュータ・オペレーティング・システム(OS)プロセスを含むことができる。プロセッサ346および350は、クライアント・ノードにサーバ挙動を提供するOSプロセス344および348によって提供されるサービス(例えば、システム・コール、ライブラリ機能など)を使用するプロセスを備えることができる。プログラムのプロセス346および350は、例えば、ファイル指向の通信を対応するブロック指向の通信に、およびその逆に変換するように構成することができ、それに加えてプロセス346および350は、1つまたは複数のアプリケーション・レベルのプログラム・プロセス(例えば、クライアント・ノードによるデータベース照会および関連機能の使用を容易にする)を含む。
本発明の代替実施形態では、システム50内の他のネットワーク・アダプタ(以下「被制御アダプタ」と呼ぶ)のオペレーションをモニタし、管理して制御するよう、ネットワーク・アダプタの1つ(以下、「制御アダプタ」と呼ぶ)を構成することができる。これを容易にするため、ネットワーク・アダプタ200はそれぞれ、各ネットワーク・アダプタ200の制御および処理回路300が相互にデータおよび命令を交換するのを可能にするイーサネット通信リンクを介して、相互に結合される。制御アダプタの回路300は、これらのイーサネット通信リンクを介して被制御アダプタに適切な命令(例えば、命令に基づく簡易ネットワーク管理プロトコル(SNMP))を発行することにより、被制御アダプタのオペレーションを制御するように構成される。被制御アダプタそれぞれの回路300は、イーサネット通信リンクを介してそれに発行された命令を実行するように構成され、被制御アダプタの個々のオペレーションの状態を示す個々のメッセージ(例えば、SNMPベースのメッセージ)を制御アダプタの回路30に転送するように構成してもよい。制御アダプタが、このモニタ活動の結果として被制御アダプタの1つが故障したと判断した場合、制御アダプタは、システム50内でフェイル・オーバ障害処理プロセスを開始させ、故障した被制御アダプタが実行するはずの処理を、正常に作動している被制御アダプタが代わりに実行することを可能にする。
上述したように、本発明は、(i)ファイルベースの通信とブロックベースの通信間の
インタフェース、および(ii)アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるNIC54を使用するデータ記憶システム技術を指向する。ファイルベースの通信をブロックベースの通信に、およびその逆に変換する外部サーバは必要でない。NIC54が、ファイルベースの通信とブロックベースの通信間のインタフェースとして動作することができるからである。また、データ記憶システムが、アプリケーション・レベルのオペレーションを実行する(例えば、データベース照会を実行するデータベース・エンジンとして作動する)ことができる。NIC54が、アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるからである。したがって、このようなNICを使用するデータ記憶システムでは、データ記憶システムのフロントエンドとして作動する(例えば、図1の従来通りのデータ記憶システム構成20で必要とされるような)1つまたは複数の外部サーバが必要ない。本発明の機構は、上述したように、マサチューセッツ州ホプキントンのEMC Corporationのもののようなコンピュータ・システム、コンポーネントおよび手順に使用することができる。
本発明を好ましい実施形態に関連して特に図示し、説明してきたが、添付請求の範囲で規定されるような本発明の精神および範囲から逸脱することなく、形状および細部を様々に変更できることが当業者には理解される。
例えば、NIC54のポート84は、例としてのみ、ギガビット・イーサネット・ネットワーク(図5の外部ネットワーク26参照)に接続されるものとして上述されていることを理解されたい。トークン・リング、ATMなど、他のタイプのネットワークも外部ネットワーク26としての使用に適している。
また、NICのポート86は、例としてのみ、ファイバ・チャネル通信を扱うものとして説明したが、ESCON、FICON、Block Mux、SCSIなど、他のブロックベースの通信も使用に適していることを理解されたい。さらに、NIC54と処理回路106(図4参照)間のインタフェースは、周辺コンポーネント相互接続(PCI)バス、業界標準アーキテクチャ(ISA)バスなど、従来通りのバス・アーキテクチャを使用することができる。
さらに、データ記憶システム50は例としてのみ、複数のNIC54−1,・・・,54−N(Nはプラスの整数)を含むよう説明されていることを理解されたい。データ記憶システム50は1つのNICを含んでもよいことを理解されたい。1つのNICの構成でも、外部サーバの必要性を低下させる。
また、NIC54は様々なアプリケーション・レベルのプログラムおよび/または複数のアプリケーション・レベルのプログラムを同時に実行できることを理解されたい。したがって、データ記憶システム50は、1つまたは複数のデータベースのデータベース・エンジンとして作動したり、ウェブ・サーバとして作動したり、NFSファイル・サーバとして作動したりなど、様々なサーバ・レベルの特徴を提供することができる。
さらに、データ記憶システム50のトポロジが、例としてのみ、フロントエンド回路56を接続するバス70、キャッシュ58およびバックエンド回路60を相互に接続するバス70を含むことを理解されたい。フロントエンド回路56、キャッシュ58およびバックエンド回路60を形成するディレクタ・ボードとメモリ・ボード間のポイント間接続のマトリクスなど、他のトポロジも適切である。
また、記憶装置62は例としてのみ、ディスク・ドライブとして上述したことを理解されたい。テープ・ドライブ、CD−ROMドライブ、半導体メモリなど、他のタイプの記
憶装置も適している。
以上詳細に説明したように、本発明によれば、従来の構成で必要とされるような外部フロントエンド・サーバを必要としない、(i)ファイルベースの通信とブロックベースの通信間のインタフェース、および(ii)アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動することができるネットワーク・インタフェース・カード(NIC)を使用する、改善されたネットワーク・インタフェースを有するデータ記憶システムを供給できるという効果がある。
ブロックベースの通信を外部サーバに提供するネットワーク・インタフェース・カードを含む従来通りのデータ記憶システムのブロック図である。 本発明の実施形態により、(i)ファイルベースの通信を外部ネットワークに提供し、(ii)アプリケーション・サーバとして作動することができるネットワーク・インタフェース・カードを含むデータ記憶システムのブロック図である。 図2のデータ記憶システムのネットワーク・インタフェース・カードの斜視図である。 図2のデータ記憶システムの特定部分のブロック図である。 図3のネットワーク・インタフェース・カードの特定部分のブロック図である。 図2のデータ記憶システムのユーザが実行する手順の流れ図である。 多重処理システムを形成するよう配置構成された図2のデータ記憶装置の複数のネットワーク・インタフェース・カードのブロック図である。 ネットワーク・アダプタを含むデータ記憶システムの代替実施形態である。 図8のネットワーク・アダプタをネットワークI/Oコントローラに接続するバックプレーン配置構成のブロック図である。 図8のネットワーク・アダプタの制御回路のブロック図である。
符号の説明
50・・・ データ記憶システム、52・・・ 接続媒体、26・・・ 外部ネットワー
ク、54・・・ NIC、56・・・ フロントエンド回路、58・・・ キャッシュ、6
0・・・ バックエンド回路、64・・・ ブロック、62・・・ 記憶装置、66・・・ 接続部、68・・・ 別の接続部68、70・・・ バス、72・・・ 制御回路、74・
・・ 多重プロセッサ・システム。

Claims (11)

  1. ブロックベースのデータアクセスオペレーションを実行するためにバックプレーンおよび処理回路を有するデータ記憶システムのネットワーク・インタフェース装置であって、データ記憶システムの処理回路がデータ記憶システムにバックプレーンに物理的に接続され、該ネットワーク・インタフェース装置が、
    外部ネットワークに結合することができる第1インタフェースと、
    データ記憶システムのバックプレーンに物理的に接続することができる第2インタフェースと、
    第1インタフェースと第2インタフェースの間に相互接続された制御回路とを備え、該制御回路が、第1インタフェースが外部ネットワークに結合し、第2インタフェースがデータ記憶システムのバックプレーンに物理的に接続している場合、
    (i)第1インタフェースを通して外部ネットワークからファイルベースの通信を受信し、ファイルベースの通信に応答して、第2インタフェースおよびバックプレーンを通してデータ記憶システムの処理回路にブロックベースの通信を提供し、
    (ii)第2インタフェースおよびバックプレーンを通して処理回路からブロックベースの通信を受信し、ブロックベースの通信に応答して、第1インタフェースを通して外部ネットワークにファイルベースの通信を提供し、
    (iii)アプリケーション・レベルのプログラムを実行するアプリケーション・サーバとして作動するアプリケーション・サーバ・リソースを提供するように構成され、
    前記第2インタフェースは、(i)制御回路と処理回路の間で、データ記憶システムに記憶するデータを搬送するデータ経路の部分を形成するデータ経路コンダクタのセット、および(ii)制御回路と処理回路の間で、データの記憶を制御するためのメッセージを搬送するメッセージ経路の部分を形成するメッセージ経路コンダクタのセットを有する、ネットワーク・インタフェース装置。
  2. 前記データ経路コンダクタのセットは、制御回路と処理回路の間でファイバチャネルバスの一部を形成する、請求項1に記載の装置。
  3. 請求項1に記載のネットワーク・インタフェース装置において、制御回路が、(i)第1インタフェースを通して外部ネットワークとインターネット・プロトコル通信を交換し、(ii)第2インタフェースおよびデータ記憶システムのバックプレーンを通してデータ記憶システムの処理回路とブロッ
    クベースの通信を交換するように構成される装置。
  4. 請求項3に記載のネットワーク・インタフェース装置において、前記制御回路が、ファイル名をデータ記憶システムのデータ記憶装置のセットのブロックにマッピングし、前記制御回路が、さらに、外部ネットワークからファイルベースのインターネット・プロトコル・データ・アクセス要求を受信して、ファイルベースのインターネット・プロトコル・データ・アクセス要求およびマップに基づいてデータ記憶システム内でデータのブロックにアクセスするように構成される装置。
  5. 請求項1に記載のネットワーク・インタフェース装置において、前記制御回路が、複数のアプリケーション・レベルのオペレーションを同時に実行する多重プロセッサ・システムのプロセッサとして作動するように構成される装置。
  6. 請求項5に記載のネットワーク・インタフェース装置において、前記制御回路がハードウェア回路を含み、これは各アプリケーション・レベルのオペレーションを、多重プロセッサ・システムが同時に実行する複数のアプリケーション・レベルのオペレーションの中でそのアプリケーション・レベルのオペレーションを識別する番号に関連付ける装置。
  7. 請求項1に記載のネットワーク・インタフェース装置において、前記ネットワーク・インタフェース装置がネットワーク・インタフェース・カードからなり、第1インタフェースが第1ポートからなり、第2インタフェースが第2ポートからなる装置。
  8. 請求項1に記載のネットワーク・インタフェース装置において、前記制御回路が診断情報を提供するように構成される装置。
  9. 請求項1に記載のネットワーク・インタフェース装置において、前記制御回路が、故障許容データ記憶システム内の他のネットワーク・インタフェース装置を制御するように構成される装置。
  10. 請求項1に記載のネットワーク・インタフェース装置において、前記制御回路が回路カードに組み込まれ、該回路カードが、
    複数の第1インタフェースおよび対応する複数の第2インタフェースを備え、インタフェースはデータ記憶システムの信号転送システムを介してデータ記憶システムの入出力コントローラに結合され、インタフェースがコントローラと回路カード間の通信を可能にし、さらに、
    第1処理セクションおよび第2処理セクションと、
    第1セットのポートおよび対応する第2セットのポートとを備え、
    第1処理セクションが、複数の第1インタフェースを介してコントローラと通信するように構成され、
    第2処理セクションが、複数の第2インタフェースを介してコントローラと通信するように構成され、
    第1処理セクションおよび第2処理セクションが、それぞれ第1セットのポートおよび第2セットのポートを介してデータ交換装置と通信する装置。
  11. 前記データ記憶システムの処理回路はフロントエンドのディレクタのセット、キャッシュ、及びバックエンドのディレクタのセットを備え、前記フロントエンドのディレクタのセットは前記ネットワーク・インタフェース装置と前記キャッシュの間のインタフェースとして動作し、前記バックエンドのディレクタのセットは前記キャッシュと複数の記憶装置のセットの間のインタフェースとして動作し、かつ、前記ネットワーク・インタフェース装置は、前記処理回路と協働して前記外部ネットワークと前記複数の記憶装置のセットの間の共通パスウェイの少なくとも一部を形成するように構成されている、請求項1に記載のネットワーク・インタフェース装置。
JP2006281609A 2001-05-10 2006-10-16 改善されたネットワーク・インタフェースを有するデータ記憶システム Pending JP2007080282A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/852,580 US7027439B1 (en) 2001-05-10 2001-05-10 Data storage system with improved network interface
US09/950,165 US7023869B2 (en) 2001-05-10 2001-09-10 Data storage system with one or more integrated server-like behaviors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002136076A Division JP2003067137A (ja) 2001-05-10 2002-05-10 改善されたネットワーク・インタフェースを有するデータ記憶システム

Publications (1)

Publication Number Publication Date
JP2007080282A true JP2007080282A (ja) 2007-03-29

Family

ID=27127076

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002136076A Pending JP2003067137A (ja) 2001-05-10 2002-05-10 改善されたネットワーク・インタフェースを有するデータ記憶システム
JP2006281609A Pending JP2007080282A (ja) 2001-05-10 2006-10-16 改善されたネットワーク・インタフェースを有するデータ記憶システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002136076A Pending JP2003067137A (ja) 2001-05-10 2002-05-10 改善されたネットワーク・インタフェースを有するデータ記憶システム

Country Status (4)

Country Link
US (1) US7023869B2 (ja)
JP (2) JP2003067137A (ja)
DE (1) DE10220886A1 (ja)
GB (1) GB2378022B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084219A1 (en) * 2001-10-26 2003-05-01 Maxxan Systems, Inc. System, apparatus and method for address forwarding for a computer network
US7085846B2 (en) * 2001-12-31 2006-08-01 Maxxan Systems, Incorporated Buffer to buffer credit flow control for computer network
US20030195956A1 (en) * 2002-04-15 2003-10-16 Maxxan Systems, Inc. System and method for allocating unique zone membership
US20030200330A1 (en) * 2002-04-22 2003-10-23 Maxxan Systems, Inc. System and method for load-sharing computer network switch
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US7529842B2 (en) * 2002-12-17 2009-05-05 International Business Machines Corporation Method, system and program product for detecting an operational risk of a node
US20040230866A1 (en) * 2003-04-30 2004-11-18 Hewlett-Packard Development Company, L.P. Test system for testing components of an open architecture modular computing system
JP4718851B2 (ja) * 2004-05-10 2011-07-06 株式会社日立製作所 ストレージシステムにおけるデータ移行
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
US8295166B2 (en) * 2007-04-17 2012-10-23 Rockwell Automation Technologies, Inc. High speed industrial control and data acquistion system and method
US8280930B1 (en) 2008-12-19 2012-10-02 Emc Corporation Obtaining configuration information from host devices which store data into and load data from a data storage array
KR101531981B1 (ko) * 2009-04-29 2015-06-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 광학 메모리 확장
DE102012005197B3 (de) 2012-03-16 2013-06-13 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zur Optimierung einer Brennkraftmaschine
US9047018B1 (en) * 2012-03-20 2015-06-02 Emc Corporation Method and system for zero-copy disk IO using sector unaligned buffers
JP5959733B2 (ja) * 2013-04-23 2016-08-02 株式会社日立製作所 ストレージシステムおよびストレージシステムの障害管理方法
US10326837B1 (en) * 2016-09-28 2019-06-18 EMC IP Holding Company LLC Data storage system providing unified file/block cloud access
US11169949B2 (en) 2020-02-24 2021-11-09 International Business Machines Corporation Port descriptor configured for technological modifications
US11520678B2 (en) 2020-02-24 2022-12-06 International Business Machines Corporation Set diagnostic parameters command
US11327868B2 (en) 2020-02-24 2022-05-10 International Business Machines Corporation Read diagnostic information command
US11169946B2 (en) 2020-02-24 2021-11-09 International Business Machines Corporation Commands to select a port descriptor of a specific version

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69117498D1 (de) 1991-05-31 1996-04-04 Ibm Kommunikationssteuergerät mit Leitungsanpassern die mit Anwenderprogramm ladbar sind
US5768623A (en) * 1995-09-19 1998-06-16 International Business Machines Corporation System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
US6175490B1 (en) * 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6009466A (en) * 1997-10-31 1999-12-28 International Business Machines Corporation Network management system for enabling a user to configure a network of storage devices via a graphical user interface
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JP4026698B2 (ja) 1998-09-11 2007-12-26 株式会社日立製作所 修正可能なデータ管理機能を有するディスク記憶装置
US6230190B1 (en) * 1998-10-09 2001-05-08 Openwave Systems Inc. Shared-everything file storage for clustered system
JP4168522B2 (ja) 1999-03-18 2008-10-22 株式会社日立製作所 アクティブ記憶装置とその記憶制御方法及びこれを用いた異種データ統合利用システム
US6748448B1 (en) * 1999-12-13 2004-06-08 International Business Machines Corporation High performance internet storage access scheme
US6654831B1 (en) * 2000-03-07 2003-11-25 International Business Machine Corporation Using multiple controllers together to create data spans

Also Published As

Publication number Publication date
JP2003067137A (ja) 2003-03-07
US7023869B2 (en) 2006-04-04
GB0210551D0 (en) 2002-06-19
US20050018709A1 (en) 2005-01-27
DE10220886A1 (de) 2002-11-21
GB2378022B (en) 2005-02-23
GB2378022A (en) 2003-01-29

Similar Documents

Publication Publication Date Title
JP2007080282A (ja) 改善されたネットワーク・インタフェースを有するデータ記憶システム
US6934878B2 (en) Failure detection and failure handling in cluster controller networks
US6446141B1 (en) Storage server system including ranking of data source
US9684575B2 (en) Failover handling in modular switched fabric for data storage systems
US7676694B2 (en) Managing system components
CN101741831B (zh) 动态物理和虚拟多路径输入/输出的方法、系统和装置
US6145028A (en) Enhanced multi-pathing to an array of storage devices
US6694406B2 (en) Multiple processor data processing system with mirrored data for distributed access
US6571354B1 (en) Method and apparatus for storage unit replacement according to array priority
US8074105B2 (en) High data availability SAS-based RAID system
US7536508B2 (en) System and method for sharing SATA drives in active-active RAID controller system
US7447834B2 (en) Managing serial attached small computer systems interface communications
US7107337B2 (en) Data storage system with integrated switching
US20070076321A1 (en) Data storage system, data storage control device, and failure location diagnosis method thereof
US20080059697A1 (en) Storage system and control method for the same
JP2006024215A (ja) ディスクアレイベースのi/oルーティングとマルチレイヤの外部記憶装置の接続に対する方法と装置
US20060174085A1 (en) Storage enclosure and method for the automated configuration of a storage enclosure
US6804794B1 (en) Error condition handling
TWI773152B (zh) 伺服器與應用於伺服器的控制方法
US7027439B1 (en) Data storage system with improved network interface
US7231503B2 (en) Reconfiguring logical settings in a storage system
TWI756007B (zh) 用以進行全快閃記憶體陣列伺服器的高可用性管理的方法與設備
JP3627380B2 (ja) ディスクきょう体管理方式
US7472221B1 (en) Mirrored memory
US7302526B1 (en) Handling memory faults for mirrored memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090421