JP4150854B2 - ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント - Google Patents

ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント Download PDF

Info

Publication number
JP4150854B2
JP4150854B2 JP2003185668A JP2003185668A JP4150854B2 JP 4150854 B2 JP4150854 B2 JP 4150854B2 JP 2003185668 A JP2003185668 A JP 2003185668A JP 2003185668 A JP2003185668 A JP 2003185668A JP 4150854 B2 JP4150854 B2 JP 4150854B2
Authority
JP
Japan
Prior art keywords
file
client
disk device
access
shared disk
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
JP2003185668A
Other languages
English (en)
Other versions
JP2005018643A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2003185668A priority Critical patent/JP4150854B2/ja
Priority to US10/875,810 priority patent/US7827194B2/en
Priority to EP04015143A priority patent/EP1492028B1/en
Priority to DE602004002243T priority patent/DE602004002243T2/de
Publication of JP2005018643A publication Critical patent/JP2005018643A/ja
Application granted granted Critical
Publication of JP4150854B2 publication Critical patent/JP4150854B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Description

【0001】
【発明の属する技術分野】
本発明は、ストレージエリアネットワーク(SAN:Storage Area Network)に関し、特に複数のコンピュータシステムが、ストレージエリアネットワーク上の1以上の共有ディスク装置に構成された単一のファイルシステムへ各々高速にデータをアクセスするアクセスシステムに関する。
【0002】
【従来の技術】
近年、外部記憶装置間および記憶装置とコンピュータの間を結ぶ高速なネットワークである、ストレージエリアネットワークが実現されている。このストレージエリアネットワークは、例えば、複数のサーバが連携して一つの機能を提供する場合や、1つの大容量の共有ディクス装置を複数のサーバで共有する場合に特に有効であり、このような構成にストレージエリアネットワークを導入することにより、サーバの処理性能が向上し、クライアントとの通信に使うLANやWANなどのコンピュータ間ネットワークの負荷を軽減することができる。
【0003】
従来、上記のストレージエリアネットワーク上の共有ディスク装置へアクセスするためのクライアント機能については、クライアント側のカーネルにその機能を実装していた。
【0004】
従来のネットワークを介して複数のコンピュータ間でディスク装置を共有するシステムとしては、例えば、特開平11−120063号公報(特許文献1)に開示されるシステムがある。
【0005】
この特許文献1のシステムでは、ファイル管理を行うサーバの負荷を少なくし、ファイルデータの転送がネットワークを経由しないようにして処理の高速化を図るものであり、ネットワーク上のクライアントからの要求に応じ、サーバが要求のあったファイルの管理情報を要求元のクライアントに送り、当該クライアントが送られたファイルの管理情報に基づいて共有ディスクを直接アクセスする構成となっている。
【0006】
【特許文献1】
特開2001−111438号公報
【0007】
【発明が解決しようとする課題】
上述した従来のストレージエリアネットワーク上の共有ディスク装置へのアクセス方式には、次のような問題点があった。
【0008】
第1の問題点は、ストレージエリアネットワークへのアクセス機能をクライアントのカーネルに実装しているため、カーネルのバージョンに依存することになり、ストレージエリアネットワークへのアクセスを行うためにカーネルのバージョンごとに実装をやりなおす必要が生じることである。
【0009】
第2の問題点は、ストレージエリアネットワークへのアクセス実現方法が、プラットフォーム(OS)により多様であるため、プラットフォーム毎に再コンパイルや再リンクなどの手段によりクライアントのカーネルを改造する必要があり、移植への手間とコストがかかることである。
【0010】
第3の問題点は、カーネル機能にストレージエリアネットワークのアクセス機能が実装されている場合、当該機能にバグがあった場合、ストレージエリアネットワークのシステム全体に影響を与える可能性があることである。
【0011】
本発明の目的は、ストレージエリアネットワーク内の共有ファイルシステムに高速にアクセスする処理をカーネルの処理と分離することができるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアントを提案することができる。
【0012】
本発明の他の目的は、ストレージエリアネットワークへのクライアントのアクセス機能をカーネルへの改造をすることなく実装でき、プラットフォームへの移植も容易に行うことができるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアントを提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成する本発明は、複数のクライアントが、ストレージエリアネットワーク上の1以上の共有ディスク装置に構成されたファイルシステムのファイルへアクセスするアクセスシステムであって、前記クライアントの前記共有ディスク装置のファイルシステムへのアクセス機能として、通常のファイルシステム処理を行うダイナミックリンクライブラリが含む関数と同じシンボル名の関数に、前記共有ディスク装置のファイルシステムへのアクセス処理を挿入したダイナミックリンクライブラリであるアクセス処理部を備え、前記通常のファイルアクセス処理を行うダイナミックリンクライブラリより先に、前記アクセス処理部がダイナミックリンクされるように、ダイナミックリンクライブラリの検索パスを設定する機能を、前記クライアントのユーザプログラムの一部として実装することを特徴とする。
【0014】
請求項2の本発明のアクセスシステムは、前記ストレージエリアネットワーク上のサーバに、前記クライアントがアクセスする前記ファイルシステムのファイルに対するファイルハンドルを取得して、前記クライアントへ送信するファイルハンドル取得プロセスを備えることを特徴とする。
【0015】
請求項3の本発明のアクセスシステムは、前記クライアントの前記アクセス処理部は、カーネルが備えるソケット機能を利用して前記サーバのファイルハンドル取得プロセスからのファイルハンドルを取得することを特徴とする。
【0016】
請求項4の本発明のアクセスシステムは、前記クライアントに、特権モードで動作し、前記共有ディスク装置をアクセスするドライバのオープン処理を行う代理プロセスを備えることを特徴とする。
【0017】
請求項5の本発明のアクセスシステムは、前記クライアントの前記アクセス処理部は、カーネルが備える前記ソケット機構を利用して前記共有ディスク装置をアクセスするドライバを非特権モードで実行することを特徴とする。
【0018】
請求項6の本発明は、ストレージエリアネットワーク上の1以上の共有ディスク装置に構成されたファイルシステムのファイルへアクセスするクライアントであって、前記共有ディスク装置のファイルシステムへのアクセス機能として、通常のファイルシステム処理を行うダイナミックリンクライブラリが含む関数と同じシンボル名の関数に、前記共有ディスク装置のファイルシステムへのアクセス処理を挿入したダイナミックリンクライブラリであるアクセス処理部を備え、前記通常のファイルアクセス処理を行うダイナミックリンクライブラリより先に、前記アクセス処理部がダイナミックリンクされるように、ダイナミックリンクライブラリの検索パスを設定する機能を、前記クライアントのユーザプログラムの一部として実装することを特徴とする。
【0019】
請求項7の本発明のストレージエリアネットワーク上のクライアントは、前記ストレージエリアネットワーク上のサーバのファイルハンドル取得プロセスから、アクセスする前記ファイルシステムのファイルに対するファイルハンドルを取得することを特徴とする。
【0020】
請求項8の本発明のストレージエリアネットワーク上のクライアントは、前記アクセス処理部は、カーネルが備えるソケット機能を利用して前記サーバのファイルハンドル取得プロセスからのファイルハンドルを取得することを特徴とする。
【0021】
請求項9の本発明のストレージエリアネットワーク上のクライアントは、特権モードで動作し、前記共有ディスク装置をアクセスするドライバのオープン処理を行う代理プロセスを備えることを特徴とする。
【0022】
請求項10の本発明のストレージエリアネットワーク上のクライアントは、前記アクセス処理部は、カーネルが備える前記ソケット機構を利用して前記共有ディスク装置をアクセスするドライバを非特権モードで実行することを特徴とする。
【0027】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について図面を参照して詳細に説明する。
【0028】
図1は、本発明の第1の実施の形態によるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステムの全体構成を示すブロック図である。
【0029】
図1を参照すると、本発明の第1の実施の形態によるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステムは、サーバホスト10と、クライアントホスト20と、共有ディスク装置30と、ストレージエリアネットワーク40と、LAN(ローカルエリアネットワーク)50とから構成されている。
【0030】
サーバホスト10とクライアントホスト20はLAN50を経由してネットワークで接続されている。また、サーバホスト10とクライアントホスト20と、共有ディスク装置30は、ストレージエリアネットワーク40に接続されている。
【0031】
共有ディスク装置30には、サーバホスト10上のローカルな共有ファイルシステム60が構成されている。サーバホスト10は、その共有ディスク装置30に構成された共有ファイルシステム60を管理している。共有ファイルシステム60には、メタデータ70とファイル80が配置されている。
【0032】
共有ディスク装置30には、サーバホスト10及びサーバホスト20からストレージエリアネットワーク40を経由して、物理ディスクアドレスとデータサイズ(IOサイズ)をパラメータにして、SCSIプロトコルでアクセスする。
【0033】
共有ファイルシステム60は、サーバホスト10で管理されるメタデータ70とファイル80が配置されており、ファイル80をアクセスするためには、サーバホスト10が管理するメタデータ70を使用する必要がある。
【0034】
一方、クライアントホスト20は、共有ファイルシステム60をネットワークファイルシステム(NFS)の機能を使用して、ネットワーク経由でマウントしている。クライアントホスト20はNFSを使用してファイル80の存在を知ることができる。
【0035】
クライアントホスト20が共有ファイルシステム60をアクセスするとき、クライアントホスト20はサーバホスト10に対して、アクセスするファイル80を特定するための情報(サーバホスト10が管理するファイル識別子)であるファイルハンドルと、そのファイル80についての先頭からのオフセット値と、IOサイズを、LAN50を経由して送信する。
【0036】
そして、サーバホスト10はクライアントホスト20に対して、共有ファイルシステム60に記録されている、ファイル80についての先頭からのオフセット値に対応する共有ディスク装置30の物理ディスクアドレス(開始アドレス)と、IOサイズと、ファイル80の先頭からのオフセットアドレスを、LAN50を経由して送信する。
【0037】
そして、クライアントホスト20がサーバホスト10から送信されたそれらの情報に従って、ストレージエリアネットワーク40を経由して共有ディスク装置30に直接アクセスすることにより、クライアントホスト20から共有ファイルシステム60のファイルへの高速アクセスが実現される。
【0038】
本実施の形態では、クライアントホスト20が実現する上述した共有ファイル60へのアクセス機能を、OSが持つアプリケーションインタフェース(API)のみで実現できるように構成している。これにより、機能実現のためにカーネルに手を加える必要がなくなり、様々なプラットフォームへの移植を容易とする。
【0039】
図2はサーバホスト10とクライアントホスト20の詳細な内部構造を示している。
【0040】
図2を参照すると、サーバホスト10では、カーネル機能101が実装されており、カーネル機能101は共有ファイルシステムサーバ機構1011、ファイルシステム制御機構1012、SCSIドライバ1013を含んでいる。また、サーバホスト10では、ユーザ空間で動作するプロセスである、ファイルハンドル取得デーモン102が動作している。ここで、デーモンとは、システムの機能を実現したり、何らかのバックグラウンドサービスを実行するためのプロセスである。
【0041】
クライアントホスト20では、カーネル機能203が実装されており、カーネル機能203は、RawIOドライバ2031、SCSIドライバ2033、ソケット機構2034及びファイルシステム制御機構2035を含んでいる。またRawIOドライバ2031には、ユーザ空間へ転送するためのメモリ領域であるバッファ2032を含んでいる。
【0042】
また、クライアントホスト20上には、IO発行プロセスである、ユーザプログラム201があり、それはIO用のメモリ領域2010をアロケートして動作する。
【0043】
さらに、ダイナミックリンクライブラリとして提供される共有ファイルシステムクライアントIO発行処理部202及び標準IO発行処理部205がクライアントホスト20上に存在する。さらに、クライアントホスト20では、代理openデーモン206が動作している。
【0044】
なお、サーバホスト10のカーネル機能101、ファイルハンドラ取得デーモン102、クライアントホスト20のカーネル機能203、ユーザプログラム201、共有ファイルシステムクライアントIO発行処理部202、標準IO発行処理部205及び代理openデーモン206は、サーバホスト10及びクライアントホスト20のプログラム制御可能なコンピュータ処理部(CPU)上で実行されることにより、各機能を実現する。
【0045】
ダイナミックリンクライブラリである共有ファイルシステムIO発行処理部202及び標準IO発行処理部205は、open(オープン)、read(リード)、write(ライト)、close(クローズ)の各関数が、同じシンボル名で定義されいる。
【0046】
ユーザプログラム201がopen、read、write、close関数を呼び出すと、カーネル機能203によって、シンボル名を解決するため、ダイナミックリンクライブラリに含まれる関数がユーザプログラムの一部となって実行される。
【0047】
また、クライアントホスト20上には、ユーザ空間で動作する、代理openデーモン206が動作しており、カーネル機能203に含まれるソケット機構2034を利用して、ユーザプログラム201と通信できる。
【0048】
ここで、クライアントホスト20上のユーザプログラム201がファイル80に対してアクセスする場合について述べる。
【0049】
ユーザプログラム201からファイル80に対してアクセスするときには、共有ファイルシステム60上のファイル80に対するファイルハンドルを共有ファイルシステムサーバ機構1011に送信する必要がある。しかし、共有ファイルシステム60はサーバホスト10上のローカルファイルシステムであり、通常のOSが提供するAPIではファイル80のファイルハンドルを得ることができない。
【0050】
そこで、サーバホスト10上にファイルハンドル取得デーモン102を配置する。
【0051】
このファイルハンドル取得デーモン102は、サーバホスト10上で、特権モードで動作し、ファイルシステム制御機構1012から共有ファイルシステム60上に構築した任意のファイル名のファイルハンドルを取得することができる。
【0052】
共有ファイルシステムクライアントIO発行処理部202は、ファイルの絶対パス名を送信し、その戻りとして、サーバホスト10上のファイル80に対するファイルハンドルを取得する。
【0053】
次に、ユーザプログラム201を改変することなくアクセスする本発明による方式について述べる。
【0054】
共有ディスク装置30へアクセスするためのユーザプログラム201が動作する場合、ユーザプログラム201は、共有ファイルシステムクライアントIO発行処理部202とダイナミックリンクされ、1つのユーザプログラムとして動作する。
【0055】
共有ファイルシステムクライアントIO発行処理部202は、カーネル機能のIO処理用APIであるopen、read、write、closeの関数が実装されており、それらの関数はカーネル機能203に実装されているRawIOドライバ2031とソケット機構2034のAPIを使用して実装されている。
【0056】
RawIOドライバ2031は、共有ディスク装置30への低レベルアクセス処理機能で、SCSIプロトコルによるIO処理をユーザプログラム201から使用するためのAPIを提供している。
【0057】
ユーザプログラム201は、通常のファイルシステムにアクセスする場合は、システム上にあらかじめ準備されている標準IO発行処理部205とダイナミックリンクされ、open、read、write、closeのAPIを使用することによりデータの入出力を行うが、本実施の形態では、先に共有ファイルシステムクライアントIO発行処理部202がダイナミックリンクされるように、ダイナミックリンクライブラリの検索パスを変更し、最初にクライアント発行処理部202のライブラリがリンクされるようにする。
【0058】
これにより、ダイナミックリンクライブラリのリンクが、共有ファイルシステムクライアントIO発行処理部202、標準IO発行処理部205の順で行われる。
【0059】
この結果、open、read、write、close処理においては、先に共有ファイルシステムクライアントIO発行処理部202に含まれる関数が実行されることになり、これらの関数内に共有ファイルシステムアクセス用のクライアント処理を挿入することができる。
【0060】
次に、RawIOアクセスの方法について述べる。
【0061】
通常、RawIOドライバ2031に対しては特権モードでアクセスする必要がある。しかしながら、ユーザプログラム201は、非特権モードで動作することが多く、この場合、RawIOドライバ2031にはアクセスできない。
【0062】
ただし、RawIOドライバ2031の機能として、共有ディスク装置30のアクセス権の管理は、共有ディスク装置30へのopen処理が特権モードで行なわれていればよく、それ以降の実際のディスク操作であるread、write、closeは、open処理の過程で得られる共有ディスク装置30のファイルハンドルを用いて行われる。
【0063】
すなわち、この共有ディスク装置30のファイルハンドルのコピーをユーザプログラム201が保持することにより、RawIOドライバ2031へのアクセスは、非特権モードであっても可能となる。
【0064】
そのため、本実施の形態においては、クライアントホスト20上に特権モードで動作する代理openデーモン206を配置する。
【0065】
この代理openデーモン206は、特権モードで動作し、RawIOドライバ2031にアクセスすることができ、共有ファイルシステムクライアントIO発行処理部202とソケット機構2034を経由して通信する。
【0066】
このとき共有ファイルシステムクライアントIO発行処理部部202は、共有ディスク装置30のRawIOドライバのopen処理を代理openデーモン206に実行させ、そのファイルハンドルのコピーをソケット機構2034のAPIを使用して取得する。
【0067】
これにより、以降の共有ディスク装置30へRawIOドライバ2031を経由させたread、writeの操作を、代理openデーモン206で取得したファイルハンドルのコピーを使用することにより、非特権モードで実行することができるようになる。
【0068】
上記の方式により、クライアントホスト20から、サーバホスト10上の共有ファイルシステム60へアクセスする手段をカーネル機能と分離することができる。それによって、ユーザプログラム201のみで共有ファイルシステム60上のファイル80にアクセスすることが可能となる。
【0069】
次に、図1と、図2及び図3、図4、図5、図6のフローチャートを参照して本実施の形態によるシステム全体の動作について詳細に説明する。
【0070】
クライアントホスト20上のユーザプログラム201が、共有ファイルシステム60上のファイル80に対してアクセスする場合、まずユーザプログラム201は、データ用の領域であるメモリ領域2010を確保する、ユーザプログラム201はこのメモリ領域2010にデータを書込み、または、ここに書き込まれたデータを読み出す。
【0071】
ユーザプログラム201は、共有ディスク装置30上のファイル80をアクセスするとき、ファイル80をオープンするためopen関数を呼び出す(図3のステップ301)。
【0072】
このときカーネル機能203は、システムからopen関数をダイナミックリンクしようとする。この場合、ダイナミックリンクの検索パスを共有ファイルシステムクライアントIO発行処理部部202を最初に検索するように設定しておくことで、open関数について、共有ファイルシステムクライアントIO発行処理部部202が最初にダイナミックリンクされて、共有ファイルシステムクライアントIO発行処理部部202に含まれるopen関数が呼び出される(ステップ302)。続いて、標準IO発行処理部部205に含まれるopen関数が呼び出される(ステップ303)。
【0073】
次に、ファイル80が共有ファイルシステム60上のファイルかどうかをチェックする(ステップ304)。
【0074】
ファイル80が、共有ファイルシステム60上のファイルである場合は、ソケット機構2034を使用して、ファイルハンドル取得デーモン102と通信し、サーバホスト10が管理するファイル80のファイルハンドルを取得する(ステップ305)。以降、共有ファイルシステムサーバ機能1011と通信するときに、ここで取得したファイルハンドルを使用してファイルの識別を行う。
【0075】
ユーザプログラムがファイル80のリード(read関数)を実行する場合の動作について図4を参照して説明する。
【0076】
まず、ユーザプログラムはread関数を呼び出す(図4のステップ401)。このときのread関数は、ダイナミックリンクの検索パスの順序に従い、共有ファイルシステムクライアント202に含まれるread関数が呼び出される(ステップ402)。
【0077】
次に、ファイル80が共有ファイルシステム60上のファイルかどうかをチェックする(ステップ403)。
【0078】
ファイル80が、共有ファイルシステム60上のファイルでない場合は、標準IO発行処理部205に含まれるread関数を呼び出す(ステップ404)。
【0079】
ファイル80が、共有ファイルシステム60上のファイルである場合は、共有ファイルシステムサーバ機構1011に、図3のステップ305で取得したファイルハンドルを含むIO要求を、ソケット機構2034を経由して送信する(ステップ405)。
【0080】
その応答として、共有ファイルシステムサーバ機能1011は、ファイル80の物理アドレスとIOサイズとオフセット値をクライアントホスト20に対して送信し、共有ファイルシステムクライアントIO発行処理部202は、そのrawI/O要求を受け取る(ステップ406)。
【0081】
このときrawI/O要求には、共有ディスク装置30のデバイスファイル名が含まれている。
【0082】
次に、rawI/O要求に含まれている共有ディスク装置30がopenされているかどうかをチェックする(ステップ407)。
【0083】
もし、共有ディスク装置30がopenされていなかったら、代理openデーモン206に共有ディスク装置30へのopenを依頼する。
【0084】
代理openデーモン206は、特権モードで共有ディスク装置30をopenし、ソケット機構2034を経由して共有ディスク装置30へのファイルハンドルを送信する。通常、これはソケット機構2034に含まれている拡張メッセージSCM_RIGHTSを使用する。
【0085】
そして、共有ファイルシステムクライアントIO発行処理部202は、共有ディスク装置30へのファイルハンドルを取得する(ステップ408)。
【0086】
以降、共有ディスク装置30へのアクセスは、ステップ408で取得したファイルハンドルを用いて行うことができる。
【0087】
次に、ステップ406にて取得したrawIO要求と、ステップ408で取得した共有ディスク装置30へのファイルハンドルを利用して、RawIOドライバ2031を使用し、共有ディスク装置30へアクセスする(ステップ409)。
【0088】
このときのアクセス権は、代理openデーモン206によりopenされているファイルハンドラを使用するため、RawI/Oドライバ2031のアクセス権のチェックを通過できる。
【0089】
RawIOドライバ2031は、SCSIドライバ2033を経由して共有ディスク装置30へアクセスし、readデータはバッファ2032に転送され、そしてRawIOドライバ2031によりユーザプログラムのメモリ領域2010にコピーされる。
【0090】
その後、rawIO終了通知を共有ファイルシステムサーバ機構1011に送信し(ステップ410)、共有ファイルシステムクライアントIO発行処理部202はIO終了通知を受信する(ステップ411)。
【0091】
そして、readで発行したサイズとおなじサイズをseekしてファイル位置を合わせる(ステップ412)。
【0092】
ユーザプログラムがファイル80のwriteを実行する場合の動作について図5を参照して説明する。
【0093】
まず、ユーザプログラムはwrite関数を呼び出す(図5のステップ501)。このときのwrite関数は、ダイナミックリンクの検索パス順序により、共有ファイルシステムクライアント202に含まれるwrite関数が呼び出される(ステップ502)。
【0094】
次に、ファイル80が共有ファイルシステム60上のファイルかどうかをチェックする(ステップ503)。
【0095】
ファイル80が、共有ファイルシステム60上のファイルでない場合は、標準IO発行処理部205に含まれるwrite関数を呼び出す(ステップ504)。
【0096】
次にファイル8のキャッシュをフラッシュする(ステップ505)。
【0097】
ファイル80が、共有ファイルシステム60上のファイルである場合は、共有ファイルシステムサーバ機構1011に、図3のステップ4で取得したファイルハンドルを含むIO要求を、ソケット機構2034を経由してsendする(ステップ506)。
【0098】
その応答として共有ファイルシステムサーバ機能1011は、ファイル8の物理アドレスとIOサイズとオフセット値をクライアントホスト2に対して送信し、共有ファイルシステムクライアントIO発行処理部202は、そのrawIO要求をreceiveする(ステップ507)。
【0099】
このとき、rawIO要求には、共有ディスク装置30のデバイスファイル名が含まれている。
【0100】
次に、rawIO要求に含まれている共有ディスク装置30がopenされているかどうかをチェックする。(ステップ508)
もし共有ディスク装置30がopenされていなかったら、代理openデーモン206に共有ディスク装置30へのopenを依頼する。
【0101】
代理openデーモンは、特権モードで共有ディスク装置30をopenし、ソケット機構2034を経由して共有ディスク装置30へのファイルハンドルを送信する。通常これはソケット機構2034に含まれている拡張メッセージSCM_RIGHTSを使用する。
【0102】
そして、共有ファイルシステムクライアントIO発行処理部202は、共有ディスク装置30へのファイルハンドルを取得する(ステップ509)。
【0103】
以降、共有ディスク装置30へのアクセスは、ステップ509で取得したファイルハンドルを用いて行うことができる。
【0104】
次に、ステップ507で取得したrawIO要求と、ステップ509で取得した共有ディスク装置30へのファイルハンドルを利用して、RawIOドライバ2031を使用し、共有ディスク装置30へアクセスする(ステップ410)。
【0105】
このときのアクセス権は、代理openデーモン206によりopenされているファイルハンドラを使用するため、RawIOドライバ2031のアクセス権のチェックを通過できる。
【0106】
RawIOドライバはSCSIドライバ2033を経由して共有ディスク装置30へアクセスする、writeデータはユーザプログラムのメモリ2010からバッファ2032に転送され、そしてRawIOドライバにより共有ディスク装置30へ転送される。
【0107】
その後、rawIO終了通知を共有ファイルシステムサーバ機構1011に送信し(ステップ511)、共有ファイルシステムクライアントIO発行処理部202はIO終了通知を受信する(ステップ512)。そして、writeで発行したサイズとおなじサイズをseekしてファイル位置を合わせる(ステップ513)。
【0108】
ユーザプログラム201がファイル80のcloseを行う場合の動作について図6を参照して説明する。
【0109】
ユーザプログラム201がファイル80をcloseするときは、まず、ユーザプログラム201はclose関数を呼び出す(図6のステップ601)。このときのclose関数は、ダイナミックリンクの検索パス順序により、共有ファイルシステムクライアント202に含まれるclose関数が呼び出される(ステップ602)。
【0110】
次に、ファイル80が共有ファイルシステム60上のファイルかどうかをチェックする。(ステップ603)
ファイル80が共有ファイルシステム60上のファイルの場合は、先にopenしていた共有ディスク装置30をcloseする(ステップ604)。そして、ファイル80のcloseを行う(ステップ605)。
【0111】
本実施の形態によるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステムでは、上記のように構成され、かつ動作するので、ユーザプログラム201を改変することなく、ストレージエリアネットワーク40内の共有ファイルシステムに高速にアクセスする処理をカーネルの処理と分離して実行することができるようになる。それにより、クライアント機能がカーネルへの改造をすることなく実装でき、プラットフォームへの移植の工数を削減できる。その理由は、ダイナミックリンクライブラリを使用して、データアクセス部をユーザプログラムの一部として実装すること、特権モードでアクセスしなければならないRawIO処理を、代理openデーモンを配置することで回避すること、ネットワークファイルシステムのファイルハンドルを取得するデーモンをサーバホストに配置するためである。
【0112】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0113】
例えば、LAN50については、ストレージエリアネットワーク40内にも持つことが可能である。また、共有ディスク装置30については、図1のように1つでなく複数備えることもできるし、共有ディスク装置のファイルについて複数存在してもよい。
【0114】
【発明の効果】
以上説明したように本発明のストレージエリアネットワーク上の共有ディスク装置へのアクセスシステムによれば、以下に述べるような優れた効果が得られる。
【0115】
ストレージエリアネットワーク内の共有ファイルシステムに高速にアクセスする処理をカーネルの処理と分離することができる。よって、クライアントのストレージエリアネットワークへのアクセス機能をカーネルへの改造をすることなく実装でき、プラットフォームへの移植の工数を削減でき、また、ストレージエリアネットワークへのアクセスを行うためにカーネルのバージョンごとに実装をやりなおすといった不都合もなくなる。
【0116】
また、カーネルにストレージエリアネットワークのアクセス機能を実装しないので、バグがあった場合でも、ストレージエリアネットワークのシステム全体に影響を与えることがなくなる。
【0117】
その理由は、ダイナミックリンクライブラリを使用して、データアクセス機能をユーザプログラムの一部として実装すること、特権モードでアクセスしなければならないRawIO処理を、代理openデーモンを配置することで回避すること、ネットワークファイルシステムのファイルハンドルを取得するデーモンをサーバホストに配置したためである。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態によるストレージエリアネットワーク上の共有ディスク装置へのアクセスシステムの全体構成示すブロック図である。
【図2】 本発明の第1の実施の形態によるサーバホストとクライアントホストの内部構成を示すブロック図である。
【図3】 本発明の第1の実施の形態によるアクセスシステムにおいてユーザプログラムが共有ディスク装置上のファイルをオープンする場合の動作を説明するフローチャートである。
【図4】 本発明の第1の実施の形態によるアクセスシステムにおいてユーザプログラムが共有ディスク装置上のファイルをリードする場合の動作を説明するフローチャートである。
【図5】 本発明の第1の実施の形態によるアクセスシステムにおいてユーザプログラムが共有ディスク装置上のファイルにライトする場合の動作を説明するフローチャートである。
【図6】 本発明の第1の実施の形態によるアクセスシステムにおいてユーザプログラムが共有ディスク装置上のファイルをクローズする場合の動作を説明するフローチャートである。
【符号の説明】
10:サーバホスト
20:クライアントホスト
30:共有ディスク装置
40:ストレージエリアネットワーク
50:LAN
60:共有ファイルシステム
70:メタデータ
80:ファイル
101:カーネル機能
102:ファイルハンドル取得デーモン
1011:共有ファイルシステムサーバ機構
1012:ファイルシステム制御機構
1013:SCSIドライバ
201:ユーザプログラム
202:共有ファイルシステムクライアントIO発行処理部
203:カーネル機能
205:標準IO発行処理部
206:代理openデーモン
2010:メモリ領域
2021:メモリ領域
2032:バッファ
2031:RawIOドライバ
2032:バッファ
2033:SCSIドライバ
2034:ソケット機構

