
저는 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