백업 환경은 점점 더 나빠지고 있다

세월이 흐르며 웬만한 데이터가 클라우드에 위치하게 되면서 로컬 파일을 백업할 방법은 점점 더 줄어들고 있으며 더 사용하기 불편한 이상한 모양으로 변해 갑니다.

백업 환경은 점점 더 나빠지고 있다

현대에는 이전 시대만큼 개개인이 파일 하나하나를 백업하는데 신경을 훨씬 덜 써도 되는 것 같습니다. 그도 그럴 것이 저 자신도 지금 이 글 초안을 컨플루언스 위키에 타이핑 하고 있는데 이 시스템은 제가 명시적으로 저장 버튼을 클릭하지 않아도 제가 타이핑 하는 매 순간 문서에 업데이트 된 부분을 서버로 보내 저장하고 있습니다. 그래서 제가 실수로 브라우저를 닫거나 운영체제가 크래시 되거나 컴퓨터가 꺼지는 등 온갖 문제가 일어난다 하더라도 최악의 경우 마지막으로 서버에 변경사항을 전송한 다음에 타이핑한 아주 짧은 부분의 텍스트만 잃을 뿐입니다.

이전 세계에서는 이런 글을 분명 로컬 스토리지에 파일 모양으로 저장하고 있었을텐데 어쩌다가 회사에서 순간적으로 조명이 반짝이며 전원이 불안정한 상황이 일어날 때 반사적으로 저장 키를 누르도록 훈련되어 있기도 했습니다. 이 행동은 이런 상황 대부분에는 도움이 되었겠지만 종종 오히려 끔찍한 결과를 만들어내기도 했는데 현대에 반도체 소자에 파일을 기록하는 것과 달리 흔히 하드디스크라고 부르던 자기 디스크에 물리적으로 데이터를 기록하던 시대에는 오히려 전기가 끊기는 그 순간에 파일에 쓰려고 시도하다가 중간에 실패해 오히려 저장하려던 행동에 의해 파일 전체를 더 이상 읽어올 수 없는 상태로 만들기도 합니다. 만약 이 때 이 파일의 이전 버전의 복사본이 어딘가, 심지어 같은 하드디스크의 다른 디렉토리에라도 있다면 이 파일이라도 읽어 상황을 수습할 수 있겠지만 복사본이 그 어디에도 없다면 상당한 피해를 감수해야만 합니다.

한번은 중요한 회의에 들어가 혹시 인터넷이 끊기기라도 하면 안되니 전적으로 인터넷 연결 상태에 따라 편집 가능 여부가 제한되는 컨플루언스 위키 대신 로컬 환경에서도 안정적으로 동작하는 맥OS의 기본 노트 앱으로 메모하고 있었습니다. 그런데 실제로 인터넷이 끊긴 것은 아니어서 노트 앱도 마치 컨플루언스 위키처럼 실시간으로 아이클라우드를 통해 제가 타이핑 하는 글자들을 동기화 하고 있었습니다. 이 노트 앱 역시 인터넷을 통해 실시간으로 노트를 저장하다가 인터넷이 끊기더라도 계속해서 똑같이 사용할 수 있고 인터넷 연결이 복원되면 다시 동기화하는 방식으로 동작해 중요한 회의 중간에 무슨 일이 일어나더라도 메모가 불가능해지는 상황이 일어나지 않을 거라고 생각했습니다. 하지만 노트 앱은 어느 순간 잠시 버벅거리더니 가장 마지막에 타이핑 한 문단을 날려버리고 약 5분 전 상태로 돌아가 버렸고 제 뇌의 일부분은 여전히 회의에 집중하고 있었지만 뇌의 나머지 부분은 이 상황을 한탄하며 이를 어떻게 수습할 수 있을지 고민하기 시작합니다. 역시 가장 중요한 회의에는 동기화 같은 외부 영향으로부터 완전히 자유로운 방식으로 타이핑을 했어야 했다는 생각을 했습니다. 사실 노트 앱 역시 완전히 로컬로 구동할 수 있지만 굳이 그럴 필요가 없다고 생각했는데 애플이 개발하는 동기화 기능이 그럼 그렇지 싶으면서도 이를 알고 있었으면서도 애플이 만든 동기화를 믿고 타이핑 한 제 실수이기도 했습니다.

일단 재빨리 로컬로만 동작하는 노트를 열어 이어서 타이핑 하면서도 약 5분 사이에 사라진 문단을 어떻게 다시 가져올 수 있을지 고민하다가 맥OS의 타임머신이 노트를 로컬에 보관하고 있을지도 모른다는 생각이 들어 재빨리 타임머신을 열어 노트를 이전 버전으로 되돌려 봅닏. 다행히 타임머신은 바보같은 아이클라우드가 멀쩡히 작성한 한 문단을 날려버리기 이전 버전, 지난 몇 분 사이에 타이핑 했다가 날아갔던 바로 그 문단, 그리고 아이클라우드가 그 문단을 날려 버린 다음 상태를 모두 가지고 있었고 여기서 사라진 한 문단을 복사한 다음 현재로 돌아와 로컬로만 작성하던 노트에 붙여 넣어 아무런 문제도 없다는 듯 계속해서 회의에 참여하며 메모를 이어 나갈 수 있었습니다. 하지만 그 시점에도 여전히 뇌의 모든 부분이 중요한 회의에 집중하는 대신 애플이 만든 쓰레기 같은 자동 동기화 시스템이 똑바로 동작하지 않는 것을 생각하며 도대체 어떻게 해야 이런 험난한 서계에서 멀쩡히 제정신을 유지하며 컴퓨터를 사용할 수 있을지 고민합니다.

이런 동기화를 애플만 똑바로 못 만드는 것이 아니라 마이크로소프트 역시 똑바로 못 만들기는 마찬가지여서 오래 전에 원드라이브를 사용할 때 갑자기 메일로 파일이 대량으로 삭제되었다는 메시지를 받았는데 저는 파일을 삭제하지 않았습니다. 이어서 그런 메일이 여러 번 더 도착했고 도대체 이게 무슨 일인가 싶었는데 알고 보니 당시 사용하던 서피스 프로에 마이크로SD 카드를 꽂고 여기에 원드라이브를 동기화 했는데 마이크로SD 카드가 수명을 다하면서 여러 파일에 접근이 불가능해지기 시작했는데 멍청한 원드라이브는 이 상태가 파일이 삭제된 상태라고 생각하고 파일을 대량으로 삭제해 버린 것이었습니다. 바로 근처 사무용품 매장에 가서 마이크로SD 카드를 사 와 새로 동기화 해 문제를 해결했지만 이 과정에서 저는 저 혼자 일어난 파일 대량 삭제 이벤트 몇 개를 되돌리는데 시간을 써야만 했습니다.

이런 세계에서 맨정신으로 살아 가기 위해서는 여러 데이터가 클라우드를 통해 잘 관리되는 데이터센터에 보관되어 있다 하더라도 여전히 로컬 파일을 안전하게 백업할 방법에 관심을 가지지 않을 수 없다고 생각합니다. 작년에 여러 이유를 들어 나는 왜 백업 소프트웨어 Arq 사용을 그만뒀나에 이전까지 오랜 기간에 걸쳐 잘 사용해 오던 백업 소프트웨어 사용을 그만뒀는지를 설명했는데 이 때도 제가 만들어내는 거의 모든 데이터를 컨플루언스 위키와 아이클라우드에 기록하고 있었기에 이 백업 소프트웨어의 불편한 동작을 견디기를 그만 둘 생각을 했습니다. 하지만 앞서 파일의 다른 버전 복사본이 존재할 때 최신 버전의 파일에 문제가 생기거나 파일을 읽을 수 없을 때 큰 도움을 받을 수 있다는 사실을 잘 알고 있었고 여전히 로컬에 파일을 쓸 일이 있었으며 아이클라우드나 원드라이브 양쪽 모두 아주 오래된 파일 버전을 유지해 주지 않았기에 여전히 파일 단위의 백업 소프트웨어를 완전히 고민하지 않을 수는 없었습니다. 다만 지금까지는 여러 파일의 버전 유지와 각각의 버전을 백업하는 방법을 서로 같은 소프트웨어로 관리해 왔기에 여러 문제를 겪었는데 만약 이를 각기 다른 소프트웨어로 분리한다면 오히려 문제를 쉽게 풀 수 있지 않을까 하는 생각을 해봅니다.

