Điều gì khiến một bên của rsync bận rộn đến vậy?


11

Tôi đã có một máy Debian trên mạng LAN của mình dùng làm máy chủ dự phòng cho các máy khác. Nó có bốn ổ cứng kết hợp thành một thiết bị RAID 5 md phần mềm, trên đó là LVM và trên btrfs đó. Sao lưu được thực hiện bằng rsync và đối với một hệ thống tệp lớn mất hơn một giờ. Trong một thời gian dài tôi đã nghĩ rằng sẽ có rất ít tôi có thể làm về việc này.

Tuy nhiên, gần đây, tôi nhận thấy rằng hoạt động của ổ cứng rất khác nhau ở cả hai đầu của quá trình chuyển. Trong khi phía gửi, chạy Gentoo và chủ yếu sử dụng ext4, hầu như không có bất kỳ IO đĩa nào, thì bên nhận liên tục bận rộn. Vì hầu hết dữ liệu sẽ không thay đổi giữa các lần chuyển, tôi tin rằng việc đọc siêu dữ liệu sẽ chiếm phần lớn dữ liệu. Nhưng tôi thực sự ngạc nhiên nếu đọc inodes trong btrfs là công việc nhiều hơn so với làm tương tự trong ext4.

iotop đĩa được xác nhận đọc khoảng 1-4 MB / s ở phía bên nhận, trong khi phía gửi chỉ có cụm 0,5 MB / s thỉnh thoảng.

Câu hỏi của tôi là, bất cứ ai có thể giải thích những gì đang xảy ra ở đây? Tốt nhất là với một số chỉ dẫn làm thế nào để giải quyết vấn đề nếu có thể.

Có lẽ có một số cờ điều chỉnh btrfs tôi có thể sử dụng, hoặc một cái gì đó tương tự. Tôi cần một FS có khả năng chụp nhanh trên máy chủ dự phòng và việc tôi cố gắng sử dụng FreeBSD và ZFS nhanh chóng dẫn đến một FS không nhất quán, vì vậy tôi thấy ít thay thế cho btrfs vào lúc này. Do đó, câu trả lời cho tôi biết sử dụng ext4 hoặc zfs có thể nhận được upvote nhưng không có dấu kiểm.


Tùy chọn Rsync đang sử dụng, theo yêu cầu của cjm :

--rsync-path='rsync --fake-super'
--archive               # -rlptgoD
--hard-links            # detect and preserve these
--acls
--xattrs
--sparse
--noatime               # based on patch from samba #7249c1
--delete
--delete-delay
--fuzzy
--human-readable        # size suffixes, base 1000
--stats

Cũng như một loạt các -fquy tắc để bỏ qua một số tệp.


Các tùy chọn gắn kết của btrfs được báo cáo bởi mount

rw,nosuid,noexec,noatime,nospace_cache

Đặc biệt, điều này bao gồm noatimecờ, vì vậy không nên có bất kỳ văn bản nào liên quan trừ khi thực sự có sự khác biệt trong một số tệp. Tôi đã thêm thông tin này để đáp lại câu trả lời của Kyle Jones .


Bạn đang sử dụng tùy chọn rsync nào?
cjm

Chỉ cần chụp trong bóng tối, bạn có một đĩa thất bại? Điều này có thể gây ra thêm I / O vì nó đang cố gắng xây dựng lại dữ liệu bị thiếu từ thông tin chẵn lẻ.
bahamat

@bahamat, tôi đã chạy smartd và nó không có vấn đề gì. Cả mdadm cũng không báo cáo bất kỳ sự kiện nào.
MvG

Thật khó để nói chắc chắn những gì sai. Chỉ cần một ví dụ là kích thước khối không khớp giữa các lớp. Để chẩn đoán, tốt nhất bạn nên sử dụng một cái gì đó như dtracehoặc systemtaptìm ra thời gian đang sử dụng.
bahamat

@bahamat, đó là một con đường tôi chưa điều tra. Bạn có thể viết câu trả lời về cách sử dụng các công cụ này để chẩn đoán vấn đề không? Điều đó sẽ rất tuyệt. Hướng dẫn từng bước nếu bạn có thời gian, nhưng ngay cả một số ý tưởng sơ bộ và con trỏ tài liệu sẽ rất hữu ích.
MvG

Câu trả lời:


3

Một câu trả lời có thể là hệ thống tập tin từ xa được gắn kết theo mặc định với tùy chọn "atime". Thời gian truy cập ghi cho mọi thứ mà rsync truy cập từ xa kết hợp với hình phạt ghi mà bạn phải chịu với RAID 5 (tính chẵn lẻ có nghĩa là đọc tất cả các đĩa RAID trước khi bạn ghi vào một trong số chúng) có thể giải thích độ phóng đại I / O ở phía xa.

Nếu tôi đúng, bạn có thể tăng tốc mọi thứ bằng cách gắn hệ thống tệp từ xa với tùy chọn "noatime".


2
Suy nghĩ tốt, nhưng thật đáng buồn không phải là giải pháp: hệ thống tập tin đã được gắn kết vào thời điểm hiện tại. Mount báo cáo tập hợp tất cả các tùy chọn gắn kết như rw,nosuid,noexec,noatime,nospace_cache.
MvG

1

Tôi nghi ngờ các tùy chọn --fake-super. Điều đó cho rsync lưu trữ tất cả thông tin siêu dữ liệu trong các thuộc tính mở rộng trên mỗi tệp. Tôi nghi ngờ việc truy cập các thuộc tính đó là chậm. Hãy thử chạy thử với rsync đến root mà không có --fake-super. Bạn không thể sử dụng lại cùng một bản sao lưu vì các thuộc tính sẽ không khớp.


Bạn nên xem xét mở rộng dựa trên câu trả lời của bạn để bao gồm một số liên kết hoặc tài liệu tham khảo hữu ích cho tài liệu hỗ trợ khẳng định của bạn.
HalosGhost

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.