Xenserver 특정 pGPU 상에서 vGPU 생성하기

서진우

 

 
작성자 : 서진우 (alang@clunix.com)

 

 

 

아래의 내용은 추측을 통한 검증 테스트 과정의 내용임.

현재 까지의 결론은 gpu-group 은 pgpu를 분리하는 역할만 함.

vgpu의 경우 gpu-group을 통해 배분할 수 없음.

 

단 아래 방식으로 vGPU 별로 group 을 운영하면, 적어도 XenCenter 상에 VM별 GPU 그룹정보

를 통해 해당 VM이 어떤 vGPU를 가지고 있는지 알수 있다.

 

또한 vgpu-create 시 xe pgpu-list params=all 로 설정에 필요한 정보를 모두 확인할 수

있다.

 

—————————————————————————————-

 

동일한 사양의 여러 PGPU를 가진 서버로 XenServer를 기본 구성하면 단일 gpu group을 통해

해당 pgpu 가 그룹화 된다. 만일 특정 VM에 할당하는 vGPU를 특정 pGPU에 종속을 시키고자 하면

GPU Group을 분리해서 각 그룹별로 다른 pGPU를 할당해야 한다.

 

이러한 이유는 XenCenter에서 VM의 GPU 속성 선택을 gpu group 단위로만 지정 할 수 있다.

만일 부서나 프로젝트와 같이 같은 종속 부류에 대해 고정된 GPU 자원을 할당하고자 할 경우

기본적인 할당 정책으로는 불가능하다.

 

XenCenter 상에서 직관적으로 여러 VM의  GPU 자원 운영하고자 할때 pGPU별 그룹 분리는 필요한

방안 중 하나가 될것이다.

 

참고로 기본상태 XenCenter 로 GPU 그룹을 할당하면 무조건 passthrough type의 vgpu를 가지게

된다. vGPU(K260q,K240q,K200)를 할당받기 위해서는 command line 상에서 직접 해당 VM에

vgpu-type을 지정해 주어야 한다.

 

XenCenter UI 상에서 GPU 그룹을 vGPU Type별로 분류를 하고, vGPU type 별 그룹을 할당할때

해당 vGPU를 자동으로 할당 받기 위해서는 아래의 GPU 분류작업이 필요하다.

 

 

1. vGPU Type 별로 gpu group 생성

2. pGPU 장치 pci id 를 통해 물리적으로 특정 GPU 장치를 gpu group 에 할당

3. pGPU 속성 정보에서 enabled-VGPU-types 을 지정한다.

 

일단 gpu-group 을 vGPU 별로 분리하기 위해서는 새로운 gpu-group을 생성해야 한다.

또한 새로 생성한 gpu-group 에 특정 pGPU를 할당해야 할것이다.

 

우선 새로운 GPU group 을 생성하도록 한다.

 

# xe gpu-group-create name-label=”<New GPU Group name>”

 

# xe gpu-group-create name-label=”Group of ALANG VMs’s GPU Resource”

 

이제 특정 pGPU를 새로 생성한  gpu group 에 포함시켜 주면 된다.

그러기 위해서는 새로 생성한 gpu group의 uuid 와 pGPU 의 uuid 를 사전에 파악해야 한다.

 

아래는 pci_id 86:00.0 의 pGPU를 새로 생성한 “Group of ALANG VMs’s GPU Resource” group

에 포함 시키는 과장이다.

 

먼저 새로 생성한 gpu group uuid 파악

 

# xe gpu-group-list name-label=”Group of ALANG VMs’s GPU Resource”

——————————————————————————-

uuid ( RO)                : 6a417759-635c-cdf4-8345-f2f2e986d432

name-label ( RW): Group of ALANG VMs’s GPU Resource

name-description ( RW):

——————————————————————————

 

새로 생성한 gpu group 에 포함 시킬 pGPU의 uuid 파악

 

# xe pgpu-list pci-id=0000:86:00.0

——————————————————————————

uuid ( RO)              : 62ce0ffc-aa26-9f03-ac95-406ee9a4e8f6

vendor-name ( RO): NVIDIA Corporation

device-name ( RO): GK104GL [GRID K2]

