cách nhanh nhất và đáng tin cậy nhất để chuyển nhiều tập tin là gì?


10

Tôi đang cố gắng chuyển khoảng 100 nghìn tệp tổng cộng 90gb. Hiện tại tôi đang sử dụng rsync daemon nhưng tốc độ chậm 3,4mb / giây và tôi cần thực hiện việc này nhiều lần. Tôi đang tự hỏi những tùy chọn nào tôi có sẽ kết nối tối đa 100mbit qua internet và rất đáng tin cậy.


2
Bạn đang nhận được gần một phần ba kết nối của mình - điều đó thật đáng trân trọng, nhưng không tuyệt vời. Làm thế nào xa các electron bay là các tập tin được chuyển?
Shane Madden

Độ trễ 50ms giữa hai máy chủ.
incognito2

5
Tôi đã thấy rất nhiều tệp một lần hyperboleandahalf.blogspot.com/2010/04/ trên
Smudge

Nếu bạn đang sử dụng rsync daemon, không có ssh liên quan, phải không? Sau đó, lời giải thích có lẽ là cơ sở hạ tầng ở giữa các máy chủ. Bạn có thể thử netperf hoặc iperf hoặc Flowgrind để kiểm tra tốc độ giữa các máy chủ. Nếu thử nghiệm này mang lại cho bạn tốc độ truyền cao hơn, thì bạn nên xem cách rsync làm mọi thứ chậm lại: đọc i / o trên máy chủ chậm, viết i / o trên máy khách, nhiều tệp nhỏ, hệ thống tệp, v.v.
AndreasM

Câu trả lời:


11

Bạn đã xem xét Sneakernet ? Với các tập dữ liệu lớn, vận chuyển qua đêm thường sẽ nhanh hơn và rẻ hơn so với chuyển qua Internet.


10
"Đừng bao giờ đánh giá thấp băng thông của một toa xe ga đầy băng từ trên đường cao tốc." - AST
voretaq7

1
tốt, do khả năng chi trả của phần cứng mạng LAN gigabit, nếu là chuyển LAN, thời gian viết qua eSATA đến một trục chính không hấp dẫn lắm.
memnoch_proxy

10

Làm sao? Hoặc TL; DR

Phương pháp nhanh nhất tôi tìm thấy là sự kết hợp của tar, mbufferssh.

Ví dụ:

tar zcf - bigfile.m4p | mbuffer -s 1K -m 512 | ssh otherhost "tar zxf -"

Sử dụng điều này tôi đã đạt được chuyển mạng cục bộ bền vững trên 950 Mb / giây trên các liên kết 1Gb. Thay thế các đường dẫn trong mỗi lệnh tar để phù hợp với những gì bạn đang chuyển.

Tại sao? mbuffer!

Nút thắt lớn nhất trong việc chuyển các tệp lớn qua mạng là, cho đến nay, đĩa I / O. Câu trả lời cho điều đó là mbufferhoặc buffer. Chúng phần lớn tương tự nhưng mbuffercó một số lợi thế. Kích thước bộ đệm mặc định là 2MB cho mbuffervà 1MB cho buffer. Bộ đệm lớn hơn có nhiều khả năng không bao giờ trống. Chọn kích thước khối là bội số chung thấp nhất của kích thước khối gốc trên cả hệ thống tệp đích và hệ thống tệp đích sẽ cho hiệu suất tốt nhất.

Đệm là điều mà làm cho tất cả sự khác biệt! Sử dụng nó nếu bạn có nó! Nếu bạn không có nó, hãy lấy nó! Sử dụng (m}?buffercộng với bất cứ điều gì tốt hơn bất cứ điều gì của chính nó. nó gần như là thuốc chữa bách bệnh cho việc truyền tệp mạng chậm.

Nếu bạn đang chuyển nhiều tệp, hãy sử dụng tarđể "gộp" chúng lại thành một luồng dữ liệu. Nếu đó là một tệp duy nhất bạn có thể sử dụng cathoặc chuyển hướng I / O. Chi phí tarso với catkhông đáng kể về mặt thống kê nên tôi luôn sử dụng tar(hoặc zfs -sendnơi tôi có thể) trừ khi nó đã là một tarball . Cả hai thứ này đều được đảm bảo cung cấp cho bạn siêu dữ liệu (và đặc biệt là catsẽ không). Nếu bạn muốn siêu dữ liệu, tôi sẽ để nó như một bài tập cho bạn.

Cuối cùng, sử dụng sshcho một cơ chế vận chuyển vừa an toàn và mang rất ít chi phí. Một lần nữa, chi phí sshso với nckhông đáng kể về mặt thống kê.


Đôi khi có quá trình mã hóa trong việc sử dụng SSH như một phương tiện giao thông. Xem: Sao chép tệp giữa các máy linux với xác thực mạnh mà không cần mã hóa
ewwhite

2
Bạn có thể sử dụng các cơ chế mã hóa nhanh hơn nếu bạn cần. Nhưng bạn không nhất thiết phải đặt ống thông qua ssh này. Tôi thích đặt các cổng -O và -I trên mbuffer ở cả hai bên. Ngay cả lúc này đây là hai lệnh, bạn bỏ qua mã hóa và tối đa hóa băng thông mạng bằng cách đệm cả hai đầu. Tôi đang gửi một luồng tar ở tốc độ 720 + Mbps trên mạng LAN cục bộ của mình tương đương vớitar -cf - .|mbuffer -m128k -s 256M -I 9090 & mbuffer -m128k -s 256M -O host:9090 | tar -xf -
memnoch_proxy

2
@memnoch_proxy: Đó là một gợi ý hay (mà tôi đã bình chọn) nhưng trong thời đại ngày nay, NSA thậm chí còn khai thác các dòng dữ liệu riêng giữa các trung tâm dữ liệu (ví dụ: Google và Yahoo) bằng cách sử dụng mã hóa, IMO, luôn là thói quen tốt để thực hiện . Sử dụng sshlàm cho đơn giản. Sử dụng stunnel, socathoặc openssllàm việc quá, nhưng chúng phức tạp hơn để thiết lập cho chuyển đơn giản.
bahamat

1
@bahamat cảm ơn bạn đã khiến tôi nhìn lại câu hỏi. Đề xuất của tôi chỉ có vẻ phù hợp nếu việc chuyển tiền có thể xảy ra qua VPN. Đối với một chuyển Internet, tôi chắc chắn cũng sẽ sử dụng ssh.
memnoch_proxy

8

Bạn đề cập đến "rsync", vì vậy tôi cho rằng bạn đang sử dụng Linux:

Tại sao bạn không tạo tệp tar hoặc tar.gz? Thời gian truyền mạng của một tệp lớn nhanh hơn nhiều tệp nhỏ. Bạn thậm chí có thể nén nó nếu bạn muốn ...

Tar không nén:

Trên máy chủ nguồn:

tar -cf file.tar /path/to/files/

Sau đó vào cuối nhận:

cd /path/to/files/
tar -xf /path/to/file.tar

Tar với nén:

Trên máy chủ nguồn:

tar -czf file.tar.gz /path/to/files/

Sau đó vào cuối nhận:

cd /path/to/files/
tar -xzf /path/to/file.tar.gz

Bạn chỉ cần sử dụng rsync để thực hiện chuyển các tập tin (tar | tar.gz) thực tế.


chỉ khi có chỗ lưu trữ lưu trữ ..
Tebe

5

Bạn có thể thử tarsshmẹo được mô tả ở đây :

tar cvzf - /wwwdata | ssh root@192.168.1.201 "dd of=/backup/wwwdata.tar.gz"

điều này nên được viết lại như sau :

tar cvzf - /wwwdata | ssh root@192.168.1.201 "tar xvf -"

Bạn sẽ mất các --partialtính năng của rsyncquá trình, mặc dù. Nếu các tệp không thay đổi rất thường xuyên, việc sống với một chữ cái đầu chậm rsynccó thể rất đáng giá trong khi nó sẽ nhanh hơn nhiều trong tương lai.


2

Bạn có thể sử dụng các tùy chọn nén khác nhau của rsync.

-z, --compress              compress file data during the transfer
     --compress-level=NUM    explicitly set compression level
     --skip-compress=LIST    skip compressing files with suffix in LIST

tỷ lệ nén cho các tệp nhị phân rất thấp, vì vậy bạn có thể bỏ qua các tệp đó bằng cách sử dụng --skip-compression, ví dụ: iso, đã được lưu trữ và nén tarball, v.v.


-6

Tôi là một fan hâm mộ lớn của SFTP. Tôi sử dụng SFTP để chuyển phương tiện từ máy tính chính của mình sang máy chủ. Tôi có tốc độ tốt, qua mạng LAN.

SFTP là đáng tin cậy, tôi sẽ cho rằng một shot, vì nó dễ cài đặt và nó có thể nhanh hơn trong một số trường hợp.


5
FTP cần phải chết. Nó không được mã hóa, nó không xử lý tốt sự gián đoạn và có ít nhất nửa tá các lựa chọn thay thế khả thi cho nó mà không hoàn toàn hút.
MDMarra

1
Bạn đã từng nghe về SFTP chưa?
Tillman32

8
Vâng, có bạn không Không có cách nào liên quan đến giao thức FTP trong bất cứ điều gì ngoại trừ tên và thực tế là nó di chuyển các tệp xung quanh.
MDMarra

5
FTP cũng nổi tiếng là không đáng tin cậy khi đi qua tường lửa (nó xuất hiện từ thời trước tường lửa khi khách hàng của bạn mở một cổng ngẫu nhiên để chấp nhận kết nối ngược là tuyệt vời và việc hack FTP thụ động & mở rộng để khắc phục hạn chế đó chỉ là: Hackery)
voretaq7
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.