Sự khác nhau giữa rsync trên remote và rsync cục bộ trên sshfs được gắn?


12

Có sự khác biệt nào không nếu tôi chạy rsync với máy chủ từ xa (ssh: //) làm nguồn / đích hoặc sử dụng đường dẫn cục bộ để chia sẻ thư mục được gắn thông qua sshfs?

Có thể có sự khác biệt liên quan đến bảo mật hoặc tốc độ sao chép mà không cần sử dụng chuyển mạch, chỉ cần sử dụng chế độ lưu trữ rsync và đường dẫn máy chủ từ xa (ssh). Tương tự với sshfs mount chỉ với nguồn và đích (không thay đổi mật mã, chỉ mặc định).

Câu trả lời:


17

SSHFS là thuận tiện, nhưng nó không kết nối tốt với rsync hoặc nói chung là với các công cụ đồng bộ hóa.

Vấn đề lớn nhất là SSHFS phần lớn giết chết tối ưu hóa hiệu suất của rsync. Đặc biệt, đối với các tệp từ trung bình đến lớn, khi rsync thấy rằng tệp đã được sửa đổi, nó sẽ tính toán tổng kiểm tra trên các phần của tệp ở mỗi bên để chỉ chuyển các phần đã được sửa đổi. Đây chỉ là một tối ưu hóa nếu băng thông mạng nhỏ hơn đáng kể so với băng thông đĩa, thường là như vậy. Nhưng với SSHFS, băng thông của đĩa cứng trên đĩa cứng trên thực tế là băng thông mạng, do đó rsync sẽ phải đọc toàn bộ tệp để xác định nội dung cần sao chép. Trong thực tế, với một bản sao cục bộ (liên quan đến rsync, ngay cả khi một trong các mặt nằm trên SSHFS), rsync chỉ sao chép toàn bộ tệp.

SSHFS cũng gây bất lợi cho hiệu suất nếu có nhiều tệp nhỏ. Rsync cần kiểm tra ít nhất siêu dữ liệu của mỗi tệp để xác định xem nó có bị sửa đổi hay không. Với SSHFS, điều này đòi hỏi một chuyến đi khứ hồi mạng cho mỗi tệp. Với rsync qua SSH, hai bên có thể hoạt động song song và chuyển thông tin hàng loạt, nhanh hơn rất nhiều.

Về mặt hạn chế truy cập, SSHFS yêu cầu quyền truy cập SFTP, trong khi rsync yêu cầu khả năng chạy mã (cụ thể là chương trình rsync) thông qua hệ vỏ. Nếu người dùng không có tài khoản shell, việc cung cấp cho tài khoản một shell đặc biệt chỉ cho phép chạy một vài chương trình bao gồm sftp-serverrsync. Xem Bạn có cần một vỏ cho SCP không?

Nếu bạn chỉ sao chép các tệp mới và không có số lượng tệp rất lớn, thì không có sự khác biệt về hiệu suất.

SSHFS thiết lập kết nối SSH khi hệ thống tập tin được gắn kết và duy trì kết nối đó cho đến khi nó không được kết nối. Rupync tạo một kết nối mới mỗi lần bạn chạy nó, nhưng bạn có thể sử dụng tính năng ghép kênh và cõng trên một kết nối chính duy nhất để tránh xác thực mỗi lần.

SSHFS là một hệ thống tập tin FUSE và do đó chỉ hỗ trợ siêu dữ liệu Unix và ACL truyền thống. Rsync có thể chuyển các thuộc tính mở rộng (bạn cần sử dụng rsync -aAX, lưu ý rằng đơn giản -achỉ bảo tồn siêu dữ liệu Unix truyền thống).


Ví dụ: tôi có một tệp nén duy nhất trên thư mục SSHFS được gắn kết và tệp đó được sao chép vào thư mục cục bộ của tôi. Sau đó, tệp đó được cập nhật trên thư mục được gắn kết và tôi muốn chỉ sao chép phần cập nhật của nó vào thư mục cục bộ của mình bằng cách sử dụng rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz. Khi tôi sử dụng rsynccho thao tác này, trong quá trình tính toán tổng kiểm tra để chỉ chuyển các phần đã được sửa đổi, rsyncnên đọc toàn bộ tệp, điều này sẽ dẫn đến dữ liệu hoàn chỉnh được tải xuống thay vì chỉ phần cập nhật của nó? @Gilles
vào

1
@alper Khi bạn sử dụng rsync trên sshfs, rsync phải đọc toàn bộ tệp. Nó không thể biết những gì cần phải cập nhật khác. Không có cách nào để tối ưu hóa bằng cách chỉ chuyển tổng kiểm tra vì không có cách nào để tính toán tổng trên máy chủ.
Gilles 'SO- ngừng trở nên xấu xa'

Nó sẽ giống nhau nếu vị trí đích là một thư mục được gắn chứ không phải sshfskết nối? Vui lòng xem: unix.stackexchange.com/q/544404/198423 @Gilles
vào

4

Để trả lời câu hỏi chính của bạn: có, có sự khác biệt. Với sshfsmột kết nối hiện có để cho phép truy cập vào các tệp từ xa qua kênh bảo mật và với rsync qua ssh, kênh bảo mật đó được thiết lập để nói chuyện với một phiên bản rsync từ xa .

Để trả lời câu hỏi phụ của bạn: rsync trên ssh sẽ nhanh hơn trong hầu hết các trường hợp, bởi vì không phải tất cả các trường hợp, bởi vì rsync trên hệ thống từ xa cung cấp nhiều thông tin hơn trong việc tìm kiếm các tệp không cần đồng bộ hóa, nhưng chủ yếu là vì nó chạy song song với rsync địa phương để thu thập thông tin đó.

Bảo mật của cả hai cách là, giả sử cấu hình tương tự của các tham số ssh (độ dài khóa, thuật toán) như nhau. Mặc định là gì cho hệ thống nguồn và đích của bạn, phụ thuộc vào sự kết hợp phân phối trên các hệ thống đó.

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.