बड़ी फाइल ट्री से मेरा मतलब लगभग 200k फाइल है, और हर समय बढ़ता रहता है। हालाँकि किसी भी समय अपेक्षाकृत कम संख्या में फाइलें बदली जा रही हैं।
द्विदिश से मेरा मतलब है कि परिवर्तन सर्वर पर हो सकते हैं और दूसरे को धकेलने की आवश्यकता है, इसलिए rsync उचित नहीं लगता है।
दूर से मेरा मतलब है कि सर्वर दोनों डेटा सेंटर में हैं, लेकिन भौगोलिक रूप से एक दूसरे से दूरस्थ हैं। वर्तमान में केवल 2 सर्वर हैं, लेकिन समय के साथ इसका विस्तार हो सकता है।
वास्तविक समय तक, सिंक्रनाइज़ेशन के बीच थोड़ा विलंबता होना ठीक है, लेकिन हर 1-2 मिनट में एक क्रोन चलाना सही नहीं लगता है, क्योंकि किसी भी घंटे में फ़ाइलों का एक बहुत छोटा अंश बदल सकता है, अकेले मिनट दें।
संपादित करें : यह VPS पर चल रहा है इसलिए मैं कर्नेल-स्तर के सामान पर सीमित हो सकता हूं जो मैं कर सकता हूं। इसके अलावा, वीपीएस संसाधन-समृद्ध नहीं हैं, इसलिए मैं उन समाधानों से दूर हटूंगा, जिनके लिए बहुत सारे रैम की आवश्यकता होती है (जैसे ग्लस्टर!)।
इसे प्राप्त करने के लिए सबसे अच्छा / सबसे "स्वीकृत" तरीका क्या है? ऐसा लगता है कि यह एक आम ज़रूरत होगी, लेकिन मैं अभी तक आम तौर पर स्वीकृत दृष्टिकोण नहीं पा सका हूं, जो आश्चर्यजनक था। (मैं जनता की सुरक्षा चाह रहा हूँ। :)
मैं फाइलसिस्टम परिवर्तन स्तर पर एक सिंक को ट्रिगर करने के लिए lsyncd के पार आया हूँ । यह सुपर आम नहीं है, हालांकि चालाक लगता है, और मैं विभिन्न lsyncd दृष्टिकोण से थोड़ा उलझन में हूँ। वहाँ बस rsync के साथ lsyncd का उपयोग कर रहा है, लेकिन ऐसा लगता है कि यह द्विदिशता के लिए नाजुक हो सकता है क्योंकि rsync में स्मृति की धारणा नहीं होती है (उदाहरण के लिए, यह जानना कि A पर कोई हटाई गई फ़ाइल B पर हटाई जानी चाहिए या B पर एक नई फ़ाइल है या नहीं कि ए को कॉपी किया जाना चाहिए)। lipsync सिर्फ एक lsyncd + rsync कार्यान्वयन, सही प्रतीत होता है?
फिर csync2 के साथ lsyncd का उपयोग कर रहे हैं , इस तरह: https://icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ मैं इस दृष्टिकोण की ओर झुक रहा हूं, लेकिन csync2 थोड़ा विचित्र है, हालांकि मैंने इसका सफल परीक्षण किया। मैं ज्यादातर इस बात से चिंतित हूँ कि मैं इस पद्धति की बहुत सारी सामुदायिक पुष्टि नहीं कर पाया हूँ।
यहाँ पर लोग Unison को बहुत पसंद करते हैं, लेकिन ऐसा लगता है कि यह अब सक्रिय विकास के अधीन नहीं है और यह स्पष्ट नहीं है कि इसमें lsyncd जैसा स्वचालित ट्रिगर है।
मैंने ग्लस्टर का उल्लेख देखा है , लेकिन शायद मुझे जो चाहिए, उसके लिए ओवरकिल हो?
अद्यतन: fyi- मैंने अपने मूल समाधान के साथ जाना समाप्त कर दिया है: lsyncd + csync2। यह काफी अच्छा काम करता है, और मुझे लगता है कि सर्वरों के वास्तुशिल्प दृष्टिकोण को बहुत ही शिथिल रूप से शामिल किया गया है, ताकि प्रत्येक सर्वर अनिश्चित काल तक अपने बीच लिंक गुणवत्ता की परवाह किए बिना काम कर सके।