सारांश
आप एक स्थानीय डिस्क / फाइल सिस्टम से पढ़े गए लिनक्स पर कैसे कॉन्फ़िगर कर सकते हैं और एक ही समय में एक नेटवर्क शेयर पर लिख सकते हैं, जैसा कि पढ़ने के लिए विरोध किया जाता है जबकि कोई डेटा नेटवर्क पर नहीं जा रहा है, फिर उस डेटा को नेटवर्क पर भेजते समय स्थानीय डिस्क है निष्क्रिय?
केवल एक ऑपरेशन करने और फिर एक दूसरे से बारी-बारी से काम करने के बजाय एक ही समय में पढ़ना और लिखना बहुत तेज़ है।
विवरण
मैं लिनक्स मशीन पर स्थानीय डिस्क से बड़ी मात्रा में डेटा को एनएएस डिवाइस पर ले जा रहा हूं।
मैं उपयोग कर रहा हूँ rsync
मूल रूप से कॉपी करने के लिए /srv/data
में /mnt/nas
है, जो एक CIFS माउंट।
यह अच्छी तरह से शुरू हुआ, 100 एमबी / सेकंड में पढ़ना और एनएएस को 100 एमबी / सेकंड (गीगाबिट नेटवर्क की सीमा) पर पढ़ना, एक साथ पढ़ना और लिखना दोनों के साथ।
हालाँकि अब, कुछ घंटों बाद, मुझे पता चला है कि यह स्थानीय डिस्क से पढ़ रहा है, तब एनएएस को लिखते समय रीड को रोकना, फिर जब एनएएस को लिखने के लिए अधिक डेटा नहीं है, तो यह डिस्क से रीडिंग को फिर से शुरू करता है। फिर। डिस्क पढ़ने के दौरान नेटवर्क निष्क्रिय है, और नेटवर्क उपयोग में होने के दौरान डिस्क बेकार है।
कहने की जरूरत नहीं है कि 200 एमबी पढ़ना फिर 200 एमबी लिखना एक ही समय में उस 200 एमबी को पढ़ने और लिखने की तुलना में अधिक समय लेता है।
मैं कर्नेल को कैसे कॉन्फ़िगर कर सकता हूं, जो पढ़ने और लिखने के पहले के व्यवहार से चिपक जाता है, एक बार में केवल एक ही ऑपरेशन को पढ़ने, लिखने के बीच बारी-बारी से करने के बजाय?
कुछ अवलोकन: जब स्थानीय डिस्क 100 + एमबी / सेकेंड पर पढ़ती है, तो सब कुछ ठीक-ठीक समानांतर में होने लगता है, लेकिन एक बार जब डिस्क धीमा हो जाता है (किसी कारण से केवल 20 एमबी / सेकंड पर जा रहा है) तो ऐसा तब होता है जब यह पढ़ा / लिखा जाए स्विचिंग होने लगती है।
मैं भी चला सकते हैं sync
राईट (कम गति पर स्पष्ट रूप से हालांकि) पढ़ता के साथ समानांतर में हो रहा प्राप्त करने के लिए तथापि डाल मैन्युअल हर कुछ सेकंड sync
एक में while
पाश इतना है कि यह हर पांच सेकंड चलाता है सही समाधान की तरह प्रतीत नहीं होता ...
कर्नेल को लगभग 1GB डेटा कैशे लगता है और फिर इसे जितना संभव हो सके नेटवर्क पर लिखें - जो कि ठीक है - मुझे समझ में नहीं आ रहा है कि धीमे डिस्क को पढ़ने से रोकने की आवश्यकता क्यों है जबकि डेटा को बाहर भेजा जा रहा है नेटवर्क।