NAS & ODROID/OMV 3 NAS

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Rsync

awesometic 2017. 8. 4. 14:52
반응형

Rsync는 로컬이나 원격의 다른 컴퓨터 시스템에 대해 파일 전송과 동기화 기능을 제공하는 유틸리티입니다. CLI 기반이기 때문에 단순히 명령어 하나 만으로 다른 곳과 파일을 동기화할 수 있어요. 굉장히 편리합니다.

Ubuntu나 다른 리눅스 기준이라면 복잡해 보이는 명령어를 막 입력해야 하겠지만, OMV이기 때문에 간단하게 사용법을 적어보려고 합니다.

참고로 OMV의 경우 활성화 시 자동으로 Rsync가 스케줄링 되는데, 그러니까 매번 특정 시간이나 매 시간, 이런 기준에 따라 자동으로 실행돼서 파일이 목적 위치와 동기화된단 말이죠. 한 번만 여유있는 다른 곳의 하드디스크로 설정해 놓으시면 2차 백업에 대해선 걱정 없으실 겁니다.

NAS를 구축하셨지만 RAID를 구성하지 못하신 분에게는 더 필요한 솔루션인 것 같습니다. 하드디스크는 생각보다 쉽게 고장나요. 또 한 번 고장나면 보통 물리적 고장이기 때문에 전문 장비 없이는 살리기가 어렵습니다. 백업을 항상 중요시하세요. 뭐든지 일이 저질러지기 전에 예방하는 것이 먼저잖아요.

요새는 Rsync에서 파일을 전송할 때 SSH 프로토콜을 이용한다고 하네요. SSH 는 기본적으로 암호화가 목적이기 때문에 Rsnyc로 파일을 전송할 때도 암호화해 보안성이 높아집니다.

여기선 로컬 시스템에서 원격 시스템으로의 NAS 백업을 중점으로 쓰겠습니다.


참고: https://www.joinc.co.kr/w/Site/Tip/Rsync
참고 2: https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh
참고 3: https://forum.openmediavault.org/index.php/Thread/7143-Rsync-two-OMV-machines/?postID=65611#post65611
참고 4: https://forum.openmediavault.org/index.php/Thread/18586-RSYNC-SSH-help-needed/



0. 준비

당연한 말이지만, NAS 백업이기 때문에 NAS에 사용되는 HDD보다 더 큰 HDD가 필요합니다. NAS에서 3TB를 사용한다면, 백업할 장소는 3TB 이상이어야 하죠. 물론 3TB 전부 다 중요하진 않고 거기서 쥐똥만큼인 30GB가 진짜진짜 중요한 데이터다 싶으시면 그 곳만 백업하면 되니 상관 없습니다.

그리고 Rsync로 데이터를 받을 시스템 또한 Rsync가 필요합니다. 하지만 Rsync는 거의 필수 패키지라 대부분의 리눅스 배포판엔 이미 포함되어 있으니 신경 안 쓰셔도 됩니다. 로컬과 원격에서 조금만 손 봐주면 바로 사용하실 수 있습니다.

Rsync는 "나" 가 로컬이고 "상대" 가 원격입니다. 나는 상대에게 파일을 줄 수도 있고, 상대로부터 파일을 받을 수도 있습니다. 또한 나를 기준으로 상대의 파일과 디렉토리들을 동기화시킬 수 있고, 내가 상대의 기준으로 동기화할 수도 있습니다. 다른 시스템에 접속만 하면 다 돼요.

 

1. 로컬 시스템에서 SSH 인증 키 생성

인증할 때 비밀번호를 치는 게 아닌 SSH 키를 사용합니다. 비밀번호를 매번 입력하거나 비밀번호 그대로 저장해 둘 필요가 없어 편리하지만, 그 SSH 인증 키만 있다면 어떤 시스템에서도 해당 계정으로 로그인이 가능하단 단점이 있어요. 잘 간수하셔야 합니다. 이게 싫으면 Rsync 서버를 열어야 하는데, Rsync는 암호화가 적용이 안 되기 때문에 입맛에 맞춰 하시면 되겠습니다. 

먼저 로컬 시스템 OMV 인증 메뉴 - SSH 탭으로 갑니다.

그리고 추가-생성 버튼을 눌러 SSH 인증 키를 하나 생성해줍시다. 묻는 게 별로 없어요, 그냥 설명 간단하게 채워주시면 됩니다.

전 이렇게 했어요. 다 됐습니다.

그리고 새로 생긴 애를 누른 후 편집을 눌러줍니다.

RSA 공개 키라는 부분이 있고, 오른쪽에 파일이랑 종이 그려진 아이콘이 있는데 그 아이콘을 눌러 복사해 둡니다.



2. 원격 시스템 설정

원격 시스템에선 SSH 접속이 필요합니다.

먼저 Rsync가 설치되어 있는 지 확인합니다. 안 되어있으면 설치하도록 바로 install을 때리겠습니다.

sudo apt-get install -y rsync

Rsync가 설치가 되어 있다면, SSH에 접속한 뒤 로컬에서 생성한 공개 키를 ~/.ssh/authorized_keys 경로에 저장합니다.

{공개키} 부분에 방금 복사한 공개키를 입력해주세요.

PUB_KEY='{공개키}'
echo $PUB_KEY > ~/.ssh/authorized_keys

그리고 Rsync로 동기화 할 디렉토리를 생성하겠습니다.

경로는 각자 적절한 위치로 해주세요. 전 외장하드가 연결된 곳으로 하겠습니다.

sudo mkdir /media/hdd/ext1/rsync



3. Rsync 테스트

다시 로컬 시스템(OMV)으로 오겠습니다.  

OMV Rsync 메뉴로 갑시다.

여기서 추가 버튼을 눌러줍니다.

그리고 이런 식으로 채워줍니다. 대상 서버에 {계정@IP}:{경로} 포맷으로 적어주심 됩니다. 그리고 인증을 공개 키로 설정, SSH 포트는 보통 22번일 거고 인증서는 처음에 만든 SSH 인증서를 선택해줍니다. OMV NAS의 파일을 원격 시스템으로 보내는 것이기 때문에 밀어넣기 로 설정하겠습니다.

이번에도 그렇고 OMV 번역이 좀 종종 미묘한데, 그냥 Push 라고 영어로 쓰여 있음 더 좋았을 것 같네요.

해당 Rsync 작업을 반복하고 싶으시면 매 N분/시간/일 마다를 체크해주시고, 시간을 지정해 주시면 됩니다. * 일 경우는 잘 모르겠군요, cron이라면 매분, 매시간, 이런 건데 말이죠. 설정에 1 도 있어서 * 이랑 1 이랑 뭐가 다른진 모르겠네요.

저장/적용 하시면,

이렇게 됩니다.

10분에 한번 동기화를 하는 걸로 설정했는데, 기다리기 미묘하니 대충 테스트 해봅시다.

Samba로 동기화하고자 하는 폴더에 아무 거나 넣어봤습니다.

이런 느낌으로요. 그리고 OMV Rsync 메뉴에서, 위 스크린샷에도 있는 실행 버튼을 눌러 테스트해봤습니다.

되게 error 이런 말 뜨면서 뭐라고 하는데, 막상 확인해 보니

아주 잘 들어가 있네요. 기똥찹니다.

백업하세요.


* 여유가 된다면 우분투 시스템에서 Rsync 하는 법을 포스팅하겠습니다.

반응형