저는 약 8대의 Linux 독립형 서버를 갖춘 소규모 조직에서 일하고 있습니다. 현재 시스템 간에 원격 백업을 수행하는 동안 외부 드라이브에 시스템의 "긴급 백업"을 수행하라는 지시를 받았습니다.
이것이 나의 현재 계획입니다:
- 서버 중 하나에 드라이브를 설치합니다.
tar
루트 폴더의 내용을 압축합니다.- 타르볼 사용
rsync
및ssh
전송.
백업이 "보수적"일 필요는 없습니다. 2TB 드라이브에는 약 500GB의 데이터만 있습니다.
이러한 조건을 고려할 때 이것이 적절한 백업 계획을 구성합니까?
답변1
단순히 파일의 전체 복사본을 수행할 때의 한 가지 문제는 일관성 없는 데이터를 얻을 수 있다는 것입니다. 이것이 일반적으로 작동하는 방식입니다.
이는 파일 불일치의 예입니다. file00001-fileNNNNN 파일 세트가 서로 의존하는 경우 복제 중에 파일 중 하나가 변경되면 불일치가 발생합니다.
- 파일 00001 복사 중
- 파일 00002 복사
- 파일 00003 복사
- file00002 변경
- 파일 00004 복사
- 등...
위의 예에서는 나머지가 복사되는 동안 file00002가 변경되었기 때문에 전체 데이터 세트가 더 이상 일관되지 않습니다. 이는 테이블이 별도의 파일로 저장된 인덱스와 일치해야 하는 mysql 데이터베이스와 같은 것에 재앙을 초래할 수 있습니다.
일반적으로 원하는 것은 rsync를 사용하여 하나 또는 두 개의 파일 시스템(/dev, /proc, /sys, /tmp와 같이 원하지 않는 항목 제외)의 전체 동기화를 수행하는 것입니다. 그런 다음 일시적으로 시스템을 오프라인으로 전환하고(즉, 최종 사용자에 관한 한) 또 다른 rsync 단계를 수행하여 파일 시스템을 얻습니다. 이미 최근 동기화가 있으므로 속도가 훨씬 빨라지고 시스템이 오프라인이므로 쓰기가 없으므로 데이터 불일치가 발생하지 않습니다.
답변2
나는 그렇지 않다고 제안한다. 전체 내용을 타르링한다고 가정하면 /
필요하지 않은 모든 종류의 내용을 추출하게 됩니다.
예를 들어 /proc
디렉터리입니다. 드라이브를 설치한 위치. 따라서 백업을 자체적으로 복사한 다음 완전히 뒤집어 보려고 시도하게 됩니다.
답변3
관련 섹션은 주로 /root
(루트 계정 설정) 입니다 /etc
(대부분의 구성은 여기에 있습니다). 또한 설치된 패키지 목록을 보관하고 비상 시 사용할 수 있는 설치/복구 CD/DVD를 준비해야 합니다.
설정을 복원하는 방법이 필요한 경우 저장할 파일 시스템은 /boot
및 /
( /usr/
별도인 경우)입니다. 데이터베이스, 웹사이트, VCS 저장소 /var
등 이 있는지 확인하세요 . 또한 /var/log
아래 로그는 법적 또는 감사 목적으로 또는 향후 호기심을 위해 안전하게 저장해야 할 수도 있습니다.