KR101884498B1 - 가상 머신의 실시간 이전을 가능하게 하는 방법, 및 가상 머신의 실시간 이전을 제어하는 방법 및 가상 머신 관리자 - Google Patents
가상 머신의 실시간 이전을 가능하게 하는 방법, 및 가상 머신의 실시간 이전을 제어하는 방법 및 가상 머신 관리자 Download PDFInfo
- Publication number
- KR101884498B1 KR101884498B1 KR1020147001876A KR20147001876A KR101884498B1 KR 101884498 B1 KR101884498 B1 KR 101884498B1 KR 1020147001876 A KR1020147001876 A KR 1020147001876A KR 20147001876 A KR20147001876 A KR 20147001876A KR 101884498 B1 KR101884498 B1 KR 101884498B1
- Authority
- KR
- South Korea
- Prior art keywords
- host
- virtual machine
- mapping policy
- policy
- address
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
데이터 센터의 제 1 호스트 시스템에서 제 2 호스트 시스템으로의 가상 머신의 실시간 이전을 제어하는 방법 및 장치가 제공된다. 가상 머신 관리자는 가상 머신의 고객 주소를 이전된 가상 머신의 공급자 주소에 매핑하는 업데이트된 매핑 정책을 가상 네트워크에서 적어도 하나 이상의 호스트에게 효율적으로 배포할 수 있다. 업데이트된 매핑 정책으로 인해 가상 네트워크의 호스트들이 이전된 가상 머신과 통신할 수 있게 된다. 업데이트된 매핑 정책은 그림자 정책일 수 있다. 그림자 정책은 가상 머신의 실시간 이전이 완료되기 전에 가상 머신 관리자에 의해 가상 네트워크의 호스트들에게 전송되고, 트리거링될 때까지 수신 호스트들에 의해 휴지 상태로 유지된다. 가상 머신 관리자는 실시간 이전이 완료될 때 가상 네트워크의 호스트들에게 그림자 정책을 활성화시키라고 통지한다.
Description
본 발명은 제 1 호스트 시스템에서 제 2 호스트 시스템으로의 가상 머신(virtual machine)의 실시간 이전(live migration)에 관한 것이며, 특히, 가상 머신의 실시간 이전 동안 및 그 후에 패킷 손실을 제한하기 위한 방법 및 장치에 관한 것이다.
데이터 센터들은 고속 스위치와 라우터로 상호 연결된 수백개 또는 수천개의 서버를 포함할 수 있다. 클라우드(cloud) 데이터 센터들은 복수의 고객들에게 웹 애플리케이션, 이메일 서비스, 검색 엔진 서비스 등의 다양한 서비스를 제공할 수 있다. 최근에, 엔터프라이즈 IT의 데이터 센터 허브로의 대규모 통합과 클라우드 컴퓨팅 서비스 공급자들의 등장과 함께, 데이터 센터들은 컴퓨팅을 전환하였다.
가상 머신(VM) 기술에 의해, 하나의 물리적인 호스트 시스템에서 하나 이상의 운영 체제 또는 가상 머신이 동시에 실행될 수 있다. 가상 머신 기술의 장점들은 널리 인식되어 왔다. 이런 장점들 중에, 단일 호스트 시스템에서 다수의 가상 머신들을 실행시키는 기능이 있다.
실시간 이전을 통해, 가상 머신에서 실행 중인 운영 체제의 심각한 혼란 없이 그 실행 중인 가상 머신을 어느 하나의 호스트 시스템에서 다른 호스트 시스템으로 이동시킬 수 있다. 실시간 이전의 목표는 실행 중인 가상 머신의 심각한 혼란을 피하는 것이다. 그러나, 실시간 이전 중의 일부 패킷 손실은 허용된다.
가상 머신의 실시간 이전에는 많은 이유들이 있다. 이는 가상 머신을 현재 호스팅하고 있는 호스트 시스템에서의 부하의 증가, 호스팅 시스템의 결함 발생, 및 계획된 정비 또는 계획되지 않은 정비로 인해 가상 머신을 호스팅하는 호스트 시스템의 일시적인 사용 불가를 포함한다.
실시간 이전 중에, 이전 중인 가상 머신과 다른 가상 머신들 간에 활성화된 접속(active connections)을 유지하는 것이 바람직하다. 각각의 고객 주소(customer address)가 공급자 주소(provider address)에 매핑되는 가상화된 네트워크에서, 다른 가상 머신들은 여전히 오래된(stale) 주소 매핑을 갖고 있으므로, 이전 중인 가상 머신의 공급자 주소의 변경으로 인해 패킷이 누락될 것이다. 장기간의 패킷 손실은 타임 아웃으로 인해 접속을 끊어버리게 될 것이다.
본 발명은 데이터 센터의 제 1 호스트 시스템에서 제 2 호스트 시스템으로의 가상 머신의 실시간 이전을 제어하는 방법 및 장치를 제공한다. 몇몇 실시예에서, 가상 머신 관리자(virtual machine manager)는 가상 머신의 고객 주소를 이전된 가상 머신의 공급자 주소에 매핑하는 업데이트된 매핑 정책을 가상 네트워크에서 적어도 하나 이상의 호스트에게 효율적으로 배포한다. 업데이트된 매핑 정책으로 인해 가상 네트워크의 호스트들이 이전된 가상 머신과 통신할 수 있게 된다.
몇몇 실시예에서, 업데이트된 매핑 정책은 그림자 정책(shadow policy)이다. 그림자 정책은 가상 머신의 실시간 이전이 완료되기 전에 가상 머신 관리자에 의해 가상 네트워크의 호스트들에게 전송되고, 트리거링될(triggered) 때까지 수신 호스트들에 의해 휴지 상태(inactive state)로 유지된다. 가상 머신 관리자는 실시간 이전이 완료될 때 가상 네트워크의 호스트들에게 그림자 정책을 활성화시키라고 통지할 수 있다.
그림자 정책을 수신하는 호스트는 그림자 정책이 활성화될 때까지 가상 머신과의 통신을 위해 현재 매핑 정책을 사용하고, 그림자 정책이 활성화된 후에는 가상 머신과의 통신을 위해 그림자 정책을 사용한다. 어떤 경우에는, 그림자 정책은 실시간 이전이 완료되었다는 가상 머신 관리자로부터 수신된 통지에 응답하여 활성화된다. 다른 경우에는, 호스트는 그림자 정책에 매칭되는 패킷을 이전된 가상 머신으로부터 수신받으면 그림자 정책을 활성화시킨다.
다른 실시예에서, 제 1 호스트는 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신하였을 때까지 포워딩 정책(forwarding policy)에 따라 가상 머신으로 보내지는(addressed) 패킷들을 포워딩한다(forward). 제 1 호스트가 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신하였다는 통지를 수신할 때, 포워딩 정책은 비활성화된다(deactivated).
다른 실시예에서, 제 1 호스트는 오래된(stale) 매핑 정책에 따라 전송된 패킷을 제 3 호스트로부터 수신받은 것에 대응하여 제 3 호스트에게 업데이트된 매핑 정책을 전송하도록 가상 머신 관리자에게 요청할 수 있다. 이런 실시예에서는 "lazy push(게으른 푸시)" 기법에 따라 반응 정책(reactive policy) 업데이트를 실행한다.
다른 실시예에서, 제 3 호스트는 현재 매핑 정책과 매칭되지 않는 패킷을 이전된 가상 머신으로부터 수신받은 것에 대응하여 업데이트된 매핑 정책을 전송하도록 가상 머신 관리자에게 요청할 수 있다. 이런 실시예에서는 "lazy pull(게으른 풀)" 기법에 따라 반응 정책 업데이트를 실행한다.
다른 실시예에서, 제 1 호스트는 가상 네트워크의 하나 이상의 다른 호스트들에게 업데이트된 매핑 정책을 직접 전송할 수 있다. 업데이트된 매핑 정책은, 업데이트된 매핑 정책과 매칭되지 않는 패킷을 수신에 대응하거나 또는 가상 네트워크의 다른 호스트들 중 어느 한 호스트의 요청에 따라 제 1 호스트에 의해 전송될 수 있다.
본 발명의 일 양태에 따르면, 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전을 제어하는 방법이 제공된다. 상기 방법은 가상 머신 관리자에 의해, 가상 머신이 제 1 호스트에서 제 2 호스트로 이전될 것임을 결정하는 단계, 및 가상 머신 관리자에 의해, 가상 머신을 포함하는 가상 네트워크의 적어도 하나의 제 3 호스트에게, 가상 머신의 고객 주소를 제 2 호스트의 이전된 가상 머신의 공급자 주소로 매핑시키는 업데이트된 매핑 정책을 전송하는 단계를 포함한다.
본 발명의 또 다른 양태에 따르면, 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전을 제어하는 방법이 제공된다. 상기 방법은 제 3 호스트에 의해, 가상 머신의 고객 주소를 제 2 호스트의 이전된 가상 머신의 공급자 주소로 매핑시키는 그림자 매핑 정책을 수신하는 단계, 제 3 호스트에 의해, 그림자 매핑 정책이 활성화될 때까지 가상 머신과의 통신에 현재 매핑 정책을 사용하는 단계, 및 제 3 호스트에 의해, 그림자 매핑 정책이 활성화된 후에 가상 머신과의 통신에 그림자 정책을 사용하는 단계를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 센터의 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전을 제어하는 가상 머신 관리자가 제공된다. 상기 가상 머신 관리자는 처리 장치, 및 처리 장치에 의해 실행될 때, 가상 머신이 제 1 호스트에서 제 2 호스트로 이전될 것임을 결정하고, 가상 머신을 포함하는 가상 네트워크의 적어도 하나의 제 3 호스트에게, 가상 머신의 고객 주소를 제 2 호스트의 이전된 가상 머신의 공급자 주소로 매핑시키는 업데이트된 매핑 정책을 전송하도록 구성된 명령어로 인코딩된 저장 매체를 포함한다.
본 발명의 더 나은 이해를 위해, 본원에 참조로써 통합된 첨부 도면을 참조한다.
도 1은 가상 머신의 실시간 이전을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 2는 실시간 이전의 간략화된 타임라인(timeline)이다.
도 3은 매핑 정책 업데이트를 도시하는, 실시간 이전의 간략화된 타임라인이다.
도 4는 포워드 패킷 전달(forward packet delivery)을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 5는 포워드 패킷 전달을 도시하는 순서도이다.
도 6은 역방향 터널링(reverse tunneling)을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 7은 역방향 터널링을 도시하는 순서도이다.
도 8은 그림자 매핑 정책의 사용을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 9는 그림자 매핑 정책의 제공 시에 가상 머신 관리자에 의해 실행되는 프로세스의 순서도이다.
도 10은 그림자 매핑 정책의 사용 시에 제 3 호스트에 의해 실행되는 프로세스의 순서도이다.
도 11은 게으른 푸시 기법에 따른 반응 정책 업데이트를 도시하는, 데이터 센터의 개략적인 블록도이다.
도 12는 게으른 푸시 기법에 따른 반응 정책 업데이트를 도시하는 순서도이다.
도 13은 게으른 풀 기법에 따른 반응 정책 업데이트를 도시하는, 데이터 센터의 개략적인 블록도이다.
도 14는 게으른 풀 기법에 따른 반응 정책 업데이트를 도시하는 순서도이다.
도 15는 호스트와 가상 머신의 개략적인 블록도이다.
도 16은 컴퓨팅 장치의 일 실시예의 개략적인 블록도이다.
도 1은 가상 머신의 실시간 이전을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 2는 실시간 이전의 간략화된 타임라인(timeline)이다.
도 3은 매핑 정책 업데이트를 도시하는, 실시간 이전의 간략화된 타임라인이다.
도 4는 포워드 패킷 전달(forward packet delivery)을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 5는 포워드 패킷 전달을 도시하는 순서도이다.
도 6은 역방향 터널링(reverse tunneling)을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 7은 역방향 터널링을 도시하는 순서도이다.
도 8은 그림자 매핑 정책의 사용을 도시하는, 데이터 센터의 개략적인 블록도이다.
도 9는 그림자 매핑 정책의 제공 시에 가상 머신 관리자에 의해 실행되는 프로세스의 순서도이다.
도 10은 그림자 매핑 정책의 사용 시에 제 3 호스트에 의해 실행되는 프로세스의 순서도이다.
도 11은 게으른 푸시 기법에 따른 반응 정책 업데이트를 도시하는, 데이터 센터의 개략적인 블록도이다.
도 12는 게으른 푸시 기법에 따른 반응 정책 업데이트를 도시하는 순서도이다.
도 13은 게으른 풀 기법에 따른 반응 정책 업데이트를 도시하는, 데이터 센터의 개략적인 블록도이다.
도 14는 게으른 풀 기법에 따른 반응 정책 업데이트를 도시하는 순서도이다.
도 15는 호스트와 가상 머신의 개략적인 블록도이다.
도 16은 컴퓨팅 장치의 일 실시예의 개략적인 블록도이다.
본 발명의 특징들을 통합하는 데이터 센터의 간략화된 개략적인 블록도가 도 1에 도시된다. 데이터 센터(10)는 데이터 센터 네트워크 패브릭(20)으로 상호 연결된 제 1 호스트(12), 제 2 호스트(14) 및 제 3 호스트(16)를 포함할 수 있다. 본원에서 사용된 바대로, "호스트"라는 용어는 물리적인 기계를 말하며, 통상적으로, 예를 들어, 도 16에 도시되고 아래에서 설명되는 서버나 다른 컴퓨팅 장치를 말한다. 데이터 센터(10)는 가상 머신 관리자(22)를 더 포함한다. 아래에서 설명되는 바와 같이 가상 머신 관리자(22)의 작업에 가상 머신의 실시간 이전의 제어가 포함된다.
데이터 센터(10)의 각각의 호스트는 하나 이상의 가상 머신(VM)을 포함할 수 있고, 가상 머신은 다른 가상 머신들과 관계없이 애플리케이션을 실행할 수 있는 완전한 운영 체제를 포함할 수 있다. 도 1에 도시된 바와 같이, 제 1 호스트(12)는 가상 머신들(30, 32 및 34)을 호스팅하고, 제 2 호스트(14)는 실시간 이전 후의 가상 머신(30m)을 호스팅하고, 제 3 호스트(16)는 가상 머신들(40, 42 및 44)를 호스팅한다. 이하에서 논의될 바와 같이, 가상 머신(30)은 제 1 호스트(12)에서 제 2 호스트(14)로의 실시간 이전에 의해 이동된다.
데이터 센터(10)의 각각의 호스트는 호스트의 가상 머신들 사이에서 데이터 패킷을 라우팅하기 위한 스위치를 포함할 수 있다. 단일 가상 머신의 경우, 스위치가 요구되지 않을 수 있다. 각각의 가상 머신은, 가상 머신이 위치한 호스트를 통한 외부 통신을 위한 네트워크 어댑터를 포함할 수 있다. 호스트 각각은 아래에서 설명될 바와 같은 실시간 이전 제어, 매핑 정책 테이블 업데이트, 패킷 포워딩(packet forwarding)을 위한 소프트웨어는 물론, 본 발명에 무관하지 않은 다른 작업들을 더 포함한다.
도 1의 예시에서, 가상 머신들(30, 32 및 40)은 제 1 가상 네트워크, 또는 격리 그룹(isolation group)의 일부이며, 가상 머신들(34, 42 및 44)은 제 2 가상 네트워크, 또는 격리 그룹의 일부이다. 두 가상 네트워크들의 가상 머신들이 동일한 호스트에 의해 호스팅되더라도, 이런 두 가상 네트워크들은 데이터 센터의 다른 두 고객에 대응할 수 있고 서로 격리되어 있다.
도 1에 추가적으로 도시된 바대로, 각각의 가상 머신은 고객 주소(AA(application address))와 공급자 주소(LA(location address))와 연계되어 있다. 고객 주소(AA)는 가상 머신의 IP 주소에 상응하고, 공급자 주소(LA)는 어느 하나의 호스트에서의 가상 머신의 물리적인 위치에 상응한다. 공급자 주소(LA)는 실시간 이전으로 변경되는 반면, 고객 주소(AA)는 고정되어 있다. 따라서, 예를 들어, 제 1 호스트(12)에서의 가상 머신(32)은 고객 주소(AA2)와 공급자 주소(LA2)를 갖고 있다. 각각의 가상 네트워크 내의 둘 이상의 가상 머신들은 동일한 고객 주소(AA)를 갖더라도, 각각의 가상 머신의 공급자 주소(LA)는 고유하다. 함께, 고객 주소(AA2)와 공급자 주소(LA2)는 주소 쌍(AA2:LA2)을 형성하고, 이는 가상 머신(32)에 대한 매핑 정책을 정의하게 된다. 아래에서 논의되는 바와 같이 매핑 정책은 가상 네트워크의 가상 머신들 간의 통신에서 사용된다.
가상 네트워크에 대한 많은 매핑 정책들이 그룹화되어, 도 1에 도시된 가상 네트워크 정책(50)과 같은 가상 네트워크 정책을 형성할 수 있다. 정책(50)은 제 1 호스트(12)에 속해 있고 제 1 가상 네트워크와 연계되며, 제 1 가상 네트워크는 가상 머신들(30, 32 및 40)을 포함하고 있으며 다른 가상 머신들(도시되지 않음)도 포함할 수 있다. 정책(50)의 각각의 항목(entry)은 가상 머신의 고객 주소(AA)와 공급자 주소(LA)를 포함하는 매핑 정책을 포함한다. 정책(50)의 각각의 항목은 필요에 따라 추가적인 정보를 포함할 수 있다. 도 1에 추가적으로 도시된 바와 같이, 제 2 호스트(14)는 가상 네트워크 정책(52)을 포함하고, 제 3 호스트(16)는 가상 네트워크 정책(54)을 포함하며, 가상 머신 관리자(22)는 가상 네트워크 정책(56)을 포함한다. 실시간 이전이 없을 때, 정책들(50, 52 및 54)은 현재 매핑 정보를 포함한다. 실시간 이전과 관련된 정책들의 업데이트가 아래에서 논의된다. 각각의 가상 네트워크 정책은 매핑 정보를 포함하는, 테이블과 같은, 임의의 구조를 가질 수 있음을 이해할 것이다.
앞서 언급한 대로, 가상 네트워크 정책(50)은 제 1 가상 네트워크의 각각의 머신에 대한 매핑 정책을 포함한다. 추가적인 가상 네트워크 정책들은 추가적인 가상 네트워크에 상응한다. 예를 들어, 제 1 호스트(12)와 제 3 호스트(16)의 별개의 정책들이 가상 머신들(34, 42 및 44)을 포함하는 제 2 가상 네트워크에 대한 매핑 정책들을 포함한다.
도 1에 추가적으로 도시된 바대로, 가상 머신(30)은, 화살표(48)로 표시되어 있는 것처럼, 실시간 이전에 의해 제 1 호스트(12)에서 제 2 호스트(14)로 이동하여, 이전된 가상 머신(30m)이 된다. 실시간 이전을 통해 가상 머신의 동작의 심각한 혼란 없이 실행 중인 가상 머신을 어느 하나의 호스트에서 다른 호스트로 이동시킬 수 있다. 실시간 이전은 가상 머신 관리자(22)에 의해 제어될 수 있다.
실시간 이전의 간략화된 타임라인이 도 2에 도시된다. 시각(60)에 이전 요청이 이루어진다. 실시간 이전은 이전 셋업, 게스트 메모리 이동 및 상태 이동을 포함한다. 실시간 이전 기법의 세부 사항은 종래에 공지되어 있으므로 상세하게 설명되지 않는다. 이전 셋업 및 게스트 메모리 이동 중에, 가상 머신(30)은, 도 2의 윗선(62)으로 표시된 바와 같이, 제 1 호스트(12)(원본(source) 호스트)에서 실행되고 있다. 상태 이동 중에, 가상 머신의 동작이 중단된다. 그리고 나서, 상태 이동이 완료되면, 이전된 가상 머신(30m)이, 도 2의 아랫선(64)으로 표시된 바와 같이, 제 2 호스트(14)(목표(target) 호스트)에서 실행된다. 실시간 이전은 시각(66)에 완료된다.
선(64)으로 표시된 바와 같이, 가상 머신이 목표 호스트에서 실행 중인 시간에, 가상 머신은 패킷을 전송하고 수신할 수 있다. 그러나, 가상 네트워크의 일부 또는 모든 호스트들이 구식의, 또는 오래된, 매핑 정책을 갖고 있을 수 있다. 특히, 도 1의 예시에서, 이전된 가상 머신(30m)의 고객 주소(AA1)는 변하지 않고 남아 있지만, 이전된 가상 머신(30m)의 공급자 주소가 공급자 주소(LA1)에서 공급자 주소(LA18)로 변경된다. 가상 머신(30m)의 새로운 공급자 주소(LA18)는 패킷 손실을 피하기 위해 가상 네트워크의 각각의 호스트의 정책 테이블에 반영되어야 한다. 일례로, 제 3 호스트(16)의 가상 머신(40)이 정책 테이블(54)의 오래된 매핑 정책을 사용하여 공급자 주소(LA1)에 있는 가상 머신(30)으로 패킷 전송을 시도할 수 있다. 아래에서 설명되는 바와 같이 패킷 포워딩이 없을 때, 패킷은 손실될 수 있다. 다른 예로, 이전된 가상 머신(30m)에 의해 물리적인 주소(LA18)로부터 제 3 호스트(16)의 가상 머신(40)으로 전송되는 패킷은, 수신된 패킷이 정책 테이블(54)에 있는 오래된 매핑 정책과 매칭되지 않기 때문에, 제 3 호스트(16)에 의해 폐기될 수 있다.
따라서, 가상 네트워크의 각각의 호스트의 매핑 정책이 실시간 이전을 반영하도록 업데이트된다. 도 3에 도시된 바와 같이, 적어도 실시간 이전이 시각(66)에 완료될 때까지는 실시간 이전 중에 현재 매핑 정책이 유효하다. 시각(66)에 실시간 이전이 완료되면, 업데이트된 매핑 정책이 적용될 수 있다. 그러나, 네트워크 지연 및 기타 요인으로 인해, 실시간 이전이 완료된 즉시 정책 업데이트를 마치는 것이 불가능하다. 따라서, 정책 업데이트가 실행되고 있는 동안, 오래된 정책 기간(stale policy period)(70)을 경험하게 된다. 정책 업데이트가 시각(72)에 완료될 때, 정상 동작이 재개될 수 있다. 패킷 손실을 제한하기 위해, 오래된 정책 기간(70)의 길이를 제한하는 것이 바람직하다.
도 1의 예시에서, 제 1 호스트(12)는 실시간 이전의 원본 호스트로 간주될 수 있고, 제 2 호스트(14)는 목표 호스트로 간주될 수 있다. 가상 머신은 한 번 이상 실시간 이전을 겪을 수 있으며, 다른 가상 머신들은 다른 시기에 실시간 이전을 겪을 수 있음을 이해할 것이다. 가상 네트워크의 호스트들의 매핑 정책들은 실시간 이전 각각을 반영하도록 업데이트 된다. 가상 머신 관리자(22)의 가상 네트워크 정책(56)의 업데이트는 화살표(58)로 도시되어 있고, 여기서 매핑 정책(AA1:LA1)이 업데이트된 매핑 정책(AA1:LA18)으로 대체된다.
도 4는 가상 머신(30)의 실시간 이전 다음에 포워드 패킷 전달을 도시하는, 데이터 센터(10)의 간략화된 개략적인 블록도이다. 도 4에서, 제 2 가상 네트워크의 가상 머신들이 간략하게 하기 위해 생략되었다. 도 5는 포워드 패킷 전달에 관한 프로세스의 순서도이다. 도 4에서, 제 1 호스트(12)의 가상 네트워크 정책(50), 제 2 호스트(14)의 가상 네트워크 정책(52) 및 가상 머신 관리자(22)의 가상 네트워크 정책(56)은 제 1 호스트(12)에서 제 2 호스트(14)로의 가상 머신(30)의 실시간 이전을 반영하도록 업데이트되었다. 제 3 호스트(16)의 가상 네트워크 정책(54)은 오래되었으며, 즉, 가상 머신(30)의 실시간 이전을 반영하도록 업데이트되지 않았다.
도 5를 참조하면, 제 1 호스트(12)에서 제 2 호스트(14)로의 가상 머신(30)의 실시간 이전이 동작(100)에서 실행된다. 동작(102)에서, 제 3 호스트(16)의 가상 머신(40)은 가상 머신(30)으로 패킷을 전송한다(도 4의 화살표 (1)). 가상 머신(40)은 가상 머신(30)의 고객 주소(AA1)를 사용한다. 패킷은, 고객 주소(AA3)에 있는 가상 머신이 고객 주소(AA1)에 있는 가상 머신으로 패킷을 전송하고 있음을 나타내는 주소 필드를 포함한다. 제 3 호스트(16)는 정책 테이블(54)의 오래된 매핑 정책에 따라 가상 머신(30)의 고객 주소를 공급자 주소(LA1)로 변환한다. 패킷은 공급자 주소(LA4)에 있는 가상 머신이 공급자 주소(LA1)에 있는 가상 머신으로 패킷을 전송하고 있음을 나타내는 주소 필드를 포함한다. 패킷은, 제 1 호스트(12)에서 제 2 호스트(14)로의 가상 머신(30)의 이전을 반영하지 않는 정책 테이블(54)의 오래된 매핑 정책에 따라, 제 3 호스트(16)에 의해 제 1 호스트(12)로 전송된다(도 4의 화살표 (2)).
동작(104)에서, 제 1 호스트(12)는 제 3 호스트(16)로부터 수신된 패킷이 오래된 매핑 정책에 따라 전송된 것임을 인식한다. 이에 대해, 제 1 호스트(12)는 이전된 가상 머신(30m)의 공급자 주소(LA18)를 반영하도록 수신된 패킷의 주소 필드를 수정하고, 모든 매핑 정책들이 업데이트될 때까지 유효한 포워딩 정책을 사용하여 제 2 호스트(14)에 수신된 패킷을 포워딩한다(도 4의 화살표 (3)). 동작(108)에서, 제 2 호스트(14)는 수신된 패킷의 목적지 주소를 해석해서, 이전된 가상 머신(30m)으로 패킷을 라우팅한다(도 4의 화살표 (4)). 가상 머신(30)에서 수신된 패킷의 주소 필드는 패킷이 고객 주소(AA3)를 갖고 있는 가상 머신(40)으로부터 수신되었음을 나타낸다.
동작(110)에서, 제 1 호스트(12)는 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신하였는지를 결정한다. 이는, 예를 들어, 가상 머신 관리자(22)로부터 수신된 통지에 기반하여 결정될 수 있다. 가상 네트워크의 모든 호스트들이 업데이트될 때까지, 제 1 호스트(12)는 이전된 가상 머신(30m)의 주소로 보내지는 패킷을 계속 포워딩한다. 패킷은 제 3 호스트(16)로부터 수신하거나 또는 가상 네트워크의 다른 호스트들(도시되지 않음)로부터 수신할 수 있다. 동작(112)에서, 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신할 때, 제 1 호스트(12)는 포워딩 정책을 비활성화시킨다.
도 6은 실시간 이전 다음의 역방향 터널링에 의한 포워딩을 도시하는, 데이터 센터(10)의 간략화된 개략적인 블록도이다. 도 6에서 데이터 센터(10)의 컴포넌트들은 도 4에 도시된 데이터 센터(10)의 컴포넌트들에 상응한다. 역방향 터널링의 순서도가 도 7에 도시된다. 제 1 호스트(12), 제 2 호스트(14) 및 가상 머신 관리자(22)는 제 1 호스트(12)에서 제 2 호스트(14)로의 가상 머신(30)의 이전을 반영하는 매핑 정책들을 업데이트하였다고 가정한다. 제 3 호스트(16)의 가상 네트워크 정책(54)에서의 매핑 정책은 오래되었으며, 가상 머신(30)의 이전을 반영하지 않는다.
동작(150)에서, 제 1 호스트(12)와 제 2 호스트(14)는 가상 머신(30)이 제 1 호스트(12)에서 제 2 호스트(14)로 이전되었다고 결정한다. 그러나, 제 1 호스트(12)와 제 2 호스트(14)는 가상 네트워크의 모든 호스트들의 매핑 정책이 업데이트되었다는 통지를 수신하지 않았다. 동작(152)에서, 이전된 가상 머신(30m)은 제 3 호스트(16)의 가상 머신(40)으로 패킷을 전송한다(도 6의 화살표 (1)). 패킷의 주소 필드는 패킷이 이전된 가상 머신(30m)의 고객 주소(AA1)에서 가상 머신(40)의 고객 주소(AA3)로 보내짐을 나타낸다. 동작(154)에서, 제 2 호스트(14)는 실시간 이전에 앞서, 이전된 가상 머신(30m)의 공급자 주소(LA18)와 가상 머신(30)의 공급자 주소(LA1)를 추가한다. 이로 인해 패킷은, 모든 네트워크 정책들이 업데이트될 때까지 유효한 역방향 터널링 정책을 사용하여 제 2 호스트(14)에 의해 공급자 주소(LA1)에 있는 제 1 호스트(12)로 전송된다(도 6의 화살표 (2)).
동작(156)에서, 제 1 호스트(12)는 제 2 호스트(14)로부터 수신한 패킷의 목적지 주소를 해석해서, 가상 머신(30)의 고객 주소(AA1)로부터 가상 머신(40)의 고객 주소(AA3)으로 보내지는 패킷을 제공한다(도 6의 화살표 (3)). 그 다음으로 패킷은 오래된 매핑 정책을 사용하여 목적지 주소로 라우팅된다(도 6의 화살표 (4)). 특히, 패킷의 주소 필드는 가상 머신(30)의 공급자 주소(LA1)와 가상 머신(40)의 공급자 주소(LA4)을 반영하도록 수정된다. 제 1 호스트(12)에서 제 3 호스트(16)로 패킷이 전송되고(도 6의 화살표 (5)), 이 패킷은 가상 네트워크 정책(54)의 오래된 매핑 정책과 매칭되는 것으로 인식된다. 그 다음에 패킷은 제 3 호스트(16)에 의해 가상 머신(40)으로 전달된다(도 6의 화살표 (6)). 제 3 호스트(16)에서 수신한 패킷은 오래된 매핑 정책에 따라 제 1 호스트(12)의 가상 머신(30)으로부터 수신된 것으로 보이며 받아들여진다(accepted). 반면, 제 3 호스트(16)에서 수신한 패킷이 제 2 호스트(14)의 물리적인 주소(LA18)로부터 수신되었다면, 패킷은 그 당시 유효한 오래된 매핑 정책에 매칭되지 않기 때문에 폐기되었을 것이다.
동작(158)에서, 제 1 호스트(12)와 제 2 호스트(14)는 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신하였는지를 결정한다. 이는, 예를 들어, 가상 머신 관리자(22)로부터 수신된 통지에 기반하여 결정될 수 있다. 가상 네트워크의 모든 호스트들이 업데이트될 때까지, 프로세스는 동작(152)으로 되돌아가서, 역방향 터널링 동작을 계속한다. 제 1 호스트(12)와 제 2 호스트(14)가 가상 네트워크의 모든 호스트들이 업데이트된 매핑 정책을 수신하였다고 결정하면, 동작(160)에서 역방향 터널링 정책이 비활성화된다.
도 8은 그림자 매핑 정책의 사용을 도시하는, 데이터 센터(10)의 개략적인 블록도이다. 도 8의 데이터 센터(10)의 컴포넌트들은 도 4에 도시된 컴포넌트들에 상응한다. 가상 머신 관리자(22)에 의한 그림자 매핑 정책 사용의 순서도가 도 9에 도시된다. 제 3 호스트(16)에 의한 그림자 매핑 정책 사용의 순서도가 도 10에 도시된다.
도 9를 참조하면, 가상 머신 관리자(22)의 동작들이 도시된다. 동작(200)에서, 가상 머신 관리자(22)는 제 1 호스트(12)에서 제 2 호스트(14)로의 가상 머신(30)의 실시간 이전에 대한 필요성을 결정한다. 몇몇 실시예에서, 가상 머신 관리자(22)는 가상 머신(30)의 실시간 이전을 실행하도록 제 1 호스트(12)와 제 2 호스트(14)에게 지시한다. 다른 실시예에서, 제 1 호스트(12)와 제 2 호스트(14)의 제어 하에 실시간 이전이 실행될 수 있다. 어떤 경우에도, 가상 머신 관리자(22)는, 실시간 이전의 시작과 실시간 이전의 완료를 포함하는, 그러나 이에 제한되지 않는, 이전 중의 이벤트들에 대해 인지하고 있다.
동작(202)에서, 가상 머신 관리자(22)는 가상 머신(30)을 포함하는 가상 네트워크의 호스트들에게 그림자 매핑 정책을 전송한다(도 8의 화살표 (1)). 그림자 매핑 정책은 가상 네트워크 밖에 있는 어떤 호스트들에게도 전송되지 않는다. 간략하게 하기 위해 "그림자 정책"이라고 하는 그림자 매핑 정책은 실시간 이전이 완료된 후에 가상 머신(30)의 고객 주소(AA)의 가상 머신(30)의 공급자 주소(LA) 간의 매핑을 정의하는 매핑 정책이다. 도 8의 예시에서, 그림자 정책(190)은 고객 주소(AA1)와 공급자 주소(LA18)를 포함하며 AA1:LA18로 표시된다. 그림자 정책(190)은 각각의 호스트에 의해 저장되지만 트리거링될 때까지는 이용해서는 안되는 것으로, 가상 네트워크 호스트들에게 전송될 때 가상 머신 관리자(22)에 의해 확인된다. 예를 들어, 그림자 정책은, 정책이 그림자 정책임을 나타내는 그림자 정책 플래그를 포함할 수 있다. 각각의 호스트는 그림자 정책을 저장하고, 저장된 그림자 정책이 휴지 상태에 있다고 확인한다.
동작(204)에서, 가상 머신 관리자(22)는 가상 머신(30)의 실시간 이전을 실행하도록 제 1 호스트(12)와 제 2 호스트(14)에게 지시한다(도 8의 화살표 (2)). 동작(206)에서, 제 1 호스트(12)와 제 2 호스트(14)는 도 2에 도시되고 앞서 설명된 바와 같이 가상 머신(30)의 실시간 이전을 실행한다(도 8의 화살표 (3) 및 (4)). 가상 머신 관리자(22)의 실시간 이전의 제어 정도는 본 발명의 범위 내에서 달라질 수 있다.
동작(208)에서, 가상 머신 관리자(22)는 가상 머신(30)의 실시간 이전이 완료되었다는 통지를 수신한다(도 8의 화살표 (5)). 완료는 도 3의 시각(66)에 상응한다. 실시간 이전이 완료될 때까지, 가상 네트워크의 각각의 호스트는 가상 머신과(30)의 통신을 위해 자신의 현재 매핑 정책을 사용하며 그림자 정책(190)을 휴지 상태로 유지한다.
동작(210)에서, 가상 머신 관리자(22)는 그림자 정책(190)을 트리거링하기 위한 통지를 가상 네트워크의 호스트들에게 보낸다(도 8의 화살표 (6)). 각각의 호스트가, 그림자 정책을 트리거링하기 위한 통지를 수신하면, 현재 매핑 정책의 사용을 중단하고 이전된 가상 머신(30m)과의 통신을 위해 그림자 정책을 사용하기 시작한다. 실시간 이전에 실패하면, 가상 머신 관리자(22)는 가상 네트워크의 호스트들에게 실패를 통지할 수 있다. 호스트들은 그림자 정책을 제거하고 현재 매핑 정책을 계속 사용한다.
가상 머신 관리자(22)는 실시간 이전의 완료에 앞서, 동작(202)에서 가상 네트워크의 호스트들에게 그림자 정책을 전송하는 것이 바람직하다. 이는 실시간 이전이 완료되자마자 그림자 정책이 상대적으로 빠르게 트리거링될 수 있게 한다. 그림자 정책은, 이전 중인 가상 머신의 새로운 물리적인 주소를 알게 된 후에는 언제든지, 가상 머신 관리자(22)에 의해 가상 네트워크의 호스트들에게 전송될 수 있다.
그림자 정책 사용 시에 제 3 호스트(16)에 의해 실행되는 프로세스가 도 10에 도시된다. 동작(250)에서, 제 3 호스트(16)는 가상 머신 관리자(22)로부터 그림자 정책(190)을 수신한다. 앞서 언급한 대로, 그림자 정책(190)은 실시간 이전 후의 가상 머신(30)의 고객 주소(AA1)와 공급자 주소(LA18)를 포함한다. 그림자 정책(190)은 실시간 이전이 완료된 후에 이전된 가상 머신(30m)과의 통신을 가능하게 해준다. 그림자 정책(190)은 제 3 호스트(16)에 의해, 예를 들어, 가상 네트워크 정책(54)에 저장되지만 휴지 상태로 확인된다.
동작(252)에서, 제 3 호스트는 가상 머신(30)을 제 1 호스트(12)의 공급자 주소(LA1)에 매핑하는 현재 매핑 정책을 사용하여 가상 머신(30)과의 통신을 계속한다. 이 시간 동안 가상 머신(40)에 의해 가상 머신(30)으로 전송되는 패킷들은 전술한 바와 같이 제 1 호스트(12)에 의해 포워딩될 수 있다.
동작(254)에서, 제 3 호스트(16)는 그림자 정책(190)을 활성화시키기 위한 트리거를 수신한다. 경우에 따라서, 그림자 정책(190)을 활성화시키기 위한 트리거는 가상 머신 관리자(22)로부터 수신할 수 있다. 트리거는 그림자 정책(190)을 활성화시키기 위한 가상 머신 관리자(22)로부터의 통지의 형태일 수 있다. 다른 경우에, 제 3 호스트(16)가 그림자 정책(190)에 매칭되는 패킷을 수신할 때 그림자 정책(190)이 자동으로 활성화된다. 그림자 정책(190)이 없을 때, 패킷은 폐기되지만, 그림자 정책은 수신된 패킷이 받아들여지도록 해준다. 이와 같은 경우, 수신된 패킷은 이른바 반응 활성화(reactive activation)로 그림자 정책을 활성화시키기 위한 트리거로써 기능한다. 즉, 호스트는 그림자 정책을 활성화시키고 이제는-오래된 현재 매핑 정책을 휴지시킴으로써 그림자 정책에 매칭되는 수신된 패킷에 반응한다. 트리거가 수신되지 않은 경우에, 그림자 정책에 대한 유효 시간(expiration time)의 경과로 인해 제 3 호스트(16)에서 그림자 정책이 제거된다. 이런 경우에, 제 3 호스트(16)는 현재 매핑 정책을 계속 사용한다.
그림자 정책은 반응 활성화에 의해서나 또는 가상 머신 관리자(22)의 통지에 응해서 활성화될 수 있다. 반응 활성화는 가상 머신 관리자(22)의 통지가 시간에 덜 구애받게 한다(less time-critical). 게다가, 원본 호스트가 그림자 정책을 활성화할 때는 원본 호스트와 목적지 호스트 간의 특정 경로에 대한 포워딩 정책이 더 이상 필요하지 않게 된다. 역방향 터널링은 그림자 정책의 반응 활성화를 막으므로, 역방향 터널링 정책은 보통 그림자 정책과 함께 사용되지 않는다. 이전된 가상 머신으로부터 특정 호스트까지 패킷 트래픽이 있는 경우, 그림자 정책은 이전된 가상 머신의 패킷 수신에 대응해 그 호스트에 의해 자동으로 활성화되어, 패킷 손실을 피하고 가상 머신 관리자(22)에 의한 통지의 필요성을 없앨 수 있다. 이전된 가상 머신으로부터 특정 호스트까지 패킷 트래픽이 없는 경우, 가상 머신 관리자는 그림자 정책을 활성화시키도록 그 호스트에 통지를 보낼 수 있다. 그러나, 패킷 트래픽이 없을 때 통지는 시간에 덜 구애받게 된다.
동작(256)에서, 제 3 호스트(16)는 가상 머신(30)의 현재 매핑 정책을 그림자 정책(190)으로 대체한다. 제 3 호스트(16)는 현재 매핑 정책을 효과적으로 비활성화시키고 이전된 가상 머신(30m)에 대한 그림자 매핑 정책을 활성화시킨다. 동작(258)에서, 제 3 호스트(16)는 활성화된 그림자 정책을 사용하여 이전된 가상 머신(30m)과 통신한다.
그림자 정책 메카니즘은 특정 가상 네트워크, 또는 격리 그룹에 참여하고 있거나, 또는 실시간 이전 후에 그 가상 네트워크에 참여할 모든 호스트들에서 설정된다. 가상 네트워크에서 하나 이상의 가상 머신을 이미 호스팅하는 각 호스트는 고객 주소와 공급자 주소를 연계시키는 현재 정책을 갖고 있다. 이들 호스트 각각은 이제, 고객 주소와 이전된 가상 머신의 새로운 공급자 주소를 연계시키는, 아직 실행되지는 않는 그림자 정책을 제공 받는다. 그림자 정책은 수동으로 또는 자동으로 현재 정책을 대체하도록 트리거링될 수 있다. 그림자 정책은 활성화되지 않으면 특정 시간 간격 이후에 그림자 정책을 만료시키는 TTL(time-to-live)을 갖고 있을 수 있다. 그림자 정책은 새로운 호스트, 이전 중인 가상 머신을 수신하는 호스트에게도 제공된다. 새로운 호스트의 경우에, 새로운 호스트가 아직 가상 네트워크의 멤버를 호스팅하고 있지 않을 수 있기 때문에, 그림자 정책이 기존 정책을 대체할 수 없다.
다음은 그림자 정책의 특별한 경우들이다. 첫 번째 특별한 경우로, 이전 중인 가상 머신이 관심 대상인 가상 네트워크에 있는 원본 호스트(제 1 호스트(12)) 상의 유일한 가상 머신일 수 있다. 이전 후에, 원본 호스트는 더 이상 가상 네트워크에서 가상 머신을 가지지 않는다. 현재 정책이 만료될 때, 원본 호스트는 그 가상 네트워크에 대한 정책을 더 이상 필요로 하지 않을 것이므로, 현재 정책이 그림자 정책으로 바로 대체되지는 않는다. 두 번째 특별한 경우는 그림자 정책이 새로운 호스트에 적용될 때 발생한다. 이 경우에, 그림자 정책은 가릴(shadow) 현재 정책이 없다. 그림자 정책은 트리거링 될 때 실행될 뿐이다.
그림자 정책이 실시간 이전을 위한 원본 호스트(제 1 호스트)에 적용될 때, 포워딩 정책이 만들어진다. 포워딩 정책의 목적은 오래된 물리적인 주소에 있는 가상 머신으로 보내지는 패킷 트래픽을 새로운 물리적 주소로 포워딩하는 것이다. 이는 실시간 이전 후에 도달 가능성의 차이가 발생하지 않도록 보장한다. 포워딩 정책은 원본 호스트 상의 그림자 정책의 일부일 수 있다. 포워딩 정책은 원본 호스트에서 그림자 정책이 트리거링되자마자 시행되며, 가상 네트워크의 모든 호스트들이 그림자 정책을 활성화시킬 때까지 유효하게 된다.
실시간 이전과 같은 급속한 변화(rapid transition)가 일어날 때, 프로세스의 일부로서 원본 호스트에게 알린다. 목표 호스트(제 2 호스트(14))는 원본 호스트로부터 패킷 수신을 시작할 것이고 그림자 정책을 즉시 활성화시킬 수 있다. 예를 들어, 가상 머신(40)과 이전된 가상 머신(30m) 간의 통신으로 인해 원본 호스트로부터 목표 호스트로 패킷들이 포워딩되게 된다.
이전된 가상 머신(30m)으로부터 가상 머신(40)으로 답신이 전송될 때, 패킷은 새로운 공급자 주소(LA18)에서 송신자에게 전송된다(역방향 터널링을 사용하지 않음). 가상 머신(40)의 제 3 호스트(16)가 들어오는 패킷을 수신할 때, 공급자 주소(LA18)에 있는 가상 머신(30)으로부터의 패킷을 허용하는 활성화된 정책이 없다. 대신에, 제 3 호스트(16)는 공급자 주소(LA1)로부터의 패킷을 허용하는 정책을 갖고 있다. 그러나, 그림자 정책은 공급자 주소(LA18)에 있는 이전된 가상 머신(30m)으로부터의 패킷을 허용한다. 이런 패킷의 수신은 현재 정책을 대체하도록 그림자 정책을 자동으로 트리거링한다. 가상 머신(40)으로부터 가상 머신(30)으로의 다음 패킷은 이전된 가상 머신(30m)의 새로운 공급자 주소(LA18)를 사용한다. 이와 같은 자동 정책 대체(automatic policy replacement)로 활성화된 대화(active conversation)에서 포워딩 정책의 사용을 최소화함으로써, 네트워크 이용, 정체(congestion) 및 오류까지도 줄일 수 있다.
모든 정책 대체가 자동일 수는 없다. UDP 어나운스먼트(announcement)와 같이 단일 방향인 통신 패턴들이 있다. 응답 메시지가 없어서 자동 대체가 불가능하다. 또한, 일부 가상 머신 쌍들은 모놀로그나 다이얼로그에 참여하지 않을 것이므로, 자동 대체가 가능하지 않다. 이런 경우에는, 실시간 이전이 완료된 후에 가상 머신 관리자(22)가 정책 대체를 트리거링할 수 있다. 이런 트리거링은 시간에 구애받지 않고, 시차가 있을 수 있다. 가상 네트워크의 모든 호스트들에서 그림자 정책이 현재 정책을 대체하면, 포워딩 정책이 비활성화될 수 있다.
본 발명의 추가적인 실시예에 따른 정책 업데이트가 도 11 및 12에 도시된다. 도 11은 게으른 푸시(lazy push) 기법에 따른 반응 정책(reactive policy) 업데이트를 도시하는, 데이터 센터(12)의 개략적인 블록도이다. 간략하게 하기 위해 데이터 센터 네트워크 패브릭(20)이 생략된 점을 제외하고는, 도 11의 데이터 센터(10)의 컴포넌트들은 도 4에 도시된 데이터 센터(10)의 컴포넌트들에 상응한다. 게으른 푸시 기법에 따른 반응 정책 업데이트의 순서도가 도 12에 도시된다. 제 1 호스트(12), 제 2 호스트(14) 및 가상 머신 관리자(22)는 제 1 호스트(12)로부터 제 2 호스트(14)로의 가상 머신(30)의 이전을 반영하는 매핑 정책들을 업데이트하였다고 가정한다. 제 3 호스트(16)의 정책 테이블(54)의 매핑 정책은 오래되었고, 가상 머신(30)의 이전을 반영하지 않는다.
동작(300)에서, 제 1 호스트(12)로부터 제 2 호스트(14)로의 가상 머신(30)의 실시간 이전이 완료되었다고 결정된다. 동작(302)에서, 제 3 호스트(16)의 가상 머신(40)은 정책 테이블(54)의 오래된 매핑 정책을 사용하여 가상 머신(30)으로 보내지는 패킷을 전송한다(도 11의 화살표 (1)). 동작(304)에서, 제 1 호스트(12)는 제 3 호스트(16)의 가상 머신(40)으로부터 전송되고 가상 머신(30)으로 보내지는 패킷을 수신한다(도 11의 화살표 (2)). 그러나, 가상 머신(30)은 제 2 호스트(14)로 이전되었다. 제 1 호스트(12)는 도 4 및 5에 관련해 전술한 대로 패킷의 포워딩을 실행할 수 있다.
동작(306)에서, 제 1 호스트(12)는 오래된 정책 이벤트, 즉, 오래된 매핑 정책에 따른 제 3 호스트(16)로부터의 패킷 수신을 가상 머신 관리자(22)에게 통지한다(도 11의 화살표 (3)). 동작(308)에서, 가상 머신 관리자(22)는 이전된 가상 머신(30m)을 반영하도록 매핑 정책을 업데이트시키기 위해 제 3 호스트(16)로 정책 업데이트를 전송한다(도 11의 화살표 (4)). 동작(310)에서, 제 3 호스트는 자신의 매핑 정책을 업데이트한 후에, 업데이트된 매핑 정책에 따라 이전된 가상 머신(30m)과 통신한다.
도 13은 게으른 풀(lazy pull) 기법에 따른 반응 정책 업데이트를 도시하는, 데이터 센터(10)의 개략적인 블록도이다. 간략하게 하기 위해 데이터 센터 네트워크 패브릭(20)이 생략된 점을 제외하고는, 도 13의 데이터 센터(10)의 컴포넌트들은 도 4에 도시된 데이터 센터(10)의 컴포넌트들에 상응한다. 제 1 호스트(12), 제 2 호스트(14) 및 가상 머신 관리자(22)는 제 1 호스트(12)로부터 제 2 호스트(14)로의 가상 머신(30)의 이전을 반영하는 매핑 정책들을 업데이트하였다고 가정한다. 제 3 호스트(16)의 정책 테이블(54)의 매핑 정책은 오래되었고, 가상 머신(30)의 이전을 반영하지 않는다.
동작(350)에서, 호스트(12)로부터 제 2 호스트(14)로의 가상 머신(30)의 실시간 이전이 완료되었다고 결정된다. 동작(352)에서, 제 2 호스트(14)의 이전된 가상 머신(30m)은 업데이트된 매핑 정책을 사용하여 제 3 호스트(16)의 가상 머신(40)으로 패킷을 전송한다(도 13의 화살표 (1)). 동작(354)에서, 제 3 호스트(16)는 제 2 호스트(14)의 이전된 가상 머신(30m)으로부터 패킷을 수신한다(도 13의 화살표 (2)).
동작(356)에서, 제 3 호스트(16)는 인커밍 패킷이 정책 테이블(54)의 매핑 정책과 매칭되지 않음을 인식한다. 다음으로 제 3 호스트(16)은 가상 머신 관리자(22)에게 오래된 정책 이벤트를 통지한다(도 13의 화살표 (3)). 동작(358)에서, 가상 머신 관리자(22)는 이전된 가상 머신(30m)에 대한 정책 업데이트를 제 3 호스트(16)에 전송한다(도 13의 화살표 (4)). 동작(360)에서, 제 3 호스트는 이전된 가상 머신(30m)에 대한 매핑 정책을 업데이트한 후에, 업데이트된 매핑 정책에 따라 이전된 가상 머신(30m)으로부터 패킷을 수락한다.
본 발명은 어느 하나의 공급자 주소로부터 다른 공급자 주소로의 가상 머신의 실시간 이전과 관련하여 설명되었다. 그러나, 본 발명은 어느 하나의 공급자 주소로부터 다른 공급자 주소로의 가상 머신의 임의의 급속한 변화와 관련해서도 이용될 수 있다.
도 15는 본 발명의 실시예에 따른 제 1 호스트(12)와 가상 머신(30)의 개략도이다. 제 1 호스트(12)는 가상화 모듈(400), VM 스위치(402), 저장 장치(404) 및 물리적인 NIC(네트워크 인터페이스 카드)(406)를 포함할 수 있다. 가상 머신(30)은 VM NIC(420), IP(인터넷 프로토콜)(422), TCP(전송 제어 프로토콜) 모듈(424) 및 사용자 애플리케이션(430)을 포함할 수 있다.
가상화 모듈(400)은 저장 장치(404)에 포함된 가상 네트워크 정책의 구현과 업데이트, 그림자 정책 및 그림자 정책 활성화의 구현, 포워딩 정책의 구현, 역방향 터널링 정책의 구현, 게으른 푸시 기법의 구현 및 게으른 풀 기법 구현 중 하나 이상을 포함하여, 그러나 이에 제한되지는 않는, 본원에서 설명된 바와 같은 가상 머신(30)과의 통신을 제어할 수 있다. 저장 장치(404)는 하나 이상의 가상 네트워크 정책을 포함하고, VM 스위치(402)는 제 1 호스트(12)가 호스팅하는 가상 머신(30) 및 나머지 가상 머신들과의 패킷을 라우팅한다. 제 1 호스트(12)가 다른 구성(configuration)을 가질 수 있고, 데이터 센터(10)의 다른 호스트들이 본 발명의 범위 내에서 같거나 다른 구성을 가질 수도 있음을 이해할 것이다.
본 발명은 그 밖의 다른 많은 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성과 함께 동작된다. 본 발명과 함께 사용되기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램 가능한 소비자 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 및 등이 있지만, 이에 제한되지는 않는다.
본 발명은 일반적으로 컴퓨터로 실행되는 프로그램 모듈과 같은 컴퓨터-실행가능한 명령어로 설명될 수 있다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다. 본 발명은 또한 작업이 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 컴퓨터 저장 매체와 원격 컴퓨터 저장 매체 모두에 위치할 수 있다.
도 16을 참조하면, 본 발명을 구현하기 위한 예시적 시스템이 컴퓨터(1010)의 형태로 된 범용 컴퓨팅 장치를 포함한다. 도 16의 컴퓨팅 장치는 호스트, 가상 머신 관리자 및 본원에 설명된 임의의 다른 컴퓨팅 장치들을 구현하는 데 사용될 수 있다. 컴퓨터(1010)의 구성요소는, 처리 장치(1020), 시스템 메모리(1030), 및 시스템 메모리를 포함하는 다양한 시스템 구성요소들을 처리 장치(1020)로 연결하는 시스템 버스(1021)를 포함할 수 있지만, 이에 제한되지는 않는다. 상기 시스템 버스(1021)는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있으며, 가령, 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 및 다양한 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스일 수 있다. 비-제한적인 예를 들면, 이러한 아키텍처는 산업 표준 아키텍처(ISA: Industry Standard Architecture) 버스, 마이크로 채널 아키텍처(MCA: Micro Channel Architecture) 버스, 강화된 ISA(EISA: Enhanced ISA) 버스, 비디오 일렉트로닉스 표준 연합(VESA: Video Electronics Standards Association) 로컬 버스, 및 메자닌 버스(Mezzanine bus)라고도 알려진 주변 장치 인터커넥트(PCI: Peripheral Component Interconnect) 버스를 포함한다.
일반적으로 컴퓨터(1010)는 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(1010)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있으며, 휘발성 매체와 비휘발성 매체, 이동식 및 비-이동식 매체를 모두 포함한다. 비-제한적인 예를 들면, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 정보, 가령, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터의 저장을 위해 임의의 방법 또는 기법으로 구현되는 휘발성과 비휘발성, 이동식 및 비-이동식 매체를 모두 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기법, CD-ROM, 디지털 다용도 디스크(DVD), 또는 그 밖의 다른 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터(1010)에 의해 액세스될 수 있는 그 밖의 다른 임의의 매체를 포함하지만, 이에 제한되지 않는다. 상기 중 임의의 것의 조합이 또한 컴퓨터 판독 가능 저장 매체의 범위 내에 포함되어야 한다.
시스템 메모리(1030)는 휘발성 및/또는 비휘발성 메모리의 형태로 된 컴퓨터 저장 매체, 가령, 리드 온리 메모리(ROM)(1031) 및 랜덤 액세스 메모리(RAM)(1032)를 포함한다. 가령, 일반적으로, 시동(startup) 동안, 컴퓨터(1010) 내 요소들 간 정보를 전송하는 데 도움이 되는 기본 루틴을 포함하는 기본 입/출력 시스템(1033)(BIOS)이 ROM(1031)에 저장된다. 일반적으로 RAM(1032)은 처리 장치(1020)에 의해 즉시 액세스 가능한, 및/또는 현재 작동 중인 데이터 및/또는 프로그램 모듈을 포함한다. 비-제한적인 예를 들면, 도 16은 운영 체제(1034), 애플리케이션 프로그램(1035), 기타 프로그램 모듈(1036), 및 프로그램 데이터(1037)를 도시한다.
컴퓨터(1010)는 그 밖의 다른 이동식/비-이동식 휘발성/비휘발성 컴퓨터 저장 매체를 더 포함할 수 있다. 단지 예로서, 도 16은 비-이동식 비휘발성 자기 매체로부터 읽거나 쓰는 하드 디스크 드라이브(1040), 이동식 비휘발성 자기 디스크(1052)로부터 읽거나 쓰는 자기 디스크 드라이브(1051), 및 이동식 비휘발성 광학 디스크(1056), 가령, CD ROM 또는 그 밖의 다른 광학 매체로부터 읽거나 쓰는 광학 디스크 드라이브(1055)를 도시한다. 예시적 동작 환경에서 사용될 수 있는 그 밖의 다른 이동식/비-이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는, 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다목적 디스크, 디지털 비디오 테이프, 솔리드 스테이트 RAM, 솔리드 스테이트 ROM, 및 기타 등등이 포함되며, 이에 제한되지 않는다. 하드 디스크 드라이브(1041)는 비-이동식 메모리 인터페이스, 가령 인터페이스(1040)를 통해 시스템 버스(1021)로 연결되며, 자기 디스크 드라이브(1051) 및 광학 디스크 드라이브(1055)는 이동식 메모리 인터페이스, 가령 인터페이스(1050)에 의해 시스템으로 연결되는 것이 일반적이다.
도 16에서 도시되고 앞서 설명된 드라이브 및 이들의 연관된 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 그 밖의 다른 컴퓨터(1010)용 데이터의 저장을 제공한다. 도 16에서, 예를 들어, 하드 디스크 드라이브(1041)는 운영 체제(1044), 애플리케이션 프로그램(1045), 기타 프로그램 모듈(1046), 및 프로그램 데이터(1047)를 저장하는 것으로 도시된다. 이들 구성요소는 운영 체제(1034), 애플리케이션 프로그램(1035), 기타 프로그램 모듈(1036), 및 프로그램 데이터(1037)와 동일하거나 다를 수 있다. 운영 체제(1044), 애플리케이션 프로그램(1045), 기타 프로그램 모듈(1046), 및 프로그램 데이터(1047)은 최소한 서로 다른 카피임을 설명하기 위해 이들에게 서로 다른 번호가 부여된다.
사용자는 입력 장치, 가령 키보드(1062), 및 일반적으로 마우스, 트랙볼 또는 터치 패드라고 일컬어지는 위치 지시 장치(pointing device)(1061)를 통해 명령어 및 정보를 컴퓨터(1010)로 입력할 수 있다. 그 밖의 다른 입력 장치는 마이크로폰(1063), 조이스틱, 태블릿(1064), 위성 접시, 스캐너, 등을 포함할 수 있다. 이러한 그리고 그 밖의 다른 입력 장치는, 시스템 버스로 연결되지만 그 밖의 다른 인터페이스 및 버스 구조로는 연결되지 않을 수 있는 사용자 입력 인터페이스(1060), 가령, 병렬 포트, 게임 포트, 또는 전역 직렬 버스(USB)를 통해 처리 장치(1020)로 연결된다. 모니터(1091) 또는 그 밖의 다른 유형의 디스플레이 장치가 인터페이스, 가령, 비디오 인터페이스(1090)를 통해 시스템(1021)으로 연결된다. 모니터에 추가로, 컴퓨터는 그 밖의 다른 주변 출력 장치, 가령, 스피커(1097) 및 프린터(1096)를 더 포함할 수 있으며, 이들은 출력 주변 인터페이스(1095)를 통해 연결될 수 있다.
컴퓨터(1010)는 하나 이상의 원격 컴퓨터, 가령, 원격 컴퓨터(1080)로의 논리 연결을 이용해 네트워크 연결된 환경에서 동작할 수 있다. 상기 원격 컴퓨터(1080)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치(peer device) 또는 그 밖의 다른 일반적인 네트워크 노드일 수 있으며, 도 16에 메모리 저장 장치(1081)만 도시되었어도, 일반적으로 컴퓨터(1010)와 관련해 앞서 기재된 요소들 중 다수 또는 모두를 포함한다. 도 16에 도시된 논리적 연결은 로컬 영역 네트워크(LAN)(1071) 및 광역 네트워크(WAN)(1073)와 예컨대, 안테나가 완비된 무선 인터페이스(1098)를 통한 무선 링크를 포함하지만, 그 밖의 다른 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실에서 일반적이며, 기업별 컴퓨터 네트워크 인트라넷 및 인터넷이다. 무선 인터페이스(1098)가 시스템 버스(1021)에 직접적으로 연결된 것으로 도시되었지만, 무선 인터페이스(1098)는 네트워크 인터페이스(1070)를 통해 시스템 버스(1021)에 연결될 수 있음을 알 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1010)는 네트워크 인터페이스 또는 어댑터(1070)를 통해 LAN(1071)으로 연결된다. WAN 네트워킹 환경에서 사용될 때, 일반적으로 컴퓨터(1010)는 모뎀(1072) 또는 WAN(1073), 가령 인터넷을 통한 통신을 확립하기 위한 그 밖의 다른 수단을 포함한다. 내부형이거나 외부형일 수 있는 모뎀(1072)은 사용자 입력 인터페이스(1060) 또는 그 밖의 다른 적절한 메커니즘을 통해 시스템 버스(1021)로 연결될 수 있다. 네트워크 연결된 환경에서, 컴퓨터(1010) 또는 이의 일부분과 관련되어 설명되는 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 비-제한적인 예를 들면, 도 16은 원격 애플리케이션 프로그램(1085)을 메모리 장치(1081) 상에 있는 것으로 도시한다. 도시된 네트워크 연결은 예시이고, 컴퓨터들 간 통신 링크를 확립하기 위한 그 밖의 다른 수단이 사용될 수 있다.
따라서 본 발명의 적어도 하나의 실시예의 몇 가지 양태가 기재됐지만, 해당 분야의 통상의 기술자에게 다양한 변형, 수정, 및 개선이 자명할 것이다.
이러한 변경, 변형 및 개선은 본 명세서의 일부이며, 본 발명의 사상 및 범주 내에 속한다. 따라서, 전술한 설명 및 도면은 단지 일례일 뿐이다.
본 발명의 앞서 기재된 실시예는 임의의 다양한 방식으로 구현될 수 있다. 예를 들어, 실시예는 하드웨어, 소프트웨어, 또는 이들의 조합을 이용해 구현될 수 있다. 소프트웨어로 구현될 때, 단일 컴퓨터에서 제공되거나 복수의 컴퓨터에서 분산되거나 관계 없이, 소프트웨어 코드는 임의의 적합한 프로세서 또는 프로세서들의 집합에서 실행될 수 있다. 이러한 프로세서는 집적 회로로서 구현될 수 있으며, 여기서 집적 회로 구성요소 내 하나 이상의 프로세서를 가진다. 그러나 프로세서는 임의의 적합한 형식으로 회로를 이용해 구현될 수 있다.
덧붙여, 컴퓨터는 많은 형태 중 임의의 것, 가령, 선반-장착형 컴퓨터(rack-mounted computer), 데스크톱 컴퓨터, 랩톱 컴퓨터, 또는 태블릿 컴퓨터로 구현될 수 있다. 추가로, 컴퓨터는 일반적으로 컴퓨터로 간주되지 않지만 적합한 프로세싱 능력을 갖는 장치, 가령, PDA, 스마트 폰 또는 그 밖의 다른 임의의 적합한 휴대용 또는 고정형 전자 장치에 이식될 수 있다.
또한 컴퓨터는 하나 이상의 입력과 출력 장치를 가질 수 있다. 이들 장치는 다른 것들 중에서, 사용자 인터페이스를 제공하도록 사용될 수 있다. 사용자 인터페이스를 제공하기 위해 사용될 수 있는 출력 장치의 예로는, 프린터 또는 출력의 비주얼 표시를 위한 디스플레이 스크린 및 스피커 또는 그 밖의 다른 출력의 가청 표시를 위한 소리 발생 장치가 있을 수 있다. 사용자 인터페이스를 위해 사용될 수 있는 입력 장치의 예로는 키보드, 및 위치 지시 장치, 가령, 마우스, 터치 패드, 및 디지털화된 태블릿이 있다. 또 다른 예로서, 컴퓨터는 음성 인식 또는 그 밖의 다른 가청 포맷을 통해 입력 정보를 수신할 수 있다.
이러한 컴퓨터는 임의의 적합한 형태의 하나 이상의 네트워크, 가령, 로컬 영역 네트워크 또는 광역 네트워크, 가령, 기업 네트워크 또는 인터넷에 의해 상호연결될 수 있다. 이러한 네트워크는 임의의 적합한 기법을 기초로 할 수 있고, 임의의 적합한 프로토콜에 따라 동작할 수 있으며, 무선 네트워크, 유선 네트워크 또는 광섬유 네트워크를 포함할 수 있다.
또한 본원에서 제시되는 다양한 방법 또는 프로세스가 다양한 운영 체제 또는 플랫폼 중 임의의 하나를 채용하는 하나 이상의 프로세서에 의해 실행될 수 있는 소프트웨어로 코딩될 수 있다. 덧붙여, 이러한 소프트웨어는 많은 적합한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립트 툴 중 임의의 것을 이용해 써질 수 있고, 또한 프레임워크나 가상 머신에서 실행되는 실행 가능한 기계 언어 코드 또는 중간 코드로서 컴파일될 수 있다.
이와 관련해, 본 발명은 컴퓨터 판독 가능 저장 매체(또는 복수의 컴퓨터 판독 가능 매체)(가령, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 컴팩트 디스크(CD), 광학 디스크, 디지털 비디오 디스크(DVD), 자기 테이프, 플래시 메모리, 현장 프로그램 가능한 게이트 어레이(Field Programmable Gate Array) 내 회로 구성 또는 그 밖의 다른 반도체 장치 또는 그 밖의 다른 비일시적(non-transitory) 유형(tangible)의 컴퓨팅 저장 매체)로서 구현될 수 있고 하나 이상의 컴퓨터 또는 또 다른 프로세서 상에서 실행될 때 앞서 언급된 본 발명의 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램에 의해 인코딩될 수 있다. 앞서 기재된 바와 같은 본 발명의 다양한 양태를 구현하기 위해 저장된 프로그램이 하나 이상의 서로 다른 컴퓨터 또는 그 밖의 다른 프로세서로 로딩될 수 있도록 컴퓨터 판독 가능 저장 매체는 수송형일 수 있다. 본원에서 사용될 때, 용어 "비-일시적 컴퓨터 판독 가능 저장 매체"는 제조될 것으로 고려될 수 있는 컴퓨터 판독 가능 매체(즉, 제조 물품) 또는 기계만 포함한다.
용어 "프로그램" 또는 "소프트웨어"는 본원에서, 앞서 언급된 것과 같은 본 발명의 다양한 양태를 구현하기 위해 컴퓨터 또는 그 밖의 다른 프로세서를 프로그램하도록 사용될 수 있는 임의의 유형의 컴퓨터 코드 또는 컴퓨터 실행 가능 명령어의 세트를 지칭하는 일반적인 의미로 사용된다. 덧붙여, 이 실시예의 하나의 양태에 따르면, 실행될 때 본 발명의 방법을 수행하는 하나 이상의 컴퓨터 프로그램은 단일 컴퓨터 또는 프로세서 상에 상주할 필요는 없으며, 복수의 서로 다른 컴퓨터 또는 프로세서에 걸쳐 모듈식으로 분산되어, 본 발명의 다양한 양태를 구현할 수 있다.
컴퓨터 실행 가능 명령어는 많은 형태, 가령, 하나 이상의 컴퓨터 또는 그 밖의 다른 장치에 의해 실행되는 프로그램 모듈로 존재할 수 있다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나, 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조, 등을 포함한다. 일반적으로 프로그램 모듈의 기능은 다양한 실시예에서 원하는 대로 조합 또는 분산될 수 있다.
또한 데이터 구조는 컴퓨터 판독 가능 매체에 임의의 적합한 형태로 저장될 수 있다. 설명의 간결성을 위해, 데이터 구조는 데이터 구조 내 위치를 통해 관련 필드를 갖는 것으로 나타날 수 있다. 이러한 관계는 필드들 간 관계를 담는 컴퓨터 판독 가능 매체 내 위치를 갖는 필드에 대해 저장공간을 할당함으로써 이뤄질 수 있다. 그러나 임의의 적합한 메커니즘이 데이터 구조의 필드들 내 정보들 간 관계를 확립하는 데 사용될 수 있으며, 가령, 포인터, 태그, 또는 데이터 요소들 간 관계를 확립하는 그 밖의 다른 메커니즘을 사용하는 것이 있다.
본 발명의 다양한 양태는 홀로 또는 조합되어 또는 상기에서 기재된 실시예에서 특정하게 언급되지 않은 다양한 배열로 사용될 수 있으며, 따라서 상기의 기재 또는 도면의 도시에서 제공되는 구성요소들의 세부사항 및 배열에 국한되지 않는다. 예를 들어, 하나의 실시예에 기재된 양태는 또 다른 실시예에 기재된 양태와 임의의 방식으로 조합될 수 있다.
또한 본 발명은 방법으로 구현될 수 있으며, 이의 예가 제공되었다. 방법의 일부로서 수행되는 동작들은 임의의 적합한 방식으로 순서화될 수 있다. 따라서 동작들이 설명된 순서와 다른 순서로 수행되는 실시예가 구성될 수 있는데, 가령, 예시적 실시예에서 순차적인 동작으로 나타나더라도 일부 동작들은 동시에 수행될 수도 있다.
청구항에서 청구항 요소를 수정하기 위한 "제 1의", "제 2의", "제 3의" 등 같은 서수 용어의 사용은 그 자체로는 하나의 청구항 요소에 대하 다른 청구항 요소의 어떠한 우선순위, 선행, 또는 순서 또는 방법의 동작들이 수행되는 시간적 순서도 내포하지 않으며, 특정 명칭을 갖는 하나의 청구항 요소를 동일한 명칭을 갖는 또 다른 청구항 요소와 구별하기 위한 라벨로서 사용(서수 용어로서 사용)될 뿐이다.
또한, 본원에서 사용되는 구문과 단어는 설명을 위한 것이며 한정을 위한 것이 아니다. "를 포함하는(including)", "를 포함하는(comprising)" 또는 "를 갖는(having)", "를 내포하는(containing)", "를 포함하는(involving)" 및 이들의 변형은 이들 앞에 나열되는 아이템들 및 이의 균등물뿐 아니라 추가 아이템까지 포함하는 것을 의미한다.
Claims (17)
- 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전(live migration)을 제어하는 방법에 있어서,
상기 방법은
상기 제 1 호스트 및 상기 제 2 호스트에 의해, 각각의 가상화 모듈(virtualization module)을 실행하는 단계 - 복수의 호스트들 중에서 상기 제 1 호스트 및 상기 제 2 호스트는 각각의 가상화 모듈을 갖고, 상기 가상화 모듈은 가상 머신 관리자(virtual machine manager)에 의해 관리되며, 각각의 호스트는 각각의 호스트 네트워크 주소를 갖고 각각의 가상 네트워크 주소를 갖는 가상 머신을 갖고, 상기 호스트들은 각각의 호스트 네트워크 주소를 사용하여 네트워크를 통해 패킷을 교환함 - 와,
가상 머신을 이전하기 위한 결정에 앞서, 상기 복수의 호스트들 상에 제 1 매핑 정책의 인스턴스들을 저장하는 단계 - 상기 제 1 매핑 정책의 각각의 인스턴스는 상기 가상 네트워크 주소 및 상기 호스트 네트워크 주소를 포함하고, 상기 제 1 매핑 정책의 각각의 인스턴스는 상기 가상 네트워크 주소 중 어느 것이 상기 호스트 네트워크 주소 중 어느 것과 연관되는지 나타내며, 상기 가상 머신을 이전하기 위한 결정에 앞서, 각각의 가상화 모듈은 상기 네트워크로부터 자신의 호스트 네트워크 주소로 보내지는 인커밍 패킷(incoming packets)을 핸들링하고 자신의 가상 머신에 의해 다른 가상 네트워크 주소로 전송되는 아웃고잉 패킷(outgoing packets)을 핸들링하고, 상기 가상 머신을 이전하기 위한 결정에 앞서, 각각의 가상화 모듈은 상기 제 1 매핑 정책의 각각의 인스턴스를 사용하여 자신의 가상 머신 중 어느 것이 상기 인커밍 패킷 중 어느 것을 수신할지 결정하며, 상기 이전 동안 그리고 상기 가상 머신을 이전하기 위한 결정 전에, 각각의 가상화 모듈은 상기 제 1 매핑 정책의 각각의 인스턴스를 사용하여 상기 아웃고잉 패킷을 어느 호스트 네트워크 주소로 전송할지 결정함 - 와,
상기 가상 머신 관리자에 의해, 상기 가상 머신을 이전하기 위한 결정을 실시하는 단계 - 상기 가상 머신은 상기 제 1 호스트에서 상기 제 2 호스트로 이전되도록 결정됨 - 와,
상기 가상 머신을 이전하기 위한 결정과 함께 그리고 결정에 응답하여, 및 상기 이전의 완료에 앞서, 상기 가상 머신의 상기 가상 네트워크 주소 및 상기 제 2 호스트의 상기 호스트 네트워크 주소를 포함하는 제 2 매핑 정책의 각각의 인스턴스를 상기 복수의 호스트들에 전송하는 단계 - 상기 제 2 매핑 정책의 각각의 인스턴스는 상기 가상 네트워크 주소가 상기 제 2 호스트의 상기 호스트 네트워크 주소와 연관되는 것을 나타내고, 상기 이전 동안 상기 제 2 매핑 정책의 인스턴스는 비활성 상태임 - 와,
상기 가상 머신의 이전이 완료된 후, 상기 복수의 호스트들에게 상기 가상 머신과의 통신을 위해 상기 제 2 매핑 정책의 각각의 인스턴스를 활성화하라고 통지하는 단계와,
상기 통지에 응답하여, 상기 제 2 매핑 정책의 인스턴스는 상기 가상 머신과의 통신을 위해 상기 복수의 호스트들에 의한 활성화된 사용으로 진입하기 시작하는 단계와,
상기 통지에 응답하여, 상기 제 1 호스트에 의해, 상기 제 2 매핑 정책의 인스턴스가 활성화된 사용으로 진입하는 동안 상기 제 1 호스트에 의해 수신되는 상기 가상 머신에 대한 임의의 패킷을 포워딩하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 복수의 호스트들에게 통지하는 단계는 상기 가상 머신 관리자에 의해 수행되고, 상기 가상 머신 관리자는 상기 가상화 모듈의 동작을 제어하고, 상기 제어는 가상 머신(VM) 이전을 개시하기 위한 결정을 실시하는 것 및 이에 대응하여 상기 가상화 모듈에 이전 명령어(migration commands)를 전송하는 것을 포함하는
방법.
- 제 2 항에 있어서,
상기 가상 머신 관리자가 상기 가상 네트워크 내 모든 호스트가 상기 제 2 매핑 정책을 활성화했음을 결정하는 것에 응답하여 상기 가상 머신 관리자가 상기 제 1 호스트에게 통지하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 제 2 매핑 정책의 인스턴스를 전송하는 단계는 상기 제 1 호스트의 요청에 응답하여 제 3 호스트로 상기 제 2 매핑 정책을 전송하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 제 2 매핑 정책의 인스턴스를 전송하는 단계는 제 3 호스트의 요청에 응답하여 상기 제 3 호스트로 상기 제 2 매핑 정책을 전송하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 가상 머신이 상기 제 2 호스트로의 이전을 마친 후,
상기 제 1 호스트가 상기 제 1 호스트 상의 상기 가상 머신에 보내지는(addressed) 패킷을 수신하는 단계와,
포워딩 매핑 정책에 따라, 상기 제 2 호스트 상의 상기 가상 머신에 상기 수신된 패킷을 포워딩하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 가상 머신이 이전된 후, 상기 제 1 호스트에 의해, 상기 가상 머신으로부터 패킷을 수신하고 수신된 상기 패킷을 목적지 호스트로 포워딩하는 단계를 더 포함하는
방법.
- 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전(live migration)을 가능하게 하는 방법으로서,
상기 제 1 호스트, 상기 제 2 호스트, 및 제 3 호스트에 의해, 상기 제 1 호스트, 상기 제 2 호스트, 및 상기 제 3 호스트 상의 가상 머신들을 관리하는 각각의 가상화 모듈을 실행하는 단계 - 상기 가상 머신들은 고객 주소(AA(application address)) 공간 내에 각각의 고객 주소를 갖고, 상기 제 1 호스트, 상기 제 2 호스트, 및 상기 제 3 호스트는 공급자 주소 공간 내에 각각의 공급자 주소를 가지며, 각각의 호스트는 제 1 매핑 정책의 각각의 인스턴스를 유지 및 저장하고, 상기 제 1 매핑 정책의 각각의 인스턴스는 상기 가상 머신을 호스팅하는 호스트들의, 상기 공급자 주소 공간 내 각각의 네트워크 주소와 쌍인, 각각의 가상 머신의, 상기 고객 주소 공간 내 네트워크 주소를 포함하고, 실시간 이전에 앞서, 각각의 가상화 모듈은 상기 가상 머신들 사이에서 전송된 패킷을 교환하기 위해 상기 제 1 매핑 정책의 각각의 인스턴스를 사용하며, 상기 제 1 매핑 정책은 상기 제 1 호스트의 상기 공급자 주소와 쌍인 상기 가상 머신의 상기 고객 주소를 포함함 - 와,
각각의 호스트에 의해, 상기 가상 머신의 상기 고객 주소 및 상기 가상 머신의 상기 고객 주소와 쌍인 상기 제 2 호스트의 공급자 주소를 포함하는 비활성된 제 2 매핑 정책을 수신하는 단계 - 상기 가상 머신의 상기 고객 주소는 상기 고객 주소 공간 내에 있고 상기 제 2 매핑 정책의 인스턴스 내에 저장되고, 상기 제 2 호스트의 상기 공급자 주소는 상기 공급자 주소 공간 내에 있고 상기 제 2 매핑 정책의 인스턴스 내에 저장됨 - 와,
상기 가상 머신의 실시간 이전 전 및 이전 동안에, 상기 제 3 호스트에 의해, 상기 제 2 매핑 정책이 활성화될 때까지 상기 가상 머신과의 통신을 위해 저장된 상기 제 1 매핑 정책의 인스턴스를 사용하는 단계와,
상기 제 3 호스트에 의해, 상기 제 2 매핑 정책에 매칭되는 패킷을 수신하고, 상기 제 2 매핑 정책에 매칭되는 상기 패킷을 수신한 것에 응답하여, 상기 제 2 매핑 정책을 활성화시키는 단계와,
상기 제 3 호스트에 의해, 상기 제 2 매핑 정책이 활성화된 후, 상기 가상 머신과의 통신을 위해 저장된 상기 제 2 매핑 정책을 사용하는 단계를 포함하는
방법.
- 제 8 항에 있어서,
상기 제 3 호스트에 의해, 상기 제 2 매핑 정책을 활성화하기 위한 통지를 수신하는 단계를 더 포함하는
방법.
- 제 8 항에 있어서,
유효 시간(expiration time)에 의해 활성화되지 않으면 상기 제 2 매핑 정책이 만료되게 하는 단계를 더 포함하는
방법.
- 호스트들과 네트워크로 구성된 데이터 센터에서 제 1 호스트에서 제 2 호스트로의 가상 머신의 실시간 이전을 제어하는 가상 머신 관리자 - 상기 호스트들은 가상 머신을 위한 각각의 가상화 컴포넌트를 갖고, 상기 호스트들은 상기 제 1 호스트 및 상기 제 2 호스트를 포함함 - 에 있어서,
상기 가상 머신 관리자는 명령어로 인코딩된 저장 하드웨어 장치 및 처리 하드웨어 장치를 포함하되,
상기 명령어는, 상기 처리 장치에 의해 실행될 때,
상기 호스트들의 각각에 저장되는 매핑 정책을 제공 - 상기 매핑 정책은 각각의 가상 머신의 각각의 고객 주소 및 상기 가상 머신의 상기 고객 주소와 각각 쌍인 상기 호스트들의 각각의 공급자 주소를 포함하고, 상기 가상 머신을 이전하기 위한 결정 이전에, 상기 호스트들의 상기 가상화 컴포넌트는 상기 네트워크로부터 각각의 가상 머신으로 패킷을 제공하도록 상기 호스트들 상에 저장된 상기 매핑 정책을 사용하고 상기 각각의 가상 머신으로부터 상기 네트워크를 통해 상기 호스트들로 패킷을 전송하기 위해 상기 호스트들 상에 저장된 상기 매핑 정책을 사용함 - 하고,
상기 제 1 호스트에서 상기 제 2 호스트로 상기 가상 머신을 이전하기 위한 결정을 실시하고,
상기 가상 머신을 이전하기 위한 결정에 응답하여 그리고 상기 가상 머신의 이전이 완료되기 전에, 상기 가상 머신의 고객 주소를 포함하고 상기 가상 머신의 상기 고객 주소와 쌍인 상기 제 2 호스트의 공급자 주소를 포함하는 업데이트된 매핑 정책을 상기 호스트들에 전송 - 상기 업데이트된 매핑 정책은 활성화될 때까지 각각의 호스트 상에 비활성 상태로 저장되고, 상기 업데이트된 매핑 정책은 상기 가상 머신이 상기 제 2 호스트로 이전하는 것을 마친 것에 응답하여 상기 가상 머신 관리자에 의해 활성화되고, 제 3 호스트 상의 상기 업데이트된 매핑 정책은, 활성화될 때, 상기 제 3 호스트 상의 상기 가상화 컴포넌트에 의해 상기 가상 머신에 전송된 패킷이 상기 제 2 호스트의 상기 공급자 주소로 전송될 것임을 결정하도록 상기 제 3 호스트 상의 가상화 컴포넌트에 의해 사용됨 - 하는
가상 머신 관리자.
- 제 11 항에 있어서,
상기 명령어는, 상기 가상 머신의 이전을 시작하는 프로세스의 부분으로서, 상기 제 1 호스트의 상기 공급자 주소와 상기 제 2 호스트의 상기 공급자 주소의 쌍을 포함하는 리디렉트 메시지(redirect message)를 상기 제 1 호스트로 전송하도록 또한 구성되고,
상기 제 1 호스트는 상기 가상 머신에 대해 상기 네트워크를 통해 수신된 임의의 패킷을 상기 제 2 호스트로 리디렉트하는 것을 시작함으로써 상기 리디렉트 메시지에 응답하는
가상 머신 관리자.
- 제 12 항에 있어서,
상기 명령어는, 상기 제 3 호스트를 포함하는 복수의 호스트로, 상기 업데이트된 매핑 정책을 활성화하기 위한 통지를 전송하도록 또한 구성되는
가상 머신 관리자.
- 제 13 항에 있어서,
상기 명령어는, 상기 복수의 호스트 내 모든 호스트가 상기 업데이트된 매핑 정책을 활성화한 때를 결정하고, 응답으로 상기 제 1 호스트로 통지를 전송하도록 또한 구성되는
가상 머신 관리자.
- 제 11 항에 있어서,
상기 명령어는, 상기 제 1 호스트에 의한 요청에 응답하여 상기 제 3 호스트로 상기 업데이트된 매핑 정책을 전송하도록 또한 구성되는
가상 머신 관리자.
- 제 11 항에 있어서,
상기 명령어는, 상기 제 3 호스트에 의한 요청에 응답하여 상기 제 3 호스트로 상기 업데이트된 매핑 정책을 전송하도록 또한 구성되는
가상 머신 관리자.
- 제 11 항에 있어서,
상기 명령어는, 상기 호스트들 중 임의의 호스트 상의 상기 가상 머신 중 임의의 가상 머신의 이전을 개시 및 제어하도록 또한 구성되는
가상 머신 관리자.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/192,254 US9424144B2 (en) | 2011-07-27 | 2011-07-27 | Virtual machine migration to minimize packet loss in virtualized network |
US13/192,254 | 2011-07-27 | ||
PCT/US2011/055658 WO2013015825A1 (en) | 2011-07-27 | 2011-10-11 | Virtual machine migration to minimize packet loss in virtualized network |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140043800A KR20140043800A (ko) | 2014-04-10 |
KR101884498B1 true KR101884498B1 (ko) | 2018-08-01 |
Family
ID=47598360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147001876A KR101884498B1 (ko) | 2011-07-27 | 2011-10-11 | 가상 머신의 실시간 이전을 가능하게 하는 방법, 및 가상 머신의 실시간 이전을 제어하는 방법 및 가상 머신 관리자 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9424144B2 (ko) |
EP (1) | EP2737668B1 (ko) |
JP (1) | JP6059222B2 (ko) |
KR (1) | KR101884498B1 (ko) |
CN (1) | CN103703729B (ko) |
WO (1) | WO2013015825A1 (ko) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047109B1 (en) * | 2012-06-20 | 2015-06-02 | Palo Alto Networks, Inc. | Policy enforcement in virtualized environment |
US9537891B1 (en) | 2011-09-27 | 2017-01-03 | Palo Alto Networks, Inc. | Policy enforcement based on dynamically attribute-based matched network objects |
US8930529B1 (en) | 2011-09-27 | 2015-01-06 | Palo Alto Networks, Inc. | Policy enforcement with dynamic address object |
US8886925B2 (en) | 2011-10-11 | 2014-11-11 | Citrix Systems, Inc. | Protecting enterprise data through policy-based encryption of message attachments |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US9294351B2 (en) * | 2011-11-10 | 2016-03-22 | Cisco Technology, Inc. | Dynamic policy based interface configuration for virtualized environments |
US9015823B2 (en) | 2011-11-15 | 2015-04-21 | Nicira, Inc. | Firewalls in logical networks |
WO2013097903A1 (en) * | 2011-12-29 | 2013-07-04 | Telefonaktiebolaget L M Ericsson (Publ) | Virtual machine migration using 3gpp mcim |
US9021096B2 (en) * | 2012-01-23 | 2015-04-28 | International Business Machines Corporation | Performing maintenance operations on cloud computing node without requiring to stop all virtual machines in the node |
US9928107B1 (en) * | 2012-03-30 | 2018-03-27 | Amazon Technologies, Inc. | Fast IP migration in a hybrid network environment |
US9164795B1 (en) | 2012-03-30 | 2015-10-20 | Amazon Technologies, Inc. | Secure tunnel infrastructure between hosts in a hybrid network environment |
US9197489B1 (en) * | 2012-03-30 | 2015-11-24 | Amazon Technologies, Inc. | Live migration of virtual machines in a hybrid network environment |
WO2013160933A1 (en) * | 2012-04-23 | 2013-10-31 | Hitachi, Ltd. | Computer system and virtual server migration control method for computer system |
US8949931B2 (en) | 2012-05-02 | 2015-02-03 | Cisco Technology, Inc. | System and method for monitoring application security in a network environment |
US9052963B2 (en) * | 2012-05-21 | 2015-06-09 | International Business Machines Corporation | Cloud computing data center machine monitor and control |
US20140108558A1 (en) * | 2012-10-12 | 2014-04-17 | Citrix Systems, Inc. | Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US20140108793A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US9170800B2 (en) | 2012-10-16 | 2015-10-27 | Citrix Systems, Inc. | Application wrapping for application management framework |
US8910162B2 (en) * | 2012-11-30 | 2014-12-09 | International Business Machines Corporation | User datagram protocol (UDP) packet migration in a virtual machine (VM) migration |
US9535728B2 (en) * | 2013-03-18 | 2017-01-03 | International Business Machines Corporation | Scalable policy management in an edge virtual bridging (EVB) environment |
US9529612B2 (en) * | 2013-03-18 | 2016-12-27 | International Business Machines Corporation | Scalable policy assignment in an edge virtual bridging (EVB) environment |
JP6056578B2 (ja) * | 2013-03-19 | 2017-01-11 | 富士通株式会社 | 仮想マシンの移動終了を検出する装置、方法、及びプログラム |
US9355223B2 (en) | 2013-03-29 | 2016-05-31 | Citrix Systems, Inc. | Providing a managed browser |
US9413736B2 (en) | 2013-03-29 | 2016-08-09 | Citrix Systems, Inc. | Providing an enterprise application store |
US9985850B2 (en) | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
CN104283756B (zh) * | 2013-07-02 | 2017-12-15 | 新华三技术有限公司 | 一种实现分布式多租户虚拟网络的方法和装置 |
US9952946B2 (en) | 2014-02-04 | 2018-04-24 | Telefonaktiebolaget L M Ericsson (Publ) | Managing service availability in a mega virtual machine |
US9215214B2 (en) | 2014-02-20 | 2015-12-15 | Nicira, Inc. | Provisioning firewall rules on a firewall enforcing device |
US10013276B2 (en) | 2014-06-20 | 2018-07-03 | Google Llc | System and method for live migration of a virtualized networking stack |
US9489273B2 (en) * | 2014-06-23 | 2016-11-08 | Vmware, Inc. | Using stretched storage to optimize disaster recovery |
US9442792B2 (en) | 2014-06-23 | 2016-09-13 | Vmware, Inc. | Using stretched storage to optimize disaster recovery |
US10038629B2 (en) * | 2014-09-11 | 2018-07-31 | Microsoft Technology Licensing, Llc | Virtual machine migration using label based underlay network forwarding |
US9819573B2 (en) | 2014-09-11 | 2017-11-14 | Microsoft Technology Licensing, Llc | Method for scalable computer network partitioning |
US11722367B2 (en) | 2014-09-30 | 2023-08-08 | Nicira, Inc. | Method and apparatus for providing a service with a plurality of service nodes |
US9774537B2 (en) | 2014-09-30 | 2017-09-26 | Nicira, Inc. | Dynamically adjusting load balancing |
US10516568B2 (en) | 2014-09-30 | 2019-12-24 | Nicira, Inc. | Controller driven reconfiguration of a multi-layered application or service model |
US9923800B2 (en) | 2014-10-26 | 2018-03-20 | Microsoft Technology Licensing, Llc | Method for reachability management in computer networks |
US9936014B2 (en) * | 2014-10-26 | 2018-04-03 | Microsoft Technology Licensing, Llc | Method for virtual machine migration in computer networks |
CN107077372A (zh) * | 2014-10-26 | 2017-08-18 | 微软技术许可有限责任公司 | 使用基于标记的底层网络转发的虚拟覆盖移动性 |
US10484297B1 (en) | 2015-03-16 | 2019-11-19 | Amazon Technologies, Inc. | Automated migration of compute instances to isolated virtual networks |
US10857532B2 (en) | 2015-03-30 | 2020-12-08 | Council Of Scientific & Industrial Research | Slurry phase organic-inorganic fused hybrid catalyst for residue hydroprocessing and process for preparation thereof |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US9916174B2 (en) * | 2015-05-27 | 2018-03-13 | International Business Machines Corporation | Updating networks having virtual machines with migration information |
US9755903B2 (en) | 2015-06-30 | 2017-09-05 | Nicira, Inc. | Replicating firewall policy across multiple data centers |
CN106385365B (zh) | 2015-08-07 | 2019-09-06 | 新华三技术有限公司 | 基于开放流Openflow表实现云平台安全的方法和装置 |
US11005710B2 (en) | 2015-08-18 | 2021-05-11 | Microsoft Technology Licensing, Llc | Data center resource tracking |
US10135727B2 (en) | 2016-04-29 | 2018-11-20 | Nicira, Inc. | Address grouping for distributed service rules |
US10348685B2 (en) | 2016-04-29 | 2019-07-09 | Nicira, Inc. | Priority allocation for distributed service rules |
US11171920B2 (en) | 2016-05-01 | 2021-11-09 | Nicira, Inc. | Publication of firewall configuration |
US11425095B2 (en) | 2016-05-01 | 2022-08-23 | Nicira, Inc. | Fast ordering of firewall sections and rules |
US11082400B2 (en) | 2016-06-29 | 2021-08-03 | Nicira, Inc. | Firewall configuration versioning |
US11258761B2 (en) | 2016-06-29 | 2022-02-22 | Nicira, Inc. | Self-service firewall configuration |
CN107566319B (zh) * | 2016-06-30 | 2021-01-26 | 中央大学 | 虚拟机器即时转移方法 |
US10320895B2 (en) | 2016-11-15 | 2019-06-11 | Microsoft Technology Licensing, Llc | Live migration of load balanced virtual machines via traffic bypass |
US10225106B2 (en) * | 2016-11-29 | 2019-03-05 | Vmware, Inc. | Efficient update of per-interface address groupings |
KR102560458B1 (ko) | 2017-02-03 | 2023-07-26 | 엘지전자 주식회사 | 공기조화기 시스템 및 그 제어방법 |
CN107656795A (zh) * | 2017-08-21 | 2018-02-02 | 云宏信息科技股份有限公司 | 一种VMware平台的虚拟机转换到WinServer平台的实现方法及装置 |
US10977064B2 (en) | 2017-08-23 | 2021-04-13 | Red Hat, Inc. | Live virtual machine migration |
US10838752B2 (en) | 2017-08-28 | 2020-11-17 | Red Hat Israel, Ltd. | Network notification loss detection for virtual machine migration |
US11070629B2 (en) | 2017-08-30 | 2021-07-20 | Red Hat Israel, Ltd | Migration notification and response messages for virtual machines |
US10628198B2 (en) | 2017-08-30 | 2020-04-21 | Red Hat Israel Ltd. | Hypervisor management of migration notification and response messages for virtual machines |
US10805181B2 (en) | 2017-10-29 | 2020-10-13 | Nicira, Inc. | Service operation chaining |
US10866825B2 (en) | 2017-11-10 | 2020-12-15 | Microsoft Technology Licensing, Llc | Deployment of partially provisioned virtual machines |
US11012420B2 (en) | 2017-11-15 | 2021-05-18 | Nicira, Inc. | Third-party service chaining using packet encapsulation in a flow-based forwarding element |
US10965641B2 (en) | 2017-12-07 | 2021-03-30 | Red Hat, Inc. | Live virtual machine migration utilizing network address pools |
US10797910B2 (en) | 2018-01-26 | 2020-10-06 | Nicira, Inc. | Specifying and utilizing paths through a network |
US10693801B2 (en) | 2018-02-20 | 2020-06-23 | Red Hat, Inc. | Packet drop reduction in virtual machine migration |
US10698709B2 (en) | 2018-03-07 | 2020-06-30 | Microsoft Technology Licensing, Llc | Prediction of virtual machine demand |
US11656898B2 (en) * | 2018-03-20 | 2023-05-23 | Mitsubishi Electric Corporation | Information processing device, method, and program |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
CN110633127A (zh) | 2018-06-25 | 2019-12-31 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
JP7132494B2 (ja) * | 2018-08-21 | 2022-09-07 | 富士通株式会社 | マルチクラウド運用プログラム、およびマルチクラウド運用方法 |
US10944673B2 (en) | 2018-09-02 | 2021-03-09 | Vmware, Inc. | Redirection of data messages at logical network gateway |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US20200159556A1 (en) * | 2018-11-21 | 2020-05-21 | Microsoft Technology Licensing, Llc | Traffic forwarding during migration |
US11042397B2 (en) | 2019-02-22 | 2021-06-22 | Vmware, Inc. | Providing services with guest VM mobility |
US11310202B2 (en) | 2019-03-13 | 2022-04-19 | Vmware, Inc. | Sharing of firewall rules among multiple workloads in a hypervisor |
US11108735B2 (en) | 2019-06-07 | 2021-08-31 | Microsoft Technology Licensing, Llc | Mapping subnets in different virtual networks using private address space |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11748131B2 (en) | 2019-11-20 | 2023-09-05 | Red Hat, Inc. | Network updates for virtual machine migration |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
CN111327509B (zh) * | 2020-01-21 | 2022-07-12 | 新华三信息安全技术有限公司 | 一种信息更新方法及装置 |
US11340932B2 (en) * | 2020-01-23 | 2022-05-24 | Vmware, Inc. | Packet handling based on multiprocessor architecture configuration |
US11368387B2 (en) | 2020-04-06 | 2022-06-21 | Vmware, Inc. | Using router as service node through logical service plane |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061462A1 (en) | 2005-09-15 | 2007-03-15 | Jooyong Kim | Host migration system |
US20070079307A1 (en) | 2005-09-30 | 2007-04-05 | Puneet Dhawan | Virtual machine based network carriers |
JP2010114665A (ja) | 2008-11-06 | 2010-05-20 | Toshiba Corp | 通信データ制御方法及び計算機システム |
US20100287548A1 (en) | 2009-05-06 | 2010-11-11 | Vmware, Inc. | Long Distance Virtual Machine Migration |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3411159B2 (ja) | 1996-08-02 | 2003-05-26 | 株式会社日立製作所 | 移動計算機サポートシステム |
US7020464B2 (en) * | 2001-10-09 | 2006-03-28 | Microsoft Corporation | System and method for providing agent-free and no-packet overhead mobility support with transparent session continuity for mobile devices |
US6934799B2 (en) | 2002-01-18 | 2005-08-23 | International Business Machines Corporation | Virtualization of iSCSI storage |
US7484208B1 (en) | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US7619966B2 (en) | 2003-02-21 | 2009-11-17 | Alcatel Lucent | Hybrid virtual private LAN extensions |
TWI253251B (en) | 2003-09-19 | 2006-04-11 | Inst Information Industry | Network address port translation gateway providing fast query and replacement for virtual host service, and the method thereof |
DE102004037024B4 (de) | 2004-07-30 | 2006-07-13 | Siemens Ag | Verfahren und Netzelement für ein die Dienstgüte erhaltendes Umrouten von Verkehr in Netzen mit langsamer Routenkonvergenz |
US8220030B2 (en) * | 2005-07-02 | 2012-07-10 | Tara Chand Singhal | System and method for security in global computer transactions that enable reverse-authentication of a server by a client |
JP4606985B2 (ja) | 2005-09-29 | 2011-01-05 | 三菱電機株式会社 | 無線通信システム |
US8619771B2 (en) | 2009-09-30 | 2013-12-31 | Vmware, Inc. | Private allocated networks over shared communications infrastructure |
CA2547047A1 (en) | 2006-05-15 | 2007-11-15 | Embotics Corporation | Management of virtual machines using mobile autonomic elements |
US8479194B2 (en) | 2007-04-25 | 2013-07-02 | Microsoft Corporation | Virtual machine migration |
WO2009146165A1 (en) | 2008-04-15 | 2009-12-03 | Blade Network Technologies, Inc. | Network virtualization for a virtualized server data center environment |
US10127059B2 (en) | 2008-05-02 | 2018-11-13 | Skytap | Multitenant hosted virtual machine infrastructure |
US20100031253A1 (en) | 2008-07-29 | 2010-02-04 | Electronic Data Systems Corporation | System and method for a virtualization infrastructure management environment |
US9715401B2 (en) | 2008-09-15 | 2017-07-25 | International Business Machines Corporation | Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment |
US7996484B2 (en) | 2008-12-11 | 2011-08-09 | Microsoft Corporation | Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory |
US8386612B2 (en) | 2009-02-10 | 2013-02-26 | International Business Machines Corporation | Optimizing migration policy during live virtual memory migration |
US8595737B2 (en) * | 2009-03-17 | 2013-11-26 | Hitachi, Ltd. | Method for migrating a virtual server to physical server according to a variation ratio, a reference execution time, a predetermined occupied resource amount and a occupancy amount |
US9497039B2 (en) | 2009-05-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Agile data center network architecture |
EP2309680B1 (en) | 2009-10-08 | 2017-07-19 | Solarflare Communications Inc | Switching API |
US20110185082A1 (en) | 2009-12-29 | 2011-07-28 | Tervela, Inc. | Systems and methods for network virtualization |
US20120099602A1 (en) | 2010-10-25 | 2012-04-26 | Brocade Communications Systems, Inc. | End-to-end virtualization |
US9104460B2 (en) | 2011-05-31 | 2015-08-11 | Red Hat, Inc. | Inter-cloud live migration of virtualization systems |
-
2011
- 2011-07-27 US US13/192,254 patent/US9424144B2/en active Active
- 2011-10-11 KR KR1020147001876A patent/KR101884498B1/ko active IP Right Grant
- 2011-10-11 CN CN201180072594.1A patent/CN103703729B/zh active Active
- 2011-10-11 JP JP2014522809A patent/JP6059222B2/ja active Active
- 2011-10-11 EP EP11870021.0A patent/EP2737668B1/en active Active
- 2011-10-11 WO PCT/US2011/055658 patent/WO2013015825A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061462A1 (en) | 2005-09-15 | 2007-03-15 | Jooyong Kim | Host migration system |
US20070079307A1 (en) | 2005-09-30 | 2007-04-05 | Puneet Dhawan | Virtual machine based network carriers |
JP2010114665A (ja) | 2008-11-06 | 2010-05-20 | Toshiba Corp | 通信データ制御方法及び計算機システム |
US20100287548A1 (en) | 2009-05-06 | 2010-11-11 | Vmware, Inc. | Long Distance Virtual Machine Migration |
Also Published As
Publication number | Publication date |
---|---|
JP2014525204A (ja) | 2014-09-25 |
JP6059222B2 (ja) | 2017-01-11 |
US9424144B2 (en) | 2016-08-23 |
CN103703729B (zh) | 2016-12-28 |
CN103703729A (zh) | 2014-04-02 |
WO2013015825A1 (en) | 2013-01-31 |
EP2737668A1 (en) | 2014-06-04 |
EP2737668B1 (en) | 2016-03-23 |
KR20140043800A (ko) | 2014-04-10 |
EP2737668A4 (en) | 2015-01-07 |
US20130031544A1 (en) | 2013-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101884498B1 (ko) | 가상 머신의 실시간 이전을 가능하게 하는 방법, 및 가상 머신의 실시간 이전을 제어하는 방법 및 가상 머신 관리자 | |
US10700979B2 (en) | Load balancing for a virtual networking system | |
US7984123B2 (en) | Method and system for reconfiguring a virtual network path | |
US7941539B2 (en) | Method and system for creating a virtual router in a blade chassis to maintain connectivity | |
US8743894B2 (en) | Bridge port between hardware LAN and virtual switch | |
US9628290B2 (en) | Traffic migration acceleration for overlay virtual environments | |
US7962587B2 (en) | Method and system for enforcing resource constraints for virtual machines across migration | |
US8432791B1 (en) | Network route injections | |
US20140019970A1 (en) | Virtual machine management system and virtual machine management method | |
US20140366027A1 (en) | Early network notification in live migration | |
US11689631B2 (en) | Transparent network service migration across service devices | |
US20150078152A1 (en) | Virtual network routing | |
US11095716B2 (en) | Data replication for a virtual networking system | |
CN103544043A (zh) | 管理多个虚拟机的分级系统、方法和计算机程序 | |
US11997015B2 (en) | Route updating method and user cluster | |
US11824765B2 (en) | Fast redirect of traffic when pods fail | |
CN109194589B (zh) | 一种mdc实现方法及装置 | |
US20150023358A1 (en) | Migration of guest bridge | |
US11121960B2 (en) | Detecting and managing relocation of network communication endpoints in a distributed computing environment | |
US11206195B2 (en) | Cloud computing environment with split connectivity and application interfaces that enable support of separate cloud services | |
US20220303215A1 (en) | Location change notification handling | |
US20240323177A1 (en) | Enabling a bulk release of multiple logins for a server device | |
JP2017022579A (ja) | 通信システム、通信ノード、および通信システムにおける代替処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |