क्या किसी ने ESXi में rsync के साथ सही अंतर सिंक हासिल किया है?


11

मुझे बाद में इस तथ्य पर रोकें कि मैं ESXi में कुछ भी करने के लिए सेवा कंसोल का उपयोग कर रहा हूं ...

मुझे एक काम करने वाला rsync बाइनरी (v3.0.4) मिला है जिसे मैं ESXi 4.1U1 में उपयोग कर सकता हूं। जब मैं VM के बैकअप या एक स्थानीय डेटास्टोर से दूसरे स्थानीय डेटास्टोर में कॉपी करता हूं, तो मैं rsync का उपयोग करता हूं। मैंने एक ESXi बॉक्स से दूसरे में डेटा कॉपी करने के लिए rsync का उपयोग किया है लेकिन यह सिर्फ छोटी फाइलों के लिए था।

अब मेरे प्राथमिक ESXi मशीन और एक माध्यमिक एक के बीच ghettoVCB के माध्यम से लिया बैकअप के सच्चे अंतर सिंक करने की कोशिश कर रहा है । लेकिन यहां तक ​​कि जब मैं स्थानीय रूप से (एक ही ईएसएक्सआई मशीन पर एक अन्य डेटास्टोर के लिए एक) ऐसा करता हूं तो rsync अपनी संपूर्णता में फ़ाइलों की प्रतिलिपि बनाता है। मुझे दो वीएमडीके पूरी तरह से 80GB आकार में मिल गए हैं, और rsync अभी भी 1 और 2 घंटे के बीच कहीं भी ले जाता है, लेकिन VMDK की रोज़ाना वृद्धि नहीं हो रही है

नीचे rsync कमांड निष्पादित कर रहा हूं। मैं स्थानीय रूप से कॉपी कर रहा हूं क्योंकि आखिरकार ये फाइलें एक रिमोट सिस्टम पर LUN से बनाए गए डेटास्टोर पर कॉपी हो जाएंगी। यह एक rsync नहीं है जिसे दूरस्थ सिस्टम पर rsync डेमॉन द्वारा सेवित किया जाएगा।

rsync -avPSI VMBACKUP_2011-06-10_02-27-56/* VMBACKUP_2011-06-01_06-37-11/ --stats --itemize-changes --existing --modify-window=2 --no-whole-file
sending incremental file list
>f..t...... VM-flat.vmdk
 42949672960 100%   15.06MB/s    0:45:20 (xfer#1, to-check=5/6)
>f..t...... VM.vmdk
         556 100%    4.24kB/s    0:00:00 (xfer#2, to-check=4/6)
>f..t...... VM.vmx
        3327 100%   25.19kB/s    0:00:00 (xfer#3, to-check=3/6)
>f..t...... VM_1-flat.vmdk
 42949672960 100%   12.19MB/s    0:56:01 (xfer#4, to-check=2/6)
>f..t...... VM_1.vmdk
         558 100%    2.51kB/s    0:00:00 (xfer#5, to-check=1/6)
>f..t...... STATUS.ok
          30 100%    0.02kB/s    0:00:01 (xfer#6, to-check=0/6)

Number of files: 6
Number of files transferred: 6
Total file size: 85899350391 bytes
Total transferred file size: 85899350391 bytes
Literal data: 2429682778 bytes
Matched data: 83469667613 bytes
File list size: 129
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 2432530094
Total bytes received: 5243054

sent 2432530094 bytes  received 5243054 bytes  295648.92 bytes/sec
total size is 85899350391  speedup is 35.24

क्या ऐसा इसलिए है क्योंकि ESXi खुद VMDK के लिए इतने बदलाव कर रहा है कि जहाँ तक rsync का सवाल है पूरी फाइल को फिर से देखना होगा?

क्या किसी ने वास्तव में ईएसएक्सआई के साथ वास्तविक अंतर सिंक हासिल किया है?


डिफ़ॉल्ट रूप से rsynce वृद्धिशील है। कठोर होना कठिन है, लेकिन सच है। मैं उत्सुक हूं कि आप ESXi पर काम करने वाले rsynce के लिए डाउनलोड कहां जाते हैं। मेरे पास ESXi 4.1 है

जवाबों:


6

ऐसा लगता है कि आपने केवल 2GB वृद्धिशील परिवर्तन हस्तांतरित किए हैं। याद रखें कि rsync को अभी भी एक पूरी फ़ाइल में पढ़ना है और इसे चेक करना है ताकि उसे 80GB डेटा पढ़ना पड़े। Rsync के दौरान अपने सर्वर आँकड़े की जाँच करें। क्या आप ऑपरेशन के दौरान सीपीयू या आईओ से बंधे हैं? कितनी तेजी से आप डिस्क से 80GB फ़ाइल पढ़ सकते हैं? वह आपके पूर्ण न्यूनतम स्थानांतरण समय के पास होगा।

यह भी ध्यान दें कि rsync स्थानांतरित करते समय फ़ाइल की एक प्रतिलिपि बनाता है फिर अंतिम फ़ाइल को एक परमाणु ऑपरेशन में जगह देता है। आप गंतव्य निर्देशिका में स्थानांतरण के दौरान एक यादृच्छिक प्रत्यय के साथ एक परिचित फ़ाइल नाम देखकर इसे देख सकते हैं। इसका मतलब है कि आपको 160GB डेटा (प्रत्येक स्रोत और गंतव्य के लिए प्रत्येक 80GB) को पढ़ना होगा और गंतव्य की ओर से 80GB लिखना होगा। क्या आपने --inplace विकल्प को देखा है? यह यहाँ लाभदायक हो सकता है।

संक्षेप में आपके पास केवल 2GB बदलाव हो सकते हैं लेकिन rsync बहुत काम कर रहा है। आप शायद IO ही हैं, जो एक ही डिस्क पर पढ़ना और लिखना बहुत सारे विवाद और मंदी का कारण बन सकते हैं।


आपकी प्रतिक्रिया के लिए धन्यवाद bot403 मैंने देखा कि स्थानांतरित किए गए बाइट्स काफी कम थे, लेकिन मैं अभी भी 30-45 + मिनट प्रतीक्षा समय देख रहा था। मैं अपनी संपूर्णता में फ़ाइलों को फिर से भेज सकता हूं। यहाँ एक IO बोतल गर्दन हो सकती है लेकिन मुझे लगता है कि ESXi के भीतर है और इतना हार्डवेयर नहीं है। मैं इसे LUN और परीक्षण के लिए ले जाऊंगा। बहुत बहुत धन्यवाद।
JuliusPIV

4

यह थ्रेड बहुत पुराना है, लेकिन यह किसी की मदद कर सकता है।

जैसा कि ESX नए ब्लॉक के हर लिखने पर फाइल सिस्टम को लॉक कर रहा है, प्रदर्शन उतना बढ़िया नहीं है, विकल्प के साथ - आप बेहतर परिणाम प्राप्त कर सकते हैं, लेकिन जागरूक रहें, यदि आप सिंक को रद्द करते हैं, तो फ़ाइल किसी भी संगत नहीं होगी। अधिक। संगति के बारे में, किसी भी फ़ाइल का rsync किसी भी तरह असंगत हो सकता है -> rsync से पहले बेहतर स्नैपशॉट का उपयोग करें।

सर्वश्रेष्ठ सादर मार्क


2

इसके द्वारा, आप एक स्थानीय-से-स्थानीय प्रतिलिपि बना रहे हैं rsync। उस स्थिति में, डिफ़ॉल्ट व्यवहार rsyncडेल्टा-ट्रांसफर एल्गोरिथ्म को बंद करना है, और "पूरी-फ़ाइल" स्थानांतरण करना है। इस डिफ़ॉल्ट व्यवहार के लिए तर्क यह है कि डेल्टा-एक्सफर एल्गोरिथ्म का उपयोग करने वाले स्थानीय-से-स्थानीय स्थानान्तरण आमतौर पर पूरी फ़ाइलों की प्रतिलिपि बनाने की तुलना में धीमा होगा, क्योंकि डेल्टा एल्गोरिथ्म में पूरी फाइलिंग करने की तुलना में बहुत अधिक सीपीयू क्रंचिंग शामिल है।

यदि आपको लगता है कि डेल्टा-एक्सफर एल्गोरिथ्म का उपयोग करने से स्थानीय-से-स्थानीय प्रतिलिपि को लाभ होगा, तो आप (या ) विकल्प को rsyncनिर्दिष्ट करके इसका उपयोग करने के लिए बाध्य कर सकते हैं ।--no-W--no-whole-file


प्रतिक्रिया स्टीवन के लिए धन्यवाद! आप सही हैं: मैं परीक्षण के प्रयोजनों के लिए विशुद्ध रूप से एक स्थानीय प्रतिलिपि बना रहा हूं (यह पुष्टि करने के लिए उर्फ ​​कि यह वास्तव में एक अंतर सिंक करेगा)। अंततः फाइलें एक स्थानीय डेटास्टोर में कॉपी हो जाएंगी, एक LUN जिसे मैंने उजागर किया है जो एक रिमोट मशीन पर रहता है। यह वास्तव में सिंक का rsync-to-rsync डेमॉन प्रकार नहीं होगा। --no-whole-fileRsync कमांड के भाग के रूप में विकल्प के लिए मैं इसके लायक हूं ; स्क्रीन के दृश्य से परे।
जूलियसपिव

@ जूलियस: वूप्स, मैंने उस क्षैतिज स्क्रॉल बार को याद किया! ओह अच्छा, अपना समय बर्बाद करने के लिए क्षमा करें।
स्टीवन सोमवार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.