Posted on 2015/03/18 18:26
Filed Under 리눅스기술문서/가상화(VM) 조회수: view 15536

XenServer Backup and Restore

젠 서버 에서 백업은 크게 3가지로 구분된다.

풀의 메타데이터 백업
젠 호스트 구성 백업
VM 백업과 복구
1. 풀의 메타데이터 백업과 복구

다음의 명령으로 풀 메타 데이터를 백업 할 수 있다.

  1. xe pool-dump-database file-name=

백업한 데이터를 이용해 복구하려면 다음과 같이 한다.

  1. xe pool-restore-database file-name=
  1. xe-toolstack-restart

실제로 복구를 실행하지 않고 테스트만 하려면 dry-run 옵션을 붙인다.

  1. xe pool-restore-database file-name= dry-run=true

복구가 완료 되었으면 마지막으로 메타데이터를 복구해서 VM머신을 복원한다.

  1. xe pool-restore-database file-name=/backup/pool.bak —force

2. 젠 호스트 구성 백업과 복구

  1. xe host-backup host= file-name=

이렇게 하면 호스트 구성이 원하는 위치에 백업된다. 백업파일은 지정한 경로에 저장 할 수 있다.
가능하면 젠 서버가 설치 되어 있는 파티션보다는 별도의 백업 파티션을 구성해서 저장하는 것을
추천한다.

호스트 구성을 복구 하려면 다음과 같이 한다.

  1. xe host-restore file-name=

이렇게 하면 백업된 이미지가 다시 복원된다.
좀 더 설명하자면 /dev/sda2 파티션에 복원된다.

  1. fdisk -l

Disk /dev/sda: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 499 4008186 83 Linux /dev/sda2 500 998 4008217+ 83 Linux /dev/sda3 999 30401 236179597+ 83 Linux
젠 서버 호스트에서 fdisk 명령을 내리면 다음과 같은 결과가 나온다.
/dev/sda1 실제 젠서버가 설치된 파티션이다.
호스트 복구를 하면 백업된 이미지는 /dev/sda2 파티션에 복구가 된다.
이제 서버를 리부팅 하고 설치 CD를 이용하여 부팅하면 다음과 같은 화면이 나온다.
Restore from backup 메뉴를 선택하면 실제로 /dev/sda2 에 복구된 이미지가 설치 파티션으로 덮어 씌어진다.

참고로, /dev/sda3에 default SR을 설치했다면 해당 데이터는 초기화 된다.
그렇기 때문에 가급적 hypervisor 가 설치된 물리적인 disk 에는 서비스 VM 이미지를 같이 운영하지 않는 것을
권장한다.

3. VM 백업과 복구

다양한 방법으로 VM을 백업하고 복구 할 수 있다.
VM 이미지 전체를 백업 하려면 다음과 같이 한다.
우선 백업할 VM을 종료한 다음 백업 디렉터리에 백업 이미지를 생성한다.
이렇게 하면 모든 VM 데이터가 백업된다.

  1. xe vm-export vm= filename=

VM의 메타데이터만(구성 설정 정보를 담고 있다.) 백업 하려면 다음과 같이 하면 된다.

  1. xe vm-export vm= filename= —metadata

VM의 전체 데이타를 vm-export 명령으로 백업하는 곳은 VM의 전체 이미지를 하나의 파일로 저장하는 것이다.
따라서 다른 풀이나 서버에 import 시켜서 운영 할 수도 있으나 백업하기 위해서는 운영중인 VM을 정지 시켜야 하는 단점이 있다.
운영중인 VM을 서비스 중단 없이 백업 하기 위해서는 스냅샷을 이용하는 것이 효과적이다.

스냅샷은 특정 시간에 가상 머신의 모든 상태를 기록해 놓은 것이다.
스냅샷 기능을 이용하면 스냅샷을 찍었을 때로 가상머신를 롤백할 수도 있고 생성해 놓은 스냅샷을 이용해서 새로운
가상 머신을 생성 할 수도 있다.

템플릿으로 저장해서 이용 할 수도 있다. 다만 SR간 이동이나 다른 호스트나 풀로의 이동은 할 수 없다.
스냅샷을 통한 백업과 복구는 CLI 커맨드를 통해서 자동화 할 수도 있고 젠 센터의 스냅샷 찍기 기능을 이용해서도
쉽게 할 수 있다.

4. 재해 복구 시나리오 예제

