시놀로지 NAS 간 rsync를 사용한 데이터 동기화 하기

 

안녕하세요. 달소입니다.

 

이번글에서는 시놀로지간 데이터를 이동할때 동기화 시키는 방법입니다.

이번에 서버를 업그레이드하면서 기존 시놀로지 역시 마이그레이션 작업이 필요했는데요.

단순하게 vm을 복제해서 사용하는방법도 있지만 용량이나 파티션 자체가 조금 변경되어서 데이터만 이동하기 위해서 rsync를 사용했습니다.

 

rsync에 대해서는 GPT의 설명을 간단히 듣고 설정부터 동기화까지 진행해보겠습니다.

rsync에 대해서 알려주세요

rsync

 

rsync(리모트 동기화)는 파일과 디렉터리를 원격 시스템 간에 동기화하는 네트워크 프로토콜입니다. 파일을 효율적으로 복사하고 업데이트하며 네트워크 대역폭 사용량을 최소화하는 것으로 유명합니다.

 

작동 방식

 

rsync는 원격 시스템과 로컬 시스템의 파일을 비교하여 두 시스템 간의 차이를 파악합니다. 차이점이 있는 파일만 전송되며, 이미 동일한 파일은 전송되지 않습니다. 이렇게 하면 네트워크 대역폭이 절약됩니다.

 

또한 rsync는 델타 전송을 지원합니다. 즉, 변경된 부분만 전송되며 전체 파일은 전송되지 않습니다. 이를 통해 업데이트를 매우 효율적으로 수행할 수 있습니다.

 

주요 기능

 

  • 파일 및 디렉터리 동기화
  • 파일 변경 사항 추적 및 업데이트
  • 네트워크 대역폭 절약
  • 델타 전송
  • SSH 암호화 지원
  • 스크립팅 및 자동화 옵션

 

사용 사례

 

rsync는 다음과 같은 다양한 용도로 사용됩니다.

 

  • 서버 간 파일 백업
  • 원격 시스템 간 파일 공유
  • 웹 서버에서 파일을 미러링
  • 데이터베이스 파일 동기화
  • 소프트웨어 배포

 

명령 구문

 

기본 rsync 명령 구문은 다음과 같습니다.

 

```

rsync [옵션] <소스> <대상>

```

 

예를 들어, 다음 명령은 로컬 디렉터리 /home/user/docs에 있는 파일을 원격 서버의 /var/www/docs 디렉터리에 동기화합니다.

 

```

rsync -avz /home/user/docs/ remote_server:/var/www/docs/

```

 

옵션

 

rsync에는 다양한 옵션이 있으며, 가장 일반적으로 사용되는 옵션은 다음과 같습니다.

 

  • -a: 아카이브 모드(권한, 시간 소인, 심볼릭 링크 포함)
  • -v: 상세 모드(전송 중 진행 상황 표시)
  • -z: 압축 사용(네트워크 대역폭 절약)
  • --delete: 원격 시스템에서 삭제된 로컬 파일 삭제
  • --exclude: 동기화에서 제외할 파일 또는 디렉터리
  • --dry-run: 동기화를 시뮬레이션하지만 실제로 파일은 전송하지 않음

 

보안

 

rsync는 SSH 암호화를 통해 보안 연결을 지원합니다. 이를 통해 파일이 네트워크에서 안전하게 전송될 수 있습니다.

 

장점

 

rsync의 주요 장점은 다음과 같습니다.

 

  • 효율성
  • 네트워크 대역폭 최소화
  • 보안성
  • 스크립팅 및 자동화 가능성
  • 다양한 플랫폼에서 사용 가능

 

결론

 

rsync는 파일과 디렉터리를 효율적으로 동기화하는 강력하고 유연한 도구입니다. 뛰어난 성능, 보안성, 사용의 편의성으로 인해 시스템 관리자와 개발자 모두에게 널리 사용됩니다.

 

rsync 활성화하기

제어판 -> 파일서비스 -> rsync로 가서 서비스를 활성활 시켜줄 수 있습니다.

여기서는 1번서버 2번서버 모두 활성화가 필요합니다.

 

rsync 스케줄 생성하기

스케줄의 경우 동기화하고싶은 서버(데이터가 있는)에서 설정해주시면됩니다.

여기서는 1번서버 -> 2번서버로 데이터를 동기화시켜줄것이기때문에 1번으로 설정해줬습니다.

 

제어판 -> 파일 서비스 -> 고급 -> 공유 폴더 동기화에서 작업 목록을 선택합니다.

 

동기화 작업을 생성합니다.

 

 

 

그리고 동기화할 공유폴더를 선택하는데요.

아래 주의사항에도 있듯이 같은 이름의 공유폴더가 있다면 해당 공유폴더의 이름뒤에 _1으로 붙습니다.

 

아래 내용도 주의해주세요.

그다음은 동기화 설정을 위한 인증정보와 옵션을 선택합니다.

각각의 내용을 잘 확인 후 선택해주시면 됩니다.

 

 

다 선택후에는 연결 테스트를 해주시면됩니다.

 

 

 

테스트가 성공되면 다음을 눌러서 작업을 마저 생성해줍니다.

 

task가생성되면 스케줄대로 동기화를 시작합니다.

 

 

저같은 경우 압축시 동기화를 사용했는데 이경우에는 CPU 사용량이 좀 됩니다.

 

 

 

시간이 지나면 하나씩 동기화 되고있는걸 2번서버에서도 확인할 수 있습니다.