भारी फ़ाइलों या ब्लॉक-डिवाइसेस को कम से मध्यम अंतर के साथ सिंक करने के लिए आप या तो एक सादे कॉपी कर सकते हैं या bdsync का उपयोग कर सकते हैं , rsync इस विशेष मामले के लिए बिल्कुल फिट नहीं है *।
bdsync
मेरे लिए काम किया, काफी परिपक्व लगता है, यह बगों का इतिहास उत्साहजनक है (छोटे मुद्दों, शीघ्र समाधान)। मेरे परीक्षणों में यह गति सैद्धांतिक अधिकतम के करीब थी जिसे आप ** प्राप्त कर सकते हैं (यानी आप उस समय के बारे में सिंक कर सकते हैं जब आपको फ़ाइल पढ़ने की आवश्यकता होती है)। अंत में यह खुला स्रोत है और कुछ भी नहीं खर्च होता है।
bdsync
दोनों मेजबानों से फाइल पढ़ता है और उनकी तुलना करने और मतभेदों का पता लगाने के लिए चेक-रकम का आदान-प्रदान करता है। एक ही समय में ये सब । यह अंत में स्रोत होस्ट पर एक संकुचित पैच फ़ाइल बनाता है। फिर आप उस फ़ाइल को गंतव्य होस्ट पर ले जाते हैं और गंतव्य फ़ाइल को पैच करने के लिए दूसरी बार bdsync चलाते हैं।
जब इसे एक तेज़ तेज़ लिंक (उदाहरण के लिए 100Mbit ईथरनेट) और छोटे अंतर वाली फ़ाइलों के लिए उपयोग किया जाता है (जैसा कि अक्सर VM डिस्क पर होता है) तो यह उस समय को कम कर देता है, जिस समय आपको फ़ाइल पढ़ने की आवश्यकता होती है। एक धीमी लिंक पर आपको थोड़ा और समय चाहिए क्योंकि आपको एक मेजबान से दूसरे में संपीड़ित परिवर्तनों की प्रतिलिपि बनाना होगा (ऐसा लगता है कि आप एक अच्छी चाल का उपयोग करके समय बचा सकते हैं लेकिन परीक्षण नहीं किया है)।
* - rsync विशाल फ़ाइलों के साथ बेहद अक्षम है। यहां तक कि --inplace के साथ यह पहली बार डेस्टिनेशन होस्ट पर पूरी फाइल को पढ़ेगा, AFTERWARDS फाइल को सोर्स होस्ट पर पढ़ना शुरू कर देता है और अंत में अंतर को ट्रांसफर कर देता है (बस rsync चलाते हुए और अवलोकन करते हुए dstat या इसी तरह चलाएं)। नतीजा यह है कि छोटे अंतर वाली फ़ाइलों के लिए भी फ़ाइल को सिंक करने के लिए आपको फ़ाइल को पढ़ने में लगभग दोगुना समय लगता है।
**: इस धारणा के तहत कि आपके पास यह बताने का कोई दूसरा तरीका नहीं है कि फाइलों के कौन से हिस्से बदल गए हैं। LVM स्नैपशॉट परिवर्तित किए गए ब्लॉकों को रिकॉर्ड करने के लिए बिटमैप का उपयोग करते हैं ताकि वे बहुत तेज़ हो सकें ( lvmsync की रीडमी को अधिक जानकारी नहीं है)।