[수정: 사용하지 마세요] 아무 SMB 서버에서나 타임 머신 사용하기 (feat. 자동 마운트)

!
경고: 이 글이 작성된 지 365일이 넘었습니다. 글의 정보가 오래되어 부정확할 수 있습니다.

이 글 끝에 수정을 추가해두었습니다!

맥OS의 타임 머신(Time Machine)은 기본으로 잘 하는 부분이 꽤 많습니다. 백업을 증감하는 방식으로 진행하기에, 백업 지정 장소에서의 디스크 용량을 많이 아낍니다. 자동으로 백그라운드에서 실행되며, 파워 냅(Power Nap)을 활성화해 둔다면 화면이 닫혀있는 상태에서도 백업이 진행되죠.

못 하는 점은 딱 하나인데, 직접적으로 연결되어 있는 저장 장치가 아니면 백업을 끔찍하게 못합니다.

원격 저장소로 백업하고 싶으시다고요? 다음 옵션 중 하나를 고르시면 됩니다:

  • 애플에서 자동으로 다 해주는 기기를 구매하기 안 됩니다! “에어포트 (AirPort)” 라인업이라고 있었는데 몇백년전에 단종됐습니다.
  • AFP를 지원하는 NAS로 백업하기 안 됩니다! AFP도 역시 사라졌거든요. 만약 사용하고 계신 NAS가 AFP를 기반으로 한 타임 머신을 지원한다고 판매되었었다면, 사용하시는 NAS가 엄청나게 오래된 NAS이기 때문에 어제 내다버리시는 게 좋습니다.
  • SMB를 지원하는 NAS를 구매한 다음, 타임 머신이 작동하기 위해 그 NAS가 “애플 확장들”(이게 뭔지는 잠시 후 설명드리겠습니다)을 지원하길 바래야 합니다. (그리고 나서 NAS 제조사가 삼바(Samba, SMB 서버 소프트웨어)를 끔찍하게 설정해서 안정적으로 작동하지 않으면 결국 창문 밖으로 NAS를 집어던지겠죠.)
  • 자작(DIY) NAS의 설정값을 며칠 간 건드리면서 작동하게 만듭니다. 이걸 제가 직접 해 봤습니다. 별로 좋지 않습니다. 아 방법을 선택하신 것을 후회하게 될 것입니다. (아, 그리고 아까 말씀드렸던 “애플 확장들"이 여기에 필요합니다. 그게 뭔지는 추후에 설명드리도록!)
  • 다 집어치우고 맥에서 우회해봅니다.

두 번째 방법부터 시작해서 설명드리겠습니다.

AFP?

AFP는 Apple Filing Protocol의 약자입니다. 엄청나게 오래된 프로토콜이기에 여기에서 설명드리지는 않겠습니다. 그리고 최신 맥OS 버전에서는 아예 지원이 삭제되었기에, 타임 머신을 위해 쓰고 싶으셔도 사용하실 수 없습니다. (강제로도요.)

“애플 확장?”

애플이 마이크로소프트가 개발한 SMB 프로토콜에 뭔갈 더하지 않는다면 애플이 아니겠죠. 그래서 애플 장치에서만 SMB 서버들이 잘 동작하게 추가 “확장"들을 개발해서 프로토콜에 추가했습니다.

오픈 소스 SMB 프로젝트인 삼바(Samba)가 이러한 “애플 확장"들을 vfs_fruit이란 이름의 모듈에 구현해두었는데, 모듈이 활성화된 상태에서도 타임 머신이 제대로 동작하지 않는 경우를 많이 겪었습니다.

만약 “타임 머신 호환” NAS에서 갑자기 타임 머신이 작동을 멈춘 경우, 맥OS가 원하는 방식으로 맞추어진 vfs_fruit 데이터를 받지 못해서 화내는 게 다반사일 겁니다.

자작(DIY) NAS?

그럼 만약 시놀로지(Synology)나 QNAP이 아닌, unRAID나 OpenMediaVault같은 소프트웨어가 돌아가는 자작 NAS를 기반으로 해서 타임 머신 서버를 만들면 어떨까요?

꽤 머리가 아플 겁니다. 제 경우에는 unRAID NAS를 사용해서 타임 머신을 설정해보았습니다. 이론상으로는 곧바로 작동했어야 하지만, 백업들이 가끔씩 실패하였고, 서버를 같이 쓰는 가족도 비슷한 증상을 겪었습니다. 설정값을 건드리는데 몇주를 할애하였지만, 문제를 완전히 해결하지는 못했습니다. 어쩔때는 아무런 문제 없이 작동하다가, 1시간 정도 지난 후 아무런 설정값을 건드리지 않았는데도 실패하는 경우가 있었습니다.

사람을 미치게 만들기 때문에 별로 추천드리지 않는 방법입니다.

맥 우회법

지난 며칠 간 잘 작동하여, 결국 선택한 방법을 설명해드리겠습니다:

SMB 서버에 저장된 이미지에 맥을 백업하도록 설정하는 겁니다.

이제 어떻게 설정하는지 절차를 보여드리겠습니다.

  1. 서버에 연결합니다.
  2. 디스크 유틸리티를 연 다음, 커맨드-N을 눌러 새로운 이미지를 만듭니다. 옵션값은 다음과 같이 설정합니다:
  • 이름: “Time Machine”
  • 크기: 원하시는 대로 설정하실 수 있지만, 맥의 드라이브 크기보다 크게 설정하시는 것을 추천합니다
  • 포맷: “APFS”
  • 암호화: “128비트 AES 암호화 (권장됨)” (비밀번호 선택창이 나옵니다)
  • 파티션: “단일 파티션 - GUID 파티션 맵”
  • 이미지 포맷: “분할 번들 디스크 이미지”

disk-utility-image-creation

이 이미지를 “다운로드” 폴더와 같이 로컬에 저장하는 것이 매우 중요합니다! 서버에 바로 저장할 경우 다음과 같은 오류가 발생합니다:

Operation failed with status 73: RPC version wrong

(작업이 상태 코드 73으로 인하여 실패하였습니다: RPC 버전 틀림)

이미지 이름은 아무렇게나 설정해도 괜찮습니다(글을 간결하게 적기 위해서 이제부터 분할 번들을 이미지로 지칭하겠습니다)만, 이미지를 구별할 수 있도록 맥의 이름으로 설정하시는 것을 추천합니다.

생성이 완료되면, 맥OS가 이미지를 자동으로 마운트할 겁니다. 이미지를 추출한 다음, 서버로 이동시키세요.

  1. 이미지를 마운트합니다. “키체인에 비밀번호 저장” 체크박스를 클릭하는 것을 잊지 마세요. 나중에 이미지를 자동으로 마운트하는데 중요합니다.
  2. 사용하시는 터미널 어플에 “전체 디스크 접근” 권한을 활성화해주세요.
  3. 터미널 어플에서 다음을 실행합니다:
sudo tmutil setdestination /Volumes/Time\ Machine

여기에서 /Volumes/Time\ Machine을 실제 볼륨 이름으로 대체하는 것을 잊지 마세요! 만약 불확실하시다면, 삭제하신 다음, (이미지가 아닌) 볼륨을 터미널 창으로 끌어오세요.

실행한 다음 비밀번호를 입력하면 볼륨이 타임 머신 목적지로 설정됩니다. 데스크탑이 몇번 깜빡일 수도 있는데, 정상입니다.

  1. 타임 머신에서 자동 백업을 설정합니다.

참고: 어떤 경우에는 타임 머신이 스케줄을 자동으로 변경하는 것을 막을 수도 있습니다. 이 경우에는 “시스템 설정” 어플을 완전히 종료한 다음 다시 타임 머신 설정 페이지로 들어가 보세요.

“옵션"을 선택한 다음, “백업 주기"를 “매시간마다"로 변경하세요:

time-machine-automatic-schedule

“배터리 전원에서 백업” 옵션은 꼭 매시간마다 백업이 필요하지 않으시다면 켜는 것을 추천드리지 않습니다.

참고: 만약 설정값이 계속 “수동"으로 변경된다면, 7번을 먼저 해보신 다음 다시 해보세요.

  1. 수동 백업을 실행합니다.

타입 머신 설정 안에서 목적지를 우클릭한 다음, “‘타임 머신’에 지금 백업"을 누릅니다:

time-machine-manual-backup

만약 디스크가 “0 KB 사용가능"으로 표시되었다면 이 부분에서 해결될 겁니다.

  1. (선택, 권장됨) 자동 마운트를 설정합니다.

앱 스토어에 있는 유료 앱 “AutoMounter”을 결국에 사용하였는데, 다른 옵션들도 분명히 있을테니 찾아보시는 것을 추천합니다.

앱에 SMB 서버를 추가한 다음, 공유 폴더가 마운트될 때마다 이 스크립트가 실행되게 합니다:

#!/usr/bin/env bash

# 존재할 경우, 이전 타임 머신 볼륨 추출
diskutil eject /Volumes/Time\ Machine

# 맥OS 버그 때문에 10초 정도 기다리기
sleep 10

# 디스크 이미지 파일 열기
open /Volumes/smb-share/TimeMachine/Erics-MacBook-Pro.sparsebundle

경로들을 치환하는 것을 잊지 마세요.

이제 타임 머신이 볼륨이 마운트되어 있는 것을 확인하면 자동으로 백업을 실행하고, AutoMounter가 SMB 공유 폴더가 사용 가능하다면 자동으로 볼륨을 마운트할 겁니다!

결론

타임 머신을 사용하는게 이렇게 불편한게 믿겨지지 않습니다. 타임 머신에서 위의 절차들을 다 해주는 버튼이 있으면 좋겠지만, 지금으로선 이것도 나쁘지 않은 것 같습니다.

업데이트 (2023-01-26)

이 방식을 사용하지 마세요. 타임 머신이 네트워크 공유 폴더에 있는 분할 번들에 백업할 때, 네트워크에 부하를 꽤 많이 걸면서, 모든 것을 느리게 만듭니다. 아마도 패키지가 실제로는 크기가 작은 파일들을 많이 담고 있는 폴더라는 점과 연관이 있는 것 같습니다. 타임 머신이 애플의 SMB 확장으로 메타데이터를 불러오지 못하기 때문에 파일 전체를 다운받아 속도가 느려지는 것으로 추측합니다.

이 시점에는 그냥 네트워크 방식의 타임 머신 백업을 포기했습니다. 그냥 외장 하드를 사용하세요: 아무리 멍청해도 쓰기 편하고 복원하기도 쉬우니까요.

댓글