इस लेख में, हम Syncthing के बारे में बात करेंगे - एक नया खुला क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन जो क्लाइंट-सर्वर मॉडल के अनुसार काम करता है और प्रतिभागियों (पी 2 पी) के बीच फ़ाइलों को सिंक्रनाइज़ करने के लिए डिज़ाइन किया गया है। एप्लिकेशन गो में लिखा गया है और कार्यक्षमता के संदर्भ में, बिटटोरेंट सिंक के समान है।
नई सेवा की समीक्षा करने के बाद, हम इसे रास्पबेरी पाई पर स्थापित करने और इसे लैपटॉप के साथ सिंक्रनाइज़ करने का प्रयास करेंगे।
सिस्टम अवलोकन
पी 2 पी नेटवर्क में नोड्स के बीच फ़ाइलों को सिंक्रनाइज़ करने के लिए, एक सरल, कुशल और सुरक्षित ब्लॉक एक्सचेंज प्रोटोकॉल (बीईपी) लिखा गया था। Syncthing कार्यक्रम इस प्रोटोकॉल की क्षमताओं को लागू करता है, हालांकि इसका उपयोग किसी भी सॉफ़्टवेयर में किया जा सकता है। विकास पूरी तरह से खुला है, सभी स्रोत कोड जीथब पर प्रकाशित किया गया है। प्रोटोकॉल भी खुला है, इसलिए किसी भी कीड़े को तुरंत पता लगाया जा सकता है और ठीक किया जा सकता है। कार्यक्रम मैक ओएस एक्स, विंडोज, लिनक्स, फ्रीबीएसडी और सोलारिस के तहत जारी किया गया है, यह आसानी से एक सुविधाजनक वेब इंटरफेस के माध्यम से कॉन्फ़िगर किया गया है, यह एक स्थानीय नेटवर्क या इंटरनेट के माध्यम से काम करता है।
यहाँ व्यवस्थापक पैनल इंटरफ़ेस है:
रेडी-मेड असेंबली जीथब पर सभी प्रमुख प्लेटफार्मों के लिए उपलब्ध हैं, और साइट में प्रलेखन (अंग्रेजी) और एक त्वरित शुरुआत गाइड (अंग्रेजी) भी है ।
कार्यक्रम की विशेषताएं:
- ओपन सोर्स एप्लिकेशन और ओपन प्रोटोकॉल।
- नेटवर्क में प्रत्येक नोड को एक मजबूत प्रमाण पत्र द्वारा पहचाना जाता है।
- ब्लॉक स्तर सिंक्रनाइज़ेशन समर्थन। एक बड़ी फ़ाइल में एक छोटे से बदलाव के साथ, केवल बदला हुआ हिस्सा सिंक्रनाइज़ किया जाएगा।
- कृत्रिम चैनल सीमा का अभाव
- स्पष्ट रूप से निर्दिष्ट करने की क्षमता जो सिंक्रनाइज़ निर्देशिका को नोड करती है वह उपलब्ध होगी।
- अंतिम परिवर्तन की तारीख तक निर्देशिका और फ़ाइल सिंक्रनाइज़ेशन (अब तक समर्थन के बिना संस्करण)।
- "मास्टर-स्लेव" विकल्प, जिसके लिए अन्य नोड्स केवल इस निर्देशिका के साथ सिंक्रनाइज़ होंगे, लेकिन इसकी सामग्री को बदलने में सक्षम नहीं होंगे।
- एक सुविधाजनक अनुकूलनीय वेब इंटरफेस के माध्यम से प्रबंधन।
- क्रॉस-प्लेटफॉर्म। समर्थित ऑपरेटिंग सिस्टम विंडोज, लिनक्स, मैक ओएस एक्स, फ्रीबीएसडी और सोलारिस हैं। एंड्रॉइड के लिए एक अनौपचारिक क्लाइंट है।
- सुरक्षा और गोपनीयता। डेटा को क्लाइंट मशीनों पर संग्रहीत किया जाता है, तृतीय-पक्ष सर्वर के साथ सहभागिता की आवश्यकता नहीं होती है। टीएलएस द्वारा समर्थित।
स्थापना और सेटअप
अब, एक संक्षिप्त अवलोकन के बाद, हम सीधे एप्लिकेशन की स्थापना और कॉन्फ़िगरेशन के लिए आगे बढ़ते हैं। मैं वेब इंटरफेस के साथ मुख्य होस्ट के रूप में होम मैकबुक का उपयोग करूंगा, और क्लाइंट को रास्पबेरी पीआई मॉडल बी पर स्थापित किया जाएगा।
मैकबुक पर
हम वर्तमान रिलीज़ के लिए डाउनलोड पृष्ठ पर जाते हैं और आवश्यक संग्रह डाउनलोड करते हैं, मैक ओएस के लिए आपको syncthing-darwin-amd64-v0.8.13.tar.gz डाउनलोड करना होगा
वर्तमान में समर्थित प्लेटफ़ॉर्म की सूची:
डाउनलोड किए गए संग्रह को अनपैक करें और प्रोग्राम फ़ोल्डर में सिंक्रोट्रिंग फ़ाइल चलाएं।
हम प्रोग्राम को समाप्त करने के लिए प्रतीक्षा करते हैं और कंसोल को फॉर्म की एक पंक्ति में पाते हैं:
मेरी आईडी: WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS
यह सिस्टम पहचानकर्ता है, इसे याद रखें, यह हमारे लिए थोड़ी देर बाद उपयोगी होगा। अब ग्राहक के साथ सौदा करते हैं।
रास्पबेरी पाई पर
हम रास्पबेरी पाई कंसोल में जाएंगे और इस प्लेटफॉर्म के लिए पैकेज डाउनलोड करेंगे:
wget https://github.com/calmh/syncthing/releases/download/v0.8.13/syncthing-linux-armv5-v0.8.13.tar.gz
अब अनपैक करें और सेवा शुरू करें
tar xvzf synct* cd synct* ./syncthing
यह तब तक प्रतीक्षा करना आवश्यक है जब तक कि एक विशिष्ट पहचानकर्ता कुंजी उत्पन्न न हो जाए और इसे याद भी रखें (लिखें)।
उसके बाद, आपको लैपटॉप पर उत्पन्न पहली कुंजी को config.xml कॉन्फ़िगरेशन फ़ाइल में जोड़ना होगा।
nano /home/pi/.config/syncthing/config.xml
और रिपॉजिटरी शाखा में "लैपटॉप" आईडी और साथ ही एक नया नोड जोड़ें:
<रिपॉजिटरी आईडी = "डिफ़ॉल्ट" निर्देशिका = "/ होम / पीआई / सिंक" आरओ = "गलत">
<नोड आईडी = "रास्पबेरी-पाई-आईडी"> </ नोड>
<नोड आईडी = "आपका कंप्यूटर-आईडी"> </ नोड>
</ भंडार>
<नोड आईडी = "आपका कंप्यूटर-आईडी" नाम = "होस्टनाम"> <पता> गतिशील </ पता>
</ नोड>
मैं इसे इस तरह मिला
<रिपॉजिटरी आईडी = "डिफॉल्ट" डायरेक्टरी = "/ होम / पीआई / सिंक" आरओ = "गलत" इग्नोरपर्म = "गलत">
<नोड आईडी = "EGOE6LPEVKJQ3EVYJNZJ2QC6NHTQA7L5SPCOGCSZ33DTLTTCM22D"> </ node>
<नोड आईडी = "WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS"> </ नोड>
<versioning> </ versioning>
</ भंडार>
<नोड आईडी = "EGOE6LPEVKJQ3EVYJNZJ2QC6NHTQA7L5SPCOGCSZ33DTLTTCM22D" नाम = "raspberrypi">
<पता> गतिशील </ पता>
</ नोड>
<नोड आईडी = "WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS" नाम = "मैकबुक">
<पता> गतिशील </ पता>
</ नोड>
सामान्य तौर पर, कॉन्फ़िगरेशन फ़ाइल पर्याप्त रूप से पढ़ने योग्य होती है और इसमें ऐसे पैरामीटर होते हैं जो हो सकते हैं, और अधिक जानकारी के लिए, आप दस्तावेज़ को संदर्भित कर सकते हैं।
रास्पबेरी पाई पर क्लाइंट सेटअप पूरा हो गया है, यह कमांड के साथ सेवा को फिर से शुरू करने के लिए बना हुआ है
./syncthing &
या इसे /etc/rc.local पर स्टार्टअप में जोड़ें।
काम की जाँच
लैपटॉप के ब्राउज़र में फिर से http://127.0.0.1:8080 पता खोलें और संपादित करें का चयन करें → ऊपरी दाएं कोने में नोड जोड़ें
दिखाई देने वाली विंडो में, फ़ील्ड भरें, पहले से प्राप्त रास्पबेरी पाई आईडी, मेजबान नाम का संकेत। पता फ़ील्ड "डायनामिक" है।
चलो निर्देशिकाओं को सिंक्रनाइज़ करने का प्रयास करें। डिफ़ॉल्ट रूप से, प्रत्येक नोड पर एक सिंक्रनाइज़ेशन फ़ोल्डर ~ / सिंक / में बनाया जाता है।
हमने फ़ाइल डाल दी और थोड़ी देर बाद इसे अन्य नोड्स के साथ सिंक्रनाइज़ किया जाएगा।
अब आप तेजी से प्रोटोकॉल का उपयोग करके मशीनों के बीच डेटा को सिंक्रनाइज़ कर सकते हैं। फ़ाइलों का आदान-प्रदान करने के लिए, आपको बस उस व्यक्ति को अपना कंप्यूटर आईडी बताना होगा, जिसके साथ आप साझा संग्रहण को व्यवस्थित करना चाहते हैं।
आंकड़े
रास्पबेरी पाई लोड
Syncthing व्यवस्थापक पैनल से:
रैम उपयोग: ~ 10 एमबी
CPU यूटिलाइजेशन: ~ 1% रेस्ट पर और 60% तक सिंक्रोनाइजेशन के दौरान।
सिंक्रनाइज़ेशन के तहत मेमोरी और प्रोसेसर के आउटपुट आँकड़े (htop)
मैकबुक प्रो'13 लोड
Syncthing व्यवस्थापक पैनल से:
रैम उपयोग: ~ 20 एमबी
CPU उपयोग: ~ 12 - 30%
सिस्टम उपयोगिता गतिविधि मॉनिटर से स्क्रीन आँकड़े
आँकड़ों को इकट्ठा करने की प्रक्रिया में, मैंने पाया कि यदि ब्राउज़र में व्यवस्थापक पैनल खुला है, तो प्रोसेसर समय का उपयोग कई गुना (5 से 40% तक) बढ़ जाता है
जबकि पृष्ठभूमि प्रक्रिया (बिना व्यवस्थापक पैनल) केवल 2−4% की खपत होती है
उदाहरण के लिए, बिटटोरेंट सिंक में 5-9% की खपत होती है। डेटा, निश्चित रूप से सापेक्ष हैं और अन्य कारकों के लोहे पर निर्भर हैं, लेकिन कुछ निष्कर्ष अभी भी इसे संभव बनाते हैं।
निष्कर्ष का आधार - ब्राउज़र में व्यवस्थापक पैनल को खुला न छोड़ें, यहां तक कि पृष्ठभूमि टैब में भी, अनावश्यक रूप से।
निष्कर्ष
यह एप्लिकेशन एक ही बिटटोरेंट सिंक की तुलना में कितना अधिक सुविधाजनक और कुशल है - जो मैं पहले से ही उपयोग कर रहा हूं - समय बताएगा। Syncthing जानकारी की खोज के कुछ ही घंटों बाद पोस्ट को गर्म खोज में लिखा गया था।
टिप्पणियों में अपने प्रश्न लिखें, मैं सेवा का परीक्षण करने की योजना बना रहा हूं और, अगर यह दिलचस्प होगा, तो मैं सिंक्रनाइज़ेशन गति, लोड आदि के बारे में जानकारी के साथ पोस्ट को पूरक करने का प्रयास करूंगा।
संबंधित लिंक
गिहाब प्रोजेक्ट: github.com/calmh/syncthing#
विभिन्न प्लेटफार्मों के लिए कार्यक्रम के वर्तमान संस्करण: github.com/calmh/syncthing/releases/latest
दस्तावेज़ीकरण: प्रवचन। syncthing.net/category/documentation
समर्थन मंच: प्रवचन। Syncthing.net
रास्पबेरी पाई (डेबियन) के लिए ऑटोरन स्क्रिप्ट: gist.github.com/arudmin/5a13e9105814c3f568ec