QEMU에서 VM을 백업하고 복원하는 방법은?

_____
아래는 QEMU 환경에서 VM(가상머신)을 백업하고 복원하는 방법을 정리한 FAQ입니다. 필요한 단계와 명령 예시, 주의사항을 함께 제시합니다.

1. Q: QEMU VM을 파일 수준에서 백업하는 기본 방법은?
A:
- 디스크 이미지 파일(.qcow2, .raw 등)을 복제하는 가장 간단한 방법입니다.
- VM 종료(shutdown) 상태에서 호스트 셸에서 복사:
• cp, rsync, scp 등을 이용
예) cp /var/lib/libvirt/images/vm1.qcow2 /backup/vm1.qcow2.backup
또는 rsync -a /var/lib/libvirt/images/vm1.qcow2 /backup/
- 백업 후 원본과 크기, 체크섬(sha256sum) 비교로 무결성 확인.

2. Q: 라이브(실행 중) VM을 중단 없이 백업하려면?
A:
1) QEMU 내장 스냅샷(external snapshot) 사용
- VM 콘솔(QMP 또는 libvirt)에서 디스크 스냅샷 생성
예) QMP로 외부 스냅샷 생성
{ "execute":"blockdev-snapshot",
"arguments":{
"node-name":"drive0", 디스크 노드 이름
"snapshot-type":"external",
"snapshot-file":"/backup/vm1-snap1.qcow2"
}
}
- 이후 /backup/vm1-snap1.qcow2 파일을 안전하게 복사.
- 완료 후 스냅샷 병합(commit) 또는 삭제(delete).
2) libvirt/virsh를 통한 스냅샷
- virsh snapshot-create-as vm1 snap1 --diskspec vda,file=/backup/vm1-snap1.qcow2 --atomic
- 스냅샷 파일 백업, 필요 시 virsh snapshot-delete vm1 snap1

3. Q: 스냅샷 방식의 주의사항은?
A:
- 외부 스냅샷 후 원본 이미지가 Read-Only가 되고 변경분이 스냅샷 파일에 기록됨.
- 오랜 시간 유지 시 스냅샷 파일이 매우 커질 수 있으므로, 백업 완료 후 병합 또는 삭제 권장.
- Windows 등 파일시스템 일관성을 보장하려면 QEMU Guest Agent를 이용한 fsfreeze/fsthaw 단계 필요.

4. Q: QEMU 내부(internal) 스냅샷이란?
A:
- qcow2 내부에 메타데이터로 스냅샷을 저장(별도 파일 없음).
- qemu-img snapshot -c vm1.qcow2
- 나열: qemu-img snapshot -l vm1.qcow2
- 복원: qemu-img snapshot -a vm1.qcow2
- 내부 스냅샷은 성능 저하 요소, 대규모 백업에는 외부 스냅샷 권장.

5. Q: 호스트 레벨 볼륨 스냅샷(LVM, ZFS 등)을 이용한 백업은?
A:
- LVM 볼륨에 VM 디스크를 할당한 경우:
1) lvcreate --size 1G --snapshot --name vm1_snap /dev/vg/vm1
2) 마운트 후 이미지 복사(cp/rsync)
3) lvremove /dev/vg/vm1_snap
- ZFS 역시 zfs snapshot, zfs send/receive로 증분 백업 가능.
- 장점: 빠른 스냅샷, 일관성 확보(guest-agent/fsfreeze 병행 권장).

6. Q: VM 구성(XML, NIC 설정 등 메타데이터는 어떻게 백업하나요?
A:
- libvirt 환경이라면 virsh dumpxml 사용
virsh dumpxml vm1 > /backup/vm1.xml
- 네트워크, 디스크 볼륨 정보, 디바이스 설정 등을 함께 저장.
- 복원 시 virsh define /backup/vm1.xml 으로 재등록.

7. Q: 백업에서 VM 복원하는 절차는?
A:
1) 디스크 이미지 복사 → 원위치 또는 신규 경로
cp /backup/vm1.qcow2.backup /var/lib/libvirt/images/vm1.qcow2
2) 메타데이터(XML) 복원(libvirt)
virsh define /backup/vm1.xml
3) 네트워크·스토리지 권한·소유권 확인(chown qemu:qemu)
4) VM 시작
virsh start vm1
- QEMU 커맨드라인 직접 구동 시 qemu-system-x86_64 -drive file=/path/vm1.qcow2,…

8. Q: 스냅샷에서 특정 시점 복원은?
A:
- qcow2 내부 스냅샷
qemu-img snapshot -a vm1.qcow2
- 외부 스냅샷
1) blockdev-snapshot-sync 또는 QMP로 병합(commit)
2) revert: 원본 이미지를 스냅샷 파일로 교체하거나 –incoming 옵션 사용
- libvirt
virsh snapshot-revert vm1 snap1 VM 중단 또는 live revert 가능

