![수십만 개의 작은 파일이 있는 서버 간 실시간 파일 동기화](https://rvso.com/image/697005/%EC%88%98%EC%8B%AD%EB%A7%8C%20%EA%B0%9C%EC%9D%98%20%EC%9E%91%EC%9D%80%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EC%84%9C%EB%B2%84%20%EA%B0%84%20%EC%8B%A4%EC%8B%9C%EA%B0%84%20%ED%8C%8C%EC%9D%BC%20%EB%8F%99%EA%B8%B0%ED%99%94.png)
데이터베이스뿐만 아니라 파일도 복제할 CentOS 7 서버 두 대를 만드는 작업을 맡겼습니다. 이제 내 문제는 몇 Kbyte에서 ~1 Gbyte까지 다양한 크기의 파일이 수백만 개는 아니더라도 아마도 수십만 개가 있을 것이라는 점입니다.
나는 다음과 같은 내용을 읽었습니다.
- 증가
- lysncd
- 자식-별관
- ChironFS
이제 귀하가 그것을 사용하고 있거나 현재 사용하고 있다면 이들 중 하나에 대한 귀하의 경험을 묻고 싶습니다. 복사 및 삭제와 관련된 파일 변경 성능은 어떻습니까? 내 경험에 따르면 작은 파일이 많으면 속도가 그리 빠르지 않기 때문에 rsync를 사용하는 것이 매우 두렵습니다. 따라서 실시간 파일 복제에 실제로 사용할 수 없습니다. 아니면 내가 틀렸나요? 내가 틀렸다는 것을 증명해주세요. :)
아니면 파일 서버로 세 번째와 네 번째 서버가 필요할 수도 있나요? 그렇다면 질문은 여전히 남아 있습니다. 두 서버 간에 파일을 실시간으로 복제하는 방법은 무엇입니까?
건배!
답변1
서버가 동일한 LAN에 있는 경우 클러스터 파일 시스템(예: GlusterFS) 또는 공유 스토리지 솔루션(예: NFS를 통해)이 더 나은 선택입니다.
서버가 다른 위치에 있고 WAN 연결만 있는 경우 위의 솔루션이 제대로 작동하지 않습니다. 이 경우에는단방향 복제만 필요한 경우(예: 활성 서버에서 백업 서버로)는 lsyncd
좋은 솔루션입니다. 또 다른 해결책은 입니다 csync2
. 마지막으로 또 다른 가능성은 사용하는 것입니다 DRBD + DRBD Proxy
(프록시 구성 요소는 상용 플러그인이라는 점에 유의하십시오).
마지막으로, 서버에 WAN 연결만 있고양방향 복제가 필요합니다(즉, 두 서버가 동시에 활성화되어 있음) 기본적으로 만능 해결책은 존재하지 않습니다. 몇 가지 가능성을 나열하겠지만 유사한 설정을 권장하지는 않습니다.
unison
실시간 플러그인으로psync
, 비슷한 문제를 해결하기 위해 정확히 작성했습니다(그러나 이 글에는 고유한 특징이 있다는 점에 유의하시기 바랍니다.지원 없음그것을 위해)syncthing
실시간 플러그인 사용(그러나 상당한 제한이 있습니다. 즉, ACL이나 파일 소유자/그룹을 보존하지 않습니다)
답변2
저는 ZFS 파일 시스템을 사용하고 zfs 보내기/받기 프레임워크를 사용하여 블록 수준 복제를 활용합니다.
나는 다음과 같은 편리한 스크립트를 사용합니다.합창체요구 사항에 따라 15초에서 매시간 또는 매일 간격으로 파일 시스템의 정기적인 동기화를 수행합니다.
블록 수준 복제는 귀하가 말하는 데이터 세트에 대해 rsync보다 더 깨끗하고 정확할 것입니다.
답변3
내 경험에 따르면 분산 파일 시스템은 애플리케이션에 쉬운 복제 메커니즘을 제공합니다. 그러나 특히 작은 파일이 너무 많아 디렉터리가 매우 커지면 성능이 저하됩니다. 이는 여러 위치/컴퓨터에서 잠금/공유 액세스를 처리해야 하기 때문에 예상됩니다.
Rsync와 유사한 방식은 경우에 따라 약간의 지연이 있는 허용 가능한 복제를 제공합니다. 복제된 폴더를 읽고 쓰는 동안에는 애플리케이션 성능에 영향을 미치지 않습니다.
더 나은 솔루션은 하나의 서버에서 액세스할 수 있는 공유 스토리지(저렴한 경우)를 제공하는 것입니다. 다른 대기 서버는 첫 번째 서버가 다운되면 공유 폴더를 마운트할 준비가 되어 있습니다. 서버 간에 데이터를 복제할 필요가 없습니다.
답변4
아이디어를 응원합니다. 나는 그것들을 모두 확인하고 테스트했으며 lsyncd를 고수하고 있습니다.
원인:
- 매우 쉬운 설치
- 매우 쉬운 설정
- 단방향 및 양방향 복제를 모두 지원합니다.