दूरस्थ ssfs पर दूरस्थ और rsync स्थानीय पर rsync के बीच अंतर?


12

अगर मैं दूरस्थ मेजबान (ssh: //) के साथ rsync को स्रोत / गंतव्य के रूप में चलाता हूं या sshfs के माध्यम से माउंटेड डायरेक्टरी को साझा करने के लिए स्थानीय पथ का उपयोग करने में कोई अंतर है?

क्या कोई स्विच उपयोग के बिना सुरक्षा या प्रतिलिपि गति के संबंध में मतभेद हो सकते हैं, बस puse rsync संग्रह मोड और दूरस्थ होस्ट पथ (ssh)। Sshfs के साथ बस स्रोत और गंतव्य के साथ माउंट होता है (कोई सिफर परिवर्तन नहीं, बस डिफ़ॉल्ट)।

जवाबों:


17

SSHFS सुविधाजनक है, लेकिन यह rsync या अधिक सामान्यतः सिंक्रोनाइज़ेशन टूल के साथ अच्छी तरह से जाली नहीं करता है।

सबसे बड़ी समस्या यह है कि SSHFS मोटे तौर पर rsync के प्रदर्शन अनुकूलन को मारता है। विशेष रूप से, मध्यम से बड़ी फ़ाइलों के लिए, जब rsync देखता है कि किसी फ़ाइल को संशोधित किया गया है, तो यह केवल संशोधित किए गए भागों को स्थानांतरित करने के लिए प्रत्येक तरफ फ़ाइल के कुछ हिस्सों पर चेकसम की गणना करता है। यह केवल एक अनुकूलन है यदि नेटवर्क बैंडविड्थ डिस्क बैंडविड्थ की तुलना में काफी छोटा है, जो आमतौर पर मामला है। लेकिन SSHFS के साथ, "डिस्क" बैंडविड्थ वास्तव में नेटवर्क बैंडविड्थ है, इसलिए rsync को पूरी फ़ाइल को पढ़ना होगा ताकि यह निर्धारित किया जा सके कि क्या कॉपी करना है। वास्तव में, एक स्थानीय प्रतिलिपि के साथ (जो यह है, जहां तक ​​rsync का संबंध है, भले ही पक्षों में से एक SSHFS पर है), rsync बस पूरी फ़ाइल की प्रतिलिपि बनाता है।

अगर कई छोटी फाइलें हैं तो SSHFS प्रदर्शन के लिए हानिकारक है। Rsync को यह संशोधित करने के लिए निर्धारित करने के लिए हर फ़ाइल के कम से कम मेटाडेटा की जाँच करने की आवश्यकता है। SSHFS के साथ, इसके लिए प्रत्येक फ़ाइल के लिए नेटवर्क राउंड ट्रिप की आवश्यकता होती है। SSH पर rsync के साथ, दोनों पक्ष थोक में समानांतर और हस्तांतरण जानकारी में काम कर सकते हैं, जो बहुत तेज है।

एक्सेस प्रतिबंधों के संदर्भ में, SSHFS को SFTP एक्सेस की आवश्यकता होती है, जबकि rsync को शेल के माध्यम से कोड (विशेष रूप से, rsync प्रोग्राम) को चलाने की क्षमता की आवश्यकता होती है। यदि उपयोगकर्ता के पास एक शेल खाता नहीं है, तो एक विशेष शेल के साथ एक खाता प्रदान करना संभव और सामान्य है जो केवल कुछ कार्यक्रमों को चलाने की अनुमति देता है जिसमें शामिल हैं sftp-serverऔर rsync। देखें क्या आपको एससीपी के लिए एक शेल की आवश्यकता है?

यदि आप केवल नई फ़ाइलों की प्रतिलिपि बना रहे हैं और बहुत बड़ी संख्या में फ़ाइलें नहीं हैं, तो कोई सार्थक प्रदर्शन अंतर नहीं है।

SSHFS एक SSH कनेक्शन स्थापित करता है जब फाइलसिस्टम आरोहित होता है और उस कनेक्शन को तब तक बरकरार रखता है जब तक कि यह अनमाउंट न हो जाए। Rsync हर बार जब आप इसे चलाते हैं तो एक नया कनेक्शन बनाते हैं, लेकिन आप हर बार प्रमाणित करने से बचने के लिए एक ही मुख्य कनेक्शन पर मल्टीप्लेक्सिंग फीचर और पिगबैक का उपयोग कर सकते हैं ।

SSHFS एक FUSE फाइल सिस्टम है और इस प्रकार केवल पारंपरिक यूनिक्स मेटाडेटा और ACL का समर्थन करता है। रुपीक्स विस्तारित विशेषताओं को स्थानांतरित कर सकता है (आपको उपयोग करने की आवश्यकता है rsync -aAX, ध्यान दें कि एक सादे -aकेवल पारंपरिक यूनिक्स मेटाडेटा को संरक्षित करता है)।


उदाहरण के लिए मेरे पास माउंटेड SSHFS डायरेक्टरी पर एक सिंगल कंप्रेस्ड फाइल है और उस फाइल को मेरे लोकल डायरेक्टरी में कॉपी किया गया है। बाद में उस फाइल को माउंटेड डायरेक्टरी में अपडेट किया जाता है और मैं केवल इसके अपडेटेड सेक्शन को अपने लोकल डाइरेक्टरी में कॉपी करना चाहता हूं rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz। जब मैं rsyncइस ऑपरेशन के लिए उपयोग करता हूं , तो चेकसम की गणना के दौरान केवल उन भागों को स्थानांतरित करने के लिए जो संशोधित किए गए हैं, क्या rsyncपूरी फाइल को पढ़ना चाहिए, जिससे पूरा डेटा केवल इसके अद्यतन अनुभाग के बजाय डाउनलोड किया जा सकेगा? @Gilles
alper

1
@alper जब आप ssfs पर rsync का उपयोग करते हैं, तो rsync को पूरी फ़ाइल पढ़नी होती है। यह नहीं जान सकता कि अन्यथा अद्यतन करने की आवश्यकता क्या है। केवल चेकसमों को स्थानांतरित करके अनुकूलित करने का कोई तरीका नहीं है क्योंकि सर्वर पर चेकसमों की गणना करने का कोई तरीका नहीं है।
गिल्स एसओ- बुराई को रोकें '

क्या यह वही होगा यदि लक्ष्य स्थान sshfsकनेक्शन के बजाय एक घुड़सवार फ़ोल्डर है ? कृपया देखें: unix.stackexchange.com/q/544404/198423 @Gilles
alper

4

अपने मुख्य प्रश्न का उत्तर देने के लिए: हाँ मतभेद हैं। साथ sshfsवहाँ सुरक्षित चैनल के द्वारा और ssh से अधिक rsync के साथ दूरस्थ फ़ाइलें एक्सेस करने के लिए, कि सुरक्षित चैनल की स्थापना की है एक मौजूदा कनेक्शन है एक दूरस्थ rsync उदाहरण के लिए बात करने के लिए

आपके द्वितीयक प्रश्न का उत्तर देने के लिए: ss पर rsync अधिक तेज़ होगा, यदि सभी इंस्टेंसेस नहीं हैं, क्योंकि दूरस्थ सिस्टम पर rsync फाइलों को खोजने में अधिक बुद्धिमत्ता प्रदान करता है, जिसे सिंकिंग की आवश्यकता नहीं है, लेकिन मुख्यतः क्योंकि यह आपके समानांतर चलता है स्थानीय rsync उस जानकारी को इकट्ठा करने के लिए।

दोनों तरीकों की सुरक्षा ssh मापदंडों (की-लेंथ, एल्गोरिदम) के समान कॉन्फ़िगरेशन को समान मानती है। चूक आपके स्रोत और गंतव्य प्रणाली के लिए क्या हैं, उन प्रणालियों पर वितरण के संयोजन पर निर्भर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.