कार्यालय ग्रिड कम्प्यूटिंग वातावरण आभासी प्रयोग - भाग 2
परिचय
मैं दिन हर काम में एक कंपनी के डेटा हम कहाँ के रिकॉर्ड के लाखों नौकरियों प्रसंस्करण बैच चलाने के कई और मैं गया है और प्रत्येक है सोच के बारे में हाल ही में सभी के चारों ओर बैठ मशीनों है कि हर घंटे के लिए कई दिन कुछ नहीं कर रहे हैं. हमारे सिस्टम होगा यह नहीं हो सकता है अच्छा अगर हम सत्ता का उपयोग सिलेंडर प्रसंस्करण के लिए उन मशीनों? लेख के इस सेट में मैं कार्यालय एक हूँ रोजगार के संभावित लाभ को देखने जा करने के लिए ग्रिड वातावरण का उपयोग virtualised.
में भाग 1 मैं एक कार्यालय ग्रिड बनाने दिया का अवलोकन करने के लिए चाहते हो जाएगा आप प्रणाली और क्यों संभावित कारणों प्रौद्योगिकियों मैं हो जाएगा का उपयोग कर के रूप में कुछ भी चर्चा की.
नौकरी नियंत्रण
यदि आप जा रहे हैं नौकरियों हो तो चल रहा है आप के लिए कुछ करने के लिए उन्हें प्रबंधित तरह की जरूरत जा रहे हैं. अपने काम पर नियंत्रण प्रणाली (अपनी नौकरी सर्वर पर) को बहुत अच्छी तरह से भी एक कार्यालय ग्रिड को चलाने का प्रयास करने से पहले बाहर सोचा की जरूरत है. सबसे पहले तो, एक काम पर नियंत्रण प्रणाली के लिए कार्य क्या कर रहे हैं:
- नौकरियों बाहर अनुरोध पर कार्यकर्ताओं से हाथ
- बताओ श्रमिकों क्या नौकरियों के प्रकार को चलाने के लिए
- ट्रैक नौकरियां
- यह सुनिश्चित करें कि नौकरी केवल एक बार चलती है
- श्रमिकों को नौकरी डेटा प्रदान करें, या कम से कम उन्हें बताने के लिए इसे पाने के लिए जहां
इस प्रणाली को भी एक्स्टेंसिबल की जरूरत है, एक समाधान है कि एक भी मामले में अब के लिए काम करता है के लिए रोजगार के कई प्रकार के भाग के रूप में व्यापार एक ग्रिड समाधान में मूल्य देखता बढ़ाया जा सकता है. उदाहरण के लिए, नौकरी प्राथमिकताओं फायदा मिल सकता है, एक से अधिक नौकरी प्रकार (यानी कई कोड कुर्सियां) मौजूद है, अंतत: आप भी कई अलग अलग मशीनों है कि कर्मचारी काम के प्रत्येक प्रकार के लिए अनुकूलित कर रहे हैं (हालांकि कि दूर 'सामान्य कार्यकर्ता से कदम नहीं चला सकते हो सकता है विचार '). हमेशा के लिए भविष्य के बारे में सोचने की कोशिश करें जब विकासशील प्रणाली, एक अल्पकालिक दृष्टि लंबी अवधि निराशा और बढ़ विकास के समय के लिए नेतृत्व कर सकते हैं.
नौकरी सर्वर
हम कहीं जरूरत अपने काम को नियंत्रण से, यह आपके ग्रिड में ही व्यवस्था है कि एक निश्चित रिसोर्स लोकेटर है होना चाहिए, हो सकता है कि एक आईपी पता, होस्ट का नाम, यूआरएल (आंतरिक DNS का उपयोग करके), आदि इसका कारण यह है जा रहे हैं श्रमिकों को रोजगार के लिए कहाँ देखना पता है की जरूरत है, कर्मचारियों को काम पर नियंत्रण प्रणाली (नहीं काम पर नियंत्रण प्रणाली श्रमिकों खोजने के लिए) की जरूरत है.
नौकरी सर्वर ही वास्तव में एक जटिल कार्य (एक बुनियादी तंत्र में किसी भी तरह) नहीं है, यह करने के लिए नौकरियों की एक सूची की दुकान, नौकरी हाथ से बाहर, परिणाम प्राप्त करते हैं, और बाद में उन्हें बाद में पुनः प्राप्ति के लिए दुकान की जरूरत है. कैसे इन भागों (जैसे कि 'नौकरी हाथ से बाहर') बहुत बुनियादी किया जा सकता है परिभाषित कर रहे हैं. बाद में हम इस प्रणाली का विस्तार करने के लिए एक प्रशासन में जोड़ने, संपादित करने, हटाने, रोजगार निलंबित इंटरफ़ेस शामिल कर सकते हैं लेकिन यह इस अभ्यास से परे है.
वहाँ कोई कारण कुछ तो यह है कि अपनी नौकरी सर्वर एक आभासी अपने मुख्य प्रसंस्करण सर्वर के भीतर चल मशीन नहीं हो सकता है यह बहुत अधिक संसाधनों से पानी नहीं प्रदान की है. नौकरी सर्वर तथापि उच्च उपलब्धता की आवश्यकता नहीं है, अगर यह एक शुक्रवार शाम आप के लिए संसाधन की एक पूरी सप्ताहांत खोने के लिए जा रहे हैं पर नीचे चला जाता है, संभवतः आप प्रसंस्करण समय की कीमत सप्ताह के एक जोड़े (जब आपके मुख्य प्रसंस्करण अकेले सर्वर की तुलना में) की लागत . आप के लिए उच्च उपलब्धता के लिए एक लोड संतुलित पर्यावरण पर अपनी नौकरी सर्वर लगाने पर विचार कर सकते हैं.
बुनियादी सेटअप
हमारा काम सर्वर के लिए बुनियादी सेटअप) अश्वशक्ति पी शामिल होंगे, ySql बुला रहा हूँ की क्या मैं एक से एक, लंगड़ा मेरे सर्वर (वह यह है कि ली nux मी. The कार्यकर्ताओं पर चल रहे कोड वास्तव में बाहर काम नौकरियों क्या यह काम पर नियंत्रण प्रणाली डेटाबेस के साथ के साथ बातचीत के द्वारा चलाए जा सकते हैं. बाद में हम वेब बना सकते हैं एक सेवा है और वास्तव में कठिन काम कर बाहर हाथ नौकरियों श्रमिकों के बजाय वाले खुद को, लेकिन अब के लिए उपयोग करना जारी रखेंगे हम चुंबन सिद्धांत (बेवकूफ रखें यह सरल,!).
तो, तीन बनाएँ mySQL नौकरियों तालिकाओं के साथ सौदा करने के लिए. इन `नौकरियों होगा`, `jobRecords`, `और` jobResults.
यहाँ मैं उपयोग कर रहा हूँ SQL दोस्त एक बड़ा सा वैकल्पिक phpMyAdmin सिर्फ इसलिए इसकी: आसान पर स्थापित करने के लिए CentOS (के लिए दूसरों को देख 10 महान विकल्प के लिए phpMyAdmin )
इस तालिका 5 सरल क्षेत्रों के होते हैं,
- आईडी: विशिष्ट नौकरी की पहचान
- नाम: identifiers अन्य हो सकता है एक ग्राहक संदर्भ संख्या के किसी भी, या
- स्थिति: आप पर की जरूरत है पता है, जहां काम है, जैसे
- 0: प्रारंभ नहीं किया गया
- 1: उठाया
- 2: पूर्ण
- started_by: कौन काम कर रहा है शुरू कर दिया? यह पूरी तरह से नहीं बल्कि आवश्यक है एक अच्छा तरीका है. मैं उनके अपने नेटवर्क पर आईपी पता द्वारा श्रमिकों पर नज़र रखने का सुझाव था
- started_at: जब काम किया कार्यकर्ता शुरू कर दिया? नौकरियों उस समय हम जानते हैं कि हम करने के लिए काम एक बार फिर उठा और एक अन्य कार्यकर्ता द्वारा संसाधन शुरू करने की आवश्यकता के एक्स राशि के भीतर पूरा नहीं किया है पर नज़र रखने से. श्रमिकों प्रसंस्करण बंद / कारणों से किसी भी संख्या, बिजली विफलता, दुर्घटना, नेटवर्क नुकसान, आदि के लिए ऑफ़लाइन जा सकते हैं
यह आसान है कि कैसे इस तालिका में कुछ अतिरिक्त फ़ील्ड्स के साथ बढ़ाया जा सकता है के लिए ट्रैकिंग, एक पूरा समय स्तंभ देखने के लिए कितनी देर तक काम लिया, एक काउंटर को देखने के लिए कितने कर्मचारियों को नौकरी उठाया (जाहिर करने के लिए इस की जरूरत के लिए करते हैं आँकड़े के लिए अनुमति 1), नौकरी प्राथमिकता सूची और पर जा सकते हैं. अधिक जटिल काम स्थितियों में यह संभव हो सकता है निर्दिष्ट करने के लिए कितना स्मृति कार्यकर्ता का उपयोग करने की जरूरत है (और इसलिए केवल उपयुक्त श्रमिकों का उपयोग करें), या होगा भी कार्यकर्ता की क्या प्रकार के लिए आवश्यक हो जाएगा.
चलो कुछ उदाहरण रोजगार जोड़ें:
अगले तालिका फिर बहुत समझने की सरल है, ये हमारे काम रिकॉर्ड कर रहे हैं. वे एक स्तंभ से मुख्य नौकरियों तालिका से जुड़े हुए हैं `jobs_id. इस तालिका के ऊपर बनाने के बहुत ज्यादा डेटा है कि आप अपने कर्मचारियों के लिए आपूर्ति की आवश्यकता पर निर्भर करता है, एक बहुत ही सरल उदाहरण है जहाँ हम चार स्तंभ हैं बनाने के लिए देता है:
- आईडी: रिकॉर्ड आईडी
- नाम: व्यक्ति का नाम
- पता: व्यक्ति का पता
- jobs_id: नौकरी आईडी है कि यह रिकॉर्ड करने के लिए जुड़ा हुआ है
तीसरे और अंतिम तालिका एक परिणाम तालिका के होते हैं, यह है बहुत ही हमारे रिकॉर्ड तालिका के रूप में, और कुछ स्तंभों के अलावा रिकॉर्ड टेबल का हिस्सा हो सकता है के साथ करते हैं:
- job_record_id: टेबल काम करने के लिए लिंक परिणाम
- परिणाम: परिणाम डेटा
और यह सब तुम काम पर नियंत्रण के लिए की जरूरत है ...! (यद्यपि एक बहुत ही बुनियादी स्तर पर) मेरे मामले में मैं एक और तालिका जहां प्रक्रिया अपने डेटा स्थित था की ओर इशारा कर रहा हूँ, लेकिन यह सिर्फ के रूप में आसानी से एक फाइल किया गया है, सकता है अनुकरण कोड चलाने पैरामीटर, तुम यह नाम है.
एक नौकरी का चयन
जैसा कि पहले कहा, मजदूरों हमारे लिए अब के लिए हमारा काम, प्रबंधन करना होगा, ताकि हम सभी के लिए वास्तव में जरूरत है एक नौकरी कि संसाधन की जरूरत है और जानकारी प्राप्त कर मिल रहा है. हम यह कैसे करेंगे? अच्छी तरह से हमारा काम चयन मानदंड लेने और नौकरियों के लिए देखो, एसक्यूएल में मैं निम्नलिखित किया:
- किसी भी काम है कि पूर्ण रूप में, लेकिन हमारे कार्यकर्ता से चिह्नित नहीं कर रहे हैं (एक पहचानकर्ता, आसान आईपी पता हो जाएगा के साथ स्थानापन्न __ME__) उन्हें रीसेट लें:
अद्यतन `नौकरियों` सेट `स्थिति '= 0 कहां` `स्थिति = 1 और` started_by = __ME__ `; - हमारा काम चयन मानदंड का प्रयोग, एक नौकरी का चयन करें और नियंत्रण प्रणाली है कि इस कर्मचारी के साथ काम कर रहा है बताओ:
अद्यतन `नौकरियों` सेट `` स्थिति = 1, `` started_by = __ME__, `` started_at = (अब), जहाँ `स्थिति '= 0 या (`` स्थिति = 1 और `` started_at> ((अब) DATE_SUB, अंतराल एक्स घंटे)) आदेश द्वारा `आईडी` ए एस सी;
नौकरियों है कि समय की एक्स राशि में जो परिणाम हम यह सुनिश्चित करना कि सभी नौकरियों एक कार्यकर्ता दुर्घटनाग्रस्त या AWOL जाने की घटना में चलाए जा रहे हैं नहीं लौटे हैं हथियाने के द्वारा.
- अगले नौकरियों खुद के रिकॉर्ड के बाद विवरण हड़पने:
चुनें * से `नौकरियों` जहां `started_by` = 1 सीमा __ME__; चुनें * से `job_records` जहां `आईडी` = __JOBID__;
काम के पूरा होने पर हम सम्मिलित हमारे परिणाम और अभिलेखों को पूरा के रूप में काम निशान. याद के रूप में नौकरी निलंबित / किसी भी समय फिर से शुरू अपनी स्क्रिप्ट में कुछ मजबूती के लिए अनुमति दे सकते हैं. यह हो सकता है कि काम काम पर नियंत्रण प्रणाली को अद्यतन है, तो एक काम में अभिलेखों की संख्या और काम पर नियंत्रण प्रणाली के लिए वापस बचाया एक बुद्धिमान कदम होगा परिणामों की संख्या की जाँच के माध्यम से आधे रास्ते निलंबित.
इसके अलावा, whilst यह दर्शाता है कि कैसे रोजगार और चयन किया जा सकता है वास्तव में कामयाब से एक SQL-क्वेरी फ्रेम चाहिए abstracting अपने काम पर नियंत्रण ताकि यदि आप, तय प्रणाली के आधार स्विच करने के लिए उपयोग कर एक वेब सेवा, एक फ़ाइल XML , या किसी अन्य सिस्टम की संख्या में यह उसके ऊपर कोड को प्रभावित नहीं करेगा.
नौकरी विन्यास
अगले पहलू पर विचार काम आकार और विन्यास है. नौकरी विन्यास के साथ खेल से हम गति, प्रक्रिया प्रतिकृति, और विश्वसनीयता के बीच एक उत्कृष्ट संतुलन कायम कर सकते हैं. एक जोड़ी OFA परिदृश्यों लें:
- रोजगार चलाने के लिए 1 से प्रत्येक दिन: यह मतलब है कि आपके कर्मचारी दिन की जरूरत 15 से काम प्रत्येक प्रक्रिया (समय की 2/3rds सत्ता के लिए की याद% 10). यह स्पष्ट रूप से एक बुद्धिमान विन्यास नहीं है, अपने काम के आकार रास्ता बहुत बड़ा! इसे ले जाएगा कम से कम करने के लिए एक प्रारंभिक कार्यकर्ता AWOL जाना चाहिए संसाधित नौकरी मिल (समय लेने के लिए है कि यह एक परिणाम प्लस पुनर्संसाधन समय वापस नहीं आया है) समय डबल. आदर्श में एक तुम्हें याद कर बजाते पर होगा कम से कम एक नौकरी रखने के अंत तक पूरा काम आसानी से मंजूरी दे दी की लंबी अवधि के प्रत्येक बेकार तुम, उस तरह से ऊपर सबसे खराब और कम से मामले में एक दिन जाना होगा काम ले दो के लिए प्रक्रिया पहले करना चाहिए.
- नौकरियों मिनट ले 1 से चलाएँ: इसका मतलब यह है कि अपने कार्यकर्ताओं मिनट के बारे में लेने के 15 से काम चलाने के प्रत्येक. Whilst यह शुरू में आदर्श लग सकता है, तुम दोपहर के भोजन के समय, कॉफी ब्रेक, बैठकों, आदि इस परिदृश्य अपने सिस्टम के अन्य क्षेत्रों पर दबाव डालता है और अपनी ही समस्याओं का परिचय के दौरान अतिरिक्त काम प्रसंस्करण लाभ. उदाहरण के लिए, सबसे पहले अपने सेटअप / प्रसंस्करण समय का अनुपात ठीक नीचे जा रहा है, इसलिए प्रणाली दक्षता खोने. अपने नेटवर्क के लिए लगातार विभिन्न कार्यकर्ताओं निराशा कर्मचारी जो अपने दिन काम करने के लिए दिन डोंग कर रहे हैं काम की जानकारी स्ट्रीमिंग होने जा रहा है. आप भी अपनी नौकरी प्रसंस्करण सर्वर पर और अधिक दबाव डाला के रूप में इसे बाहर बहुत से और एक नियमित आधार पर कार्य के छोटे टुकड़ों के बहुत सारे पकवान है जा रहे हैं. अन्त में, इस स्थिति में यदि आपकी नौकरी सर्वर नीचे चला जाता है आप के लिए सकता है बड़ा रोजगार जबकि अपूर्ण काम का एक बड़ा वापस लॉग बनाने के लिए जा रहे हैं blissfully अनजान है कि इस काम के सर्वर कठिनाइयों का सामना कर रहा था प्रसंस्करण जारी रखा.
वास्तविकता में वहाँ कोई भी अपने ग्रिड स्थापना के लिए आदर्श विन्यास हो सकता है, ज्यादा संसाधन उपलब्ध, नौकरी की, नौकरी वापसी समय की आवश्यकताओं, नेटवर्क की क्षमता, और इतने पर प्रकार पर निर्भर करता है. हालांकि कुछ दिशा निर्देश होगा:
- आकार नौकरियों ताकि प्रत्येक कर्मचारी कम से कम 3-4 नौकरियों के माध्यम से 15 घंटे (सबसे लंबे समय तक की संभावना निष्क्रिय समय अवधि) की अवधि में प्राप्त कर सकते हैं
- काम के आकार के साथ खेलने ताकि सेटअप समय काफी तुच्छ प्रसंस्करण समय (ऊपर बिंदु मन में असर) की तुलना में हो जाता है.
- अगर एक काम डबल में समय की राशि को पूरा नहीं करता है (शायद कम) आप यह है कि इसके चले AWOL मान और यह एक और कार्यकर्ता के साथ प्रसंस्करण शुरू को पूरा करने की उम्मीद है. इसका मतलब है आप तीन बार करने के लिए एक नौकरी की सामान्य लंबाई प्रतीक्षा इसे (संभवतः अब अगर बाद में काम विफल रहता है) को पूरा करने के लिए हो सकता है. लेकिन आप यह कर सकते हैं कम करना चाहते करने के लिए समय है, नियमित आधार सावधान रहना होगा एक नहीं के लिए कम यह भी पर कार्य प्रसंस्करण शुरू duplicating सकता है जितना आप.
- नौकरियों बाहर आवश्यकताओं की स्वतंत्र संभव के रूप में ज्यादा के रूप में किया जाना चाहिए. नौकरी सर्वर, उदाहरण के लिए, केवल और हर काम का प्रारंभ और समाप्ति पर संपर्क किया जाना चाहिए.
- अपने नेटवर्क तर मत करो, यह दो नकारात्मक प्रभाव पड़ेगा, अपने कर्मचारियों को दिन के समय नेटवर्क कनेक्शन समस्याओं को निराशा होती है और बाहर एक समस्या यह है कि केवल बदतर रूप में आप अपने ग्रिड पैमाने पर मिल जाएगा समय के साथ अनुभव किया जा सकता का उपयोग कर पाएंगे.
- सुनिश्चित रोजगार अपने कार्यकर्ताओं पर चला सकते हैं. अगर नौकरियों स्मृति भी बन गहन या डिस्क स्थान गहन नौकरी छोड़ और शुरू केवल एक चीज है कि आप ध्यान देंगे कोई वास्तविक कारण है कि कारण के साथ कार्रवाई की नौकरियों की संख्या में एक बूंद है.
एक नौकरी के सबमिट परिणाम
जब एक नौकरी के परिणाम प्रस्तुत यह महत्वपूर्ण है कि जांच के परिणाम एक और मजदूर द्वारा प्रस्तुत नहीं किया है, खासकर अगर मौजूदा कर्मचारी कुछ समय के लिए निष्क्रिय किया गया है.
परिणाम यह सुनिश्चित करें कि परिणामों की संख्या नौकरी के भीतर रिकॉर्ड की संख्या मैच कब प्रस्तुत कर रहे हैं.
जैसा कि पहले कहा है, और हो सकता है, नहीं कर सकता पर जोर दिया पर नौकरी बहाली और परिणाम प्रस्तुत करने में दोष सहिष्णुता का निर्माण. कार्यकर्ताओं में जाने का सबसे अधिक बार असुविधाजनक पर मोड को निरस्त करने और यह होने के लिए catered की जरूरत है (और सबसे अधिक संभावना कर सकते हैं). इसके अलावा एक बार फिर दूर अपने परिणाम प्रस्तुत करने abstracting मदद अपने काम पर नियंत्रण प्रणाली के लिए भविष्य में बदलाव बहुत आसान से निपटने के लिए पूरा करेगा.
सारांश
इस section में हम एक काम पर नियंत्रण सर्वर क्या करने की जरूरत है और एक बहुत ही बुनियादी स्थापित प्रणाली पाने के लिए पर ध्यान दिया है. हम चर्चा कैसे नियंत्रण प्रणाली से एक नौकरी पाने के लिए और सबसे अच्छा कैसे के लिए रोजगार कॉन्फ़िगर करने के लिए सबसे अपने कार्यालय ग्रिड प्रणाली के बारे में हमारी. खत्म करने के लिए, परिणाम प्रस्तुत करने के काम पर नियंत्रण सर्वर को वापस पर एक या दो पैराग्राफ पेश किया गया.
- एक काम पर नियंत्रण सर्वर नौकरियों का प्रबंधन और सुनिश्चित करता है कि सब काम पूरा कर रहे हैं इकाइयों
- abstracting अपनी नौकरी / परिणाम प्रस्तुत हम ज्यादा समस्याओं के बिना नियंत्रण सर्वर की तकनीक बदल सकते हैं का चयन करके
- कॉन्फ़िगर अपने काम को सुनिश्चित करने के लिए कि वे जल्दी से और कुशलता से अपने नेटवर्क बुनियादी सुविधाओं पर बहुत अधिक दबाव डालने के बिना, और एक नियमित आधार पर प्रसंस्करण कार्यों duplicating के बिना चलाए जा रहे हैं.
- यह सुनिश्चित करें कि आप अपनी दिनचर्या में दोष सहिष्णुता और त्रुटि checking निर्माण, कार्यकर्ताओं को निरस्त करने और फिर से शुरू कर सकते हैं और समय की सबसे असुविधाजनक. जाँच करने के लिए यदि परिणाम पहले से ही एक कार्यकर्ता द्वारा भी सौंपी गई हैं याद रखें.
अगली बार
में 3 हिस्सा हम श्रमिकों प्रसंस्करण हूँ बनाने के लिए हमारे आभासी मशीन खिड़कियां और सेट अप हमारे मशीनों समय के लिए निष्क्रिय हो जाते हैं,.



















































Heya! अच्छी अवधारणा है, लेकिन यह सच में काम कर सकता है?