OpenVZ · 3 min read · Jan 07, 2026

vzdump로 OpenVZ VM 복제/백업/복원하기

vzdump로 OpenVZ VM 복제/백업/복원하기

버전 1.0
저자: Falko Timme

vzdump는 OpenVZ VM을 위한 백업 및 복원 유틸리티입니다. 이 튜토리얼에서는 vzdump를 사용하여 가상 머신을 복제/백업/복원하는 방법을 보여줍니다.

이 방법이 여러분에게 효과가 있을 것이라는 보장은 하지 않습니다!

1 사전 참고

이 튜토리얼에서는 두 개의 OpenVZ 서버를 사용합니다:

  • server1.example.com: IP 192.168.0.100
  • server2.example.com: IP 192.168.0.101

(두 서버 모두 Debian Etch를 사용하며, 이 튜토리얼에 따라 설정되었습니다: Debian Etch에서 OpenVZ 설치 및 사용 - 그러나 다른 배포판에서도 작동합니다.)

저는 server1.example.com에서 호스트 이름이 test.example.com이고, IP 주소가 192.168.0.102이며, VEID가 102인 가상 머신을 실행하고 있으며, 이 머신을 백업하고 server2.example.com에서 복원하고자 합니다.

서버2에서 변경 없이 복원할 수 있지만(예: 동일한 IP 주소 및 호스트 이름), 이 경우 server1.example.com에서 VM을 중지해야 합니다. 그렇지 않으면 IP 주소와 호스트 이름이 충돌하기 때문입니다. 두 번째 가능성은 server2.example.com에서 복원하되, vzctl set 명령으로 IP 주소와 호스트 이름과 같은 일부 매개변수를 변경하는 것입니다. 이 경우 두 VM(서버1의 원본과 서버2의 복제본)을 동시에 실행할 수 있습니다. 이는 VM을 복제하는 훌륭한 방법입니다.

2 OpenVZ 서버 준비하기

먼저 vzdump와 의존성인 rsync를 설치해야 합니다. Debian에서는 다음과 같은 명령을 사용합니다:

server1/server2:

apt-get install vzdump rsync  

3 VM의 백업 생성하기

(이 장은 server1에만 해당됩니다!)

server1.example.com에서 VEID 102인 VM의 백업을 생성하고자 합니다. 사용법을 배우려면 다음을 참조하세요:

man vzdump

서버의 모든 VM을 백업하려면 다음과 같은 명령을 사용합니다:

vzdump --compress --dumpdir /home/backup --stop --all

–compress는 덤프 파일을 압축하라는 의미입니다(결과는 a.tgz).

–dumpdir는 덤프를 저장할 디렉토리를 지정합니다. dumpdir를 지정하지 않으면 기본값은 /vz/dump 또는 /var/lib/vz/dump입니다(배포판에 따라 다름).

–stop은 VM을 중지하고 백업을 생성한 후 다시 시작합니다. –stop을 사용하면 VM이 몇 분 동안 중지될 수 있습니다. 더 빠른 솔루션은…

–suspend: VM을 일시 중지합니다. 그런 다음 VM이 임시 디렉토리로 rsync를 통해 복사됩니다. VM은 몇 초 후에 다시 시작되며, 그 후 임시 디렉토리의 복사본을 사용하여 덤프가 생성됩니다. 긴 중단 시간을 감당할 수 없다면 이 방법을 사용하는 것을 추천합니다.

–stop 및 –suspend를 생략하고 실행 중인 VM을 덤프할 수도 있습니다. 대부분의 경우 문제가 없지만 덤프가 일관성이 없을 수 있으므로 주의하세요!

–all은 사용 가능한 모든 VM의 덤프를 생성합니다. 특정 VM만 덤프하려면 –all을 VM의 VEID로 교체하세요.

/home/backup에 VM 102의 덤프를 생성하고 백업 중에 VM을 중지하려면 다음을 사용하세요:

vzdump --compress --dumpdir /home/backup --stop 102

기본 디렉토리(/vz/dump 또는 /var/lib/vz/dump)에 덤프를 생성하려면 다음을 사용하세요:

vzdump --compress --stop 102

출력은 다음과 같을 수 있습니다:

