KR102445870B1 - 고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법 - Google Patents

고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR102445870B1
KR102445870B1 KR1020177010777A KR20177010777A KR102445870B1 KR 102445870 B1 KR102445870 B1 KR 102445870B1 KR 1020177010777 A KR1020177010777 A KR 1020177010777A KR 20177010777 A KR20177010777 A KR 20177010777A KR 102445870 B1 KR102445870 B1 KR 102445870B1
Authority
KR
South Korea
Prior art keywords
hypervisor
subnet
virtual machine
host channel
lid
Prior art date
Application number
KR1020177010777A
Other languages
English (en)
Other versions
KR20170125790A (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 KR20170125790A publication Critical patent/KR20170125790A/ko
Application granted granted Critical
Publication of KR102445870B1 publication Critical patent/KR102445870B1/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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Information Transfer Systems (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

투명한 가상화(transparent virtualization) 및 라이브 마이그레이션(live migration)을 지원하는 가상 스위치(vSwitch) 아키텍쳐를 구현하는 시스템들 및 방법들이 제공된다. 하나의 실시예에서, vSwitch는 미리 배정된 로컬 식별자(LID)들을 이용한다. 다른 실시예는 동적 LID 할당을 이용하는 vSwitch를 제공한다. 다른 실시예는 미리 배정된 LID들 및 동적 LID 할당을 이용하는 vSwitch를 제공한다. 더욱이, 본 발명의 실시예들은 스케일가능한 동적 네트워크 재구성 방법들을 제공하고, 이 방법들은 네트워크 환경들에서 VM들의 라이브 마이그레이션들을 가능하게 한다.

Description

고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING AN INFINIBAND SR-IOV vSWITCH ARCHITECTURE FOR A HIGH PERFORMANCE CLOUD COMPUTING ENVIRONMENT}
저작권 공지
본 명세서에서 개시된 부분은 저작권 보호를 받는 내용을 포함한다. 저작권자는 미국특허상표청의 특허 파일 또는 기록에 나타난 대로 본 특허 문서 또는 특허 개시내용을 어느 누군가가 팩시밀리 재생하는 것은 반대하지 않지만, 그 밖의 모든 것은 저작권으로 보호된다.
기술분야
본 발명은 일반적으로 컴퓨터 시스템들에 관한 것이며, 특히, SR-IOV vSwitch 아키텍쳐를 이용하여 컴퓨터 시스템 가상화(computer system virtualization) 및 라이브 마이그레이션(live migration)을 지원하는 것에 관한 것이다.
대규모 클라우드 컴퓨팅 아키텍쳐들이 도입됨에 따라, 통상의 네트워크 및 스토리지와 관련된 성능 및 어드미니스트레이티브(administrative) 병목들이 중대한 문제가 되었다. 클라우드 컴퓨팅 패브릭을 위한 토대로서 인피니밴드(IB) 기술을 사용하는 것에 대한 증가된 관심이 존재해 왔다. 이것이 본 발명의 실시예들이 해결하고자 하는 일반적인 영역이다.
서브넷에서 가상 머신 마이그레이션을 지원하는 시스템들 및 방법들이 본 명세서에 기술된다. 예시적인 방법은 하나 이상의 마이크로 프로세서들을 포함하는 하나 이상의 컴퓨터들에서, 하나 이상의 스위치들 - 상기 하나 이상의 스위치들은 적어도 하나의 리프 스위치를 포함하며, 상기 하나 이상의 스위치들 각각은 복수의 포트를 포함함 - 과, 복수의 호스트 채널 어댑터들 - 상기 복수의 호스트 채널 어댑터들은 상기 하나 이상의 스위치들을 통해 상호 접속됨 - 과, 복수의 하이퍼바이저들 - 상기 복수의 하이퍼바이저들 각각은 상기 복수의 호스트 채널 어댑터들 중 하나와 관련(association)됨 - 와, 그리고 복수의 가상 머신들을 제공할 수 있다. 상기 방법은 또한, 미리 배정된 로컬 식별자 아키텍쳐(prepopulated local identifiers (LIDs) architecture)를 이용하는 가상 스위치 또는 동적 LID 할당 아키텍쳐(dynamic LID assignment architecture)를 이용하는 가상 스위치 중 하나 이상으로 복수의 호스트 채널 어댑터들을 구성(arrange)할 수 있다. 상기 방법은 추가적으로, 상기 복수의 하이퍼바이저들 중 제1 하이퍼바이저 상에서 실행되는 상기 복수의 가상 머신들 중 제1 가상 머신을 상기 복수의 하이퍼바이저들 중 제2 하이퍼바이저로 라이브 마이그레이션할 수 있고, 상기 제1 하이퍼바이저는 상기 복수의 호스트 채널 어댑터들 중 제1 호스트 채널 어댑터와 관련되고, 상기 제2 하이퍼바이저는 상기 복수의 호스트 채널 어댑터들 중 제2 호스트 채널 어댑터와 관련된다.
도 1은 일 실시예에 따른 인피니밴드 환경의 예를 도시한다.
도 2는 일 실시예에 따른 네트워크 환경에서의 트리 토폴로지(tree topology)의 예를 도시한다.
도 3은 일 실시예에 따른 예시적인 공유 포트 아키텍쳐를 도시한다.
도 4는 일 실시예에 따른 예시적인 vSwitch 아키텍쳐를 도시한다.
도 5는 일 실시예에 따른 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 6은 일 실시예에 따른 동적 LID 할당을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 7은 일 실시예에 따른 동적 LID 할당 및 미리 배정된 LID들을 이용하는 vSwitch를 갖는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 8은 일 실시예에 따른 가상 머신 마이그레이션 전에 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 9는 일 실시예에 따른 가상 머신 마이그레이션 후에 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 10은 일 실시예에 따른 잠재적 가상 머신 마이그레이션 경로들을 갖는 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다.
도 11은 일 실시예에 따른 서브넷에서 가상 머신 마이그레이션을 지원하기 위한 방법의 흐름도이다.
본 발명은 첨부 도면들에서 제한이 아닌 예로서 예시되며, 도면들에서 유사한 도면 부호들은 유사한 요소들을 나타낸다. 주목할 점으로서, 본 명세서에서 "일" 또는 "하나" 또는 "일부" 실시예(들)에 대한 참조들은 반드시 동일한 실시예에 관한 것이 아니며, 이러한 참조들은 적어도 하나를 의미한다. 특정한 구현들이 논의되지만, 특정한 구현들은 예시적인 목적으로 제공되는 것임이 이해된다. 관련 기술의 숙련자는 다른 컴포넌트들 및 구성들이 본 발명의 범위 및 사상으로부터 벗어남이 없이 이용될 수 있음을 인지할 것이다.
공통적인 도면 부호들은 도면들 및 상세할 설명 전반에 걸쳐 유사한 요소들을 나타내기 위해 이용될 수 있고, 따라서 도면에서 이용되는 도면 부호들은 요소가 어느 곳에서 기술되는 경우, 그러한 도면에 특정적인 상세한 설명에서 참도될 수 있거나 또는 참조되지 않을 수 있다.
네트워크에서 가상 머신(VM) 마이그레이션을 지원할 수 있는 시스템들 및 방법들이 본 명세서에 기술된다.
본 발명의 다음 설명은 고성능 네트워크에 대한 예로서 인피니밴드™(IB) 네트워크를 사용한다. 다른 타입의 고성능 네트워크들이 제한없이 사용될 수 있음이 당업자에게 분명할 것이다. 다음 설명은 또한, 패브릭 토폴로지에 대한 예로서 팻-트리 토폴로지를 사용한다. 다른 타입의 패브릭 토폴로지들이 제한없이 사용될 수 있음이 당업자에게 분명할 것이다.
본 발명의 일 실시예에 따르면, 가상화는 클라우드 컴퓨팅에서 효율적인 자원 활용 및 탄력적 자원할당에 이득일 수 있다. 라이브 마이그레이션은 어플리케이션 투명 방식(an application transparent manner)으로 물리적 서버들 간에 가상 머신들(VM)을 이동시킴으로써 리소스 사용을 최적화하는 것을 가능하게 한다. 따라서, 가상화는 라이브 마이그레이션을 통해 통합(consolidation), 온-디맨드 리소스 프로비저닝 및 탄력성을 가능하게 한다.
InfiniBand TM
인피니밴드™(IB)는 인피니밴드™ 트레이드 어쏘시에이션(InfiniBand™ Trade Association)에 의해 개발되는 개방 표준 무손실 네트워크 기술이다. 이 기술은 특히 고성능 컴퓨팅(HPC) 어플리케이션들 및 데이터센터들에 맞추어 구성된, 높은 처리량(high throughput) 및 낮은 레이턴시 통신을 제공하는 직렬 단-대-단 풀-듀플렉서 상호연결에 기초한다.
인피니밴드™ 아키텍쳐(IBA)는 2-계층 토폴로지 분리를 지원한다. 하위 계층에서, IB 네트워크들은 서브넷들로서 지칭되고, 서브넷은 스위치들 및 단-대-단 링크들을 사용하여 상호 연결된 호스트들의 세트를 포함할 수 있다. 상위 레벨에서, IB 패브릭은 라우터들을 사용하여 상호 연결될 수 있는 하나 이상의 서브넷들을 구성한다.
서브넷 내에서, 호스트들은 스위치들 및 단-대-단 링크들을 이용하여 연결될 수 있다. 추가적으로, 서브넷에서 지정된 서브넷 디바이스 상에 상주하는 마스터 관리 엔티티, 서브넷 관리자(SM)가 존재할 수 있다. 서브넷 관리자는 IB 서브넷을 구성(configuring)하고, 활성화시키고 그리고 관리하는 역할을 한다. 추가적으로, 서브넷 관리자(SM)는 IB 패브릭에서 라우팅 테이블 계산들을 수행하는 역할을 한다. 여기서, 예를 들어, IB 네트워크의 라우팅은 로컬 서브넷의 모든 근원지(source)와 목적지(destination) 쌍들 사이의 적절한 로드 밸런싱을 목표로 한다.
서브넷 관리 인터페이스를 통해, 서브넷 관리자는 서브넷 관리 에이전트(SMA)들과 서브넷 관리 패킷(SMP)들로 지칭되는 제어 패킷들을 교환한다. 서브넷 관리 에이전트들은 모든 IB 서브넷 디바이스에 상주한다. SMP들을 사용함으로써, 서브넷 관리자가 패브릭을 발견하고 엔드 노드들 및 스위치들을 구성하며 그리고 SMA들로부터 통지들을 수신할 수 있다.
일 실시예에 따르면, IB 네트워크에서의 인터-서브넷 및 인트라-서브넷 라우팅은 스위치들에 저장된 LFT들에 기초할 수 있다. LFT들은 사용중인 라우팅 메커니즘에 따라 SM에 의해 계산된다. 서브넷에서 엔드 노드들 및 스위치들 상의 호스트 채널 어댑터(HCA) 포트들은 로컬 식별자(LID)들을 사용하여 어드레스된다. LFT의 각 엔트리는 목적지 LID(DLID) 및 출력 포트로 구성된다. 테이블의 LID 당 단 하나의 엔트리가 지원된다. 패킷이 스위치에 도달하면, 스위치의 포워딩 테이블에서 DLID를 검색함으로써 출력 포트가 결정된다. 패킷이 소정 근원지-목적지 쌍(LID 쌍) 사이의 네트워크에서 동일한 경로를 취하기 때문에 라우팅은 결정론적(deterministic)이다.
일반적으로, 마스터 서브넷 관리자를 제외한 다른 모든 서브넷 관리자들은 내결함성을 위해 스탠바이 모드로 작동한다. 그러나 마스터 서브넷 관리자가 장애를 가지는(fail) 상황에서, 새로운 마스터 서브넷 관리자가 스탠바이 서브넷 관리자에 의해 협상된다. 마스터 서브넷 관리자는 또한, 토폴로지 변경을 검출하기 위해 서브넷의 주기적 스위프(sweep)들을 수행하고 그에 따라 네트워크를 재구성한다.
더욱이, 서브넷 내의 호스트들 및 스위치들은 로컬 식별자(LID)들을 사용하여 어드레스될 수 있고, 단일 서브넷은 49151개의 유니 캐스트 LID들로 제한될 수 있다. 서브넷 내에서 유효한 로컬 어드레스들인 LID들 외에도 각 IB 디바이스는 64 비트 GUID(Global Unique Identifier)를 가질 수 있다. GUID는 IB 계층 3(L3) 어드레스인 글로벌 식별자(GID)를 형성하기 위해 이용될 수 있다.
SM은 네트워크 초기화 시간에 라우팅 테이블들(즉, 서브넷 내의 노드들의 각 쌍 사이의 연결들/라우트들)을 계산할 수 있다. 더욱이, 라우팅 테이블들은 연결성 및 최적의 성능을 보장하기 위해 토폴로지가 변경될 때마다 업데이트될 수 있다. 정상적인 동작들 동안, SM은 토폴로지 변경들을 체크하기 위해 네트워크의 주기적인 광 스위프들을 수행할 수 있다. 광 스위프 동안 변경이 발견되거나 네트워크 변경을 시그널링하는 메시지(트랩)가 SM에 의해 수신된 경우, SM은 발견된 변경들에 따라 네트워크를 재구성할 수 있다.
예를 들어, SM은 네트워크 토폴로지가 변경될 때, 예컨대 링크가 다운될 때, 디바이스가 추가될 때 또는 링크가 제거될 때, 네트워크를 재구성할 수 있다. 재구성 단계들은 네트워크 초기화 동안 수행되는 단계들을 포함할 수 있다. 더욱이, 재구성들은 네트워크 변경들이 발생한 서브넷들로 제한되는 로컬 범위를 가질 수 있다. 또한, 라우터들을 갖는 대형 패브릭의 세그먼트화는 재구성 범위를 제한할 수 있다.
일 실시예에 따르면, IB 네트워크들은 네트워크 패브릭을 공유하는 시스템들의 논리 그룹들의 격리를 제공하는 보안 메커니즘으로서 파티셔닝을 지원할 수 있다. 패브릭의 노드에 있는 각각의 HCA 포트는 하나 이상의 파티션들의 멤버일 수 있다. 파티션 멤버십들은 SM의 일부가 될 수 있는 중앙집중식 파티션 관리자에 의해 관리된다. SM은 각 포트의 파티션 멤버쉽 정보를 16 비트 파티션 키들(P 키들)의 테이블로서 구성할 수 있다. SM은 또한, LID들와 관련된 P 키 정보를 포함하는 파티션 집행 테이블(partition enforcement table)들을 사용하여 스위치 및 라우터를 구성할 수 있다. 추가적으로, 일반적인 경우, 스위치 포트의 파티션 멤버십은 (링크를 향하여) 출구 방향으로 포트를 통해 라우팅된 LID들과 간접적으로 관련된 모든 멤버쉽의 유니언을 나타낼 수 있다.
실시예에 따르면, 노드들 간의 통신을 위해 관리 큐 쌍들(QP0 및 QP1)을 제외한 큐 쌍들(QPs) 및 단-대-단 컨텍스트들(EECs)이 특정한 파티션에 할당될 수 있다. 그 다음, P 키 정보는 전송된 모든 IB 수송 패킷에 추가될 수 있다. 패킷이 HCA 포트 또는 스위치에 도착하면, SM에 의해 구성된 테이블에 대해 P 키 값이 검증될 수 있다. 유효하지 않은 P 키 값이 발견되면, 패킷은 즉시 폐기된다. 이러한 방식으로 통신은 파티션을 공유하는 포트들 사이에서만 허용된다.
일 실시예에 따른, 예시적인 인피니밴드 패브릭이 도 1에 도시되며, 이는 인피니밴드 환경(100)의 예를 도시한다. 도 1에 도시된 예에서, 노드들 A 내지 E(101 내지 105)은 각각의 호스트 채널 어댑터들(111 내지 115)을 통해 통신하기 위해 인피니밴드 패브릭(120)을 사용한다. 일 실시예에 따르면, 다양한 노드들, 예컨대 노드들 A 내지 E(101 내지 105)는 다양한 물리적 디바이스들에 의해 표시될 수 있다. 일 실시예에 따르면, 다양한 노드들, 예컨대 노드들 A 내지 E(101 내지 105)은 가상 머신들과 같은 다양한 가상 디바이스들에 의해 표시될 수 있다.
인피니밴드에서의 가상 머신들
지난 10년 동안, 하드웨어 가상화 지원을 통해 CPU 오버 헤드가 실질적으로 제거되었고, 메모리 관리 유닛을 가상화함으로써 메모리 오버 헤드가 현저하게 감소되었고, 스토리지 오버 헤드가 고속 SAN 스토리지들 또는 분산 네트워크 파일 시스템들의 사용에 의해 감소되었으며, 단일 루트 입/출력 가상화(SR-IOV)와 같은 디바이스 통과 기법들(device passthrough techniques)의 사용에 의해 네트워크 I/O 오버헤드가 감소됨에 따라, 가상화된 고성능 컴퓨팅(HPC) 환경들의 전망이 현저하게 향상되었다. 이제, 클라우드들이 고성능 상호연결 솔루션들을 사용하여 가상 HPC(vHPC) 클러스터들을 수용하고 필요한 성능을 전달하는 것이 가능하다.
그러나 인피니밴드(IB)와 같은 무손실 네트워크들과 결합될 때, 가상 머신들(VMs)의 라이브 마이그레이션과 같은 특정한 클라우드 기능은 이러한 솔루션들에 사용되는 복잡한 어드레싱 및 라우팅 스킴들로 인해 여전히 문제로 남아 있다. IB는 높은 대역폭 및 낮은 레이턴시를 제공하는 상호 연결 네트워크 기술이며, 따라서 HPC 및 다른 통신 집약적 작업로드들에 매우 적합하다.
IB 디바이스들을 VM들에 연결하기 위한 통상의 접근법은 직접적인 할당과 함께 SR-IOV를 활용하는 것이다. 그러나, SR-IOV를 사용하여 IB 호스트 채널 어댑터(HCA)를 할당받은 VM의 라이브 마이그레이션을 구현하는 것은 첼린지(challenge)인 것으로 입증되었다. 각각의 IB 연결 노드는 LID, GUID 및 GID의 세 개의 서로 다른 어드레스들을 가진다. 라이브 마이그레이션이 발생하면, 이러한 어드레스들 중 하나 이상이 변경된다. 마이그레이션중인 VM(VM-in-migration)과 통신하는 다른 노드들은 연결성을 손실할 수 있다. 이러한 일이 일어날 때, 손실된 연결은 서브넷 어드미니스트레이션(SA: Subnet Administration) 경로 레코드 쿼리들을 IB 서브넷 관리자(SM: Subnet Manager)로 전송함으로써 재연결할 가상 머신의 새로운 어드레스의 위치를 찾음으로써 재개(renew)되도록 시도될 수 있다.
IB는 세 가지 서로 다른 타입의 어드레스들을 사용한다. 제1 타입의 어드레스는 16 비트 로컬 식별자(LID)이다. 적어도 하나의 고유한 LID는 SM에 의해 각 HCA 포트와 각 스위치에 할당된다. LID들은 서브넷 내에서 트래픽을 라우팅하는 데 사용된다. LID는 16 비트 길이이므로 65536 개의 고유한 어드레스 조합들이 만들어질 수 있으며, 그 중 49151(0x0001-0xBFFF)개 만이 유니 캐스트 어드레스들로서 사용될 수 있다. 따라서, 사용 가능한 유니 캐스트 어드레스들의 수는 IB 서브넷의 최대 크기를 정의한다. 제2 타입의 어드레스는 제조자에 의해 각 디바이스(예컨대, HCA들 및 스위치들) 및 각 HCA 포트에 할당된 64 비트 GUID(Global Unique Identifier)이다. SM은 추가적인 서브넷 고유 GUID를 HCA 포트에 할당할 수 있으며, 이는 SR-IOV가 사용될 때 유용하다. 제3 타입의 어드레스는 128 비트 글로벌 식별자(GID)이다. GID는 유효한 IPv6 유니 캐스트 어드레스이며, 적어도 하나는 각각의 HCA 포트에 할당된다. GID는 패브릭 어드미니스트레이터에 의해 할당된 글로벌하게 고유한 64 비트 접두(prefix)와 각각의 HCA 포트의 GUID 어드레스를 결합함으로써 형성된다.
팻-트리(FTree) 토폴로지들 및 라우팅
일 실시예에 따르면, IB 기반의 HPC 시스템들 중 일부는 팻-트리가 제공하는 유용한 속성들의 장점을 취하기 위해 팻-트리 토폴로지를 이용한다. 이러한 속성들은 각 근원지-목적지 쌍 사이의 복수의 경로들의 가용성으로 인해 완전한 이분-대역폭(full bisection-bandwidth) 및 내결함성을 포함한다. 팻-트리들 뒤의 초기 아이디어는 트리가 토폴로지의 루트(root)들을 향해 이동함에 따라 더 많은 이용가능한 대역폭으로 노드들 간에 더 많은(fatter) 링크들을 사용하는 것이 었다. 더 많은 링크들은 상위 레벨 스위치들의 정체(congestion)를 회피하는 것을 도울 수 있으며, 이분 대역폭이 유지된다.
도 2는 일 실시예에 따른, 네트워크 환경에서의 트리 토폴로지의 예를 도시한다. 도 2에 도시된 바와 같이, 하나 이상의 엔드 노드들(201 내지 204)은 네트워크 패브릭(200)에 연결될 수 있다. 네트워크 패브릭(200)은 복수의 리프 스위치들(211 내지 214)을 및 복수의 스핀 스위치들 또는 루트 스위치들(231 내지 234)을 포함하는 팻-트리 토폴로지에 기초할 수 있다. 추가적으로, 네트워크 페브릭(200)은 스위치들(221 내지 224)과 같은 하나 이상의 중간 스위치들을 포함할 수 있다.
또한, 도 2에 도시된 바와 같이, 엔드 노드들(201 내지 204) 각각은 다중-홈 노드, 즉 복수의 포트들을 통해 네트워크 페브릭(200)의 둘 이상의 부분들에 접속되는 단일 노드 일 수 있다. 예를 들어, 노드(201)는 포트들 H1 및 H2를 포함할 수 있고, 노드(202)는 포트들 H3 및 H4를 포함할 수 있고, 노드(203)는 포트들 H5 및 H6을 포함할 수 있고 노드(204)는 포트들 H7 및 H8을 포함할 수 있다.
추가적으로, 각각의 스위치는 복수의 스위치 포트들을 가질 수 있다. 예를 들어, 루트 스위치(231)는 스위치 포트들 1 내지 2를 가질 수 있고, 루트 스위치(232)는 스위치 포트들 3 내지 4를 가질 수 있고, 루트 스위치(233)는 스위치 포트들 5 내지 6을 가질 수 있고, 루트 스위치(234) 스위치 포트들 7 내지 8을 가질 수 있다.
일 실시예에 따르면, 팻-트리 라우팅 메커니즘은 IB 기반의 팻-트리 토폴로지들에 대한 가장 대중적인 라우팅 알고리즘 중 하나이다. 팻-트리 라우팅 메커니즘은 또한, OFED(Open Fabric Enterprise Distribution - IB 기반의 어플리케이션들을 빌드하고 전개하기 위한 표준 소프트웨어 스택) 서브넷 관리자인 OpenSM에서 구현된다.
팻-트리 라우팅 메커니즘은 네트워크 패브릭의 링크들에 걸쳐 최단 경로 라우트들을 균등하게 스프레드시키는 LFT들을 생성하는 것을 목표로 한다. 이 메커니즘은 인덱스 순서로 패브릭을 횡단(traverse)하고, 엔드 노드들의 타겟 LID들 및 따라서, 대응하는 라우트들을 각각의 스위치 포트에 할당한다. 동일한 리프 스위치에 연결된 엔드 노드들의 경우, 인덱스 순서는 엔드 노드와 연결된 스위치 포트(즉, 포트 번호 스퀀스)에 좌우될 수 있다. 각각의 포트에 대해, 메커니즘은 포트 사용 카운터를 유지할 수 있으며, 새로운 라우트가 추가될 때마다 가장 적게 사용된 포트를 선택하기 위해 이 포트 사용 카운터를 사용할 수 있다.
상기 언급한 바와 같이, 파티션된 서브넷에서, 공통 파티션의 멤버들이 아닌 노드들은 통신할 수 없다. 실질적으로, 이는 팻-트리 라우팅 알고리즘에 의해 할당된 일부 라우트들이 사용자 트래픽에 사용되지 않음을 의미한다. 문제는 팻-트리 라우팅 메커니즘이 다른 기능 경로들에 대해 행하는 것과 동일한 방식으로 이 라우트들에 대해 LFT를 생성할 때 발생한다. 노드들이 인덱스 순서로 라우팅되므로 이 거동은 결과적으로, 링크들 상의 밸런싱이 저하되게 할 수 있다. 라우팅이 파티션들을 인지하지 못한 채로(oblivious) 행해지기 때문에, 일반적으로 팻-트리 라우팅 서브넷들(fat-tree routed subnets)은 파티션들 간의 저조한 격리를 제공한다.
입력/ 출력력 (I/O) 가상화
일 실시예에 따르면, I/O 가상화(IOV)는 가상 머신들(VM)이 기저 물리적 리소스들에 액세스할 수 있게 함으로써 I/O의 가용성을 제공할 수 있다. 스토리지 트래픽 및 인터-서버 통신의 결합은 단일 서버의 I/O 리소스들을 압도할 수 있는 증가된 로드를 부과하는 바, 이는 프로세서들이 데이터를 기다림에 따라 백로그 및 유휴 프로세서들로 이어지게 한다. I/O 요청들의 수의 증가에 따라, IOV는 가용성을 제공할 수 있고, 현대 CPU 가상화에서 보여지는 성능의 레벨에 매치되도록 (가상화된)I/O 리소스들의 성능, 스케일러빌리티(scalability) 및 플렉서빌리티(flexibility)를 향상시킬 수 있다.
일 실시예에 따르면, IOV는 I/O 리소스들의 공유를 허용하고 VM들로부터 리소스들에 대한 보호된 액세스를 제공할 수 있기 때문에 바람직하다. IOV는 VM에 노출된 논리 디바이스를 물리적 구현으로부터 분리시킨다. 현재, 에뮬레이션, 반 가상화(paravirtualization), 직접 할당(DA) 및 단일 루트-I/O 가상화(SR-IOV)와 같은 다양한 타입의 IOV 기술이 존재할 수 있다.
일 실시예에 따르면, IOV 기술의 하나의 타입은 소프트웨어 에뮬레이션이다. 소프트웨어 에뮬레이션은 분리된 프론트-엔드/백-엔드 소프트웨어 아키텍쳐를 가능하게 수 있다. 프론트-엔드는 I/O 액세스를 제공하기 위해 하이퍼바이저에 의해 구현되는 백-엔드와 통신하는 VM에 배치된 디바이스 드라이버일 수 있다. 물리적 디바이스 공유 비(ratio)는 높으며 VM의 라이브 마이그레이션이 단지 수 밀리초의 네트워크 다운 타임으로 가능하다. 그러나, 소프트웨어 에뮬레이션은 추가적인 비바람직한 컴퓨팅적 오버 헤드를 도입시킨다.
일 실시예에 따르면, 다른 타입의 IOV 기술은 직접적인 디바이스 할당이다. 직접적인 디바이스 할당은 디바이스가 VM들 간에 공유됨이 없이 I/O 디바이스들을 VM들에 결합시키는 것을 수반한다. 직접 할당 또는 디바이스 통과는 최소의 오버 헤드로 거의 네이티브 성능을 제공한다. 물리적 디바이스는 하이퍼바이저를 바이패스하여 VM에 직접적으로 어태치된다. 그러나, 이러한 직접적인 디바이스 할당의 단점은 제한된 스케일러빌리티인 바, 그 이유는 가상 머신들 간에 공유가 없기 때문이다 - 하나의 물리적 네트워크 카드는 하나의 VM과 결합된다.
일 실시예에 따르면, 단일 루트 IOV(SR-IOV)는 물리적 디바이스가 하드웨어 가상화를 통해 동일한 디바이스의 복수의 독립적 경량 인스턴스들로서 나타날 수 있게 한다. 이러한 인스턴스들은 VM들에 통과 디바이스들로서 할당되고, 가상 기능(VF)들로서 액세스될 수 있다. 하이퍼바이저는 (장치 당)고유한 완벽한 기능을 갖춘(fully featured) 물리적 기능(PF)을 통해 디바이스에 액세스한다. SR-IOV는 순수한 직접적인 할당의 스케일러빌리티 문제를 완화한다. 그러나, SR-IOV에 의해 생기는 문제는 VM 마이그레이션을 손상시킬(impair) 수 있다는 것이다. 이러한 IOV 기술들 중에서, SR-IOV는 네이티브 성능에 가깝게 유지하면서 복수의 VM들로부터 단일의 물리적 디바이스에 직접 액세스할 수 있게 하는 수단을 이용하여 PCI 익스프레스(PCIe) 사양을 확장할 수 있다. 따라서 SR-IOV는 양호한 성능 및 스케일러빌리티를 제공할 수 있다.
SR-IOV는 PCIe 디바이스가 하나의 가상 디바이스를 각 게스트에 할당함으로써 복수의 게스트들 간에 공유될 수 있는 복수의 가상 디바이스들을 노출할 수 있게 한다. 각각의 SR-IOV 디바이스는 적어도 하나의 물리적 기능(PF) 및 하나 이상의 관련된 가상 기능(VF)을 가진다. PF는 가상 머신 모니터(VMM) 또는 하이퍼바이저에 의해 제어되는 정상적인 PCIe 기능인 반면, VF는 경량 PCI 기능이다. 각각의 VF는 자체 기본 어드레스(BAR)를 가지며, I/O 메모리 관리 유닛(IOMMU)이 다른 VF들로/로부터 트래픽 스트림들을 구별할 수 있게 하는 고유한 요청자 ID를 할당받는다. IOMMU는 또한, PF와 VF 사이에 메모리 및 인터럽트 변환(translation)들을 적용한다.
그러나 불행하게도, 직접적인 디바이스 할당 기법들은 데이터 센터 최적화를 위해 가상 머신들의 투명한 라이브 마이그레이션이 요구되는 상황들에서 클라우드 제공자들에게 장벽(barrier)을 놓는다. 라이브 마이그레이션의 본질(essence)은 VM의 메모리 컨텐츠가 원격 하이퍼바이저에 카피된다는 것이다. 그 다음, VM이 근원 하이퍼바이저에서 일시 중지(pause)되고, VM의 동작은 목적지에서 재개된다. 소프트웨어 에뮬레이션 방법들을 사용할 때, 네트워크 인터페이스들은 가상이므로, 이들의 내부 상태들은 메모리에 저장되고 마찬가지로 카피된다. 따라서, 다운타임은 수 밀리 초로 줄어들 수 있다.
그러나 SR-IOV와 같은 직접적인 디바이스 할당 기법들이 사용될 때 마이그레이션은 더욱 어려워진다. 이러한 상황들에서 네트워크 인터페이스의 완전한 내부 상태는 하드웨어에 결박되어(tied) 있으므로 복사될 수 없다. VM에 할당된 SR-IOV VF들은 대신 디태치되고, 라이브 마이그레이션이 실행될 것이며, 새로운 VF가 목적지에 어태치될 것이다. 인피니밴드 및 SR-IOV의 경우, 이 프로세스는 몇 초 정도의 다운타임을 도입할 수 있다. 더욱이, SR-IOV 공유 포트 모델에서, 마이그레이션 후 VM의 어드레스가 변경되어, SM에 추가 오버 헤드를 야기시키고 기저 네트워크 패브릭의 성능에 악영향을 끼친다.
인피니밴드 SR- IOV 아키텍쳐 - 공유 포트
서로 다른 여러 가지 타입의 SR-IOV 모델들, 예컨대 공유 포트 모델 및 가상 스위치 모델이 존재할 수 있다.
도 3은 일 실시예에 따른 예시적인 공유 포트 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 호스트(300)(예를 들어, 호스트 채널 어댑터)는 다수의 가상 머신들에 다양한 가상 기능들(330, 340, 350)을 할당할 수 있는 하이퍼바이저(310)와 인터랙션할 수 있다. 마찬가지로, 물리적 기능은 하이퍼바이저(310)에 의해 처리될 수 있다.
일 실시예에 따르면, 도 3에 도시된 것과 같은 공유 포트 아키텍쳐를 사용할 때, 호스트 예를 들어, HCA는 단일 공유 LID 및 물리적 기능(320)과 가상 기능들(330, 350, 350) 사이에 공유 큐 쌍(QP) 공간을 갖는 네트워크에서 단일 포트로서 나타난다. 그러나, 각각의 기능(즉, 물리적 기능 및 가상 기능들)은 자신의 GID를 가질 수 있다.
도 3에 도시된 바와 같이, 일 실시예에 따르면, 서로 다른 GID들이 가상 기능들 및 물리적 기능에 할당될 수 있고, 특정 큐 쌍들, QP0 및 QP1(즉, 인피니밴드 관리 패킷들에 사용되는 특수용 큐 쌍들)은 물리적 기능에 의해 소유된다. 이 QP들은 마찬가지로 VF들에 노출되지만, VF들은 QP0을 사용하도록 허용되지 않으며(QP0으로 향해 VF들로부터 비롯되는 모든 SMP들은 폐기된다), QP1은 PF에 의해 소유되는 실제 QP1의 프록시로서 역할을 할 수 있다.
일 실시예에 따르면, 공유 포트 아키텍쳐는(가상 기능들에 할당됨으로써 네트워크에 어태치되는) VM들의 수에 의해 제한되지 않는 매우 스케일러블한 데이터 센터들을 가능하게 하는 바, 그 이유는 LID 공간이 오직 네트워크 내의 물리적 머신들 및 스위치들에 의해 소비되기 때문이다.
그러나, 공유된 포트 아키텍쳐의 단점은 투명한 라이브 마이그레이션을 제공할 수 없어, 플렉서블한 VM 배치에 대한 잠재성을 저해한다는 것이다. 각각의 LID가 특정 하이퍼바이저와 관련되고, 하이퍼바이저에 상주하는 모든 VM 간에 공유되기 때문에, 마이그레이션하는 VM(즉, 목적지 하이퍼바이저에 마이그레이션하는 가상 머신)은 자신의 LID를 목적지 하이퍼바이저의 LID로 변경해야 한다. 더욱이, 제한된 QP0 액세스의 결과로서, 서브넷 관리자는 VM 내부에서 실행될 수 없다.
인피니밴드 SR- IOV 아키텍쳐 모델 - 가상 스위치( vSwitch )
서로 다른 다양한 타입의 SR-IOV 모델들, 예컨대 공유 포트 모델 및 가상 스위치 모델이 존재할 수 있다.
도 4는 일 실시예에 따른 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 호스트(400)(예를 들어, 호스트 채널 어댑터)는 다수의 가상 머신들에 다양한 가상 기능들(430, 440, 450)을 할당할 수 있는 하이퍼바이저(410)와 인터랙션할 수 있다. 마찬가지로, 물리적 기능은 하이퍼바이저(410)에 의해 처리될 수 있다. 가상 스위치(415)는 또한, 하이퍼바이저(401)에 의해 처리될 수 있다.
일 실시예에 따르면, vSwitch 아키텍쳐에서, 각각의 가상 기능(430, 440, 450)은 완전한 가상 호스트 채널 어댑터(vHCA)이며, 이는 VF에 할당된 VM이 IB 어드레스들(GID, GUID, LID)의 완전한 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM에 대해, HCA(400)는 가상 스위치(415)를 통해 스위치처럼 보이는 바, 추가적인 노드가 이에 연결된다. 하이퍼바이저(410)는 PF(420)를 사용할 수 있고, (가상 기능들에 어태치된) VM들은 VF들을 사용한다.
일 실시예에 따르면, vSwitch 아키텍쳐는 투명한 가상화를 제공한다. 그러나, 각각의 가상 기능이 고유한 LID를 할당받기 때문에, 이용가능한 LID들의 수가 빠르게 소비된다. 마찬가지로, 많은 LID 어드레스들(즉, 각 물리적 기능 및 각 가상 기능에 대해 하나씩)이 사용중인 경우, 더 많은 통신 경로들이 SM에 의해 컴퓨팅되어야하고, 더 많은 SMP들(Subnet Management Packets)이 자신의 LTF들을 업데이트하기 위해 스위치들에 전송되어야 한다. 예를 들어, 통신 경로들의 컴퓨테이션은 대형 네트워크들에서 수 분을 소요할 수 있다. LID 공간은 49151 개의 유니 캐스트 LID들에 제한되고, (VF를 통한)각각의 VM, 물리적 노드 및 스위치가 각각 하나의 LID를 점유하기 때문에, 네트워크의 물리적 노드들 및 스위치들의 수는 활성 VM들의 수를 제한하며 그 반대의 경우도 마찬가지이다.
인피니밴드 SR- IOV 아키텍쳐 모델 - 미리 배정된 LID를 이용하는 vSwitch
일 실시예에 따르면, 본 발명은 미리 배정된 LID들을 이용하는 vSwitch 아키텍쳐를 제공하기 위한 시스템 및 방법을 제공한다.
도 5는 일 실시예에 따라, 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 다수의 스위치(501 내지 504)는 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(500)(예를 들어, IB 서브넷) 내에서 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)와 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 및 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 또한, 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하여 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가상 기능 2(515)에 그리고 가상 머신 3(552)을 가상 기능 3(516)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 1(534)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터에 액세스할 수 있다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(500) 내에서 트래픽을 지향(direct)시키기 위해 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)인 바, 이는 VF에 할당된 VM이 IB 어드레스들(예컨대, GID, GUID, LID)의 완전한 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM(도시되지 않음)에 대하여, HCA들(510, 520 및 530)은 가상 스위치들을 통해 스위치들과 같이 보여지는 바, 접속된 추가 노드들이 이들에 연결된다.
일 실시예에 따르면, 본 발명은 미리 배정된 LID들을 이용하는 vSwitch 아키텍쳐를 제공하기 위한 시스템 및 방법을 제공한다. 도 5를 참조하면, LID들은 다양한 물리적 기능들(513, 523, 533)뿐만 아니라 가상 기능들(514 내지 516, 524 내지 526, 534 내지 536)(심지어 이 가상 기능들이 현재 활성 가상 머신과 관련되지 않아도)에 배정된다. 예를 들어, 물리적 기능(513)은 LID 1로 미리 배정되고, 가상 기능 1(534)은 LID 10으로 미리 배정된다. LID는 네트워크가 부팅될 시 SR-IOV vSwitch 인에이블(vSwitch-enabled) 서브넷에서 미리 배정된다. 심지어 모든 VF들이 네트워크에서 VM들에 의해 점유되지 않는 경우에도, 배정된 VF들은 그림 5에 도시된 바와 같이 LID를 할당받는다.
일 실시예에 따르면, 물리적 호스트 채널 어댑터들이 하나보다 많은 포트를 가질 수 있듯이(두 개의 포트가 리던던시를 위해 일반적임), 가상 HCA들은 또한, 2 개의 포트들로 표시될 수 있고, 하나, 둘 이상의 가상 스위치를 통해 외부 IB 서브넷에 연결될 수 있다.
일 실시예에 따르면, 미리 배정된 LID들을 이용하는 vSwitch 아키텍쳐에서, 각각의 하이퍼바이저는 각각의 추가적인 VF에 대한 PF 및 하나 이상의 LID를 통해 자신을 위해 하나의 LID를 소비할 수 있다. IB 서브넷의 모든 하이퍼바이저들에서 이용가능한 모든 VF들의 합은 서브넷에서 실행되도록 허용된 최대 VM 양을 제공한다. 예를 들어, 서브넷에서 하이퍼바이저 당 16 개의 가상 기능들을 가진 IB 서브넷에서, 각각의 하이퍼바이저는 서브넷에서 17 개의 LID들(16 개의 가상 기능들 각각에 대한 하나의 LID에 더하여 물리적 기능에 대한 하나의 LID)를 소비한다. 이러한 IB 서브넷에서, 단일 서브넷에 대한 이론적인 하이퍼바이저 제한은 이용가능한 유니 캐스트 LID들의 수에 의해 지배(rule)되고, 2891(49151 개의 사용 가능한 LID를 하이퍼바이저 당 17 개의 LID로 나눈 것)이며, VM들의 총 수(즉, 제한)는 46256(2891 개의 하이퍼바이저 × 하이퍼바이저 당 16 개의 VF)이다. (실제로, 이 숫자는 IB 서브넷의 각 스위치, 라우터 또는 전용 SM 노드가 마찬가지로 LID를 사용하기 때문에 실제로는 더 작다.) 주목할 점으로서, vSwitch는 LID를 PF와 공유할 수 있으므로 추가적인 LID를 점유할 필요가 없다.
일 실시예에 따르면, 미리 배정된 LID들을 이용하는 vSwitch 아키텍쳐에서, 통신 경로들은 네트워크가 부팅될 때 모든 LID들에 대해 한번 컴퓨팅된다. 새로운 VM이 시작될 필요가 있을 때, 시스템은 서브넷에 새로운 LID를 추가할 필요가 없는 바, 그렇지 않은 경우 가장 시간 소모적인 부분인 경로 재계산을 포함하여 네트워크의 완전한 재구성을 야기할 수 있는 작업을 할 필요가 없다. 대신, VM에게 이용가능한 포트가 하이퍼바이저 중 하나에 위치되고(즉, 이용가능한 가상 기능), 가상 머신이 이용가능한 가상 기능에 어태치된다.
일 실시예에 따르면, 미리 배정된 LID를 이용하는 vSwitch 아키텍쳐는 또한, 동일한 하이퍼바이저에 의해 호스팅되는 서로 다른 VM들에 도달하기 위해 서로 다른 경로들을 계산 및 사용하기 위한 능력을 가능하게 한다. 본질적으로, 이는 서브넷들 및 네트워크들이 LID들을 순차적으로 요구하는 LMC의 제한에 한정됨이 없이, 하나의 물리적 머신에 대한 대안적인 경로들을 제공하기 위해 LID-마스크-제어-유사(LMC-like) 특징을 사용하도록 한다. 비순차적 LID들을 자유롭게 사용는 것은 특히, VM이 마이그레이션하여 관련 LID를 목적지로 운반해야 할 때 유용하다.
일 실시예에 따르면, 미리 배정된 LID들을 이용하는 vSwitch 아키텍쳐의 상기 이득들과 함께, 특정 고려 사항들이 고려될 수 있다. 예를 들어, 네트워크가 부팅될 때 LID들이 SR-IOV vSwitch-인에이블 서브넷에 미리 배정되기 때문에, (예컨대, 부트-업 시) 초기 경로 컴퓨테이션은 LID들이 미리 배정되지 않은 경우보다 오래 걸릴 수 있다.
인피니밴드 SR- IOV 아키텍쳐 모델들 - 동적 LID 할당을 이용하는 vSwitch
일 실시예에 따르면, 본 발명은 동적 LID 할당을 이용하는 vSwitch 아키텍쳐를 제공하기 위한 시스템 및 방법을 제공한다.
도 6은 일 실시예에 따른, 동적 LID 할당을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 다수의 스위치들(501 내지 504)은 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(600)(예를 들어, IB 서브넷) 내의 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)과 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하여 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가능 기능 2(515)에 할당하고, 가상 머신 3(552)을 가상 기능 3(516)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 1(534)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터들에 액세스할 수 있다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(600) 내에서 트래픽을 지향시키기 위해 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저들(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)인 바, 이는 VF에 할당된 VM가 IB 어드레스들(예컨대, GID, GUID, LID)의 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크의 및 SM(도시되지 않음)에 대하여, HCA들(510, 520 및 530)은 가상 스위치들을 통해 스위치처럼 보이는 바, 추가적인 노드들이 이들에 연결된다.
일 실시예에 따르면, 본 발명은 동적 LID 할당을 이용하는 vswitch 아키텍쳐를 제공하는 시스템 및 방법을 제공한다. 도 6을 참조하면, LID들은 다양한 물리적 기능들(513, 523, 533)에 자동으로 할당되는 바, 물리적 기능(513)은 LID 1을 수신하고, 물리적 기능(523)은 LID 2를 수신하고, 물리적 기능(533)은 LID 3을 수신한다. 활성 가상 머신과 관련된 이 가상 기능들은 또한, 동적으로 할당된 LID를 수신할 수 있다. 예를 들어, 가상 머신 1(550)은 활성이며 가상 기능 1(514)과 관련되기 때문에, 가상 기능(514)은 LID 5를 할당받을 수 있다. 마찬가지로, 가상 기능 2(515), 가상 기능 3(516), 및 가상 기능 1(534)은 각각 활성 가상 기능과 관련된다. 이 때문에, 이러한 가상 기능들은 LID들을 할당받는 바, LID 7은 가상 기능 2(515)에 할당되고, LID 11은 가상 기능 3(516)에 할당되고, 가상 기능 9는 가상 기능 1(535)에 할당된다. 미리 배정된 LID들을 이용하는 vSwitch와는 달리, 활성 가상 머신을 현재 할당받지 않은 이 가상 기능들은 LID 할당을 수신하지 못한다.
일 실시예에 따르면, 동적 LID 할당으로, 초기 경로 컴퓨테이션이 실질적으로 감소될 수 있다. 네트워크가 처음으로 부팅되고 VM들이 존재하지 않을 때, 비교적 적은 수의 LID들이 초기 경로 계산 및 LFT 분배(distribution)에 사용될 수 있다.
일 실시예에 따르면, 물리적 호스트 채널 어댑터들이 하나보다 많은 포트들을 가질 수 있듯이(2 개의 포트들이 리던던시를 위해 일반적임), 가상 HCA들은 또한, 2 개의 포트들을 갖는 것으로 표시될 수 있고 하나, 둘 이상의 가상 스위치를 통해 외부 IB 서브넷에 연결될 수 있다.
일 실시예에 따르면, 동적 LID 할당을 이용하는 vSwitch를 활용하는 시스템에서 새로운 VM이 생성될 때, 어떤 하이퍼바이저가 새로 추가된 VM을 부팅할 것인지를 결정하기 위해 자유 VM 슬롯이 발견되고, 고유 미사용 유니 캐스트 LID가 마찬가지로 발견된다. 그러나 새로 추가된 LID를 처리하기 위해 네트워크 및 스위치들의 LFT들에 알려진 경로가 존재하지 않는다. 새로 추가된 VM을 처리하기 위해 새로운 경로들의 세트를 컴퓨팅하는 것은, 여러 VM들이 매분 마다 부팅될 수 있는 동적 환경에서는 바람직하지 않다. 대규모 IB 서브넷들에서, 새로운 라우트들의 세트를 컴퓨팅하는 것은 수 분을 소요할 수 있고, 이 절차는 새로운 VM이 부팅될 때마다 반복해야 할 수 있다.
장점적으로는, 일 실시예에 따르면, 하이퍼바이저 내의 모든 VF들이 PF와 동일한 업링크를 공유하기 때문에, 새로운 라우트들의 세트를 컴퓨팅할 필요가 없다. 오직, 네트워크의 모든 물리적 스위치들의 LFT들을 통해 반복하고, - VM이 생성되는 - 하이퍼바이저의 PF에 속한 LID 엔트리로부터 새로 추가된 LID로 포워딩 포트를 복사하고, 특정한 스위치의 대응하는 LFT 블록을 업데이트하기 위해 단일 SMP를 전송하기만 하면 된다. 따라서 시스템 및 방법은 새로운 라우트들의 집합을 컴퓨팅할 필요를 회피한다. 동적 LID 할당을 지원하는 vSwitch 시스템 및 방법의 추가 세부사항은 본 명세서에 참고로서 포함된 부록 A에 기술된다.
일 실시예에 따르면, 동적 LID 할당 아키텍쳐를 이용하는 vSwitch에 할당된 LID들은 순차적일 필요는 없다. 미리 배정된 LID들을 이용하는 vSwitch 대(versus) 동적 LID 할당을 이용하는 vSwitch에서 각 하이퍼바이저 상의 VM들 상에 할당된 LID들을 비교할 때, 동적 LID 할당 아키텍쳐에서 할당된 LID들은 비순차적인 반면, 미리 배정된 LID들은 사실상 순차적인 점은 주목할만하다. vSwitch 동적 LID 할당 아키텍쳐에서, 새로운 VM이 생성될 때, 다음 이용가능한 LID가 VM의 수명 동안 사용된다. 반대로, 미리 배정된 LID들을 이용하는 vSwitch에서 각 VM은 대응하는 VF에 이미 할당된 LID를 상속(inherit)하며, 라이브 마이그레이션이 없는 네트워크에서는 소정 VF에 연속적으로 어태치된 VM들은 동일한 LID를 얻는다.
일 실시예에 따르면, 동적 LID 할당 아키텍쳐를 이용하는 vSwitch는 일부 추가적인 네트워크 및 런타임 SM 오버헤드의 비용으로 미리 배정된 LID 아키텍쳐 모델로 vSwitch의 결점들을 해결할 수 있다. VM이 생성될 때마다, 서브넷의 물리적 스위치들의 LFT들은 생성된 VM과 관련된 새로 추가된 LID로 업데이트될 수 있다. 이 동작을 위해 스위치 당 하나의 서브넷 관리 패킷(SMP)이 전송되어야 한다. 각 VM이 호스트 하이퍼바이저와 동일한 경로를 사용하기 때문에, LMC-유사 기능 역시 이용가능하지 않다. 그러나, 모든 하이퍼바이저들에 존재하는 VF들의 총량에는 제한이 없으며, VF들의 수가 유니 캐스트 LID 제한의 수를 초과할 수 있다. 물론, 이 경우, 모든 VF들이 활성 VM들에 동시에 어태치될 수 있는 것은 아니지만, 더 많은 스페어 하이퍼바이저들 및 VF들 가지는 것은 유니 캐스트 LID 제한에 가깝게 동작할 때, 조각난(fragmented) 네트워크의 재해 복구 및 최적화에 플렉서빌리티를 더한다.
인피니밴드 SR- IOV 아키텍쳐 모델들 - 동적 LID 할당 및 미리 배정된 LID들을 이용하는 vSwitch
도 7은 일 실시예에 따른, 동적 LID 할당 및 미리 배정된 LID들을 이용하는 vSwitch를 갖는 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 다수의 스위치들(501 내지 504)은 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(500)(예를 들어, IB 서브넷) 내의 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)과 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 및 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 또한, 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하고 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가상 기능 2(515)에 할당할 수 있다. 하이퍼바이저(521)는 가상 머신 3(552)을 가상 기능 3(526)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 2(535)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터에 액세스할 수 있다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(700) 내에서 트래픽을 지향시키기 위해 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저들(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)인 바, 이는 VF에 할당 된 VM이 IB 어드레스들(예컨대, GID, GUID, LID)의 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM(도시되지 않음)에 대하여, HCA들(510, 520, 및 530)은 가상 스위치들을 통해 스위치와 같이 보여지는 바, 추가적인 노드들이 이들에 연결된다.
일 실시예에 따르면, 본 발명은 동적 LID 할당 및 미리 배정된 LID들을 이용하는 하이브리드 vSwitch 아키텍쳐를 제공하기 위한 시스템 및 방법을 제공한다. 도 7을 참조하면, 하이퍼바이저(511)는 미리 배정된 LID 아키텍쳐를 이용하는 vSwitch로 구성될 수 있고, 하이퍼바이저(521)는 미리 배정된 LID들 및 동적 LID 할당을 이용하는 vSwitch로 구성될 수 있다. 하이퍼바이저(531)는 동적 LID 할당을 사용하는 vSwitch로 구성될 수 있다. 따라서, 물리적 기능(513) 및 가상 기능들(514 내지 516)은 그들의 미리 배정된 LID들을 갖는다(즉, 심지어 활성 가상 머신에 어태치되지 않은 이 가상 기능들도 LID를 할당받는다). 물리적 기능(523) 및 가상 기능 1(524)은 그들의 미리 배정된 LID들을 갖는 반면, 가상 기능 2 및 3(525 및 526)은 그들의 동적으로 할당된 LID들을 가진다(즉, 가상 기능 2(525)는 동적 LID 할당에 이용가능하고, 가상 기능 3(526)은 가상 머신 3(552)이 어태치됨에 따라 동적으로 할당된 11의 LID를 갖는다). 마지막으로, 하이퍼바이저 3(531)와 관련된 기능들(물리적 기능 및 가상 기능들)은 이들의 동적으로 할당된 LID들을 가질 수 있다. 이는 결과적으로, 가상 기능들 1 및 3(534 및 536)은 동적 LID 할당에 이용가능하게 하고, 가상 기능 2(535)는 가상 머신 4(553)가 어태치됨에 따라 동적적으로 할당된 9의 LID를 가지게 한다.
(어떤 소정 하이퍼바이저 내에서 독립적으로 또는 조합하여) 미리 배정된 LID들을 이용하는 vSwitch 및 동적 LID 할당을 이용하는 vSwitch가 활용되는 도 7에 도시된 바와 같은 일 실시예에 따르면, 호스트 채널 어댑터 당 미리 배정된 LID들의 수는 패브릭 어드미니스트레이터에 의해 정의되고, 0 <= 미리 배정된 VF들 <= (호스트 채널 어댑터 당) 총 VF들의 범위에 있을 수 있으며, 동적 LID 할당에 이용가능한 VF들은 (호스트 채널 어댑터 당) VF들의 총 수로부터 미리 배정된 VF들의 수를 감함으로써 알아낼 수 있다.
일 실시예에 따르면, 물리적 호스트 채널 어댑터들이 하나보다 많은 포트를 가질 수 있듯이(두 개의 포트가 리던던시를 위해 일반적임), 가상 HCA들은 또한, 2 개의 포트들로 표시될 수 있고, 하나, 둘 이상의 가상 스위치를 통해 외부 IB 서브넷에 연결될 수 있다.
vSwitch를 사용한 동적 재구성(Dynamic Reconfiguration with vSwitches )
일 실시예에 따르면, 본 발명은 vSwitch를 이용한 동적 네트워크 재구성을 위한 시스템 및 방법을 제공한다. 동적 클라우드 환경에서, 라이브 마이그레이션들이 처리될 수 있고 스케일가능할 수 있다. VM이 마이그레이션되어 목적지에 자신의 어드레스를 전송해야 할 때, 네트워크 재구성이 필요하다. 가상 또는 가칭(alias) GUID들(vGUIDs) 및 그에 따른 GID들의 마이그레이션은 기저 IB 라우팅(예컨대, 선형 포워딩 테이블들 및 라우트들)에 영향을 주지 않는 상위 레벨의 어드레스들이기 때문에 현저한 부담을 주지 않는다. vGUID 마이그레이션의 경우, SMP는 마이그레이션이 완료될 때 VM 상에 할당될 VF로 유입 VM과 관련된 vGUID를 설정하기 위해 목적지 하이퍼바이저에 전송되어야 한다. 그러나, LID의 마이그레이션은 라우트들이 재계산되어야 하고 물리적 스위치들의 LFT들이 재구성되어야 하기 때문에 간단하지 않다. 라우트들의 재계산 및 분배는 대규모 서브넷들에서 분 단위에 놓이는 상당한 시간량을 필요로 하여, 스케일러빌리티 첼린지를 제기한다.
일 실시예에 따르면, vSwitch는 vSwitch를 통해 액세스되는 모든 VF들이 PF와 동일한 업링크를 공유한다는 속성을 갖는다. 토폴로지 불가지론 동적 재구성 메커니즘은 동적 마이그레이션 환경들 상에서 재구성을 실행가능하게 하기 위해 이 속성을 활용한다. LID 재구성 시간은 경로 컴퓨테이션을 제거하고 경로 분배를 감소시킴으로써 최소화될 수 있다. 이 방법은 위에서 설명한 두 개의 vSwitch 아키텍쳐들(LID들의 사전 배정(prepopulation) 및 동적 LID 할당)에 대하여 약간 다르지만 기본은 동일하다.
일 실시예에 따르면, 동적 재구성 방법은 2 개의 일반적인 단계들, (a) 참여 하이퍼바이저에서 LID들을 업데이트하는 것 - 하나의 서브넷 관리 패킷(SMP)이 라이브 마이그레이션에 참여하는 하이퍼바이저들 각각에 전송되어, 이들이 적절한 LID를 대응하는 VF로 설정/설정 해제하는 것과 그리고 (b) 물리적 스위치들 상의 LFT(Linear Forwarding Table)들을 업데이트하는 것 - 하나 또는 최대 2개의 SMP들이 하나 이상의 스위치들 상에서 전송되어, 마이그레이션된 가상 머신의 새로운 위치를 반영하도록 이들이 자신의 대응하는 LFT 엔트리들을 업데이트하게 하는 것을 포함한다. 이는 하기 가상 머신을 마이그레이션하고 네트워크를 재구성하기 위한 절차에서 더욱 상세하게 보여진다.
1: procedure UPDATELFTBLOCK(LFTBlock, Switch)
2: // If the LFT block needs to be updated send SMP on the switch to
3: // update the LFTBlock. When Swapping LIDs, 1 or 2 of all
4: // the LFT Blocks may need to be updated per switch. When copying
5: // LIDs, only 1 of all the LFT Blocks may need to be updated
6: // per switch.
7: if LFTBlock in Switch needs to be updated then
8: Send SMP on Switch to update LFTBlock
9: end if
10: end procedure
11: procedure UpdateLFTBlocksOnAllSwitches
12: /* iterate through all LFTBlocks on all Switches
13: * and update the LFTBlocks if needed. */
14: for LFTBlock in All_LFTBlocks do
15: for sw in All_switches do
16: UpdateLFTBlock(LFTBlock, sw)
17: end for
18: end for
19: end procedure
20: procedure MigrateVM(VM, DestHypervisor)
21: Detach IB VF from VM
22: Start live migration of VM to the DestHypervisor
23: /* Reconfiguration of the network is following */
24: // The migration procedure of the LID address slightly
25: // differs in vSwitch with prepopulated LIDs and vSwitch with dynamic LID assignment.
26: /* Step described in Updating the LIDs in the participating hypervisors */
27: Migrate the IB addresses of VM
28: /* Step described in Updating the Linear Forwarding Tables (LFTs) on the physical switches */
29: UpdateLFTBlocksOnAllSwitches
30: end procedure
31: procedure Main
32: MigrateVM(VM_to_be_Migrated, toHypervisor)
33: end procedure
미리 배정된 LID들을 사용하는 vSwitch의 재구성
도 8은 일 실시예에 따라 가상 머신 마이그레이션 전에 미리 배정된 LID들을 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 다수의 스위치들(501 내지 504)은 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(800)(예를 들어, IB 서브넷) 내의 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)과 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 및 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하여 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가상 기능 2(515)에 그리고 가상 머신 3(552)을 가상 기능 3(516)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 1(534)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터에 액세스할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저들(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)이며, 이는 VF에 할당된 VM이 IB 어드레스들(GID, GUID, LID)의 완전한 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM(도시되지 않음)에 대해, HCA들(510, 520 및 530)은 가상 스위치들을 통해 스위치처럼 보이는 바, 추가적인 노드들이 이들에 연결된다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(800) 내에서 트래픽을 지향하기 위해 스위치(501)와 관련된 선형 포워딩 테이블(810)과 같은 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다. 도면에 도시된 바와 같이, 선형 포워딩 테이블(810)은 스위치(501)의 포트 2를 통해 가상 머신 2(551)(즉, LID 3)에 어드레스된 트래픽을 포워딩한다. 마찬가지로, VM들이 실행되지 않는 경우에도 모든 LID들에 대한 경로들이 존재하기 때문에, 선형 포워딩 테이블은 스위치(501)의 포트 4를 통해 LID 12로의 포워딩 경로를 정의할 수 있다.
도 9는 일 실시예에 따른, 가상 머신 마이그레이션 후에 미리 배정된 LID를 이용하는 예시적인 vSwitch 아키텍쳐를 도시한다. 도면에 도시된 바와 같이, 다수의 스위치(501-504)는 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(900)(예를 들어, IB 서브넷) 내의 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)과 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 및 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하여 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가상 기능 2(515)에 그리고 가상 머신 3(552)을 가상 기능 3(516)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 1(534)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터에 액세스할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저들(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)이며, 이는 VF에 할당된 VM이 IB 어드레스들(GID, GUID, LID)의 완전한 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM(도시되지 않음)에 대해, HCA들(510, 520 및 530)은 가상 스위치들을 통해 스위치처럼 보이는 바, 추가적인 노드들이 이들에 연결된다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(900) 내에서 트래픽을 지향하기 위해 스위치(501)와 관련된 선형 포워딩 테이블(910)과 같은 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다.
일 실시예에 따르면, 가상 기계 2(551)가 하이퍼바이저(511)로부터 하이퍼바이저(531)로 마이그레이션되어야 하고 하이퍼바이저(531) 상의 가상 기능 3(536)이 이용가능하면, 가상 머신 2는 가상 기능 3(536)에 어태치될 수 있다. 이러한 상황에서, LID들은 스왑될 수 있다(즉, 마이그레이션하는 VM에 할당된 LID의 엔트리는 라이브 마이그레이션이 완료된 후 목적지 하이퍼바이저에서 사용될 VF의 LID와 스왑될 수 있다). 스위치(501) 상의 선형 포워딩 테이블(910)은 도면에 도시된 바와 같이 업데이트될 수 있는 바, 즉 LID 3에 대한 트래픽은 이제 포트 4(이전 포트 2)를 통해 포워딩되고, LID 12에 대한 경로는 이제 포트 2(이전 포트 4)를 통해 포워딩된다.
일 실시예에 따르면, 미리 배정된 LID들을 갖는 vSwitch 아키텍쳐의 경우, 심지어 VM들이 실행되지 않는 경우에도 모든 LID들에 대한 경로가 존재한다. LID를 마이그레이션하고 초기 라우팅의 밸런싱을 유지하기 위해, 모든 스위치들 상에서 두 개의 LFT 엔트리들이 스왑될 수 있다 - 마이그레이션하는 VM에 할당된 LID의 엔트리는 라이브 마이그레이션이 완료된 후 목적지 하이퍼바이저에서 이용될 VF(즉, 마이그레이션하는 가상 머신이 목적지 하이퍼바이저에서 어태치할 가상 기능)의 LID와 스왑될 수 있다. 도 7 및 8을 다시 참조하면, LID 2를 갖는 VM1(550)이 하이퍼바이저(551)로부터 하이퍼바이저(531)로 마이그레이션되어야 하고, 하이퍼바이저(531)상의 LID 12를 갖는 VF3(536)이 이용가능하고 마이그레이션하는 가상 머신 1(551)에 어태치되는 것으로 결정되면, 스위치(501)의 LFT들이 업데이트될 수 있다. 마이그레이션 전, LID 2는 포트 2를 통해 포워딩되었고, LID 12는 포트 4를 통해 포워딩되었다. 마이그레이션 후, LID 2는 포트 4를 통해 포워딩되고 LID 12는 포트 2를 통해 포워딩된다. 이 경우, 단 하나의 SMP가 이러한 업데이트를 위해 전송되어야 하는 바, 그 이유는 LFT들이 블록 당 64 개의 LID들의 블록들에서 업데이트되고 LID 2 및 12가 LID 0 내지 63을 포함하는 동일한 블록의 일부이기 때문이다. 하이퍼바이저(531) 상의 VF3의 LID가 대신 64이거나 또는 그보다 큰 경우, 두 개의 LFT 블록들 즉, LID 2(VM LID)를 포함하는 블록 및 63보다 큰 스왑될 LID를 포함하는 블록이 업데이트되어야 함에 따라, 두 개의 SMP들이 전송되어야 할 수 있다.
동적 LID 할당을 이용하는 vSwitch의 재구성
일 실시예에 따르면, 동적 LID 할당을 이용하는 vSwitch 아키텍쳐에 대해, VF의 경로는 VM이 현재 호스팅되는 하이퍼바이저의 대응하는 PF의 경로와 동일한 경로를 따른다. VM이 이동할 때, 시스템은 목적지 하이퍼바이저의 PF에 할당된 LID를 발견하고 모든 스위치들의 모든 LFT들을 통해 반복하고 그리고 VM LID에 대한 경로를 목적지 하이퍼바이저의 경로로 업데이트해야 한다. 미리 배정된 LID들을 이용한 재구성에 사용되는 LID 스와핑 기법과는 대조적으로, 프로세스에 수반되는 단 하나의 LID가 존재하기 때문에, 업데이트되어야 하는 스위치들에 단 하나의 SMP가 항상 전송되어야 한다.
통상의 재구성 비용
일 실시예에 따르면, 완전한 네트워크 재구성 방법을 위해 필요한 시간(RCt)은 경로 컴퓨테이션에 필요한 시간(PCt)과 모든 스위치들에 대한 LFT들 분배에 필요한 시간(LFTDt)의 합인 바, 이는 하기 방정식 1에 나타낸 바와 같다.
Figure 112017038906312-pct00001
(1)
일 실시예에 따르면, 경로의 컴퓨팅적 복잡도는 서브넷의 사이즈에 따라 다항적으로(polynomially) 증가하며, PCt는 대규모 서브넷들에서 수 분의 정도이다.
경로들이 컴퓨팅된 후, IB 서브넷과 같은 네트워크 내의 스위치들의 LFT들이 업데이트될 수 있다. LFT 분배 시간 LFTDt는 서브넷의 사이즈 및 스위치들의 양에 따라 선형적으로 증가한다. 상기 언급한 바와 같이, LFT들은 64개의 LID들의 블록들 상에서 업데이트되어서, 몇 개의 스위치들 및 최대 64개의 소비되는 LID들을 갖는 작은 서브넷에서, 단 하나의 SMP가 경로 분배 동안 각각의 스위치에 전송되어야 한다. 다른 상황들에서, 예컨대, 소비되는 49151개의 LID들을 갖는 완전 배정 IB 서브넷(fully populated IB subnet)과 같은 경우, 스위치 당 768 개의 SMP들이 통상의 모델에서 경로 분배 동안 전송되어야 한다.
SMP들은 지향 라우팅(directed routing) 또는 목적지 기반의 라우팅을 사용할 수 있다. 지향 라우팅을 사용할 때, 각각의 중간 스위치는 패킷을 다음 홉으로 포워딩하기 전에 현재 홉 포인터 및 역방향 경로를 갖는 패킷의 헤더를 처리하고 업데이트해야 한다. 목적지 기반의 라우팅에서, 각각의 패킷은 즉시 포워딩된다. 자연적으로, 지향 라우팅은 포워딩된 패킷들에 레이턴시를 추가할 수 있다. 그럼에도 불구하고, 지향 라우팅은 모든 통상의 SMP들에 대해 OpenSM에 의해 이용된다. 이는 LFT들이 스위치들에 아직 분배되지 않은 초기 토폴로지 발견 프로세스에 대해 또는 재구성이 수행되고 스위치들을 향한 라우트들이 변경될 때 필요하다.
n을 네트워크에서 스위치들 수로 놓고, m을 소모되는 LID들의 수에 의해 결정되는, 각각의 스위치 상에서 업데이트될 모든 LFT 블록들의 수로 놓고, k를 각각의 SMP가 각각의 스위치에 도달하기 전에 네트워크를 횡단하는 데 필요한 평균 시간으로 놓고, r을 지향 라우팅으로 인한 각각의 SMP에 대해 추가되는 평균 시간으로 놓자. 파이프라이닝이 없음을 가정하여, LFT 분배 시간 LFTDt는 하기 방정식 2에서 더 분해될 수 있다.
Figure 112017038906312-pct00002
(2)
방정식 1과 2를 결합함으로써 방정식 3은 전체 네트워크 재구성에 필요한 시간에 대한 결과이다.
Figure 112017038906312-pct00003
(3)
대규모 서브넷에서, 스위치 당 더 많은 LID들 및 결과적으로 더 많은 LFT 블록들 m이 이용될수록 그리고 더 많은 스위치들 n이 네트워크에 존재할수록 LFTDt가 길어진다 하더라도, 통상적으로, 경로 컴퓨테이션에 필요한 시간 PCt는 LFT 분배에 필요한 시간인 LFTDt보다 훨씬 길다. 방정식 2와 3의 n ㆍ m 부분은 재구성을 위해 전송되어야 하는 SMP들의 총 수를 정의한다.
vSwitch 아키텍쳐를 이용한 라이브 마이그레이션에 대한 재구성 비용
통상의 재구성 기법들을 사용하는 것은 VM 마이그레이션이 사용불가능해지게 할 수 있다. 대규모 서브넷들에서, 방정식 3의 PCt는 매우 커지고 RCt에 지배적인 영향을 끼친다(dominate). 라이브 마이그레이션이 전체 통상의 재구성을 트리거하면, 이는 일반적으로 완료하는 데 수 분을 소요한다.
일 실시예에 따르면, 미리 배정된 LID들을 이용하는 vSwitch 또는 동적 LID 할당을 이용하는 vSwitch를 활용함으로써, 재구성 시간의 PCt 부분은 본질적으로 제거될 수 있는 바, 그 이유는 경로들이 각각의 스위치의 LFT 내의 LID 엔트리들을 스왑 또는 카피하기 위해 이미 계산되기 때문이다. 더욱이, 스위치 당 m 개의 SMP들을 전송할 필요가 없는 바, 그 이유는 VM이 마이그레이션될 때, LFT 블록들의 총 수에 관계없이 제안된 vSwitch 스킴들 중 어느 것이 사용되는지에 따라 하나 또는 최대 두 개의 LID만이 영향을 받기 때문이다. 그 결과, m'∈{1, 2}개의 SMP가 각각의 마이그레이션에 대해 스위치들에 전송되어야 한다(LID가 미리 배정될 때 두 개의 LID 엔트리들이 동일한 LFT 블록에 위치되지 않는 경우, m' = 2, 그렇지 않으면, m' = 1). 마찬가지로, 0 < n' <n 개의 스위치들이 업데이트되어야 하는 특정 경우들이 존재한다.
일 실시예에 따르면, 일 실시예에 따른 잠재적 가상 머신 마이그레이션 경로들을 갖는 미리 배정된 LID를 이용하는 예시적인 vSwitch 아키텍쳐를 도시하는 도 10을 이제 참조한다. 도면에 도시된 바와 같이, 다수의 스위치들(501 내지 504)은 인피니밴드 패브릭과 같은 패브릭의 멤버들 사이의 네트워크 스위치 환경(1000)(예를 들어, IB 서브넷) 내의 통신을 제공할 수 있다. 패브릭은 호스트 채널 어댑터들(510, 520, 530)과 같은 다수의 하드웨어 디바이스들을 포함할 수 있다. 각각의 호스트 채널 어댑터들(510, 520, 530)은 또한, 각각 하이퍼바이저(511, 521, 및 531)와 인터랙션할 수 있다. 각각의 하이퍼바이저는 또한, 인터랙션하는 호스트 채널 어댑터와 연계하여, 다수의 가상 기능들(514, 515, 516, 524, 525, 526, 534, 535, 536)을 셋업하여 다수의 가상 머신들에 할당할 수 있다. 예를 들어, 가상 머신 1(550)은 하이퍼바이저(511)에 의해 가상 기능 1(514)에 할당될 수 있다. 하이퍼바이저(511)는 추가적으로, 가상 머신 2(551)를 가상 기능 2(515)에 그리고 가상 머신 3(552)을 가상 기능 3(516)에 할당할 수 있다. 하이퍼바이저(531)는 또한, 가상 머신 4(553)를 가상 기능 1(534)에 할당할 수 있다. 하이퍼바이저들은 각각의 호스트 채널 어댑터들 상의 완전한 기능을 갖춘 물리적 기능(513, 523, 533)을 통해 호스트 채널 어댑터에 액세스할 수 있다.
일 실시예에 따르면, 가상 스위치들(512, 522 및 532)은 각각의 하이퍼바이저들(511, 521, 531)에 의해 처리될 수 있다. 이러한 vSwitch 아키텍쳐에서, 각각의 가상 기능은 완전한 가상 호스트 채널 어댑터(vHCA)이며, 이는 VF에 할당된 VM이 IB 어드레스들(GID, GUID, LID)의 완전한 세트 및 하드웨어의 전용 QP 공간을 할당받음을 의미한다. 나머지 네트워크 및 SM(도시되지 않음)에 대해, HCA들(510, 520 및 530)은 가상 스위치들을 통해 스위치처럼 보이는 바, 추가적인 노드들이 이들에 연결된다.
일 실시예에 따르면, 스위치들(501 내지 504) 각각은 네트워크 스위치 환경(1000) 내에서 트래픽을 지향하기 위해 스위치(501)와 관련된 선형 포워딩 테이블(1010)과 같은 선형 포워딩 테이블을 설정하는 데 사용되는 다수의 포트들(미도시)을 포함할 수 있다.
일 실시예에 따르면, 도 10은 VM2(551)가 하이퍼바이저(511)로부터 (세 개의 이용가능한 가상 기능들이 존재하는) 하이퍼바이저(521)로 잠재적으로 마이그레이션할 수 있는 네트워크 스위치 환경(1000)에서의 상황을 도시한다. LID 3이 하이퍼바이저(521)에서 이용가능한 LID들 중 어느 것(6, 7 또는 8)으로 스와핑된 경우, 스위치(501)은 전혀 업데이트될 필요가 없을 수 있는 바, 그 이유는 초기 라우팅이 LID 3을 이미 라우트하고, LID 6, 7 및 8는 스위치(501) 상에서 동일한 포트(포트 2)를 공유하기 때문이다. 특히 이 예에서는 n '= 1인 바, 그 이유는 스위치(503)(즉, 리프 스위치)만이 업데이트되어야 할 수 있기 때문이다.
일 실시예에 따르면, 최종적으로, 개시된 재구성 메커니즘의 비용 vSwitch RCt는 방정식 4에서 발견되며, 대규모 서브넷들에서, vSwitch RCt는 RCt보다 훨씬 적다.
Figure 112017038906312-pct00004
(4)
일 실시예에 따르면, SMP 패킷들에 대한 목적지 기반의 라우팅이 사용될 수 있다. VM들이 마이그레이션될 때, 스위치들에 속한 LID들에 대한 라우트들은 영향을 받지 않을 것이다. 따라서, 목적지 기반의 라우팅은 스위치들에 대한 SMP들의 적절한 전달을 보장할 수 있고, r이 방정식 4로부터 제거되어, 방정식 5를 제공한다.
Figure 112017038906312-pct00005
(5)
일 실시예에 따르면, 파이프라이닝이 vSwitch 재구성 시간을 더욱 감소시키기 위해 사용될 수 있다.
도 11은 일 실시예에 따른, 네트워크에서 가상 머신 마이그레이션을 지원하기 위한 방법의 흐름도이다. 단계(1110)에서, 상기 방법은 하나 이상의 마이크로 프로세서들을 포함하는 하나 이상의 컴퓨터들에서, 하나 이상의 스위치들 - 상기 하나 이상의 스위치들은 적어도 리프 스위치를 포함하고, 상기 하나 이상의 스위치들 각각은 복수의 포트들을 포함함 - 과, 복수의 호스트 채널 어댑터들 - 상기 호스트 채널 어댑터들 각각은 적어도 하나의 가상 기능을 포함하고, 상기 복수의 호스트 채널 어댑터들은 상기 하나 이상의 스위치들을 통해 상호연결됨 - 과, 복수의 하이퍼바이저들 - 상기 복수의 하이퍼바이저들 각각은 복수의 호스트 채널 어댑터들 중 적어도 하나와 관련됨 - 와, 그리고 복수의 가상 머신들을 제공하고, 상기 복수의 가상 머신들 각각은 적어도 하나의 가상 기능과 관련된다.
단계(1120)에서, 상기 방법은 미리 배정된 로컬 식별자(LID)들 아키텍쳐를 이용하는 가상 스위치 또는 동적 LID 할당 아키텍쳐를 이용하는 가상 스위치 중 하나 이상으로 복수의 호스트 채널 어댑터들을 구성할 수 있다.
단계(1130)에서, 상기 방법은 상기 복수의 하이퍼바이저들 중 제1 하이퍼바이저 상에서 실행되는 상기 복수의 가상 머신들 중 제1 가상 머신을 상기 복수의 하이퍼바이저들 중 제2 하이퍼바이저로 라이브 마이그레이션할 수 있고, 상기 제1 하이퍼바이저는 상기 복수의 호스트 채널 어댑터들 중 제1 호스트 채널 어댑터와 관련되고, 상기 제2 하이퍼바이저는 상기 복수의 호스트 채널 어댑터들 중 제2 호스트 채널 어댑터와 관련된다.
본 발명은 본 발명의 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 저장 매체들을 포함하여 하나 이상의 종래의 범용 또는 특수용 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 이용하여 편리하게 구현될 수 있다. 적절한 소프트웨어 코딩이 소프트웨어 분야의 숙련자들에게 분명할 바와 같이 본 발명의 교시들에 기초하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은 컴퓨터 프로그램 물을 포함하는 바, 상기 컴퓨터 프로그램 물은 명령어들이 저장된/본 발명의 프로세스들 중 어느 것을 수행하도록 컴퓨터를 프로그래밍하기 위해 이용될 수 있는 저장 매체 또는 컴퓨터 판독가능 매체(매체들)이다. 저장 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들,(분자 메모리 IC들을 포함하는)나노시스템들 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 상기 설명은 예시 및 설명을 목적으로 제공되었다. 본 설명은 완전한 것(exhaustive)으로 의도되거나 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (32)

  1. 서브넷에서 가상 머신 라이브 마이그레이션(virtual machine live migration)을 지원하는 시스템으로서,
    하나 이상의 프로세서들;
    하나 이상의 스위치들 - 상기 하나 이상의 스위치들은 적어도 하나의 리프 스위치(leaf switch)를 포함하고, 상기 하나 이상의 스위치들 각각은 복수의 포트들과 선형 포워딩 테이블(LFT)을 포함하고, 각 스위치의 선형 포워딩 테이블은 특정 목적지 로컬 식별자를 갖는 수신(incoming) 서브넷 트래픽이 포워딩되는 특정 포트를 지정함-;
    제1 호스트 채널 어댑터 및 제2 호스트 채널 어댑터 - 상기 제1 및 제2 호스트 채널 어댑터 각각은 적어도 하나의 가상 기능(virtual function)을 포함하고, 상기 제1 및 제2 호스트 채널 어댑터는 상기 하나 이상의 스위치들을 통해 상호연결됨 -;
    제1 하이퍼바이저 및 제2 하이퍼바이저 - 상기 제1 하이퍼바이저는 상기 제1 호스트 채널 어댑터와 관련되고, 상기 제2 하이퍼바이저는 상기 제2 호스트 채널 어댑터와 관련됨-; 그리고
    상기 제1 하이퍼바이저에서 실행되는 가상 머신을 포함하며, 상기 가상 머신은 로컬 식별자(LID) 및 상기 제1 호스트 채널 어댑터의 가상 기능과 관련되고,
    상기 제1 하이퍼바이저에서 실행되는 가상 머신은 상기 제2 호스트 채널 어댑터와 관련된 상기 제2 하이퍼바이저로의 라이브 마이그레이션을 수행하도록 동작하고, 그리고
    상기 라이브 마이그레이션은 상기 하나 이상의 스위치들 중 적어도 하나의 스위치에 서브넷 관리 패킷(SMP)을 전송하도록 상기 하나 이상의 프로세서들을 구성하고,
    상기 서브넷 관리 패킷은 상기 가상 머신과 관련된 상기 LID를 포함하는 상기 선형 포워딩 테이블의 목적지 로컬 식별자(LID)의 블록을 업데이트하도록 상기 적어도 하나의 스위치에 지시하고, 상기 블록을 업데이트하는 것은 상기 가상 머신과 관련된 상기 LID를 상기 목적지 LID로 지정하는 수신 서브넷 트래픽이 포워딩되는 포트를 변경하는 것을 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  2. 제1항에 있어서, 상기 제1 및 제2 호스트 채널 어댑터 각각은 물리적 기능을 포함하고, 상기 물리적 기능은 LID와 관련되는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  3. 제2항에 있어서,
    상기 제1 하이퍼바이저 및 제2 하이퍼바이저는, 상기 제1 및 제2 호스트 채널 어댑터의 각각의 물리적 기능을 통해, 상기 제1 및 제2 호스트 채널 어댑터에 각각 액세스하도록 구성된 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  4. 제1항에 있어서,
    상기 제1 및 제2 호스트 채널 어댑터는 미리 배정된 LID 아키텍쳐를 이용하는 각각의 가상 스위치로 배열되고,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션을 수행하는 동작을 한 후, 상기 시스템은 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하도록 구성되며, 그리고
    최대 두 개의 서브넷 관리 패킷들이 상기 적어도 하나의 스위치에 전송되어, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  5. 제4항에 있어서,
    최대 하나의 서브넷 관리 패킷이 상기 적어도 하나의 스위치에 전송되어, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  6. 삭제
  7. 제4항에 있어서,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션을 수행하는 동작을 한 후, 상기 시스템은 상기 하나 이상의 스위치들의 서브넷에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하도록 구성된 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  8. 제1항에 있어서,
    상기 제1 호스트 채널 어댑터 및 상기 제2 호스트 채널 어댑터 각각은 동적 LID 할당 아키텍쳐를 이용하는 가상 스위치로 배열(arranged)되고, 그리고
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션을 수행하는 동작을 한 후, 상기 시스템은 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하도록 구성되는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  9. 삭제
  10. 제1항에 있어서,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션을 수행하는 동작을 한 후, 상기 시스템은 상기 하나 이상의 스위치들 각각과 관련된 상기 선형 포워딩 테이블을 업데이트하도록 상기 하나 이상의 스위치들의 서브넷에게 지시하도록 구성된 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  11. 제1항에 있어서,
    상기 서브넷은 인피니밴드 서브넷(InfiniBand subnet)을 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 시스템.
  12. 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법으로서,
    하나 이상의 마이크로 프로세서들을 포함하는 하나 이상의 컴퓨터들에서:
    하나 이상의 스위치들 - 상기 하나 이상의 스위치들은 적어도 리프 스위치를 포함하고, 상기 하나 이상의 스위치들 각각은 복수의 포트들과 선형 포워딩 테이블(LFT)을 포함하고, 각 스위치의 선형 포워딩 테이블은 특정 목적지 로컬 식별자를 갖는 수신(incoming) 서브넷 트래픽이 포워딩되는 특정 포트를 지정함-;
    제1 호스트 채널 어댑터 및 제2 호스트 채널 어댑터 - 상기 제1 및 제2 호스트 채널 어댑터 각각은 적어도 하나의 가상 기능(virtual function)을 포함하고, 상기 제1 및 제2 호스트 채널 어댑터는 상기 하나 이상의 스위치들을 통해 상호연결됨 -;
    제1 하이퍼바이저 및 제2 하이퍼바이저 - 상기 제1 하이퍼바이저는 상기 제1 호스트 채널 어댑터와 관련되고, 상기 제2 하이퍼바이저는 상기 제2 호스트 채널 어댑터와 관련됨-; 그리고
    상기 제1 하이퍼바이저에서 실행되는 가상 머신을 제공하는 단계 -상기 가상 머신은 로컬 식별자(LID) 및 상기 제1 호스트 채널 어댑터의 가상 기능과 관련됨-;

    상기 제1 하이퍼바이저에서 실행되는 가상 머신을 상기 제2 호스트 채널 어댑터와 관련된 상기 제2 하이퍼바이저로 라이브 마이그레이션하는 단계를 포함하며;
    상기 라이브 마이그레이션은 상기 하나 이상의 프로세서들로 하여금 상기 하나 이상의 스위치들 중 적어도 하나의 스위치에 서브넷 관리 패킷(SMP)을 전송하도록 하는 추가 단계를 수행하고,
    상기 서브넷 관리 패킷은 상기 가상 머신과 관련된 상기 LID를 포함하는 상기 선형 포워딩 테이블의 목적지 로컬 식별자(LID)의 블록을 업데이트하도록 상기 적어도 하나의 스위치에 지시하고, 상기 블록을 업데이트하는 것은 상기 가상 머신과 관련된 상기 LID를 상기 목적지 LID로 지정하는 수신 서브넷 트래픽이 포워딩되는 포트를 변경하는 것을 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  13. 제12항에 있어서,
    상기 제1 및 제2 호스트 채널 어댑터 각각은 물리적 기능을 포함하고, 상기 물리적 기능은 LID와 관련되는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  14. 제13항에 있어서,
    상기 제1 하이퍼바이저 및 제2 하이퍼바이저는, 상기 제1 및 제2 호스트 채널 어댑터의 각각의 물리적 기능을 통해, 상기 제1 및 제2 호스트 채널 어댑터에 각각 액세스하도록 구성된 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  15. 제12항에 있어서,
    상기 제1 및 제2 호스트 채널 어댑터 각각은 미리 배정된 LID 아키텍쳐를 이용하는 각각의 가상 스위치로 배열되고, 상기 방법은,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하는 단계; 그리고
    최대 두 개의 서브넷 관리 패킷들을 상기 적어도 하나의 스위치에 전송하여, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 단계를 더 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  16. 제15항에 있어서,
    최대 하나의 서브넷 관리 패킷이 상기 적어도 하나의 스위치에 전송되어, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  17. 삭제
  18. 제15항에 있어서, 상기 방법은,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 하나 이상의 스위치들의 서브넷에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 단계를 더 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  19. 제12항에 있어서,
    상기 제1 호스트 채널 어댑터 및 상기 제2 호스트 채널 어댑터 각각은 동적 LID 할당 아키텍쳐를 이용하는 가상 스위치로 배열(arranged)되고, 상기 방법은,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하는 단계를 더 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  20. 삭제
  21. 제12항에 있어서,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 방법은 상기 하나 이상의 스위치들 각각과 관련된 상기 선형 포워딩 테이블을 업데이트하도록 상기 하나 이상의 스위치들의 서브넷에게 지시하는 단계를 더 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  22. 제12항에 있어서,
    상기 서브넷은 인피니밴드 서브넷을 포함하는 것을 특징으로 하는 서브넷에서 가상 머신 라이브 마이그레이션을 지원하는 방법.
  23. 서브넷에서 가상 머신 라이브 마이그레이션을 지원하기 위한 명령어들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 하나 이상의 컴퓨터들에 의해 판독 및 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 단계들을 수행하도록 하고, 상기 단계들은:
    하나 이상의 마이크로 프로세서들을 포함하는 하나 이상의 컴퓨터들에서,
    하나 이상의 스위치들 - 상기 하나 이상의 스위치들은 적어도 리프 스위치를 포함하고, 상기 하나 이상의 스위치들 각각은 복수의 포트들과 선형 포워딩 테이블(LFT)을 포함하고, 각 스위치의 선형 포워딩 테이블은 특정 목적지 로컬 식별자를 갖는 수신(incoming) 서브넷 트래픽이 포워딩되는 특정 포트를 지정함-;
    제1 호스트 채널 어댑터 및 제2 호스트 채널 어댑터 - 상기 제1 및 제2 호스트 채널 어댑터 각각은 적어도 하나의 가상 기능(virtual function)을 포함하고, 상기 제1 및 제2 호스트 채널 어댑터는 상기 하나 이상의 스위치들을 통해 상호연결됨 -;
    제1 하이퍼바이저 및 제2 하이퍼바이저 - 상기 제1 하이퍼바이저는 상기 제1 호스트 채널 어댑터와 관련되고, 상기 제2 하이퍼바이저는 상기 제2 호스트 채널 어댑터와 관련됨-; 그리고
    상기 제1 하이퍼바이저에서 실행되는 가상 머신을 제공하는 단계 -상기 가상 머신은 로컬 식별자(LID) 및 상기 제1 호스트 채널 어댑터의 가상 기능과 관련됨-;

    상기 제1 하이퍼바이저에서 실행되는 가상 머신을 상기 제2 호스트 채널 어댑터와 관련된 상기 제2 하이퍼바이저로 라이브 마이그레이션하는 단계를 포함하며;
    상기 라이브 마이그레이션은 상기 하나 이상의 프로세서들로 하여금 상기 하나 이상의 스위치들 중 적어도 하나의 스위치에 서브넷 관리 패킷(SMP)을 전송하도록 하는 추가 단계를 수행하고,
    상기 서브넷 관리 패킷은 상기 가상 머신과 관련된 상기 LID를 포함하는 상기 선형 포워딩 테이블의 목적지 로컬 식별자(LID)의 블록을 업데이트하도록 상기 적어도 하나의 스위치에 지시하고, 상기 블록을 업데이트하는 것은 상기 가상 머신과 관련된 상기 LID를 상기 목적지 LID로 지정하는 수신 서브넷 트래픽이 포워딩되는 포트를 변경하는 것을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  24. 제23항에 있어서, 상기 제1 및 제2 호스트 채널 어댑터 각각은 물리적 기능을 포함하고, 상기 물리적 기능은 LID와 관련되는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  25. 제24항에 있어서, 상기 제1 하이퍼바이저 및 제2 하이퍼바이저는, 상기 제1 및 제2 호스트 채널 어댑터의 각각의 물리적 기능을 통해, 상기 제1 및 제2 호스트 채널 어댑터에 각각 액세스하도록 구성된 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  26. 제23항에 있어서, 상기 제1 및 제2 호스트 채널 어댑터 각각은 미리 배정된 LID 아키텍쳐를 이용하는 각각의 가상 스위치로 배열되고, 상기 단계들은,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하는 단계; 그리고
    최대 두 개의 서브넷 관리 패킷들을 상기 적어도 하나의 스위치에 전송하여, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 단계를 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  27. 제26항에 있어서,
    최대 하나의 서브넷 관리 패킷이 상기 적어도 하나의 스위치에 전송되어, 상기 적어도 하나의 스위치에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  28. 삭제
  29. 제26항에 있어서,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 하나 이상의 스위치들의 서브넷에게 상기 선형 포워딩 테이블을 업데이트하도록 지시하는 단계를 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  30. 제23항에 있어서,
    상기 제1 호스트 채널 어댑터 및 상기 제2 호스트 채널 어댑터 각각은 동적 LID 할당 아키텍쳐를 이용하는 가상 스위치로 배열(arranged)되고, 상기 단계들은,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 마이그레이션된 가상 머신과 관련된 LID를 업데이트하기 위해, 제1 서브넷 관리 패킷을 상기 제1 하이퍼바이저에 전송하고 제2 서브넷 관리 패킷을 상기 제2 하이퍼바이저에 전송하는 단계를 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  31. 삭제
  32. 제23항에 있어서,
    상기 가상 머신이 상기 제1 하이퍼바이저로부터 상기 제2 하이퍼바이저로 라이브 마이그레이션한 후, 상기 단계들은 상기 하나 이상의 스위치들 각각과 관련된 상기 선형 포워딩 테이블을 업데이트하도록 상기 하나 이상의 스위치들의 서브넷에게 지시하는 단계를 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
