[go: up one dir, main page]

JP4089506B2 - File sharing system, server and program - Google Patents

File sharing system, server and program Download PDF

Info

Publication number
JP4089506B2
JP4089506B2 JP2003141941A JP2003141941A JP4089506B2 JP 4089506 B2 JP4089506 B2 JP 4089506B2 JP 2003141941 A JP2003141941 A JP 2003141941A JP 2003141941 A JP2003141941 A JP 2003141941A JP 4089506 B2 JP4089506 B2 JP 4089506B2
Authority
JP
Japan
Prior art keywords
requests
request
processing
server
processed
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
JP2003141941A
Other languages
Japanese (ja)
Other versions
JP2004348233A (en
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 JP2003141941A priority Critical patent/JP4089506B2/en
Publication of JP2004348233A publication Critical patent/JP2004348233A/en
Application granted granted Critical
Publication of JP4089506B2 publication Critical patent/JP4089506B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ファイルシステムを管理するサーバーと、サーバーに対してI/O要求を送信する複数のクライアントとを備えたファイル共有システムに関し、特に、サーバー上に無駄なシステム資源を確保することなく、効率良くI/O要求を処理することが可能なファイル共有システムに関する。
【0002】
【従来の技術】
従来から図14に示すように、ネットワーク回線6を介して相互に接続された複数のクライアント1−1〜1−nとサーバー2とが、複数のディスク装置5−1〜5−mからなるファイルシステム4を交換機3を介して共有するファイル共有システムが知られている(例えば、特許文献1参照)。
【0003】
この特許文献1に示されているファイル共有システムは、次のようにしてデータの入出力を行う。先ず、クライアント1−i(1≦i≦n)が、ネットワーク回線6を介してサーバー2へ、I/O処理の対象にするファイルのファイル名等を含むI/O要求を送信する。サーバー2内には、I/O要求を処理するプロセスである入出力制御手段(図示せず)が存在し、この入出力制御手段は、クライアント1−iからI/O要求が送られてくると、I/O処理の対象にするディスク装置5−j(1≦j≦m)のネットワークアドレスを求め、このネットワークアドレスをI/O要求に付加した拡張入出力命令をクライアント1−iに返信する。クライアント1−iでは、拡張入出力命令をディスク装置5−jに対するI/O命令に変換し、交換機3を介してディスク装置5−jへ発行する。これにより、クライアント1−iとディスク装置5−jとの間で、サーバー2を介さずに直接データの入出力が行われる。データの入出力が完了すると、クライアント1−iは、サーバー2に対して送信完了通知を送り、この通知を受けたサーバー2内の入出力制御手段は、I/O要求の完了通知をクライアント1−iに返信する。
【0004】
【特許文献1】
特開2000−250821号公報
【0005】
【発明が解決しようとする課題】
上述した特許文献1に記載された従来の技術によれば、サーバーを介さずに、クライアントとディスク装置との間で直接データを入出力することができるので、サーバーを介してデータを入出力する場合に比較して、高速にデータを入出力することができる。しかし、特許文献1では、I/O要求を処理するプロセス(入出力制御手段)のプロセス数については、全く言及していないため、次のような問題があった。
【0006】
サーバーに多数のクライアントから多数の入出力要求が送られてきた場合、I/O要求を処理するプロセス数が少ないと、待ちが発生し、I/O処理効率が悪くなる。また、この問題を解消するために、常時多数のプロセスを起動したとすると、I/O負荷が低い場合は、サーバーのシステム資源を無駄に消費することになり、I/O処理以外の他の処理の処理効率が悪くなる可能性がある。
【0007】
そこで、本発明の目的は、サーバー上に無駄なシステム資源を確保することなく、効率良くI/O要求を処理できるようにすることにある。
【0008】
【課題を解決するための手段】
本発明にかかるファイル共有システムは、上記目的を達成するため、
ファイルシステムを管理するサーバーと、該サーバーに対してI/O要求を送信する複数のクライアントとを備えたファイル共有システムにおいて、
前記サーバーが、
前記クライアントから送られてきた I/O 要求をキューイングする I/O キューと、
I/O キューから I/O 要求を取り出し、該 I/O 要求に従って処理を行う I/O 処理プロセスであって、前記 I/O 要求に従った処理が完了するまで、前記 I/O 要求に占有される I/O 処理プロセスと、
前記 I/O キューにキューイングされている I/O 要求数と、 I/O 処理プロセスを占有している I/O 要求数との和である処理対象 I/O 要求数が増加する傾向にあり、且つ現時点における処理対象 I/O 要求数が現時点における起動 I/O 処理プロセス数よりも閾値以上大きい場合に限り、起動 I/O 処理プロセス数を現時点の処理対象 I/O 要求数まで増加させ、処理対象 I/O 要求数が減少する傾向にあり、且つ現時点における処理対象 I/O 要求数が現時点における起動 I/O 処理プロセス数よりも前記閾値以上小さい場合に限り、起動 I/O 処理プロセス数を現時点の処理対象 I/O 要求数まで減少させるプロセス数制御手段とを備えたことを特徴とする。
【0010】
また、本発明にかかるファイル共有システムは、
前記プロセス数制御手段が、
処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上多い場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させるための起動プロセス数増加指示を出力し、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上少ない場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるための起動プロセス数減少指示を出力するという処理を所定時間毎に行う処理対象I/O要求数増減判別手段と、
該処理対象I/O要求数増減判別手段から出力される起動プロセス数増加指示に従って、新たなI/O処理プロセスを起動するプロセス起動手段と、
前記処理対象I/O要求数増減判別手段から出力される起動プロセス数減少指示に従って、I/O要求待ち状態にあるI/O処理プロセスを終了させるプロセス終了手段とを備えたことを特徴とする。
【0011】
また、本発明にかかるファイル共有システムは、クライアントとサーバーとの間でデータをやり取りせず、クライアントとディスク装置との間で直接データを入出力できるようにするため、
前記各クライアントが、
前記ファイルシステム上の論理位置を含むI/O要求を前記サーバーに送信し、前記サーバーから前記I/O要求中の論理位置に対応する物理位置を含むraw I/O情報が返信されたとき、前記raw I/O情報に従ってディスク装置に対するI/O処理を行うI/O発行手段を備え、
前記サーバーが、
送信キューと、
該送信キューからraw I/O情報を取り出し、該raw I/O情報に対応するI/O要求の送信元のクライアントへ返信するサーバー側送信手段とを備え、且つ、
前記I/O処理プロセスが、
前記I/OキューからI/O要求を取り出し、該取り出したI/O要求中の論理位置に対応する物理位置を含むraw I/O情報を前記送信キューにキューイングする構成を有することを特徴とする。
【0012】
また、本発明にかかるファイル共有システムは、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合であっても、並列I/O性能を損なわないようにするため、
ファイルシステムを管理するサーバーと、該サーバーに対してI/O要求を送信する複数のクライアントとを備えたファイル共有システムにおいて、
前記各クライアントが、
前記ファイルシステム上の論理位置を含むI/O要求を前記サーバーに送信し、前記サーバーから前記I/O要求中の論理位置に対応する物理位置を含む複数のraw I/O情報が返信される毎に既に行っているI/O処理の終了を待たずに前記raw I/O情報に従ってディスク装置に対するI/O処理を行い、前記サーバーから前記I/O要求に対するI/O終了通知が送られてきたとき、終了処理を行うI/O発行手段と、
前記raw I/O情報に従ったI/O処理が終了する毎に、前記サーバーへI/O終了情報を送信する、前記I/O発行手段とは独立して動作するクライアント側送信手段とを備え、
前記サーバーが、
I/Oキューと、
送信キューと、
前記各クライアントから送られてきたI/O要求を前記I/OキューにキューイングするI/O要求受信手段と、
前記I/OキューにキューイングされているI/O要求を取り出し、該取り出したI/O要求中の論理位置に対応する各物理位置毎のraw I/O情報であって対応する物理位置を含むraw I/O情報を前記送信キューにキューイングし、前記各raw I/O情報に対応するI/O終了情報を全て受信したとき、前記I/O要求の送信元のクライアントに対してI/O終了通知を送信するI/O処理プロセスと、
前記送信キューからraw I/O情報を取り出し、該raw I/O情報に対応するI/O要求の送信元のクライアントへ送信するサーバー側送信手段と、
前記各クライアントからのI/O終了情報を受信し、該受信したI/O終了情報を、該I/O終了情報と対応するI/O要求によって占有されているI/O処理プロセスに渡す受信手段と、
前記I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上大きい場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させ、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上小さい場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるプロセス数制御手段とを備えたことを特徴とする。
【0013】
【作用】
サーバーに対して、多数のクライアントから多数のI/O要求が発行され、サーバーのI/O負荷が高くなった場合、I/O要求を効率的に処理するためには、多くのI/O処理プロセスが必要になる。一方、I/O負荷が低い場合は、多数のI/O処理プロセスは必要としないが、I/O負荷が上がった場合のことを考慮して、予めクライアントからのI/O要求数に見合った数のI/O処理プロセスを起動しておく必要がある。しかし、負荷が低い場合に、I/O負荷が上がった場合のことを考慮して多くのI/O処理プロセスを起動しておくと、システム資源が無駄に消費され、他の処理に悪影響を与える可能性がある。
【0014】
そこで、本発明では、I/O要求を処理するI/O処理プロセスの数を、サーバーのI/O負荷に応じて動的に変更するプロセス数制御手段を設けることにより、サーバー上に無駄なシステム資源を確保することなく、効率良くI/O要求を処理できるようにしている。プロセス数制御手段では、I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあるのか、減少する傾向にあるのかを判断している。そして、処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が、現時点における起動I/O処理プロセス数よりも閾値以上大きい場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させる。これに対して、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が、現時点における起動I/O処理プロセス数よりも閾値以上小さい場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させる。
【0015】
また、本発明のファイル共有システムは、ファイルに対する入出力を行う場合、クライアントからサーバーに対しては、ファイルシステム上の論理位置を含むI/O要求を送信し、サーバーからクライアントに対しては、上記I/O要求に含まれている論理位置に対応する物理位置を含むraw I/O情報を送信するだけであるので、クライアントとサーバーとの間では、入出力するデータをやり取りせずに、クライアントとディスク装置との間で直接データを入出力することが可能になる。
【0016】
更に、本発明のファイル共有システムは、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合における並列I/O性能を損なわないようにするため、次のようにしている。I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合、サーバーは、クライアントに対して、上記ファイルの論理位置に対応する各物理位置毎のraw I/O情報を送信する。クライアントのI/O発行手段は、raw I/O情報を受信する毎に、受信したraw I/O情報に従ってディスク装置に対してI/O処理を行う。このとき、I/O発行手段は、各raw I/O情報に対応したI/O処理の終了を待ち合わせずに、raw I/O情報を受信する毎に(連続的に)、raw I/O情報に従ったI/O処理を行うので、並列I/O性能を損なわないようにできる。
【0017】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
【実施例の構成】
図1は本発明にかかるファイル共有システムの実施例のブロック図である。同図を参照すると、本実施例にかかるファイル共有システムは、複数のクライアント1−1〜1−nと、サーバー2と、交換機3と、複数のディスク装置5−1〜5−mを含むファイルシステム4と、クライアント1−1〜1−nとサーバー2とを相互に接続するネットワーク回線6とから構成されている。
【0019】
クライアント1−1は、I/O発行プロセス101と、割込み処理手段105と、送信キュー106と、送信プロセス107とを備えている。なお、他のクライアントも同様の構成を有している。
【0020】
I/O発行プロセス101は、アプリケーションプログラムを実行する一般のプロセスであり、I/O要求手段102と、I/O発行手段103と、受信手段104とを備えている。
【0021】
I/O要求手段102は、アプリケーションプログラムからの要求に従って、I/O要求をネットワーク回線6を介してサーバー2へ送信する機能を有する。なお、I/O要求には、I/O処理の処理対象にするファイルの論理位置、このI/O要求を一意に識別するためのI/O要求識別子、およびread/write種別が含まれている。また、処理対象にするファイルの論理位置は、対象ファイルのファイルハンドラ、ファイルオフセットおよびI/Oサイズにより表すものとする。また、必要に応じて、I/O要求に認証情報を含ませるようにしても良い。
【0022】
受信手段104は、サーバー2からネットワーク回線6を介して送られてくるraw I/O情報やI/O終了通知を受信する機能、受信したraw I/O情報をI/O発行手段103に渡す機能、および、受信したI/O終了通知に従った終了処理を行う機能を有する。なお、raw I/O情報については、後で詳しく説明する。
【0023】
I/O発行手段103は、受信手段104からraw I/O情報が渡される毎に、そのraw I/O情報をディスクドライバが解釈できるI/O命令に変換し、該当するディスク装置5−jにI/O命令を発行する機能を有する。
【0024】
割込み処理手段105は、I/O発行手段103が発行したI/O命令に従ったI/O処理が終了する毎に、I/O終了情報を送信キュー106にキューイングする機能を有する。なお、I/O終了情報には、上記I/O命令を発行する契機となったraw I/O情報とI/O処理結果とが含まれる。
【0025】
送信プロセス107は、システム管理者によって起動されるシステムプロセスであり、送信手段108を備えている。この送信手段108は、送信キュー106にキューイングされているI/O終了情報をネットワーク回線6を介してサーバー2へ送信する機能を有している。
【0026】
サーバー2は、I/O要求受信プロセス201と、I/Oキュー203と、I/O処理プロセス204と、送信キュー206と、送信プロセス207と、受信プロセス209と、監視プロセス212とを備えている。なお、サーバー2内の各プロセス201、204、207、209、212は、システム管理者によって起動されるシステムプロセスである。
【0027】
I/O要求受信プロセス201は、I/O要求受信手段202を備えている。このI/O要求受信手段202は、クライアント1−iから送られてきたI/O要求にクライアント1−iのネットワークアドレスを付加してI/Oキュー203にキューイングする機能を有している。
【0028】
I/O処理プロセス204は、I/O手段205と、I/O終了通知手段211とを備えている。なお、図1では、1個のI/O処理プロセス204しか図示していないが、実際にはサーバー2のI/O負荷に応じた数のI/O処理プロセスが起動されている。
【0029】
I/O処理プロセス204内のI/O手段205は、I/Oキュー203にキューイングされているI/O要求(I/O要求元クライアントのネットワークアドレスが付加されている)の内の最も古いものを1つ取り出し、取り出したI/O要求に基づいてraw I/O情報を作成する機能や、作成したraw I/O情報を送信キュー206にキューイングする機能を有する。
【0030】
ここで、raw I/O情報の作成方法について説明しておく。I/O要求に基づいてraw I/O情報を作成する際、I/O手段205は、例えば、次のような処理を行う。先ず、ファイルシステム4を呼び出し、上記I/O要求中の論理位置(ファイルハンドラ、ファイルオフセット及びI/Oサイズ)をファイルシステム4に渡す。これにより、ファイルシステム4は、上記論理位置に対応する物理位置(I/O処理に対象にしているファイルが存在するディスク装置のデバイス番号、開始セクタ番号およびセクタ数)を、I/O手段205に返却する。I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合などは、複数の物理位置が返却される。I/O手段205は、返却された各物理位置毎に、その物理位置と、上記I/O要求に含まれていたI/O要求識別子、read/write種別およびネットワークアドレスと、I/O発行プロセス内のI/O対象の仮想メモリの開始アドレスからのオフセットとを含むraw I/O情報を作成する。
【0031】
また、I/O処理プロセス204内のI/O終了通知手段211は、受信プロセス209から受け取ったI/O終了情報に基づいて、I/O要求によって要求されたI/O処理が全て終了したと判断したとき(上記I/O要求に基づいて作成した全てのraw I/O情報に対応するI/O終了情報を受け取ったとき)、ファイルシステムとしての終了処理を行うと共に、エラー情報、I/Oサイズ、I/O処理後のファイルオフセット、ファイルの更新情報、I/O要求識別子などを含むI/O終了通知を要求元のクライアントへ返信する機能を有する。
【0032】
送信プロセス207は、送信手段208を含んでいる。この送信手段208は、送信キュー206にキューイングされているraw I/O情報を古いものから順番に取り出し、raw I/O情報に含まれているネットワークアドレスに従ってI/O要求元のクライアントへ送信する機能を有する。
【0033】
受信プロセス209は、受信手段210を含んでいる。この受信手段210は、クライアント1−iから送られてきたI/O終了情報を、起動されているI/O処理プロセスの内の、上記I/O終了情報に含まれているI/O要求識別子によって特定されるI/O要求を処理しているI/O処理プロセスに渡す機能を有する。
【0034】
監視プロセス212は、プロセス数制御手段213を含んでいる。このプロセス数制御手段213は、サーバー2のI/O負荷に応じて、I/O処理プロセス数を動的に変更する機能を有する。
【0035】
記録媒体Kは、ディスク、半導体メモリ、その他の記録媒体であり、コンピュータからなるサーバー2を、ファイル共有システムの一部として機能させるためのプログラムが記録されている。このプログラムは、サーバー2によって読み取られ、その動作を制御することで、サーバー2上に、I/O要求受信プロセス201、I/Oキュー203、I/O処理プロセス204、送信キュー206、送信プロセス207、受信プロセス209、監視プロセス212を実現する。
【0036】
【実施例の動作の説明】
次に各図を参照して本実施例の動作について詳細に説明する。なお、図2は、クライアント1−1がI/O要求(このI/O要求が対象にしているファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合)をサーバー2に送信したときのネットワークシステム全体の処理例を示すフローチャート、図3はI/O発行プロセス101の処理例を示すフローチャート、図4は割込み処理手段105の処理例を示すフローチャート、図5は送信プロセス107の処理例を示すフローチャート、図6はI/O要求受信プロセス201の処理例を示すフローチャート、図7はI/O処理プロセス204の処理例を示すフローチャート、図8は送信プロセス207の処理例を示すフローチャート、図9は受信プロセス209の処理例を示すフローチャート、図10はプロセス数制御手段213の構成例を示すブロック図、図11は監視プロセス212の処理例を示すフローチャート、図12は監視プロセス212の処理内容を説明するための図、図13はクライアント1−1がI/O要求(このI/O要求が対象にしているファイルが、単一のディスク装置上に存在する場合)をサーバー2に送信したときのネットワークシステム全体の処理例を示すフローチャートである。
【0037】
クライアント1−1内のI/O発行プロセス101は、アプリケーションプログラム(図示せず)からファイルのI/O処理が要求されると、I/O要求手段102を使用してサーバー2へI/O要求を送信する(図2のステップS201、図3のステップS31)。なお、I/O要求には、I/O処理の対象にするファイルの論理位置(対象ファイルのファイルハンドラ、ファイルオフセット、I/Oサイズ)と、read/write種別と、上記I/O要求を一意に識別するためのI/O要求識別子とが含まれている。この後、I/O発行プロセス101においては、受信手段104がサーバー2からのパケットを待ち合わせる受信待ち状態となる(図3のステップS32、S33)。
【0038】
クライアント1−1からサーバー2に送信されたI/O要求は、I/O要求受信プロセス201内のI/O要求受信手段202で受信され、I/Oキュー203にキューイングされる(図2のステップS202、図6のステップS61、S62)。なお、I/O要求をI/Oキュー203にキューイングする際、I/O要求受信手段202は、要求元クライアント1−1のネットワークアドレスをI/O要求に付加する。この後、I/O要求受信手段202は、他に受信したI/O要求がなければ、受信待ち状態となる(ステップS63)。
【0039】
I/O処理プロセス204内のI/O手段205は、図7のフローチャートに示すように、I/Oキュー203が空の場合はI/O要求待ち状態となっているが(ステップS71がNo、S72)、I/Oキュー203にI/O要求がキューイングされている場合には、その内の最も古いI/O要求を1つ取り出す(ステップS71がYes、S73)。今、例えば、I/O手段205が、ステップS202においてI/Oキュー203にキューイングされた、クライアント1−1からのI/O要求およびそれに付加されているクライアント1−1のネットワークアドレスを取り出したとする。
【0040】
I/O手段205は、クライアント1−1からのI/O要求およびネットワークアドレスを取り出すと、ファイルシステム4を呼び出し、上記I/O要求中の論理位置(ファイルハンドラ、ファイルオフセット及びI/Oサイズ)をファイルシステム4に渡す。これにより、ファイルシステム4は、上記論理位置に対応する物理位置(I/O処理に対象にしているファイルが存在するディスク装置のデバイス番号、開始セクタ番号およびセクタ数)を、I/O手段205に返却する。I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合などは、複数の物理位置が返却される(ステップS74)。I/O手段205は、返却された各物理位置毎に、その物理位置と、上記I/O要求に含まれていたI/O要求識別子、read/write種別およびネットワークアドレスと、I/O発行プロセス内のI/O対象の仮想メモリの開始アドレスからのオフセットとを含むraw I/O情報を作成し、送信キュー206にキューイングする(ステップS75、図2のステップS203)。今、例えば、クライアント1−1からのI/O要求に対して第1番目〜第k番目までの、k個のraw I/O情報が送信キュー206にキューイングされたとする。その後、I/O処理プロセス204においては、I/O終了通知手段211がI/O終了情報の受信待ち状態になる(ステップS76)。
【0041】
送信プロセス207内の送信手段208は、図8のフローチャートに示すように、送信キュー206が空の場合は送信待ち状態となっているが(ステップS81がNo、S82)、送信キュー206にraw I/O情報がキューイングされている場合は、最も古いraw I/O情報を1つ取り出す(ステップS83)。そして、取り出したraw I/O情報をパケット化し、上記raw I/O情報に含まれているネットワークアドレスによって特定されるクライアントへ送信する(ステップS84)。今、例えば、送信手段208がクライアント1−1のネットワークアドレスを含んだ第1番目のraw I/O情報を送信キュー206から取り出したとすると、図2に示すように、パケット化された第1番目のraw I/O情報が、クライアント1−1へ送信される(ステップS204-1)。
【0042】
受信手段104で受信待ち状態の、クライアント1−1内のI/O発行プロセス101は、サーバー2からパケットを受信すると、それがraw I/O情報なのか、I/O終了通知なのかを判断する(ステップS32がYes、S34)。この例の場合、サーバー2からは、第1番目のraw I/O情報が送られてきているので、受信手段104は、raw I/O情報をI/O発行手段103に渡す。I/O発行手段103は、受信手段104から第1番目のraw I/O情報が渡されと、それをディスクドライバが解釈できる第1番目のI/O命令に変換し、該当するディスク装置5−jにI/O命令を発行する(ステップS35、S36)。これにより、図2に示すように、ディスク装置5−jにおいて、第1番目のI/O命令に従ったI/O処理が実行される(ステップS205-1)。その後、I/O発行プロセス101は、第1番目のI/O命令に従ったI/O処理の終了待ち合わせは行わず、再度受信手段104で受信待ち状態となる(ステップS33)。
【0043】
ここで、第1番目のI/O命令に従ったI/O処理を実行しているディスク装置5−jの処理速度は、クライアント1−1〜1−nやサーバー2の処理速度に比較して非常に低速であるため、第1番目のI/O命令に従ったI/O処理が終了する前に、サーバー2内の送信プロセス207からクライアント1−1内のI/O発行プロセス101に対して第2番目〜第k番目のraw I/O情報が連続的に送られてくる(ステップS204-2〜S204-k)。I/O発行プロセス101は、前述したようにI/O処理の終了待ち合わせは行わず、受信手段104で受信待ち状態となっているので(ステップS33)、第2番目〜第k番目のraw I/O情報が送られてくる毎に、該当するディスク装置にI/O命令を発行し(ステップS35、S36)、該当する各ディスク装置においてI/O処理が実行される(ステップS205-2〜S205-k)。つまり、複数のraw I/O情報に対応したI/O処理が並行して実行されることになる。
【0044】
その後、第1番目〜第k番目のI/O命令に従ったI/O処理を実行しているディスク装置の内の、あるディスク装置(例えば、第1番目のI/O命令に従ったI/O処理を実行しているディスク装置5−j)で、第1番目のI/O命令に従ったI/O処理が終了すると、割込み処理手段105は、第1番目のI/O終了情報を送信キュー106にキューイングする(図4、ステップS41、S42)。なお、I/O終了情報には、上記I/O命令を発行する契機となった第1番目のraw I/O情報とI/O処理結果とが含まれる。また、上記した処理は、例えば、ディスクドライバの終了処理から起動されるコールバック関数において行われる。この割込み処理手段105による処理は、I/O命令に従ったI/O処理が終了する毎に行われ、送信キュー106には、第1番目〜第k番目のI/O終了情報がキューイングされる。
【0045】
送信プロセス107内の送信手段108は、図5のフローチャートに示すように、送信キュー106が空の場合は送信待ち状態になっているが(ステップS51がNo、S52)、送信キュー106にI/O終了情報がキューイングされている場合は、最も古いI/O終了情報を1つ取り出し、それをパケット化してサーバー2へ送信する(ステップS51がYes、S53、S54)。今、例えば、送信キュー106に第1番目〜第k番目のI/O終了情報が、その順でキューイングされたとすると、送信手段108は、図2に示すように、第1番目〜第k番目のI/O終了情報を順次サーバー2へ送信することになる(ステップS206-1〜S206-k)。
【0046】
クライアント1−1から最初に送られてくる第1番目のI/O終了情報は、受信プロセス209の受信手段210によって受信され、上記第1番目のI/O終了情報に含まれているI/O要求識別子によって特定されるI/O要求を処理しているI/O処理プロセス204内のI/O終了通知手段211に渡される(図9のステップS91がYes、S93)。その後、受信手段210は、I/O終了情報の受信待ち状態となる(ステップS92)。
【0047】
I/O終了通知手段211は、受信手段210から第1番目のI/O終了情報が渡されると、ファイルシステム4を利用して、現在処理中のI/O要求に関する全てのI/O終了情報を受信したか否かを判断する(図7のステップS77、S78)。この例の場合、第1番目〜第k番目のI/O終了情報の内の第1番目のI/O終了情報しか受信していないので、I/O終了通知手段211は、I/O処理終了待ち状態となる(ステップS78がNo、S76)。
【0048】
クライアント1−1から送られてくる第2番目〜第(k−1)番目のI/O終了情報についても、受信手段210及びI/O終了通知手段211において前述した処理と同様の処理が行われる。
【0049】
サーバー2内のI/O終了通知手段211は、受信プロセス209を介してクライアント1−1からの第k番目(最後)のI/O処理情報を受信すると、ファイルシステム4を利用して、現在処理中のI/O要求に関する全てのI/O終了情報を受信したか否かを判断する(図7のステップS77、S78)。そして、この第k番目のI/O終了情報を受信することにより、第1番目〜第k番目のI/O終了要求を全て受信したと判断すると、第1番目〜第k番目のI/O終了情報に基づいて、ファイルシステム4に対する終了処理を行い、その後、処理結果(エラー情報等)や、I/Oサイズ、I/O後のファイルオフセット、ファイルの更新情報、I/O要求識別子等を含むI/O終了通知をパケット化してクライアント1−1へ送信する(図2のステップS207、図7のステップS79)。
【0050】
受信手段104で受信待ち状態のI/O発行プロセス101は、サーバー2からパケット化されたI/O終了通知を受信すると(図3のステップS32がYes、S34がYes)、処理結果を要求元のアプリケーションプログラムに返却する等の終了処理を行った後、ユーザモードに復帰する(ステップS37、S38、図2のステップS208)。
【0051】
なお、図2は、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合の動作例を示したが、I/O対象にするファイルが単一ディスク装置上に存在する場合は、例えば、図13に示すような動作が行われる。
【0052】
クライアント1−1内のI/O発行プロセス101が、I/O要求をサーバー2に送信すると(ステップS131)、サーバー2内のI/O要求受信手段202が、クライアント1−1からのI/O要求をI/Oキュー203にキューイングし(ステップS132)、I/O手段205がI/Oキュー203からI/O要求を取り出し、取り出したI/O要求に対応するraw I/O情報を送信キュー206にキューイングする(ステップS133)。この例の場合、I/O対象ファイルが単一のディスク装置上に存在するので、I/O手段205は、1個のraw I/O情報を送信キュー206にキューイングすることになる。送信キュー206にキューイングされたraw I/O情報は、送信手段208によってクライアント1−1に送信される(ステップS134)。
【0053】
クライアント1−1内のI/O発行プロセス101は、送信手段208から送られてきたraw I/O情報に対応したI/O命令を該当するディスク装置に発行する。これにより、該当するディスク装置において、I/O命令に従ったI/O処理が実行される(ステップS135)。
【0054】
ディスク装置でのI/O処理が終了すると、割込み処理手段105がI/O終了情報を送信キュー106にキューイングし、送信手段108が送信キュー106にキューイングされているI/O終了情報をサーバー2へ送信する(ステップS136)。
【0055】
サーバー2内のI/O終了通知手段211は、受信手段210を介してI/O終了情報を受信すると、全てのI/O終了情報を受信したことになるので、I/O終了通知をクライアント1−1へ送信する(ステップS138)。クライアント1−1内のI/O発行プロセス101は、I/O終了通知を受信すると、終了処理を行う(ステップS138)。図13の例においては、クライアント1−1が1個のI/O要求をサーバー2に送信した場合の動作を示したが、例えば、クライアント1−1がステップS131の直後に他のI/O要求をサーバー2へ送信した場合は、この他のI/O要求に対応するraw I/O情報が、ステップS135とステップS136との間(最初のraw I/O情報に従ったI/O処理をディスク装置が行っている間)において、クライアント1−1内のI/O発行プロセス101で受信され、このraw I/O情報に従ったI/O処理が実行される。つまり、上記他のI/O要求に従ったI/O処理と、最初のI/O要求に従ったI/O処理とが並列に実行される。
【0056】
なお、上述した説明において、I/Oキュー203、送信キュー206及び送信キュー106を操作する場合は、排他制御をして、競合が発生しないようにする。
【0057】
監視プロセス212は、上記一連のI/O処理とは独立に動作する。図10に監視プロセス212内のプロセス数制御手段213の構成例を示す。同図に示すように、プロセス数制御手段213は、処理対象I/O要求数増減判別手段213−1と、処理対象I/O要求数管理表213−2と、プロセス起動手段213−3と、プロセス終了手段213−4とを備えている。
【0058】
処置対象I/O要求数増減判別手段213−1は、所定時間dt毎の観測点において処理対象I/O要求数(I/Oキュー203にキューイングされているI/O要求の数と、I/O処理プロセス204を占有しているI/O要求の数との和)を求め、処理対象I/O要求数管理表212−2に登録する機能や、処理対象I/O要求数管理表212−2に登録されている過去n回分の処理対象I/O要求数に基づいて、処理対象I/O要求数が増加する傾向にあるのか、減少する傾向にあるのかを判別する機能を有する。更に、処理対象I/O要求数増減判別手段213−1は、処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値α以上多い場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させるための起動プロセス数増加指示を出力し、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値α以上少ない場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるための起動プロセス数減少指示を出力する機能を有する。
【0059】
処理対象I/O要求数管理表213−2には、過去n回分の処理対象I/O要求数(最新のn個の観測点における処理対象I/O要求数)が格納される。
【0060】
プロセス起動手段213−3は、処理対象I/O要求数増減判別手段213−1から出力される起動プロセス数増加指示に従って、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで新たなI/O処理プロセス204を起動する機能を有する。
【0061】
プロセス終了手段213−4は、処理対象I/O要求数増減判別手段213−1から出力される起動プロセス数減少指示に従って、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、I/O要求待ち状態にあるI/O処理プロセス204を終了させる機能を有する。
【0062】
次に、このような構成を有するプロセス数制御手段213の動作について説明する。
【0063】
処理対象I/O要求数増減判別手段213−1は、図11のフローチャートに示すように、ステップS111において、現時点の処理対象I/O要求数を求め、今回求めた処理対象I/O要求数を処理対象I/O要求数管理表212−2に追加登録する。更に、処理対象I/O要求数増減判別手段213−1は、ステップS111において、処理対象I/O要求数管理表212−2に登録されている過去n回分の処理対象I/O要求数に基づいて、処理対象I/O要求数がどのような割合で増減しているのかを示す傾きを求める。この傾きは、例えば、次式(1)により求める。なお、式(1)において、K1、Knは観測点1、nにおける処理対象I/O要求数を表し、t1、tnは観測点1、nの時刻を表している(図12参照)。また、本実施例では、式(1)により傾きを求めるようにしたが、他の計算式により求めるようにしても良い。
【0064】
傾き=(Kn−K1)/(tn−t1) …(1)
【0065】
その後、処理対象I/O要求数増減判別手段213−1は、現時点において起動されているI/O処理プロセス204の数を示す起動I/O処理プロセス数に閾値αを加算し、ステップS111で求めた現在の処理対象I/O要求数が上記加算結果を超えているか否かを調べる(ステップS112、S113)。但し、運用開始直後で、処理対象I/O要求数管理表212−2に過去n回分の処理対象I/O要求数が登録されていない場合は、ステップS120の処理を行う。
【0066】
ステップS113において、現時点の処理対象I/O要求数が(現時点の起動I/O処理プロセス数+α)を超えていると判断した場合は、ステップS111で求めた傾きに基づいて、処理対象I/O要求数が増加する傾向にあるか否かを判断する(ステップS114)。本実施例では、傾きが正または0の場合、増加する傾向にあると判断するが、傾きが正の場合のみ増加する傾向にあると判断するようにしても良い。
【0067】
そして、増加する傾向にあると判断した場合(ステップS114がYes)は、プロセス起動手段213−3に対して、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させることを指示する起動プロセス数増加指示を出力する(ステップS115)。これにより、プロセス起動手段213−3は、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、新たなI/O処理プロセスを起動する。その後、処理対象I/O要求数増減判別手段213−1は、一定時間dtだけ停止し(ステップS120)、再びステップS111の処理を行う。
【0068】
これに対して、増加する傾向にないと判断した場合(ステップS114がNo)は、ステップS120の処理に移る。
【0069】
また、ステップS113において、現時点の処理対象I/O要求数が(現時点の起動I/O処理プロセス数+α)を超えていないと判断した場合は、ステップS116の処理を行う。ステップS116では、現時点の起動I/O処理プロセス数から閾値αを減算し、次のステップS117では、現時点の処理対象I/O要求数が(現時点の起動I/O処理プロセス数−α)を下回っているか否かを判断する。
【0070】
ステップS117において、現時点の処理対象I/O要求数が(現時点の起動I/O処理プロセス数−α)を下回っていると判断した場合は、ステップS111で求めた傾きに基づいて、処理対象I/O要求数が減少する傾向にあるか否かを判断する(ステップS118)。本実施例では、傾きが負または0の場合、減少する傾向にあると判断するが、傾きが負の場合のみ減少する傾向にあると判断するようにしても良い。
【0071】
そして、減少する傾向にあると判断した場合(ステップS118がYes)は、プロセス終了手段213−4に対して、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させることを指示する、起動プロセス数減少指示を出力する(ステップS119)。これにより、プロセス終了手段213−4は、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、I/O要求待ち状態のI/O処理プロセスを終了させる。その後、処理対象I/O要求数増減判別手段213−1は、一定時間dtだけ停止し(ステップS120)、再びステップS111の処理を行う。
【0072】
これに対して、減少する傾向にないと判断した場合(ステップS118がNo)は、ステップS120の処理に移る。
【0073】
なお、上記n,α,dtの値は、システム管理者が適当な値を設定する。
【0074】
図12は、処理対象I/O要求数の変化と起動I/O処理プロセス数の変化の1例を示したものである。この例の場合、処理対象I/O要求数は局所的には減少している部分もあるが、全体的には増加傾向にある。観測点n-1までは、起動I/O処理プロセス数と処理対象I/O要求数との差分が閾値α以内であるため、起動I/O処理プロセス数の変更は行われない。しかし、観測点nにおいて、差分が閾値αを超えるため、起動I/O処理プロセス数が現時点の処理対象I/O要求数まで増やされることになる。
【0075】
【発明の効果】
第1の効果は、サーバー上のシステム資源を無駄に使用することなく、クライアントからのI/O要求を効率的に処理できることにある。
【0076】
その理由は、I/O キューにキューイングされている I/O 要求数と、 I/O 処理プロセスを占有している I/O 要求数との和である処理対象 I/O 要求数が増加する傾向にあり、且つ現時点における処理対象 I/O 要求数が現時点における起動 I/O 処理プロセス数よりも閾値以上大きい場合に限り、起動 I/O 処理プロセス数を現時点の処理対象 I/O 要求数まで増加させ、処理対象 I/O 要求数が減少する傾向にあり、且つ現時点における処理対象 I/O 要求数が現時点における起動 I/O 処理プロセス数よりも上記閾値以上小さい場合に限り、起動 I/O 処理プロセス数を現時点の処理対象 I/O 要求数まで減少させるようにしているからである。
【0077】
第2の効果は、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合、並列I/O性能を損なわないことにある。
【0078】
その理由は、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合、サーバーからクライアントに対して複数のraw I/O情報が送られ、クライアントのI/O発行手段が受信した各raw I/O情報に従ったI/O処理を行うが、その際、本発明のI/O発行手段では、各raw I/O情報に対応したI/O処理の終了を待ち合わせずに、raw I/O情報を受信する度に(連続的に)I/O処理を行うからである。
【図面の簡単な説明】
【図1】本発明にかかるファイル共有システムの実施例のブロック図である。
【図2】 I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合の、実施例の全体的な処理例を示すフローチャートである。
【図3】 I/O発行プロセス101の処理例を示すフローチャートである。
【図4】割込み処理手段105の処理例を示すフローチャートである。
【図5】送信プロセス107の処理例を示すフローチャートである。
【図6】 I/O要求受信プロセス201の処理例を示すフローチャートである。
【図7】 I/O処理プロセス204の処理例を示すフローチャートである。
【図8】送信プロセス207の処理例を示すフローチャートである。
【図9】受信プロセス209の処理例を示すフローチャートである。
【図10】プロセス数制御手段213の構成例を示すブロック図である。
【図11】監視プロセス212の処理例を示すフローチャートである。
【図12】処理対象I/O要求数の変化と起動I/O処理プロセス数との変化の一例を示す図である。
【図13】 I/O対象にするファイルが、単一のディスク装置上に存在する場合の、実施例の全体的な処理例を示すフローチャートである。
【図14】一般的なファイル共有システムの構成を示すブロック図である。
【符号の説明】
1−1〜1−n…クライアント
101…I/O発行プロセス
102…I/O要求手段
103…I/O発行手段
104…受信手段
105…割込み処理手段
106…送信キュー
107…送信プロセス
108…送信手段
2…サーバー
201…I/O要求受信プロセス
202…I/O要求受信手段
203…I/Oキュー
204…I/O処理プロセス
205…I/O手段
206…送信キュー
207…送信プロセス
208…送信手段
209…受信プロセス
210…受信手段
211…I/O終了通知手段
212…監視プロセス
213…プロセス数制御手段
213−1…処理対象I/O要求数増減判別手段
213−2…処理対象I/O要求数管理表
213−3…プロセス起動手段
213−4…プロセス終了手段
K…記録媒体
3…交換機
4…ファイルシステム
5−1〜5−m…ディスク装置
6…ネットワーク回線
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a file sharing system comprising a server that manages a file system and a plurality of clients that send I / O requests to the server, and in particular, without securing useless system resources on the server, The present invention relates to a file sharing system capable of efficiently processing I / O requests.
[0002]
[Prior art]
Conventionally, as shown in FIG. 14, a plurality of clients 1-1 to 1-n and a server 2 connected to each other via a network line 6 are files composed of a plurality of disk devices 5-1 to 5-m. A file sharing system that shares the system 4 via the exchange 3 is known (see, for example, Patent Document 1).
[0003]
The file sharing system disclosed in Patent Document 1 inputs and outputs data as follows. First, the client 1-i (1 ≦ i ≦ n) transmits an I / O request including the file name of a file to be subjected to I / O processing to the server 2 via the network line 6. In the server 2, there is input / output control means (not shown) which is a process for processing an I / O request, and this input / output control means receives an I / O request from the client 1-i. Then, the network address of the disk device 5-j (1 ≦ j ≦ m) to be subjected to the I / O processing is obtained, and an extended input / output instruction with this network address added to the I / O request is returned to the client 1-i. To do. The client 1-i converts the extended input / output command into an I / O command for the disk device 5-j and issues it to the disk device 5-j via the exchange 3. As a result, data is directly input / output between the client 1-i and the disk device 5-j without going through the server 2. When the data input / output is completed, the client 1-i sends a transmission completion notification to the server 2, and the input / output control means in the server 2 receiving this notification sends the completion notification of the I / O request to the client 1. -Reply to i.
[0004]
[Patent Document 1]
JP 2000-250821 A
[0005]
[Problems to be solved by the invention]
According to the conventional technique described in Patent Document 1 described above, since data can be directly input / output between the client and the disk device without using the server, the data is input / output through the server. Compared to the case, data can be input and output at high speed. However, since Patent Document 1 does not mention the number of processes (input / output control means) that process I / O requests at all, the following problem has occurred.
[0006]
When a large number of I / O requests are sent from a large number of clients to the server, if the number of processes that process I / O requests is small, a wait occurs and I / O processing efficiency deteriorates. In order to solve this problem, if a large number of processes are started all the time, if the I / O load is low, the system resources of the server will be wasted, and other than I / O processing The processing efficiency of the processing may deteriorate.
[0007]
Accordingly, an object of the present invention is to enable efficient processing of I / O requests without securing useless system resources on the server.
[0008]
[Means for Solving the Problems]
  In order to achieve the above object, the file sharing system according to the present invention provides:
  In a file sharing system comprising a server that manages a file system and a plurality of clients that send I / O requests to the server,
  The server is
  Sent from the client I / O Queue requests I / O Queue and
  The I / O From the queue I / O Take the request and I / O Process according to request I / O A processing process, I / O Until the processing according to the request is completed, I / O Occupied by request I / O Processing process,
  Said I / O Queued in the queue I / O The number of requests, I / O Occupies the processing process I / O Processing target that is the sum of the number of requests I / O The number of requests tends to increase, and the current processing target I / O Activation at current request count I / O Start only if the threshold is greater than the number of processes I / O The number of processing processes is the current processing target I / O Increase the number of requests to be processed I / O The number of requests tends to decrease, and the current processing target I / O Activation at current request count I / O Start only when the number of processes is less than the threshold I / O The number of processing processes is the current processing target I / O Reduce to the number of requestsAnd a process number control means.
[0010]
In addition, the file sharing system according to the present invention includes:
The process number control means comprises:
If the number of processing target I / O requests tends to increase and the current number of processing target I / O requests is greater than the current number of startup I / O processing processes, set the number of startup I / O processing processes An instruction to increase the number of startup processes to increase the current number of I / O requests to be processed is output, the number of I / O requests to be processed tends to decrease, and the current number of I / O requests to be processed is currently If the number of startup I / O processes is less than the threshold, the process of outputting an instruction to reduce the number of startup processes to reduce the number of startup I / O processes to the current number of I / O requests to be processed is predetermined. A processing target I / O request number increase / decrease determination means to be performed every time,
In accordance with a start process number increase instruction output from the processing target I / O request number increase / decrease determination means, a process start means for starting a new I / O processing process,
In accordance with an instruction to decrease the number of startup processes output from the processing target I / O request number increase / decrease determination means, a process end means for ending an I / O processing process waiting for an I / O request is provided. .
[0011]
In addition, the file sharing system according to the present invention does not exchange data between the client and the server, so that data can be directly input / output between the client and the disk device.
Each of the clients
When an I / O request including a logical position on the file system is transmitted to the server, and raw I / O information including a physical position corresponding to the logical position in the I / O request is returned from the server, I / O issuing means for performing I / O processing on the disk device according to the raw I / O information,
The server is
Send queue,
Server-side transmission means for taking out raw I / O information from the transmission queue and returning the raw I / O information to the client that sent the I / O request corresponding to the raw I / O information, and
The I / O processing process is
It has a configuration for taking out an I / O request from the I / O queue and queuing raw I / O information including a physical position corresponding to a logical position in the taken out I / O request to the transmission queue. And
[0012]
The file sharing system according to the present invention does not impair parallel I / O performance even when a file to be I / O exists on a file system striped by a plurality of disk devices. To do
In a file sharing system comprising a server that manages a file system and a plurality of clients that send I / O requests to the server,
Each of the clients
An I / O request including a logical position on the file system is transmitted to the server, and a plurality of raw I / O information including a physical position corresponding to the logical position in the I / O request is returned from the server. Each time I / O processing for the disk device is performed according to the raw I / O information without waiting for completion of the I / O processing already performed every time, and an I / O completion notification for the I / O request is sent from the server. I / O issuing means for performing termination processing,
A client-side transmission unit that operates independently of the I / O issuing unit, which transmits I / O end information to the server each time an I / O process according to the raw I / O information is completed. Prepared,
The server is
I / O queue and
Send queue,
I / O request receiving means for queuing an I / O request sent from each client to the I / O queue;
The I / O request queued in the I / O queue is taken out, and raw I / O information for each physical position corresponding to the logical position in the taken out I / O request is obtained. The raw I / O information included is queued in the transmission queue, and when all the I / O end information corresponding to each raw I / O information is received, the I / O request transmission source client is An I / O processing process that sends an / O termination notification;
Server-side transmission means for extracting raw I / O information from the transmission queue and transmitting the raw I / O information to the client that is the transmission source of the I / O request corresponding to the raw I / O information;
Receive I / O end information from each client and pass the received I / O end information to the I / O processing process occupied by the I / O request corresponding to the I / O end information Means,
The number of I / O requests to be processed, which is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests occupying the I / O processing process, tends to increase. If the current number of I / O requests to be processed is greater than the current number of I / O processing processes to be started by a threshold or more, increase the number of I / O processing processes to the current number of I / O requests to be processed. If the number of processing target I / O requests tends to decrease and the current number of processing target I / O requests is smaller than the current number of startup I / O processing processes by the threshold value or more, the startup I / O processing process And a process number control means for reducing the number to the current processing target I / O request number.
[0013]
[Action]
When a large number of I / O requests are issued from a large number of clients to the server and the I / O load on the server increases, a large number of I / Os are required to handle the I / O requests efficiently. A processing process is required. On the other hand, when the I / O load is low, a large number of I / O processing processes are not required, but considering the case where the I / O load has increased, it corresponds to the number of I / O requests from the client in advance. A certain number of I / O processing processes must be started. However, if many I / O processing processes are started in consideration of the increase in I / O load when the load is low, system resources are wasted and other processing is adversely affected. There is a possibility to give.
[0014]
Therefore, in the present invention, by providing a process number control means for dynamically changing the number of I / O processing processes for processing I / O requests according to the I / O load of the server, it is wasted on the server. I / O requests can be processed efficiently without securing system resources. In the process number control means, the number of I / O requests to be processed that is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests that occupy the I / O processing process Is tending to increase or decrease. If the number of processing target I / O requests tends to increase and the current number of processing target I / O requests is larger than the current number of startup I / O processing processes, the startup I / O processing Increase the number of processes to the current number of I / O requests to be processed. In contrast, if the number of processing target I / O requests tends to decrease and the current processing target I / O request count is smaller than the current startup I / O processing process count by a threshold or more, the startup I / O request count Reduce the number of / O processing processes to the current number of I / O requests to be processed.
[0015]
The file sharing system according to the present invention transmits an I / O request including a logical position on the file system from the client to the server when performing input / output with respect to the file. Since only the raw I / O information including the physical position corresponding to the logical position included in the I / O request is transmitted, the input and output data is not exchanged between the client and the server. Data can be directly input / output between the client and the disk device.
[0016]
Furthermore, the file sharing system according to the present invention prevents the parallel I / O performance from being impaired when a file to be I / O exists on a file system striped by a plurality of disk devices. I am doing so. When the file to be I / O exists on a file system striped by multiple disk devices, the server sends the client a raw I / O for each physical location corresponding to the logical location of the file. Send information. Each time the client I / O issuing means receives the raw I / O information, the client I / O issuing means performs I / O processing on the disk device according to the received raw I / O information. At this time, the I / O issuing means does not wait for the end of the I / O processing corresponding to each raw I / O information, and receives the raw I / O information every time (continuously). Since I / O processing is performed according to information, parallel I / O performance can be maintained.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings.
[0018]
[Configuration of Example]
FIG. 1 is a block diagram of an embodiment of a file sharing system according to the present invention. Referring to the figure, the file sharing system according to the present embodiment is a file including a plurality of clients 1-1 to 1-n, a server 2, an exchange 3, and a plurality of disk devices 5-1 to 5-m. The system 4 includes a network line 6 that connects the clients 1-1 to 1-n and the server 2 to each other.
[0019]
The client 1-1 includes an I / O issuing process 101, an interrupt processing unit 105, a transmission queue 106, and a transmission process 107. Other clients have the same configuration.
[0020]
The I / O issue process 101 is a general process for executing an application program, and includes an I / O request unit 102, an I / O issue unit 103, and a reception unit 104.
[0021]
The I / O request unit 102 has a function of transmitting an I / O request to the server 2 via the network line 6 in accordance with a request from the application program. The I / O request includes the logical location of the file to be processed for I / O processing, the I / O request identifier for uniquely identifying this I / O request, and the read / write type. Yes. The logical position of the file to be processed is represented by the file handler, file offset, and I / O size of the target file. Further, the authentication information may be included in the I / O request as necessary.
[0022]
The receiving unit 104 has a function of receiving raw I / O information and I / O end notification sent from the server 2 via the network line 6, and passes the received raw I / O information to the I / O issuing unit 103. A function and a function of performing termination processing according to the received I / O termination notification. The raw I / O information will be described in detail later.
[0023]
Each time raw I / O information is passed from the receiving means 104, the I / O issuing means 103 converts the raw I / O information into an I / O command that can be interpreted by the disk driver, and the corresponding disk device 5-j. Has the function of issuing I / O instructions.
[0024]
The interrupt processing unit 105 has a function of queuing I / O end information to the transmission queue 106 every time I / O processing according to the I / O instruction issued by the I / O issuing unit 103 is completed. The I / O end information includes the raw I / O information and the I / O processing result that triggered the issue of the I / O instruction.
[0025]
The transmission process 107 is a system process activated by a system administrator and includes a transmission unit 108. This transmission means 108 has a function of transmitting I / O end information queued in the transmission queue 106 to the server 2 via the network line 6.
[0026]
The server 2 includes an I / O request reception process 201, an I / O queue 203, an I / O processing process 204, a transmission queue 206, a transmission process 207, a reception process 209, and a monitoring process 212. Yes. Each process 201, 204, 207, 209, and 212 in the server 2 is a system process that is started by a system administrator.
[0027]
The I / O request receiving process 201 includes I / O request receiving means 202. The I / O request receiving unit 202 has a function of adding the network address of the client 1-i to the I / O request sent from the client 1-i and queuing it to the I / O queue 203. .
[0028]
The I / O processing process 204 includes I / O means 205 and I / O end notification means 211. In FIG. 1, only one I / O processing process 204 is shown, but in reality, the number of I / O processing processes corresponding to the I / O load of the server 2 is activated.
[0029]
The I / O means 205 in the I / O processing process 204 is the most I / O request queued in the I / O queue 203 (to which the network address of the I / O request source client is added). It has a function of taking out one old one and creating raw I / O information based on the taken out I / O request and a function of queuing the created raw I / O information to the transmission queue 206.
[0030]
Here, a method of creating raw I / O information will be described. When creating raw I / O information based on an I / O request, the I / O unit 205 performs, for example, the following processing. First, the file system 4 is called, and the logical position (file handler, file offset, and I / O size) in the I / O request is passed to the file system 4. As a result, the file system 4 uses the I / O means 205 for the physical position (device number, start sector number, and number of sectors of the disk device where the file targeted for I / O processing exists) corresponding to the logical position. Return to When the file to be I / O exists on a file system striped by multiple disk devices, multiple physical locations are returned. For each returned physical location, the I / O means 205 includes the physical location, the I / O request identifier, read / write type and network address included in the I / O request, and the I / O issue. Create raw I / O information including the offset from the start address of the virtual memory targeted for I / O in the process.
[0031]
Further, the I / O end notification means 211 in the I / O processing process 204 has completed all the I / O processing requested by the I / O request based on the I / O end information received from the receiving process 209. (When I / O end information corresponding to all raw I / O information created based on the above I / O request is received), the end processing as a file system is performed, error information, I It has a function of returning an I / O end notification including / O size, file offset after I / O processing, file update information, I / O request identifier, etc. to the requesting client.
[0032]
The transmission process 207 includes transmission means 208. This transmission means 208 extracts the raw I / O information queued in the transmission queue 206 in order from the oldest one, and transmits it to the client of the I / O request source according to the network address included in the raw I / O information. It has the function to do.
[0033]
The reception process 209 includes reception means 210. The receiving means 210 uses the I / O end information sent from the client 1-i as an I / O request included in the I / O end information in the activated I / O processing process. It has a function of passing the I / O request specified by the identifier to the I / O processing process that is processing.
[0034]
The monitoring process 212 includes process number control means 213. The process number control means 213 has a function of dynamically changing the number of I / O processing processes according to the I / O load of the server 2.
[0035]
The recording medium K is a disk, semiconductor memory, or other recording medium, and stores a program for causing the server 2 made up of a computer to function as part of the file sharing system. This program is read by the server 2 and controls its operation so that an I / O request reception process 201, an I / O queue 203, an I / O processing process 204, a transmission queue 206, a transmission process are executed on the server 2. 207, a reception process 209, and a monitoring process 212 are realized.
[0036]
[Description of operation of embodiment]
Next, the operation of this embodiment will be described in detail with reference to the drawings. In FIG. 2, the client 1-1 sends an I / O request (when the file targeted by this I / O request exists on a file system striped by a plurality of disk devices) to the server 2. 3 is a flowchart showing an example of processing of the I / O issuing process 101, FIG. 4 is a flowchart showing an example of processing of the interrupt processing means 105, and FIG. 6 is a flowchart showing an example of processing of the I / O request reception process 201, FIG. 7 is a flowchart showing an example of processing of the I / O processing process 204, and FIG. 8 shows an example of processing of the transmission process 207. 9 is a flowchart showing a processing example of the reception process 209. FIG. 10 is a flowchart of the process number control means 213. FIG. 11 is a flowchart showing a processing example of the monitoring process 212, FIG. 12 is a diagram for explaining the processing contents of the monitoring process 212, and FIG. 13 shows an I / O request (this) by the client 1-1. 7 is a flowchart showing an example of processing of the entire network system when a file targeted by an I / O request exists on a single disk device).
[0037]
The I / O issuing process 101 in the client 1-1 uses the I / O request unit 102 to send an I / O request to the server 2 when an I / O processing of a file is requested from an application program (not shown). The request is transmitted (step S201 in FIG. 2 and step S31 in FIG. 3). The I / O request includes the logical location of the file that is the target of I / O processing (the file handler, file offset, and I / O size of the target file), the read / write type, and the above I / O request. An I / O request identifier for uniquely identifying is included. Thereafter, in the I / O issue process 101, the receiving means 104 waits for a packet from the server 2 (steps S32 and S33 in FIG. 3).
[0038]
The I / O request transmitted from the client 1-1 to the server 2 is received by the I / O request receiving means 202 in the I / O request receiving process 201 and queued in the I / O queue 203 (FIG. 2). Step S202, steps S61 and S62 of FIG. 6). When queuing an I / O request to the I / O queue 203, the I / O request receiving unit 202 adds the network address of the request source client 1-1 to the I / O request. Thereafter, the I / O request receiving means 202 enters a reception waiting state if there is no other received I / O request (step S63).
[0039]
As shown in the flowchart of FIG. 7, the I / O means 205 in the I / O processing process 204 is in an I / O request waiting state when the I / O queue 203 is empty (step S71 is No). , S72), if an I / O request is queued in the I / O queue 203, one of the oldest I / O requests is taken out (Yes in step S71, S73). Now, for example, the I / O unit 205 takes out the I / O request from the client 1-1 and the network address of the client 1-1 attached thereto, which are queued in the I / O queue 203 in step S202. Suppose.
[0040]
When the I / O unit 205 takes out the I / O request and the network address from the client 1-1, the I / O unit 205 calls the file system 4 and logical positions (file handler, file offset and I / O size in the I / O request). ) To the file system 4. As a result, the file system 4 uses the I / O means 205 for the physical position (device number, start sector number, and number of sectors of the disk device where the file targeted for I / O processing exists) corresponding to the logical position. Return to If the file to be I / O exists on a file system striped by a plurality of disk devices, a plurality of physical positions are returned (step S74). For each returned physical location, the I / O means 205 includes the physical location, the I / O request identifier, read / write type and network address included in the I / O request, and the I / O issue. Raw I / O information including an offset from the start address of the virtual memory targeted for I / O in the process is created and queued in the transmission queue 206 (step S75, step S203 in FIG. 2). Now, for example, it is assumed that k raw I / O information items 1 to k are queued in the transmission queue 206 in response to an I / O request from the client 1-1. Thereafter, in the I / O processing process 204, the I / O end notifying means 211 waits for reception of I / O end information (step S76).
[0041]
As shown in the flowchart of FIG. 8, the transmission means 208 in the transmission process 207 is in a transmission waiting state when the transmission queue 206 is empty (No in step S81, S82). If the / O information is queued, the oldest raw I / O information is extracted (step S83). The extracted raw I / O information is packetized and transmitted to the client specified by the network address included in the raw I / O information (step S84). Now, for example, if the transmission means 208 retrieves the first raw I / O information including the network address of the client 1-1 from the transmission queue 206, the first packetized first as shown in FIG. Raw I / O information is transmitted to the client 1-1 (step S204-1).
[0042]
When receiving a packet from the server 2, the I / O issuing process 101 in the client 1-1 waiting for reception by the receiving means 104 determines whether it is raw I / O information or an I / O end notification. (Step S32 is Yes, S34). In this example, since the first raw I / O information is sent from the server 2, the receiving unit 104 passes the raw I / O information to the I / O issuing unit 103. When the first raw I / O information is passed from the receiving means 104, the I / O issuing means 103 converts it into a first I / O command that can be interpreted by the disk driver, and the corresponding disk device 5 An I / O instruction is issued to -j (steps S35 and S36). As a result, as shown in FIG. 2, in the disk device 5-j, the I / O processing according to the first I / O instruction is executed (step S205-1). Thereafter, the I / O issuing process 101 does not wait for the end of the I / O processing according to the first I / O instruction, and again enters the reception waiting state at the receiving means 104 (step S33).
[0043]
Here, the processing speed of the disk device 5-j executing the I / O processing according to the first I / O instruction is compared with the processing speed of the clients 1-1 to 1-n and the server 2. Therefore, before the I / O processing according to the first I / O instruction is completed, the transmission process 207 in the server 2 changes to the I / O issue process 101 in the client 1-1. On the other hand, the second to k-th raw I / O information is continuously sent (steps S204-2 to S204-k). The I / O issuing process 101 does not wait for the end of the I / O processing as described above, and is in the reception waiting state at the receiving means 104 (step S33), so the second to kth raw I Each time / O information is sent, an I / O command is issued to the corresponding disk device (steps S35 and S36), and an I / O process is executed in each corresponding disk device (steps S205-2 to S205-2). S205-k). That is, I / O processing corresponding to a plurality of raw I / O information is executed in parallel.
[0044]
Thereafter, a disk device (for example, an I device according to the first I / O instruction) among the disk devices executing the I / O processing according to the first to k-th I / O commands. When the I / O processing according to the first I / O instruction is completed in the disk device 5-j) that is executing the / O processing, the interrupt processing means 105 receives the first I / O completion information. Is queued in the transmission queue 106 (FIG. 4, steps S41 and S42). The I / O end information includes the first raw I / O information and the I / O processing result that triggered the issuance of the I / O instruction. Further, the above-described processing is performed, for example, in a callback function activated from the disk driver termination processing. The processing by the interrupt processing means 105 is performed every time the I / O processing according to the I / O instruction is completed, and the first to kth I / O completion information is queued in the transmission queue 106. Is done.
[0045]
As shown in the flowchart of FIG. 5, the transmission means 108 in the transmission process 107 is in a transmission waiting state when the transmission queue 106 is empty (No in step S51, S52). If the O end information is queued, one of the oldest I / O end information is extracted, packetized, and transmitted to the server 2 (Yes in steps S51, S53, S54). Now, for example, if the first to k-th I / O end information is queued in that order in the transmission queue 106, the transmission means 108, as shown in FIG. The first I / O end information is sequentially transmitted to the server 2 (steps S206-1 to S206-k).
[0046]
The first I / O end information sent first from the client 1-1 is received by the receiving means 210 of the receiving process 209, and is included in the first I / O end information. The I / O end notification means 211 in the I / O processing process 204 that is processing the I / O request specified by the O request identifier is passed (Yes in step S91 in FIG. 9, S93). Thereafter, the receiving unit 210 enters a state of waiting for reception of I / O end information (step S92).
[0047]
When the first I / O end information is passed from the receiving unit 210, the I / O end notifying unit 211 uses the file system 4 to end all I / Os related to the I / O request currently being processed. It is determined whether information has been received (steps S77 and S78 in FIG. 7). In this example, only the first I / O end information of the first to k-th I / O end information has been received, so the I / O end notification means 211 performs the I / O processing. The process waits for completion (step S78 is No, S76).
[0048]
The second to (k-1) th I / O end information sent from the client 1-1 is also processed in the receiving unit 210 and the I / O end notifying unit 211 in the same manner as described above. Is called.
[0049]
Upon receiving the k-th (last) I / O processing information from the client 1-1 via the reception process 209, the I / O end notification unit 211 in the server 2 uses the file system 4 to It is determined whether or not all I / O end information relating to the I / O request being processed has been received (steps S77 and S78 in FIG. 7). If it is determined that all the first to kth I / O end requests have been received by receiving the kth I / O end information, the first to kth I / O ends. Based on the end information, the end processing for the file system 4 is performed, and then the processing result (error information, etc.), I / O size, file offset after I / O, file update information, I / O request identifier, etc. I / O end notification including the packet is transmitted to the client 1-1 (step S207 in FIG. 2, step S79 in FIG. 7).
[0050]
When the I / O issuing process 101 waiting for reception by the receiving means 104 receives the packetized I / O completion notification from the server 2 (Yes in step S32 in FIG. 3 and Yes in S34), the processing result is sent to the request source. After completion processing such as returning to the application program, the user mode is restored (steps S37 and S38, step S208 in FIG. 2).
[0051]
Note that FIG. 2 shows an operation example when the file to be I / O target exists on a file system striped by a plurality of disk devices, but the file to be I / O target is a single disk device. If it exists above, for example, the operation shown in FIG. 13 is performed.
[0052]
When the I / O issuing process 101 in the client 1-1 transmits an I / O request to the server 2 (step S131), the I / O request receiving means 202 in the server 2 receives the I / O request from the client 1-1. The O request is queued in the I / O queue 203 (step S132), the I / O means 205 extracts the I / O request from the I / O queue 203, and raw I / O information corresponding to the extracted I / O request. Is queued in the transmission queue 206 (step S133). In this example, since the I / O target file exists on a single disk device, the I / O means 205 queues one piece of raw I / O information in the transmission queue 206. The raw I / O information queued in the transmission queue 206 is transmitted to the client 1-1 by the transmission unit 208 (step S134).
[0053]
The I / O issuing process 101 in the client 1-1 issues an I / O command corresponding to the raw I / O information sent from the sending means 208 to the corresponding disk device. Thereby, the I / O processing according to the I / O command is executed in the corresponding disk device (step S135).
[0054]
When the I / O processing in the disk device is completed, the interrupt processing unit 105 queues the I / O end information in the transmission queue 106, and the transmission unit 108 displays the I / O end information queued in the transmission queue 106. It transmits to the server 2 (step S136).
[0055]
When the I / O end notification means 211 in the server 2 receives the I / O end information via the receiving means 210, it means that all the I / O end information has been received. The data is transmitted to 1-1 (step S138). When receiving the I / O end notification, the I / O issuing process 101 in the client 1-1 performs end processing (step S138). In the example of FIG. 13, the operation when the client 1-1 transmits one I / O request to the server 2 is shown. For example, the client 1-1 immediately performs another I / O immediately after step S131. When the request is transmitted to the server 2, the raw I / O information corresponding to the other I / O request is transmitted between step S135 and step S136 (the I / O processing according to the first raw I / O information). Is received by the I / O issuing process 101 in the client 1-1, and the I / O processing according to this raw I / O information is executed. That is, the I / O process according to the other I / O request and the I / O process according to the first I / O request are executed in parallel.
[0056]
In the above description, when the I / O queue 203, the transmission queue 206, and the transmission queue 106 are operated, exclusive control is performed so that no conflict occurs.
[0057]
The monitoring process 212 operates independently of the series of I / O processes. FIG. 10 shows a configuration example of the process number control means 213 in the monitoring process 212. As shown in the figure, the process number control unit 213 includes a processing target I / O request number increase / decrease determination unit 213-1, a processing target I / O request number management table 213-2, and a process activation unit 213-3. And process end means 213-4.
[0058]
The treatment target I / O request number increase / decrease determination unit 213-1 is configured to determine the number of processing target I / O requests (the number of I / O requests queued in the I / O queue 203 at the observation point for each predetermined time dt, (The sum with the number of I / O requests occupying the I / O processing process 204) and registering it in the processing target I / O request count management table 212-2, and processing target I / O request count management A function for determining whether the number of processing target I / O requests tends to increase or decrease based on the number of processing target I / O requests for the past n times registered in Table 212-2. Have. Further, the processing target I / O request count increase / decrease judging means 213-1 has a tendency that the processing target I / O request count tends to increase, and the current processing target I / O request count is the current startup I / O processing process. If the threshold α is greater than the number, the command to increase the number of startup processes to increase the number of startup I / O processes to the current number of I / O requests to be processed is output, and the number of I / O requests to be processed decreases. If the current processing target I / O request count is less than the current startup I / O processing process threshold value α or more, the startup I / O processing process count is set to the current processing target I / O request. It has a function of outputting an instruction to reduce the number of activation processes for reducing the number to the number.
[0059]
The processing target I / O request count management table 213-2 stores the number of processing target I / O requests for the past n times (the number of processing target I / O requests at the latest n observation points).
[0060]
The process activation unit 213-3 sets the number of activation I / O processing processes to the current number of I / O requests to be processed according to the instruction to increase the number of activation processes output from the processing target I / O request number increase / decrease determination unit 213-1. It has a function of starting a new I / O processing process 204 until it becomes.
[0061]
The process ending unit 213-4 sets the number of startup I / O processing processes to the current number of I / O requests to be processed in accordance with the instruction to decrease the number of startup processes output from the processing target I / O request number increase / decrease determination unit 213-1. Until there is a function, the I / O processing process 204 in the I / O request waiting state is terminated.
[0062]
Next, the operation of the process number control means 213 having such a configuration will be described.
[0063]
As shown in the flowchart of FIG. 11, the processing target I / O request count increase / decrease determining unit 213-1 obtains the current processing target I / O request count in step S111, and determines the current processing target I / O request count. Are additionally registered in the processing target I / O request count management table 212-2. Further, the processing target I / O request count increase / decrease determination unit 213-1 sets the processing target I / O request count for the past n times registered in the processing target I / O request count management table 212-2 in step S111. Based on this, a slope indicating the rate at which the number of processing target I / O requests is increasing or decreasing is obtained. This inclination is calculated | required by following Formula (1), for example. In Equation (1), K1 and Kn represent the number of I / O requests to be processed at observation points 1 and n, and t1 and tn represent the times at observation points 1 and n (see FIG. 12). In the present embodiment, the inclination is obtained by the expression (1), but may be obtained by another calculation expression.
[0064]
Slope = (Kn−K1) / (tn−t1) (1)
[0065]
Thereafter, the processing target I / O request count increase / decrease judging means 213-1 adds the threshold α to the number of activated I / O processing processes 204 indicating the number of I / O processing processes 204 currently activated, and in step S111. It is checked whether or not the obtained current processing target I / O request count exceeds the addition result (steps S112 and S113). However, immediately after the start of operation, when the number of processing target I / O requests for the past n times is not registered in the processing target I / O request count management table 212-2, the process of step S120 is performed.
[0066]
If it is determined in step S113 that the current processing target I / O request count exceeds (current startup I / O processing process count + α), the processing target I / O is based on the slope obtained in step S111. It is determined whether or not the number of O requests tends to increase (step S114). In this embodiment, when the slope is positive or 0, it is determined that the trend tends to increase. However, it may be determined that the slope tends to increase only when the slope is positive.
[0067]
If it is determined that the process tends to increase (Yes in step S114), the process activation unit 213-3 is caused to increase the number of activated I / O processing processes to the current number of I / O requests to be processed. An instruction to increase the number of startup processes is output (step S115). Thus, the process activation unit 213-3 activates a new I / O processing process until the number of activation I / O processing processes reaches the current number of I / O requests to be processed. Thereafter, the processing target I / O request number increase / decrease determination unit 213-1 stops for a predetermined time dt (step S120), and performs the process of step S111 again.
[0068]
On the other hand, when it is determined that there is no tendency to increase (No in step S114), the process proceeds to step S120.
[0069]
If it is determined in step S113 that the current processing target I / O request count does not exceed (current startup I / O processing process count + α), the processing in step S116 is performed. In step S116, the threshold α is subtracted from the current number of activated I / O processes. In the next step S117, the current number of I / O requests to be processed is (current number of activated I / O processes−α). Determine whether it is below.
[0070]
If it is determined in step S117 that the current processing target I / O request count is less than (current startup I / O processing process count-α), the processing target I / O is based on the slope obtained in step S111. It is determined whether or not the number of / O requests tends to decrease (step S118). In the present embodiment, when the slope is negative or 0, it is determined that it tends to decrease. However, it may be determined that the slope tends to decrease only when the slope is negative.
[0071]
If it is determined that the process tends to decrease (Yes in step S118), the process termination unit 213-4 is caused to reduce the number of processes for starting I / O processing to the current number of processing target I / O requests. Is output (step S119). As a result, the process ending unit 213-4 ends the I / O processing process waiting for the I / O request until the number of activated I / O processing processes reaches the current number of processing target I / O requests. Thereafter, the processing target I / O request number increase / decrease determination unit 213-1 stops for a predetermined time dt (step S120), and performs the process of step S111 again.
[0072]
On the other hand, if it is determined that there is no tendency to decrease (No in step S118), the process proceeds to step S120.
[0073]
Note that the system administrator sets appropriate values for the values of n, α, and dt.
[0074]
FIG. 12 shows an example of a change in the number of processing target I / O requests and a change in the number of startup I / O processing processes. In the case of this example, the number of processing target I / O requests is partially decreased, but overall, the number of requests is increasing. Up to the observation point n-1, since the difference between the number of startup I / O processing processes and the number of processing target I / O requests is within the threshold value α, the number of startup I / O processing processes is not changed. However, since the difference exceeds the threshold α at the observation point n, the number of startup I / O processing processes is increased to the current number of processing target I / O requests.
[0075]
【The invention's effect】
The first effect is that I / O requests from clients can be efficiently processed without wasting system resources on the server.
[0076]
  The reason is,I / O Queued in the queue I / O The number of requests, I / O Occupies the processing process I / O Processing target that is the sum of the number of requests I / O The number of requests tends to increase, and the current processing target I / O Activation at current request count I / O Start only if the threshold is greater than the number of processes I / O The number of processing processes is the current processing target I / O Increase the number of requests to be processed I / O The number of requests tends to decrease, and the current processing target I / O Activation at current request count I / O Start only when the number of processes is smaller than the above threshold I / O The number of processing processes is the current processing target I / O This is because the number of requests is reduced.
[0077]
The second effect is that parallel I / O performance is not impaired when a file to be I / O exists on a file system striped by a plurality of disk devices.
[0078]
The reason is that if the file to be I / O exists on a file system striped by multiple disk units, multiple raw I / O information is sent from the server to the client, and the client I / O I / O processing is performed according to each raw I / O information received by the O issuing means. At this time, the I / O issuing means of the present invention performs I / O processing corresponding to each raw I / O information. This is because I / O processing is performed (continuously) each time raw I / O information is received without waiting for completion.
[Brief description of the drawings]
FIG. 1 is a block diagram of an embodiment of a file sharing system according to the present invention.
FIG. 2 is a flowchart showing an overall processing example of an embodiment when a file to be I / O exists on a file system striped by a plurality of disk devices.
FIG. 3 is a flowchart showing a processing example of an I / O issue process 101;
4 is a flowchart showing a processing example of an interrupt processing unit 105. FIG.
FIG. 5 is a flowchart illustrating a processing example of a transmission process 107;
6 is a flowchart showing a processing example of an I / O request reception process 201. FIG.
FIG. 7 is a flowchart showing a processing example of an I / O processing process 204;
FIG. 8 is a flowchart illustrating a processing example of a transmission process 207;
FIG. 9 is a flowchart illustrating a processing example of a reception process 209;
10 is a block diagram showing a configuration example of a process number control means 213. FIG.
FIG. 11 is a flowchart illustrating a processing example of a monitoring process 212;
FIG. 12 is a diagram illustrating an example of a change in the number of processing target I / O requests and a change in the number of startup I / O processing processes.
FIG. 13 is a flowchart illustrating an overall processing example of an embodiment in a case where a file to be an I / O target exists on a single disk device.
FIG. 14 is a block diagram showing a configuration of a general file sharing system.
[Explanation of symbols]
1-1 to 1-n ... Client
101 ... I / O issue process
102 ... I / O request means
103 ... I / O issuing means
104. Receiving means
105: Interrupt processing means
106 ... transmission queue
107 ... transmission process
108: Transmission means
2 ... Server
201 ... I / O request reception process
202 ... I / O request receiving means
203 ... I / O queue
204 ... I / O processing process
205 ... I / O means
206 ... transmission queue
207 ... Transmission process
208: Transmission means
209 ... Reception process
210: Receiving means
211 ... I / O end notification means
212 ... Monitoring process
213... Process number control means
213-1: Processing target I / O request number increase / decrease determination means
213-2 ... Processing target I / O request count management table
213-3 ... Process starting means
213-4 Process end means
K ... Recording medium
3 ... switch
4. File system
5-1 to 5-m... Disk device
6 ... Network line

Claims (6)

ファイルシステムを管理するサーバーと、該サーバーに対してI/O要求を送信する複数のクライアントとを備えたファイル共有システムにおいて、
前記サーバーが、
前記クライアントから送られてきたI/O要求をキューイングするI/Oキューと、
該I/OキューからI/O要求を取り出し、該I/O要求に従って処理を行うI/O処理プロセスであって、前記I/O要求に従った処理が完了するまで、前記I/O要求に占有されるI/O処理プロセスと、
前記I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上大きい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させ、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上小さい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするファイル共有システム。
In a file sharing system comprising a server that manages a file system and a plurality of clients that send I / O requests to the server,
The server is
An I / O queue for queuing an I / O request sent from the client;
An I / O processing process that takes out an I / O request from the I / O queue and performs processing according to the I / O request, wherein the I / O request is completed until processing according to the I / O request is completed. I / O processing process occupied by
The number of I / O requests to be processed, which is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests occupying the I / O processing process, tends to increase. Only when the current number of I / O requests to be processed is greater than the current number of I / O processing processes to be started by a threshold or more, the number of I / O processing processes to be increased to the current number of I / O requests to be processed Only when the number of I / O requests to be processed tends to decrease and the current number of I / O requests to be processed is smaller than the current threshold number of I / O processes to be started. A file sharing system comprising a process number control means for reducing the number of processing processes to the current number of I / O requests to be processed.
請求項記載のファイル共有システムにおいて、
前記プロセス数制御手段が、
処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上多い場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させるための起動プロセス数増加指示を出力し、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上少ない場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるための起動プロセス数減少指示を出力するという処理を所定時間毎に行う処理対象I/O要求数増減判別手段と、
該処理対象I/O要求数増減判別手段から出力される起動プロセス数増加指示に従って、新たなI/O処理プロセスを起動するプロセス起動手段と、
前記処理対象I/O要求数増減判別手段から出力される起動プロセス数減少指示に従って、I/O要求待ち状態にあるI/O処理プロセスを終了させるプロセス終了手段とを備えたことを特徴とするファイル共有システム。
The file sharing system according to claim 1 , wherein
The process number control means comprises:
Only when the number of I / O requests to be processed tends to increase and the current number of I / O requests to be processed is greater than the current number of I / O processing processes by the threshold. Is output to increase the number of processing target I / O requests to the current number of processing target I / O requests, the number of processing target I / O requests tends to decrease, and the current number of processing target I / O requests is A process of outputting an instruction to reduce the number of activation processes for reducing the number of activation I / O processes to the current number of I / O requests to be processed only when the number of activation I / O processes is less than the threshold value A process target I / O request number increase / decrease determination means for performing
In accordance with a start process number increase instruction output from the processing target I / O request number increase / decrease determination means, a process start means for starting a new I / O processing process,
In accordance with an instruction to decrease the number of startup processes output from the processing target I / O request number increase / decrease determination means, a process end means for ending an I / O processing process waiting for an I / O request is provided. File sharing system.
請求項記載のファイル共有システムにおいて、
前記各クライアントが、
前記ファイルシステム上の論理位置を含むI/O要求を前記サーバーに送信し、前記サーバーから前記I/O要求中の論理位置に対応する物理位置を含むraw I/O情報が返信されたとき、前記raw I/O情報に従ってディスク装置に対するI/O処理を行うI/O発行手段を備え、
前記サーバーが、
送信キューと、
該送信キューからraw I/O情報を取り出し、該raw I/O情報に対応するI/O要求の送信元のクライアントへ返信するサーバー側送信手段とを備え、且つ、
前記I/O処理プロセスが、
前記I/OキューからI/O要求を取り出し、該取り出したI/O要求中の論理位置に対応する物理位置を含むraw I/O情報を前記送信キューにキューイングする構成を有することを特徴とするファイル共有システム。
The file sharing system according to claim 1 , wherein
Each of the clients
When an I / O request including a logical position on the file system is transmitted to the server, and raw I / O information including a physical position corresponding to the logical position in the I / O request is returned from the server, I / O issuing means for performing I / O processing on the disk device according to the raw I / O information,
The server is
Send queue,
Server-side transmission means for taking out raw I / O information from the transmission queue and returning the raw I / O information to the client that sent the I / O request corresponding to the raw I / O information, and
The I / O processing process is
It has a configuration for taking out an I / O request from the I / O queue and queuing raw I / O information including a physical position corresponding to a logical position in the taken out I / O request to the transmission queue. File sharing system.
ファイルシステムを管理するサーバーと、該サーバーに対してI/O要求を送信する複数のクライアントとを備えたファイル共有システムにおいて、
前記各クライアントが、
前記ファイルシステム上の論理位置を含むI/O要求を前記サーバーに送信し、前記サーバーから前記I/O要求中の論理位置に対応する物理位置を含む複数のraw I/O情報が返信される毎に既に行っているI/O処理の終了を待たずに前記raw I/O情報に従ってディスク装置に対するI/O処理を行い、前記サーバーから前記I/O要求に対するI/O終了通知が送られてきたとき、終了処理を行うI/O発行手段と、
前記raw I/O情報に従ったI/O処理が終了する毎に、前記サーバーへI/O終了情報を送信する、前記I/O発行手段とは独立して動作するクライアント側送信手段とを備え、
前記サーバーが、
I/Oキューと、
送信キューと、
前記各クライアントから送られてきたI/O要求を前記I/OキューにキューイングするI/O要求受信手段と、
前記I/OキューにキューイングされているI/O要求を取り出し、該取り出したI/O要求中の論理位置に対応する各物理位置毎のraw I/O情報であって対応する物理位置を含むraw I/O情報を前記送信キューにキューイングし、前記各raw I/O情報に対応するI/O終了情報を全て受信したとき、前記I/O要求の送信元のクライアントに対してI/O終了通知を送信するI/O処理プロセスと、
前記送信キューからraw I/O情報を取り出し、該raw I/O情報に対応するI/O要求の送信元のクライアントへ送信するサーバー側送信手段と、
前記各クライアントからのI/O終了情報を受信し、該受信したI/O終了情報を、該I/O終了情報と対応するI/O要求によって占有されているI/O処理プロセスに渡す受信手段と、
前記I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上大きい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させ、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上小さい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするファイル共有システム。
In a file sharing system comprising a server that manages a file system and a plurality of clients that send I / O requests to the server,
Each of the clients
An I / O request including a logical position on the file system is transmitted to the server, and a plurality of raw I / O information including a physical position corresponding to the logical position in the I / O request is returned from the server. Each time I / O processing for the disk device is performed according to the raw I / O information without waiting for completion of the I / O processing already performed every time, and an I / O completion notification for the I / O request is sent from the server. I / O issuing means for performing termination processing,
A client-side transmission unit that operates independently of the I / O issuing unit, which transmits I / O end information to the server each time an I / O process according to the raw I / O information is completed. Prepared,
The server is
I / O queue and
Send queue,
I / O request receiving means for queuing an I / O request sent from each client to the I / O queue;
The I / O request queued in the I / O queue is taken out, and raw I / O information for each physical position corresponding to the logical position in the taken out I / O request is obtained. The raw I / O information included is queued in the transmission queue, and when all the I / O end information corresponding to each raw I / O information is received, the I / O request transmission source client is An I / O processing process that sends an / O termination notification;
Server-side transmission means for extracting raw I / O information from the transmission queue and transmitting the raw I / O information to the client that is the transmission source of the I / O request corresponding to the raw I / O information;
Receive I / O end information from each client and pass the received I / O end information to the I / O processing process occupied by the I / O request corresponding to the I / O end information Means,
The number of I / O requests to be processed, which is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests occupying the I / O processing process, tends to increase. Only when the current number of I / O requests to be processed is greater than the current number of I / O processing processes to be started by a threshold or more, the number of I / O processing processes to be increased to the current number of I / O requests to be processed Only when the number of I / O requests to be processed tends to decrease and the current number of I / O requests to be processed is smaller than the current threshold number of I / O processes to be started. A file sharing system comprising a process number control means for reducing the number of processing processes to the current number of I / O requests to be processed.
ファイルシステムを管理すると共に、複数のクライアントからI/Oが送られてくるサーバーであって、
前記クライアントから送られてきたI/O要求をキューイングするI/Oキューと、
該I/OキューからI/O要求を取り出し、該I/O要求に従って処理を行うI/O処理プロセスであって、前記I/O要求に従った処理が完了するまで、前記I/O要求に占有されるI/O処理プロセスと、
前記I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上大きい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させ、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上小さい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするサーバー。
A server that manages file systems and receives I / O from multiple clients.
An I / O queue for queuing an I / O request sent from the client;
An I / O processing process that takes out an I / O request from the I / O queue and performs processing according to the I / O request, wherein the I / O request is completed until processing according to the I / O request is completed. I / O processing process occupied by
The number of I / O requests to be processed, which is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests occupying the I / O processing process, tends to increase. Only when the current number of I / O requests to be processed is greater than the current number of startup I / O processes by a threshold or more, increase the number of startup I / O processes to the current number of I / O requests to be processed Only when the number of I / O requests to be processed tends to decrease and the current number of I / O requests to be processed is smaller than the current threshold number of I / O processes to be started. A server comprising a process number control means for reducing the number of processing processes to the current number of I / O requests to be processed.
コンピュータを、ファイルシステムを管理すると共に、複数のクライアントからのI/O要求を処理するサーバーとして機能させるためのプログラムであって、
前記クライアントから送られてきたI/O要求をキューイングするI/OキューからI/O要求を取り出し、該I/O要求に従って処理を行うI/O処理プロセスであって、前記I/O要求に従った処理が完了するまで、前記I/O要求に占有されるI/O処理プロセス、
前記I/OキューにキューイングされているI/O要求数と、I/O処理プロセスを占有しているI/O要求数との和である処理対象I/O要求数が増加する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも閾値以上大きい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させ、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が現時点における起動I/O処理プロセス数よりも前記閾値以上小さい場合に限り、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させるプロセス数制御手段として機能させるためのプログラム。
A program for managing a file system and causing a computer to function as a server that processes I / O requests from a plurality of clients,
An I / O processing process for fetching an I / O request from an I / O queue for queuing an I / O request sent from the client and performing processing according to the I / O request, wherein the I / O request I / O processing process occupied by the I / O request until processing according to
The number of I / O requests to be processed, which is the sum of the number of I / O requests queued in the I / O queue and the number of I / O requests occupying the I / O processing process, tends to increase. Only when the current number of I / O requests to be processed is greater than the current number of startup I / O processes by a threshold or more, increase the number of startup I / O processes to the current number of I / O requests to be processed is allowed, there is a tendency that processing target number of I / O requests decrease, and only if the processing target number of I / O requests at present is smaller than the threshold value than start I / O processes number at the present time, start I / O A program for functioning as a process number control means for reducing the number of processing processes to the current number of I / O requests to be processed.
JP2003141941A 2003-05-20 2003-05-20 File sharing system, server and program Expired - Fee Related JP4089506B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003141941A JP4089506B2 (en) 2003-05-20 2003-05-20 File sharing system, server and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003141941A JP4089506B2 (en) 2003-05-20 2003-05-20 File sharing system, server and program

Publications (2)

Publication Number Publication Date
JP2004348233A JP2004348233A (en) 2004-12-09
JP4089506B2 true JP4089506B2 (en) 2008-05-28

Family

ID=33530164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003141941A Expired - Fee Related JP4089506B2 (en) 2003-05-20 2003-05-20 File sharing system, server and program

Country Status (1)

Country Link
JP (1) JP4089506B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4801761B2 (en) * 2009-08-12 2011-10-26 株式会社日立製作所 Database management method and system, and processing program therefor
JP5295395B2 (en) * 2012-01-04 2013-09-18 株式会社三菱東京Ufj銀行 Data processing device
JP5604554B2 (en) * 2013-04-30 2014-10-08 株式会社三菱東京Ufj銀行 Data processing device
US10788996B2 (en) * 2015-03-25 2020-09-29 Hitachi, Ltd. Computer system and process execution method

Also Published As

Publication number Publication date
JP2004348233A (en) 2004-12-09

Similar Documents

Publication Publication Date Title
JP6961686B2 (en) GPU remote communication using trigger operation
US7953915B2 (en) Interrupt dispatching method in multi-core environment and multi-core processor
US6434630B1 (en) Host adapter for combining I/O completion reports and method of using the same
CN110753131A (en) Microservice distributed current limiting method and device, storage medium and electronic equipment
US7849167B2 (en) Dynamic distributed adjustment of maximum use of a shared storage resource
EP2618257B1 (en) Scalable sockets
US10489208B1 (en) Managing resource bursting
US20080155571A1 (en) Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
US9390036B2 (en) Processing data packets from a receive queue in a remote direct memory access device
CN111190745A (en) A data processing method, apparatus and computer readable storage medium
JP2021501936A (en) Preventing long-term transaction execution from holding record locks
US11881996B2 (en) Input and output for target device communication
CN104252416B (en) A kind of accelerator and data processing method
CN111736975A (en) Request control method, apparatus, computer device, and computer-readable storage medium
JP4089506B2 (en) File sharing system, server and program
JP2010108300A (en) Information processing system, and method of allocating i/o to path in information processing system
CN107085534B (en) Information processing method and electronic equipment
JP2008186211A (en) Computer system
EP3539278A1 (en) Method and system for affinity load balancing
US20240168798A1 (en) Automatic synchronous or asynchronous execution of requests
US7478185B2 (en) Directly initiating by external adapters the setting of interruption initiatives
US9270742B2 (en) Computer system and control method of computer system
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
US12524442B2 (en) Dynamic allocation of partitions in a distributed data processing system
JP6657910B2 (en) Band setting method, band setting program, information processing apparatus and information processing system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120307

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120307

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130307

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130307

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140307

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees