리눅스/공통

다양한 백업 전략에 대한 간단한 설명

씨실과 날실 2020. 8. 26. 09:00


백업이란 데이터를 다루는 모든 다루는 이들에게 무척이나 중요한 작업입니다. 아니 전산 데이터 뿐만 아니라 부가가치를 창출하는 모든 일에 백업이란 숙명과도 같은 것일 겁니다.

지금까지 DB, CMS 등 각종 데이터를 백업 및 복원에 대한 기술적 방법에 대하여 글을 적었고 또 앞으로도 적게 될 것인데 정작 백업에 대한 전략적 접근은 다루지 않았습니다.

그래서 이번에는 데이터의 백업에 대하여 백업 도구의 단순한 응용 기술적 설명이 아니라 데이터를 백업하는 다양한 전략에 대해 간단히 훑어 보고자 합니다.

     

다양한 백업 방법들에 대하여

제가 작성한 표(이미지)를 참고하셔서 설명을 보시면 이해가 쉬우실 겁니다.


전체 백업(Full Backup)

전체 백업은 말 그대로 백업하고자 하는 대상의 백업 당시상태를 통째로 백업하는 방식입니다. 당연히 데이터가 누적될수록 백업 용량은 늘어나게 되어 백업에 필요한 디스크 용량이나 백업 시간 등 필요한 자원도 늘어나게 됩니다.


증분 백업(Incremental Backup)

증분 백업은 최초의 전체 백업 이후 변경되거나 추가된 데이터만 선택적으로 백업하는 방식입니다. 따라서 매번 전체 백업을 하는 것에 비해 백업 용량이 적어 백업 소요 시간이 적습니다.

그러나 잊지 말아야 할 것은  증분 백업은 이전 백업 정보에 종속적입니다. 몇몇 사전이나 사이트, 블로그 등에는 이에 대하여 아래와 같은 잘못된, 혹은 오인되기 쉬운 정보를 적고 있습니다.


~ 전체 백업에 종속적이라는 단점이 있다. ~

출처 : TTA정보통신용어사전의 증분 백업 항목에서 일부 인용


전체 백업에 종속적이다라는 약간은 잘못된 정보를 적고 있으나 이는 정확한 표현은 아닙니다.  증분 백업은 이전 백업본들에 대하여 역으로 연속적인 종속 관계를 맺습니다. 좀더 쉽게 설명하자면 다음과 같습니다.

전체 백업 이후 3차에 걸친 증분 백업이 이루어졌다고 가정했을 때 3차 증분 백업은 2차 증분 백업본 정보를 바탕으로 이후 변경된 내용만 담고 있고, 2차 증분 백업은 1차 증분 백업본 정보를 바탕으로 이후 달라진 내용만 담고 있으며, 1차 증분 백업은 최초에 이루어졌던 전체 백업본의 정보를 바탕으로 바뀐 내용만 담고 있습니다.

즉 증분 백업이란 결국 시간의 역순대로 직전 백업에 대한 연쇄적 종속 관계를 맺고 있는 것입니다. 따라서 증분 백업을 다시 복원하려면 전체 백업본과 n차의 증분 백업본까지 시간 순서대로 모조리 복원해주어야 합니다. 그렇지 않으면 백업된 내용에 빠진 부분이 생기거나 정보의 최신성을 보장할 수 없게 됩니다.

몇몇 사전에서 증분 백업의 특징으로 설명하고 있는 전체 백업에 종속적이라는 말은 바로 아래에서 설명하는 차등 백업의 특징입니다.


차등 백업(Differential Backup)

차등 백업은 백업 대상의 전체 백업 이후 변경되거나 추가된 정보를 누적해서 백업하는 방식입니다. 이를 좀더 쉽게 풀어서 설명하자면 다음과 같습니다.

전체 백업 이후 3차에 걸친 차등 백업이 이루어졌다고 가정합니다. 1차 차등 백업은 전체 백업 이후 변경된 정보만 담고 있어 백업 용량이 가장 적습니다. 2차 차등 백업은 1차 차등 백업 정보를 포함하여 이후 변경된 정보를 담습니다. 3차 차등 백업은 1차와 2차의 차등 백업을 포함하여 이후 변경되거나 추가된 정보를 담고 있습니다.

따라서 차등 백업되 데이터를 복원할 땐 최초의 전체 백업본과 마지막 회차의 차등 백업본 이 둘만 순서대로 복원해주면 됩니다. 중간에 n-1회에 걸쳐 이루어진 여러 차등 백업본들은 불필요합니다.

일부 블로그에서는 증분 백업을 복원하는 방법에 대하여 설명할 때 전체 백업본과 마지막 증분 백업본만 복원하면 된다는 잘못된 정보를 전달하고 있습니다. 이들 블로그가 설명하는 방법은 증분 백업 복원이 아닌 차등 백업본에 대한 복원 방법입니다.


합성 백업(Synthetic Backup)

합성 백업은 기존의 전체 백업과 증분 백업을 합하여  새로운 전체 백업을 만드는 작업입니다.

일반적인 전체 백업 재생성은 전체 백업 대상의 정보를 처음부터 다시 읽어들여서 다시 작업하기 때문에 네트워크에서 작업 시 막대한 양의 대역폭을 사용하게 됩니다. 그러나 이 합성 백업을 사용하면 기존의 전체 백업과 증분 백업본을 그대로 이용하기 때문에 새로운 전체 백업본을 만든다고 하더라도 실제로 사용되는 네트워크 대역폭량을 대폭 줄일 수 있기 때문에 주로 네트워크 사용시 이용되는 백업 방법입니다.


중복 제거 백업(Deduplication Backup)

사실 이 백업은 앞서 설명한 백업 전략과는 성격을 약간 달리한다고 볼 수 있습니다. 앞서 다룬 것들은 백업 방식 자체에 따른 분류라면 이 백업은 정확히는 중복되는 데이터를 제거(Deduplication)하여 스토리지의 효율을 극대화하는 일종의 데이터 관리 전략에서 출발한 것입니다.

극단적이지만 쉽게 이야기하자면 유일한 정보만 남기고 중복되는 것들은 하나만 남겨 공유하도록 하는 것입니다.

예를들어 백업 대상이 되는 다수의 파일이 있다고 가정합시다. 당연히 그 파일들 안에는 사용자에게 유의미한 유일하거나 또는 중복되는 데이터들이 있을 것이고 또한 파일 구조 등과 같이 사용자에게 덜 유의미한 중복되는 동일 데이터들이 존재할 것입니다. 

그럼 유의미한 데이터는 하나씩만 남겨 백업 데이터로 만들고 파일 구조와 중복 정보 등은 메타 데이터로 만들어 연결해주어 정보 사용량을 줄이는 방법입니다.