2012년 10월 29일 월요일

우분투에서 맥OS 타임머신 서버 설정하기


타임캡슐을 사자니 돈이 아깝고, 백업을 안 하자니 마음이 불안하고, 왠지 우분투를 이용해서 타임머신 백업을 멋지게 처리할 수 있을것 같다는 막연한 생각에 구글링을 좀 했더니 결과가 우르르 쏟아진다.

netatalk 패키지를 이용해서 afp (Apple Filing Protocol) 서비스를 운영하는 방법을 통해 맥에서 우분투 서버의 네트웍 드라이브를 마운트 할 수 있고 이걸 타임머신 디스크로 설정하는 방법이다.

우분투 12.04 LTS x86_64 버전과 Mac OS X Mountain Lion 에서 테스트 했다.


서버 설정

avahi-daemon 과 netatalk 패키지를 설치한다.

$ sudo apt-get install avahi-daemon



afp 에서는 몇가지 UAM (User Authentication Method) 를 지원하는 모양인데, 애플 문서를 보면 DHX2 (Diffie-Hellman Key eXchange 2) 를 사용하도록 권고하고 있다.
DHX2 를 지원하기 위해서는 netatalk 버전 2.2 이상을 사용해야 하는데 글을 쓰는 현재 2.2.1이 기본으로 설치되므로 그냥 설치 ㅇㅇ
$ sudo apt-get install netatalk



필요한 패키지는 다 설치했고, 이제 설정만 하면 된다.
고쳐야 하는 설정 파일은 아래와 같다.

/etc/netatalk/afpd.conf
/etc/netatalk/AppleVolumes.default



/etc/netatalk/afpd.conf 파일에서 afp 서비스에 대한 기본 설정을 해준다.
옵션들에 대한 자세한 설명은 afpd.conf 파일 안에 주석으로 달려있으므로 파일 내용을 참고.

default 옵션은 
# default:
# - -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

이렇게 되어 있는데, UAM list 옵션에는 dhx2만 쓰고 dhx는 사용하지 않을것이니 삭제.
그리고 uam_guest.so 가 포함되어야 한단다. (netatalk 버그때문에..) 이 모듈을 추가하지 않으면 SIGSEGV가 발생하므로 주의!

암호를 저장해두는 취미는 없으니 -nosavepassword 는 남겨두자.

afpd.conf 파일에 다음 내용을 추가.

- -tcp -noddp -uamlist uam_guest.so,uams_dhx2_passwd.so -nosavepassword


/etc/netatalk/AppleVolumes.default 파일에서는 마운트 관련 옵션을 설정한다. 역시 각 옵션에 대한 자세한 설명은 AppleVolumes.default 파일 안에 주석으로 달려 있으므로 파일 내용을 참고.

처음 파일을 열어보면 홈 디렉토리를 디폴트로 열어주는데 난 only 타임머신 백업용으로만 쓸거니까 주석 처리. TM 백업 디스크용으로 사용할 위치 (마운트 포인트)와 디스크 이름, 옵션들을 써주자.

AppleVolumes.default 파일에 다음 내용을 추가.

#~/ "Home Directory"
/path/to/TimeMachineFolder "TM on ubuntu" cnidscheme:dbd options:usedots,upriv,tm volsizelimit:300000 allow:user_account

volsizelimit 은 MiB 값으로, 내 맥북에 달린 SSD가 300G 짜리니까 300G으로 줬다. 주황색 부분은 각자 알아서들...



맥에서는

Finder 에서 Command+K 를 눌러서 서버 연결을 열자 (Finder Menu -> 이동 -> 서버에 연결)

afp://server_ip_address

서버 주소에 이렇게 입력을 하면, 우분투 서버의 계정과 비번을 물어본다. 계정 정보는 아까 AppleVolumes.default 에서 설정한 놈으로 넣으면 된다.


그리고 타임머신 앱을 실행시켜서 백업 디스크로 방금 마운트 한 우분투 서버의 afp 드라이브를 지정하면 끝!

만세!



References: