가상 머신 및 백업

가상 머신 및 백업

작은 파일에 대해 일부 파일 서비스를 실행하는 가상 머신(centos)이 있습니다. 권장되는 백업 방법은 무엇입니까? 가상 머신 디스크/파일을 백업해야 합니까(가상 머신 외부에서) 아니면 가상 머신 내부에서 백업 에이전트를 실행하여 전체 가상 디스크가 아닌 콘텐츠를 백업해야 합니까?

답변1

TLDR: VM 내에 백업 에이전트를 설치합니다.

VM 외부에서 디스크 이미지를 백업하는 것은 확실히 매력적으로 보입니다. 그렇지 않습니까? 특히 여러 개의 VM이 있는 경우 각 VM이 자체 백업하도록 개별적으로 구성할 필요 없이 호스트 시스템에 모든 디스크 이미지를 백업하도록 지시하기만 하면 작업이 완료됩니다.

하지만 이 접근 방식의 문제점은 호스트 시스템이 VM의 운영 체제가 내부적으로 무엇을 하고 있는지 인식하지 못한다는 것입니다. 보류 중이거나 진행 중인 디스크 쓰기가 있는지 여부는 알 수 없습니다. VM 프로세스 내부의 쓰기 캐시나 출력 버퍼에 대해서는 알지 못합니다. 따라서 백업하는 디스크 이미지가 다음과 같다고 보장할 수 없습니다.일관된백업 당시의 이미지입니다. 백업된 이미지 파일은 거의 확실히 여전히 사용할 수 있지만 문제를 정리하려면 먼저 파일 시스템 복구를 실행해야 할 가능성이 높습니다.

외부에서 전체 디스크 이미지 백업을 수행할 때의 또 다른 주요 단점은 이러한 백업이 주로 전체 시스템 복원에 유용하다는 것입니다. 잃어버린 파일 하나의 지난 목요일 버전을 다시 가져와야 하는데 별로 좋지 않습니다. 목요일 백업에서 전체 이미지를 복원한 다음 다른 도구를 사용하여 파일의 두 번째 복사본에서 해당 파일 하나를 추출해야 합니다. VM 내에서 백업을 수행하고 관심 있는 파일 하나만 복원할 수 있었던 경우보다 훨씬 더 많은 시간과 공간이 소요됩니다.

또한 이와 관련하여 전체 이미지 백업은 증분식으로 수행하기가 (기껏해야) 더 어렵습니다. 즉, 백업을 실행할 때마다 전체 이미지의 전체 복사본을 만들어야 한다는 의미입니다. VM 내 콘텐츠 기반 백업을 사용하면 주기적으로 전체 백업을 수행하고 그 사이에 변경된 파일만 백업할 수 있으므로 동일한 양의 저장 공간으로 훨씬 더 자주 백업할 수 있습니다.

재해 복구 목적으로 전체 VM의 이미지를 만들거나 다른 VM을 생성하기 위해 복제하기 위한 마스터로 사용하려는 경우 VM을 종료하고 전체 디스크 이미지를 복사하는 것이 좋은 방법입니다. 그러나 실행 중인 시스템을 정기적으로 백업하는 것은 좋은 접근 방식이 아닙니다.

답변2

TL, DR은 VM 외부에서 스냅샷을 수행합니다.

내가 본 모든 VM 호스트 소프트웨어(클라우드 서비스 및 컨테이너 호스트 포함)에는 스냅샷 기능이 있습니다. 이는 실행 중인 시스템을 백업하는 데 선호되는 방법입니다.스냅샷단일 시점에 전체 디스크의 일관되고 원자적인 복사본이 보장됩니다. VM 호스트 소프트웨어에는 일반적으로 스냅샷 전에 파일 시스템을 정지하는 게스트 OS 도구가 있지만 밤과 같이 쓰기가 많지 않은 시간에 스냅샷을 수행하는 것이 항상 가장 좋습니다. 대부분의 시스템은 스냅샷 상태가 저장되는 동안 잠시 일시 중지됩니다.

스냅샷은 일반적으로 증분식이기도 합니다. 중복 제거와 같은 고급 스냅샷 기능도 있습니다.

시스템이 종료되면(일시 중지 또는 일시 중지되지 않음) 쓰기가 불가능하고 모든 데이터가 디스크에 기록되어야 한다는 것을 알고 있으므로 VM 파일의 복사본을 만들 수 있습니다.

개별 파일을 복원해야 하는 경우 디스크를 복원하고 다른 시스템에 연결하고 마운트하면 됩니다.

파일 시스템의 파일에 대해 백업을 실행하는 경우 몇 가지 문제가 있습니다.

원자성이 아니기 때문에 백업 중에 쓰기가 발생할 수 있으므로 파일이 일관되지 않을 수 있습니다. 예를 들어 Tar는 백업되는 동안 파일이 기록되었음을 경고합니다. 또 다른 예로, 저는 파일이 백업된 데이터베이스 사본을 절대 신뢰하지 않을 것입니다. 데이터베이스 시스템은 불일치로부터 복구할 수 있는 탄력성을 갖고 있지만 그러한 위험을 감수하고 싶습니까? 관련 시스템 도구를 사용하여 별도의 오프사이트 데이터베이스 백업을 수행하는 것이 더 좋습니다.

또 다른 문제는 파일만으로 부팅 가능한 시스템을 만드는 것이 어렵다는 것입니다. 부팅 가능한 시스템을 만들려면 부팅 섹터 및 파티션 테이블과 같은 다른 것들이 필요합니다. 즉, 설치하는 추가 복원 단계가 있음을 의미합니다.똑같다파일 복원 전 운영 체제. 그럼에도 불구하고 부팅되더라도 나는 그것을 신뢰하는 것에 대해 극도로 모호할 것입니다.

관련 정보