(57)【要約】【課題】メインフレームシステム及びオープンシステムがデータを共有することができ、かつ、必要な記憶容量が小さい記憶装置を提供する。【解決手段】複数のホストコンピュータ装置に接続されるデータ共有ディスク装置において、複数のホストコンピュータ装置の各々と接続される複数の仮想ディスク部と、複数の前記複数の仮想ディスク部に接続されるネットワーク部と、前記ネットワーク部に接続されるコントローラ部と、前記コントローラ部に接続されるディスク部と、を備え、前記仮想ディスク部の各々は、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行い、及び、前記ネットワーク部を経由して、前記コントローラ部とファイルアクセスプロトコルによる通信を行い、前記コントローラ部は、前記ディスク部とブロックアクセスプロトコルによる通信を行う。【選択図】      図１
2005346426.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストコンピュータ装置に接続され、前記ホストコンピュータ装置からの要求に基づいてデータを格納するデータ共有ディスク装置において、
前記ホストコンピュータ装置の各々と接続される複数の仮想ディスク部と、
複数の前記仮想ディスク部に接続されるネットワーク部と、
前記ネットワーク部に接続されるコントローラ部と、
前記コントローラ部に接続されるディスク部と、を備え、
前記仮想ディスク部の各々は、
前記ホストコンピュータ装置に接続され、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行うホストインターフェース部と、
前記ネットワーク部に接続され、前記ネットワーク部を経由して前記コントローラ部とファイルアクセスプロトコルによる通信を行う第１ネットワークインターフェース部と、
データが一時的に格納されるキャッシュ部と、
前記ホストインターフェース部が受信したブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換し、前記第１ネットワークインターフェース部が受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する第１コマンド変換部と、
前記ホストコンピュータ装置からのデータの書き込み要求に基づいて、当該書込要求に係るデータに対応するデータを前記キャッシュ部から消去又は更新する要求を他の前記仮想ディスク部に送信するキャッシュ同期部と、を備え、
前記コントローラ部は、
前記ネットワーク部に接続され、前記ネットワーク部を経由して前記複数の仮想ディスク部とファイルアクセスプロトコルによる通信を行う第２ネットワークインターフェース部と、
前記ディスク部に接続され、前記ディスク部とブロックアクセスプロトコルによる通信を行うディスクインターフェース部と、
前記第２ネットワークインターフェース部が受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換し、前記ディスクインターフェース部が受信したブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換する第２コマンド変換部と、を備えることを特徴とするデータ共有ディスク装置。
【請求項２】
複数のホストコンピュータ装置に接続され、前記ホストコンピュータ装置からの要求に基づいてデータを格納するデータ共有ディスク装置において、
前記複数のホストコンピュータ装置の各々と接続される複数の仮想ディスク部と、
複数の前記複数の仮想ディスク部に接続されるネットワーク部と、
前記ネットワーク部に接続されるコントローラ部と、
前記コントローラ部に接続されるディスク部と、を備え、
前記仮想ディスク部の各々は、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行い、及び、前記ネットワーク部を経由して、前記コントローラ部とファイルアクセスプロトコルによる通信を行い、
前記コントローラ部は、前記ディスク部とブロックアクセスプロトコルによる通信を行うことを特徴とするデータ共有ディスク装置。
【請求項３】
前記仮想ディスク部の各々は、
前記ホストコンピュータ装置に接続され、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行うホストインターフェース部と、
前記ネットワーク部に接続され、前記ネットワーク部を経由して前記コントローラ部とファイルアクセスプロトコルによる通信を行う第１ネットワークインターフェース部と、
前記ホストインターフェース部が受信したブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換し、前記第１ネットワークインターフェース部が受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する第１コマンド変換部と、を備え、
前記コントローラ部は、
前記ネットワーク部に接続され、前記ネットワーク部を経由して前記複数の仮想ディスク部とファイルアクセスプロトコルによる通信を行う第２ネットワークインターフェース部と、
前記ディスク部に接続され、前記ディスク部とブロックアクセスプロトコルによる通信を行うディスクインターフェース部と、
前記第２ネットワークインターフェース部が受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換し、前記ディスクインターフェース部が受信したブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換する第２コマンド変換部と、を備えることを特徴とする請求項２に記載のデータ共有ディスク装置。
【請求項４】
前記複数の仮想ディスク部は、データが一時的に格納されるキャッシュ部と、
前記ホストコンピュータ装置からのデータの書き込み要求に基づいて、当該書込要求に係るデータに対応するデータを前記キャッシュ部から消去又は更新する要求を他の前記仮想ディスク部に送信するキャッシュ同期部と、を備えることを特徴とする請求項３に記載のデータ共有ディスク装置。
【請求項５】
前記仮想ディスク部のうち少なくとも一つが備えるホストインターフェース部は、ファイバーチャネル、ＳＣＳＩ又はｉＳＣＳＩインターフェースであり、別の前記仮想ディスク部のうち少なくとも一つが備えるホストインターフェース部は、ＥＳＣＯＮ又はＦＩＣＯＮインターフェースであることを特徴とする請求項３に記載のデータ共有ディスク装置。
【請求項６】
前記ネットワーク部は、少なくとも一つの前記ホストコンピュータ装置と接続され、
前記コントローラ部は、前記少なくとも一つのホストコンピュータ装置と、ファイルアクセスプロトコルによる通信を行うことを特徴とする請求項３に記載のデータ共有ディスク装置。
【請求項７】
ホストコンピュータ装置に接続され、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行う複数のホストインターフェース部と、
ネットワークに接続され、前記ネットワークを経由して、前記ネットワークに接続されたストレージ装置とファイルアクセスプロトコルによる通信を行う複数のネットワークインターフェース部と、
前記ホストインターフェース部が受信したブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換し、前記ネットワークインターフェース部が受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換するコマンド変換部と、を備えることを特徴とする仮想ディスク装置。
【請求項８】
データが一時的に格納されるキャッシュ部と、
前記ホストコンピュータ装置からのデータの書き込み要求に基づいて、当該書込要求に係るデータに対応するデータを前記キャッシュ部から消去又は更新する要求を、前記ネットワークに接続された他の前記仮想ディスク装置に送信するキャッシュ同期部と、を備えることを特徴とする請求項７に記載の仮想ディスク装置。
【請求項９】
前記複数のホストコンピュータ装置と接続される複数の仮想ディスク部と、
前記複数の仮想ディスク部に接続されるネットワーク部と、
前記ネットワーク部に接続されるコントローラ部と、
前記コントローラ部に接続されるディスク部と、を備えるディスク装置からデータを読み出す方法であって、
前記仮想ディスク部が、前記ホストコンピュータからデータの読み出しを要求する第１ブロックＩ／Ｏコマンドを受け付ける手順と、
前記仮想ディスク部が、前記第１ブロックＩ／Ｏコマンドを第１ファイルＩ／Ｏコマンドに変換する手順と、
前記仮想ディスク部が、前記第１ファイルＩ／Ｏコマンドを、前記ネットワーク部を経由して、前記コントローラ部に送信する手順と、
前記コントローラ部が、前記第１ファイルＩ／Ｏコマンドを第２ブロックＩ／Ｏコマンドに変換する手順と、
前記ディスク部が、前記第２ブロックＩ／Ｏコマンドを受けて、前記読み出し要求の目的のデータを読み出し、前記読出要求に対する応答の第３ブロックＩ／Ｏコマンドを前記コントローラ部に送信する手順と、
前記コントローラ部が、前記第３ブロックＩ／Ｏコマンドを第２ファイルＩ／Ｏコマンドに変換する手順と、
前記コントローラ部が、前記第２ファイルＩ／Ｏコマンドを、前記ネットワーク部を経由して、前記仮想ディスク部に送信する手順と、
前記仮想ディスク部が、前記第２ファイルＩ／Ｏコマンドを第４ブロックＩ／Ｏコマンドに変換する手順と、
前記第４ブロックＩ／Ｏコマンドを前記ホストコンピュータ装置に送信する手順と、を含むことを特徴とするデータ読出方法。
【請求項１０】
前記仮想ディスク部は、データを一時的に格納するキャッシュ部を含み、
前記キャッシュ部に前記読出要求に係るデータが格納されているか否かを判定する手順と、
前記キャッシュ部に前記読出要求に係るデータが格納されていると判定された場合は、前記キャッシュ部から当該読み出し要求の目的のデータを読み出して、前記ホストコンピュータ装置に応答する手順と、を含むことを特徴とする請求項９に記載のデータ読出方法。
【請求項１１】
前記複数のホストコンピュータ装置と接続される複数の仮想ディスク部と、
前記複数の仮想ディスク部に接続されるネットワーク部と、
前記ネットワーク部に接続されるコントローラ部と、
前記コントローラ部に接続されるディスク部と、を備えるディスク装置にデータを書き込む方法であって、
前記仮想ディスク部が、前記ホストコンピュータからデータの書き込みを要求する第１ブロックＩ／Ｏコマンドを受け付ける手順と、
前記仮想ディスク部が、前記第１ブロックＩ／Ｏコマンドを第１ファイルＩ／Ｏコマンドに変換する手順と、
前記仮想ディスク部が、前記第１ファイルＩ／Ｏコマンドを、前記ネットワーク部を経由して、前記コントローラ部に送信する手順と、
前記コントローラ部が、前記第１ファイルＩ／Ｏコマンドを第２ブロックＩ／Ｏコマンドに変換する手順と、
前記ディスク部が、前記第２ブロックＩ／Ｏコマンドを受けて、前記書き込み要求の目的のデータを書き込み、前記書込要求に係る応答の第３ブロックＩ／Ｏコマンドを前記コントローラ部に送信する手順と、
前記コントローラ部が、前記第３ブロックＩ／Ｏコマンドを第２ファイルＩ／Ｏコマンドに変換する手順と、
前記コントローラ部が、前記第２ファイルＩ／Ｏコマンドを、前記ネットワーク部を経由して、前記仮想ディスク部に送信する手順と、
前記仮想ディスク部が、前記第２ファイルＩ／Ｏコマンドを第４ブロックＩ／Ｏコマンドに変換する手順と、
前記第４ブロックＩ／Ｏコマンドを前記ホストコンピュータ装置に送信する手順と、を含むことを特徴とするデータ書込方法。
【請求項１２】
前記仮想ディスク部は、データを一時的に格納するキャッシュ部を含み、
前記キャッシュ部に前記書き込み要求に係るデータを格納することができるか否かを判定する手順と、
前記キャッシュ部に前記書き込み要求の目的のデータを格納することができると判定された場合は、前記キャッシュ部に当該書き込み要求に係るデータを書き込んで、前記ホストコンピュータ装置に応答する手順と、
前記仮想ディスク部が、前記書き込み要求に係るデータを前記キャッシュ部から消去する要求を、前記ネットワークを経由して、他の前記仮想ディスク部に送信する手順と、を含むことを特徴とする請求項１１に記載のデータ書込方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメインフレーム及びオープン系サーバとの間でデータを共有するディスク装置に関する。
【背景技術】
【０００２】
磁気ディスク装置の大容量化に伴い、メインフレームシステムとオープンシステムとの間で、ディスク装置に記録されたデータを共有したいとのニーズが生まれた。しかし、メインフレームシステムとオープンシステムとでは、オペレーティングシステム（ＯＳ）及びインターフェースが異なるだけでなく、ディスク装置に記録するデータの形式も異なる。このため、通常は、メインフレームが記録したデータをオープンシステムが読み出すことや、その逆の動作を行うことができない（すなわち、メインフレームシステムとオープンシステムとでデータを共有することができない）。そこで、メインフレームシステムとオープンシステムとの間のデータ形式の変換を行う機構（ソフトウエア）と、メインフレームシステムのデータを記録する第１のディスク装置と、オープンシステムのデータを記録する第２のディスク装置と、データ形式の変換の際に作成される中間データを記録する第３のディスク装置とを備えるデータ記憶システムが提案されている（例えば、特許文献１参照。）。
【０００３】
このデータ記憶システムによれば、第１のディスク装置に記録されたメインフレームシステムのデータは、一括して、データ形式を変換されて、第２のディスク装置に複写される。同様にして、第２のディスク装置に記録されたオープンシステムのデータは、一括して、データ形式を変換されて、第１のディスク装置に複写される。その結果、第１のディスク装置と第２のディスク装置には、同一の内容のデータが異なる形式で記録され、メインフレームシステムとオープンシステムがデータの内容を共有することができる。
【特許文献１】特開２００１−２２７１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１に記載された発明によれば、第１のディスク装置と第２のディスク装置には、同一の内容のデータが異なる形式で記録され、さらに、第３のディスク装置には、データ形式の変換の際に作成される中間データが記録される。その結果、実際に記録されるデータの３倍の記憶容量が必要になる。
【０００５】
本発明は、メインフレームシステム及びオープンシステムがデータを共有することができ、かつ、必要な記憶容量が小さいディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数のホストコンピュータ装置に接続され、前記ホストコンピュータ装置からの要求に基づいてデータを格納するデータ共有ディスク装置において、前記複数のホストコンピュータ装置の各々と接続される複数の仮想ディスク部と、複数の前記複数の仮想ディスク部に接続されるネットワーク部と、前記ネットワーク部に接続されるコントローラ部と、前記コントローラ部に接続されるディスク部と、を備え、前記仮想ディスク部の各々は、前記ホストコンピュータ装置とブロックアクセスプロトコルによる通信を行い、及び、前記ネットワーク部を経由して、前記コントローラ部とファイルアクセスプロトコルによる通信を行い、前記コントローラ部は、前記ディスク部とブロックアクセスプロトコルによる通信を行うことを特徴とする。
【発明の効果】
【０００７】
本発明によると、メインフレームシステム及びオープンシステムがデータを共有することができ、かつ、必要な記憶容量が小さい記憶装置を提供することができる。
【発明を実施するための最良の形態】
【０００８】
まず、本発明の概要を、図１を参照して説明する。
【０００９】
図１は、本発明の実施の形態のディスク装置の構成を説明するブロック図である。
【００１０】
本発明を適用したディスク装置１０１は、一つ又は複数の仮想ディスク部１０２、ネットワーク部１０９、コントローラ部１１０及びディスク部１１６によって構成される。図１のディスク装置１０１は、仮想ディスク部１０２ａ及び仮想ディスク部１０２ｂを備える。仮想ディスク部１０２ａ、仮想ディスク部１０２ｂ及びコントローラ部１１０は、ネットワーク部１０９によって相互に通信可能に接続される。
【００１１】
ディスク装置１０１には、ホストコンピュータとして、サーバ１１７及びメインフレーム１１８が接続される。
【００１２】
サーバ１１７は、オープン系のコンピュータ装置であり、例えば、ＵＮＩＸ（登録商標）が稼動するワークステーションである。サーバ１１７は、ＣＰＵ、メモリ、記憶装置、入出力装置等（図示省略）を備える。
【００１３】
サーバ１１７は、さらに、外部記憶装置と接続するためのインターフェース（例えば、ファイバーチャネル（ＦＣ）インターフェース、ＳＣＳＩインターフェース、ｉＳＣＳＩインターフェース等）を備える（図示省略）。仮想ディスク部１０２ａは、このインターフェースと通信可能に接続される。
【００１４】
メインフレーム１１８は、メインフレーム系のコンピュータ装置であり、ＣＰＵ、メモリ、記憶装置、入出力装置等（図示省略）を備える。
【００１５】
メインフレーム１１８は、さらに、外部記憶装置と接続するためのインターフェース（例えば、ＥＳＣＯＮインターフェース、ＦＩＣＯＮインターフェース等。なお、ＥＳＣＯＮ及びＦＩＣＯＮは、米国ＩＢＭ Corporationの登録商標又は商標である）を備える（図示省略）。仮想ディスク部１０２ｂは、このインターフェースと通信可能に接続される。
【００１６】
仮想ディスク部１０２ａとサーバ１１７との間の通信は、ブロックアクセスプロトコル（例えば、ＦＣプロトコル、ＳＣＳＩプロトコル、ｉＳＣＳＩプロトコル等）で行われる。仮想ディスク部１０２ｂとメインフレーム１１８との間の通信は、ブロックアクセスプロトコル（例えば、ＥＳＣＯＮプロトコル、ＦＩＣＯＮプロトコル等）で行われる。
【００１７】
一方、仮想ディスク部１０２ａ、１０２ｂ及びコントローラ部１１０の間の通信は、ファイルアクセスプロトコル（例えば、ＮＦＳ（Network File System）、ＣＩＦＳ（Common Internet File System）、ＤＡＦＳ（Direct Access File System）等）で行われる。
【００１８】
サーバ１１７は、仮想ディスク部１０２ａにブロックＩ／Ｏコマンドを発行することによって、データの書き込み又は読み出し要求を行う。
【００１９】
仮想ディスク部１０２ａは、サーバ１１７から受け付けたブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換して、ネットワーク部１０９を経由して、コントローラ部１１０に送信する。
【００２０】
コントローラ部１１０は、当該ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換して、ディスク部１１６にアクセスする。
【００２１】
このアクセスに対する応答は、ディスク部１１６からブロックＩ／Ｏコマンドとしてコントローラ部１１０に送信される。
【００２２】
コントローラ部１１０は、ディスク部１１６から受けた応答を、ファイルＩ／Ｏコマンドに変換して、ネットワーク部１０９を経由して、仮想ディスク部１０２ａに送信する。
【００２３】
仮想ディスク部１０２ａは、コントローラ部１１０から受けた応答を、ブロックＩ／Ｏコマンドに変換して、サーバ１１７に送信する。
【００２４】
同様にして、仮想ディスク部１０２ｂは、メインフレーム１１８から受け付けたブロックＩ／Ｏコマンドを、ファイルＩ／Ｏコマンドに変換して、コントローラ部１１０に送信する。また、コントローラ部１１０から受けたファイルＩ／Ｏコマンドを、ブロックＩ／Ｏコマンドに変換して、メインフレーム１１８に送信する。
【００２５】
結局、仮想ディスク部１０２ａ及び１０２ｂは、それぞれ、サーバ１１７及びメインフレーム１１８に対して、通常のディスクドライブ（又は、ディスクアレイ）として動作する。言い換えると、サーバ１１７及びメインフレーム１１８は、それぞれ、仮想ディスク部１０２ａ及び１０２ｂを、通常のディスクドライブ（又は、ディスクアレイ）であると認識する。そして、サーバ１１７及びメインフレーム１１８は、仮想ディスク部１０２ａ及び１０２ｂの論理ユニット（ＬＵ）又は論理デバイス（ＬＤＥＶ）に対してデータを入出力する。
【００２６】
オープン系のサーバ１１７が仮想ディスク部１０２ａとやり取りするブロックＩ／Ｏは、ＦＢＡ（Fixed Block Architecture）形式である。一方、メインフレーム１１８が仮想ディスク部１０２ｂとやり取りするブロックＩ／Ｏは、ＣＫＤ（Count Key Data）形式である。一つのディスク装置には、複数のブロック形式でデータを記録することができない。すなわち、異なる形式のブロックＩ／Ｏを同一のディスク装置に行うことはできない。しかし、本実施の形態によれば、いずれの形式のブロックＩ／Ｏも、仮想ディスク部１０２ａ及び１０２ｂによって同一のプロトコルのファイルＩ／Ｏに変換されてネットワーク部１０９に送信される。その結果、サーバ１１７及びメインフレーム１１８は、同一のコントローラ部１１０を経由して、同一のディスク部１１６にアクセスすることができる。
【００２７】
本実施の形態において、コントローラ部１１０は、ＮＦＳを提供する。すなわち、コントローラ部１１０は、仮想ディスク部１０２に対して、ＮＦＳ上の一つのファイルを、仮想ディスク部１０２のデータを格納するデータ領域として提供する。メインフレーム系のＣＫＤ形式のディスク又はオープン系のＦＢＡ形式のディスクのデータイメージが、コントローラ部１１０のファイルにマップされる。
【００２８】
なお、本実施の形態では、コントローラ部１１０とディスク部１１６との間でやり取りされるブロックは、ＦＢＡ形式とするが、他の形式であってもよい。
【００２９】
次に、ディスク装置１０１の各部の構成を詳細に説明する。
【００３０】
仮想ディスク部１０２ａは、相互に通信可能に接続されたホストインターフェース１０３、ネットワークインターフェース１０４、ＣＰＵ１０５、メモリ１０６及びキャッシュ部１０７によって構成される。
【００３１】
ホストインターフェース１０３は、サーバ１１７と接続され、サーバ１１７との間で、データ通信を行う。具体的には、サーバ１１７との間で、ブロックＩ／Ｏコマンドをやり取りする。ホストインターフェース１０３は、例えば、ＦＣインターフェースであるが、ＳＣＳＩインターフェース、ｉＳＣＳＩインターフェース又はその他のインターフェースであってもよい。また、ホストインターフェース１０３は、一つの仮想ディスク部１０２ａに複数設けられてもよい。この場合、それぞれのホストインターフェース１０３にサーバ１１７が接続されてもよい。
【００３２】
ネットワークインターフェース１０４は、ネットワーク部１０９に接続され、コントローラ部１１０との間で、データ通信を行う。具体的には、コントローラ部１１０との間で、ファイルＩ／Ｏコマンドをやり取りする。ネットワークインターフェース１０４は、一つの仮想ディスク部１０２ａに複数設けられてもよい。
【００３３】
ＣＰＵ１０５は、メモリ１０６に格納されたプログラムを実行して仮想ディスク部１０２ａを制御する。
【００３４】
メモリ１０６には、ＣＰＵ１０５によって実行されるプログラムが格納される。メモリ１０６には、少なくとも、コマンド変換部１０８及びキャッシュ同期部１１９が格納される。
【００３５】
コマンド変換部１０８は、サーバ１１７とホストインターフェース１０３との間でやり取りされるブロックＩ／Ｏコマンド（例えば、ＳＣＳＩコマンド）を、ネットワークインターフェース１０４とコントローラ部１１０との間でやり取りされるファイルＩ／Ｏコマンド（例えば、ＮＦＳで使用されるコマンド）に変換し、また、その逆の変換をするプログラムである。
【００３６】
キャッシュ同期部１１９については、後で、図３を用いて説明する。
【００３７】
メモリ１０６には、さらに、ＣＰＵ１０５がプログラムを実行する際に処理されるデータが一時的に格納されてもよい。
【００３８】
キャッシュ部１０７は、サーバ１１７がディスク装置１０１にデータを書き込み、又は読み出す処理を高速化するために使用されるメモリである。具体的には、キャッシュ部１０７には、サーバ１１７がディスク部１１６に書き込むデータ又はサーバ１１７がディスク部１１６から読み出すデータが一時的に記録される。
【００３９】
キャッシュ部１０７は、例えば、半導体メモリであるが、高速な磁気ディスク装置又は他の種類の記憶装置であってもよい。また、メモリ１０６の一部がキャッシュ部１０７として使用されてもよい。また、仮想ディスク部１０２ａは、データ処理を高速化する必要がない場合、キャッシュ部１０７を備えなくてもよい。
【００４０】
仮想ディスク部１０２ａにキャッシュ部１０７が設けられると、サーバ１１７は、ネットワーク部１０９及びコントローラ部１１０を経由せずにキャッシュ部１０７にアクセスすることができるため、アクセス速度が向上する。
【００４１】
仮想ディスク部１０２ｂの構成は、仮想ディスク部１０２ａと同様である。
【００４２】
ただし、仮想ディスク部１０２ｂのホストインターフェース（図示省略）は、メインフレーム１１８と接続され、サーバ１１７からのデータの書き込み／読み出し要求を処理するインターフェース（例えば、ＥＳＣＯＮ、ＦＩＣＯＮ等）である。
【００４３】
また、仮想ディスク部１０２ｂのコマンド変換部（図示省略）は、メインフレーム１１８とホストインターフェース（図示省略）との間でやり取りされるブロックＩ／Ｏコマンド（例えば、ＥＳＣＯＮコマンド）を、ネットワークインターフェース（図示省略）とコントローラ部１１０との間でやり取りされるファイルＩ／Ｏコマンド（例えば、ＮＦＳで使用されるコマンド）に変換し、また、その逆変換をする。
【００４４】
なお、仮想ディスク部１０２ａが複数のホストインターフェース１０３を備える場合、そのうちの一つがサーバ１１７と接続され、別の一つがメインフレーム１１８と接続されてもよい。この場合、サーバ１１７と接続されるホストインターフェース１０３は、例えば、ＦＣインターフェースであり、メインフレーム１１８と接続されるホストインターフェース１０３は、例えば、ＥＳＣＯＮインターフェースである。また、コマンド変換部１０８は、例えば、ＳＣＳＩコマンドとＮＦＳで使用されるコマンドとを変換する機能と、ＥＳＣＯＮコマンドとＮＦＳで使用されるコマンドとを変換する機能とを備える。
【００４５】
仮想ディスク部１０２及びコントローラ部１１０は、ネットワーク部１０９を介してデータ通信を行う。ネットワーク部１０９は、例えば、ＴＣＰ／ＩＰによるＬＡＮであり、その上で、ＮＦＳ、ＣＩＦＳ又はＤＡＦＳ等が動作する。ネットワーク部１０９の物理層は、ＵＳＢ、InfiniBand又はその他のインターフェースであってもよい。
【００４６】
コントローラ部１１０は、相互に通信可能に接続されたネットワークインターフェース１１１、ディスクインターフェース１１２、ＣＰＵ１１３及びメモリ１１４によって構成される。
【００４７】
ネットワークインターフェース１１１は、ネットワーク部１０９に接続され、仮想ディスク部１０２との間で、データ通信を行う。具体的には、仮想ディスク部１０２との間で、ファイルＩ／Ｏコマンドをやり取りする。ネットワークインターフェース１１１は、コントローラ部１１０に複数設けられてもよい。
【００４８】
ディスクインターフェース１１２は、コントローラ部１１０とディスク部１１６との間で、データ通信を行う。具体的には、ディスク部１１６との間で、ブロックＩ／Ｏコマンドをやり取りする。ディスクインターフェース１１２は、例えば、ＦＣインターフェースであるが、ＳＣＳＩインターフェースやＡＴＡ（AT Attachment）であってもよい。
【００４９】
ＣＰＵ１１３は、メモリ１１４に格納されたプログラムを実行してコントローラ部１１０を制御する。
【００５０】
メモリ１１４には、ＣＰＵ１１３によって実行されるプログラムが格納される。メモリ１０６には、少なくとも、コマンド変換部１１５が格納される。コマンド変換部１１５は、仮想ディスク部１０２とネットワークインターフェース１１１との間でやり取りされるファイルＩ／Ｏコマンド（例えば、ＮＦＳで使用されるコマンド）を、ディスクインターフェース１１２とディスク部１１６との間でやり取りされるブロックＩ／Ｏコマンド（例えば、ＳＣＳＩコマンド）に変換し、また、その逆変換をするプログラムである。
【００５１】
また、メモリ１１４には、ＣＰＵ１１３がプログラムを実行する際に処理されるデータが一時的に格納されてもよい。
【００５２】
図１には示さないが、コントローラ部１１０は、仮想ディスク部１０２と同様に、ネットワークインターフェース１１１とディスクインターフェース１１２との間で送受信されるデータを一時的に記憶するキャッシュ部を備えてもよい。また、メモリ１１４の一部がキャッシュ部として使用されてもよい。
【００５３】
ディスク部１１６は、ディスクインターフェース１１２に接続された一つ又は複数の磁気ディスク装置である。ディスク部１１６は、複数のディスクによって構成されるディスクアレイであってもよい。ディスク部１１６には、サーバ１１７又はメインフレーム１１８から書き込まれたデータが記録される。
【００５４】
ディスク部１１６は、論理的なディスクドライブである論理ユニット（ＬＵ）を構成する。すなわち、ディスク部１１６を構成する物理的なディスクドライブの一部若しくは全部の領域（又は、複数の物理的なディスクドライブの一部若しくは全部の領域の集合体）が一つ又は複数のＬＵを構成する。
【００５５】
サーバ１１７に接続された仮想ディスク部１０２ａは、ディスク部１１６内の一つ又は複数のＬＵに割り当てられる。すなわち、サーバ１１７は、仮想ディスク部１０２ａを一つ又は複数のＬＵとして認識する。
【００５６】
一方、メインフレーム１１８に接続された仮想ディスク部１０２ｂは、ディスク部１１６内の一つ又は複数のＬＵに割り当てられ、当該ＬＵをメインフレーム１１８に論理デバイス（ＬＤＥＶ）として認識させる。ここで、ＬＤＥＶとは、メインフレーム１１８によって認識される論理的なディスクドライブである。メインフレーム１１８は、仮想ディスク部１０２ｂを一つ又は複数のＬＤＥＶとして認識する。
【００５７】
なお、仮想ディスク部１０２ａに割り当てられたＬＵと仮想ディスク部１０２ｂに割り当てられたＬＵとは、同じものがあってもよい。
【００５８】
コントローラ部１１０とディスク部１１６の組み合わせは、いわゆるＮＡＳ（Network Attached Storage）に相当する。ここで、コントローラ部１１０は、いわゆるＮＡＳヘッドである。
【００５９】
次に、ディスク装置１０１の動作を説明する。
【００６０】
図２は、本発明の実施の形態のディスク装置１０１が実行するデータの読み出し処理のフローチャートである。
【００６１】
仮想ディスク部１０２では、まず、ホストインターフェース１０３が、サーバ１１７又はメインフレーム１１８からデータの読み出し要求を受ける（２０１）。この読み出し要求は、サーバ１１７又はメインフレーム１１８が、データの読み出しを要求するブロックＩ／Ｏコマンドを発行することによって行われる。
【００６２】
このとき、サーバ１１７又はメインフレーム１１８は、ホストインターフェース１０３を、通常のディスクドライブ（又は、ディスクアレイ）として認識する。
【００６３】
次に、ＣＰＵ１０５は、キャッシュ部１０７に当該読み出し要求の目的のデータが記録されているか否かを判定する（２０２）。
【００６４】
キャッシュ部１０７に当該読み出し要求の目的のデータが記録されていない場合は、コマンド変換部１０８が、当該読み出し要求のブロックＩ／Ｏコマンドを、ファイルＩ／Ｏコマンドに変換する（２０３）。例えば、コマンド変換部１０８は、サーバ１１７から受けたＳＣＳＩコマンド又はメインフレーム１１８から受けたＥＳＣＯＮコマンドを、ＮＦＳで使用されるコマンドに変換する。
【００６５】
次に、ネットワークインターフェース１０４が、当該読み出し要求のファイルＩ／Ｏコマンドを、ネットワーク部１０９を経由して、コントローラ部１１０に送信する（２０４）。
【００６６】
コントローラ部１１０では、ネットワークインターフェース１１１が仮想ディスク１０２から読み出し要求のファイルＩ／Ｏコマンドを受けると、コマンド変換部１１５が、当該ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する（２０５）。例えば、コマンド変換部１１５は、ＮＦＳで使用されるコマンドを、ＳＣＳＩコマンドに変換する。続いて、ディスクインターフェース１１２が当該ブロックＩ／Ｏコマンドをディスク部１１６に送信する。
【００６７】
ディスク部１１６は、コントローラ部１１０から読み出し要求のブロックＩ／Ｏコマンドを受けると、当該読み出し要求の目的のデータを読み出して、コントローラ部１１０にブロックＩ／Ｏコマンドで応答する（２０６）。
【００６８】
コントローラ部１１０では、ディスクインターフェース１１１がディスク部１１６から応答のブロックＩ／Ｏコマンドを受けると、コマンド変換部１１５が、当該ブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換する（２０７）。例えば、コマンド変換部１１５は、ＳＣＳＩコマンドを、ＮＦＳで使用されるコマンドに変換する。続いて、ネットワークインターフェース１１１が、当該ファイルＩ／Ｏコマンドを、ネットワーク部１０９を経由して、仮想ディスク部１０２に送信する（２０８）。
【００６９】
仮想ディスク部１０２では、ネットワークインターフェース１０４がコントローラ部１１０から応答のファイルＩ／Ｏコマンドを受けると、コマンド変換部１０８が、当該ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する（２０９）。例えば、コマンド変換部１０８は、ＮＦＳで使用されるコマンドを、ＳＣＳＩコマンド又はＥＳＣＯＮコマンドに変換する。続いて、ホストインターフェース１０３が当該ブロックＩ／Ｏコマンドをサーバ１１７又はメインフレーム１１８に送信して（２１０）、データの読み出し処理を終了する。
【００７０】
一方、上記のステップ２０２において、キャッシュ部１０７に当該読み出し要求の目的のデータが記録されている場合、キャッシュ部１０７から当該データを読み出して、サーバ１１７又はメインフレーム１１８に応答のブロックＩ／Ｏコマンドを送信して（２１１）、データの読み出し処理を終了する。この場合、ディスク部１１６からデータを読み出す必要がない上に、ブロックＩ／ＯをファイルＩ／Ｏに変換する必要もないため、データ読み出し処理が短時間で終了する。
【００７１】
このように、仮想ディスク部１０２は、サーバ１１７又はメインフレーム１１８に対して、ディスク装置として動作する。このため、サーバ１１７又はメインフレーム１１８のオペレーティングシステムに大幅な変更を加える必要がない。
【００７２】
なお、ＣＰＵ１０５は、ステップ２０３から２０９によってディスク部１１６から読み出されたデータをキャッシュ部１０７に記録してもよい。その結果、次回以降の同一のデータを目的とした読み出し処理に要する時間を短縮することができる。
【００７３】
図３は、本発明の実施の形態のディスク装置１０１が実行するデータの書き込み処理のフローチャートである。
【００７４】
仮想ディスク部１０２では、まず、ホストインターフェース１０３が、サーバ１１７又はメインフレーム１１８からデータの書き込み要求を受ける（３０１）。この書き込み要求は、サーバ１１７又はメインフレーム１１８が、データの書き込みを要求するブロックＩ／Ｏコマンドを発行することによって行われる。
【００７５】
次に、ＣＰＵ１０５は、キャッシュ部１０７に当該書き込み要求の目的のデータを記録することができるか否かを判定する（３０２）。例えば、キャッシュ部１０７に十分な空き容量がない場合、又は、ディスク装置１０１の管理者によってキャッシュ部１０７の使用が禁止されている場合は、キャッシュ部１０７に当該書き込み要求に係るデータを記録することができない。
【００７６】
キャッシュ部１０７に当該書き込み要求に係るデータを記録することができない場合は、コマンド変換部１０８が、当該書き込み要求のブロックＩ／Ｏコマンドを、ファイルＩ／Ｏコマンドに変換する（３０３）。例えば、コマンド変換部１０８は、サーバ１１７から受けたＳＣＳＩコマンド又はメインフレーム１１８から受けたＥＳＣＯＮコマンドを、ＮＦＳで使用されるコマンドに変換する。
【００７７】
次に、ネットワークインターフェース１０４が、当該書き込み要求のファイルＩ／Ｏコマンドを、ネットワーク部１０９を経由して、コントローラ部１１０に送信する（３０４）。
【００７８】
コントローラ部１１０では、ネットワークインターフェース１１１が仮想ディスク１０２から書き込み要求のファイルＩ／Ｏコマンドを受けると、コマンド変換部１１５が、当該ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する（３０５）。例えば、コマンド変換部１１５は、ＮＦＳで使用されるコマンドを、ＳＣＳＩコマンドに変換する。続いて、ディスクインターフェース１１２が当該ブロックＩ／Ｏコマンドをディスク部１１６に送信する。
【００７９】
ディスク部１１６は、コントローラ部１１０から書き込み要求のブロックＩ／Ｏコマンドを受けると、当該書き込み要求の目的のデータを書き込んで、コントローラ部１１０にブロックＩ／Ｏコマンドで応答する（３０６）。
【００８０】
コントローラ部１１０では、ディスクインターフェース１１１がディスク部１１６から応答のブロックＩ／Ｏコマンドを受けると、コマンド変換部１１５が、当該ブロックＩ／ＯコマンドをファイルＩ／Ｏコマンドに変換する（３０７）。例えば、コマンド変換部１１５は、ＳＣＳＩコマンドを、ＮＦＳで使用されるコマンドに変換する。続いて、ネットワークインターフェース１１１が、当該ファイルＩ／Ｏコマンドを、ネットワーク部１０９を経由して、仮想ディスク部１０２に送信する（３０８）。
【００８１】
仮想ディスク部１０２では、ネットワークインターフェース１０４がコントローラ部１１０から応答のファイルＩ／Ｏコマンドを受けると、コマンド変換部１０８が、当該ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する（３０９）。例えば、コマンド変換部１０８は、ＮＦＳで使用されるコマンドを、ＳＣＳＩコマンド又はＥＳＣＯＮコマンドに変換する。続いて、ホストインターフェース１０３が当該ブロックＩ／Ｏコマンドをサーバ１１７又はメインフレーム１１８に送信する（３１０）。
【００８２】
次に、ＣＰＵ１０５は、キャッシュ同期部１１９にキャッシュ同期処理を実行させる。キャッシュ同期部１１９は、他の仮想ディスク部１０２に対して、それぞれのキャッシュ部１０７に記憶されている当該書き込み要求に係るデータに対応するデータを消去する要求を発行する（３１１）。この同期処理によって、キャッシュデータが常に最新であることが保証される。
【００８３】
例えば、メインフレーム１１８が仮想ディスク部１０２ｂを経由してディスク部１１６からデータを読み出すと、そのデータが仮想ディスク部１０２ｂのキャッシュ部（図示省略）に記録される。次に、サーバ１１７が仮想ディスク部１０２ａを経由してディスク部１１６の当該データを更新すると、仮想ディスク部１０２ａの仮想ディスク部１０２ｂのキャッシュ部内の当該データは最新でなくなる。
【００８４】
このとき、本実施の形態では、キャッシュ同期部１１９が、仮想ディスク部１０２ｂに対して、キャッシュ部内の当該データを消去する要求を発行する（３１１）。
【００８５】
また、仮想ディスク部１０２ａのキャッシュ同期部１１９は、仮想ディスク部１０２ｂに対して、キャッシュ部内の当該データを更新する要求を発行してもよい。
【００８６】
また、ディスク部１１６がキャッシュ同期部（図示省略）を有してもよい。この場合、ディスク部１１６のキャッシュ同期部は、当該データが更新された時点で、コントローラ部１１０が仮想ディスク部１０２ａ及び１０２ｂに対して、キャッシュ部内の当該データを消去するキャッシュ同期処理要求を発行してもよい。
【００８７】
以上で、データの書き込み処理を終了する。
【００８８】
一方、上記のステップ３０２において、キャッシュ部１０７に当該書き込み要求に係るデータを記録することができる場合は、キャッシュ部１０７に当該データを書き込んで、サーバ１１７又はメインフレーム１１８に応答のブロックＩ／Ｏコマンドを送信して（３１２）、ステップ３１１に進む。
【００８９】
上記の図２及び図３で説明した処理において、ディスク部１１６の同一ＬＵ上の同一データに対してサーバ１１７及びメインフレーム１１８が同時にアクセスしようとした場合、排他制御が行われる。すなわち、少しでも早く到着したアクセス要求を先に処理し、その処理が終了するまでは、遅れて到着したアクセス要求は処理されない。
【００９０】
なお、図２及び図３に示す手順のうち、ＣＰＵ１０５が行う手順（コマンド変換部１０８が行う手順を含む）は、サーバ１１７又はメインフレーム１１８のＣＰＵ（図示省略）によって実行されてもよい。すなわち、仮想ディスク部１０２内の処理をサーバ１１７又はメインフレーム１１８のＣＰＵに実行させ、仮想ディスク部１０２は、ホストインターフェース１０３へのＡＰＩ（Application Program Interface）のみをサーバ１１７又はメインフレーム１１８に提供してもよい。
【００９１】
また、サーバ１１７又はメインフレーム１１８が、ネットワーク部１０９のプロトコルに適合するネットワークインターフェースを備える場合、そのネットワークインターフェースをネットワーク部１０９に直接接続してもよい。ネットワーク部１０９に直接接続されたサーバ１１７及びメインフレーム１１８は、仮想ディスク部１０２を経由せずに、コントローラ部１１０及びディスク部１１６にアクセスして、ディスク部１１６に格納されたデータを共有することができる。
【００９２】
以上の本発明によれば、異なるインターフェース及び異なるオペレーティングシステムを有する複数のメインフレーム及びサーバがデータを共有することができる。この共有は、異なるブロック形式で記録された複製を用意することによってではなく、同一のデータへのアクセスを可能にすることによって実現されるため、同一内容のデータを重複して記録する必要がなく、記憶容量の浪費を防ぐことができる。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施の形態のディスク装置の構成を説明するブロック図である。
【図２】本発明の実施の形態のディスク装置が実行するデータの読み出し処理のフローチャートである。
【図３】本発明の実施の形態のディスク装置が実行するデータの書き込み処理のフローチャートである。
【符号の説明】
【００９４】
１０１  ディスク装置
１０２  仮想ディスク部
１０３  ホストインターフェース
１０４、１１１  ネットワークインターフェース
１０５、１１３  ＣＰＵ
１０６、１１４  メモリ
１０７  キャッシュ部
１０８、１１５  コマンド変換部
１０９  ネットワーク部
１１０  コントローラ部
１１２  ディスクインターフェース
１１６  ディスク部
１１７  サーバ
１１８  メインフレーム
１１９  キャッシュ同期部
【図１】
2005346426.tif 000003
【図２】
2005346426.tif 000004
【図３】
2005346426.tif 000005