gpu-group-uuid ( RW): a116cfbe-ddce-f08a-3d41-7a84640d6fc7

——————————————————————————

해당 pGPU를 신규 gpu group 에 포함

 

# xe pgpu-param-set uuid=62ce0ffc-aa26-9f03-ac95-406ee9a4e8f6 gpu-group-uuid=6a417759-635c-cdf4-8345-f2f2e986d432

 

이제 마지막으로 해당 pGPU 에 지원가능한 vgpu-type을 지정한다.

 

# xe vgpu-type-list  : vgpu-type-uuid 확인

# xe pgpu-list params=all : pgpu-uuid, gpu-group-name-label, enabled-VGPU-types 확인

# xe pgpu-param-set uuid=<pgpu-uuid> enabled-VGPU-types=<vgpu-type-uuid>

 

이제 정상적으로 Group 별로 pGPU 와 vGPU-Type 이 분리가 되었는지 확인한다.

 

# xe pgpu-list params=all

———————————————————————————————

uuid ( RO)                    : 502e7398-4756-3cdf-8560-44beb6a62433

vendor-name ( RO): NVIDIA Corporation

device-name ( RO): GK106GL [Quadro K4000]

gpu-group-uuid ( RW): e20bbb59-5236-2d75-10c2-63b7543b30c1

gpu-group-name-label ( RO): Group of NVIDIA Corporation GK106GL [Quadro K4000] GPUs

host-uuid ( RO): 58688cf5-f2e6-40c3-bb22-5f91b945789a

host-name-label ( RO): alang20

pci-id ( RO): 0000:03:00.0

dependencies (SRO): 0000:03:00.1

other-config (MRW):

supported-VGPU-types ( RO): b607c3e6-1948-637b-6cbf-b5175b122919

enabled-VGPU-types (SRW): b607c3e6-1948-637b-6cbf-b5175b122919

resident-VGPUs ( RO):

 

 

uuid ( RO)                    : 3522804a-e851-3d19-fd3c-c6714981d95f

vendor-name ( RO): NVIDIA Corporation

device-name ( RO): GK104GL [GRID K2]

gpu-group-uuid ( RW): c55f9161-a28d-8f20-1522-f95dfbc88f4b

gpu-group-name-label ( RO): NVIDIA GRID K2 [K240Q] vGPUs

host-uuid ( RO): 58688cf5-f2e6-40c3-bb22-5f91b945789a

host-name-label ( RO): alang20

pci-id ( RO): 0000:86:00.0

dependencies (SRO):

other-config (MRW):

supported-VGPU-types ( RO): b607c3e6-1948-637b-6cbf-b5175b122919; 889c4df2-5f7c-78f7-acb9-59f66742c93d; e1b8131a-6ba5-e90f-9d77-d53b93861a3b; 6b5852a5-0499-0129-8bd9-2c8aa15cd1bb

enabled-VGPU-types (SRW): 889c4df2-5f7c-78f7-acb9-59f66742c93d

resident-VGPUs ( RO):

 

 

uuid ( RO)                    : c2a5ab86-9a3f-4d5c-0c12-43f37f01e77c

vendor-name ( RO): NVIDIA Corporation

device-name ( RO): GK104GL [GRID K2]

gpu-group-uuid ( RW): 9bada0e2-f576-8eb7-e282-ba7bfde9e552

gpu-group-name-label ( RO): NVIDIA GRID K2 [passthrough] pGPUs

host-uuid ( RO): 58688cf5-f2e6-40c3-bb22-5f91b945789a

host-name-label ( RO): alang20

pci-id ( RO): 0000:85:00.0

dependencies (SRO):

other-config (MRW):

supported-VGPU-types ( RO): b607c3e6-1948-637b-6cbf-b5175b122919; 889c4df2-5f7c-78f7-acb9-59f66742c93d; e1b8131a-6ba5-e90f-9d77-d53b93861a3b; 6b5852a5-0499-0129-8bd9-2c8aa15cd1bb

enabled-VGPU-types (SRW): b607c3e6-1948-637b-6cbf-b5175b122919

resident-VGPUs ( RO): 94701c64-9262-824c-5c14-2f2abd722205

—————————————————————————————

 

 

