dd 명령을 사용하여 생성된 시스템 백업은 얼마나 안정적입니까? [복사]

dd 명령을 사용하여 생성된 시스템 백업은 얼마나 안정적입니까? [복사]

저는 연중무휴 24시간 운영되는 Raspberry Pi를 사용하고 있으며 전체 SD 카드를 NAS에 주기적으로 백업하는 크론태스크를 만들었습니다. 이러한 백업을 SD 카드에 다시 복사하여 확인했는데 완벽하게 작동했습니다. 여태까지는 그런대로 잘됐다. 그래도 걱정이 됩니다. 이러한 백업은 내 네트워크에서 몇 시간이 걸리기 때문에 이것이 특정 순간의 스냅샷이 아니라 여러 순간의 파일이 혼합되어 있다는 것이 분명합니다. 카드에 있는 데이터 중 일부가 백업되는 동안 복사되었기 때문입니다. 복사했습니다. 예를 들어, 데이터베이스가 설치되어 있거나 특정 파일의 내용을 정기적으로 변경하는 기타 실행 중인 소프트웨어가 있는 경우입니다. 시스템 파일도 변경해 보세요. 이로 인해 백업 복사본에 불일치가 발생할 수 있으며, 최악의 경우 복구에 사용할 수 없는 손상된 백업이 생성될 수 있다고 생각됩니다. 최악의 경우 복구 후 부팅에 실패할 수도 있습니다... 이것이 실제 위험인가요, 아니면 이 dd 명령이 작동하는 방식을 제가 잘못 이해하고 있는 것인가요?

답변1

실제 위험을 강조합니다. 라이브 파일 시스템의 기본 구조를 복사하는 경우 복사한 내용이 사용 가능하다는 보장은 없습니다.

복사본이 성공적으로 마운트되고 파일 시스템에서 괜찮아 보이더라도 복사한 블록이 특정 파일에 할당된 블록과 일치한다는 보장은 없습니다. (크기가 xMB로 보이지만 할당된 블록 내에 불완전한 데이터만 있는 파일에 대한 디렉토리 항목이 있을 수 있습니다.)

이는 SD 카드의 처음부터 끝까지 직렬 복사의 예로 표시할 수 있습니다. 백업이 진행되는 동안 새 파일에 대한 디렉터리 항목을 만들고 파일 내용을 디스크에 쓰는 것을 고려하십시오. 메타데이터는 물리적으로 SD 카드 끝에 있는 디렉터리에 기록되어 파일이 백업에 존재하는 것처럼 보이기 때문에 캡처될 수 있습니다. 그러나 이미 처리한 디스크의 이전 부분에 파일 내용이 기록되었을 수 있으므로 백업에 넣지 마십시오.

이렇게 하지 마십시오.

가장 좋은 방법은 스냅샷을 복사하는 것입니다(LVM, 스냅샷 테이블 파일 시스템 및 상용 소프트웨어 참조).

차선책은 파일 기반 백업을 수행하는 것입니다( rsync및 참조 rsnapshot). 이는 두 개 이상의 파일이 백업에서 동기화되지 않을 수 있는 경쟁 조건의 영향을 받기 때문에 다음과 같은 파일을 지속적으로 변경하는 데 적합하지 않습니다. 데이터베이스)이지만 대부분의 파일은 성공적으로 올바르게 복사됩니다. 이러한 상황에서 데이터베이스를 백업해야 하는 경우 기본 데이터베이스 백업 도구 사용을 고려한 다음 결과 백업 파일을 사용 rsync/ 복사하세요. 또한 디스크 파티션 테이블과 부팅 프로세스와 관련된 비파일 시스템 파티션( 주의 깊게 처리하면 친구가 될 수 있음) rsnapshot을 별도로 명시적으로 복사해야 합니다 .dd

답변2

귀하의 가정은 정확합니다. dd를 사용하여 스냅샷을 찍으면 결과 저장 데이터가 일관되지 않을 수 있습니다. 또한 SD 카드에서 읽을 때 오류가 발생할 수 있을 뿐만 아니라 전송 오류도 발생할 수 있습니다(드물지만 가능함).

모든 쓰기 데몬/응용 프로그램을 중지하고 모든 파일 시스템 RO를 다시 마운트한 다음 dd 스냅샷을 만들 수 있습니다. 이렇게 하면 데이터 일관성이 보장되지만 읽기/전송 오류가 방지되지는 않습니다.

보안을 극대화하려면:

  1. 데이터를 백업하려면 별도의 파티션을 만드세요.
  2. 두 번 백업하고 해시를 비교하십시오. 일치해야 합니다.
  3. par2를 사용하여 데이터를 백업하고 생성 시 par2 볼륨을 확인하세요.

답변3

예, dd백업용 입니다.설치됨파일 시스템과 관련된 특정 위험이 있습니다. 여기 다른 사람들이 말했듯이,"운이 좋으면 백업 직후에 문제를 발견할 수 있고, 운이 좋지 않으면 훨씬 나중에야 문제를 발견할 수 있습니다."

나는 당신이 작업에 적합한 도구를 사용하고 있다고 생각하지 않습니다. 당신은 라즈베리 파이를 가지고 있기 때문에 (그리고만약에RPi OS Buster를 실행 중이라면 를 대신 image-utils사용할 수 있으므로 파일 손상 위험이 매우 낮습니다. 또한rsyncdd영상rufus파일을 백업으로 사용하거나 SD 카드에 쉽게 플래시할 수 etcher있으며 생성된 이미지 파일보다 훨씬 작습니다 dd.

기존 이미지 백업을 업데이트하거나 새 이미지 백업을 생성하도록 선택할 수 있습니다. 두 경우 모두 백업은 빠릅니다. 내 RPi에서는 "전체" 백업에 약 15분이 걸렸습니다.

image-utils여기서 다운로드 가능Raspberry Pi가 주최한 포럼에서. 작가님이 같은 장소에서 응원을 해주시는데 인기가 많은 것 같아요. 저는 아무 관련이 없지만 매우 유용하다고 생각했습니다.

편집자@2021-06-07

이 문제는 다음과 같이 선언되었습니다.복사, 아마도 이것은 전반적인 Linux 및 Unix 관점에서 본 정확한 평가일 것입니다. 그러나 효과적인 백업 솔루션이 (적어도 하나 이상) 있다는 사실에 주목하고 싶습니다.구체적으로Raspberry Pi 운영 체제 사용:image-utils.

백업에 대한 다양한 질문라즈베리 파이 SE때로는 해결책을 찾기 위해 이곳에 오시는 분들을 위해,하나 있다자세한 세부 사항거기에 답이 있습니다.

관련 정보