신뢰할 수없는 느린 WAN을 통한 ZFS 동기화 ZFS 복제 또는 rsync?


10

WAN을 통한 오프 사이트 백업 작업을 맡았습니다. 두 스토리지 박스 모두 ZFS를 실행하는 FreeBSD 기반 NAS 박스입니다.

일주일에 한두 번, 15-60 기가의 사진 데이터가 사무실 NAS에 덤프됩니다. 저의 임무는 VERY SLOW DSL 연결 (~ 700Kb / s 업로드)을 사용하여이 데이터를 사이트 외부에서 최대한 안정적으로 얻는 방법을 알아내는 것입니다. 수신 박스의 모양은 30Mb / s, 5Mb / s에서 훨씬 우수합니다.

현장에서 하드 드라이브를 운반하면 데이터가 훨씬 빨리 이동하지만이 경우에는 옵션이 아닙니다.

내 옵션은 다음 중 하나 인 것 같습니다.

  • ssh를 통한 ZFS 증분 전송
  • 재 동기화

rsync는 시간을 존중하는 솔루션이며, 방해가되는 경우 보내기를 재개 할 수있는 가장 중요한 기능이 있습니다. 많은 파일을 반복하고 중복 제거에 대해 알지 못하는 단점이 있습니다.

ZFS 스냅 샷 전송은 약간 적은 데이터를 전송할 수 있습니다 (파일 시스템에 대해 더 많은 정보를 알고 있으며 중복 제거를 수행하고 rsync보다 메타 데이터 변경 사항을 더 효율적으로 패키징 할 수 있음). 복사하기보다 파일 시스템 상태를 올바르게 복제 할 수 있다는 이점이 있습니다. 개별 파일 (디스크를 많이 사용함)

ZFS 복제 성능에 관심이 있습니다 [1] (단, 기사는 1 년 전임). 또한 문제가 발생하면 전송을 다시 시작할 수있는 것에 대해 우려하고 있습니다. 스냅 샷 기능에 포함되지 않은 것 같습니다. 전체 시스템을 완전히 전환해야합니다.

[1] http://wikitech-static.wikimedia.org/articles/z/f/s/Zfs_replication.html

두 옵션 중 하나를 사용하면 지정된 포트를 통해 트래픽을 라우팅 한 다음 라우터의 QOS를 사용하여 트래픽의 우선 순위를 정할 수 있습니다. 양도하는 데 며칠이 걸리기 때문에 각 전송 중에 두 사이트의 사용자에게 큰 부정적인 영향을 피해야합니다.

그래서 ... 그게 내 문제입니다. 좋은 옵션을 놓친 적이 있습니까? 다른 사람이 비슷한 것을 설정 했습니까?


Unison을 고려하십시오 .
— sampablokuper

답변:


8
  1. 하루에 최대 6GB를 전송할 수 있고 (제로 오버 헤드 및 경쟁 트래픽 제로 가정) "주당 한두 번"빈도로 "15-60 기가"를 이동해야하는 경우 15-120으로 작동합니다. 주당 GB 또는 하루에 2-17GB입니다. 최대 수요를 계획해야하고 17GB가 이론상 최대 최대 6GB를 훨씬 초과 하므로 매우 심각한 대역폭 문제가있을 수 있습니다. 연결을 업그레이드하려면 무엇이 필요합니까? 연결을 업그레이드 할 수없는 경우 일정에 따라 (예 : 매주) 실제 미디어를 우편으로 발송하는 옵션을 고려하십시오.

  2. 대역폭 계산을 좀 더 이해하기 쉽게 할 수 있다고 가정하면 rsync 가 최선의 선택 일 수 있습니다. 중복 제거 인식은 중복성이 높은 데이터 (예 : 가상 머신 이미지)를 복제 할 때 매우 유용하지만 고유 한 디지털 컨텐츠 (오디오, 비디오, 사진)에 대해서는 이점이 거의 없습니다. 동일한 파일의 사본을 실수로 저장했습니다.


가용 대역폭을 사용할 수 있다고 생각하며 대부분의 데이터 덤프는 범위의 작은 끝을 향합니다. 실제로 지난 한 달 동안의 데이터로 판단하면 하루 평균 약 2-3 기가 될 것입니다. 즉시 복제가 필요하지 않습니다.
— Paul McMillan

그렇습니다. 실제 미디어를 우편으로 보내는 것이 훨씬 낫습니다. 옵션이기를 바랍니다.
— Paul McMillan

중복 제거에 대한 좋은 지적. 복사되는 내용의 대부분은 복제되지 않습니다. 사용자는 그다지 밀도가 없습니다.
— Paul McMillan

1
내가 추가 할 유일한 것은 아마도 rsync를 사용하지 않는 것입니다. 동기화 프로세스가 아닌 전송 프로세스로 사용했기 때문에 rsync의 속도가 느려졌습니다. 그런 다음 기존 데이터의 대부분이 변경되지 않았으며 새 데이터 만 복사하면된다는 것을 깨달았습니다. 새 파일에만 cp를 사용했는데 훨씬 빨랐습니다. 변경된 파일이 있거나 파일의 일부만있는 경우 rsync를 사용합니다. 따라서 새 파일을 분리하고 재개 가능한 전송 방법을 선택하는 것이 좋습니다. 또한 압축은 CPU 및 RAM / 대역폭 절충 (양쪽 끝)입니다.
— Scott McClenning

