Overview
오늘은 Libvirt에서 QEMU 가상머신을 관리할 때 자주 사용하는 virsh 명령어를 정리해보겠다. Libvirt는 KVM/QEMU 기반 가상화를 관리하기 위한 강력한 도구이며, virsh는 CLI(Command Line Interface) 기반의 가상 머신 관리 명령어이다.

📅 관련 글
2022.08.08 - [Understand different OS Concepts/Virtualization] - Libvirt란? (Linux 가상화 관리 도구)
2022.08.08 - [Understand different OS Concepts/Virtualization] - KVM과 QEMU란? (Linux 가상화 솔루션)
Virsh 기본 명령어
가상머신 정의 (define)
libvirt Domain XML 파일을 이용해 가상머신을 정의하는 명령어이다.
virsh define [libvirt 도메인 정의 xml 파일 경로]
가상머신 시작 (start)
가상머신을 실행하는 명령어이다.
virsh start [가상머신 도메인 이름]
가상머신 목록 확인 (list)
현재 libvirt에 등록된 가상머신 리스트를 확인할 수 있다.
virsh list --all
가상머신 삭제 (undefine)
등록된 가상머신을 삭제한다. (디스크 이미지 삭제 아님)
virsh undefine [가상머신 도메인 이름]
가상머신 상태 관리
가상머신 일시중지 (suspend)
가상머신을 일시 중지한다.
virsh suspend [가상머신 도메인 이름]
가상머신 재개 (resume)
일시 중지된 가상머신을 다시 실행한다.
virsh resume [가상머신 도메인 이름]
가상머신 강제 종료 (destroy)
가상머신을 강제 종료한다. (전원 끄기와 유사)
virsh destroy [가상머신 도메인 이름]
스냅샷 관리
스냅샷 생성 (snapshot-create-as)
가상머신의 현재 상태를 스냅샷으로 저장한다.
virsh snapshot-create-as --domain [가상머신 도메인 이름] [스냅샷 이름]
예시:
virsh snapshot-create-as --domain win10 snapshot1
스냅샷 목록 확인 (snapshot-list)
해당 가상머신의 저장된 스냅샷 리스트를 확인한다.
virsh snapshot-list --domain [가상머신 도메인 이름]
예시:
virsh snapshot-list --domain win10
스냅샷 복원 (snapshot-revert)
저장된 스냅샷 상태로 가상머신을 복원한다.
virsh snapshot-revert [가상머신 도메인 이름] [스냅샷 이름]
예시:
virsh snapshot-revert win10 snapshot1
스냅샷 삭제 (snapshot-delete)
특정 스냅샷을 삭제한다.
virsh snapshot-delete --domain [가상머신 도메인 이름] [스냅샷 이름]
예시:
virsh snapshot-delete --domain win10 snapshot1
가상머신 상태 확인 (domstats)
가상머신의 CPU, 메모리, 네트워크 등의 사용량을 확인할 수 있다.
virsh domstats [가상머신 도메인 이름]
예시:
virsh domstats win10
출력 예시:
Domain: 'win10'
state.state=1
cpu.time=197136008572
balloon.current=1048576
net.0.rx.bytes=32349
block.0.rd.bytes=29008384
block.0.wr.bytes=11841024
- 해당 정보를 통해 가상머신의 리소스 사용량을 실시간으로 모니터링할 수 있다.
가상머신 설정 확인 및 편집 명령어
- 가상머신의 XML 설정을 확인하거나 수정하는 기능도 자주 사용된다.
# 설정 확인
virsh dumpxml [도메인 이름]
# 설정 수정 (vim으로 열기)
virsh edit [도메인 이름]
- Tip: dumpxml은 백업용으로도 자주 사용되고, edit는 live 상태에서 네트워크 등 설정을 수정할 때 유용하다.
자동 시작 설정
- 시스템 재부팅 시 VM이 자동으로 켜지도록 설정할 수 있다.
# 자동 시작 설정
virsh autostart [도메인 이름]
# 자동 시작 해제
virsh autostart --disable [도메인 이름]
- 서버 운영 시 무중단 환경 구축에 필수적인 기능
스토리지 및 디스크 관리 (간단히)
virsh를 통해 디스크 이미지나 볼륨 정보를 다루는 경우도 많다.
# 연결된 디스크 정보 확인
virsh domblklist [도메인 이름]
# 스토리지 풀 확인
virsh pool-list --all
domblklist
로 디스크 경로를 확인하고, 필요시 qcow2 용량 변경이나 snapshot 작업에도 활용할 수 있다.
네트워크 관리 관련 명령어
# 네트워크 리스트 확인
virsh net-list --all
# 가상 브릿지 재시작
virsh net-destroy default
virsh net-start default
가상머신이 네트워크에 연결되지 않을 때, default 브릿지를 재시작하거나 다시 정의하는 데 유용하다.
결론
Libvirt는 QEMU/KVM 기반 가상머신을 관리하는 강력한 도구이며, virsh 명령어를 사용하면 CLI 환경에서 쉽게 제어할 수 있다.
virsh 명령어를 활용하여 가상머신을 정의, 실행, 일시중지, 스냅샷 관리 및 상태 모니터링이 가능하다.
효율적인 가상화 환경을 구축하려면 virsh 명령어를 숙지하는 것이 중요하다.
또한 virt-manager GUI와 병행하여 사용하면 virsh의 CLI 강점을 유지하면서도 가시적인 관리가 가능하니 함께 익혀두면 좋다.
Reference
'Understand different OS Concepts > Virtualization' 카테고리의 다른 글
Proxmox란? (0) | 2024.05.24 |
---|---|
Xen Orchestra란? (0) | 2024.05.21 |
Enable Nested Virtualization IN KVM In Linux (KVM 중첩 가상화) (0) | 2022.09.02 |
Libvirt란? (Linux 가상화 관리 도구) (0) | 2022.08.08 |
KVM과 QEMU란? (Linux 가상화 솔루션) (0) | 2022.08.08 |