RSnapshot 전용 드라이브에 대한 최적의 파일 시스템 유형 및 마운트 옵션

RSnapshot 전용 드라이브에 대한 최적의 파일 시스템 유형 및 마운트 옵션

구성을 위한 백업 드라이브로 사용하고 있는 외부 USB 2 드라이브가 있습니다. 우리는 사용RSnapshot백업을 위해. 스냅샷 관리를 위해 몇 가지 표준 명령을 사용합니다.

  1. rm -rf: 만료된 스냅샷을 삭제합니다.
  2. mv: 오래된 스냅샷을 슬롯 아래로 이동합니다.
  3. cp -al: 마지막 스냅샷을 새 슬롯에 복제합니다.
  4. rsync -a --delete --numeric-ids --relative: 새 스냅샷을 동기화합니다.

아래 로그에서 볼 수 있듯이 대부분의 시간은 rm -rfcp -al단계에 소요됩니다.

[25/Dec/2010:14:00:02] rsnapshot hourly: started
[25/Dec/2010:14:00:02] echo 21012 > /var/run/rsnapshot.pid
[25/Dec/2010:14:00:02] rm -rf /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.4/ /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.3/ /mnt/extdrive/snapshots/hourly.4/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.2/ /mnt/extdrive/snapshots/hourly.3/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.1/ /mnt/extdrive/snapshots/hourly.2/
[25/Dec/2010:14:15:48] cp -al /mnt/extdrive/snapshots/hourly.0 /mnt/extdrive/snapshots/hourly.1
[25/Dec/2010:14:23:32] rsync -a --delete --numeric-ids --relative /etc /mnt/extdrive/snapshots/hourly.0/sm4/
[25/Dec/2010:14:23:52] touch /mnt/extdrive/snapshots/hourly.0/
[25/Dec/2010:14:23:52] rm -f /var/run/rsnapshot.pid
[25/Dec/2010:14:23:52] rsnapshot hourly: completed successfully

내 질문:

  1. 현재 파일 시스템으로 ext4를 사용하고 있습니다. 아마도 이는 Red Hat에서 제공되는 옵션 중 최선의 선택이 아닐 수도 있습니다. 프로세스 속도를 높일 수 있는 권장 사항이 있는 사람이 있나요?

  2. 파티션의 마운트 옵션은 입니다 sync,dirsync 1 2. Rsnapshot에만 사용되므로 이를 최적화할 수 있는 방법이 있습니까? 물론 추론은 크게 감사하겠습니다.

답변1

  1. ext4는 괜찮습니다.

  2. "sync,dirsync" 옵션은 데이터와 메타데이터 업데이트를 동기식으로 수행하는데, 이는 대부분의 워크로드 성능에 큰 부정적인 영향을 미칩니다. 이러한 옵션을 제거하면 성능이 향상될 가능성이 높지만 케이블을 잡아당기기 전에 장치를 마운트 해제해야 한다는 것을 기억해야 합니다. 그렇지 않으면 데이터가 손실될 수 있습니다(아마 이것이 옵션이 처음에 추가된 이유이거나 기본 옵션이 아니거나 어쩌면 배포판이 USB 장치에 수행하는 일종의 특별한 마법일 수도 있습니다.

  3. noatime은 atime 업데이트를 비활성화하여 파일 시스템에 대한 쓰기 양을 줄입니다. rsnapshot을 포함한 거의 모든 애플리케이션에는 atimes가 필요하지 않으므로 이는 완벽하게 안전합니다.

  4. data=writeback은 저널링의 오버헤드를 줄이지만 정전 시 데이터 손실 가능성이 약간 증가합니다. 배포판에 따라 이는 이미 기본값일 수 있습니다.

  5. ext4를 사용하면 저널을 완전히 비활성화하는 것도 가능합니다(커널 2.6.29 기준). 하지만 권장하지는 않습니다. 여기에는 ext4의 다른 모든 개선 사항이 포함되어 있으므로 ext2, fwiw를 사용하는 것보다 더 빠릅니다.

  6. Barrier=0은 충돌 시 데이터 손실 가능성을 높이는 대신 쓰기 성능을 향상시키는 장벽을 비활성화합니다.

답변2

더 많은 스냅샷(예: 9999)을 유지하도록 rsnapshot을 구성하고 crontab을 사용하여 디스크에서 직접 삭제합니다. 그러면 스냅샷의 속도를 더 예측하기 쉬워질 것입니다.

답변3

또한 를 사용하면 수행 --link-dest방법에 대한 계획이 변경되어 cp성능에 큰 영향을 미칠 수 있습니다(기본적으로는 rm을 사용한 hourly.$old다음 소스 rsync에서 동시에 복사 하고 소스에서 동기화하는 데 사용합니다).hourly.1hourly.0

에 대해 더 많은 논의가 있습니다.여기서 대체 기술- 기본적으로 -ing mv hourly.$old hourly.0대신 마지막 시간별 스냅샷을 새 스냅샷으로 회전 하고 from to 를 수행하여 최신 상태로 유지하지만 시도한 적은 없습니다. 회전을 수동으로 수행해야 합니다. 그것을 하기 위해rmcp -aflhourly.1hourly.0rsnapshot

관련 정보