2008-12-30 13 views
7

के लिए नि: शुल्क सुरक्षित वितरित सिस्टम बनाने के लिए क्या कोई सुरक्षित भाषा-अज्ञात वितरित लिनक्स के लिए वितरित मेक सिस्टम है जो सुरक्षित और नि: शुल्क हैं?लिनक्स

पृष्ठभूमि जानकारी:

मैं वैज्ञानिक प्रयोगों (कंप्यूटर विज्ञान वाले) कभी कभी बड़ी निर्भरता पेड़ है, कभी कभी हजारों या पेड़ नोड्स के हजारों के आदेश पर चलाते हैं। यह निर्भरता पेड़ डेटा फ़ाइलों, डेटा प्रोसेसिंग निष्पादन योग्य, और परिणाम फ़ाइलों पर है।

मैं सहित पिछले कुछ वर्षों में विभिन्न तकनीकों के साथ प्रयोग किया है:

  1. अपने ही निर्भरता ट्रैकर रोलिंग एक डेटाबेस का उपयोग और प्रत्येक कार्यकर्ता मशीन पर चल रही स्क्रिप्ट। यह थोड़ा बोझिल हो सकता है, खासकर जब गैर-स्क्रिप्टिंग भाषाओं के साथ काम करने की कोशिश कर रहा है।
  2. छद्म-लक्ष्य के साथ सभी मेकफ़ाइल में सभी प्रसंस्करण आदेशों को डालकर जिसे विभिन्न कार्यकर्ता मशीनों पर मैन्युअल रूप से "निर्मित" किया जा सकता है। इसके लिए कोई विशेष उपकरण की आवश्यकता नहीं है, लेकिन यह काम को समान रूप से आकार के छद्म-लक्ष्य भाग में मैन्युअल रूप से तोड़ने और प्रत्येक कार्यकर्ता बॉक्स पर "मेक" का सही ढंग से उपयोग करने का दर्द हो सकता है।
  3. distmake: स्वचालित रूप से एक भी makefile से आदेश के निष्पादन वितरित ...

मैं मूल रूप से distmake की तरह कुछ के लिए देख रहा हूँ, लेकिन अधिक सुरक्षित है। जहां तक ​​मैं कह सकता हूं, विचलित रूप से प्रत्येक कार्यकर्ता नोड में एक व्यापक खुले बैकडोर छोड़ देता है।

यह भी अच्छा होगा अगर प्रतिस्थापन से अधिक मजबूत हो। यदि आप मुख्य डिस्टमेक कॉल से बाहर निकलते हैं, तो यह बैकडोर सर्वर को बंद कर सकता है, लेकिन यह कार्यकर्ता नोड्स पर निष्पादन प्रक्रियाओं को सही ढंग से मार नहीं देता है।


स्पष्टीकरण:

मैं makefile साथ डेटा संसाधित कर रहा हूँ, नहीं संकलन और जीसीसी के साथ जोड़ने। दस्तावेज़ में जो मैंने पढ़ा है, उससे डीसीसीसीसी जीसीसी वितरित करने के लिए एक विशेष उपकरण है। मैं साझा फाइल सिस्टम पर होस्ट की गई बहुत बड़ी डेटा फ़ाइलों पर अपने स्वयं के निष्पादन योग्य चलाऊंगा, स्रोत फ़ाइलों पर जीसीसी नहीं, इसलिए distcc सहायक नहीं है।

कार्यकर्ता नोड बाहरी रूप से दिखाई देने वाली मशीनें हैं, इसलिए मैं चाहता हूं कि कोई कार्यकर्ता डिमन्स कम से कम एसएसएच के रूप में सुरक्षित हो। सबसे अच्छा मैं स्रोत को पढ़ने के बिना बता सकता हूं, विचलित कार्यकर्ता डेमन्स एक बंदरगाह खोलता है और जो इसे जोड़ता है उससे आदेश स्वीकार करेगा। वे कमांड को उपयोगकर्ता के रूप में निष्पादित करेंगे जिन्होंने डिमन शुरू किया था।

उत्तर

1

वहाँ भी distcc है, जो (हालांकि जब तक distmake किसी भी तरह बहुत ही अजीब है, तो आप स्थानीय होस्ट करने के लिए उपयोग को प्रतिबंधित करने और निर्माण को चलाने के लिए SSH सुरंगों का निर्माण करने में सक्षम होना चाहिए) SSH पर काम करने में सक्षम होने का दावा करता है, और icecream हैं।

अद्यतन: क्योंकि लक्ष्य एक वितरित संकलन नहीं है, लेकिन एक वितरित अभिकलन कि सिर्फ एक बूटस्ट्रैप के रूप में make का उपयोग किया जा करने के लिए होता है, यह एक उपकरण है जो BOINC तरह वितरित अभिकलन के लिए डिज़ाइन किया गया है का उपयोग करने के लिए और अधिक समझ में आता है। नीचे दी गई टिप्पणियां चयनित प्लेटफ़ॉर्म के रूप में condor इंगित करती हैं।

+0

मैं ssh सुरंगों पर ध्यान देंगे। ऐसा लगता है कि distcc और icecream संकलन और केवल लिंकिंग के लिए हैं। आइसक्रीम के होमपेज ने चेतावनी दी है कि इसका उपयोग असुरक्षित वातावरण में नहीं किया जाना चाहिए। –

+0

उस मामले में, आप सिर्फ बीओआईएनसी इंजन क्यों नहीं लिख रहे हैं? –

+1