Claims (8)

  1. 複数のクライアントが、ストレージエリアネットワーク上の1以上の共有ディスク装置に構成されたファイルシステムのファイルへアクセスするアクセスシステムであって、
    前記クライアントの前記共有ディスク装置のファイルシステムへのアクセス機能として、通常のファイルシステム処理を行うダイナミックリンクライブラリが含む関数と同じシンボル名の関数に、前記共有ディスク装置のファイルシステムへのアクセス処理を挿入したダイナミックリンクライブラリであるアクセス処理部を備え、
    前記通常のファイルアクセス処理を行うダイナミックリンクライブラリより先に、前記アクセス処理部がダイナミックリンクされるように、ダイナミックリンクライブラリの検索パスを設定する機能を、前記クライアントのユーザプログラムの一部として実装し、
    前記クライアントに、特権モードで動作し、前記共有ディスク装置をアクセスするドライバのオープン処理を行ってファイルハンドルのコピーを取得するための代理プロセスを備えることを特徴とするストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム。
  2. 前記ストレージエリアネットワーク上のサーバに、前記クライアントがアクセスする前記ファイルシステムのファイルに対するファイルハンドルを取得して、前記クライアントへ送信するファイルハンドル取得プロセスを備えることを特徴とする請求項1に記載のストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム。
  3. 前記クライアントの前記アクセス処理部は、カーネルが備えるソケット機能を利用して前記サーバのファイルハンドル取得プロセスからのファイルハンドルを取得することを特徴とする請求項2に記載のストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム。
  4. 前記クライアントの前記アクセス処理部は、カーネルが備える前記ソケット機構を利用して前記共有ディスク装置をアクセスするドライバを非特権モードで実行することを特徴とする請求項1から請求項の何れか1項に記載のストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム。
  5. ストレージエリアネットワーク上の1以上の共有ディスク装置に構成されたファイルシステムのファイルへアクセスするクライアントであって、
    前記共有ディスク装置のファイルシステムへのアクセス機能として、通常のファイルシステム処理を行うダイナミックリンクライブラリが含む関数と同じシンボル名の関数に、前記共有ディスク装置のファイルシステムへのアクセス処理を挿入したダイナミックリンクライブラリであるアクセス処理部を備え、
    前記通常のファイルアクセス処理を行うダイナミックリンクライブラリより先に、前記アクセス処理部がダイナミックリンクされるように、ダイナミックリンクライブラリの検索パスを設定する機能を、前記クライアントのユーザプログラムの一部として実装し、
    特権モードで動作し、前記共有ディスク装置をアクセスするドライバのオープン処理を行ってファイルハンドルのコピーを取得するための代理プロセスを備えることを特徴とするストレージエリアネットワーク上のクライアント。
  6. 前記ストレージエリアネットワーク上のサーバのファイルハンドル取得プロセスから、アクセスする前記ファイルシステムのファイルに対するファイルハンドルを取得することを特徴とする請求項に記載のストレージエリアネットワーク上のクライアント。
  7. 前記アクセス処理部は、カーネルが備えるソケット機能を利用して前記サーバのファイルハンドル取得プロセスからのファイルハンドルを取得することを特徴とする請求項に記載のストレージエリアネットワーク上のクライアント。
  8. 前記アクセス処理部は、カーネルが備える前記ソケット機構を利用して前記共有ディスク装置をアクセスするドライバを非特権モードで実行することを特徴とする請求項から請求項の何れか1項に記載のストレージエリアネットワーク上のクライアント。