KR1020177010777A 2015-03-06 2016-02-24 고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법 KR102445870B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562129273P 2015-03-06 2015-03-06
US62/129,273 2015-03-06
US201562161078P 2015-05-13 2015-05-13
US62/161,078 2015-05-13
US15/050,901 US9990221B2 (en) 2013-03-15 2016-02-23 System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US15/050,901 2016-02-23
PCT/US2016/019370 WO2016144547A1 (en) 2015-03-06 2016-02-24 SYSTEM AND METHOD FOR PROVIDING AN INFINIBAND SR-IOV vSWITCH ARCHITECTURE FOR A HIGH PERFORMANCE CLOUD COMPUTING ENVIRONMENT

Publications (2)

Publication Number Publication Date
KR20170125790A KR20170125790A (ko) 2017-11-15
KR102445870B1 true KR102445870B1 (ko) 2022-09-21

Family

ID=56850564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177010777A KR102445870B1 (ko) 2015-03-06 2016-02-24 고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법

Country Status (6)

Country Link
US (4) US9990221B2 (ko)
EP (1) EP3265912B1 (ko)
JP (1) JP6763860B2 (ko)
KR (1) KR102445870B1 (ko)
CN (1) CN107111513B (ko)
WO (1) WO2016144547A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10397105B2 (en) * 2014-03-26 2019-08-27 Oracle International Corporation System and method for scalable multi-homed routing for vSwitch based HCA virtualization
US9866474B2 (en) * 2015-12-01 2018-01-09 Quanta Computer Inc. Centralized server switch management
US10178027B2 (en) 2016-01-27 2019-01-08 Oracle International Corporation System and method for supporting inter subnet partitions in a high performance computing environment
US10171353B2 (en) * 2016-03-04 2019-01-01 Oracle International Corporation System and method for supporting dual-port virtual router in a high performance computing environment
US10402207B2 (en) 2016-06-16 2019-09-03 Quanta Computer Inc. Virtual chassis management controller
US10423437B2 (en) * 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
CN107783834B (zh) * 2016-08-30 2021-05-07 伊姆西公司 用于处理数据的方法和系统
US10176122B2 (en) * 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system
US10552265B1 (en) * 2017-09-14 2020-02-04 EMC IP Holding Company LLC Method of tracking and analyzing data integrity issues by leveraging cloud services
US10795717B2 (en) * 2018-09-18 2020-10-06 Microsoft Technology Licensing, Llc Hypervisor flow steering for address sharing
US10963283B2 (en) * 2018-12-27 2021-03-30 Nutanix, Inc. Configuration management for hybrid cloud
CN111506385A (zh) * 2019-01-31 2020-08-07 Ati科技无限责任公司 引擎抢占和复原
US11121960B2 (en) * 2019-05-30 2021-09-14 International Business Machines Corporation Detecting and managing relocation of network communication endpoints in a distributed computing environment
US11734036B2 (en) * 2021-03-03 2023-08-22 Dell Products L.P. System and method to monitor and manage a passthrough device
CN113535630A (zh) * 2021-09-14 2021-10-22 苏州浪潮智能科技有限公司 一种跨节点通信方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254424A1 (en) 2012-03-26 2013-09-26 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
US20130262937A1 (en) * 2012-03-27 2013-10-03 Oracle International Corporation Node death detection by querying

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055532A (en) 1996-05-14 2000-04-25 Soeder; Thomas B. Method and apparatus for recording and reading date data having coexisting formats
US20030208572A1 (en) 2001-08-31 2003-11-06 Shah Rajesh R. Mechanism for reporting topology changes to clients in a cluster
US7093024B2 (en) 2001-09-27 2006-08-15 International Business Machines Corporation End node partitioning using virtualization
US6988161B2 (en) 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US20030120585A1 (en) 2001-12-21 2003-06-26 Richard Rosenblatt Confidential electronic trading and matching system incorporating execution via an auction market
CN1647466A (zh) * 2002-04-18 2005-07-27 国际商业机器公司 为通道适配器故障提供冗余度的方法
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US7493409B2 (en) 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
US7581021B2 (en) 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
US7613864B2 (en) 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US7293129B2 (en) 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7565463B2 (en) 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
JP4883979B2 (ja) 2005-10-11 2012-02-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および通信制御方法
US7996583B2 (en) 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US9712486B2 (en) 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US20080186990A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Translation module, method and computer program product for providing multiple infiniband address support for vm migration using infiniband address translation
US20080189432A1 (en) 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
US7836332B2 (en) 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
CN103948395A (zh) 2007-07-19 2014-07-30 北卡罗来纳大学查珀尔希尔分校 固定 x 射线数字化断层合成或断层摄影系统和相关方法
US20090077268A1 (en) 2007-09-14 2009-03-19 International Business Machines Corporation Low Latency Multicast for Infiniband Host Channel Adapters
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US8331381B2 (en) 2007-12-04 2012-12-11 International Business Machines Corporation Providing visibility of Ethernet components to a subnet manager in a converged InfiniBand over Ethernet network
CN101227298B (zh) 2008-01-09 2010-06-02 南京大学 基于片上网络的路由器功耗确定方法
US7962564B2 (en) 2008-02-25 2011-06-14 International Business Machines Corporation Discovery of a virtual topology in a multi-tasking multi-processor environment
US20090222640A1 (en) 2008-02-28 2009-09-03 Bauman Ellen M Memory Migration in a Logically Partitioned Computer System
JP4591571B2 (ja) 2008-08-04 2010-12-01 株式会社デンソー 電源装置
JP2010039730A (ja) 2008-08-05 2010-02-18 Fujitsu Ltd ネットワーク設定プログラム,ネットワーク設定方法及びネットワーク設定装置
US8739269B2 (en) 2008-08-07 2014-05-27 At&T Intellectual Property I, L.P. Method and apparatus for providing security in an intranet network
JP5172545B2 (ja) 2008-09-01 2013-03-27 ヤンマー株式会社 過給機の冷却構造
JP5272265B2 (ja) 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US7996484B2 (en) 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US8862538B2 (en) 2008-12-18 2014-10-14 International Business Machines Corporation Maintaining a network connection of a workload during transfer
US7970913B2 (en) 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
CN102334112B (zh) 2009-02-27 2014-06-11 美国博通公司 用于虚拟机网络的方法和系统
US9817695B2 (en) 2009-04-01 2017-11-14 Vmware, Inc. Method and system for migrating processes between virtual machines
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8150971B2 (en) 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US8489744B2 (en) 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
JP5375403B2 (ja) * 2009-07-23 2013-12-25 富士通株式会社 仮想マシン移動制御プログラム,仮想マシン移動制御方法および仮想マシン移動制御装置
EP2309680B1 (en) 2009-10-08 2017-07-19 Solarflare Communications Inc Switching API
US8370560B2 (en) 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
US8327060B2 (en) 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
EP3002703B1 (en) 2009-12-14 2017-08-30 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US8700811B2 (en) 2010-05-25 2014-04-15 Microsoft Corporation Virtual machine I/O multipath configuration
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8873551B2 (en) 2010-07-30 2014-10-28 Cisco Technology, Inc. Multi-destination forwarding in network clouds which include emulated switches
US8489699B2 (en) 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US20120173757A1 (en) 2011-01-05 2012-07-05 International Business Machines Corporation Routing optimization for virtual machine migration between geographically remote data centers
US8407182B1 (en) 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines
US9552215B2 (en) 2011-03-08 2017-01-24 Rackspace Us, Inc. Method and system for transferring a virtual machine
US8935506B1 (en) 2011-03-31 2015-01-13 The Research Foundation For The State University Of New York MemX: virtualization of cluster-wide memory
US20120265956A1 (en) 2011-04-18 2012-10-18 Hitachi, Ltd. Storage subsystem, data migration method and computer system
US9130935B2 (en) 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
US20120291024A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Virtual Managed Network
US20120287931A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Techniques for securing a virtualized computing environment using a physical network switch
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US9225628B2 (en) 2011-05-24 2015-12-29 Mellanox Technologies Ltd. Topology-based consolidation of link state information
JP5965478B2 (ja) 2011-06-03 2016-08-03 オラクル・インターナショナル・コーポレイション ネットワークにおけるコンポーネントを認証するためのシステムおよび方法
WO2012170016A1 (en) 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
WO2012176278A1 (ja) 2011-06-21 2012-12-27 富士通株式会社 情報処理装置、仮想マシン制御方法およびプログラム
JP5643990B2 (ja) 2011-07-29 2014-12-24 株式会社日立製作所 ネットワーク装置及びネットワークシステム
US8656389B2 (en) 2011-08-22 2014-02-18 Vmware, Inc. Virtual port command processing during migration of virtual machine
JP5776600B2 (ja) 2011-09-05 2015-09-09 富士通株式会社 データ中継装置、データ中継プログラムおよびデータ中継方法
US20130083690A1 (en) 2011-10-04 2013-04-04 International Business Machines Corporation Network Adapter Hardware State Migration Discovery in a Stateful Environment
US9014201B2 (en) 2011-11-09 2015-04-21 Oracle International Corporation System and method for providing deadlock free routing between switches in a fat-tree topology
US8879396B2 (en) 2011-11-15 2014-11-04 Oracle International Corporation System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology
CN104067231B (zh) 2011-12-07 2017-03-29 西里克斯系统公司 使用虚拟交换代理控制网络接口
US8930690B2 (en) 2012-03-21 2015-01-06 Microsoft Corporation Offloading packet processing for networking device virtualization
US9201679B2 (en) 2012-05-31 2015-12-01 Red Hat Israel, Ltd. Multiple destination live migration
CN104272281A (zh) 2012-06-25 2015-01-07 株式会社日立制作所 计算机系统和应用程序运行环境转移方法
US9104645B2 (en) 2012-07-27 2015-08-11 Dell Products, Lp System and method of replicating virtual machines for live migration between data centers
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9130858B2 (en) 2012-08-29 2015-09-08 Oracle International Corporation System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment
CN102968344A (zh) 2012-11-26 2013-03-13 北京航空航天大学 一种多虚拟机迁移调度的方法
US8937949B2 (en) 2012-12-20 2015-01-20 Oracle International Corporation Method and system for Infiniband host channel adapter multicast packet replication mechanism
US9485188B2 (en) 2013-02-01 2016-11-01 International Business Machines Corporation Virtual switching based flow control
US10051054B2 (en) 2013-03-15 2018-08-14 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
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
US9577956B2 (en) 2013-07-29 2017-02-21 Oracle International Corporation System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US10454991B2 (en) 2014-03-24 2019-10-22 Mellanox Technologies, Ltd. NIC with switching functionality between network ports
CN104184642B (zh) 2014-08-31 2017-05-10 西安电子科技大学 多级星型交换网络结构及优化方法
US10198288B2 (en) 2014-10-30 2019-02-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (SA) query caching
US9898430B2 (en) 2014-11-12 2018-02-20 Vmware, Inc. Tracking virtual machine memory modified by a single root I/O virtualization (SR-IOV) device
JP6346381B2 (ja) 2015-01-14 2018-06-20 フィリップス ライティング ホールディング ビー ヴィ ネットワークシステムにおけるノード障害からの適応回復
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10063446B2 (en) 2015-06-26 2018-08-28 Intel Corporation Netflow collection and export offload using network silicon
US10432650B2 (en) 2016-03-31 2019-10-01 Stuart Staniford System and method to protect a webserver against application exploits and attacks
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254424A1 (en) 2012-03-26 2013-09-26 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
US20130262937A1 (en) * 2012-03-27 2013-10-03 Oracle International Corporation Node death detection by querying

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wei Lin Guay 외 4명. A Scalable Signalling Mechanism for VM Migration with SR-IOV over InfiniBand. 2012년