일단 파일의 버전 관리는 돌고 돌아 퍼포스에 소개한 대로 개인에게 무료인 퍼포스를 사용하기 시작했습니다. 퍼포스가 개인 관점에서 파일을 관리하는데 얼마나 훌륭하게 동작하는지는 개인용 퍼포스 사용기 및 영업에 이야기했으니 이를 참고하시면 될 것 같은데 간단히 요약하면 엔지니어들이 주로 사용하는 깃(Git)에 비해 압도적으로 바이너리 파일을 잘 다루기 때문에 비 엔지니어 입장에서 온갖 소프트웨어에서 저장한 바이너리 파일의 버전을 강력하게 관리할 수 있습니다. 상업용 소프트웨어이기는 하지만 개인 입장에서 사용자 다섯 명, 동기화 가능한 기계 20개 까지 무료로 사용할 수 있어 무료로 충분히 사용 가능합니다. 퍼포스로 로컬 파일 관리를 시작하면서 두 가지 장점이 생겼는데 하나는 아이클라우드나 원드라이브, 드랍박스처럼 제가 원하지 않은 시점이라도 파일에 변경사항이 생기면 그때그때 파일을 인터넷으로 전송해 계속해서 버전을 만들지 않게 된 것입니다. 물론 매 순간마다 파일을 인터넷을 통해 백업하는 건 괜찮아 보일 수도 있습니다. 하지만 실제로 특정 버전을 되돌리려고 보면 어느 시점의 파일이 내가 원하는 시점인지 알 수 없기 때문에 거의 매 분 단위로 저장된 파일을 하나 하나 열어봐야만 제가 원하는 버전을 찾을 수 있으며 여기에는 시간이 많이 걸립니다. 그렇다고 앞서 회의 도중 노트 앱을 타임머신을 통해 복원하듯 아주 빠르게 프리뷰를 할 수 있는 인터페이스를 제공하지도 않습니다. 반면 퍼포스를 사용하면 제가 원하는 시점에 제 코멘트를 포함해 버전을 관리할 수 있어 어떤 버전으로 돌아가야 하는지 아주 빨리 파악할 수 있을 뿐 아니라 2024년 현재 한화 약 4만원 정도를 지불하면 BeyondCompare 최신 버전을 구입할 수 있어 타임머신 부럽지 않은 버전 별 프리뷰 환경을 구축할 수 있습니다.

다른 한 가지 장점은 제가 직접 퍼포스 서버가 구동되는 하드웨어를 통제하기 때문에 버전 보관에 제한이 완전히 사라졌다는 점입니다. 가령 드랍박스는 유료 사용자라도 지난 30일 동안의 변경사항만 보관해 주고 이를 180일로 늘리거나 365일로 늘리는데는 추가 비용을 요구합니다. 즉 지난 30일 안에 수정한 버전을 유지해 주지만 그보다 오래된 수정사항은 사라지며 비가역적으로 접근할 수 없게 됩니다. 물론 대부분의 복원 시나리오에서 30일보다 더 오래된 버전을 찾으려고 시도하는 사례는 많지 않은 것도 사실이지만 개인적으로는 1년에 한 번 정도는 꽤 오래된 버전의 파일을 찾아내 저를 위기로부터 구해내거나 들일 필요 없는 시간을 아끼게 만들어주기도 해서 마냥 30일 이전 버전이 필요하지 않다고 주장하기는 조금 어렵습니다. 같은 이유로 노션 역시 버전을 지난 30일 어치만 보관해주는데 비해 컨플루언스가 이전 버전을 무한히 보관해주기에 노션을 사용하지 않는 것을 권장하기도 합니다. 같은 이유로 퍼포스 역시 이전 버전을 무한히 보관할 수 있는데 이는 애초에 이 도구가 드랍박스나 노션처럼 스토리지를 효율적으로 사용하도록 하는 목표에 전혀 무관하게 개발된 도구이기도 하고 또 퍼포스 서버가 동작하는 하드웨어를 제가 직접 통제하기 때문에 스토리지를 효율적으로 사용할 이유가 전혀 없기 때문이기도 합니다. 그래서 어떤 파일이든 일단 퍼포스에 의해 관리되기 시작하면 이 기계를 유지할 그 마지막 순간까지 계속해서 이전 버전을 보관하고 있을 겁니다.

퍼포스를 통해 바이너리 파일을 포함한 온갖 파일의 버전 관리를 할 수 있게 됐지만 여전히 이를 저장한 제가 통제하는 서버 자체의 백업이 필요한 상황입니다. 처음에는 퍼포스 서버를 AWS에서 구동했지만 스토리지 비용이 엄청나 이러다 거덜나겠다 싶어 장기적으로 비용을 낮추기 위한 온프레미스 전환에 설명한 대로 집에 있는 기계로 변경했습니다. 그러면서 한 번에 큰 돈이 들기는 했지만 이전에 비해 훨씬 강력한 성능과 훨씬 커다란 스토리지를 정시적인 비용 지출 없이 사용할 수 있게 되었고 이 기계로 퍼포스 서버를 지탱하며 제한 없는 버전 관리에 사용하고 있습니다. 하지만 이 기계 역시 수명이 있을 테고 온갖 이유로 파일을 유실할 수 있으므로 어딘가 오프사이트 백업이 필요한데 여러 시행착오 끝에 이전에 사용을 그만 뒀다고 말했던 Arq 앱과 Baclbkaze B2를 사용해 기계 전체를 백업하고 있습니다. Arq 앱은 비록 윈도우에서는 사실상 완벽한 오동작으로 사용자를 깊이 빡치게 만들지만 그나마 맥에서는 온전히 동작할 뿐 아니라 몇 차례에 걸쳐 사라진 파일들을 되돌리는 사례에 문제 없이 동작한 덕분에 최소한 맥 환경에서는 신뢰를 획득했습니다. 한편 Backblaze B2는 비용이 낮은 오브젝트 스토리지인데 그들 스스로도 백업 솔루션을 제공하지만 이는 윈도우에서는 볼륨 섀도우 카피를 지원하지 않고 맥에서는 볼륨 스냅샷을 지원하지 않아 현재 사용 중인 파일에 접근할 수 없어 현재 실행 중인 서버를 백업하는데는 극도로 부적절합니다.

한편 퍼포스와 Arq, 그리고 B2를 통해 파일을 백업하고 있지만 여전히 여러 대의 기계 각각의 로컬 파일을 가볍게 백업할 방법은 여전히 필요합니다. 특히 현재 주로 사용하는 백업 소프트웨어인 Arq가 윈도우에서는 사실상 동작하지 않아 적당한 대안을 탐색해봤는데 윈도우에서 편안하게 사용할 백업 소프트웨어가 생각보다 드물다는데 놀랐습니다. 지난번에 회사에서 Windows File History 추천이라는 글을 썼고 실제로 이 도구를 윈도우 기반의 기계 여러 대에서 사용하고 있기는 하지만 여러 가지 이유로 이를 모든 사람들에게 추천하기는 쉽지 않습니다. 일단 Windows 10 까지는 이 소프트웨어가 백업 할 경로와 백업하지 않을 경로를 자유롭게 지정할 수 있었는데 Windows 11 부터는 백업하지 않을 경로만 지정할 수 있어 백업을 원하는 파일을 무조건 Users 디렉토리 밑으로 옮겨야만 하게 됐습니다. 사실 현대에는 여러 개인 파일을 Users 하위에 놓는 것이 꽤 당연해졌지만 여전히 루트 디렉토리에 있는 경로나 ProgramData 같은 경로를 백업하는데 File History를 사용할 수가 없어 아주 실망스럽습니다. 그래서 이 도구를 핵심 백업 도구로 활용하라고 적극적으로 추천하기에는 조금 무리가 있습니다. 또 File History 앱은 마이크로소프트가 개발해 윈도우에 직접 포함하는 퍼스트 파티 앱임에도 불구하고 도무지 해결할 수 없는 그냥 백업이 멈추는 현상을 자주 겪었습니다. 어느 날부터 그냥 백업이 안 되는데 아무 경고도 없이 그냥 멈춰 있고 인터넷을 아무리 검색해봐도 이 상태의 원인, 해결 방법을 명확히 알아낼 수 없었습니다.

