KR101303718B1 - 가상 머신 네트워킹을 위한 방법 및 시스템 - Google Patents

가상 머신 네트워킹을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101303718B1
KR101303718B1 KR1020117019944A KR20117019944A KR101303718B1 KR 101303718 B1 KR101303718 B1 KR 101303718B1 KR 1020117019944 A KR1020117019944 A KR 1020117019944A KR 20117019944 A KR20117019944 A KR 20117019944A KR 101303718 B1 KR101303718 B1 KR 101303718B1
Authority
KR
South Korea
Prior art keywords
traffic
network device
network
efvc
management
Prior art date
Application number
KR1020117019944A
Other languages
English (en)
Other versions
KR20110110843A (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 KR20110110843A publication Critical patent/KR20110110843A/ko
Application granted granted Critical
Publication of KR101303718B1 publication Critical patent/KR101303718B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

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

Abstract

네트워킹을 위한 방법 및 시스템의 양태들이 제공된다. 이와 관련하여, 제 1 네트워크 장치의 네트워크 어댑터 내의 하나 이상의 회로들 및/또는 처리기들은 제 1 네트워크 장치 내에 전적으로 존재하는 경로를 통해, 또는 제 1 네트워크 장치의 외부에 있는 제 2 네트워크 장치를 포함하는 경로를 통해, 제 1 네트워크 장치 위에서 실행되는 가상 머신들 사이에서 트래픽을 통신할 것인지를 결정할 수 있다. 상기 결정은 트래픽의 특성들에 적어도 부분적으로 기초할 수 있다. 상기 결정은 네트워크 어댑터의 성능들 및/또는 이용가능한 자원들에 적어도 부분적으로 기초할 수 있다. 상기 결정은 제 1 네트워크 장치 위에서 실행되는 소프트웨어, 제 2 네트워크 장치, 및 제 3 네트워크 장치 중의 하나 이상과, 하나 이상의 회로들 및/또는 처리기들과의 사이에서 교환되는 관리 정보에 적어도 부분적으로 기초할 수 있다.

Description

가상 머신 네트워킹을 위한 방법 및 시스템{METHOD AND SYSTEM FOR VIRTUAL MACHINE NETWORKING}
관련 출원들에 대한 상호 참조/참조를 위한 편입
본 특허 출원은 2009년 2월 27일자로 출원된 미국 특허 가출원 제61/156,186호를 참조하고, 우선권을 주장하고, 이로부터 이익을 주장한다.
상기 기술된 출원은 참조를 위해 그 전체가 본 명세서에 편입된다.
발명의 특정 실시예들은 네트워킹(networking)에 관한 것이다. 더욱 구체적으로, 발명의 특정 실시예들은 가상 머신 네트워킹을 위한 방법 및 시스템에 관한 것이다.
컴퓨터 네트워킹에 대한 의존이 계속 성장할수록, 더욱 빠르고 더욱 효율적인 네트워킹 장치들에 대한 수요가 이와 함께 성장한다. 그러나, 이러한 두 목표들은 종종 서로 조화되지 못한다. 예를 들어, 가상화(virtualization)는 자원 이용의 측면에서 증가된 효율을 달성하기 위한 매우 대중적인 기술이지만, 스루풋(throughput) 및/또는 지연시간(latency)의 측면에서는 종종 부정적인 영향들을 가진다. 가상 머신(VM : virtual machine)들의 속도 및/또는 지연시간을 개선하기 위한 시도에 있어서, 일부 네트워크 장치 구조들은 그 네트워크 장치 위에서 실행되는 하나 이상의 가상 머신들이 그 장치들에서 소프트웨어로 실행되는 가상 스위치(virtual switch)의 도움없이, 그리고 외부 네트워크 스위치의 도움없이, 그 장치의 네트워크 어댑터(network adapter)와 직접 통신하도록 한다. 이러한 방식으로, 소프트웨어 기반의 가상 스위치 또는 외부 네트워크 스위치들과 관련된 지연시간들 및/또는 병목(bottleneck)들이 회피된다. 이와 관련하여, 가상 이더넷 브릿징(VEB : virtual ethernet bridging)과 같은 기능은 외부 네트워크 스위치의 도움없이 VM간(inter-VM) 통신을 가능하게 하고, VEPA와 같은 표준들/프로토콜들은 특화된 외부 네트워크 스위치를 통해 VM 내부(intra-VM) 통신을 가능하게 한다. 그러나, VEB 및 VEPA와 같은 해결책들은 가상화와 관련된 일부 문제들을 해결하고, 그들은 가상화와 관련된 다른 문제들을 해결하지 못하고, 실제로는 일부 추가적인 문제들을 생성한다.
기존의 전통적인 접근법들의 추가적인 제한들 및 단점들은 도면들을 참조하여 본 출원의 나머지에서 기술된 바와 같이 이러한 시스템들과 본 발명의 일부 특징들과의 비교를 통해, 당업자에게 명백할 것이다.
시스템 및/또는 방법은 질적으로는, 도면들 중의 적어도 하나에 의해 예시된 바와 같이, 및/또는 도면들 중의 적어도 하나와 관련하여 설명된 바와 같이, 청구항들에서 더욱 완전하게 기술된 바와 같이, 가상 머신 네트워킹(virtual machine networking)을 위해 제공된다.
본 발명의 예시된 실시예의 상세한 사항들뿐만 아니라, 본 발명의 이러한 장점들 그리고 다른 장점들, 양태들 및 신규 특징들은 다음의 설명 및 도면들로부터 더욱 완전하게 이해될 것이다.
도 1은 발명의 실시예에 따라, 예시적인 네트워킹 장치들을 예시하는 도면이다.
도 2는 발명의 실시예에 따라, 예시적인 네트워킹 장치들을 예시하는 또 다른 도면이다.
도 3a 및 도 3b는 발명의 실시예에 따라, 플렉시블 가상 머신 통신을 위한 엔티티(EFVC : entity for flexible virtual machine communications)를 포함하는 통신 장치에 의해 처리되는 유니캐스트 가상 머신간 트래픽(unicast inter-virtual-machine traffic)을 예시한다.
도 4는 발명의 실시예에 따라, 외부 장치를 통해 처리되는 가상 머신간 트래픽을 예시하는 도면이다.
도 5a 및 도 5b는 발명의 실시예에 따라, 멀티캐스트 트래픽의 통신을 예시한다. 도 5a 및 도 5b를 참조하면, 네트워크 장치들(102 및 112)이 도시되어 있다.
도 6은 발명의 실시예에 따라, 네트워크 관리를 위한 가상 머신간 트래픽의 복사(copying) 또는 미러링(mirroring)을 예시한다.
도 7은 발명의 실시예에 따라, VM 트래픽을 처리하기 위한 예시적인 단계들을 예시하는 순서도이다.
도 8은 발명의 실시예에 따라, 네트워크 어댑터 내의 어드레스 테이블의 내용들에 기초하여 트래픽을 내부적으로 또는 외부적으로 처리하는 것을 예시하는 순서도이다.
발명의 특정 실시예들은 가상 머신 네트워킹을 위한 방법 및 시스템에서 발견될 수 있다. 발명의 다양한 실시예들에서, 제 1 네트워크 장치의 네트워크 어댑터 내의 하나 이상의 회로들 및/또는 처리기들은 제 1 네트워크 장치 내에 전적으로 존재하는 경로를 통해, 또는 제 1 네트워크 장치의 외부에 있는 제 2 네트워크 장치를 포함하는 경로를 통해, 제 1 네트워크 장치 위에서 실행되는 가상 머신들 사이에서 트래픽(traffic)을 통신할 것인지를 결정할 수 있다. 상기 결정은 트래픽의 특성(characteristic)들에 적어도 부분적으로 기초할 수 있다. 상기 결정은 네트워크 어댑터의 성능(capability)들 및/또는 이용가능한 자원들에 적어도 부분적으로 기초할 수 있다. 상기 결정은 하나 이상의 회로들 및/또는 처리기들과, 제 1 네트워크 장치, 제 2 네트워크 장치, 및 제 3 네트워크 장치에서 실행되는 소프트웨어 중의 하나 이상과의 사이에서 교환되는 관리 정보에 적어도 부분적으로 기초할 수 있다. 제 2 네트워크 장치는 제 1 네트워크 장치를 대신하여 네트워크 관리 프로토콜들에 참여할 수 있다. 관리 정보는 하나 이상의 회로들 및/또는 처리기들에 의해 이용가능하게 되는 어플리케이션 프로그래밍 인터페이스(API : application programming interface)를 통해 교환될 수 있다.
트래픽과 관련된 어드레싱 정보(addressing information)는 네트워크 어댑터의 어드레스 테이블 내에 있지 않은 인스턴스(instance)들에서는, 트래픽이 제 2 네트워크 장치를 포함하는 경로를 통해 통신될 수 있다. 네트워크 어댑터가 트래픽을 처리하기 위해 요구되는 하나 이상의 보안 기능들을 수행할 없는 인스턴스들에서는, 트래픽이 제 2 네트워크 장치를 포함하는 경로를 통해 통신될 수 있다. 네트워크 어댑터가 트래픽을 처리하기 위해 요구되는 하나 이상의 관리 기능들을 수행할 수 없는 인스턴스들에서는, 트래픽이 제 2 네트워크 장치를 포함하는 경로를 통해 통신될 수 있다. 트래픽이 제 2 네트워크 장치를 포함하는 경로를 통해 통신되는 인스턴스들에서는, 제 2 네트워크 장치는 트래픽을 처리할 수 있고 처리된 트래픽을 제 1 네트워크 장치로 반환할 수 있다. 제 2 네트워크 장치에 의해 수행되는 처리는 예를 들어, 제 2 네트워크 장치의 어드레스 테이블에서 트래픽과 관련된 어드레싱 정보를 룩업(look up)하는 것, 트래픽을 처리하기 위해 요구되는 하나 이상의 관리 기능들을 수행하는 것, 및/또는 트래픽을 처리하기 위해 요구되는 하나 이상의 보안 기능들을 수행하는 것을 포함할 수 있다.
또한, 하나 이상의 회로들 및/또는 처리기들은 트래픽의 복사본(copy), 또는 트래픽에 관한 보고(report)를 제 2 네트워크 장치로 통신하도록 동작가능할 수 있고, 제 2 네트워크 장치는 관리 동작들을 위하여 트래픽의 복사본을 이용할 수 있다. 트래픽의 복사본의 하나 이상의 태그(tag)들, 필드(field)들, 및/또는 헤더(header)들은 제 2 네트워크 장치가 트래픽의 복사본이 복사본임을 결정하도록 할 수 있다. 하나 이상의 회로들 및/또는 처리기들로부터의 표시(indication)는 제 2 네트워크 장치가 트래픽의 복사본이 복사본임을 결정하도록 할 수 있다. 상기 표시는 트래픽의 복사본으로부터 대역외(out-of-band) 통신될 수 있다.
도 1은 발명의 실시예에 따라, 예시적인 네트워킹 장치들을 예시하는 도면이다. 도 1을 참조하면, 호스트 처리기(104), 호스트 메모리(106), 저장장치(116), 입력/출력 서브시스템(108), 및 네트워크 어댑터(110)를 포함하는 네트워크 장치(102)가 도시되어 있다. 또한, 제 2 네트워킹 장치(112), 클라우드(cloud)(114)에 의해 표현되는 네트워크의 나머지 부분, 및 클라우드(114) 내에 존재하는 네트워크 관리 엔티티(122)가 도시되어 있다.
예시의 목적들을 위하여, 네트워크 장치(102)는 서버(server)인 것으로 가정될 수 있고, 네트워크 장치(112)는 네트워크 스위치인 것으로 가정될 수 있지만, 이 장치들은 그렇게 한정되지 않는다. 즉, 네트워크 장치들(102 및 112)의 각각은 개인용 컴퓨터, 메인 프레임(mainframe), 이동 장치(mobile device), 라우터(router), 브릿지(bridge), 스위치, 셋톱 박스(set-top-box), 모뎀(modem) 및 헤드-엔드(head-end)를 포함하는 임의의 적당한 네트워킹 장치일 수 있다.
네트워크 장치(112)는 많은 점에서 네트워크 장치(102)와 유사할 수 있다. 이와 관련하여, 네트워크 장치(112)는 하나 이상의 네트워킹 표준들에 따라 네트워크 통신들에 참여하고 데이터를 처리하기 위한 적당한 로직, 회로, 인터페이스들, 및/또는 코드를 포함할 수 있다. 여러 기존의 스위치들과 달리, 네트워크 장치(112)는 그 위에서 트래픽이 수신되는, 포트(220)와 같은 동일한 포트를 통해 트래픽을 전달하도록 동작가능할 수 있다. 이와 관련하여, 네트워크 장치(112)는 VEPA 또는 유사한 프로토콜들을 지원할 수 있다. 네트워크 장치(112)는 네트워킹 장치(102)를 위한 관리 프록시(management proxy)로서 기능하도록 동작가능할 수 있다. 이와 관련하여, 네트워크 장치(112)는 네트워크 장치(102) 대신에, 포트 미러링(port mirroring), 스패닝 트리 프로토콜(spanning tree protocol), 트릴(TRILL : transparent interconnection of lots of links), 및 SNMP(simple network management protocol)와 같은 관리 프로토콜들에 참여하도록 동작가능할 수 있다. 즉, 네트워크 장치(102)는 네트워크 장치(102) 대신에 네트워크 관리 엔티티(122)와 상호작용할 수 있다. 따라서, 네트워크 장치(112)는 네트워크 장치(102)와 관리 정보를 교환하도록 동작가능할 수 있고, 이 교환들은 네트워크 장치들(102 및 112) 사이에서 통신되는 다른 트래픽의 대역내(in-band)에 있을 수 있거나 대역외(out-of-band)에 있을 수 있다.
네트워크 장치(112)는 네트워크 장치(102) 및/또는 가상 스위치와 같은 그 부품들을 관리하기를 희망할 수 있는 임의의 다른 관리 엔티티를 위한 프록시로서도 기능할 수 있다. 이러한 관리는 예를 들어, 네트워크 장치(102) 또는 그 부품들의 구성을 제어하는 것, 네트워크 장치(102) 또는 그 부품들을 위한 보안을 구현하는 것, 네트워크 장치(102) 또는 그 부품들에 속하는 통계를 수집하는 것, 또는 네트워크 장치(102) 또는 그 부품들의 디버깅(debugging)을 허용하는 툴(tool)들을 제공하는 것을 포함할 수 있다. 발명의 일부 실시예들에서는, 다른 관리 엔티티가 네트워크 장치(102)에는 네트워크 장치(112)에 국부적(local)이거나 일부인 것처럼 보일 수 있다. 발명의 다른 실시예들에서는, 다른 관리 엔티티가 네트워크 장치(102)에는 네트워크 장치(112)로부터 독립적인 장치이고 프록시로서 동작하는 네트워크 장치(112)를 통해 관리 기능들을 제공하기를 희망하는 것처럼 보일 수 있다.
네트워크 어댑터(110)는 링크(124)를 통해 네트워크 장치(112)에 결합될 수 있다. 이와 관련하여, 링크(124)는 트래픽이 오프-장치(off-device), 즉, 외부적인 것으로 되도록 할 수 있다. 링크는 예를 들어, 구리 배선(copper wiring), 광섬유 케이블(fiber optic cabling), 하나 이상의 무선 채널들, 및/또는 그 조합을 포함할 수 있다.
호스트 처리기(104) 및 호스트 메모리(106)는 데이터의 처리 및/또는 네트워크 장치(102)를 위한 동작들의 제어를 가능하게 할 수 있는 적당한 로직, 회로, 인터페이스들 및/또는 코드를 포함할 수 있다. 호스트 처리기(104)는 예를 들어, x86 기반 CPU, ARM, 또는 주문형 반도체(ASIC : application specific integrated circuit)를 포함할 수 있다. 호스트 메모리(106)는 예를 들어, 데이터 및/또는 명령들을 저장하는 SRAM 및/또는 DRAM을 포함할 수 있다. 호스트 메모리(106)를 사용하는 호스트 처리기(104)는 하나 이상의 오퍼레이팅 시스템(operating system)들 및/또는 가상 머신(VM : virtual machine)들을 실행하도록 동작가능할 수 있고, 오퍼레이팅 시스템들 및/또는 VM들을 관리하기 위한 하이퍼바이저(hypervisor)를 실행하거나, 및/또는 이 하이퍼바이저에 의해 제어되도록 동작가능할 수 있다. 이와 같은 방식으로, 호스트 메모리(106)를 사용하는 호스트 처리기(104)는 네트워크 장치(102)의 다양한 부품들의 동작을 제어하도록 동작가능할 수 있다. 이러한 부품들은 가상 스위치라고도 지칭되고, VM간 네트워크 접속성 및/또는 VM들 및 네트워크(114) 사이의 접속성을 제공하기 위하여 하이퍼바이저에 의해 채용되는 소프트웨어 스위치(software switch)를 포함할 수 있다.
저장장치(116)는 예를 들어, 하드 드라이브(hard drive) 또는 고체 상태 메모리(solid state memory)를 포함할 수 있다. 저장장치(116)는 예를 들어, 네트워크 어댑터(110)를 통해 국부적으로 또는 원격으로 판독. 기록 및/또는 실행될 수 있는 데이터를 저장할 수 있다.
I/O 서브시스템(108)은 예를 들어, 네트워킹 장치(102)의 다양한 부품들 사이에서 정보를 통신하도록 동작가능할 수 있는 적당한 로직, 회로, 인터페이스들, 및/또는 코드를 포함할 수 있다. I/O 서브시스템(108)은 하나 이상의 표준화된 버스들 및 하나 이상의 버스 제어기들을 포함할 수 있다. 따라서, I/O 서브시스템(108)은 버스 위의 장치들을 식별하고, 버스 위의 장치들을 열거하고, 버스 위의 다양한 장치들을 위한 자원(resource)들을 할당 및 할당해제하고, 및/또는 그렇지 않을 경우에는 버스 위에서의 통신들을 관리하도록 동작가능할 수 있다. 예를 들어, I/O 서브시스템(108)은 PCIe 시스템일 수 있고, PCIe 루트 컴플렉스(root complex) 및 하나 이상의 PCIe 스위치들 및/또는 브릿지(bridge)들을 포함할 수 있다. 일부 인스턴스들에서, I/O 서브시스템(108)은 하이퍼바이저에 의해 제어될 수 있다.
네트워크 어댑터(110)는 하나 이상의 네트워킹 표준들에 충실하게 데이터를 송신 및 수신하도록 동작가능할 수 있는 적당한 로직, 회로, 인터페이스들, 및/또는 코드를 포함할 수 있다. OSI 모델을 참조하면, 네트워크 어댑터(110)는 물리 계층(physical layer) 기능들, 데이터 링크 계층(data link layer) 기능들, 및 일부 인스턴스들에서는, OSI 계층 3 및 더 상위의 OSI 계층들과 관련된 기능들을 구현할 수 있다. 이와 유사하게, TCP/IP 모델을 참조하면, 네트워크 어댑터(110)는 네트워크 인터페이스 계층(network interface layer) 기능들, 인터넷 계층(internet layer) 기능들, 및 일부 인스턴스들에서는, 전달 계층(transport layer) 기능들 및 어플리케이션 계층(application layer) 기능들을 구현하도록 동작가능할 수 있다. 네트워크 어댑터(110)는 예를 들어, IEEE 802.3에서 규정된 하나 이상의 이더넷 표준(Ethernet standard)들에 충실하게 통신할 수 있고, I/O 서브시스템(108)을 통해 네트워크 장치(102)의 다른 부분들과 통신할 수 있다. 네트워크 어댑터(110)는 가상화(virtualization)를 사용하는 것이 가능해질 수 있고, 자신을 다수의 네트워크 어댑터들로서 I/O 서브시스템(108) 및/또는 외부 장치들로 제공할 수 있다. 예를 들어, I/O 서브시스템(108)이 PCIe 시스템인 인스턴스들에서는, 네트워크 어댑터가 SR-IOV 사양(specification)을 지원할 수 있다. 따라서, 네트워크 어댑터(110)는 물리 기능(PF : physical function)(118) 및/또는 하나 이상의 가상 기능(VF : virtual function)들(120)을 통해 I/O 서브시스템(108)을 인터페이스(interface) 할 수 있다. 이러한 방식으로, 네트워크 어댑터(110)는 VM들과의 직접 통신을 지원하기 위하여 가상 이더넷 브리징(VEB : virtual ethernet bridging) 기능(eSwitch라고도 알려짐)을 사용할 수 있고, 가상 스위치를 통해 다른 VM들과의 간접 통신을 지원할 수 있다. 이와 관련하여, VEB 기능은 IEEE 802.1 호환 스위치의 기능의 일부를 포함할 수 있지만, 단독형(stand-alone) 네트워크 스위치들에서 통상적으로 이용가능한 일부 특징들을 결여할 수 있다. 예를 들어, 어드레스 테이블은 작동 중에 학습되는 것이 아니라 프로그래밍 될 수 있다. 가상 스위치는 하이퍼바이저에 의해 채용될 수 있고, 이 하이퍼바이저는 네트워크 장치(102) 위에서 실행되거나, 및/또는 네트워크 장치(102)를 제어한다. VM들과의 직접 통신은 하나 이상의 VF들(120) 및/또는 PF들(118)을 통한 것일 수 있고, 가상 스위치와의 통신은 하나 이상의 PF들(118)을 통한 것일 수 있다.
VM들 사이의 통신에 대하여, 기존의 네트워크 어댑터들은 예를 들어, (VEB)를 이용하여 이러한 모든 트래픽을 내부적으로 처리할 수 있거나, 가상 이더넷 포트 집합(VEPA : virtual ethernet port aggregation) VNTag 및 포트 확장기(Port Extender)와 같은 프로토콜들을 이용하여 외부 스위치를 통해 이러한 모든 트래픽을 처리할 수 있다. 이와 관련하여, VEB와 같은 기능을 이용하여 네트워크 어댑터 위에서 VM간 트래픽을 내부적으로 처리할 것인지, 또는 VEPA와 같은 프로토콜들을 이용하여 VM간 트래픽을 외부적으로 처리할 것인지의 결정에 대해 다양한 절충(tradeoff)들이 영향을 줄 수 있다. 예를 들어, 기존의 네트워크 어댑터에 비해, 외부 장치는 더 많은 특징들, 예를 들어, 억세스 제어 리스트(ACL : access control list)들, 디버그 기능(debug functionality), 및 다수의 표준 네트워크 관리 툴들에 의해 지원되는 성능을 지원하기 위하여 더 많은 자원들을 가질 수 있다. 이와 관련하여, 네트워크 어댑터 위에서 이러한 특징들을 포함하는 것은 네트워크 어댑터의 비용 및 복잡도를 엄청나게 추가할 것이다. 다른 한편으로, 네트워크 어댑터에서가 아니라, 외부 장치에서 트래픽을 스위칭 및 처리하는 것은 더 많은 네트워크 대역폭을 소비하고 지연시간을 추가한다. 가상 스위치는 그 동작을 위한 CPU 사이클들을 소비할 수 있고, 네트워크 어댑터의 VEB 기능을 이용한 직접 통신에 비해 더 많은 지연시간을 도입할 수 있다.
따라서, 플렉시블 가상 머신 통신을 위한 엔티티를 이용하는 네트워크 어댑터(110)는 기존의 네트워크 어댑터들 위에서 구현되지 않는 특징들을 구현하도록 동작가능하게 함으로써, 그리고 추가적인 특징들을 구현하기 위하여 하이퍼바이저, 또는 네트워크 장치(112)와 유사한 외부 장치와 같은 다른 엔티티들과 상호작용하도록 동작가능하게 함으로써, 지연시간, 외부 대역폭, CPU 사용, 및 하드웨어 비용/복잡도 사이에서 최적의 균형을 달성한다. 네트워크 어댑터(110)는 다양한 방식으로 VM간 트래픽을 처리하도록 동작가능할 수 있고, 트래픽이 처리되는 방식은 다양한 인자들에 의존할 수 있다. 이와 관련하여, 트래픽은 네트워크 어댑터(110) 위에서 내부적으로 처리(예를 들어, 스위칭, 암호화, 복호화, 인증 등)될 수 있고, 네트워크 장치(112) 위에서 외부적으로 처리될 수 있고, 네트워크 어댑터(110)의 자원들 및/또는 성능들에 기초하여 처리될 수 있고, 및/또는 네트워크 어댑터(110) 및 외부 네트워크 장치(112) 사이의 상호작용에 기초하여 처리될 수 있다. VM간 트래픽이 처리되는 방식은 예를 들어, 패킷마다(per-packet) 또는 데이터 흐름마다(per-dataflow)를 기초로 결정될 수 있다.
또한, 네트워크 어댑터(110)는 일부 인스턴스들에서, 또는 일부 트래픽에 대하여, VM간 트래픽을 내부적으로 전달하고 VM간 트래픽의 복사본 또는 보고를 네트워크 장치(112)와 같은 외부 장치에 송신하도록 동작가능할 수 있다. VM간 트래픽을 복사하는 것 및/또는 이에 대해 보고하는 것은 도 6과 관련하여 이하에서 논의된다.
도 2는 발명의 실시예에 따라, 네트워킹 장치들의 관리를 예시하는 도면이다. 도 2를 참조하면, 드라이버(driver)들(2031 - 203N)과 관련된 가상 머신(VM)들(2021 - 202N), 드라이버들(2061 - 206M)과 관련된 VM들(2041 - 204M), 하이퍼바이저(208), 및 네트워크 장치(102) 위에서 실행되는 가상 스위치(vSwitch : virtual switch)(210)가 도시되어 있다. 또한, 플렉시블 가상 머신 통신을 위한 엔티티(EFVC)(216)와, 네트워크 어댑터(110) 내의 물리 기능(PF : physical function)(118) 및 가상 기능(VF : virtual function)들(1201 - 120M)이 도시되어 있다.
가상 스위치(210)는 드라이버들(2031 - 203N)을 통해 VM들(2021 - 202N)로 그리고 VM들(2021 - 202N)로부터 트래픽을 전달할 수 있고, 가상 스위치는 복수의 VMS들(2021 - 202N) 사이에서 공유되는 자원들을 포함할 수 있다. 가상 스위치 동작을 지원하는 모드에서 동작할 때, 드라이버들(2031 - 203N)은 하드웨어에 의해 네트워크 어댑터(110)에 직접 결합되지 않을 수 있고, 이에 따라, 가상 스위치(210) 및 VM들(2021 - 202N) 사이의 통신을 위해 처리기 사이클들이 요구될 수 있고, 통신이 수행되기 전에 스케줄링 지연(scheduling delay)들이 발생할 수 있다. 그 결과, 가상 스위치(210)를 통과하는 것과 관련된 오버헤드(overhead)가 존재할 수 있고, VM들(2021 - 202N)이 통신할 수 있는 데이터 레이트(data rate)들은 VM들(2041 - 204M)이 통신할 수 있는 데이터 레이트들에 비해 상대적으로 제한될 수 있다. 반대로, 데이터 전달의 목적을 위하여 네트워크 어댑터(110)와 직접 상호작용하도록 구성된, 드라이버들(2061 - 206M)과 같은 전용 자원들이 VM들(2041 - 204M)에 할당될 수 있어서, VM들(2041 - 204M) 및 네트워크 어댑터(110) 사이의 통신들이 가상 스위치(210)를 우회할 수 있다. 이러한 방식으로, 가상 스위치와 관련된 오버헤드는 제거될 수 있고, 가상 스위치 및 네트워크 어댑터(PF)를 통과해야 하는 구성 및/또는 일부 다른 제어 동작들을 잠재적으로 제외하고는, VM들(2041 - 204M) 및 네트워크 어댑터(110) 사이에 직접 접속이 존재하는 것처럼 보일 수 있다. 이러한 직접 데이터 접속은 예를 들어, 전용 양방향 큐(bi-directional queue)들의 이용에 의해 달성될 수 있다.
따라서, VM들(2041 - 204M)은 더 높은 데이터 레이트들, 더 낮은 지연시간들을 지원할 수 있고, VM들(2021 - 202N)보다 통신을 위한 더 낮은 호스트 CPU 오버헤드를 가질 수 있다. 그러나, 네트워크 장치(102)가 가상 스위치를 사용하는 2021 - 202N와 같은 VM들을 지원할 것을 여전히 원하는 다양한 이유들이 존재한다. 예를 들어, VM들(2041 - 204M)은 더 많은 하드웨어를 필요로 하고, 이에 따라, 더 많은 VM들(2041 - 204M)을 지원하는 것이 네트워크 장치(102)의 비용 또는 복잡도의 측면에서 비실용적으로 되는 지점이 존재할 수 있는 반면, 추가적인 VM들(2021 - 202N)은 소프트웨어를 통해 지원될 수 있다. 또한, 레거시(legacy) 장치들 및/또는 부품들은 2041 - 204M를 위한 지원을 결여할 수 있다. 따라서, 네트워크 장치(102)는 VM들의 두 유형들을 지원할 수 있고, 수행되어야 할 특정 작업 또는 기능은 주어진 VM에 대하여 어떤 유형의 통신이 이용가능할 것인지를 기술할 수 있다. 편의상, VM들(2021 - 202N)은 본 명세서에서 "가상 스위칭되는 VM들(vSwitched VMs)"이라고 지칭되고, VM들(2041 - 204M)은 "직접 VM들)이라고 지칭된다.
플렉시블 가상 머신 통신을 위한 엔티티(EFVC : entity for flexible virtual machine communications)(216)는 네트워크 어댑터(110) 및 다양한 다른 엔티티들 사이의 관리 정보의 통신을 가능하게 할 수 있는 적당한 로직, 회로, 인터페이스들, 및/또는 코드를 포함할 수 있다. 예를 들어, 화살표(224)에 의해 표시된 바와 같이, 관리 정보는 EFVC(216) 및 내부 엔티티들 사이에서 통신될 수 있고, 내부 엔티티들은 하이퍼바이저(208) 및/또는 임의의 다른 내부 관리 엔티티와 같은 네트워크 장치(102) 내부의 엔티티들을 포함한다. 추가적으로 또는 대안적으로, 화살표(226)에 의해 표시된 바와 같이, 관리 정보는 EFVC(216) 및 외부 엔티티들 사이에서 통신될 수 있고, 외부 엔티티들은 네트워크 장치(112) 및/또는 임의의 다른 외부 관리 엔티티와 같은 네트워크 장치(102) 외부의 엔티티들을 포함한다. 관리 정보의 통신은 네트워크 어댑터(110)로 및/또는 네트워크 어댑터(110)로부터 통신되는 다른 트래픽의 대역내(in-band)에 있을 수 있다. 추가적으로 또는 대안적으로, 관리 정보는 예를 들어, 전용 물리 및/또는 논리 채널을 통해 다른 트래픽의 대역외에서 운반될 수 있다. 예를 들어, 관리 정보는 어플리케이션 프로그래밍 인터페이스(API : application programming interface)를 통해 네트워크 어댑터(110)로 그리고 네트워크 어댑터(110)로부터 통신될 수 있다. 즉, EFVC(216)는 API를 하나 이상의 내부 및/또는 외부 엔티티들에 노출할 수 있고, 엔티티들은 네트워크 어댑터(110)를 구성 또는 제어하기 위하여 API를 이용할 수 있다.
EFVC(216)는 VM들(2021 - 202N) 및/또는 VM들(2041 - 204M)로의 트래픽, 및/또는 VM들(2021 - 202N) 및/또는 VM들(2041 - 204M)로부터의 트래픽을 처리하도록 동작가능할 수 있는 적당한 로직, 회로, 인터페이스들, 및/또는 코드를 포함할 수도 있다. 예를 들어, EFVC(216)는 패킷 스위칭 기능과, 억세스 제어 리스트(ACL : access control list)들을 규정하는 것, 트래픽 미러링, 통계의 수집, 주어진 패킷에 대한 패킷 스위칭, 암호화, 복호화, 인증 등을 어디에서 수행할 것인지를 결정하는 것과 같은 다른 패킷 처리 기능들을 수행하도록 동작가능할 수 있다. EFVC(216)가 트래픽을 처리하는 방식은 통신되는 관리 정보에 기초하여, EFVC(216) 자원들의 자원들에 기초하여, 및/또는 EFVC(216)의 자원들이 어떻게 할당되는지에 기초하여 구성 및/또는 제어될 수 있다. 이러한 정보는 예를 들어, 유니캐스트 및/또는 멀티캐스트 트래픽을 전달하기 위한 정보(예를 들어, MAC 및/또는 VLAN 어드레스들), 억세스 제어 리스트들, 월드 와이드 명칭(world wide name)들, iSCSI 자격부여된 명칭들, 파이버 채널 오버 이더넷(FCoE : fiber channel over ethernet) 월드 와이드 명칭들, 이더타입(ethertype)들(예를 들어, FCoE 초기화 프로토콜(FIP : FCoE initialization protocol)을 위해 이용되는 이더타입들), 통계들, 에러 정보, 및/또는 VM들(2021 - 202N) 및/또는 VM들(2041 - 204M) 중의 하나 이상과 관련된 다른 정보를 포함하는 어드레스 테이블(들)을 포함할 수 있다. 어드레스 테이블(들)은 어느 포트들 및/또는 VM들이 다양한 VLAN, MAC, IP, 멀티캐스트, 및/또는 다른 네트워크 어드레스들과 관련되거나, 또는 이에 가입되어 있는 것인지를 결정하기 위하여 이용될 수 있는 정보로서, 트래픽을 어디로 전달할 것인지를 결정하기 위하여 억세스될 수 있는 정보를 포함할 수 있다.
동작 시에, EFVC(216)는 관리 정보의 통신들에 참여할 수 있고, 관리 정보에 기초하여 트래픽을 처리할 수 있다. 이러한 방식으로, 네트워크 장치(112) 또는 하이퍼바이저(208)와 같은 또 다른 엔티티는 네트워크 어댑터(110)를 위한 관리 프록시로서 작동할 수 있다.
네트워크 장치(112)를 통한 이러한 관리에 있어서, 단계들의 예시적인 순서는 다음과 같이 진행할 수 있다. 첫째, 관리 정보는 EFVC(216) 및 네트워크 장치(112) 사이에서 통신될 수 있다. 이러한 통신들은 예를 들어, API 및/또는 전용 관리 채널을 통한 것일 수 있다. 이러한 통신들은 예를 들어, EFVC(216) 및 네트워크 장치(112)의 동작 모드를 구성 및/또는 제어하기 위한 정보를 포함할 수 있다. 이와 관련하여, 이러한 통신들은 EFVC(216)의 성능들의 교환과, EFVC(216)를 지원하기 위한 네트워크 장치(112)의 성능들의 통신을 포함할 수 있다. 이러한 방식으로, 네트워크 장치(112) 및 EFVC(216)가 호환가능하게 구성된다는 점이 보장될 수 있다. 이 교환은 대역내 및/또는 대역외에서 행해질 수 있고, LLDP 및/또는 DCBX에 대한 확장들과 같은 하나 이상의 표준 프로토콜들을 이용할 수 있다. 둘째, 네트워크 장치(112)는 링크 계층 탐색 프로토콜(LLDP : link layer discovery protocol) 및/또는 데이터 센터 브릿징 교환(DCBX : data center bridging exchange)와 같은 관리 프로토콜에 따라, 관리 정보를 네트워크 관리 엔티티(122)에 제공 및/또는 이를 검색할 수 있다. 다음으로, 네트워크 관리 엔티티(122) 또는 가상화 관련 관리 엔티티(예를 들어, Vcenter 또는 SCVMM)는 관리 정보에 기초하여 관리 결정들을 행할 수 있다. 그 다음으로, 네트워크 관리 엔티티(122)는 상기 결정들에 기초하여 대응하는 관리 정보를 생성할 수 있고, 네트워크 장치(112) 및 EFVC(216)를 VM간 트래픽을 처리하기 위한 호환가능한 동작 모드들로 구성하기 위하여, 생성된 관리 정보를 네트워크 장치(112)에 통신할 수 있다. 네트워크 관리 엔티티(122)로부터 네트워크 엔티티(112)로의 통신은 DCBX 및/또는 LLDP 및/또는 DCBX에 대한 확장들과 같은 관리 프로토콜에 따를 수 있다. 그 다음으로, 네트워크 장치(112)는 상기 결정 및/또는 대응하는 구성 정보를 EFVC(216)에 통신할 수 있다.
네트워크 장치(112)를 통한 이러한 관리에 있어서, 단계들의 또 다른 예시적인 순서는 다음과 같이 진행할 수 있다. 첫째, 관리 정보는 EFVC(216) 및 네트워크 장치(112) 사이에서 통신될 수 있다. 이러한 통신은 예를 들어, API 및/또는 전용 관리 채널을 통한 것일 수 있다. 이러한 정보는 예를 들어, 네트워크 어댑터(110)에서 처리되었던 및/또는 처리될 수 있는 VM간 트래픽에 대한 이력(historical), 예상(expected), 및/또는 통계(statistical) 정보를 포함할 수 있다. 둘째, 네트워크 장치(112)는 DCBX, SNMP와 같은 관리 프로토콜에 따라, 관리 정보를 네트워크 관리 엔티티(122)에 제공할 수 있거나, 및/또는 관리 정보를 검색할 수 있다. 다음으로, 네트워크 관리 엔티티(122) 또는 가상화 관련 관리 엔티티는 관리 정보에 기초하여 관리 결정들을 행할 수 있다. 그 다음으로, 네트워크 관리 엔티티(122)는 상기 결정들에 기초하여 대응하는 관리 정보를 생성할 수 있고, 생성된 관리 정보를 네트워크 장치(112)에 통신할 수 있다. 네트워크 관리 엔티티(122)로부터 네트워크 엔티티(112)로의 통신은 DCBX, 및/또는 LLDP 및/또는 DCBX 및/또는 SNMP에 대한 일부 확장들과 같은 관리 프로토콜에 따를 수 있다. 그 다음으로, 네트워크 장치(112)는 상기 결정을 EFVC(216)에 통신할 수 있다.
관리 정보는 트래픽을 어떻게 처리할 것인지를 결정할 경우에 EFVC(216)에 의해 이용될 수 있다. 이와 관련하여, 예를 들어, 도 3에 대해 설명되는 바와 같이, 일부 및/또는 특정 트래픽은 네트워크 장치(102) 내에서 처리될 수 있고, 예를 들어, 도 4에 대해 설명되는 바와 같이, 도 5에 대해 설명된 멀티캐스트 트래픽의 일부, 일부 및/또는 특정 트래픽은 네트워크 장치(112)를 통해 처리될 수 있고, 도 6에 대해 설명되는 바와 같이, 도 5에 대해 설명된 멀티캐스트 트래픽의 일부와, 일부 및/또는 특정 트래픽은 내부적으로 처리될 수 있는 반면, 트래픽의 복사본들 및/또는 트래픽에 속하는 정보는 네트워크 장치(112)에 전달될 수 있다. 이와 관련하여, 네트워크 관리자 및/또는 네트워크 관리 엔티티에 의해 설정되는 필터들 및/또는 규칙들은 트래픽이 어떻게 처리되는 것인지를 결정할 수 있다.
네트워크 관리자 및/또는 네트워크 관리 엔티티는 트래픽이 어떻게 그리고 어디에서 처리되는지를 적어도 부분적으로 결정할 수 있는, 트래픽을 위한 서비스들/처리 기준들을 자유롭게 선택할 수 있다. 이와 관련하여, 특정 트래픽이 처리되는 방식은 처리되는 트래픽의 특성들뿐만 아니라, 네트워크 어댑터(110)의 특성들에도 의존할 수도 있다. 그 결과, 특정 트래픽이 처리되는 장치는 트래픽에 따라 변동될 수 있다. 예를 들어, 네트워크 어댑터(110)에서 특정 트래픽의 스위칭이 발생하는지에 따라, 네트워크 장치(112), 또는 일부 인스턴스들에서 가상 스위치(210)는 트래픽에 따라 변동될 수 있다. 네트워크 어댑터(110)의 특성에 대하여, 트래픽이 처리되는 방식은 예를 들어, 네트워크 어댑터(110) 내에 존재하는 하드웨어 및/또는 소프트웨어 자원들 및 자원들이 어떻게 할당되었는지에 따라 의존될 수 있다. 트래픽의 특성에 대하여, 트래픽이 처리되는 방식은 예를 들어, 트래픽이 관련되는 데이터 흐름(dataflow), 트래픽의 (출발지 어드레스 필드(source address field), 목적지 어드레스 필드(destination address field), 또는 임의의 다른 필드와 같은) 하나 이상의 필드들 내의 값, ACL 또는 다른 보안 메커니즘, 트래픽과 관련된 디버그 정보, 트래픽이 미러링되었는지 또는 미러링될 것인지의 여부, 트래픽과 관련된 지연시간 요건들, 및/또는 트래픽을 위해 할당 및/또는 요구되는 대역폭, 및/또는 스위칭된 포트 분석기(SPAN : switched port analyzer) 또는 원격 SPAN(RSPAN) 정보와 같은 특정 서비스들을 위한 관리자 명령들에 의존할 수 있다. 일부 인스턴스들에서, 사용자 또는 관리자는 특정 트래픽의 스위칭 장소를 식별하기 위한 툴들을 채용할 수 있다.
네트워크 어댑터(110)가 트래픽을 처리할 수 있는 유연성(flexibility)의 결과로, 한편으로, 지연시간, 네트워크 대역폭 및/또는 네트워크 혼잡(network congestion)과, 다른 한편으로, 네트워크 어댑터(110)의 복잡도 사이에서 최적의 균형이 달성될 수 있다. 즉, 네트워크 어댑터(110)는 VM간 트래픽의 실질적인 부분을 내부적으로 처리할 수 있고, 이에 따라, 네트워크 혼잡을 감소시킬 수 있지만, 또한, 일부 트래픽을 처리하기 위하여 외부 장치를 이용함으로써, 더욱 복잡한 서비스들을 가능하게 하고, 더 큰 수의 VM들로의 스케일링(scaling)을 가능하게 하고, 및/또는 더 큰 수의 서비스들로의 스케일링을 가능하게 할 수 있다.
트래픽을 어떻게 처리할 것인지에 대한 결정들 외에도, 관리 결정들은 예를 들어, 네트워크 장치(102) 위의 하나 이상의 VM들을 설명할 것인지를 결정하는 것, 네트워크 위에서 부하의 균형을 맞추기 위하여 네트워크 장치(102)로 및/또는 네트워크 장치(102)로부터 하나 이상의 VM들을 이동할 것인지를 결정하는 것, 어드레스 테이블들 또는 유사한 데이터 구조들 내의 정보를 수정할 것인지를 결정하는 것, 네트워크 보안에 관한 결정들을 행하는 것, 및 하이퍼바이저 또는 하이퍼바이저를 관리하는 엔티티와 협력하여 작동되는 다른 결정들을 포함할 수 있다.
도 3a 및 도 3b는 발명의 실시예에 따라, 플렉시블 가상 머신 통신을 위한 엔티티(EFVC)를 포함하는 네트워크 장치에 의해 처리되는 유니캐스트 가상 머신간 트래픽을 예시한다. 도 3a를 참조하면, 경로(302)는 가상 스위칭되는(vSwitched) VM(2021) 및 가상 스위칭되는 VM(202N) 사이의 예시적인 VM간 트래픽을 나타내고, 경로(304)는 가상 스위칭되는 VM(202N) 및 직접 VM(2041) 사이의 예시적인 VM간 트래픽을 나타내고, 경로(306)는 직접 VM(2041) 및 직접 VM(204M) 사이의 예시적인 VM간 트래픽을 나타낸다. 도 4 내지 도 6에 대해 설명된 것들과 같은 다른 경로들은 이 VM 중 임의의 것이 네트워크 장치(112)에 접속되도록 하기 위해 이용될 수 있다.
EFVC(216)는 (예를 들어, MAC 어드레스들 및/또는 우선순위 정보를 포함하는 VLAN 태그들을 갖는) 어드레스 테이블들, 억세스 제어 리스트들, 다른 유사한 정보, 및/또는 다른 관련된 정보와 같은 관리 정보를 저장할 수 있어서, EFVC(216)는 유니캐스트 트래픽을 적절하게 전달하도록 동작가능하다. 이와 관련하여, 일부 인스턴스들에서는, EFVC(216)가 기존의 네트워크 스위치의 방식과 유사할 수 있는 방식으로 작동 중에 어드레스 테이블들과 같은 관리 정보를 학습하도록 동작가능할 수 있다. 그러나, 일부 인스턴스들에서는, EFVC(216) 내의 정보는 하이퍼바이저(208) 및/또는 네트워크 장치(112)를 통해 관리 엔티티(122)에 의해 채워질 수 있다.
도 3a에 도시된 예시적인 시나리오에서, EFVC(216)의 어드레스 테이블은 VM들(2021 - 202N) 및 VM들(2041 - 204M)의 모두를 지원하기에 충분할 수 있다. 즉, EFVC(216)는 VM들(2021 - 202N) 및 VM들(2041 - 204M) 중의 임의의 것에 대해 예정된 트래픽을 전달하기 위한 포트를 알 수 있다. 따라서, EFVC(216)는 트래픽을 불필요한 포트들로 플러드(flood) 할 필요 없이, 경로들(304 및 306)에 의해 표시된 바와 같이, 이러한 유니캐스트 트래픽을 전달하도록 동작가능할 수 있다. VM들(2021 - 202N) 사이의 트래픽에 관하여, 이러한 트래픽은 경로(302)에 의해 표시된 바와 같이 가상 스위치(210)에 의해 처리될 수 있다.
도 3a에서, 경로(302)는 네트워크 장치(112)와 같은 외부 장치를 포함하지 않는다. 결과적으로, 네트워크 관리 엔티티(122)가 경로(302) 위의 트래픽을 인지하도록 하기 위하여, 하이퍼바이저(208)는 이러한 트래픽에 관한 관리 정보를 네트워크 관리 엔티티(122) 또는 또 다른 관리 엔티티에 통신할 수 있다. 이와 관련하여, 하이퍼바이저(208)는 이러한 정보를 네트워크 장치(112)에 직접 제공할 수 있거나, 및/또는 이러한 정보를 EFVC(216)를 통해 제공할 수 있다. 후자의 경우, 하이퍼바이저(208)는 관리 정보를 EFVC(216)에 통신할 수 있고, 그 다음으로, 상기 정보는 EFVC(216)로부터 네트워크 장치(112)를 통해 네트워크 관리 엔티티(122)로 통신될 수 있다.
도 3b에 도시된 시나리오에서, EFVC(216)의 어드레스 테이블은 VM들(2041 - 204M)의 모두를 지원하기에 충분할 수 있지만, VM들(2021 - 202N)의 모두를 지원하기에 충분하지 않을 수 있다. 즉, EFVC(216)는 VM들(2021 - 202N)의 하나 이상에 대해 예정된 트래픽을 전달하기 위한 포트를 알지 못할수 있다. 그러나, 이러한 트래픽을 모든 포트들에 플러드하는 것이 아니라, EFVC(316)는 경로(350)에 의해 표시된 바와 같이, 이러한 트래픽을 네트워크 장치(112)에 전달할 수 있다. 네트워크 장치(112)는 VEPA 모드에서 동작할 경우에, 트래픽이 네트워크 장치(102) 위의 엔티티(예를 들어, VM)에 대해 예정되어 있음을 알 수 있고, 이에 따라 EFVC(216)로 다시 송신할 수 있다. EFVC(216)로의 트래픽의 반환 시에, EFVC(216)는 VM들(2041 - 204M) 모두에 대한 어드레스를 알기 때문에, 트래픽이 VM들(2041 - 204M)의 임의의 것에 대해 예정되어 있지 않다고 결정할 수 있고, 트래픽을 가상 스위치(210)에만 전달할 수 있으므로, 트래픽을 불필요한 포트들에 플러드할 필요를 회피할 수 있다. 이와 관련하여, 목적지에 도달할 수 있는 포트를 알지 못하는 경우에 모든 포트들에 플러드할 수 있는 기존의 스위치에 비해, 네트워크 장치(112)와 상호작용하는 EFVC(216)는 이러한 플러딩(flooding)이 필요한 경우의 인스턴스들을 감소시키거나 제거한다.
도 4는 발명의 실시예에 따라, 외부 장치를 통해 처리되는 가상 머신간 트래픽을 예시하는 도면이다. 도 4를 참조하면, 경로(402)는 가상 스위칭되는 VM(2021) 및 가상 스위칭되는 VM(202N) 사이의 예시적인 VM간 트래픽을 나타내고, 경로(404)는 가상 스위칭되는 VM(202N) 및 직접 VM(2041) 사이의 예시적인 VM간 트래픽을 나타내고, 경로(406)는 직접 VM(2041) 및 직접 VM(204M) 사이의 예시적인 VM간 트래픽을 나타낸다.
EFVC(216)는 어드레스 테이블들, 억세스 제어 리스트들, 다른 유사한 정보, 및/또는 다른 관련된 정보와 같은 관리 정보를 저장할 수 있어서, EFVC(216)는 경로들(404 및 406)을 인지하고 있고, 경로들(404 및 406)을 따라 트래픽을 적절하게 전달하도록 동작가능하다. 이와 관련하여, 일부 인스턴스들에서는, 기존의 네트워크 스위치가 행할 수 있는 바와 같이, EFVC(216)는 작동 중에 어드레스 테이블들과 같은 관리 정보를 학습하도록 동작가능할 수 있다. 그러나, 일부 인스턴스들에서는, EFVC(216) 내의 정보가 하이퍼바이저(208) 및/또는 네트워크 장치(112)를 통해 관리 엔티티(122)에 의해 채워질 수 있다.
경로(402)는 네트워크 장치(112)와 같은 외부 장치를 포함하지 않는다. 결과적으로, 네트워크 관리 엔티티(122)가 경로(402) 위의 트래픽을 인지하도록 하기 위하여, 하이퍼바이저(208)는 이러한 트래픽에 관한 관리 정보를 네트워크 관리 엔티티(122) 또는 또 다른 관리 엔티티에 통신할 수 있다. 이와 관련하여, 하이퍼바이저(208)는 이러한 정보를 네트워크 장치(112)에 직접 제공할 수 있거나, 및/또는 이러한 정보를 EFVC(216)를 통해 제공할 수 있다. 후자의 경우, 하이퍼바이저(208)는 관리 정보를 EFVC(216)에 통신할 수 있고, 그 다음으로, 상기 정보는 EFVC(216)로부터 네트워크 장치(112)를 통해 네트워크 관리 엔티티(122)에 통신될 수 있다. 따라서, 네트워크 장치(112) 및 EFVC(216)가 VEPA, VNtag 및 Port Extender(포트 확장기)와 같은 프로토콜들을 사용하는 모드들로 구성되는 동안, 이러한 정보는 경로(402)를 따라 통신될 수 있다. 그러나, 경로(402)는 EFVC(216)가 VM간 트래픽을 내부적으로 처리하기 위하여 자원들을 다 써버리는 인스턴스들에서 이용될 수도 있다.
도 5a 및 도 5b는 발명의 실시예에 따라, 멀티캐스트 트래픽의 통신을 예시한다. 도 5a 및 도 5b를 참조하면, 네트워크 장치들(102 및 112)이 도시되어 있다.
멀티캐스트 트래픽을 처리하기 위하여, EFVC(216)는 어드레스 테이블들, 다른 유사한 정보, 및/또는 다른 관련된 정보와 같은 관리 정보를 저장할 수 있으므로, EFVC(216)는 멀티캐스트 트래픽을 적절하게 전달하도록 동작가능할 수 있다. 이와 관련하여, EFVC(216) 내의 정보는 네트워크 장치(112)를 통해 하이퍼바이저(208)에 의해 및/또는 네트워크 관리 엔티티(122)에 의해 채워질 수 있다. 발명의 다양한 실시예들에서, 이러한 어드레스 테이블들은 제한된 용량일 수 있으므로, EFVC(216)는 멀티캐스트 트래픽을 처리하기 위한 EFVC(216)의 성능들을 확장하기 위하여 네트워크 장치(112)에 의해 제공되는 서비스들 및/또는 기능들을 활용하도록 동작가능할 수 있다.
도 5a에 도시된 시나리오에서, EFVC(216)의 어드레스 테이블은 VM들(2041 - 204M)의 모두를 지원하기에 충분할 수 있다. 즉, EFVC(216)는 VM들(2041 - 204M)의 각각이 도달가능하게 하는 포트를 알 수 있다. 따라서, 경로(502)에 의해 도시된 바와 같이, VM들(2021 - 202N) 중의 하나로부터 나오는 멀티캐스트 트래픽을 위하여, 가상 스위치(210)는 트래픽이 전달되어야 할 VM들(2021 - 202N) 중의 임의의 하나 이상으로 트래픽을 전달할 수 있고, EFVC(216)는 멀티캐스트 트래픽이 전달되어야 할 VM들(2041 - 204M) 중의 임의의 하나 이상으로 멀티캐스트 트래픽을 전달할 수 있다. 네트워크 장치(102) 외부의 장치들에 대해 예정된 멀티캐스트 트래픽은 네트워크 장치(112)에 송신될 수 있다.
그러나, 도 5b에 도시된 시나리오에서는, EFVC(216)의 어드레스 테이블이 VM들(2041 - 204M)의 모두를 지원하기에 충분하지 않을 수 있다. 예를 들어, EFVC(216)는 VM(204M)에 어떻게 도달할 것인지를 알 수 없다. 따라서, 네트워크 장치(112)는 필요성에 기초하여 EFVC(216)의 성능들을 확장하도록 이용될 수 있다. 따라서, 경로(552)에 의해 도시된 바와 같이, VM들(2021 - 202N) 중의 하나로부터 나오는 멀티캐스트 트래픽을 위하여, 가상 스위치(210)는 그 트래픽을 수신해야 하는 VM들(2021 - 202N) 중의 임의의 하나 이상에 멀티캐스트 트래픽을 전달하는 것을 처리할 수 있고, EFVC(216)는 VM(204M)에 대해 예정된 멀티캐스트 트래픽을 네트워크 장치(112)에 송신할 수 있다. 네트워크 장치(112)는 VEPA 모드에서 동작할 경우에, 트래픽이 네트워크 장치(102)에 대해 예정되어 있음을 알 수 있고, 이에 따라, 트래픽을 다시 네트워크 장치(102)에 송신할 수 있다. 그 다음으로, EFVC(216)는 멀티캐스트 트래픽을 위하여 예약되었을 수 있다고 결정하는 VM들(2041 - 204M) 중의 임의의 하나 이상에 트래픽을 송신할 수 있거나, 또는 EFVC(216)는 트래픽을 VM들(2041 - 204M)의 모두에 트래픽을 플러드할 수 있다. 따라서, 도 5b의 시나리오는 VM들(2041 - 204M)의 일부에 의해 과도한 복사본들이 검색될 수 있는 인스턴스들을 예시한다. 그러나, 발신자(originator)가 VM들(2041 - 204M) 중의 하나였던 인스턴스에서, EFVC(216)는 출발지 어드레스를 확인하고 이를 발신자에게 송신하지 않음으로써, 멀티캐스트 트래픽의 발신자가 복사되지 않은 것임을 보장할 수 있다. 이러한 방식으로, 출발지로의 복사 또는 피드백이 발생하지 않을 것이다. 또한, 도 5b에 대하여 설명된 시나리오는 과도한 복사본들이 수신되는 유일한 시나리오일 수 있다. 따라서, EFVC(216)는 트래픽을 수신하는 것으로 추정되지 않는 포트들에 송신되는 멀티캐스트 트래픽의 양(amount)을 감소시킴으로써, 기존의 네트워크 어댑터들에 비해 멀티캐스트 트래픽의 처리를 개선시킬 수 있다. 또한, 발명의 일부 실시예들에서, 도 5b의 시나리오와 같은 시나리오들은 멀티캐스트 트래픽을 네트워크 장치(112)에 송신하기 전에 멀티캐스트 트래픽을 태그(tag)하는 EFVC(216)에 의해 감소 또는 제거될 수 있다. 이와 관련하여, 네트워크 장치(112)로부터 멀티캐스트 트래픽을 다시 수신할 경우, 태그(들)는 어느 VM들(2041 - 204M)이 트래픽을 이미 수신하였는지를 EFVC(216)가 알도록 할 수 있을 것이다.
도 6은 발명의 실시예에 따라, 네트워크 관리를 위한 가상 머신간 트래픽의 복사(copying) 또는 미러링(mirroring)을 예시하는 도면이다. 도 6을 참조하면, 경로(602)는 직접 VM들(2041 및 204M) 사이의 유니캐스트 VM간 트래픽을 나타내고, 경로(604)는 네트워크 어댑터(110)로부터 하이퍼바이저(208)로 통신되는 대응하는 트래픽을 나타내고, 경로(606)는 네트워크 어댑터(110)로부터 네트워크 장치(112)로 통신되는 대응하는 트래픽을 나타낸다. 경로들(604 및/또는 606)을 따라 통신되는 대응하는 트래픽은 네트워크 장치(102)에서 및/또는 디버그 목적들을 위해 이용되는, 예를 들어, 트래픽 패턴들 및/또는 부하들을 결정하기 위하여 다른 장치들에 의해 사용될 수 있다.
일부 인스턴스들에서, 경로들(604 및 606)을 따라 통신되는 대응하는 트래픽은 예를 들어, VM간 트래픽의 각각의 패킷의 복제본(replica), VM간 트래픽의 선택된 패킷들의 복제본들, VM간 트래픽의 각각의 패킷의, 헤더(header) 또는 페이로드(payload)와 같은 일부분들의 복제본들, 및/또는 VM간 트래픽의 선택된 패킷들의, 헤더 또는 페이로드와 같은 일부분들의 복제본들을 포함할 수 있다. 이러한 방식으로, 경로(602) 위의 트래픽, 또는 그 일부는 하이퍼바이저(208) 및/또는 네트워크 장치(112)에 복사될 수 있다. 이어서, 하이퍼바이저(208) 및/또는 네트워크 장치(112)는 네트워크 장치(102)에서의 VM간 트래픽에 관한 정보가 외부 네트워크 관리 엔티티(122)에 의해 이용가능하도록 할 수 있다. 일부 인스턴스들에서는, 대응하는 트래픽이 변형되거나 그렇지 않을 경우에는 표시될 수 있어서, 원래의 트래픽과 차별화될 수 있다. 추가적으로 및/또는 대안적으로, 경로들(604 및 606)을 따라 통신되는 트래픽은 경로(602) 위의 트래픽의 복사본이 아닐 수 있고, 오히려, 경로(602)를 통해 통신되는 트래픽에 대한 보고일 수 있다. 예를 들어, 경로들(604 및 606)을 따르는 트래픽은 작은 대역폭 및/또는 처리 자원들을 필요로 하는 약식의 및/또는 간단한 통지 메시지들일 수 있다.
VM간 트래픽의 복사 또는 보고는 네트워크 관리 목적들을 위한 것일 수 있다. 이와 관련하여, 네트워크 장치(102)가 VM간 트래픽을 내부적으로 라우팅할 경우, 트래픽은 그 외에는 네트워크 관리 엔티티(122)에 알려지지 않을 수 있으므로, 네트워크 관리 엔티티(122)는 이러한 트래픽을 네트워크 관리 동작들로 고려하지 않을 수 있을 것이고, 이러한 동작들은 예를 들어, 네트워크 어댑터(110)가 VM간 트래픽을 어떻게 처리할 것인지를 구성하는 것, 네트워크에서 부하들의 균형을 맞추기 위하여 VM들을 설명 및/또는 이동할 것인지를 결정하는 것, 네트워크 통계를 수집하는 것, 및 네트워크 문제들의 디버깅(debugging)을 포함하거나, ACL 또는 이와 유사한 것과 같은 보안 서비스들을 제공한다.
대역내(in-band) 및/또는 대역외(out-of-band) 메커니즘들은 트래픽이 복사된다는 것을 결정하기 위하여 복사된 트래픽을 수신하는 엔티티(예를 들어, 하이퍼바이저(208) 및/또는 네트워크 장치(112))에 의해 이용될 수 있다. 대역내 메커니즘은 복사된 트래픽이 복사본이라는 것을 나타내기 위하여, 예를 들어, 플래깅(flagging), 표시(marking), 및/또는 그 외에는 복사된 트래픽을 변형하는 것을 포함할 수 있다. 예시적인 대역외 메커니즘은 복사된 트래픽 이전에, 및/또는 복사된 트래픽과는 상이한 채널을 통해, 엔티티에 송신된 신호, 메시지, 및/또는 다른 통지를 포함할 수 있다. 예를 들어, 대역외 통지(out-of-band notification)는 네트워크 장치(112)를 VEPA 모드로 구성할 수 있고, 네트워크 장치(112)의 다른 서비스들(예를 들어, ACL 처리, 미러링, 어드레스 테이블 확장들 등)을 구성할 수 있다. 이러한 구성은 네트워크 장치(112)가 EFVC(216)로부터 수신된 트래픽을 처리하고 패킷의 처리를 위한 필요한 및/또는 희망하는 서비스들을 제공하고, 그 다음으로 적절한 작업을 행하도록 할 수 있다. 이러한 적절한 작업은 예를 들어, 패킷을 EFVC(216)로 다시 송신하는 것을 포함할 수 있으므로, 그 다음으로, EFVC(216)는 처리된 패킷을 그 목적지로 전달하거나, 디버그 및/또는 추가적인 처리를 위한 또 다른 장치로 송신하거나, 및/또는 패킷을 누락하기만 할 필요가 있을 수 있다. 예를 들어, 대역외 통지는 엔티티를, 후속 통지가 수신될 때까지 모든 트래픽이 복사된 트래픽으로서 처리되는 동작 모드로 구성할 수 있다. 또 다른 예를 들면, 대역외 통지는 엔티티를, 다음 'K' 패킷들(여기서, K는 정수(integer))과 같은 특정 패킷이 복사된 트래픽으로서 처리되는 동작 모드로 구성할 수 있다. 이와 유사하게, 대역외 통지는 엔티티를, 특정 시간 간격 동안에 수신된 트래픽 또는 특정 포트를 통해 수신된 트래픽이 복사된 트래픽으로서 처리되는 동작 모드로 구성할 수 있다. 또한, 복사된 트래픽은 다양한 방식들에 의해 처리될 수 있다. 예를 들어, 하이퍼바이저(208) 및/또는 네트워크 장치(112)는 복사된 트래픽이 또 다른 네트워크 장치로 전달될 필요가 없고, 네트워크 관리 엔티티(122)에만 전달되어야 하고, 및/또는 복사된 트래픽의 개요가 네트워크 관리 엔티티(122)에 전달되어야 한다는 것을 결정할 수 있다.
도 6은 직접 VM들(2041 및 204M) 사이의 유니캐스트 트래픽을 예시하지만, 경로들(604 및 606)과 유사한 경로들은 e스위칭되는(eSwitched) VM들(202) 및/또는 직접 VM들(204)로 및/또는 이들로부터의 다른 유니캐스트 및/또는 멀티캐스트 트래픽을 위해 이용될 수도 있다. 예를 들어, 스위칭되는 VM들(2021 및 202N) 사이의 트래픽을 위하여, 하이퍼바이저(208)는 복사본들을 EFVC(216) 및/또는 네트워크 장치(112)로 전달할 수 있다.
추가적으로, 도 6은 미러링 서비스들 및/또는 기능을 제공하는 네트워크 장치(112)를 예시하고 있지만, 발명은 그렇게 한정되지 않는다. 이와 관련하여, 임의의 다른 EFVC 서비스들은 네트워크 장치(112)의 이용에 의해, 또는 가상 스위치(210) 및/또는 그 관련 소프트웨어나 API들의 이용에 의해 확장될 수 있다. 이와 유사하게, EFVC(216)는 가상 스위치(210)에 의해 제공되는 서비스들을 확장하기 위해 이용될 수 있다.
도 7은 발명의 실시예에 따라, VM 트래픽을 처리하기 위한 예시적인 단계들을 예시하는 순서도이다. 단계(702)에서 시작되면, 네트워크 장치(102)는 급전(power up) 및/또는 리셋(reset)될 수 있다. 단계(704)에서, 관리 정보는 EFVC(216) 및 네트워크 관리 엔티티(122) 사이에서 통신될 수 있다. 이러한 관리 정보는 하이퍼바이저(208) 및/또는 네트워크 장치(112)를 통해 통신될 수 있다. 이와 관련하여, 네트워크 장치(112)는 네트워크 장치(102)를 위한 관리 프록시(management proxy)로서 작동할 수 있다. 단계(706)에서, EFVC(216)는 스스로 구성될 수 있거나, 및/또는 통신된 관리 정보에 기초하여 네트워크 어댑터(110), 하이퍼바이저(208), 및/또는 네트워크 장치(102)의 다른 부분들을 구성할 수 있다. 이러한 방식으로, VM간 트래픽이 처리되는 방식을 결정하기 위하여 이용되는 규칙들, 필터들, 성능들, 정책들, 허가들, 및/또는 다른 기준들이 구성될 수 있다. 관리 정보는 예를 들어, 트래픽을 처리하기 위하여 네트워크 어댑터(110)에서 저장될 수 있는 예를 들어, 어드레스 테이블들, 억세스 제어 리스트들, 또는 유사한 정보를 포함할 수 있다. 억세스 제어 리스트는 다양한 VM들 및/또는 다른 네트워크 엔티티들과 관련된 허가들을 결정할 수 있는 정보를 포함할 수 있다. 단계(708)에서, 네트워크 장치(102) 위에서 실행되는 제 1 VM은 네트워크 장치(102) 위에서 실행되는 제 2 VM으로 트래픽을 송신하기 시작할 수 있다. 단계(710)에서, VM간 트래픽이 처리되는 방식은 다양한 규칙들, 필터들, 인자(factor)들, 허가들, 성능들, 또는 네트워크 관리자에 의해 결정되거나 및/또는 단계(706)에서 구성되는 임의의 다른 기준에 기초하여 결정될 수 있다. 예를 들어, ACL 처리는 트래픽을 위해 요구될 수 있지만, 네트워크 어댑터(110)가 ACL을 지원하지 않을 수 있거나, 그 ACL 성능들이 최대로 된다. 트래픽이 외부적으로 처리되어야 하는 인스턴스들에서는, 예시적인 단계들이 단계(718)로 진행할 수 있다.
단계(718)에서, VM간 트래픽은 네트워크 장치(112)의 포트(220)를 통해 네트워크 장치(112)에 전달될 수 있다. 단계(719)에서, 네트워크 장치(112)는 EFVC(216)가 제공할 수 없었던 서비스들 및/또는 기능을 제공하기 위하여 사용자 및/또는 관리자에 의해 설정된 규칙들에 따라 VM간 트래픽을 처리할 수 있다. 단계(720)에서, 네트워크 장치(112)는 트래픽이 네트워크 장치(102) 위의 VM을 위해 예정되어 있다고 결정할 수 있고, 이에 따라, 포트(220)를 통해 트래픽을 네트워크 장치(102)에 다시 전달할 수 있다. 또한, 단계(720) 동안, 네트워크 장치(112)는 네트워크 관리를 위해 사용될 수 있는 정보를 생성 및/또는 업데이트할 수 있다. 예를 들어, 네트워크 장치(112)는 네트워크에서의 트래픽 패턴(traffic pattern)들에 관한 통계 정보를 저장하는 테이블을 업데이트할 수 있다. 추가적으로, 단계(720) 동안에는, 전달하기에 앞서, 네트워크 장치(112)는 네트워크 어댑터(110) 위에서 구현 및/또는 가능하게 되지 않는 서비스들을 제공할 수 있다. 예를 들어, 네트워크 장치(112)는 하나 이상의 보안 프로토콜들을 구현하는 것과 관련된 복잡한 처리를 수행할 수 있다. 단계(722)에서, 트래픽은 네트워크 어댑터(110)에 의해 수신될 수 있고, 목적지 VM에 전달될 수 있다.
단계(710)로 돌아가서, 트래픽이 내부적으로 처리되어야 하는 인스턴스들에서는, 예시적인 단계들이 단계(712)로 진행할 수 있다. 단계(712)에서는, 네트워크 어댑터(110)가 VM간 트래픽의 복사본들 전달하도록 또는 VM간 트래픽에 대해 보고하도록 구성되었는지 결정될 수 있다. 네트워크 어댑터(110)가 복사본들 및/또는 보고들을 송신하도록 구성되지 않았으면, 단계(714)에서, 트래픽은 목적지 VM에 통신될 수 있다. 네트워크 어댑터(110)가 복사본들 및/또는 보고들을 송신하도록 구성되었으면, 단계(716)에서, 트래픽은 목적지 VM으로 통신될 수 있고, 트래픽의 복사본, 또는 트래픽에 관한 보고는 예를 들어, 하이퍼바이저(208) 및/또는 네트워크 장치(112)에 통신될 수 있다. 복사 및/또는 통지는 이후에 네트워크 관리 엔티티(122)에 통신될 수 있다.
도 8은 발명의 실시예에 따라, 네트워크 어댑터 내의 어드레스 테이블의 내용들에 기초하여 트래픽을 내부적으로 또는 외부적으로 처리하는 것을 예시하는 순서도이다. 도 8을 참조하면, 예시적인 단계들은 트래픽이 VM(202 또는 204)과 같은 국부적인 소스로부터 네트워크 어댑터(110)에서 수신될 경우에 단계(802)에 의해 시작될 수 있다. 단계(804)에서, EFVC(216)는 트래픽의 목적지 어드레스를 위하여 네트워크 어댑터(110)의 어드레스 테이블을 검색할 수 있다. 목적지 어드레스가 어드레스 테이블에서 발견되는 인스턴스들에서는, 예시적인 단계들이 단계(806)로 진행할 수 있다.
단계(806)에서는, 트래픽이 VM들(2021 - 202N 및 2041 - 204M)의 하나 이상에 대해 예정된 트래픽인지 결정될 수 있다. 트래픽이 VM들(2021 - 202N 및 2041 - 204M)의 하나 이상에 대해 예정된 인스턴스들에서는, 예시적인 단계들이 단계(810)로 진행할 수 있다. 또한, 트래픽이 VM들(2021 - 202N 및 2041 - 204M)의 하나 이상에 대해 예정된 인스턴스들에서는, EFVC(216)가 트래픽의 복사본 또는 보고를 네트워크 장치(112) 및/또는 하이퍼바이저(208)에 송신할 수 있다. 이러한 인스턴스들에서는, 대역내 및/또는 대역외 통지가 송신될 수 있어서, 네트워크 장치(112) 및/또는 하이퍼바이저(208) 복사된 트래픽을 알고 있고 복사된 트래픽을 처리하도록 구성된다.
단계(810)에서, 트래픽은 적절한 VF(들) 및/또는 PF(들)을 통해 VM(들)에 전달될 수 있다.
단계(806)로 돌아가서, 트래픽이 VM들(2021 - 202N 및 2041 - 204M)의 하나 이상에 대해 예정되지 않은 인스턴스들에서는, 예시적인 단계들이 단계(812)로 진행할 수 있다.
단계(812)에서, 트래픽은 네트워크 장치(112)에 송신될 수 있다. 발명의 일부 실시예들에서는, 이러한 트래픽을 처리하기 위한 모드에서 네트워크 장치(112)를 구성하기 위하여, 단계(812) 동안 및/또는 단계(812) 이전에, 대역외 통지(out-of-band notification)가 네트워크 장치(112)에 송신될 수 있다. 예를 들어, 이러한 통지는 네트워크 장치(112)를 VEPA 모드로 구성할 수 있다. 단계(812) 이후에는, 예시적인 단계들이 단계(814)로 진행할 수 있다.
단계(814)에서, 네트워크 장치(112)는 트래픽을 어디로 전달할 것인지를 결정하기 위하여, 네트워크 어댑터(110)보다 클 수 있는 그 자원들을 사용할 수 있다. 이와 관련하여, EFVC(216)는 VM들(2041 - 204M)에 대한 어드레싱 정보는 가지지만 VM들(2021 - 202N)에 대한 어드레싱 정보는 가지지 않도록 될 수 있고, 이에 따라, 예시적인 단계(814)는 VM들(2021 - 202N)의 하나 이상에 대해 예정되어 있는 트래픽을 추구할 수 있다. 이러한 인스턴스들에서, 네트워크 장치(112)는 트래픽이 수신되었던 포트 위에서 트래픽을 다시 전달할 수 있다. 결과적으로, 동일한 포트를 통해 동일한 트래픽이 수신될 경우, EFVC(216)는 VM들의 하나 이상에 대해 예정되어야 할 트래픽이 패킷을 가상 스위치에 전달할 수 있는지를 결정하도록 동작가능할 수 있다. 대안적으로, 네트워크 장치(112)는 네트워크 어댑터(110)의 어드레스 테이블을 업데이트하기 위하여 대역외 통지를 EFVC(216)에 제공할 수 있어서, EFVC(216)는 어디로 전달할 것인지를 안다. 목적지가 네트워크 장치(102)의 외부인 인스턴스들에서는, 네트워크 장치(112)는 트래픽이 수신된 포트와 상이한 하나 이상의 적절한 포트들을 통해 트래픽을 전달할 수 있다.
단계(804)로 돌아가서, 목적지 어드레스가 네트워크 어댑터(110)의 어드레스 테이블에서 발견되지 않는 인스턴스들에서는, 예시적인 단계들이 단계(812)로 진행할 수 있다.
이러한 방식으로, 네트워크 어댑터(110)는 트래픽을 네트워크 장치(112)뿐만 아니라 모든 VM들에 단순히 플러드할 수 있는 기존의 네트워크 장치보다 더욱 효율적으로 트래픽을 처리할 수 있다.
어드레스 테이블들에 관한 상기 설명과 유사하게, 트래픽은 억세스 제어 리스트(ACL) 또는 다른 보안 메커니즘에 기초하여 유사한 방식으로 처리될 수 있다. 이와 관련하여, EFVC(216)가 ACL 및/또는 다른 보안 메커니즘을 구현하기 위한 충분한 자원들을 가지는 인스턴스들에서는, 관리 엔티티(122)는 네트워크 장치(112) 및/또는 하이퍼바이저(208)를 통해 ACL 정보를 EFVC(216)에 통신할 수 있고, EFVC(216)는 트래픽을 처리할 수 있고, 예를 들어, ACL 및/또는 다른 보안 메커니즘에 따라 트래픽을 전달 또는 누락할 것인지를 결정할 수 있다. 대안적으로, EFVC(216)가 ACL 또는 다른 보안 메커니즘을 저장 및/또는 구현하기 위해 이용가능한 충분한 자원을 가지지 않을 때에는, EFVC(216)는 관련 트래픽, 예를 들어, ACL의 적용 가능성에 대해 EFVC(216)가 확신하지 못하는 트래픽을 네트워크 장치(112)에 송신할 수 있다. 그 다음으로, VEPA 모드의 네트워크 장치(112)는 ACL에 따라 트래픽을 처리할 수 있고, 그 다음으로, 트래픽을 EFVC(216)로 반환할 수 있다.
가상 머신 네트워킹을 위한 방법 및 시스템의 양태들이 제공된다. 발명의 예시적인 실시예에서, 제 1 네트워크 장치(102)의 네트워크 어댑터(110)에 존재하는 EFVC(216)는 제 1 네트워크 장치(102) 내부에 전적으로 존재하는 경로들(304 및 306)과 같은 경로를 통해, 또는 제 2 네트워크 장치(112)를 포함하는 경로(350)와 같은 경로를 통해, VM들(2021 - 202N 및/또는 2041 - 204M)의 2개 이상 사이에서 트래픽을 통신할 것인지를 결정하도록 동작가능할 수 있는 하나 이상의 회로들 및/또는 처리기들을 포함할 수 있다. 상기 결정은 트래픽의 특성에 적어도 부분적으로 기초할 수 있다. 상기 결정은 네트워크 어댑터(110)의 성능들 및/또는 이용가능한 자원들에 적어도 부분적으로 기초할 수 있다. 상기 결정은 EFVC(215)와, 제 1 네트워크 장치, 제 2 네트워크 장치(112), 및/또는 제 3 네트워크 장치 위에서 실행되는 하이퍼바이저(208)와 같은 소프트웨어 중의 하나 이상과의 사이에서 교환되는 관리 정보에 적어도 부분적으로 기초할 수 있다. 제 2 네트워크 장치(112)는 제 1 네트워크 장치(102) 대신에 네트워크 관리 프로토콜들에 참여할 수 있다. 관리 정보는 하나 이상의 회로들 및/또는 처리기들에 의해 이용가능하게 되는 어플리케이션 프로그래밍 인터페이스(API)를 통해 교환될 수 있다.
트래픽과 관련된 어드레싱 정보가 네트워크 어댑터(110)의 어드레스 테이블 내에 있지 않은 인스턴스들에서는, 트래픽이 제 2 네트워크 장치(112)를 포함하는 경로를 통해 통신될 수 있다. 네트워크 어댑터(110)가 트래픽을 처리하기 위해 요구되는 하나 이상의 보안 기능들을 수행할 수 없는 인스턴스들에서는, 트래픽이 제 2 네트워크 장치를 포함하는 경로를 통해 통신될 수 있다. 네트워크 어댑터(110)가 트래픽을 위해 요구되는 하나 이상의 관리 기능들을 수행할 수 없는 인스턴스들에서는, 트래픽이 제 2 네트워크 장치(112)를 포함하는 경로를 통해 통신될 수 있다. 트래픽이 제 2 네트워크 장치(112)를 포함하는 경로를 통해 통신되는 인스턴스(instance)들에서, 제 2 네트워크 장치(112)는 트래픽을 처리할 수 있고, 처리된 트래픽을 제 1 네트워크 장치(102)로 반환할 수 있다. 제 2 네트워크 장치(112)에 의해 수행되는 처리는 예를 들어, 제 2 네트워크 장치(112)의 어드레스 테이블에서 트래픽과 관련된 어드레싱 정보를 룩업(look up)하는 것, 트래픽을 처리하기 위해 요구되는 하나 이상의 관리 기능들을 수행하는 것, 및/또는 트래픽을 처리하기 위해 요구되는 하나 이상의 보안 기능들을 수행하는 것을 포함할 수 있다.
또한, EFVC(216)는 트래픽의 복사본 또는 트래픽에 관한 보고를 제 2 네트워크 장치(112)에 통신하도록 동작가능할 수 있고, 제 2 네트워크 장치(112)는 관리 동작을 위하여 트래픽의 복사본을 사용할 수 있다. 트래픽의 복사본의 하나 이상의 태그(tag)들, 필드(field)들, 및/또는 헤더(header)들은 제 2 네트워크 장치(112)가 트래픽의 복사본이 복사본임을 결정하도록 할 수 있다. 추가적으로 또는 대안적으로, EFVC(216)로부터의 표시는 제 2 네트워크 장치(112)가 트래픽의 복사본이 복사본임을 결정할 수 있도록 할 수 있다. 상기 표시는 트래픽의 복사본으로부터 대역외로 통신될 수 있다.
발명의 또 다른 실시예는 머신(machine) 및/또는 컴퓨터에 의해 실행가능한 적어도 하나의 코드 부분을 갖는 머신 코드 및/또는 컴퓨터 프로그램을 그 위에 저장한 머신 및/또는 컴퓨터 판독가능 저장장치 및/또는 매체를 제공할 수 있고, 이에 따라, 머신 및/또는 컴퓨터가 가상 머신 네트워킹을 위하여 본 명세서에서 설명된 바와 같은 단계들을 수행하도록 할 수 있다.
따라서, 본 발명은 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합으로 실현될 수 있다. 본 발명은 적어도 하나의 컴퓨터 시스템에서 중앙집중 방식으로 실현될 수 있거나, 또는 상이한 구성요소들이 몇 개의 상호접속된 컴퓨터 시스템들에 걸쳐 퍼져 있는 분산 방식으로 실현될 수 있다. 본 명세서에서 설명된 방법들을 수행하기 위해 구성된 임의의 종류의 컴퓨터 시스템 또는 다른 장치가 적합하다. 하드웨어 및 소프트웨어의 전형적인 조합은, 로딩 및 실행될 경우에, 본 명세서에서 설명된 방법들을 수행하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템(general-purpose computer system)일 수 있다.
또한, 본 발명은 컴퓨터 프로그램 제품 내에 내장될 수 있고, 이 컴퓨터 프로그램 제품은 본 명세서에서 설명된 방법들의 구현을 가능하게 하는 모든 특징들을 포함하고, 컴퓨터 시스템에서 로딩될 경우에, 이 방법들을 수행할 수 있다. 본 상황에서의 컴퓨터 프로그램은 정보 처리 성능을 갖는 시스템이 특정 기능을 바로 수행하거나, 또는 a) 또 다른 언어, 코드 또는 표기로의 변환; b) 상이한 자료 형태로의 재생 중의 어느 하나 또는 둘 모두를 행한 후에 특정 기능을 수행하도록 의도된 명령들의 집합의, 임의의 언어, 코드 또는 표기로 된 임의의 표면을 의미한다.
본 발명은 특정 실시예들을 참조하여 설명되었지만, 본 발명의 범위로부터 벗어나지 않으면서 다양한 변경들이 행해질 수 있고 등가물들이 대체될 수 있다는 것을 당업자들이 이해할 것이다. 또한, 특정 상황 또는 내용을 그 범위로부터 벗어나지 않으면서 본 발명의 교시 내용에 적합하게 할 수 있다. 그러므로, 본 발명은 개시된 특정 실시예에 한정되도록 의도된 것이 아니라, 본 발명은 첨부된 청구항들의 범위 내에 속하는 모든 실시예들을 포함할 것이다.

