(57)【要約】【課題】ネットワークに直結するストレージシステムにおいて、ファイルサーバで発行された、Ｉ／Ｏコマンドをストレージ装置に送信する際に、従来のＩ／Ｆ及び、プロトコルを用いると、コマンド、データを単一の転送路にてシリアルに転送するために、性能低下が生じる。またアプリケーション、ファイルシステムに固有のＩ／Ｏ特性をストレージ装置に伝達することができない。一方、ファイルサーバのフェイルオーバーを高速かつ正確に行うために、ファイルサーバ側の障害をストレージ装置側で共有する必要もあるが、従来のＩ／Ｆではそれを伝える手段がない。【解決手段】ファイルサーバとストレージ装置内のチャネルアダプタを同一ボード１１２上に配置し、その間の接続パスが、複数のプロトコルを独立して稼動できるように制御を行う。またファイルサーバ１１３とチャネルアダプタ１１４の間でコマンド、データのパスと独立したパスを置き、受信した障害情報をストレージ装置１００内の共有メモリに格納し、フェイルオーバーに用いる。【選択図】  図１
2004220216.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数のディスクと、
ホストコンピュータからのＩ／Ｏ命令を受信し，上記Ｉ／Ｏ命令に従って上記ディスクを制御する複数の制御装置と、
前記複数の制御手段を結合する相互結合網とを有し、
上記制御装置の１つは、ホストコンピュータとのインタフェースとして、ブロックインタフェースを持ち、
上記制御装置の別の１つはホストコンピュータとのインタフェースとして、ファイルインタフェースを持つことを特徴とするＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項２】
上記ブロックインタフェースを持つ制御装置は、
上記ホストコンピュータと通信をするチャネルアダプタと、
上記ディスクを制御するディスクアダプタとを有する請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項３】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、
上記ホストコンピュータから受信したファイルレベルのコマンド、データをブロックインタフェースに変換するファイルシステムと、
上記相互結合網とのインターフェィスを持つチャネルアダプタ部と、
上記ディスクを制御するディスクアダプタとを有する請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項４】
上記相互結合網に接続され、上記複数の制御装置で共用される制御メモリを有する請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項５】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、
上記ホストコンピュータから受信したファイルレベルのコマンド、データをブロックインタフェースに変換するファイルシステムと、
上記相互結合網と上記のインターフェィスを持つチャネルアダプタ部を、
単一のボード上に実装することを特徴とする請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項６】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、
上記ホストコンピュータから受信したファイルレベルのコマンド、データをブロックインタフェースに変換するファイルシステムと、
上記ファイルシステムから発行されたブロックレベルのコマンド、データを受信するチャネルアダプタ部と、
上記ディスクを制御するディスクアダプタとを有する請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項７】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、
ブロックレベルの入出力命令、入出力データを受信するチャネルアダプタ部間に通信パスを複数持ち、コマンド、データを別々のパスにて送受信することを特徴とする請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項８】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、ブロックレベルの入出力命令、入出力データを受信するチャネルアダプタ部間にある物理的な通信パスを、仮想的に複数の独立したパスが存在するように制御し、コマンド、データを別々のパスにて送受信することを特徴とする請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項９】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、ブロックレベルの入出力命令、入出力データを受信するチャネルアダプタ部間にある物理的な通信パスを、仮想的に複数の独立したパスが存在するように制御し、コマンド内部にファイルシステムに固有な情報を挿入し、コマンドとデータを別々のパスにて送受信することを特徴とする請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項１０】
上記ファイルインタフェースを持つ制御装置は、
上記ホストコンピュータとの通信をするファイルサーバ部と、ブロックレベルの入出力命令、入出力データを受信するチャネルアダプタ部間に障害情報用の通信パスを持ち、コマンド、データの通信パスとは独立に障害情報を制御メモリへ送信することを特徴とする請求項１記載のＳＡＮ／ＮＡＳ統合型ストレージ装置。
【請求項１１】
データを記憶するディスクと、
第１のホストコンピュータに接続される第１のネットワークに直結される第１のアダプタと、
上記ディスクに直結される第２のアダプタと、
上記第１のアダプタ、第２のアダプタに直結してこれらを結合する第２のネットワークとを有し、
上記第１のアダプタは、上記第１のネットワークを介してホストコンピュータから受信した第１のプロトコルに従う情報を第２のプロトコルに従う情報に変換し、上記第２のネットワークを介して上記第２のアダプタに転送するストレージ装置。
【請求項１２】
第２のホストコンピュータと第３のネットワークを介して接続される第３のアダプタと、
上記ディスク、第１のアダプタ、第２のアダプタ、第３のアダプタを結合する第２のネットワークとを有し、
上記第１のネットワーク上の通信プロトコルが第１のプロトコルであり、上記第２及び第３のネットワーク上の通信プロトコルが第２のプロトコルである請求項１１記載のストレージ装置。
【請求項１３】
上記第１のプロトコルは「Ｅｔｈｅｒｎｅｔ  ＩＩ」「ＩＥＥＥ８０２．３」および「ＩＥＥＥ８０２．２」のいずれかの規格に基づくプロトコルである請求項１２記載のストレージ装置。
【請求項１４】
上記第１のアダプタは、
上記ホストコンピュータとファイルレベルのコマンド、データの送受信を行うファイルサーバ部と、
上記第２のアダプタとブロックレベルのコマンド、データの送受信を行うチャネルアダプタ部と、
を有し、
それらが単一のボード上または単一の筐体内に構成されている請求項１２記載のストレージ装置。
【請求項１５】
上記ファイルサーバ部は、
該ファイルサーバ部を制御するサーバプロセッサと、
上記第１のネットワークから来るデータ、コマンドの制御を行うＬＡＮコントローラと、
上記サーバプロセッサと上記ＬＡＮコントローラを接続する第１の内部バスと、
を有し、データ、コマンドの変換処理を行い上記チャネルアダプタ部へ送り、
上記チャネルアダプタ部は、
上記変換処理を行ったデータ、コマンドを上記第２のネットワークへ送付する請求項１４記載のストレージ装置。
【請求項１６】
上記ファイルサーバ部と上記チャネルアダプタ部の間に、
上記データを送受信するネットワークデータパスと、
上記コマンドを送受信する制御データパスと、
を物理的または論理的に独立に有し、該ネットワークデータパスおよび制御データパスは、上記第１の内部バスに接続されている請求項１５記載のストレージ装置。
【請求項１７】
上記チャネルアダプタ部は、
上記第２のネットワークとの上記データの送受信を制御するネットワークデータコントローラと、
上記第２のネットワークとの上記コマンドの送受信を制御する制御データコントローラと、
上記ネットワークデータコントローラと上記制御データコントローラを接続する第２の内部バスと、
を有し、該第２の内部バスは、上記ネットワークデータパスおよび制御データパスに接続されている請求項１６記載のストレージ装置。
【請求項１８】
上記ファイルサーバ部は、
上記サーバプロセッサと上記第１の内部バスとの間の上記データ、コマンドの送受信、障害情報の制御を行うホストコントローラを有し、
上記チャネルアダプタ部は、
該チャネルアダプタ部を制御するチャネルプロセッサを有し、
上記ファイルサーバ部と上記チャネルアダプタ部の間に、上記サーバプロセッサおよびホストコントローラの少なくとも一つと、上記チャネルアダプタ部を接続し、上記第１の内部バスを介さずに障害情報の送受信を行う管理バスを有する請求項１７記載のストレージ装置。
【請求項１９】
上記管理バスは上記チャネルアダプタ部内の制御データコントローラに接続されており、障害のため上記第１の内部バスが使えない場合でも、上記サーバプロセッサまたは上記ホストコントローラの障害情報を上記チャネルアダプタ部に転送する請求項１８記載のストレージ装置。
【請求項２０】
上記チャネルプロセッサと接続される管理ネットワークと、
上記管理ネットワークと接続される管理プロセッサを有し、
上記チャネルプロセッサは制御データコントローラと接続されて上記障害情報を収集し、該障害情報を上記管理プロセッサに転送し、
上記管理プロセッサは受信した情報に基づいて、上記チャネルプロセッサに指示を行う請求項１９記載のストレージ装置。
【請求項２１】
上記第２のネットワークに接続された制御メモリを有し、
上記管理プロセッサは、上記制御メモリにある障害情報を元に障害が発生したファイルインタフェースを持つ第１のアダプタの動作を停止し、他の正常なファイルインタフェースを持つ第１のアダプタにその制御手段の動作を代替させることを特徴とする請求項２１記載のストレージ装置。
【請求項２２】
上記管理プロセッサは、上記チャネルプロセッサから入手した障害情報と上記制御メモリ内にある障害情報を比較し、障害が発生したファイルインタフェースを持つ制御手段の特定と、障害処理方法の選択を行うことを特徴とする請求項２１記載のストレージ装置。
【請求項２３】
上記第１のアダプタは、上記ファイルサーバ部と上記チャネルアダプタ部の状態を上記管理プロセッサに送信し、上記状態を基に管理用コマンドを受信することを特徴とする請求項２１記載のストレージ装置。
【請求項２４】
上記管理プロセッサは管理用ディスプレイと接続され、上記障害情報に基づいた情報を、管理用ディスプレイ上に表示することを特徴とする請求項２０記載のストレージ装置。
【請求項２５】
「Ｅｔｈｅｒｎｅｔ  ＩＩ」「ＩＥＥＥ８０２．３」および「ＩＥＥＥ８０２．２」のいずれかの規格（「外部プロトコル」という）に基づくプロトコルによりホストコンピュータとコマンドおよびデータを送受信し、上記外部プロトコル以外のプロトコル（「内部プロトコル」という）によって記録ディスクにアクセスするディスク制御装置であって、
該制御装置は単一のボード上または筐体内にファイルサーバ部とチャネルアダプタ部を有し、
上記ファイルサーバ部は、
該ファイルサーバ部を制御し、上記外部プロトコルから内部プロトコルへデータ、コマンドの変換処理するサーバプロセッサと、
上記外部プロトコルによるデータ、コマンドの通信制御を行うＬＡＮコントローラと、
上記サーバプロセッサと上記ＬＡＮコントローラを接続する第１の内部バスと、
上記サーバプロセッサと上記第１の内部バスとの間にあって、上記データ、コマンドの送受信、および、障害情報の制御を行うホストコントローラを有し、
上記チャネルアダプタ部は、
上記記録ディスクとの間で上記データの送受信を制御するネットワークデータコントローラと、
上記記録ディスクとの間で上記コマンドの送受信を制御する制御データコントローラと、
上記チャネルアダプタ部を制御するチャネルプロセッサと、
上記ネットワークデータコントローラと上記制御データコントローラを接続する第２の内部バスとを有し、
上記ファイルサーバ部と上記チャネルアダプタ部の間に、
上記第１及び第２の内部バスに接続され、上記内部プロトコル基づいたデータを送受信するネットワークデータパスと、
上記第１及び第２の内部バスに接続され、内部プロトコル基づいたコマンドを送受信する制御データパスとを物理的または論理的に独立に有し、
上記第１及び第２の内部バスを介さずに障害情報の送受信を行う管理バスとを有するディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイルシステム及びストレージシステムを統合化した装置およびその管理方法に関し、特にファイルシステムからＩ／Ｏコマンド、障害処理を高速に処理する技術に関する。
【０００２】
【従来の技術】
【特許文献１】
特開２０００−９９２８１号公報
【特許文献２】
特開２００２−１４８７８号公報
【非特許文献１】
米国特許公開公報２００２／０１１６５９３
従来、ホストコンピュータと接続されて用いられるストレージ装置として、特開２０００−９９２８１号公報に開示されたものがある。これは、ストレージ装置内のデータ転送、制御を高速化するために、ホストコンピュータと接続されるチャネルアダプタ、ディスク装置と接続されるディスクアダプタ、ディスクキャッシュ、制御メモリ間を相互結合網で接続する構成をとる。
【０００３】
また、イーサネット（登録商標）用のポートしかないユーザでも接続できるように、ストレージ装置内のファイルサーバとホストコンピュータとをイーサネットで接続し、ファイルサーバとチャネルアダプタとの間はファイバーチャネルポートのブロックインタフェースで接続したストレージ装置が、例えば米国特許出願２００２／０１１６５９３に開示されている。
【０００４】
なお、専用のネットワークによって、例えばファイバーチャネルプロトコルによりサーバ、ストレージ間の通信を行う方式を、一般にＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）という。また、ＬＡＮに直接接続し、例えばイーサネットを介してＴＣＰ／ＩＰプロトコルや「Ｅｔｈｅｒｎｅｔ  ＩＩ」（Ｅｔｈｅｒｎｅｔ  は登録商標）「ＩＥＥＥ８０２．３」「ＩＥＥＥ８０２．２」等の規格に基づくプロトコルで通信を行う方式を一般にＮＡＳ（Ｎｅｔｗｏｒｋ  ＡｒｅａＳｔｏｒａｇｅ）という。
一方、ファイルサーバから直接ストレージ装置に障害情報を伝えるパスを持つ計算機システムとして、例えば特開２００２−１４８７８号公報に開示されている方法がある。
【０００５】
【発明が解決しようとする課題】
本発明の課題は、ＳＡＮ／ＮＡＳを統合・集約化した新しいシステムを提供することにある。
【０００６】
図３は本発明の比較例として創作したシステム構成図である。このシステムは、相互結合網を適用し、かつ、ファイルシステム及びストレージシステムを統合・集約化したＳＡＮ／ＮＡＳ統合型ストレージシステムである。
【０００７】
一般に、ユーザ、アプリケーションがデータのアクセスを行うためには、図３にあるようにホストコンピュータ（３００）、ファイルサーバ（３１０）、ストレージ装置（３４０）を用いる必要がある。その場合ユーザ、アプリケーションはホストコンピュータ（３００）に存在し、そこからネットワークやイーサネットポート（３０５）を経由して、ファイルを管理するファイルサーバ（３１０）へデータのアクセス要求を出す。ファイルサーバ（３１０）はユーザ、アプリケーションの把握しているデータ（ファイル）の管理を行い、ディスク（１６０，１６１）に対してデータ（ブロック）のリード、ライト要求を出す。ファイルサーバ（３１０）はこのときファイル情報からブロック情報への変換を行う。ディスク（１６０，１６１）はファイルサーバ（３１０）からのコマンドに従ってデータの格納、読み出しを行う。
このようなストレージ装置（３４０）おいて、ディスク（１６０，１６１）の容量の増加、インターフェィス性能やプロセッサ性能の向上、ＬＳＩやボードの実装密度増加に伴い、ハードの集約化を行うことが進められている。それに伴いチャネルアダプタ数、ディスク数は増加し、ストレージ装置内のデータ転送、制御を高速化するためにチャネルアダプタ（１１０，３１０）、ディスクアダプタ（１４０、１４１）、ディスクキャッシュ（１３２）、制御メモリ間（１３１）を相互結合網（１３０）で接続する構成をとることが有利である。相互結合網を持つストレージ装置として、前述の特開２０００−９９２８１号公報に開示されている方法がある。
【０００８】
一方管理コストの削減の要求から、複数のユーザデータのストレージ装置（３４０）への集約化が進んでいる。しかしすべてのユーザがファイバーチャネルに代表されるブロックインターフェィスを持っているわけではなく、多くのユーザはイーサネットに代表されるＩＰインターフェィスしか持っていない場合が多い。また離れた地域よりストレージ装置（３４０）に接続する場合、ファイバーチャネルを用いるとコストが増大する問題がある。よって図３に示すように、ストレージ装置（３４０）の集約化を進めるにあたり、ストレージ装置（３４０）内にファイルサーバを内蔵し、イーサネットポート（３０５）等のＩＰインターフェィスしかないユーザでも接続できるようにストレージ装置内（３４０）にファイルサーバ（３１０）を置き、チャネルアダプタ（３３０）との間はファイバーチャネルポート（３２０）等のブロックインタフェースで接続したストレージ装置（３４０）の要望が高くなっている。
【０００９】
このようにＩＰインターフェィスを持つＮＡＳとして、例えば米国特許出願２００２／０１１６５９３に開示されている方法がある。当該特許出願に開示されているストレージ装置は、ユーザに対してはＩＰインターフェィスを制御するファイルサーバを持ち、ストレージ装置とは相互スイッチを介したファイバーチャネルで接続される構成をとっている。この方法によれば、ファイルサーバ処理とストレージ処理を別々に行うので、高性能化が図れる。
【００１０】
一方、ストレージ装置の規模が増大し、ＮＡＳが一般になってきた場合、システム全体の高信頼性を保つためにファイルサーバ（３１５）とストレージ装置（３４０）の間の障害処理連携が必要になってくる。特にファイルサーバ側（３１５）の障害時にその情報がストレージ装置（３４０）側に直接伝わらなければ、障害部位の切り離し、他の部位へのフェィルオーバーなどに時間がかかることになり、信頼性、性能ともに低下する。そのために通常のデータが通るパスとは別に障害情報を別のパスを使って障害情報を送信する方式が検討されている。このような、ファイルサーバから直接ストレージ装置に障害情報を伝えるパスを持つ計算機システムとして、例えば特開２００２−１４８７８号公報に開示されている方法がある。当該公報に開示されている計算機システムは、ファイルサーバ側のプロセッサが制御するホストバスを使わず、ストレージ装置に障害情報を連絡するパスを別に持つ構成を採用している。この方法によれば、ファイルサーバ側の障害をプロセッサの状態によらず直接知ることができ、システムの高信頼化を保つことができる。
【００１１】
しかし、上記した特開２０００−９９２８１号公報に開示されているストレージ装置では、ホストコンピュータとのインターフェィスはＩＰインターフェィスを含んでいない。従って、ファイルサーバを持っていないユーザはこのストレージ装置に接続ができない。そのため、このストレージ装置に接続するために新たにファイサーバを用意する必要がある。図３は新たにファイルサーバ（３１０）を備えた例であるが、この比較例には管理コスト、設置面積が増大する問題がある。
【００１２】
また米国特許出願２００２／０１１６５９３に開示されているＮＡＳ装置については、装置内にＮＡＳを持つので、ファイルサーバとストレージ装置が連結されているが、１回のデータやコマンドを転送するために使う接続パスはファイバーチャネルケーブル１本であり、負荷が高い場合性能低下を招く可能性が高い。さらにファイバーチャネルケーブルのみで接続されているため、ファイルサーバに障害が発生した場合、ストレージ装置にその障害情報を伝えることができない。よってフェィルオーバーを完了するために多くの時間がかかる可能性が高い。つまり、このＮＡＳ装置では性能低下と信頼性低下の問題がある。
【００１３】
一方、障害処理に関して特開２００２−１４８７８号公報に開示されている計算機システムは、直接ディスク制御装置側（本公知例ではＩ／Ｏプロセッサと記載）にファイルサーバ（本公知例では主プロセッサと記載）の障害情報の送信ができるが、その情報を障害処理に用いるためには、ファイルサーバの設定情報を変更しＩＰネットワークを通して外部の管理サーバに伝えられた後になるため、ＩＰネットワークの負荷が高い場合などには相手は的確に障害情報を取得できないか、障害情報の伝達に時間がかかる問題がある。
以上の課題により、本発明の目的は、ストレージ装置内にファイルサーバのインターフェィスを持つシステムおよびその方法を提供することである。
【００１４】
本発明の他の目的は、ファイルサーバとストレージ装置間において、コマンドとデータを並列に処理するシステムおよびその方法を提供することである。
【００１５】
本発明のさらに他の目的は、ファイルサーバの障害情報を通常のコマンド、データと別にストレージ装置に転送し、その情報をストレージ装置全体で共有するシステムおよびその方法を提供することである。
【００１６】
本発明のさらに他の目的は、ストレージ装置で共有した障害情報を使って障害の発生したファイルサーバのフェィルオーバーを行うシステムおよびその方法を提供することである。
【００１７】
【課題を解決するための手段】
上記課題を解決するために、本発明の一態様であるストレージ装置では、データを記憶するディスクと、第１のホストコンピュータに接続される第１のネットワークに直結される第１のアダプタと、ディスクに直結される第２のアダプタと、第１のアダプタ、第２のアダプタに直結してこれらを結合する第２のネットワークとを有し、第１のアダプタは、第１のネットワークを介してホストコンピュータから受信したのプロトコルに従う情報を第２のプロトコルに従う情報に変換し、第２のネットワークを介して第２のアダプタに転送する。本発明では、ホストコンピュータとアダプタ間を、例えばＰＣＩインタフェースなどの内部バスを用いて、冗長なプロトコル変換を行わない高速インタフェースで接続することができる。特に、本発明では、ファイルサーバと、ストレージ装置のチャネルアダプタとを、第１のアダプタとして同一基板上に置き、それらの間を高速なインターフェィスで接続できるようにする。
【００１８】
第１のプロトコルは、例えば「Ｅｔｈｅｒｎｅｔ  ＩＩ」「ＩＥＥＥ８０２．３」および「ＩＥＥＥ８０２．２」のいずれかの規格に基づく、いわゆるイーサネットプロトコルであり、種々のホストコンピュータとの接続を可能とする。第２のプロトコルは例えばファイバーチャネルであり、専用の高速チャネルを実現することができる。本発明は、第１のアダプタのみによりこの両者を結合することが可能である。従って、スペースファクターや保守に優れる。
【００１９】
ファイルサーバ部は、ファイルサーバ部を制御するサーバプロセッサと、第１のネットワークから来るデータ、コマンドの制御を行うＬＡＮコントローラと、サーバプロセッサと上記ＬＡＮコントローラを接続する第１の内部バスとを有する。たとえば、サーバプロセッサはデータ、コマンドの変換処理を行い、第２のプロトコルによりチャネルアダプタ部へ送る。チャネルアダプタ部は、変換処理後のデータ、コマンドを第２のネットワークへ送付する。
【００２０】
このように、ファイルサーバ部とチャネルアダプタ部を一体構成としたことにより、両者の間に、データを送受信するネットワークデータパスと、コマンドを送受信する制御データパスとを物理的または論理的に独立に備えることとすることも容易にできる。すなわち、ファイルサーバとストレージ装置の間に複数の独立したパスを設け、Ｉ／Ｏ処理の中でデータとコマンドを別のパスで処理できるようにする。
【００２１】
さらに、ファイルサーバ部は、サーバプロセッサと第１の内部バスとの間のデータ、コマンドの送受信、障害情報の制御を行うホストコントローラを有してもよい。また、チャネルアダプタ部は、チャネルアダプタ部を制御するチャネルプロセッサを有してもよい。ファイルサーバ部とチャネルアダプタ部の間には、第１の内部バスを介さずに障害情報の送受信を行う管理バス備えることが望ましい。この管理バスは、例えばサーバプロセッサあるいはホストコントローラと、チャネルアダプタ部内の制御データコントローラを直結する。障害のため第１の内部バスが使えない場合でも、サーバプロセッサまたは上記ホストコントローラの障害情報を上記チャネルアダプタ部に転送することができる。このように、ファイルサーバの障害処理情報をＩ／Ｏ処理と異なるパスを使ってストレージ装置に転送できるようにする。また上記障害処理情報をストレージシステムで共用できるようにメモリに保存し、フェィルオーバーを行う他のストレージ装置、ファイルサーバから参照できるようにする。
【００２２】
本発明の他の観点は上述の新規な第１のアダプタであり、これは、例えば「Ｅｔｈｅｒｎｅｔ  ＩＩ」「ＩＥＥＥ８０２．３」および「ＩＥＥＥ８０２．２」のいずれかの規格（「外部プロトコル」という）に基づくプロトコルによりホストコンピュータとコマンドおよびデータを送受信し、外部プロトコル以外のプロトコル（「内部プロトコル」という）によって記録ディスクにアクセスするディスク制御装置であって、制御装置は筐体内または好ましくは単一のボード上にファイルサーバ部とチャネルアダプタ部を有する。
【００２３】
ファイルサーバ部は、ファイルサーバ部を制御し、外部プロトコルから内部プロトコルへデータ、コマンドの変換処理するサーバプロセッサと、外部プロトコルによるデータ、コマンドの通信制御を行うＬＡＮコントローラと、サーバプロセッサと上記ＬＡＮコントローラを接続する第１の内部バスと、サーバプロセッサと第１の内部バスとの間にあって、データ、コマンドの送受信、および、障害情報の制御を行うホストコントローラを有する。
【００２４】
チャネルアダプタ部は、記録ディスクとの間でデータの送受信を制御するネットワークデータコントローラと、記録ディスクとの間でコマンドの送受信を制御する制御データコントローラと、チャネルアダプタ部を制御するチャネルプロセッサと、ネットワークデータコントローラと制御データコントローラを接続する第２の内部バスとを有し、ファイルサーバ部と上記チャネルアダプタ部の間に、第１及び第２の内部バスに接続され、内部プロトコルに基づいてデータを送受信するネットワークデータパスと、第１及び第２の内部バスに接続され、内部プロトコルに基づいてコマンドを送受信する制御データパスとを物理的または論理的に独立に有し、第１及び第２の内部バスを介さずに障害情報の送受信を行う管理バスとを有する。
【００２５】
さらに他の本発明の態様であるストレージ装置は、データを記憶する複数のディスクと、ホストコンピュータからのＩ／Ｏ命令を受信し，Ｉ／Ｏ命令に従って上記ディスクを制御する複数の制御装置と、複数の制御手段を結合する相互結合網とを有し、制御装置の１つは、ホストコンピュータとのインタフェースとして、ブロックインタフェースを持ち、制御装置の別の１つはホストコンピュータとのインタフェースとして、ファイルインタフェースを持つことを特徴とする。ここで、ファイルインタフェース（ファイルシステムインタフェース）とは、ファイル名を元にしてデータの送受信を行うインタフェースをいう。ブロックインタフェース（ブロックデバイスインタフェース）とは、ＳＣＳＩに代表されるようなデバイス識別子、先頭ブロックアドレス、ブロック数などを元にデータの送受信を行うインタフェースをいい、これは、ディスク内のデータ位置を示すブロックアドレスを指定してデータにアクセスを行う。このように、取り扱うプロトコルの異なるインタフェースを統合したストレージ装置を提供する者である。
【００２６】
【発明の実施の形態】
以下、本発明の実施例を図１を参照して説明する。
【００２７】
図１は本発明の第１の実施例の構成図である。
【００２８】
図１において、１００はユーザ、アプリケーションのデータを保存するストレージ装置である。本発明のストレージ装置（１００）は、ホストコンピュータ（１０１、３００）に適合するインターフェィスを持つ。ファイバーチャネルインターフェィスを持つホストコンピュータ（３００）に対しては、複数のファイバーチャネルポートからなるファイバーチャネルインターフェィス（１０３）で接続する。ＩＰインターフェィスを持つホストコンピュータに対しては、複数のイーサネットポートからなるイーサネットインターフェィス（１０４、１０５）で接続する。ストレージ装置（１００）の内部は、ホストコンピュータ（３００）のファイバーチャネルインターフェィス（１０３）を接続しデータ、コマンド処理を行う、チャネルアダプタ（１１０）と、ホストコンピュータ（１０１）のイーサネットインターフェィス（１０４）を外部ネットワーク（１０２）経由で接続しファイルを含むデータ、コマンドの処理を行う、ファイルサーバボード（１１２、１１５）を持つ。ファイルサーバボード（１１２、１１５）は自らＯＳを持ち、ホストコンピュータ（１０１）からのＩＰプロトコルの処理、ファイルレベル要求のブロックレベル要求への変換を行うファイルサーバ部（１１３）とブロックレベル要求を処理するチャネルアダプタ部（１１４）からなる。このファイルサーバ部とチャネルアダプタ部（１１４）は同一ボード上に配置され、後で説明するように複数の高速なインターフェィスで接続されている。またストレージ装置（１００）は、データの一時的保存とデータのリード、ライトの高速化を行うディスクキャッシュ（１３２）とストレージ内のデータの整合性を維持、装置内の状態を保存、共用するための制御メモリ（１３３）を持つ。さらにストレージ装置（１００）は最終的にデータを保存するディスク（１６０、１６１）を制御するディスクアダプタ（１４０、１４２）を持つ。チャネルアダプタ（１１０）、ファイルサーバボード（１１２）、ディスクキャッシュ（１３２）、制御メモリ（１３３）ディスクアダプタ（１４０、１４２）は相互結合網（１３０）とのインターフェィスを持ち、お互いに結合されている。相互結合網（１３０）はスイッチ等で構成されており、外部ネットワーク（１０２）に比べ高速、かつ高信頼なネットワークになっている。以上の構成により本発明のストレージ装置は、同一装置で複数のインターフェィスを持つので、図３に示したように余計なファイルサーバを用意する必要がなく、装置コストを下げることが可能となる。次にファイルサーバボード（１１２、１１５）の詳細について説明する。
【００２９】
図２は本発明におけるファイルサーバ部とチャネルアダプタ部を統合した、ファイルサーバボードの構成図である。
【００３０】
図２において、２００は外部ネットワーク（１０２）を通して、ホストコンピュータとファイルレベルのコマンド、データの送受信を行い、相互結合網（１３０）を通して、ディスクキャッシュ（１３２）、制御メモリ（１３３）ディスクアダプタ（１４０、１４２）とブロックレベルのコマンド、データの送受信を行う、ファイルサーバボード（１１２、１１５）の基本構成を示している。なお図２では説明を容易にするため、外部ネットワーク（１０２）、相互結合網（１３０）とのインターフェィス数は１個に限定してあるが、それらが複数存在する場合も当然本特許の範囲にある。２０１はファイルサーバ部であり、外部ネットワーク（１０２）からのコマンド、データを受け取り、自ファイルシステム内の処理を行った後、ブロックレベルのデータ、コマンドの変換処理を行いチャネルアダプタ部（２０２）へ送る。２１０はサーバプロセッサであり、ファイルサーバ部（２０１）の全体を制御する。２１１はホストコントローラであり、サーバプロセッサ（２１０）と周辺のメモリ、内部バス（２１４）のデータ、コマンド、割り込み信号の送受信、障害情報の制御を行う。２１２はＬＡＮコントローラであり、外部ネットワーク（１０２）から来るデータ、コマンドの制御を行う。２１３はイーサネットであり、外部ネットワーク（１０２）とファイルサーバボード（２００）を接続し、ＩＰプロトコルに準拠したデータ、コマンドの伝送を行う。２１４は内部バスであり、ホストコントローラ（２１１）、ＬＡＮコントローラ（２１２）、チャネルアダプタ部（２０２）を接続し、データ、コマンドの送受信を行う。内部バス（２１４）以外に、サーバプロセッサ（２１０）、ホストコントローラ（２１１）は、障害情報の送受信を独立に行うパスとして、管理バス（２３０）を持つ。管理バス（２３０）はチャネルアダプタ部（２０２）内の制御データコントローラ（２２１）に接続されており、障害のため内部バス（２１４）使えない場合でも、サーバプロセッサ（２１０）、ホストコントローラ（２１１）の障害情報をチャネルアダプタ部（２０２）に転送する。２０２はチャネルアダプタ部であり、ファイルサーバ部（２０１）から送られた、ブロックレベルのデータ、コマンドを受け取り、内容に応じて相互結合網（１３０）を通して適当なディスクキャッシュ（１３２）、制御メモリ（１３３）、ディスクアダプタ（１４０、１４２）に送信する。２２０はチャネルプロセッサであり、上記チャネルアダプタ部（２０２）の全体を制御する。２２１は制御データコントローラであり、ストレージ装置（１００）全体を制御するために必要なデータの送受信の制御、サーバプロセッサ（２１０）、ホストコントローラ（２１１）からの障害情報の送受信の制御を行う。２２２は制御メモリ（１３３）用の相互結合網（１３０）であり、制御データコントローラからの制御データを制御メモリ（１３３）、ディスクアダプタ（１４０、１４２）、他のチャネルアダプタ（１１０）、ファイルサーバボード（１１３）へ転送する。２２３はネットワークデータコントローラであり、ユーザまたはアプリケーションのデータの送受信を制御する。２２４はユーザ、アプリケーションデータ転送用の相互結合網（１３０）であり、ネットワークデータコントローラ（２２３）からのデータをディスクキャッシュ（１３２）、ディスクアダプタ（１４０、１４２）に転送する。２３１は制御データパスであり、コマンドやストレージ装置（１００）全体を制御するために必要な情報をファイルサーバ部（２０１）とチャネルアダプタ部（２０２）間で送受信する。２３２はネットワークデータパスであり、ユーザまたはアプリケーションのデータやデータ転送に必要なパラメータ等をファイルサーバ部（２０１）とチャネルアダプタ部（２０２）間で送受信する。２５０は管理ネットワークであり、チャネルプロセッサ（２２０）で収集した障害情報、構成情報を管理プロセッサ（２５５）に転送するために利用する。管理プロセッサ（２５５）は受信した情報より、障害処理、構成変更等を判断し、必要であればストレージ装置（１００）に指示を行う。また管理プロセッサ（２５５）は各ボードの情報を管理ディスプレイ（２６０）に一元的に表示することが可能である。たとえば２６１のような管理表を表示することが可能であり、ボード＃（２６５）毎にファイルサーバ部（２６６）、チャネルアダプタ部（２６７）の状態を表示することが可能となる。２４０はファイルサーバボード（２００）の電源でありここから、ファイルサーバ部（２０１）、チャネルアダプタ部（２０２）に対して電源を供給する。以上に述べた構成によって、同一ボード上にファイルサーバとストレージ装置のインターフェィスをまとめることが可能となり、装置の設置面積が削減する。またファイルサーバとストレージ装置を同一管理プロセッサ（２５５）、管理ディスプレイ（２６０）上で管理することも可能となり、管理コストが削減する。さらにファイルサーバ部（２０１）とチャネルアダプタ部（２０２）間のデータ、コマンド転送に関して、制御データパス（２３１）とネットワークデータパス（２３２）の２種類の独立したパスを設けることにより、コマンド、パラメータなどの比較的短いデータと、ユーザ、アプリケーションデータなどの比較的長いデータを分離して処理することにより、データ転送性能を上げることが可能になる。またコマンド等をまとめて転送することもでき、処理効率を上げることが可能となる。さらにコマンドとデータを分離することにより、コマンドのフォーマットを標準仕様から変更できるので装置特有な情報、パラメータをチャネルアダプタに直接伝えることも可能となり、ディスクキャッシュ（１３２）内の常駐データの選別などが可能となる。この２種類の独立したパスは、物理的に分離した２本のパスで構成する場合と、以下に述べるファイルサーバボード（１１２）のハード構成図のように物理的には１本のパスにて、論理的に２本のパスがあるように制御を行う方式のどちらを使っても実装可能であるがそれらが本特許の範囲にあることは明らかである。また図２ではファイルサーバボード（１１２）上にサーバプロセッサ（２１０）、チャネルプロセッサ（２２０）の２種類のプロセッサが稼動している例を挙げたが、この形態以外にサーバプロセッサ（２１０）のみでファイルサーバボード（１１２）上の部品をすべて制御する方式も実装可能であり、それも本特許の範囲であることは明らかである。
【００３１】
図４は本発明の実施例１におけるファイルサーバボードのハード構成図である。
【００３２】
図４においてファイルサーバ部（４００）内のサーバプロセッサ（２１０）とホストコントローラ（２１１）の間は、ホストバス（４１３）で接続されている。ホストコントローラ（２１１）には管理バス（５５５）を制御する管理バスコントローラ（５１２）とサーバプロセッサ（２１０）のプログラム、データ等を格納するローカルメモリ（４１０）と内部バス（２１４、２２５）を接続し制御する内部バスコントローラ（５１１）が接続されている。内部バスコントローラ（４１１）はファイルサーバ部（４００）とチャネルアダプタ部（４６０）間を接続するパスを制御し、論理的に複数のパスがあるように内部バス（２１４、２２５）を制御する。つまり図３における制御データパス（２３１）とネットワークデータパス（２３２）を論理的に構成することが可能となる。チャネルアダプタ部（４６０）内のチャネルプロセッサ（２２０）はローカルバスコントローラ（４７０）を介してローカルバス（４７１）に接続されている。図４では省略されているが、ローカルバスにはチャネルプロセッサ（２２０）に必要なメモリ等が接続されている。またローカルバスコントローラ（４７０）は管理ネットワーク（２５０）と接続されており、必要な管理情報等を管理プロセッサ（２２５）に送信している。ローカルバス（４７１）には制御データコントローラ（２２１）が接続されている。制御データコントローラ（２２１）には内部バス（２５５）が接続されており、通常の制御データの送受信が行われる。また相互結合網（２２２）を通して制御メモリ（１３１）、他のチャネルプロセッサと接続されており、制御情報、共有情報を送受信している。さらにサーバプロセッサ（２１０）、管理バスコントローラ（２２５）からの割り込み信号（４５６，４５７）が直接入力される。また、内部バス（２１４、２２５）が障害等で稼動していない場合にもサーバプロセッサの情報が入手できるように、管理バス（４５５）も接続されている。制御データコントローラ（２２１）内部には、通常制御を行うための通常レジスタ（４８０）、エラー情報を記憶するためのエラーレジスタ（４８１）、ファイルサーバ部（４００）との通信制御を行うためのドアベルレジスタ（４８２）、通信メモリ（４８３）がある。内部バス（２２５）には制御データコントローラ（２２１）以外にネットワークデータコントローラ（２２３）が接続されており、ユーザ、アプリケーションデータを送受信する。また、チャネルプロセッサ（２２０）がファイルサーバ部（４００）の起動、停止、再起動を制御できるように、制御データコントローラ（２２１）と管理バスコントローラ（２２５）は、電源制御手段（４５８）で接続されている。本実施例では、電源制御手段（４５８）によってファイルサーバ部の電源を制御できるものとする。図４の構成はあくまでもひとつの実現例であり、他の構成でも本特許の範囲にあることは自明である。次に以上のべたファイルサーバボード（２００）内にある制御データパス（２３１）を使って送受信されるコマンドの構造例を示す。
【００３３】
図５は本発明の実施例１のコマンドデータブロックのフォーマットを示す図である。
【００３４】
図５において、５００はファイルサーバ部（４００）からチャネルアダプタ部（２０２）に送信されるコマンドデータブロックを示している。５０１はコマンドの種別であり、通常のコマンドか特殊なコマンドなのかを区別する。５０２、５１０、５３５、５４０はリザーブ領域で特に意味はない。５０３はＴＡＧ種別であり、キューに格納された場合の制御方法を指示する。５０４はサーバプロセッサ＃であり、このコマンドを発行したサーバプロセッサ（２１０）を特定する。５０５はＩＩＤであり、ユーザ領域またはシステム領域へのアクセスを区別する。５０６はＬＵＮであり、サーバプロセッサ（２１０）がアクセスする先の論理ユニットの番号である。５１１はＴＡＧ＃をであり、キューの内部での識別番号を示す。５１５はＣＤＢであり、通常のＳＣＳＩで使われるフォーマットに準拠したコマンドが入る。５１６はＣＤＢ内のオペコードであり、リード、ライト等のコマンドを区別する。５２０はイニシエータポート番号であり、外部にコマンドを送信する場合の送信元のポートの区別を行う。５２５は外部デバイスＷＷＮであり、外部にコマンドを送信する場合の送信先ＷＷＮを示す。５３０は外部デバイスＬＵＮであり、外部にコマンドを送信する場合の送信先ＬＵＮを示す。５４１はアドレスエントリ数を示し、以下に続くストレージ装置（１００）へ指示するパラメータの個数を示す。５４５、５６０はＬＢＡ１、ＬＢＡ２であり、ＬＵ内での相対的なアドレスを示す。５５０、５６５はサーバプロセッサ（２１０）のローカルメモリ（４１０）内での物理アドレスを示し、対象とするデータの格納位置となる。５５５、５７０はストレージ装置指示パラメータであり、ファイルサーバ部内に特有な情報をここに置きチャネルアダプタに伝える。５５１、５７１は各パラメータに対応するデータのバッファサイズまたは転送データ長を示す。ストレージ装置指示パラメータの例としては、ディスクキャッシュ（１３２）へのデータ常駐指示がある。これを用いることにより、ストレージ装置（１００）だけでは知ることのできないユーザ、アプリケーションデータの使用頻度等をつかむことが可能となり、ストレージ装置（１００）の性能向上につなげることが可能になる。以上述べた、コマンドデータブロックが、サーバプロセッサ（２１０）、制御データコントローラ（２２１）、チャネルプロセッサ（２２０）、ディスクキャッシュ（１３２）間でどのように送受信されるかについて以下に説明する。
【００３５】
図６は、本発明の実施例１のデータアクセス時のフローチャートを示す図である。
【００３６】
サーバプロセッサ（２１０）、チャネルプロセッサ（２２０）はコマンドを効率よく処理するためにそれぞれコマンドキュー（ＣｍｄＱｕｅｕｅ）（６０２、６０７）、キューの先頭を示すポインタ（ＣｍｄＨｅａｄ）（６０１、６０６）、次に来るコマンドを格納すべき位置を示すポインタ（ＣｍｄＮｅｘｔ）（６０３、６０８）を持つ。コマンドキュー（６０２、６０７）はリングバッファになっている。またコマンド終了後のステータスの管理のために、ステータスキュー（ＳｔＱｕｅｕｅ）（６３２、６３７）、キューの先頭を示すポインタ（ＳｔＨｅａｄ）（６３１、６３６）、次に来るコマンドを格納すべき位置を示すポインタ（ＳｔＮｅｘｔ）（６３３、６３８）を持つ。ステータスキュー（ＳｔＱｕｅｕｅ）（６３２、６３７）もリングバッファとなっている。コマンド、データ転送時に、サーバプロセッサ（２１０）、チャネルプロセッサ（２２０）間でコマンドキュー（ＣｍｄＱｕｅｕｅ）（６０２、６０７）の内容を随時確認している。両者において、  ＣｍｄＨｅａｄ（６０１、６０６）と、ＣｍｄＮｅｘｔ（６０３、６０８）の内容は一致している必要がある。そのため、制御データコントローラ（２２１）を通してＣｍｄＨｅａｄ（６０６）、ＣｍｄＱｕｅｕｅ（６０２）、ＣｍｄＮｅｘｔ（６０３）をそれぞれ、サーバプロセッサ（２１０）、チャネルプロセッサ（２２０）、チャネルプロセッサ（２２０）に転送し、整合性をとる。同様な処理はステータスキュー（ＳｔＱｕｅｕｅ）（６３２、６３７）にも必要であり、サーバプロセッサ（２１０）、チャネルプロセッサ（２２０）間でステータスキュー（ＳｔＱｕｅｕｅ）（６３２、６３７）の内容の確認を随時行う。コマンド、データ処理を行うために、サーバプロセッサ（２１０）のプロセス（６００）で、以下、３ステップの処理が行われる。
（１）  コマンドキュー（ＣｍｄＱｕｅｕｅ）（６０２）に空きがあることを確認後、コマンドを格納。
（２）  キューポインタを更新し、ＣｍｄＮｅｘｔ（６０３）を見てリングバッファが溢れないように制御。
（３）  ポーリングを開始し、ステータスキューの更新をチェック。
このプロセスに対して、チャネルプロセッサ（２２０）のプロセス（６０５）で以下の５ステップの処理が行われる。
（４）  ポーリングにより、コマンドキュー（ＣｍｄＱｕｅｕｅ）（６０７）の更新をチェック。
（５）  コマンドキューＣｍｄＱｕｅｕｅ）（６０７）の内容をＤＭＡ転送にて、受信。
（６）  ポーリングにより、ステータスキュー（ＳｔＱｕｅｕｅ）（６３７）の更新をチェック。
（７）  キューの先頭を示すポインタ（ＣｍｄＨｅａｄ）（６０６）を更新。
（８）  各コマンドを処理。
【００３７】
次にサーバプロセッサ（２１０）のプロセス（６１０）にてコマンド処理に必要なパラメータ（６１１）をＤＭＡ転送にて、制御データコントローラ（２２１）を通してチャネルプロセッサ（２２０）に転送する。また同時にサーバプロセッサ（２１０）のプロセス（６２０）にてデータをＤＭＡ転送にて、ネットワークデータコントローラ（２２３）を通してディスクキャッシュ（１３２）に転送する。プロセス（６１０）とプロセス（６２０）は、図３、４で示したように独立したパスにて処理できるので、並列に処理を進めることが可能である。データ転送処理が完了した後、チャネルプロセッサ（２２０）のプロセス（６３５）にて以下の２ステップの処理が行われる。
（９）  実行結果をステータスキュー（ＳｔＱｕｅｕｅ）（６３７）に格納。
（１０）  ドアベルレジスタ（５８２）セットし割り込みを発生。
このプロセスに対して、サーバプロセッサ（２１０）のプロセス（６３０）で、以下の３ステップの処理が行われる。
（１１）  割り込みまたはポーリングより、ステータスキュー（ＳｔＱｕｅｕｅ）（６３２）の更新を検知
（１２）  ステータスの取り出し
（１３）  キューのポインタ（ＳｔＮｅｘｔ）（６３３）の更新
以上のフローチャートに示したように、コマンド、ステータス毎にキューを持つことが可能となり、また各々、独立のパスを用いて処理できるので、データアクセス性能を向上することが可能となる。
【００３８】
図７は、本発明の実施例１のサーバプロセッサ障害発生時のフローチャートを示す図である。
【００３９】
図７において、７００はサーバプロセッサ（２１０）に障害が発生し、例外処理を行う必要があることを示す。ここで、通常コマンド、データが送受信される、内部バス（２１４、２２５）と内部バスコントローラ（４１１）は正常に動作することが期待できない。障害情報はプロセス（８１０）にて例外ハンドラの処理が進み、エラー報告がプロセス（７１５）にて制御データコントローラ（２２１）のエラーレジスタ（４８２）に割り込み信号で記録される。その後サーバプロセッサ（２１０）はリセット命令を待つことになる。次に制御データコントローラ（２２１）はプロセス（７１５）でサーバプロセッサ（２１０）に障害が発生していることをエラー割り込みの形でチャネルプロセッサ（２２０）に伝える。チャネルプロセッサ（２２０）のプロセス（７２０）ではエラー割り込みを受けてエラー処理関数が起動する。その後チャネルプロセッサ（２２０）はサーバプロセッサ（２１０）を初期化するために、プロセス（７１５）にて制御データコントローラ（２２１）の通常レジスタ（４８３）にリセット命令を送信する。制御データコントローラ（２２１）は次にサーバプロセッサ（２１０）にリセットを割り込み信号にて送信する。リセットを受けたサーバプロセッサ（２１０）のプロセス（７１０）は次のプロセス（７２５）にて再起動を行う。プロセス（７２５）ではサーバプロセッサ（２１０）内の障害要因を収集して、プロセス（７３０）にて制御データコントローラ（２２１）の通信メモリ（４８１）に格納する。ただしこの障害要因は通常パスを通して転送されるので、正しい値である保障はない。プロセス（７２５）はこれらの情報の格納が終了した後、退避完了報告をドアベルレジスタ（４８２）経由でチャネルプロセッサ（２２０）に伝える。その後、チャネルプロセッサ（２２０）は正しい障害情報を確保するために、プロセス（７５０）、プロセス（７１５）において管理バス（４５５）経由で障害情報を読み出す。具体的にはチップセットレジスタリードを行う。また同時にプロセス（７４５）にて制御データコントローラ（２２１）の通信メモリ（４８１）に格納された障害要因も読み出す。これらの情報を読み出した後、チャネルプロセッサ（２２０）は管理プロセッサ（２５５）へ情報を報告し、処理指令を受領する。次に制御メモリ（１３１）へ障害情報転送し、他のボードに障害処理要求を出す。次にプロセス（７５５）にて内部バス（２１４、２２５）のエラーが発生しているかどうかをチェックする。エラーがなければ、チャネルプロセッサ（２２０）はプロセス（７７０）にてメモリダンプの指示をネットワークデータコントローラ（２２３）に対して行う。ネットワークデータコントローラ（２２３）は、ローカルメモリ（４１０）の情報等をプロセス（７６５）にてＤＭＡ転送にてメモリダンプする。もし内部バス（２１４、２２５）にエラーが発生していた場合、メモリダンプは行わない。次にチャネルプロセッサ（２２０）は外部からの障害発生ファイルサーバボード停止要求に応じて、プロセス（７９０）にて制御データコントローラ（２２１）に対して強制停止命令を発行する。制御データコントローラ（２２１）は電源制御手段（４５８）によって、サーバプロセッサ（２１０）を強制停止させる機能を持っており，上記強制停止命令を受けて，サーバプロセッサ（２１０）は強制閉塞する。以上の処理では、通常のバス以外に障害情報を送信するパスを設けているので、バスに障害があった場合でも障害情報をチャネルプロセッサ（２２０）に対して送信でき、障害処理の高信頼化を図ることが可能となる。図７では、単一ファイルサーバボード（１１２）内の障害情報の通信方法を示したので、これを用いて複数ファイルサーバボード（１１２）間でのフェイルオーバーを行う方法について以下で説明する。
【００４０】
図８は、本発明の実施例１のサーバプロセッサ障害時のフェイルオーバーのフローチャートを示した図である。８００は図７同様、サーバプロセッサ（２１０）に障害が発生し、例外処理を行う必要があることを示す。障害を感知したチャネルプロセッサ（２２０）は図７で説明したサーバプロセッサ障害発生時の処理を行う。その中で制御メモリ（１３１）に対して障害情報と障害処理要求を書き込む。その後フェイルオーバー先のファイルサーバボード（１１５）がプロセス（８１０）にて障害処理を検知する。その後ファイルサーバボード（１１５）は障害発生元のファイルサーバボード（１１２）に対して停止要求を出す。その後停止完了の通知が来るまでプロセス（８１５）の待ち状態に入る。ファイルサーバボード（１１５）からのファイルサーバボード停止要求を受けた、ファイルサーバボード（１１２）は図７で説明したように、サーバプロセッサを停止する。さらに、プロセス（８２０）で残っているＩ／Ｏ処理を破棄した後、制御メモリ（１３１）に対してファイルサーバボード（１１２）の停止を書き込み、チャネルプロセッサを停止する。ファイルサーバボード（１１２）の停止を受けた制御メモリ（１３１）はプロセス（８２５）にてストレージ装置（１００）の構成情報を更新し、停止をフェイルオーバー先のファイルサーバボード（１１５）に通知する。停止の通知を受けた、フェイルオーバー先のファイルサーバボード（１１５）はプロセス（９３０）にてファイルサーバの引継ぎを行い、その結果を管理プロセッサ（２５５）に通知し、フェイルオーバーを完了する。
【００４１】
以上述べた実施例により本特許に開示されたＳＡＮ／ＮＡＳ統合型ストレージ装置を使うと、通常のＩ／Ｏ処理では、サーバプロセッサ（２１０）、チャネルプロセッサ（２２０）毎にコマンドキュー（ＣｍｄＱｕｅｕｅ）（６０２、６０７）、ステータスキュー（ＳｔＱｕｅｕｅ）（６３２、６３７）を持つことにより、非同期にコマンド処理、ステータス処理を進めることが可能になり、またコマンド、データを独立のパスを用いて処理することも可能になるので、Ｉ／Ｏ処理性能を向上できる。さらに、コマンド、データで独立なパスを使い、またコマンドを拡張することにより、ファイルサーバ固有のＩ／Ｏ特性をストレージ装置に伝えることが可能となり、ディスクキャッシュ（１３２）のヒット率の向上等のストレージ装置（１００）最適化が図れる。さらに同一ボード上にファイルサーバ、ディスク制御装置のチャネルアダプタがあり、同一の管理プロセッサ（２５５）、管理ディスプレイ（２６０）で管理することが可能になるので、設置面積の減少、管理コストの削減ができる。障害処理では、管理バス（４５５）から障害情報を送信し、ストレージ装置（１００）で共有している制御メモリ（１３１）に書き込むことで、バスの障害にかかわらず、他のファイルサーバボードに対して早く障害情報を伝えることが可能となり、フェィルオーバーの効率を上げ、信頼性を向上できる。
【００４２】
（実施例２）
図９は、本発明の実施例２のサーバプロセッサ障害時のフェイルオーバのフローチャートを示す図である。
図８では、障害発生元のファイルサーバボード（１１２）が自立的に障害発生をフェイルオーバー先のファイルサーバボード（１１５）に通知したが、障害のよっては通知ができない場合があり、障害処理が開始できない。このようなケースを避けるため、フェイルオーバー先のファイルサーバボード（１１５）が積極的に他のファイルサーバボード（１１２）を監視する方式が考えられる。正常な場合、ファイルサーバボード（１１２）は一定時間間隔でハートビートをフェイルオーバー先のファイルサーバボード（１１５）に伝える。もしプロセス（９００）のように、障害が発生して一定時間内にこのハートビートが通知されない場合、フェイルオーバー先のファイルサーバボード（１１５）は障害が発生と判断し、プロセス（９０５）のように障害処理を開始する。障害発生元のファイルサーバボード（１１２）が障害情報を制御メモリ（１３１）に書き込んだ後、フェイルオーバー先のファイルサーバボード（１１５）は制御メモリ（１３１）に構成情報を読み出し、障害が発生したことを確認し障害処理内容を確定する。その後プロセス（９０５）にてファイルサーバボード（１１５）は障害発生元のファイルサーバボード（１１２）に対して停止要求を出す。その後の処理は図８と同様に、その後停止完了の通知が来るまでプロセス（９２０）の待ち状態に入る。ファイルサーバボード（１１５）からのファイルサーバボード停止要求を受けた、ファイルサーバボード（１１２）は図７で説明したように、サーバプロセッサを停止する。さらに、プロセス（９２５）で残っているＩ／Ｏ処理を破棄した後、制御メモリ（１３１）に対してファイルサーバボード（１１２）の停止を書き込み、チャネルプロセッサを停止する。ファイルサーバボード（１１２）の停止を受けた制御メモリ（１３１）はプロセス（９３０）にてストレージ装置（１００）の構成情報を更新し、停止をフェイルオーバー先のファイルサーバボード（１１５）に通知する。停止の通知を受けた、フェイルオーバー先のファイルサーバボード（１１５）はプロセス（９３５）にてファイルサーバの引継ぎを行い、その結果を管理プロセッサ（２５５）に通知し、フェイルオーバーを完了する。
以上述べた実施例により、開示されたＳＡＮ／ＮＡＳ統合型ストレージ装置を使うと、障害発生元のファイルサーバボード（１１２）から障害発生の送信ができない場合でも早い段階でフェイルオーバー先のファイルサーバボード（１１５）が障害発生の検知、確認を行うことが可能となり、フェィルオーバーの効率を上げ、信頼性を向上できる。
【００４３】
【発明の効果】
本発明によれば、ファイルサーバとディスク制御装置間のＩ／Ｏコマンド、データの送受信を独立して行えるため、Ｉ／Ｏ処理性能が向上できるという効果がある。またアプリケーション、ファイルシステムのＩ／Ｏ特性情報をディスク制御装置に与えることができるため、Ｉ／Ｏ処理の最適化ができるという効果がある。また同一のボード上にファイルサーバとディスク制御装置のチャネルアダプタを実装し、統一した管理プロセッサ、管理プロセッサで管理するために、装置の設置面積の減少、管理コストの削減ができる効果がある。また、独立した経路でファイルサーバの障害情報を共有できるため、フェイルオーバーの効率化、高信頼化ができるという効果がある。
【図面の簡単な説明】
【図１】本発明のＳＡＮ／ＮＡＳ統合型ストレージシステムの構成図。
【図２】本発明におけるファイルサーバ部とチャネルアダプタ部を統合した、ファイルサーバボードの構成図。
【図３】比較例のＳＡＮ／ＮＡＳ統合型ストレージシステムの構成図。
【図４】実施例１におけるファイルサーバボードのハード構成図。
【図５】実施例１のコマンドデータブロックのフォーマットを示す図。
【図６】実施例１のデータアクセス時のフローチャートを示す図。
【図７】実施例１のサーバプロセッサ障害発生時のフローチャートを示す図。
【図８】実施例１のサーバプロセッサ障害時のフェィルオーバーのフローチャートを示す図。
【図９】実施例２のサーバプロセッサ障害時のフェィルオーバーのフローチャートを示す図。
【符号の説明】
１００、１０１、１５０、１５１：ファイバチャネルインターフェィス、  １０２：イーサネットインターフェイス、  １１０：チャネルアダプタ、１１２：ファイルサーバボード、１１３：ファイルサーバ部、１１４：チャネルアダプタ部、  １３０：相互結合網、  １３１：ディスクキャッシュ、  １３２：制御メモリ、  １４０、１４２：ディスクアダプタ、  １６０，１６１：ドライブ。
【図１】
2004220216.tif 000003
【図２】
2004220216.tif 000004
【図３】
2004220216.tif 000005
【図４】
2004220216.tif 000006
【図５】
2004220216.tif 000007
【図６】
2004220216.tif 000008
【図７】
2004220216.tif 000009
【図８】
2004220216.tif 000010
【図９】
2004220216.tif 000011