(57)【特許請求の範囲】
【請求項１】
ファイルシステムを管理するサーバーと、該サーバーに対して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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするファイル共有システム。
【請求項２】
請求項１記載のファイル共有システムにおいて、
前記プロセス数制御手段が、
処理対象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要求中の論理位置に対応する物理位置を含む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情報を前記送信キューにキューイングする構成を有することを特徴とするファイル共有システム。
【請求項４】
ファイルシステムを管理するサーバーと、該サーバーに対して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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするファイル共有システム。
【請求項５】
ファイルシステムを管理すると共に、複数のクライアントから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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とするサーバー。
【請求項６】
コンピュータを、ファイルシステムを管理すると共に、複数のクライアントからの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要求を送信する複数のクライアントとを備えたファイル共有システムに関し、特に、サーバー上に無駄なシステム資源を確保することなく、効率良く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要求に占有される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処理プロセス数を現時点の処理対象I/O要求数まで減少させるための起動プロセス数減少指示を出力するという処理を所定時間毎に行う処理対象I/O要求数増減判別手段と、
該処理対象I/O要求数増減判別手段から出力される起動プロセス数増加指示に従って、新たなI/O処理プロセスを起動するプロセス起動手段と、
前記処理対象I/O要求数増減判別手段から出力される起動プロセス数減少指示に従って、I/O要求待ち状態にあるI/O処理プロセスを終了させるプロセス終了手段とを備えたことを特徴とする。
【００１１】
また、本発明にかかるファイル共有システムは、クライアントとサーバーとの間でデータをやり取りせず、クライアントとディスク装置との間で直接データを入出力できるようにするため、
前記各クライアントが、
前記ファイルシステム上の論理位置を含む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情報を前記送信キューにキューイングする構成を有することを特徴とする。
【００１２】
また、本発明にかかるファイル共有システムは、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要求数まで減少させるプロセス数制御手段とを備えたことを特徴とする。
【００１３】
【作用】
サーバーに対して、多数のクライアントから多数の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処理プロセス数を現時点の処理対象I/O要求数まで増加させる。これに対して、処理対象I/O要求数が減少する傾向にあり、且つ現時点における処理対象I/O要求数が、現時点における起動I/O処理プロセス数よりも閾値以上小さい場合は、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させる。
【００１５】
また、本発明のファイル共有システムは、ファイルに対する入出力を行う場合、クライアントからサーバーに対しては、ファイルシステム上の論理位置を含むI/O要求を送信し、サーバーからクライアントに対しては、上記I/O要求に含まれている論理位置に対応する物理位置を含むraw I/O情報を送信するだけであるので、クライアントとサーバーとの間では、入出力するデータをやり取りせずに、クライアントとディスク装置との間で直接データを入出力することが可能になる。
【００１６】
更に、本発明のファイル共有システムは、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性能を損なわないようにできる。
【００１７】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
【実施例の構成】
図１は本発明にかかるファイル共有システムの実施例のブロック図である。同図を参照すると、本実施例にかかるファイル共有システムは、複数のクライアント１−１〜１−ｎと、サーバー２と、交換機３と、複数のディスク装置５−１〜５−ｍを含むファイルシステム４と、クライアント１−１〜１−ｎとサーバー２とを相互に接続するネットワーク回線６とから構成されている。
【００１９】
クライアント１−１は、I/O発行プロセス１０１と、割込み処理手段１０５と、送信キュー１０６と、送信プロセス１０７とを備えている。なお、他のクライアントも同様の構成を有している。
【００２０】
I/O発行プロセス１０１は、アプリケーションプログラムを実行する一般のプロセスであり、I/O要求手段１０２と、I/O発行手段１０３と、受信手段１０４とを備えている。
【００２１】
I/O要求手段１０２は、アプリケーションプログラムからの要求に従って、I/O要求をネットワーク回線６を介してサーバー２へ送信する機能を有する。なお、I/O要求には、I/O処理の処理対象にするファイルの論理位置、このI/O要求を一意に識別するためのI/O要求識別子、およびread/write種別が含まれている。また、処理対象にするファイルの論理位置は、対象ファイルのファイルハンドラ、ファイルオフセットおよびI/Oサイズにより表すものとする。また、必要に応じて、I/O要求に認証情報を含ませるようにしても良い。
【００２２】
受信手段１０４は、サーバー２からネットワーク回線６を介して送られてくるraw I/O情報やI/O終了通知を受信する機能、受信したraw I/O情報をI/O発行手段１０３に渡す機能、および、受信したI/O終了通知に従った終了処理を行う機能を有する。なお、raw 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命令を発行する契機となった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要求（I/O要求元クライアントのネットワークアドレスが付加されている）の内の最も古いものを１つ取り出し、取り出したI/O要求に基づいてraw I/O情報を作成する機能や、作成したraw I/O情報を送信キュー２０６にキューイングする機能を有する。
【００３０】
ここで、raw 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要求識別子、read/write種別およびネットワークアドレスと、I/O発行プロセス内のI/O対象の仮想メモリの開始アドレスからのオフセットとを含むraw I/O情報を作成する。
【００３１】
また、I/O処理プロセス２０４内のI/O終了通知手段２１１は、受信プロセス２０９から受け取ったI/O終了情報に基づいて、I/O要求によって要求されたI/O処理が全て終了したと判断したとき（上記I/O要求に基づいて作成した全てのraw I/O情報に対応する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発行プロセス１０１は、アプリケーションプログラム（図示せず）からファイルのI/O処理が要求されると、I/O要求手段１０２を使用してサーバー２へI/O要求を送信する（図２のステップＳ201、図３のステップＳ31）。なお、I/O要求には、I/O処理の対象にするファイルの論理位置（対象ファイルのファイルハンドラ、ファイルオフセット、I/Oサイズ）と、read/write種別と、上記I/O要求を一意に識別するためのI/O要求識別子とが含まれている。この後、I/O発行プロセス１０１においては、受信手段１０４がサーバー２からのパケットを待ち合わせる受信待ち状態となる（図３のステップＳ32、Ｓ33）。
【００３８】
クライアント１−１からサーバー２に送信されたI/O要求は、I/O要求受信プロセス２０１内のI/O要求受信手段２０２で受信され、I/Oキュー２０３にキューイングされる（図２のステップＳ202、図６のステップＳ61、Ｓ62）。なお、I/O要求をI/Oキュー２０３にキューイングする際、I/O要求受信手段２０２は、要求元クライアント１−１のネットワークアドレスをI/O要求に付加する。この後、I/O要求受信手段２０２は、他に受信したI/O要求がなければ、受信待ち状態となる（ステップＳ63）。
【００３９】
I/O処理プロセス２０４内のI/O手段２０５は、図７のフローチャートに示すように、I/Oキュー２０３が空の場合はI/O要求待ち状態となっているが（ステップＳ71がNo、Ｓ72）、I/Oキュー２０３にI/O要求がキューイングされている場合には、その内の最も古いI/O要求を１つ取り出す（ステップＳ71がYes、Ｓ73）。今、例えば、I/O手段２０５が、ステップＳ202においてI/Oキュー２０３にキューイングされた、クライアント１−１からのI/O要求およびそれに付加されているクライアント１−１のネットワークアドレスを取り出したとする。
【００４０】
I/O手段２０５は、クライアント１−１からのI/O要求およびネットワークアドレスを取り出すと、ファイルシステム４を呼び出し、上記I/O要求中の論理位置（ファイルハンドラ、ファイルオフセット及びI/Oサイズ）をファイルシステム４に渡す。これにより、ファイルシステム４は、上記論理位置に対応する物理位置（I/O処理に対象にしているファイルが存在するディスク装置のデバイス番号、開始セクタ番号およびセクタ数）を、I/O手段２０５に返却する。I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合などは、複数の物理位置が返却される（ステップＳ74）。I/O手段２０５は、返却された各物理位置毎に、その物理位置と、上記I/O要求に含まれていたI/O要求識別子、read/write種別およびネットワークアドレスと、I/O発行プロセス内のI/O対象の仮想メモリの開始アドレスからのオフセットとを含むraw I/O情報を作成し、送信キュー２０６にキューイングする（ステップＳ75、図２のステップＳ203）。今、例えば、クライアント１−１からのI/O要求に対して第１番目〜第ｋ番目までの、ｋ個のraw I/O情報が送信キュー２０６にキューイングされたとする。その後、I/O処理プロセス２０４においては、I/O終了通知手段２１１がI/O終了情報の受信待ち状態になる（ステップＳ76）。
【００４１】
送信プロセス２０７内の送信手段２０８は、図８のフローチャートに示すように、送信キュー２０６が空の場合は送信待ち状態となっているが（ステップＳ81がNo、Ｓ82）、送信キュー２０６にraw I/O情報がキューイングされている場合は、最も古いraw I/O情報を１つ取り出す（ステップＳ83）。そして、取り出したraw I/O情報をパケット化し、上記raw I/O情報に含まれているネットワークアドレスによって特定されるクライアントへ送信する（ステップＳ84）。今、例えば、送信手段２０８がクライアント１−１のネットワークアドレスを含んだ第１番目のraw I/O情報を送信キュー２０６から取り出したとすると、図２に示すように、パケット化された第１番目のraw I/O情報が、クライアント１−１へ送信される（ステップＳ204-1）。
【００４２】
受信手段１０４で受信待ち状態の、クライアント１−１内のI/O発行プロセス１０１は、サーバー２からパケットを受信すると、それがraw I/O情報なのか、I/O終了通知なのかを判断する（ステップＳ32がYes、Ｓ34）。この例の場合、サーバー２からは、第１番目のraw I/O情報が送られてきているので、受信手段１０４は、raw I/O情報をI/O発行手段１０３に渡す。I/O発行手段１０３は、受信手段１０４から第１番目のraw I/O情報が渡されと、それをディスクドライバが解釈できる第１番目のI/O命令に変換し、該当するディスク装置５−ｊにI/O命令を発行する（ステップＳ35、Ｓ36）。これにより、図２に示すように、ディスク装置５−ｊにおいて、第１番目のI/O命令に従ったI/O処理が実行される（ステップＳ205-1）。その後、I/O発行プロセス１０１は、第１番目のI/O命令に従ったI/O処理の終了待ち合わせは行わず、再度受信手段１０４で受信待ち状態となる（ステップＳ33）。
【００４３】
ここで、第１番目のI/O命令に従ったI/O処理を実行しているディスク装置５−ｊの処理速度は、クライアント１−１〜１−ｎやサーバー２の処理速度に比較して非常に低速であるため、第１番目のI/O命令に従ったI/O処理が終了する前に、サーバー２内の送信プロセス２０７からクライアント１−１内のI/O発行プロセス１０１に対して第２番目〜第ｋ番目のraw I/O情報が連続的に送られてくる（ステップＳ204-2〜Ｓ204-k）。I/O発行プロセス１０１は、前述したようにI/O処理の終了待ち合わせは行わず、受信手段１０４で受信待ち状態となっているので（ステップＳ33）、第２番目〜第ｋ番目のraw I/O情報が送られてくる毎に、該当するディスク装置にI/O命令を発行し（ステップＳ35、Ｓ36）、該当する各ディスク装置においてI/O処理が実行される（ステップＳ205-2〜Ｓ205-k）。つまり、複数のraw I/O情報に対応したI/O処理が並行して実行されることになる。
【００４４】
その後、第１番目〜第ｋ番目のI/O命令に従ったI/O処理を実行しているディスク装置の内の、あるディスク装置（例えば、第１番目のI/O命令に従ったI/O処理を実行しているディスク装置５−ｊ）で、第１番目のI/O命令に従ったI/O処理が終了すると、割込み処理手段１０５は、第１番目のI/O終了情報を送信キュー１０６にキューイングする（図４、ステップＳ41、Ｓ42）。なお、I/O終了情報には、上記I/O命令を発行する契機となった第１番目のraw I/O情報とI/O処理結果とが含まれる。また、上記した処理は、例えば、ディスクドライバの終了処理から起動されるコールバック関数において行われる。この割込み処理手段１０５による処理は、I/O命令に従ったI/O処理が終了する毎に行われ、送信キュー１０６には、第１番目〜第ｋ番目のI/O終了情報がキューイングされる。
【００４５】
送信プロセス１０７内の送信手段１０８は、図５のフローチャートに示すように、送信キュー１０６が空の場合は送信待ち状態になっているが（ステップＳ51がNo、Ｓ52）、送信キュー106にI/O終了情報がキューイングされている場合は、最も古いI/O終了情報を１つ取り出し、それをパケット化してサーバー２へ送信する（ステップＳ51がYes、Ｓ53、Ｓ54）。今、例えば、送信キュー１０６に第１番目〜第ｋ番目のI/O終了情報が、その順でキューイングされたとすると、送信手段１０８は、図２に示すように、第１番目〜第ｋ番目のI/O終了情報を順次サーバー２へ送信することになる（ステップＳ206-1〜Ｓ206-k）。
【００４６】
クライアント１−１から最初に送られてくる第１番目のI/O終了情報は、受信プロセス２０９の受信手段２１０によって受信され、上記第１番目のI/O終了情報に含まれているI/O要求識別子によって特定されるI/O要求を処理しているI/O処理プロセス２０４内のI/O終了通知手段２１１に渡される（図９のステップＳ91がYes、Ｓ93）。その後、受信手段２１０は、I/O終了情報の受信待ち状態となる（ステップＳ92）。
【００４７】
I/O終了通知手段２１１は、受信手段２１０から第１番目のI/O終了情報が渡されると、ファイルシステム４を利用して、現在処理中のI/O要求に関する全てのI/O終了情報を受信したか否かを判断する（図７のステップＳ77、Ｓ78）。この例の場合、第１番目〜第ｋ番目のI/O終了情報の内の第１番目のI/O終了情報しか受信していないので、I/O終了通知手段２１１は、I/O処理終了待ち状態となる（ステップＳ78がNo、Ｓ76）。
【００４８】
クライアント１−１から送られてくる第２番目〜第（ｋ−１）番目のI/O終了情報についても、受信手段２１０及びI/O終了通知手段２１１において前述した処理と同様の処理が行われる。
【００４９】
サーバー２内のI/O終了通知手段２１１は、受信プロセス２０９を介してクライアント１−１からの第ｋ番目（最後）のI/O処理情報を受信すると、ファイルシステム４を利用して、現在処理中のI/O要求に関する全てのI/O終了情報を受信したか否かを判断する（図７のステップＳ77、Ｓ78）。そして、この第ｋ番目のI/O終了情報を受信することにより、第１番目〜第ｋ番目のI/O終了要求を全て受信したと判断すると、第１番目〜第ｋ番目のI/O終了情報に基づいて、ファイルシステム４に対する終了処理を行い、その後、処理結果（エラー情報等）や、I/Oサイズ、I/O後のファイルオフセット、ファイルの更新情報、I/O要求識別子等を含むI/O終了通知をパケット化してクライアント１−１へ送信する（図２のステップＳ207、図７のステップＳ79）。
【００５０】
受信手段１０４で受信待ち状態のI/O発行プロセス１０１は、サーバー２からパケット化されたI/O終了通知を受信すると（図３のステップＳ32がYes、Ｓ34がYes）、処理結果を要求元のアプリケーションプログラムに返却する等の終了処理を行った後、ユーザモードに復帰する（ステップＳ37、Ｓ38、図２のステップＳ208）。
【００５１】
なお、図２は、I/O対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合の動作例を示したが、I/O対象にするファイルが単一ディスク装置上に存在する場合は、例えば、図１３に示すような動作が行われる。
【００５２】
クライアント１−１内のI/O発行プロセス１０１が、I/O要求をサーバー２に送信すると（ステップＳ131）、サーバー２内のI/O要求受信手段202が、クライアント１−１からのI/O要求をI/Oキュー２０３にキューイングし（ステップＳ132）、I/O手段２０５がI/Oキュー２０３からI/O要求を取り出し、取り出したI/O要求に対応するraw I/O情報を送信キュー２０６にキューイングする（ステップＳ133）。この例の場合、I/O対象ファイルが単一のディスク装置上に存在するので、I/O手段２０５は、１個のraw I/O情報を送信キュー２０６にキューイングすることになる。送信キュー２０６にキューイングされたraw I/O情報は、送信手段２０８によってクライアント１−１に送信される（ステップＳ134）。
【００５３】
クライアント１−１内のI/O発行プロセス１０１は、送信手段２０８から送られてきたraw I/O情報に対応したI/O命令を該当するディスク装置に発行する。これにより、該当するディスク装置において、I/O命令に従ったI/O処理が実行される（ステップＳ135）。
【００５４】
ディスク装置でのI/O処理が終了すると、割込み処理手段１０５がI/O終了情報を送信キュー１０６にキューイングし、送信手段１０８が送信キュー１０６にキューイングされているI/O終了情報をサーバー２へ送信する（ステップＳ136）。
【００５５】
サーバー２内のI/O終了通知手段２１１は、受信手段２１０を介してI/O終了情報を受信すると、全てのI/O終了情報を受信したことになるので、I/O終了通知をクライアント１−１へ送信する（ステップＳ138）。クライアント１−１内のI/O発行プロセス１０１は、I/O終了通知を受信すると、終了処理を行う（ステップＳ138）。図１３の例においては、クライアント１−１が１個のI/O要求をサーバー２に送信した場合の動作を示したが、例えば、クライアント１−１がステップＳ13１の直後に他のI/O要求をサーバー２へ送信した場合は、この他のI/O要求に対応するraw I/O情報が、ステップＳ135とステップＳ136との間（最初のraw 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要求数増減判別手段２１３−１は、所定時間dt毎の観測点において処理対象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要求数増減判別手段２１３−１から出力される起動プロセス数増加指示に従って、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで新たなI/O処理プロセス２０４を起動する機能を有する。
【００６１】
プロセス終了手段２１３−４は、処理対象I/O要求数増減判別手段２１３−１から出力される起動プロセス数減少指示に従って、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、I/O要求待ち状態にあるI/O処理プロセス２０４を終了させる機能を有する。
【００６２】
次に、このような構成を有するプロセス数制御手段２１３の動作について説明する。
【００６３】
処理対象I/O要求数増減判別手段２１３−１は、図１１のフローチャートに示すように、ステップＳ111において、現時点の処理対象I/O要求数を求め、今回求めた処理対象I/O要求数を処理対象I/O要求数管理表２１２−２に追加登録する。更に、処理対象I/O要求数増減判別手段２１３−１は、ステップＳ111において、処理対象I/O要求数管理表２１２−２に登録されている過去ｎ回分の処理対象I/O要求数に基づいて、処理対象I/O要求数がどのような割合で増減しているのかを示す傾きを求める。この傾きは、例えば、次式（１）により求める。なお、式（１）において、Ｋ1、Ｋnは観測点１、ｎにおける処理対象I/O要求数を表し、ｔ１、ｔｎは観測点１、ｎの時刻を表している（図１２参照）。また、本実施例では、式（１）により傾きを求めるようにしたが、他の計算式により求めるようにしても良い。
【００６４】
傾き＝（Ｋｎ−Ｋ１）／（ｔｎ−ｔ１）  …（１）
【００６５】
その後、処理対象I/O要求数増減判別手段２１３−１は、現時点において起動されているI/O処理プロセス２０４の数を示す起動I/O処理プロセス数に閾値αを加算し、ステップＳ111で求めた現在の処理対象I/O要求数が上記加算結果を超えているか否かを調べる（ステップＳ112、Ｓ113）。但し、運用開始直後で、処理対象I/O要求数管理表２１２−２に過去ｎ回分の処理対象I/O要求数が登録されていない場合は、ステップＳ120の処理を行う。
【００６６】
ステップＳ113において、現時点の処理対象I/O要求数が（現時点の起動I/O処理プロセス数＋α）を超えていると判断した場合は、ステップＳ111で求めた傾きに基づいて、処理対象I/O要求数が増加する傾向にあるか否かを判断する（ステップＳ114）。本実施例では、傾きが正または０の場合、増加する傾向にあると判断するが、傾きが正の場合のみ増加する傾向にあると判断するようにしても良い。
【００６７】
そして、増加する傾向にあると判断した場合（ステップＳ114がYes）は、プロセス起動手段２１３−３に対して、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで増加させることを指示する起動プロセス数増加指示を出力する（ステップＳ115）。これにより、プロセス起動手段２１３−３は、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、新たなI/O処理プロセスを起動する。その後、処理対象I/O要求数増減判別手段２１３−１は、一定時間dtだけ停止し（ステップＳ120）、再びステップＳ111の処理を行う。
【００６８】
これに対して、増加する傾向にないと判断した場合（ステップＳ114がNo）は、ステップＳ120の処理に移る。
【００６９】
また、ステップＳ113において、現時点の処理対象I/O要求数が（現時点の起動I/O処理プロセス数＋α）を超えていないと判断した場合は、ステップＳ116の処理を行う。ステップＳ116では、現時点の起動I/O処理プロセス数から閾値αを減算し、次のステップＳ117では、現時点の処理対象I/O要求数が（現時点の起動I/O処理プロセス数−α）を下回っているか否かを判断する。
【００７０】
ステップＳ117において、現時点の処理対象I/O要求数が（現時点の起動I/O処理プロセス数−α）を下回っていると判断した場合は、ステップＳ111で求めた傾きに基づいて、処理対象I/O要求数が減少する傾向にあるか否かを判断する（ステップＳ118）。本実施例では、傾きが負または０の場合、減少する傾向にあると判断するが、傾きが負の場合のみ減少する傾向にあると判断するようにしても良い。
【００７１】
そして、減少する傾向にあると判断した場合（ステップＳ118がYes）は、プロセス終了手段２１３−４に対して、起動I/O処理プロセス数を現時点の処理対象I/O要求数まで減少させることを指示する、起動プロセス数減少指示を出力する（ステップＳ119）。これにより、プロセス終了手段２１３−４は、起動I/O処理プロセス数が現時点の処理対象I/O要求数になるまで、I/O要求待ち状態のI/O処理プロセスを終了させる。その後、処理対象I/O要求数増減判別手段２１３−１は、一定時間dtだけ停止し（ステップＳ120）、再びステップＳ111の処理を行う。
【００７２】
これに対して、減少する傾向にないと判断した場合（ステップＳ118がNo）は、ステップＳ120の処理に移る。
【００７３】
なお、上記n,α,dtの値は、システム管理者が適当な値を設定する。
【００７４】
図１２は、処理対象I/O要求数の変化と起動I/O処理プロセス数の変化の１例を示したものである。この例の場合、処理対象I/O要求数は局所的には減少している部分もあるが、全体的には増加傾向にある。観測点n-1までは、起動I/O処理プロセス数と処理対象I/O要求数との差分が閾値α以内であるため、起動I/O処理プロセス数の変更は行われない。しかし、観測点nにおいて、差分が閾値αを超えるため、起動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対象にするファイルが、複数のディスク装置によってストライピングされたファイルシステム上に存在する場合、サーバーからクライアントに対して複数のraw I/O情報が送られ、クライアントのI/O発行手段が受信した各raw I/O情報に従ったI/O処理を行うが、その際、本発明のI/O発行手段では、各raw 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要求手段
１０３…I/O発行手段
１０４…受信手段
１０５…割込み処理手段
１０６…送信キュー
１０７…送信プロセス
１０８…送信手段
２…サーバー
２０１…I/O要求受信プロセス
２０２…I/O要求受信手段
２０３…I/Oキュー
２０４…I/O処理プロセス
２０５…I/O手段
２０６…送信キュー
２０７…送信プロセス
２０８…送信手段
２０９…受信プロセス
２１０…受信手段
２１１…I/O終了通知手段
２１２…監視プロセス
２１３…プロセス数制御手段
２１３−１…処理対象I/O要求数増減判別手段
２１３−２…処理対象I/O要求数管理表
２１３−３…プロセス起動手段
２１３−４…プロセス終了手段
Ｋ…記録媒体
３…交換機
４…ファイルシステム
５−１〜５−ｍ…ディスク装置
６…ネットワーク回線
【図１】
0004089506.tif 000002
【図２】
0004089506.tif 000003
【図３】
0004089506.tif 000004
【図４】
0004089506.tif 000005
【図５】
0004089506.tif 000006
【図６】
0004089506.tif 000007
【図７】
0004089506.tif 000008
【図８】
0004089506.tif 000009
【図９】
0004089506.tif 000010
【図１０】
0004089506.tif 000011
【図１１】
0004089506.tif 000012
【図１２】
0004089506.tif 000013
【図１３】
0004089506.tif 000014
【図１４】
0004089506.tif 000015