Claims (16)

  1. 네트워킹을 위한 시스템으로서,
    제 1 네트워크 장치의 네트워크 어댑터에서 이용하기 위한 하나 이상의 회로들 및/또는 처리기들을 포함하고,
    상기 하나 이상의 회로들 및/또는 처리기들은,
    상기 제 1 네트워크 장치 내에 전적으로 존재하는 경로를 통해, 또는 상기 제 1 네트워크 장치의 외부에 있는 제 2 네트워크 장치를 포함하는 경로를 통해, 상기 제 1 네트워크 장치 위에서 실행되는 가상 머신(virtual machine)들 사이에서 트래픽을 통신할 것인지를 결정하도록 동작가능하고, 상기 결정은 상기 트래픽의 특성들에 기초하는, 네트워킹을 위한 시스템.
  2. 청구항 1에 있어서,
    상기 결정은, 상기 제 1 네트워크 장치 위에서 실행되는 호스트 상주 소프트웨어, 상기 제 2 네트워크 장치, 및 제 3 네트워크 장치 중의 하나 이상과, 상기 하나 이상의 회로들 및/또는 처리기들과의 사이에서 교환되는 관리 정보에 기초하는, 네트워킹을 위한 시스템.
  3. 청구항 1에 있어서,
    상기 결정은 상기 네트워크 어댑터의 성능들 및/또는 이용가능한 자원들에 기초하는, 네트워킹을 위한 시스템.
  4. 청구항 1에 있어서,
    상기 트래픽이 상기 제 2 네트워크 장치를 포함하는 상기 경로를 통해 통신되는 인스턴스(instance)들에서, 상기 제 2 네트워크 장치는 상기 트래픽의 처리를 수행하고, 그 다음으로, 상기 처리된 트래픽을 상기 제 1 네트워크 장치에 다시 송신하는, 네트워킹을 위한 시스템.
  5. 청구항 4에 있어서,
    상기 트래픽과 관련된 어드레싱 정보가 상기 네트워크 어댑터의 어드레스 테이블에 있지 않은 인스턴스들에서, 상기 트래픽은 상기 제 2 네트워크 장치를 포함하는 상기 경로를 통해 통신되는, 네트워킹을 위한 시스템.
  6. 청구항 5에 있어서,
    상기 처리는 상기 제 2 네트워크 장치의 어드레스 테이블에서 상기 트래픽과 관련된 어드레스 정보를 룩업(look up)하는 것을 포함하는, 네트워킹을 위한 시스템.
  7. 청구항 4에 있어서,
    상기 네트워크 어댑터가 상기 트래픽을 처리하기 위해 요구되는 하나 이상의 관리 기능들을 수행할 수 없는 인스턴스들에서, 상기 트래픽은 상기 제 2 네트워크 장치를 포함하는 상기 경로를 통해 통신되는, 네트워킹을 위한 시스템.
  8. 청구항 7에 있어서,
    상기 처리는 상기 관리 기능들을 수행하는 것을 포함하는, 네트워킹을 위한 시스템.
  9. 청구항 4에 있어서,
    상기 네트워크 어댑터가 상기 트래픽을 처리하기 위해 요구되는 하나 이상의 보안 기능들을 수행할 수 없는 인스턴스들에서, 상기 트래픽은 상기 제 2 네트워크 장치를 포함하는 상기 경로를 통해 통신되는, 네트워킹을 위한 시스템.
  10. 청구항 9에 있어서,
    상기 처리는 상기 하나 이상의 보안 기능들을 수행하는 것을 포함하는, 네트워킹을 위한 시스템.
  11. 청구항 1에 있어서,
    제 2 네트워크 장치는 상기 제 1 네트워크 장치 대신에 네트워크 관리 프로토콜들에 참여하는, 네트워킹을 위한 시스템.
  12. 청구항 1에 있어서,
    상기 트래픽의 복사본(copy) 또는 상기 트래픽에 대한 보고는 상기 제 2 네트워크 장치에 통신되고, 상기 제 2 네트워크 장치는 관리 동작들을 위하여 상기 트래픽의 상기 복사본을 사용하는, 네트워킹을 위한 시스템.
  13. 청구항 12에 있어서,
    상기 트래픽의 상기 복사본의 하나 이상의 태그(tag)들, 필드(field)들, 및/또는 헤더(header)들은 상기 제 2 네트워크 장치가 상기 트래픽의 상기 복사본이 복사본임을 결정하도록 하는, 네트워킹을 위한 시스템.
  14. 청구항 12에 있어서,
    상기 하나 이상의 회로들 및/또는 처리기들은 상기 제 2 네트워크 장치가 상기 트래픽의 상기 복사본이 복사본임을 결정하도록 하는 통지를 생성하도록 동작가능하고, 상기 통지는 상기 트래픽의 상기 복사본과 관련하여 대역외(out-of-band) 통신되는, 네트워킹을 위한 시스템.
  15. 청구항 1에 있어서,
    상기 하나 이상의 회로들 및/또는 처리기들은 어플리케이션 프로그래밍 인터페이스(application programming interface)가 하이퍼바이저(hypervisor) 및/또는 상기 제 2 네트워크 장치에 의해 이용가능하게 하고, 상기 어플리케이션 프로그래밍 인터페이스는 상기 네트워크 어댑터를 구성하기 위해 사용되는, 네트워킹을 위한 시스템.
  16. 청구항 1에 있어서,
    상기 트래픽의 특성들은 상기 트래픽의 출발지 어드레스 필드(source address field), 상기 트래픽의 목적지 어드레스 필드(destination address field), 또는 상기 트래픽을 구성하는 하나 이상의 필드들 내의 값들, 상기 트래픽과 관련된 디버그 정보, 상기 트래픽이 미러링되었는지 또는 미러링될 것인지의 여부, 상기 트래픽과 관련된 지연시간 요건들, 상기 트래픽을 위한 대역폭, 관리자 명령 중 적어도 어느 하나를 포함하는, 네트워킹을 위한 시스템.
