가상화 · 2 min read · Jan 05, 2026
VirtualBox: 실행 중인 가상 머신의 백업 및 클론 생성 (다운타임 없음) LVM 스냅샷 사용
VirtualBox: 실행 중인 가상 머신의 백업 및 클론 생성 (다운타임 없음) LVM 스냅샷 사용
버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요
LVM 볼륨을 VirtualBox VM에 사용하는 경우(튜토리얼 “VirtualBox VM에서 RAW 장치 사용”에 설명됨), VM을 종료하지 않고도 실행 중인 VM의 백업 및 클론을 생성할 수 있습니다. 이 튜토리얼은 바로 그것을 보여줍니다: 다운타임 없이 실행 중인 VirtualBox VM의 백업 및 클론을 생성하기 위해 LVM 스냅샷을 사용하는 방법입니다.
이 방법이 귀하에게 작동할 것이라는 보장은 하지 않습니다!
1 사전 참고
헤드리스 서버에 VirtualBox를 설치했기 때문에 여기서는 phpvirtualbox를 VirtualBox GUI로 사용하고 있습니다. 원래 VirtualBox GUI를 사용하는 경우에도 전혀 문제가 없습니다.
내가 백업을 원하는 실행 중인 가상 머신의 이름은 vm10이며, LVM 볼륨 /dev/vg0/vm10에 위치해 있습니다.
루트 사용자로 로그인했는지 확인하세요 (루트가 되려면
sudo su입력), 이 튜토리얼의 모든 단계를 루트 사용자로 실행해야 합니다.
2 LVM 스냅샷을 사용하여 실행 중인 VM의 백업 생성
실행 중인 가상 머신 vm10의 백업을 생성하기 위해, 먼저 /dev/vg0/vm10의 LVM 스냅샷을 vm10_snap이라는 이름으로 생성합니다. 스냅샷은 원래 볼륨보다 작을 수 있습니다 - 512MB면 충분할 것입니다, 하지만 여기서는 5GB 크기를 사용합니다:
lvcreate -L5G -s -n vm10_snap /dev/vg0/vm10다음으로 dd를 사용하여 스냅샷의 내용을 읽고 gzip으로 파이프하여 /backup 디렉토리에 gzipped 백업 이미지를 생성합니다 (물론 다른 디렉토리를 사용할 수 있습니다):
dd if=/dev/vg0/vm10_snap bs=64k | gzip -c > /backup/vm10.img.gz그게 전부입니다 - vm10의 백업이 이제 /backup/vm10.img.gz에 위치해 있습니다.
이제 LVM 스냅샷을 제거합니다:
lvremove -f /dev/vg0/vm10_snap3 백업에서 복원/백업에서 클론 생성
복원과 클론 생성은 본질적으로 동일하므로, 방금 생성한 백업에서 vm11이라는 클론을 생성하는 방법을 보여드리겠습니다.
먼저 원래 LVM 볼륨과 동일한 크기(이 예제에서는 20GB)의 LVM 볼륨을 생성합니다:
lvcreate -L20G -n vm11 vg0vm10의 백업을 새 논리 볼륨 /dev/vg0/vm11에 복원합니다:
gunzip -c /backup/vm10.img.gz | dd of=/dev/vg0/vm11 bs=64k다음으로 /dev/vg0/vm11에 대한 .vmdk 파일(예: vm11.vmdk)을 생성하여 VirtualBox와 함께 사용할 수 있도록 합니다. VirtualBox가 실행 중인 사용자 홈 디렉토리(예: phpvirtualbox를 사용하는 경우 /home/vbox)에 생성하는 것이 가장 좋습니다 - 파일은 해당 사용자가 소유해야 합니다:
cd /home/vbox
VBoxManage internalcommands createrawvmdk -filename vm11.vmdk -rawdisk /dev/vg0/vm11
chown vbox:vbox vm11.vmdk다음으로 VirtualBox GUI(원래 VirtualBox GUI 또는 phpvirtualbox)로 이동하여 새로 만들기를 클릭합니다:

새 가상 머신 마법사에서 Next>>를 클릭합니다:

새 VM의 이름을 지정하고 원래 VM에서 사용한 것과 동일한 운영 체제 및 버전을 선택합니다:

클론의 메모리를 지정합니다:

가상 하드 디스크 화면에서 기존 하드 디스크 사용을 선택하고 가상 하드 디스크 파일 선택 아이콘을 클릭합니다:

vm11.vmdk 파일을 선택하고 확인을 클릭합니다:

Next>>를 클릭합니다:

생성을 클릭합니다:

클론을 시작하기 전에 일부 설정을 조정할 수 있습니다. 예를 들어 원래 VM이 브리징을 사용하는 경우 클론의 네트워크 구성에서도 브리징을 선택할 수 있습니다:


이제 클론을 시작하려면 시작을 클릭합니다:

부팅 중에 네트워크 구성이 멈추는 것을 알 수 있습니다:

이것은 VirtualBox가 클론에 대해 인터페이스 eth0에 다른 MAC 주소를 할당했기 때문이지만 클론의 /etc/udev/rules.d/70-persistent-net.rules 파일은 여전히 원래 MAC 주소를 사용하고 있습니다. 부팅이 완료된 후 클론에 로그인하고…
ifconfig…를 실행하면 eth0가 누락된 것을 볼 수 있습니다( MAC 주소 문제로 인해), 이는 클론이 네트워킹을 사용할 수 없음을 의미합니다:

문제를 해결하려면 클론에서 /etc/udev/rules.d/70-persistent-net.rules를 열고…
vi /etc/udev/rules.d/70-persistent-net.rules… eth0(부팅 중에 eth0의 MAC 주소가 잘못되어 추가된 eth1 라인도 주석 처리) 라인을 주석 처리합니다. 이렇게 하면 다음 부팅 시 시스템이 올바른 MAC 주소로 새로운 eth0 라인을 추가합니다.

이제 클론을 재부팅합니다. 재부팅 후 네트워킹이 작동해야 하며, 다음의 출력에서 eth0를 볼 수 있어야 합니다:
ifconfig
축하합니다, 원래 VM을 종료하지 않고 VM을 성공적으로 클론했습니다.
4 링크
- VirtualBox: http://www.virtualbox.org/
- phpvirtualbox: http://code.google.com/p/phpvirtualbox/
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.