KR20210127565A - 가상 머신에 자원을 할당하는 방법 및 장치 - Google Patents

가상 머신에 자원을 할당하는 방법 및 장치 Download PDF

Info

Publication number
KR20210127565A
KR20210127565A KR1020200045596A KR20200045596A KR20210127565A KR 20210127565 A KR20210127565 A KR 20210127565A KR 1020200045596 A KR1020200045596 A KR 1020200045596A KR 20200045596 A KR20200045596 A KR 20200045596A KR 20210127565 A KR20210127565 A KR 20210127565A
Authority
KR
South Korea
Prior art keywords
virtual machine
numa
numa node
resources
nodes
Prior art date
Application number
KR1020200045596A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020200045596A priority Critical patent/KR20210127565A/ko
Priority to PCT/KR2021/004630 priority patent/WO2021210880A1/ko
Publication of KR20210127565A publication Critical patent/KR20210127565A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

본 발명은 범용 하드웨어 서버에서 생성된 가상 머신에 공유 자원을 효율적으로 할당하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당하는 방벙에 있어서, 가상 머신을 생성하는 단계, 상기 생성된 가상 머신에 자원을 할당할 복수의 NUMA(Non-Uniformed Memory Access) 노드를 확인하는 단계, 상기 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와 상기 복수의 NUMA 노드 간의 연결 관계에 기반하여, 상기 복수의 NUMA 노드 중 하나를 선택하는 단계 및 상기 선택된 NUMA 노드의 적어도 일부의 자원을 상기 생성된 가상 머신에 할당하는 단계를 포함한다.

Description