흠 ... 올바른 구성으로 rsync를 비교적 빠르게 진행할 수 있다는 것을 읽었습니다. 얼마나 많은 최적화를 시도 했습니까?
— Paul McMillan

13

조사를 마친 후에 스냅 샷을 보내는 것이 옳다고 생각합니다. ZFS SEND및 RECEIVE명령을 bzip2로 파이프 한 다음 해당 파일을 다른 시스템으로 재 동기화 할 수 있습니다.

내가 사용한 소스는 다음과 같습니다.

게시 된 복제 스크립트가있는 게시물을 찾지 못했지만 백업 스크립트 를 게시 한 사람을 찾았습니다 . 즉, 나는 그것을 이해하지 못하여 정크 일 수 있습니다.

많은 웹 사이트에서이 작업을 자주 수행하기 위해 크론 작업을 설정하는 것에 대해 이야기했습니다. 이 경우, 오프 사이트 데이터가 최신 상태이므로 대역폭과 사용자에게 미치는 영향을 줄이면서 복제 / 백업 할 수 있으며 재난 복구 기능이 좋습니다. (시작할 때 데이터의 초기 청크 후에)입니다.

다시 말하지만, 난 당신이 사용하는 많은 이점이있을 것 같다 스냅 샷을 보내는 올바른 생각이 있다고 생각 SEND/을 RECEIVE.

편집 : 방금 / 사용을 지원 하고 rsync에 대해 이야기 할 수 있는 video1 video2 를 보았습니다 ( 3m49에서 시작). Ben Rockwood가 연사였으며 여기에 그의 블로그 링크가 있습니다.SENDRECEIVE


1
rsync의 사용은 실제 파일 확산이 아닌 일시 중지 / 다시 시작 기능으로 제한됩니다. 이는 파일 시스템 자체 (및 생성 된 변경 파일)가 rsync보다 더 잘 알고 있기 때문에 의미가 있습니다.
— Paul McMillan

추가 참고 사항 : gzip 및 bzip을 현대적으로 빠르게 대체하는 ZSTD는 다중 스레드 및 20 개 이상의 압축 수준을 지원합니다. 또한 '적응 압축'이라는 옵션 기능이 있습니다. 이 모드에서는 시간을 절약하기 위해 가능한 한 많은 압축을 수행하면서 네트워크 파이프를 가득 채우는 데 필요한만큼 압축 수준이 자동으로 조정됩니다. 이렇게하면 너무 많은 압축을 수행하여 병목 현상이 발생하거나 네트워크 속도가 너무 느려 압축을 놓칠 수 없습니다.
— Allan Jude

2

백업의 목적은 무엇이며 어떻게 액세스해야합니까?

백업이 주로 재해 복구 용인 경우 파일 시스템을 마지막 증분 시점의 상태로 되돌릴 수 있으므로 ZFS 스냅 샷이 바람직 할 수 있습니다.

그러나 백업에서 실수로 삭제되었거나 손상된 파일에 대한 액세스 권한을 사용자에게 제공해야하는 경우 rsync가 더 나은 옵션 일 수 있습니다. 최종 사용자는 스냅 샷의 개념을 이해하지 못하거나 NAS가 최종 사용자에게 이전 스냅 샷에 대한 액세스 권한을 제공하지 않을 수도 있습니다. 두 경우 모두 rsync를 사용하여 파일 시스템을 통해 사용자가 쉽게 액세스 할 수있는 백업을 제공 할 수 있습니다.

rsync를 사용하면 --backup 플래그를 사용하여 변경된 파일의 백업을 보존 할 수 있으며 --suffix 플래그를 사용하면 이전 버전의 파일 이름을 바꾸는 방법을 제어 할 수 있습니다. 따라서 이전 버전의 파일과 같은 날짜가있는 백업을 쉽게 만들 수 있습니다.

file_1.jpg
file_1.jpg.20101012
file_1.jpg.20101008
etc.

이 명령을 find 명령이 포함 된 cronjob과 쉽게 결합하여 필요에 따라 이전 파일을 제거 할 수 있습니다.

두 솔루션 모두 파일이 백업으로 작동하기에 충분한 메타 정보를 보존 할 수 있어야합니다 (rsync는 --perms, --owner 등 플래그를 제공함). rsync를 사용하여 데이터 센터간에 많은 양의 데이터를 백업하고 설정에 매우 만족합니다.


2

ZFS는 '재개 가능한 전송'기능을 제공 받아 올해 3 월 경에 중단 된 복제를 계속할 수 있습니다. 이 기능은 Matt Ahrens와 다른 사람들에 의해 완성되었으며 곧 업스트림에 출시 될 예정입니다.


'재개 가능한 전송'은 꽤 오랫동안 OpenZFS (FreeBSD, Linux, MacOS 등)에있었습니다. 또한 '압축 전송'기능도 있습니다.이 기능은 복제 스트림의 일부로 데이터가 디스크에있는 그대로 압축 상태를 유지합니다.
— Allan Jude

0

아마도 WAN 압축 장치가 해결책이 될까요? 우리는 Riverbed를 사용하고 있으며 매우 만족합니다 (예 : NetApp SnapMirror는 최대 80-90 %까지 압축률이 높음)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.