Also Published As

Publication number Publication date
US11132216B2 (en) 2021-09-28
US20210389969A1 (en) 2021-12-16
JP6763860B2 (ja) 2020-09-30
US20200110630A1 (en) 2020-04-09
CN107111513A (zh) 2017-08-29
US9990221B2 (en) 2018-06-05
US20180285142A1 (en) 2018-10-04
JP2018508856A (ja) 2018-03-29
EP3265912B1 (en) 2022-04-20
CN107111513B (zh) 2020-11-03
US20160259661A1 (en) 2016-09-08
KR20170125790A (ko) 2017-11-15
US11740922B2 (en) 2023-08-29
WO2016144547A1 (en) 2016-09-15
US10514946B2 (en) 2019-12-24
EP3265912A1 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
KR102445870B1 (ko) 고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법
JP7109527B2 (ja) 無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法
US11716292B2 (en) System and method for supporting scalable representation of switch port status in a high performance computing environment
KR102637135B1 (ko) 고성능 컴퓨팅 환경에서 듀얼 포트 가상 라우터를 지원하기 위한 시스템 및 방법
US11750513B2 (en) System and method for scalable multi-homed routing for vSwitch based HCA virtualization
JP2022003791A (ja) 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
EP3408983B1 (en) System and method for supporting scalable representation of switch port status in a high performance computing environment
US20220174025A1 (en) System and method for supporting scalable bit map based p_key table in a high performance computing environment

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