공격대를 백업하는 올바른 방법은 무엇입니까?

공격대를 백업하는 올바른 방법은 무엇입니까?

루트가 미러링된 LVM 볼륨에 있고 /boot 및 /boot/efi가 RAID1 파티션인 두 개의 디스크 서버가 있습니다.

재해가 발생하는 경우(두 디스크 모두 고장이 나거나 전체 서버가 사라지는 경우) 가동 중지 시간을 최소화하면서 신속하게 복구할 수 있도록 서버를 완전히 백업하고 싶습니다. 복구 중에 사양이 완전히 동일한 새 서버와 동일한 "형상"(즉, 전체 크기 및 섹터 크기)이 동일한 두 개의 새 디스크가 있다고 가정해 보겠습니다.

내가 할 계획은 다음과 같습니다.

  • sfdisk -d /dev/XXX > partXXX.bak나중에 새 서버에서 복원할 수 있도록 두 디스크의 파티션 테이블을 백업하세요 sfdisk /dev/XXX < partXXX.bak.
  • vgcfgbackup나중에 사용하기 위해 복원할 수 있도록 LVM 메타데이터를 백업합니다 vgcfgrestore.
  • 스냅샷 및/ rsync또는 기타 백업 도구를 사용하여 LVM 볼륨의 실제 데이터를 백업하십시오.

/boot이제는 파티셔닝 에 대한 완벽한 솔루션이 없습니다 /boot/efi. 이것이 내가 생각해낸 것입니다:

  • dd두 개의 디스크에 전체 파티션의 이미지를 생성하는 데 사용됩니다 .
  • 아마도 압축을 사용하는 것 같습니다 gzip.
  • 복원하는 경우 dd(파티션 테이블을 복원한 후)를 사용하여 두 디스크 모두에서 전체 파티션 이미지를 복원합니다.

프로세스가 완료되면 간단히 시스템을 재부팅할 수 있어야 하며, 복구된 디스크의 내용이 바이트 단위로 동일하므로(부트로더, 슈퍼 블록 등 포함) 재난 이전과 마찬가지로 작동해야 합니다. .).


내 질문은 dd다음과 같습니다.

  • 라이브 파일 시스템의 이미지를 촬영하기 때문에 데이터 불일치가 발생할 수 있습니다. 나는 이러한 파티션에 자주 쓰기를 원하지 않지만 실행하려는 위험을 제한하기 위해 sync이미지를 촬영하고 프로세스를 다시 반복합니다. 두 이미지가 모두 동일한 경우 첫 번째 이미지를 생성하는 동안 쓰기가 발생하지 않았다고 가정하는 것이 안전합니다.
  • 여유 공간을 포함하여 전체 파티션을 이미징하는 것은 과도한 것처럼 보입니다. 여기에서는 압축이 도움이 되고 파티션이 그다지 크지 않지만( 1GiB200MiB) LVM을 사용하는 접근 방식이 더 스마트해 보입니다.

내 질문은 다음과 같습니다. 복구 중에 복원할 수 있고 마운트 및 데이터만 필요 하도록 슈퍼 블록 및 부트로더와 같은 파일이 아닌 메타데이터를 안정적으로 백업하는 데 사용할 수 있는 mdadm동등한 것이 vgcfgbackup있습니까 ?vgcfgrestoremdrsync

또한 내 재해 복구 계획에 누락된 내용이 있나요?

답변1

고려하다긴장을 풀고 회복하세요. https://relax-and-recover.org/

암호화(예: LUKS)를 처리하고 증분 백업을 처리합니다.

답변2

ddUUID가 중복되므로 원본과 복사본을 함께 설치하면 문제가 발생합니다.

또한 FAT 파티션의 UUID는 다시 포맷하지 않고는 변경할 수 없으며 EFI 시스템 파티션은 실제로 FAT입니다.

rsync바이트 간 식별(동일 사본)과 호환되지 않습니다.

나는 같은 사본을 신뢰하지 않습니다. 재난의 원인이 데이터 손상이라고 상상해 보십시오. 동일한 복제본이 재난의 원인을 보존할 것입니다. 반대로 복제 수준이 높으면 복제 단계에서 실패할 가능성이 높으므로 더 빠르게 대응할 수 있습니다.

실제로 재난으로 인해 모든 것이 멸절되는 경우 UUID가 고유하지 않아도 괜찮습니다. 어쩌면 얼마나 많은 위험을 감수하고 싶은지에 따라 전략이 달라질 수도 있습니다.

관련 정보