KR20170016448A - 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치 - Google Patents

가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치 Download PDF

Info

Publication number
KR20170016448A
KR20170016448A KR1020177000348A KR20177000348A KR20170016448A KR 20170016448 A KR20170016448 A KR 20170016448A KR 1020177000348 A KR1020177000348 A KR 1020177000348A KR 20177000348 A KR20177000348 A KR 20177000348A KR 20170016448 A KR20170016448 A KR 20170016448A
Authority
KR
South Korea
Prior art keywords
target
pcpus
vcpus
virtual
vcpu
Prior art date
Application number
KR1020177000348A
Other languages
English (en)
Other versions
KR101847518B1 (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 KR20170016448A publication Critical patent/KR20170016448A/ko
Application granted granted Critical
Publication of KR101847518B1 publication Critical patent/KR101847518B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/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/45579I/O management, e.g. providing access to device drivers or storage

Abstract

본 발명의 실시예는 가상화 플랫폼에 의한 중단을 처리하는 방법을 제공하며, 상기 방법은, i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하는 단계; i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하는 단계; i번째 물리적 중단에 따라 i번째 가상 중단을 결정하는 단계; 및 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계를 포함한다. 전술한 기술적 솔루션에 따르면, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.

Description

가상 플랫폼의 처리 중단 방법 및 관련 장치{INTERRUPTION HANDLING METHOD AND RELEVANT DEVICE OF VIRTUAL PLATFORM}
본 발명의 실시예는 통신 기술 분야에 관한 것이며, 더 구체적으로 가상화 플랫폼에 의한 중단을 처리하는 방법, 및 관련 장치에 관한 것이다.
가상화 기술은 저층 하드웨어 장치가 고층 운영체제 및 응용 프로그램과 분리되는 디커플링 기술이다. 현재의 대중적인 클라우드 컴퓨팅(Cloud Computing) 플랫폼을 지원하기 위한 중요한 저층 기술 중 하나로서, 가상화 기술은 물리적 장치의 자원 활용을 크게 개선할 수 있다. 종래의 물리적 서버와 비교해서, 가상 머신은 격리 및 캡슐화 면에서 더 나은 성능을 가지며, 가상 디스크 이미지(Virtual Disk Image, VDI) 내에 전체 가상 머신의 정보를 저장할 수 있고, 이것은 가상 머신의 스냅챗, 백업, 클론, 및 분배와 같은 동작을 용이하게 한다. 가상화에 의해 오버헤드가 생성되는데, 이에 의해 동급의 구성에서, 가상화 머신의 성능이 물리적 머신의 성능보다 빈약하게 된다. 어떻게 가상 머신의 성능을 효과적으로 개선할 것인가가 당 분야에서 해결해야 하는 과제이다.
본 발명의 실시예는 가상화 플랫폼에 의한 중단을 처리하기 위한 방법, 및 관련 장치를 제공하며, 이것은 가상화 플랫폼 상에서의 중단 오버헤드의 충격을 완화할 수 있고, 이에 의해 가상화 머신의 성능을 효과적으로 개선할 수 있다.
제1 관점에 따라, 본 발명의 실시예는 가상화 플랫폼에 의한 중단을 처리하는 방법을 제공하며, 상기 방법은: 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(virtual machine, VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 방법은 Host에 의해 실행되고, 상기 방법은: i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하는 단계 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계(affinity relationship)를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하는 단계; i번째 물리적 중단에 따라 i번째 가상 중단을 결정하는 단계; 및 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계를 포함하며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제1 관점을 참조해서, 제1 관점의 제1 가능한 실시 방식에서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다.
제1 관점을 참조해서, 제1 관점의 제2 가능한 실시 방식에서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다.
제1 관점의 제2 가능한 실시 방식을 참조해서, 제1 관점의 제3 가능한 실시 방식에서, i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계가 일대다(one-to-many) 친화력 관계일 때, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계를 포함한다.
제1 관점의 제3 가능한 실시 방식을 참조해서, 제1 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계를 포함하며, 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
제2 관점에 따라, 본 발명의 실시예는 가상화 플랫폼에 의한 중단을 처리하는 방법을 제공하며, 상기 방법은: 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, Y개의 VM의 각각의 VM은 반가상화(paravirtualized) 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 방법은 Host에 의해 실행되고, 상기 방법은: j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하는 단계 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하는 단계; i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하는 단계; 및 k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계를 포함하며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제2 관점을 참조해서, 제2 관점의 제1 가능한 실시 방식에서, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다.
제2 관점을 참조해서, 제2 관점의 제2 가능한 실시 방식에서, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다.
제2 관점의 제2 가능한 실시 방식을 참조해서, 제2 관점의 제3 가능한 실시 방식에서, i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계를 포함한다.
제2 관점의 제3 가능한 실시 방식을 참조해서, 제2 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계를 포함하며, 상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
제3 관점에 따라, 본 발명의 실시예는 호스트(Host)를 제공하며, 상기 Host는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 Host, 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 Host는: i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있는 제1 결정 유닛 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있는 제2 호출 유닛(invoking unit); i번째 물리적 중단에 따라 i번째 가상 중단을 결정하도록 구성되어 있는 제3 결정 유닛; 및 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있는 제4 결정 유닛을 포함하며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제3 관점을 참조해서, 제3 관점의 제1 가능한 실시 방식에서, 제1 결정 유닛은: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다.
제3 관점을 참조해서, 제3 관점의 제2 가능한 실시 방식에서, 제1 결정 유닛은: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다.
제3 관점의 제2 가능한 실시 방식을 참조해서, 제3 관점의 제3 가능한 실시 방식에서, 제4 결정 유닛은 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 추가로 구성되어 있다.
제3 관점의 제3 가능한 실시 방식을 참조해서, 제3 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 제4 결정 유닛은 구체적으로: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
제4 관점에 따라, 본 발명의 실시예는 호스트(Host)를 제공하며, 상기 Host는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 Host는: j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있는 제1 결정 유닛 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있는 제2 호출 유닛; i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하도록 구성되어 있는 제3 결정 유닛; 및 k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있는 제4 결정 유닛을 포함하며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제4 관점을 참조해서, 제4 관점의 제1 가능한 실시 방식에서, 제1 결정 유닛은: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다.
제4 관점을 참조해서, 제4 관점의 제2 가능한 실시 방식에서, 제1 결정 유닛은: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다.
제4 관점의 제2 가능한 실시 방식을 참조해서, 제4 관점의 제3 가능한 실시 방식에서, 제4 결정 유닛은 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하고; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다.
제4 관점의 제3 가능한 실시 방식을 참조해서, 제4 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 제4 결정 유닛은 구체적으로: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
제5 관점에 따라, 본 발명의 실시예는 컴퓨팅 노드를 제공하며, 상기 컴퓨팅 노드는: Y개의 입력/출력 장치 - Y개의 입력/출력 장치는 j번째 물리적 입력출력 장치를 포함함 - ; X개의 물리적 중앙처리장치(pCPU); 및 각각의 X개의 물리적 중앙처리장치(pCPU) 및 각각의 Y개의 물리적 입력/출력 장치에 접속되는 메모리 - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음; 호스트(Host); 적어도 하나의 가상 머신 V; 및 상기 적어도 하나의 가상 머신 V 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하며, 상기 Host는: i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하고; i번째 물리적 중단에 따라 i번째 가상 중단을 결정하며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제5 관점을 참조해서, 제5 관점의 제1 가능한 실시 방식에서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 추가로 구성되어 있다.
제5 관점을 참조해서, 제5 관점의 제2 가능한 실시 방식에서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 추가로 구성되어 있다.
제5 관점의 제2 가능한 실시 방식을 참조해서, 제5 관점의 제3 가능한 실시 방식에서, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 측면에서, 상기 Host는 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하고; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다.
제5 관점의 제3 가능한 실시 방식을 참조해서, 제5 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 Host는 구체적으로: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
제6 관점에 따라, 본 발명의 실시예는 컴퓨팅 노드를 제공하며, 상기 컴퓨팅 노드는: X개의 물리적 중앙처리장치(pCPU); 및 각각의 X개의 물리적 중앙처리장치(pCPU)에 접속되는 메모리 - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음 - ; 호스트(Host); Y개의 가상 머신(VM); Y개의 가상 호스트(vhost) 커널 스레드; 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 Host는: j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하고; i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며, X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
제6 관점을 참조해서, 제6 관점의 제1 가능한 실시 방식에서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 구성되어 있다.
제6 관점을 참조해서, 제6 관점의 제2 가능한 실시 방식에서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정한다.
제6 관점의 제2 가능한 실시 방식을 참조해서, 제6 관점의 제3 가능한 실시 방식에서, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 측면에서, 상기 Host는 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다.
제6 관점의 제3 가능한 실시 방식을 참조해서, 제6 관점의 제4 가능한 실시 방식에서, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 Host는 구체적으로: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다.
본 발명의 실시예의 한 관점에서, i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 PCP가 결정되고, 여기서 U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 물리적 중단을 처리하기 위해 n번째 pCPU가 사용되고; i번째 물리적 중단에 따라 i번째 가상 중단이 결정되며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다는 것을 알 수 있다. 그러므로 본 발명의 이 실시예에서의 방법에 따르면, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
본 발명의 실시예의 다른 관점에서, j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, 여기서 U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU가 사용되고, i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단이 결정되며, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다. 전술한 기술적 솔루션에 따라, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 virtio 장치의 가상 중단에 대응하는 vhost 스레드를 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다는 것을 알 수 있다.
본 발명의 실시예의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예를 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 다이렉트 모드에 대한 개략도이다.
도 2는 프론트-백 엔드 모드에 대한 개략도이다.
도 3은 본 발명의 실시예에 따라 가상화 플랫폼에 의한 중단을 처리하기 위한 방법에 대한 개략적인 흐름도이다.
도 4는 본 발명의 실시예에 따라 가상화 중단, 물리적 중단, vCPU, 및 pCPU 사이의 대응관계에 대한 개략도이다.
도 5는 본 발명의 실시예에 따라 가상화 중단, 물리적 중단, vCPU, 및 pCPU 사이의 대응관계에 대한 다른 개략도이다.
도 6은 본 발명의 실시예에 따라 가상화 플랫폼에 의한 중단을 처리하기 위한 다른 방법에 대한 개략적인 흐름도이다.
도 7은 본 발명의 실시예에 따라 virtio 장치의 가상 중단, vhost 스레드, vCPU, 및 pCPU 사이의 대응관계에 대한 개략도이다.
도 8은 본 발명의 실시예에 따라 virtio 장치의 가상 중단, vhost 스레드, vCPU, 및 pCPU 사이의 대응관계에 대한 다른 개략도이다.
도 9는 본 발명의 실시예에 따른 호스트(Host)에 대한 개략적인 블록도이다.
도 10은 본 발명의 실시예에 따른 다른 호스트(Host)에 대한 개략적인 블록도이다.
도 11은 본 발명의 실시예에 따른 컴퓨팅 노드에 대한 구조 블록도이다.
도 12는 본 발명의 실시예에 따른 다른 컴퓨팅 노드에 대한 구조 블록도이다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
본 발명의 실시예를 쉽게 이해하기 위해, 본 발명의 실시예는 설명하기 위해 도입될 수 있는 수 개의 요소에 대해 먼저 여기서 설명한다:
가상 머신:
하나 이상의 컴퓨팅 노드는 가상 머신 소프트웨어를 사용함으로써 하나의 물리적 컴퓨팅 노드 상에서 시뮬레이트될 수 있고, 물리적 컴퓨팅 노드는 서버, 데스크톱 컴퓨터, 포터블 컴퓨터 등일 수 있다. 시뮬레이트된 컴퓨팅 노드는 가상 머신(Virtual Machine, VM)이라 한다. 물리적 컴퓨팅 노드는 호스트라 한다. 가상 머신은 실제 컴퓨팅 노드처럼 동작할 수 있다. 운영체제 및 응용 프로그램은 가상 머신에 설치될 수 있다. 가상 머신은 네트워크 자원에 액세스할 수도 있다. 가상 머신에서 운용되는 운영체제는 집합적으로 가상 운영체제라 한다. 프로그램은 실제 컴퓨팅 노드의 운영체제에서 운용되는 것처럼 가상 운영체제에서 운용된다. 가상 하드웨어는 가상 머신 상에 추가로 가상화될 수 있다. 구체적으로, 가상화는 호스트(Host)에 의해 VM 상에서 가상 중앙처리장치(virtual Central Processing Unit, vCPU)와 같은 가상 하드웨어를 가상화함으로써 실현된다. vCPU는 가상 머신에서 운용되는 프로그램을 처리하는 데 사용된다. 하나 이상의 vCPU가 물리적 컴퓨팅 노드 내의 하나의 중앙처리장치(Central Processing Unit, CPU)에 대응할 수 있다. pCPU는 게스트(guest) 상태 및 호스트(host) 상태를 가질 수 있다. 가상 머신이 운용될 때, pCPU는 게스트 상태에 있다. 특별한 명령 또는 외부 중단으로 인해, pCPU는 게스트 상태에서 호스트 상태로 전환할 수 있다. 이 프로세스는 가상 머신 퇴장(VM-Exit)이라 할 수 있다.
가상 머신의 실현 방식은 다이렉트 모드(direct mode) 및 프론트-백 엔드 모드(front-back end mode)를 포함할 수 있다.
다이렉트 모드:
관통(passthrough) 모드라고도 할 수 있는 다이렉트(direct) 모드란 호스트가 특별한 가상 머신에 장치 격리를 제공하고, 이에 따라 특별한 물리적 입력/출력 장치는 특별한 가상 머신에 의해 배타적으로 사용될 수 있다는 것을 의미한다. 다이렉트 모드에서, 가상 중단을 처리하는 vCPU에 대응하는 pCPU가 가상 중단에 대응하는 물리적 중단을 처리하는 pCPU와 일치하지 않으면, 과잉 인터-프로세서 중단(Inter-Processor Interrupt, IPI)으로 인한 VM-Exit가 야기된다.
프론트-백 엔드 모드:
프론트-백 엔드(스플리트 드라이버(split driver)) 모드란 가상 장치 드라이버가 프론트-엔드 드라이버와 백-엔드 드라이버의 협동으로 실현되며, 프론트-엔드 드라이버는 가상 머신 내에 있고 백-엔드 드라이버는 호스트 내에 있다. 프론트-엔드 드라이버 및 백-엔드 드라이버는 메모리 공유 방식으로 데이터전송을 수행한다. 소프트웨어만을 사용하여 시뮬레이트되는 장치와 비교해서, 프론트-엔드 드라이빙 모드가 추상의 수준이 더 높고 성능이 더 우수하다. 프론트-백 엔드 모드에서, 각각의 가상 머신은 반가상화 드라이버(paravirtualized driver)(virtio)(virtio 장치로 약칭)를 사용하는 장치를 가진다. 각각의 virtio 장치는 대응하는 가상 호스트(vhost) 커널 스레드를 가지고, vhost 커널 스레드는 호스트에서 운용된다. vhost 커널 스레드는 대응하는 virtio 장치의 패킷을 처리하는 데 사용된다. 프론트-백 엔드 모드에서, virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU에 대응하는 pCPU가 virtio 장치의 가상 중단에 대응하는 vhost 스레드를 처리하는 데 사용되는 pCPU와 일치하지 않으면, 과잉 IPI로 인한 VM-Exit가 야기된다.
도 1은 다이렉트 모드에 대한 개략도이다. 도 1에 도시된 바와 같이, 컴퓨팅 노드(100)에서, 제1 가상 머신(101)은 제1 물리적 입력/출력 장치(111)를 배타적으로 점유할 수 있고, 제2 가상 머신(102)은 제2 물리적 입력/출력 장치(111)를 배타적으로 점유할 수 있다. 도 3에 도시된 방법은 도 1에 도시된 다이렉트 모드를 사용하는 가상 머신에 적용될 수 있다.
도 2는 프론트-백 엔드 모드에 대한 개략도이다. 도 2에 도시된 바와 같이, 컴퓨팅 노드(200) 내의 제1 virtio 장치(211)는 제1 vhost 스레드(212)에 대응하고, 컴퓨팅 노드(200) 내의 제2 virtio 장치(221)는 제2 vhost 스레드(222)에 대응하며, 제1 virtio 장치는 제1 가상 머신 내의 virtio 장치이고, 제2 virtio 장치는 제2 가상 머신(211) 내의 virtio 장치이다. 도 6에 도시된 방법은 도 2에 도시된 프론트-백 엔드 모드를 사용하는 가상 머신에 적용될 수 있다.
도 3은 본 발명의 실시예에 따라 가상화 플랫폼에 의한 중단을 처리하기 위한 방법에 대한 개략적인 흐름도이다. 방법은 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(virtual machine, VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 방법은 Host에 의해 실행된다.
301. i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계(affinity relationship)를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며, 여기서 U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이다.
302. i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용한다.
303. i번째 물리적 중단에 따라 i번째 가상 중단을 결정한다.
304. k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하며, 여기서 i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서는, i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 PCP가 결정되고, 여기서 U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 물리적 중단을 처리하기 위해 n번째 pCPU가 사용되고; i번째 물리적 중단에 따라 i번째 가상 중단이 결정되며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다는 것을 알 수 있다. 그러므로 본 발명의 이 실시예에서의 방법에 따르면, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
호스트는 가상 머신 관리 프로그램을 사용함으로써 도 3에 도시된 방법을 실행할 수 있다. 가상 머신 관리 프로그램은 또한 가상 머신 모니터(Virtual Machine Monitor, VMM) 또는 하이퍼바이저(hypervisor)라고도 할 수 있다. 통상적인 VMM은 VMware ESX, XEN, KVM/Qemu 등이다.
구체적으로, pCPU가 물리적 중단과의 친화력 관계를 가진다는 것은 pCPU가 물리적 중단을 처리할 수 있다는 것임을 나타낸다. vCPU가 가상 중단과의 친화력 관계를 가진다는 것은 vCPU가 가상 중단을 처리할 수 있다는 것임을 나타낸다. pCPU가 vCPU와의 친화력 간계를 가진다는 것은 vCPU가 pCPU 상에서 운용될 수 있다는 것임을 나타낸다. 그러므로 U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계에 따라 U개의 목표 pCPU 중 n번째 pCPU가 결정된다.
선택적으로, 실시예로서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다. U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, 물리적 중단이 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 물리적 중단 및 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 물리적 중단 및 가상 중단을 처리할 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용된다.
선택적으로, 다른 실시예로서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다. U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, 물리적 중단이 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 물리적 중단 및 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 물리적 중단 및 가상 중단을 처리할 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계가 일대다(one-to-many) 친화력 관계일 때), V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계를 포함한다. 이 경우, 가상 중단을 처리하는 데 사용되는 vCPU가 물리적 중단을 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 물리적 중단을 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계를 포함하며, 여기서 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. 이 방법에서, Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
도 4는 본 발명의 실시예에 따라 가상화 중단, 물리적 중단, vCPU, 및 pCPU 사이의 대응관계에 대한 개략도이다. 도 4에 도시된 바와 같이, 제1 물리적 중단은 제1 가상 중단에 대응한다. 제1 가상 중단은 제4 vCPU와의 친화력 관계를 가진다. 제4 vCPU는 제3 pCPU와의 친화력 관계를 가진다. 이 경우, 제3 pCPU는 제1 물리적 중단과 결속될 수 있고, 이에 따라 양자는 친화력 관계를 가진다. 제1 물리적 중단이 발생하면, 제3 pCPU는 제1 물리적 중단을 처리할 수 있다. 그런 다음, 제1 물리적 중단에 대응하는 제1 가상 중단 및 제1 가상 중단을 처리하는 데 사용되는 vCPU는 결속된다. 제4 vCPU가 제3 pCPU 상에서 운용될 때, 제4 vCPU는 제1 물리적 중단에 대응하는 제1 가상 중단을 처리하는 데 직접적으로 사용될 수 있다. 이 방법에서, vCPU가 운용되는 pCPU가 물리적 중단이 발생하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다.
도 5는 본 발명의 실시예에 따라 가상화 중단, 물리적 중단, vCPU, 및 pCPU 사이의 대응관계에 대한 다른 개략도이다. 도 5에 도시된 바와 같이, 제1 물리적 중단은 제1 가상 중단에 대응한다. 제4 vCPU와 제5 vCPU는 제3 pCPU와 제4 pCPU 양자와의 친화력 관계를 가진다. 환언하면, 제4 vCPU 및 제5 vCPU는 제3 vCPU 상에서 운용될 수 있거나, 제4 pCPU 상에서 운용될 수 있다. 예를 들어, 제1 모멘트에서, 제4 vCPU는 제3 pCPU 상에서 운용되고 제5 vCPU는 제4 pCPU 상에서 운용된다. 제2 모멘트에서, 제4 vCPU 및 제5 vCPU는 제3 pCPU 상에서 동시에 운용될 수 있다. 또한, 제4 vCPU 및 제5 vCPU는 제1 가상 중단과의 친화력 관계를 가진다. 즉, 제1 가상 중단은 제4 vCPU 또는 제5 vCPU에 의해 처리될 수 있다. 이 경우, 제3 pCPU 및 제4 pCPU 양자는 제1 물리적 중단과 결속될 수 있으며, 이에 따라 양자는 친화력 관계를 가진다. 제1 물리적 중단이 발생할 때, Host는 제3 pCPU 및 제4 pCPU 중에서 pCPU를 선택하여 제1 물리적 중단을 처리할 수 있다. 그런 다음, Host는 제1 물리적 중단에 대응하는 제1 가상 중단 및 제1 가상 중단을 처리하는 데 사용되는 vCPU를 찾아내고, 그 vCPU를 사용하여 제1 가상 중단을 처리한다. 가상 중단을 처리하는 데 사용되는 vCPU는 가상 중단을 처리하는 데 사용되는 pCPU 상에서 운용될 수 있고, 그러므로 vCPU가 운용되는 pCPU가 물리적 중단이 발생하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다.
도 6은 본 발명의 실시예에 따라 가상화 플랫폼에 의한 중단을 처리하기 위한 다른 방법에 대한 개략적인 흐름도이다. 도 6에 도시된 방법은 컴퓨팅 노드에 적용될 수 있으며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, Y개의 VM의 각각의 VM은 반가상화(paravirtualized) 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 방법은 Host에 의해 실행된다.
601. j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이다.
602. i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용한다.
603. i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정한다.
604. k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하며, 여기서 i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서는, j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, 여기서 U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU가 사용되고, i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단이 결정되며, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다. 전술한 기술적 솔루션에 따라, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 virtio 장치의 가상 중단에 대응하는 vhost 스레드를 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다는 것을 알 수 있다.
호스트는 가상 머신 관리 프로그램을 사용함으로써 도 6에 도시된 방법을 실행할 수 있다. 가상 머신 관리 프로그램은 또한 가상 머신 모니터(Virtual Machine Monitor, VMM) 또는 하이퍼바이저라고도 할 수 있다. 통상적인 VMM은 VMware ESX, XEN, KVM/Qemu 등이다.
구체적으로, pCPU가 vhost 스레드와의 친화력 관계를 가진다는 것은 pCPU가 vhost 스레드를 처리할 수 있다는 것임을 나타낸다. vCPU가 virtio 장치의 가상 중단과의 친화력 관계를 가진다는 것은 vCPU가 virtio 장치의 가상 중단을 처리할 수 있다는 것임을 나타낸다. pCPU가 vCPU와의 친화력 간계를 가진다는 것은 vCPU가 pCPU 상에서 운용될 수 있다는 것임을 나타낸다. 그러므로 U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계에 따라 U개의 목표 pCPU 중 n번째 pCPU가 결정된다.
선택적으로 실시예로서, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 이 경우, i번째 vhost 스레드가 발생할 때, i번째 virtio 장치의 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 vhost 스레드를 처리하는 n번째 pCPU 상에서 운용되며, 여기서 i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응한다.
선택적으로, 다른 실시예로서, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식: V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정된다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 vhost 스레드 및 virtio 장치의 대응하는 가상 중단을 처리할 수 있다. 이 경우, i번째 vhost 스레드가 발생할 때, i번째 virtio 장치의 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있으며, i번째 virtio 장치의 가상 중단은 i번째 vhost에 대응한다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때), V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계를 포함한다. 이 경우, virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU가 vhost 스레드를 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 vhost 스레드를 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계를 포함하며, 여기서 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. 이 방법에서, Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
도 7은 본 발명의 실시예에 따라 virtio 장치의 가상 중단, vhost 스레드, vCPU, 및 pCPU 사이의 대응관계에 대한 개략도이다. 도 7에 되시된 바와 같이, 제1 vhost 스레드는 제1 virtio 장치의 가상 중단에 대응한다. 제1 virtio 장치의 가상 중단은 제4 vCPU와의 친화력 관계를 가진다. 제3 pCPU는 제4 vCPU와의 친화력 관계를 가진다. 이 경우, 제3 pCPU는 제1 vhost 스레드와 결속될 수 있고, 이에 따라 양자는 친화력 관계를 가진다. 제1 물리적 중단이 발생하면, 제3 pCPU는 제1 물리적 중단을 처리할 수 있다. 제1 vhost 스레드가 발생할 때, 제3 pCPU는 제1 vhost 스레드를 처리할 수 있다. 그런 다음, 제1 virtio 장치의 가상 중단 및 제1 virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU가 발견되고, 여기서 제1 virtio 장치의 가상 중단은 제1 vhost 스레드에 대응한다. 제4 vCPU가 제3 pCPU 상에서 운용될 때, 제4 vCPU는 제1 virtio 장치의 가상 중단을 처리하는 데 직접적으로 사용될 수 있으며, 제1 virtio 장치의 가상 중단은 제1 vhost 스레드에 대응한다. 이 방법에서, vCPU가 운용되는 pCPU가 vhost 스레드가 발생하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다.
도 8은 본 발명의 실시예에 따라 virtio 장치의 가상 중단, vhost 스레드, vCPU, 및 pCPU 사이의 대응관계에 대한 다른 개략도이다. 도 8에 도시된 바와 같이, 제1 vhost 스레드는 제1 virtio 장치의 가상 중단에 대응한다. 제3 pCPU와 제4 pCPU는 제4 vCPU와 제5 vCPU 양자와의 친화력 관계를 가진다. 환언하면, 제4 vCPU 및 제5 vCPU는 제3 vCPU 상에서 운용될 수 있거나, 제4 pCPU 상에서 운용될 수 있다. 예를 들어, 제1 모멘트에서, 제4 vCPU는 제3 pCPU 상에서 운용되고 제5 vCPU는 제4 pCPU 상에서 운용된다. 제2 모멘트에서, 제4 vCPU 및 제5 vCPU는 제3 pCPU 상에서 동시에 운용될 수 있다. 또한, 제4 vCPU 및 제5 vCPU는 제1 virtio 장치의 가상 중단과의 친화력 관계를 가진다. 즉, 제1 virtio 장치의 가상 중단은 제4 vCPU 또는 제5 vCPU에 의해 처리될 수 있다. 이 경우, 제3 pCPU 및 제4 pCPU 양자는 제1 vhost 스레드와 결속될 수 있으며, 이에 따라 양자는 친화력 관계를 가진다. 제1 vhost 스레드가 발생할 때, Host는 제3 pCPU 및 제4 pCPU 중에서 pCPU를 선택하여 제1 vhost 스레드를 처리할 수 있다. 그런 다음, Host는 제1 virtio 장치의 가상 중단 및 제1 virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU를 찾아내고, 그 vCPU를 사용하여 제1 virtio 장치의 가상 중단을 처리하여, 제1 virtio 장치의 가상 중단은 제1 vhost 스레드에 대응한다. virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU는 vhost 스레드를 처리하는 데 사용되는 pCPU 상에서 운용될 수 있고, 그러므로 vCPU가 운용되는 pCPU가 vhost 스레드가 발생하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다.
도 9는 본 발명의 실시예에 따른 호스트(Host)에 대한 개략적인 블록도이다. 도 9에 도시된 Host(900)는 도 3에 도시된 모든 단계를 실행할 수 있다.
구체적으로, 상기 Host는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 Host, 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 Host는, 제1 결정 유닛(901), 제2 호출 유닛(invoking unit)(902), 제3 결정 유닛(903), 및 제4 결정 유닛(904)을 포함한다.
제1 결정 유닛(901)은 i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있으며, U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며, 여기서 U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이다.
제2 호출 유닛(902)은 i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있다.
제3 결정 유닛(903)은 i번째 물리적 중단에 따라 i번째 가상 중단을 결정하도록 구성되어 있다.
제4 결정 유닛(904)은 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며, 여기서, i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서의 Host에 따르면, i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 PCP가 결정되고, 여기서 U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 물리적 중단을 처리하기 위해 n번째 pCPU가 사용되고; i번째 물리적 중단에 따라 i번째 가상 중단이 결정되며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다는 것을 알 수 있다. 그러므로 도 9에 도시된 Host에 따르면, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
선택적으로, 실시예로서, 제1 결정 유닛(901)은, V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다. 이 방법에서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 결정될 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용된다.
선택적으로, 다른 실시예로서, 제1 결정 유닛(901)은, V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다. 이 방법에서, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 결정될 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때), 제4 결정 유닛(904)은 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다. 이 경우, 가상 중단을 처리하는 데 사용되는 vCPU가 물리적 중단을 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 물리적 중단을 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다. 그러므로 vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 최대한도로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 제4 결정 유닛(904)은 구체적으로: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 여기서 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. 이 방식에서, Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
도 10은 본 발명의 실시예에 따른 다른 호스트(Host)에 대한 개략적인 블록도이다. 도 10에 도시된 Host(1000)는 도 6에 도시된 모든 단계를 실행할 수 있다. Host(1000)는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 Host는 제1 결정 유닛(1001), 제2 호출 유닛(1002), 제3 결정 유닛(1003), 및 제4 결정 유닛(1004)을 포함한다.
제1 결정 유닛(1001)은 j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있으며, U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며, 여기서 U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이다.
제2 호출 유닛(1002)은 i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있다.
제3 결정 유닛(1003)은 i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하도록 구성되어 있다.
제4 결정 유닛(1004)은 k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며, 여기서 i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서 제공하는 호스트(Host)에 따르면, j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, 여기서 U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU가 사용되고, i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단이 결정되며, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다. 그러므로 도 10에 도시된 Host에 따라, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 virtio 장치의 가상 중단에 대응하는 vhost 스레드를 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다는 것을 알 수 있다.
선택적으로, 실시예로서, 제1 결정 유닛(1001)은, V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 이 경우, i번째 vhost 스레드가 발생할 때, i번째 virtio 장치의 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 vhost 스레드를 처리하는 n번째 pCPU 상에서 운용되며, 여기서 i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응한다
선택적으로, 다른 실시예로서, 제1 결정 유닛(1001)은, V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 추가로 구성되어 있다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 vhost 스레드 및 virtio 장치의 대응하는 가상 중단을 처리할 수 있다. 이 경우, i번째 vhost 스레드가 발생할 때, i번째 virtio 장치의 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있으며, i번째 virtio 장치의 가상 중단은 i번째 vhost에 대응한다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때), 제4 결정 유닛(1004)은 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다. 이 경우, virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU가 vhost 스레드를 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 vhost 스레드를 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다. 그러므로 vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 최대한도로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 제4 결정 유닛(1004)은 구체적으로: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다. Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
도 11은 본 발명의 실시예에 따른 컴퓨팅 노드에 대한 구조 블록도이다. 도 10에 도시된 컴퓨팅 노드는 도 3에 도시된 모든 단계를 실행할 수 있다. 컴퓨팅 노드는, Y개의 입력/출력 장치(1101) - Y개의 입력/출력 장치는 j번째 물리적 입력출력 장치를 포함함 - ; X개의 물리적 중앙처리장치(pCPU)(1102); 및 각각의 X개의 물리적 중앙처리장치(pCPU) 및 각각의 Y개의 물리적 입력/출력 장치에 접속되는 메모리(1103) - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리(1103)에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음; 호스트(Host); 적어도 하나의 가상 머신 V; 및 상기 적어도 하나의 가상 머신 V 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하며, 상기 Host는:
i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하고;
i번째 물리적 중단에 따라 i번째 가상 중단을 결정하며; 그리고
k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며,
X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서의 컴퓨팅 노드에 따르면, i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 PCP가 결정되고, 여기서 U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 물리적 중단을 처리하기 위해 n번째 pCPU가 사용되고; i번째 물리적 중단에 따라 i번째 가상 중단이 결정되며; 그리고 k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다는 것을 알 수 있다. 그러므로 도 11에 도시된 컴퓨팅 노드에 따르면, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
선택적으로, 실시예로서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 추가로 구성되어 있다. U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, 물리적 중단이 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 물리적 중단 및 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 물리적 중단 및 가상 중단을 처리할 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용된다.
선택적으로, 다른 실시예로서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및 i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 추가로 구성되어 있다. U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, 물리적 중단이 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 물리적 중단 및 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 물리적 중단 및 가상 중단을 처리할 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때), Host는 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다. 이 경우, 가상 중단을 처리하는 데 사용되는 vCPU가 물리적 중단을 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 물리적 중단을 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다. 그러므로 vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 최대한도로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, Host는 구체적으로: 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 여기서 상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. 이 방식에서, Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
도 12는 본 발명의 실시예에 따른 다른 컴퓨팅 노드에 대한 구조 블록도이다. 도 12에 도시된 컴퓨팅 노드(1200)는 도 6에 도시된 모든 단계를 실행할 수 있다. 컴퓨팅 노드(1200)는, X개의 물리적 중앙처리장치(pCPU)(1201); 및 각각의 X개의 물리적 중앙처리장치(pCPU)에 접속되는 메모리(1202) - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음; 호스트(Host); Y개의 가상 머신(VM); Y개의 가상 호스트(vhost) 커널 스레드; 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 Host는:
j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하고;
i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하며; 그리고
k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며,
X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수이다.
본 발명의 이 실시예에서의 컴퓨팅 노드에 따르면, j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하며, 여기서 U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함하며; i번째 vhost 스레드를 처리하기 위해 n번째 pCPU가 사용되고, i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단이 결정되며, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU가 결정된다. 그러므로 도 12에 도시된 컴퓨팅 노드에 따라, vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 virtio 장치의 가상 중단에 대응하는 vhost 스레드를 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 효과적으로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
선택적으로, 실시예로서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 구성되어 있다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 이 경우, i번째 vhost 스레드가 발생할 때, i번째 virtio 장치의 가상 중단을 처리하는 데 사용되는 m번째 vCPU가 i번째 vhost 스레드를 처리하는 n번째 pCPU 상에서 운용되며, 여기서 i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응한다.
선택적으로, 다른 실시예로서, 상기 Host는, U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식: V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ; U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ; i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및 i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 - 에서 결정하도록 구성되어 있다. U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 사전설정되어 저장될 수 있고, 그런 다음, vhost 스레드가 발생하는 경우, 대응하는 pCPU 및 vCPU가 그 저장된 친화력 관계에 따라 발견되어 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 또는, U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계가 설정되어 있는 경우, 대응하는 pCPU 및 vCPU가 이 친화력 관계들에 따라 발견되어 대응하는 vhost 스레드 및 virtio 장치의 가상 중단을 처리할 수 있다. 이 경우, i번째 물리적 중단이 발생할 때, i번째 물리적 중단에 대응하는 i번째 가상 중단을 처리하는 데 사용되는 m번째 vCPU는 물리적 하드웨어 계층에서의 임의의 pCPU 상에서 운용되는 대신 제한된 수의 결정된 pCPU 상에서 운용되며, i번째 물리적 중단을 처리하는 n번째 pCPU 상에서 운용될 수 있다.
또한, V개의 목표 vCPU가 복수의 목표 pCPU 상에서 운용될 때(환언하면, i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때), V개의 목표 vCPU 중 m번째 vCPU를 결정하는 측면에서, 상기 Host는 구체적으로: V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있다. 이 경우, virtio 장치의 가상 중단을 처리하는 데 사용되는 vCPU가 vhost 스레드를 처리하는 데 사용되는 pCPU 상에서 운용되면, vCPU가 운용되는 pCPU가 vhost 스레드를 처리하는 pCPU와는 다르기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 생길 수 없다. 우선순위 순서는 V개의 목표 vCPU의 사전설정된 우선순위일 수 있다. 우선순위의 선택은 각각의 목표 vCPU를 선택하는 확률이 동일하다는 것을 보장하기 위해, 라운드-로빈 정책을 사용함으로써 결정될 수도 있다. 그러므로 vCPU와의 친화력을 가지는 pCPU가, vCPU에 의해 처리되는 가상 중단에 대응하는 물리적 중단을 처리하는 데 사용되는 pCPU가 아니기 때문에 야기되는 과잉 IPI로 인한 VM-Exit는 최대한도로 회피될 수 있으며, 이에 의해 컨텍스트 전환의 횟수를 효과적으로 감소할 수 있고, 가상 머신에 의해 pCPU에 대해 야기되는 간섭을 감소할 수 있다.
또한, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 Host는 구체적으로: virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며, 상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함한다. Host는 m번째 vCPU가 n번째 pCPU 상에서 운용되는지를 쉽고 신속하게 판정할 수 있다.
당업자라면 전술한 실시예의 방법의 프로세스 중 일부 또는 전부는 관련 하드웨어(예를 들어, 프로세서)에 명령을 내리는 컴퓨터 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행되면, 프로그램은 본 발명의 임의의 실시예에서 설명된 방법을 실행한다. 저장 매체는 자기디스크, 광디스크, 리드 온리 메모리(ROM), 랜덤 액세스 메모리(RAM)가 될 수 있다.
당업자라면 본 명세서에 개시된 실시예에 설명된 예와 조합해서, 유닛 및 알고리즘 단계들은 전자식 하드웨어 또는 컴퓨터 소프트웨어와 전자식 하드웨어의 조합으로 실현될 수 있다는 것을 인지할 수 있을 것이다. 기능들이 하드웨어로 수행되는지 소프트웨어로 수행되는지는 특별한 애플리케이션 및 기술적 솔루션의 설계 제약 조건에 따라 다르다. 당업자라면 다른 방법을 사용하여 각각의 특별한 실시예에 대해 설명된 기능을 실행할 수 있을 것이나, 그 실행이 본 발명의 범위를 넘어서는 것으로 파악되어서는 안 된다.
당업자라면 설명의 편의 및 간략화를 위해, 전술한 시스템, 장치, 및 유닛에 대한 상세한 작업 프로세스에 대해서는 전술한 방법 실시예의 대응하는 프로세스를 참조하면 된다는 것을 자명하게 이해할 수 있을 것이므로 그 상세한 설명은 여기서 다시 설명하지 않는다.
본 출원에서 제공하는 수 개의 실시예에서, 전술한 시스템, 장치, 및 방법은 다른 방식으로도 실현될 수 있다는 것은 물론이다. 예를 들어, 설명된 장치 실시예는 단지 예시에 불과하다. 예를 들어, 유닛의 분할은 단지 일종의 논리적 기능 분할일 뿐이며, 실제의 실행 동안 다른 분할 방식으로 있을 수 있다. 예를 들어, 복수의 유닛 또는 구성요소를 다른 시스템에 결합 또는 통합할 수 있거나, 또는 일부의 특징은 무시하거나 수행하지 않을 수도 있다. 또한, 도시되거나 논의된 상호 커플링 또는 직접 결합 또는 통신 접속은 일부의 인터페이스를 통해 실현될 수 있다. 장치 또는 유닛 간의 간접 결합 또는 통신 접속은 전자식, 기계식 또는 다른 형태로 실현될 수 있다.
별도의 부분으로 설명된 유닛들은 물리적으로 별개일 수 있고 아닐 수도 있으며, 유닛으로 도시된 부분은 물리적 유닛일 수도 있고 아닐 수도 있으며, 한 위치에 위치할 수도 있고, 복수의 네트워크 유닛에 분산될 수도 있다. 유닛 중 일부 또는 전부는 실제의 필요에 따라 선택되어 실시예의 솔루션의 목적을 달성할 수 있다.
또한, 본 발명의 실시예에서의 기능 유닛은 하나의 프로세싱 유닛으로 통합될 수 있거나, 각각의 유닛이 물리적으로 단독으로 존재할 수도 있거나, 2개 이상의 유닛이 하나의 유닛으로 통합될 수도 있다.
통합 유닛이 소프트웨어 기능 유닛의 형태로 실현되어 독립 제품으로 시판되거나 사용되면, 이 통합 유닛은 컴퓨터 판독 가능형 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본 발명의 필수적인 기술적 솔루션 또는 종래기술에 기여하는 부분, 또는 기술적 솔루션의 일부는 소프트웨어 제품의 형태로 실현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 본 발명의 실시예에 설명된 방법의 단계 중 일부 또는 전부를 수행하도록 컴퓨터 장치(이것은 퍼스널 컴퓨터, 서버, 또는 네트워크 장치 등이 될 수 있다)에 명령하는 수개의 명령어를 포함한다. 전술한 저장 매체는: 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예를 들어, USB 플래시 디스크, 휴대형 하드디스크, 리드-온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기디스크 또는 광디스크를 포함한다.
전술한 설명은 단지 본 발명의 특정한 실행 방식에 불과하며, 본 발명의 보호 범위를 제한하려는 것이 아니다. 본 발명에 설명된 기술적 범위 내에서 당업자가 용이하게 실현하는 모든 변형 또는 대체는 본 발명의 보호 범위 내에 있게 된다. 그러므로 본 발명의 보호 범위는 특허청구범위의 보호 범위에 있게 된다.

Claims (30)

  1. 가상화 플랫폼에 의한 중단을 처리하는 방법으로서,
    상기 방법은 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(virtual machine, VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 방법은 Host에 의해 실행되고, 상기 방법은,
    i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하는 단계 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계(affinity relationship)를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하는 단계;
    i번째 물리적 중단에 따라 i번째 가상 중단을 결정하는 단계; 및
    k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계
    를 포함하며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 방법.
  2. 제1항에 있어서,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정되는, 방법.
  3. 제1항에 있어서,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계는 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정되는, 방법.
  4. 제3항에 있어서,
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계가 일대다(one-to-many) 친화력 관계일 때, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계; 및
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는,
    가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계
    를 포함하며,
    상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 방법.
  6. 가상화 플랫폼에 의한 중단을 처리하는 방법으로서,
    상기 방법은 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, Y개의 VM의 각각의 VM은 반가상화(paravirtualized) 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 방법은 Host에 의해 실행되고, 상기 방법은,
    j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하는 단계 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하는 단계;
    i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하는 단계; 및
    k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계
    를 포함하며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 방법.
  7. 제6항에 있어서,
    U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정되는, 방법.
  8. 제6항에 있어서,
    U개의 목표 pCPU와 i번째 vhost 스레드 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계는 다음의 방식:
    V개의 목표 vCPU와 i번째 virtio 장치의 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정되는, 방법.
  9. 제8항에 있어서,
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계가 일대다 친화력 관계일 때, V개의 목표 vCPU 중 m번째 vCPU를 결정하는 단계는,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계; 및
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나, 또는 V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하는 단계
    를 포함하는, 방법.
  10. 제9항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계는,
    virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 단계
    를 포함하며,
    상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 방법.
  11. 호스트(Host)로서,
    상기 Host는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 Host, 상기 Host 상에서 운용되는 적어도 하나의 가상 머신(VM), 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU) 및 Y개의 물리적 입력/출력 장치를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 Y개의 물리적 입력/출력 장치는 j번째 물리적 입력/출력 장치를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하고, 상기 Host는,
    i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있는 제1 결정 유닛 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있는 제2 호출 유닛(invoking unit);
    i번째 물리적 중단에 따라 i번째 가상 중단을 결정하도록 구성되어 있는 제3 결정 유닛; 및
    k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있는 제4 결정 유닛
    을 포함하며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 호스트.
  12. 제11항에 있어서,
    제1 결정 유닛은,
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    추가로 구성되어 있는, 호스트.
  13. 제11항에 있어서,
    제1 결정 유닛은,
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하며; 그리고
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    추가로 구성되어 있는, 호스트.
  14. 제13항에 있어서,
    제4 결정 유닛은 구체적으로,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 추가로 구성되어 있는, 호스트.
  15. 제14항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 제4 결정 유닛은 구체적으로,
    가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며,
    상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 호스트.
  16. 호스트(Host)로서,
    상기 Host는 컴퓨팅 노드에 적용되며, 상기 컴퓨팅 노드는 물리적 하드웨어 계층, 상기 물리적 하드웨어 계층에서 운용되는 호스트(Host), 상기 Host 상에서 운용되는 Y개의 가상 머신(VM), 상기 Host 상에서 운용되는 Y개의 가상 호스트(vhost) 커널 스레드, 및 상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어를 포함하며, 상기 물리적 하드웨어 계층은 X개의 물리적 중앙처리장치(pCPU)를 포함하고, 상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, X, Y 및 Z는 1보다 큰 양의 정수이고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고, 상기 Host는,
    j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하도록 구성되어 있는 제1 결정 유닛 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하도록 구성되어 있는 제2 호출 유닛;
    i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하도록 구성되어 있는 제3 결정 유닛; 및
    k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있는 제4 결정 유닛
    을 포함하며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 호스트.
  17. 제16항에 있어서,
    제1 결정 유닛은,
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    추가로 구성되어 있는, 호스트.
  18. 제16항에 있어서,
    제1 결정 유닛은,
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하고 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하고 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하며; 그리고
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하도록 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    추가로 구성되어 있는, 호스트.
  19. 제18항에 있어서,
    제4 결정 유닛은 구체적으로,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하고; 그리고
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있는, 호스트.
  20. 제19항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 제4 결정 유닛은 구체적으로,
    virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며,
    상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 호스트.
  21. 컴퓨팅 노드로서,
    Y개의 입력/출력 장치 - Y개의 입력/출력 장치는 j번째 물리적 입력출력 장치를 포함함 - ;
    X개의 물리적 중앙처리장치(pCPU); 및
    각각의 X개의 물리적 중앙처리장치(pCPU) 및 각각의 Y개의 물리적 입력/출력 장치에 접속되는 메모리 - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음 - ;
    호스트(Host);
    적어도 하나의 가상 머신 V; 및
    상기 적어도 하나의 가상 머신 V 상에서 가상화되는 가상 하드웨어
    를 포함하며,
    상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, 상기 적어도 하나의 VM은 k번째 VM을 포함하고, 상기 j번째 물리적 입력/출력 장치는 k번째 VM으로 직통하며,
    상기 Host는,
    i번째 물리적 중단이 j번째 입력/출력 장치에서 발생하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 물리적 중단과 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 가상 중단은 i번째 물리적 중단에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 물리적 중단을 처리하기 위해 n번째 pCPU를 사용하고;
    i번째 물리적 중단에 따라 i번째 가상 중단을 결정하며; 그리고
    k번째 VM이 m번째 vCPU를 사용하여 i번째 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 컴퓨팅 노드.
  22. 제21항에 있어서,
    상기 Host는,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정하도록 추가로 구성되어 있는, 컴퓨팅 노드.
  23. 제21항에 있어서,
    상기 Host는,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 가상 중단에 대응하는 i번째 물리적 중단을 결정하는 단계; 및
    i번째 물리적 중단과 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 물리적 중단은 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정하도록 추가로 구성되어 있는, 컴퓨팅 노드.
  24. 제23항에 있어서,
    V개의 목표 vCPU 중 m번째 vCPU를 결정하는 측면에서, 상기 Host는 구체적으로,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하고; 그리고
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있는, 컴퓨팅 노드.
  25. 제24항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 Host는 구체적으로,
    가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며,
    상기 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 컴퓨팅 노드.
  26. 컴퓨팅 노드로서,
    X개의 물리적 중앙처리장치(pCPU); 및
    각각의 X개의 물리적 중앙처리장치(pCPU)에 접속되는 메모리 - X개의 물리적 중앙처리장치(pCPU) 중 하나 이상의 pCPU는 메모리에 저장되어 있는 작동 명령을 호출 또는 실행하도록 구성되어 있음;
    호스트(Host);
    Y개의 가상 머신(VM);
    Y개의 가상 호스트(vhost) 커널 스레드; 및
    상기 적어도 하나의 VM 상에서 가상화되는 가상 하드웨어
    를 포함하며,
    상기 가상 하드웨어는 Z개의 가상 중앙처리장치(vCPU)를 포함하고, Y개의 VM의 각각의 VM은 반가상화 드라이버 virtio 장치를 포함하고, Y개의 VM은 k번째 VM을 포함하고, k번째 VM은 i번째 virtio 장치를 포함하고, i번째 virtio 장치는 Y개의 vhost 커널 스레드 중 j번째 vhost 커널 스레드에 대응하고,
    상기 Host는,
    j번째 vhost 커널 스레드가 i번째 vhost 스레드를 촉발하는 경우, U개의 목표 pCPU 중 n번째 pCPU를 결정하고 - U개의 목표 pCPU는 i번째 vhost 스레드와 V개의 목표 vCPU 양자와의 친화력 관계를 가지는 pCPU이고, V개의 목표 vCPU는 k번째 VM 상에서 가상화되면서 i번째 virtio 장치의 가상 중단과의 친화력 관계를 가지는 vCPU이고, i번째 virtio 장치의 가상 중단은 i번째 vhost 스레드에 대응하고, X개의 pCPU는 U개의 목표 pCPU를 포함하며, Z개의 vCPU는 V개의 목표 vCPU를 포함함 - ;
    i번째 vhost 스레드를 처리하기 위해 n번째 pCPU를 사용하고;
    i번째 vhost 스레드에 따라 i번째 virtio 장치의 가상 중단을 결정하며; 그리고
    k번째 VM이 m번째 vCPU를 사용하여 i번째 virtio 장치의 가상 중단을 실행할 수 있도록 V개의 목표 vCPU 중 m번째 vCPU를 결정하도록 구성되어 있으며,
    X, Y 및 Z는 1보다 큰 양의 정수이고, U는 1보다 크거나 같고 X보다 작거나 같은 양의 정수이고, V는 1보다 크거나 같고 Z보다 작거나 같은 양의 정수이며, i, j, k, m 및 n은 양의 정수인, 컴퓨팅 노드.
  27. 제26항에 있어서,
    상기 Host는,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 U개의 목표 pCPU 상에서 운용될 수 있고, U는 1과 같음 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정하도록 구성되어 있는, 컴퓨팅 노드.
  28. 제26항에 있어서,
    상기 Host는,
    U개의 목표 pCPU와 i번째 물리적 중단 간의 친화력 관계, U개의 목표 pCPU와 V개의 목표 vCPU 간의 친화력 관계 및 V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 다음의 방식:
    V개의 목표 vCPU와 i번째 가상 중단 간의 친화력 관계를 결정하는 단계 - V개의 목표 vCPU는 k번째 VM 상에서 가상화되고 i번째 virtio 장치의 가상 중단을 처리할 수 있는 vCPU임 - ;
    U개의 목표 pCPU를 결정하는 단계 - V개의 목표 vCPU는 복수의 목표 pCPU 상에서 운용될 수 있고, U는 1보다 크고 X보다 작거나 같은 양의 정수임 - ;
    i번째 virtio 장치의 가상 중단에 대응하는 i번째 vhost 스레드를 결정하는 단계; 및
    i번째 vhost 스레드와 U개의 목표 pCPU 간의 친화력 관계를 결정하는 단계 - i번째 vhost 스레드는 U개의 목표 pCPU에 의해 처리될 수 있음 -
    에서 결정하도록 구성되어 있는, 컴퓨팅 노드.
  29. 제28항에 있어서,
    V개의 목표 vCPU 중 m번째 vCPU를 결정하는 측면에서, 상기 Host는 구체적으로,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하며; 그리고
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는 것으로 판정되는 경우에, n번째 pCPU 상에서 운용되는 하나의 목표 vCPU를 m번째 vCPU로 결정하거나; 또는
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하지 않는 것으로 판정되는 경우에, 우선순위 순서에 따라 V개의 목표 vCPU 중 하나의 목표 vCPU를 m번째 vCPU로 결정하도록 구성되어 있는, 컴퓨팅 노드.
  30. 제29항에 있어서,
    V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하는 측면에서, 상기 Host는 구체적으로,
    virtio 장치의 가상 중단 루트 정보에 따라, V개의 목표 vCPU 중 n번째 pCPU 상에서 운용되는 적어도 하나의 목표 vCPU가 존재하는지를 판정하도록 구성되어 있으며,
    상기 virtio 장치의 가상 중단 루트 정보는 U개의 목표 pCPU와 U개의 목표 pCPU 상에서 운용되는 목표 vCPU 간의 대응관계를 포함하는, 컴퓨팅 노드.
KR1020177000348A 2014-06-20 2014-06-20 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치 KR101847518B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/080430 WO2015192381A1 (zh) 2014-06-20 2014-06-20 虚拟化平台处理中断方法和相关设备

Publications (2)

Publication Number Publication Date
KR20170016448A true KR20170016448A (ko) 2017-02-13
KR101847518B1 KR101847518B1 (ko) 2018-05-28

Family

ID=54934732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177000348A KR101847518B1 (ko) 2014-06-20 2014-06-20 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치

Country Status (6)

Country Link
US (1) US10169075B2 (ko)
EP (1) EP3147784A4 (ko)
JP (1) JP2017518589A (ko)
KR (1) KR101847518B1 (ko)
CN (1) CN106462451B (ko)
WO (1) WO2015192381A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144679B (zh) * 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备
JP7196439B2 (ja) * 2018-07-03 2022-12-27 株式会社デンソー 仮想化環境におけるデバイスへのアクセス方法
US11204796B2 (en) 2019-04-11 2021-12-21 International Business Machines Corporation Dynamic assignment of interrupts based on input/output metrics
US11194611B2 (en) 2019-07-29 2021-12-07 International Business Machines Corporation Dynamic assignment of interrupts based on input/output metrics
US11068411B2 (en) 2019-07-29 2021-07-20 International Business Machines Corporation Reducing impact of context switches through dynamic memory-mapping overallocation
CN113934504A (zh) * 2020-06-29 2022-01-14 华为技术有限公司 一种系统以及中断处理方法
CN114371907A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 一种芯片系统、处理虚拟中断的方法及相应装置
CN112817690B (zh) * 2021-01-22 2022-03-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统
CN113961147A (zh) * 2021-10-26 2022-01-21 江苏安超云软件有限公司 在云平台上从已删除的块中回收空间的方法及应用
CN114625480A (zh) * 2022-03-17 2022-06-14 北京有竹居网络技术有限公司 数据处理方法、装置、可读介质以及计算设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853960B1 (en) 2005-02-25 2010-12-14 Vmware, Inc. Efficient virtualization of input/output completions for a virtual device
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
CN100547571C (zh) * 2006-08-29 2009-10-07 联想(北京)有限公司 一种虚拟机系统及其硬件设备中断处理方法
US9164784B2 (en) * 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US7840839B2 (en) * 2007-11-06 2010-11-23 Vmware, Inc. Storage handling for fault tolerance in virtual machines
CN100527098C (zh) * 2007-11-27 2009-08-12 北京大学 一种虚拟机管理器的动态内存映射方法
JP5352848B2 (ja) * 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
US8234432B2 (en) 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
US20110197004A1 (en) 2010-02-05 2011-08-11 Serebrin Benjamin C Processor Configured to Virtualize Guest Local Interrupt Controller
US9411624B2 (en) * 2011-11-22 2016-08-09 Red Hat Israel, Ltd. Virtual device interrupt hinting in a virtualization system
CN102799465B (zh) * 2012-06-30 2015-05-27 华为技术有限公司 分布式虚拟化系统的虚拟中断管理方法及装置
US9477505B2 (en) * 2012-08-14 2016-10-25 Oracle International Corporation Method for reducing the overhead associated with a virtual machine exit when handling instructions related to descriptor tables
CN103559087B (zh) * 2013-10-31 2017-11-28 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和系统
CN103699428A (zh) * 2013-12-20 2014-04-02 华为技术有限公司 一种虚拟网卡中断亲和性绑定的方法和计算机设备

