외부 USB 하드 드라이브에 Ubuntu Server 12.04의 디스크 이미지를 생성하는 Cronjob

외부 USB 하드 드라이브에 Ubuntu Server 12.04의 디스크 이미지를 생성하는 Cronjob

저는 1TB 외장 하드 드라이브를 가지고 있으며 정기적으로(아마 일주일에 한 번) 전체 서버의 스냅샷을 찍고 싶습니다. cronjob 부분의 경우 다음에서 bash 스크립트를 가리킬 계획입니다.

$ sudo crontab -e

하지만 서버가 실행되는 동안 서버의 디스크 이미지를 만드는 데 어떤 도구를 사용할 수 있는지 전혀 모릅니다. 이미지를 생성하는 동안 다운되어야 합니까? Clonezilla를 보고 있었는데, 원하지 않는 DRBL 서버를 먼저 설정해야 할 것 같습니다.

또한 백업을 실행하는 데 시간이 얼마나 걸릴지, 증분 변경만 수행할 수 있는 방법이 있는지도 모르겠습니다. 거기에 ~500GB의 데이터를 저장할 계획입니다.

외장 하드 드라이브를 특별한 방법으로 포맷해야 합니까? 좋은 튜토리얼이나 시작점을 아는 사람이 있나요?

미리 감사드립니다.

답변1

rsync를 사용하여 전체 시스템의 복사본을 만들 수 있습니다. 그 자체로는 "이미지"는 아니지만 시스템에 있는 모든 파일의 복사본을 포함합니다. 예를 들어 다음을 수행할 수 있습니다.

rsync -aHAXxv / /mnt/backup/

이렇게 하면 루트 파일 시스템의 모든 내용이 /mnt/backup에 복사됩니다. (참고로 -x로 인해 하나의 파일 시스템만 복사하므로 파일 시스템이 여러 개인 경우 여러 명령을 수행하거나 -x를 생략하고 --exclude를 사용하여 백업 경로를 제외해야 합니다.)

답변2

fsarchiver를 사용해 보세요http://www.fsarchiver.org/QuickStart 파티션에서 라이브 백업을 생성하고 멀티스레드 이미지 압축을 수행할 수 있습니다. 불행히도 증분 백업은 다소 어렵습니다. 파티션의 dd 이미지에서 rsync를 사용하고 있을까요? 압축된 파티션 이미지를 만들고 일부 폴더의 rsync/bacula 증분 백업을 고려해보세요.

답변3

백업할 항목에 대해 생각해 보는 것이 더 나을 수 있습니다. 디스크 이미지를 가져오려면 실행 중인 시스템으로 인해 손상되지 않도록 일종의 속임수가 필요합니다. 제가 생각할 수 있는 두 가지 방법은 다음과 같습니다.

  • 부팅 시 이미지를 생성하고(어렵게 들리지만) 재부팅 시 크론을 수행하는 일종의 사전 마운트 흑마법입니다.
  • 일종의 하이퍼바이저에서 서버를 실행하고 호스트가 제어하는 ​​스냅샷을 사용합니다.

다른 옵션은 생성된 데이터와 구성을 백업하고 "OS 비트"를 새로 설치하여 다시 생성되도록 두는 것입니다. 어쩌면 초고속 DR을 위해 설치 스크립트를 작성할 수도 있습니다. 백업 공간도 많이 절약됩니다. 즉, 더 자주 백업하고 더 오래 보존할 수 있다는 뜻입니다.

답변4

@yesterday가 언급했듯이 다음과 같이 rsync를 사용할 수 있습니다.

rsync -aHAXxv / /mnt/backup/

이렇게 하면 백업 auf가 생성되지만 /다음과 같이 마운트된 다른 파티션은 생성되지 않습니다. /var 따라서 백업해야 하는 모든 파티션에 대해 이 작업을 수행해야 합니다.

그러나 일관된 백업을 보장하려면 가능한 경우 LVM 스냅샷을 사용해야 합니다. 예를 들어:

# create snapshots
lvcreate -s vg0/root -n root_snapshot -L2G
lvcreate -s vg0/var  -n var_snapshot  -L2G
# mount snapshots to make a copy
mount /dev/vg0/root_snapshot /mnt/snapshot
mount /dev/vg0/var_snapshot  /mnt/snapshot/var
# backup all files (no need for -x here)
rsync -aHAXv /mnt/snapshot/  /mnt/backup/
# unmount the snapshots
umount /mnt/snapshot/var /mnt/snapshot
# remove the snapshots
lvremove vg0/root_snapshot
lvremove vg0/var_snapshot

관련 정보