KR1020117019944A 2009-02-27 2010-02-26 가상 머신 네트워킹을 위한 방법 및 시스템 KR101303718B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15618609P 2009-02-27 2009-02-27
US61/156,186 2009-02-27
PCT/US2010/025535 WO2010099407A1 (en) 2009-02-27 2010-02-26 Method and system for virtual machine networking

Publications (2)

Publication Number Publication Date
KR20110110843A KR20110110843A (ko) 2011-10-07
KR101303718B1 true KR101303718B1 (ko) 2013-09-04

Family

ID=42665929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117019944A KR101303718B1 (ko) 2009-02-27 2010-02-26 가상 머신 네트워킹을 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US8386642B2 (ko)
EP (1) EP2401683A4 (ko)
KR (1) KR101303718B1 (ko)
CN (1) CN102334112B (ko)
HK (1) HK1166526A1 (ko)
WO (1) WO2010099407A1 (ko)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8619771B2 (en) * 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8065395B2 (en) * 2009-03-13 2011-11-22 Novell, Inc. System and method for queuing to a cloud via a queuing proxy
WO2010099407A1 (en) * 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US8208396B2 (en) 2009-05-12 2012-06-26 International Business Machines Corporation Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8959611B1 (en) * 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US8311032B2 (en) * 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US9342335B2 (en) 2009-12-23 2016-05-17 Open Innovation Network, LLC Systems, methods and computer readable media for managing multiple virtual machines
EP3699758B1 (en) * 2010-02-04 2021-08-18 Telefonaktiebolaget LM Ericsson (publ) Network performance monitor for virtual machines
US8234400B2 (en) * 2010-03-16 2012-07-31 Microsoft Corporation Shaping virtual machine communication traffic
US8407366B2 (en) * 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
US20120042054A1 (en) * 2010-08-13 2012-02-16 Dell Products, Lp System and Method for Virtual Switch Architecture to Enable Heterogeneous Network Interface Cards within a Server Domain
US8363656B2 (en) * 2010-09-15 2013-01-29 International Business Machines Corporation Multiple virtual machines sharing a single IP address
US20120106558A1 (en) 2010-10-29 2012-05-03 International Business Machines Corporation Bridge for implementing a converged network protocol to facilitate communication between different communication protocol networks
US9571337B1 (en) * 2010-12-22 2017-02-14 Juniper Networks, Inc. Deriving control plane connectivity during provisioning of a distributed control plane of a switch
WO2012093495A1 (ja) * 2011-01-07 2012-07-12 富士通株式会社 プロファイル処理プログラム、データ中継装置およびプロファイル制御方法
JP5614293B2 (ja) * 2011-01-12 2014-10-29 富士通株式会社 通信制御装置、通信システム、情報処理装置および通信制御方法
WO2012114398A1 (en) * 2011-02-24 2012-08-30 Nec Corporation Network system, controller, and flow control method
CN102684979B (zh) * 2011-03-11 2018-08-14 中兴通讯股份有限公司 一种支持虚拟终端的组播数据转发方法及装置
US8670450B2 (en) 2011-05-13 2014-03-11 International Business Machines Corporation Efficient software-based private VLAN solution for distributed virtual switches
US9276953B2 (en) 2011-05-13 2016-03-01 International Business Machines Corporation Method and apparatus to detect and block unauthorized MAC address by virtual machine aware network switches
US8793685B2 (en) * 2011-05-13 2014-07-29 International Business Machines Corporation Techniques for operating virtual switches in a virtualized computing environment
US20120287785A1 (en) 2011-05-14 2012-11-15 International Business Machines Corporation Data traffic handling in a distributed fabric protocol (dfp) switching network architecture
US8837499B2 (en) 2011-05-14 2014-09-16 International Business Machines Corporation Distributed fabric protocol (DFP) switching network architecture
US20120291034A1 (en) 2011-05-14 2012-11-15 International Business Machines Corporation Techniques for executing threads in a computing environment
CN102185928B (zh) * 2011-06-01 2013-07-17 广州杰赛科技股份有限公司 一种在云计算系统创建虚拟机的方法及云计算系统
US9110703B2 (en) * 2011-06-07 2015-08-18 Hewlett-Packard Development Company, L.P. Virtual machine packet processing
US9497073B2 (en) 2011-06-17 2016-11-15 International Business Machines Corporation Distributed link aggregation group (LAG) for a layer 2 fabric
US8681802B2 (en) * 2011-08-15 2014-03-25 Cisco Technology, Inc. Proxy FHRP for anycast routing service
US20130064066A1 (en) 2011-09-12 2013-03-14 International Business Machines Corporation Updating a switch software image in a distributed fabric protocol (dfp) switching network
US8767529B2 (en) 2011-09-12 2014-07-01 International Business Machines Corporation High availability distributed fabric protocol (DFP) switching network architecture
US9065745B2 (en) 2011-10-06 2015-06-23 International Business Machines Corporation Network traffic distribution
US8750129B2 (en) 2011-10-06 2014-06-10 International Business Machines Corporation Credit-based network congestion management
EP2788871B1 (en) * 2011-12-07 2021-08-04 Citrix Systems, Inc. Controlling a network interface using virtual switch proxying
JP5825360B2 (ja) * 2012-01-27 2015-12-02 富士通株式会社 情報処理装置、情報処理システム、通信データ出力方法、及び通信データ出力プログラム
US20130205038A1 (en) * 2012-02-06 2013-08-08 International Business Machines Corporation Lossless socket-based layer 4 transport (reliability) system for a converged ethernet network
US20130254762A1 (en) * 2012-03-21 2013-09-26 Verizon Patent And Licensing Inc. Providing redundant virtual machines in a cloud computing environment
US9432304B2 (en) 2012-03-26 2016-08-30 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (HCA) model
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9600309B2 (en) 2012-06-08 2017-03-21 Intel Corporation SR-IOV failover and aggregation control system to ensure within-physical-port VEB loopback
US9288162B2 (en) * 2012-08-03 2016-03-15 Cisco Technology, Inc. Adaptive infrastructure for distributed virtual switch
US9210079B2 (en) 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9282118B2 (en) 2012-11-13 2016-03-08 Intel Corporation Policy enforcement in computing environment
JP2014127724A (ja) * 2012-12-25 2014-07-07 Toshiba Lighting & Technology Corp ネットワークシステム及び集線装置
US9935841B2 (en) 2013-01-28 2018-04-03 Intel Corporation Traffic forwarding for processing in network environment
US9384025B2 (en) 2013-01-28 2016-07-05 Intel Corporation Traffic and/or workload processing
WO2014128948A1 (ja) * 2013-02-25 2014-08-28 株式会社日立製作所 仮想サーバおよび非仮想サーバ混在環境におけるテナントネットワーク構成の管理方法
US9448830B2 (en) 2013-03-14 2016-09-20 Google Inc. Service bridges
US10031864B2 (en) * 2013-03-15 2018-07-24 Seagate Technology Llc Integrated circuit
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10230794B2 (en) 2013-03-15 2019-03-12 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9176767B2 (en) * 2013-04-11 2015-11-03 Cisco Technology, Inc. Network interface card device pass-through with multiple nested hypervisors
US20150012973A1 (en) * 2013-07-05 2015-01-08 General Dynamics, C4 Systems, Inc. Methods and apparatus for sharing a service between multiple virtual machines
US9680772B2 (en) 2013-09-09 2017-06-13 Vmware, Inc. System and method for managing configuration of virtual switches in a virtual machine network
US9641389B2 (en) 2013-09-09 2017-05-02 Vmware, Inc. Method and system for recovering from network disconnects by cloning a virtual port
US20150100560A1 (en) 2013-10-04 2015-04-09 Nicira, Inc. Network Controller for Managing Software and Hardware Forwarding Elements
JP2015076643A (ja) * 2013-10-04 2015-04-20 富士通株式会社 制御プログラム、制御装置および制御方法
US20150100670A1 (en) * 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US20150121376A1 (en) * 2013-10-25 2015-04-30 Samsung Electronics Co., Ltd. Managing data transfer
GB2519578B (en) * 2013-10-25 2016-02-17 Samsung Electronics Co Ltd Managing data transfer
US9634948B2 (en) * 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
US9819626B1 (en) * 2014-03-28 2017-11-14 Amazon Technologies, Inc. Placement-dependent communication channels in distributed systems
US9813258B2 (en) 2014-03-31 2017-11-07 Tigera, Inc. Data center networks
US9344364B2 (en) * 2014-03-31 2016-05-17 Metaswitch Networks Ltd. Data center networks
US9559950B2 (en) * 2014-03-31 2017-01-31 Tigera, Inc. Data center networks
JP6248763B2 (ja) * 2014-03-31 2017-12-20 富士通株式会社 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム
JP6277853B2 (ja) * 2014-05-12 2018-02-14 富士通株式会社 制御装置、通信装置、および、通信方法
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
KR102308782B1 (ko) 2014-08-19 2021-10-05 삼성전자주식회사 메모리 컨트롤러, 스토리지 디바이스, 서버 가상화 시스템 및 서버 가상화 시스템에서의 스토리지 디바이스 인식 방법
US9723009B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing for secure network communication in a multi-tenant environment
CN104202195B (zh) * 2014-09-10 2018-05-04 华为技术有限公司 服务器统一通信的方法、基板管理控制器和服务器
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
US10833925B2 (en) 2015-02-24 2020-11-10 Red Hat Israel, Ltd. Attachment of a logical network to a virtual machine
US9942058B2 (en) 2015-04-17 2018-04-10 Nicira, Inc. Managing tunnel endpoints for facilitating creation of logical networks
TWI585593B (zh) * 2015-06-03 2017-06-01 鴻海精密工業股份有限公司 傳輸路徑優化方法及系統
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
US9967182B2 (en) 2015-07-31 2018-05-08 Nicira, Inc. Enabling hardware switches to perform logical routing functionalities
US10313186B2 (en) 2015-08-31 2019-06-04 Nicira, Inc. Scalable controller for hardware VTEPS
US20170093677A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Method and apparatus to securely measure quality of service end to end in a network
US9979593B2 (en) 2015-09-30 2018-05-22 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10230576B2 (en) 2015-09-30 2019-03-12 Nicira, Inc. Managing administrative statuses of hardware VTEPs
US10263828B2 (en) 2015-09-30 2019-04-16 Nicira, Inc. Preventing concurrent distribution of network data to a hardware switch by multiple controllers
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US10250553B2 (en) 2015-11-03 2019-04-02 Nicira, Inc. ARP offloading for managed hardware forwarding elements
KR102174979B1 (ko) * 2015-11-17 2020-11-05 에스케이텔레콤 주식회사 가상 스위치의 패킷 전송 제어 방법
JP2017108231A (ja) * 2015-12-08 2017-06-15 富士通株式会社 通信制御プログラム、通信制御方法及び情報処理装置
US20170171298A1 (en) * 2015-12-09 2017-06-15 Intel Corporation Enhanced virtual switch for network function virtualization
US9996382B2 (en) 2016-04-01 2018-06-12 International Business Machines Corporation Implementing dynamic cost calculation for SRIOV virtual function (VF) in cloud environments
US10200343B2 (en) 2016-06-29 2019-02-05 Nicira, Inc. Implementing logical network security on a hardware switch
GB201616413D0 (en) * 2016-09-28 2016-11-09 International Business Machines Corporation Monitoring network addresses and managing data transfer
CN108092923B (zh) * 2016-11-23 2021-06-18 阿里巴巴集团控股有限公司 基于sr-iov的报文处理方法以及装置
US10558250B2 (en) * 2016-12-23 2020-02-11 Oracle International Corporation System and method for coordinated link up handling following switch reset in a high performance computing network
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
CN108390809B (zh) * 2017-02-03 2020-12-11 北京华耀科技有限公司 一种基于vf混杂模式的桥接方法及其系统
US10827042B2 (en) * 2017-04-10 2020-11-03 Vmware, Inc. Traffic optimization for multi-node applications
US10681000B2 (en) 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10637800B2 (en) 2017-06-30 2020-04-28 Nicira, Inc Replacement of logical network addresses with physical network addresses
CN107621938A (zh) * 2017-09-13 2018-01-23 郑州云海信息技术有限公司 一种phy网络适配器升级方法及系统
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
CN111133417A (zh) * 2017-10-24 2020-05-08 英特尔公司 硬件辅助的虚拟交换机
CN109905283A (zh) * 2017-12-07 2019-06-18 中国移动通信集团公司 一种流量统计方法、装置及计算机可读存储介质
US10541842B2 (en) * 2018-01-10 2020-01-21 Viasat, Inc. Methods and apparatus for enhancing virtual switch capabilities in a direct-access configured network interface card
CN111083064A (zh) * 2018-10-19 2020-04-28 顾播网株式会社 在多层网络环境中处理信息包的方法以及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060045089A1 (en) * 2004-08-27 2006-03-02 International Business Machines Corporation Method and apparatus for providing network virtualization
US20080155537A1 (en) * 2006-07-24 2008-06-26 Peter Dinda Methods and systems for automatic inference and adaptation of virtualized computing environments
US20090037941A1 (en) * 2007-08-02 2009-02-05 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178163B1 (en) * 1998-12-11 2001-01-23 Northern Telecom Limited Optimal packet routing method and system for low earth orbit satellite communication system
US6611872B1 (en) * 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
DE102004003547B3 (de) * 2004-01-23 2005-06-30 Siemens Ag Hinsichtlich der Netzauslastung optimiertes Shortest Path Routing
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7561531B2 (en) * 2005-04-19 2009-07-14 Intel Corporation Apparatus and method having a virtual bridge to route data frames
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US20070233867A1 (en) * 2006-03-28 2007-10-04 Narasimhan Ganapathiraman Method and apparatus for preserving MAC addresses across a reboot
US7643482B2 (en) * 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
US8014413B2 (en) * 2006-08-28 2011-09-06 Intel Corporation Shared input-output device
US7657659B1 (en) * 2006-11-30 2010-02-02 Vmware, Inc. Partial copying of data to transmit buffer for virtual network device
US8381209B2 (en) * 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US7895348B2 (en) * 2007-10-17 2011-02-22 Dispersive Networks Inc. Virtual dispersive routing
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US7984123B2 (en) * 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US7945647B2 (en) * 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US20090300209A1 (en) * 2008-06-03 2009-12-03 Uri Elzur Method and system for path based network congestion management
US7962647B2 (en) * 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8868675B2 (en) * 2008-12-04 2014-10-21 Cisco Technology, Inc. Network optimization using distributed virtual resources
US8054832B1 (en) * 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
WO2010099407A1 (en) * 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US20110125949A1 (en) * 2009-11-22 2011-05-26 Jayaram Mudigonda Routing packet from first virtual machine to second virtual machine of a computing device
US8739175B2 (en) * 2010-12-21 2014-05-27 Adobe Systems Incorporated System and method for rerouting a request between virtualization services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060045089A1 (en) * 2004-08-27 2006-03-02 International Business Machines Corporation Method and apparatus for providing network virtualization
US20080155537A1 (en) * 2006-07-24 2008-06-26 Peter Dinda Methods and systems for automatic inference and adaptation of virtualized computing environments
US20090037941A1 (en) * 2007-08-02 2009-02-05 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device

