उच्च गति, उच्च-विलंबता WAN लिंक पर एक बड़ी फ़ाइल को स्थानांतरित करने का सबसे अच्छा तरीका क्या है?


21

यह इस एक से संबंधित दिखता है , लेकिन यह कुछ अलग है।

दो कंपनी साइटों के बीच यह WAN लिंक है, और हमें एक बहुत बड़ी फ़ाइल (Oracle डंप, ~ 160 जीबी) को स्थानांतरित करने की आवश्यकता है।

हमें पूर्ण 100 एमबीपीएस बैंडविड्थ (परीक्षण) मिला है, लेकिन एक टीसीपी कनेक्शन की तरह दिखता है कि टीसीपी कैसे काम करता है (एसीके आदि) के कारण इसे अधिकतम नहीं किया जा सकता है। हमने iperf के साथ लिंक का परीक्षण किया , और टीसीपी विंडो का आकार बढ़ाते समय नाटकीय रूप से परिणाम बदलते हैं: बेस सेटिंग्स के साथ हमें ~ 5 एमबीपीएस थ्रूपुट मिलता है, एक बड़े डब्ल्यूएस के साथ हम ~ 45 एमबीपीएस तक प्राप्त कर सकते हैं, लेकिन इससे अधिक नहीं। नेटवर्क विलंबता लगभग 10 ms है।

जिज्ञासा से बाहर, हम एक से अधिक कनेक्शनों का उपयोग करते हुए iperf भाग गए, और हमने पाया कि जब उनमें से चार दौड़ रहे थे, तो वे वास्तव में ~ 25 एमबीपीएस की गति प्राप्त करेंगे, जो सभी उपलब्ध बैंडविड्थ को भरते हुए; इसलिए कुंजी एक साथ कई स्थानांतरण चलाने में लगती है।

एफ़टीपी के साथ, चीजें खराब हो जाती हैं: यहां तक ​​कि अनुकूलित टीसीपी सेटिंग्स (उच्च विंडो आकार, अधिकतम एमटीयू, आदि) के साथ भी हम एक हस्तांतरण पर 20 एमबीपीएस से अधिक नहीं प्राप्त कर सकते हैं। हमने एक ही समय में कुछ बड़ी फ़ाइलों को एफ़टीपी करने की कोशिश की, और वास्तव में एक सिंगल ट्रांसफर करते समय चीजें बहुत बेहतर हो गईं; लेकिन तब अपराधी डिस्क I / O बन गया, क्योंकि एक ही डिस्क की बाधाओं से चार बड़ी फ़ाइलों को पढ़ना और लिखना बहुत जल्द; इसके अलावा, हम उस एक बड़ी फ़ाइल को छोटे में विभाजित करने में सक्षम नहीं दिखते हैं और फिर इसे वापस मर्ज कर देते हैं, कम से कम स्वीकार्य समय में नहीं (जाहिर है कि हम splicing खर्च नहीं कर सकते हैं / फ़ाइल को उस समय की तुलना में विलय कर सकते हैं) इसे स्थानांतरित करना)।

यहां आदर्श समाधान एक मल्टीथ्रेडेड उपकरण होगा जो एक ही समय में फ़ाइल के विभिन्न हिस्सों को स्थानांतरित कर सकता है; ई-मेल या बिटटोरेंट जैसे सहकर्मी से सहकर्मी कार्यक्रम पहले से ही करते हैं, लेकिन एकल स्रोत से एकल गंतव्य तक। आदर्श रूप से, टूल हमें यह चुनने की अनुमति देगा कि कितने समानांतर कनेक्शन का उपयोग करना है, और निश्चित रूप से डिस्क I / O को फ़ाइल के विभिन्न वर्गों के बीच कूद (भी) नहीं करने के लिए अनुकूलित करें।

क्या कोई ऐसे उपकरण के बारे में जानता है?

या, क्या कोई बेहतर समाधान और / या ऐसा कुछ सुझा सकता है जिसे हमने पहले से ही आजमाया नहीं है?

पुनश्च हमने पहले ही टेप / डिस्क का समर्थन करने और शारीरिक रूप से गंतव्य पर भेजने का समर्थन करने के बारे में सोचा था; अगर हमारा वैन इसे नहीं काटता है, तो यह चरम उपाय होगा, लेकिन, जैसा कि तानबाम ने कहा, "कभी भी हाईवे पर चोट करने वाले टेपों से भरे स्टेशन वैगन की बैंडविड्थ को कम मत समझो।"


