(57)【特許請求の範囲】
【請求項１】
データ転送を実行する複数のノードと、
前記複数のノードを管理する管理装置と、
を有し、
前記管理装置は、
データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部と、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、前記データ格納部から特定する特定部と、
前記特定部により特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する送信部と、
を有し、
前記特定部は、
前記実行すべきデータ転送の情報に含まれる、前記実行すべきデータ転送によって転送されるデータのサイズの情報と、前記実行すべきデータ転送を完了する時刻の情報とに基づき、前記実行すべきデータ転送に割り当てるノードの数Ｎを算出し、
前記実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行するノードの中から、Ｎ個のノードを特定する
情報処理システム。
【請求項２】
前記管理装置が、
転送元のデータ名、転送先のデータ名、前記第１のノードが転送を停止した位置を示す情報、及び残りのデータのサイズの情報を含む応答を、前記１又は複数の第１のノードの各々から受信し、第２データ格納部に格納する受信部
をさらに有する請求項１記載の情報処理システム。
【請求項３】
前記特定部は、
前記データ格納部から、前記１又は複数の第１のノード以外のノードのうち所定の条件を満たす第２のノードを特定し、
前記送信部は、
前記第２データ格納部に格納された１又は複数の前記応答を取り出し、前記特定部により特定された前記第２のノードに送信する
請求項２記載の情報処理システム。
【請求項４】
前記複数のノードの各々は、所定量のデータを転送する度に、前記管理装置から前記停止要求を受信したか否か確認する処理を実行する
請求項１記載の情報処理システム。
【請求項５】
データ転送を実行する複数のノードと、前記複数のノードを管理する管理装置とを有する情報処理システムの制御方法において、
前記管理装置は、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部から特定し、
特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する、
処理を実行し、
前記特定する処理において、
前記実行すべきデータ転送の情報に含まれる、前記実行すべきデータ転送によって転送されるデータのサイズの情報と、前記実行すべきデータ転送を完了する時刻の情報とに基づき、前記実行すべきデータ転送に割り当てるノードの数Ｎを算出し、
前記実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行するノードの中から、Ｎ個のノードを特定する
ことを特徴とする、情報処理システムの制御方法。
【請求項６】
データ転送を実行する複数のノードを管理する管理装置の制御プログラムにおいて、
前記管理装置に、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部から特定し、
特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する、
処理を実行させ、
前記特定する処理において、
前記実行すべきデータ転送の情報に含まれる、前記実行すべきデータ転送によって転送されるデータのサイズの情報と、前記実行すべきデータ転送を完了する時刻の情報とに基づき、前記実行すべきデータ転送に割り当てるノードの数Ｎを算出し、
前記実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行するノードの中から、Ｎ個のノードを特定する
ことを特徴とする、管理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムの制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
データを転送する際に、転送の優先度に応じて転送の順序を変更する技術が知られている。例えば或る文献には、実行中のデータ転送を中断し、実行中のデータ転送の優先度より高い優先度をもつデータ転送を優先的に実行する装置が開示されている。
【０００３】
但し、上記の文献に開示された技術は、単一の装置がデータ転送を実行することを前提とした技術である。
【０００４】
例えば分散ファイルシステムにおいては、分散ファイルシステム内の複数のノードによってファイル転送が分散して実行されることがある。例えば１つのファイルを複数のノードが転送する場合、複数のノードの各々がそのファイルの一部を転送することで、全体として１つのファイルを転送する。上記の文献においては、このようなシステムにおけるデータ転送の制御については考慮されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−９８６０５号公報
【特許文献２】特開平８−２０４７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、ファイル転送を行う複数のノードを有する分散ファイルシステムにおいて、ファイル転送を柔軟に行うための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理システムは、データ転送を実行する複数のノードと、複数のノードを管理する管理装置とを有する。そして、上で述べた管理装置は、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部と、実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ格納部から特定する特定部と、特定部により特定された１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、実行すべきデータ転送の情報と実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する送信部とを有する。
【発明の効果】
【０００８】
１つの側面では、ファイル転送を行う複数のノードを有する分散ファイルシステムにおいて、ファイル転送を柔軟に行えるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態のシステム概要を示す図である。
【図２】図２は、ＩＯノードが実行するファイルコピーの一例を示す図である。
【図３】図３は、フロントエンドサーバの機能ブロック図である。
【図４】図４は、ＩＯノードの機能ブロック図である。
【図５】図５は、サーバデータ格納部に格納されるデータの構造を示す図である。
【図６】図６は、サーバデータ格納部に格納される構造体の一例を示す図である。
【図７】図７は、ノードデータ格納部に格納されるデータの構造を示す図である。
【図８】図８は、ノードデータ格納部に格納される構造体の一例を示す図である。
【図９】図９は、フロントエンドサーバとＩＯノードとの間で交換されるデータについての構造体の一例を示す図である。
【図１０】図１０は、フロントエンドサーバが実行する処理の処理フローを示す図である。
【図１１】図１１は、フロントエンドサーバが実行する処理の処理フローを示す図である。
【図１２】図１２は、フロントエンドサーバが実行する処理の処理フローを示す図である。
【図１３】図１３は、ＩＯノードが実行する処理の処理フローを示す図である。
【図１４】図１４は、ＩＯノードが実行する処理の処理フローを示す図である。
【図１５】図１５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態における分散ファイルシステムの概要を示す。本実施の形態における主要な処理を実行するフロントエンドサーバ１は、例えばＬＡＮ（Local Area Network）等のネットワーク６を介して、ファイルコピーを実行するＩＯ（Input Output）ノード３１乃至３４と、第１ファイル格納部５１を含む第１ファイル管理装置５と、第２ファイル格納部７１を含む第２ファイル管理装置７とに接続される。また、フロントエンドサーバ１は、例えばインターネットであるネットワーク８に接続されており、ネットワーク８にはユーザ端末９が接続される。なお、図１においてはＩＯノードの数は４であるが、数に限定は無い。
【００１１】
ユーザ端末９は、実行すべきファイルコピーの情報を含む実行指示をフロントエンドサーバ１に送信する。フロントエンドサーバ１は、ユーザ端末９から実行指示を受信した場合に、実行指示において指定されたファイルコピーに対しＩＯノードを割り当てる。ＩＯノード３１乃至３４は、フロントエンドサーバ１の割り当てに応じ、ファイルコピーを実行する。
【００１２】
図２に、ＩＯノード３１乃至３４が実行するファイルコピーの一例を示す。図２の例では、ＩＯノード３１乃至３４は、第１ファイル格納部５１に格納されたコピー元ファイルを、第２ファイル格納部７１にコピーする。各ＩＯノードがコピーするデータのサイズは他のＩＯノードがコピーするデータのサイズと同じである。コピー先ファイルは２４ブロックに分かれており、各ＩＯノードは、１回のコピーによって１ブロック分のデータをコピーする。コピー先ファイルにおいて網掛けが付された部分はコピーが完了した部分を表す。各ＩＯノードは、１回分のコピーが完了すると、フロントエンドサーバ１からファイルコピーの停止要求を受信したか否か確認する。この処理については、後で詳細に説明する。
【００１３】
図３に、フロントエンドサーバ１の機能ブロック図を示す。フロントエンドサーバ１は、受信部１０１と、管理部１０２と、サーバデータ格納部１０３と、送信部１０４と、第１キュー１０５と、第２キュー１０６とを含む。
【００１４】
受信部１０１は、ユーザ端末９からファイルコピーの実行指示を受信し、管理部１０２に出力する。
【００１５】
管理部１０２は、受信部１０１から受け取った実行指示に基づき処理を実行し、処理結果に応じて、第１キュー１０５にコピー要求を格納するか又は送信部１０４にコピー要求を出力する。また、管理部１０２は、ＩＯノード３１乃至３４から受信した進捗データに含まれる情報に基づきコピー要求を生成し、生成されたコピー要求を第２キュー１０６に格納する。
【００１６】
送信部１０４は、管理部１０２から受け取ったコピー要求を、そのコピー要求を処理するＩＯノードに送信する。また、送信部１０４は、第１キュー１０５に格納されたコピー要求及び第２キュー１０６に格納されたコピー要求を、そのコピー要求を処理するＩＯノードに送信する。
【００１７】
図４に、ＩＯノード３１の機能ブロック図を示す。ＩＯノード３１は、コピー部３１１と、ノードデータ格納部３１２とを含む。コピー部３１１は、フロントエンドサーバ１から受信したデータに基づきファイルコピーを実行し、ファイルコピーの実績を表す実績情報をノードデータ格納部３１２に格納する。なお、ＩＯノード３２乃至３４の機能ブロック図はＩＯノード３１の機能ブロック図と同様であるので、説明を省略する。
【００１８】
図５に、サーバデータ格納部１０３に格納されるデータの構造を示す。サーバデータ格納部１０３には、データが構造体として格納される。構造体は実行指示毎に生成され、コピー元ファイル名と、コピー先ファイル名と、ＩＯノード情報を指し示すデータ（例えばポインタ）と、優先度と、ファイルサイズとを含む。ＩＯノード情報は、ＩＯノードの識別子（例えばＩＰアドレス）と、要求情報を指し示すデータ（例えばポインタ）と、実績情報を指し示すデータ（例えばポインタ）と、次のＩＯノードを指し示すデータ（例えばポインタ）とを含む。要求情報は、開始オフセット（すなわち、コピーを開始する位置）と、コピーされるデータのサイズとを含む。実績情報は、開始オフセットと、コピーされたデータのサイズとを含む。図６に、サーバデータ格納部１０３に格納される構造体の一例を示す。図６におけるコード６００１は図５における要素５００１の一例であり、図６におけるコード６００２は図５における要素５００２の一例であり、図６におけるコード６００３は図５における要素５００３の一例であり、図６におけるコード６００４は図５における要素５００４の一例である。
【００１９】
図７に、ノードデータ格納部３１２に格納されるデータの構造を示す。ノードデータ格納部３１２には、データが構造体として格納される。構造体はフロントエンドサーバ１から受信したコピー要求毎に生成され、コピー元ファイル名と、コピー先ファイル名と、コピー先ファイルのファイルディレクトリを表す情報と、優先度と、１回に書き込むデータのサイズと、要求情報を指し示すデータ（例えばポインタ）と、実績情報を指し示すデータ（例えばポインタ）とを含む。要求情報は、開始オフセットと、コピーされるデータのサイズとを含む。実績情報は、開始オフセットと、コピーされたデータのサイズとを含む。図８に、ノードデータ格納部３１２における構造体のうち図７における要素７００１に該当する部分の一例を示す。図７における要素７００２は図５における要素５００３と同様であり、図７における要素７００３は図５における要素５００４と同様である。なお、「ｃｈａｒ  ｓｒｃｐａｔｈ」及び「ｃｈａｒ  ｄｓｔｐａｔｈ」には、分散ファイルシステムにおける各ＩＯノードが使用可能な値が設定される。
【００２０】
図９に、フロントエンドサーバ１とＩＯノード３１乃至３４との間で交換されるデータについての構造体の一例を示す。フロントエンドサーバ１とＩＯノード３１乃至３４との間で交換されるデータは、構造体として生成される。「ｉｎｔ６４＿ｔ  ｎｄａｔａ」は、データのコピーについての設定値を表す。「ｉｎｔ６４＿ｔ  ｐｒｉｏｒｉｔｙ」は、優先度を表す。
【００２１】
次に、図１０乃至図１４を用いて、本実施の形態の分散ファイルシステムにおいて行われる処理について説明する。なお、本実施の形態の分散ファイルシステムにおいては、第１の優先度のファイルコピーと、第１の優先度より低い優先度である第２の優先度のファイルコピーとが実行されるものとする。
【００２２】
まず、ユーザ端末９が実行指示を送信した場合にフロントエンドサーバ１が実行する処理について説明する。フロントエンドサーバ１の受信部１０１は、ファイルコピーの実行指示をユーザ端末９から受信し（図１０：ステップＳ１）、管理部１０２に出力する。ファイルコピーの実行指示は、例えば、コピー元ファイル名、コピー先ファイル名、優先度、及びファイルサイズを含む。
【００２３】
管理部１０２は、受信部１０１から受け取った実行指示に含まれる優先度を特定する（ステップＳ３）。そして、管理部１０２は、サーバデータ格納部１０３に格納されているデータを用いて、ステップＳ３において特定された優先度より低い優先度のファイルコピーを実行中であるか判断する（ステップＳ５）。なお、実行中のファイルコピーについてはサーバデータ格納部１０３に構造体が格納されているので、管理部１０２は、各構造体における優先度とステップＳ３において特定された優先度とを比較する。
【００２４】
ステップＳ３において特定された優先度より低い優先度のファイルコピーを実行していない場合（ステップＳ５：Ｎｏルート）、ステップＳ３において特定された優先度が第２の優先度であるか、又は、ステップＳ３において特定された優先度が第１の優先度であり且つ第２の優先度のファイルコピーが実行されていない状態である。従って、管理部１０２は、実行指示に含まれる情報（例えば、コピー元ファイル名、コピー先ファイル名、優先度、及びファイルサイズ）に基づきコピー要求を生成し、第１キュー１０５に格納する（ステップＳ７）。処理は端子Ａを介して図１１に移行する。そして処理は終了する。
【００２５】
なお、第１キュー１０５に格納されたコピー要求は、所定の状態になった場合（例えば、ファイルコピーを実行していないＩＯノードが生じた場合又は所定の時刻になった場合等）に送信部１０４により取り出され、そのＩＯノードに送信される。ファイルコピーを実行していないＩＯノードの数が複数である場合、送信部１０４は、複数のＩＯノードの各々に対しコピー要求を送信してもよい。この場合、送信部１０４は、各ＩＯノードに送信されるコピー要求に、そのノードがコピーするデータのサイズ及び開始オフセットの情報を追加する。
【００２６】
これに対し、ステップＳ３において特定された優先度より低い優先度のファイルコピーを実行中である場合（ステップＳ５：Ｙｅｓルート）、ステップＳ３において特定された優先度は、第１の優先度である。管理部１０２は、第１の優先度より低い優先度（すなわち、第２の優先度）のファイルコピーを実行するＩＯノードを、サーバデータ格納部１０３から特定する（ステップＳ９）。
【００２７】
管理部１０２は、実行指示に含まれる情報に基づき、第１の優先度のファイルコピーを実行すべきＩＯノードの数Ｎ（Ｎは自然数）を算出する（ステップＳ１１）。例えば、ファイルコピーを完了する時刻の情報が実行指示に含まれる場合には、ステップＳ１１の処理時点からファイルコピーを完了する時刻までの時間でファイルサイズを割ることにより、転送レートを求めることができる。求められた転送レートを１台のＩＯノードの転送レートで割ることによって、第１の優先度のファイルコピーを実行すべきＩＯノードの数Ｎを算出することができる。なお、第１の優先度のファイルコピーを実行すべきＩＯノードの数の情報が実行指示に含まれる場合には、その情報を用いてもよい。また、ファイルコピーを完了する時刻の情報が実行指示に含まれていない場合、Ｎ＝１としてもよい。
【００２８】
管理部１０２は、ステップＳ９において特定されたＩＯノードの中から未処理のＩＯノードを１台特定し、実行ノードのリストに追加する（ステップＳ１３）。実行ノードのリストとは、サーバデータ格納部１０３に格納されているＩＯノード情報のことである。
【００２９】
なお、ステップＳ１において受信した実行指示に対してステップＳ１３の処理を実行するのが初めてである場合、管理部１０２は、ステップＳ１において受信した実行指示について構造体を生成し、ＩＯノード情報を生成する。初めてではない場合には、既に生成されている構造体に対してＩＯノード情報を追加する。
【００３０】
なお、ステップＳ１３においては、コピー元ファイルとコピー先ファイルとＩＯノードとの位置関係に基づき、未処理のＩＯノードのうち実効転送速度が最も速いＩＯノードを特定してもよい。この場合、実効転送速度の情報は予め行われた測定等により取得されているものとする。
【００３１】
管理部１０２は、ステップＳ１３において特定されたＩＯノードに、実行中のファイルコピーを停止することを要求する停止要求を送信する。そして、管理部１０２は、停止したファイルコピーの進捗を表す進捗データを、停止要求の応答として受信する（ステップＳ１５）。
【００３２】
管理部１０２は、ステップＳ１５において受信した進捗データに含まれる情報に基づきコピー要求を生成し、第２キュー１０６に格納する（ステップＳ１７）。処理は端子Ｂを介して図１１のステップＳ１９に移行する。進捗データは、コピー元ファイル名、コピー先ファイル名、優先度、コピーを停止した位置、及び残りのデータサイズ等を含む。
【００３３】
図１１の説明に移行し、管理部１０２は、実行指示に含まれる情報に基づき、コピー元ファイル名、コピー先ファイル名、優先度、開始オフセット、及びデータサイズを含む、第１の優先度のファイルコピーについてのコピー要求を生成する（図１１：ステップＳ１９）。データサイズは、ファイルサイズを、ファイルコピーを実行するＩＯノードの数Ｎで割ることにより求められる。開始オフセットは、求められたデータサイズと、実行ノードのリストに追加されたＩＯノードの数とから求められる。
【００３４】
管理部１０２は、ステップＳ１９において生成されたコピー要求を、送信部１０４に出力する。これに応じ、送信部１０４は、ステップＳ１９において生成されたコピー要求を、ステップＳ１３において特定されたＩＯノードに送信する（ステップＳ２１）。
【００３５】
管理部１０２は、実行ノードの数がＮに達したか判断する（ステップＳ２３）。実行ノードの数がＮに達した場合（ステップＳ２３：Ｙｅｓルート）、第１の優先度のファイルコピーに対するＩＯノードの割り当てが完了したので、処理は終了する。
【００３６】
一方、実行ノードの数がＮに達していない場合（ステップＳ２３：Ｎｏルート）、管理部１０２は、未処理のＩＯノードが有るか判断する（ステップＳ２５）。未処理のＩＯノードが有る場合（ステップＳ２５：Ｙｅｓルート）、次のＩＯノードについて処理するため、端子Ｃを介してステップＳ１３の処理に戻る。
【００３７】
未処理のＩＯノードが無い場合（ステップＳ２５：Ｎｏルート）、第１の優先度のファイルコピーを実行できるＩＯノードの数が十分ではない。そこで、管理部１０２は、サーバデータ格納部１０３に格納されているデータに基づき、第１の優先度のファイルコピーの残りの部分の開始オフセット及びデータサイズを特定する（ステップＳ２７）。例えば、第１の優先度のファイルコピーに割り当てたＩＯノードの数に、１台のＩＯノードがコピーするデータのサイズを乗じることで求められた値を、第１のファイルコピーによって転送されるファイルのサイズから差し引くと、残りの部分のデータサイズを求めることができる。また、第１のファイルコピーによって転送されるファイルのサイズ及び残りの部分のデータサイズから、開始オフセットを求めることができる。
【００３８】
管理部１０２は、コピー元ファイル名、コピー先ファイル名、優先度、残りの部分の開始オフセット及びデータサイズ等を含むコピー要求を生成し、第１キュー１０５に格納する（ステップＳ２９）。そして処理を終了する。
【００３９】
以上のような処理を実行すれば、第１の優先度のファイルコピーを優先的に実行できるようになる。また、実行を中断した第２の優先度のファイルコピーを他のＩＯノードにおいて再開できるので、第１の優先度のファイルコピーの完了を待たずに済むようになる。
【００４０】
次に、図１２を用いて、フロントエンドサーバ１が第２キュー１０６に格納されたコピー要求をＩＯノードに送信する処理について説明する。
【００４１】
まず、管理部１０２、所定のイベントが発生したことを検出する（図１２：ステップＳ３１）。所定のイベントとは、第１の優先度のファイルコピーの開始というイベントであり、第１の優先度のファイルコピーを開始したＩＯノードからの通知によって検出される。ＩＯノードからの通知は、例えば、コピー元ファイル名、コピー先ファイル名、及び優先度等を含む。
【００４２】
管理部１０２は、第１の優先度のファイルコピーを開始したことを送信部１０４に通知する。これに応じ、送信部１０４は、第１の優先度のファイルコピーを開始したＩＯノードが中断したファイルコピーについてのコピー要求を第２キュー１０６から取り出す（ステップＳ３３）。なお、第２キュー１０６から取り出されるコピー要求の数が複数である場合もある。
【００４３】
送信部１０４は、取り出されたコピー要求に含まれる、コピーを停止した位置の情報から開始オフセットを算出し、算出された開始オフセットの情報をコピー要求に付加する（ステップＳ３５）。開始オフセットは、コピーを停止した位置の１バイト先の位置であるとする。
【００４４】
送信部１０４は、ステップＳ３３において取り出されたコピー要求を処理するＩＯノードを特定する（ステップＳ３７）。ステップＳ３７においては、ステップＳ１３において特定されたＩＯノード以外のノードが特定される。ここで、ステップＳ１３において特定されたＩＯノード以外のノードの中から、コピー元ファイルとコピー先ファイルとＩＯノードとの位置関係から予想される、ネットワークへの負荷及びＩＯノードの処理負荷に基づき、ＩＯノードを特定してもよい。この場合、ネットワークへの負荷及びＩＯノードの処理負荷についての情報は、予め測定等により取得されているものとする。なお、ステップＳ３９においては、取り出されたコピー要求の数と同じ数のＩＯノードが特定される。
【００４５】
送信部１０４は、ステップＳ３７の処理結果に基づき、サーバデータ格納部１０３に格納されたデータを更新する。そして、送信部１０４は、ステップＳ３７において特定されたＩＯノードに対しコピー要求を送信する（ステップＳ３９）。ステップＳ３９においては、１台のＩＯノードに対し１台のコピー要求が送信される。そして処理を終了する。
【００４６】
以上のような処理を実行すれば、中断されたファイルコピーを、そのファイルコピーを実行していたＩＯノードとは別のＩＯノードが再開することができるので、ファイルコピーを最初からやり直さずに済むようになる。
【００４７】
次に、図１３及び図１４を用いて、ＩＯノードが実行する処理について説明する。
【００４８】
まず、ＩＯノード（ここでは、ＩＯノード３１とする）のコピー部３１１は、フロントエンドサーバ１からコピー要求を受信する（図１３：ステップＳ４１）。これに応じ、コピー部３１１は、コピー要求に対する応答をフロントエンドサーバ１に送信する（ステップＳ４３）。
【００４９】
コピー部３１１は、コピー要求に含まれる優先度に基づき、１回にコピーするデータのサイズを決定する（ステップＳ４５）。例えば、優先度が低いほど１回にコピーするデータのサイズを小さくする。このようにすることで、第２の優先度のファイルコピーを実行中に第１の優先度のファイルコピーについてコピー要求があった場合に、第２の優先度のファイルコピーを停止するタイミングが遅くなるのを抑制できる。
【００５０】
コピー部３１１は、ステップＳ４１において受信したコピー要求に含まれる情報に基づき、１回分のコピーを実行する（ステップＳ４７）。また、コピー部３１１は、コピーの実績情報をノードデータ格納部３１２に格納する。
【００５１】
コピー部３１１は、フロントエンドサーバ１から停止要求を受信したか判断する（ステップＳ４９）。停止要求を受信していた場合（ステップＳ４９：Ｙｅｓルート）、コピー部３１１は、停止処理を実行する（ステップＳ５３）。そして処理を終了する。停止処理については、図１４を用いて説明する。
【００５２】
まず、コピー部３１１は、実行中のファイルコピーを停止する（図１４：ステップＳ６１）。
【００５３】
コピー部３１１は、実行を停止したファイルコピーについて、コピー元ファイル名、コピー先ファイル名、優先度、コピーを停止した位置及び残りのデータサイズを含む進捗データを生成する（ステップＳ６３）。そして、コピー部３１１は、ステップＳ６３において生成された進捗データをフロントエンドサーバ１に送信する（ステップＳ６５）。そして呼び出し元の処理に戻る。
【００５４】
以上のような処理を実行すれば、停止したファイルコピーの実行を他のＩＯノードに引き継げるようになる。
【００５５】
図１３の説明に戻り、ステップＳ４９において、停止要求を受信していないと判断された場合（ステップＳ４９：Ｎｏルート）、コピー部３１１は、コピー要求において指定されたファイルコピーを完了したか判断する（ステップＳ５１）。コピー要求において指定されたファイルコピーを完了していない場合（ステップＳ５１：Ｎｏルート）、ステップＳ４７の処理に戻る。
【００５６】
一方、コピー要求において指定されたファイルコピーを完了した場合（ステップＳ５１：Ｙｅｓルート）、コピー部３１１は、完了したファイルコピーの実績情報をノードデータ格納部３１２から読み出し、読み出された実績情報を含む通知をフロントエンドサーバ１に送信する（ステップＳ５５）。そして処理を終了する。なお、フロントエンドサーバ１の管理部１０２は、受信した通知に含まれる実績情報に基づき、サーバデータ格納部１０３に格納されたデータを更新する。
【００５７】
以上のような処理を実行すれば、相対的に優先度が低いファイルコピーを中断し、相対的に優先度が高いファイルコピーを実行できるようになる。
【００５８】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したフロントエンドサーバ１、ＩＯノード３１、ファイル管理装置５及びファイル管理装置７の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５９】
また、上で説明したデータ保持構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６０】
なお、上ではファイルコピーの例を示したが、ファイルコピー以外のファイル転送（例えば、ファイルの移動）についても、本実施の形態を適用することができる。
【００６１】
なお、フロントエンドサーバ１がユーザ端末９から実行指示を受信する例を示したが、フロントエンドサーバ１を操作するユーザから実行指示の入力を受け付けてもよい。
【００６２】
なお、第２キュー１０６に格納されたコピー要求の開始オフセットをフロントエンドサーバ１が算出する例を示したが、ファイルコピーを停止したＩＯノードが、停止した位置の情報から開始オフセットを算出してもよい。
【００６３】
なお、第１の優先度のファイルコピーについて実行指示を受信した時に処理を実行していないＩＯノードが有る場合には、そのＩＯノードに第１の優先度のファイルコピーを実行させてもよい。
【００６４】
なお、ステップＳ２９において、第１キュー１０５の先頭にコピー要求を格納してもよい。このようにすれば、残りの部分についてもできるだけ早くコピーを開始できるようになる。
【００６５】
なお、上で述べたフロントエンドサーバ１、ＩＯノード３１乃至３４、ファイル管理装置５、ファイル管理装置７及びユーザ端末９は、コンピュータ装置であって、図１５に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６７】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）データ転送を実行する複数のノードと、複数のノードを管理する管理装置とを有する。そして、上で述べた管理装置は、（ｂ１）データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部と、（ｂ２）実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ格納部から特定する特定部と、（ｂ３）特定部により特定された１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、実行すべきデータ転送の情報と実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する送信部とを有する。
【００６８】
このようにすれば、複数のノードがデータ転送を実行する情報処理システムにおいて、優先度に応じてデータ転送を柔軟に行えるようになる。
【００６９】
また、上で述べた管理装置が、転送元のデータ名、転送先のデータ名、第１のノードが転送を停止した位置を示す情報、及び残りのデータのサイズの情報を含む応答を、１又は複数の第１のノードの各々から受信し、第２データ格納部に格納する受信部をさらに有してもよい。このようにすれば、第１のノードが停止したデータ転送を他のノードに実行させることができるようになる。
【００７０】
また、上で述べた特定部は、（ｂ２−１）データ格納部から、１又は複数の第１のノード以外のノードのうち所定の条件を満たす第２のノードを特定し、上で述べた送信部は、（ｂ３−１）第２データ格納部に格納された１又は複数の応答を取り出し、特定部により特定された第２のノードに送信してもよい。このようにすれば、停止したデータ転送を再開できるので、データ転送のやり直しが発生しなくなる。
【００７１】
また、上で述べた特定部は、（ｂ３−２）実行すべきデータ転送の情報に含まれる、実行すべきデータ転送によって転送されるデータのサイズの情報と、実行すべきデータ転送を完了する時刻の情報とに基づき、実行すべきデータ転送に割り当てるノードの数Ｎを算出し、（ｂ３−４）特定された１又は複数の第１のノードの識別子の中から、Ｎ個の第１のノードの識別子を特定してもよい。このようにすれば、実行すべきデータ転送を指定された時刻までに完了できるようになる。
【００７２】
また、上で述べた複数のノードの各々は、（ａ１）所定量のデータを転送する度に、管理装置から停止要求を受信したか否か確認する処理を実行してもよい。このようにすれば、停止要求を受信したことを検出するのが遅れるのを抑制できるので、実行すべきデータ転送を開始するのが遅れるのを抑制できるようになる。
【００７３】
また、上で述べた所定の条件は、ネットワークにおけるノードの位置についての条件及びノードの処理負荷についての条件の少なくともいずれかを含んでもよい。このようにすれば、実行中のデータ転送に影響が及ぶのを抑制できるようになる。
【００７４】
本実施の形態の第２の態様に係る情報処理システムの制御方法は、データ転送を実行する複数のノードと複数のノードを管理する管理装置とを有する情報処理システムにおいて実行される。そして、本情報処理システムの制御方法は、上で述べた管理装置が、（Ｃ）実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部から特定し、（Ｄ）特定された１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、実行すべきデータ転送の情報と実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する処理を含む。
【００７５】
なお、上で述べた処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７７】
（付記１）
データ転送を実行する複数のノードと、
前記複数のノードを管理する管理装置と、
を有し、
前記管理装置は、
データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部と、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、前記データ格納部から特定する特定部と、
前記特定部により特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する送信部と、
を有する情報処理システム。
【００７８】
（付記２）
前記管理装置が、
転送元のデータ名、転送先のデータ名、前記第１のノードが転送を停止した位置を示す情報、及び残りのデータのサイズの情報を含む応答を、前記１又は複数の第１のノードの各々から受信し、第２データ格納部に格納する受信部
をさらに有する付記１記載の情報処理システム。
【００７９】
（付記３）
前記特定部は、
前記データ格納部から、前記１又は複数の第１のノード以外のノードのうち所定の条件を満たす第２のノードを特定し、
前記送信部は、
前記第２データ格納部に格納された１又は複数の前記応答を取り出し、前記特定部により特定された前記第２のノードに送信する
付記２記載の情報処理システム。
【００８０】
（付記４）
前記特定部は、
前記実行すべきデータ転送の情報に含まれる、前記実行すべきデータ転送によって転送されるデータのサイズの情報と、前記実行すべきデータ転送を完了する時刻の情報とに基づき、前記実行すべきデータ転送に割り当てるノードの数Ｎを算出し、
特定された前記１又は複数の第１のノードの識別子の中から、Ｎ個の前記第１のノードの識別子を特定する
付記１記載の情報処理システム。
【００８１】
（付記５）
前記複数のノードの各々は、所定量のデータを転送する度に、前記管理装置から前記停止要求を受信したか否か確認する処理を実行する
付記１記載の情報処理システム。
【００８２】
（付記６）
前記所定の条件は、ネットワークにおけるノードの位置についての条件及びノードの処理負荷についての条件の少なくともいずれかを含む
付記４記載の情報処理システム。
【００８３】
（付記７）
データ転送を実行する複数のノードと、前記複数のノードを管理する管理装置とを有する情報処理システムの制御方法において、
前記管理装置は、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部から特定し、
特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する、
処理を実行することを特徴とする、情報処理システムの制御方法。
【００８４】
（付記８）
データ転送を実行する複数のノードを管理する管理装置の制御プログラムにおいて、
前記管理装置に、
実行すべきデータ転送の情報を含む実行指示を受信した場合、当該実行すべきデータ転送の情報に含まれる優先度より低い優先度のデータ転送を実行する１又は複数の第１のノードを、データ転送の優先度と当該データ転送を実行するノードの識別子とを当該データ転送の識別子に対応付けて格納するデータ格納部から特定し、
特定された前記１又は複数の第１のノードの各々に対し、当該第１のノードが実行するデータ転送を停止することを要求する停止要求を送信するとともに、前記実行すべきデータ転送の情報と前記実行すべきデータ転送のうち当該第１のノードが実行する部分の情報とを含む転送要求を送信する、
処理を実行させることを特徴とする、管理装置の制御プログラム。
【符号の説明】
【００８５】
１  フロントエンドサーバ    ３１，３２，３３，３４  ＩＯノード
５  第１ファイル管理装置    ５１  第１ファイル格納部
７  第２ファイル管理装置    ７１  第２ファイル格納部
６，８  ネットワーク    ９  ユーザ端末
１０１  受信部    １０２  管理部
１０３  サーバデータ格納部    １０４  送信部
１０５  第１キュー    １０６  第２キュー
３１１  コピー部    ３１２  ノードデータ格納部
【図１】
0006341030.tif 000002
【図２】
0006341030.tif 000003
【図３】
0006341030.tif 000004
【図４】
0006341030.tif 000005
【図５】
0006341030.tif 000006
【図６】
0006341030.tif 000007
【図７】
0006341030.tif 000008
【図８】
0006341030.tif 000009
【図９】
0006341030.tif 000010
【図１０】
0006341030.tif 000011
【図１１】
0006341030.tif 000012
【図１２】
0006341030.tif 000013
【図１３】
0006341030.tif 000014
【図１４】
0006341030.tif 000015
【図１５】
0006341030.tif 000016