PVDI의 Domain-0 스펙 변경
본 매뉴얼에서는 PVDI 서비스 운영 중 Domain-0(이하 dom0)의 스펙(CPU코어, 메모리)을 변경하는 방법을 설명합니다.
주의: dom0의 스펙을 변경할 경우 아래 사항을 반드시 준수해야 합니다.
- 사용자 VM를 종료해야 합니다.
- MasterVM을 종료해야 합니다.
1. 실행 중인 VM(VDI) 종료
1.1. GUI로 종료하는 방법
VDI 관리자 페이지에서 VM을 종료합니다.
1.2. 커맨드로 종료하는 방법
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 8192 8 r----- 189369.9
pvdi-master 165 1024 1 -b---- 96748.9
45527f2f-937e-49f1-a207-e5cd804711f1 170 4096 2 -b---- 15048.6
xl shutdown ‘ID값’ 명령으로 VM을 종료할 수 있습니다. ID에는 해당 VM의 ID 값을 입력합니다. 예를들어 45527f2f-937e-49f1-a207-e5cd804711f1 을 종료하려면 아래 명령을 실행하면 됩니다.
# xl shutdown 170
VM(45527f2f-937e-49f1-a207-e5cd804711f1)이 종료되었습니다.
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 8192 8 r----- 189369.9
pvdi-master 165 1024 1 -b---- 96748.9
- 45527f2f-937e-49f1-a207-e5cd804711f1 170 4096 2 -b---- 15048.6
2. MasterVM 종료
MasterVM은 VDI 관리자 페이지에서 종료할 수 없으며 커맨드로만 종료할 수 있습니다.
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 8192 8 r----- 189369.9
pvdi-master 165 1024 1 -b---- 96748.9
xl shutdown ‘pvdi-master의 ID값’ 명령으로 MasterVM(pvdi-master)을 종료할 수 있습니다. 예를 들어 xl list를 실행했을 때의 결과가 위와 같을 경우 pvdi-master를 종료하려면 아래 명령을 실행하면 됩니다.
# xl shutdown 165
VM(pvdi-master)이 종료되었습니다.
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 8192 8 r----- 189369.9
- pvdi-master 165 1024 1 -b---- 96748.9
3 dom0의 스펙 변경
3.1. /etc/default/grub 수정
/etc/default/grub 파일에서 dom0_mem, max, dom0_max_vcpus 값을 수정하면 dom0의 스펙을 변경할 수 있습니다. (단, /etc/default/grub를 수정한 후 update-grub 및 reboot를 해야 변경된 설정 값이 적용됩니다.)
기존 메모리 8G, 8코어를 메모리 9G, 9코어로 변경해보겠습니다.
항목 | 변경 전 | 변경 후 | 비고 |
---|---|---|---|
메모리 | 8G | 9G | dom0_mem, max 값 수정 |
코어 | 8코어 | 9코어 | dom0_max_vcpus 값 수정 |
- dom0_mem: dom0에서 사용할 메모리 용량을 입력합니다. (i.e. 9G)
- max: dom0에서 최대로 사용할 수 있는 메모리 용량을 입력합니다. (max = dom0_max + 1)
- dom0_max_vcpus: dom0에서 사용할 코어 개수를 입력합니다. (i.e. 9)
다음은 /etc/default/grub 파일 내용입니다.
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_DISABLE_OS_PROBER=true
- GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=8G,max:9G dom0_max_vcpus=8 dom0_vcpus_pin"
+ GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=9G,max:10G dom0_max_vcpus=9 dom0_vcpus_pin"
3.2. update-grub
update-grub를 실행합니다.
# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64.bak
Found initrd image: /boot/initrd.img-3.16.0-4-amd64.bak
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
done
3.3. 리부팅
변경한 dom0의 스펙을 적용하기 위해서 리부팅을 해야합니다.
# reboot
리부팅후 xl list 명령을 실행하면 아래와 같이 dom0의 스펙이 변경되었음을 확인할 수 있습니다.
# xl list
Name ID Mem VCPUs State Time(s)
- Domain-0 0 8192 8 r----- 189369.9
+ Domain-0 0 9216 9 r----- 189369.9
4. MasterVM 실행
노드 서버의 /data 디렉토리에는 master.cfg 및 master.raw 파일이 있습니다.
- master.cfg: masterVM의 설정 파일입니다.
- master.raw: masterVM의 디스크(이미지) 파일입니다.
노드 서버에서 아래 명령을 실행하면 masterVM의 가상머신이 실행됩니다.
# xl create master.cfg
masterVM이 제대로 실행되었는지 확인하려면 노드 서버에서 xl list 명령을 실행합니다.
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 9216 9 r----- 189369.9
+ pvdi-master 165 1024 1 -b---- 96748.9
위와 같이 pvdi-master 보이면 성공적으로 MasterVM을 실행한 것입니다.
5. 사용자 VM(VDI) 시작
이제 VM을 구동합니다.