1
जिज्ञासा से बाहर, क्या यह समय वास्तव में महत्वपूर्ण है? इसके अलावा, 160Gb स्थानांतरण की अवधि के लिए लिंक को संतृप्त करने से आपके बाकी नेटवर्क पर कोई प्रभाव नहीं पड़ेगा?
ब्रायन

6
मुझे याद है कि कुछ डीएलटी ऑटोलॉजर्स और कुछ सौ कारतूस एक ग्राहक को '99 में वापस भेजना। हमने अपनी कार w / लगभग 200 DLT IV कारतूसों की कच्ची क्षमता की गणना की, जो कि इसमें भरी हुई (35GB कच्ची क्षमता प्रत्येक) 6.35BB पर थीं। मैंने हमारे कार्यालय से ग्राहक की साइट पर लगभग 55 मिनट में पहुंचाया, "इंटरस्टेट के नीचे पागल जैसे जियो मेट्रो ड्राइविंग में" इवान परिवहन तंत्र को लगभग 118 जीबी / मिनट का प्रभावी थ्रूपुट दिया। अच्छा थ्रूपुट, लेकिन विलंबता एक हत्यारा था ...> मुस्कान <
इवान एंडरसन

ब्रायन: हाँ, समय महत्वपूर्ण है (यह मानक एफ़टीपी और मानक नेटवर्क सेटिंग्स के साथ ट्वेंटी घंटे लेता है), और नहीं, लिंक को संतृप्त करने में कोई समस्या नहीं होगी, क्योंकि स्थानांतरण ऑफ-वर्क समय में निर्धारित किया जाएगा।
मैसिमो

इवान: यही मेरा मतलब है ;-)
मासिमो

मैं इसी तरह की स्थिति के साथ काम कर रहा हूं, ~ 200GB SQL .bak के साथ, केवल उसी तरीके को छोड़कर, जो मैं संतृप्त करने के लिए WAN लिंक प्राप्त करने में सक्षम था, एफ़टीपी के साथ। मैंने शून्य संपीड़न के साथ 7-ज़िप का उपयोग करके इसे 512MB चंक्स में तोड़ दिया। "कम्प्रेशन" और "डीकंप्रेसन" बार बहुत कम थे; पूरे देश में फावड़ा चलाने वाले भौतिक मीडिया की तुलना में सभी में बहुत बेहतर है। (साइट अमेरिका के विपरीत तटों पर हैं)
एड्रिएन

जवाबों:


15

"उच्च विलंबता फ़ाइल स्थानांतरण" के लिए खोज करने से कई दिलचस्प हिट मिलते हैं। स्पष्ट रूप से, यह एक ऐसी समस्या है जो कॉम्पसी समुदाय और वाणिज्यिक समुदाय दोनों ने ही तुगलक की है।

बिल फिट करने के लिए दिखाई देने वाली कुछ व्यावसायिक पेशकश:

  • FileCatalyst में ऐसे उत्पाद होते हैं जो UDP या कई TCP स्ट्रीम का उपयोग करके उच्च-विलंबता नेटवर्क पर डेटा स्ट्रीम कर सकते हैं। उन्हें बहुत सी अन्य सुविधाएँ भी प्राप्त हुई हैं, (ऑन-द-फ्लाई कम्प्रेशन, डेल्टा ट्रांसफ़र आदि)।

  • FASP Aspera से फ़ाइल स्थानांतरण "तकनीक" क्या तुम, के लिए देख रहे रूप में अच्छी तरह के लिए बिल फिट करने के लिए प्रकट होता है।

