(57)【要約】【課題】データ転送までの初期化時間を短縮するネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法を提供する。【解決手段】記憶領域管理部は、第１ホストが用いる記憶領域を管理し、記憶領域内の空領域のサイズが所定の条件を満たす場合、第２ホストからの送信を許可し、ネットワーク通信部は、記憶領域管理部により第２ホストからの送信が許可された場合、第２ホストから送信されるパケットを受信し、記憶領域管理部は、空領域内において、ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、転送制御部は、ネットワーク通信部により受信されたパケットのデータを、記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とする。【選択図】図２
2008097273.tif 000002
【特許請求の範囲】
【請求項１】
第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置であって、
前記第１ホストが用いる記憶領域を管理する記憶領域管理部と、
前記第２ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とするネットワークインタフェース装置。
【請求項２】
請求項１に記載のネットワークインタフェース装置において、
前記記憶領域管理部または前記第１ホストは、前記第１ホストが割り当てることができる空領域である第１割り当て用記憶領域の情報を、所定の記憶領域である第１管理領域に格納し、
前記第１ホストは、前記記憶領域管理部が割り当てることができる空領域である第２割り当て用記憶領域の情報を、前記第１管理領域と異なる所定の記憶領域である第２管理領域に格納し、
前記第１ホストは、前記第１管理領域に格納された第１割り当て用記憶領域の中から前記第１ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第２管理領域に格納された第２割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とするネットワークインタフェース装置。
【請求項３】
第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、
前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するネットワークインタフェース制御方法。
【請求項４】
ネットワークを介してデータ転送を行う情報処理装置であって、
前記データ転送の転送先のホストである第１ホストと、
前記第１ホストが用いる記憶領域である記憶領域と、
前記記憶領域を管理する記憶領域管理部と、
ネットワークを介して前記第１ホストと異なるホストである第２ホストに接続されることができ、前記第２ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第２ホストから前記第１ホストへ送信される転送領域のサイズ以上である場合、前記第２ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする情報処理装置。
【請求項５】
ネットワークを介して接続されることができる第１ホストと第２ホストの間のデータ転送を行うデータ転送方法であって、
前記第２ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第１ホストへ送信することを要求する要求ステップと、
前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続されたホスト間のデータ転送を行うネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法に関するものである。
【背景技術】
【０００２】
サーバ間の仮想計算機移動処理では、大量のページ（数１００ＭＢ〜数ＧＢ）が転送される。このデータ転送処理にＲＤＭＡ（Remote Direct Memory Access）を適用することで、低オーバヘッドで高速なデータ転送処理が実現できる。図８は、従来のデータ転送システムの動作の概要を示すブロック図である。このデータ転送システムは、転送元２０１、転送先２０２を備える。転送元２０１は、転送元ページ領域２３２を備える。転送先２０２は、ホスト２２１、ＮＩＣ（Network Interface Card）２２２、転送先ページ領域２５２を備える。このデータ転送システムにおけるデータ転送処理は、以下の手順で実現される。
【０００３】
（Ｓ２０１）転送元２０１は、転送先２０２のＮＩＣ２２２経由で転送先２０２のホスト２２１へ転送開始を指示する。
（Ｓ２０２）転送先２０２のホスト２２１は、仮想計算機を受け入れるページである転送先ページ領域２５２を確保する。
（Ｓ２０３）転送先２０２のホスト２２１は、確保した転送先ページ領域２５２をＲＤＭＡ領域として転送先のＮＩＣ２２２へ登録する。
（Ｓ２０４）転送先２０２のホスト２２１は、十分な空ページが確保できた場合、転送先２０２のＮＩＣ２２２を介して、転送元２０１へ転送開始を許可する。
（Ｓ２０５）転送元２０１は、仮想計算機の記憶領域である転送元ページ領域２３２を、ＲＤＭＡにより転送先２０２のＮＩＣ２２２を介して転送先２０２の転送先ページ領域２５２へ転送する。
【０００４】
なお、本発明の関連ある従来技術として、ＲＤＭＡ転送を受ける際の記憶空間の使用効率を向上させる通信装置管理プログラムがある（例えば、特許文献１参照）。
【特許文献１】特開２００５−１８２４９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来のデータ転送処理の転送先２０２においては、ホスト−ＮＩＣ間のやり取りが頻繁に行われるため、性能が低下する。また、事前に全ページを確保／登録するため、処理Ｓ２０２と処理Ｓ２０３は、確保するページ数に比例するコストが必要となり、転送までの初期化時間が長い。このため、転送元における転送開始までの時間が長い。
【０００６】
負荷分散を目的とした仮想計算機移動の場合では、一般に高負荷である転送元の負荷をできるだけ早く削減する必要がある。このためには、できるだけ早く転送元の仮想計算機のページを相手側に転送してしまう必要があるため、上述の初期化時間が問題となる。
【０００７】
特許文献１によれば、領域識別子単位でのメモリ確保を行うが、対象領域の一部しか通信しない場合であっても対象領域全部のメモリ確保を行う
【０００８】
本発明は上述した問題点を解決するためになされたものであり、データ転送までの初期化時間を短縮するネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するため、本発明は、第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置であって、前記第１ホストが用いる記憶領域を管理する記憶領域管理部と、前記第２ホストからのパケットを受信するネットワーク通信部と、前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部とを備え、前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可し、前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とする。
【００１０】
また、本発明は、第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップとを実行するものである。
【００１１】
また、本発明は、ネットワークを介してデータ転送を行う情報処理装置であって、前記データ転送の転送先のホストである第１ホストと、前記第１ホストが用いる記憶領域である記憶領域と、前記記憶領域を管理する記憶領域管理部と、ネットワークを介して前記第１ホストと異なるホストである第２ホストに接続されることができ、前記第２ホストからのパケットを受信するネットワーク通信部と、前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部とを備え、前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第２ホストから前記第１ホストへ送信される転送領域のサイズ以上である場合、前記第２ホストからの送信を許可し、前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする。
【００１２】
また、本発明は、ネットワークを介して接続されることができる第１ホストと第２ホストの間のデータ転送を行うデータ転送方法であって、前記第２ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第１ホストへ送信することを要求する要求ステップと、前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップとを実行するものである。
【発明の効果】
【００１３】
本発明によれば、データ転送までの初期化時間を短縮することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１５】
実施の形態１．
まず、本実施の形態に係るデータ転送システムの構成について説明する。
【００１６】
図１は、本実施の形態に係るデータ転送システムの動作の概要を示すブロック図である。このデータ転送システムは、転送元１、転送先２を備える。転送元１は、転送元ページ領域３２を備える。転送先２は、ホスト２１、ＮＩＣ２２、転送先ページ領域５２を備える。
【００１７】
ＮＩＣ２２がホスト２１上の空ページを管理することにより、上述した課題を解決する。ＮＩＣ２２は、ホスト２１上の空ページとその物理アドレスを全て把握することができる。これにより、登録処理（Ｓ１０２，Ｓ１０３）を削減する。また、ＮＩＣ２２が空ページを管理することにより、ページ到着毎に空ページの割り当てを行う。これにより、転送開始までの初期化時間を削減する。このデータ転送システムは、以下のフローでデータ転送処理を行う。
【００１８】
（Ｓ１）転送元１は転送先２のＮＩＣ２２へ転送開始を指示する。
（Ｓ２）転送先２のＮＩＣ２２は、空ページが十分にあれば、転送元１に転送開始を許可する。
（Ｓ３）転送先２のＮＩＣ２２は、転送元ページ領域３２からのページ到着毎に空ページである転送先ページ領域５２を割り当て、転送先ページ領域５２へ転送する。
【００１９】
図２は、本実施の形態に係るデータ転送システムの構成の一例を示すブロック図である。このデータ転送システムは、転送元１、転送先２を備える。転送元１は、ホスト１１、ＮＩＣ１２を備える。ホスト１１は、転送要求部３１、転送元ページ領域３２を備える。ＮＩＣ１２は、データ送信部４１、ヘッダ生成部４２、転送要求受け付け部４３、転送制御部４４、完了通知部４５を備える。転送先２は、ホスト２１、ＮＩＣ２２を備える。ホスト２１は、ページマップ部５１、転送先ページ領域５２を備える。ＮＩＣ２２は、データ受信部６１、空ページ管理部６３、転送制御部６４、ＡＣＫ／ＮＡＣＫ転送制御部６５を備える。
【００２０】
転送要求部３１は、転送要求をＮＩＣへ行う部分であり、転送要求のパラメータ（転送ページ数、ページ群のアドレスリスト）をＮＩＣ１２へ渡す。転送完了後、ＮＩＣ１２から通知を受ける。転送元ページ領域３２は、ホスト１１のメモリの領域のうち転送元のページの領域である。
【００２１】
データ送信部４１は、ネットワークへパケットを送出する。ヘッダ生成部４２は、ＲＤＭＡパケットのヘッダを生成する。転送要求受け付け部４３は、ホスト１１から転送要求を受け付け、各部の転送処理を制御する。転送制御部４４は、ホスト１１−ＮＩＣ１２間のデータ転送を制御する。完了通知部４５は、ＡＣＫ受信の場合、完了通知をホストに通知し、ＮＡＣＫ受信の場合、再送を転送要求受け付け部４３に要求する。
【００２２】
ページマップ部５１は、受信したページをアドレス空間にマップし、アドレスを割り当てる。転送先ページ領域５２は、ホスト２１のメモリの領域のうち転送先のページの領域である。
【００２３】
データ受信部６１は、ネットワークからパケットを受信する。空ページ管理部６３は、ホスト２１上の空ページを管理すると共に、転送元１からの空ページ問い合わせへの応答、空ページの確保を行う。転送制御部６４は、データ受信部６１から送られた転送データをホスト２１へ転送する。ＡＣＫ／ＮＡＣＫ転送制御部６５は、全てのＲＤＭＡパケット受信後、ＡＣＫ／ＮＡＣＫパケットを送信する。
【００２４】
次に、このデータ転送システムの動作について説明する。
【００２５】
（Ｓ１１）転送要求部３１は、転送要求受け付け部４３に対して転送起動の指示を行う。この際、パラメータとして、転送ページ数と転送ページ群のアドレスリストを渡す。
（Ｓ１２）転送要求受け付け部４３は、転送先２の空ページ管理部６３に対して、空ページが十分か否かを問い合わせる。空ページが不十分である場合、転送要求受け付け部４３は、転送不可をホスト１１に通知する。
（Ｓ１３）空ページが十分の場合、転送要求受け付け部４３は、転送制御部４４に対して、転送元ページ領域３２上の転送元データを取得するよう指示する。また、転送要求受け付け部４３は、ヘッダ生成部４２に対し、ＲＤＭＡパケットヘッダの生成を指示する。
（Ｓ１４）データ送信部４１は、ヘッダ生成部４２から受け取ったヘッダと転送制御部４４から受け取った転送データとを組み合わせてＲＤＭＡパケットを生成し、転送先２へ転送する。
【００２６】
（Ｓ１５）データ受信部６１は、ＲＤＭＡパケットを受け取ると、ヘッダ部分を空ページ管理部６３へ渡し、データ部分を転送制御部６４へ渡す。
（Ｓ１６）空ページ管理部６３は、空ページを割り当て、そのアドレスを転送制御部６４に通知する。また、空ページ管理部６３は、ページマップ部５１に対して当該ページのマップを依頼する。更に、最後のページを受信した場合、空ページ管理部６３は、ＡＣＫ／ＮＡＣＫ制御部６５に通知する。
（Ｓ１７）転送制御部６４は、データ受信部６１から受け取ったデータを転送先ページ領域５２へ転送する。
（Ｓ１８）ページマップ部５１は、当該ページにアドレスを割り当てマップする。
（Ｓ１９）ＡＣＫ／ＮＡＣＫ転送制御部６５は、全てのページが受信された場合にＡＣＫパケットを、そうでない場合にＮＡＣＫパケットを、転送元１へ転送する。
（Ｓ２０）完了通知部４５は、ＡＣＫパケット受け取った場合、転送要求部３１に完了を通知し、ＮＡＣＫパケットを受け取った場合、転送要求受け付け部４３に再送を要求する。
【００２７】
このデータ転送処理によれば、転送先２のＮＩＣ２２が空ページを管理し、ＲＤＭＡパケット到着の度にページを割り当てることにより、ホスト２１によるページ確保／登録のオーバヘッドを回避することができ、データ転送前の初期化時間を低減することができる。また、このデータ転送処理においては、転送元１における全ての処理をＮＩＣ１２が行い、転送先２におけるページマップ部５１の処理以外の処理をＮＩＣ２２が行う。従って、ホスト１１，２２のＣＰＵ負荷を大幅に削減できる。
【００２８】
従来の技術では、ＲＤＭＡ転送時においては事前に転送先のホスト上にページを確保する必要があった。それに対し、本発明によれば、ＮＩＣが空ページを管理することにより、ホストによるページ確保を不要としている。また、従来の技術では、転送前にページよりも転送するサイズ以上の領域の確保が必要であったが、本発明によれば、パケットの到着の度にページ単位で確保することにより、メモリ利用効率を高めることができる。また、従来の技術では、ページ確保がホスト上のソフトウェアで行われるため、初期化時間を長くする原因となっていたが、本発明によれば、ページ確保がＮＩＣのハードウェアで行うことができ、データ転送全体としても高速化を実現することができる。
【００２９】
一方で、上述した構成を単純に実装すると、ＮＩＣ２２がホスト２１上の空ページを管理するため、通常のホスト２１によるページ確保の場合も、ホスト２１は、ＮＩＣ２２に対して空ページを要求し、取得する必要があり、ページ確保処理性能が低下する。この問題を回避するため、上述したデータ転送システムに、次のようなページ管理システムを適用する。
【００３０】
図３は、本実施の形態に係るページ管理システムの構成の一例を示すブロック図である。このページ管理システムは、上述したホスト２１及びＮＩＣ２２を備え、更にホスト２１のメモリは、ホスト割り当て用ＦＩＦＯ７１、ＮＩＣ割り当て用ＦＩＦＯ７２を備える。ホスト割り当て用ＦＩＦＯ７１には、ホスト２１による割り当てが可能なページのアドレスが格納されている。ホスト２１による割り当て可能なページの数をホスト割り当て用ページ数とする。また、ＮＩＣ割り当て用ＦＩＦＯ７２には、ホスト２１により解放され、ＮＩＣ２２による割り当てが可能なページのアドレスが格納されている。ＮＩＣ２２による割り当てが可能なページの数をＮＩＣ割り当て用ページ数とする。
【００３１】
次に、このページ管理システムの動作について説明する。状況に応じて、以下の処理Ｓ３２，Ｓ３３，Ｓ３４，Ｓ３５を実行する。
【００３２】
（Ｓ３２）ホスト２１がページを要求する場合、ホスト割り当て用ＦＩＦＯ７１にあるページを随時取り出す。
（Ｓ３３）ＮＩＣ２２は、所定の監視間隔で定期的にホスト割り当て用ＦＩＦＯ７１を監視し、ホスト割り当て用ページ数が少なくなった場合、所定のページ数のページをまとめてホスト割り当て用ＦＩＦＯ７１へ入れる。
（Ｓ３４）ホスト２１がページを解放する場合、ＮＩＣ割り当て用ＦＩＦＯ７２にページを随時入れる。
（Ｓ３５）ＮＩＣ２２は、所定の監視間隔で定期的にＮＩＣ割り当て用ＦＩＦＯ７２を監視し、所定のページ数のページをまとめてＮＩＣ割り当て用ＦＩＦＯ７２から回収する。
【００３３】
上述したページ管理システムによれば、ホスト割り当て用ＦＩＦＯ７１及びＮＩＣ割り当て用ＦＩＦＯ７２がホスト２１のメモリ上に配置されることにより、ホスト２１とＮＩＣ２２のやり取りを削減し、ページ確保処理性能の低下を防ぐことができる。
【００３４】
また、上述したホスト割り当て用ページ数及びＮＩＣ割り当て用ページ数を制御するための割り当て用ページ数制御方式として、以下のような方式がある。
【００３５】
（Ａ）ホスト２１が、単位時間あたりのページ消費量から割り当てページ数を決定する。ページ消費量が大きくなると、割り当てページ数は多くなる。
（Ｂ）ＮＩＣ２２が、バス使用率から割り当てページ数を決定する。バス使用率が高くなると、ホスト−ＮＩＣ間のやり取りがバスへの負荷をさらに増大させるので、ＮＩＣ２２は、割り当てページ数を増やし、監視間隔を大きくする。
（Ｃ）ＮＩＣ２２が、通信量から決定する。通信量が多くなるとＲＤＭＡに必要となるメモリが多くなるので、ホスト２１への割り当てページ数を減らす。
（Ｄ）ホスト２１が、相手ノード（ホスト１１）とＣＰＵ負荷情報を交換し、相手ノードのＣＰＵ負荷情報から割り当てページ数を決定する。
【００３６】
上述したページ管理処理によれば、ＮＩＣ２２が空ページの管理を行う場合でも、ホスト２１が利用するページを確保するためのホスト−ＮＩＣ間の通信が増加することなく、ＮＩＣ２２とホスト２１のそれぞれが必要とするページを高速に確保することができる。
【００３７】
実施の形態２．
次に、Ｗｅｂサーバシステムにおける負荷分散のための仮想計算機（ＶＭ：Virtual Machine）移動処理に、本発明のデータ転送システムを適用した例について説明する。
【００３８】
図４は、本実施の形態に係るＷｅｂサーバシステムの構成の一例を示すブロック図である。このＷｅｂサーバシステムを示している。サービスを提供するハードウェアは、複数のノード８１ａ，８１ｂ，８１ｃ，８１ｄであり、高速ＬＡＮ８５（１０ＧｂＥ：10 Gigabit Ethernet（登録商標））を介してネットワーク８６に接続されている。また、ネットワーク８６には、クライアント８７が接続されている。また、ノード８１ａ，８１ｂ，８１ｃ，８１ｄ上では、それぞれＶＭ管理部８２（ＶＭＭ：Virtual Machine Manager）が動作している。各ＶＭ管理部８２上には、複数個のＶＭ８３ａ，８３ｂ，８３ｃ，８３ｄ，８３ｅ，８３ｆが動作し、ＶＭ上のＷｅｂサーバ８４がクライアント８７に対してＷｅｂサービスを提供している。
【００３９】
また、この図は、高負荷であるノード８１ａのＶＭ８３ｂを他のノード８１ｃに転送させる仮想計算機移動処理を行うことにより、負荷分散を実現しようとする例を示している。この仮想計算機移動処理は、高速かつ低負荷で実現できなければならない。そこで、各ノードに、上述したデータ転送システムを適用した仮想計算機管理システムについて説明する。
【００４０】
図５は、本実施の形態に係る仮想計算機管理システムの構成の一例を示すブロック図である。この仮想計算機管理システムは、図４における転送元ノード８１ａ、転送先ノード８１ｃを備える。転送元ノード８１ａと転送先ノード８１ｃの間は、上述したように１０ＧｂＥで接続されている。転送元ノード８１ａは、ホスト１１１、ＮＩＣ１１２を備える。転送先ノード８１ｃは、ホスト１２１、ＮＩＣ１２２を備える。ホスト１１１とＮＩＣ１１２の間、ホスト１２１とＮＩＣ１２２の間は、それぞれ、ＰＣＩ（Peripheral Components Interconnect）−Ｅ（Express）バスで接続されている。
【００４１】
ホスト１１１は、負荷監視デーモン１３１、転送元ページ領域１３２、ＶＭ管理部１３３を備える。ＮＩＣ１１２は、要求受け付け部１４１、ＤＭＡ制御部１４２、制御情報生成部１４３、送信バッファ１４５、受信バッファ１４６、１０ＧｂＥ  ＭＡＣ１４７を備える。ホスト１２１は、ページマップ部１５１、転送先ページ領域１５２、ＶＭ管理部１５３を備える。ＮＩＣ１２２は、空ページ管理部１６１、ＤＭＡ制御部１６２、制御情報生成部１６３、送信バッファ１６５、受信バッファ１６６、１０ＧｂＥ  ＭＡＣ１６７を備える。
【００４２】
なお、負荷監視デーモン１３１、ＶＭ管理部１３３は、実施の形態１における転送要求部３１に対応する。また、転送元ページ領域１３２は、実施の形態１における転送元ページ領域３２に対応する。また、送信バッファ１４５、１０ＧｂＥ  ＭＡＣ１４７は、実施の形態１におけるデータ送信部４１に対応する。また、制御情報生成部１４３は、実施の形態１におけるヘッダ生成部４２に対応する。また、要求受け付け部１４１は、実施の形態１における転送要求受け付け部４３、完了通知部４５に対応する。また、ＤＭＡ制御部１４２は、実施の形態１における転送制御部４４に対応する。また、ページマップ部１５１は、実施の形態１におけるページマップ部５１に対応する。また、転送先ページ領域１５２は、実施の形態１における転送先ページ領域５２に対応する。また、受信バッファ１６６、１０ＧｂＥ  ＭＡＣ１６７は、実施の形態１におけるデータ受信部６１に対応する。また、空ページ管理部１６１は、実施の形態１における空ページ管理部６３に対応する。また、ＤＭＡ制御部１６２は、実施の形態１における転送制御部６４に対応する。また、制御情報生成部１６３は、実施の形態１におけるＡＣＫ／ＮＡＣＫ転送制御部６５に対応する。
【００４３】
転送元ページ領域１３２は、ホスト１１１のメモリの領域のうち転送対象となるページ群の領域である。この例の場合、転送対象は、ＶＭ８３ｂを構成する全てのページである。負荷監視デーモン１３１は、ＶＭの負荷を監視するデーモンであり、高負荷となったＶＭ８３ｂを選択し、他ノード（転送先ノード８１ｃ）への転送を指示する。ＶＭ管理部１３３，１５３は、ＶＭの移動を管理する。転送元ノード８１ａのＶＭ管理部１３３は、仮想計算機移動処理の起動及び、ＶＭ８３ｂの破棄を行い、転送先ノード８１ｃのＶＭ管理部１５３は、転送が完了したＶＭ８３ｂの起動を行う。
【００４４】
要求受け付け部１４１は、転送要求を受け付けるインタフェースである。ホスト１１１に対して、ＰＣＩ−Ｅバスを経由して転送要求を受け付けるインタフェースを提供している。転送要求のパラメータは、転送ページ数と転送ページアドレスリストである。要求受け付け部１４１は、転送ページ数を元に、転送先ノード８１ｃのＮＩＣ１２２に対して転送可能であるか否かを問い合わせ、転送可能である場合、要求受け付け部１４１は、各ページのアドレスに基づいて転送元ページ領域１３２からページ上のデータを取得するように、ＤＭＡ制御部１４２へ依頼する。
【００４５】
ＤＭＡ制御部１４２は、ホスト−ＮＩＣ間のＤＭＡ転送を制御するハードウェアであり、要求受け付け部１４１からの転送要求に基づいてＤＭＡ転送を行う。制御情報生成部１４３は、要求受け付け部１４１からの転送要求に基づいて、転送可能問い合わせパケットを生成する。また、制御情報生成部１４３は、ＲＤＭＡパケットヘッダを生成する。
【００４６】
送信バッファ１４５は、送信パケット用のバッファであり、制御情報生成部１４３から渡された転送可能問い合わせパケットのバッファリングを行う。また、送信バッファ１４５は、制御情報生成部１４３から渡されたＲＤＭＡパケットヘッダとＤＭＡ制御部１４２から渡されたデータを組み合わせＲＤＭＡパケットを生成する。また、送信バッファ１４５は、バッファリングしたパケットを、１０ＧｂＥ  ＭＡＣ１４７へ転送する。受信バッファ１４６は、１０ＧｂＥ  ＭＡＣ１４７から渡された転送可能応答パケットや、ＡＣＫ／ＮＡＣＫパケットの受信を行う。１０ＧｂＥ  ＭＡＣ１４７は、ネットワークとのインタフェース処理を行い、パケットの送受信を行う。
【００４７】
転送先ページ領域１５２は、ホスト１２１のメモリの領域のうち転送先となる空ページ群であり、ＮＩＣ１２２上の空ページ管理部１６１により割り当てられた領域であり、転送後のＶＭ８１ｂを構成するページである。ページマップ部１５１は、転送されたページをアドレス空間にマップする処理を行う。
【００４８】
１０ＧｂＥ  ＭＡＣ１６７は、ネットワークとのインタフェース処理を行い、パケットの送受信を行う。受信バッファ１６６は、転送元ノード８１ａからの転送可能問い合わせパケットや、ＲＤＭＡパケットを受信し、バッファリングする。ＲＤＭＡパケットのうちヘッダの制御情報部分は、空ページ管理部１６１に通知される。また、ＲＤＭＡパケットのうちデータは、ＤＭＡ制御部１６２により転送先ページ領域１５２に転送される。
【００４９】
空ページ管理部１６１は、ホスト１２１上の空ページを管理する。また、転送可能問い合わせパケットに対し、十分な空ページがあるか否かを判別し、転送の可否を転送可能応答パケットとして転送元ノード８１ａに通知する。また、空ページ管理部１６１は、受信したＲＤＭＡパケットに対して転送先ページ領域１５２を割り当て、そのアドレス情報をＤＭＡ制御部１６２に通知し、転送先ページ領域へ転送させる。また、空ページ管理部１６１は、ホスト１２１のページマップ部１５１に、転送先ページ領域１５２へのアドレス空間のマップを依頼する。
【００５０】
ＤＭＡ制御部１６２は、ホスト−ＮＩＣ間のＤＭＡ転送を制御するハードウェアであり、空ページ管理部１６１からの要求に基づいてＤＭＡ転送を行う。制御情報生成部１６３は、空ページ管理部１６１からの要求に基づいて、転送可能応答パケットやＡＣＫ／ＮＡＣＫパケットを生成する。送信バッファ１６５は、制御情報生成部１６３により生成されたパケットのバッファリングを行い、１０ＧｂＥ  ＭＡＣ１６７へ転送する。
【００５１】
次に、この仮想計算機管理システムによる仮想計算機移動処理の動作について説明する。図６は、本実施の形態に係る仮想計算機移動処理の動作の一例を示すフローチャートである。
【００５２】
（Ｓ４１）転送元ノード８１ａは、起動処理を行う。
【００５３】
負荷監視デーモン１３１がＶＭ８３ｂが高負荷になったことを検知し、ＶＭ８３ｂを構成するページ群である転送元ページ領域１３２のアドレスリストおよびページ数をパラメータとし、ＮＩＣ１１２の要求受け付け部１４１へ転送要求を通知する。
【００５４】
（Ｓ４２）転送元ノード８１ａは、転送可否問い合わせ処理（Ｓ５１〜Ｓ６３）を行う
【００５５】
要求受け付け部１４１は、転送先ノード８１ｃに当該ページ数のページ転送が可能か否かを問い合わせるため、制御情報生成部１４３に、転送可能問い合わせパケットの生成を依頼する（Ｓ５１）。制御情報生成部１４３は、転送可能問い合わせパケットを生成し、送信バッファ１４５へ渡す（Ｓ５２）。送信バッファ１４５は、転送可能問い合わせパケットを１０ＧｂＥ  ＭＡＣ１４７へ転送する（Ｓ５３）。
【００５６】
１０ＧｂＥ  ＭＡＣ１４７は、転送可能問い合わせパケットを転送先ノード８１ｃへ転送する（Ｓ５４）。１０ＧｂＥ  ＭＡＣ１６７は、転送可能問い合わせパケットを１０ＧｂＥから受信し、受信バッファ１６６に格納する（Ｓ５５）。受信バッファ１６６は、転送可能問い合わせパケット情報を空ページ管理部１６１へ転送する（Ｓ５６）。空ページ管理部１６１は、管理している空ページ数が十分であるか否かを判別し、可否情報を含む転送可能応答パケットの生成を制御情報生成部１６３に依頼する（Ｓ５７）。制御情報生成部１６３は、転送可能応答パケットを生成し、送信バッファ１６５へ格納する（Ｓ５８）。送信バッファ１６５は、１０ＧｂＥ  ＭＡＣ１６７へ転送可能応答パケットを転送する（Ｓ５９）。１０ＧｂＥ  ＭＡＣ１６７は、転送可能応答パケットを転送元ノード８１ａへ転送する（Ｓ６０）。
【００５７】
１０ＧｂＥ  ＭＡＣ１４７は、転送可能応答パケットを受信し、受信バッファ１４６へ転送する（Ｓ６１）。受信バッファ１４６は、転送可能応答パケット情報を要求受け付け部１４１へ転送する（Ｓ６２）。転送可能応答パケット情報が転送可能を示す場合、要求受け付け部１４１は、ページ転送処理を開始する。転送可能応答パケット情報が転送不可を示す場合、要求受け付け部１４１は、その旨をホスト１１１へ通知する（Ｓ６３）。
【００５８】
（Ｓ４３）転送元ノード８１ａは、ページ転送処理（Ｓ７１〜Ｓ８０）を行う。
【００５９】
要求受け付け部１４１は、ホストから受け取ったページ群のアドレスリストを元に、ＤＭＡ制御部１４２に当該ページのデータをＤＭＡ転送するよう依頼するとともに、ＲＤＭＡパケットヘッダ生成を制御情報生成部１４３に依頼する（Ｓ７１）。ＤＭＡ制御部１４２は、ＤＭＡ転送により当該ページのデータを取得し、送信バッファ１４５へ転送する（Ｓ７２）。制御情報生成部１４３は、ＲＤＭＡパケットヘッダを生成し、送信バッファ１４５へ転送する（Ｓ７３）。送信バッフ１４５は、パケットのデータとヘッダを受け取り、ＲＤＭＡパケットを生成し、１０ＧｂＥ  ＭＡＣ１４７にＲＤＭＡパケットを転送する（Ｓ７４）。１０ＧｂＥ  ＭＡＣ１４７は、転送先ノード８１ｃへ、ＲＤＭＡパケットを送信する（Ｓ７５）。
【００６０】
１０ＧｂＥ  ＭＡＣ１６７は、転送元ノード８１ａからＲＤＭＡパケットを受信し、受信バッファ１６６へ格納する（Ｓ７６）。受信バッファ１６６はＲＤＭＡパケットヘッダに含まれる制御情報を空ページ管理部１６１へ転送する（Ｓ７７）。空ページ管理部１６１は、受け取った制御情報を元に、空ページに転送先ページ領域１５２を割り当て、割り当てた転送先ページ領域１５２のアドレス情報をＤＭＡ制御部１６２へ通知する。また、ページマップ部１５１へ転送先ページ領域１５２のアドレス空間へのマップを依頼する（Ｓ７８）。ＤＭＡ制御部１６２は、空ページ管理部１６１からのアドレス情報を元に、受信バッファ１６６中のパケットのデータをホスト１２１上の転送先ページ領域１５２へ転送する（Ｓ７９）。ページマップ部１５１は、転送先ページ領域１５２を適切なアドレスにマップする（Ｓ８０）。
【００６１】
（Ｓ４４）転送先ノード８１ｃは、ＡＣＫ／ＮＡＣＫ通知処理（Ｓ９１〜Ｓ９８）を行う。
【００６２】
空ページ管理部１６１は、ＲＤＭＡパケットの受信の度に、ＲＤＭＡパケットが正常に受信されたか否か、全てのＲＤＭＡパケットの受信が終了したか否かの判断を行う。ＲＤＭＡパケットが正常に受信され、かつ全てのＲＤＭＡパケットの受信が終了していない場合（Ｓ４４，未了）、処理Ｓ４３へ戻り、次のページ転送処理を行う。ＲＤＭＡパケットが正常に受信されない場合（Ｓ４４，ＮＡＣＫ）、次の処理Ｓ９１〜Ｓ９６，Ｓ９８を実行する。ＲＤＭＡパケットが正常に受信され、かつ全てのＲＤＭＡパケットの受信が終了した場合（Ｓ４４，ＡＣＫ）、次の処理Ｓ９１〜Ｓ９６，Ｓ９７を実行する。
【００６３】
空ページ管理部１６１は、ＡＣＫ／ＮＡＣＫパケットの生成を制御情報生成部１６３に依頼する（Ｓ９１）。制御情報生成部１６３は、空ページ管理部１６１からの依頼により、ＡＣＫ／ＮＡＣＫパケットを生成し、送信バッファ１６５へ転送する（Ｓ９２）。送信バッファ１６５は、ＡＣＫ／ＮＡＣＫパケットを１０ＧｂＥ  ＭＡＣ１６７へ転送する（Ｓ９３）。１０ＧｂＥ  ＭＡＣ１６７は、転送元ノード８１ａへＡＣＫ／ＮＡＣＫパケットを転送する（Ｓ９４）。
【００６４】
１０ＧｂＥ  ＭＡＣ１４７は、転送先ノード８１ｃからＡＣＫ／ＮＡＣＫパケットを受信し、受信バッファ１４６へ転送する（Ｓ９５）。受信バッファ１４６は、ＡＣＫ／ＮＡＣＫパケットを要求受け付け部１４１へ転送する（Ｓ９６）。要求受け付け部１４１は、ＡＣＫ／ＮＡＣＫパケットの制御情報がＡＣＫであれば、ホスト１１１に対して完了通知を行い（Ｓ９７）、ＮＡＣＫであれば、転送に失敗したページについてページ再送処理を行う（Ｓ９８）。ページ再送処理の手順は、ページ転送処理と同様である。
【００６５】
（Ｓ４５）転送元ノード８１ａ及び転送先ノード８１ｃは、完了処理（Ｓ１０１，Ｓ１０２）を行う。
【００６６】
転送先ノード８１ｃにおいて、全てのページの転送が完了すると、空ページ管理部１６１は、転送先ページ領域１５２に転送されたＶＭ８１ｂをＶＭ管理部１５３に起動させる（Ｓ１０１）。一方、転送元ノード８１ａにおいて、全てのページの転送が完了すると、要求受け付け部１４１から完了通知を受けたＶＭ管理部１３３は、転送元ページ領域１３２におけるＶＭ８３ｂを破棄する（Ｓ１０２）。
【００６７】
上述した仮想計算機移動処理において、転送元ノード８１ａではページ転送処理中の全ての処理をＮＩＣ１１２が行っている。また転送先ノード８１ｃでもページ転送処理中のページマップ部１５１の処理以外の全ての処理をＮＩＣ１２２が行っている。このためホスト１１１及びホスト１２１にとって低負荷な転送処理を実現できる。また、空ページをＮＩＣ１２２が管理することにより、従来手法で必要となるホスト１２１によるページ確保／登録が不要となるため、高速な転送処理が実現できる。また、実施の形態１と同様、初期化時間が低減されることにより、転送元ノード８１ａは、早く負荷を低減することができ、高速な負荷分散を行うことができる。
【００６８】
次に、ホスト１２１のページを管理するページ管理システムについて説明する。
【００６９】
実施の形態１でも述べたように、上述した仮想計算機管理システムの構成だけでは、ＮＩＣ１２２が空ページを管理するため、ホスト１２１が通常に使用するページを取得するときのコストが高くなる問題がある。この問題を解決するため、上述した仮想計算機管理システムに、次のようなページ管理システムを適用する。
【００７０】
図７は、本実施の形態に係るページ管理システムの構成の一例を示すブロック図である。このページ管理システムは、上述したホスト１２１及びＮＩＣ１２２（空ページ管理部１６１）を備え、更にホスト１２１は、ページ割り当て管理部１７３、負荷情報収集デーモン１７４を備え、更にホスト１２１のメモリは、ホスト割り当て用ＦＩＦＯ１７１、ＮＩＣ割り当て用ＦＩＦＯ１７２を備える。
【００７１】
また、ホスト割り当て用ＦＩＦＯ１７１には、割り当て可能なページのアドレスが格納されている。ホスト１２１による割り当てが可能なページの数をホスト割り当て用ページ数とする。また、ＮＩＣ割り当て用ＦＩＦＯ１７２には、ホスト１２１により解放され、ＮＩＣ１２２による割り当てが可能なページのアドレスが格納されている。ＮＩＣ１２２による割り当てが可能なページの数をＮＩＣ割り当て用ページ数とする。また、ホスト１２１により割り当て済みのページ数を割り当て済みページ数とする。
【００７２】
本実施の形態においては、実施の形態１に示した割り当て用ページ数制御方式Ｄを用いる。仮想計算機移動処理を行うため、あるノードが他ノードよりもＣＰＵ負荷が低い場合、他ノードからのＶＭを受け入れる可能性が高い。この場合、ホスト１２１が利用可能なページ数を減らし、ＮＩＣ１２２が利用可能なページ数を増やす必要がある。そこで、負荷情報収集デーモン１７４は、他ノードからＣＰＵ負荷情報を収集し、ＣＰＵ負荷情報に基づいて各部分のページ数を制御する。
【００７３】
このページ管理システムは、ホスト１２１側にページ割り当て要求がある場合、ホスト１２１上のページ割り当て管理部１７３がこれに応じる。ページ割り当て管理部１７３は、ホスト割り当て用ＦＩＦＯ１７１からページを取り出し、要求元に渡す。ホスト割り当て用ＦＩＦＯ１７１が空の場合、ページ割り当て管理部１７３は、割り当ての失敗を要求元に通知する。
【００７４】
空ページ管理部１６１は、ページが必要になった時に、ＮＩＣ割り当て用ＦＩＦＯ１７２からまとめて所定のページ数のページの返却を受ける。
【００７５】
また、ホスト割り当て用ＦＩＦＯ１７１におけるホスト割り当て用ページ数とページ割り当て管理部１７３により管理されている割り当て済みページ数の合計（現在ホストが利用できるページ数）をホストページ数とする。また、負荷情報収集デーモン１７４は、ＣＰＵ負荷情報に基づいてホストページ数の目標値を決定して限界ページ数とし、ページ割り当て管理部１７３へ通知する。ページ割り当て管理部１７３は、ホストページ数と限界ページ数を比較する。
【００７６】
定常的な状態において、限界ページ数とホストページ数は等しくなる。この状態において、ホスト１２１によりページが解放された場合、ページ割り当て管理部１７３は、このページをホスト割り当て用ＦＩＦＯ１７１に格納する。
【００７７】
限界ページ数よりホストページ数が高い状態（割り当て超過状態）において、ホスト１２１によりページが解放された場合、ページ割り当て管理部１７３は、このページをＮＩＣ割り当て用ＦＩＦＯ１７２に格納する。また、ホスト割り当て用ＦＩＦＯ１７１にページが残っている場合、このページをＮＩＣ割り当て用ＦＩＦＯ１７２に格納する。このようにして、割り当て超過状態でなくなるまで、ホストページ数を減少させる。
【００７８】
逆に、限界ページ数よりホストページ数が低い状態（割り当て不足状態）において、ページ割り当て管理部１７３は、空ページ管理部１６１に対して、ホストページ数の不足分だけホスト割り当て用ＦＩＦＯ１７１に格納するように指示する。
【００７９】
上述したページ管理システムによれば、ＮＩＣ１２２が空ページの管理を行う場合でも、他ノードのＣＰＵ負荷情報を用いることにより、ＮＩＣ１２２とホスト１２１のそれぞれが利用可能なページ数を負荷分散に適した値に制御することができる。また、ＮＩＣ１２２とホスト１２１のそれぞれが必要とするページを高速に確保することができる。
【００８０】
なお、記憶領域管理部は、実施の形態における空ページ管理部に対応する。
また、ネットワーク通信部は、実施の形態におけるデータ受信部に対応する。また、第１管理領域は、実施の形態におけるホスト割り当て用ＦＩＦＯに対応する。また、第２管理領域は、実施の形態におけるＮＩＣ割り当て用ＦＩＦＯに対応する。
【００８１】
また、要求ステップは、実施の形態における処理Ｓ１１に対応する。また、許可ステップは、実施の形態における処理Ｓ１２に対応する。また、受信ステップは、実施の形態における処理Ｓ１４に対応する。また、割り当てステップは、実施の形態における処理Ｓ１６に対応する。また、転送ステップは、実施の形態における処理Ｓ１７に対応する。
【００８２】
また、本実施の形態に係るネットワークインタフェース装置は、情報処理装置に容易に適用することができ、情報処理装置の性能をより高めることができる。ここで、情報処理装置には、例えばサーバ等が含まれ得る。
【００８３】
（付記１）  第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置であって、
前記第１ホストが用いる記憶領域を管理する記憶領域管理部と、
前記第２ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とするネットワークインタフェース装置。
（付記２）  付記１に記載のネットワークインタフェース装置において、
前記記憶領域管理部または前記第１ホストは、前記第１ホストが割り当てることができる空領域である第１割り当て用記憶領域の情報を、所定の記憶領域である第１管理領域に格納し、
前記第１ホストは、前記記憶領域管理部が割り当てることができる空領域である第２割り当て用記憶領域の情報を、前記第１管理領域と異なる所定の記憶領域である第２管理領域に格納し、
前記第１ホストは、前記第１管理領域に格納された第１割り当て用記憶領域の中から前記第１ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第２管理領域に格納された第２割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とするネットワークインタフェース装置。
（付記３）  付記２に記載のネットワークインタフェース装置において、
前記第１管理領域は、前記記憶領域管理部または前記第１ホストにより書き込まれ、前記第１ホストにより読み出されるＦＩＦＯであり、
前記第２管理領域は、前記第１ホストにより書き込まれ、前記記憶領域管理部により読み出されるＦＩＦＯであることを特徴とするネットワークインタフェース装置。
（付記４）  付記２または付記３に記載のネットワークインタフェース装置において、
前記第１ホストは、前記第１ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第１管理領域に格納される前記第１割り当て用記憶領域のサイズ、前記第２管理領域に格納される前記第２割り当て用記憶領域のサイズのすくなくともいずれかを制御することを特徴とするネットワークインタフェース装置。
（付記５）  付記２乃至付記４のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第１管理領域に格納される前記第１割り当て用記憶領域のサイズを制御することを特徴とするネットワークインタフェース装置。
（付記６）  付記１乃至付記５のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とするネットワークインタフェース装置。
（付記７）  付記１乃至付記６のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、前記第２ホストから前記第１ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第２ホストから受信した場合、前記第２ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第２ホストへ送信することを特徴とするネットワークインタフェース装置。
（付記８）  付記１乃至付記７のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、ＲＤＭＡパケットであることであることを特徴とするネットワークインタフェース装置。
（付記９）  第１ホストに接続されることができ、ネットワークを介して前記第１ホストと異なる第２ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、
前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するネットワークインタフェース制御方法。
（付記１０）  ネットワークを介してデータ転送を行う情報処理装置であって、
前記データ転送の転送先のホストである第１ホストと、
前記第１ホストが用いる記憶領域である記憶領域と、
前記記憶領域を管理する記憶領域管理部と、
ネットワークを介して前記第１ホストと異なるホストである第２ホストに接続されることができ、前記第２ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第２ホストから前記第１ホストへ送信される転送領域のサイズ以上である場合、前記第２ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする情報処理装置。
（付記１１）  付記１０に記載の情報処理装置において、
更に、前記第１ホストが割り当てることができる空領域である第１割り当て用記憶領域の情報を格納する記憶領域である第１管理領域と、
前記記憶領域管理部が割り当てることができる空領域である第２割り当て用記憶領域の情報を格納する記憶領域である第２管理領域と
を備え、
前記記憶領域管理部または前記第１ホストは、前記第１割り当て用記憶領域の情報を前記第１管理領域に格納し、
前記第１ホストは、前記第２割り当て用記憶領域の情報を前記第２管理領域に格納し、
前記第１ホストは、前記第１管理領域に格納された前記第１割り当て用記憶領域の中から前記第１ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第２管理領域に格納された前記第２割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とする情報処理装置。
（付記１２）  付記１１に記載の情報処理装置において、
前記第１管理領域は、前記記憶領域管理部または前記第１ホストにより書き込まれ、前記第１ホストにより読み出されるＦＩＦＯであり、
前記第２管理領域は、前記第１ホストにより書き込まれ、前記記憶領域管理部により読み出されるＦＩＦＯであることを特徴とする情報処理装置。
（付記１３）  付記１１または付記１２に記載の情報処理装置において、
前記第１ホストは、前記第１ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第１管理領域に格納される前記第１割り当て用記憶領域のサイズ、前記第２管理領域に格納される前記第２割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
（付記１４）  付記１１乃至付記１３のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第１管理領域に格納される前記第１割り当て用記憶領域のサイズを制御することを特徴とする情報処理装置。
（付記１５）  付記１０乃至付記１４のいずれかに記載の情報処理装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とする情報処理装置。
（付記１６）  付記１０乃至付記１５のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、前記第２ホストから前記第１ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第２ホストから受信した場合、前記第２ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第２ホストへ送信することを特徴とする情報処理装置。
（付記１７）  付記１０乃至付記１６のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、ＲＤＭＡパケットであることであることを特徴とするネットワークインタフェース装置。
（付記１８）  付記１０乃至付記１７のいずれかに記載の情報処理装置において、
前記第２ホストは、仮想計算機を実行しており、前記第２ホストの負荷が高くなった場合、前記仮想計算機の領域を前記転送元領域とすることを特徴とする情報処理装置。
（付記１９）  付記１０乃至付記１８のいずれかに記載の情報処理装置において、
前記第１ホストは、前記第１ホストにより割り当て済みの領域のサイズと前記第１割り当て用領域のサイズとの合計をホスト領域サイズとして取得し、前記第２ホストの負荷に基づいて前記ホスト領域サイズの目標値を決定し、前記ホスト領域サイズが前記目標値に一致するように、前記第１割り当て用記憶領域のサイズ、前記第２管理領域に格納される前記第２割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
（付記２０）  ネットワークを介して接続されることができる第１ホストと第２ホストの間のデータ転送を行うデータ転送方法であって、
前記第２ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第１ホストへ送信することを要求する要求ステップと、
前記第１ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第２ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第２ホストからの送信が許可された場合、前記第２ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するデータ転送方法。
【図面の簡単な説明】
【００８４】
【図１】実施の形態１に係るデータ転送システムの動作の概要を示すブロック図である。
【図２】実施の形態１に係るデータ転送システムの構成の一例を示すブロック図である。
【図３】実施の形態１に係るページ管理システムの構成の一例を示すブロック図である。
【図４】実施の形態２に係るＷｅｂサーバシステムの構成の一例を示すブロック図である。
【図５】実施の形態２に係る仮想計算機管理システムの構成の一例を示すブロック図である。
【図６】実施の形態２に係る仮想計算機移動処理の動作の一例を示すフローチャートである。
【図７】実施の形態２に係るページ管理システムの構成の一例を示すブロック図である。
【図８】従来のデータ転送システムの動作の概要を示すブロック図である。
【符号の説明】
【００８５】
１  転送元、２  転送先、１１，２１，１１１，１２１  ホスト、１２，２２，１１２，１２２  ＮＩＣ、３２，１３２  転送元ページ領域、５２，１５２  転送先ページ領域、３１  転送要求部、４１  データ送信部、４２  ヘッダ生成部、４３  転送要求受け付け部、４４，６４  転送制御部、４５  完了通知部、５１，１５１  ページマップ部、６１  データ受信部、６３，１６１  空ページ管理部、６５  ＡＣＫ／ＮＡＣＫ転送制御部、１３１  負荷監視デーモン、８２，１３３，１５３  ＶＭ管理部、１４１  要求受け付け部、１４２，１６２  ＤＭＡ制御部、１４３，１６３  制御情報生成部、１４５，１６５  送信バッファ、１４６，１６６  受信バッファ、１４７，１６７  １０ＧｂＥ  ＭＡＣ、７１，１７１  ホスト割り当て用ＦＩＦＯ、７２，１７２  ＮＩＣ割り当て用ＦＩＦＯ、１７３  ページ割り当て管理部、１７４  負荷情報収集デーモン、８１ａ，８１ｂ，８１ｃ，８１ｄ  ノード、８５  高速ＬＡＮ、８６  ネットワーク、８７  クライアント、８３ａ，８３ｂ，８３ｃ，８３ｄ，８３ｅ，８３ｆ  ＶＭ、８４  Ｗｅｂサーバ。
【図１】
2008097273.tif 000003
【図２】
2008097273.tif 000004
【図３】
2008097273.tif 000005
【図４】
2008097273.tif 000006
【図５】
2008097273.tif 000007
【図６】
2008097273.tif 000008
【図７】
2008097273.tif 000009
【図８】
2008097273.tif 000010