JP2003185668A 2003-06-27 2003-06-27 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント Expired - Fee Related JP4150854B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003185668A JP4150854B2 (ja) 2003-06-27 2003-06-27 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント
US10/875,810 US7827194B2 (en) 2003-06-27 2004-06-25 Access to shared disk device on storage area network
EP04015143A EP1492028B1 (en) 2003-06-27 2004-06-28 Access to shared disk device on storage area network
DE602004002243T DE602004002243T2 (de) 2003-06-27 2004-06-28 Zugriff zum gemeinsam genutzten Plattengerät in einem Speicherbereichnetzwerk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003185668A JP4150854B2 (ja) 2003-06-27 2003-06-27 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント

Publications (2)

Publication Number Publication Date
JP2005018643A JP2005018643A (ja) 2005-01-20
JP4150854B2 true JP4150854B2 (ja) 2008-09-17

Family

ID=33411158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003185668A Expired - Fee Related JP4150854B2 (ja) 2003-06-27 2003-06-27 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント

Country Status (4)

Country Link
US (1) US7827194B2 (ja)
EP (1) EP1492028B1 (ja)
JP (1) JP4150854B2 (ja)
DE (1) DE602004002243T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237050B2 (en) * 2005-03-16 2007-06-26 Inventec Corporation Multi-channel serial advanced technology attachment control system and control card thereof
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
EP1960873B1 (en) 2005-12-17 2013-02-27 Intel Corporation Installing and executing shared applications in shared folders
US20110145563A1 (en) * 2009-12-14 2011-06-16 Michael Thomas Kain Secured file-based application programming interface
US20130124852A1 (en) * 2011-11-11 2013-05-16 Michael T. Kain File-based application programming interface providing ssh-secured communication
US10447765B2 (en) * 2017-07-13 2019-10-15 International Business Machines Corporation Shared memory device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
CA2227432C (en) * 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5657447A (en) * 1995-08-31 1997-08-12 International Business Machines Corp. Platform-transparent registration and build of stored procedures and user-defined functions
US5923846A (en) * 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
ES2140289B1 (es) * 1996-04-02 2000-08-16 Windmoeller & Hoelscher Casquillo para cilindros impresores.
US6088693A (en) * 1996-12-06 2000-07-11 International Business Machines Corporation Data management system for file and database management
US7389312B2 (en) * 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6041318A (en) * 1997-08-04 2000-03-21 Schneider National, Inc. Object oriented rating system and method
US6226642B1 (en) * 1997-09-11 2001-05-01 International Business Machines Corporation Content modification of internet web pages for a television class display
JP3605271B2 (ja) 1997-10-14 2004-12-22 富士通株式会社 分散システムにおける共有ファイルシステム
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
JP2000267866A (ja) 1999-03-15 2000-09-29 Nec Corp 2段式プロセスの終了状態獲得装置
AU2001286397A1 (en) * 2000-07-18 2002-01-30 Learningsoft Corporation Adaptive content delivery system and method
US20020078066A1 (en) * 2000-12-18 2002-06-20 David Robinson Data storage system including a file system for managing multiple volumes
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
US7165057B2 (en) * 2001-11-29 2007-01-16 Veritas Operating Corporation Methods and systems to access storage objects

