Rsync 속도 높이기 - Rsync sogdo nop-igi

ª���� �ϼ��� �����ϰ�.

Rsync 속도 높이기 - Rsync sogdo nop-igi
����Ȳ���� 2015-02

HBA �� ���� �ƴұ� ���� �غ��ϴ�..

õ��õoo�롦 2015-02

�ڹ��ڴ��Դϴ�.

zfs ���� �������� ������ ���� ������ zfs �� ������ �����ϱ���. incremental �� �������� �����ϸ� ���� ������ ���븸ŭ�� ���۵Ǵ� �� �����ϴ�.

ssh �� �̿��ؼ� �����ϴµ� �ӵ��� ����� �� ������...������ ���븸ŭ�� ���۵Ǵ� �����ؾ��ϴ� �ѷ��� �������� ������ �ְڱ���.

�׽�Ʈ�� �� �� �غ��߰ڽ��ϴ�.

ITES 2015-02

���� �ɼ�(-z)�� ���̳���?
��������� ���θ��� 1Gbps�ε� rsync�� �ϸ� �� ���;� 50Mbps �������󱸿�...
�׷��� z �ɼ��� ���� �⺻ 600Mbps�� �����׿�.
Ȥ�ø𸣴� �ɼ�Ȯ�� �ѹ� �غ�����.

기존 rsync 사용할 경우 

test/a/test.avi

    785,401,576  43%  80.21MB/s    0:00:08

이정도 속도가 나왔는데

-e "ssh -T -c arcfour -o Compression=no -x"

위 옵션을 추가해서 복사를 할경우

test/a/test.avi

  1,563,494,400 100%  140.53MB/s    0:00:10 

최대 210 까지도 나온다.

- 우선 rsync 버전을 올려준다.

# wget http://pkgs.repoforge.org/rsync/rsync-3.1.1-1.el6.rfx.x86_64.rpm

# rpm -Uvh rsync-3.1.1-1.el6.rfx.x86_64.rpm

- 옵션을 넣어서 rsync 구동

# rsync -aHAXxv -e "ssh -T -c arcfour -o Compression=no -x" --ignore-errors --stats --progress /data/ /data/

안녕하세요. 사이트의 서버를 한두번 옮기는데 용량이 크니

시간이 엄청걸리더라구요. 따로 백업은 하지 않고 백업파일 또한 없이

100기가 가량 되는것 같습니다. 대략 한 10시간 정도??

제가 이전하는 방식은 이렇습니다.

0 . nginx, php 스톱 (사이트 접속중지)

1. 디비 풀백업

2. 디비풀백업 sql 파일+사이트 전체파일 tar.gz 압축 (대략 5~6시간?)

3. rsync -avz [email protected] 명령어로 전체압축한 파일을 rsync로 이전할 서버에 보냅니다. (대략 3~4시간?)

4. 넘겨받은 tar.gz 압축파일을 풉니다. (대략 1~2시간)

이렇게 두어번 옮기다보니 앞으로 이전할 엄두가 안 납니다.

제가 궁금한것은 이렇습니다.

1. rsync로 그냥 압축없이 전체파일을 보내면 속도가 단축되는지?

2. 속도가 더 단축된다면 수십만개의 파일을 이동하게 되는데 누락걱정은 안해도 되는지?

3. rsync로 보내는 방법 말고 scp??인가 그거나 다른 더 빨리 파일을 서버대서버로 이동시키는 방법이 있는지 입니다.

ps ... 백업을 미리미리 해두면 좋은데 증분백업인가?? 그걸 설정하다가

사이트를 통째로 날려먹은적이 있어서 서너달에 한번씩 통백업을 하고있습니다(-_-);;;

갑자기 rsync로 파일 갯수에 따른 전송 시간이 궁금해졌다.


물론 파일이 많으면 눈에 띄겠지만... 궁금하다. 

(덮어씌기는 안하고 무조건 새파일로만)

테스트 1. 1GB 짜리 1개 파일 전송

receiving incremental file list

1G

sent 30 bytes  received 1073872969 bytes  102273618.95 bytes/sec

total size is 1073741824  speedup is 1.00

real    0m9.587s

user    0m7.625s

sys     0m3.158s

테스트 2. 1GB 짜리 5개 파일 전송

receiving incremental file list

1G

1G_1

1G_2

1G_3

1G_4

sent 106 bytes  received 5369364746 bytes  115470211.87 bytes/sec

total size is 5368709120  speedup is 1.00

real    0m46.234s

user    0m38.213s

sys     0m16.360s

테스트 3. 10GB 짜리 1개 파일 전송

receiving incremental file list

10G

sent 30 bytes  received 10738729034 bytes  114852717.26 bytes/sec

total size is 10737418240  speedup is 1.00

real    1m32.456s

user    1m15.784s

sys     0m32.694s

테스트 4. 1M 짜리 1024개 파일 전송

1M_999

sent 19467 bytes  received 1073920415 bytes  102279988.76 bytes/sec

total size is 1073741824  speedup is 1.00

real    0m10.040s

user    0m7.644s

sys     0m3.206s

테스트 5. 1M 짜리 10240개 파일 전송

1M_9999

sent 194571 bytes  received 10739207487 bytes  112454471.81 bytes/sec

total size is 10737418240  speedup is 1.00

real    1m34.970s

user    1m16.561s

sys     0m32.577s

하다 말았음 

ssh를 통한 rsync로 백업을 하는 서버가 몇개 있다.
ssh 연결은 암호화 + 압축으로 인해 엄청 느린데 몇가지 옵션으로 속도를 20~30% 빠르게 할 수 있음(정말?).

rsync -av --delete -e "ssh -T -c arcfour -o Compression=no -x" user@source:source_dir dest_dir
  • -T: pseudo-tty 끔.
  • -c arcfour: 가장 약한 SSH 암호화 사용. 접속하는 sshd 서버의 sshd_config에도 “Ciphers arcfour”로 설정해야 함.
  • -o Compression=no: 압축 사용 안함.
  • -x: X forwarding 끔.

참고: rsync 옵션으로 –numeric-ds 도 속도 향상에 도움이 됨 (uid/gid 맵핑 끄기).