한편 시간을 과거로 더 돌려 Windows 10 환경에서는 Windows 7 시대부터 제공하던 백업 소프트웨어를 사용할 수도 있는데 Windows File History가 잘 동작하기만 한다면 훨씬 단순하면서도 견고한 백업을 제공하기는 하지만 일단 동작하지 않기 시작하면 무슨 짓거리를 해도 이 상태로부터 벗어나기 거의 불가능한 상황에서 Windows 7의 백업 소프트웨어는 File History에 비해 훨씬 견고하고 안정적으로 동작합니다. 이 소프트웨어는 두 가지 백업 방식을 선택할 수 있는데 하나는 그때그때 드라이브 전체의 증분 이미지 백업을 하는 방법, 그리고 다른 하나는 이미지 없이 증분 파일 백업만 하는 방법입니다. 또는 두 가지를 함께 할 수도 있습니다. 이미지 백업은 하드웨어에 문제가 생길 때 하드웨어를 교체한 다음 완전히 이전 상태로 돌아갈 수 있는 방법이기는 하지만 백업과 복원에 오랜 시간이 걸리는 단점이 있습니다. 이에 비해 파일 단위 백업은 완전히 이전 상태로 돌아갈 수 없기는 하지만 훨씬 빠르고 파일 수준으로만 복원해도 잃어버리는 것은 아무 것도 없는 것이 사실입니다. 게다가 Windows 7의 백업 소프트웨어는 이유 없이 백업에 실패하지도 않고 지금까지 경험한 거의 모든 순간 군소리 없이 백업을 성공적으로 수행해 왔고 필요한 순간에 이전 버전의 파일을 복원하는데도 문제 없이 동작합니다. 때문에 Windows 10을 사용하던 시대까지는 File History 대신 Windows 7 Backup을 주로 사용해 왔습니다. 하지만 Windows 11부터는 이 소프트웨어가 탑재되지 않아 어쩔 수 없이 File History를 사용해야만 했는데 이 앱은 제가 사용하는 윈도우 기계 여러 대 중에서 딱 한 대에서만 정상 동작하며 나머지 기계에서는 첫 백업을 마치지 못하고 그냥 멈추는데 해결할 방법이 없습니다.

한편 Windows 11부터는 File History 외에 ‘Windows Backup’이라는 새로운 앱을 제공하는데 뭐든 백업할 수 있을 것처럼 행동하는 것과는 달리 놀랍게도 이 앱은 원드라이브에 완전한 의존성을 가지고 있습니다. 즉 원드라이브를 사용하지 않으면 백업이 동작하지 않으며 그냥 사용할 수 없는 쓰레기로 변합니다. 이전에 원드라이브를 메인으로 사용하던 시대에는 이 소프트웨어를 긴요하게 사용할 수 있었을른지도 모르겠다고 잠깐 생각했지만 원드라이브는 개인에게 스토리지를 1테라바이트만 주기 때문에 본격적인 오프사이트 백업으로 사용하기에는 부족할 뿐 아니라 Windows 11에서 File History에 가해진 제한과 마찬가지로 Users 디렉토리 하위만 백업할 수 있어 다양한 환경에 적용하는데 한계가 있습니다. 만약 제가 원드라이브를 메인으로 사용하고 있어 이 새로운 백업 소프트웨어를 사용할 수 있었다 하더라도 스토리지가 부족해 이를 적극적으로 사용할 수는 없었을 것 같습니다. 결국 윈도우 기계에서는 사용 가능하다면 File History로 백업하고 보다 의미 있는 파일은 퍼포스에 의해 동기화되는 환경을 사용하며 퍼포스가 동작하는 맥미니 서버는 Arq 앱과 Backblaze B2에 의해 백업하고 있습니다.