가상 머신에 자원을 할당하는 방법 및 장치{A METHOD AND AN APPARATUS FOR ALLOCATING RESOURCES TO A VIRTUAL MACHINE}
본 발명은 범용 하드웨어 서버에서 생성된 가상 머신에 공유 자원을 효율적으로 할당하는 방법 및 장치에 관한 것이다.
4G 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다. 높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역 (예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO: FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다. 또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다. 이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation: ACM) 방식인 FQAM (Hybrid FSK and QAM Modulation) 및 SWSC (Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(non orthogonal multiple access), 및SCMA(sparse code multiple access) 등이 개발되고 있다.
한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet, of Things, 사물인터넷)망으로 진화하고 있다. 클라우드 서버 등과의 연결을 통한 빅데이터(Big data) 처리 기술 등이 IoT 기술에 결합된 IoE (Internet of Everything) 기술도 대두되고 있다. IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술, 및 보안 기술과 같은 기술 요소 들이 요구되어, 최근에는 사물간의 연결을 위한 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 연구되고 있다.
또한, IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT(information technology)기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
한편, 멀티 코어 프로세서를 기반으로 하는 범용 서버들은 고성능 컴퓨팅 분야와 상용 응용 프로그램 분야에서 그 사용 범위를 넓혀 가고 있다. 예를 들어, 멀티 코어 프로세서는 높아진 병렬성으로 인하여 응용 프로그램의 성능을 향상시킬 수 있다. 하지만 여러 코어들이 공유 자원들을 사용함에 따라 경쟁 및 충돌이 발생하면서 이것이 병목으로 작용하여 성능을 저하시키기도 한다. 이로 인하여, 멀티 코어 서버 상에서 높은 성능을 얻기 위하여는, 공유 자원의 사용을 최적화하는 방법이 필수적으로 고려되어야 한다.
일 예로, NUMA(Non-Uniformed Memory Access, 불균일 기억장치 접근)는 공유 자원 사용 최적화를 위한 아키텍처(architecture) 중 하나의 방법으로써, 각각의 프로세서에 독립적으로 별도의 메모리를 제공할 수 있다. 특히, 이와 같은 이점으로 인하여 가상화 컴퓨팅을 위해 사용되는 범용 하드웨어의 대부분은, NUMA architecture를 가지도록 NUMA 노드를 구성할 수 있다.
그러나, 범용 하드웨어에서 생성된 가상 머신(Virtual Machine)에 NUMA 노드의 공유 자원을 할당하는 경우, 일률적으로 적용되는 방식에 따라 가상 머신에 자원이 할당됨으로써 자원 배분이 효율적으로 이루어지지 않는다는 문제점이 있었다.
이에 본 발명의 일 목적은, 특정 지역 메모리를 사용하는 각 NUMA 노드의 자원 사용량을 고려하여 가상 머신에 자원을 할당하는 방법 및 장치를 제공하는 것이다.
또한, 본 발명의 일 목적은, 하드웨어 서버의 공유 자원 사용량을 최적화하면서 가상 머신의 성능을 높일 수 있는 자원 할당 방법 및 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당하는 서버의 방법에 있어서, 가상 머신을 생성하는 단계; 상기 생성된 가상 머신에 자원을 할당할 복수의 NUMA(Non-Uniformed Memory Access) 노드를 확인하는 단계; 상기 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와 상기 복수의 NUMA 노드 간의 연결 관계에 기반하여, 상기 복수의 NUMA 노드 중 하나를 선택하는 단계; 및 상기 선택된 NUMA 노드의 적어도 일부의 자원을 상기 생성된 가상 머신에 할당하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당하는 서버에 있어서, 가상 머신 생성 요청을 수신하는 입력부; 및 상기 가산 머신 생성 요청에 기반하여 가상 머신을 생성하고, 상기 생성된 가상 머신에 자원을 할당할 복수의 NUMA(Non-Uniformed Memory Access) 노드를 확인하며, 상기 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와의 연결 관계에 기반하여 상기 복수의 NUMA 노드 중 하나를 선택하고, 상기 선택된 NUMA 노드의 적어도 일부의 자원을 상기 생성된 가상 머신에 할당하는 제어부를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 특정 지역 메모리를 사용하는 각 NUMA 노드의 특성을 고려하여 가상 머신에 자원을 할당함으로써, 공유 자원 사용량 및 가상 머신의 성능을 최적화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 NUMA architecture를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 가상 머신을 생성 및 관리하는 openstack architecture를 도시한 도면이다.
도 3는 본 발명의 일 실시 예에 따른 NUMA 노드의 자원을 가상 머신에 할당하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당하는 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시 예에 따라 가상 머신에 자원을 할당할 NUMA 노드를 선택하는 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 자원 재할당 방법을 설명하기 위한 순서도이다.
도 7a는 본 발명의 일 실시 예에 따라 가상 머신에 자원이 할당된 일 예를 도시한 도면이다.
도 7b는 본 발명의 일 실시 예에 따라 가상 머신에 자원이 재할당된 일 예를 도시한 도면이다.
도 8은 상술한 본 발명의 일 실시 예에 따른 방법을 수행하는 서버의 구조를 간략하게 도시한 블록도이다.
본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 본 발명의 실시예들을 구체적으로 설명함에 있어서, 본 발명의 주요한 요지는 유사한 기술적 배경 및 채널형태를 가지는 여타의 통신 시스템에도 본 발명의 범위를 크게 벗어나지 아니하는 범위에서 약간의 변형으로 적용 가능하며, 이는 본 발명의 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 NUMA architecture를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 범용 하드웨어는 가상화 컴퓨팅을 위해 도 1에 도시된 구조의 NUMA 노드들을 구성할 수 있다. 도 1은 하나의 예시로써, 2개의 NUMA 노드(NUMA 노드 #0, NUMA 노드 #1)를 도시하고 있다.
보다 구체적으로, 각 NUMA 노드는 특정 메모리를 지역 메모리(local memory)로, 또 다른 특정 메모리를 원격 메모리(remote memory)로 이용할 수 있다. 예를 들어, NUMA 노드 #0의 경우, 제1 메모리(13a)를 지역 메모리로, 제2 메모리(13b)를 원격 메모리로 가질 수 있다.
하나의 NUMA 노드에 포함된 복수의 프로세서(또는 CPU(central processor unit))는 동일한 지역 메모리를 사용하게 되며, 하나의 NUMA 노드에 포함된 각 프로세서는, 버스(bus)를 통하여 특정 메모리를 지역 메모리로 이용할 수 있도록 구성될 수 있다. 예를 들어, NUMA 노드 #0에 포함된 하나의 프로세서(11)는, 버스(12)를 통하여 제1 메모리(13a)의 일부를 지역 메모리로써 가질 수 있다. 이와 같이 구성될 경우, 프로세서(11)는 제2 메모리(13b)에 접근하는 속도보다 더 빠른 속도로 제1 메모리(13a)에 접근할 수 있게 된다.
이와 같이, 동일한 지역 메모리를 갖는 프로세서들을 하나의 묶음으로 갖는 NUMA 노드는, 메모리에 접근하는 시간이 각 프로세서와 메모리들 간의 상대적인 위치에 따라 달라질 수 있는 구조이다. 이와 같이 각 프로세서에 독립적인 별도의 메모리를 제공함으로써 여러 프로세서들이 동일한 메모리 주소에 접근함에 따른 성능 저하 문제를 해결할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 가상 머신을 생성 및 관리하는 openstack architecture를 도시한 도면이고, 도 3는 본 발명의 일 실시 예에 따른 NUMA 노드의 자원을 가상 머신에 할당하는 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 네트워크 기능의 가상화(network function virtualization, NFV)를 위한 아키텍처는, 가상 자원 관리 플랫폼인 openstack 서비스를 제공할 수 있다.
예를 들어, openstack 아키텍처는, 도 2에 도시된 바와 같이, NFVO, VNFM 등과 같이 네트워크 기능 가상화를 관리 및 조직화할 수 있는 구성들을 포함할 수 있고, 가상화 계층이나 VIM(virtualized infrastructure manager)과 같이 오픈 소스로 제공되는 프레임 워크를 이용하여, 가상 머신을 생성하고 이에 대한 자원을 관리하는 구성들을 포함할 수 있다.
본 발명의 일 실시 예에 따른 가상 머신은, 일 예로, API(application program interface)를 통하여 외부로부터 가상화 네트워크와 관련된 요청이 수신되면, VIM(virtualized infrastructure manager) 및 가상화 계층(virtualization layer) 영역의 openstack 서비스를 통하여 생성될 수 있다.
또한, 본 발명의 일 실시 예에 따라 생성된 가상 머신은, 아키텍처 내의 이용 가능한 하드웨어 자원들을 통하여 동작을 위한 자원들을 할당받을 수 있다. 예를 들어, 본 발명의 일 실시 예에 따라 NUMA 노드의 자원이 생성된 가상 머신에 할당될 수 있다. 일 예로, 도 3에서 도시한 openstack 서비스를 이용하여 가상 머신이 생성된 경우, NUMA 노드들의 자원 사용량 및 가용성에 기반하여 NUMA 노드의 자원이 가상 머신에 할당될 수 있다.
보다 구체적으로, 생성된 가상 머신에 자원을 할당해야 하는 경우, 관련된 NUMA 노드들 각각의 자원 가용성이 확인되고, 가상 머신에서 사용 가능한 자원이 남아있는 NUMA 노드가 선택될 수 있다. 이때, 복수의 NUMA 노드가 가상 머신에 의해 사용될 수 있는 자원을 갖는 경우, 도 3에 도시된 바와 같이, 가장 첫 번째의 NUMA 노드(30)의 메모리 자원부터 순차적으로 할당되게 된다.
일 예로, 도 3에 도시된 바에 따라, 2개의 NUMA 노드가 구성되어 있고, 2개의 가상 머신(1, 2)이 생성될 수 있다. 이때, 2개의 NUMA 노드들의 자원 가용성을 확인한 결과, 2개의 NUMA 노드의 자원 모두가 생성된 가상 머신들(1, 2)에 이용 가능하다면, 첫 번째 NUMA 노드(30)의 메모리가 자원 할당에 이용될 수 있다.
이때, 각 가상 머신에 자원을 할당함에 있어, 각 가상 머신이 필요로하는 코어 자원이 고려될 수 있다. 예를 들어, 제1 가상 머신(1)이 2개의 코어 자원을 필요로 하는 경우, 제1 프로세서(31a) 및 제2 프로세서(31b)가 제1 가상 머신(1)을 위하여 할당되고, 제2 가상 머신(2)이 1개의 코어 자원을 필요로 하는 경우, 제3 프로세서(31c)가 제2 가상 머신(2)을 위하여 할당될 수 있다.
이와 같이 할당되면, 제1 가상 머신(1) 및 제2 가상 머신(2)은 데이터 처리 등의 동작을 수행함에 있어, 제1 가상 머신(1) 및 제2 가상 머신(2)에 자원을 할당한 NUMA 노드(30)의 원격 메모리인 제2 메모리(23b)보다 지역 메모리인 제1 메모리(33a)에 보다 빠르게 접근할 수 있다.
한편, 이와 같이, NUMA 노드들 간의 자원 가용성이 동일함에 따라 순차적으로 NUMA 노드의 자원을 할당하는 일률적인 방식이 적용되는 경우, 복수의 가상 머신이 동일한 지역 메모리를 사용하게 되어, 특히 고속의 데이터 처리 성능이 필요한 가상 머신의 성능이 저하될 수 있다. 또한, NUMA 노드 각각의 자원 사용량을 고려하지 않고 자원 가용성만을 고려하여 순차적으로 NUMA 노드 자원을 할당하는 것은 효율성 측면에서도 적절하지 않다.
이를 위하여, 복수의 가상 머신의 동작 및 데이터 접근 패턴 등을 고려하여 메모리를 재할당하는 기술이 고려될 수 있으나, 메모리 재할당의 경우, 가상 머신 생성 단계에서 이미 할당되어 사용하고 있는 공유 자원 중 버퍼 캐시로 이용되는 메모리에 대해서만 재할당이 가능하기 때문에 동일한 지역 메모리를 사용함에 따른 문제를 충분히 해결하지 못하는 단점이 있다.
따라서, 본 발명은 NUMA architecture를 지원하는 범용 하드웨어 서버에서, 생성된 가상 머신에 NUMA 노드의 공유 자원을 최대한 효율적으로 활용할 수 있도록 하는 자원 할당 방법을 제공하고자 한다.
또한, 본 발명의 일 실시 예에 따라 가상 머신의 생성 및 관리 플랫폼인 openstack 기술이 연동됨에 있어, 가상 머신의 생성 단계에서 범용 하드웨어의 NUMA 노드 자원을 효율적인 방식에 따라 자동으로 분산할 수 있는 방법을 제안하고자 한다.
이하에서는 도 4 및 도 5를 참조하여, 본 발명이 제공하고자 하는 방법을 설명하되, 본 발명에 따른 방법을 실시하는 장치로써 서버를 예시하여 설명하기로 한다.
도 4는 본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당하는 방법을 설명하기 위한 순서도이고, 도 5는 본 발명의 일 실시 예에 따라 가상 머신에 자원을 할당할 NUMA 노드를 선택하는 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 본 발명의 일 실시 예에 따라 가상 머신이 생성될 수 있다(S410).
예를 들어, 본 발명의 일 실시 예에 따른 가상 머신은, 외부로부터 가상 머신 생성을 위한 요청이 수신되거나, 소정의 조건이 만족되는 것에 기반하여 도 2에서 상술한 openstack 서비스를 통하여 생성될 수 있다. 일 예로, 사용자는 openstack 서비스 중 가상 머신의 생성 및 관리를 담당하는 NOVA 서비스의 API를 통해 가상 머신 생성을 요청할 수 있다. 이와 같이 NOVA의 API 서비스는 가상 머신 생성 요청이 수신된 경우, 가상 머신 생성을 수행할 NOVA compute 서비스로 상기 요청을 전달할 수 있다.
한편, 가상 머신의 생성을 요청함에 있어, 가상 머신의 사양 정보에서 NUMA 노드의 자원 분산 기능을 사용할지 여부가 정의될 수 있다. 여기에서, NUMA 노드의 자원 분산 기능이라 함은, 후술할 본 발명의 일 실시 예에 따른 NUMA 노드의 선택 방법에 따라 자원을 할당하는 기능을 의미할 수 있다. 만약, 자원 분산 기능이 사용되지 않는 것으로 설정되는 경우라면, 예를 들어, 생성된 가상 머신에의 자원 할당을 위해, 상술한 openstack 아키텍처에 따라 순차적으로 NUMA 노드가 선택될 수 있다.
상기 자원 분산 기능의 사용 여부는 가상 머신의 사양 정보에 추가적인 스펙을 정의함에 따라 설정될 수 있다. 본 발명의 일 실시 예에 따른 서버는, 가상 머신의 생성 요청이 수신되면, 해당 요청에 대한 가상 머신의 사양 정보에서 자원 분산 기능이 사용되는지 여부를 확인할 수 있다. 이하의 본 발명의 실시 예에서는 자원 분산 기능이 사용되는 것으로 설정된 경우를 전제로 설명하기로 한다.
상술한 방법에 따라 가상 머신이 생성되면, 본 발명의 일 실시 예에 따른 서버는 생성된 가상 머신에 자원을 할당할 복수의 NUMA 노드를 확인할 수 있다(S420).
본 발명의 일 실시 예에 따른 NUMA 노드는, 예를 들어, 도 1에서 상술한 구조와 같이, 지역 메모리 및 원격 메모리를 이용하는 복수의 프로세서들을 포함할 수 있다. 또한, 가상 머신에 자원을 할당할 복수의 NUMA 노드를 확인한다 함은, 각 NUMA 노드의 자원가용성 및 자원사용량을 확인하여, 생성된 가상 머신의 사양에 따라, 해당 가상 머신에 적어도 일부의 자원을 할당할 수 있는 모든 NUMA 노드를 확인하는 것을 의미할 수 있다.
이와 같이 복수의 NUMA 노드가 확인되면, 확인된 복수의 NUMA 노드 각각과, 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와의 연결 관계에 기반하여 하나의 NUMA 노드를 선택할 수 있다(S430).
여기에서 PCI 장치란, 직접적인 메모리 접근(direct memory access, DMA) 기능을 통하여 컴퓨터 성능을 향상시킬 수 있는 장치로써, 특정 NUMA 노드에 물리적으로 연결될 수 있다.
이하, 하나의 NUMA 노드를 선택하는 방법은, 도 5를 참조하여 보다 구체적으로 설명한다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 서버는, 생성된 가상 머신에 자원을 할당할 수 있는 복수의 NUMA 노드 중, 가상 머신에 사용할 PCI 장치와 연결된 적어도 하나의 NUMA 노드를 확인할 수 있다(S531).
즉, 본 발명의 일 실시 예에 따르면, 복수의 NUMA 노드 중에서도, 가상 머신에서 사용할 PCI 장치가 직접 연결된 NUMA 노드들을 우선적으로 선정할 수 있다. 여기에서, PCI 장치가 연결된 NUMA 노드에 대한 정보는, 예를 들어, Libvirt 드라이버를 통하여 획득할 수 있다.
적어도 하나의 NUMA 노드가 확인되면, 본 발명의 일 실시 예에 따른 서버는, 상기 적어도 하나의 NUMA 노드 각각의 자원 사용량을 비교할 수 있다(S532).
예를 들어, 적어도 하나의 NUMA 노드 각각의 자원 사용량은, 1차적으로 각 NUMA 노드에 포함된 프로세서(CPU)들의 사용량으로 결정될 수 있다. 이때, 각 NUMA 노드의 CPU 사용량이 동일한 NUMA 노드가 여러 개인 경우, 2차적으로 해당 NUMA 노드들 각각의 메모리 사용량에 기반하여 자원 사용량을 결정할 수 있다. 이를 위하여, 본 발명의 일 실시 예에 따른 서버는, Libvirt 드라이버를 통하여 각 NUMA 노드의 CPU 사용량 및 메모리 사용량 정보를 획득할 수 있다.
이때, 본 발명의 일 실시 예에 따른 서버는, 상기 비교를 통하여 가장 적은 자원 사용량을 갖는 NUMA 노드가 2개 이상인지를 확인(S533)하고, 2개 이상인 경우라면 기 설정된 순서에 따라 자원을 할당할 하나의 NUMA 노드를 선택할 수 있다(S534).
여기에서, 기 설정된 순서라 함은, openstack 아키텍처에서 자원을 할당하는 일반적인 방법에 따른 순차적인 순서일 수 있고, 이와 달리 사용자 설정 또는 디폴트 설정에 기반하여 자원 할당에 고려되는 우선순위일 수 있다.
이와 달리, 본 발명의 일 실시 예에 따른 서버는, 상기 비교를 통하여 가장 적은 자원 사용량을 갖는 NUMA 노드가 하나로 확인되면, 해당 NUMA 노드를 선택할 수 있다(S535).
상기 방법에 따라 최종적으로 하나의 NUMA 노드가 선택되면, 도 4에 도시된 바에 따라 선택된 NUMA 노드의 자원의 적어도 일부를 생성된 가상 머신에 할당할 수 있다(S440).
본 발명의 일 실시 예에 따른 가상 머신에 자원을 할당함에 있어, 가상 머신의 성능 최적화를 위하여 CPU와 메모리는 단일 NUMA 노드에서 할당할 수 있다.
상술한 본 발명의 실시 예에 따를 경우, NUMA architecture를 지원하는 범용 서버에서, NUMA 노드와 같은 하드웨어 공유 자원을 최대한 효율적으로 활용할 수 있다. 또한, 이와 같이 자원이 할당될 경우, 가상 머신들 간 동일한 지역 메모리를 사용하는 것에 따른 성능 저하를 방지할 수 있기 때문에 고속의 데이터 처리 등과 같은 동작을 수행함에 있어 보다 향상된 가상 머신의 성능을 제공할 수 있다.
이하에서는, 본 발명의 일 실시 예에 따라 가상 머신에 자원이 할당된 이후 하드웨어 자원 사용량에 따라 자원을 재할당하는 실시 예를 설명하기로 한다.
도 6은 본 발명의 일 실시 예에 따른 자원 재할당 방법을 설명하기 위한 순서도이고, 도 7a는 본 발명의 일 실시 예에 따라 가상 머신에 자원이 할당된 일 예를 도시한 도면이고, 도 7b는 본 발명의 일 실시 예에 따라 가상 머신에 자원이 재할당된 일 예를 도시한 도면이다.
도 6 및 도 7a를 참조하면, 본 발명의 일 실시 예에 따라 복수의 가상 머신이 생성되면, 상술한 방법에 따라 각 NUMA 노드의 자원 사용량 등을 고려하여 각 가상 머신에 자원이 할당될 수 있다. 예를 들어, 4개의 가상 머신이 생성된 경우, 각 가상 머신에 사용될 PCI 장치의 연결 관계 및 각 가상 머신의 생성 당시 NUMA 노드들의 자원 사용량(각 NUMA 노드에 포함된 프로세서의 사용량 및 각 NUMA 노드의 메모리 사용량)에 기반하여 4개의 가상 머신에 적절한 NUMA 노드들의 자원이 할당될 수 있다,
일 예로, 도 7a를 참조하면, 2개의 코어 자원을 필요로하는 제1 가상 머신(1)은, 제1 NUMA 노드(70a)의 제1 프로세서(71a)와 제2 프로세서(71b)에 대응되는 자원이 할당되고, 2개의 코어 자원을 필요로하는 제2 가상 머신(2)은, 제2 NUMA 노드(70b)의 제1 프로세서(71d) 및 제2 프로세서(71e)에 대응되는 자원이 할당되며, 2개의 코어 자원을 필요로하는 제3 가상 머신(3)은, 제2 NUMA 노드(70b)의 제3 프로세서(71f) 및 제4 프로세서(71g)에 대응되는 자원이 할당되고, 1개의 코어 자원을 필요로하는 제4 가상 머신(4)은 제1 NUMA 노드(70a)의 제3 프로세서(71c)에 대응되는 자원이 할당될 수 있다.
이하에서는, 설명의 편의를 위하여 특정 가상 머신(제4 가상 머신(4)과 혼용하여 기재하기로 한다)을 기준으로 본 실시 예에 따른 동작을 설명하기로 한다. 예를 들어, 제4 가상 머신(4)은, 제1 NUMA 노드(70a)의 자원이 할당(S610)되어, 제1 메모리(73a)를 지역 메모리로, 제2 메모리(73b)를 원격 메모리로 하여 데이터 처리를 위한 접근을 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 서버는, 특정 가상 머신에 자원을 할당하지 않은 나머지의 적어도 하나의 NUMA 노드(예를 들어, 제2 NUMA 노드(70b))의 자원 사용량을 모니터링할 수 있다(S620).
예를 들어, 가상 머신들에 자원이 할당된 이후, 각 가상 머신의 사양이나 사용자의 요청에 따라 적어도 일부의 가상 머신에 대한 자원 할당이 해제될 수 있다. 이와 같이 NUMA 노드에서의 자원 사용 상황이 변경되는 경우, 각 가상 머신이 현재 할당된 NUMA 노드보다 다른 NUMA 노드를 이용하는 것이 성능면에서 보다 효율적일 수 있기 때문이다.
보다 구체적인 예로, 제2 NUMA 노드(70b)의 자원이 할당되었던 제2 가상 머신(2) 및 제3 가상 머신(3)에 대하여, 도 7b에 도시된 바와 같이, 소정의 이유로 자원 할당이 해제될 수 있다.
이 경우, 본 발명의 일 실시 예에 따른 서버는, 제4 가상 머신(4)에 대한 자원을 재할당하는 것이 적절한 것인지 판단하기 위하여, 제2 NUMA 노드의 자원 사용량을 확인하고, 이를 기 설정된 임계값과 비교할 수 있다(S630).
예를 들어, 상기 임계값은, 제4 가상 머신에 대한 자원을 재할당하는 것이 제4 가상 머신의 동작에 따른 성능을 보다 향상시킬 수 있을지를 결정하는 기준이 될 수 있다. 본 발명에 따른 임계값은, 각 가상 머신의 동작 특성, 새로운 가상 머신 생성 요청 유무, 사용자 설정 등에 따라 다양하게 설정될 수 있다.
일 예로, 적어도 하나의 제2 NUMA 노드에 대하여 확인된 자원 사용량이 기 설정된 임계값보다 작은 경우, 본 발명의 일 실시 예에 따른 서버는, 특정 가상 머신에 대한 자원을 재할당할 수 있다. 즉, 본 발명의 일 실시 예에 따른 서버는, 제2 NUMA 노드로 변경하여 특정 가상 머신에 대한 자원을 재할당할 수 있다(S640).
이 경우, 도 7b에 도시된 바와 같이, 1개의 코어를 필요로 하는 제4 가상 머신(4)은, 제2 NUMA 노드(70b)의 제1 프로세서(71d)에 대응되는 자원을 재할당받고, 제2 메모리(73b)를 지역 메모리로써, 제1 메모리(73a)를 원격 메모리로써 이용하며 동작하게 된다.
이와 달리, 적어도 하나의 제2 NUMA 노드에 대하여 확인된 자원 사용량이 기 설정된 임계값보다 큰 경우, 본 발명의 일 실시 예에 따른 서버는, 특정 가상 머신에 대한 자원을 재할당하는 것보다 현재의 자원 할당 상태를 유지하는 것이 성능면에서 더 이득이라 판단하여, 제1 NUMA 노드를 유지할 수 있다(S650).
이와 같이 본 발명의 일 실시 예에 따르면, 가상 머신의 생성 당시, 공유 자원을 효율적으로 활용할 수 있도록 적절한 하드웨어 자원을 선택하여 가상 머신에 할당하는 것뿐만 아니라, 이후 변경되는 자원 할당 상황에 기반하여 가상 머신에 자원을 재할당함에 따라, 가상 머신의 성능 향상에 보다 기여할 수 있는 효과가 있다.
도 8은 상술한 본 발명의 일 실시 예에 따른 방법을 수행하는 서버의 구조를 간략하게 도시한 블록도이다.
도 8을 참조하면, 본 발명의 일 실시 예에 따른 서버(800)는, 가상 머신 생성 요청을 수신하는 입력부(810) 및 가상 머신을 생성하고 하드웨어 자원을 가상 머신에 할당 및 관리하는 제어부(820)를 포함할 수 있다.
보다 구체적으로, 본 발명의 일 실시 예에 따른 입력부(810)는, 도 2에서 상술한 바와 같이, NOVA API 서비스를 통하여 가상 머신 생성 요청을 수신하고, 이를 가상 머신 생성을 수행할 제어부로 전달할 수 있다.
본 발명의 일 실시 예에 따른 제어부(820)는, 가상 머신을 생성하는 VM 생성부(821)와 가상 머신에 하드웨어 자원을 할당하는 자원 할당부(822)를 포함할 수 있다. 본 도면에서는 본 발명의 특징에 따른 동작과 관련된 구성만을 제어부(820)에 도시하였으나, 이에 한정되지 않고, 제어부(820)에는 다른 구성이 더 포함될 수 있다.
또한, 본 발명의 일 실시 예에 따른 VM 생성부(821)는 가상 머신 생성 요청이 입력부(810)로부터 수신되면, 이에 기반하여 가상 머신을 생성하고, 본 발명의 일 실시 예에 따른 자원 할당부(822)는, 본 발명과 관련된 NUMA 노드들과 생성될 가상 머신에 사용될 PCI 장치와의 연결 관계 및 NUMA 노드들의 자원 사용량에 따라 적절한 NUMA 노드를 선택하여, 생성된 가상 머신에 자원을 할당할 수 있다.
또한, 본 발명의 일 실시 예에 따른 자원 할당부(822)는, 가상 머신에 자원을 할당한 이후에도 NUMA 노드들의 자원 사용량을 모니터링하여, 자원을 재할당하는 동작을 제어할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (12)

  1. 가상 머신에 자원을 할당하는 서버의 방법에 있어서,
    가상 머신을 생성하는 단계;
    상기 생성된 가상 머신에 자원을 할당할 복수의 NUMA(Non-Uniformed Memory Access) 노드를 확인하는 단계;
    상기 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와 상기 복수의 NUMA 노드 간의 연결 관계에 기반하여, 상기 복수의 NUMA 노드 중 하나를 선택하는 단계; 및
    상기 선택된 NUMA 노드의 적어도 일부의 자원을 상기 생성된 가상 머신에 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 복수의 NUMA 노드 중 하나를 선택하는 단계는,
    상기 복수의 NUMA 노드 중 상기 PCI 장치와 연결된 적어도 하나의 NUMA노드를 확인하는 단계; 및
    상기 적어도 하나의 NUMA 노드 각각의 자원 사용량에 기반하여 하나의 NUMA 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 NUMA 노드 중 가장 적은 자원 사용량을 갖는 하나의 NUMA 노드를 선택하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 NUMA 노드 중 2개 이상의 NUMA 노드가 동일한 자원 사용량을 가지면, 기 설정된 순서에 기반하여 상기 2개 이상의 NUMA 노드 중 하나의 NUMA 노드를 선택하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 가상 머신이 생성되면, NUMA 노드에 대한 자원 분산 기능이 설정되었는지 여부를 확인하는 단계; 및
    상기 자원 분산 기능이 설정되면, 상기 PCI 장치를 확인하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 자원 분산 기능이 설정되지 않으면, 상기 복수의 NUMA 노드 중 첫 번째 NUMA 노드를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 가상 머신에 자원을 할당하는 서버에 있어서,
    가상 머신 생성 요청을 수신하는 입력부; 및
    상기 가상 머신 생성 요청에 기반하여 가상 머신을 생성하고, 상기 생성된 가상 머신에 자원을 할당할 복수의 NUMA(Non-Uniformed Memory Access) 노드를 확인하며, 상기 생성된 가상 머신에 사용할 PCI(Peripheral Component Interconnect) 장치와의 연결 관계에 기반하여 상기 복수의 NUMA 노드 중 하나를 선택하고, 상기 선택된 NUMA 노드의 적어도 일부의 자원을 상기 생성된 가상 머신에 할당하는 제어부를 포함하는 것을 특징으로 하는 서버.
  8. 제7항에 있어서,
    상기 제어부는,
    상기 복수의 NUMA 노드 중 상기 PCI 장치와 연결된 적어도 하나의 NUMA노드를 확인하고, 상기 적어도 하나의 NUMA 노드 각각의 자원 사용량에 기반하여 하나의 NUMA 노드를 선택하는 것을 특징으로 하는 서버.
  9. 제8항에 있어서,
    상기 제어부는,
    상기 적어도 하나의 NUMA 노드 중 가장 적은 자원 사용량을 갖는 하나의 NUMA 노드를 선택하는 것을 특징으로 하는 서버.
  10. 제9항에 있어서,
    상기 제어부는,
    상기 적어도 하나의 NUMA 노드 중 2개 이상의 NUMA 노드가 동일한 자원 사용량을 가지면, 기 설정된 순서에 기반하여 상기 2개 이상의 NUMA 노드 중 하나의 NUMA 노드를 선택하는 것을 특징으로 하는 서버.
  11. 제7항에 있어서,
    상기 제어부는,
    상기 가상 머신이 생성되면, NUMA 노드에 대한 자원 분산 기능이 설정되었는지 여부를 확인하고, 상기 자원 분산 기능이 설정되면 상기 PCI 장치를 확인하는 것을 특징으로 하는 서버.
  12. 제11항에 있어서,
    상기 제어부는,
    상기 자원 분산 기능이 설정되지 않으면, 상기 복수의 NUMA 노드 중 첫 번째 NUMA 노드를 선택하는 것을 특징으로 하는 서버.
KR1020200045596A 2020-04-14 2020-04-14 가상 머신에 자원을 할당하는 방법 및 장치 KR20210127565A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200045596A KR20210127565A (ko) 2020-04-14 2020-04-14 가상 머신에 자원을 할당하는 방법 및 장치
PCT/KR2021/004630 WO2021210880A1 (ko) 2020-04-14 2021-04-13 가상 머신에 자원을 할당하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200045596A KR20210127565A (ko) 2020-04-14 2020-04-14 가상 머신에 자원을 할당하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210127565A true KR20210127565A (ko) 2021-10-22

Family

ID=78084354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200045596A KR20210127565A (ko) 2020-04-14 2020-04-14 가상 머신에 자원을 할당하는 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20210127565A (ko)
WO (1) WO2021210880A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782657B2 (en) * 2010-09-17 2014-07-15 Oracle International Corporation Dynamic creation and destruction of IO resources based on actual load and resource availability
JP2012146105A (ja) * 2011-01-12 2012-08-02 Hitachi Ltd 計算機システム
US8825863B2 (en) * 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US9699093B2 (en) * 2013-06-12 2017-07-04 Dell Products L.P. Migration of virtual machine based on proximity to peripheral device in NUMA environment
US10248444B2 (en) * 2014-03-31 2019-04-02 Dell Products, L.P. Method of migrating virtual machines between non-uniform memory access nodes within an information handling system

Also Published As

Publication number Publication date
WO2021210880A1 (ko) 2021-10-21

Similar Documents

Publication Publication Date Title
US11467864B2 (en) Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system
Chai et al. Task execution cost minimization-based joint computation offloading and resource allocation for cellular D2D MEC systems
US8949847B2 (en) Apparatus and method for managing resources in cluster computing environment
CN109313582B (zh) 用于动态远程资源分配的技术
Dubey et al. A novel multi-objective CR-PSO task scheduling algorithm with deadline constraint in cloud computing
US9465641B2 (en) Selecting cloud computing resource based on fault tolerance and network efficiency
US11283860B2 (en) Apparatus and method for adjusting resources in cloud system
Maiti et al. An effective approach of latency-aware fog smart gateways deployment for IoT services
US9329906B2 (en) Virtual machine mobility using resource pools
CN105900063A (zh) 多处理环境中的调度方法和装置
KR20150024845A (ko) 물리적 큐들로의 가상 머신 플로우들의 오프로딩 기법
US9648558B2 (en) System and method for user equipment centric unified system access in virtual radio access network
CN110166507B (zh) 多资源调度方法和装置
WO2019129169A1 (zh) 用于无线通信的电子设备和方法以及计算机可读存储介质
Panda et al. User allocation in mobile edge computing: A deep reinforcement learning approach
Nan et al. A New Task Scheduling Scheme Based on Genetic Algorithm for Edge Computing.
KR20150044113A (ko) 멀티 태스크 할당 장치 및 그 방법
Doan et al. Reusing sub-chains of network functions to support mec services
CN116075809A (zh) 边缘区域中计算节点和基础设施节点之间的自动节点互换
KR20210127565A (ko) 가상 머신에 자원을 할당하는 방법 및 장치
US11716254B2 (en) Methods and systems for management of shared network slice instance (NSI) in a wireless network
CN116346747A (zh) 用于基于网络接口设备的边缘计算的方法和装置
KR20120071979A (ko) 클라우드 컴퓨팅 시스템의 자원관리장치 및 방법
US20210279107A1 (en) Computing resource allocation for virtual network functions
Yao et al. A Data-driven method for adaptive resource requirement allocation via probabilistic solar load and market forecasting utilizing digital twin