더북(TheBook)

virsh로 가상 시스템 관리하기

virsh는 libvirt로 만들어진 가상 시스템 관리 셸입니다. 게스트를 관리하는 virsh 하위 명령들을 살펴봅시다.

list 명령은 활성화된 게스트 목록과 상태를 화면에 보여줍니다. 옵션 -all을 추가 입력하면 시스템에 설치된 모든 게스트 목록과 상태를 보여줍니다. virtual_machine은 가상 머신 관리자를 이용해서, guest는 virt-install을 이용해서 설치한 게스트입니다.

shinjaehun@losttemple:~$ virsh list
 Id 이름                상태
----------------------------------

shinjaehun@losttemple:~$ virsh list --all
 Id 이름                상태
----------------------------------
- virtual_machine       종료
- guest                 종료
이렇게 하세요!

virsh만 입력하면 대화식 터미널 상태에서 명령을 내릴 수 있습니다. virsh 프롬프트에서 하위 명령을 직접 입력할 수 있으며 quit를 입력해서 virsh 터미널을 종료할 수 있습니다.

shinjaehun@losttemple:~$ virsh
virsh, 가상화 대화식 터미널에 오신 것을 환영합니다.

입력: 명령을 사용하여 모든 문제 해결을 위해 ‘help’ 입력 
      종료하기 위해 ‘quit’ 입력

virsh #

start 명령으로 게스트를 시작합니다. 부팅할 게스트 이름을 옵션으로 붙여서 입력합니다. list 명령으로 확인하면 게스트가 실행 상태인 것을 확인할 수 있습니다. 실행 중인 게스트는 ID가 붙습니다. 게스트 이름과 함께 ID를 이용해서 게스트 제어가 가능합니다.

shinjaehun@losttemple:~$ virsh start virtual_machine
도메인 virtual_machine가 시작됨

shinjaehun@losttemple:~$ virsh list --all
Id 이름                 상태
----------------------------------
 1 virtual_machine      실행중
 - guest                종료

실행 중인 게스트에 접속하려면 앞에서 설치한 virt-viewer를 이용합니다. -c 스위치로 qemu가 에뮬레이트하는 로컬 시스템의 게스트에 접속하고 마지막에 접속 대상 게스트 ID나 게스트 이름을 입력합니다. 명령 마지막에 & 기호를 붙이는 이유는 virt-viewer를 실행시켜 놓고 터미널을 사용할 수 있는 상태로 남겨두기 위해서입니다. virt-viewer를 백그라운드에서 실행시킵니다.

shinjaehun@losttemple:~$ virt-viewer -c qemu:///system 1 &
Tip

-c 스위치로 입력하는 값 ‘qemu:///system’에서 URI 식별자 ‘/’를 세 번 입력해야 합니다. 주의하세요. 접속 대상으로 게스트 ID 값인 1을 입력했는데 ‘virtual_machine’이라고 직접 게스트 이름을 입력해도 됩니다.

shutdown 명령으로 게스트를 종료합니다. 종료할 게스트의 ID나 이름을 입력합니다. 게스트에 접속하여 명령 프롬프트에서 shutdown 명령을 입력하는 것과 동일합니다. 참고로 게스트를 종료하거나 실행할 때마다 게스트 ID 값이 변경되므로 게스트를 제어할 때마다 virsh list로 ID 값을 확인할 필요가 있습니다.

shinjaehun@losttemple:~$ virsh list
 Id 이름                 상태
----------------------------------
  1 virtual_machine     실행중

shinjaehun@losttemple:~$ virsh shutdown 1
도메인 virtual_machine가 종료됨

shinjaehun@losttemple:~$ virsh list --all
 Id 이름                 상태
----------------------------------
 - virtual_machine       종료
 - guest                 종료
이렇게 하세요!

‘가상 머신 관리자로 게스트 관리하기’에서 설명했듯이 호스트에서 virsh로 shutdown 명령이나 reboot 명령을 입력했는데 게스트가 반응이 없다면 게스트에 전원 관리 패키지인 acpid를 설치해야 합니다.

reboot 명령은 게스트를 재부팅합니다. 게스트가 실행 중인 상태에서 다시 부팅하는 명령으로 게스트에 접속하여 명령 프롬프트에서 reboot 명령을 입력하는 것과 동일합니다.

shinjaehun@losttemple:~$ virsh list
 Id 이름                 상태
----------------------------------
  2 virtual_machine      실행중

shinjaehun@losttemple:~$ virsh reboot 2
도메인 2가 재부팅됨

어떤 이유로 게스트를 강제로 종료해야 한다면 destroy 명령을 사용합니다. 컴퓨터를 사용하다 전원 스위치를 내리는 것과 같으며 파일 시스템에 문제가 발생할 수도 있습니다. 그래도 어쩔 수 없는 경우가 발생하기 마련입니다.

shinjaehun@losttemple:~$ virsh list
Id 이름                 상태
----------------------------------
2 virtual_machine       실행중

shinjaehun@losttemple:~$ virsh destroy 2
2 도메인 강제 종료
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.