9. Q: 백업 전략·일정은 어떻게 구성하나요?
A:
- 정기(full/incremental) 스케줄링(cron, ansible)
- 증분 백업: qemu-img convert -O qcow2 --backing-file 원본 증분이미지
- 보관 주기·회전(rotate) 설계: 예) 최근 7일, 주간 4주, 월간 12달
- 테스트 복원 주기적으로 수행(정합성, 부팅 확인).

10. Q: 백업 시 고려할 점 및 권장 도구는?
A:
- 디스크 사용량, I/O 부하 모니터링
- 일관성 있는 스냅샷(guest agent/fsfreeze)
- 도구:
• libvirt+virsh/virt-manager
• qemu-img, QMP 스크립트
• Ceph/RBD 스냅샷(분산 스토리지)
• LVM, ZFS, Btrfs 볼륨 스냅샷
• Bacula, Bareos, Restic 등 백업 자동화 솔루션

위 FAQ를 참고하여 환경에 맞는 백업·복원 워크플로우를 설계하고, 주기적인 복원 테스트로 실제 운영 중 문제 발생 위험을 최소화하시기 바랍니다.
QEMU를 사용하여 가상 머신(VM)을 백업하고 복원하는 방법은 여러 가지가 있습니다.

여기에는 VM의 디스크 이미지, 메모리 상태, 네트워크 설정 등을 포함하여 전체 VM을 효율적으로 관리하는 방법이 포함됩니다.

다음은 QEMU에서 VM을 백업하고 복원하는 과정입니다.

VM 백업 1. 가상 머신 종료 : VM이 실행 중인 경우, 안전하게 종료합니다.

VM 실행 중에 디스크 이미지를 복사하면 데이터 손실이나 손상될 수 있습니다.

```bash qm shutdown ```

2. 디스크 이미지 복사 : QEMU 가상 머신의 디스크 이미지를 백업하려면 해당 이미지 파일을 복사합니다.

일반적으로 이미지 파일은 `.qcow2` 또는 `.raw` 등의 확장자를 가집니다.

```bash cp /path/to/your/image.qcow2 /path/to/backup/image_backup.qcow2 ```

3. 상태 저장 (Optional) : VM의 현재 메모리 상태를 저장하여 언제든지 해당 시점으로 복원할 수 있습니다.

이는 `-snapshot` 옵션을 사용하여 VM을 시작할 때 유용합니다.

```bash qemu-img commit -f qcow2 /path/to/your/image.qcow2 ```

4. 환경 설정 파일 백업 (Optional) : VM의 설정 파일도 백업하고 싶다면, VM의 XML 설정 파일이나 QEMU에서 사용되는 CLI 옵션을 기록해 둡니다.

VM 복원 1. 디스크 이미지 복사 : 백업된 디스크 이미지를 복원하려면 백업에서 원래 위치로 복사합니다.

```bash cp /path/to/backup/image_backup.qcow2 /path/to/your/image.qcow2 ```

2. 가상 머신 구성 : 복원한 이미지를 사용하여 VM을 설정합니다.

필요한 경우 XML 파일을 수정하거나 QEMU 명령어에서 직접 설정을 지정합니다.



3. VM 시작 : QEMU 또는 관련 도구(예: `virsh` 등)를 사용하여 VM을 시작합니다.

```bash qemu-system-x86_64 -hda /path/to/your/image.qcow2 -m 2048 -smp 2 ``` 또는 `virsh`를 사용하여 VM을 시작합니다.

```bash virsh start ```

4. 상태 복원 (Optional) : VM이 메모리 상태를保存했던 경우, 해당 상태로 VM을 복원합니다.

이때는 메모리 상태가 포함된 파일을 로드하여 VM을 시작하는 방법을 사용할 수 있습니다.

주의사항 - 정기적인 백업 : VM의 데이터가 자주 변경되는 경우 정기적인 백업을 설정하는 것이 중요합니다.

- 백업 검증 : 복원 절차를 실행하기 전에 백업이 제대로 작동하는지 검증합니다.

- 스냅샷 활용 : QEMU에서 스냅샷 기능을 사용하여 특정 시점의 VM 상태를 쉽게 저장하고 복원할 수 있습니다.

이러한 방법을 통해 QEMU에서 VM의 백업 및 복원을 관리할 수 있습니다.

작성자: 박준희 [비회원] | 작성일자: 1년 전 2025-03-21 00:21:08
조회수: 228 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.