본문 바로가기

Compute™/Linux

[Linux] lsync 실시간 동기화 설정하기

반응형
SMALL


[Linux] lsync 실시간 동기화 설정하기


Linux Server 운영 시
실시간으로 파일시스템을 동기화 할 수 있는
Lsyncd (time synchronization program for Linux) 을 소개 합니다.


※ Test 환경 : CentOS 6
※ 동작 원리 : ① 커널의 inotify에서 파일시스템 변경 이벤트 체크
                  ② 이벤트 발생 시 xinted 슈퍼데몬으로 rsync를 호출하여 변경 이벤트가 발생한 파일 동기화 
                  ※ 데이터를 동기화할 대상 서버에는 xinetd + rsync 기동
                  ※ 원본데이터가 있는 서버 lsyncd 기동


사전작업 1 : xinetd 패키지 설치 (대상 서버)

# rpm -qa |grep xinetd        // 패키지 설치여부 확인
# yum install -y xinetd        // 패키지 설치



사전작업  2-1 : rsync 패키지 설치 (대상 서버)

# rpm -qa |grep rsync        // 패키지 설치여부 확인      
# yum install -y rsync        // 패키지 설치

# vi /etc/xinetd.d/rsync      // xinetd 데몬에 의해 rsync가 기동되도록 수정

disable = yes 를 disable = no 로 수정



사전작업 2-2 : rsync 동기화 설정 (대상 서버)

# vi /etc/rsync.conf          // 원본 데이터 정의 

- 동기화할 원본데이터가 있는 로컬 또는 대상 서버에 동기화 대상을 정의한다

path : 원본 파일시스템 지정

# service xinetd restart       // xinetd 데몬 재시작




사전작업 3 : epel (Extra Packages for Enterprise Linux 6) 패키지 설치 및 Repository 등록 (원본 서버)
※ lsyncd 를 구동할 서버에서 작업

lsync 패키지를 설치하기 위해 EPEL Repository 를 등록여부를 확인한다.
먼저 EPEL 패키지 또는 epel.repo 등록 여부 확인 후 아래와 같이 등록을 해준다 

# rpm -qa |grep epel       // 패키지 설치여부 확인

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

또는 yum install -y epel-release

# yum repolist          // yum에 epel repo 등록 확인



lsyncd 설치하기 (원본 서버)

yum install -y lsyncd



lsyncd  실시간 동기화 설정  (원본 서버)

# vi /etc/lsyncd.conf          // 동기화 설정

- 원본데이터가 있는 서버에서 수행

settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd-status.log", statusInterval = 20 } sync { default.rsync, source="/home", target="192.168.2.91:/data", delay = 1, rsync = { compress = true, acls = true, verbose = true, rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" } }

* settings 옵션
- logfile : lsync 파일 동기화 로그 파일 설정
- statusFile : status 체크 파일 설정
- statusInterval : status 체크 주기 설정

* sync 옵션
- source : 원본데이터 경로
- target :  동기화로 전송 할 경로
- delay :  동기화 딜레이 설정 (1초만 설정해도 반응속도는 매우 빠르다)

# service lsyncd start                           // lsyncd 서비스 시작
# tail -f /var/log/lsyncd/lsyncd.log          // lsyncd 동기화 로그 모니터링

ex) touch bbb             // 원본데이터 경로에 임의의 파일 생성
아래와 같이 바로 적용되는 것을 볼 수 있음.



반응형
LIST