Overview
리눅스 기반의 가상화 환경에서는 KVM과 QEMU 같은 하이퍼바이저를 효율적으로 관리할 수 있는 툴이 필요하다.
Libvirt는 이러한 요구를 충족시키기 위해 만들어진 오픈소스 가상화 관리 도구로,
다양한 하이퍼바이저와 호환되며 명령줄(CLI), GUI, API 등을 통해 유연한 가상 머신 관리 기능을 제공한다.
이 글에서는 Libvirt의 개념과 주요 기능, 설치 및 사용 방법,
그리고 기존 가상화 관리 방식과의 비교를 통해 Libvirt가 왜 현대 가상화 환경에서 유용한 도구인지 알아본다.
📅 관련 글
2022.08.08 - [Understand different OS Concepts/Virtualization] - KVM과 QEMU란? (Linux 가상화 솔루션)
2022.08.12 - [Understand different OS Concepts/Virtualization] - Libvirt virsh 명령어 정리
Libvirt란?
Libvirt는 오픈소스 가상화 관리 라이브러리로, 가상 머신(VM)의 생성, 삭제, 스냅샷, 리소스 할당 등의 기능을 제공한다. CLI 도구인 virsh, GUI 기반 관리 툴인 virt-manager와 함께 사용되며, 다양한 하이퍼바이저와 호환된다.
- 기본 개념: 하이퍼바이저 상의 가상 머신을 추상화하여 관리할 수 있도록 지원하는 소프트웨어
- 특징:
- KVM, QEMU, Xen, VMware, Hyper-V 등 다양한 하이퍼바이저 지원
- 가상 머신의 생성, 삭제, 스냅샷, 마이그레이션 등 다양한 기능 제공
- virsh, virt-manager, libvirt API 등을 활용한 관리 가능
Libvirt의 주요 기능
1️⃣ 가상 머신(VM) 관리
- VM의 생성, 삭제, 시작, 정지, 재부팅 지원
- VM의 상태 조회 및 리소스 사용량 모니터링 가능
2️⃣ 가상 네트워크 및 스토리지 관리
- 브리지 네트워크, NAT(Network Address Translation), 내부 네트워크 설정 가능
- 가상 디스크 및 ISO 이미지 관리 지원
3️⃣ 가상 머신 마이그레이션 (Live Migration)
- 실행 중인 VM을 다운타임 없이 다른 호스트로 이동 가능
- 가상화 클러스터 환경에서 활용 가능
4️⃣ 스냅샷 및 백업
- 특정 시점의 VM 상태를 저장하고 복원 가능
- 스냅샷을 통한 데이터 보호 및 테스트 환경 구축 가능
5️⃣ API 및 자동화 지원
- Python, Go, Ruby 등 다양한 프로그래밍 언어를 지원하는 Libvirt API 제공
- Ansible, Terraform 등과 연동하여 가상화 환경 자동화 가능
Libvirt 설치 및 사용 예시
1️⃣ Libvirt 및 KVM 설치 (Ubuntu 기준)
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
2️⃣ 가상 머신 생성
virt-install --name test-vm --ram 2048 --vcpus 2 --disk size=10 --os-variant ubuntu20.04 --network bridge=virbr0 --graphics none
3️⃣ 실행 중인 가상 머신 확인
virsh list --all # 현재 실행 중인 VM 목록 확인
virsh start test-vm # VM 시작
virsh shutdown test-vm # VM 종료
virsh console test-vm # VM 접속
4️⃣ VM 스냅샷 생성 및 복원
virsh snapshot-create-as --domain test-vm --name "snapshot1" --description "Backup before update"
virsh snapshot-revert --domain test-vm --snapshotname "snapshot1"
5️⃣ VM 마이그레이션
virsh migrate --live test-vm qemu+ssh://remote-host/system
Libvirt vs 기존 가상화 관리 방식
비교 항목 | Libvirt | 기존 가상화 관리 방식 |
하이퍼바이저 지원 | KVM, QEMU, Xen 등 다양한 하이퍼바이저 지원 | 특정 하이퍼바이저에 종속됨 |
관리 방식 | API, CLI, GUI 기반 관리 가능 | CLI 또는 수동 설정 필요 |
자동화 지원 | Ansible, Terraform 등과 연동 가능 | 제한적 지원 |
마이그레이션 | 라이브 마이그레이션 지원 | 일부 솔루션에서만 지원 |
결론
Libvirt는 가상 머신의 생성부터 스냅샷, 마이그레이션, 자동화에 이르기까지 통합된 관리 기능을 제공하는 매우 강력한 오픈소스 솔루션이다. KVM, QEMU, Xen 등 다양한 하이퍼바이저와 호환되며, virsh, virt-manager, Libvirt API 등의 도구를 통해 손쉽게 가상화 환경을 제어할 수 있다.
단순한 가상 머신 운용을 넘어서, Libvirt는 라이브 마이그레이션, 가상 네트워크 관리, 백업 및 복원, API 자동화 기능을 갖추고 있어,
개인 사용자부터 대규모 클라우드 인프라까지 폭넓게 활용 가능하다.
안정적이고 유연한 리눅스 가상화 환경을 구축하고 싶다면, Libvirt는 반드시 숙지해야 할 핵심 도구이다.
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 virsh 명령어 정리 (0) | 2022.08.12 |
KVM과 QEMU란? (Linux 가상화 솔루션) (0) | 2022.08.08 |