อะไรทำให้ rsync ด้านใดด้านหนึ่งยุ่งมาก?


11

ฉันมีเครื่อง 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ตั้งค่าสถานะดังนั้นไม่ควรมีการเขียนใด ๆ ที่เกี่ยวข้องเว้นแต่จะมีความแตกต่างในบางไฟล์จริง ๆ ฉันจะเพิ่มข้อมูลนี้ในการตอบสนองต่อคำตอบโดยไคล์โจนส์


คุณใช้ตัวเลือก rsync อะไร
cjm

แค่ถ่ายภาพในที่มืดคุณมีดิสก์ที่ล้มเหลวหรือไม่ สิ่งนี้อาจทำให้ I / O พิเศษเนื่องจากพยายามสร้างข้อมูลที่หายไปจากข้อมูลพาริตีใหม่
bahamat

@ บาฮามาตฉันมี smartd ที่ทำงานอยู่และมันก็ไม่มีปัญหา mdadm ไม่ได้รายงานเหตุการณ์ใด ๆ
MvG

มันยากมากที่จะบอกว่ามีอะไรผิดปกติ ตัวอย่างหนึ่งคือขนาดบล็อกที่ไม่ตรงกันระหว่างเลเยอร์ ในการวิเคราะห์ว่าคุณเป็นทางเลือกที่ดีที่สุดคือการใช้บางสิ่งบางอย่างเช่นdtraceหรือsystemtapเพื่อค้นหาเวลาที่ใช้ไป
bahamat

@ บาฮามาตเป็นถนนที่ฉันยังไม่ได้ตรวจสอบ คุณสามารถเขียนคำตอบเกี่ยวกับวิธีใช้เครื่องมือเหล่านี้เพื่อวินิจฉัยปัญหาได้หรือไม่? มันจะดีมาก. คำแนะนำแบบทีละขั้นตอนหากคุณมีเวลา แต่แม้กระทั่งแนวคิดและตัวชี้เอกสารบางอย่างก็มีประโยชน์มาก
MvG

คำตอบ:


3

คำตอบหนึ่งที่เป็นไปได้คือระบบไฟล์ระยะไกลจะถูกเมานท์ตามค่าเริ่มต้นด้วยตัวเลือก "atime" เวลาเข้าถึงเขียนสำหรับทุกสิ่งที่การเข้าถึง rsync ระยะไกลรวมกับโทษการเขียนที่คุณประสบกับ RAID 5 (การคำนวณเท่าเทียมกันหมายถึงการอ่านดิสก์ RAID ทั้งหมดก่อนที่คุณจะเขียนถึงหนึ่งในนั้น) สามารถอธิบายการขยาย I / O ทางด้านระยะไกล

หากฉันถูกคุณสามารถเพิ่มความเร็วในการติดตั้งระบบไฟล์ระยะไกลด้วยตัวเลือก "noatime"


2
เป็นความคิดที่ดี แต่น่าเสียดายที่ไม่ใช่วิธีแก้ปัญหา: ระบบไฟล์ถูกเมาท์ตอนเที่ยง rw,nosuid,noexec,noatime,nospace_cacheเมารายงานชุดของภูเขาเป็นตัวเลือก
MvG

1

ฉันสงสัยว่าตัวเลือก --fake-super ซึ่งบอก rsync ให้เก็บข้อมูลเมตาดาต้าทั้งหมดในแอททริบิวต์เพิ่มเติมในแต่ละไฟล์ ฉันสงสัยว่าการเข้าถึงคุณลักษณะเหล่านั้นช้า ลองทดสอบการทำงานด้วย rsync ไปที่รูทโดยไม่ต้อง - ปลอมสุด ๆ คุณไม่สามารถใช้การสำรองข้อมูลเดียวกันซ้ำได้เนื่องจากแอตทริบิวต์ไม่ตรงกัน


คุณควรพิจารณาขยายคำตอบของคุณเพื่อรวมลิงค์ที่มีประโยชน์หรือเอกสารอ้างอิงที่สนับสนุนการยืนยันของคุณ
HalosGhost

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.