지금까지 로컬에서 만들어 사용하는 여러 파일을 백업하는 방식과 이전 시대와 현재 사이에 변화를 살펴봤는데 윈도우와 맥 양쪽 모두 그들 스스로 제공하는 백업 환경은 시간이 흐를수록 점점 더 나빠지고 있습니다. 먼저 맥은 타임머신이라는 겉보기에는 진짜 쩔어주는 백업 소프트웨어를 제공했지만 이는 기계와 직접 연결된 스토리지가 있을 때 가장 잘 동작할 뿐 오프사이트 백업에는 전혀 사용할 수 없거나 사용하기 위해 애플이 의도하지 않았을 것이 분명한 복잡한 설정을 요구합니다. 특히 최근에는 타임머신 백업이 특정 파일시스템 기능에 의존성 있는 모양으로 변하면서 타임머신 백업에 사용하던 스토리지를 다른 디바이스로 변경하며 기존 백업을 복사할 수 조차 없게 됐습니다. 그냥 외장하드에 타임머신 백업을 사용하다가 새 외장하드를 설치한 다음 기존 외장하드로부터 백업을 가져오려고 했지만 이게 불가능하다는 터무니 없는 사실을 깨닫고 인정하는데 한 시간 넘는 시간을 낭비해야만 했고 이건 백업으로써 기본이 전혀 안 되어 있는 이상한 소프트웨어라고밖에 생각할 수 없었습니다.

다음으로 윈도우는 맥만큼 쩔어주는 인터페이스를 제공하지는 않지만 Windows 7 시대까지는 여러 환경 변화에 별 영향을 받지 않는 단순하고 단단한 백업 소프트웨어를 제공해 왔습니다. Windows 10 시대에도 File History라는 단순한 백업 소프트웨어를 제공했지만 종종 단단하게 동작하지는 않았으며 일단 동작하지 않기 시작하면 이 상태를 해결하기가 거의 불가능했습니다. 하지만 이 상황에서도 여전히 Windows 7 백업을 사용할 수 있기에 백업이 불가능하지는 않았습니다. Windows 11에 이르자 단단하지는 않지만 그나마 단순하기는 했던 File History는 옵션이 대거 삭제되어 원하는 경로를 백업할 수 없게 됐고 또 Windows 7 백업 소프트웨어가 제거되었습니다. 새로 추가된 Windows Backup 앱은 원드라이브에 의존성이 있고 원드라이브는 스토리지가 너무 작으며 다른 스토리지를 선택할 옵션을 아예 제공하지 않습니다.

현재 제 가장 중요한 파일 중 사진은 아이클라우드로 대표되는 애플 시스템에 의해 보관하고 있고 다른 온갖 작업 파일은 퍼포스에 의해 버전을 관리하고 퍼포스 서버는 서드파티 앱인 Arq과 오브젝트 스토리지 B2에 의해 백업합니다. 아마도 푸틴이 핵미사일을 발사해 데이터센터가 파괴되거나 기후변화로 홍수가 일어나 데이터센터가 침수되지 않는 이상은 대체로 안전할 거라고 생각하지만 시간이 흐름에 따라 운영체제 수준에서 제공하던 단순하고 강력한 백업 소프트웨어가 점점 더 단순하지 않고 단단하지도 않으며 사용자의 선택권을 줄이고 점점 더 유료 서브스크립션에 의존하는 모양으로 변해 가는 상황은 대단히 유감입니다. Windows 7 시대의 백업과 Windows 11 시대의 백업은 사용 가능했던 소프트웨어가 사용 불가능한 소프트웨어로 변해 가는 대표적인 사례이며 맥OS의 타임머신이 최근 APFS에 의존성을 가져 스토리지 디바이스를 교체할 수 없도록 만든 것은 이들이 도대체 백업을 뭐라고 생각하는 것인지 진지하게 생각해보지 않을 수 없었습니다. 윈도우 기계와 애플 기계 양쪽 모두를 사용하는 입장에서 이들의 백업은 점점 더 나빠지고 있으며 이는 기술적으로 다른 선택을 할 수 없는 사람들이 점점 더 위험한 상황에 노출되도록 만들고 있다고 생각합니다.