आह, ग्रिड कंप्यूटिंग ... मैं इसके बारे में क्यों नहीं सोचा था। मुझे लगता है कि कंडोर जो मैं चाहता हूं वह कर सकता है। क्या आप भावी पाठकों के लिए अपनी प्रतिक्रिया (या एक नई प्रतिक्रिया बनाने) के लिए ग्रिड कंप्यूटिंग समाधान जोड़ना चाहते हैं? –

0

यदि आप निर्भरताओं के साथ परिश्रम कर रहे हैं (यानी।make -jxx स्थानीय रूप से ठीक काम करता है), distcc शायद आप जो चाहते हैं। कई लोकप्रिय सीसी कैशों के साथ खुशी से काम करना और काम करना बहुत आसान है। फिर, उचित निर्भरता कुंजी है, खासकर जब एक कैश का उपयोग फिर से निर्माण की प्रक्रिया को तेज करने में मदद करने के लिए करते हैं।

यदि आप मेकफ़ाइल में मॉड्यूल निर्भरताओं के दायरे से परे निर्भरताओं को उत्पन्न करने के लिए जीसीसी का उपयोग करते हैं, तो आप शायद distcc से प्यार करेंगे। मैं इसे बड़ी सफलता के साथ एक छोटे से निर्माण फार्म पर उपयोग कर रहा हूं .. लेकिन मेरा सेटअप/पेड़ कहीं भी विस्तृत वर्णन के रूप में विस्तृत नहीं है।

+0

मैं डेटा फ़ाइलों को संसाधित कर रहा हूं, स्रोत फाइल नहीं, इसलिए मुझे नहीं लगता कि distcc मदद कर सकता है। मेरे पास उचित निर्भरता है हालांकि (make -jxx मेरे लिए स्थानीय रूप से महान काम करता है)। –

0

आप इसे AT&T nmakecoshell प्रोग्राम के साथ संयुक्त कर सकते हैं। मुझे नहीं पता कि सुरक्षा का मूल्यांकन कैसे किया जाए, लेकिन ग्लेन फाउलर का समूह महान इंजीनियरों से भरा है जिन्होंने बहुत गंभीरता से अच्छी चीजें की हैं। मैं उन्हें अपने स्रोत कोड से भरोसा करता हूं :-) उनका सबसे अच्छा ज्ञात टूल graphviz हो सकता है।

+0

विचारों के लिए धन्यवाद। कोशेल "आरएसएस के रूप में सुरक्षित" है, जिसका अर्थ है कि डिस्टमेक की तरह यह शायद धोखा देने में काफी आसान है। अन्यथा यह distmake की तुलना में एक बेहतर उपकरण की तरह लगता है। –

+0

'कोशेल' दावा 'एसएसएच' के साथ-साथ 'आरएसएच' का उपयोग करने में सक्षम होने का दावा करता है। मैं 'आरएसएस' जंगली असुरक्षित मानता हूं। मैं नहीं जानता कि आप 'एसएसएच' के बारे में क्या सोचते हैं। –

+0

मैं एसएसएच को सुरक्षित होने पर विचार करता हूं, लेकिन ... कोशेल केवल कोशेल डेमन को बढ़ाने के लिए एसएसएच का उपयोग करता प्रतीत होता है। डिमन अपने बंदरगाह को खोलने और उसके माध्यम से संवाद करने लगता है, और एसएसएच के माध्यम से नहीं। इस प्रकार यह सुरक्षित रूप से एक असुरक्षित बंदरगाह खुलता है, जिसका अर्थ है कि यह असुरक्षित है। –

3

निर्भरता प्रबंधन करना कठिन होता है, और मुझे किसी भी सही प्रणाली के बारे में पता नहीं है जो आप बिना किसी महत्वपूर्ण काम के चाहते हैं। नौकरियों है कि अन्योन्याश्रित हैं प्रस्तुत करने के लिए कोंडोर DAGMAN मेटा-अनुसूचक - - अपने क्लस्टर में मशीनों का प्रबंधन करने के लिए एक कोंडोर कतार :

निकटतम बात है कि मैं का उपयोग किया है निम्नलिखित सेटअप है। डैगनैन डायरेक्टेड एसाइक्लिक ग्राफ मैनेजर का संक्षिप्त नाम है, जिसमें एक निर्देशित विश्वकोश ग्राफ का उपयोग आपकी नौकरियों के बीच निर्भरताओं का प्रतिनिधित्व करने के लिए किया जाता है।

हमने अपनी प्रयोगशाला में एक पुनरावृत्ति वैज्ञानिक प्रोटोकॉल के लिए यह सफलतापूर्वक किया है और यह बहुत अच्छा काम करता है, हालांकि यह प्रारंभिक कार्यान्वयन को चलाने के लिए एक बहुत ही प्रतिभाशाली पोस्टडोक के लिए एक सीखने का अनुभव था। यह आवश्यक है कि आप एक कंडोर क्लस्टर सेट अप करें और चलाएं जो गैर-तुच्छ है, लेकिन मुझे लगता है कि आपके पास या तो कोंडोर या आपकी सभी मशीनों को प्रबंधित करने के समान कुछ है। ऐसा हो सकता है कि सूर्य ग्रिडइंजिन के पास कुछ समानता है जिसे मैं नहीं जानता।

1

हालांकि यह शायद 'मेक' के साथ पारदर्शी रूप से एकीकृत करने के लिए जटिल होगा, जीएनयू समांतर सर्वरों में कमांड वितरित करने के लिए एक सुविधाजनक विकल्प प्रदान करता है।