# xe gpu-group-list params=all

—————————————————————————————–

uuid ( RO)                    : 72462076-8107-8f35-e09d-ef1ef40e0e5d

name-label ( RW): NVIDIA GRID K2 [K200] vGPUs

name-description ( RW):

VGPU-uuids (SRO):

PGPU-uuids (SRO):

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

 

 

uuid ( RO)                    : c55f9161-a28d-8f20-1522-f95dfbc88f4b

name-label ( RW): NVIDIA GRID K2 [K240Q] vGPUs

name-description ( RW):

VGPU-uuids (SRO):

PGPU-uuids (SRO): 3522804a-e851-3d19-fd3c-c6714981d95f

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

 

 

uuid ( RO)                    : 9bada0e2-f576-8eb7-e282-ba7bfde9e552

name-label ( RW): NVIDIA GRID K2 [passthrough] pGPUs

name-description ( RW):

VGPU-uuids (SRO): 94701c64-9262-824c-5c14-2f2abd722205

PGPU-uuids (SRO): c2a5ab86-9a3f-4d5c-0c12-43f37f01e77c

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

 

 

uuid ( RO)                    : e20bbb59-5236-2d75-10c2-63b7543b30c1

name-label ( RW): Group of NVIDIA Corporation GK106GL [Quadro K4000] GPUs

name-description ( RW):

VGPU-uuids (SRO):

PGPU-uuids (SRO): 502e7398-4756-3cdf-8560-44beb6a62433; 4d6dc185-d40c-048d-b13e-e53fb1b02f1f

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

 

 

uuid ( RO)                    : 6620b20d-6fe1-421e-20e8-0c408b1394f0

name-label ( RW): NVIDIA GRID K2 [K260Q] vGPUs

name-description ( RW):

VGPU-uuids (SRO):

PGPU-uuids (SRO):

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

———————————————————————————————

 

일단 새로 추가한 gpu-group 에 PGPU 가 포함되어 있는 것을 확인할 수 있다. 하지만 아직 해당 PGPU

를 통해 아무런 vGPU가 할당되지는 않았다.

 

이제 XenCenter 로 접속한다. 그런 후 몇몇 VM의 GPU 속성 변경을 통해 새로 생성한 GPU Group 을

할당 한다.

 

다시 gpu-group-list 를 확인해 본다.

 

# xe gpu-group-list params=all

——————————————————————————–

uuid ( RO)                    : 56a9d370-df44-64ab-31c3-b3649cc03247

name-label ( RW): Group of NVIDIA Corporation GK104GL [GRID K2] GPUs

name-description ( RW):

VGPU-uuids (SRO): 3ba20760-c18c-e0f2-aeaa-40716072f6a9; c90014f4-c924-ac69-f329-ab670e0900a8; 7af519ba-bf7c-ac73-2032-56c93dd7770b; ea09461b-b189-8d23-b4f8-112ec576f521; 78458e7a-6c21-69cd-e192-da71c8a4313c; b45b9706-84d5-413e-4189-0f75d8c3d2ea; 459145b3-4fb1-87a5-9256-6832a2ae7f18

PGPU-uuids (SRO): 7bd8ebb9-9f69-e9ef-9e68-2be71bddd172

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

 

 

uuid ( RO)                    : 6a417759-635c-cdf4-8345-f2f2e986d432

name-label ( RW): Group of ALANG VMs’s GPU Resource

name-description ( RW):

VGPU-uuids (SRO): 20e3821b-cdc1-dede-dedd-ab662cd6b996; a8403082-2ad3-2ee5-ee48-4848c1421abe; 851e6198-d87b-92b1-b811-e00d2a91fc30; acdf6db6-3e9b-9ea5-c949-0b83ee594efd

PGPU-uuids (SRO): 62ce0ffc-aa26-9f03-ac95-406ee9a4e8f6

other-config (MRW):

enabled-VGPU-types ( RO): <expensive field>

supported-VGPU-types ( RO): <expensive field>

allocation-algorithm ( RW): depth-first

——————————————————————————–

 

XenCenter에서 GPU group 을 변경한 VM 수만큼 신규 gpu group 에서 vGPU 정보를 확인할 수 있다.

서진우

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...