ฉันมีเครื่อง Debian บน LAN ที่ให้บริการในฐานะเซิร์ฟเวอร์สำรองสำหรับเครื่องอื่น ๆ มี HDD สี่ตัวที่รวมอยู่ในอุปกรณ์ RAID 5 md บน LVM และบน btrfs นั้น ทำการสำรองข้อมูลโดยใช้ rsync และสำหรับระบบไฟล์ขนาดใหญ่ใช้เวลามากกว่าหนึ่งชั่วโมง เป็นเวลานานที่ฉันคิดว่าจะมีเรื่องเล็กน้อยที่ฉันสามารถทำได้เกี่ยวกับเรื่องนี้
อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่ากิจกรรม HDD นั้นแตกต่างกันมากทั้งสองด้านของการถ่ายโอน ในขณะที่ด้านการส่งการเรียกใช้ Gentoo และส่วนใหญ่ใช้ ext4 นั้นแทบจะไม่มีดิสก์ IO เลยด้านรับนั้นยุ่งตลอดเวลา เนื่องจากข้อมูลส่วนใหญ่จะไม่เปลี่ยนแปลงระหว่างการถ่ายโอนฉันเชื่อว่าการอ่านข้อมูลเมตาควรเป็นข้อมูลจำนวนมาก แต่ฉันจะแปลกใจจริงๆถ้าการอ่าน inodes ใน btrfs นั้นทำงานได้ดีกว่าการทำแบบเดียวกันใน ext4
iotop
ยืนยันดิสก์อ่านประมาณ 1-4 MB / s ในด้านการรับในขณะที่ด้านการส่งมีการระเบิดเป็นครั้งคราวเพียง 0.5 MB / s
คำถามของฉันคือใครสามารถอธิบายสิ่งที่เกิดขึ้นที่นี่? ควรมีข้อบ่งชี้ว่าจะแก้ไขปัญหาอย่างไรถ้าเป็นไปได้
อาจมีการปรับแต่งค่า btrfs บางอย่างที่ฉันสามารถใช้ได้หรือสิ่งที่คล้ายกัน ฉันต้องการ FS ที่มีความสามารถสแนปช็อตบนเซิร์ฟเวอร์สำรองและความพยายามในการใช้ FreeBSD และ ZFS ทำให้ FS ไม่สอดคล้องกันอย่างรวดเร็วดังนั้นฉันจึงเห็นทางเลือกเล็กน้อยสำหรับ btrfs ในขณะนี้ ดังนั้นคำตอบที่บอกให้ฉันใช้ ext4 หรือ zfs อาจได้รับ upvotes แต่ไม่มีเครื่องหมายถูก
ตัวเลือก Rsync ที่ใช้งานอยู่ตามที่ร้องขอโดย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
รวมถึง-f
กฎกติกาเพื่อละเว้นไฟล์บางไฟล์
ตัวเลือกการติดตั้งของ btrfs มีการรายงานโดยmount
เป็น
rw,nosuid,noexec,noatime,nospace_cache
โดยเฉพาะอย่างยิ่งสิ่งนี้รวมถึงการnoatime
ตั้งค่าสถานะดังนั้นไม่ควรมีการเขียนใด ๆ ที่เกี่ยวข้องเว้นแต่จะมีความแตกต่างในบางไฟล์จริง ๆ ฉันจะเพิ่มข้อมูลนี้ในการตอบสนองต่อคำตอบโดยไคล์โจนส์
dtrace
หรือsystemtap
เพื่อค้นหาเวลาที่ใช้ไป