Có một giải pháp sao lưu Linux đang hoạt động sử dụng inotify không?


17

Phải mất mãi mãi để sao lưu. Trước khi chúng ta có thể tin tưởng btrfs hoặc ZFS để sao lưu ảnh chụp nhanh gia tăng, sẽ không hay nếu có một trình nền được sử dụng inotify để theo dõi những tập tin nào thực sự thay đổi để sao lưu sẽ chạy nhanh hơn? Chương trình này ở đâu?

Làm cách nào để sao lưu hộp Linux của tôi mà không phải thu thập dữ liệu toàn bộ hệ thống tệp mỗi lần? Tôi muốn một chương trình sẽ phát hiện các ảnh mới, mã nguồn, v.v. và xếp hàng chúng để được sao chép vào NAS của tôi.


Bạn chưa thực sự cung cấp nhiều thông tin ở đây, đặc biệt là về những gì bạn hiện đang sử dụng để sao lưu, loại dữ liệu nào. Có một số phần mềm sao lưu sử dụng các tạp chí để theo dõi các thay đổi đối với hệ thống tệp và sau đó tham khảo tạp chí đó trong quá trình sao lưu. Chính xác thì bạn đang cố gắng sao lưu, loại thiết bị / ứng dụng nào, bản chất của dữ liệu là gì và phương pháp hiện tại của bạn để sao lưu nó là gì?
WerkkreW

@WerkkreW, tôi không nghĩ những gì anh ấy đang cố gắng sao lưu là quan trọng. Tôi nghi ngờ bất cứ điều gì cho phép sao lưu dựa trên sự kiện sẽ rất thú vị để tìm hiểu. Yêu cầu không phải là bất thường, OSX có cỗ máy thời gian dựa trên sự kiện.
Zoredache

Tôi vẫn cảm thấy câu hỏi cần làm rõ hơn một chút trước khi nó có thể được trả lời.
WerkkreW

1
@Zoredache, tất nhiên những gì tôi sao lưu là quan trọng! Nếu nó không quan trọng ... thì chờ đã; hình ảnh của em bé sơ sinh của tôi.
joeforker

3
Câu hỏi dường như hoàn toàn rõ ràng đối với tôi: Sao lưu Time Machine của Mac OS X rất nhanh bởi vì nó giám sát các phần tử để nó biết nơi cần tìm khi chạy bản sao lưu. Linux đã inotify, một phương tiện tương tự như các phần tử và các giải pháp sao lưu Linux cố gắng xấp xỉ Time Machine (ví dụ dirvish) rất chậm vì chúng không tận dụng được inotify. Có ai làm điều đó không?
uốn cong

Câu trả lời:


11

Tôi đã trả lời câu hỏi của riêng tôi với "yum search inotify". Nó được gọi là lsyncd và nó được lưu trữ trên mã google.

Thật không may, có vẻ như nó luôn chạy một rsync đầy đủ trước tiên, vì vậy nó vẫn không giúp tôi nếu máy tính của tôi không được bật hơn 14 giờ một lần.

Lsyncd sử dụng rsync để đồng bộ hóa các thư mục cục bộ với một máy từ xa chạy rsyncd. Lsyncd xem nhiều cây thư mục thông qua inotify. Bước đầu tiên sau khi thêm đồng hồ là rsync tất cả các thư mục với máy chủ từ xa, sau đó đồng bộ hóa tập tin duy nhất bằng cách thu thập các sự kiện inotify. Vì vậy, lsyncd là một giải pháp gương trực tiếp trọng lượng nhẹ, dễ cài đặt và sử dụng trong khi pha trộn tốt với hệ thống của bạn. Xem lsyncd - trợ giúp để biết các tùy chọn dòng lệnh chi tiết.


Đó là một liên kết thú vị, tôi thậm chí đã nghĩ đến việc tự mình thực hiện điều đó. Nhưng tại sao nó lại nói trên trang rằng nó sẽ truyền lại các tệp lớn cho mỗi thay đổi? Tôi nghĩ rằng rsync sẽ tránh điều đó?
Hanno Fietz

rsync vẫn phải đọc lại toàn bộ tập tin ở cả hai đầu để chuyển nó một cách hiệu quả nhất có thể. Tài liệu lsyncd dự định nói rằng điều này có thể không hiệu quả đối với các tệp lớn. Đối với các tệp lớn, sơ đồ nhân rộng cấp khối sẽ phù hợp hơn.
joeforker

3

Có một hệ thống mới được gọi là fsnotifyđược thiết kế để giải quyết các thiếu sót inotifyđược đưa ra để giải quyết các vấn đề dnotify. fsnotifycho phép bạn xem toàn bộ hệ thống tập tin mà không cần bận tâm nhiều. Hy vọng fsnotifysẽ giúp giải quyết tất cả các vấn đề sao lưu Linux trong tương lai của chúng tôi.


2

Bạn có thể hack một cái gì đó với incron .

 / path1 IN_CLOSE_WRITE rsync -au $ @ / $ # backuphhost: / path


incron không thể xem các thư mục đệ quy
joeforker

tốt, duh! nó có vẻ rất hữu ích: -S
hayalci

2

Dựa trên nghiên cứu (không phải kiểm tra), có vẻ như inotify không thể xử lý số lượng tệp rất lớn trên hầu hết các hệ thống và / hoặc làm rất chậm. Chủ đề tại http://www.pubbs.net/kernel/200905/109416/ là hữu ích nhất, Nó chỉ ra một tính năng linux mới dường như nằm trong hoặc hướng tới dòng chính, fsnotify, đó là trong linux 2.6.31 và sau đó.


2

Lsyncd đồng bộ toàn bộ cây đã xem khi khởi động, vì trong 99% trường hợp, đây là điều hợp lý để làm. Bạn thực sự muốn thư mục trên máy chủ đích bạn có trên máy chủ cục bộ, nếu không, đồng bộ hóa có thể không thành công và bạn muốn đồng bộ hóa những thứ bạn đã bỏ lỡ trong khi tắt. Tuy nhiên, nếu bạn biết bạn đang làm gì, bạn có thể tắt đồng bộ hóa khởi động, chỉ cần đặt đồng bộ hóa {..., startup = false} trong tệp cấu hình Lsyncd.

liên quan đến inotify, nó không phải là số lượng tệp mà là số lượng thư mục ăn hết nguồn. Một thư mục là một chiếc đồng hồ, bất kể nó chứa bao nhiêu tệp.

xây dựng fanotify trên fsnotify như inotify trông rất hứa hẹn cho những người xem hàng tấn thư mục, nhưng hiện tại Linux 2.6.37 fanotify không báo cáo các sự kiện đổi tên (di chuyển), khiến nó không thể sử dụng được cho một công việc như thế này :-(


Thậm chí không phải là xóa sau khi tạo?
joeforker

1
không trong các thử nghiệm của tôi, nope :-( fanotify được thiết kế với lá chắn virus trong tâm trí, và IMHO được thiết kế ngay bây giờ chính xác ở mức tối thiểu nó đòi hỏi.
axkibe

1

Tôi đã dành 6 tháng để tìm giải pháp tốt nhất để thực hiện những gì bạn đang cố gắng thực hiện; sao lưu hiệu quả vào một NAS. Sau khi đồng bộ hóa ban đầu, tất cả những thứ khác đều mịn như bơ. Phiên bản mới nhất của Lsyncd hoạt động khá tốt. Tôi đã ghi lại những gì tôi đã làm trong liên kết dưới đây. Chỉ cần thay thế các giá trị thư mục của bạn. Hi vọng điêu nay co ich:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit


0

có một hệ thống mới được sử dụng ở châu Á, được gọi là sersync, thay vì inotify-tool + rsync http://code.google.com.vn/p/sersync/, nó rất dễ sử dụ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.