Also Published As

Publication number Publication date
EP1492028A1 (en) 2004-12-29
EP1492028B1 (en) 2006-09-06
DE602004002243D1 (de) 2006-10-19
US20040267754A1 (en) 2004-12-30
DE602004002243T2 (de) 2007-08-30
US7827194B2 (en) 2010-11-02
JP2005018643A (ja) 2005-01-20

Similar Documents

Publication Publication Date Title
US7457880B1 (en) System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US7366835B2 (en) Data access responding system, storage system, client apparatus, cache apparatus, and method for accessing data access responding system
JP4613023B2 (ja) プロトコル独立型クライアント側キャッシュ(protocol−independentclient−sidecaching)システムおよび方法
US8713180B2 (en) Zero-copy network and file offload for web and application servers
US5740370A (en) System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
JP4297790B2 (ja) 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ
US7233984B2 (en) Light weight file I/O over system area networks
US6453354B1 (en) File server system using connection-oriented protocol and sharing data sets among data movers
US7877411B1 (en) System and method for duplication of virtual private server files
US20070233880A1 (en) Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
JP2005535019A (ja) ストレージ管理ブリッジ
US6606651B1 (en) Apparatus and method for providing direct local access to file level data in client disk images within storage area networks
JP2004326162A (ja) ネットワークシステム、サーバ、データ処理方法及びプログラム
JP4278452B2 (ja) 計算機システム
JP4150854B2 (ja) ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント
US8239862B2 (en) Apparatus, method, and computer program product for processing information
JP2010519613A (ja) データキャッシュ処理を向上させるシステム及び方法
JP2000276306A (ja) ネットワーク接続ディスク装置
US6633904B1 (en) Fast data exchange system between different type computer and medium storing program of extent information and transformation
US20080270480A1 (en) Method and system of deleting files from a remote server
WO2023273803A1 (zh) 一种认证方法、装置和存储系统
JP2004246702A (ja) 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム
US6516344B1 (en) Reducing network traffic for remote file system accesses by keeping track of unallocated regions in files
KR20220053207A (ko) 멀티-다운로드 기반의 고성능 인터넷 파일 시스템

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080319

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080319

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080509

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: 20080603

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080616

R150 Certificate of patent or registration of utility model

Ref document number: 4150854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130711

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees