(57)【要約】【課題】  従来の技術では、ソフトウェアのみで生成された仮想LANアダプタは、単一の物理サーバ上に配置された仮想サーバ間のデータ転送は可能だが、異なる物理サーバ上に配置された仮想サーバ間のデータ転送には使用できない。  また、LPAR移動機能において、異なる物理サーバ上で仮想計算機を移動させた場合、移動前には仮想LANアダプタを使用して通信可能であった他仮想サーバとの通信は使用不可となる。【解決手段】  複数の物理サーバ上で動作するそれぞれの仮想化機構に対し、相互に通信を許可する仮想化機構、および仮想サーバのグループを定義し、仮想化機構上に配置された仮想サーバ間の仮想LANアダプタを使用した通信において、通信の宛先仮想サーバが同一仮想化機構上に配置された仮想サーバでない場合、通信対象のデータを仮想化機構間の通信を使用して、宛先の仮想サーバが配置された仮想化機構に送信し、仮想化機構を経由して宛先仮想サーバにデータを転送する。【選択図】  図１
2011141635.tif 000002
【特許請求の範囲】
【請求項１】
複数の実計算機を備える計算機システムにおいて、
前記複数の実計算機はネットワークを介して接続されており、演算部と、記憶部と、前記実計算機上で１つ以上の仮想計算機を実行する仮想化機構とを有し、
前記仮想化機構は、ある仮想計算機から、異なる前記実計算機上の他の仮想計算機へデータを転送する際に、前記他の仮想計算機が実行されている実計算機のアドレスを特定する宛先仮想化機構判定部と、異なる前記実計算機上の仮想計算機からのデータの転送であることを示すフラグを含む付加情報を前記データに付加する送信データ生成部と、異なる前記仮想化機構が通信するための通信制御部とを有し、
前記記憶部は、前記仮想計算機がデータを送信する際に使用する送信バッファを有し、
前記ある仮想計算機は、前記データの送信先仮想計算機を指定するアドレスを含む送信データを前記送信バッファに格納して送信要求を発行し、
前記宛先仮想化機構判定部は、前記送信データの含むアドレスから、各仮想計算機に割り当てられているアドレスを管理するアドレス情報を有し、前記アドレス情報を参照して、前記送信要求の発行された送信データの含むアドレスが指定する仮想計算機が実行されている送信先の実計算機のアドレスを特定し、前記特定した送信先の実計算機のアドレスと、前記送信データとを送信データ生成部に転送し、
前記送信データ生成部は、前記送信データに前記付加情報を付加して新たな送信データを生成し、前記新たな送信データと、前記送信先の実計算機のアドレスとを前記通信制御部へ転送し、
前記通信制御部は、前記送信先の実計算機のアドレスへ前記新たな送信データを転送する
ことを特徴としたデータ通信方法。
【請求項２】
前記仮想化機構は、前記仮想計算機と前記仮想化機構とを接続する仮想アダプタを制御する仮想アダプタ制御部と、前記仮想アダプタで接続する前記仮想計算機を切り替える仮想スイッチを制御する仮想スイッチ制御部と、受信したデータが含むアドレスから、前記受信したデータの転送先である前記仮想スイッチ制御部を特定する受信データ解析部を有し、
前記記憶部は、データを受信する際に使用する受信バッファを有し、
前記送信先の実計算機上の仮想化機構が有する通信制御部は、前記新たな送信データを受信した際、前記受信したデータを前記受信データ解析部へ転送し、
前記受信データ解析部は、前記受信したデータを転送先すべき前記仮想スイッチ制御部を特定し、前記付加情報を削除し、前記特定された仮想スイッチ制御部に前記付加情報を削除した受信したデータを転送し、
前記仮想スイッチ制御部は、前記受信したデータが含む前記送信先の仮想計算機のアドレスを参照して転送すべき仮想アダプタ制御部を特定し、前記特定した仮想アダプタ制御部へ前記付加情報を削除した受信したデータを転送し、
前記特定された仮想アダプタ制御部は、前記受信バッファに前記付加情報を削除した受信したデータを格納し、格納したことを前記送信先の仮想計算機に通知し、
前記送信先の仮想計算機は、前記格納したことの通知の後、前記受信バッファから前記付加情報を削除した受信したデータを読み出す
ことを特徴とした請求項１記載のデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
仮想サーバのデータを通信することに関する。
【背景技術】
【０００２】
ソフトウェアで生成された仮想LANアダプタを使用して、同一仮想化機構上に設置された仮想サーバ間のLAN通信を行う、自仮想化機構以外に配置された仮想サーバと通信を行うには、当該仮想LANアダプタ専用に対応付けられた物理LANアダプタを使用する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許公開２００９−８０７０４号公報
【非特許文献】
【０００４】
【非特許文献１】Blade Symphony BS2000 ユーザーズガイド  699ページ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術では、ソフトウェアのみで生成された仮想LANアダプタは、同一物理サーバ上の仮想サーバ間通信にのみ使用可能である。
【０００６】
この仮想LANアダプタを使用した通信は、仮想化機構による、以下のエミュレーションにより実現される。
【０００７】
（1） 送信元となる仮想サーバは、送信データを自サーバのメモリ上にある送信バッファに格納し、送信要求を出す。
【０００８】
（2） 送信要求を検知した仮想化機構は、前記送信元仮想サーバの送信バッファ内データを読み出し、そのデータ内に記述されている宛先から、受信対象の仮想サーバを特定し、送信データを受信対象仮想サーバのメモリ上にある受信バッファに格納し、前記受信対象仮想サーバに受信を通知する。
【０００９】
（3） 受信の通知を受けた受信対象の仮想サーバは、自サーバのメモリ上にある受信バッファの内容を読み出す。
【００１０】
この様に、実際のデータ転送は、仮想化機構が管理するメモリ上において、仮想化機構が送信元仮想サーバのメモリから受信先仮想サーバのメモリにデータを移動させることで実現している。
【００１１】
従って、この方法は、単一の物理サーバ上に配置された仮想サーバ間のデータ転送は可能だが、異なる物理サーバ上に配置された仮想サーバ間のデータ転送には使用できない。また、仮想計算機（以下LPARとする）移動機能において、ある物理サーバ上の仮想サーバを、異なる物理サーバ上に移動させた場合、移動前には仮想LANアダプタを使用して通信可能であった他仮想サーバとの通信が、移動後には使用不可となる為、LPAR移動機能と仮想LANアダプタを使用した仮想サーバ間通信は、共存できないという使用制限が生じている。
【００１２】
近年、一台の物理サーバに使用されるプロセッサ数の増加、また、各プロセッサの性能向上に伴い、一台の物理サーバ上に配置される仮想サーバ数が増加し、入出力デバイスの不足はサーバ仮想化の課題のひとつである。従って、完全にソフトウェアのみで生成される仮想LANアダプタは、対応する物理デバイスを実装する必要がない為、上記制限を除くことができサーバ仮想化にとって魅力的である。
【課題を解決するための手段】
【００１３】
複数の実計算機を備える計算機システムにおいて、仮想化機構は、複数の実計算機のうち、異なる実計算機上の仮想化機構が通信するための通信制御部を有し、複数の実計算機のうち、第一の実計算機上で実行される第一の仮想計算機が、第二の実計算機上で実行される第二の仮想計算機へデータを送信する際、第一の仮想計算機は、第二の仮想計算機のアドレスを含む前記送信するデータを前記第一の実計算機の有する記憶部のうち、第一の仮想計算機の使用する送信バッファに格納し、仮想アダプタを制御する仮想アダプタ制御部に格納したことを通知し、仮想アダプタ制御部は、送信するデータを送信バッファから読み出し、仮想スイッチを制御する仮想スイッチ制御部に転送し、仮想スイッチ制御部は、送信データに含まれる第二の仮想計算機のアドレスから、第一の仮想計算機とは別の実計算機へ送信するデータであることを判定し、第二の仮想計算機が実行されている実計算機を判別する宛先実計算機判定部へ転送し、宛先実計算機判定部は、各実計算機の有するアドレスを管理するアドレステーブルを有し、アドレステーブルを参照して、第二の実計算機を特定し、特定した第二の実計算機のアドレスと、送信するデータとを送信データ生成部に転送し、送信データ生成部は、送信するデータに、異なる実計算機間のデータ転送であることを示す情報を付加し、情報を付加された送信するデータを、通信制御部へ転送し、通信制御部は、第二の実計算機へ送信するデータを転送することを特徴とする。
【００１４】
本発明は、ソフトウェアのみで生成された仮想LANアダプタにおいて、単一の物理サーバ上に配置された仮想サーバ間のデータ転送のみに使用可能である制限を解除するものであり、仮想LANアダプタを使用し、異なる複数の物理サーバ上に配置された仮想サーバ間の通信を可能とする。
【発明の効果】
【００１５】
本発明により、複数の物理サーバ上で動作するそれぞれの仮想化機構が管理する仮想サーバの仮想LANアダプタを使用したデータ転送が可能となる。
【００１６】
これにより、サーバ仮想化の課題のひとつである入出力デバイス不足を解消し、異なる物理サーバ上の仮想サーバ移動時に、移動元、移動先仮想サーバの構成を容易に一致させることができ、仮想サーバ移動に関する制限が緩和される。
【図面の簡単な説明】
【００１７】
【図１】ゲストＯＳのデータの通信の基本的な機能を説明する図
【図２】データ転送に関する仮想LANスイッチのエミュレーション動作を説明する図
【図３】仮想LANスイッチのイメージ図
【図４】ゲストＯＳ間の通信における、仮想LANスイッチ内の経路選択用テーブルの例
【図５（ａ）】ゲストＯＳのデータの通信のパケットを説明する図
【図５（ｂ）】送信パケット生成部が付加する情報を説明する図
【図６（ａ）】ゲストＯＳ間転送の送信処理フロー
【図６（ｂ）】ゲストＯＳ間転送の受信処理フロー
【図７】本発明を使用して構築したネットワーク構成のイメージ図
【図８】ゲストＯＳを移動させた後のネットワーク構成のイメージ図
【図９】ゲストＯＳの移動後のホストグループテーブル変更内容の例
【発明を実施するための形態】
【００１８】
以下、本発明の実施例を図面に基づいて説明する。本図面では、仮想化機構をホスト、仮想化機構上に設置される仮想サーバをゲストＯＳと表記する。
【実施例１】
【００１９】
図1は本発明におけるゲストＯＳのデータの通信の基本的な機能を説明するものである。
【００２０】
本発明の実施例の説明にあたり、まず従来技術である、同一仮想化機構上に設置された仮想サーバ間のLAN通信に関して説明する。
【００２１】
図1において、ホスト０（000）上には、ゲストＯＳ１（001）、ゲストＯＳ２（002）、ゲストＯＳ３（003）が設置され、ホスト０（000）は、各ゲストＯＳ（001,002,003）を管理している、ゲストＯＳ１（001）、ゲストＯＳ２（002）、ゲストＯＳ３（003）には、ホスト０（000）がソフトウェア的に生成した仮想LANアダプタ（011,012,013）が割り当てられ、ホスト０（000）がソフトウェア的に生成した仮想LANスイッチ（020a）に接続されている。仮想LANスイッチ（020a）は、一般に使用されるLANスイッチの機能をホスト０（000）がエミュレーションしたものであり、仮想LANスイッチ（020a）内の、仮想LANアダプタ制御部（021）と仮想LANスイッチ制御部（022）により、ホスト０（000）が管理するゲストＯＳ（001,002,003）間のネットワーク転送を実現している。
【００２２】
具体的な例を上げて説明する。ゲストＯＳ１（001）からゲストＯＳ３（003）へ、それぞれ仮想LANアダプタ（011,013）を使用して通信を行う場合、ゲストＯＳ１（001）が、自サーバに割当てられたメモリ内の送信バッファに送信データを格納し、送信要求を発行する、送信要求を受けた仮想LANアダプタ制御部（021）は、送信データをゲストＯＳ１（001）のメモリ内にある送信バッファから読み出し、読み出したデータを仮想LANスイッチ制御部（022）に転送する。
【００２３】
仮想LANスイッチ制御部（022）は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル（023）から、宛先がゲストＯＳ３（003）であることを判断し、仮想LANアダプタ制御部（021）にデータをゲストＯＳ３（003）に転送することを指示する。
【００２４】
仮想LANアダプタ制御部（021）は、ゲストＯＳ３（003）の割当てられたメモリ内の受信バッファにデータを格納し、ゲストＯＳ３（003）にデータの受信を通知する。
【００２５】
このデータ転送に関するホスト０（000）の仮想LANスイッチのエミュレーション動作について、さらに詳しく図2を用いて説明する。
【００２６】
ゲストＯＳ１がゲストＯＳ３へ、データを送信する場合、ゲストＯＳ１が、自ＯＳに割当てられたメモリ（501）内の送信バッファ（501t）に送信データを格納し、送信要求を発行する。送信要求を検知した仮想LANアダプタ制御部（021）は、送信データをゲストＯＳ１の送信バッファ（501t）から読み出し、読み出したデータを仮想LANスイッチ制御部（022）に転送する。
【００２７】
仮想LANスイッチ制御部（022）は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル（023）から、宛先がゲストＯＳ３であることを判断し、仮想LANアダプタ制御部（021）に対し、データをゲストＯＳ３に転送することを指示する。仮想LANアダプタ制御部（021）は、ゲストＯＳ３に割当てられたメモリ（503）内の受信バッファ（503r）にデータを格納し、ゲストＯＳ３にデータの受信を通知する。
【００２８】
以上は、同一ホスト上のゲストＯＳのデータの通信であり、ホスト内に仮想的に生成されたLANスイッチのエミュレーション動作を説明したもので、既知の技術である。
【００２９】
この方法では、ひとつのホストが管理する物理メモリ上で、転送データを移動する方法である為、異なるホスト上のゲストＯＳ間では通信ができない。
【００３０】
本発明は、上記同一ホスト上のゲストＯＳ間の通信に加え、仮想LANアダプタを使用して異なるホスト上のゲストＯＳ間の通信を可能とするものである。
【００３１】
まず図1において、ホスト０（000）上のゲストＯＳ１（001）からホスト１（100）上のゲストＯＳ４（101）へのデータ転送を例に、ホスト内の処理について説明する。
【００３２】
ゲストＯＳ１（001）が、自ＯＳに割当てられたメモリ内の送信バッファに送信データを格納し、送信要求を発行する、送信要求を検知した仮想LANアダプタ制御部（021）は、ゲストＯＳ１（001）のメモリ内の送信バッファからデータを読み出し、読み出したデータを仮想LANスイッチ制御部（022）に転送する。
【００３３】
仮想LANスイッチ制御部（022）は、渡されたデータ内の宛先アドレスとホスト内MACアドレステーブル（023）から、他ホスト上のゲストＯＳを宛先とする通信であることを判断し、宛先ホスト判定部（041）に、送信データを転送する。
【００３４】
宛先ホスト判定部（041）は、ホスト間MACアドレステーブル（032）とホストグループテーブル（033）を参照し、そのデータを転送すべきホストと、セグメントを特定し、送信パケット生成部（042）に、宛先ホストのIPアドレス、セグメント識別情報、および送信データを転送する。
【００３５】
送信パケット生成部（042）は、送信データにパケット種を示すフラグと、セグメント識別情報を付加し送信データを作成する。このパケット種を示すフラグは、ゲストＯＳ間の通信データであることを示すフラグである。
【００３６】
送信パケット生成部（042）は作成したデータと、宛先ホストのIPアドレスをホスト間通信制御部（043）に渡し、宛先ホストへのデータ送信を指示する。
【００３７】
ホスト間通信制御部（043）は、外部接続物理LANアダプタ（051）を使用し、データをホスト１（100）に送信する。
【００３８】
このデータ通信に使用されるインタフェースは、ホスト間通信用に専用に設置しても良いし、他ホスト間で通信が可能なインタフェースであれば既設のものでも使用可能である。たとえば、複数ホストの管理を目的として既設されている通信経路を使用しても実現できる。
【００３９】
ゲストＯＳ４（101）のホスト間通信制御部（143）は、外部接続物理LANアダプタ（151）経由でデータを受信し、受信データを受信データ解析部（144）に転送する。
【００４０】
受信データ解析部（144）は、受信データに送信パケット生成部（042）で付加された、パケット種を示すフラグより、異なるホスト上ゲストＯＳのデータの通信のデータであることを判断し、同じく送信パケット生成部（042）にて付加されたセグメント識別情報から転送すべき仮想LANスイッチ（120a）を特定し、送信元ホストの送信パケット生成部（042）で付加された情報を削除して、特定した仮想LANスイッチ（120a）の仮想LANスイッチ制御部（122）に受信データを転送する。
【００４１】
受信データを転送された仮想LANスイッチ制御部（122）は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル（123）から、宛先がゲストＯＳ４（101）であることを判断し、仮想LANアダプタ制御部（121）に対し、受信データをゲストＯＳ４（101）に転送することを指示する。
【００４２】
仮想LANアダプタ制御部（121）は、ゲストＯＳ４（101）に割当てられたメモリ内の受信バッファにデータを格納し、ゲストＯＳ４（101）にデータの受信を通知する。
【００４３】
次に、図３、図４を用いて、ゲストＯＳ間の通信を行う際の、宛先ゲストＯＳの特定方法、宛先ゲストＯＳへの経路選択方法について説明する。
【００４４】
図３において、仮想LANスイッチ（020a）とホスト間接続LANスイッチ（300）は、図１における仮想LANスイッチと、ホスト間転送の機能を提供する各部位を、一般のLANスイッチのイメージに置き換えて表現したものである。
【００４５】
本発明は図３において、従来の機能である同一ホスト内のゲストＯＳのデータの通信を実現する仮想LANスイッチと、前記ホスト間接続LANスイッチを接続する方法、およびホスト間接続LANスイッチによるゲストＯＳ間のLAN通信方法に関するものであり、言い換えれば、前記ホスト間接続LANスイッチ（300）を仮想化する方法に関するものと言える。
【００４６】
ゲストＯＳ間のLAN通信における経路選択には、スイッチ内に保持しているMACアドレステーブルを使用する。図３において、仮想LANスイッチ0a（020a）が通信経路選択に使用しているのが、ホスト内MACアドレステーブル（023）であり、ホスト間接続仮想LANスイッチ（300）が信経路選択に使用しているのが、ホスト間MACアドレステーブル（032）である。また、ホスト間接続仮想LANスイッチ（300）は、予め定義された相互に通信を許可するホスト、およびセグメント識別情報を、ホストグループテーブル（033）として保持しており、この情報も通信経路選択に使用する。
【００４７】
図４に、ホスト内MACアドレステーブル（023）、ホスト間MACアドレステーブル（032）、ホストグループテーブル（033）の内容を示す。この各テーブルの内容は必ずしもこの形式である必要はなく、経路選択に必要な情報を含んでいればかまわない、例えば、通信先ホストとセグメントがひとつであり一意に通信経路の選択が可能な場合、この例の様なテーブルを持つ必要は無い。また、ホストグループテーブル（033）には、相互に通信を行うホストとセグメントの一覧、およびホストのIPアドレスを含んでおり、２つのテーブルとして管理する方法もあるが、いずれも本発明の範疇であり、図４はひとつの例として示している。
【００４８】
ホスト内MACアドレステーブル（023）は、スイッチがフレームを受信した際に、そのフレームの送信元MACアドレスと、受信したポートをテーブルとして記憶するものであり、フレーム中継時にフレームの宛先MACアドレスから転送先のポートを決定する目的で使用する。このテーブルの記憶方法、使用方法は、一般のLANスイッチと同様であることから、ここでの詳細な説明は省略する。
【００４９】
ホスト間MACアドレステーブル（032）とホストグループテーブル（033）における通信経路選択について説明する。ホスト間MACアドレステーブル（032）は、フレームを受信した際に、受信したポート、送信元のMACアドレス以外に、送信元のホスト情報、セグメント識別情報を記憶する。
【００５０】
ホストグループテーブル（033）は、予め各ホストに構成情報の形で定義される相互に通信を許可するホスト、およびセグメント識別情報のテーブルである。セグメント識別情報は、仮想LANスイッチの番号に相当する。
【００５１】
まず、ブロードキャストフレームの転送処理を、図３を使用して説明する。
図３において、仮想LANスイッチ_0a（020a）が、ブロードキャストフレーム受信した場合、他ポートと同様にポートＨａ（020Ha）にもフレームを転送し、当該フレームを、ホスト間接続LANスイッチ（300）はポートＡ（301A）で受信することになる。
【００５２】
ホスト間接続LANスイッチ（300）は、このポートＡ（301A）で受信したことから、このフレームは、仮想LANスイッチ_0a（020a）のセグメントに属していることが分かる。このセグメントにおいて、通信が許可されているホストを、ホストグループテーブル（033）から検索し、宛先のホストを特定し、テーブル内の当該ホストが使用するIPアドレスに対してフレームを送信する。
【００５３】
この際フレームのデータ部には、ホスト間接続仮想LANスイッチ（300）が付加したゲストＯＳのデータの通信のデータであることを示すフラグと、セグメント識別情報が付加されるが、この付加する情報については、後述の図５で説明する。
【００５４】
次に、ユニキャストフレームの転送処理を、同様に説明する。
【００５５】
仮想LANスイッチ_0a（020a）が、他ホスト上のゲストＯＳ宛のフレームを受信した場合、ホスト内MACアドレステーブル（023）を参照し、ポートＨａ（020Ha）に転送する。当該フレームを、ホスト間接続LANスイッチ（300）はポートＡ（301A）で受信する。
【００５６】
受信したフレームの宛先MACアドレスをホスト間MACアドレステーブル（032）で検索し、宛先のホストとセグメントを特定する。また宛先ホストを、ホストグループテーブル（033）から検索し、テーブル内の当該ホストが使用するIPアドレスに対してフレームを送信する。
【００５７】
前述の通り、このフレームのデータ部には、ホスト間接続仮想LANスイッチ（300）が付加したゲストＯＳのデータの通信のデータであることを示すフラグと、セグメント識別情報が付加される。
【００５８】
ユニキャストフレームにおいても、ホスト内MACアドレステーブル（023）、ホスト間MACアドレステーブル（032）に、宛先MACアドレスが登録されていない時点での通信は、ブロードキャストフレームの転送処理と同じになるが、これは一般のLANスイッチと同様である。
【００５９】
次に、図５を用いて、送信元仮想化機構の送信パケット生成部（042）が付加する情報について説明する。
【００６０】
図５（a）は、ホスト０（000）上のゲストＯＳ１がホスト１（100）上のゲストＯＳ４にデータを転送する例であり、図５（ｂ）は、送信パケット生成部（042）が送信データに付加する情報の例を示したものである。
【００６１】
図５（a）において、仮想LANアダプタ制御部（021）が、ゲストＯＳ１の割り当てメモリ（500）内の送信バッファ（501t）から送信データを読み出し、仮想LANスイッチ制御部（022）からホスト間接続仮想LANスイッチ（300）に転送する。送信データ（701）には、ホスト間接続仮想LANスイッチ（300）の送信パケット生成部（042）で、８バイトのデータが付加される。この付加される情報の中には、ゲストＯＳのデータの通信のデータであることを示すフラグ1バイトと、セグメント識別情報の２バイトを含んでいる。
【００６２】
このデータを受信したホスト１（100）側のホスト間接続仮想LANスイッチ（300）は、ホスト間接続仮想LANスイッチ（300）内の受信データ解析部（144）が、付加されたデータ内のフラグを解析し、受信データのフォーマットを判断する。受信データはゲストＯＳのデータの通信のデータであることから、付加データに含まれるセグメント識別情報に従い、転送先の仮想LANスイッチ（120a）を特定し、付加データ８バイトを削除して、仮想LANスイッチ（120a）にデータを転送する。
【００６３】
仮想LANスイッチ（120a）の仮想LANスイッチ制御部（122）は、受信データ内の宛先MACアドレスをホスト内MACアドレステーブル（123）で検索し、宛先ゲストＯＳを特定し、該当するゲストＯＳ４の割り当てメモリ（601）に受信データを格納する。
【００６４】
図５（b）は、転送データの内容を示している。フレーム形式７０１は、送信元となるゲストＯＳ１の割り当てメモリ（501）内の送信バッファ（501t）から読み出したデータであり、MACフレームの形式である。フレーム形式７０２は、送信パケット生成部（042）が送信データに8バイトのデータを付加したデータであり、これがホスト間通信パケットのデータ部となる。フレーム形式７０３は、受信データ解析部（144）が、送信パケット生成部（042）にて付加された8バイトのデータを削除した状態であり、これが宛先となるゲストＯＳ４の割り当てメモリ（601）内の送信バッファ（601r）に書き込むデータとなる。
【００６５】
本説明図では、転送するデータの形式のみ示している。実際にホスト間の通信の物理経路上を流れるデータは、通信プロトコルに対応した各種ヘッダが付加されるが、これは各通信プロトコルの仕様であり、本発明の範疇外であるので、ここでは詳しく説明しない。
【００６６】
図５では、ホスト間接続仮想LANスイッチ（300）の送信パケット生成部（042）が送信データに付加するパケットの種類を示すフラグと、セグメント識別情報を含む、8バイトの情報を付加しているが、これはあくまでも例である。必ずしもこれらの情報を付加する必要はない。例えば、ホスト間の通信が、異なるホスト上のゲストＯＳのデータの通信でのみ使用される場合、このパケット種を示すフラグは不要であるし、各ホスト内に１つのセグメントしか存在しない場合、セグメント識別情報が不要となることは明白である。
【００６７】
図６（a）に、これまで説明した仮想LANアダプタを使用したゲストＯＳのデータの通信の送信処理について、その処理をフローチャートで示す。ステップ（801〜803）は送信元ゲストの処理である。データ転送の要因が発生すると、自ＯＳに割り当てられたメモリ内の送信バッファに送信データを格納してデータの送信要求を出す。
【００６８】
ステップ（811、812）は、ホスト内の仮想LANアダプタ制御部の処理であり、データの送信要求を受けて、データを上記メモリ内の送信バッファから読み出し、読み出したデータを仮想LANスイッチ制御部に転送する。
【００６９】
ステップ（821〜825）は、ホスト内の仮想LANスイッチの処理であり、転送されたデータがブロードキャストフレームかユニキャストフレームかを判断する。ブロードキャストフレームであれば、MACアドレステーブルを参照する必要がなく、そのままデータを宛先ホスト判定部に転送する。
【００７０】
ユニキャストフレームであれば、データ内の宛先MACアドレスをホスト内MACアドレステーブルで検索する。宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていれば、テーブルの内容から転送先のポートが決定する。宛先ポートが他ホスト向けのポートであれば、データを宛先ホスト判定部に転送する。宛先ポートが自ゲストＯＳ向けのポートであれば、自ホスト内で送信データを処理する。
また、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合も、送信データを宛先ホスト判定部に転送する。
【００７１】
ステップ（831〜834）は、ホスト内の宛先ホスト判定部の処理であり、転送データがユニキャストフレームであれば、送信データ内のMACアドレスをホスト間MACアドレステーブルで検索する。宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていれば、テーブルの内容から転送先のホスト名とセグメント識別情報を得る。
【００７２】
宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合は、データを受信したポートからセグメント識別情報を作成する。
【００７３】
次にホストグループテーブルを参照し、宛先ホストのＩＰアドレスを得る。
【００７４】
ここで、宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合は、ホストグループテーブル内の同一グループに属する全てのホストが宛先の対象となり、複数の宛先ホストを順次処理する。
ステップ（835）で、宛先ホスト判定部は、転送データ、宛先ホストのＩＰアドレス、セグメント識別情報を送信パケット生成部に転送する。
【００７５】
ステップ（836〜838）は、ホスト内の送信パケット生成部の処理であり、転送されたデータにゲストＯＳ間のデータ転送を示すフラグとセグメント識別情報を付加し、送信データを作成する。そしてホスト間通信制御部に送信データと、宛先ホストのＩＰアドレスを転送し、宛先ホストへのデータ送信を指示する。
【００７６】
ステップ（841）で、ホスト間通信制御部は、外部接続物理LANアダプタを使用し、データを送信する。
【００７７】
ステップ（839）は、宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合の処理であり、ホスト内の宛先ホスト判定部は、ホストグループテーブルに登録されている全ての対象ホストにデータを送信するまで、ステップ（834）〜ステップ（838）の処理を繰返す。
【００７８】
ここで、仮想LANスイッチ制御部と、宛先ホスト判定部は、受信したデータ内の送信元MACアドレスと、受信したポートを、それぞれホスト内MACアドレステーブル、ホスト間MACアドレステーブルに登録する処理があるが、本フローチャートは主要な処理の流れを説明する為のものであり、省略している。
【００７９】
図６（b）に、これまで説明した仮想LANアダプタを使用したゲストＯＳのデータの通信の受信処理について、その処理をフローチャートで示す。ステップ（911、912）はホスト間通信制御部の処理であり、外部接続物理LANアダプタでデータを受信し、受信データを受信データ解析部に転送する。
【００８０】
ステップ（931〜936）は、受信データ解析部の処理であり、転送されたデータ内の送信元ホスト内の送信パケット生成部で付加されたフラグを判定する。フラグの内容が、ゲストＯＳ間のデータ転送を示すものでなければ、そのフラグで指示される処理を実行するが、ここでは、ゲストＯＳ間のデータ転送についてのみ説明する。
【００８１】
ステップ（933〜935）にて、受信データ解析部は、送信元ホスト内の送信パケット生成部で付加されたセグメント識別情報から、転送ポートを特定する。この転送ポートは、自ホスト内の仮想LANスイッチ番号に相当する。また、送信パケット生成部で付加されたデータを削除して、該当する仮想LANスイッチ制御部に転送する。
【００８２】
ステップ（941〜945）は、ホスト内の仮想LANスイッチ制御部の処理であり、転送されたデータがブロードキャストフレームかユニキャストフレームかを判断する。ブロードキャストフレームであれば、MACアドレステーブルを参照する必要がなく、同一セグメントの全てのゲストＯＳを対照として転送先のポートを決定する。
【００８３】
ユニキャストフレームであれば、データ内の宛先MACアドレスをホスト内MACアドレステーブルで検索する。宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていれば、テーブルの内容から転送先のポートが決定する。また、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合は、同一セグメントの全てのゲストＯＳを対照として転送先のポートを決定する。
【００８４】
ステップ（946〜947）は、ホストの仮想LANアダプタ制御部の処理であり、仮想LANスイッチ制御部が指示する転送先ポートに接続されるゲストＯＳに対して、当該ゲストＯＳに割り当てたメモリ内の受信バッファにデータを書き込み、ゲストＯＳにデータの受領を通知する。
【００８５】
ステップ（948）は、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合の処理であり、仮想LANスイッチ制御部は、同一セグメントの全てのポートを対象として、対応するゲストＯＳに対してステップ（846）〜ステップ（847）の処理を繰返す。
【００８６】
ステップ（901〜902）は受信先ゲストの処理である。データの受領を通知されたゲストＯＳは、自ＯＳに割り当てられたメモリ内の受信バッファを読み出してデータを受信する。
【００８７】
ここで、受信データ解析部と仮想LANスイッチ制御部は、受信したデータ内の送信元MACアドレスと、受信したポートを、それぞれホスト内MACアドレステーブル、ホスト間MACアドレステーブルに登録する処理があるが、本フローチャートは主要な処理の流れを説明する為のものであり、省略している。
【００８８】
図７は、本発明のゲストＯＳのデータの通信方法を使用して構築したネットワーク構成のイメージである。この接続構成例は、ホスト０（000）、ホスト１（100）、ホスト２（200）上のゲストＯＳが、ホスト間接続仮想スイッチを介して、相互に接続されている構成を示している。この接続構成例における接続に関しては、一般のLANスイッチの接続図と同様であるので、詳しい説明は省略するが、それぞれの仮想LANスイッチに関しては、前述のホストにおけるLANスイッチのエミュレーションが行われている。
【００８９】
また仮想LANスイッチ間の接続に関しては、各ホストに対して、予め構成情報の形で相互に通信を許可するホスト、およびセグメントを定義してある。この構成における定義内容は、図４におけるホストグループテーブル（033）の内容となる。
【実施例２】
【００９０】
図７において、ホスト０（000）上のゲストＯＳ３（003）をホスト１（100）上に移動させた場合の運用について説明する。
図７は、ゲストＯＳ３（003）の移動前の構成、図８は、ゲストＯＳ３（003）がホスト１（100）上に移動した後の構成を示している。ゲストＯＳ３（003）は、移動前に仮想LANスイッチ_0c（020c）を介して、ホスト０（000）上のゲストＯＳ２（002）と、また仮想LANスイッチ_0d（020d）を介して、ホスト０（000）上のゲストＯＳ２（002）、ホスト２（200）上のゲストＯＳ８（203）、ゲストＯＳ９（204）、と通信可能な構成にあったが、ホスト１（100）上に移動したことにより、上記のゲストＯＳとの通信は不可となる。
【００９１】
しかしながら、各ホストの保持するホストグループテーブル（033）を更新することにより移動前と同様に通信が可能となる。
移動前のホストグループテーブル（033）の内容と、更新したホストグループテーブル（033）の内容を図９に示す。
【００９２】
ホストグループテーブル（033）の更新方法には、２つの方法がある。ひとつは既存のグループに移動元ホストとセグメント識別情報、移動先ホストとセグメント識別情報を追加する方法。
もう1つは、新たなグループを作成し、移動元ホストとセグメント識別情報、移動先ホストとセグメント識別情報を登録する方法である。
【００９３】
図９は、後者の新たなグループを作成する方法で、ホストグループテーブル（033）を更新した例である。ホストグループテーブル（033）の追加部（033-1）から分かる様に、移動元となるホスト０（000）上のセグメントで、移動先となるホスト１（001）上のセグメントと通信の許可が定義されていないSW-C、およびSW-Dのセグメントに対し、新たなグループを追加して定義を追加することにより、移動元と同じ条件で、仮想LANアダプタを使用したゲストＯＳ間の通信が可能である。
【００９４】
この様に、ホストグループテーブル（033）を更新することにより、論理的に仮想LANスイッチ間の接続を変更することが可能である。またホストグループテーブル（033）の更新は、たとえばLPAR移動機能の中に組み込み、ゲストＯＳの移動に合わせ、自動的に更新することも可能である。
【符号の説明】
【００９５】
000、100、200：ホスト
001〜003、101、102、201〜204：ゲストＯＳ
011〜013、111、112：仮想LANアダプタ
020、020a〜020d、120、120a〜120d、220、220a〜220d：仮想LANスイッチ
021、121：仮想LANスイッチ内の仮想LANアダプタ制御部
022、122：仮想LANスイッチ内の仮想LANスイッチ制御部
023、123：ホスト内MACアドレステーブル
032、132：ホスト間MACアドレステーブル
033、133：ホストグループテーブル
041、141：宛先ホスト判定部
042、142：送信パケット生成部
043、143：ホスト間通信制御部
044、144：受信データ解析部
051、151：外部接続物理LANアダプタ
300、301a〜301d：ホスト間接続仮想LANスイッチ
500、600：物理メモリ
501t：ゲストＯＳ１のメモリ内送信バッファ
503r：ゲストＯＳ３のメモリ内受信バッファ
601r：ゲストＯＳ４のメモリ内受信バッファ
【図１】
2011141635.tif 000003
【図２】
2011141635.tif 000004
【図３】
2011141635.tif 000005
【図４】
2011141635.tif 000006
【図５（ａ）】
2011141635.tif 000007
【図５（ｂ）】
2011141635.tif 000008
【図６（ａ）】
2011141635.tif 000009
【図６（ｂ）】
2011141635.tif 000010
【図７】
2011141635.tif 000011
【図８】
2011141635.tif 000012
【図９】
2011141635.tif 000013