ZFS Sync qua mạng WAN không đáng tin cậy, chậm. Sao chép ZFS, hay rsync?


10

Tôi đã được giao nhiệm vụ thực hiện sao lưu ngoài trang web qua mạng WAN. Cả hai hộp lưu trữ đều là các hộp NAS dựa trên FreeBSD chạy ZFS.

Một hoặc hai lần một tuần, 15-60 hợp đồng dữ liệu nhiếp ảnh được chuyển đến NAS văn phòng. Công việc của tôi là tìm ra cách lấy dữ liệu này ngoài trang web một cách đáng tin cậy nhất có thể bằng kết nối DSL RẤT RẤT (tải lên ~ 700Kb / giây). Hộp nhận có hình dạng tốt hơn nhiều, ở mức 30Mb / giây trở xuống, 5Mb / giây trở lên.

Tôi biết, mang ổ cứng ngoài trang web sẽ di chuyển dữ liệu nhanh hơn nhiều, nhưng đó không phải là một lựa chọn trong trường hợp này.

Các lựa chọn của tôi dường như là:

  • ZFS gửi tăng dần qua ssh
  • Đồng bộ hóa

rsync là một giải pháp được tôn vinh theo thời gian và có khả năng cực kỳ quan trọng để tiếp tục gửi nếu có gì đó bị gián đoạn. Nó có nhược điểm là lặp đi lặp lại qua nhiều tệp và không biết về khấu trừ.

Gửi ảnh chụp nhanh ZFS có thể truyền dữ liệu ít hơn một chút (nó biết nhiều hơn về hệ thống tệp, có thể khấu trừ, có thể đóng gói các thay đổi siêu dữ liệu hiệu quả hơn rsync) và có lợi thế là sao chép chính xác trạng thái hệ thống tệp, thay vì chỉ sao chép các tệp riêng lẻ (đó là nhiều đĩa hơn).

Tôi lo ngại về hiệu suất sao chép ZFS [1] (mặc dù bài viết đó đã cũ một năm). Tôi cũng lo lắng về việc có thể bắt đầu lại việc chuyển tiền nếu có sự cố xảy ra - khả năng chụp nhanh dường như không bao gồm điều đó. Toàn bộ hệ thống cần phải hoàn toàn rảnh tay.

[1] http://wikitech-static.wikidia.org/articles/z/f/s/Zfs_Vplication.html

Sử dụng một trong hai tùy chọn, tôi sẽ có thể ưu tiên lưu lượng truy cập bằng cách định tuyến nó qua một cổng được chỉ định, sau đó sử dụng QOS trên các bộ định tuyến. Tôi cần tránh tác động tiêu cực lớn đối với người dùng ở cả hai trang web trong mỗi lần chuyển, vì sẽ mất vài ngày.

Vậy ... đó là suy nghĩ của tôi về vấn đề này. Tôi đã bỏ lỡ bất kỳ lựa chọn tốt? Có ai khác thiết lập một cái gì đó tương tự?


Hãy xem xét Unison .
sampablokuper

Câu trả lời:


8
  1. Nếu bạn có thể chuyển tối đa 6GB mỗi ngày (giả sử không có lưu lượng truy cập và không có lưu lượng cạnh tranh) và bạn cần di chuyển "15-60 hợp đồng" với tần suất "một hoặc hai lần mỗi tuần", hoạt động đến 15-120 GB mỗi tuần, hoặc bất cứ nơi nào từ 2-17 GB mỗi ngày. Bởi vì cần phải lập kế hoạch cho nhu cầu cao nhất và 17 GB vượt xa mức tối đa lý thuyết của bạn là 6 GB, nên có khả năng bạn gặp vấn đề về băng thông rất nghiêm trọng. Điều gì sẽ nâng cấp kết nối? Nếu không thể nâng cấp kết nối, vui lòng xem xét tùy chọn gửi thư phương tiện vật lý theo lịch trình (ví dụ: hàng tuần).

  2. Giả sử rằng bạn có thể có được toán học băng thông để có ý nghĩa hơn một chút, rsync có thể là lựa chọn tốt nhất. Nhận thức về sự trùng lặp sẽ rất có giá trị khi sao chép dữ liệu dư thừa (ví dụ: hình ảnh máy ảo), nhưng nó sẽ có rất ít hoặc không có lợi ích gì khi nói đến nội dung kỹ thuật số độc đáo (âm thanh, video, hình ảnh) ... trừ khi, tất nhiên, người dùng là vô tình lưu trữ các bản sao trùng lặp của các tập tin giống hệt nhau.


Tôi nghĩ rằng tôi có thể sử dụng băng thông có sẵn và hầu hết các bãi dữ liệu có xu hướng về đầu nhỏ hơn của phạm vi. Thực tế, nó sẽ có trung bình khoảng 2-3 hợp đồng một ngày, đánh giá từ một tháng qua của dữ liệu. Tôi không cần sao chép ngay lập tức.
Paul McMillan

Và vâng, gửi phương tiện vật lý tốt hơn nhiều ... Tôi ước nó là một lựa chọn.
Paul McMillan

Điểm tốt về khấu trừ. Hầu hết những gì được sao chép sẽ không được sao chép - người dùng không quá dày đặc.
Paul McMillan

1
Điều duy nhất tôi muốn thêm là có thể không sử dụng rsync. Tôi cũng đã trải nghiệm sự chậm chạp của rsync vì tôi đang sử dụng nó như một quá trình chuyển giao, không phải là quá trình đồng bộ hóa. Sau đó, tôi nhận ra hầu hết dữ liệu hiện tại của mình không thay đổi và chỉ cần sao chép dữ liệu mới, đối với tôi, tôi chỉ sử dụng cp trên các tệp mới và nó nhanh hơn nhiều. Nếu tôi có các tệp đã thay đổi (hoặc chỉ một phần của tệp) thì tôi sẽ sử dụng rsync. Vì vậy, tôi đề nghị tách các tệp mới ra và chọn một phương thức chuyển tiếp. Ngoài ra, nén sẽ là sự đánh đổi CPU & RAM / băng thông (ở cả hai đầu).
Scott McClenning

Hmm ... Tôi đã đọc rằng với cấu hình phù hợp, rsync có thể được thực hiện để đi tương đối nhanh chóng. Bạn đã cố gắng tối ưu hóa bao nhiêu?
Paul McMillan

13

Sau khi thực hiện một số nghiên cứu tôi tin rằng bạn đã đúng về việc gửi ảnh chụp nhanh. ZFS SENDRECEIVEcác lệnh có thể được dẫn vào bzip2 và sau đó tệp đó có thể được rsync-ed sang máy khác.

Dưới đây là một số nguồn tôi đã sử dụng:

Tôi đã không tìm thấy bất kỳ bài đăng nào với các kịch bản sao chép được đăng, nhưng tôi đã tìm thấy ai đó đã đăng kịch bản sao lưu của họ . Điều đó nói rằng, tôi đã không hiểu nó vì vậy nó có thể là rác.

Nhiều người trong số các trang web đã nói về việc thiết lập một công việc định kỳ để làm điều này thường xuyên. Nếu đây là trường hợp, bạn có thể sao chép / sao lưu với ít tác động hơn đến băng thông và người dùng và là một tính năng khắc phục thảm họa tốt vì dữ liệu ngoại vi được cập nhật hơn. (Đó là, sau đoạn dữ liệu ban đầu khi bắt đầu.)

Một lần nữa, tôi nghĩ rằng bạn đã có ý tưởng đúng khi gửi ảnh chụp nhanh dường như có rất nhiều lợi thế khi sử dụng SEND/ RECEIVE.

EDIT: Chỉ cần xem video1 video2 có thể giúp hỗ trợ việc sử dụng SEND/ RECEIVEvà nói về rsync (bắt đầu từ 3m49s). Ben Rockwood là diễn giả và đây là một liên kết đến blog của anh ấy .


1
Tôi đoán việc sử dụng rsync bị giới hạn ở chức năng tạm dừng / tiếp tục, thay vì khác biệt với tập tin thực tế. Điều này có ý nghĩa, vì chính hệ thống tệp (và các tệp thay đổi mà nó tạo ra) biết rõ hơn rsync những gì đang diễn ra.
Paul McMillan

Như một lưu ý bổ sung: ZSTD, một sự thay thế nhanh hơn hiện đại cho gzip và bzip, hỗ trợ nhiều luồng và hơn 20 cấp độ nén. Nó cũng có một tính năng tùy chọn đóng góp được gọi là 'nén thích ứng'. Với chế độ này, mức độ nén được tự động điều chỉnh lên xuống khi cần thiết để giữ cho đường ống mạng đầy, đồng thời thực hiện nén càng nhiều càng tốt để tiết kiệm thời gian. Điều này ngăn bạn thực hiện quá nhiều việc nén mà nó trở thành nút cổ chai hoặc bỏ lỡ quá trình nén mà bạn có thể thực hiện do mạng quá chậm.
Allan Jude

2

Mục đích của các bản sao lưu là gì và chúng sẽ cần được truy cập như thế nào?

Nếu các bản sao lưu của bạn chủ yếu để phục hồi thảm họa thì các ảnh chụp nhanh ZFS có thể được ưa thích hơn vì bạn sẽ có thể đưa hệ thống tập tin trở lại trạng thái chính xác tại thời điểm gia tăng cuối cùng.

Tuy nhiên, nếu các bản sao lưu của bạn cũng được cho là cung cấp cho người dùng quyền truy cập vào các tệp có thể đã vô tình bị xóa, bị hỏng, v.v. thì rsync có thể là một lựa chọn tốt hơn. Người dùng cuối có thể không hiểu khái niệm ảnh chụp nhanh hoặc có lẽ NAS của bạn không cung cấp cho người dùng cuối quyền truy cập vào các ảnh chụp nhanh trước đó. Trong cả hai trường hợp, bạn có thể sử dụng rsync để cung cấp bản sao lưu mà người dùng có thể truy cập dễ dàng thông qua hệ thống tệp.

Với rsync, bạn có thể sử dụng cờ --backup để bảo vệ các bản sao lưu của các tệp đã được thay đổi và với cờ --suffix, bạn có thể kiểm soát cách đổi tên các phiên bản cũ của tệp. Điều này giúp dễ dàng tạo bản sao lưu trong đó bạn có thể đã ghi ngày vào các phiên bản cũ của tệp như

file_1.jpg
file_1.jpg.20101012
file_1.jpg.20101008
etc.

Bạn có thể dễ dàng kết hợp điều này với một cronjob chứa lệnh find để xóa bất kỳ tệp cũ nào khi cần.

Cả hai giải pháp đều có thể bảo toàn đủ thông tin về các tệp để hoạt động như một bản sao lưu (rsync cung cấp các cờ --perms, --owner, v.v.). Tôi sử dụng rsync để sao lưu lượng lớn dữ liệu giữa các trung tâm dữ liệu và rất hài lòng với thiết lập.


2

ZFS sẽ nhận được tính năng 'gửi lại có thể tiếp tục', cho phép tiếp tục sao chép bị gián đoạn một thời gian vào khoảng tháng 3 năm nay. Tính năng này đã được Matt Ahrens và một số người khác hoàn thành và sẽ sớm được cập nhật.


Chỉ cần một lưu ý rằng 'gửi lại có thể gửi lại' đã có trong OpenZFS (trên FreeBSD, Linux, MacOS, v.v.) từ khá lâu rồi. Hiện tại cũng có một tính năng 'gửi nén', trong đó dữ liệu sẽ được nén như trên đĩa, như một phần của luồng sao chép.
Allan Jude

0

Có lẽ thiết bị nén WAN sẽ là một giải pháp ...? chúng tôi sử dụng Riverbed và chúng tôi khá hài lòng với chúng (ví dụ: NetApp SnapMirror đang được nén rất tốt, lên tới 80-90%)

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.