ในการซิงค์ไฟล์ขนาดใหญ่หรืออุปกรณ์บล็อกที่มีความแตกต่างต่ำถึงปานกลางคุณสามารถทำสำเนาธรรมดาหรือใช้bdsyncได้ rsync ไม่เหมาะสำหรับกรณีนี้ *
bdsync
ทำงานให้ฉันดูเหมือนเป็นผู้ใหญ่มากพอมันมีประวัติของข้อผิดพลาดเป็นกำลังใจ (ปัญหาเล็ก ๆ น้อย ๆ การแก้ไขที่รวดเร็ว) ในการทดสอบของฉันความเร็วนั้นใกล้เคียงกับค่าสูงสุดทางทฤษฎีที่คุณจะได้รับ ** (นั่นคือคุณสามารถซิงค์ในเวลาที่คุณต้องอ่านไฟล์) ในที่สุดมันก็โอเพนซอร์สและไม่มีค่าใช้จ่าย
bdsync
อ่านไฟล์จากทั้งโฮสต์และแลกเปลี่ยนผลรวมตรวจสอบเพื่อเปรียบเทียบและตรวจสอบความแตกต่าง ทั้งหมดเหล่านี้ได้ในเวลาเดียวกัน ในที่สุดมันก็จะสร้างไฟล์แพ็ตช์ที่ถูกบีบอัดบนโฮสต์ต้นทาง จากนั้นคุณย้ายไฟล์นั้นไปยังโฮสต์ปลายทางและรัน bdsync เป็นครั้งที่สองเพื่อแก้ไขไฟล์ปลายทาง
เมื่อใช้งานผ่านลิงก์ที่ค่อนข้างเร็ว (เช่น 100Mbit ethernet) และสำหรับไฟล์ที่มีความแตกต่างเล็ก ๆ (เช่นในกรณีของดิสก์ VM) จะช่วยลดเวลาในการซิงค์กับเวลาที่คุณต้องอ่านไฟล์ ผ่านลิงค์ช้าคุณต้องใช้เวลาอีกเล็กน้อยเพราะคุณต้องคัดลอกการเปลี่ยนแปลงที่ถูกบีบอัดจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง (ดูเหมือนว่าคุณสามารถประหยัดเวลาได้โดยใช้กลอุบายที่ดีแต่ยังไม่ได้ทดสอบ)
*: rsync ไม่มีประสิทธิภาพอย่างมากกับไฟล์ขนาดใหญ่ แม้จะมี - แทนที่มันจะอ่านไฟล์ทั้งหมดในโฮสต์ปลายทางก่อนหลังจากเริ่มอ่านไฟล์บนโฮสต์ต้นทางและในที่สุดก็ถ่ายโอนความแตกต่าง (เพียงแค่เรียกใช้ dstat หรือคล้ายกันในขณะที่ใช้ rsync และสังเกต) ผลลัพธ์คือแม้สำหรับไฟล์ที่มีความแตกต่างเล็ก ๆ ก็ต้องใช้เวลาสองเท่าในการอ่านไฟล์เพื่อซิงค์
**: ภายใต้สมมติฐานว่าคุณไม่มีวิธีอื่นในการบอกว่าส่วนใดของไฟล์ที่มีการเปลี่ยนแปลง LVM snapshots ใช้บิตแมปเพื่อบันทึกบล็อกที่มีการเปลี่ยนแปลงเพื่อให้สามารถทำงานได้เร็วขึ้นมาก (readme ของlvmsyncมีข้อมูลเพิ่มเติม)