KR102349208B1 - 서브넷 관리(sa) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법 - Google Patents

서브넷 관리(sa) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102349208B1
KR102349208B1 KR1020177010407A KR20177010407A KR102349208B1 KR 102349208 B1 KR102349208 B1 KR 102349208B1 KR 1020177010407 A KR1020177010407 A KR 1020177010407A KR 20177010407 A KR20177010407 A KR 20177010407A KR 102349208 B1 KR102349208 B1 KR 102349208B1
Authority
KR
South Korea
Prior art keywords
virtual machine
host node
host
cloud environment
route
Prior art date
Application number
KR1020177010407A
Other languages
English (en)
Other versions
KR20170076666A (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 KR20170076666A publication Critical patent/KR20170076666A/ko
Application granted granted Critical
Publication of KR102349208B1 publication Critical patent/KR102349208B1/ko

Links

Images

Classifications

    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

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 Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

시스템 및 방법은 클라우드 환경에서 서브넷 관리를 지원할 수 있다. 클라우드 환경에서 가상 머신을 마이그레이션하는 동안, 서브넷 관리자는 효율적인 서비스를 지연시키는 병목 지점(bottleneck point)이 될 수 있다. 시스템 및 방법은 가상 머신이 마이그레이션 후에 복수의 어드레스들을 유지하도록 보장하는 것에 의해 상기 병목 지점을 완화할 수 있다. 상기 시스템 및 방법은 상기 클라우드 환경 내의 각각의 호스트 노드가 가상 머신들이 마이그레이션된 가상 머신과의 통신을 재-설정할 때 활용할 수 있는 로컬 캐시와 관련되도록 할 수 있다.

Description

서브넷 관리(SA) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING A DYNAMIC CLOUD WITH SUBNET ADMINISTRATION (SA) QUERY CACHING}
[저작권 고지]
이 특허 문서의 공개 부분에는 저작권 보호 대상인 자료가 포함되어 있다. 상기 저작권 소유자는 특허청의 특허 파일이나 기록들에 나타나있는 것처럼 특허 문서 또는 특허 공개에 의해 복사 재생산하는 것에 대해 이의를 제기하지 않지만, 그와 달리 저작권의 모든 권리를 보유한다.
[기술분야]
본 발명은 일반적으로 컴퓨터 시스템들에 관한 것이며, 그리고 특히 클라우드 환경에 관한 것이다.
InfiniBand 서브넷들에서, 서브넷 관리자(SM)는 잠재적인 병목 지역이다. InfiniBand 서브넷의 사이즈가 커질 때, 호스트들 사이의 경로들 수가 다항식적으로 증가하고 많은 동시 경로 결정 요청(concurrent path resolution request)들을 수신할 때, SM이 적시에 네트워크에 서비스하지 못할 수 있다. 이 범위성(scalability) 문제는 동적 가상화 클라우드 환경에서 더 증폭된다. InfiniBand 상호연결과 함께 가상 머신(VM)이 실시간으로 마이그레이션될 때, VM 어드레스들이 변경된다. 상기 어드레스 변경들은 통신중인 피어들이 새 경로 특성들을 분석하기 위해 SM에 서브넷 관리(SA) 경로 레코드 쿼리들을 송신함으로써 상기 SM에 추가적 로드가 발생하게 한다.
시스템 및 방법은 클라우드 환경에서 서브넷 관리를 지원할 수 있다. 클라우드 환경에서 가상 머신을 마이그레이션하는 동안, 서브넷 관리자는 효율적인 서비스를 지연시키는 병목 지점이 될 수 있다. 시스템 및 방법은 가상 머신이 마이그레이션 후에 복수의 어드레스들을 유지하도록 보장하는 것에 의해 상기 병목 지점을 완화할 수 있다. 상기 시스템 및 방법은 상기 클라우드 환경 내의 각각의 호스트 노드가 가상 머신들이 마이그레이션된 가상 머신과의 통신을 재-설정할 때 활용할 수 있는 로컬 캐시와 관련되도록 할 수 있다.
도 1은 실시예에 따르는, 클라우드 환경에서 VM 실시간 마이그레이션을 지원하는 것을 도시한다.
도 2는 실시예에 따르는, 2개의 호스트들 사이의 연결을 설정하는 프로토콜을 도시한다.
도 3은 실시예에 따르는, 접속이 끊어졌을 때, 2개의 노드들 사이에 진행중인 통신을 도시한다.
도 4는 실시예에 따르는, 클라우드 환경에서 SA 경로 캐싱을 지원하는 것을 도시한다.
도 5는 본 발명의 실시예에 따르는, 클라우드 환경에서 SA 경로 캐싱을 지원하는 것을 도시한다.
도 6은 실시예에 따라, 클라우드 환경에서 서브넷 관리를 지원하는 방법을 도시한다.
본 발명은 동일한 참조들은 동일한 구성요소들을 표시하는 첨부된 도면들의 피겨들에서 제한으로서가 아닌 예시로서 도시된다. 본 개시에서 "하나의" 또는 "하나" 또는 "일부의" 실시예(들)에 대한 참조들은 필수적으로 동일한 실시예에 대한 것이 아니며, 해당 참조들은 적어도 하나를 의미함을 주목해야 한다.
다음과 같은 본 발명의 설명은 고성능 네트워크 프로토콜(high performance network protocol)에 대한 예로서 상기 InfiniBand(IB) 네트워크 프로토콜을 사용한다. 다른 타입들의 고성능 네트워크 프로토콜들이 제한 없이 사용될 수 있는 것은 통상의 기술자에게 명백할 것이다.
본 명세서에서는 클라우드 환경에서 가상 머신(VM) 마이그레이션 서브넷 관리(SA) 경로 캐싱을 지원할 수 있는 시스템 및 방법을 기술한다.
실시예에 따르면, 고성능 컴퓨팅(HPC)을 제공할 수 있는 클라우드 컴퓨팅이 제공될 수 있다. 상기 HPC-as-a-service는 컴퓨팅 클라우드 내에 제공될 수 있고 고성능 인터커넥트 솔루션들을 사용하여 가상 HPC(vHPC) 클러스터들을 수용할 수 있게 한다.
실시예에 따르면, 각각의 IB 서브넷은 서브넷 관리자(SM)를 활용할 수 있다. 각각의 SM은 스위치들 및 호스트 채널 어댑터들(HCAs) 상에 상기 네트워크 초기화, 토폴로지 탐색, 경로 계산 및 IB 포트 구성들을 담당할 수 있다. 큰 서브넷들에서, 노드들 사이에서 상기 이용가능한 경로들은 다항식적으로 성장할 수 있고 상기 SM은 경로 결정을 위한 많은 동시 요청들이 수신될 때 잠재적인 병목 현상이 될 수 있다. 이 범위성 문제는 IB 상호연결과 함께 가상 머신이 실시간으로 마이그레이션될 때, 동적 가상화 클라우드 환경에서 더 증폭된다.
효율적인 가상화를 지원하기 위해, 높은 대역폭과 낮은 대기시간을 유지하는 동안, IB 호스트 채널 어댑터들(HCAs)은 단일 루트 I/O 가상화(Single Root I/O Virtualization, SR-IOV)를 지원할 수 있다. 각각의 IB 연결된 노드는 3개의 서로 다른 어드레스들을 갖는다. 실시간 마이그레이션이 발생할 때, 상기 통과 인터페이스(passed through interface)의 상기 디태칭으로 인한 상기 다운타임(downtime)에 관계없이, 하나 이상의 상기 IB 어드레드들이 변경될 수 있다. 마이그레이션-중-VM과 통신하는 다른 노드들은 연결이 끊어지고 상기 SM에 서브넷 관리(SA) 경로 레코드 쿼리들을 송신하는 것에 의해 재연결을 위해 상기 새 어드레스를 찾는 것을 시도한다. 상기 기본 네트워크에서 상기 SM을 향한 상기 결과 통신이 중요할 수 있다. 큰 네트워크에서, VM의 마이그레이션에 의해, 상기 SM을 향하여 흐르는 상기 메시지는 상기 SM의 상기 로드가 증가함으로써 상기 전체 네트워크 대기시간이 증가할 수 있다.
실시예에 따르면, 그 다음, VM 마이그레이션에 의해 원인이 되고 SM에 의해 수신된 SA 요청들의 양을 감소시킴으로써 상기 SM 상에 상기 로드를 감소시키는 것이 바람직하다. 방법들 및 시스템들은 마이그레이션 후에 VM이 상기 동일한 어드레스들을 유지할 수 있는 시스템을 구현하는 것에 의해 이를 달성할 수 있다. 또한, 2개 노드 사이의 초기 연결이 설정된 후 SA 쿼리들의 수를 크게 줄이기 위해 SA 경로 캐싱 메커니즘이 사용 될 수 있다.
실시예에 따르면, InfiniBand는 일반적으로 3개의 서로 다른 타입의 어드레스들을 사용한다. 첫번째, 16-비트 로컬 식별자(LID). 적어도 하나의 LID가 상기 SM에 의해 각 HCA 포트 및 각 스위치에 할당된다. 상기 LID들은 서브넷 내에서 트래픽을 라우팅하기 위해 사용될 수 있다. 상기 LID는 16 비트이므로 65536개의 고유 한 어드레스 조합들이 만들어질 수 있으며, 그 중 49151(0x0001-0xBFFF)만이 유니캐스트 어드레스들서 사용될 수 있다. 따라서, 이용가능한 유니캐스트 어드레스들의 수는 IB 서브넷의 최대 사이즈를 정의한다.
상기 두번째 타입의 어드레스는 일반적으로 상기 제조 업체에서 각각의 디바이스(예컨대, HCA들 및 스위치들)와 각각의 HCA 포트에 할당한 64 비트 전역 고유 식별자(Global Unique Identifier, GUID)이다. 상기 SM은 SR-IOV VF들이 활성화 될 때 유용할 수 있는 추가적 서브넷 고유 GUID들을 HCA 포트에 할당할 수 있다.
상기 세번째 타입의 어드레스는 128 비트 전역 식별자(GID)이다. 상기 GID는 일반적으로 유효한 IPv6 유니캐스트 어드레스이며, 하나 이상의 GID는 각 HCA 포트및 각 스위치에 할당된다. 상기 GID는 상기 패브릭 관리자(fabric administrator)가 할당한 전역 고유 64 비트 접두사(prefix)와 각 HCA 포트의 상기 GUID 어드레스를 결합하는 것에 의해 구성된다.
다음과 같은 본 발명의 설명은 고성능 네트워크에 대한 예시로서 상기 Infiniband 네트워크를 사용한다. 다른 타입들의 고성능 네트워크들이 제한 없이 사용될 수 있는 것은 통상의 기술자에게 명백할 것이다. 또한, 다음과 같은 본 발명의 설명은 상기 KVM 가상화 모델을 가상화 모델의 예로서 사용한다. 다른 타입들의 가상화 모델들(예컨대, Xen)이 제한 없이 사용될 수 있는 것은 통상의 기술자에게 명백할 것이다.
다음과 같은 본 발명의 설명은 OpenStack, OpenSM 및 상기 RDS Linux 커널 모듈을 추가적으로 활용한다. OpenStack은 데이터 센터를 통해 프로세싱, 저장소 및 네트워킹 리소스들의 풀들을 제어하는 상호관련된 프로젝트들의 그룹을 포함하는 클라우드-컴퓨팅 소프트웨어 플랫폼이다. OpenSM은 OpenIB 상단에서 실행할 수있는 InfiniBand 호환 서브넷 관리자 및 관리이다. RDS(Reliable Datagram Sockets)는 데이터그램들을 전달하기 위한 고-성능, 낮은-대기시간, 안정적인 연결없는 프로토콜이다. 다른 유사한 플랫폼들이 제한 없이 이용될 수 있는 것은 통상의 기술자에게 명백할 것이다.
본 발명의 실시예에 따르면, 가상화는 효율적인 리소스 활용 및 클라우드 컴퓨팅에서의 탄력적 리소스 할당에 유리할 수 있다. 실시간 마이그레이션은 어플리케이션의 물리적 서버들간에 가상 머신들(VM)를 투명한 방식으로 이동하는 것에 의해 리소스 사용을 최적화하는 것이 가능하다. 따라서, 단일 루트 I/O 가상화(SR-IOV) 방법을 활용하는 가상화는 실시간 마이그레이션을 통해 통합, 리소스들의 온-디맨드 프로비저닝(on-demand provisioning) 및 탄력성을 활성화할 수 있다.
상기 IB 아키텍처는 직렬 점대점 양방향 기술(serial point-to-point full-duplex technology)이다. 상기 IB 네트워크들은 서브넷들로서 지칭될 수 있으며, 서브넷은 스위치들 및 점대점 링크들을 사용하여 상호연결된 호스트들의 세트로 구성된다. IB 서브넷은 상기 서브넷의 모든 스위치들, 라우터들 및 호스트 채널 어댑터들(HCAs)의 상기 구성을 포함하여, 상기 네트워크 초기화 및 설정을 담당할 수 있는 적어도 하나의 서브넷 관리자(SM)를 포함할 수 있다.
IB는 원격 다이렉트 메모리 액세스(RDMA)와 전형적인 송신/수신 시맨틱들을 제공하기 위해 다양한 전송 서비스들의 세트를 지원한다. 사용된 상기 전송 서비스와는 독립적으로, 상기 IB HCA는 큐 페어들(QPs)을 사용하여 통신한다. QP는 상기 통신 설정 중에 생성되며, 공급된 QP 번호, HCA 포트, 대상 LID, 큐 사이즈들 및 전송 서비스와 같은 초기 어트리뷰트들의 세트를 가질 수 있다. HCA는 많은 QP들을 처리할 수 있으며, 각각의 QP는 송신 큐(SQ) 및 수신 큐(RQ)와 같은 한 쌍의 큐들로 구성되고, 상기 통신에 참여하는 각 엔드-노드에 하나씩 존재한다. 상기 송신 큐는 상기 원격 노드로 전송될 작업 요청들을 홀드(hold)하며, 반면 상기 수신 큐는 상기 원격 노드로부터 수신한 상기 데이터로 수행할 작업에 대한 정보를 홀드한다. 상기 QP들에 더하여, 각 HCA는 송신 및 수신 큐들의 세트와 관련된 하나 이상의 완료 큐들(CQ)을 가진다. 상기 CQ는 상기 송신 및 수신 큐에 게시된 작업 요청들에 대한 완료 알림들을 홀드한다. 비록 상기 통신의 상기 복잡성이 상기 사용자로부터 숨겨져 있더라도, 상기 QP 상태 정보는 상기 HCA에 보관된다.
네트워크 I/O 가상화 :
실시예에 따르면, I/O 리소스들을 공유하고 다양한 가상 머신들로부터 리소스들에 대한 보호된 액세스를 제공하기 위해 I/O 가상화(IOV)가 사용될 수 있다. IOV는 가상 머신에 노출될 수 있는 논리적 디바이스를 물리적 구현으로부터 분리할 수 있다. 이러한 타입의 IOV 중 하나는 다이렉트 디바이스 할당이다.
실시예에 따르면, 다이렉트 디바이스 할당은 VM들 사이에 디바이스를 공유하지 않으며 I/O 디바이스들을 VM들에 연결하는 것을 포함할 수 있다. 다이렉트 할당, 또는 디바이스 패스스루(paththrough)는 최소의 오버헤드로 기본 성능에 가깝게 제공할 수 있다. 상기 물리적 디바이스는 상기 하이퍼바이저를 바이패스하여, 상기 VM에 직접 어태치되고, 게스트 OS는 수정되지않은 드라이버들을 사용할 수 있다. 단점은 공유가 없기때문에, 범위성이 제한되는 것이다. 하나의 물리적 네트워크 카드가 하나의 VM과 결합된다.
실시예에 따르면, 단일 루트 IOV(SR-IOV)는 물리적 디바이스가 동일한 디바이스의 다수의 독립적인 가벼운 인스턴스로서 하드웨어 가상화를 통해 나타내도록 할 수 있다. 이러한 인스턴스들은 VM에 패스스루 디바이스들로서 할당될 수 있고, 가상 함수들(VFs)로서 액세스할 수 있다. SR-IOV는 순수한 다이렉트 할당의 상기 범위성 이슈를 완화한다.
불행하게, 상기 구현된 시스템들이 데이터 센터 최적화를 위해 투명한 실시간 마이그레이션들(VM 마이그레이션들)을 사용하는 경우, SR-IOV와 같은 다이렉트디바이스 할당 기술들은 클라우드 제공자들에 이슈가 발생하게할 수 있다. 실시간 마이그레이션의 핵심은 가상 시스템의 상기 메모리 컨텐츠들이 원격 하이퍼바이저로 복사되는 것이다. 그 다음, 상기 가상 머신이 상기 소스 하이퍼바이저(source hypervisor)에서 일시중지되고, 해당 가상 머신의 동작이 복사된 목적지에서 다시 시작된다. 상기 기본 시스템이 다이렉트 디바이스 할당(SR-IOV와 같은)을 활용하는 경우, 상기 네트워크 인터페이스의 전체 내부 상태는 그것이 하드웨어에 묶여 있기 (tied)때문에 복사될 수 없다. VM에 할당된 상기 SR-IOV VF들은 디태치되며, 상기 실시간 마이그레이션이 실행될 것이고, 상기 목적지에 새 VF가 어태치될 것이다.
IB VF를 사용하는 VM이 실시간 마이그레이션되는 상황에서, 상기 VM의 상기 3개의 어드레스들 모두의 변경으로 인하여, 상기 기본 네트워크 패브릭 및 상기 SM에 명확한 영향이 미치게될 수 있다. 상기 VM이 서로 다른 LID와 함께 서로 다른 물리적 호스트로 이동되었기 때문에 상기 LID가 변경된다. 서로 다른 VF가 상기 목적지에 어태치될 것이기 때문에, 상기 SM에 의해 상기 소스 VF에 할당된 상기 가상 GUID(vGUID)도 변경될 수 있다. 이후 vGUID가 GID를 구성하는 데 사용되므로 GID도 변경됩니다. 그 후에, 상기 vGUID가 상기 GID를 구성하기 위해 사용되므로, 상기 GID도 변경될 것이다. 결과적으로, 상기 마이그레이션된 VM은 갑자기 새로운 어드레스들의 세트와 관련될 수 있으며, 상기 마이그레이션된 VM의 상기 통신 피어들은 상기 마이그레이션된 VM과의 손실된 연결들의 재설정을 시도하며, 동시 SA 경로 레코드 쿼리 버스트들을 상기 SM에 전송하기 시작할 수 있다. 이러한 쿼리들로 인해 상기 SM에 추가 오버헤드가 발생할 수 있으며, 부수적인 다운타임이 사이드 효과로서 발생할 수 있다. 상기 마이그레이션된 노드들이 상기 네트워크의 많은 다른 노드들과 통신하는 경우, 상기 SM은 병목현상이될 수 있고 전체 네트워크 성능을 저해할 수 있다.
실시예에 따르면, 본 명세서에 기술된 상기 방법들 및 상기 시스템들은 클라우드 제공자들에게 표현되는 SR-IOV와 같은 다이렉트 디바이스 할당 기술들을 사용하여 가상 머신의 실시간 마이그레이션과 관련된 상기 이슈들을 감소 및/또는 제거할 수 있다. 상기 방법들과 상기 시스템들은 IB VF를 사용하는 VM이 실시간 마이그레이션되는 상기 상황에서 표현되는 상기 문제들을 극복할 수 있다.
가상 머신 ( VM ) 실시간 마이그레이션
도 1은 실시예에 따르면, 클라우드 환경에서 VM 실시간 마이그레이션을 지원하는 것을 도시한다. 도 1에 도시된 바와 같이, InfiniBand(IB) 서브넷(100)은 상기 서로 다른 하이퍼바이저들(111-113)을 지원하는 복수의 호스트 노드들 A-C(101-103)를 포함할 수 있다.
게다가, 각각의 하이퍼바이저(111-113)는 다양한 가상 머신들(VMs)을 그 위에 실행하도록 한다. 예를 들어, 상기 호스트 노드 A(101)상의 상기 하이퍼바이저(111)는 상기 VM A(104)를 지원할 수 있고, 호스트 노드 B상의 하이퍼바이저(112)는 VM B(105)를 지원할 수 있다. VM A 및 VM B가 실행되는 상기 노드들은 통신중에 있을 수 있다.
또한, 각각의 상기 호스트 노드들 A-C(101-103)는 하나 이상의 호스트 채널 어댑터들(HCAs)(117-119)과 관련될 수 있다. 도 1에 도시된 바와 같이, 상기 호스트 노드 A(101)상의 상기 HCA(117)는 VM A(104)에 의해 사용될 수 있는 QP a(108)와 같은 상기 큐 페어들(QP)을 이용할 수 있으며, 반면 상기 호스트 노드 B(102)상의 상기 HCA(118)는 VM B(105)에 의해 사용될 수 있는 QP b(107)를 이용할 수 있다.
본 발명의 실시예에 따르면, 입력/출력 가상화(IOV)는 I/O 리소스들을 상기 VM들에 제공하고 다수의 VM들로부터 상기 공유된 I/O 리소스들에 대한 보호된 액세스를 제공하기 위해 사용될 수 있다. IOV는 상기 물리적 구현으로부터 VM에 노출된 상기 논리적 디바이스를 분리할 수 있다. 예를 들어, 상기 단일 루트 I/O 가상화(SR-IOV)는 IB 네트워크를 통한 상기 가상화에서 높은 성능을 달성하기 위한 I/O 가상화 방식이다.
또한, 상기 IB 서브넷(100)은 상기 네트워크 초기화, 스위치들 및 HCA들 상의 IB 포트들의 구성, 토폴로지 발견 및 경로 계산을 담당할 수 있는 서브넷 관리자(110)를 포함할 수 있다.
도 1에 도시된 바와 같이, VM B(105)는(예컨대, 상기 하이퍼바이저(111)상의 상기 VM A(105)와 통신하는 동안) 상기 하이퍼바이저(112)로부터 상기 하이퍼바이저(113)로 마이그레이션될 수 있다.
상기 마이그레이션 후, 상기 새로운 VM B'(106)는 상기 목적지 호스트 노드 C(103)에서 새로운 어드레스들의 세트에 갑자기 노출될 수 있다. 또한, 상기 피어 VM들(예컨대, VM A(104))은 상기 손실 접속성을 재설정하는 것을 시도하는 동안, 상기 SM(110)에 서브넷 관리(SA) 경로 레코드 쿼리들을 송신하기 시작할 수 있다(VM B'는 상기 새 호스트 노드에서 실행중이면 상기 SM에 SA 경로 요청들을 또한 송신할 수 있다). 일반적으로 VM B가 호스트 노드 B로부터 호스트 노드 C로 마이그레이션하는 것과 같이, 일단 VM이 마이그레이션하면, 상기 VM의 어드레스들(LID, GUID, GID)는 SR-IOV 사용할 때 일반적으로 상기 하드웨어에 묶이는 것에 따라 변경한다. 상기 서브넷 관리자에 대한 상기 SA 경로 쿼리들은 상당한 다운타임을 발생하게 할 수 있고, 상기 InfiniBand SM(110)에 추가 오버헤드를 발생하게 할 수 있다. 큰 데이터 센터에서 짧은 시간 프레임 내에 많은 마이그레이션들이 이루어지는 경우, 또는 마이그레이션된 노드들이 상기 네트워크의 다른 많은 노드들과 통신하는 경우, 상기 SM(110)은 적시에 대응할 수 없기 때문에 병목현상이 될 수 있다.
본 발명의 실시예에 따르면, 상기 VM B(104)가 마이그레이션하고 상기 IB 어드레스 정보가 변경될 때, 상기 시스템은 상기 참여 호스트 노드들 A-C(101-103)에 의해 생성된 SA 쿼리의 양을 감소시킬 수 있다.
도 1에 도시된 바와 같이, 상기 시스템은 예컨대, 상기 VM B(104)로부터 가상 기능(VF)(115)를 디태치하는 것에 의해, 먼저 상기 VM B(104)를 상기 하이퍼바이저(112)로부터 디태치할 수 있다. 그 다음, 상기 시스템은 상기 VM B(104)와 관련된 상기 목적지 정보(120)를 상기 목적지 호스트 노드 C(103)에 제공할 수 있다(예컨대, 상기 호스트 노드 C(103)상의 상기 하이퍼바이저(113)상의 상기 다음 이용가능한 가상 기능, 즉 VF'(116)에 상기 어드레스들을 할당하는 것에 의해). 마지막으로, 상기 VM B(104)가 상기 VM B'(106)로서 상기 하이퍼바이저(113)로 마이그레이션된 후, 상기 시스템은(예컨대, 상기 QP b'(109)를 통해) 상기 피어 VM과의 상기 통신을 재설정하기 위해, 상기 VM B'(106)를 상기 어드레스 정보(120)에 노출시킬 수 있다.
따라서, 상기 목적지 호스트 노드 C(103)로 상기 마이그레이션 후, 상기 새로운 VM B'(106)는 상기 원래의 어드레스들의 세트에 노출될 수 있고, 상기 피어 VM A(104)가 SA 경로 레코드 쿼리들을 상기 SM(110)에 송신할 필요가 없다.
실시예에 따르면, 시스템은 IB SR-IOV VF들이 어태치된 VM들의 VM 실시간 마이그레이션을 지원할 수 있다. 신뢰가능 데이터그램 소켓(Reliable Datagram Socket, RDS) 프로토콜과 같은 프로토콜을 통해, 원격 다이렉트 메모리 액세스(Remote Direct Memory Access, RDMA)는 상기 VM의 마이그레이션 후 통신을 재설정하기 위해 활용될 수 있다.
실시예에 따르면, 시스템은 OpenStack, OpenSM 및 상기 RDS Linux 커널 모듈을 활용할 수 있다. 게다가, LIDtracker라고 불릴 수 있는 프로그램은 각각의 VM과 관련된 상기 IB 어드레스들을 추적하기 위해 사용될 수 있고, 상기 마이그레이션 처리를 조정할 수 있다.
실시예에서, 상기 프로그램은 OpenSM의 옵션 honor_guid2lid_file을 활성화할 수 있다. 그 다음, OpenSM에 의해 생성된 상기 파일 guid2lid를 상기 프로그램에서 파싱할 수 있고, 오름차순과 같은 순서로 GUID에 의해 정렬할 수 있다. LID들은 하나부터 시작하여, 상기 GUID들에 할당된다. 상기 GUID들에 할당된 각각의 LID는 상기 물리적 호스트들에 대한 기초 LID들로서 참조될 수 있다.
실시예에서, 상기 기초 LID가 할당되면, 각각의 IB 활성화된 OpenStack 계산 노드들은 실행중인 VM들을 검색할 수 있다. 실행되고 있는 것으로 확인된 각각의 VM은 49151(최상위 유니캐스트 LID)부터 시작하여, LID를 내림차순으로 할당할 수 있다. VM들에 할당된 상기 LID들은 유동 LID들이라고 불릴 수 있다.
실시예에서, 상기 유동 LID들은 VM들이 실행중인 상기 OpenStack 계산 노드들의 상기 기초 LID들을 대체할 수 있다. 상기 하이퍼바이저는 상기 LID를 상기 VM들과 공유한다. 특정 실시예에서, 하이퍼바이저 마다 하나의 VM이 실행될 수 있고, 다른 VM이 현재 실행중이지 않는 하이퍼바이저로 VM이 마이그레이션될 수 있다. 다른 실시예들에서, 하이퍼바이저에서 다수의 VM들을 실행할 수 있고, 상기 목적지 하이퍼바이저에서 다른 VM들이 현재 실행중인지 여부에 관계없이, VM은 다른 하이퍼바이저로 마이그레이션될 수 있다.
실시예에서, VMx에 대한 마이그레이션이 상기 OpenStack API와 같은 API로부터 정렬될 때, 상기 SR-IOV VF는 상기 VM으로부터 디태치될 수 있다. 상기 디바이스 제거가 완료되고 상기 마이그레이션이 진행중일 때, OpenStack은 VMx가 Hypervisory와 같은 하나의 하이퍼바이저로부터 Hypervisorz와 같은 목적지 하이퍼바이저로 이동한다는 것을 상기 프로그램에 알릴 수 있다. 그 다음, 상기 프로그램은 Hypervisory의 상기 LID를 상기 기초 LID로 다시 돌리는 변경을 할 수 있고 Hypervisorz는 VMx와 관련된 상기 유동 LID를 가져올 수 있다. 또한, 상기 프로그램은 상기 목적지 하이퍼바이저인 Hypervisorz에서 상기 다음 이용가능한 SR-IOV VF에 VMx와 관련된 상기 vGUID를 할당할 수 있다. 상기 마이그레이션하는 동안, 상기 VM은 네트워크 연결을 갖지 않는다.
실시예에 따르면, 상기 변경들은 재시작을 통해 적용될 수 있다. 그 다음, 상기 마이그레이션이 완료되면, OpenStack은 다음 이용가능한 SR-IOV VF를 Hypervisorz상에 VMx에 추가할 수 있고 상기 VM은 상기 네트워크 연결을 되돌릴 수 있다. 상기 VM은 상기 마이그레이션 전에 있었던 동일한 IB 어드레스들(LID, vGUID 및 GID)에 노출될 수 있다. 상기 VM의 관점으로부터, 상기 IB 어댑터는 마이그레이션에 필요한 상기 시간 동안 디태치된 것처럼 나타나고 상기 어드레스들이 변경되지 않았으므로 상기 동일한 IB 어댑터가 재-어태치되었다.
서브넷 관리(SA) 경로 캐싱
실시예에 따르면, 상기 엔드 노드들에서 로컬 SA 경로 캐싱 메커니즘은 두 노드들 사이의 초기 연결이 설정된 후 SA 쿼리들을 줄이거나 제거할 수 있다. 상기 캐싱 스킴(caching scheme)은 일반적일 수 있고, 활성화된 때, 실시간 마이그레이션들을 수행하거나 수행하지않고 상기 SM상에 상기 로드를 완화할 수 있다.
도 2는 실시예에 따르면, 2개의 호스트들 사이의 연결을 설정하는 프로토콜을 도시한다. 특히, 도 2는 두 호스트들 사이의 연결을 설정하기 위해, RDS와 같은 프로토콜을 사용하는 것을 보여준다.
실시예에 따르면, 연결을 설정하기 전에, IP over IB(IPoIB)를 모든 통신중인 피어들에서 셋업할 수 있다. RDS와 같은 프로토콜은 포트의 상기 GID 어드레스를 결정하기 위해 특정 IB 포트의 상기 IPoIB 어드레스를 사용할 수 있다. GID 어드레스가 분석된 후, 상기 프로토콜은 경로 레코드 조회를 수행하고 상기 IB 통신을 설정하기 위한 충분한 정보를 가질 수 있다.
도 2에 도시된 바와 같이, InfiniBand 서브넷(200) 내에서, 서브넷 관리자(210)는 노드 C(220)와 노드 D(225) 사이의 경로 통신과, 그리고 특히 노드 C상의 클라이언트측 어플리케이션과 노드 D상의 서버측 어플리케이션 사이의 경로 통신을 제공할 수 있다. 도 2에서 상기 상위 레이어 어플리케이션의 클라이언트측은 노드 C에서 실행되고 상기 어플리케이션의 서버측이 노드 D에서 실행된다. 상기 어플리케이션의 클라이언트측에서 RDS 소켓과 같은 소켓을 생성할 수 있고, 상기 어플리케이션의 서버측과 통신을 시도할 수 있다(단계 1). RDS와 같은 상기 프로토콜은 노드 C에서 상기 SM으로 SA 경로 레코드 요청을 송신할 수 있다(단계 2). 상기 서브넷 관리자는 상기 프로토콜에 대한 응답을 제공할 수 있다(단계 3). 이 응답에는 상기 클라이언트측 어플리케이션의 상기 타겟에 대한 상기 어드레스 정보가 포함될 수 있다. 상기 서브넷 관리자로부터 상기 응답을 수신한 후, 상기 프로토콜은 연결 요청을 송신하는 것에 의해 노드 D와의 연결을 시도할 수 있다(단계 4). 상기 연결이 성공하는 경우, 상기 프로토콜은, 예를 들어 양쪽에서 RDMA_CM_EVENT_ESTABLISHED 이벤트를 통해, 통신 채널을 설정할 수 있다(단계 5). 이 시점에서 상기 상위 레이어 어플리케이션은 통신할 수 있다(단계 6).
초기 연결에서 무언가 잘못된 경우에, 상기 클라이언트측(노드 C)의 프로토콜이 랜덤 백오프 메커니즘(random backoff mechanism)과의 연결을 설정하기 위해 재시도할 수 있다. 상기 서버는 아직 상기 클라이언트가 통신할 의도가 있는지 알지 못한다. 상기 연결이 설정된 후에 어떠한 것이라도 잘못되면, 상기 RDS 양 측면들(클라이언트 및 어플리케이션 관점으로부터의 서버)은 상기 피어와의 재연결에 적극적으로 관여할 것(engage)이다. 상기 연결 프로세스에서의 상기 랜덤 백오프 메커니즘은 양측들이 연결에 관여하려할 때 경쟁 조건들을 피하는데 유용하다.
도 3은 실시예에 따르면, 접속이 끊어졌을 때, 2개의 노드들 사이에 진행중인 통신을 도시한다.
도 3에서, InfiniBand 서브넷(200) 내에서, 서브넷 관리자(210)는 노드 C(220)와 노드 D(225) 사이의 경로 통신을 제공할 수 있고, 상기 연결이 드랍할 때(단계 2) 노드 C와 노드 D 사이에 진행중인 통신이 존재한다(단계 1). 상기 연결 중 드랍은 예를 들어 상기 노드들에서 실행중인 어플리케이션들 중 하나의 실시간 마이그레이션과 관련될 수 있다. 두 프로토콜 엔드들은 재연결을 시도하기 전에 상기 연결이 끊어지고 임의의 랜덤 시간(즉, 백오프 시간)(단계 3)동안 대기하는 것을 결정할 수 있다. 도 3에 도시된 바와 같이 재연결을 시도하기 전에 각각의 측이 대기하는 상기 시간은 같거나 다를 수 있다. 상기 노드들은 SA 경로 레코드 요청들을 상기 SM에 송신하는 것에 의해 재연결을 시도할 수 있다(단계 4). 상기 SA 경로 레코드 응답들을 수신한 후(단계 5), 연결 요청을 송신할 수 있다(단계 6).
도 3의 도시된 케이스에서, 단계 3에서 상기 두 개의 노드들에 의해 선택된 상기 백오프 시간은 거의 동일했다. 따라서, 비록 노드 D가 노드 C보다 약간 빠른 상기 SA 경로 레코드 응답을 얻었고, 단계 6에서 먼저 상기 연결의 시작을 시도했더라도, 노드 C가 연결 요청 자체를 송신하기 전에 상기 연결 요청이 노드 C에 도달하지 않았다. 이 케이스에서, 상기 두 프로토콜 엔드들은 모두 대기중인 연결 요청(outstanding connection request)을 갖는다. 그 다음, 상기 노드들이 상기 피어로부터 상기 연결 요청을 수신할 때, 상기 노드들은 상기 연결 요청을 거부할 것이다(단계 7). 단계 8에서, 상기 두 개의 노드들은 재연결을 다시 시도하기 전에 랜덤 백오프 시간을 한 번 더 선택했다. 이 경우 노드 D에 의해 선택된 상기 랜덤 백오프 시간은 노드 C에 의해 선택된 상기 랜덤 백오프 시간보다 훨씬 더 길다. 결과적으로, 노드 C는 상기 우선순위를 얻고 상기 연결 설정 프로세스를 반복한다, SA 경로 레코드 요청을 송신하고(단계 8), 상기 서브넷 관리자로부터 응답을 수신하고(단계 10), 노드 D에 연결 요청을 송신하고(단계 11), 노드 D가 노드 C와의 연결 자체를 시작하기 위해 시도하기 전에 상기 연결 요청이 노드 D에 도달한다. 도 3에 도시된 상황에서, 노드 D는 상기 들어오는 연결을 수락한다(단계 12). 그 다음, 상기 통신은 단계들 13 및 14에서 상위 레이어 어플리케이션에 대해 재개될 수 있다.
도 3에서 추론하면, VM 마이그레이션(통신 중단)이 발생할 경우 상기 서브넷 관리자에 SA 경로 요청들이 퍼부어질 수 있다는 것이 명백해진다. 수천 개의 노드들이 있는 큰 서브넷에서, 각각의 노드로부터 추가로 하나의 SA 쿼리만 송신되더라도, 상기 SM은 수천 개의 메시지들로 넘치게될 수 있다. 실시간 마이그레이션들 동적 IB-기반 클라우드에서 발생하면, 많은 과도한 SA 쿼리들을 송신할 수 있다. SA 쿼리들의 양은 상기 네트워크의 노드들 수가 증가함으로써 다항식적으로 증가한다. 개시된 방법들 및 시스템들은 서브넷의 노드들에 의해 서브넷 관리자에 전송 된 SA 질의들의 수를 감소시킬 수있는 캐싱 메커니즘을 제공한다. 상기 개시된 방법들 및 시스템들은 서브넷의 노드들에 의해 상기 서브넷 관리자로 송신된 SA 쿼리들의 수를 감소시킬 수 있는 캐싱 메커니즘을 제공한다.
도 4는 실시예에 따르면, 클라우드 환경에서 SA 경로 캐싱을 지원하는 것을 도시한다. 도 4에 도시된 바와 같이, InfiniBand(IB) 서브넷(400)은 서브넷 관리자(SM)(410) 및 복수의 호스트 노드들 A-B(401-402)를 포함할 수 있다.
처음, 소스 호스트 노드 A(401)(예컨대, VM A(411))가 목적지 호스트 노드 B(402)(예컨대, VM B(412))와 통신하려고 시도할 때, 상기 소스 호스트 노드 A(401)는 SA 경로 레코드 요청을 상기 SM(410)에 송신할 수 있다. 그 다음, 상기 소스 호스트 노드는 상기 경로 정보(예컨대, 경로 레코드들(422))를 저장하기 위해 로컬 캐시(421)를 사용할 수 있다.
또한, 상기 소스 호스트 노드 A(401)가 동일한 목적지 호스트 노드 B(402)에 재연결을 시도할 때, 상기 서브넷 관리자에 요청을 송신하는 대신에, 상기 소스 호스트 노드 A(401)는 상기 로컬 캐시 (421)의 상기 캐싱 테이블에서 상기 목적지 호스트 노드의 상기 어드레스를 조회할 수 있다. 상기 경로 정보가 발견되는 경우, 상기 소스 호스트 노드 A(401)는 상기 경로 레코드들(422)에 의해 지시된 상기 경로(420)를 사용하여 상기 목적지 호스트 노드 B(402)에 연결할 수 있으며, SA 쿼리는 상기 SM(410)에 송신되지 않는다. 이와 달리, 상기 소스 호스트 노드 A(401)는 상기 필요한 경로 정보를 획득하기 위해 SA 경로 레코드 요청을 상기 SM(410)에 송신할 수 있다.
도 5는 본 발명의 실시예에 따르면, 클라우드 환경에서 SA 경로 캐싱을 지원하는 것을 도시한다. 특히, 도 5는 InfiniBand 환경의 서브넷 내에서 SA 경로 캐싱을 지원하는 것을 보여준다.
도 5에 도시된 바와 같이, InfiniBand(IB) 서브넷(500)은 상기 서로 다른 하이퍼바이저들(511-512)을 지원하는 복수의 호스트 노드들 A-B(501-502)를 포함할 수 있다. 게다가, 각각의 하이퍼바이저(512-513)는 다양한 가상 머신들(VMs)을 그 위에 실행하도록 한다. 예를 들어, 상기 호스트 노드 A(101)상의 상기 하이퍼바이저(511)는 상기 VM A(504)를 지원할 수 있고, 호스트 노드 B상의 하이퍼바이저(512)는 VM B(505)를 지원할 수 있다.
또한, 각각의 상기 호스트 노드들 A-B(501-502)는 하나 이상의 호스트 채널 어댑터들(HCAs)(517-518)과 관련될 수 있다. 도 5에 도시된 바와 같이, 상기 호스트 노드 A(501)상의 상기 HCA(517)는 VM A(504)에 의해 사용될 수 있는 QP a(508)와 같은 상기 큐 페어들(QP)을 이용할 수 있으며, 반면 상기 호스트 노드 B(502)상의 상기 HCA(518)는 VM B(505)에 의해 사용될 수 있는 QP b(507)를 이용할 수 있다.
실시예에 따르면, 또한 각각의 호스트 노드는 각각의 캐시(로컬 캐시와 같은)(535, 545)를 포함할 수있는 메모리(530, 540)를 지원할 수 있고, 결국 각각의 캐시는 캐시 테이블에 저장될 수 있는 하나 이상의 경로 레코드들(537, 547)을 포함할 수 있다.
또한, 상기 IB 서브넷(500)은 상기 네트워크 초기화, 스위치들 및 HCA들 상의 IB 포트들의 구성, 토폴로지 발견 및 경로 계산을 담당할 수 있는 서브넷 관리자(510)를 포함할 수 있다.
실시예에 따르면, 처음, 소스 호스트 노드 A(501)(예컨대, VM A(504))가 목적지 호스트 노드 B(502)(예컨대, VM B(505))와 통신하려고 시도할 때, 상기 소스 호스트 노드 A(501)는 SA 경로 레코드 요청을 상기 SM(510)에 송신할 수 있다. 그 다음, 상기 소스 호스트 노드는 상기 경로 정보(예컨대, 경로 레코드(537))를 저장하기 위해 로컬 캐시(535)를 사용할 수 있다.
또한, 상기 소스 호스트 노드 A(501)가 동일한 목적지 호스트 노드 B(502)에 재연결을 시도할 때, 상기 서브넷 관리자에 요청을 송신하는 대신에, 상기 소스 호스트 노드 A(501)는 상기 로컬 캐시(535)에서 상기 목적지 호스트 노드의 상기 어드레스를 조회할 수 있다.
실시예에 따르면, 상기 경로 정보가 발견되는 경우, 상기 소스 호스트 노드 A(501)는 상기 경로 레코드(537)에 의해 지시된 상기 경로를 사용하여 상기 목적지 호스트 노드 B(502)에 연결할 수 있으며, SA 쿼리는 상기 SM(510)에 송신되지 않는다. 이와 달리, 상기 소스 호스트 노드 A(501)는 상기 필요한 경로 정보를 획득하기 위해 SA 경로 레코드 요청을 상기 SM(410)에 송신할 수 있다.
실시예에 따르면, 호스트 노드 A (501)가 상기 서브넷 관리자(510)에 SA 경로 레코드 요청을 송신하는 상황에서, 상기 수신된 응답은 상기 목적지 호스트 노드 B(502)의 상기 임의의 GID 어드레스(DGID)와 연관된 상기 경로 특성들을 저장하기 위해 로컬 캐싱 테이블(상기 캐시(535) 내의)을 사용하도록 상기 호스트 노드 A(501)에 지시할 수 있는 캐싱 플래그를 포함할 수 있다.
도 6은 실시예에 따라, 클라우드 환경에서 서브넷 관리를 지원하는 방법을 도시한다. 상기 대표적인 방법(600)은 상기 클라우드 환경 내에서, 제 1 호스트 노드를 포함하는 복수의 호스트 노드들을 제공하는 단계 601에서 시작할 수 있으며,상기 제 1 호스트 노드는 적어도 제 1 하이퍼바이저 및 제 1 호스트 채널 어댑터와 관련된다. 단계 602에서, 상기 방법은 상기 제 1 호스트 노드 상에, 제 1 가상 머신을 제공하는 것을 계속할 수 있고, 상기 제 1 가상 머신은 복수의 어드레스들과 관련된다. 단계 603에서, 상기 방법은 상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 복수의 호스트 노드들 중 제공된 제 2 호스트 노드로 마이그레이션하는 것을 계속하며, 상기 제 2 호스트 노드는 적어도 제 2 하이퍼바이저 및 제 2 호스트 채널 어댑터와 관련되며, 상기 복수의 호스트 노드들 각각은 로컬 캐시를 포함하며, 각각의 로컬 캐시는 하나 이상의 경로 레코드들을 포함한다.
실시예에 따르면, 제 1 가상 머신을 마이그레이션하는 것은, 단계 604에서, 상기 제 1 하이퍼바이저로부터 상기 제 1 가상 머신을 디태치하는 단계를 포함할 수 있으며, 상기 제 1 하이퍼바이저로부터 제 1 가상 머신을 디태치하는 단계는 상기 제 1 가상 머신과 관련된 제 1 가상 기능을 상기 제 1 가상 머신으로부터 디태치하는 단계를 포함한다. 단계 605에서, 상기 방법은 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 상기 제 2 호스트 노드에 제공하는 것을 계속한다. 단계 606에서, 상기 방법은 상기 복수의 어드레스들을 제 2 가상 기능에 할당할 수 있으며, 상기 제 2 가상 기능은 상기 제 2 하이퍼바이저와 관련된다. 단계 607에서, 상기 방법은 상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 제 2 호스트 노드상의 제 2 가상 머신으로 마이그레이션할 수 있다. 단계 608에서, 상기 방법은 상기 제 2 가상 머신을 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 노출하는 것과 함께 결론 내릴 수 있다.
실시예에 따르면, 상기 SA 경로 레코드 캐싱 메커니즘은 RDS 프로토콜과 같은, 프로토콜로 구현될 수 있고, 캐싱 테이블은 각각의 노드의 상기 메모리에 저장될 수 있다. 아래의 수도 코드와 같은 프로그램을 사용할 수 있다.
Figure 112017037393074-pct00001
Figure 112017037393074-pct00002
Figure 112017037393074-pct00003
실시예에 따르면, 처음, 소스 호스트(SHost)가 목적지 호스트 노드(DHost)와 통신하려고 시도하며, 상기 SHost는 SA 경로 레코드 요청을 상기 서브넷 관리자에 송신할 수 있다. 상기 응답에 상기 캐싱 플래그가 발생하면, 상기 SHost는 상기 DHost(DGID)의 상기 임의의 GID 어드레스와 관련된 상기 경로 특성들을 저장하기 위해 로컬 캐싱 테이블을 사용할 수 있다. 또한, 상기 SHost는 이제 캐싱이 상기 서브넷 관리자에 의해 지원된다는 것을 알고 있으며, 따라서 다음에, 상기 SHost가 임의의 DHost에 연결 또는 재연결을 시도하면, 먼저 상기 캐싱 테이블을 조회할 것이다. 상기 임의의 DHost에 대한 상기 경로 정보가 발견되는 경우, 상기 SHost는 상기 서브넷 관리자에게 송신된 SA 쿼리를 송신하지 못하게 막을 수 있고, 대신 SHost는 상기 캐싱 테이블 내의 상기 정보를 사용하여 상기 DHost와 연결을 시도할 수 있다.
다시 도 3을 참조하면, 중단된 연결(단계 2)을 참조하면, 상술한 캐싱 메커니즘이 활성화된 시스템에서, SA 쿼리들은 상기 서브넷 관리자에게 송신될 필요가 없다. 도 3에 기술된 케이스에서, 상기 단계들 4, 5, 9 및 10이 제거되며, 따라서 상기 연결 재-설정은 더 빠르고 상기 서브넷 관리자 상의 상기 로드(예컨대, SA 경로 요청들 및 응답들)는 더 낮다.
본 발명의 많은 특징들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들의 도움으로, 또는 이를 사용하여 수행될 수 있다. 결과적으로, 본 발명의 특징들은(예컨대, 하나 이상의 프로세서들을 포함하는) 프로세싱 시스템을 사용하여 구현될 수 있다.
본 발명의 특징들은 명세서에 표현된 상기 특징들 중 임의의 것을 수행하기 위해 프로세싱 시스템을 프로그래밍하는데 사용될 수 있는 위에/내부에 저장된 명령어들을 갖는 저장 매체(media) 또는 컴퓨터 판독 가능 매체(media)인 컴퓨터 프로그램 제품의 도움으로, 또는 이를 사용하여 구현될 수 있다. 저장 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, 나노시스템들(분자 메모리 IC들을 포함하는) 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
상기 머신 판독 가능 매체(media) 중 임의의 하나에 저장되는, 본 발명의 특징들은 프로세싱 시스템의 상기 하드웨어를 제어하고 프로세싱 시스템이 본 발명의 상기 결과들을 활용하여 다른 메커니즘과 상호작용할 수 있게 하는 소프트웨어 및/또는 펌웨어에 통합될 수 있다. 이러한 소프트웨어 또는 펌웨어에는 이들로만 한정되는 것은 아니지만, 어플리케이션 코드, 디바이스 드라이버들, 운영 체제들 및 실행 환경들/컨테이너들이 포함될 수 있다.
본 발명의 특징들은 또한 예를 들어, 주문형 집적 회로들(ASICs)과 같은 하드웨어 컴포넌트들을 사용하여 하드웨어로 구현될 수 있다. 본 명세서에 기술된 상기 기능들을 수행하기 위한 상기 하드웨어 상태 머신의 구현은 관련 기술 분야의 통상의 기술자에게 명백할 것이다.
또한, 본 발명은 하나 이상의 프로세서들, 메모리 및/또는 본 발명의 공개된 기술에 따라 프로그램된 컴퓨터 판독 가능 저장 매체를 포함하는 하나 이상의 종래의 범용 또는 특수 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 사용하여 편리하게 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 분야의 통상의 기술자에게 명백한 바와 같이, 본 발명의 공개된 기술에 기초하여 숙련된 프로그래머들에 의해 용이하게 준비 될 수 있다.
본 발명의 다양한 실시예들이 상술되었지만, 이들 예들은 제한이 없는 예로서 표현된 것임을 이해해야한다. 본 발명의 사상 및 범위를 벗어나지 않으면서 형태 및 세부사항에서의 다양한 변화가 이루어질 수 있음은 통상의 기술자에게 명백할 것이다.
본 발명은 특정 기능의 실행 및 그 관계를 설명하는 기능적 빌딩 블록들의 도움으로 위에서 기술되었다. 이러한 기능적 빌딩 블록들의 경계들은 종종 기술의 편의를 위해 임의로 정의되었다. 상기 특정된 기능들과 그 관계들이 적절히 수행되는 한, 대체 경계들을 정의할 수 있다. 그러한 임의의 대체 경계들은 따라서 본 발명의 범위 및 사상 내에 있다.
본 발명의 상기 설명은 예시 및 설명을 목적으로 제공되었다. 본 설명은 완전한 것(exhaustive)으로 의도되거나 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 본 발명의 외연 및 범위는 상술한 대표적인 실시예들 중 어느 것에 의해서도 제한되어서는 안된다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (22)

  1. 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법으로서,
    상기 클라우드 환경 내에서, 제 1 호스트 노드와 제 3 호스트 노드를 포함하는 복수의 호스트 노드들을 제공하는 단계와, 상기 제 1 호스트 노드는 적어도 제 1 하이퍼바이저(hypervisor) 및 제 1 호스트 채널 어댑터와 관련되며, 상기 복수의 호스트 노드들 각각은 로컬 캐시(local cache)를 포함하고, 각각의 로컬 캐시는 하나 이상의 경로 레코드들을 포함하며;
    상기 제 1 호스트 노드 상에, 제 1 가상 머신을 제공하는 단계와, 상기 제 1 가상 머신은 복수의 어드레스들과 관련되며;
    상기 제 3 호스트 노드에 의해, 쿼리를 서브넷 관리자로 전송하는 단계와, 상기 쿼리는 제 1 가상 머신에 대한 제 1 경로 레코드를 요청하고, 상기 제 1 경로 레코드는 적어도 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 포함하며;
    서브넷 관리자로부터 수신된 제 1 경로 레코드를 제 3 호스트 노드와 관련된 로컬 캐시 내에 저장하는 단계와;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 복수의 호스트 노드들 중 제공된 제 2 호스트 노드 상의 제 2 가상 머신으로 마이그레이션하는 단계와, 상기 제 2 호스트 노드는 적어도 제 2 하이퍼바이저 및 제 2 호스트 채널 어댑터와 관련되며;
    상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 제공된 제 2 호스트 노드로 마이그레이션하는 경우, 상기 제 3 호스트 노드에 의해 통신 단절을 검출하는 단계와;
    상기 제 3 호스트 노드에 의해, 상기 제 3 호스트 노드와 관련된 로컬 캐시의 상기 제 1 경로 레코드를 조회하는 단계와; 그리고
    상기 제 1 경로 레코드에 기초하여, 상기 제 3 호스트 노드에 의해, 서브넷 관리자와의 추가 통신 없이, 상기 제 3 호스트 노드와 상기 제 2 가상 머신 사이의 통신을 설정하는 단계
    를 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  2. 청구항 1에 있어서,
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션하는 단계는:
    상기 제 1 하이퍼바이저로부터 상기 제 1 가상 머신을 디태치(detach)하는 단계와, 상기 제 1 하이퍼바이저로부터 제 1 가상 머신을 디태치하는 단계는 상기 제 1 가상 머신과 관련된 제 1 가상 기능을 상기 제 1 가상 머신으로부터 디태치하는 단계를 포함하며;
    상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 상기 제 2 호스트 노드에 제공하는 단계와;
    상기 복수의 어드레스들을 제 2 가상 기능에 할당하는 단계와, 상기 제 2 가상 기능은 상기 제 2 하이퍼바이저와 관련되며;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 제 2 호스트 노드상의 제 2 가상 머신으로 마이그레이션하는 단계와; 그리고
    상기 제 2 가상 머신을 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 노출하는 단계를 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  3. 청구항 2에 있어서,
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션한 후, 상기 제 2 가상 머신과 제 3 가상 머신 사이에 통신을 설정(establish)하는 단계를 더 포함하며, 상기 제 3 가상 머신은 상기 복수의 호스트 노드들의 상기 제 3 호스트 노드 상에서 제공되며; 그리고
    상기 제 1 가상 머신 및 상기 제 3 가상 머신은 상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션하기 전에 통신하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  4. 청구항 1에 있어서,
    상기 하나 이상의 경로 레코드들 각각은 복수의 특징들을 포함하고, 상기 복수의 특징들은 서비스 레벨 및 최대 전송 단위(maximum transmission unit)를 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  5. 청구항 1에 있어서,
    상기 제 1 경로 레코드는 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자에게 송신된 상기 제 1 가상 머신과 관련된 상기 쿼리에 기초하여 생성되며, 상기 서브넷 관리자는 상기 클라우드 환경과 관련되는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  6. 청구항 5에 있어서,
    상기 제 1 경로 레코드가 생성된 후, 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 관한 추가적 쿼리들이 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자로 송신되지 않는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  7. 청구항 5 또는 6 중 어느 한 항에 있어서,
    상기 제 3 호스트 노드에 의해 상기 서브넷 관리자에 송신된 상기 제 1 가상 머신과 관련된 상기 쿼리에 응답하여, 상기 서브넷 관리자는 제 1 마킹된 경로 레코드를 리턴하며, 상기 제 1 마킹된 경로 레코드는 경로 캐싱 가능 마크(path caching enabled mark)를 포함하며, 상기 경로 캐싱 가능 마크는 상기 제 1 경로 레코드가 상기 통신 단절에 걸쳐 지속됨을 표시하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  8. 청구항 7에 있어서,
    상기 복수의 호스트 노드들의 다른 호스트 상에 제공된 다른 가상 머신과 관련된 다른 복수의 어드레스들에 관한 상기 서브넷 관리자에 대한 다른 쿼리에 응답하여, 상기 서브넷 관리자는 다른 마킹된 경로 레코드를 리턴하며, 상기 다른 마킹된 경로 레코드는 경로 캐싱 가능 마크를 포함하며, 상기 경로 캐싱 가능 마크는 다른 경로 레코드가 다른 통신 단절에 걸쳐 지속하는 것을 표시하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  9. 청구항 3에 있어서,
    상기 제 2 가상 머신과 상기 제 3 가상 머신 사이의 상기 통신은 InfiniBand 프로토콜에 기초하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  10. 청구항 2에 있어서,
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션한 후, 상기 제 2 가상 머신과 제 3 엔티티 사이의 통신을 설정하는 단계와, 상기 제 3 엔티티는 물리적 호스트, 저장 디바이스, 또는 이전에 InfiniBand 프로토콜을 통해 마이그레이션된 제 1 가상 머신과 통신하는 다른 엔티티 중 하나이며;
    상기 제 3 엔티티와 관련된 로컬 캐시 내에 제 1 경로 레코드를 저장하는 단계와, 상기 제 1 경로 레코드는 상기 제 1 가상 머신과 관련된 적어도 상기 복수의 어드레스들을 포함하며;
    상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 제공된 제 2 호스트 노드로 마이그레이션하는 경우, 상기 제 3 엔티티에 의해 통신 단절을 검출하는 단계와;
    상기 제 3 엔티티에 의해 상기 제 3 엔티티와 관련된 상기 로컬 캐시의 상기 제 1 경로 레코드를 조회하는 단계와; 그리고
    적어도 상기 제 1 경로 레코드에 기초하여, 상기 제 2 가상 머신과 제 3 엔티티 사이의 통신을 설정하는 단계를 더 포함하며;
    상기 제 1 가상 머신 및 상기 제 3 엔티티는 상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션하기 전에 통신하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하기 위한 방법.
  11. 클라우드 환경에서 서브넷 관리를 지원하는 시스템에 있어서,
    상기 시스템은:
    하나 이상의 마이크로프로세서들; 및
    상기 하나 이상의 마이크로프로세서들 상에서 실행 중인 프로세서를 포함하며, 상기 프로세서는 단계들을 수행하기 위해 동작하며, 상기 단계들은:
    상기 클라우드 환경 내에서, 제 1 호스트 노드 및 제 3 호스트 노드를 포함하는 복수의 호스트 노드들을 제공하는 단계와, 상기 제 1 호스트 노드는 적어도 제 1 하이퍼바이저 및 제 1 호스트 채널 어댑터와 관련되고, 상기 복수의 호스트 노드들 각각은 로컬 캐시를 포함하고, 각각의 로컬 캐시는 하나 이상의 경로 레코드들을 포함하며;
    상기 제 1 호스트 노드 상에, 제 1 가상 머신을 제공하는 단계와, 상기 제 1 가상 머신은 복수의 어드레스들과 관련되며;
    상기 제 3 호스트 노드에 의해, 쿼리를 서브넷 관리자로 전송하는 단계와, 상기 쿼리는 제 1 가상 머신에 대한 제 1 경로 레코드를 요청하고, 상기 제 1 경로 레코드는 적어도 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 포함하며;
    서브넷 관리자로부터 수신된 제 1 경로 레코드를 제 3 호스트 노드와 관련된 로컬 캐시 내에 저장하는 단계와;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 복수의 호스트 노드들 중 제공된 제 2 호스트 노드 상의 제 2 가상 머신으로 마이그레이션하는 단계와, 상기 제 2 호스트 노드는 적어도 제 2 하이퍼바이저 및 제 2 호스트 채널 어댑터와 관련되며;
    상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 제공된 제 2 호스트 노드로 마이그레이션하는 경우, 상기 제 3 호스트 노드에 의해 통신 단절을 검출하는 단계와;
    상기 제 3 호스트 노드에 의해, 상기 제 3 호스트 노드와 관련된 로컬 캐시의 상기 제 1 경로 레코드를 조회하는 단계와; 그리고
    상기 제 1 경로 레코드에 기초하여, 상기 제 3 호스트 노드에 의해, 서브넷 관리자와의 추가 통신 없이, 상기 제 3 호스트 노드와 상기 제 2 가상 머신 사이의 통신을 설정하는 단계
    를 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  12. 청구항 11에 있어서,
    상기 프로세서는 단계들을 수행하기 위해 동작하며, 상기 단계들은:
    상기 제 1 가상 머신을 제 1 하이퍼바이저로부터 디태치하는 단계와, 상기 제 1 하이퍼바이저로부터 상기 제 1 가상 머신을 디태치하는 단계는 상기 제 1 가상 머신과 관련된 제 1 가상 기능을 상기 제 1 가상 머신으로부터 디태치하는 단계를 포함하며;
    상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 상기 제 2 호스트 노드에 제공하는 단계와;
    상기 복수의 어드레스들을 제 2 가상 기능에 할당하는 단계와, 상기 제 2 가상 기능은 상기 제 2 하이퍼바이저와 관련되며;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 제 2 호스트 노드상의 제 2 가상 머신으로 마이그레이션하는 단계와; 그리고
    상기 제 2 가상 머신을 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 노출하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  13. 청구항 12에 있어서,
    상기 프로세서는 단계들을 수행하기 위해 동작하며, 상기 단계들은:
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션한 후, 상기 제 2 가상 머신과 제 3 가상 머신 사이에 통신을 설정하는 단계를 더 포함하며, 상기 제 3 가상 머신은 상기 복수의 호스트 노드들의 상기 제 3 호스트 노드 상에서 제공되며;
    상기 제 1 가상 머신 및 상기 제 3 가상 머신은 상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션하기 전에 통신하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  14. 청구항 11에 있어서,
    상기 하나 이상의 경로 레코드들 각각은 복수의 특징들을 포함하고, 상기 복수의 특징들은 서비스 레벨 및 최대 전송 단위(maximum transmission unit)를 포함하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  15. 청구항 11에 있어서,
    상기 제 1 경로 레코드는 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자에게 송신된 상기 제 1 가상 머신과 관련된 상기 쿼리에 기초하여 생성되며, 상기 서브넷 관리자는 상기 클라우드 환경과 관련되는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  16. 청구항 15에 있어서,
    상기 제 1 경로 레코드가 생성된 후, 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 관한 추가적 쿼리들이 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자로 송신되지 않는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  17. 청구항 13에 있어서,
    상기 제 2 가상 머신과 상기 제 3 가상 머신 사이의 상기 통신은 InfiniBand 프로토콜에 기초하는 것을 특징으로 하는 클라우드 환경에서 서브넷 관리를 지원하는 시스템.
  18. 클라우드 환경에서 서브넷 관리를 지원하기 위한 명령어들이 저장된 비-일시적 머신 판독 가능 저장 매체로서, 실행될 때 시스템이 단계들을 수행하게 하며, 상기 단계들은:
    상기 클라우드 환경 내에서, 제 1 호스트 노드 및 제 3 호스트 노드를 포함하는 복수의 호스트 노드들을 제공하는 단계와, 상기 제 1 호스트 노드는 적어도 제 1 하이퍼바이저 및 제 1 호스트 채널 어댑터와 관련되며, 상기 복수의 호스트 노드들 각각은 로컬 캐시(local cache)를 포함하고, 각각의 로컬 캐시는 하나 이상의 경로 레코드들을 포함하며;
    상기 제 1 호스트 노드 상에, 제 1 가상 머신을 제공하는 단계와, 상기 제 1 가상 머신은 복수의 어드레스들과 관련되며;
    상기 제 3 호스트 노드에 의해, 쿼리를 서브넷 관리자로 전송하는 단계와, 상기 쿼리는 제 1 가상 머신에 대한 제 1 경로 레코드를 요청하고, 상기 제 1 경로 레코드는 적어도 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 포함하며;
    서브넷 관리자로부터 수신된 제 1 경로 레코드를 제 3 호스트 노드와 관련된 로컬 캐시 내에 저장하는 단계와;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 복수의 호스트 노드들 중 제공된 제 2 호스트 노드 상의 제 2 가상 머신으로 마이그레이션하는 단계와, 상기 제 2 호스트 노드는 적어도 제 2 하이퍼바이저 및 제 2 호스트 채널 어댑터와 관련되며;
    상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 제공된 제 2 호스트 노드로 마이그레이션하는 경우, 상기 제 3 호스트 노드에 의해 통신 단절을 검출하는 단계와;
    상기 제 3 호스트 노드에 의해, 상기 제 3 호스트 노드와 관련된 로컬 캐시의 상기 제 1 경로 레코드를 조회하는 단계와; 그리고
    상기 제 1 경로 레코드에 기초하여, 상기 제 3 호스트 노드에 의해, 서브넷 관리자와의 추가 통신 없이, 상기 제 3 호스트 노드와 상기 제 2 가상 머신 사이의 통신을 설정하는 단계
    를 포함하는 것을 특징으로 하는 비-일시적 머신 판독 가능 저장 매체.
  19. 청구항 18에 있어서,
    상기 단계들은:
    상기 제 1 하이퍼바이저로부터 상기 제 1 가상 머신을 디태치하는 단계와, 상기 제 1 하이퍼바이저로부터 상기 제 1 가상 머신을 디태치하는 단계는 상기 제 1 가상 머신과 관련된 제 1 가상 기능을 상기 제 1 가상 머신으로부터 디태치하는 단계를 포함하며;
    상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들을 상기 제 2 호스트 노드에 제공하는 단계와;
    상기 복수의 어드레스들을 제 2 가상 기능에 할당하는 단계와, 상기 제 2 가상 기능은 상기 제 2 하이퍼바이저와 관련되며;
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 제 2 호스트 노드상의 제 2 가상 머신으로 마이그레이션하는 단계와; 그리고
    상기 제 2 가상 머신을 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 노출하는 단계를 더 포함하는 것을 특징으로 하는 비-일시적 머신 판독 가능 저장 매체.
  20. 청구항 19에 있어서,
    상기 단계들은:
    상기 제 1 가상 머신을 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션한 후, 상기 제 2 가상 머신과 제 3 가상 머신 사이에 통신을 설정하는 단계를 더 포함하며, 상기 제 3 가상 머신은 상기 복수의 호스트 노드들의 상기 제 3 호스트 노드 상에서 제공되며; 그리고
    상기 제 1 가상 머신 및 상기 제 3 가상 머신은 상기 제 1 가상 머신이 상기 제 1 호스트 노드로부터 상기 클라우드 환경 내의 상기 제공된 제 2 호스트 노드로 마이그레이션하기 전에 통신하는 것을 특징으로 하는 비-일시적 머신 판독 가능 저장 매체.
  21. 청구항 18에 있어서,
    상기 하나 이상의 경로 레코드들 각각은 복수의 특징들을 포함하고, 상기 복수의 특징들은 서비스 레벨 및 최대 전송 단위(maximum transmission unit)를 포함하는 것을 특징으로 하는 비-일시적 머신 판독 가능 저장 매체.
  22. 청구항 21에 있어서,
    상기 제 1 경로 레코드는 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자에게 송신된 상기 제 1 가상 머신과 관련된 쿼리에 기초하여 생성되며, 상기 서브넷 관리자는 상기 클라우드 환경과 관련되며; 및
    상기 제 1 경로 레코드가 생성된 후, 상기 제 1 가상 머신과 관련된 상기 복수의 어드레스들에 관한 추가적 쿼리들이 상기 제 3 호스트 노드에 의해 상기 서브넷 관리자로 송신되지 않는 것을 특징으로 하는 비-일시적 머신 판독 가능 저장 매체.
KR1020177010407A 2014-10-30 2015-10-28 서브넷 관리(sa) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법 KR102349208B1 (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201462072847P 2014-10-30 2014-10-30
US62/072,847 2014-10-30
US201462075000P 2014-11-04 2014-11-04
US62/075,000 2014-11-04
US201462076336P 2014-11-06 2014-11-06
US62/076,336 2014-11-06
US201562121294P 2015-02-26 2015-02-26
US62/121,294 2015-02-26
US201562133179P 2015-03-13 2015-03-13
US62/133,179 2015-03-13
US14/924,281 US10198288B2 (en) 2014-10-30 2015-10-27 System and method for providing a dynamic cloud with subnet administration (SA) query caching
US14/924,281 2015-10-27
PCT/US2015/057860 WO2016069773A1 (en) 2014-10-30 2015-10-28 System and method for providing a dynamic cloud with subnet administration (sa) query caching

Publications (2)

Publication Number Publication Date
KR20170076666A KR20170076666A (ko) 2017-07-04
KR102349208B1 true KR102349208B1 (ko) 2022-01-10

Family

ID=55854060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177010407A KR102349208B1 (ko) 2014-10-30 2015-10-28 서브넷 관리(sa) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법

Country Status (6)

Country Link
US (3) US10198288B2 (ko)
EP (1) EP3213200B1 (ko)
JP (1) JP6613308B2 (ko)
KR (1) KR102349208B1 (ko)
CN (1) CN107079046B (ko)
WO (1) WO2016069773A1 (ko)

Families Citing this family (19)

* 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
US10318325B2 (en) * 2015-01-07 2019-06-11 International Business Machines Corporation Host-side cache migration
US10560318B2 (en) * 2016-01-27 2020-02-11 Oracle International Corporation System and method for correlating fabric-level group membership with subnet-level partition membership in a high-performance computing environment
US10348645B2 (en) 2016-01-27 2019-07-09 Oracle International Corporation System and method for supporting flexible framework for extendable SMA attributes in a high performance computing environment
CN109479194B (zh) * 2016-07-18 2023-04-07 瑞典爱立信有限公司 加密安全性以及完整性保护
WO2018083724A1 (ja) * 2016-11-01 2018-05-11 株式会社日立製作所 仮想計算機システム及び仮想計算機のマイグレーション方法
US10397096B2 (en) 2017-04-28 2019-08-27 International Business Machines Corporation Path resolution in InfiniBand and ROCE networks
US11243899B2 (en) 2017-04-28 2022-02-08 International Business Machines Corporation Forced detaching of applications from DMA-capable PCI mapped devices
US10778767B2 (en) 2017-04-28 2020-09-15 International Business Machines Corporation Persistent memory replication in RDMA-capable networks
US10635477B2 (en) 2017-06-12 2020-04-28 Red Hat Israel, Ltd. Disabling in-memory caching of a virtual machine during migration
US10445086B2 (en) * 2017-09-28 2019-10-15 At&T Intellectual Property I, L.P. Virtualization platform for creating, deploying, modifying, and relocating applications
CN107707662A (zh) * 2017-10-16 2018-02-16 大唐网络有限公司 一种基于node的分布式缓存方法、装置及存储介质
CN109361600B (zh) * 2018-04-20 2021-08-10 中国移动通信有限公司研究院 一种获取路径标识的方法和设备
US20200028758A1 (en) * 2018-07-17 2020-01-23 Cisco Technology, Inc. Multi-cloud connectivity using srv6 and bgp
US10972347B2 (en) * 2019-01-16 2021-04-06 Hewlett Packard Enterprise Development Lp Converting a first cloud network to second cloud network in a multi-cloud environment
FR3094812A1 (fr) * 2019-04-08 2020-10-09 Orange Procédé et dispositif de migration d’une fonction virtualisée en cas de défaillance de l’environnement technique de serveurs
US11294715B2 (en) * 2019-08-28 2022-04-05 Marvell Asia Pte, Ltd. System and method for queuing work within a virtualized scheduler based on in-unit accounting of in-unit entries
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189432A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
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
US20130254404A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (hca) model

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4430993C1 (de) 1994-08-31 1995-10-26 Siemens Ag Verfahren zur adaptiven Wegesuche in einem Kommunikationsnetz
US8364891B2 (en) 2006-04-04 2013-01-29 Permabit Technology Corporation Storage assignment technique for scalable and fault tolerant storage system
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
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
JP5222651B2 (ja) * 2008-07-30 2013-06-26 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムの制御方法
US9973446B2 (en) * 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8737399B2 (en) 2010-01-05 2014-05-27 Futurewei Technologies, Inc. Enhanced hierarchical virtual private local area network service (VPLS) system and method for Ethernet-tree (E-Tree) services
CN102859949B (zh) 2010-04-30 2015-12-02 惠普发展公司,有限责任合伙企业 用于在胖树网络中路由数据分组的方法
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
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
US9852073B2 (en) * 2012-08-07 2017-12-26 Dell Products L.P. System and method for data redundancy within a cache
US8862772B2 (en) 2012-10-09 2014-10-14 Cisco Technology, Inc. System and method for implementing a multilevel data center fabric in a network environment
US9225624B2 (en) 2012-12-20 2015-12-29 Dell Products L.P. Systems and methods for topology discovery and application in a border gateway protocol based data center
US9641465B1 (en) * 2013-08-22 2017-05-02 Mellanox Technologies, Ltd Packet switch with reduced latency
US9264351B2 (en) 2013-09-07 2016-02-16 Cisco Technology, Inc. System and method for utilization of a segmentation identification to support transmission of data to a destination node
CN104954265B (zh) 2014-03-25 2018-06-15 华为技术有限公司 发送组播报文的方法及交换机
US10033647B2 (en) 2015-10-13 2018-07-24 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189432A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
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
US20130254404A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (hca) model

Also Published As

Publication number Publication date
WO2016069773A1 (en) 2016-05-06
JP2017538201A (ja) 2017-12-21
US20200379799A1 (en) 2020-12-03
US11528238B2 (en) 2022-12-13
EP3213200A1 (en) 2017-09-06
CN107079046A (zh) 2017-08-18
KR20170076666A (ko) 2017-07-04
US20190163522A1 (en) 2019-05-30
JP6613308B2 (ja) 2019-11-27
US20160127495A1 (en) 2016-05-05
US10198288B2 (en) 2019-02-05
CN107079046B (zh) 2020-11-17
US10747575B2 (en) 2020-08-18
EP3213200B1 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
KR102349208B1 (ko) 서브넷 관리(sa) 쿼리 캐싱을 통한 동적 클라우드 제공을 위한 시스템 및 방법
US11934341B2 (en) Virtual RDMA switching for containerized
US10664301B2 (en) Methods and systems for establishing connections associated with virtual machine migrations
US9893977B2 (en) System and method for supporting live migration of virtual machines in a virtualization environment
US9509615B2 (en) Managing link aggregation traffic in a virtual environment
US9311122B2 (en) System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
WO2017114017A1 (zh) 实现负载均衡的计算机设备、系统和方法
US7970913B2 (en) Virtualizing sockets to enable the migration of a system environment
US20230179652A1 (en) Distributed resilient load-balancing for multipath transport protocols
US9350666B2 (en) Managing link aggregation traffic in a virtual environment
EP3117588B1 (en) Scalable address resolution
US11218358B2 (en) Network connection and termination system
US11076027B1 (en) Network communications protocol selection based on network topology or performance
KR20210152365A (ko) 데이터 저장 장치, 및 패브릭-부착 저장 장치를 가상화를 위한 시스템 및 방법
US11929883B1 (en) Supporting virtual machine migration when network manager or central controller is unavailable

Legal Events

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