JP4089506B2 - File sharing system, server and program - Google Patents
File sharing system, server and program Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 214
- 230000008569 process Effects 0.000 claims description 213
- 230000005540 biological transmission Effects 0.000 claims description 70
- 230000007423 decrease Effects 0.000 claims description 38
- 238000001994 activation Methods 0.000 claims description 15
- 230000004913 activation Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 description 20
- 238000012544 monitoring process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
[0003]
The file sharing system disclosed in
[0004]
[Patent Document 1]
JP 2000-250821 A
[0005]
[Problems to be solved by the invention]
According to the conventional technique described in
[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
[0019]
The client 1-1 includes an I /
[0020]
The I /
[0021]
The I / O request unit 102 has a function of transmitting an I / O request to the
[0022]
The receiving
[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 /
[0025]
The
[0026]
The
[0027]
The I / O
[0028]
The I /
[0029]
The I / O means 205 in the I /
[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 /
[0032]
The
[0033]
The
[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
[0035]
The recording medium K is a disk, semiconductor memory, or other recording medium, and stores a program for causing the
[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
[0037]
The I /
[0038]
The I / O request transmitted from the client 1-1 to the
[0039]
As shown in the flowchart of FIG. 7, the I / O means 205 in the I /
[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 /
[0041]
As shown in the flowchart of FIG. 8, the transmission means 208 in the
[0042]
When receiving a packet from the
[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
[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
[0046]
The first I / O end information sent first from the client 1-1 is received by the receiving means 210 of the
[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
[0050]
When the I /
[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 /
[0053]
The I /
[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
[0055]
When the I / O end notification means 211 in the
[0056]
In the above description, when the I /
[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
[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 /
[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 /
[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 /
[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
[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 /
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
6 is a flowchart showing a processing example of an I / O
FIG. 7 is a flowchart showing a processing example of an I /
FIG. 8 is a flowchart illustrating a processing example of a
FIG. 9 is a flowchart illustrating a processing example of a
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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするファイル共有システム。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要求中の論理位置に対応する物理位置を含む複数の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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするサーバー。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要求数まで減少させるプロセス数制御手段として機能させるためのプログラム。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.
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)
| 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 |
-
2003
- 2003-05-20 JP JP2003141941A patent/JP4089506B2/en not_active Expired - Fee Related
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 |