마지막으로 젠 서버의 긴급 재해 상황에 대한 시나리오를 가정하고 복구 절차를 시행해 보자.
어떤 이유로 인해서 젠 호스트내의 VM이 실행이 되지 않고 젠 서버 호스트마저 이상 동작을 일으키는 상황을 가정해
보자 가지고 있는 백업본은 VM의 메타 데이터 뿐이다.
이럴경우 어떻게 복구 할 수 있을까? 우선 돌아가고 있는 VM의 메타 데이터를 백업하자.

  1. xe vm-export metadata=true —multiple filename=/backup/CentOSVM.BAK

현재 가지고 있는 것은 VM의 메타 데이밖에 없으므로 복구 할 수 있는 가장 빠른 방법은 젠 서버를 재 인스톨 하는
경우이다.
인스톨 시디를 이용해서 잰서버를 재 인스톨 해주자.
이때 한가지 주의 할 점이 있다.
다른 것은 처음 인스톨 할 때와 같지만 다음 그림과 같이 Guest Storage는 절대 선택해 주지 말아야 한다.
왜냐하면 우리는 기존에 생성되어 있는 VDI를 이용하여 모든 자료를 완벽하게 복구 할 것이기 때문이다.
선택한다면 기존 자료는 전부 지워진다.

재 인스톨이 완료 되면 VM과 기존 로컬 스토리지의 데이타는 다음 순서대로 복원한다.

  1. pvscan

PV /dev/sda3 VG VG_XenStorage-d081d881-2f44-cf87-ffb9-e6e19a129f23 lvm2 [225.23 GB / 185.07 GB free] Total: 1 [225.23 GB] / in use: 1 [225.23 GB] / in no VG: 0 [0 ]
pvscan 명령의 pv의 정보를 모은다.
VG_XenStorage-d081d881-2f44-cf87-ffb9-e6e19a129f23 이부분을 잘 기록해 두어야 한다.

  1. xe sr-introduce uuid=d081d881-2f44-cf87-ffb9-e6e19a129f23 \ type=lvm name-label=“Local storage” \ content-type=user

위 명령은 새로 설치한 젠 호스트에 SR정보를 데이타베이스에 추가하는 명령이다.
uuid를 보자 pvscan으로 나온 정보를 넣어 주고 있다.

ls -l /dev/disk/by-id/ Total 0 lrwxrwxrwx 1 root root 9 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12BDP -> ../../sdb lrwxrwxrwx 1 root root 10 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12BDP-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12JR7 -> ../../sda lrwxrwxrwx 1 root root 10 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12JR7-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12JR7-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Jul 25 15:08 scsi-SATA_ST3250410AS_6RY12JR7-part3 -> ../../sda3
마찬가지로 SR이 구성 되어 있는 scsi-SATA_ST3250410AS_6RY12JR7-part3 -> ../../sda3
이 부분을 기억해야 한다.

  1. xe host-list
uuid ( RO) : 2ee3fd90-003a-4394-acfc-a127c3c7cbb1 name-label ( RW): xenserver-blueweb name-description ( RO): Default install of XenServer
젠 서버의 호스트 정보를 기억한다. 필요한것은 uuid뿐이다.

  1. xe pbd-create sr-uuid=d081d881-2f44-cf87-ffb9-e6e19a129f23 \

device-config:device=/dev/disk/by-id/scsi-SATA_ST3250410AS_6RY12JR7-part3 \
host-uuid=2ee3fd90-003a-4394-acfc-a127c3c7cbb1
위에서 구한 정보를 바탕으로 pbd를 만들어 준다.
pbd는 SR과 젠서버 호스트를 연결시켜 주는 역할을 한다.
정상적으로 생성되면 pbd의 uuid를 반환한다.

  1. xe pbd-plug uuid=f921f12f-59e2-67c4-d067-b866a88389fb

pbd를 활성화 시킨다. 그리고 나서 젠센터를 이용하여 Local storage를 기본 저장소로 지정해 준다.

  1. xe vm-import metadata=true filename=/backup/CentOSVM.BAK

마지막으로 메타데이터를 이용하여 VM를 복원하면 기존의 저장소를 그대로 살릴 수 있다.
한가지 더 명심해야 할 것은 메타데이터가 저장되어 있는 /backup 디렉터리는 반드시 네트워크상의 백업 저장소나
혹은 로컬상의 다른 디스크에 저장 되어야 한다.
백업 저장소는 향상 시스템 디스크와 물리적으로 분리해야 안정성을 보장 할 수 있기 때문이다.

Writer profile
author image
-아랑 -
2015/03/18 18:26 2015/03/18 18:26

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우
Twitter :@muchunalang

Counter

• Total
: 4360723
• Today
: 391
• Yesterday
: 1813