server1:/vz/dump# vzdump –compress –stop 102
INFO: VPS 102의 백업 시작 (/var/lib/vz/private/102)
INFO: 첫 번째 동기화 시작 /var/lib/vz/private/102에서 /var/lib/vz/dump/tmp9009로
INFO: vps 중지
컨테이너 중지 중…
컨테이너가 중지되었습니다
컨테이너가 마운트 해제되었습니다
INFO: 최종 동기화 /var/lib/vz/private/102에서 /var/lib/vz/dump/tmp9009로
INFO: vps 다시 시작
컨테이너 시작 중…
컨테이너가 마운트되었습니다
IP 주소 추가: 192.168.0.102
CPU 단위 설정: 1000
메모리 정보 구성: 65536
호스트 이름 설정: test.example.com
resolv.conf 파일이 수정되었습니다
컨테이너 시작 진행 중…
INFO: vps가 15초 후에 다시 온라인 상태입니다
INFO: 아카이브 생성 ‘/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp9009/102)
총 바이트 수: 340428800 (325MiB, 11MiB/s)
INFO: VPS 102의 백업이 성공적으로 완료되었습니다 (1.37분)
server1:/vz/dump#

VM을 중지하지 않고 일시 중지하려면 다음을 사용하세요:

vzdump --compress --suspend 102

샘플 출력은 다음과 같습니다:

server1:~# vzdump –compress –suspend 102
INFO: VPS 102의 백업 시작 (/var/lib/vz/private/102)
INFO: 첫 번째 동기화 시작 /var/lib/vz/private/102에서 /var/lib/vz/dump/tmp10842로
INFO: vps 일시 중지
체크포인트 설정 중…
일시 중지…
컨텍스트 가져오기…
체크포인트가 성공적으로 완료되었습니다
INFO: 최종 동기화 /var/lib/vz/private/102에서 /var/lib/vz/dump/tmp10842로
INFO: vps 다시 시작
다시 시작 중…
INFO: vps가 4초 후에 다시 온라인 상태입니다
INFO: 아카이브 생성 ‘/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp10842/102)
총 바이트 수: 340428800 (325MiB, 24MiB/s)
INFO: VPS 102의 백업이 성공적으로 완료되었습니다 (1.57분)
server1:~#

백업 후 덤프 디렉토리를 확인하세요…

ls -l /vz/dump/

… 그리고 a.tgz 파일이 있어야 합니다:

server1:~# ls -l /vz/dump/
total 147864
-rw-r–r– 1 root root 1170 2008-11-20 17:40 vzdump-102.log
-rw-r–r– 1 root root 151249685 2008-11-20 17:40 vzdump-102.tgz
server1:~#

이제 덤프를 다른 OpenVZ 서버로 복사할 수 있습니다. 예를 들어 scp를 사용하여 (이 명령은 /vz/dump/vzdump-102.tgz를 server2.example.com의 /home 디렉토리로 복사합니다):

scp /vz/dump/vzdump-102.tgz [email protected]:/home 

4 VM 복원하기

(이 장은 server2에만 해당됩니다!)

server2.example.com에서 VM을 다음과 같이 복원할 수 있습니다…

vzdump --restore /home/vzdump-102.tgz 250

… 여기서 250은 복원된 VM의 새로운 VEID입니다. server2.example.com에서 사용되지 않는 VEID를 사용할 수 있으며, 사용되지 않는 경우 102를 다시 사용할 수도 있습니다.

VM의 설정(예: IP 주소, 호스트 이름)을 수정하고 싶지 않다면 지금 시작할 수 있지만, 원본 VM이 server1.example.com에서 중지되어 있는지 확인하세요. 그렇지 않으면 IP 주소가 충돌합니다:

vzctl start 250

원본 VM과 복제본을 동시에 실행하려면 복제본을 시작하기 전에 IP 주소와 호스트 이름을 변경해야 합니다.

새 호스트 이름을 설정하려면 다음과 같이 실행하세요:

vzctl set 250 --hostname test2.example.com --save

새 IP 주소를 설정하려면 먼저 원래 IP 주소를 삭제해야 합니다…

vzctl set 250 --ipdel 192.168.0.102 --save

… 그리고 새 IP 주소를 설정합니다:

vzctl set 250 --ipadd 192.168.0.250 --save   

그 후 복제본을 시작할 수 있습니다:

vzctl start 250

5 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.