JP2008097273A - ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 - Google Patents
ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 Download PDFInfo
- Publication number
- JP2008097273A JP2008097273A JP2006277723A JP2006277723A JP2008097273A JP 2008097273 A JP2008097273 A JP 2008097273A JP 2006277723 A JP2006277723 A JP 2006277723A JP 2006277723 A JP2006277723 A JP 2006277723A JP 2008097273 A JP2008097273 A JP 2008097273A
- Authority
- JP
- Japan
- Prior art keywords
- host
- area
- storage area
- transfer
- page
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
【課題】データ転送までの初期化時間を短縮するネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法を提供する。
【解決手段】記憶領域管理部は、第1ホストが用いる記憶領域を管理し、記憶領域内の空領域のサイズが所定の条件を満たす場合、第2ホストからの送信を許可し、ネットワーク通信部は、記憶領域管理部により第2ホストからの送信が許可された場合、第2ホストから送信されるパケットを受信し、記憶領域管理部は、空領域内において、ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、転送制御部は、ネットワーク通信部により受信されたパケットのデータを、記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とする。
【選択図】図2
【解決手段】記憶領域管理部は、第1ホストが用いる記憶領域を管理し、記憶領域内の空領域のサイズが所定の条件を満たす場合、第2ホストからの送信を許可し、ネットワーク通信部は、記憶領域管理部により第2ホストからの送信が許可された場合、第2ホストから送信されるパケットを受信し、記憶領域管理部は、空領域内において、ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、転送制御部は、ネットワーク通信部により受信されたパケットのデータを、記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とする。
【選択図】図2
Description
本発明は、ネットワークで接続されたホスト間のデータ転送を行うネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法に関するものである。
サーバ間の仮想計算機移動処理では、大量のページ(数100MB〜数GB)が転送される。このデータ転送処理にRDMA(Remote Direct Memory Access)を適用することで、低オーバヘッドで高速なデータ転送処理が実現できる。図8は、従来のデータ転送システムの動作の概要を示すブロック図である。このデータ転送システムは、転送元201、転送先202を備える。転送元201は、転送元ページ領域232を備える。転送先202は、ホスト221、NIC(Network Interface Card)222、転送先ページ領域252を備える。このデータ転送システムにおけるデータ転送処理は、以下の手順で実現される。
(S201)転送元201は、転送先202のNIC222経由で転送先202のホスト221へ転送開始を指示する。
(S202)転送先202のホスト221は、仮想計算機を受け入れるページである転送先ページ領域252を確保する。
(S203)転送先202のホスト221は、確保した転送先ページ領域252をRDMA領域として転送先のNIC222へ登録する。
(S204)転送先202のホスト221は、十分な空ページが確保できた場合、転送先202のNIC222を介して、転送元201へ転送開始を許可する。
(S205)転送元201は、仮想計算機の記憶領域である転送元ページ領域232を、RDMAにより転送先202のNIC222を介して転送先202の転送先ページ領域252へ転送する。
(S202)転送先202のホスト221は、仮想計算機を受け入れるページである転送先ページ領域252を確保する。
(S203)転送先202のホスト221は、確保した転送先ページ領域252をRDMA領域として転送先のNIC222へ登録する。
(S204)転送先202のホスト221は、十分な空ページが確保できた場合、転送先202のNIC222を介して、転送元201へ転送開始を許可する。
(S205)転送元201は、仮想計算機の記憶領域である転送元ページ領域232を、RDMAにより転送先202のNIC222を介して転送先202の転送先ページ領域252へ転送する。
なお、本発明の関連ある従来技術として、RDMA転送を受ける際の記憶空間の使用効率を向上させる通信装置管理プログラムがある(例えば、特許文献1参照)。
特開2005−182491号公報
しかしながら、上述した従来のデータ転送処理の転送先202においては、ホスト−NIC間のやり取りが頻繁に行われるため、性能が低下する。また、事前に全ページを確保/登録するため、処理S202と処理S203は、確保するページ数に比例するコストが必要となり、転送までの初期化時間が長い。このため、転送元における転送開始までの時間が長い。
負荷分散を目的とした仮想計算機移動の場合では、一般に高負荷である転送元の負荷をできるだけ早く削減する必要がある。このためには、できるだけ早く転送元の仮想計算機のページを相手側に転送してしまう必要があるため、上述の初期化時間が問題となる。
特許文献1によれば、領域識別子単位でのメモリ確保を行うが、対象領域の一部しか通信しない場合であっても対象領域全部のメモリ確保を行う
本発明は上述した問題点を解決するためになされたものであり、データ転送までの初期化時間を短縮するネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法を提供することを目的とする。
上述した課題を解決するため、本発明は、第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置であって、前記第1ホストが用いる記憶領域を管理する記憶領域管理部と、前記第2ホストからのパケットを受信するネットワーク通信部と、前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部とを備え、前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可し、前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とする。
また、本発明は、第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップとを実行するものである。
また、本発明は、ネットワークを介してデータ転送を行う情報処理装置であって、前記データ転送の転送先のホストである第1ホストと、前記第1ホストが用いる記憶領域である記憶領域と、前記記憶領域を管理する記憶領域管理部と、ネットワークを介して前記第1ホストと異なるホストである第2ホストに接続されることができ、前記第2ホストからのパケットを受信するネットワーク通信部と、前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部とを備え、前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第2ホストから前記第1ホストへ送信される転送領域のサイズ以上である場合、前記第2ホストからの送信を許可し、前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする。
また、本発明は、ネットワークを介して接続されることができる第1ホストと第2ホストの間のデータ転送を行うデータ転送方法であって、前記第2ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第1ホストへ送信することを要求する要求ステップと、前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップとを実行するものである。
本発明によれば、データ転送までの初期化時間を短縮することができる。
以下、本発明の実施の形態について図面を参照しつつ説明する。
実施の形態1.
まず、本実施の形態に係るデータ転送システムの構成について説明する。
まず、本実施の形態に係るデータ転送システムの構成について説明する。
図1は、本実施の形態に係るデータ転送システムの動作の概要を示すブロック図である。このデータ転送システムは、転送元1、転送先2を備える。転送元1は、転送元ページ領域32を備える。転送先2は、ホスト21、NIC22、転送先ページ領域52を備える。
NIC22がホスト21上の空ページを管理することにより、上述した課題を解決する。NIC22は、ホスト21上の空ページとその物理アドレスを全て把握することができる。これにより、登録処理(S102,S103)を削減する。また、NIC22が空ページを管理することにより、ページ到着毎に空ページの割り当てを行う。これにより、転送開始までの初期化時間を削減する。このデータ転送システムは、以下のフローでデータ転送処理を行う。
(S1)転送元1は転送先2のNIC22へ転送開始を指示する。
(S2)転送先2のNIC22は、空ページが十分にあれば、転送元1に転送開始を許可する。
(S3)転送先2のNIC22は、転送元ページ領域32からのページ到着毎に空ページである転送先ページ領域52を割り当て、転送先ページ領域52へ転送する。
(S2)転送先2のNIC22は、空ページが十分にあれば、転送元1に転送開始を許可する。
(S3)転送先2のNIC22は、転送元ページ領域32からのページ到着毎に空ページである転送先ページ領域52を割り当て、転送先ページ領域52へ転送する。
図2は、本実施の形態に係るデータ転送システムの構成の一例を示すブロック図である。このデータ転送システムは、転送元1、転送先2を備える。転送元1は、ホスト11、NIC12を備える。ホスト11は、転送要求部31、転送元ページ領域32を備える。NIC12は、データ送信部41、ヘッダ生成部42、転送要求受け付け部43、転送制御部44、完了通知部45を備える。転送先2は、ホスト21、NIC22を備える。ホスト21は、ページマップ部51、転送先ページ領域52を備える。NIC22は、データ受信部61、空ページ管理部63、転送制御部64、ACK/NACK転送制御部65を備える。
転送要求部31は、転送要求をNICへ行う部分であり、転送要求のパラメータ(転送ページ数、ページ群のアドレスリスト)をNIC12へ渡す。転送完了後、NIC12から通知を受ける。転送元ページ領域32は、ホスト11のメモリの領域のうち転送元のページの領域である。
データ送信部41は、ネットワークへパケットを送出する。ヘッダ生成部42は、RDMAパケットのヘッダを生成する。転送要求受け付け部43は、ホスト11から転送要求を受け付け、各部の転送処理を制御する。転送制御部44は、ホスト11−NIC12間のデータ転送を制御する。完了通知部45は、ACK受信の場合、完了通知をホストに通知し、NACK受信の場合、再送を転送要求受け付け部43に要求する。
ページマップ部51は、受信したページをアドレス空間にマップし、アドレスを割り当てる。転送先ページ領域52は、ホスト21のメモリの領域のうち転送先のページの領域である。
データ受信部61は、ネットワークからパケットを受信する。空ページ管理部63は、ホスト21上の空ページを管理すると共に、転送元1からの空ページ問い合わせへの応答、空ページの確保を行う。転送制御部64は、データ受信部61から送られた転送データをホスト21へ転送する。ACK/NACK転送制御部65は、全てのRDMAパケット受信後、ACK/NACKパケットを送信する。
次に、このデータ転送システムの動作について説明する。
(S11)転送要求部31は、転送要求受け付け部43に対して転送起動の指示を行う。この際、パラメータとして、転送ページ数と転送ページ群のアドレスリストを渡す。
(S12)転送要求受け付け部43は、転送先2の空ページ管理部63に対して、空ページが十分か否かを問い合わせる。空ページが不十分である場合、転送要求受け付け部43は、転送不可をホスト11に通知する。
(S13)空ページが十分の場合、転送要求受け付け部43は、転送制御部44に対して、転送元ページ領域32上の転送元データを取得するよう指示する。また、転送要求受け付け部43は、ヘッダ生成部42に対し、RDMAパケットヘッダの生成を指示する。
(S14)データ送信部41は、ヘッダ生成部42から受け取ったヘッダと転送制御部44から受け取った転送データとを組み合わせてRDMAパケットを生成し、転送先2へ転送する。
(S12)転送要求受け付け部43は、転送先2の空ページ管理部63に対して、空ページが十分か否かを問い合わせる。空ページが不十分である場合、転送要求受け付け部43は、転送不可をホスト11に通知する。
(S13)空ページが十分の場合、転送要求受け付け部43は、転送制御部44に対して、転送元ページ領域32上の転送元データを取得するよう指示する。また、転送要求受け付け部43は、ヘッダ生成部42に対し、RDMAパケットヘッダの生成を指示する。
(S14)データ送信部41は、ヘッダ生成部42から受け取ったヘッダと転送制御部44から受け取った転送データとを組み合わせてRDMAパケットを生成し、転送先2へ転送する。
(S15)データ受信部61は、RDMAパケットを受け取ると、ヘッダ部分を空ページ管理部63へ渡し、データ部分を転送制御部64へ渡す。
(S16)空ページ管理部63は、空ページを割り当て、そのアドレスを転送制御部64に通知する。また、空ページ管理部63は、ページマップ部51に対して当該ページのマップを依頼する。更に、最後のページを受信した場合、空ページ管理部63は、ACK/NACK制御部65に通知する。
(S17)転送制御部64は、データ受信部61から受け取ったデータを転送先ページ領域52へ転送する。
(S18)ページマップ部51は、当該ページにアドレスを割り当てマップする。
(S19)ACK/NACK転送制御部65は、全てのページが受信された場合にACKパケットを、そうでない場合にNACKパケットを、転送元1へ転送する。
(S20)完了通知部45は、ACKパケット受け取った場合、転送要求部31に完了を通知し、NACKパケットを受け取った場合、転送要求受け付け部43に再送を要求する。
(S16)空ページ管理部63は、空ページを割り当て、そのアドレスを転送制御部64に通知する。また、空ページ管理部63は、ページマップ部51に対して当該ページのマップを依頼する。更に、最後のページを受信した場合、空ページ管理部63は、ACK/NACK制御部65に通知する。
(S17)転送制御部64は、データ受信部61から受け取ったデータを転送先ページ領域52へ転送する。
(S18)ページマップ部51は、当該ページにアドレスを割り当てマップする。
(S19)ACK/NACK転送制御部65は、全てのページが受信された場合にACKパケットを、そうでない場合にNACKパケットを、転送元1へ転送する。
(S20)完了通知部45は、ACKパケット受け取った場合、転送要求部31に完了を通知し、NACKパケットを受け取った場合、転送要求受け付け部43に再送を要求する。
このデータ転送処理によれば、転送先2のNIC22が空ページを管理し、RDMAパケット到着の度にページを割り当てることにより、ホスト21によるページ確保/登録のオーバヘッドを回避することができ、データ転送前の初期化時間を低減することができる。また、このデータ転送処理においては、転送元1における全ての処理をNIC12が行い、転送先2におけるページマップ部51の処理以外の処理をNIC22が行う。従って、ホスト11,22のCPU負荷を大幅に削減できる。
従来の技術では、RDMA転送時においては事前に転送先のホスト上にページを確保する必要があった。それに対し、本発明によれば、NICが空ページを管理することにより、ホストによるページ確保を不要としている。また、従来の技術では、転送前にページよりも転送するサイズ以上の領域の確保が必要であったが、本発明によれば、パケットの到着の度にページ単位で確保することにより、メモリ利用効率を高めることができる。また、従来の技術では、ページ確保がホスト上のソフトウェアで行われるため、初期化時間を長くする原因となっていたが、本発明によれば、ページ確保がNICのハードウェアで行うことができ、データ転送全体としても高速化を実現することができる。
一方で、上述した構成を単純に実装すると、NIC22がホスト21上の空ページを管理するため、通常のホスト21によるページ確保の場合も、ホスト21は、NIC22に対して空ページを要求し、取得する必要があり、ページ確保処理性能が低下する。この問題を回避するため、上述したデータ転送システムに、次のようなページ管理システムを適用する。
図3は、本実施の形態に係るページ管理システムの構成の一例を示すブロック図である。このページ管理システムは、上述したホスト21及びNIC22を備え、更にホスト21のメモリは、ホスト割り当て用FIFO71、NIC割り当て用FIFO72を備える。ホスト割り当て用FIFO71には、ホスト21による割り当てが可能なページのアドレスが格納されている。ホスト21による割り当て可能なページの数をホスト割り当て用ページ数とする。また、NIC割り当て用FIFO72には、ホスト21により解放され、NIC22による割り当てが可能なページのアドレスが格納されている。NIC22による割り当てが可能なページの数をNIC割り当て用ページ数とする。
次に、このページ管理システムの動作について説明する。状況に応じて、以下の処理S32,S33,S34,S35を実行する。
(S32)ホスト21がページを要求する場合、ホスト割り当て用FIFO71にあるページを随時取り出す。
(S33)NIC22は、所定の監視間隔で定期的にホスト割り当て用FIFO71を監視し、ホスト割り当て用ページ数が少なくなった場合、所定のページ数のページをまとめてホスト割り当て用FIFO71へ入れる。
(S34)ホスト21がページを解放する場合、NIC割り当て用FIFO72にページを随時入れる。
(S35)NIC22は、所定の監視間隔で定期的にNIC割り当て用FIFO72を監視し、所定のページ数のページをまとめてNIC割り当て用FIFO72から回収する。
(S33)NIC22は、所定の監視間隔で定期的にホスト割り当て用FIFO71を監視し、ホスト割り当て用ページ数が少なくなった場合、所定のページ数のページをまとめてホスト割り当て用FIFO71へ入れる。
(S34)ホスト21がページを解放する場合、NIC割り当て用FIFO72にページを随時入れる。
(S35)NIC22は、所定の監視間隔で定期的にNIC割り当て用FIFO72を監視し、所定のページ数のページをまとめてNIC割り当て用FIFO72から回収する。
上述したページ管理システムによれば、ホスト割り当て用FIFO71及びNIC割り当て用FIFO72がホスト21のメモリ上に配置されることにより、ホスト21とNIC22のやり取りを削減し、ページ確保処理性能の低下を防ぐことができる。
また、上述したホスト割り当て用ページ数及びNIC割り当て用ページ数を制御するための割り当て用ページ数制御方式として、以下のような方式がある。
(A)ホスト21が、単位時間あたりのページ消費量から割り当てページ数を決定する。ページ消費量が大きくなると、割り当てページ数は多くなる。
(B)NIC22が、バス使用率から割り当てページ数を決定する。バス使用率が高くなると、ホスト−NIC間のやり取りがバスへの負荷をさらに増大させるので、NIC22は、割り当てページ数を増やし、監視間隔を大きくする。
(C)NIC22が、通信量から決定する。通信量が多くなるとRDMAに必要となるメモリが多くなるので、ホスト21への割り当てページ数を減らす。
(D)ホスト21が、相手ノード(ホスト11)とCPU負荷情報を交換し、相手ノードのCPU負荷情報から割り当てページ数を決定する。
(B)NIC22が、バス使用率から割り当てページ数を決定する。バス使用率が高くなると、ホスト−NIC間のやり取りがバスへの負荷をさらに増大させるので、NIC22は、割り当てページ数を増やし、監視間隔を大きくする。
(C)NIC22が、通信量から決定する。通信量が多くなるとRDMAに必要となるメモリが多くなるので、ホスト21への割り当てページ数を減らす。
(D)ホスト21が、相手ノード(ホスト11)とCPU負荷情報を交換し、相手ノードのCPU負荷情報から割り当てページ数を決定する。
上述したページ管理処理によれば、NIC22が空ページの管理を行う場合でも、ホスト21が利用するページを確保するためのホスト−NIC間の通信が増加することなく、NIC22とホスト21のそれぞれが必要とするページを高速に確保することができる。
実施の形態2.
次に、Webサーバシステムにおける負荷分散のための仮想計算機(VM:Virtual Machine)移動処理に、本発明のデータ転送システムを適用した例について説明する。
次に、Webサーバシステムにおける負荷分散のための仮想計算機(VM:Virtual Machine)移動処理に、本発明のデータ転送システムを適用した例について説明する。
図4は、本実施の形態に係るWebサーバシステムの構成の一例を示すブロック図である。このWebサーバシステムを示している。サービスを提供するハードウェアは、複数のノード81a,81b,81c,81dであり、高速LAN85(10GbE:10 Gigabit Ethernet(登録商標))を介してネットワーク86に接続されている。また、ネットワーク86には、クライアント87が接続されている。また、ノード81a,81b,81c,81d上では、それぞれVM管理部82(VMM:Virtual Machine Manager)が動作している。各VM管理部82上には、複数個のVM83a,83b,83c,83d,83e,83fが動作し、VM上のWebサーバ84がクライアント87に対してWebサービスを提供している。
また、この図は、高負荷であるノード81aのVM83bを他のノード81cに転送させる仮想計算機移動処理を行うことにより、負荷分散を実現しようとする例を示している。この仮想計算機移動処理は、高速かつ低負荷で実現できなければならない。そこで、各ノードに、上述したデータ転送システムを適用した仮想計算機管理システムについて説明する。
図5は、本実施の形態に係る仮想計算機管理システムの構成の一例を示すブロック図である。この仮想計算機管理システムは、図4における転送元ノード81a、転送先ノード81cを備える。転送元ノード81aと転送先ノード81cの間は、上述したように10GbEで接続されている。転送元ノード81aは、ホスト111、NIC112を備える。転送先ノード81cは、ホスト121、NIC122を備える。ホスト111とNIC112の間、ホスト121とNIC122の間は、それぞれ、PCI(Peripheral Components Interconnect)−E(Express)バスで接続されている。
ホスト111は、負荷監視デーモン131、転送元ページ領域132、VM管理部133を備える。NIC112は、要求受け付け部141、DMA制御部142、制御情報生成部143、送信バッファ145、受信バッファ146、10GbE MAC147を備える。ホスト121は、ページマップ部151、転送先ページ領域152、VM管理部153を備える。NIC122は、空ページ管理部161、DMA制御部162、制御情報生成部163、送信バッファ165、受信バッファ166、10GbE MAC167を備える。
なお、負荷監視デーモン131、VM管理部133は、実施の形態1における転送要求部31に対応する。また、転送元ページ領域132は、実施の形態1における転送元ページ領域32に対応する。また、送信バッファ145、10GbE MAC147は、実施の形態1におけるデータ送信部41に対応する。また、制御情報生成部143は、実施の形態1におけるヘッダ生成部42に対応する。また、要求受け付け部141は、実施の形態1における転送要求受け付け部43、完了通知部45に対応する。また、DMA制御部142は、実施の形態1における転送制御部44に対応する。また、ページマップ部151は、実施の形態1におけるページマップ部51に対応する。また、転送先ページ領域152は、実施の形態1における転送先ページ領域52に対応する。また、受信バッファ166、10GbE MAC167は、実施の形態1におけるデータ受信部61に対応する。また、空ページ管理部161は、実施の形態1における空ページ管理部63に対応する。また、DMA制御部162は、実施の形態1における転送制御部64に対応する。また、制御情報生成部163は、実施の形態1におけるACK/NACK転送制御部65に対応する。
転送元ページ領域132は、ホスト111のメモリの領域のうち転送対象となるページ群の領域である。この例の場合、転送対象は、VM83bを構成する全てのページである。負荷監視デーモン131は、VMの負荷を監視するデーモンであり、高負荷となったVM83bを選択し、他ノード(転送先ノード81c)への転送を指示する。VM管理部133,153は、VMの移動を管理する。転送元ノード81aのVM管理部133は、仮想計算機移動処理の起動及び、VM83bの破棄を行い、転送先ノード81cのVM管理部153は、転送が完了したVM83bの起動を行う。
要求受け付け部141は、転送要求を受け付けるインタフェースである。ホスト111に対して、PCI−Eバスを経由して転送要求を受け付けるインタフェースを提供している。転送要求のパラメータは、転送ページ数と転送ページアドレスリストである。要求受け付け部141は、転送ページ数を元に、転送先ノード81cのNIC122に対して転送可能であるか否かを問い合わせ、転送可能である場合、要求受け付け部141は、各ページのアドレスに基づいて転送元ページ領域132からページ上のデータを取得するように、DMA制御部142へ依頼する。
DMA制御部142は、ホスト−NIC間のDMA転送を制御するハードウェアであり、要求受け付け部141からの転送要求に基づいてDMA転送を行う。制御情報生成部143は、要求受け付け部141からの転送要求に基づいて、転送可能問い合わせパケットを生成する。また、制御情報生成部143は、RDMAパケットヘッダを生成する。
送信バッファ145は、送信パケット用のバッファであり、制御情報生成部143から渡された転送可能問い合わせパケットのバッファリングを行う。また、送信バッファ145は、制御情報生成部143から渡されたRDMAパケットヘッダとDMA制御部142から渡されたデータを組み合わせRDMAパケットを生成する。また、送信バッファ145は、バッファリングしたパケットを、10GbE MAC147へ転送する。受信バッファ146は、10GbE MAC147から渡された転送可能応答パケットや、ACK/NACKパケットの受信を行う。10GbE MAC147は、ネットワークとのインタフェース処理を行い、パケットの送受信を行う。
転送先ページ領域152は、ホスト121のメモリの領域のうち転送先となる空ページ群であり、NIC122上の空ページ管理部161により割り当てられた領域であり、転送後のVM81bを構成するページである。ページマップ部151は、転送されたページをアドレス空間にマップする処理を行う。
10GbE MAC167は、ネットワークとのインタフェース処理を行い、パケットの送受信を行う。受信バッファ166は、転送元ノード81aからの転送可能問い合わせパケットや、RDMAパケットを受信し、バッファリングする。RDMAパケットのうちヘッダの制御情報部分は、空ページ管理部161に通知される。また、RDMAパケットのうちデータは、DMA制御部162により転送先ページ領域152に転送される。
空ページ管理部161は、ホスト121上の空ページを管理する。また、転送可能問い合わせパケットに対し、十分な空ページがあるか否かを判別し、転送の可否を転送可能応答パケットとして転送元ノード81aに通知する。また、空ページ管理部161は、受信したRDMAパケットに対して転送先ページ領域152を割り当て、そのアドレス情報をDMA制御部162に通知し、転送先ページ領域へ転送させる。また、空ページ管理部161は、ホスト121のページマップ部151に、転送先ページ領域152へのアドレス空間のマップを依頼する。
DMA制御部162は、ホスト−NIC間のDMA転送を制御するハードウェアであり、空ページ管理部161からの要求に基づいてDMA転送を行う。制御情報生成部163は、空ページ管理部161からの要求に基づいて、転送可能応答パケットやACK/NACKパケットを生成する。送信バッファ165は、制御情報生成部163により生成されたパケットのバッファリングを行い、10GbE MAC167へ転送する。
次に、この仮想計算機管理システムによる仮想計算機移動処理の動作について説明する。図6は、本実施の形態に係る仮想計算機移動処理の動作の一例を示すフローチャートである。
(S41)転送元ノード81aは、起動処理を行う。
負荷監視デーモン131がVM83bが高負荷になったことを検知し、VM83bを構成するページ群である転送元ページ領域132のアドレスリストおよびページ数をパラメータとし、NIC112の要求受け付け部141へ転送要求を通知する。
(S42)転送元ノード81aは、転送可否問い合わせ処理(S51〜S63)を行う
要求受け付け部141は、転送先ノード81cに当該ページ数のページ転送が可能か否かを問い合わせるため、制御情報生成部143に、転送可能問い合わせパケットの生成を依頼する(S51)。制御情報生成部143は、転送可能問い合わせパケットを生成し、送信バッファ145へ渡す(S52)。送信バッファ145は、転送可能問い合わせパケットを10GbE MAC147へ転送する(S53)。
10GbE MAC147は、転送可能問い合わせパケットを転送先ノード81cへ転送する(S54)。10GbE MAC167は、転送可能問い合わせパケットを10GbEから受信し、受信バッファ166に格納する(S55)。受信バッファ166は、転送可能問い合わせパケット情報を空ページ管理部161へ転送する(S56)。空ページ管理部161は、管理している空ページ数が十分であるか否かを判別し、可否情報を含む転送可能応答パケットの生成を制御情報生成部163に依頼する(S57)。制御情報生成部163は、転送可能応答パケットを生成し、送信バッファ165へ格納する(S58)。送信バッファ165は、10GbE MAC167へ転送可能応答パケットを転送する(S59)。10GbE MAC167は、転送可能応答パケットを転送元ノード81aへ転送する(S60)。
10GbE MAC147は、転送可能応答パケットを受信し、受信バッファ146へ転送する(S61)。受信バッファ146は、転送可能応答パケット情報を要求受け付け部141へ転送する(S62)。転送可能応答パケット情報が転送可能を示す場合、要求受け付け部141は、ページ転送処理を開始する。転送可能応答パケット情報が転送不可を示す場合、要求受け付け部141は、その旨をホスト111へ通知する(S63)。
(S43)転送元ノード81aは、ページ転送処理(S71〜S80)を行う。
要求受け付け部141は、ホストから受け取ったページ群のアドレスリストを元に、DMA制御部142に当該ページのデータをDMA転送するよう依頼するとともに、RDMAパケットヘッダ生成を制御情報生成部143に依頼する(S71)。DMA制御部142は、DMA転送により当該ページのデータを取得し、送信バッファ145へ転送する(S72)。制御情報生成部143は、RDMAパケットヘッダを生成し、送信バッファ145へ転送する(S73)。送信バッフ145は、パケットのデータとヘッダを受け取り、RDMAパケットを生成し、10GbE MAC147にRDMAパケットを転送する(S74)。10GbE MAC147は、転送先ノード81cへ、RDMAパケットを送信する(S75)。
10GbE MAC167は、転送元ノード81aからRDMAパケットを受信し、受信バッファ166へ格納する(S76)。受信バッファ166はRDMAパケットヘッダに含まれる制御情報を空ページ管理部161へ転送する(S77)。空ページ管理部161は、受け取った制御情報を元に、空ページに転送先ページ領域152を割り当て、割り当てた転送先ページ領域152のアドレス情報をDMA制御部162へ通知する。また、ページマップ部151へ転送先ページ領域152のアドレス空間へのマップを依頼する(S78)。DMA制御部162は、空ページ管理部161からのアドレス情報を元に、受信バッファ166中のパケットのデータをホスト121上の転送先ページ領域152へ転送する(S79)。ページマップ部151は、転送先ページ領域152を適切なアドレスにマップする(S80)。
(S44)転送先ノード81cは、ACK/NACK通知処理(S91〜S98)を行う。
空ページ管理部161は、RDMAパケットの受信の度に、RDMAパケットが正常に受信されたか否か、全てのRDMAパケットの受信が終了したか否かの判断を行う。RDMAパケットが正常に受信され、かつ全てのRDMAパケットの受信が終了していない場合(S44,未了)、処理S43へ戻り、次のページ転送処理を行う。RDMAパケットが正常に受信されない場合(S44,NACK)、次の処理S91〜S96,S98を実行する。RDMAパケットが正常に受信され、かつ全てのRDMAパケットの受信が終了した場合(S44,ACK)、次の処理S91〜S96,S97を実行する。
空ページ管理部161は、ACK/NACKパケットの生成を制御情報生成部163に依頼する(S91)。制御情報生成部163は、空ページ管理部161からの依頼により、ACK/NACKパケットを生成し、送信バッファ165へ転送する(S92)。送信バッファ165は、ACK/NACKパケットを10GbE MAC167へ転送する(S93)。10GbE MAC167は、転送元ノード81aへACK/NACKパケットを転送する(S94)。
10GbE MAC147は、転送先ノード81cからACK/NACKパケットを受信し、受信バッファ146へ転送する(S95)。受信バッファ146は、ACK/NACKパケットを要求受け付け部141へ転送する(S96)。要求受け付け部141は、ACK/NACKパケットの制御情報がACKであれば、ホスト111に対して完了通知を行い(S97)、NACKであれば、転送に失敗したページについてページ再送処理を行う(S98)。ページ再送処理の手順は、ページ転送処理と同様である。
(S45)転送元ノード81a及び転送先ノード81cは、完了処理(S101,S102)を行う。
転送先ノード81cにおいて、全てのページの転送が完了すると、空ページ管理部161は、転送先ページ領域152に転送されたVM81bをVM管理部153に起動させる(S101)。一方、転送元ノード81aにおいて、全てのページの転送が完了すると、要求受け付け部141から完了通知を受けたVM管理部133は、転送元ページ領域132におけるVM83bを破棄する(S102)。
上述した仮想計算機移動処理において、転送元ノード81aではページ転送処理中の全ての処理をNIC112が行っている。また転送先ノード81cでもページ転送処理中のページマップ部151の処理以外の全ての処理をNIC122が行っている。このためホスト111及びホスト121にとって低負荷な転送処理を実現できる。また、空ページをNIC122が管理することにより、従来手法で必要となるホスト121によるページ確保/登録が不要となるため、高速な転送処理が実現できる。また、実施の形態1と同様、初期化時間が低減されることにより、転送元ノード81aは、早く負荷を低減することができ、高速な負荷分散を行うことができる。
次に、ホスト121のページを管理するページ管理システムについて説明する。
実施の形態1でも述べたように、上述した仮想計算機管理システムの構成だけでは、NIC122が空ページを管理するため、ホスト121が通常に使用するページを取得するときのコストが高くなる問題がある。この問題を解決するため、上述した仮想計算機管理システムに、次のようなページ管理システムを適用する。
図7は、本実施の形態に係るページ管理システムの構成の一例を示すブロック図である。このページ管理システムは、上述したホスト121及びNIC122(空ページ管理部161)を備え、更にホスト121は、ページ割り当て管理部173、負荷情報収集デーモン174を備え、更にホスト121のメモリは、ホスト割り当て用FIFO171、NIC割り当て用FIFO172を備える。
また、ホスト割り当て用FIFO171には、割り当て可能なページのアドレスが格納されている。ホスト121による割り当てが可能なページの数をホスト割り当て用ページ数とする。また、NIC割り当て用FIFO172には、ホスト121により解放され、NIC122による割り当てが可能なページのアドレスが格納されている。NIC122による割り当てが可能なページの数をNIC割り当て用ページ数とする。また、ホスト121により割り当て済みのページ数を割り当て済みページ数とする。
本実施の形態においては、実施の形態1に示した割り当て用ページ数制御方式Dを用いる。仮想計算機移動処理を行うため、あるノードが他ノードよりもCPU負荷が低い場合、他ノードからのVMを受け入れる可能性が高い。この場合、ホスト121が利用可能なページ数を減らし、NIC122が利用可能なページ数を増やす必要がある。そこで、負荷情報収集デーモン174は、他ノードからCPU負荷情報を収集し、CPU負荷情報に基づいて各部分のページ数を制御する。
このページ管理システムは、ホスト121側にページ割り当て要求がある場合、ホスト121上のページ割り当て管理部173がこれに応じる。ページ割り当て管理部173は、ホスト割り当て用FIFO171からページを取り出し、要求元に渡す。ホスト割り当て用FIFO171が空の場合、ページ割り当て管理部173は、割り当ての失敗を要求元に通知する。
空ページ管理部161は、ページが必要になった時に、NIC割り当て用FIFO172からまとめて所定のページ数のページの返却を受ける。
また、ホスト割り当て用FIFO171におけるホスト割り当て用ページ数とページ割り当て管理部173により管理されている割り当て済みページ数の合計(現在ホストが利用できるページ数)をホストページ数とする。また、負荷情報収集デーモン174は、CPU負荷情報に基づいてホストページ数の目標値を決定して限界ページ数とし、ページ割り当て管理部173へ通知する。ページ割り当て管理部173は、ホストページ数と限界ページ数を比較する。
定常的な状態において、限界ページ数とホストページ数は等しくなる。この状態において、ホスト121によりページが解放された場合、ページ割り当て管理部173は、このページをホスト割り当て用FIFO171に格納する。
限界ページ数よりホストページ数が高い状態(割り当て超過状態)において、ホスト121によりページが解放された場合、ページ割り当て管理部173は、このページをNIC割り当て用FIFO172に格納する。また、ホスト割り当て用FIFO171にページが残っている場合、このページをNIC割り当て用FIFO172に格納する。このようにして、割り当て超過状態でなくなるまで、ホストページ数を減少させる。
逆に、限界ページ数よりホストページ数が低い状態(割り当て不足状態)において、ページ割り当て管理部173は、空ページ管理部161に対して、ホストページ数の不足分だけホスト割り当て用FIFO171に格納するように指示する。
上述したページ管理システムによれば、NIC122が空ページの管理を行う場合でも、他ノードのCPU負荷情報を用いることにより、NIC122とホスト121のそれぞれが利用可能なページ数を負荷分散に適した値に制御することができる。また、NIC122とホスト121のそれぞれが必要とするページを高速に確保することができる。
なお、記憶領域管理部は、実施の形態における空ページ管理部に対応する。
また、ネットワーク通信部は、実施の形態におけるデータ受信部に対応する。また、第1管理領域は、実施の形態におけるホスト割り当て用FIFOに対応する。また、第2管理領域は、実施の形態におけるNIC割り当て用FIFOに対応する。
また、ネットワーク通信部は、実施の形態におけるデータ受信部に対応する。また、第1管理領域は、実施の形態におけるホスト割り当て用FIFOに対応する。また、第2管理領域は、実施の形態におけるNIC割り当て用FIFOに対応する。
また、要求ステップは、実施の形態における処理S11に対応する。また、許可ステップは、実施の形態における処理S12に対応する。また、受信ステップは、実施の形態における処理S14に対応する。また、割り当てステップは、実施の形態における処理S16に対応する。また、転送ステップは、実施の形態における処理S17に対応する。
また、本実施の形態に係るネットワークインタフェース装置は、情報処理装置に容易に適用することができ、情報処理装置の性能をより高めることができる。ここで、情報処理装置には、例えばサーバ等が含まれ得る。
(付記1) 第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置であって、
前記第1ホストが用いる記憶領域を管理する記憶領域管理部と、
前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とするネットワークインタフェース装置。
(付記2) 付記1に記載のネットワークインタフェース装置において、
前記記憶領域管理部または前記第1ホストは、前記第1ホストが割り当てることができる空領域である第1割り当て用記憶領域の情報を、所定の記憶領域である第1管理領域に格納し、
前記第1ホストは、前記記憶領域管理部が割り当てることができる空領域である第2割り当て用記憶領域の情報を、前記第1管理領域と異なる所定の記憶領域である第2管理領域に格納し、
前記第1ホストは、前記第1管理領域に格納された第1割り当て用記憶領域の中から前記第1ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第2管理領域に格納された第2割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とするネットワークインタフェース装置。
(付記3) 付記2に記載のネットワークインタフェース装置において、
前記第1管理領域は、前記記憶領域管理部または前記第1ホストにより書き込まれ、前記第1ホストにより読み出されるFIFOであり、
前記第2管理領域は、前記第1ホストにより書き込まれ、前記記憶領域管理部により読み出されるFIFOであることを特徴とするネットワークインタフェース装置。
(付記4) 付記2または付記3に記載のネットワークインタフェース装置において、
前記第1ホストは、前記第1ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズのすくなくともいずれかを制御することを特徴とするネットワークインタフェース装置。
(付記5) 付記2乃至付記4のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズを制御することを特徴とするネットワークインタフェース装置。
(付記6) 付記1乃至付記5のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とするネットワークインタフェース装置。
(付記7) 付記1乃至付記6のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、前記第2ホストから前記第1ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第2ホストから受信した場合、前記第2ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第2ホストへ送信することを特徴とするネットワークインタフェース装置。
(付記8) 付記1乃至付記7のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、RDMAパケットであることであることを特徴とするネットワークインタフェース装置。
(付記9) 第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するネットワークインタフェース制御方法。
(付記10) ネットワークを介してデータ転送を行う情報処理装置であって、
前記データ転送の転送先のホストである第1ホストと、
前記第1ホストが用いる記憶領域である記憶領域と、
前記記憶領域を管理する記憶領域管理部と、
ネットワークを介して前記第1ホストと異なるホストである第2ホストに接続されることができ、前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第2ホストから前記第1ホストへ送信される転送領域のサイズ以上である場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする情報処理装置。
(付記11) 付記10に記載の情報処理装置において、
更に、前記第1ホストが割り当てることができる空領域である第1割り当て用記憶領域の情報を格納する記憶領域である第1管理領域と、
前記記憶領域管理部が割り当てることができる空領域である第2割り当て用記憶領域の情報を格納する記憶領域である第2管理領域と
を備え、
前記記憶領域管理部または前記第1ホストは、前記第1割り当て用記憶領域の情報を前記第1管理領域に格納し、
前記第1ホストは、前記第2割り当て用記憶領域の情報を前記第2管理領域に格納し、
前記第1ホストは、前記第1管理領域に格納された前記第1割り当て用記憶領域の中から前記第1ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第2管理領域に格納された前記第2割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とする情報処理装置。
(付記12) 付記11に記載の情報処理装置において、
前記第1管理領域は、前記記憶領域管理部または前記第1ホストにより書き込まれ、前記第1ホストにより読み出されるFIFOであり、
前記第2管理領域は、前記第1ホストにより書き込まれ、前記記憶領域管理部により読み出されるFIFOであることを特徴とする情報処理装置。
(付記13) 付記11または付記12に記載の情報処理装置において、
前記第1ホストは、前記第1ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
(付記14) 付記11乃至付記13のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズを制御することを特徴とする情報処理装置。
(付記15) 付記10乃至付記14のいずれかに記載の情報処理装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とする情報処理装置。
(付記16) 付記10乃至付記15のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、前記第2ホストから前記第1ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第2ホストから受信した場合、前記第2ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第2ホストへ送信することを特徴とする情報処理装置。
(付記17) 付記10乃至付記16のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、RDMAパケットであることであることを特徴とするネットワークインタフェース装置。
(付記18) 付記10乃至付記17のいずれかに記載の情報処理装置において、
前記第2ホストは、仮想計算機を実行しており、前記第2ホストの負荷が高くなった場合、前記仮想計算機の領域を前記転送元領域とすることを特徴とする情報処理装置。
(付記19) 付記10乃至付記18のいずれかに記載の情報処理装置において、
前記第1ホストは、前記第1ホストにより割り当て済みの領域のサイズと前記第1割り当て用領域のサイズとの合計をホスト領域サイズとして取得し、前記第2ホストの負荷に基づいて前記ホスト領域サイズの目標値を決定し、前記ホスト領域サイズが前記目標値に一致するように、前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
(付記20) ネットワークを介して接続されることができる第1ホストと第2ホストの間のデータ転送を行うデータ転送方法であって、
前記第2ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第1ホストへ送信することを要求する要求ステップと、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するデータ転送方法。
前記第1ホストが用いる記憶領域を管理する記憶領域管理部と、
前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とするネットワークインタフェース装置。
(付記2) 付記1に記載のネットワークインタフェース装置において、
前記記憶領域管理部または前記第1ホストは、前記第1ホストが割り当てることができる空領域である第1割り当て用記憶領域の情報を、所定の記憶領域である第1管理領域に格納し、
前記第1ホストは、前記記憶領域管理部が割り当てることができる空領域である第2割り当て用記憶領域の情報を、前記第1管理領域と異なる所定の記憶領域である第2管理領域に格納し、
前記第1ホストは、前記第1管理領域に格納された第1割り当て用記憶領域の中から前記第1ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第2管理領域に格納された第2割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とするネットワークインタフェース装置。
(付記3) 付記2に記載のネットワークインタフェース装置において、
前記第1管理領域は、前記記憶領域管理部または前記第1ホストにより書き込まれ、前記第1ホストにより読み出されるFIFOであり、
前記第2管理領域は、前記第1ホストにより書き込まれ、前記記憶領域管理部により読み出されるFIFOであることを特徴とするネットワークインタフェース装置。
(付記4) 付記2または付記3に記載のネットワークインタフェース装置において、
前記第1ホストは、前記第1ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズのすくなくともいずれかを制御することを特徴とするネットワークインタフェース装置。
(付記5) 付記2乃至付記4のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズを制御することを特徴とするネットワークインタフェース装置。
(付記6) 付記1乃至付記5のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とするネットワークインタフェース装置。
(付記7) 付記1乃至付記6のいずれかに記載のネットワークインタフェース装置において、
前記記憶領域管理部は、前記第2ホストから前記第1ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第2ホストから受信した場合、前記第2ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第2ホストへ送信することを特徴とするネットワークインタフェース装置。
(付記8) 付記1乃至付記7のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、RDMAパケットであることであることを特徴とするネットワークインタフェース装置。
(付記9) 第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するネットワークインタフェース制御方法。
(付記10) ネットワークを介してデータ転送を行う情報処理装置であって、
前記データ転送の転送先のホストである第1ホストと、
前記第1ホストが用いる記憶領域である記憶領域と、
前記記憶領域を管理する記憶領域管理部と、
ネットワークを介して前記第1ホストと異なるホストである第2ホストに接続されることができ、前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第2ホストから前記第1ホストへ送信される転送領域のサイズ以上である場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする情報処理装置。
(付記11) 付記10に記載の情報処理装置において、
更に、前記第1ホストが割り当てることができる空領域である第1割り当て用記憶領域の情報を格納する記憶領域である第1管理領域と、
前記記憶領域管理部が割り当てることができる空領域である第2割り当て用記憶領域の情報を格納する記憶領域である第2管理領域と
を備え、
前記記憶領域管理部または前記第1ホストは、前記第1割り当て用記憶領域の情報を前記第1管理領域に格納し、
前記第1ホストは、前記第2割り当て用記憶領域の情報を前記第2管理領域に格納し、
前記第1ホストは、前記第1管理領域に格納された前記第1割り当て用記憶領域の中から前記第1ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第2管理領域に格納された前記第2割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とする情報処理装置。
(付記12) 付記11に記載の情報処理装置において、
前記第1管理領域は、前記記憶領域管理部または前記第1ホストにより書き込まれ、前記第1ホストにより読み出されるFIFOであり、
前記第2管理領域は、前記第1ホストにより書き込まれ、前記記憶領域管理部により読み出されるFIFOであることを特徴とする情報処理装置。
(付記13) 付記11または付記12に記載の情報処理装置において、
前記第1ホストは、前記第1ホストによる記憶領域の消費量、他のホストの負荷の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
(付記14) 付記11乃至付記13のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、バス使用率、前記ネットワークの通信量の少なくともいずれかに基づいて、前記第1管理領域に格納される前記第1割り当て用記憶領域のサイズを制御することを特徴とする情報処理装置。
(付記15) 付記10乃至付記14のいずれかに記載の情報処理装置において、
前記記憶領域は、ページ単位で管理され、ページ単位で割り当てられることを特徴とする情報処理装置。
(付記16) 付記10乃至付記15のいずれかに記載の情報処理装置において、
前記記憶領域管理部は、前記第2ホストから前記第1ホストへ送信される領域である転送元領域のサイズを含む転送要求を前記第2ホストから受信した場合、前記第2ホストからの送信を許可するか否かの判断を行い、該判断の結果を前記第2ホストへ送信することを特徴とする情報処理装置。
(付記17) 付記10乃至付記16のいずれかに記載のネットワークインタフェース装置において、
前記パケットは、RDMAパケットであることであることを特徴とするネットワークインタフェース装置。
(付記18) 付記10乃至付記17のいずれかに記載の情報処理装置において、
前記第2ホストは、仮想計算機を実行しており、前記第2ホストの負荷が高くなった場合、前記仮想計算機の領域を前記転送元領域とすることを特徴とする情報処理装置。
(付記19) 付記10乃至付記18のいずれかに記載の情報処理装置において、
前記第1ホストは、前記第1ホストにより割り当て済みの領域のサイズと前記第1割り当て用領域のサイズとの合計をホスト領域サイズとして取得し、前記第2ホストの負荷に基づいて前記ホスト領域サイズの目標値を決定し、前記ホスト領域サイズが前記目標値に一致するように、前記第1割り当て用記憶領域のサイズ、前記第2管理領域に格納される前記第2割り当て用記憶領域のサイズの少なくともいずれかを制御することを特徴とする情報処理装置。
(付記20) ネットワークを介して接続されることができる第1ホストと第2ホストの間のデータ転送を行うデータ転送方法であって、
前記第2ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第1ホストへ送信することを要求する要求ステップと、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するデータ転送方法。
1 転送元、2 転送先、11,21,111,121 ホスト、12,22,112,122 NIC、32,132 転送元ページ領域、52,152 転送先ページ領域、31 転送要求部、41 データ送信部、42 ヘッダ生成部、43 転送要求受け付け部、44,64 転送制御部、45 完了通知部、51,151 ページマップ部、61 データ受信部、63,161 空ページ管理部、65 ACK/NACK転送制御部、131 負荷監視デーモン、82,133,153 VM管理部、141 要求受け付け部、142,162 DMA制御部、143,163 制御情報生成部、145,165 送信バッファ、146,166 受信バッファ、147,167 10GbE MAC、71,171 ホスト割り当て用FIFO、72,172 NIC割り当て用FIFO、173 ページ割り当て管理部、174 負荷情報収集デーモン、81a,81b,81c,81d ノード、85 高速LAN、86 ネットワーク、87 クライアント、83a,83b,83c,83d,83e,83f VM、84 Webサーバ。
Claims (5)
- 第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置であって、
前記第1ホストが用いる記憶領域を管理する記憶領域管理部と、
前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットのデータを格納するための領域である転送先領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた転送先領域へ転送することを特徴とするネットワークインタフェース装置。 - 請求項1に記載のネットワークインタフェース装置において、
前記記憶領域管理部または前記第1ホストは、前記第1ホストが割り当てることができる空領域である第1割り当て用記憶領域の情報を、所定の記憶領域である第1管理領域に格納し、
前記第1ホストは、前記記憶領域管理部が割り当てることができる空領域である第2割り当て用記憶領域の情報を、前記第1管理領域と異なる所定の記憶領域である第2管理領域に格納し、
前記第1ホストは、前記第1管理領域に格納された第1割り当て用記憶領域の中から前記第1ホストが利用する記憶領域を割り当て、
前記記憶領域管理部は、前記第2管理領域に格納された第2割り当て用記憶領域の中から前記転送先領域を割り当てることを特徴とするネットワークインタフェース装置。 - 第1ホストに接続されることができ、ネットワークを介して前記第1ホストと異なる第2ホストに接続されることができるネットワークインタフェース装置の制御を行うネットワークインタフェース制御方法であって、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するネットワークインタフェース制御方法。 - ネットワークを介してデータ転送を行う情報処理装置であって、
前記データ転送の転送先のホストである第1ホストと、
前記第1ホストが用いる記憶領域である記憶領域と、
前記記憶領域を管理する記憶領域管理部と、
ネットワークを介して前記第1ホストと異なるホストである第2ホストに接続されることができ、前記第2ホストからのパケットを受信するネットワーク通信部と、
前記ネットワーク通信部により受信されたパケットのデータを前記記憶領域へ転送する転送制御部と
を備え、
前記記憶領域管理部は、前記記憶領域内の空領域のサイズが、前記第2ホストから前記第1ホストへ送信される転送領域のサイズ以上である場合、前記第2ホストからの送信を許可し、
前記ネットワーク通信部は、前記記憶領域管理部により前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信し、
前記記憶領域管理部は、前記空領域内において、前記ネットワーク通信部により受信されたパケットを格納するための領域を割り当て、
前記転送制御部は、前記ネットワーク通信部により受信されたパケットのデータを、前記記憶領域管理部により割り当てられた領域へ転送することを特徴とする情報処理装置。 - ネットワークを介して接続されることができる第1ホストと第2ホストの間のデータ転送を行うデータ転送方法であって、
前記第2ホストが用いる記憶領域内の所定の領域である転送元領域を、前記第1ホストへ送信することを要求する要求ステップと、
前記第1ホストが用いる記憶領域内の空領域のサイズが所定の条件を満たす場合、前記第2ホストからの送信を許可する許可ステップと、
前記許可ステップにより前記第2ホストからの送信が許可された場合、前記第2ホストから送信されるパケットを受信する受信ステップと、
前記空領域内において、前記受信ステップにより受信されたパケットのデータを格納するための領域である転送先領域を割り当てる割り当てステップと、
前記受信ステップにより受信されたパケットのデータを、前記割り当てステップにより割り当てられた転送先領域へ転送する転送ステップと
を実行するデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006277723A JP2008097273A (ja) | 2006-10-11 | 2006-10-11 | ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006277723A JP2008097273A (ja) | 2006-10-11 | 2006-10-11 | ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008097273A true JP2008097273A (ja) | 2008-04-24 |
Family
ID=39380061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006277723A Withdrawn JP2008097273A (ja) | 2006-10-11 | 2006-10-11 | ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008097273A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016535483A (ja) * | 2013-10-18 | 2016-11-10 | ゾモジョ・ピーティーワイ・リミテッド | ネットワークインターフェイス |
EP3229145A1 (en) | 2016-04-07 | 2017-10-11 | Fujitsu Limited | Parallel processing apparatus and communication control method |
-
2006
- 2006-10-11 JP JP2006277723A patent/JP2008097273A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016535483A (ja) * | 2013-10-18 | 2016-11-10 | ゾモジョ・ピーティーワイ・リミテッド | ネットワークインターフェイス |
US10284672B2 (en) | 2013-10-18 | 2019-05-07 | Zomojo Pty Ltd | Network interface |
EP3229145A1 (en) | 2016-04-07 | 2017-10-11 | Fujitsu Limited | Parallel processing apparatus and communication control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3748510A1 (en) | Network interface for data transport in heterogeneous computing environments | |
US9137179B2 (en) | Memory-mapped buffers for network interface controllers | |
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和系统 | |
US10120586B1 (en) | Memory transaction with reduced latency | |
US8392565B2 (en) | Network memory pools for packet destinations and virtual machines | |
JP3382953B2 (ja) | 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置 | |
EP0889623B1 (en) | System and method for efficient remote disk I/O | |
US20070011358A1 (en) | Mechanisms to implement memory management to enable protocol-aware asynchronous, zero-copy transmits | |
US20020199000A1 (en) | Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network | |
US20140082244A1 (en) | Enhanced I/O Performance in a Multi-Processor System Via Interrupt Affinity Schemes | |
EP2240852B1 (en) | Scalable sockets | |
US20070214307A1 (en) | Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system | |
US20050144402A1 (en) | Method, system, and program for managing virtual memory | |
US20100020818A1 (en) | Sharing buffer space in link aggregation configurations | |
TW201543218A (zh) | 具有多節點連接的多核網路處理器互連之晶片元件與方法 | |
JP2000172457A5 (ja) | 通信制御方法、機器、ホスト装置、周辺装置及び制御方法 | |
CN107562669B (zh) | 一种NVMe协议命令处理方法、装置及系统 | |
WO2018076882A1 (zh) | 存储设备的操作方法及物理服务器 | |
US20030012225A1 (en) | Network addressing method and system for localizing access to network resources in a computer network | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN113360077B (zh) | 数据存储方法、计算节点及存储系统 | |
US7089378B2 (en) | Shared receive queues | |
JP2008097273A (ja) | ネットワークインタフェース装置、ネットワークインタフェース制御方法、情報処理装置、データ転送方法 | |
US11675510B2 (en) | Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks | |
US20060153185A1 (en) | Method and apparatus for dynamically changing ring size in network processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100105 |