(57)【要約】【課題】  複数本の接続や特殊な装置を持たずにSCSIとTCP/IPすなわちNFSのプロトコルをサポートし、目的に応じて使い分け可能にする。【解決手段】  磁気ディスク１１０内にプロトコル毎のパーティションを設けておき、プロトコル判定部１０６においてヘッダ情報からプロトコルを判定して該当するパーティションをチェックすることにより、異なったブロック位置へ誤ってアクセスしファイルシステムを破壊することを防ぐ。TCP/IPの場合は更にNFSコマンドであるかを処理判定部１０７で判定してNFSファイルシステムとしての処理をNFS処理部１０８で行う。また、SCSIの場合はプロトコル判定部１０６から磁気ディスク１０１へ直接渡す。【選択図】  図１
2006221675.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する磁気ディスクと、クライアントと接続されこのクライアントからのコマンドを受け取るコマンドインターフェイスと、前記クライアントからのコマンドに従い前記磁気ディスクに対してデータの書き込み或いは読み出しを行うディスクインターフェイスと、これら各手段を管理するプロセッサとを備えた共有ディスク装置において、
接続された前記クライアントが使用するプロトコルの種類毎に前記磁気ディスクにパーティションを設ける共有ディスク装置。
【請求項２】
データを格納する磁気ディスクと、クライアントと接続されこのクライアントからのコマンドを受け取るコマンドインターフェイスと、前記クライアントからのコマンドに従い前記磁気ディスクに対してデータの書き込み或いは読み出しを行うディスクインターフェイスと、これら各手段を管理するプロセッサとを備えた共有ディスク装置において、
前記コマンドインタフェースからのデータがTCP/IPとSCSIとのいずれかのプロトコルかを識別する識別手段と、前記磁気ディスクにパーテションとを備え、前記クライアントが使用するプロトコルの種類毎に前記パーテションの識別子を付し、前記識別手段は前記プロトコル及び／または前記識別子により前記データがアクセスするパーティションを決定する共有ディスク装置。
【請求項３】
データを格納する磁気ディスクと、クライアントと接続されこのクライアントからのコマンドを受け取るコマンドインターフェイスと、前記クライアントからのコマンドに従い前記磁気ディスクに対してデータの書き込み或いは読み出しを行うディスクインターフェイスと、これら各手段を管理するプロセッサとを備えた共有ディスク装置において、
前記コマンドインタフェースからのデータがTCP/IPとSCSIのプロトコルがいずれであるのかを識別する識別手段と、この識別手段でTCP/IPと判定した場合にNF
Sのコマンドであるか否かを判定する判定手段と、この判定手段でNFSと判定した場合にNFSファイルシステムの処理を実施してSCSIコマンドに変換して前記磁気ディスクへアクセスする手段と、前記識別手段でSCSIと判定した場合にSCSIコマンドを用いて前記磁気ディスクへアクセスする手段を備えた共有ディスク装置。
【請求項４】
前記TCP/IPと前記SCSIのプロトコルのいずれかを識別する手段としては、ファイバチャネルのフレームヘッダの送信元のIDを参照する手段と、送信元のIDと使用するプロトコルの関係を記述したテーブルと、このテーブルを参照してプロトコルを識別する手段とを備えた請求項２または３に記載の共有ディスク装置。
【請求項５】
クライアントからコマンドを受け取り、このコマンドのプロトコルがSCSIかTCP/IPかを判定し、SCSIの場合には前記コマンドをディスクインターフェイスへ受け渡し、TCP/IPの場合には前記コマンドがNFSか否かを判定し、NFSのコマンドの場合にはSCSIコマンドに変換してディスクインターフェイスへ受け渡し、ディスクインターフェイスは受け渡されたコマンドをディスクに発行して前記コマンドを実行する異種プロトコルを使用したディスク共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多量のデータを記憶できるディスク装置に係り、特にホストとのインタフェースに高速データ転送が可能なファイバチャネルを備え、複数台のホストから共有されるディスク装置に関する。
【背景技術】
【０００２】
磁気ディスク装置或いはディスクアレイ装置とホストコンピュータを接続する手段としては、SCSIを使用する事が多い。
【０００３】
近年、蓄積するデータ量の増加に伴い、ユーザのシステムではファイルサーバの設置や複数のサーバとクライアントをネットワーク接続する形態が普通となってきている。この様な状況において、あるメーカのデータベースソフトを使用して、別のメーカのワークフローソフトを使用するといった場合には各メーカのソフトが動くクライアントを各々用意せざるを得ない。ところが、SCSIのインタフェースではホストのファイルシステムにより磁気ディスク上のデータの管理方法が異なるため、異なるメーカのクライアントでは磁気ディスクの共有が難しい。
【０００４】
それに対してNFSは、ネットワークのTCP/IPを利用し異なるメーカのクライア
ントからファイルの共有を実現している。しかしながら、メーカに依存しないファイル操作のコマンドを使用する事から、サーバでマッピングするために使用できないクライアント特有のファイル属性があったり、プロトコルのオーバーヘッドが大きいのでデータ転送性能が低いという問題がある。
【０００５】
このように複数のプロトコルの各特徴を利用するため、異種プロトコル混在型の光ネットワークが提案されている。特開平9-51322号公報では複数のプロトコ
ル各々に対して別の光波長を割り当てることにより、同一の光ネットワークに異種プロトコルを混在可能としている。
【０００６】
また、特開平10-149334号公報ではパーソナルコンピュータのPCIバスにファイバチャネルインターフェイスアダプタを接続する手段を開示している。この様にTCP/IPのプロトコルを使用することで従来のイーサネット（イーサネットは登録商標）経由のNFSと同様に制御することも可能である。
【０００７】
【特許文献１】特開平9-51322号公報
【特許文献２】特開平10-149334号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のようにNFSを使用することにより大容量の磁気ディスクの共用化が可能になるが、共用化をした場合にはデータ転送性能が低下する事と各ホスト固有のファイル属性がそのままでは使用できなくなるという問題が残る。特開平9-5132
2号公報に記載の様に光ネットワークを使用して複数のプロトコルに別の光波長を割り当てる方法を使用すれば、TCP/IP(すなわちNFS)とSCSIのプロトコルを同
時に使用できるので、使用目的に応じて使い分ける事により、前記問題点を解決できる。
【０００９】
しかしながら、光波長を割り当てる方法は特殊な光波長のフィルタが必要であるとともに、一般的な規格ではないために使用範囲が制限される。
【００１０】
また、ファイバチャネルインターフェイスを使用すれば、TCP/IP(すなわちNFS
)とSCSIのプロトコルを使用可能であり、ANSIによる規格であるため広く利用可
能であるが、特開平10-149334号公報には複数のプロトコルを同時に使用するこ
とまでは規定されておらず、各ホスト固有の専用ファイルへTCP/IPとSCSIとの共有ファイルとしてそのままアクセスできる様にすると、データが破壊されてしまう問題が生じる。
【００１１】
本願発明の目的は、TCP/IP(すなわちNFS)とSCSIとのプロトコルを同時に且つ
各ホスト固有のファイル属性も使用することができ、さらに各ホスト固有のファイル属性を使用する場合に誤って異なるファイルにアクセスしてもデータを破壊することがない共有ディスク処理装置を提供することにある。
【００１２】
また、本願発明の他の目的は、ANSIの規格に準拠した上で複数のプロトコルを同時に使用可能とする共有ディスク処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明では、TCP/IPとSCSIのプロトコルを識別する手段と、SCSIコマンドでアクセスするデータとNFSコマンドとでアクセスするデ
ータとにパーティションとを設け誤ったアクセスによるデータ破壊を防止する。
【００１４】
また、TCP/IPとSCSIのプロトコルを識別する手段と、この識別手段でTCP/IPと判定した場合にNFSのコマンドであるか否かを判定する手段と、この判定手段でNFSと判定した場合にNFSファイルシステムの処理を実施してSCSIコマンドに変換して磁気ディスクへアクセスする手段と、前記識別手段でSCSIと判定した場合にSCSIコマンドを用いて磁気ディスクへアクセスする手段を使用する。
【００１５】
更に、前記TCP/IPとSCSIのプロトコルを識別する手段としてファイバチャネルのヘッダ情報のソースIDを参照する手段と、ソースIDから使用するプロトコルを判定するテーブルを備える手段を使用する。
【００１６】
更に、前記NFSのコマンドであるか否かを判定する手段にてNFSでないと判定した場合にTelnetの処理を実施して磁気ディスクを制御するプロセッサにリモートログインする手段を使用する。
【発明の効果】
【００１７】
本発明によれば、同一のファイバチャネルに接続したクライアントから必要に応じてNFSとSCSIコマンドを使い分けて同一のファイルサーバへアクセスできるので、クライアント間でデータを共有する場合はNFSコマンドを使用し、データ
を共有せずに高速にアクセスしたい場合はSCSIコマンドを使用できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施例を図１と図２を使用して説明する。図１はファイルサーバ１０１と上位装置であるクライアント１０２，１０３とをファイバチャネルインターフェイス１０５を介して接続したシステム構成と処理手順を示す図である。また、図２はファイバチャネルで使用されるヘッダの構造図である。
【００１９】
先ず、図１の構成を説明する。一般に、ホストたるクライアントとサーバのと接続にはSCSIやイーサネットを使用することが多いが、これらに代わり、最近ファイバチャネルが注目されている。ファイバチャネルは光ファイバか銅線を使用して100MB/sでデータを転送する規格であり、物理層と下位の論理層を規定して
いる。上位の論理層に関しては枠組みだけであり、ファイバチャネルの中にSCSI
-3やTCP/IPのプロトコルを通すことが可能であるため、例えばSCSI-3のプロトコルを使用することで従来のSCSIの磁気ディスクの様に制御することができる。このファイバチャネルの光ケーブル１０４を経由してファイルサーバ１０１はクライアント１０２とクライアント１０３に接続される。
【００２０】
コマンドインターフェイスであるファイバチャネルインタフェース１０５は光ケーブル１０４の光信号を電気信号に変換するとともにクライアントからのヘッダ情報からファイルサーバ１０１宛てのデータ（コマンド）を選別する。また、逆にクライアント１０２とクライアント１０３に対して相手先をヘッダ情報に入れ、電気信号を光信号に変換して光ケーブル１０４へ送り出す。プロトコル判定部１０６はヘッダ情報の内容から送られて来たデータ（コマンド)のプロトコル
がSCSIかTCP/IPかを識別する手段である。
【００２１】
処理判定部１０７はTCP/IPのプロトコルで送られて来たデータ（コマンド）がNFSのコマンドか、NFSコマンド以外かを判定する手段である。NFS処理部１０８
はNFSコマンドを受け取り、独自のファイルシステムに従ってSCSIコマンドへ変
換し、記録媒体である磁気ディスク１１０へデータを書き込む、あるいは磁気ディスク１１０に記録されているデータを読み出す。磁気ディスクインタフェース１０９はSCSIコマンドで磁気ディスク１１０にデータを書き込む、あるいはデータを読み出すためのインタフェースである。
【００２２】
クライアント１０２からSCSIコマンドでファイルサーバ１０１のデータを読み出す場合の処理を以下に示す。クライアント１０２はSCSIのREADコマンドを光ケーブル１０４経由でファイルサーバ１０１のファイバチャネルインタフェース１０５へ送る。ファイバチャネルインタフェース１０５では図２のデスティネーションID２０２の内容をチェックしてファイルサーバ１０１宛てのREADコマンドを選別し、プロトコル判定部１０６へREADコマンドを受け渡す。
【００２３】
プロトコル判定部１０６では図２のプロトコル２０３がSCSIかTCP/IPかをチェックし、ここではSCSIのため磁気ディスクインタフェース１０９へREADコマンドを渡す。SCSIのREADコマンドではファイル名等の位置をクライアント１０２で管理しているので、READコマンドのパラメタとしては磁気ディスク上のブロック位置が単純に指定されるだけである。
【００２４】
磁気ディスクインタフェース１０９は磁気ディスク１１０へREADコマンドを発行してREADコマンドで指定されたブロックのデータを読み出す。読み出したデータは磁気ディスクインタフェース１０９からファイバチャネルインタフェース１０５へ送られ、ファイバチャネルインタフェース１０５にてソースID２０１がファイルサーバ１０１、デスティネーションID２０２がクライアント１０２、プロトコル２０３がSCSIのヘッダ情報を付加して光ケーブル１０４へ送り出される。クライアント１０２はデスティネーションID２０２がクライアント１０２宛てのデータを光ケーブル１０４から拾い上げて、READコマンドに対して読み出したデータを受け取る。
【００２５】
次にクライアント１０３からNFSコマンドでファイルサーバ１０１のデータを読み出す場合の処理を以下に示す。NFSでファイルサーバ上のデータを使用する
には、予めファイルサーバ１０１がクライアント１０３へ公開するファイルをエキスポートし、クライアント１０３がNFSマウントする必要があるが、ここでは
説明を省略する。クライアント１０３はTCP/IPを使用してNFSのREADコマンドを
発行し、光ケーブル１０４経由でファイルサーバ１０１のファイバチャネルインタフェース１０５へ送る。ファイバチャネルインタフェース１０５では図２のデスティネーションID２０２の内容をチェックしてファイルサーバ１０１宛てのREADコマンドを選別し、プロトコル判定部１０６へREADコマンドを渡す。
【００２６】
プロトコル判定部１０６では図２のプロトコル２０３の内容をチェックし、ここではTCP/IPのため処理判定部１０７へREADコマンドを渡す。処理判定部１０７では渡されたコマンドがNFSコマンドか否かを判定する。この場合のREADコマン
ドはNFSコマンドの一つであるため、NFS処理部１０８へREADコマンドを更に渡す
。NFSのREADコマンドではファイル名等の位置をNFS処理部１０８が管理しているので、READコマンドのパラメタとしてはファイル名あるいはファイル名の代わりとなるファイルディスクリプタとファイルの先頭からのオフセットが指定される
。NFS処理部１０８はNFSのREADコマンドをSCSIのREADコマンドへ変換し、ファイル名とファイル先頭からのオフセットを使用して磁気ディスク上のブロック位置を算出して、磁気ディスクインタフェース１０９へSCSIのREADコマンドとブロック位置を渡す。
【００２７】
磁気ディスクインタフェース１０９は磁気ディスク１１０へREADコマンドを発行してREADコマンドで指定されたブロックのデータを読み出す。読み出したデータは磁気ディスクインタフェース１０９からNFS処理部１０８へ送られ、NFS処理部１０８にてNFSのデータフォーマットに変換し、ファイバチャネルインタフェ
ース１０５へ送る。ファイバチャネルインタフェース１０５にてソースID２０１がファイルサーバ１０１、デスティネーションID２０２がクライアント１０３、プロトコル２０３がTCP/IPのヘッダ情報を付加して光ケーブル１０４へ送り出される。クライアント１０３はデスティネーションID２０２がクライアント１０３宛てのデータを光ケーブル１０４から拾い上げて、READコマンドに対して読み出したデータを受け取る。
【００２８】
以上説明したように本実施例によれば、同一のファイバチャネルに接続したクライアントから必要に応じてNFSとSCSIコマンドを使い分けて同一のファイルサーバへアクセスできるので、クライアント間でデータを共有する場合はNFSコマ
ンドを使用し、データを共有せずに高速にアクセスしたい場合はSCSIコマンドを使用できる。尚、本実施例に於いてはクライアント１０２からSCSI、クライアント１０３からNFSでのデータのやり取りを説明したが、いずれのクライアントで
いずれのファイルシステム、若しくは双方のファイルシステムを使用してもよい
。
【００２９】
次に図３を使用して本発明による異種ファイルシステムによるデータ破壊防止のためにクライアント（プロトコル）毎に使用する磁気ディスクの位置をパーティションにより仕切り、パーティション毎に識別子を設けた実施例を説明する。
【００３０】
図３は光ケーブル１０４に接続されたクライアントを管理するためのテーブルを示す。項目３０１は光ケーブル１０４に接続しているクライアントのID、項目３０２は各クライアントの使用しているプロトコルがTCP/IPすなわちNFSかSCSIかの情報、項目３０３は各クライアント（プロトコル）の使用する磁気ディスク１１０のパーティションの識別子を表している。TCP/IPは共用のファイルシステムであるので同一のパーティション識別子であり、SCSIは専用のファイルシステムであるので同じSCSI同士でも異なったパーティション識別子となる。
【００３１】
まず、プロトコル判定部１０６にて図２のプロトコル２０３とソースID２０１が図３のクライアントID３０１とプロトコル３０２に適合するかをチェックすることで、誤ったプロトコルによるアクセスを防止する。そして、NFSの場合はNFS処理部１０８にて磁気ディスク１１０上のブロック位置とプロトコル３０２がTCP/IPであるパーティション３０３のブロック位置をチェックすることにより、誤ったパーティションへのアクセスを防止する。また、SCSIの場合にはプロトコル判定部１０６にて磁気ディスク１１０上のブロック位置とプロトコル３０２がSCSIであるパーティション３０３のブロック位置をチェックすることにより、誤ったパーティションへのアクセスを防止する。
【００３２】
この様にして、誤ったパーティションへのアクセスをチェックできるので、パーティションとプロトコルの不整合により発生するデータ破壊を防止することができる。
【００３３】
尚、一つのクライアントが一つのプロトコルのみを使用する（例えばこの図に示すクライアント１０３）のであれば、ファイバチャネルインターフェイス１０５からのヘッダ情報が不十分でプロトコル情報が欠落しており、プロトコル判定部１０６で判定できない場合であっても、ソースID２０１から項目３０１のどのクライアントかを判定し、クライアント１０３であれば該当する項目３０２からプロトコルはTCP/IPであると判定できる。
【００３４】
以下、本発明の別の実施例を図４を使用して説明する。図４はファイルサーバの別の構成を示す図である。
【００３５】
ファイバチャネルアダプタ４０１は光ケーブル１０４とバス４０７を接続するアダプタであり、光ケーブル１０４のデータ（コマンド）をバス４０７経由でメモリ４０３へ書き込む、あるいはメモリ４０３のデータをバス４０７経由で光ケーブル１０４へ送り出す。ＣＰＵ４０２は、ＲＯＭ(Read Only Memory)４０４に書き込まれたプログラムに従ってファイルサーバ全体を制御するプロセッサである。メモリ４０３は光ケーブル１０４と磁気ディスク４０６の間でデータ交換する際の一時的なバッファに使用する他、ＣＰＵ４０２の一時的なデータの記憶場所に使用する。
【００３６】
ＲＯＭ４０４はＣＰＵ４０２のプログラムを格納する。格納するプログラムはＣＰＵ４０２が様々なプログラムを実行する上で基本とするオペレーティングシステムと、プロトコル判定部１０６、処理判定部１０７、NFS処理部１０８に相
当する処理手順である。SCSIアダプタ４０５は磁気ディスク４０６とバス４０７を接続するアダプタであり、図１の磁気ディスクインターフェイス１０９に相当するものであり、磁気ディスク４０６のデータをバス４０７経由でメモリ４０３へ書き込む、あるいはメモリ４０３のデータをバス４０７経由で磁気ディスク４０６へ書き込む。
【００３７】
処理の手順自体は図１の構成と同じである。すなわち、クライアント１０２（
図１参照）からSCSIコマンドでファイルサーバ１０１のデータを読み出す場合の処理は以下の通りである。
【００３８】
クライアント１０２はファイバチャネルのプロトコルに従いSCSIのREADコマンドを光ケーブル１０４経由でファイルサーバ１０１のファイバチャネルアダプタ４０１へ送る。図１に示した実施例のファイバチャネルインターフェイス１０５に相当するファイバチャネルアダプタ４０１では図２のデスティネーションID２０２の内容をチェックしてファイルサーバ１０１宛てのREADコマンドを選別し、メモリ４０３へ書き込む。
【００３９】
ＲＯＭ４０４内に書き込まれたプロトコル判定部１０６の処理内容を実現するプログラムに従ってＣＰＵ４０２は、メモリ４０３へ書き込まれたREADコマンドの図２のプロトコル２０３の内容をチェックする。ここではSCSIのためメモリ４０３からSCSIアダプタ４０５へREADコマンドを受け渡す。
【００４０】
図１に示した磁気ディスクインターフェイス１０９に相当するSCSIアダプタ４０５は磁気ディスク４０６へREADコマンドを発行してREADコマンドで指定されたブロックのデータを読み出す。読み出したデータはSCSIアダプタ４０５からメモリ４０３へ書き込む。更にメモリ４０３からファイバチャネルアダプタ４０１へ送り、ファイバチャネルアダプタ４０１にてソースID２０１がファイルサーバ１０１、デスティネーションID２０２がクライアント１０２、プロトコル２０３がSCSIのヘッダ情報を付加して光ケーブル１０４へ送り出される。クライアント１０２はデスティネーションID２０２がクライアント１０２宛てのデータを光ケーブル１０４から拾い上げて、READコマンドに対して読み出したデータを受け取る
。
【００４１】
クライアント１０３からのNFSコマンドでのアクセスも同様であり、プロトコ
ル判定部１０６、処理判定部１０７、NFS処理部１０８に相当する処理の手順が
プログラムとしてＲＯＭ４０４に書き込まれており、プロトコル判定部に相当する処理を行うプログラムでTCP/IPと識別された場合には、処理判定部に相当するプログラムがNFSコマンドかどうか判定し、NFSコマンドであればNFS処理部に相
当するプログラムによってSCSIコマンドに変換されSCSIアダプタに送られる。
【００４２】
クライアント１０３からTelnetを使用してファイルサーバ１０１へリモートログインするには、ファイバチャネルのプロトコルに従いTCP/IPを使用してTelnetコマンドを発行し、光ケーブル１０４経由でファイルサーバ１０１のファイバチャネルアダプタ４０１へ送る。ファイバチャネルアダプタ４０１では図２のデスティネーションID２０２の内容をチェックしてファイルサーバ１０１宛てのTelnetコマンドを選別し、メモリ４０３へ書き込む。
【００４３】
ＲＯＭ４０４内のプロトコル判定部１０６の処理内容を実現するプログラムに従いＣＰＵ４０２はメモリ４０３へ書き込まれたTelnetコマンドの図２のプロトコル２０３の内容をチェックする。ここではTCP/IPのため更にＲＯＭ４０４内の処理判定部１０７の処理内容を実現するプログラムに従いＣＰＵ４０２はメモリ４０３へ書き込まれたTelnetコマンドをチェックする。NFSコマンドではないの
で、ＲＯＭ４０４内のオペレーティングシステムの処理にコマンドを渡す。
【００４４】
UNIX（ＵＮＩＸは登録商標）系のオペレーティングシステムでは標準でTelnetコマンドをサポートしているため、特別にプログラムをＲＯＭ４０４へ組み込まなくともTelnetに対する処理が実現できる。
【００４５】
以上説明したように本実施例によれば、特殊なハードウェアを使用せず普及しているプロセッサを使用しても、同一のファイバチャネルに接続したクライアントから必要に応じてNFSとSCSIコマンドを使い分けて同一のファイルサーバへアクセスできるので、クライアント間でデータを共有する場合はNFSコマンドを使
用し、データを共有せずに高速にアクセスしたい場合はSCSIコマンドを使用できる。また、ファイバチャネル経由でTelnetによりリモートログインすることにより、データ経路とは別の回線を持たずにファイルサーバ１０１の様々な設定が可能になる。
【図面の簡単な説明】
【００４６】
【図１】システム構成及び処理手順を示す図である。
【図２】ファイバチャネルのヘッダ構造図である。
【図３】クライアント管理テーブルの構成図である。
【図４】システム構成図である。
【符号の説明】
【００４７】
１０１…ファイルサーバ、１０２…クライアント、１０３…クライアント、１０４…光ケーブル、１０５…ファイバチャネルインタフェース、１０６…プロトコル判定部、１０７…処理判定部、１０８…NFS処理部、１０９…磁気ディスクイ
ンタフェース、１１０…磁気ディスク、２０１…ソースＩＤ、２０２…ディスティネーションＩＤ、２０３…プロトコル、３０１…クライアントＩＤ、３０２…プロトコル、３０３…パーティション、４０１…ファイバチャネルアダプタ、４０２…ＣＰＵ、４０３…メモリ、４０４…ＲＯＭ、４０５…ＳＣＳＩアダプタ、４０６…磁気ディスク。
【図１】
2006221675.tif 000003
【図２】
2006221675.tif 000004
【図３】
2006221675.tif 000005
【図４】
2006221675.tif 000006