KR20150002426A - 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치 - Google Patents

네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR20150002426A
KR20150002426A KR1020130162180A KR20130162180A KR20150002426A KR 20150002426 A KR20150002426 A KR 20150002426A KR 1020130162180 A KR1020130162180 A KR 1020130162180A KR 20130162180 A KR20130162180 A KR 20130162180A KR 20150002426 A KR20150002426 A KR 20150002426A
Authority
KR
South Korea
Prior art keywords
virtual machine
virtual
driver
packet
data path
Prior art date
Application number
KR1020130162180A
Other languages
English (en)
Other versions
KR101644678B1 (ko
Inventor
최기만
김남곤
Original Assignee
주식회사 케이티
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 주식회사 케이티 filed Critical 주식회사 케이티
Publication of KR20150002426A publication Critical patent/KR20150002426A/ko
Application granted granted Critical
Publication of KR101644678B1 publication Critical patent/KR101644678B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4675Dynamic sharing of VLAN information amongst network nodes
    • H04L12/4679Arrangements for the registration or de-registration of VLAN attribute values, e.g. VLAN identifiers, port VLAN membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치가 개시된다. 가상 머신의 이동성 지원 방법은 소스 호스트에서 가상 머신의 이동시 소스 가상 머신과 연결된 가속화된 데이터 경로를 비활성화한 후, 소스 가상 머신과 연결된 일반 데이터 경로로 패킷을 스위칭한 후 소스 가상 머신을 이동하고, 목적 호스트에서는 가상 머신의 이동이 완료되면 가속화된 데이터 경로를 활성화한 후 소스 가상 머신에 설정된 정책을 네트워크 관리자로부터 수신하여 목적 가상 머신에 설정한다. 따라서, 네트워크 입출력 가상화가 지원되는 환경에서도 가상 머신의 이동성을 지원할 수 있고, 가상 머신의 이동시에도 네트워크 연결성 및 가상 머신에 설정된 정책을 유지할 수 있다.

Description

네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치{METHODS FOR SUPPORTING MOBILITY OF VIRTUAL MACHINE IN NETWORK INPUT OUTPUT VIRTUALIZATION ENVIRONMENT AND APPARATUS FOR PERFORMING THE SAME}
본 발명은 가상화 기술에 관한 것으로, 더욱 상세하게는 네트워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치에 관한 것이다.
일반적으로, 데이터 센터(DC: Data Center) 환경에서의 가상 머신(VM: Virtual Machine)의 이동은 데이터 센터 내의 서버간 부하 분산, 가상 머신에 저장된 데이터의 백업 등을 수행하기 위한 목적으로 수행된다. 가상 머신의 이동성 지원을 통해 하드웨어 자원의 이용률을 증대시킬 수 있고, 서버 운용비를 절감할 수 있으며, 안정된 서비스를 제공할 수 있다.
한편, 최근에는 데이터 센터 환경에 SDN(Software Defined Networking) 및 NFV(Network Function Virtualization) 기술을 적용하고자 하는 노력들이 진행되고 있고, 특히 '입출력(IO) 가상화 환경' 구성을 통한 네트워크 입출력 가속화 기술에 대한 고려가 활발하게 이루어지고 있다. 이는 데이터 센터 환경을 통해 제공되는 서비스의 성능이 네트워크 성능(throughput)에 특히 의존적이기 때문이다. 예를 들어 클라우드 기반으로 미디어 전송(delivery) 서비스를 제공하는 경우, 클라우드 상에서 제공 가능한 네트워크 쓰루풋이 서비스의 성능을 결정하는데 중요한 요소로 작용한다. 따라서, 데이터 센터 내 호스트의 환경이 입출력 가상화가 미적용된 환경뿐만 아니라 입출력 가상화가 적용된 환경인 경우에 대해서도 가상 머신의 이동성 지원을 위한 기술이 요구된다.
현재, 가상 머신의 이동성 지원시 고려해야 하는 사항으로 인식되고 있는 문제들로는, 서로 다른 VLAN(Virtual Local Area Network) ID(Identifier)를 갖는 가상 머신 간의 이동성 지원, 이동 대상 가상 머신이 포함된 제2 계층(L2) 네트워크의 연속관리 및 확장, 네트워크 연결성 유지, 라우팅 최적화, 가상 머신의 정책 유지 등이 있다.
한편, 종래의 가상 머신 이동성 지원을 위한 기술들은 대부분 입출력 가상화가 지원되지 않는 환경에 적용될 수 있는 기술들로, 가상 머신이 하이퍼바이저(hypervisor) 내의 가상 입출력 디바이스(Virtual IO device)를 물리적 네트워크 인터페이스 카드(NIC: Network Interface Card)와 연결된 가상 스위치(vSwitch)와 연결함으로써 가상 머신의 네트워크 연결성이 항상 유지되는 구조를 제공한다.
그러나, 입출력 가상화가 적용된 환경에서는 가상 머신의 이동성 지원을 위한 기술이 현재 존재하지 않는다.
또한, 종래의 가상 머신 이동성 지원 기술은 가상 머신의 이동시 네트워크의 연결이 단절되고, 가상 머신에 이미 적용중인 정책이 가상 머신이 이동한 후에 자동적으로 유지되지 않는 단점이 있다.
본 발명의 목적은 입출력 가상화가 적용되는 환경에서 가상 머신의 이동성을 지원할 수 있고, 가상 머신의 이동시 네트워크 연결을 유지하며, 가상 머신의 정책을 유지할 수 있는 가상 머신의 이동성 지원 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기한 가상 머신의 이동성 지원 방법을 실행하는 장치를 제공하는 것이다.
본 발명에서 이루고자 하는 목적들은 상기한 목적으로 제한되지 않으며, 언급하지 않은 다른 목적들은 하기의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 가상 머신의 이동성 지원 방법은 소스 호스트(source Host)에서 수행되는 가상 머신의 이동성 지원 방법으로, 상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계 및 상기 가속화된 데이터 경로가 비활성화되면, 상기 가상 머신과 연결된 일반 데이터 경로로 패킷을 스위칭하는 단계를 포함한다.
여기서, 상기 가상 머신의 이동성 지원 방법은 상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계 이전에, 상기 가상 머신이 이동할 목적 호스트에 상기 가상 머신의 이동을 요청하는 단계를 더 포함할 수 있다.
여기서, 상기 가속화된 데이터 경로는 상기 가상 머신과 물리적 네트워크 인터페이스(P-NIC)에 포함된 가상 기능(VF) 사이의 연결 경로가 될 수 있다.
여기서, 상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계에서는 상기 가상 머신에 포함된 플러그인 드라이버가, 상기 가상 머신에 포함되고 상기 가상 기능과 연결된 가상 기능 드라이버를 비활성화 할 수 있다.
여기서, 상기 가상 머신과 연결된 일반 데이터 경로로 패킷을 스위칭하는 단계에서는, 상기 소스 호스트의 하이퍼바이저 내의 가상 입출력 디바이스(Virtual IO device)로 패킷을 스위칭할 수 있다.
여기서, 상기 가상 머신의 이동성 지원 방법은 상기 가상 머신이 목적 호스트로 이동한 후, 상기 가상 머신에 설정된 정책 정보를 상기 목적 호스트로 이동하는 단계를 더 포함할 수 있다.
여기서, 상기 가상 머신에 설정된 정책 정보를 상기 목적 호스트로 이동하는 단계에서는, 상기 소스 호스트가 상기 가상 머신에 설정된 정책을 네트워크 관리자에 전송하고, 상기 네트워크 관리자가 상기 목적 호스트에 상기 정책을 이송할 수 있다.
여기서, 상기 가상 머신의 이동성 지원 방법은 상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계 이전에, 상기 소스 호스트의 하이퍼바이저가 가상 입출력 디바이스(Virtual IO device)를 생성하는 단계와, 상기 하이퍼바이저가 상기 가상 머신에 가상 기능을 할당하는 단계와, 상기 하이퍼바이저가 상기 가상 머신에 설정된 정책 정보를 네트워크 관리자로 전달하는 단계와, 상기 가상 머신에 장착된 플러그인 드라이버에 상기 할당된 가상 기능을 지원하는 가상 기능 드라이버와 상기 가상 입출력 디바이스를 바이딩 하는 단계와, 상기 플러그인 드라이버가 상기 가상 기능 드라이버의 활성화 여부를 모니터링하는 단계 및 상기 가상 기능 드라이버가 활성화되면 상기 가상 기능 드라이버와 상기 가상 기능 사이의 경로인 상기 가속화된 데이터 경로로 패킷을 스위칭하는 단계를 더 포함할 수 있다.
또한, 본 발명의 목적을 달성하기 위한 본 발명의 다른 측면에 따른 가상 머신의 이동성 지원 방법은, 소스 호스트(source Host)에 속한 소스 가상 머신에 정책을 설정하는 단계와, 상기 소스 호스트가 상기 소스 호스트에 설정된 정책을 네트워크 관리자에 전달하는 단계와, 상기 소스 가상 머신이 목적 호스트(destination Host)로 이동하는 단계 및 상기 네트워크 관리자가 상기 목적 호스트로 이동한 가상 머신에 상기 소스 호스트에 설정된 정책을 전달하는 단계를 포함한다.
또한, 본 발명의 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 가상 머신의 이동성 지원 방법은 목적 호스트에서 수행되는 가상 머신의 이동성 지원 방법으로, 가상 머신의 이동 요청을 수신하는 단계와, 상기 가상 머신의 이동을 위한 목적 가상 머신을 생성하는 단계와, 상기 가상 머신과 물리적 네트워크 인터페이스 카드(P-NIC) 사이의 일반 데이터 경로를 활성화하는 단계 및 활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계를 포함한다.
여기서, 상기 가상 머신의 이동성 지원 방법은 상기 활성화된 일반 데이터 경로로 패킷을 스위칭하는 단계 이후, 상기 가상 머신에 설정된 정책 정보를 네트워크로 제어 장치로부터 제공 받는 단계를 더 포함할 수 있다.
여기서, 상기 가상 머신과 물리적 네트워크 인터페이스 카드(P-NIC) 사이의 일반 데이터 경로를 활성화하는 단계는, 가상 스위치(vSwitch)에 가상 입출력 디바이스(Virtual IO device)를 연결하는 단계 및 상기 목적 가상 머신에 포함된 플러그인 드라이버에 상기 가상 입출력 디바이스를 바인딩하는 단계를 포함할 수 있다.
여기서, 상기 활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계는, 상기 가상 입출력 디바이스로 패킷 스위칭을 지원하는 가상 네트워크 인터페이스 카드(vNIC) 드라이버의 활성화 여부를 판단하는 단계 및 상기 가상 네트워크 인터페이스 카드(vNIC) 드라이버가 활성화되면, 상기 가상 입출력 디바이스로 패킷을 스위칭하는 단계를 포함할 수 있다.
여기서, 상기 가상 머신의 이동성 지원 방법은 상기 활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계 이후, 상기 목적 가상 머신에 가상 기능(VF)를 할당하는 단계와, 상기 목적 가상 머신에 네트워크 관리자로부터 제공된 정책 정보를 적용하는 단계와, 상기 플러그인 드라이버에 상기 할당된 가상 기능을 지원하는 가상 기능 드라이버를 바인딩하는 단계 및 상기 가상 기능 드라이버가 활성화되면 상기 가상 기능 드라이버로 패킷을 스위칭하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 가상 머신의 이동성 지원 장치는 호스트 장치의 구성으로, 일반 데이터 경로 및 가속화된 데이터 경로 사이의 패킷 스위칭을 수행하는 플러그인 드라이버를 포함하는 가상 머신과, 상기 가상 머신의 일반 데이터 경로를 통한 패킷 송수신을 지원하는 가상 입출력 디바이스(Virtual IO device) 및 상기 가상 입출력 디바이스와 연결된 가상 스위치(vSwitch)를 포함하는 하이퍼바이저 및 상기 가상 머신과 상기 하이퍼바이저를 경유하여 연결되어 상기 일반 데이터 경로를 형성하는 물리 기능(PF)과, 상기 가상 머신과 상기 하이퍼바이저를 우회하여 연결되어 상기 가속화된 데이터 경로를 형성하는 가상 기능(VF)을 포함하는 물리적 네트워크 인터페이스 카드(P-NIC)를 포함한다.
여기서, 상기 가상 머신은 상기 플러그인 드라이버와 상기 가상 입출력 디바이스 사이에서 연결되어 상기 가상 머신의 일반 데이터 경로를 통한 패킷 송수신을 지원하는 가상 네트워크 인터페이스 카드(vNIC) 드라이버 및 상기 플러그인 드라이버와 상기 가상 기능 사이에 연결되어 상기 가상 머신의 가속화된 데이터 경로를 통한 패킷 송수신을 지원하는 가상 기능 드라이버를 포함할 수 있다.
여기서, 상기 플러그인 드라이버는, 상기 가상 네트워크 인터페이스 카드 드라이버 및 상기 가상 기능 드라이버의 활성화 여부를 모니터링하는 링크 모니터링 모듈 및 상기 링크 모니터링 모듈로부터 제공된 모니터링 결과에 따라 상기 가상 네트워크 인터페이스 카드 드라이버 및 상기 가상 기능 드라이버 중 어느 하나로 패킷을 스위칭하는 패킷 스위칭 모듈을 포함할 수 있다.
여기서, 상기 플러그인 드라이버는 상기 가상 기능 드라이버가 활성화되면, 상기 가상 네트워크 인터페이스 카드 드라이버의 활성화 여부에 상관없이 상기 가상 기능 드라이버로 패킷을 스위칭할 수 있다.
여기서, 상기 플러그인 드라이버는 상기 가상 머신의 이동시에는 상기 가속화된 패킷 경로를 비활성화하고, 상기 일반 패킷 경로를 활성화하여 상기 일반 패킷 경로로 패킷을 스위칭할 수 있다. 또한, 상기 플러그인 드라이버는 상기 가상 머신의 이동이 완료된 후에는 상기 가속화된 패킷 경로의 활성화 여부를 모니터링하고, 상기 가속화된 패킷 경로가 활성화되면 상기 가속화된 패킷 경로로 패킷을 스위칭할 수 있다.
본 발명의 실시예에 따른 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치에 따르면, 네트워크 입출력 가상화가 지원되는 환경에서 가상 머신과 가상 스위치의 연결을 지원하는 vNIC 드라이버와 입출력 가상화 기반의 VF 드라이버에 대한 동시 할당 및 링크 스위칭을 수행하는 플러그인 드라이버를 제공하고, 플러그인 드라이버가 가상 머신의 이동시 링크 활성화 여부를 모니터링 하고 그 결과에 따라 일반 데이터 경로 또는 가속화된 데이터 경로로 패킷을 스위칭 함으로써 네트워크의 연결성을 유지할 수 있다.
또한, 본 발명에서는 가상 머신에 적용되는 정책을 네트워크 관리자가 중앙 집중적으로 저장 및 관리하고, 네트워크 관리자가 가상 머신의 이동이 완료된 후 소스 가상 머신에 적용된 정책을 목적 가상 머신에 이송함으로써 가상 머신의 이동에 관계 없이 가상 머신의 정책을 유지할 수 있다.
따라서, 본 발명에 따른 가상 머신 이동성 제공 방법이 데이터 센터 또는 클라우드 네트워크 환경에 적용될 경우, 입출력 가속화를 통해 서비스의 성능을 향상시킬 수 있다.
또한, 본 발명에 따른 가상 머신 이동성 제공 방법을 네트워크 입출력 가상화 환경을 기반으로 하는 데이터 센터 내 또는 데이터 센터간 멀티태넌시(multi-tenancy) 네트워크나 오버레이(overlay) 네트워크의 구성에 적용하는 경우, SDN, NFV 등과 같은 미래 네트워크 구현 기술을 최적화 및 활성화 할 수 있다.
도 1은 SDN 기술이 적용된 데이터 센터의 구성을 나타내는 블록도이다.
도 2는 네트워크 입출력 가상화가 적용되지 않은 호스트의 구성을 나타내는 블록도이다.
도 3은 네트워크 입출력 가상화가 적용된 호스트의 구성을 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 플러그인 드라이버의 구성을 나타내는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 가상 머신 이동성 제공 방법을 설명하기 위한 개념도이다.
도 6은 본 발명의 다른 실시예에 따른 가상 머신의 이동성 지원 방법을 설명하기 위한 개념도이다.
도 7은 본 발명의 실시예에 따른 가상 머신의 이동성 지원 방법에서 가상 머신에 설정된 정책을 유지하기 위한 방법을 설명하기 위한 개념도이다.
도 8은 본 발명의 일 실시예에 따른 가상 머신의 이동성 지원을 위한 환경 구축 과정을 나타내는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 가상 머신 이동성 지원 방법을 나타내는 순서도이다.
도 10은 본 발명의 일 실시예에 따른 가상 머신의 이동성 지원 방법에서 이동이 완료된 가상 머신의 네트워크 입출력 가상화 절차를 나타내는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 SDN 기술이 적용된 데이터 센터의 구성을 나타내는 블록도이다.
도 1을 참조하면, 데이터 센터는 복수의 호스트(100)로 구성될 수 있고, 각 호스트(100)는 복수의 가상 머신(110) 및 하이퍼바이저(Hypervisor)(120)를 포함할 수 있다. 또한, 다수개의 호스트(100)는 파드(POD)(200)로 구성되어, TOR(Top Of Rack) 스위치(300)에 연결된다. 다수개의 파드(POD)가 존(zone)으로 구성되어 하나의 데이터 센터를 구성한다.
또한, 클라우드스택(Cloudstack) 또는 오픈스택(Openstack) 등과 같은 네트워크 관리자(network manager)(400)가 데이터 센터 내의 가상 머신(110)의 구성 및 유지 관리를 위한 전반적인 기능을 수행한다.
한편, SDN과 같은 네트워크 제어 기술이 데이터 센터 환경에 적용되고 있고, 네트워크 제어 장치(500)가 네트워크 관리자(400)와 연동하여 TOR 스위치(300) 또는 각 호스트(100)의 하이퍼바이저(120) 단에 위치하는 가상 스위치(vSwitch)로 제어 명령을 전달함으로써 데이터 평면(control plane)의 기능이 수행되도록 한다. 여기서, 네트워크 제어 장치(500)는 예를 들어 SDN 시스템의 컨트롤러(Controller)로 구성될 수 있다.
도 2는 네트워크 입출력 가상화가 적용되지 않은 호스트의 구성을 나타내는 블록도이다.
호스트(100a)는 복수의 가상 머신(110a)들과 하이퍼바이저(120a) 및 물리적 네트워크 인터페이스 카드(Physical Network Interface Card, 이하, 'P-NIC'으로 약칭함)(130a)를 포함할 수 있다.
각 가상 머신(110a)은 데이터의 입출력을 지원하는 가상 네트워크 인터페이스 카드(virtual Network Interface Card, 이하, 'vNIC'이라 지칭함) 드라이버(111a)를 포함한다.
서버 가상화 기술 기반으로 생성된 다수개의 가상 머신(110a)은 하이퍼바이저(120a) 내에 구성된 가상 스위치(virtual switch, 이하, 'vSwitch'라 약칭함)(121a)를 거쳐 하나의 P-NIC(130a)을 공유하는 구조로 구성된다. 여기서, vSwitch(121a)는 복수의 가상 머신(110a)과 P-NIC(130a)간의 패킷 송수신을 스위칭한다.
도 2에 도시한 바와 같은 네트워크 IO(입출력) 가상화가 적용되지 않는 호스트(100a)에서는 가상 머신(110a)과 P-NIC(130a)간의 패킷 송수신 요청 처리시 vSwitch(121a)의 개입으로 인한 오버헤드 때문에 네트워크의 입출력 성능(throughput)이 저하되는 단점이 있다.
상기한 바와 같이 vSwitch(121a)의 개입으로 인한 입출력 성능 저하를 극복하기 위해 PCI-SIG(Peripheral Component Interconnect-Special Interest Group)에서는 입출력 처리와 직접적으로 관련이 없는 하이퍼바이저의 개입을 배제하면서 가상 머신 별로 P-NIC의 자원을 논리적으로 분리하여 제공하는 표준화된 SR-IOV(Single Root IO Virtualization) 기술을 정의하였다.
도 3은 네트워크 입출력 가상화가 적용된 호스트의 구성을 나타내는 블록도로서, SR-IOV(Single Root IO Virtualization) 기술이 적용된 호스트의 구성을 나타낸다.
도 3을 참조하면, 네트워크 입출력 가상화가 적용된 호스트(100b)는 복수의 가상 머신(110b)과, 하이퍼바이저(120b) 및 P-NIC(130b)을 포함할 수 있다. 여기서, 각 가상 머신(110b)은 가상 기능(Virtual Function, 이하, 'VF'라 약칭함) 드라이버(112b)를 포함할 수 있다. 여기서, VF 드라이버(112b)는 가상 머신이 P-NIC(130b)의 VF(132b)를 통해 직접적으로 데이터를 송수신 할 수 있도록 지원한다. 하이퍼바이저(120b)는 vSwitch(121b)를 포함할 수 있다. 또한, P-NIC(130b)은 하나의 물리 기능(Physical Function, 이하, 'PF'라 약칭함)(131b)과 복수의 VF(132b)를 포함할 수 있다.
PF(131b)는 P-NIC(130b)의 모든 기능과 제어를 담당하고, 복수의 VF(132b)는 각각 가상 머신(110b)에 할당된 VF 드라이버(112b)와 연결되어 각 가상 머신(110b)의 데이터 송수신만을 담당한다. 즉, 도 3에 도시한 바와 같이 네트워크 입출력 가상화가 적용된 호스트에서는 각 가상 머신이 하이퍼바이저(120b)의 vSwitch(121b)를 우회하여 P-NIC(130b)의 VF(132b)와 직접적인 데이터 경로를 형성할 수 있다.
도 3에 도시한 바와 같이 SR-IOV를 지원하는 P-NIC(130b)은 패킷 송수신시 기존의 P-NIC에서 수행되던 가상 머신으로의 메모리 공간 복사(memory space copy) 없이 직접 메모리 접근(DMA: Direct Memory Access) 방식을 이용하여 각 가상 머신(110b)이 VF(132b)를 이용해 직접 호스트(100b)의 외부와 통신하도록 함으로써 네트워크의 입출력 성능을 향상시킬 수 있다.
그러나, 도 3에 도시한 바와 같은 SR-IOV 기반의 입출력 가상화 적용 환경에서는 가상 머신의 이동성 지원이 불가능한 단점이 있다. 즉, SR-IOV 기반의 입출력 가상화 환경에서는 가상 머신이 vSwitch(121b)를 우회(bypass) 하고, 가상 머신별 네트워크 상태 정보가 각 VF(132b)에서 관리되므로 도 2에 도시한 바와 같은 입출력 가상화가 지원되지 않는 환경에서 적용되는 가상 머신 이동성 지원 기술은 적용할 수 없다.
또한, SR-IOV 기반의 입출력 가상화 적용 환경에서는 하이퍼바이저 사이의 가상 머신 이동시 VF 번호의 변동이나, P-NIC 하드웨어의 변동이 발생하면 네트워크 연결성 자체가 단절되므로 주문형(on demand) 기반의 라이브 마이그레이션(live migration)에 제약이 존재한다.
또한, 가상 머신의 이동시 기존 가상 머신에 이미 적용중인 정책(예를 들면, 네트워크 대역폭 제한, 가상 머신의 보안성 유지를 위한 설정 등)이 가상 머신의 마이그레이션 후 이동된 가상 머신에 동일하게 적용되기 위한 추가적인 환경 구성작업이 운용자에 의해 수동적으로 이루어져야 하는 문제가 있다.
본 발명은 데이터 센터 내 또는 데이터 센터들간 가상 머신의 이동성 지원시 발생하는 네트워크 연결성 문제 및 가상 머신 정책 유지 문제를 해결하기 위한 가상 머신 이동성 제공 방법을 제공한다.
구체적으로, 본 발명은 SR-IOV 기반 입출력(IO) 가상화 환경에서 가상 머신과 vSwitch의 연결을 지원하는 vNIC 드라이버와 VF 드라이버에 대한 동시 할당 및 연결 관리를 통해 가상 머신의 이동성을 지원하는 '플러그인 드라이버(Plugin driver)'를 제공하고, 플러그인 드라이버를 이용한 가상 머신 이동성 지원 방법을 제공한다.
도 4는 본 발명의 일 실시예에 따른 플러그인 드라이버의 구성을 나타내는 개념도이다.
플러그인 드라이버(150)는 각각의 가상 머신에 포함될 수 있고, 가상 머신에 연결된 vNIC 드라이버(111) 및 VF 드라이버(112)의 링크 상태를 모니터링하고, 모니터링 결과에 기초하여 vNIC 드라이버(111) 및 VF 드라이버(112) 중 어느 하나의 링크로 패킷의 전달 경로(또는 전달 포트)를 스위칭할 수 있다.
플러그인 드라이버(150)는 링크 모니터링 모듈(151)과 패킷 스위칭 모듈(152)을 포함할 수 있다.
링크 모니터링 모듈(151)은 vNIC 드라이버(111) 및 VF 드라이버(112)의 링크 상태를 지속적으로 확인하여 각 드라이버(111, 112)의 활성화(plug) 또는 비활성화(unplug) 상태를 감지하고, 감지 결과를 패킷 스위칭 모듈(152)에 제공한다. 여기서, vNIC 드라이버(111)는 가상 머신이 하이퍼바이저의 vSwitch를 경유하여 P-NIC의 PF와 연결되는 일반 데이터 경로(legacy data path)를 통한 패킷 송수신을 지원하고, VF 드라이버(112)는 가상 머신과 VF 사이의 가속화된 데이터 경로(accelerated data path)를 통한 패킷 송수신을 지원한다. 즉, 링크 모니터링 모듈(151)은 일반 데이터 경로 및 가속화된 데이터 경로의 활성화 여부를 모니터링 한다.
패킷 스위칭 모듈(152)은 링크 모니터링 모듈(151)로부터 제공된 각 드라이버(111, 112)의 링크 상태에 기초하여 패킷의 전달 경로를 스위칭 한다. 여기서, 패킷 스위칭 모듈은 VF 드라이버(112)가 활성화 상태이면 vNIC 드라이버(111)의 활성화 여부에 상관없이 패킷의 전달 경로를 VF 드라이버(112)로 스위칭함으로써 네트워크 입출력 가상화 기능이 활성화될 수 있게 하고, 이를 통해 가속화된 데이터 경로 기반의 패킷 처리를 가능하게 한다.
또는, 패킷 스위칭 모듈(152)은 vNIC 드라이버(111)가 활성화 상태이면서 VF 드라이버(112)가 비활성화 상태인 경우, 패킷의 전달 경로를 vNIC 드라이버(111)로 스위칭함으로써 일반적인 데이터 경로 기반의 패킷 처리가 수행되도록 한다.
본 발명의 일 실시예에 따른 플러그인 드라이버(150)는 네트워크 입출력 가상화 환경 기반의 가상 머신 이동성 지원을 위한 기능을 수행하므로, 플러그인 드라이버(150)가 적용되는 가상화 환경에서는 기본적으로 각 호스트에 장착된 P-NIC이 SR-IOV 기반의 입출력 가상화 기능을 지원하는 것으로 가정한다.
도 5는 본 발명의 일 실시예에 따른 가상 머신 이동성 제공 방법을 설명하기 위한 개념도로서, SR-IOV가 지원되는 NIC을 장착한 두 호스트(100-1, 100-2)간의 가상 머신의 이동 방법을 예를 들어 도시하였다.
도 5를 참조하면, 제1 호스트(100-1)는 복수의 가상 머신(110-1), 하이퍼바이저(120-1) 및 P-NIC(130-1)을 포함할 수 있다. 또한, 제2 호스트(100-2)는 복수의 가상 머신(110-2), 하이퍼바이저(120-2) 및 P-NIC(130-2)을 포함할 수 있다.
각 가상 머신(110-1)에는 플러그인 드라이버(150-1)가 장착될 수 있고, 플러그인 드라이버(150-1)와 연결된 vNIC 드라이버(111-1)와 VF 드라이버(112-1)를 포함할 수 있다. 하이퍼바이저(120-1)는 가상 입출력 디바이스(Virtual IO device)(122-1) 및 vSwitch(121-1)를 포함할 수 있다. 가상 입출력 디바이스(122-1)는 하이퍼바이저(120-1) 내에서 에뮬레이션된 입출력 디바이스로 가상 머신(110-1)의 vNIC 드라이버(111-1)와 vSwitch(121-1) 사이의 데이터 송수신에 대한 입출력을 담당한다. vSwitch(121-1)는 가상 입출력 디바이스(122-1)와 PF(131-1) 사이에 연결되어 패킷을 스위칭한다.
P-NIC(130-1)은 PF(131-1) 및 복수의 VF(132-1)를 포함할 수 있고, PF(131-1) 는 하이퍼바이저(120-1)의 vSwitch(121-1)와 연결되고, 각 VF(132-1)는 하이퍼바이저(120-1)를 우회하여 각 가상 머신(110-1)의 VF 드라이버(112-1)와 직접적으로 연결될 수 있다.
도 5에 도시한 바와 같이 본 발명의 일 실시예에 따른 호스트(100-1)는 각 가상 머신(110-1)에 VF(132-1)가 별도로 할당되어 가속화된 데이터 경로로 패킷을 송수신할 수 있는 구조를 가진다.
제1 호스트(100-1)에 위치한 가상 머신1(110)에 플러그인 드라이버(150)가 장착되면 가속화된 데이터 경로를 형성하기 위한 VF 드라이버(112-1) 인터페이스와 별도로 일반 데이터 경로를 형성하기 위한 vNIC 드라이버(111-1) 인터페이스를 추가적으로 할당할 수 있게 된다.
vNIC 드라이버(111-1) 인터페이스는 하이퍼바이저(120-1) 내에 에뮬레이션된 가상 입출력 디바이스(122-1)를 통해 vSwitch(121-1)와 연결되므로 서버 가상화 환경을 기반으로 가상 머신 인스턴스(instance)가 생성되는 순간부터 항상 그 연결성이 유지될 수 있는 환경을 구성할 수 있게 된다. 이 때, vSwitch(121-1)는 SR-IOV가 지원되는 P-NIC(130-1) 내의 PF(131-1)를 통해 가상 머신(110-1) 이동시 네트워크 연결성을 유지하는 기능을 수행한다.
도 5는 제1 호스트(100-1) 내의 가상 머신(110-1)이 이동이 수행되어야 하는 소스(source) 가상 머신이고, 제2 호스트(100-2) 내의 가상 머신(110-2)이 목적(destination) 가상 머신으로 가정한 경우에, 소스 호스트(100)인 제1 호스트(100-1)에서 목적 호스트인 제2 호스트(100-2)로 가상 머신의 이동이 완료된 경우의 각 호스트(100-1, 100-2)의 구성을 나타낸 것이다.
여기서, 가상 머신(110-1)이 이동한 제2 호스트(100-2) 내의 가상 머신(110-2)에도 플러그인 드라이버(150-2)가 장착되고, VF 드라이버(112-2) 인터페이스를 통해 연결된 VF(132-2)는 가상 머신이 이동하기 이전의 가상 머신(110-1)(즉, 소스 가상 머신)에 할당된 VF 번호와 무관하게 할당될 수 있다.
또한, 제2 호스트(100-2)에 장착된 P-NIC(130-2) 역시 제1 호스트(100-1)에 장착된 P-NIC(130-1)과 종류가 다른 경우에도 가상 머신의 이동성이 지원될 수 있다.
도 5에서는 소스 호스트(100-1)와 목적 호스트(100-2)가 모두 SR-IOV 기반의 입출력 가상화 기능을 지원하는 P-NIC을 구비한 경우의 가상 머신의 이동성 지원을 예를 들어 도시하였으나, 본 발명의 실시예에 따른 가상 머신의 이동성 지원 방법은 호스트가 SR-IOV 기반의 입출력 가상화 기능을 지원하는 P-NIC과 입출력 가상화 기능을 지원하지 않는 일반적인 P-NIC을 동시에 사용하는 환경에서도 플러그인 드라이버를 이용한 가상 머신 이동성 지원 방법을 적용할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 가상 머신의 이동성 지원 방법을 설명하기 위한 개념도로서, SR-IOV가 지원되는 P-NIC 및 SR-IOV가 지원되지 않는 P-NIC을 장착한 두 호스트(100-1, 100-2)간의 가상 머신의 이동 방법을 예를 들어 도시하였다.
도 6에 도시한 제1 호스트(100-1) 및 제2 호스트(100-2)의 가상 머신(110-1, 110-2) 및 하이퍼바이저(120-1, 120-1)의 구성은 도 5에 도시한 제1 호스트(100-1) 및 제2 호스트(100-2)의 가상 머신(110-1, 110-2) 및 하이퍼바이저(120-1, 120-1)의 구성과 동일하다. 그러나, 도 6에 도시한 제1 호스트(100-1) 및 제2 호스트(100-2)는 각각 SR-IOV를 지원하지 않는 P-NIC(130-1a, 130-2a)과 SR-IOV 기능을 지원하는 P-NIC(130-1b, 130-2b)을 구비하고 있다는 점에서 도 5에 도시한 제1 호스트(100-1) 및 제2 호스트(100-2)와 차이가 있다.
도 6을 참조하면, 제1 호스트(100-1)의 가상 머신(110-1)에 할당된 vNIC 드라이버(111-1) 인터페이스는 하이퍼바이저(120-1) 내에 위치하는 가상 입출력 디바이스(122-1) 및 vSwitch(121-1)를 통해 입출력 가상화를 지원하지 않는 일반적인 P-NIC(130-1a)에 연결되어 일반 데이터 경로를 제공한다. 즉, 제1 호스트(100-1)는 가속화된 데이터 경로를 제공하는 P-NIC(130-1b)과 물리적으로 구분된 별도의 P-NIC(130-1a)을 통해 일반 데이터 경로를 제공하는 구조를 가진다.
따라서, 도 5에 도시한 바와 달리 도 6에 도시한 바와 같은 환경에서는, 가상 머신의 이동성 지원시에 소스 가상 머신(즉, 가상 머신(110-1))에서 목적 가상 머신(즉, 가상 머신(110-2))으로 가상 머신 메모리 페이지(VM memory page), 가상 머신 상태 및 가상 머신에 설정된 정책에 대한 이송이 제1 호스트(100-1)의 P-NIC(130-1a)과 제2 호스트(100-2)의 P-NIC(130-2a) 사이에 연결된 네트워크 링크를 통해 이루어지게 된다.
한편, 별도로 도시하지는 않았으나, 도 5 또는 도 6에 도시한 환경을 갖는 호스트내의 가상 머신이 소스 가상 머신으로 지정되고, 입출력 가상화가 지원되지 않는 호스트에 존재하는 가상 머신이 목적 가상 머신으로 지정되는 경우의 가상 머신 이동시에도 본 발명에서 제공하는 가상 머신 이동성 지원 방법이 동일하게 적용될 수 있다. 또한, 상기 소스 가상 머신 및 목적 가상 머신이 각각 존재하는 호스트의 환경이 반대인 경우에도 본 발명에서 제공하는 가상 머신 이동성 지원 방법이 동일하게 적용될 수 있다.
도 7은 본 발명의 실시예에 따른 가상 머신의 이동성 지원 방법에서 가상 머신에 설정된 정책을 유지하기 위한 방법을 설명하기 위한 개념도이다.
도 5 또는 도 6에 예시한 환경을 기반으로 입출력 가상화를 지원하는 환경 내에서 가상 머신을 생성하여 운용하는 경우, 가상 머신에 적용될 수 있는 정책의 예로는 네트워크 대역폭 제한 및 가상 머신의 반 스푸핑(Anti-spoofing) 설정을 통한 보안성 유지를 들 수 있다. 이와 같은 정책은 가상 머신 별로 할당된 VF에 특수하게 부여될 수 있고, 가상 머신 별로 설정된 정책 정보는 네트워크 관리자 플러그인을 통해 네트워크 관리자에 전달되어, 네트워크 관리자에서 저장 및 관리할 수 있다.
도 7에서, 네트워크 관리자 플러그인(Plug-in)(600)은 각 호스트(100-1, 100-2)에 소프트웨어로 탑재되어 호스트(100-1, 100-2)와 네트워크 관리자(400) 사이의 연결을 담당한다.
네트워크 관리자 플러그인(600)은 네트워크 관리자(400)가 네트워크 입출력 가상화 환경을 구성할 수 있도록 각 호스트(100-1, 100-2)와 네트워크 관리자(400)를 연결하고, 각 호스트(100-1, 100-2)와 네트워크 관리자(400) 사이에서 제어 및 관리 등과 관련된 데이터를 전달하는 기능을 수행한다.
도 7에 도시한 바와 같이 제1 호스트(100-1)에 위치한 가상 머신(110-1)이 소스 가상 머신이고, 제2 호스트(100-2)에 위치한 가상 머신(110-2)가 목적 가상 머신인 것으로 가정할 때, 가상 머신(110-1)에 반영되는 네트워크 대역폭 제한 및 가상 머신의 보안성 유지 등과 같은 정책은 통신속도 제한(Rate limit) 설정 정보와 MAC(Medium Access Control) 또는 VLAN의 반 스푸핑(Anti-spoofing) 설정 정보를 바탕으로 결정될 수 있으며 이 때, 상기 정책 정보는 네트워크 관리자 플러그인(600)을 통해 네트워크 관리자(400)에 전달되어 네트워크 관리자(400)에서 저장 및 관리 될 수 있다.
상기한 바와 같은 네트워크 환경에서 가상 머신(110-1)의 이동이 발생하면, 네트워크 관리자(400)는 저장 및 관리중인 가상 머신(110-1)의 정책 정보를 가상 머신(110-2)로 이송시켜 이동이 완료된 가상 머신(110-2)에서도 가상 머신(110-1)과 동일한 정책이 반영될 수 있도록 지원할 수 있다.
도 8은 본 발명의 일 실시예에 따른 가상 머신의 이동성 지원을 위한 환경 구축 과정을 나타내는 순서도로서, 가상 머신의 이동이 발생하기 전에 소스 가상 머신인 가상 머신(110-1)이 존재하는 소스 호스트에서 수행되는 가상 머신의 이동성 지원을 위한 사전 절차를 예시한 것이다.
도 8을 참조하면, 먼저 하이퍼바이저(120-1)에서 가상 머신(110-1)을 생성한다. 이 때, 하이퍼바이저(120-1)는 가상 입출력 디바이스(Virtual IO device)를 생성하고, 가상 머신(110-1)에 VF를 할당한다(S801).
또한, 가상 머신(110-1)에 적용된 정책 정보는 네트워크 관리자(400)로 전달되어 네트워크 관리자(400)에서 저장 및 관리된다(S803). 여기서, 가상 머신(110-1)에 설정된 정책은 예를 들어, 네트워크 대역폭 제한 및/또는 가상 머신의 보안성 유지를 위한 설정 등을 포함할 수 있다.
이후, 하이퍼바이저(120-1)는 가상 머신(110-1)이 사용하는 가상 입출력 디바이스(Virtual IO device)를 하이퍼바이저(120-1) 내의 vSwitch에 연결함으로써 vNIC 드라이버 인터페이스 연결작업을 완료한다(S805).
또한, 가상 머신(110-1)에 할당된 VF에 대응되는 VF 드라이버와 가상 입출력 디바이스는 플러그인 드라이버(150-1)에 바인딩(binding)된다(S807).
이후, 플러그인 드라이버(150-1)는 지속적인 링크 모니터링을 수행하여 VF 드라이버의 활성화(plug) 여부를 확인한다(S809). 즉, 플러그인 드라이버(150-1)는 VF 드라이버와 P-NIC의 VF 사이의 가속화된 데이터 경로가 활성화되었는가를 확인한다.
플러그인 드라이버(150-1)는 VF 드라이버가 활성화되면 패킷 경로를 VF 드라이버로 스위칭한다(S811). 이에 따라 가속화된 데이터 경로를 통해 패킷을 전달할 수 있는 입출력 가상화 환경이 구성된다.
도 9는 본 발명의 일 실시예에 따른 가상 머신 이동성 지원 방법을 나타내는 순서도이다.
도 9에서는, 도 8에 예시한 환경 구축 절차가 완료되어 네트워크 입출력 가상화 환경에서 동작 중인 가상 머신들 중 데이터 백업 또는 데이터 센터 내 호스트들간의 부하 분산을 목적으로 가상 머신의 이동이 수행되어야 하는 상황이 발생한 경우, 제1 호스트(100-1)와 제2 호스트(100-2)간에 가상 머신이 이동하는 절차를 예시하였다.
도 9에서, 하이퍼바이저(120-1), 가상 머신(110-1) 및 플러그인 드라이버(150-1)은 제1 호스트에 속하고, 하이퍼바이저(120-2), 가상 머신(110-2) 및 플러그인 드라이버(150-2)는 제2 호스트에 속하는 것으로 가정한다. 또한, 가상 머신(110-1)이 이동 대상인 소스 가상 머신이고, 가상 머신(110-2)가 가상 머신이 이동할 목적 가상 머신인 것으로 가정한다.
도 9를 참조하면, 먼저, 제1 호스트의 하이퍼바이저(120-1) 및 제2 호스트의 하이퍼바이저(120-2)에 가상 머신(110-1) 이동 요청이 전달된다(S901). 여기서, 가상 머신(110-1)의 이동 요청은 데이터 센터내의 네트워크 관리자(400)가 그 역할을 수행할 수도 있고, 제1 호스트에서 별도의 요청 과정을 통해 이루어질 수도 있다. 도 9에서는 제1 호스트의 하이퍼바이저(120-1)가 제2 호스트의 하이퍼바이저(120-2)에 가상 머신(110-1)의 이동을 요청한 것으로 예시하였다.
가상 머신(110-1) 이동 요청이 발생함에 따라 가상 머신(110-1)은 플러그인 드라이버(150-1)를 통해 VF 드라이버의 비활성화(unplug) 과정을 수행한다(S903). 즉, 플러그인 드라이버(150-1)는 가상 머신(110-1)의 VF 드라이버와 P-NIC의 VF간 생성된 가속화된 데이터 경로를 비활성화한다.
이후, 플러그인 드라이버(150-1)는 지속적인 링크 모니터링을 통해 VF 드라이버가 비활성화된 것을 확인한다(S905). 즉, 플러그인 드라이버(150-1)는 가속화된 데이터 링크의 비활성화를 확인한다.
플러그인 드라이버(150-1)은 링크 모니터링을 통해 VF 드라이버의 비활성화를 확인하면 가상 입출력 디바이스(Virtual IO device)로 패킷을 스위칭하여 일반 데이터 경로(legacy data path)로 패킷이 전달되도록 한다(S907).
한편, 제2 호스트의 하이퍼바이저(120-2)는 목적 가상 머신인 가상 머신(110-2)를 생성하고, 동시에 가상 입출력 디바이스(Virtual IO device)를 생성한다(S909).
이후, 하이퍼바이저(120-2)는 가상 머신(110-2)이 사용하는 가상 입출력 디바이스(Virtual IO device)를 vSwitch에 연결하는 작업을 수행한다(S911). 이 때, 가상 머신(110-2)이 플러그인 드라이버(150-2)에 가상 입출력 디바이스(Virtual IO device)를 바인딩(binding) 하면(S913), 플러그인 드라이버(150-2)는 링크 모니터링을 통해 vNIC 드라이버의 활성화 상태를 확인한다(S915). 즉, 플러그인 드라이버(150-2)는 가상 머신(110-2)의 vNIC 드라이버와 P-NIC의 PF 사이의 일반 데이터 경로(legacy data path)의 활성화를 판단한다.
이후, 플러그인 드라이버(150-2)는 vNIC 드라이버를 통해 가상 입출력 디바이스(Virtual IO device)로 패킷을 스위칭 함으로써 가상 머신(110-2)이 일반 데이터 경로를 통해 패킷 송수신이 가능하도록 한다(S917).
상술한 처리 과정을 통해 가상 머신(110-2)의 생성과 네트워크 구성 작업이 완료되면 소스 가상 머신인 가상 머신(110-1)의 메모리 페이지(memory page) 및 가상 머신 상태(state) 정보가 목적 가상 머신인 가상 머신(110-2)로 이송된다(S919).
도 10은 본 발명의 일 실시예에 따른 가상 머신의 이동성 지원 방법에서 이동이 완료된 가상 머신의 네트워크 입출력 가상화 절차를 나타내는 순서도이다.
도 10에서는 도 9에 도시한 바와 같이 소스 가상 머신(110-1)이 목적 가상 머신(110-2)으로 이동한 후, 목적 가상 머신(110-2)이 속하는 호스트에서 수행되는 네트워크 입출력 가상화 절차를 예시하였다.
도 10을 참조하면, 먼저 하이퍼바이저(120-2)는 가상 머신(110-2)에 유휴 VF(132-2)를 할당한다(S1001).
이후, 네트워크 관리자(400)에 저장된 소스 가상 머신(110-1)의 정책 정보가 목적 가상 머신인 가상 머신(110-2)로 이송되어, 가상 머신(110-2)에 적용된다(S1003).
가상 머신(110-2)는 할당 받은 VF를 플러그인 드라이버(150-2)에 바인딩 시킨다(S1005).
이후, 플러그인 드라이버(150-2)는 지속적인 링크 모니터링을 수행하여 VF 드라이버의 활성화 상태를 확인한다(S1007). 즉, 플러그인 드라이버(150-2)는 가상 머신(110-2)의 VF 드라이버와 P-NIC의 VF 사이의 가속화된 데이터 경로의 활성화 여부를 확인한다.
플러그인 드라이버(150-2)는 VF 드라이버가 활성화된 것으로 확인되면 VF 드라이버로 패킷을 스위칭하여 가속화된 데이터 경로를 통해 가상 머신(110-2)가 데이터를 송수신할 수 있도록 한다(S1009).
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100, 100a, 100b, 100-1, 100-2 : 호스트
110, 110a, 110b, 110-1, 110-2 : 가상 머신
111, 111a, 111-1, 111-2 : vNIC 드라이버
112, 112b, 112-1, 112-2 : VF 드라이버
120, 120a, 120b, 120-1, 120-2 : 하이퍼바이저
121a, 121b, 121-1, 121-2 : vSwitch
122-1, 122-2 : 가상 입출력 디바이스
130a, 130b, 130-1, 130-1a, 130-1b, 130-2, 130-2a, 130-2b : P-NIC
131b, 131-1, 131-1a, 131-2, 131-2a : PF
132b, 132-1, 132-1a, 132-2, 132-2b : VF
150, 150-1, 150-2 : 플러그인 드라이버
151 : 패킷 스위칭 모듈
152 : 링크 모니터링 모듈
200 : POD
300 : TOR 스위치
400 : 네트워크 관리자
600 : 네트워크 관리자 플러그인

Claims (20)

  1. 소스 호스트(source Host)에서 수행되는 가상 머신의 이동성 지원 방법에 있어서,
    상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계; 및
    상기 가속화된 데이터 경로가 비활성화되면, 상기 가상 머신과 연결된 일반 데이터 경로로 패킷을 스위칭하는 단계를 포함하는 가상 머신의 이동성 지원 방법.
  2. 청구항 1에 있어서,
    상기 가상 머신의 이동성 지원 방법은,
    상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계 이전에, 상기 가상 머신이 이동할 목적 호스트에 상기 가상 머신의 이동을 요청하는 단계를 더 포함하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  3. 청구항 1에 있어서,
    상기 가속화된 데이터 경로는 상기 가상 머신과 물리적 네트워크 인터페이스(P-NIC)에 포함된 가상 기능(VF) 사이의 연결 경로인 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  4. 청구항 1에 있어서,
    상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계는,
    상기 가상 머신에 포함된 플러그인 드라이버가, 상기 가상 머신에 포함되고 상기 가상 기능과 연결된 가상 기능 드라이버를 비활성화하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  5. 청구항 1에 있어서,
    상기 가상 머신과 연결된 일반 데이터 경로로 패킷을 스위칭하는 단계는,
    상기 소스 호스트의 하이퍼바이저 내의 가상 입출력 디바이스(Virtual IO device)로 패킷을 스위칭하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  6. 청구항 1에 있어서,
    상기 가상 머신의 이동성 지원 방법은,
    상기 가상 머신이 목적 호스트로 이동한 후, 상기 가상 머신에 설정된 정책 정보를 상기 목적 호스트로 이동하는 단계를 더 포함하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  7. 청구항 6에 있어서,
    상기 가상 머신에 설정된 정책 정보를 상기 목적 호스트로 이동하는 단계는,
    상기 소스 호스트가 상기 가상 머신에 설정된 정책을 네트워크 관리자에 전송하고, 상기 네트워크 관리자가 상기 목적 호스트에 상기 정책을 이송하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  8. 청구항 1에 있어서,
    상기 가상 머신의 이동성 지원 방법은,
    상기 가상 머신과 연결된 가속화된 데이터 경로를 비활성화하는 단계 이전에,
    상기 소스 호스트의 하이퍼바이저가 가상 입출력 디바이스(Virtual IO device)를 생성하는 단계;
    상기 하이퍼바이저가 상기 가상 머신에 가상 기능을 할당하는 단계;
    상기 하이퍼바이저가 상기 가상 머신에 설정된 정책 정보를 네트워크 관리자로 전달하는 단계;
    상기 가상 머신에 장착된 플러그인 드라이버에 상기 할당된 가상 기능을 지원하는 가상 기능 드라이버와 상기 가상 입출력 디바이스를 바이딩 하는 단계;
    상기 플러그인 드라이버가 상기 가상 기능 드라이버의 활성화 여부를 모니터링하는 단계; 및
    상기 가상 기능 드라이버가 활성화되면 상기 가상 기능 드라이버와 상기 가상 기능 사이의 경로인 상기 가속화된 데이터 경로로 패킷을 스위칭하는 단계를 더 포함하는 가상 머신의 이동성 지원 방법.
  9. 소스 호스트(source Host)에 속한 소스 가상 머신에 정책을 설정하는 단계;
    상기 소스 호스트가 상기 소스 호스트에 설정된 정책을 네트워크 관리자에 전달하는 단계;
    상기 소스 가상 머신이 목적 호스트(destination Host)로 이동하는 단계; 및
    상기 네트워크 관리자가 상기 목적 호스트로 이동한 가상 머신에 상기 소스 호스트에 설정된 정책을 전달하는 단계를 포함하는 가상 머신의 이동성 지원 방법.
  10. 목적 호스트(destination Host)에서 수행되는 가상 머신의 이동성 지원 방법에 있어서,
    가상 머신의 이동 요청을 수신하는 단계;
    상기 가상 머신의 이동을 위한 목적 가상 머신을 생성하는 단계;
    상기 가상 머신과 물리적 네트워크 인터페이스 카드(P-NIC) 사이의 일반 데이터 경로를 활성화하는 단계; 및
    활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계를 포함하는 가상 머신의 이동성 지원 방법.
  11. 청구항 10에 있어서,
    상기 가상 머신의 이동성 지원 방법은,
    상기 활성화된 일반 데이터 경로로 패킷을 스위칭하는 단계 이후,
    상기 가상 머신에 설정된 정책 정보를 네트워크로 제어 장치로부터 제공 받는 단계를 더 포함하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  12. 청구항 10에 있어서,
    상기 가상 머신과 물리적 네트워크 인터페이스 카드(P-NIC) 사이의 일반 데이터 경로를 활성화하는 단계는,
    가상 스위치(vSwitch)에 가상 입출력 디바이스(Virtual IO device)를 연결하는 단계; 및
    상기 목적 가상 머신에 포함된 플러그인 드라이버에 상기 가상 입출력 디바이스를 바인딩하는 단계를 포함하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  13. 청구항 12에 있어서,
    상기 활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계는,
    상기 가상 입출력 디바이스로 패킷 스위칭을 지원하는 가상 네트워크 인터페이스 카드(vNIC) 드라이버의 활성화 여부를 판단하는 단계; 및
    상기 가상 네트워크 인터페이스 카드(vNIC) 드라이버가 활성화되면, 상기 가상 입출력 디바이스로 패킷을 스위칭하는 단계를 포함하는 가상 머신의 이동성 지원 방법.
  14. 청구항 13에 있어서,
    상기 가상 머신의 이동성 지원 방법은,
    상기 활성화된 상기 일반 데이터 경로로 패킷을 스위칭하는 단계 이후,
    상기 목적 가상 머신에 가상 기능(VF)를 할당하는 단계;
    상기 목적 가상 머신에 네트워크 관리자로부터 제공된 정책 정보를 적용하는 단계;
    상기 플러그인 드라이버에 상기 할당된 가상 기능을 지원하는 가상 기능 드라이버를 바인딩하는 단계; 및
    상기 가상 기능 드라이버가 활성화되면 상기 가상 기능 드라이버로 패킷을 스위칭하는 단계를 더 포함하는 것을 특징으로 하는 가상 머신의 이동성 지원 방법.
  15. 일반 데이터 경로 및 가속화된 데이터 경로 사이의 패킷 스위칭을 수행하는 플러그인 드라이버를 포함하는 가상 머신;
    상기 가상 머신의 일반 데이터 경로를 통한 패킷 송수신을 지원하는 가상 입출력 디바이스(Virtual IO device) 및 상기 가상 입출력 디바이스와 연결된 가상 스위치(vSwitch)를 포함하는 하이퍼바이저; 및
    상기 가상 머신과 상기 하이퍼바이저를 경유하여 연결되어 상기 일반 데이터 경로를 형성하는 물리 기능(PF)과, 상기 가상 머신과 상기 하이퍼바이저를 우회하여 연결되어 상기 가속화된 데이터 경로를 형성하는 가상 기능(VF)을 포함하는 물리적 네트워크 인터페이스 카드(P-NIC)를 포함하는 호스트 장치.
  16. 청구항 15에 있어서,
    상기 가상 머신은 상기 플러그인 드라이버와 상기 가상 입출력 디바이스 사이에서 연결되어 상기 가상 머신의 일반 데이터 경로를 통한 패킷 송수신을 지원하는 가상 네트워크 인터페이스 카드(vNIC) 드라이버 및 상기 플러그인 드라이버와 상기 가상 기능 사이에 연결되어 상기 가상 머신의 가속화된 데이터 경로를 통한 패킷 송수신을 지원하는 가상 기능 드라이버를 포함하는 것을 특징으로 하는 호스트 장치.
  17. 청구항 16에 있어서,
    상기 플러그인 드라이버는,
    상기 가상 네트워크 인터페이스 카드 드라이버 및 상기 가상 기능 드라이버의 활성화 여부를 모니터링하는 링크 모니터링 모듈; 및
    상기 링크 모니터링 모듈로부터 제공된 모니터링 결과에 따라 상기 가상 네트워크 인터페이스 카드 드라이버 및 상기 가상 기능 드라이버 중 어느 하나로 패킷을 스위칭하는 패킷 스위칭 모듈을 포함하는 것을 특징으로 하는 호스트 장치.
  18. 청구항 17에 있어서,
    상기 플러그인 드라이버는,
    상기 가상 기능 드라이버가 활성화되면, 상기 가상 네트워크 인터페이스 카드 드라이버의 활성화 여부에 상관없이 상기 가상 기능 드라이버로 패킷을 스위칭하는 것을 특징으로 하는 호스트 장치.
  19. 청구항 17에 있어서,
    상기 플러그인 드라이버는
    상기 가상 머신의 이동시에는 상기 가속화된 패킷 경로를 비활성화하고, 상기 일반 패킷 경로를 활성화하여 상기 일반 패킷 경로로 패킷을 스위칭하는 것을 특징으로 하는 호스트 장치.
  20. 청구항 17에 있어서,
    상기 플러그인 드라이버는
    상기 가상 머신의 이동이 완료된 후에는 상기 가속화된 패킷 경로의 활성화 여부를 모니터링하고, 상기 가속화된 패킷 경로가 활성화되면 상기 가속화된 패킷 경로로 패킷을 스위칭하는 것을 특징으로 하는 호스트 장치.
KR1020130162180A 2013-06-28 2013-12-24 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치 KR101644678B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130076090 2013-06-28
KR20130076090 2013-06-28

Publications (2)

Publication Number Publication Date
KR20150002426A true KR20150002426A (ko) 2015-01-07
KR101644678B1 KR101644678B1 (ko) 2016-08-01

Family

ID=52475847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130162180A KR101644678B1 (ko) 2013-06-28 2013-12-24 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (1) KR101644678B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210023586A (ko) * 2019-08-23 2021-03-04 국방과학연구소 엣지 클라우드 간에 vm이전 및 이동성 프로토콜을 관리하는 방법 및 시스템
US11005755B2 (en) 2016-11-09 2021-05-11 Huawei Technologies Co., Ltd. Packet processing method in cloud computing system, host, and system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102263357B1 (ko) 2017-04-19 2021-06-11 한국전자통신연구원 분산 파일시스템 환경에서 사용자 수준 dma i/o를 지원하는 시스템 및 그 방법
KR102634986B1 (ko) * 2019-01-08 2024-02-07 한국전자통신연구원 가상화 환경에서의 프로그램 전송 장치 및 방법 그리고 이를 포함하는 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060065434A (ko) * 2004-12-10 2006-06-14 한국전자통신연구원 품질보장형 서비스 스위치 관리 시스템의 관리 통신안정화 방법
US20110299424A1 (en) * 2010-06-03 2011-12-08 Fujitsu Limited Switching apparatus and method for setting up virtual lan
KR20120000889A (ko) * 2010-06-28 2012-01-04 삼성에스디에스 주식회사 특정 위치에 지정된 가상 머신을 로딩하는 시스템 및 이에 사용되는 서버 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060065434A (ko) * 2004-12-10 2006-06-14 한국전자통신연구원 품질보장형 서비스 스위치 관리 시스템의 관리 통신안정화 방법
US20110299424A1 (en) * 2010-06-03 2011-12-08 Fujitsu Limited Switching apparatus and method for setting up virtual lan
KR20120000889A (ko) * 2010-06-28 2012-01-04 삼성에스디에스 주식회사 특정 위치에 지정된 가상 머신을 로딩하는 시스템 및 이에 사용되는 서버 및 그 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1. Intel, 'Achieving Fast, Scalable I/O for Virtualized Servers', White Paper, 2009
2. Zhenhao Pan 외 4인, 'CompSC: Live Migration with Pass-through devices', March 3-4, 2012, London, England, UK, VEE' 12

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11005755B2 (en) 2016-11-09 2021-05-11 Huawei Technologies Co., Ltd. Packet processing method in cloud computing system, host, and system
KR20210023586A (ko) * 2019-08-23 2021-03-04 국방과학연구소 엣지 클라우드 간에 vm이전 및 이동성 프로토콜을 관리하는 방법 및 시스템

Also Published As

Publication number Publication date
KR101644678B1 (ko) 2016-08-01

Similar Documents

Publication Publication Date Title
US10447500B2 (en) Data packet processing method, host, and system
US11895016B2 (en) Methods and apparatus to configure and manage network resources for use in network-based computing
EP2559206B1 (en) Method of identifying destination in a virtual environment
US8027354B1 (en) Network consolidation for virtualized servers
US8650299B1 (en) Scalable cloud computing
CN108062482B (zh) 向虚拟云基础结构提供虚拟安全装置架构的方法和装置
EP2835953B1 (en) System for live migration of virtual machine
US9031081B2 (en) Method and system for switching in a virtualized platform
US20100287262A1 (en) Method and system for guaranteed end-to-end data flows in a local networking domain
US20150317169A1 (en) Constructing and operating high-performance unified compute infrastructure across geo-distributed datacenters
US9619429B1 (en) Storage tiering in cloud environment
US20120131379A1 (en) Computer system and availability method thereof
WO2017071169A1 (zh) 一种nfv架构下软件升级中的业务迁移方法、装置及服务器
US20140137109A1 (en) Virtual device context (vdc) integration for network services
CN107977255B (zh) 用于分离租户特定数据的装置和方法
JP2010033404A (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
JP2014023142A (ja) クラウドコンピューティングサブシステムの方法および装置
US11281374B2 (en) Automated storage network reconfiguration for heterogeneous storage clusters
US10116622B2 (en) Secure communication channel using a blade server
US20150149998A1 (en) Using alternate port name for uninterrupted communication
KR101644678B1 (ko) 네크워크 입출력 가상화 환경에서 가상 머신의 이동성 지원 방법 및 이를 수행하는 장치
US10708198B1 (en) Methods and apparatus to reduce packet flooding and duplicate packets in a multi-fabric virtual network
US20160259659A1 (en) Method and system for unified application centric connectivity in various virtualization platforms
US11206178B2 (en) Systems and methods for network MTU management for clustered and federated storage systems
JP5558422B2 (ja) ネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant