Làm cách nào để sao lưu một tệp lớn với các thay đổi nhỏ?


9

Nếu một tập hợp các tệp (mỗi GB lớn) và mỗi tệp thay đổi một chút mỗi ngày (tại các vị trí ngẫu nhiên, không chỉ thông tin được thêm vào cuối), làm thế nào để có thể sao chép hiệu quả? Ý tôi là, theo nghĩa là chỉ những phần thay đổi mới được cập nhật chứ không phải toàn bộ tập tin. Điều đó có nghĩa là sự khác biệt giữa việc sao chép một số Kb ở đây và ở đó hoặc một số GB.


Nhị phân khác biệt? Tôi nghĩ đó là một việc nhưng tôi không nghĩ diffsẽ làm điều đó
mèo

@cat: diffcó thể báo cáo sự khác biệt, nhưng ở đây vấn đề là sao chép những khác biệt nhỏ.
Quora Feans

Chà, tôi đã nghĩ chỉ cần sao chép các khác biệt - rsynctốt hơn
mèo

Câu trả lời:


25

Các rsync chương trình thực hiện chính xác đó. Từ trang người đàn ông:

Nó nổi tiếng với thuật toán chuyển delta, giúp giảm lượng dữ liệu được gửi qua mạng bằng cách chỉ gửi sự khác biệt giữa các tệp nguồn và các tệp hiện có ở đích. Rsync được sử dụng rộng rãi để sao lưu và phản chiếu và như một lệnh sao chép được cải tiến để sử dụng hàng ngày.


Trên thực tế, rsync thực sự đang chạy trong khi viết câu trả lời này, sao lưu mọi thứ trên máy này vào máy chủ tệp của tôi (với zfs).
hlovdal

Đối với mục đích sao lưu, tôi muốn đề xuất sao lưu dự phòng ( nongnu.org/rdiff-backup ). Tôi đang sử dụng nó để sao lưu bốn máy khác nhau, trong vài năm nay, với kết quả tốt.
Thomas Padron-McCarthy

Wikipedia có một lời giải thích tốt về cách rsyncso sánh các đoạn tập tin bằng cách sử dụng tổng kiểm tra.
Adam Katz

Tôi đã thử rsync để "hoàn nguyên" trở lại hình ảnh đĩa cứng VM cũ trong đó chỉ có một vài tệp bên trong bị thay đổi, đáng buồn là rsync dường như sao chép lại toàn bộ tệp (mất ~ 3 phút viết ~ 300MB / s)? rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2
feedc0de

8

Bạn có thể muốn một chương trình sao lưu trùng lặp hiện đại. Kiểm tra BorgBackup .

Điều này sẽ tạo nhiều bản sao lưu của mỗi phiên bản tệp lớn của bạn, nhưng sẽ chia sẻ nội dung chung giữa các phiên bản khác nhau, do đó, tổng dung lượng được sử dụng cho một phiên bản nhất định của tệp lớn của bạn sẽ chỉ nhiều hơn một chút so với tổng dung lượng đĩa cho một phiên bản, giả sử rằng các phiên bản khác nhau chỉ khác nhau một chút.


5

Nếu bạn bị giới hạn IO theo bất kỳ cách nào, hãy sử dụng hệ thống tệp như BTRFS hoặc ZFS hỗ trợ trực tiếp các bản sao lưu gia tăng mà không phải tìm sự khác biệt trong các tệp, chẳng hạn như rsyncphải làm gì.

Sử dụng rsyncsẽ chậm và rất chuyên sâu.

Bởi vì nếu bất kỳ ứng dụng nào ghi thay đổi vào các tệp theo bất kỳ cách nào bị giới hạn IO, thì việc sử dụng rsyncsẽ làm mất các chu kỳ IO đáng kể khỏi ứng dụng đó là lý do chính các tệp tồn tại. Và nếu quy trình hoặc hệ thống sao lưu của bạn bị giới hạn IO, rsyncsẽ lấy các chu kỳ IO ra khỏi băng thông sao lưu có sẵn của bạn.

Chỉ cần Google "rsync là chậm". Ví dụ: rsync rất chậm (yếu tố 8 đến 10) so với cp khi sao chép tệp từ nfs-share sang thư mục cục bộ


Điều này có thêm lợi ích của việc bảo tồn tất cả siêu dữ liệu mà không phải kiểm tra nó và luôn biết rằng bản sao lưu của bạn tốt như bản sao gốc. rsync là tốt cho sử dụng chung, nhưng nếu bạn có một hệ thống tập tin hiện đại, sẽ thật ngu ngốc nếu bỏ qua những lợi thế của nó.
121391
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.