Also Published As

Publication number Publication date
US20130174157A1 (en) 2013-07-04
KR20110110843A (ko) 2011-10-07
US8386642B2 (en) 2013-02-26
US20100223397A1 (en) 2010-09-02
EP2401683A4 (en) 2015-07-29
CN102334112A (zh) 2012-01-25
CN102334112B (zh) 2014-06-11
HK1166526A1 (en) 2012-11-02
WO2010099407A1 (en) 2010-09-02
US9311120B2 (en) 2016-04-12
EP2401683A1 (en) 2012-01-04

Similar Documents

Publication Publication Date Title
KR101303718B1 (ko) 가상 머신 네트워킹을 위한 방법 및 시스템
Wang et al. A survey on data center networking for cloud computing
US8601053B2 (en) Multi-chassis fabric-backplane enterprise servers
US9882776B2 (en) Methods and apparatus for configuring a virtual network switch
US7685281B1 (en) Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7664110B1 (en) Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers
US7860961B1 (en) Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US7561571B1 (en) Fabric address and sub-address resolution in fabric-backplane enterprise servers
US8301749B1 (en) Unused resource recognition in real time provisioning and management of fabric-backplane enterprise servers
US8645952B2 (en) Method for providing location independent dynamic port mirroring on distributed virtual switches
US7860097B1 (en) Fabric-backplane enterprise servers with VNICs and VLANs
US9118591B2 (en) Distributed switch domain of heterogeneous components
WO2020029829A1 (en) Method and apparatus for virtual network functions and packet forwarding
US7953903B1 (en) Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
CN108475244A (zh) 加速网络分组处理
EP2974230B1 (en) Common agent framework for network devices
CN116018790A (zh) 基于接收方的精密拥塞控制
Kiriha et al. Survey on data center networking technologies
Roulin Advancing the state of network switch asic offloading in the linux kernel
CN111404705A (zh) 一种sdn的优化方法、装置及计算机可读存储介质
Riggio et al. The price of virtualization: Performance isolation in multi-tenants networks
Izard Data movement challenges and solutions with software defined networking
WO2023138762A1 (en) System and method for organizing physical queues into virtual queues

Legal Events

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

Payment date: 20170221

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee