(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された、サーバホストと、クライアントホストと、ストライピングディスク装置を構成する複数のディスク装置と、からなるデータ共有システムにおいて、
前記サーバホストは、
前記クライアントホストから受信したアクセス要求パケットに基いて、前記各ディスク装置のメタデータにアクセスし、前記クライアントホストから要求されたデータに対応するストライピングブロックの位置情報を求める手段と、
前記一のアクセス要求パケットに対応する複数の前記ストライピングブロックの位置情報が前記複数のディスク装置に対応して列記された複数のアクセス情報テーブルを作成し、前記ネットワークを介して前記クライアントホストに対して送信する手段と、を備え、
前記クライアントホストが、
前記アクセス情報テーブルに列記された前記ストライピングブロックの位置情報に基いて、前記各ディスク装置に対する直接アクセスを行う手段を備えること、
を特徴とするデータ共有システム。
【請求項２】
請求項１に記載のデータ共有システムにおいて、
前記ディスクアクセス情報テーブルのサイズは、前記ネットワークの最大転送単位以下としたこと、
を特徴とするデータ共有システム。
【請求項３】
請求項１に記載のデータ共有システムにおいて、
前記サーバホストは、更に、
前記ネットワークの最大転送単位に応じて、前記ディスクアクセス情報テーブルのサイズを、制御する手段を、備えること、
を特徴とするデータ共有システム。
【請求項４】
ネットワークを介して接続された、サーバホストと、クライアントホストと、ストライピングディスク装置を構成する複数のディスク装置と、からなるデータ共有システムにおける前記ディスク装置へのアクセス方法であって、
前記クライアントホストが、前記ネットワークを介してアクセス要求を行うデータを特定するアクセス要求パケットを、前記サーバホストに対して送信するステップと、
前記サーバホストが、前記クライアントホストから受信したアクセス要求パケットに基いて、前記各ディスク装置のメタデータにアクセスし、前記クライアントホストから要求されたデータに対応するストライピングブロックの位置情報を求めるステップと、
前記サーバホストが、前記一のアクセス要求パケットに対応する複数の前記ストライピングブロックの位置情報が前記複数のディスク装置に対応して列記された複数のアクセス情報テーブルを作成し、前記ネットワークを介して前記クライアントホストに対して送信するステップと、
前記クライアントホストが、前記アクセス情報テーブルに列記された前記ストライピングブロックの位置情報に基いて、前記各ディスク装置に対する直接アクセスを行うステップと、を含むこと、
を特徴とするディスク装置へのアクセス方法。
【請求項５】
請求項４に記載のディスク装置へのアクセス方法において、
前記ディスクアクセス情報テーブルのサイズは、前記ネットワークの最大転送単位以下としたこと、
を特徴とするディスク装置へのアクセス方法。
【請求項６】
請求項４に記載のディスク装置へのアクセス方法において、更に、
前記サーバホストが、前記ネットワークの最大転送単位に応じて、前記ディスクアクセス情報テーブルを分割するステップを、含むこと、
を特徴とするディスク装置へのアクセス方法。
【請求項７】
ネットワークを介して接続された、サーバホストと、クライアントホストと、ストライピングディスク装置を構成する複数のディスク装置と、からなるデータ共有システムにおける前記サーバホストを構成するコンピュータに実行させるプログラムであって、
前記クライアントホストから受信したアクセス要求パケットに基いて、前記各ディスク装置のメタデータにアクセスし、前記クライアントホストから要求されたデータに対応するストライピングブロックの位置情報を求める処理と、
前記一のアクセス要求パケットに対応する複数の前記ストライピングブロックの位置情報が前記複数のディスク装置に対応して列記された複数のアクセス情報テーブルを作成し、前記ネットワークを介して前記クライアントホストに対して送信する処理との、
前記各処理を前記コンピュータに実行させるプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記ディスクアクセス情報テーブルのサイズを、前記ネットワークの最大転送単位を超えない範囲で固定したこと、
を特徴とするプログラム。
【請求項９】
請求項７に記載のプログラムにおいて、更に、
前記ネットワークの最大転送単位に応じて、前記ディスクアクセス情報テーブルを分割する処理を、
前記コンピュータに実行させるプログラム。
【請求項１０】
請求項１乃至２いずれか一に記載のデータ共有システムにおける前記クライアントホストを構成するコンピュータに実行させるプログラムであって、
前記ネットワークを介してアクセス要求を行うデータを特定するアクセス要求パケットを、前記サーバホストに対して送信する処理と、
前記サーバホストから送信される、前記一のアクセス要求パケットに対応させて前記複数のディスク装置毎に作成された複数の前記アクセス情報テーブルに列記された複数の前記ストライピングブロックの位置情報に基いて、前記各ディスク装置に対する直接アクセスを行う処理との、
前記各処理を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ共有システム及びディスク装置へのアクセス方法並びにプログラムに関し、特に、ネットワーク上のデータへのアクセスを高速化できるデータ共有システム及びディスク装置へのアクセス方法並びにプログラムに関する。
【０００２】
【従来の技術】
従来の、ネットワーク上のディスク装置へのアクセスは、アクセスを行うディスク装置におけるブロック数に応じた数のアクセス要求データパケットを送信することによって行っている。
【０００３】
【発明が解決しようとする課題】
特に、前記ディスク装置がストライピングディスク装置を構成するものである場合やデータが不連続である場合、前記アクセス要求データパケットに応じて返されるディスクアクセス情報テーブルも、ブロック単位で分割されるため、ネットワークの負荷が増大するという問題点がある。とりわけ、多数のディスク装置を用いてストライピングディスク装置を構成する場合、ネットワークの回線速度が十分でない場合等には、システム全体の性能低下を招くことがある。
【０００４】
本発明は、上記した問題点を解決すべくなされたものであって、その目的とするところは、ネットワーク上のストライピング等により不連続にデータを格納するディスク装置群への高速なアクセスを実現するデータ共有システム及びディスク装置へのアクセス方法並びにプログラムを提供することにある。
【０００５】
【課題を解決するための手段】
前記課題を解決するための手段を提供する本発明の第１の視点によれば、ネットワークを介して接続された、サーバホストと、クライアントホストと、ストライピングディスク装置を構成する複数のディスク装置と、からなるデータ共有システムにおいて、前記サーバホストは、前記クライアントホストから受信したアクセス要求パケットに基いて、前記各ディスク装置のメタデータにアクセスし、前記クライアントホストから要求されたデータに対応するストライピングブロックの位置情報を求める手段と、前記ストライピングブロックの位置情報を列記したアクセス情報テーブルを作成し、前記ネットワークを介して前記クライアントホストに対して送信する手段と、を備え、前記クライアントホストが、前記アクセス情報テーブルに列記された前記ストライピングブロックの位置情報に基いて、前記各ディスク装置に対する直接アクセスを行う手段を備えること、を特徴とするデータ共有システムが提供される。
【０００６】
また、本発明の第２の視点によれば、ネットワークを介して接続された、サーバホストと、クライアントホストと、ストライピングディスク装置を構成する複数のディスク装置と、からなるデータ共有システムにおける前記ディスク装置へのアクセス方法であって、前記クライアントホストが、前記ネットワークを介してアクセス要求を行うデータを特定するアクセス要求パケットを、前記サーバホストに対して送信するステップと、前記サーバホストが、前記クライアントホストから受信したアクセス要求パケットに基いて、前記各ディスク装置のメタデータにアクセスし、前記クライアントホストから要求されたデータに対応するストライピングブロックの位置情報を求めるステップと、前記サーバホストが、前記ストライピングブロックの位置情報を列記したアクセス情報テーブルを作成し、前記ネットワークを介して前記クライアントホストに対して送信するステップと、前記クライアントホストが、前記アクセス情報テーブルに列記された前記ストライピングブロックの位置情報に基いて、前記各ディスク装置に対する直接アクセスを行うステップと、を含むこと、を特徴とするディスク装置へのアクセス方法が提供される。
【０００７】
また、本発明の第３の視点によれば、上記したデータ共有システムを構成するサーバホスト又はクライアントホストを構成するコンピュータに実行させるプログラムが提供される。
【０００８】
より具体的には、ストレージエリアネットワークに接続された、複数のディスク装置からなるストライピングディスク装置に共有するファイルを記憶保持したデータ共有システム及び該ストライピングディスク装置を構成するディスク装置へのアクセス方法並びにプログラムが提供される。
【０００９】
また、前記ディスクアクセス情報テーブルのサイズは、前記ネットワークの最大転送単位（ＭＴＵ；Ｍａｘｉｍｕｍ  Ｔｒａｎｓｆｅｒ  Ｕｎｉｔ）に応じて、固定すること、或いは、分割できるよう構成されていることが好ましい。
【００１０】
【発明の実施の形態】
続いて、本発明の一実施の形態について、説明する。本発明は、その好ましい実施の形態において、サーバホスト（図１の１）と、クライアントホスト（図１の２）と、共有するデータを格納するディスク装置（図１の３１、３２）とを、ネットワーク（図１の４）を介して接続して構成される。
【００１１】
その作用は、まずクライアントホスト（図１の２）が、ディスク装置（図１の３１、３２）に記憶保持されたデータの読み込み及び書き込みを要求する場合、サーバホスト（図１の１）に対して、目的とするデータへのアクセス要求パケット（図６参照）を送信する。サーバホスト（図１の１）は、各ディスク装置（図１の３１、３２）において該データが、ストライピング等により物理的に不連続である場合、各ディスク装置（図１の３１、３２）を管理するファイルシステムのメタデータにアクセスし、前記アクセス要求パケットに対応する、ディスク装置（図１の３１、３２）上のデータの各位置を特定し、更に、ディスク装置（図１の３１、３２）毎に、物理ブロックサイズ及びデータ位置を列記してなるアクセス情報テーブル（図９参照）を作成し、１つのデータパケットに格納して、クライアントホスト（図１の２）に対して送信する。
【００１２】
前記アクセス情報テーブルを受信したクライアントホスト（図１の２）は、該アクセス情報テーブルの内容に基いて、ディスク装置（図１の３１、３２）に対するアクセスを開始する。
【００１３】
このようにして、クライアントホスト（図１の２）の要求するデータが各ディスク装置（図１の３１、３２）において、ストライピング等により、物理的に不連続である場合に、サーバホスト（図１の１）と、クライアントホスト（図１の２）の間での、データパケットの送受信の回数が低減される。もちろん、実際のデータアクセス（転送）は、クライアントホスト（図１の２）が、各ディスク装置（図１の３１、３２）に高速にアクセスする。
【００１４】
【実施例】
続いて、上記した本発明の実施の形態をより詳細に説明すべく、本発明の実施例について説明する。図１は、本発明のシステム構成の一例を表したブロック図である。図１を参照すると、本発明のデータ共有システムは、プログラム制御により動作するサーバホスト１と、クライアントホスト２と、ディスク装置３１、３２と、ストレージエリアネットワーク４と、ローカルエリアネットワーク（以下、「ＬＡＮ」ともいう）５と、から構成されている。
【００１５】
図２は、サーバホスト１のシステム構成を模式的に表したブロック図である。図２を参照すると、サーバホスト１は、ネットワークファイルシステム１０１と、ストライピングディスク装置６上に構築されたファイルを管理するファイルシステム１０２と、ストライピングディスク装置６を管理するストライピングディスク装置管理部１０３と、ストレージエリアネットワークアクセス機構（ＳＡＮアクセス機構）１０４１、１０４２と、ＬＡＮアクセス機構１０５と、アクセス要求データパケット作成部１０６とから構成されている。
【００１６】
そして、サーバホスト１は、図１のディスク装置３１、３２と、ストライピングディスク装置管理部１０３と、を使用して、図１の破線部に示されたストライピングディスク装置６を構成している。図３は、ストライピングディスク装置６にストライピング（分散化）されるデータをイメージ化した図である。図３を参照すると、ストライピングディスク装置６は、１つのまとまったデータ（Ａ〜Ｈ）について、ディスク装置３１にブロックＡ、Ｃ、Ｅ、Ｇからなるデータ３１０１を、ディスク装置３２にブロックＢ、Ｄ、Ｆ、Ｈからなるデータ３２０１を、それぞれ分散して記憶保持している。
【００１７】
図４は、クライアントホストのシステム構成を模式的に表したブロック図である。図４を参照すると、クライアントホスト２は、ネットワークファイルシステム２０１と、Ｉ／Ｏ要求プロセス２０２と、ディスクドライバ２０３と、ストレージエリアネットワークアクセス機構（ＳＡＮアクセス機構）２０４１、２０４２と、ＬＡＮアクセス機構２０５と、アクセス要求データパケット処理部２０６とから構成されており、ＩＯ要求プロセス２０２は、Ｉ／Ｏ用メモリ領域２３０１を有している。
【００１８】
続いて、上記した構成からなる本発明の一実施例の動作について、図面を参照して説明する。図５は、クライアントホスト２におけるＩ／Ｏ要求プロセスの処理の流れを表したフローチャートである。図５を参照すると、クライアントホスト２において、Ｉ／Ｏ要求プロセス２０２が処理を開始すると、まず、Ｉ／Ｏ要求プロセス２０２は、ファイルシステム２０１にアクセスし、ストレージエリアネットワーク４を経由するＩ／Ｏであるか否か判定する（ステップＡ１）。前記判定の結果、ストレージエリアネットワーク４を経由するＩ／Ｏである場合、ファイルシステム２０１は、アクセス要求データパケット処理部２０６にアクセス要求を発行し、アクセス要求データパケット処理部２０６は、アクセス要求データパケット７１を作成する（ステップＡ２）。続いて、クライアントホスト２は、ＬＡＮアクセス機構２０５を使用して、ＬＡＮ５を経由して、アクセス要求データパケット７１を、サーバホスト１に対して送信する（ステップＡ３）。
【００１９】
図６は、アクセス要求データパケット処理部２０６により作成されるアクセス要求データパケット７１の構成を表した図である。図６を参照すると、アクセス要求データパケット７１は、ファイルハンドル７１０１、データオフセット７１０２、メモリオフセット７１０３、Ｉ／Ｏサイズ７１０４から構成されるデータである。
【００２０】
図７は、Ｉ／Ｏ要求プロセス２０２のＩ／Ｏメモリ領域２３０１をイメージ化した図である。図６のメモリオフセット７１０３の値と、ＩＯサイズ７１０４の値は、図７のメモリオフセット７１０３と、Ｉ／Ｏサイズ７１０４にそれぞれ対応するものである。
【００２１】
図８は、サーバホスト１におけるアクセス要求受付処理の流れを表したフローチャートである。図８を参照すると、まず、サーバホスト１は、ＬＡＮアクセス機構１０５によりアクセス要求データパケット７１を受信すると（ステップＢ１）、アクセス要求データパケット７１を、ネットワークファイルシステム１０１に渡し、ファイルシステム１０２と、ストライピングディスク装置管理部１０３とを経由して、ディスク装置３１、３２のメタデータにアクセスし、アクセス要求データパケット７１に対応する、ディスク装置３１、３２の各データ格納位置と、各物理ブロックサイズとを求める（ステップＢ２）。
【００２２】
続いて、サーバホスト１は、アクセス要求データパケット作成部１０６により、ディスク装置３１のデータ３１０１（データ１）に対する、ディスクアクセス情報テーブル８１と、ディスク装置３２０１（データ２）に対する、ディスクアクセス情報テーブル８２を作成する（ステップＢ３）。
【００２３】
図９は、上記ステップＢ３において作成されるディスクアクセス情報テーブル８１、８２の構成を表した図である。図９を参照すると、ディスクアクセス情報テーブル８１、８２は、ストライピングディスク装置６のストライピングブロック毎（この場合は、ディスク装置３１についてＡ、Ｃ、Ｅ、Ｇ、ディスク装置３２についてＢ、Ｄ、Ｆ、Ｈ）に、Ｉ／Ｏ要求プロセス２０２上のＩ／Ｏ用メモリ領域２３０１の各メモリオフセット、ディスク装置３１、３２の各ブロックの大きさであるデータサイズ、実ディスクへのアクセスのための各ディスク位置を格納した配列のテーブルとなっており、アクセス要求データパケット７１の要求を、各ディスク装置毎の要求に変換したものとなっている。
【００２４】
再度図８を参照すると、サーバホスト１は、上記構成からなるディスクアクセス情報テーブル８１、８２を、ＬＡＮアクセス機構１０５を使用して、ＬＡＮ５を経由して、クライアントホスト２に対して送信する（ステップＢ４）。
【００２５】
更に、再度図５を参照すると、爾後、クライアントホスト２は、ＬＡＮアクセス機構２０５を使用して、サーバホスト１から送信されたアクセス要求データパケットを受信し、アクセス要求データパケット処理部２０６により、ディスクアクセス情報テーブル８１、８２を解析する（ステップＡ４）。
【００２６】
続いて、アクセス要求データパケット処理部２０６は、前記アクセス情報テーブル８１、８２の解析結果に基いて、ディスクドライバ２０３を使用して、ストレージエリアネットワークアクセス機構２０４１、２０４２、及び、ストレージエリアネットワーク４を経由して、ディスク装置３１及びディスク装置３２に直接アクセスする（ステップＡ５、Ａ６）。
【００２７】
前記アクセスの結果、アクセス要求パケットに対応するデータ３１０１（データ１）及びデータ３２０１（データ２）は、アクセス情報テーブル８１、８２のＡ、Ｃ、Ｅ、Ｇ及びＢ、Ｄ、Ｆ、Ｈの各メモリオフセットの値を使用して、ＩＯ用メモリ領域２３０１に読み込まれ、又は、Ｉ／Ｏ用メモリ領域２３０１から書き込まれる（図７参照）。
【００２８】
上記の通り、ＬＡＮ５を流れるデータは、それぞれディスク装置３１、３２毎にまとめられたものとなっているため、ＬＡＮ５の負荷が抑えられ、ストライピングディスク装置６に対するアクセス速度が損なわれるといった事態やシステム全体の性能低下といった事態を有効に回避できる。
【００２９】
なお、上記した実施例においては、ＬＡＮ５は、ストレージエリアネットワーク４とは、別個にあるものとして説明したが、ストレージエリアネットワーク４内に構成するものとしてもよい。また、上記した実施例においては、説明の便宜のため、ストライピングディスク装置６のディスク装置の数は、２台であるものとして説明したが、その台数は特に限定するものではない。例えば、データ転送時間の一層の短縮を図るために、２台以上のディスク装置によりストライピングディスク装置を構成することができる。また、図１には、クライアントホスト２が１台のみ示されているが、説明のために省略したものであって、特に限定するものではない。
【００３０】
また、上記したディスクアクセス情報テーブル８１、８２の大きさは、固定長の他、可変長としてもよい。可変長とする場合は、最初に、ディスクアクセス情報テーブルの大きさ８１、８２をパケットの先頭に記載しておけばよい。また、この場合、ディスクアクセス情報テーブル８１、８２の大きさの上限を、ＬＡＮ５の最大転送単位（ＭＴＵ）のサイズに合わせることで、データのロスト発生率を下げることが可能である。
【００３１】
【発明の効果】
以上説明したとおり、本発明によれば、ネットワーク上の、データが連続していないディスク装置に対するにアクセスを高速化することが可能となる。その理由は、各ディスク装置に対するアクセス要求をまとめる構成を採用して、ネットワークの負荷を低減させたことにある。
【図面の簡単な説明】
【図１】本発明のシステム構成の一例を表したブロック図である。
【図２】サーバホストのシステム構成を模式的に表したブロック図である。
【図３】ストライピングディスク装置にストライピング（分散化）されるデータを説明するための図である。
【図４】クライアントホストのシステム構成を模式的に表したブロック図である。
【図５】クライアントホストにおけるＩ／Ｏ要求プロセスの処理の流れの一例を表したフローチャートである。
【図６】アクセス要求データパケットの構成を表した図である。
【図７】Ｉ／Ｏ要求プロセスのＩ／Ｏメモリ領域と、格納されるデータを説明するための図である。
【図８】サーバホストにおけるアクセス要求受付処理の流れの一例を表したフローチャートである。
【図９】ディスクアクセス情報テーブルの構成を表した図である。
【符号の説明】
１  サーバホスト
２  クライアントホスト
４  ストレージエリアネットワーク
５  ローカルエリアネットワーク
６  ストライピングディスク装置
３１、３２  ディスク装置
７１  アクセス要求データパケット
１０１  ネットワークファイルシステム
１０２、２０１  ファイルシステム
１０３  ストライピングディスク管理部
１０５、２０５  ＬＡＮアクセス機構
１０６  アクセス要求データパケット作成部
２０２  Ｉ／Ｏ要求プロセス
２０６  アクセス要求データパケット処理部
１０４１、１０４２、２０４１、２０４２  ストレージエリアネットワークアクセス機構
２３０１  Ｉ／Ｏ用メモリ領域
３１０１、３２０１  データ
７１０１  ファイルハンドル
７１０２  データオフセット
７１０３  メモリオフセット
７１０４  Ｉ／Ｏサイズ
【図１】
0003979183.tif 000002
【図２】
0003979183.tif 000003
【図３】
0003979183.tif 000004
【図４】
0003979183.tif 000005
【図５】
0003979183.tif 000006
【図６】
0003979183.tif 000007
【図７】
0003979183.tif 000008
【図８】
0003979183.tif 000009
【図９】
0003979183.tif 000010