Also Published As

Publication number Publication date
JP2017518589A (ja) 2017-07-06
CN106462451A (zh) 2017-02-22
US10169075B2 (en) 2019-01-01
CN106462451B (zh) 2019-11-12
US20170102963A1 (en) 2017-04-13
EP3147784A4 (en) 2017-08-02
WO2015192381A1 (zh) 2015-12-23
KR101847518B1 (ko) 2018-05-28
EP3147784A1 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
KR101847518B1 (ko) 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치
KR101081907B1 (ko) 가상화 장치
US9946870B2 (en) Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment
CN106844007B (zh) 一种基于空间复用的虚拟化方法与系统
Semnanian et al. Virtualization technology and its impact on computer hardware architecture
US20140068603A1 (en) Automatic processor hotplug in virtualized computer systems
US9201823B2 (en) Pessimistic interrupt affinity for devices
KR20130022091A (ko) 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
US20160085568A1 (en) Hybrid virtualization method for interrupt controller in nested virtualization environment
Nasim et al. Deploying openstack: Virtual infrastructure or dedicated hardware
US9003094B2 (en) Optimistic interrupt affinity for devices
US9329880B2 (en) Counter for fast interrupt register access in hypervisors
WO2018040845A1 (zh) 一种计算资源调度方法及装置
US20170024231A1 (en) Configuration of a computer system for real-time response from a virtual machine
US20140229648A1 (en) Storing Interrupt Location for Fast Interrupt Register Access In Hypervisors
JP2019526083A (ja) 投機的仮想マシン実行
US10387178B2 (en) Idle based latency reduction for coalesced interrupts
US9766917B2 (en) Limited virtual device polling based on virtual CPU pre-emption
Takano et al. Cooperative VM migration for a virtualized HPC cluster with VMM-bypass I/O devices
Kawahara et al. The Continuity of Out-of-band Remote Management across Virtual Machine Migration in Clouds
KR100928866B1 (ko) 가상 환경에서의 어플리케이션 실행 장치 및 방법
Manco et al. Towards the super fluid cloud
Takano et al. Cooperative VM migration: a symbiotic virtualization mechanism by leveraging the guest OS knowledge
US20230017676A1 (en) Virtual accelerators in a virtualized computing system
US20170147377A1 (en) Lazy timer programming for virtual machines

Legal Events

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