JP6037016B2 - 仮想マシン・マイグレーションを決定するための方法および装置 - Google Patents

仮想マシン・マイグレーションを決定するための方法および装置 Download PDF

Info

Publication number
JP6037016B2
JP6037016B2 JP2015528834A JP2015528834A JP6037016B2 JP 6037016 B2 JP6037016 B2 JP 6037016B2 JP 2015528834 A JP2015528834 A JP 2015528834A JP 2015528834 A JP2015528834 A JP 2015528834A JP 6037016 B2 JP6037016 B2 JP 6037016B2
Authority
JP
Japan
Prior art keywords
virtual machine
unique identifier
machine
host machine
address
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.)
Active
Application number
JP2015528834A
Other languages
English (en)
Other versions
JP2015537261A (ja
Inventor
雨晨 王
雨晨 王
▲強▼ ▲楊▼
▲強▼ ▲楊▼
宇佳 翁
宇佳 翁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2015537261A publication Critical patent/JP2015537261A/ja
Application granted granted Critical
Publication of JP6037016B2 publication Critical patent/JP6037016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、通信の分野に関し、特に、仮想マシン・マイグレーションを決定するための方法および装置に関する。
今日、仮想マシン技術は一般的に様々なクラウド・コンピューティング環境に適用されており、クラウド・コンピューティングの主なアイデアは、ネットワークを用いて接続された大量のリソース(ここでリソースとは記憶リソース、計算リソースおよび様々な種類のアプリケーション・ソフトウェアを含む)を統一的に管理しスケジュールして、ユーザにオンデマンドでサービスを提供するためのリソース・プールを形成することである。この仮想マシン技術では、1つまたは複数の仮想マシンを1つの物理ホストで仮想化して、幾つかまたは多数の仮想マシンが1つの物理ホストのハードウェア・リソースを共有することによりリソースの利用を高めることができる。しかし、仮想マシン技術の適用はまた、ネットワーク・セキュリティ管理に対し新たな課題をもたらす。既存の物理セキュリティ装置は物理ホストが形成するドメインのセキュリティ、例えば、企業の内部ローカル・エリア・ネットワークのセキュリティを保護するが、幾つかの仮想マシン、特に、同一のホスト・マシン(本明細書では、仮想マシンにハードウェア・リソースを提供する物理ホストをホスト・マシンと称する)上の仮想マシンにより形成された仮想ネットワークにおいて仮想マシン間のトラフィックを監視することはできない。さらに、仮想マシン・マイグレーションでは、静的なセキュリティ・ポリシを適用することはもはやできない。ここで、仮想マシン・マイグレーションとは、もともと1つの物理ホストのハードウェア・リソースと処理リソースに基づいて実装された仮想マシンが別の物理ホストのハードウェア・リソースと処理リソースにより実装される現象をいう。
先行技術では、仮想ネットワーク内の仮想マシンのトラフィックを物理的なセキュリティ装置により監視するかホスト・マシンのセキュア仮想マシンにより監視するかに関わらず、仮想マシン・マイグレーションが生じたときにセキュリティ・ポリシを動的に調整する必要がある。したがって、仮想マシン・マイグレーションが生じたことをどのように判定するかが主要な課題となる。
仮想マシン・マイグレーションを決定する現在の方式は、仮想マシンのトラフィックを完全にスイッチに移し、当該スイッチが仮想マシンの存在を判定するというものである。しかし、当該方式では、プロトコルをサポートするオーダメイドのスイッチ、例えば、VEPA(Virtual Ethernet Port Aggregator、仮想イーサネット・ポート集約器)プロトコルをサポートするスイッチが必要であり、仮想マシンのベンダがサポートを提供する必要がある。したがって、デプロイメントのコストは高い。
本発明の諸実施形態では仮想マシン・マイグレーションを決定するための方法および装置を提供する。当該方法および装置はデプロイメントのコストを削減することができる。
第1の態様によれば、仮想マシン・マイグレーションを決定するための方法を提供する。当該方法は、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得するステップと、サーバが仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、仮想マシンの一意な識別子がクライアントのローカル・レコードに存在しない場合には、クライアントにより、ホスト・マシンが配置されたネットワーク内の当該サーバにパケットを送信し、クライアントにより、仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新するステップであって、当該パケットが仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬するステップとを含む。
第1の態様の第1の可能な実装方式では、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想マシンの一意な識別子を取得するステップは、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想マシンからのパケットをインターセプトするステップであって、当該パケットは仮想マシンの一意な識別子を運搬するステップと、仮想マシンの一意な識別子を当該インターセプトしたパケットから取得するステップとを含む。
第1の態様の第2の可能な実装方式では、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想マシンの一意な識別子を取得するステップは、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想スイッチにより転送されるホスト・マシン上の仮想マシンからパケットを受信するステップであって、当該パケットはホスト・マシン上の仮想マシンの一意な識別子を運搬するステップと、仮想マシンの一意な識別子を当該受信パケットから取得するステップとを含む。
第1の態様の第1の可能な実装方式または第2の可能な実装方式を参照して、第1の態様の第3の可能な実装方式では、ホスト・マシン上の仮想マシンからのパケットはARP(アドレス解決プロトコル、Address Resolution Protocol)パケットである。
第1の態様、または第1の態様の第1の可能な実装方式、第2の可能な実装方式、もしくは第3の可能な実装方式を参照して、第1の態様の第4の可能な実装方式では、クライアントにより、仮想マシンの一意な識別子をローカル・レコードに追加する前に、当該方法は、クライアントにより、受信成功を示しサーバにより送信される応答パケットを受信するステップと、受信成功を示しサーバにより送信される応答パケットを受信したとき、クライアントにより、仮想マシンの一意な識別子をローカル・レコードに追加するステップとをさらに含む。
第1の態様、または第1の態様の第1の可能な実装方式、第2の可能な実装方式、もしくは第3の可能な実装方式を参照して、第1の態様の第5の可能な実装方式では、当該一意な識別子は、仮想マシンのMACアドレス、または仮想マシンの静的に構成されたIPアドレスである。
第1の態様、または第1の態様の第1の可能な実装方式、第2の可能な実装方式、もしくは第3の可能な実装方式を参照して、第1の態様の第6の可能な実装方式では、クライアントは、ホスト・マシン内のセキュア仮想マシン、ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続されたホスト・マシン内のコンポーネントに配置される。
第2の態様によれば、仮想マシン・マイグレーションを決定するための方法を提供する。当該方法は、サーバにより、ホスト・マシン内のクライアントにより送信されたパケットを受信するステップであって、当該パケットは、ホスト・マシン上の仮想マシンの一意な識別子とクライアントが配置されているホスト・マシンのアドレスを運搬するステップと、仮想マシンの一意な識別子がサーバのローカル・レコードに存在しない場合には、サーバにより、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係をサーバのローカル・レコードに追加するステップと、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバにより、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスが仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスが仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定するステップとを含む。
第2の態様の第1の可能な実装方式では、クライアントにより送信されたパケットを受信した後に、当該方法はさらに、クライアントが仮想マシンの一意な識別子をクライアントのローカル・レコードに追加するように、受信成功を示す応答パケットをクライアントに送信するステップを含む。
第2の態様または第2の態様の第1の可能な実装方式を参照して、第2の態様の第2の可能な実装方式では、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、当該方法はさらに、仮想マシンの一意な識別子に対応しサーバのローカル・レコードに格納されているホスト・マシンのアドレスを当該パケットで運搬されるホスト・マシンのアドレスであるように更新するステップを含む。
第3の態様によれば、仮想マシン・マイグレーションを決定するための装置を提供する。当該装置は、当該装置が配置されているホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得するように構成された処理ユニットと、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在しないと当該処理ユニットが判定した場合には、サーバが、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、ホスト・マシンが配置されたネットワーク内の当該サーバにパケットを送信するように構成された送信ユニットであって、当該パケットが仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬する送信ユニットと、仮想マシンの一意な識別子がローカル・レコードに存在しないと当該処理ユニットが判定した場合には、仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新するように構成された格納ユニットとを備える。
第3の態様の第1の可能な実装方式では、当該処理ユニットは、ホスト・マシン上の仮想マシンからのパケットをインターセプトし、仮想マシンの一意な識別子を当該インターセプトしたパケットから取得するように構成される。当該パケットは仮想マシンの一意な識別子を運搬する。
第3の態様の第2の可能な実装方式では、当該処理ユニットは、ホスト・マシン上の仮想スイッチにより転送されるホスト・マシン上の仮想マシンからパケットを受信し、ホスト・マシン上の仮想マシンの一意な識別子を当該受信パケットから取得するように構成される。当該パケットはホスト・マシン上の仮想マシンの一意な識別子を運搬する。
第3の態様の第1の可能な実装方式または第2の可能な実装方式を参照して、第3の可能な実装方式では、ホスト・マシン上の仮想マシンからのパケットはアドレス解決プロトコルARPパケットである。
第3の態様の第1の可能な実装方式、第2の可能な実装方式、または第3の可能な実装方式を参照して、第4の可能な実装方式では、当該装置はさらに、格納ユニットが仮想マシンの一意な識別子をローカル・レコードに追加する前に、受信成功を示しサーバにより送信される応答パケットを受信するように構成された受信ユニットを備える。当該格納ユニットは特に、受信成功を示しサーバにより送信される応答パケットを当該受信ユニットが受信したとき、仮想マシンの一意な識別子をローカル・レコードに追加するように構成される。
第3の態様、または第3の態様の第1の可能な実装方式、第2の可能な実装方式、もしくは第3の可能な実装方式を参照して、第5の可能な実装方式では、当該装置は、ホスト・マシン内のセキュア仮想マシン、ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続されたホスト・マシン内のコンポーネントに配置される。
第4の態様によれば、仮想マシン・マイグレーションを決定するための装置を提供する。当該装置は、ホスト・マシン内のクライアントにより送信されたパケットを受信するように構成された受信ユニットであって、当該パケットは、ホスト・マシン上の仮想マシンの一意な識別子とクライアントが配置されているホスト・マシンのアドレスを運搬する受信ユニットと、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在するかどうかを判定するように構成された決定ユニットと、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在しないと当該決定ユニットが判定した場合には、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係を当該装置のローカル・レコードに追加するように構成された格納ユニットとを備える。当該決定ユニットはさらに、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在する場合には、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定するように構成される。
第4の態様の第1の可能な実装方式では、当該装置はさらに、当該受信ユニットがクライアントにより送信されたパケットを受信した後、クライアントが仮想マシンの一意な識別子をクライアントのローカル・レコードに追加するように、受信成功を示す応答パケットをクライアントに送信するように構成された送信ユニットを備える。
第4の態様または第4の態様の第1の可能な実装方式を参照して、第4の態様の第2の可能な実装方式では、当該装置はさらに、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンの一意な識別子に対応し当該装置のローカル・レコードに格納されたホスト・マシンのアドレスを当該パケットで運搬されるホスト・マシンのアドレスとなるように更新するように構成された更新ユニットを備える。
第5の態様ではクライアント装置を提供する。当該装置は、プロセッサ、通信インタフェース、メモリ、およびバスを備える。当該プロセッサ、当該通信インタフェース、および当該メモリは当該バスを用いることにより相互通信を実現し、当該通信インタフェースは外部ネットワーク要素と通信するように構成され、当該メモリはプログラムを格納するように構成され、当該プロセッサは、当該メモリ内の当該プログラムを読み取り、クライアント装置が配置されたホスト・マシンの仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子がローカル・レコードに存在しない場合には、サーバが、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、ホスト・マシンが配置されたネットワーク内の当該サーバにパケットを送信し、仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新するステップを実施するように構成される。当該パケットは仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬する。
第5の態様の第1の可能な実装方式では、当該プロセッサは、ホスト・マシン上の仮想マシンからのパケットをインターセプトし、ホスト・マシン上の仮想マシンの一意な識別子を当該インターセプトしたパケットから取得する動作を実施するように構成される。当該パケットはホスト・マシン上の仮想マシンの一意な識別子を運搬する。
第5の態様の第2の可能な実装方式では、当該プロセッサは、ホスト・マシン上の仮想スイッチにより転送されるホスト・マシン上の仮想マシンからパケットを受信し、ホスト・マシン上の仮想マシンの一意な識別子を当該受信パケットから取得する動作を実施するように構成される。当該パケットはホスト・マシン上の仮想マシンの一意な識別子を運搬する。
第5の態様の第1の可能な実装方式または第2の可能な実装方式を参照して、第3の可能な実装方式では、当該プロセッサはさらに、受信成功を示しサーバにより送信される応答パケットを受信する動作と、受信成功を示しサーバにより送信される応答パケットを受信したとき、仮想マシンの一意な識別子をローカル・レコードに追加する動作とを実施するように構成される。
第5の態様の第1の可能な実装方式、第2の可能な実装方式、または第3の可能な実装方式を参照して、第4の可能な実装方式では、当該装置は、ホスト・マシン内のセキュア仮想マシン、ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続されたホスト・マシン内のコンポーネントに配置される。
第6の態様ではサーバ装置を提供する。当該装置は、プロセッサ、通信インタフェース、メモリ、およびバスを備える。当該プロセッサ、当該通信インタフェース、および当該メモリは当該バスを用いることにより相互通信を実現し、当該通信インタフェースは外部ネットワーク要素と通信するように構成され、当該メモリはプログラムを格納するように構成され、当該プロセッサは、当該メモリ内の当該プログラムを読み取り、ホスト・マシン内のクライアントにより送信された、仮想マシンの一意な識別子とクライアントが配置されているホスト・マシンのアドレスを運搬するパケットを受信し、仮想マシンの一意な識別子がサーバのローカル・レコードに存在しない場合には、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係をサーバ装置のローカル・レコードに追加し、仮想マシンの一意な識別子がサーバ装置のローカル・レコードに存在する場合には、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定する動作を実施するように構成される。
第6の態様の第1の可能な実装方式では、当該プロセッサはさらに、クライアントにより送信されたパケットを受信した後に、クライアントが仮想マシンの一意な識別子をクライアントのローカル・レコードに追加するように、受信成功を示す応答パケットをクライアントに送信する動作を実施するように構成される。
第6の態様の第1の可能な実装方式を参照して、第6の態様の第2の可能な実装方式では、当該プロセッサはさらに、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンの一意な識別子に対応しサーバ装置のローカル・レコードに格納されているホスト・マシンのアドレス装置を当該パケットで運搬されるホスト・マシンのアドレスであるように更新する動作を実施するように構成される。
第7の態様では、第5の態様または第5の態様の可能な実装方式のうち何れかに従う少なくとも1つのクライアント装置と、第6の態様または第6の態様の可能な実装方式のうち何れかに従う少なくとも1つのサーバ装置とを備えた、仮想マシン・マイグレーションを決定するためのシステムを提供する。
上述の技術的解決策を使用した後、本発明の諸実施形態により提供される仮想マシン・マイグレーションを決定するための方法および装置では、クライアントがホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子がクライアントのローカル・レコードに存在しない場合には、クライアントは、仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬するパケットをサーバに送信し、サーバが当該パケットを受信した後、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバは、当該パケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、サーバは仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、サーバは仮想マシンがマイグレートされていると判定する。このように、仮想マシン・マイグレーションは、仮想マシン・マイグレーションで必要とされる特定の通信プロトコル(例えば、VEPAプロトコル)を利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は緩和され、それにより、デプロイメントのコストが低下する。
本発明の諸実施形態または先行技術の技術的解決策をより明確に説明するために、以下では当該諸実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの実施形態を示すにすぎず、当業者は創造的作業なしにこれらの添付図面から本発明の技術的解決策の他の図面を導出することができる。
本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法が適用されるシステムのデプロイ構造の略図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法の流れ図である。 本発明の1実施形態に従うシステムのデプロイ構造の略図である。 本発明の1実施形態に従うシステムのデプロイ構造の別の略図である。 本発明の1実施形態に従うシステムのデプロイ構造のさらに別の略図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法の流れ図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための別の方法の略図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の構造ブロック図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の別の構造ブロック図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の構造ブロック図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の別の構造ブロック図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置のさらに別の構造ブロック図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するためのクライアント装置の略図である。 本発明の1実施形態に従う仮想マシン・マイグレーションを決定するためのサーバ装置の略図である。
以下では本発明の諸実施形態の添付図面を参照して本発明の諸実施形態の技術的解決策を明確かつ十分に説明する。明らかに、説明する以下の諸実施形態は本発明の諸実施形態の一部であって全部ではない。当業者が創造的作業なしに本発明の諸実施形態に基づいて得る他の全ての実施形態は本発明の保護範囲に入るものとする。
図1は、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法が適用されるシステムのデプロイ構造の略図である。本発明をより分かり易くするために、以下では先ず図1を参照して当該デプロイ構造を簡単に説明する。
当該デプロイ構造は複数のホスト・マシンを含んでもよい。図1では、当該デプロイ構造が2つのホスト・マシン、即ち、ホスト・マシン1とホスト・マシンnのみを含む例を用いて説明を行う。ホスト・マシン1を、物理セキュリティ装置(例えば、スイッチ)を用いてホスト・マシンnに接続してもよい。仮想マシンと仮想スイッチはそれぞれホスト・マシン1とホスト・マシンnの中に配置される。ホスト・マシン1は、仮想スイッチ1と複数の仮想マシン(本図では、仮想マシン1と仮想マシン2の2つ)を含んでもよい。仮想マシン1と仮想マシン2は別々に仮想スイッチ1と通信接続する。ホスト・マシンnは、仮想スイッチnおよび複数の仮想マシン(本図では、仮想マシン3と仮想マシン4の2つ)を含んでもよい。仮想マシン3と仮想マシン4は別々に仮想スイッチnと通信接続する。
仮想マシンが通信を行うとき、仮想マシンにより送信されたパケットは先ず、仮想マシンが配置されたホスト・マシン上の仮想スイッチに到達し、仮想スイッチと通信接続する別の仮想マシンに仮想スイッチにより送信されるか、または、仮想スイッチによりホスト・マシンの物理ネットワーク・アダプタに送信され、物理ネットワーク・アダプタによりホスト・マシンを除く別の装置に送信されてもよい。
さらに、セキュア仮想マシン(図1では図示せず)を、必要に応じてホスト・マシンにさらに配置してもよい。本発明の当該実施形態では、セキュア仮想マシンは、ネットワーク・トラフィックにセキュリティ保護をもたらしホスト・マシン内に存在する仮想マシン装置である。セキュア仮想マシンが仮想マシンと通信接続してもよく、仮想スイッチがトラフィックをセキュア仮想マシンに取り込むとき、セキュア仮想マシンは、取り込まれたトラフィックに対してセキュリティ制御を実施してもよい。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法では、図1に示す構造に基づいて、クライアントとサーバを導入する。これらは、低いデプロイメントのコストで、仮想マシンがマイグレートされるかどうかを判定することができる。
図2Aは、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法の流れ図である。図2Aを参照すると、本発明の当該実施形態では仮想マシン・マイグレーションを決定するための方法を提供する。当該方法は、ホスト・マシン内のクライアントに基づいて説明され、以下を含む。
21で、ホスト・マシン内のクライアントがホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得する。
ホスト・マシン上の仮想マシンの一意な識別子が、仮想マシンの媒体アクセス制御(MAC、Media Access Control)アドレスであってもよく、ユーザが構成した静的IPアドレスであってもよく、本明細書では限定されない。
本発明の当該実施形態では、ホスト・マシン内のクライアントを実際のニーズに従って様々な位置に配置してもよい。例えば、図2Bを参照すると、クライアントをホスト・マシン内のセキュア仮想マシンに配置してもよく、図2Cを参照すると、クライアントをホスト・マシン内の仮想スイッチに配置してもよく、図2Dを参照すると、クライアントをホスト・マシン内のコンポーネントに配置して物理ネットワーク・アダプタに接続してもよい。物理ネットワーク・アダプタに接続されたコンポーネントは物理コンポーネントに限定されず、ソフトウェア形式で実装されたコンポーネントであってもよい。クライアントを別の位置に配置してもよく、本発明では限定されない。ホスト・マシン内のクライアントの様々な位置に従って、本発明の当該実施形態では、ホスト・マシン上の仮想マシンの一意な識別子を別の方式で取得してもよい。
ホスト・マシン上の仮想マシンの一意な識別子を取得する1つの方式は、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想マシンにより送信された、ホスト・マシン上の仮想マシンの一意な識別子を運搬するパケットをインターセプトするステップと、ホスト・マシン上の仮想マシンの一意な識別子を当該インターセプトしたパケットから取得するステップとを含んでもよい。換言すれば、このようにして、クライアントは、ホスト・マシン上の仮想マシンにより送信され仮想マシンの一意な識別子を運搬するパケットを直接インターセプトすることで、仮想マシンの一意な識別子を知ることができる。当該方式は、クライアントがホスト・マシン内の仮想スイッチ内に配置されるケースに適用可能である。ホスト・マシン上の仮想マシンが送信したパケットはアドレス解決プロトコル(ARP、Address Resolution Protocol)ARPパケットである。
ホスト・マシン上の仮想マシンの一意な識別子を取得する別の方式が、ホスト・マシン内のクライアントにより、ホスト・マシン上の仮想スイッチにより転送された、ホスト・マシン上の仮想マシンの一意な識別子を運搬するパケットを受信するステップと、ホスト・マシン上の仮想マシンの一意な識別子を当該受信パケットから取得するステップを含んでもよい。仮想スイッチにより送信されたパケットは、ホスト・マシン上の仮想マシンにより送信されたパケットをインターセプトすることによって仮想スイッチにより取得される。換言すれば、このようにして、クライアントは、ホスト・マシン上の仮想スイッチにより転送されホスト・マシン上の仮想マシンの一意な識別子を運搬するパケットを受信することによって、仮想マシンの一意な識別子を知る。特に、正式な通信を開始する前に、ホスト・マシン上の仮想マシンが仮想マシンの一意な識別子を運搬するパケットをブロードキャストし、当該パケットをインターセプトした後に、ホスト・マシン上の仮想スイッチが当該パケットを転送してもよく、ホスト・マシン上のクライアントが、仮想スイッチにより転送されたパケットを受信することによってホスト・マシン上の仮想マシンの一意な識別子を取得することができる。当該方式は、クライアントがセキュア仮想マシン内のコンポーネントの中に配置され物理ネットワーク・アダプタに接続されるケースに適用可能である。仮想マシンが送信したパケットがARPパケットであってもよい。
場合によっては、本発明の1実施形態では、ホスト・マシン上の仮想マシンが送信したパケットはアドレス解決プロトコル(ARP、Address Resolution Protocol)ARPパケットであり、仮想マシンの一意な識別子を運搬する。ARP通信は正常な通信の前の必要なプロセスであり少量のデータを必要とするので、システム性能を最適化する目的に基づいて、クライアントまたは仮想スイッチは、仮想マシンが送信したARPパケットを取得し、当該ARPパケットを用いて仮想マシンの一意な識別子を取得すればよい。
本発明の当該実施形態では、ホスト・マシンとは、仮想マシンが現在存在する物理マシンをいい、1つまたは複数の仮想マシンが1つのホスト・マシンに存在してもよく、本発明では限定されない。
本発明の当該実施形態では、ホスト・マシンのアドレスが、ホスト・マシンのIPアドレスであってもよく、ホスト・マシンを一意に識別できるアドレス、例えば、ホスト・マシンのMACアドレスであってもよい。
本発明の当該実施形態では、ユーザがホスト・マシンを事前に構成し、構成内容にはホスト・マシンのアドレスが含まれる。したがって、ステップ11では、ホスト・マシン内のクライアントにより、ホスト・マシンのアドレスを取得するステップが特に、ホスト・マシン内のクライアントにより、当該ユーザが入力した構成情報に従ってホスト・マシンのアドレスを取得するステップであってもよい。
ステップ11でホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得した後、クライアントは、仮想マシンの一意な識別子がローカル・レコードに存在するかどうかを判定してもよい。ローカル・レコードをキャッシュまたはメモリに格納してもよく、キャッシュの読取り/書込み速度は高いので、キャッシュ方式でのローカル・レコードの格納により検索時間を節約することができる。特に、ホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得した後、クライアントが、仮想マシンの一意な識別子を格納するのに使用されるローカル・レコードを生成し、次いで、仮想マシンの(MACアドレスのような)一意な識別子を検索オブジェクトとして使用することによってローカル・レコードを検索してもよい。当該一意な識別子を発見できる場合には、仮想マシンの一意な識別子がローカル・レコードに存在すると判定し、当該一意な識別子を発見できなかった場合には、仮想マシンの一意な識別子がローカル・レコードに存在しないと判定する。
本発明の範囲において、ホスト・マシンの別の実行体が、仮想マシンの一意な識別子がローカル・レコードに存在するかどうかを判定し、さらに、仮想マシンの一意な識別子がローカル・レコードに存在するかどうかを示す結果をクライアントに通知してもよい。
22で、仮想マシンの一意な識別子がクライアントのローカル・レコードに存在しない場合には、サーバが、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、クライアントは、仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬するパケットをサーバに送信し、クライアントが仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新する。
場合によっては、サーバは、ホスト・マシンが配置されたネットワーク内の1つの装置の中に配置され、ホスト・マシン内のクライアントと通信接続する。例えば、サーバを図1の物理セキュリティ装置に配置してもよく、または、専用装置内に独立に配置してもよい。
場合によっては、本発明の1実施形態では、クライアントにより、ステップ22で仮想マシンの一意な識別子をローカル・レコードに追加する前に、本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法がさらに、クライアントにより、受信成功を示しサーバにより送信される応答パケットを受信するステップを含んでもよい。この場合、クライアントにより、ステップ22で仮想マシンの一意な識別子をローカル・レコードに追加するステップが特に、受信成功を示しサーバにより送信される応答パケットを受信したときに、クライアントにより、仮想マシンの一意な識別子をローカル・レコードに追加するステップであってもよい。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法によれば、ホスト・マシン内のクライアントが仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子とホスト・マシンのアドレスをサーバに送信する。その結果、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバは、クライアントが送信したパケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションで必要とされる特定の通信プロトコル(例えば、VEPAプロトコル)を利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
図3は、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための方法の流れ図である。図3を参照すると、本発明の当該実施形態では仮想マシン・マイグレーションを決定するための方法を提供する。当該方法をサーバに基づいて説明する。サーバを、ホスト・マシンが配置されるネットワーク内の装置に配置してもよく、サーバはホスト・マシン内のクライアントと通信接続する。例えば、サーバを図1の物理セキュリティ装置に配置してもよく、または、専用装置内に独立に配置してもよい。当該方法は以下を含む。
31で、ホスト・マシン内のクライアントにより送信されたパケットを受信する。当該パケットは仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬する。
ステップ31でクライアントにより送信されたパケットを受信した後に、本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法がさらに、受信成功を示す応答パケットをクライアントに送信して、クライアントが仮想マシンの一意な識別子をローカル・レコードに追加するようにするステップを備えてもよい。
ステップ32の前に、サーバは先ず、仮想マシンの一意な識別子がサーバのローカル・レコードに存在するかどうかを判定してもよい。特に、サーバは、仮想マシンの一意な識別子を検索オブジェクトとして用いることによってローカル・レコードを検索してもよい。当該一意な識別子を発見できた場合には、仮想マシンの一意な識別子がローカル・レコードに存在すると判定し、当該一意な識別子を発見できなかった場合には、仮想マシンの一意な識別子がローカル・レコードに存在しないと判定する。
32で、仮想マシンの一意な識別子がサーバのローカル・レコードに存在しない場合には、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係をローカル・レコードに追加する。
仮想マシンの一意な識別子がサーバのローカル・レコードに存在しない場合、即ち、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係が初めて追加されるケースでは、仮想マシンがマイグレートされていないと考えられる。
33で、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、ステップ34を実施し、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、ステップ35を実施する。
34で、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定する。
35で、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定する。さらに、仮想マシンの一意な識別子に対応しサーバのローカル・レコードに格納されているホスト・マシンのアドレスをさらに、当該パケットで運搬されるホスト・マシンのアドレスとなるように更新してもよい。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法によれば、ホスト・マシン内のクライアントが仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子とホスト・マシンのアドレスをサーバに送信する。その結果、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバは、クライアントが送信したパケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
本発明をより分かり易くするために、以下では、具体的な諸実施形態を例として用いて本発明をさらに説明する。以下で列挙した諸実施形態は、本発明の諸実施形態の一部にすぎず、当業者は本発明の内容から他の諸実施形態を容易に理解でき、したがって、それらは本発明の範囲内にあることに留意されたい。
1実施形態では、仮想マシン・マイグレーションを決定するための方法を提供する。当該方法は、通信装置に関する要件を大幅に緩和することができ、それにより、デプロイメントのコストが低下する。仮想マシンの一意な識別子がMAXアドレスである図4を例として参照すると、当該方法は以下を含んでもよい。
(1)仮想マシンが、仮想マシンのMACアドレスを運搬するパケットを送信する。仮想マシンが送信したパケットがARPパケットであってもよい。
(2)クライアントが、クライアントが配置されたホスト・マシン上の仮想マシンのMAXアドレスを取得し、仮想マシンのMAXアドレスを格納するために使用されるローカル・レコードを生成する。
クライアントがホスト・マシン上の仮想スイッチに配置されている場合には、クライアントは、ホスト・マシン上の仮想マシンにより送信されたパケットを直接インターセプトし当該パケットを解析して当該パケットのソースMAXアドレス、即ち、ホスト・マシン上の仮想マシンのMACアドレスを取得することによって、ホスト・マシン上の仮想マシンのMACアドレスを取得してもよい。クライアントがセキュア仮想マシンまたは物理ネットワーク・アダプタに接続されたコンポーネントに配置されている場合には、クライアントは、仮想スイッチにより転送されたパケットを受信し当該パケットを解析してソースMACアドレス、即ち、ホスト・マシン上の仮想マシンのMACアドレスを取得することによって、ホスト・マシン上の仮想マシンのMACアドレスを取得してもよい。
(3)クライアントが、仮想マシンの取得したMACアドレスをクライアントのローカル・レコード内のMACアドレスと比較して、仮想マシンの取得したMACアドレスがクライアントのローカル・レコードに存在するかどうかを判定する。仮想マシンの取得したMACアドレスがクライアントのローカル・レコードに存在する場合には、クライアントは動作を停止し、仮想マシンの取得したMACアドレスがクライアントのローカル・レコードに存在しない場合には、クライアントは次のステップ(4)を実施する。
(4)クライアントが、ホスト・マシンのアドレス(例えば、IPアドレス)を取得し、パケットを用いて、仮想マシンの取得したMACアドレスおよびホスト・マシンの取得したアドレスをサーバに送信する。
(5)仮想マシンのMACアドレスとホスト・マシンのアドレスを運搬するパケットを受信した後、サーバは受信成功を示す応答パケットをクライアントに送信する。
(6)仮想マシンのMACアドレスとホスト・マシンのアドレスを運搬するパケットの受信にサーバが成功したとクライアントが当該応答パケットに従って判定した場合には、クライアントは、仮想マシンのMACアドレスをクライアントのローカル・レコードに追加する。
(7)サーバが、仮想マシンと仮想マシンに対応するホスト・マシンの間の関係の記録を維持し、クライアントにより送信された仮想マシンのMACアドレスを受信した後にローカル・レコードを検索し、当該MACアドレスがサーバのローカル・レコードに存在するかどうかを判定する。当該MACアドレスがサーバのローカル・レコードに存在しない場合には、サーバは、仮想マシンが新たに有効になった仮想マシンであるとみなし、仮想マシンのMACアドレスをサーバのローカル・レコードに追加し、仮想マシンがマイグレートされていないと判定する。当該MACアドレスがサーバのローカル・レコードに存在する場合には、サーバはステップ(8)を実施する。
(8)サーバが、仮想マシンのMACアドレスに対応するホスト・マシンのアドレスを求めてサーバのローカル・レコードを検索し、当該サーバのローカル・レコードで発見されクライアントにより送信された仮想マシンのMACアドレスに対応するホスト・マシンのアドレスとホスト・マシンのアドレスを比較して、これらの2つのアドレスが同一であるかどうかを判定する。当該2つのアドレスが同一である場合には、サーバは、当該MACアドレスに対応する仮想マシンがマイグレートされていないと判定し、当該2つのアドレスが異なる場合には、サーバは、当該MACアドレスに対応する仮想マシンがマイグレートされていると判定し、サーバはステップ(9)を実施する。
(9)仮想マシンがマイグレートされていることを学習した後、サーバは、サーバのローカル・レコードを更新し、関連するセキュリティ・ソフトウェアにセキュリティ・ポリシの調整を通知する。サーバのローカル・レコードを更新するステップが特に、仮想マシンのMACアドレスに対応しサーバのローカル・レコードに格納されているホスト・マシンのアドレスを、クライアントにより送信されたパケットで運搬されるホスト・マシンのアドレスとなるように更新するステップであってもよい。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための方法によれば、ホスト・マシン内のクライアントは、仮想マシンのMACアドレスとホスト・マシンのアドレスを取得し、仮想マシンの当該MACアドレスとホスト・マシンのアドレスをサーバに送信する。その結果、仮想マシンの当該MACアドレスがサーバのローカル・レコードに存在する場合には、サーバは、クライアントが送信したパケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの当該MACアドレスに対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
当該実施形態における方法のステップの全部または一部を、関連するハードウェアに指示するプログラムにより実装してもよいことは当業者には理解される。当該プログラムをコンピュータ可読記憶媒体に格納してもよい。当該記憶媒体が読取専用メモリ、磁気ディスク、または光ディスクを備えてもよい。
図5Aは、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の構造ブロック図である。図5Aを参照すると、本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための装置50は、処理ユニット51、送信ユニット52、および格納ユニット53を備える。
処理ユニット51は、当該装置が配置されているホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを取得するように構成される。
送信ユニット52は、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在しないと処理ユニット51が判定した場合に、サーバが、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、ホスト・マシンが配置されたネットワーク内の当該サーバにパケットを送信するように構成される。当該パケットが仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬する。
格納ユニット53は、仮想マシンの一意な識別子がローカル・レコードに存在しないと処理ユニット51が判定した場合に、仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新するように構成される。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための装置によれば、仮想マシン・マイグレーションを決定するための装置は、ホスト・マシン内にあり、仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子とホスト・マシンのアドレスをサーバに送信する。その結果、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバは、仮想マシン・マイグレーションを決定するための装置が送信したパケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
場合によっては、本発明の1実施形態では、処理ユニット51は、仮想マシンの一意な識別子を運搬するホスト・マシン上の仮想マシンからのパケットをインターセプトし、仮想マシンの一意な識別子を当該インターセプトしたパケットから取得するように構成されるか、または、処理ユニット51は、ホスト・マシン上の仮想スイッチにより転送されるホスト・マシン上の仮想マシンから、ホスト・マシン上の仮想マシンの一意な識別子を運搬するパケットを受信し、ホスト・マシン上の仮想マシンの一意な識別子を当該受信パケットから取得するように構成される。
さらに、本発明の別の実施形態では、図5Bに示すように、装置50がさらに、格納ユニット53が仮想マシンの一意な識別子をローカル・レコードに追加する前に、受信成功を示しサーバにより送信される応答パケットを受信するように構成された受信ユニット54を備えてもよい。この場合、格納ユニット53は特に、受信成功を示しサーバにより送信される応答パケットを当該受信ユニットが受信したときに、仮想マシンの一意な識別子をローカル・レコードに追加するように構成される。
本発明の諸実施形態の図5Aおよび図5Bで提供した仮想マシン・マイグレーションを決定するための装置を、ホスト・マシン内のセキュア仮想マシン、ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続されたホスト・マシン内のコンポーネントに配置してもよいことに留意されたい。物理ネットワーク・アダプタに接続されたコンポーネントは物理コンポーネントに限定されず、ソフトウェアの形式で実装したコンポーネントであってもよい。具体的な動作手続きについては、当該方法の実施形態におけるクライアントに関する説明を参照されたい。ここでは繰り返さない。
図6Aは、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するための装置の構造ブロック図である。図6Aを参照すると、本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための装置は、受信ユニット61、決定ユニット62、および格納ユニット63を備える。
受信ユニット61は、ホスト・マシン内のクライアントにより送信されたパケットを受信するように構成される。当該パケットは、ホスト・マシン上の仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬する。
決定ユニット62は、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在するかどうかを判定するように構成される。
格納ユニット63は、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在しないと決定ユニット62が判定した場合に仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係を当該装置のローカル・レコードに追加するように構成される。
決定ユニット62はさらに、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在する場合には、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定するように構成される。
さらに、本発明の1実施形態では、図6Bに示すように、当該装置がさらに、受信ユニット61がクライアントにより送信されたパケットを受信した後に、クライアントが仮想マシンの一意な識別子をクライアントのローカル・レコードに追加するように、受信成功を示す応答パケットをクライアントに送信するように構成された送信ユニット64を備えてもよい。
さらに、図6Cに示すように、当該装置はさらに、当該パケットで運搬されるホスト・マシンのアドレスが当該装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンの一意な識別子に対応し当該装置のローカル・レコードに格納されたホスト・マシンのアドレスを当該パケットで運搬されるホスト・マシンのアドレスとなるように更新するように構成された更新ユニット65を備える。
本発明の当該実施形態で提供する仮想マシン・マイグレーションを決定するための装置によれば、ホスト・マシン内のクライアントが仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子およびホスト・マシンのアドレスを仮想マシン・マイグレーションを決定するための装置に送信し、その結果、仮想マシンの一意な識別子が当該装置のローカル・レコードに存在する場合に、仮想マシン・マイグレーションを決定するための装置が、クライアントが送信したパケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
仮想マシン・マイグレーションを決定するための装置の実施形態では、当該ユニット分割は論理機能分割にすぎず、本発明は、対応する機能を実装できる限り、上述の分割に限定されないことに留意されたい。さらに、当該機能ユニットの具体的な名前は当該ユニットを互いに区別する目的で提供したにすぎず、本発明の保護範囲を限定しようとするものではない。
本発明の諸実施形態の図6A乃至図6Cで提供した仮想マシン・マイグレーションを決定するための装置の動作手続きは本明細書における仮想マシン・マイグレーションを決定するための方法におけるサーバに対応し、仮想マシン・マイグレーションを決定するための方法を上で詳細に説明し、上述の方法の実施形態における関連説明は当該装置の諸実施形態にも適用可能であるので、詳細についてはここでは再度説明することはしないことに留意されたい。
図7は、本発明の1実施形態に従う仮想マシン・マイグレーションを決定するためのクライアント装置の略図である。図7を参照すると、本発明の当該実施形態の仮想マシン・マイグレーションを決定するためのクライアント装置500が、上述の方法の実施形態における機能を実装できる任意のネットワーク装置、例えば、ルータ、スイッチ、またはネットワーク・アダプタであってもよい。仮想マシン・マイグレーションを決定するためのクライアント装置500がプロセッサ510、通信インタフェース520、メモリ530、およびバス540を備えてもよい。
プロセッサ510、通信インタフェース520、およびメモリ530は、バス540を用いて相互通信を実現する。通信インタフェース520は外部ネットワーク要素と通信するように構成される。
メモリ530はプログラム532を格納するように構成される。メモリ530が高速RAMメモリを有してもよく、不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つのディスク・メモリを備えてもよい。
特に、プログラム532がプログラム・コードを含んでもよく、当該プログラム・コードはコンピュータ動作命令を含む。
プロセッサ510は、中央演算装置CPUまたは特定用途向け集積回路ASIC(Application Specific Integrated Circuit)であってもよく、または、本発明の当該実施形態の1つまたは複数の集積回路であるように構成してもよい。
プロセッサ510は、プログラム532を読み取り、クライアント装置が配置されたホスト・マシンの仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子がクライアント装置のローカル・レコードに存在しない場合には、サーバが、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、ホスト・マシンが配置されたネットワーク内の当該サーバに、仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬するパケットを送信し、仮想マシンの一意な識別子をローカル・レコードに追加してローカル・レコードを更新する動作を実施するように構成される。
本発明の当該実施形態で提供するクライアント装置は、仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子とホスト・マシンのアドレスをサーバに送信する。その結果、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバは、パケットで運搬されているホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
場合によっては、本発明の1実施形態では、プロセッサ510は、ホスト・マシン上の仮想マシンの一意な識別子を運搬するホスト・マシン上の仮想マシンからのパケットをインターセプトし、ホスト・マシン上の仮想マシンの一意な識別子を当該インターセプトしたパケットから取得する動作を実施するように構成されるか、または、プロセッサ510は、ホスト・マシン上の仮想マシンの一意な識別子を運搬する、ホスト・マシン上の仮想スイッチにより転送されるホスト・マシン上の仮想マシンからパケットを受信し、ホスト・マシン上の仮想マシンの一意な識別子を当該受信パケットから取得する動作を実施するように構成される。仮想マシンが送信したパケットがARPパケットであってもよい。
本発明の別の実施形態では、さらに、プロセッサ510はさらに、受信成功を示しサーバにより送信される応答パケットを受信する動作と、受信成功を示しサーバにより送信される応答パケットを受信したとき、仮想マシンの一意な識別子をクライアント装置のローカル・レコードに追加する動作とを実施するように構成される。
本発明の当該実施形態で提供するクライアント装置を、ホスト・マシン内のセキュア仮想マシン、ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続されたホスト・マシン内のコンポーネントに配置してもよいことに留意されたい。物理ネットワーク・アダプタに接続されたコンポーネントは物理コンポーネントに限定されず、ソフトウェアの形式で実装したコンポーネントであってもよい。
図8は、本発明の1実施形態に従うサーバ装置の略図である。図8を参照すると、本発明の当該実施形態のサーバ装置600が、対応する機能を実装できる任意のネットワーク装置、例えば、ルータ、スイッチ、またはネットワーク・アダプタであってもよい。サーバ装置600は、プロセッサ610、通信インタフェース620、メモリ630、およびバス640を備える。
プロセッサ610、通信インタフェース620、およびメモリ630は、バス640を用いて相互通信を実現する。通信インタフェース620は外部ネットワーク要素と通信するように構成される。
メモリ630はプログラム632を格納するように構成される、メモリ630が高速RAMメモリを有してもよく、不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つのディスク・メモリを備えてもよい。
特に、プログラム632がプログラム・コードを含んでもよく、当該プログラム・コードはコンピュータ動作命令を含む。
プロセッサ610は、中央演算装置CPUまたは特定用途向け集積回路ASIC(Application Specific Integrated Circuit)であってもよく、または、本発明の当該実施形態の1つまたは複数の集積回路であるように構成してもよい。
プロセッサ610は、メモリ630内の当該プログラムを読み取り、ホスト・マシン内のクライアントにより送信された、仮想マシンの一意な識別子とクライアントが配置されているホスト・マシンのアドレスを運搬するパケットを受信し、仮想マシンの一意な識別子がサーバ装置のローカル・レコードに存在しない場合には、仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係をサーバ装置のローカル・レコードに追加し、仮想マシンの一意な識別子がサーバ装置のローカル・レコードに存在する場合には、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンがマイグレートされていると判定する動作を実施するように構成される。
さらに、本発明の1実施形態では、プロセッサ610はさらに、クライアントにより送信されたパケットを受信した後に、受信成功を示す応答パケットをクライアントに送信して、クライアントが仮想マシンの一意な識別子をサーバ装置のローカル・レコードに追加するようにする動作を実施するように構成される。
さらに、本発明の1実施形態では、プロセッサ610はさらに、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、仮想マシンの一意な識別子に対応しサーバ装置のローカル・レコードに格納されているホスト・マシンのアドレス装置を当該パケットで運搬されるホスト・マシンのアドレスであるように更新する動作を実施するように構成される。
本発明の当該実施形態により提供されるサーバ装置は、仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬しサーバ装置が配置されたネットワーク内のクライアントにより送信されるパケットを受信し、その結果、仮想マシンの一意な識別子がサーバのローカル・レコードに存在する場合には、サーバ装置は、当該パケットで運搬されるホスト・マシンのアドレスがローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定することによって、仮想マシンがマイグレートされているかどうかを判定することができる。このように、仮想マシン・マイグレーションは仮想マシン・マイグレーションに必要な特定の通信プロトコルを利用せずに決定され、特定の通信プロトコルをサポートする通信装置は必要でない。したがって、通信装置に対する要件は大幅に緩和され、それにより、デプロイメントのコストが低下する。
本発明の諸実施形態で提供したクライアント装置とサーバ装置は本明細書における仮想マシン・マイグレーションを決定するための方法に対応し、仮想マシン・マイグレーションを決定するための方法は上で詳細に説明し、当該方法の実施形態の関連説明はクライアント装置とサーバ装置の諸実施形態にも適用可能であるので、詳細についてはここでは再度説明することはしないことに留意されたい。
さらに、本発明の諸実施形態で提供したクライアント装置とサーバ装置は物理クライアント装置および物理サーバ装置に限定されず、ソフトウェアにより実装されハードウェアに基づくクライアント装置およびサーバ装置であってもよいことに留意されたい。
本発明の1実施形態ではさらに、仮想マシン・マイグレーションを決定するためのシステムを提供する。当該システムは、図7に示す少なくとも1つクライアント装置と図8に示す少なくとも1つサーバ装置を備える。具体的な配置方式については、上述の図2B乃至図2Dを参照されたい。
当該システム内のクライアント装置は、クライアント装置が配置されたホスト・マシンの仮想マシンの一意な識別子とホスト・マシンのアドレスを取得し、仮想マシンの一意な識別子がクライアントのローカル・レコードに存在しない場合には、サーバ装置が、仮想マシンの一意な識別子とホスト・マシンのアドレスに従って、仮想マシンがマイグレートされているかどうかを判定するように、仮想マシンの一意な識別子とホスト・マシンのアドレスを運搬するパケットをホスト・マシンが配置されたネットワーク内の当該サーバ装置に送信し、仮想マシンの一意な識別子をローカル・レコードに追加してクライアント装置のローカル・レコードを更新するように構成される。
サーバ装置は、ネットワーク内のクライアント装置が送信した、仮想マシンの一意な識別子とクライアント装置が配置されたホスト・マシンのアドレスを運搬するパケットを受信するように構成され、仮想マシンの一意な識別子がサーバ装置のローカル・レコードに存在しない場合には、サーバ装置が仮想マシンの一意な識別子とホスト・マシンのアドレスの対応関係をサーバ装置のローカル・レコードに追加し、仮想マシンの一意な識別子がサーバ装置のローカル・レコードに存在する場合には、サーバ装置は、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバ装置のローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じである場合には、サーバ装置は、仮想マシンがマイグレートされていないと判定し、当該パケットで運搬されるホスト・マシンのアドレスがサーバのローカル・レコード内の仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合には、サーバ装置は、仮想マシンがマイグレートされていると判定する。
本発明の各態様または各態様の可能な実装方式を特に、システム、方法、またはコンピュータ・プログラム製品として実装してもよいことは当業者には理解される。したがって、本発明の各態様または各態様の可能な実装方式が、完全なハードウェア実施形態、(ファームウェア、常駐ソフトウェア等を含む)完全なソフトウェア実施形態、またはソフトウェアおよびハードウェア態様を組み合せた実施形態の形を使用してもよく、本明細書ではそれらを集合的に「回路」、「モジュール」、または「システム」と称する。さらに、本発明の各態様または各態様の可能な実装方式がコンピュータ・プログラム製品の形を使用してもよい。当該コンピュータ・プログラム製品は、コンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードを指す。
当該コンピュータ可読媒体がコンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。当該コンピュータ可読記憶媒体には、電気、磁気、光、電磁気、赤外線、または半導体システム、デバイス、もしくは装置、またはそれらの任意の適切な組合せ、例えば、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能読取専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、または可搬型読取専用メモリ(CD−ROM)が含まれるがこれらに限らない。
コンピュータ内のプロセッサはコンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードを読み出す。その結果、当該プロセッサは、流れ図における各ステップまたはステップの組合せで定義した機能的動作を実施でき、ブロック図における各ブロックまたはブロックの組合せで定義した機能的動作を実施する装置が生成される。
当該コンピュータ可読プログラム・コードを、独立なソフトウェア・パッケージとして使用して、ユーザのコンピュータで完全に実施することができ、ユーザのコンピュータで部分的に実施することができ、ユーザのコンピュータで部分的に実施しリモート・コンピュータで部分的に実施することができ、または、リモート・コンピュータまたはサーバで完全に実施することができる。幾つかの代替的な実装では、ブロック図内のブロックで示した流れ図または機能の諸ステップを当該図で示した順序に従って行わなくてもよいことに留意されたい。例えば、必要な機能に応じて、連続的に示した2つのステップまたは2つのブロックをほぼ同時に実施してもよく、または、これらのブロックを場合によっては逆の順序で実施してもよい。
上述の説明は、本発明の具体的な実装方式にすぎず、本発明の保護範囲を限定しようとするものではない。本発明で開示した技術的範囲に入る当業者が容易に想到する任意の変形または置換は本発明の保護範囲に入るものとする。したがって、本発明の保護範囲は添付の特許請求の範囲の保護範囲に支配される。
50 仮想マシン・マイグレーションを決定するための装置
51 処理ユニット
52 送信ユニット
53 格納ユニット
54 受信ユニット
60 仮想マシン・マイグレーションを決定するための装置
61 受信ユニット
62 決定ユニット
63 格納ユニット
64 送信ユニット
65 更新ユニット
500 クライアント装置
510 プロセッサ
520 通信インタフェース
530 メモリ
532 プログラム
540 通信バス
600 サーバ装置
610 プロセッサ
620 通信インタフェース
630 メモリ
632 プログラム
640 通信バス

Claims (12)

  1. 仮想マシン・マイグレーションを決定するための方法であって、
    ホスト・マシン内のクライアントにより、前記ホスト・マシン上の仮想マシンの一意な識別子および前記ホスト・マシンのアドレスを取得するステップと、
    前記仮想マシンの一意な識別子が前記クライアントのローカル・レコードに存在しない場合には、前記クライアントにより、前記ホスト・マシンが配置されたネットワーク内のサーバにパケットを送信するステップであって前記クライアントのローカル・レコードが前記ホスト・マシンのキャッシュ内に格納され、前記パケットは前記仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを運搬し、前記パケットはサーバに、前記仮想マシンの一意な識別子が前記サーバのレコード内に存在し、かつ前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバの前記レコード内の前記仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合に、前記仮想マシンがマイグレートされていると判定させる、ステップと、
    前記クライアントにより、前記仮想マシンの一意な識別子を前記ローカル・レコードに追加して前記ローカル・レコードを更新するステップ
    を含
    ホスト・マシン内のクライアントにより、前記ホスト・マシン上の仮想マシンの一意な識別子を取得するステップは、
    前記ホスト・マシン内のクライアントにより、前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンからインターセプトし、前記仮想マシンの一意な識別子を前記インターセプトしたパケットから取得するステップか、
    または、
    前記ホスト・マシン内のクライアントにより、前記ホスト・マシン上の仮想スイッチにより転送され前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンから受信し、前記受信したパケットから前記仮想マシンの一意な識別子を取得するステップを
    含む、方法。
  2. 前記クライアントにより、前記仮想マシンの一意な識別子を前記ローカル・レコードに追加する前に、
    前記クライアントにより、受信成功を示し前記サーバにより送信される応答パケットを受信するステップと、
    受信成功を示し前記サーバにより送信される前記応答パケットを受信したとき、前記クライアントにより、前記仮想マシンの一意な識別子を前記ローカル・レコードに追加する
    ステップと、
    をさらに含む、請求項1に記載の方法。
  3. 前記一意な識別子は、前記仮想マシンのMACアドレス、または前記仮想マシンの静的に構成されたIPアドレスである、請求項1または2に記載の方法。
  4. 前記クライアントは、前記ホスト・マシン内のセキュア仮想マシン、前記ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続された前記ホスト・マシン内のコンポーネントに配置される、請求項1乃至の何れか1項に記載の方法。
  5. 仮想マシン・マイグレーションを決定するための装置であって、
    前記装置が配置されているホスト・マシン上の仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを取得するように構成された処理ユニットと、
    前記処理ユニットが前記仮想マシンの一意な識別子が前記装置のローカル・レコードに存在しないと前記処理ユニットが判定した場合に、前記ホスト・マシンが配置されたネットワーク内のサーバにパケットを送信するように構成された送信ユニットであって、クライアントのローカル・レコードが前記ホスト・マシンのキャッシュ内に格納され、前記パケットが前記仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを運搬し、前記パケットはサーバに、前記仮想マシンの一意な識別子が前記サーバのレコード内に存在し、かつ前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバの前記レコード内の前記仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合に、前記仮想マシンがマイグレートされていると判定させる、送信ユニットと、
    前記仮想マシンの一意な識別子が前記ローカル・レコードに存在しないと前記処理ユニットが判定した場合には、前記仮想マシンの一意な識別子を前記ローカル・レコードに追加して前記ローカル・レコードを更新するように構成された格納ユニットと、
    を備え、
    前記処理ユニットは、前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンからインターセプトし、前記仮想マシンの一意な識別子を前記インターセプトしたパケットから取得するように構成されるか、
    または、
    前記処理ユニットは、前記ホスト・マシン上の仮想スイッチにより転送され前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンから受信し、前記ホスト・マシン上の前記仮想マシンの一意な識別子を受信した前記パケットから取得ように構成される、装置。
  6. 前記装置は、前記格納ユニットが前記仮想マシンの一意な識別子を前記ローカル・レコードに追加する前に、受信成功を示し前記サーバにより送信される応答パケットを受信するように構成された受信ユニットをさらに備え、
    前記格納ユニットは特に、受信成功を示し前記サーバにより送信される前記応答パケットを前記受信ユニットが受信したときに、前記仮想マシンの一意な識別子に関する情報を前記ローカル・レコードに追加するように構成される、
    請求項に記載の装置。
  7. 前記装置は、前記ホスト・マシン内のセキュア仮想マシン、前記ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続された前記ホスト・マシン内のコンポーネントに配置される、請求項に記載の装置。
  8. プロセッサ、通信インタフェース、メモリ、およびバスを備えたクライアント装置であって、
    前記プロセッサ、前記通信インタフェース、および前記メモリは前記バスを用いることにより相互通信を実現し、
    前記通信インタフェースは、外部ネットワーク要素と通信するように構成され、
    前記メモリはプログラムを格納するように構成され、
    前記プロセッサは、前記メモリ内の前記プログラムを読み取るとともに
    前記クライアント装置が配置されたホスト・マシンの仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを取得するステップと
    前記仮想マシンの一意な識別子が前記クライアント装置のローカル・レコードに存在しない場合に、前記ホスト・マシンが配置されたネットワーク内のサーバにパケットを送信するステップであって前記クライアントのローカル・レコードが前記ホスト・マシンのキャッシュ内に格納され、前記パケットは前記仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを運搬し、前記パケットはサーバに、前記仮想マシンの一意な識別子が前記サーバのレコード内に存在し、かつ前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバの前記レコード内の前記仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと異なる場合に、前記仮想マシンがマイグレートされていると判定させる、ステップと、
    前記仮想マシンの一意な識別子を前記ローカル・レコードに追加して前記ローカル・レコードを更新するステップを含む動作を実施するように構成され、
    前記プロセッサがさらに、
    前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンからインターセプトし、前記仮想マシンの一意な識別子を前記インターセプトしたパケットから取得するように構成されるか、
    または、
    前記ホスト・マシン上の仮想スイッチにより転送され前記仮想マシンの一意な識別子を運搬するアドレス解決プロトコルARPパケットを前記ホスト・マシン上の前記仮想マシンから受信し、前記受信したパケットから前記仮想マシンの一意な識別子を取得するように構成される、
    装置。
  9. 前記プロセッサはさらに、
    受信成功を示し前記サーバにより送信される応答パケットを受信する動作と、
    受信成功を示し前記サーバにより送信される前記応答パケットを受信したとき、前記仮想マシンの一意な識別子を前記ローカル・レコードに追加する動作と、
    を実施するように構成される、請求項に記載の装置。
  10. 前記装置は、前記ホスト・マシン内のセキュア仮想マシン、前記ホスト・マシン内の仮想スイッチ、または物理ネットワーク・アダプタに接続された前記ホスト・マシン内のコンポーネントに配置される、請求項またはに記載の装置。
  11. 請求項乃至10の何れか1項に記載の少なくとも1つクライアント装置と、少なくとも1つサーバ装置を備えた、仮想マシン・マイグレーションを決定するためのシステムであって、
    前記サーバ装置が、
    ホスト・マシン内のクライアントにより送信された、仮想マシンの一意な識別子と前記ホスト・マシンのアドレスを運搬するパケットを受信し、前記仮想マシンの一意な識別子が前記サーバ装置のローカル・レコードに存在しない場合には、前記仮想マシンの一意な識別子と前記ホスト・マシンのアドレスの対応関係を前記サーバ装置の前記ローカル・レコード装置に追加し、
    前記仮想マシンの一意な識別子が前記サーバ装置の前記ローカル・レコードに存在する場合には、前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバ装置の前記ローカル・レコード内の前記仮想マシンの一意な識別子に対応するホスト・マシンのアドレスと同じであるかどうかを判定し、
    前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバ装置の前記ローカル・レコード内の前記仮想マシンの一意な識別子に対応する前記ホスト・マシンのアドレスと同じである場合には、前記仮想マシンがマイグレートされていないと判定し、
    前記パケットで運搬される前記ホスト・マシンのアドレスが前記サーバ装置の前記ローカル・レコード内の前記仮想マシンの一意な識別子に対応する前記ホスト・マシンのアドレスと異なる場合には、前記仮想マシンがマイグレートされていると判定するように構成される、システム
  12. プログラムを格納するコンピュータ可読記憶媒体であって、前記プログラムは、請求項1乃至の何れか1項に記載の方法を実施するための機械により実行可能な命令を含む、コンピュータ可読記憶媒体。
JP2015528834A 2012-12-13 2012-12-13 仮想マシン・マイグレーションを決定するための方法および装置 Active JP6037016B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/086524 WO2014089799A1 (zh) 2012-12-13 2012-12-13 一种确定虚拟机漂移的方法和装置

Publications (2)

Publication Number Publication Date
JP2015537261A JP2015537261A (ja) 2015-12-24
JP6037016B2 true JP6037016B2 (ja) 2016-11-30

Family

ID=48838357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015528834A Active JP6037016B2 (ja) 2012-12-13 2012-12-13 仮想マシン・マイグレーションを決定するための方法および装置

Country Status (6)

Country Link
US (1) US9571569B2 (ja)
EP (1) EP2866393B1 (ja)
JP (1) JP6037016B2 (ja)
KR (1) KR101857511B1 (ja)
CN (1) CN103229478B (ja)
WO (1) WO2014089799A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529995B2 (en) * 2011-11-08 2016-12-27 Varmour Networks, Inc. Auto discovery of virtual machines
US9560081B1 (en) 2016-06-24 2017-01-31 Varmour Networks, Inc. Data network microsegmentation
US9866436B2 (en) * 2014-12-01 2018-01-09 Brocade Communications Systems, Inc. Smart migration of monitoring constructs and data
US9467476B1 (en) 2015-03-13 2016-10-11 Varmour Networks, Inc. Context aware microsegmentation
US10178070B2 (en) 2015-03-13 2019-01-08 Varmour Networks, Inc. Methods and systems for providing security to distributed microservices
US9609026B2 (en) 2015-03-13 2017-03-28 Varmour Networks, Inc. Segmented networks that implement scanning
KR101952651B1 (ko) * 2015-05-11 2019-05-22 삼성에스디에스 주식회사 분산 컴퓨팅 환경을 위한 고유 식별자 생성 방법 및 그 장치
CN107122224A (zh) * 2016-02-25 2017-09-01 中兴通讯股份有限公司 一种数据传输方法、虚拟机和宿主机
US9787639B1 (en) 2016-06-24 2017-10-10 Varmour Networks, Inc. Granular segmentation using events
US11223537B1 (en) * 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
CN107360095B (zh) * 2017-07-13 2020-06-23 惠州高盛达科技有限公司 基于客户端主机名称的端口转发在路由器中的实现方法
CN110661675B (zh) * 2018-06-29 2021-07-27 中国电信股份有限公司 检测客户主机网络漂移的方法和系统
CN111143030B (zh) * 2019-12-19 2023-04-28 北京可信华泰信息技术有限公司 一种云环境可信虚拟机的迁移方法
CN111679885B (zh) * 2020-05-29 2023-10-13 泰康保险集团股份有限公司 确定虚拟机漂移方法、装置、介质及电子设备
US11563731B2 (en) * 2020-12-17 2023-01-24 Argo Ai Llc Method of re-assigning address to network device
JP2022112614A (ja) * 2021-01-22 2022-08-03 株式会社日立製作所 リソースの移動スケジュールを決定する装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
WO2007071116A1 (en) * 2005-12-23 2007-06-28 Intel Corporation Managing device models in a virtual machine cluster environment
US8336094B2 (en) * 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
CN101631110B (zh) 2008-07-15 2013-01-02 国际商业机器公司 基于相对位置动态确定连接建立机制的装置和方法
JP5293580B2 (ja) * 2009-03-19 2013-09-18 日本電気株式会社 ウェブサービスシステム、ウェブサービス方法及びプログラム
JP5446040B2 (ja) 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
US8705513B2 (en) * 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
JP2011198299A (ja) 2010-03-23 2011-10-06 Fujitsu Ltd プログラム、コンピュータ、通信装置および通信制御システム
JP2012203625A (ja) * 2011-03-25 2012-10-22 Nec Corp 論理サーバ運用システム、及び論理サーバ運用方法
CN102821028B (zh) 2011-06-08 2016-03-30 上海贝尔股份有限公司 支持虚拟机在多协议标签网络中迁移的方法和相应的设备
CN102821023B (zh) * 2012-08-07 2016-12-21 杭州华三通信技术有限公司 一种vlan配置动态迁移的方法及装置

Also Published As

Publication number Publication date
EP2866393A1 (en) 2015-04-29
EP2866393A4 (en) 2015-05-20
CN103229478A (zh) 2013-07-31
WO2014089799A1 (zh) 2014-06-19
KR101857511B1 (ko) 2018-06-20
US9571569B2 (en) 2017-02-14
JP2015537261A (ja) 2015-12-24
CN103229478B (zh) 2015-07-29
US20150281347A1 (en) 2015-10-01
KR20150036597A (ko) 2015-04-07
EP2866393B1 (en) 2024-02-14

Similar Documents

Publication Publication Date Title
JP6037016B2 (ja) 仮想マシン・マイグレーションを決定するための方法および装置
US11477085B2 (en) System, apparatus and method for dynamically updating the configuration of a network device
US8819211B2 (en) Distributed policy service
JP6014254B2 (ja) 通信の方法及びシステム
JP5890595B2 (ja) 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供
US20130107889A1 (en) Distributed Address Resolution Service for Virtualized Networks
EP3070887A1 (en) Communication method, device and system for virtual extensible local area network
US20120291024A1 (en) Virtual Managed Network
US20140044130A1 (en) Avoiding unknown unicast floods resulting from mac address table overflows
US20180069787A1 (en) Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
EP2499787A2 (en) Smart client routing
US9398121B1 (en) Selecting among virtual networking protocols
US10110668B1 (en) System and method for monitoring service nodes
US20200351286A1 (en) Configuring an island virtual switch for provisioning of network security services
US20160254958A1 (en) Method, apparatus and system for virtualizing a policy and charging rules function
CN104506654A (zh) 云计算系统及动态主机配置协议服务器备份方法
JP2014011674A (ja) ストレージシステム管理プログラム及びストレージシステム管理装置
JP5980724B2 (ja) ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム
CN111245637B (zh) 生成基于应用的代理自动配置
US9563388B2 (en) Sharing a hosted device in a computer network
WO2023216584A1 (zh) 一种获得应用感知网络标识的方法及相关设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6037016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250