rsync의 한쪽을 너무 바쁘게 유지하는 것은 무엇입니까?


11

LAN에 데비안 머신이 있는데 다른 서버의 백업 서버 역할을합니다. 4 개의 HDD가 소프트웨어 RAID 5 md 장치, LVM 및 btrfs에 결합되어 있습니다. 백업은 rsync를 사용하여 이루어지며 큰 파일 시스템의 경우 한 시간 이상이 걸립니다. 오랫동안 나는 이것에 대해 할 수있는 일이 거의 없을 것이라고 생각했습니다.

그러나 최근 에는 전송의 양쪽 끝 에서 HDD 활동이 매우 다르다는 것을 알았습니다 . 젠투를 실행하고 주로 ext4를 사용하는 송신 측은 디스크 입출력을 거의 얻지 못했지만 수신 측은 끊임없이 바빴습니다. 대부분의 데이터는 전송간에 변경되지 않으므로 메타 데이터 읽기는 대부분의 데이터를 구성해야한다고 생각합니다. 그러나 btrfs에서 inode를 읽는 것이 ext4에서 동일한 작업을 수행하는 것보다 많은 일이라면 정말 놀랐습니다.

iotop 수신 측에서는 디스크 읽기가 약 1-4MB / s 인 반면 송신 측은 가끔 0.5MB / s 버스트 만 발생했습니다.

내 질문은, 여기에 무슨 일이 일어나고 있는지 설명 할 수 있습니까? 가능하면 문제를 해결하는 방법을 알려주는 것이 좋습니다.

아마도 내가 사용할 수있는 btrfs 튜닝 플래그 또는 이와 유사한 것이있을 수 있습니다. 백업 서버에 스냅 샷 기능이있는 FS가 필요하며 FreeBSD와 ZFS를 사용하려는 시도가 FS와 일치하지 않아서 btrfs에 대한 대안이 거의 없습니다. 따라서 ext4 또는 zfs를 사용하라는 응답은 공표를받을 수 있지만 확인 표시는받지 않습니다.


cjm 에서 요청한대로 사용중인 Rsync 옵션 :

--rsync-path='rsync --fake-super'
--archive               # -rlptgoD
--hard-links            # detect and preserve these
--acls
--xattrs
--sparse
--noatime               # based on patch from samba #7249c1
--delete
--delete-delay
--fuzzy
--human-readable        # size suffixes, base 1000
--stats

뿐만 아니라 한 무리의 -f규칙 일부 파일을 생략합니다.


btrfs의 마운트 옵션은 다음 mount과 같이 보고됩니다 .

rw,nosuid,noexec,noatime,nospace_cache

특히, 여기에는 noatime플래그가 포함 되므로 실제로 일부 파일에 차이가없는 한 어떤 글도 포함되어서는 안됩니다. Kyle Jones답변따라이 정보를 추가했습니다 .


어떤 rsync 옵션을 사용하고 있습니까?
CJM

어둠 속에서 총을 쏴서 디스크에 문제가 있습니까? 패리티 정보에서 누락 된 데이터를 재구성하려고하므로 추가 I / O가 발생할 수 있습니다.
bahamat

@bahamat, smartd 실행 중이며 아무런 문제가 없습니다. mdadm도 이벤트를보고하지 않았습니다.
MvG

어떤 것이 잘못되었는지 말하기는 정말 어렵습니다. 한 가지 예만 레이어간에 불일치 한 블록 크기입니다. 를 진단하기 위해 당신은 가장 좋은 건 같은 것을 사용하는 것 dtrace또는 systemtap시간이 소요되는 곳을 찾을 수 있습니다.
bahamat

@bahamat, 그것은 내가 아직 조사하지 않은 길입니다. 이러한 도구를 사용하여 문제를 진단하는 방법에 대한 답변을 작성할 수 있습니까? 대단 할 것입니다. 시간이 있다면 단계별 지침이 있지만 거친 아이디어와 문서 포인터조차도 도움이 될 것입니다.
MvG

답변:


3

가능한 대답은 원격 파일 시스템이 기본적으로 "atime"옵션으로 마운트된다는 것입니다. 원격 rsync 액세스가 RAID 5로 겪는 쓰기 패널티와 결합 된 모든 것에 대한 액세스 시간 쓰기 (컴퓨팅 패리티는 하나의 디스크에 쓰기 전에 모든 RAID 디스크를 읽는 것을 의미 함)는 원격 쪽의 I / O 확대를 설명 할 수 있습니다.

내가 맞다면 "noatime"옵션으로 원격 파일 시스템을 마운트하여 속도를 높일 수있다.


2
좋은 생각이지만 슬프게도 해결책은 아닙니다. 파일 시스템은 이미 noatime에 마운트되어 있습니다. 마운트는 모든 마운트 옵션 세트를로보고합니다 rw,nosuid,noexec,noatime,nospace_cache.
MvG

1

--fake-super 옵션이 의심됩니다. 그러면 rsync가 모든 메타 데이터 정보를 각 파일의 확장 된 속성에 저장하도록 지시합니다. 그 속성에 액세스하는 것이 느리다고 생각합니다. --fake-super없이 루트로 rsync를 사용하여 테스트 실행을 시도하십시오. 속성이 일치하지 않으므로 동일한 백업을 재사용 할 수 없습니다.


어설 션을 지원하는 문서에 대한 유용한 링크 또는 참조를 포함하도록 답변을 확장하는 것을 고려해야합니다.
HalosGhost

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