JP4187403B2 - データ記録システム、データ記録方法およびネットワークシステム - Google Patents

データ記録システム、データ記録方法およびネットワークシステム Download PDF

Info

Publication number
JP4187403B2
JP4187403B2 JP2000387497A JP2000387497A JP4187403B2 JP 4187403 B2 JP4187403 B2 JP 4187403B2 JP 2000387497 A JP2000387497 A JP 2000387497A JP 2000387497 A JP2000387497 A JP 2000387497A JP 4187403 B2 JP4187403 B2 JP 4187403B2
Authority
JP
Japan
Prior art keywords
data
node
nodes
storage area
write
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.)
Expired - Fee Related
Application number
JP2000387497A
Other languages
English (en)
Other versions
JP2002215554A (ja
Inventor
義啓 藤江
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2000387497A priority Critical patent/JP4187403B2/ja
Publication of JP2002215554A publication Critical patent/JP2002215554A/ja
Application granted granted Critical
Publication of JP4187403B2 publication Critical patent/JP4187403B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク環境におけるデータ記録システムおよびデータ記録方法に関し、特に複数のプロトコルが混在するネットワーク環境にアタッチされるデータ記録システムのスループットおよび信頼性を向上する技術に関する。
【0002】
【従来の技術】
インターネットあるいはLAN(local area network)に代表されるコンピュータネットワークの一般化およびコンピュータシステムの性能向上を背景として、より大きな容量のストレージ装置に対するニーズが高まっている。たとえばネットワークファイルあるいはウェブキャッシュとして大容量なデータストレージシステムが利用される。
【0003】
ネットワークシステムにアタッチされるストレージシステムの一つとして、RAID(redundant arrays of inexpensive disk)等のディスクアレイが知られている。ディスクアレイはたとえばSCSI(small computer system interface)で接続されるためディスクアレイとネットワークとを接続するノードが用いられる。
【0004】
また、一般にネットワークに接続される複数のコンピュータシステムでは異なるネットワークOS(operating system)やLANアプリケーションが用いられる。このため、ネットワークに接続されるノードは、ネットワークOSやLANアプリケーションごとに相違するプロトコルに対応するようにしている。たとえば、Windows NT/98(Windows及びWindows NTはマイクロソフトコーポレーションの米国及びその他の国における商標)クライアントからノードにファイルアクセスを行う場合にはたとえばCIFS(common internet file system)が用いられ、UNIX(The Open Groupがライセンスしている米国及びその他の国における登録商標)クライアントからのファイルアクセスではたとえばNFS(network file system)が用いられる。また、ウェブ環境におけるウェブキャッシュとして使用する場合にはHTTP(hyper text transfer protocol)が用いられる。これら複数のプロトコルに対応できるノードとして前記したノードが構成される。
【0005】
【発明が解決しようとする課題】
ところが、ネットワーク上でのファイルアクセス要求が増加し、また、ディスクアレイの総記録容量が増加するに従い、ノードへのトラフィックロードが増加する。単一のノードでは、CPUの速度、内部メモリの容量、バスバンド幅などの制限により処理スピードに限界がある。このためノードを複数設けてノードあたりの負荷を軽減する方策が採られる。
【0006】
ノードを複数設ける方策の一つに、ディスクアレイをクラスタ化し、各ノード間でこのクラスタ化されたディスクアレイを共有する方法がある。しかしながらこの場合、ノード毎にアドレスを持つことになる。つまりネットワークに接続されるストレージシステムとして複数のアドレスを持つことになり、クライアントは各々アクセスポイントの管理を行う必要が生じる。このようなアクセスポイント管理(アドレス管理)はクライアントユーザにとって極めて不便であることは明らかである。
【0007】
ノードを複数設ける他の方策に、各ノード間を高速バスで相互接続し、それぞれのノードをネットワークに接続する方法がある。しかしながらこの場合、前記した複数アドレス(アクセスポイント)管理の問題に加えて、キャッシュのヒット率低下の問題が生じる。つまり、ノードには階層化されたメモリシステムを有し、書込みあるいは読出しデータが一旦キャッシュに記録される。既にキャッシュされているデータと相違するプロトコルに従うデータが受け入れられた場合、アクセスパターンの相違等によりキャッシュのヒット率が低下する。この結果、ストレージシステム全体のパフォーマンスを低下させる原因となる。さらに、本方策の場合、高速バスでのデータ転送自体がボトルネックになる可能性もある。
【0008】
本発明の目的は、ノードのロードを分割する場合においても、単一のアドレスで特定できるネットワークストレージシステムを提供することにある。
【0009】
また、本発明の目的は、ノードのキャッシュヒット率を向上し、ネットワークストレージシステム全体のパフォーマンスを向上することにある。
【0010】
また、本発明の目的は、ネットワークストレージシステム全体の信頼性を向上することにある。
【0011】
【課題を解決するための手段】
本願の発明の概略を説明すれば、以下の通りである。すなわち、本発明のデータ記録システムでは、ネットワークのフロントエンドに位置するイーサネットスイッチによりプロトコル毎にデータを振り分け、同一プロトコルに従うデータは同一のサービスノードに振り分けるようにする。このようにサービスノードを特定プロトコルの処理に特化することにより、ノード内でのキャッシュのヒット率を高め、スループットとスケイラビリティを同時に実現する。また、ネットワークストレージは単一のフロントエンドスイッチでネットワークに接続されるため、クライアントは単一のアドレスを管理するだけで本ネットワークストレージシステムを利用することができ、ユーザのアドレス管理(ポート管理)を不要にして、ユーザの利便性を向上できる。
【0012】
また、本データ記録システムでは、ノード間を高速バスで接続したクラスタ構造を実現する。そしてピアノードの不揮発性ストレージ間で同じ書込みデータを保持(ミラーリング)することにより、障害発生時のノードのリスタートを信頼性良く行う。これにより、システムの信頼性を向上できる。
【0013】
なお、本発明を具体的に列記すれば以下の通りである。本発明のデータ記録システムは、異なる複数のプロトコルに従うデータを受け取り、プロトコル毎にデータの伝送先を切り換えるフロントエンドスイッチと、フロントエンドスイッチに接続され、複数のプロトコルのうち少なくとも一種類のプロトコルに適合する複数のノードと、ノードを介してデータの読み書きを行うデータストレージ装置とを有する。このとき、前記データのヘッダにはプロトコルの各々に対応付けられたポートIDを含み、ポートIDによりデータの伝送先を切り換えることができる。また、複数のノードの各々に不揮発性ストレージ領域を含み、不揮発性ストレージ領域が他のノードの不揮発性ストレージ領域と接続され、不揮発性ストレージ領域には、ノードへの書込みデータと他のノードへの書込みデータとが記録することができる。
【0014】
また、本発明のデータ記録方法は、特定のプロトコルに関連付けられた識別情報を含むデータを受け取るステップと、識別情報を参照して、データが送付されるノードを切り換えるステップと、ノードを介してデータをデータストレージ装置に記録するステップと、を含む。このとき、識別情報は、プロトコル毎に関連付けられているポートIDとすることができる。また、データが書込みデータであるかを判断するステップと、判断が真の場合にはノードの不揮発性ストレージ領域、および、不揮発性ストレージ領域に接続された他のノードの不揮発性ストレージ領域にデータを書き込むステップと、データストレージ装置への書込みデータの書込み処理が終了した時には、不揮発性ストレージ領域、および、他のノードの不揮発性ストレージ領域に記録された書込みデータのデータ領域を開放するステップと、をさらに含むことができる。また、書込みデータの処理中にエラーが検出された時には、エラーが検出されたノード以外の不揮発性ストレージ領域に記録された書込みデータを、その不揮発性ストレージ領域を含むノードを経由してデータストレージ装置に記録することができる。
【0015】
なお、前記データ記録システムを構成要素とするネットワークシステムとして本発明を把握することができるのは勿論である。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。ただし、本発明は多くの異なる態様で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。なお、実施の形態の全体を通して同じ要素には同じ番号を付するものとする。
【0017】
図1は、本発明の一実施の形態であるデータストレージシステムとデータストレージシステムが接続されたネットワークシステムの一例を示した全体構成図である。本実施の形態のネットワークシステムは、コンピュータシステム1〜3とデータストレージシステム4とがイーサネット5でネットワーク接続された構成を有する。
【0018】
コンピュータシステム1〜3は、中央演算処理装置(CPU)、主記憶装置(メインメモリ:RAM(Random Access Memory))、不揮発性記憶装置(ROM(Read Only Memory))等がバスで相互に接続された一般的なコンピュータシステムである。前記バスにはコプロセッサ、画像アクセラレータ、キャッシュメモリ、データ入出力のためのインタフェイス等が接続され、インタフェイスにはハードディスクドライブ等の外部記憶装置、キーボード、マウス等の入出力装置、液晶表示装置、CRT(cathode ray tube)等の表示装置、通信制御装置等が接続される。通信制御装置は、たとえば以下に説明するイーサネット規格に適合し、データを高速に通信することができる。その他一般的なコンピュータシステムに備えられるハードウェア資源を備えることができることは勿論である。なお、本実施の形態のコンピュータシステム1〜3は、適当な通信回線あるいは前記イーサネット5を介してインターネットあるいはイントラネットに接続することが可能である。通信回線には、無線、有線、専用線、公衆回線等あらゆる通信手段が含まれる。
【0019】
また、本実施の形態のコンピュータシステム1〜3は各々異なるOSで動作し、各々のOSでサポートする通信プロトコルが相違する。たとえばコンピュータシステム1ではOSとしてWindows NT/98で動作し、データストレージシステム4に対してクライアントとして機能する際にはCIFSプロトコルが適用される。また、コンピュータシステム2ではOSとしてUNIXが動作し、データストレージシステム4に対して共有データアクセスを行う際にはNFSプロトコルが適用される。また、コンピュータシステム3の適当なOS上でウェブ(WWW)に対するHTTPリクエストが生じた時には、データストレージシステム4に対してネットワークからリクエストがルーティングされる。この時通信プロトコルにはHTTPが適用される。すなわち、コンピュータシステム1〜3では異なる通信プロトコルをサポートし、イーサネット5上では複数の通信プロトコルが混在する。
【0020】
イーサネット5は、IEEE802.3で規定された伝送規格であり、OSI(open system interconnection)参照モデルでは物理層(第1層)およびデータリンク層(第2層)に相当する。なお、本実施の形態ではイーサネットを例示するが、トークンリング(IEEE802.5)、FDDI(fiber distributed data interface)、TPDDI(twisted pair distributed data interface)、ローカルトーク(RS−422)等OSI参照モデルで物理層およびデータリンク層に相当する他の伝送規格を用いることも可能である。
【0021】
データストレージシステム4には、フロントエンドスイッチ6、複数のノード7、RAID装置8が含まれる。
【0022】
フロントエンドスイッチ6は、イーサネット5およびノード7に接続され、イーサネット5から伝送されたデータをプロトコル毎に割当てられたノード7に振り分ける機能を持つ。フロントエンドスイッチの詳細については後述する。
【0023】
ノード7は、フロントエンドスイッチ6によって割り振られたデータを受け取り、RAID装置8にデータをインタフェイスする。ノード7は、複数プロトコルに適応可能なようにプロトコル毎の処理手段を有する。但し、ネットワークで使用される全てのプロトコルをサポートする必要はなく、単一のプロトコルを処理するものであっても良い。ノード7にはたとえばバッテリでバックアップされた不揮発性のメモリ領域であるNVS(Non Volatile Storage)9を有し、各ノード7のNVS9は高速バス10で相互に接続される。高速バスにはSCI(Scalable Coherent Interface)を例示できる。なお、図1では3つのノード7を例示するがそれ以上のノードが設けられても良い。ノード7の詳細については後に説明する。
【0024】
RAID装置8は、たとえばハードディスクアレイ11で構成された記録装置であり、ノード7とファイバーチャネル12でリング状に接続される。RAID装置8にはハードディスクアレイ11を制御するRAIDコントローラ13が含まれる。なお、図1では複数のRAID装置8を例示するが、RAID装置8は1台でも構わない。
【0025】
図2は、フロントエンドスイッチの詳細を示したブロック図である。本実施の形態のフロントエンドスイッチには、ポート1〜nを持つイーサネットインタフェイス14、MAC(media access control)インタフェイス15、入力キュー16、出力キュー17、ファブリックインタフェイス18、スイッチファブリック19を有し、ポートルックアップテーブル20、フレーム転送エンジン21、データバッファ22を備える。
【0026】
ポート1〜nは、図1におけるイーサネット5およびノード7に接続するポートである。イーサネットインタフェイス14はノード内部とイーサネット5とのインタフェイスを行い、MACインタフェイス15ではたとえばIPアドレスとメディア固有のMACアドレスとの対応付けを行う。入力キュー16および出力キュー17では、各々データの入力および出力の待ち行列を制御し、ファブリックインタフェイス18では入出力キュー16,17とスイッチファブリック19とのインタフェイスを行う。スイッチファブリック19は、データのルーティングを行う伝送先切り換え手段であり、フレーム転送エンジン21によって制御される。
【0027】
ポートルックアップテーブル20は、特定のプロトコルに関連付けられているポートIDと、プロトコル毎に割当てられる特定の物理ポートとを対応付けたテーブルである。図3は、ポートルックアップテーブルの一例を示した表図である。本実施の形態のネットワークストレージシステムの場合、同じデスティネーションアドレスであっても、第4層(トランスポート層)でのアプリケーション(プロトコル)が相違する場合には、異なる物理ポートにルーティングする。たとえば「1.222.333.44」のデスティネーションアドレスでNFSのポートIDが指定されて受け入れられたデータは物理ポート「0」にルーティングされる。同様にCIFSのポートIDから受け入れられたデータは物理ポート「1」にルーティングされる。HTTPについても同様である。なお、ポートルックアップテーブル20には他のデスティネーションアドレスが含まれても良いことは勿論である。
【0028】
フレーム転送エンジン21は、フレーム単位で受け入れたデータのポートIDを識別し、ポートルックアップテーブル20を参照して転送先を決定する手段である。スイッチファブリック19と協働してデータのルーティングを行う。データバッファ22にはデータがバッファされる。
【0029】
図4は、ノードの詳細を示したブロック図である。本実施の形態のノード7は、CPU23、メモリバスコントローラ24、CPUメモリ・データバッファ25、ファームウェア・フラッシュROM26、GPIO(General Purpose Input Output)27、ネットワークコントローラ28、ギガビットイーサネットインタフェイス29、ストレージデバイスコントローラ30、ファイバチャネルインタフェイス31、フロントエンドスイッチコントローラ32、NVSコントローラ33、およびNVS9を含む。
【0030】
CPU23はノードを制御する計算やメモリ間のデータ転送等を制御する中央演算処理装置である。単一のプロセッサあるいは複数プロセッサからなる。メモリバスコントローラ24は、各種メモリ間のデータ転送をCPUを介さずに直接行う制御装置である。高速なデータ転送が実現できる。CPUメモリ・データバッファ25はたとえばDRAM(Dynamic Random Access Memory)で構成され、CPU23に入力されるプログラムあるいはデータが記録されるほか、データのバッファリングにも利用される。ファームウェア・フラッシュROM26には、ノードを制御するプログラムが記録される。CPU23からファームウェア・フラッシュROM26に対して直接プログラムを読み出す他、一旦CPUメモリ・データバッファ25にプログラムが転送され、CPUからはCPUメモリ・データバッファ25上のプログラムを読み出すこともできる。GPIO27は、各種構成スイッチの読み取り、および状態表示用LEDのインタフェイス機能を持つ。
【0031】
ネットワークコントローラ28、ストレージデバイスコントローラ30、フロントエンドスイッチコントローラ32は、各々ネットワーク(イーサネット5)、RAID装置8、フロントエンドスイッチ6を制御する。ギガビットイーサネットインタフェイス29は、ネットワークコントローラ28とイーサネット5とをインタフェイスし、ファイバチャネルインタフェイス31はストレージデバイスコントローラ30とRAID装置8をインタフェイスする。NVSコントローラ33は、NVS9を制御し、ピアノードのNVSコントローラに接続される。
【0032】
次に、前記したネットワークストレージシステムを用いてデータを記録する方法について説明する。図5は、フロントエンドスイッチ6での処理の一例を示したフローチャートである。
【0033】
コンピュータシステム1〜3から発せられたデータ(フレーム)がイーサネット5を介してフロントエンドスイッチ6に伝送され、フロントエンドスイッチ6がこのフレームを受取ることにより処理が開始する(ステップ40)。フレームは図2に示すフロントエンドスイッチのポートから受信され、受信されたフレームはイーサネットインタフェイス14を介してMACインタフェイス15に送られる。
【0034】
MACインタフェイス15では、受取ったデータのヘッダに含まれるIPアドレスから機器固有のMACアドレスに従ってフレームを入力キュー16に転送する(ステップ41)。なお、MACアドレスとIPアドレスとの対応は、ARPテーブルとしてネットワーク内のルータ等に記録されており、フロントエンドスイッチ内のデータバッファにも同じテーブルを保持している。また、ネットワーク内のIPアドレスにはローカルアドレスを用いることができる。
【0035】
次に、フレーム転送エンジン21がフレームヘッダからポート番号を抽出する(ステップ42)。ポート番号は、アプリケーションに関連付けて通常同じプロトコルでは同じポートを開いてデータの送受信を行うために付される。たとえばHTTPではポート番号は80、netbios−nsではポート番号137のポートが開かれる。
【0036】
次に、ヘッダから抽出されたポート番号とポートルックアップテーブル20を参照して、フレームの転送先物理ポートをサーチする(ステップ43)。そして、フレーム転送テーブル(図示せず)に転送先の物理ポートを指定し(ステップ44)、フレームを出力キュー17に転送する(ステップ45)。
【0037】
その後、フレームは出力キュー17の処理に従って物理ポートからノードに転送されることになる(ステップ46)。
【0038】
前記した通り、フロントエンドスイッチ6の物理ポートには何れかのノード7が接続されているので、特定のノードには特定のプロトコルに従うデータが転送されることになる。このように特定のノードには、特定のプロトコルに従うデータ(フレーム)が転送されるので、後に説明するノードでの処理において、キャッシュヒット率が向上する。すなわち、通常プロトコルによってディレクトリ構造やアクセスパターンが相違するが、本実施の形態のシステムによればノードにおいては結果的に常に同一プロトコルのファイルアクセス処理を行うことになる。常に同一のアクセスパターンあるいはディレクトリ構造のデータ処理をノードにおいて行うこととなり、必然的にキャッシュヒット率が向上することになる。これによりノードでの処理のスループットを向上し、システム全体のパフォーマンスを向上することができる。
【0039】
また、本実施の形態のフロントエンドスイッチ6は単一のIPアドレスで指定される。つまりユーザは自己の使用するプロトコルを意識することなく、単一のフロントエンドスイッチ6のアドレスを指定してファイルシステムを利用できる。これにより、ユーザに煩雑なアドレス管理を強いることなく、スケーラビリティと高いスループットが実現されたファイルシステムを実現できる。
【0040】
次に、ノードでの処理をフローチャートを用いて説明する。図6は、ノードにおけるデータ記録処理の一例を示したフローチャートである。
【0041】
前記したフロントエンドスイッチ6での処理の後、ノード7にデータ(フレーム)が転送されてくる(ステップ47)。その後、フレームを受取ったノード7は、まずIP層(ネットワーク層)の処理を行い(ステップ48)、続いてTCPあるいはUDP層(トランスポート層)での処理を行う(ステップ49)。IP層での処理は、主に、径路制御、ネットワークコネクションの確立、多重化とフロー制御、データパケットの分割・統合等を行う。TCPあるいはUDP層では、主に、上位層であるセッション層(OSI参照モデルにおける第5層以上)に透過的なデータを提供し、多重化制御、フロー制御、再送制御(TCPの場合)等を行う。
【0042】
次に、上位プロトコルの識別を行い(ステップ50)、プロトコルに従った処理を行う(ステップ51〜53)。たとえばCIFSの場合にはCIFSに応じた処理を行い(ステップ51)、HTTPの場合はHTTPに応じた処理を行う(ステップ52)。IP層の処理の場合はそれに応じた処理を行う(ステップ53)。なお、本実施の形態では、複数のプロトコルに対応可能なノードを例示しているが、たとえばCIFSにのみ対応するノードであっても良い。この場合、ステップ50をパスしてステップ51を実行する。
【0043】
次に、ファイルシステムの処理を行う(ステップ54)。ファイルシステム処理では、RAID装置8へのデータ転送のための各種の計算等を行う。
【0044】
次に、現在処理しているデータが書込みデータであるかを判断する(ステップ55)。書込みデータである場合(ステップ55の判断がYesの時)にはNVS9へのデータ転送を行う(ステップ56)。その後データバッファ25等のキャッシュにデータを転送し(ステップ57)、さらにキャッシュからストレージデバイスコントローラ30を介してファイバチャネルにデータを転送する(ステップ58)。なお、書込みデータである際の処理は後に詳しく説明する。
【0045】
一方、ファイルシステム処理が読込みデータを必要とする場合(ステップ55の判断がNoの時)、キャッシュ内部の有効データを検索し(ステップ59)、キャッシュヒットか否かの判断を行う(ステップ60)。キャッシュヒットの場合はこのデータをネットワークコントローラを経由してネットワークにデータ転送を行う(ステップ62)。キャッシュミスの場合はファイバチャネルからストレージデバイスコントローラを経由してデータバッファ内のキャッシュにデータを転送し(ステップ61)、キャッシュからネットワークコントローラを経由してネットワークにデータ転送を行う(ステップ62)。
【0046】
以上ノードにおける処理はフラッシュROM26に記録されたファームウェアに従ってCPU23の制御のもとに行われる。上記処理において、あるノード7に受け入れられるデータのプロトコルは前記した通りフロントエンドスイッチ6によって同じプロトコルに振り分けられている。このため、ファイルシステム層での処理において、キャッシュされたデータの利用率つまりキャッシュヒット率が高くなる。このため複数ノードを用いてファイルシステムの処理負担を軽減しつつ、各ファイルシステムでの処理効率(スループット)を向上できる。
【0047】
図7は、ノードにおいて書込み処理が行われる時の処理の一例を示したフローチャートである。まず、ネットワークコントローラ28からデータバッファ25にデータが転送される(ステップ63)。次にネットワークコントローラ28からNVS9にデータが転送される(ステップ64)とともに、ピアノードのNVSにデータが転送される(ステップ65)。つまり、書込み操作時に、書込み操作を行っているノードのNVSとピアノードのNVSとに同一データが書込まれ、ある書込み操作における書込みデータは常にコピーを持つことになる。
【0048】
図8は、書込み動作時のノード間でのNVSデータをコピーする操作について説明した図である。ノードAのNVSコントローラ33−1によってノードAが処理する書込みデータをノードAのNVS9−1に書き込むとともに、ノードAのNVSコントローラ33−1からノードBのNVSコントローラ33−2に同じ書込みデータが転送され、ノードBのNVSコントローラ33−2を介してノードBのNVS9−2にノードAが処理する書込みデータを書き込む。つまり、ノードAとノードBとはピアノードを構成し、ノードAの書込みデータは、ノードAのNVS9−1に書込まれるとともに、ノードBのNVS9−2にもコピーが保持される。同様に、ノードBの書込みデータはノードCのNVSにコピーが保持され、順次サイクリックにピアノード間で書込みデータのコピーが保持され、最後はノードnの書込みデータがノードAのNVS9−1に保持される。
【0049】
このように、書込みデータを自己のノードNVSだけでなく、ピアノードのNVSにもコピーを保持することにより、後に説明するようにノードに障害を生じた時の復帰がしやすくなる。すなわち、安定したノードのリスタートを実現でき、システム全体の信頼性を向上することができる。
【0050】
上記のようにNVSへのデータ転送を行った後、ノードはファイルシステム層での書込み処理を完了する(ステップ66)。
【0051】
次に、データバッファ25からストレージデバイスコントローラ30にデータが転送され、ファイバチャネルインタフェイス31を介してストレージ(RAID装置8)にデータが送出される(ステップ67)。ストレージからのライトコンプリートの信号を受信すればストレージでの書込み処理の完了を確認する(ステップ68)。
【0052】
書込み処理の完了後、自己ノードのNVSおよびピアノードのNVSに記録されたデータの記憶領域を開放(あるいはデータを消去)する(ステップ69)。以上のようにして書込み処理が完了する。
【0053】
次に、ノードで障害が発生した時の処理について説明する。図9はノードエラーを生じた時の処理の一例を示したフローチャートである。
【0054】
エラー時の復帰処理は、ノードでのエラー検出で開始する(ステップ70)。エラーが検出された時、ピアノードがあるかを判断する(ステップ71)。
【0055】
ピアノードがある場合には、ピアノードのNVSにコミットされていないデータがあるかをチェックする(ステップ72)。コミットされていないデータがある場合、このデータをピアノードを経由してストレージにステージング(書き込み)処理を行う(ステップ73)。なお、ステージング処理については前記の通りである。ストレージからの書込み完了信号の受信により書込み処理が完了し(ステップ74)、書込み処理の完了後、障害の発生したノードのリスタート処理を行う(ステップ75)。その後通常の処理に復帰する(ステップ76)。
【0056】
一方、ピアノードがない場合、ノードのリスタート処理および通常の処理を停止し(ステップ77)、NVS上にコミットされていないデータがあるかをチェックする(ステップ78)。その後、コミットされていないデータについて、NVSからそのノードのストレージデバイスコントローラ30にデータを転送し(ステップ79)、ストレージでの書込み処理の完了を確認する(ステップ80)。そして通常動作に復帰する(ステップ76)。
【0057】
すなわち、ピアノードがある場合には障害が発生したノードとそのピアノードについてのみ特別のリスタート処理を行い、ピアノードがない場合には全てのノードについてリスタート処理を行う。前記の通り、本実施の形態のストレージシステムでは原則的に何れのノードにおいてもピアノードに書込みデータのコピーデータを保持するため、何れのノードに障害を生じた場合でもそのノードとピアノードの処理を一時停止するのみであり、他のノードには障害の影響を及ぼさない。この結果、ノードに障害を生じてもシステム全体を停止することなく、冗長性が高くつまり信頼性の高いシステムを構築できる。
【0058】
なお、NVS上にコミットされていないデータが発見されない場合には、障害の発生以前に全てのステージング処理は正常に完了しており、ノードをリスタートする等の処理のみを行う。
【0059】
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【0060】
たとえば、前記実施の形態では、ファイルシステム(RAID装置8)へのインタフェイスとしてファイバーチャネルを例示したが、FDDI、ATM(asynchronous transfer mode)であっても良い。
【0061】
また、前記実施の形態では、アプリケーションによるプロトコルの相違をポート番号で識別したがこれに限られず、その他ヘッダに含まれる識別情報を用いることも可能である。
【0062】
【発明の効果】
本願で開示される発明のうち、代表的なものによって得られる効果は、以下の通りである。すなわち、ノードのロードを分割する場合においても、単一のアドレスで特定できるネットワークストレージシステムを提供できる。また、ノードのキャッシュヒット率を向上し、ネットワークストレージシステム全体のパフォーマンスを向上できる。ネットワークストレージシステム全体の信頼性を向上することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態であるデータストレージシステムとデータストレージシステムが接続されたネットワークシステムの一例を示した全体構成図である。
【図2】フロントエンドスイッチの詳細を示したブロック図である。
【図3】ポートルックアップテーブルの一例を示した表図である。
【図4】ノードの詳細を示したブロック図である。
【図5】フロントエンドスイッチでの処理の一例を示したフローチャートである。
【図6】ノードにおけるデータ記録処理の一例を示したフローチャートである。
【図7】ノードにおいて書込み処理が行われる時の処理の一例を示したフローチャートである。
【図8】書込み動作時のノード間でのNVSデータをコピーする操作について説明した図である。
【図9】ノードエラーを生じた時の処理の一例を示したフローチャートである。
【符号の説明】
1〜3…コンピュータシステム、4…データストレージシステム、5…イーサネット、6…フロントエンドスイッチ、7…ノード、8…RAID装置、9(9−1〜9−n)…NVS、10…バス、11…ハードディスクアレイ、12…ファイバーチャネル、13…RAIDコントローラ、14…イーサネットインタフェイス、15…MACインタフェイス、16…入力キュー、17…出力キュー、18…ファブリックインタフェイス、19…スイッチファブリック、20…ポートルックアップテーブル、21…フレーム転送エンジン、22…データバッファ、23…CPU、24…メモリバスコントローラ、25…CPUメモリ・データバッファ、26…ファームウェア・フラッシュROM、27…GPIO、28…ネットワークコントローラ、29…ギガビットイーサネットインタフェイス、30…ストレージデバイスコントローラ、31…ファイバチャネルインタフェイス、32…フロントエンドスイッチコントローラ、33(33−1〜33−n)…NVSコントローラ。

Claims (4)

  1. 単一のIPアドレスで指定され、異なる複数のプロトコルに従うデータを受け取り、前記プロトコル毎に前記データの伝送先を切り換えるフロントエンドスイッチと、
    前記フロントエンドスイッチに接続され、前記複数のプロトコルのうち少なくとも一種類のプロトコルに適合する複数のノードと、
    前記複数のノードのうち何れかのノードを介して前記データの読み書きを行う、前記複数のノードに共通のデータストレージ装置とを有し
    前記複数のノードの各々は、前記データストレージ装置に書き込むデータ及び前記データストレージ装置から読み出したデータを記憶するキャッシュと、不揮発性ストレージ領域とを含み、
    各ノードの不揮発性ストレージ領域はピアノードの不揮発性ストレージ領域に接続され、前記各ノードの不揮発性ストレージ領域には、そのノードへの書込みデータと前記ピアノードへの書込みデータとが記録され、前記書込みデータが前記データストレージ装置に書き込まれると、前記不揮発性ストレージ領域において前記書込みデータのデータ領域が開放される、
    データ記録システム。
  2. 各々異なるプロトコルに従ってデータを送受信する複数のコンピュータシステムと、
    単一のIPアドレスで指定され、前記データを受け取り、前記プロトコル毎に前記データの伝送先を切り換えるフロントエンドスイッチと、がネットワークに接続され、
    前記プロトコルのうち少なくとも一種類のプロトコルに適合する前記フロントエンドスイッチに接続された複数のノードと、
    前記複数のノードのうち何れかのノードを介して前記データの読み書きを行う、前記複数のノードに共通のデータストレージ装置とを有し
    前記複数のノードの各々は、前記データストレージ装置に書き込むデータ及び前記データストレージ装置から読み出したデータを記憶するキャッシュと、不揮発性ストレージ領域とを含み、
    各ノードの不揮発性ストレージ領域はピアノードの不揮発性ストレージ領域に接続され、前記各ノードの不揮発性ストレージ領域には、そのノードへの書込みデータと前記ピアノードへの書込みデータとが記録され、前記書込みデータが前記データストレージ装置に書き込まれると、前記不揮発性ストレージ領域において前記書込みデータのデータ領域が開放される、
    ネットワークシステム。
  3. 単一のIPアドレスで指定され、異なる複数のプロトコルに従うデータを受け取り、前記プロトコル毎に前記データの伝送先を切り換えるフロントエンドスイッチと、前記フロントエンドスイッチに接続され、前記複数のプロトコルのうち少なくとも一種類のプロトコルに適合する複数のノードと、前記複数のノードのうち何れかのノードを介して前記データの読み書きを行う、前記複数のノードに共通のデータストレージ装置と、を有するデータ記録システムにおけるデータ記録方法であって、
    前記フロントエンドスイッチが、前記プロトコルに関連付けられた識別情報を含む前記データを受け取るステップと、
    前記フロントエンドスイッチが、前記識別情報を参照して、前記複数のノードのうち前記プロトコルに適合するノードに前記データを送信するステップと、
    前記データが送信されたノードが、前記データを前記データストレージ装置に記録するステップとを含み
    前記複数のノードの各々は、前記データストレージ装置に書き込むデータ及び前記データストレージ装置から読み出したデータを記憶するキャッシュと、不揮発性ストレージ領域とを含み、前記不揮発性ストレージ領域がピアノードの不揮発性ストレージ領域と接続され、
    前記データが送信されたノードが、前記データが書込みデータであるかを判断するステップと、
    前記判断が真の場合、前記データが送信されたノードが、前記不揮発性ストレージ領域および前記ピアノードの不揮発性ストレージ領域に前記データを書き込むステップと、
    前記データストレージ装置への前記書込みデータの書込み処理が終了した時には、前記データが送信されたノードが、前記不揮発性ストレージ領域および前記ピアノードの不揮発性ストレージ領域に記録された前記書込みデータのデータ領域を開放するステップと、
    さらに含むデータ記録方法。
  4. 前記ピアノードがあるかを判断するステップと、
    前記判断が真の場合には、
    前記ピアノードに含まれる不揮発性ストレージ領域に未処理のデータがあるかを検査するステップと、
    前記未処理のデータを前記ピアノードを経由して前記データストレージ装置に記録するステップと、
    前記エラーが検出されたノードのリスタート処理を行うステップと、
    さらに含む請求項記載のデータ記録方法。
JP2000387497A 2000-12-20 2000-12-20 データ記録システム、データ記録方法およびネットワークシステム Expired - Fee Related JP4187403B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000387497A JP4187403B2 (ja) 2000-12-20 2000-12-20 データ記録システム、データ記録方法およびネットワークシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000387497A JP4187403B2 (ja) 2000-12-20 2000-12-20 データ記録システム、データ記録方法およびネットワークシステム

Publications (2)

Publication Number Publication Date
JP2002215554A JP2002215554A (ja) 2002-08-02
JP4187403B2 true JP4187403B2 (ja) 2008-11-26

Family

ID=18854419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000387497A Expired - Fee Related JP4187403B2 (ja) 2000-12-20 2000-12-20 データ記録システム、データ記録方法およびネットワークシステム

Country Status (1)

Country Link
JP (1) JP4187403B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797392B2 (en) * 2002-11-26 2010-09-14 International Business Machines Corporation System and method for efficiently supporting multiple native network protocol implementations in a single system
US20050114595A1 (en) * 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
JP5045229B2 (ja) * 2007-05-14 2012-10-10 富士ゼロックス株式会社 ストレージシステム及びストレージ装置
JP5427245B2 (ja) * 2009-09-01 2014-02-26 株式会社日立製作所 マルチコアプロセッサを有する要求処理システム
JP5900096B2 (ja) 2012-03-28 2016-04-06 富士通株式会社 レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers

Also Published As

Publication number Publication date
JP2002215554A (ja) 2002-08-02

Similar Documents

Publication Publication Date Title
US11140084B2 (en) TCP/UDP acceleration
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
JP4448719B2 (ja) ストレージシステム
US7424519B2 (en) Distributed storage system, storage device and method of copying data
US6389432B1 (en) Intelligent virtual volume access
US9357030B2 (en) Clustered cache appliance system and methodology
US7328223B2 (en) Storage management system and method
US8560631B2 (en) Storage system
US6985956B2 (en) Switching system
US7089293B2 (en) Switching system method for discovering and accessing SCSI devices in response to query
US6085234A (en) Remote file services network-infrastructure cache
JP4014923B2 (ja) 共有メモリ制御方法および制御システム
US20030105931A1 (en) Architecture for transparent mirroring
US20040210584A1 (en) Method and apparatus for increasing file server performance by offloading data path processing
US20040078419A1 (en) Switching system
US7003556B2 (en) Storage system and a method for unilaterally administering data exchange with the storage system
NO331320B1 (no) Balansering av nettverksbelastning ved bruk av informasjon om vertsmaskin-status
JP4106014B2 (ja) 少なくとも1つの不揮発性データ記憶装置を含む複数ノード・データ処理システムにおける通信方法およびプログラム
WO2002037225A9 (en) Switching system
JP4187403B2 (ja) データ記録システム、データ記録方法およびネットワークシステム
JP4028627B2 (ja) クライアントサーバシステムおよびクライアントサーバシステムの通信管理方法
US7539711B1 (en) Streaming video data with fast-forward and no-fast-forward portions
Tan et al. Layer 4 fault tolerance: Reliability techniques for cluster system in internet services
JP4284837B2 (ja) 負荷分散サーバシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061107

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070307

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees