บทความนี้มีคำแนะนำที่เป็นประโยชน์rsync
อย่างน้อย:
ปัญหาที่เกิดขึ้น
การใช้rsync --sparse works
แต่ทำให้การเขียนดิสก์ที่ไม่จำเป็นเพิ่มขึ้นอย่างมาก การเปลี่ยน 10 ไบต์บนความยาว 50GB (ใช้ 1GB) ควรทำให้เกิดการเขียนเพียงหนึ่งหรือสองช่วงตึกซึ่งจะทำให้มีการเขียน 1GB สิ่งนี้ช้าและเป็นไปได้ไม่ดีสำหรับอายุการใช้งานของดิสก์
ใช้rsync --inplace
งาน แต่สร้างไฟล์แบบไม่กระจาย
คุณไม่สามารถใช้ --sparse และ --inplace ในเวลาเดียวกัน :-( สิ่งนี้ไม่ได้รับอนุญาตจาก rsync rsync: - sparse ไม่สามารถใช้กับ --inplace
สารละลาย
หากคุณใช้ - แทนที่สถานที่สำหรับอัปเดตไฟล์ที่มีอยู่ก่อนไฟล์จะยังคงอยู่แบบเบาบางและมีบล็อกจำนวนน้อยเท่านั้นที่เขียน มันก็ต่อเมื่อ rsync - inplace สร้างไฟล์ที่ทำให้มันไม่กระจัดกระจาย
ดังนั้นทางออกคือการสร้างไฟล์ที่กระจัดกระจายและว่างเปล่าที่กระจัดกระจายบนเครื่องเป้าหมายสำหรับทุกไฟล์ในเครื่องต้นทาง - ถ้าไฟล์นั้นยังไม่ปรากฏบนเครื่องเป้าหมาย
rsync จากนั้นจะทำงานตามที่ต้องการปล่อยให้ไฟล์กระจัดกระจายและเขียนบล็อกที่เปลี่ยนไปยังดิสก์เท่านั้น
ดังนั้นถ้าฉันอ่านอย่างถูกต้องคุณต้องการสร้างไฟล์ sparse เปล่าบนเป้าหมาย คุณสามารถทำได้ด้วย
truncate -s 3G filename
จากนั้นคุณสามารถใช้rsync --inplace
เพื่อคัดลอกไฟล์ผ่าน สิ่งนี้ควรจำเป็นครั้งเดียวเท่านั้น
บทความเดียวกันแนะนำให้ใช้Virtsyncซึ่งก็คือ
เครื่องมือบรรทัดคำสั่ง Linux เชิงพาณิชย์ $ 49 สำหรับการซิงโครไนซ์เนื้อหาของไฟล์ขนาดใหญ่ (เช่นอิมเมจดิสก์เครื่องเสมือนและฐานข้อมูล)
นี่อาจเป็นทางออกที่ดีที่สุดหากคุณยินดีจ่ายเพราะดูเหมือนว่าจะเขียนเป็นพิเศษสำหรับสถานการณ์ประเภทนี้