Ubuntu로 NAS 흉내 내기: Samba·NFS·타임머신 백업까지 한 번에
시놀로지 같은 NAS를 사기에는 가격이 부담되지만, 집에 항상 켜 두는 Ubuntu 머신이 하나 있다면 “간이 NAS” 정도는 충분히 흉내 낼 수 있습니다. 저는 몇 년 동안 집에 있는 작은 Ubuntu 박스를 파일 공유와 백업용으로 돌려왔고, 윈도우·다른 리눅스·맥에서 동시에 접속해 쓰는 구성을 계속 유지하고 있습니다. 이 글은 “정식 NAS를 완벽하게 대체한다”기보다는, Ubuntu 한 대로 NAS 비슷한 역할을 하게 만드는 현실적인 방법을 정리한 것입니다.
먼저 어떤 역할을 하게 할지 정리하기
집에서 NAS를 흉내 내려고 할 때 보통 생각하는 용도는 크게 세 가지 정도였습니다.
- 여러 기기에서 공유하는 파일 창고 (사진, 영상, 문서)
- 각 PC·노트북의 백업 목적지
- 맥북을 위한 네트워크 타임머신 백업 대상
이 세 가지를 한꺼번에 다 하더라도, 결국 Ubuntu 입장에서는 “특정 폴더를 네트워크에 적절한 방식으로 공유한다”로 정리됩니다. 저는 처음 세팅할 때부터 폴더를 용도별로 나눴습니다. 예를 들어 다음처럼요.
/srv/nas/shared → 모든 기기에서 공용으로 쓰는 자료 /srv/nas/backup → 각 PC에서 밀어 넣는 백업 데이터 /srv/nas/timemachine → 맥용 타임머신 백업 전용 이렇게 나눠 두면 나중에 백업 정책이나 권한을 따로 관리하기가 훨씬 편했습니다. 실제 디렉터리 이름은 어떤 것을 써도 상관없지만, “공유 목적에 맞게 분리해 둔다”는 원칙만 미리 정해 두면 좋았습니다.
Samba로 윈도우·맥 파일 공유 열기
가장 먼저 체감 효과가 오는 건 Samba입니다. 윈도우 탐색기에서 \\ubuntu-서버이름으로 접속하거나, 맥의 파인더에서 “서버에 연결”로 들어가 공유 폴더를 볼 수 있는 방식입니다.
Samba 패키지 설치와 서비스 활성화는 Ubuntu 기본 저장소에서 할 수 있고, 설치 후에는 /etc/samba/smb.conf 파일에서 공유 폴더를 정의합니다. 아래 예시는 구조를 보여주기 위한 단순화된 예시입니다.
[shared] path = /srv/nas/shared browseable = yes read only = no guest ok = no 실제 운영할 때는 이 공유에 어떤 계정으로 접근할지, 읽기 전용으로 둘지, 외부에서까지 열어둘지 등을 추가로 고려해야 합니다. 저는 집 안에서만 쓸 목적이라도, 공용 계정 하나를 만들어 그 계정으로만 쓰기를 기본 원칙으로 잡았습니다. 예를 들어 nasuser라는 리눅스 계정을 만들어서 공유 디렉터리의 소유자를 그 계정으로 변경하고, Samba에서도 같은 계정을 등록해 사용하는 식입니다. 이렇게 하면서 권한 충돌을 피하는 편이었습니다.
NFS로 리눅스·서버용 공유 열기
Ubuntu만 여러 대가 있을 경우, Samba보다 NFS(Network File System)가 더 자연스러운 선택일 때도 있습니다. NFS는 리눅스·유닉스 계열에서 오래 써 온 방식이라, 다른 리눅스 머신에서 마치 로컬 디렉터리처럼 마운트해 쓸 수 있습니다.
NFS 서버용 패키지를 설치한 뒤, /etc/exports 파일에 다음과 비슷한 규칙을 추가하는 방식이 일반적입니다.
/srv/nas/shared 192.168.0.0/24(rw,sync,no_subtree_check) 이 예시는 “공유 폴더를 192.168.0.x 대역의 클라이언트에게 읽기/쓰기 가능으로 수출한다” 정도의 의미입니다. 실제로 사용할 때는 집 내부 네트워크 대역과 보안 정책에 맞게 IP 범위와 옵션을 조정해야 합니다. Ubuntu에서 NFS 서버를 켜고 나면, 다른 Ubuntu·리눅스에서 다음과 같이 마운트해 쓸 수 있습니다.
sudo mount 서버주소:/srv/nas/shared /mnt/shared 저는 개발용 테스트 서버에서 로그나 빌드 결과물을 이 NFS 공유로 보내 놓고, 메인 PC에서 바로 열어 보는 식으로 자주 썼습니다. NFS는 성능과 편의성이 좋지만, 외부에 그대로 노출하면 위험합니다. 집 안 전용 네트워크에서만 사용하는 것을 전제로 구성을 잡는 편이 안전했습니다.
맥용 네트워크 타임머신 백업 개념 잡기
맥북을 쓰면 자연스럽게 생각나는 게 Time Machine입니다. 예전에는 AFP(Apple Filing Protocol) 기반으로 구성하는 방법이 많이 쓰였고, 지금은 SMB 기반으로 타임머신 대상 볼륨을 만드는 방식도 쓰입니다. 제가 Ubuntu에서 했던 방식은 “타임머신 전용 공유 폴더를 하나 만들고, 그 폴더를 맥에서 네트워크 디스크로 인식하게 한 뒤, 타임머신 대상 디스크로 선택하는 것”이었습니다.
예를 들어 앞에서 만들었던 /srv/nas/timemachine를 타임머신 전용으로 쓰고 싶다면 Samba 설정에서 이 공유에 대해 몇 가지 특별한 옵션을 추가합니다. Samba 버전과 설정 방식에 따라 옵션 이름이나 지원 여부가 다를 수 있기 때문에, 여기서는 “타임머신 전용으로 쓸 별도의 공유를 만들고, 이 공유를 위해 필요한 옵션을 문서와 예제를 참고해 추가한다” 정도로 이해하는 것이 정확합니다.
중요한 점은, 타임머신 백업은 용량을 꽤 많이 사용하고, 백업 파일 구조도 특수하다는 것입니다. 저는 다음과 같은 원칙을 잡았습니다.
- 타임머신용 폴더는 일반 공유와 디스크를 분리하거나, 최소한 디렉터리로는 확실히 분리해 둔다.
- 타임머신 전용 계정 또는 별도 암호를 사용해 접근을 제한한다.
- 실제 운영 전에, 여유 있는 테스트 디스크에서 한 번 시험해 본 뒤 본격적으로 쓰기 시작한다.
타임머신이 “잘 돌아간다”는 느낌이 들기까지는 며칠 정도 지켜보는 게 좋았습니다. 간헐적으로 에러가 나는지, 백업에서 실제로 복원이 되는지, 디스크 용량은 예상대로 줄어드는지 등을 한 번씩 확인했습니다. 이 부분은 맥OS 버전, Samba 버전, 네트워크 환경에 따라 결과가 달라질 수 있기 때문에, “Ubuntu에서 항상 동일하게 된다”라고 단정하기보다는, “가능한 방법이 있고, 내 환경에서 실험이 필요하다” 정도로 이해하는 게 현실적이었습니다.
계정·권한·백업을 같이 생각해 두기
Ubuntu로 NAS를 흉내 내다 보면, 결국 파일이 한곳에 쌓입니다. 여기서 중요한 건 “누가 어디까지 볼 수 있는지”와 “이 저장소 자체도 백업이 되는지”입니다.
저는 최소한 이런 기준으로 정리했습니다.
- 공용 자료는
nasuser같은 전용 계정 하나로만 접근하게 만들기 - 개인 백업 폴더는 사용자별 계정을 따로 만들고, 홈 디렉터리와 권한을 분리하기
- Ubuntu NAS의 디스크 자체를 또 다른 외장 디스크나 클라우드로 주기적으로 복제하기
마지막 항목은 특히 중요했습니다. NAS 흉내 내는 Ubuntu 서버가 고장나면, 그 안에 있던 자료는 그대로 날아갈 수 있습니다. 그래서 저는 “Ubuntu NAS = 중앙 저장소이자 동시에 또 하나의 백업” 정도로 생각하고, 정말 중요한 데이터는 여기에만 두지 않고 다른 곳에도 한 벌 더 두는 식으로 운용했습니다.
정리하며: 정식 NAS는 아니지만, 일상 용도로는 충분한 수준
Ubuntu로 NAS를 흉내 낸다는 건, 사실 거창한 기술이라기보다는 공유 폴더 설계 + Samba/NFS 설정 + 권한과 백업 정리의 조합입니다. 윈도우·맥·리눅스가 뒤섞인 환경에서도, 구조만 한 번 잡아두면 “집 안 어디서든 파일을 꺼내 쓰고, 각 기기에서 백업을 밀어 넣는 중앙 저장소” 정도 역할은 충분히 해낼 수 있었습니다.
물론 전용 NAS 장비처럼 전용 UI와 플러그인 생태계까지 기대하긴 어렵습니다. 대신 이미 가지고 있는 Ubuntu 머신 한 대로 시작할 수 있고, 필요할 때마다 Samba·NFS·백업 스크립트를 조금씩 발전시키는 재미가 있습니다. 만약 집에 항상 켜져 있는 Ubuntu PC나 노트북이 있다면, 이 글의 흐름대로 공유 폴더를 하나씩 열어 보면서, “내 환경에서 가능한 NAS 흉내”를 만들어 보는 것도 충분히 해볼 만한 선택지라고 생각합니다.
댓글
댓글 쓰기