ओपन-सोर्स दुनिया में, uftp परियोजना आशाजनक दिखती है। आपको विशेष रूप से इसकी बहुस्त्र्पीय क्षमताओं की आवश्यकता नहीं है, लेकिन रिसीवरों को फ़ाइल नष्ट करने का मूल विचार, हस्तांतरण के अंत में छूटे हुए ब्लॉक के लिए NAK प्राप्त करना, और फिर NAK'd ब्लॉकों (lather, कुल्ला, दोहराना) को नष्ट करना ऐसा लगता है कि आपको क्या चाहिए, क्योंकि रिसीवर से कोई ACK'ing (या NAK'ing) नहीं है, जब तक कि फ़ाइल स्थानांतरण एक बार पूरा नहीं हो जाता। यह मानते हुए कि नेटवर्क केवल अव्यक्त है, और हानिपूर्ण नहीं है, यह वही कर सकता है जो आपको चाहिए।


uftp वास्तव में आशाजनक लग रहा है, मैं दो डेस्कटॉप कंप्यूटरों के बीच 30 एमबीपीएस प्राप्त करने में सक्षम था (जो निश्चित रूप से डिस्क प्रदर्शन पर इतना महान नहीं हैं); मैं इसे जल्द ही "वास्तविक" सर्वर पर परीक्षण करूँगा। मैं पंजीकरण फॉर्म में कुछ बग के कारण FileCatalyst डेमो लाइसेंस प्राप्त करने में सक्षम नहीं था (यह कहता है कि अनुरोध संख्या पहले से ही उपयोग की जा चुकी है), और बस उन्हें प्रस्ताव नहीं है।
मैसिमो

उचित डिस्क के साथ दो कंप्यूटरों के बीच 60 एमबीपीएस और एक बड़ा बफर प्राप्त होता है। महान!
मासिमो

मुझे फ्री / ओपन सोर्स सॉफ्टवेयर बहुत पसंद है! > मुस्कान <मैं निश्चित रूप से uftp देने जा रहा हूँ कुछ सामान के साथ मैं कर रहा हूँ। मैं सोच रहा हूं कि यह लिनक्स-आधारित मल्टीकास्ट डिस्क-इमेजिंग समाधान में कैसे होगा जो मैंने "udpcast" का उपयोग करके कुछ साल पहले एक साथ रखा था।
इवान एंडरसन

कुछ समय पहले मैंने serverfault.com/questions/173358/multicast-file-transfers से पूछा कि आखिरकार मैं इस निष्कर्ष पर पहुंचा कि uftp और mrsync पसंद के उपकरण थे। कृपया वहां पर टिप्पणियों में पोस्ट करें यदि आप uftp के साथ कुछ उपयोगी करते हैं, जैसा कि मैं इस वर्ष एक या दूसरे का फिर से उपयोग करूंगा (एक सम्मेलन के लिए तैयारी)।
जेड डैनियल्स

2
जब मैं यूएफटीपी, यूडीटी और सुनामी यूडीपी के साथ काम कर रहा था, तब यूएफटीपी का तीनों में सबसे खराब प्रदर्शन था। बेशक, यह शायद सबसे परिपक्व प्रोटोकॉल है। यूडीटी केवल एक सरल स्थानांतरण प्रोटोकॉल प्रदान करता है और कस्टम सॉफ्टवेयर विकसित करने के लिए एक पुस्तकालय के रूप में कार्य करने के लिए डिज़ाइन किया गया था और सुनामी के लेखक ने वास्तव में हमें यूडीटी की ओर इशारा किया क्योंकि हाल ही में समय की कमी के कारण हाल ही में सुनामी सक्रिय रूप से विकसित नहीं हुई है।
थॉमस ओवेन्स

9

वास्तव में यह अजीब सुझाव है। अपने नेटवर्क पर फ़ाइल को होस्ट करने के लिए एक सरल वेब सर्वर सेट करें (मैं nginx का सुझाव देता हूं, संयोगवश), फिर दूसरे छोर पर फ़ायरफ़ॉक्स के साथ एक पीसी सेट करें और डाउनटेम एएल एक्सटेंशन स्थापित करें।

यह एक डाउनलोड त्वरक है जो चैंकिंग और री-असेंबली का समर्थन करता है।
आप पुनः-असेंबली के लिए प्रत्येक डाउनलोड को 10 विखंडू में तोड़ सकते हैं, और यह वास्तव में चीजों को तेज बनाता है!

(चेतावनी: मैंने इसे 160GB जितना बड़ा कभी नहीं आज़माया है, लेकिन यह 20GB आईएसओ फाइलों के साथ अच्छा काम करता है)


एक ही कंप्यूटर के बीच 40 एमबीपीएस। बहुत अच्छा लग रहा है, भी।
मैसिमो

1
फ़ायरफ़ॉक्स को axel.alioth.debian.org से बदलें और यह सुझाव का बुरा नहीं है।
जस्टिन

7

UDT परिवहन शायद उच्च विलंबता संचार के लिए सबसे लोकप्रिय परिवहन है। यह सेक्टर / क्षेत्र को "उच्च प्रदर्शन वितरित फ़ाइल सिस्टम और समानांतर डेटा प्रोसेसिंग इंजन" नामक उनके अन्य सॉफ़्टवेयर की ओर जाता है, जो देखने लायक हो सकता है।


1
मैंने उच्च-विलंबता और उच्च-पैकेट हानि वाले नेटवर्क पर हस्तांतरण के लिए UDT के साथ कुछ काम किया। UDT टीसीपी आधारित प्रोटोकॉल की तुलना में विलंबता और पैकेट हानि के लिए बहुत अधिक लचीला है, विशेष रूप से एक बार जब आप अपने नेटवर्क स्थलाकृति के अनुरूप भीड़ नियंत्रण एल्गोरिथ्म को बदलते हैं।
थॉमस ओवेन्स

यहाँ तक कि UDT के साथ rsync का एक संस्करण भी बनाया गया है, इसे "UDR" कहा जाता है। github.com/LabAdvComp/UDR
Max

5

मेरा उत्तर थोड़ा देर से आया है, लेकिन मुझे यह प्रश्न ठीक लगा, जबकि मुझे समझ में आया। उस खोज के दौरान मुझे यह भी पता चला: http://tsunami-udp.sourceforge.net/ , "सुनामी यूडीपी प्रोटोकॉल"।

उनकी वेबसाइट से:

एक तेज़ उपयोगकर्ता-स्पेस फ़ाइल ट्रांसफर प्रोटोकॉल जो बहुत ही उच्च गति लंबी दूरी के नेटवर्क (even 1 Gbps और यहां तक ​​कि 10 GE) पर हस्तांतरण के लिए टीसीपी नियंत्रण और यूडीपी डेटा का उपयोग करता है, जो एक ही नेटवर्क पर टीसीपी के साथ अधिक से अधिक थ्रूपुट प्रदान करने के लिए डिज़ाइन किया गया है। वही नेटवर्क।

जहां तक ​​गति जाती है, पृष्ठ में इस परिणाम का उल्लेख होता है (1GBit लिंक पर हेलसिंकी, फिनलैंड से बॉन, जर्मनी के बीच एक लिंक का उपयोग करते हुए:

चित्र 1 - इंटरनेट पर अंतर्राष्ट्रीय स्थानांतरण, 800 Mbit / सेकंड का औसत

यदि आप एक डाउनलोड त्वरक का उपयोग करना चाहते हैं, तो lftp पर एक नज़र डालें, यह एकमात्र डाउनलोड त्वरक है जो एक पुनरावर्ती दर्पण कर सकता है, जहां तक ​​मुझे पता है।


1
स्टीव-ओ के उत्तर में पहले की परियोजना पर मैंने टिप्पणी की, हमने यूडीटी, सुनामी यूडीपी और यूएफटीपी को बेंचमार्क किया। हमने पाया कि विलंबता का प्रदर्शन पर भारी प्रभाव पड़ा, जबकि पैकेट का नुकसान (सुनामी प्रलेखन के विपरीत) नहीं हुआ। परीक्षण नेटवर्क में 100ms विलंबता को जोड़कर सुनामी का प्रदर्शन लगभग 250Mbits / सेकंड से लगभग 50Mbits / सेकंड (मुझे विश्वास है कि मेरे पास मेरी संख्याएं और इकाइयां हैं - यह थोड़ी देर के लिए है, लेकिन यह एक बड़ी गिरावट थी)। दूसरी ओर, 10% पैकेट लॉस को न्यूनतम विलंबता नेटवर्क से जोड़ने पर, केवल प्रदर्शन 250Mbits / सेकंड से घटकर लगभग 90Mbits / सेकंड हो गया।
थॉमस ओवेन्स

4

Bbcp बहुत ही प्रासंगिक पृष्ठ से उपयोगिता 'कैसे नेटवर्क के माध्यम से डेटा की बड़ी मात्रा के हस्तांतरण के लिए' सरल समाधान हो रहा है।


मुझे नहीं लगता कि bbcp को उच्च विलंबता के लिए अनुकूलित किया गया है। मैं डिफ़ॉल्ट सेटिंग्स के साथ इस समय एक ट्रांसअटलांटिक लिंक पर ~ 20 एमबी / सेकंड प्राप्त कर रहा हूं।
मैक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.