Understand different OS Concepts/Virtualization

Libvirt란? (Linux 가상화 관리 도구)

Somaz 2022. 8. 8. 14:41
728x90
반응형

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

728x90
반응형