메뉴 건너뛰기

Karma's Place

로그인하지 않고 댓글을 달 수 있습니다. 하지만 본사이트의 취지에 맞지않는 댓글은 예고없이 삭제될 수 있습니다.
조회 수 332 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

홈페이지 트래픽을 분산시키기위해서 이미지서버들을 많이 설치한다.

https://blog.lael.be/post/7605

라엘님의 블로그에 보면 자세히 설명되어있고 설치도 가능하다.

이 방법은 캐시를 사용하기 때문에 요청이 들어오면 화일을 서버로부터 넘겨받아서 캐시서버에 저장하고 뿌려주는 기능을 한다.

이경우는 요청이 없으면 저장이 되지 않기 때문에 백업의 기능을 수행하는데는 무리가 있다.

내가 사용하는 lsyncd의 경우에는 실시간으로 데이터를 복사하기 때문에 서버의 원본과 동일본을 유지하기 때문에 백업기능까지 수행할 수 있다.

다만 대량의 이미지와 화일을 저장해야하기 때문에 디스크 공간이 넉넉한 서버가 하나 있어야한다. 유료서버를 사용하는 경우 디스크용량과 트래픽의 이중부담이 있으니 쉬운 선택은 아니다.

내경우 버리는 노트북에 리눅스를 깔고 가정용 인터넷의 공유기 뒤에 물려서 도메인을 걸어서 사용하고 있다.

https://soonj.net/relfeed/369359 참조

 

실제 이방법은 네트워크 비용도 추가로 들지 않고 관리도 용이하다.

일반 HDD를 사용해도 되지만 반응속도를 빠르게 하기 위해서는 SSD를 추천하다.

버리는 노트북을 당근에서 5만원에 구입해서 놀고 있던 500G SSD를 장착해서 수년째 아무런 문제 없이 사용하고 있다. 

 

기존의 rsync는 클라이언트에서 서버에 화일을 요청해서 가져가는 방식이라면

lsyncd는 서버에서 클라이언트인 백업서버로 화일을 보내는 것이 큰 차이점이라 할 수 있다.

 

서버설정부터 시작하자.

sudo dnf install -y lsyncd

sudo systemctl --now enable lsyncd.service

 

설치가 끝나면 sudo vi /etc/lsyncd.conf 로 설정을 잡아주면 된다.

하지만 설정을 시작하기 전에 먼저 해결해야하는 문제가 하나있다.

key를 이용한 SSH로그인이다.


먼저 ssh key를 생성하자.

roort# ssh-keygen -t rsa

실행되면 엔터만 3번 쳐주면 된다.

/root/.ssh//id_rsa.pub 에 보면 키가 생성되어 있을 것이다.

이키를 복사해서 백업서버의 /root/.ssh/authorized_keys 에 입력해주면 된다.

 

더 간단한 방법은

ssh-copy-id -i ~/.ssh/id_rsa.pub root@백업서버주소 -p 22

로 입력이 가능하다.

이경우 서버에 root 로그인이 가능해야하고 처음 접속인 만큼 비밀번호를 입력해주면

/root/.ssh/authorized_keys 에 생성된 키가 자동으로 입력된다.

 

먼저 ssh로 백업서버에 key접속이 잘 되는지 확인하자

ssh root@서버 -p 22
패스워드를 물어보지 않고 바로 로그인이 된다면 성공!!

 

 

클라이언트인 백업서버로 가서 설정을 하자.

클라이언트에는 rsyncd가 동작하고 있어야한다.

sudo dnf install rsync-daemon

sudo systemctl start rsyncd

sudo systemctl enable rsyncd.service

 

별도로 /etc/rsyncd.conf는 건드릴 필요 없다.

다만 데이터를 저장할 폴더를 만들로 퍼미션을 조정해줘야하고 key를 생성해서 패스워드 없이 접속이 가능하게 만들어줘야한다.

특정폴더에 권한을 가진 사용자로 해도 되지만

내경우 워낙 많은 여러종류의 데이터들을 바로바로 이용하게 하기 위해서 root 권한으로 실행을 했다.

 

다시 서버로 돌아와서

 

 

이제 본격적으로 서버의 lsyncd를 설정해보자

sudo vi /etc/lsyncd.conf

----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync, but executing moves through on the target.
--
-- For more examples, see /usr/share/doc/lsyncd*/examples/
--
-- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd-status.log",
        statusInterval = 20
    }

sync {
    default.rsync,
    source="/home/workingfiles/ServerWorkingfile/attach",
    target="1번백업서버주소:/var/backup/ServerWorkingfile/attach",
    delay = 1,
    rsync = {
        compress = true,
        acls = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" }
}
sync {
    default.rsync,
    source="/home/workingfiles/ServerWorkingfile/attach",
    target="2번백업서버주소:/var/backup/ServerWorkingfile/attach",
    delay = 1,
    rsync = {
        compress = true,
        acls = true,
        verbose = true,
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" }
}

 

위의 내용처럼 여러개의 서버에 동시로 데이터를 보낼수 있다.

ssh를 이용한 rsync로 거의 동시에 화일을 복사해서 동기화가 가능하다.

 

서버의 데이터폴더인 /home/workingfiles/ServerWorkingfile/attach 에 화일을 생성해보자

touch test

ls 

binaries  chunks  filebox  images  menu_button  site_image  test  textyle  xeicon

 

설정이 정상적으로 동작하고 있다면 백업서버의 데이터폴더에도

binaries  chunks  filebox  images  menu_button  site_image  test  textyle  xeicon

처럼 test라는 화일이 생겨날 것이다.

 

만약 정상적으로 동작하지 않는다면 로그화일을 잘 뒤져보고 원인을 찾는 것이 좋다.

tail -f /var/log/lsyncd/lsyncd.log

어지간한 에러는 쉽게 찾을 수 있다.

경험상 대개의 경우 ssh key나 rsync 퍼미션과 관련이 있거나 폴더를 잘못 입력한 경우가 대부분 이었다.

 

정성적으로 동작한다면 서버에서 이미지가 업로드되거나 변경되면 백업서버에도 거의 실시간으로 변경된다.

 

그럼 행운을!!!!!

?

List of Articles
번호 분류 제목 날짜 조회 수
53 Rhymix & XE Imagick을 짝사랑?? 2023.07.05 112
52 기타등등 Galkuri class의 SSL 대응 2023.05.19 107
51 서버 인터넷 PHP 8.0에 Geoip 설치하기 file 2023.05.04 121
50 기타등등 카르마의 4중 백업 : 리눅스서버와 윈도우 PC간의 교차백업 file 2023.04.27 130
» 기타등등 카르마의 4중 백업 : lsyncd를 이용한 동기화 2023.04.27 332
48 기타등등 카르마의 4중 백업 : rsync를 이용한 원격백업 2023.04.27 54
47 기타등등 카르마의 4중 백업 : 데이터베이스 백업 스크립트 2023.04.27 32
46 서버 인터넷 가정이나 사무실의 홈서버를 위한 공유기 세팅 file 2023.04.20 74
45 서버 인터넷 록키 리눅스 9.1에서 apache, mysql, PHP 설치 file 2023.04.06 147
44 기타등등 인터넷 장애와 Dual Wan file 2021.10.25 1187
43 서버 인터넷 노트북서버의 장점 1 file 2021.09.27 1280
42 서버 인터넷 노트북 서버 뚜껑을 닫고 사용하자. file 2021.09.23 280
41 기타등등 셔플 file 2021.09.14 198
40 Rhymix & XE 로그인 모달창에서 recaptcha 사용하기 file 2021.09.12 797
39 Rhymix & XE 로그인시 reCAPTCHA 사용하기 file 2021.09.12 445
38 애드온 및 모듈 제작 이미지프로세스 모듈 사용법 1 file 2019.03.25 4821
37 서버 인터넷 Centos PHP5.6에 imagick 설치하기 file 2019.03.23 879
36 기타등등 사진속 GPS 정보의 위험성 2019.03.11 636
35 기타등등 미디어플레이어 애드온 사용법 file 2019.03.11 721
34 서버 인터넷 Github 사용법이 좀처럼 익숙해지지 않네요. file 2018.12.27 1205
계속 검색
Board Pagination Prev 1 2 3 Next
/ 3
위로