paint-brush
स्क्रैच से 32-कोर रास्पबेरी पाई क्लस्टर कैसे बनाएंद्वारा@alejandroduarte
27,903 रीडिंग
27,903 रीडिंग

स्क्रैच से 32-कोर रास्पबेरी पाई क्लस्टर कैसे बनाएं

द्वारा Alejandro Duarte9m2022/07/18
Read on Terminal Reader
Read this story w/o Javascript

बहुत लंबा; पढ़ने के लिए

रास्पबेरी पाई एक मिनी-कंप्यूटर बोर्ड है जिससे आप एक मॉनिटर, माउस और कीबोर्ड को कनेक्ट कर सकते हैं और एक जीयूआई के साथ एक लिनक्स-आधारित ऑपरेटिंग सिस्टम स्थापित कर सकते हैं। आप इसे बिना किसी GUI के "हेडलेस" मोड में उपयोग कर सकते हैं और उदाहरण के लिए, एक डेटाबेस सर्वर चला सकते हैं। इस तरह का क्लस्टर वितरित सिस्टम के साथ प्रयोग करने का एक शानदार तरीका है। इस लेख में, मैं आपको दिखाऊंगा कि रास्पबेरी पाई क्लस्टर कैसे बनाया जाता है: 32 कोर के साथ 8 नोड्स, 64 जीबी रैम और 2 टीबी स्टोरेज।

Company Mentioned

Mention Thumbnail
featured image - स्क्रैच से 32-कोर रास्पबेरी पाई क्लस्टर कैसे बनाएं
Alejandro Duarte HackerNoon profile picture

रास्पबेरी पाई एक मिनी-कंप्यूटर बोर्ड है जिससे आप एक मॉनिटर, माउस और कीबोर्ड को कनेक्ट कर सकते हैं और एक जीयूआई के साथ एक लिनक्स-आधारित ऑपरेटिंग सिस्टम स्थापित कर सकते हैं। या आप बिना किसी GUI के "हेडलेस" मोड में इसका उपयोग कर सकते हैं और उदाहरण के लिए, एक डेटाबेस सर्वर चला सकते हैं। ऐसे कई उपयोग हैं जिनसे आप रास्पबेरी पाई दे सकते हैं—एक Minecraft सर्वर बनाने से लेकर स्मार्ट मिरर तक, संभावनाएं अनंत हैं।


मिनी कंप्यूटर बोर्ड


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


इस लेख में, मैं आपको दिखाऊंगा कि रास्पबेरी पाई क्लस्टर कैसे बनाया जाता है:


  • 8 नोड्स
  • 32 कोर
  • 64 जीबी रैम
  • 2TB स्टोरेज

जिसकी आपको जरूरत है

यदि आप अपना स्वयं का क्लस्टर बनाना चाहते हैं, तो आपको 8 रास्पबेरी पाई डिवाइस खरीदने की आवश्यकता नहीं है। सामान सीखने के लिए एक डिवाइस भी काफी है। इस लेख में दिए गए निर्देश उपयोगी हैं, भले ही आप केवल एक रास्पबेरी पाई को कॉन्फ़िगर करने की योजना बना रहे हों। हालाँकि, मेरी सलाह है कि यदि आप वास्तव में लिनक्स प्रशासन, Ansible , Docker , Kubernetes , डेटाबेस क्लस्टर्स में अपने कौशल को बढ़ावा देना चाहते हैं, तो आपके क्लस्टर के निर्माण के लिए कम से कम तीन डिवाइस हों ... आप इसे नाम दें!


8 x रास्पबेरी पाई 4 मॉडल बी (8 जीबी रैम)


इस बात को ध्यान में रखते हुए, कृपया 8 को जो भी आपका नंबर है, से बदल दें। रास्पबेरी पाई उपकरणों के विनिर्देशों के साथ भी ऐसा ही करें यदि आपके पास कम या अधिक रैम या स्टोरेज वाले विभिन्न मॉडल हैं। यहाँ मैंने क्या उपयोग किया है:



मात्राओं को अपने सेटअप में अनुकूलित करें। यदि आपके पास बहुत कम डिवाइस (1 या 2 कहें) या मल्टी-यूएसबी चार्जर हैं तो आप या तो एक या अधिक रास्पबेरी पाई बिजली आपूर्ति प्राप्त कर सकते हैं। यदि आप मल्टी-यूएसबी चार्जर के साथ जाते हैं, तो सुनिश्चित करें कि प्रत्येक पोर्ट कम से कम 2.4Am (5V) डिलीवर कर सकता है। ऐसे माइक्रोएसडी कार्ड चुनें जो आपके लक्ष्यों और बजट के अनुकूल हों। मैं कम से कम 32 जीबी एसडी कार्ड के साथ जाने की सलाह देता हूं।


केबल और केस की तरफ, कुछ भी चुनें जो आपके सेटअप को समायोजित करता हो। जरूरी नहीं कि आपको कूलिंग फैन की जरूरत हो, लेकिन अगर आप अपने डिवाइस को लंबे समय तक चालू रखने की योजना बना रहे हैं, तो मैं उन्हें सलाह देता हूं।


मैं आपको "खाना पकाने" शुरू करने से पहले सभी सामग्री प्राप्त करने की भी सलाह देता हूं, खासकर यदि आप कई रास्पबेरी पाई उपकरणों का उपयोग करना चाहते हैं।

रास्पबेरी पाई ओएस (हेडलेस) स्थापित करना

हम जिस ऑपरेटिंग सिस्टम (OS) का उपयोग करेंगे, वह Raspberry Pi OS है, जो एक डेबियन-आधारित OS है जिसे Raspberry Pi बोर्डों के लिए अनुकूलित किया गया है। रास्पबेरी पाई ओएस आपके कंप्यूटर का उपयोग करके माइक्रोएसडी कार्ड पर स्थापित है। आप बाद में इन माइक्रोएसडी कार्डों को अपने रास्पबेरी पाई उपकरणों से कनेक्ट करें और उन्हें बूट करें।


अपने डेस्क पर सभी माइक्रोएसडी कार्ड और रास्पबेरी पाई बॉक्स प्राप्त करें। यदि आपके काम करने वाले कंप्यूटर में एसडी कार्ड के लिए स्लॉट नहीं है, तो आपको एक एसडी कार्ड एडॉप्टर (वे आमतौर पर माइक्रोएसडी कार्ड के साथ आते हैं) या एक एसडी कार्ड यूएसबी रीडर की आवश्यकता होगी। एक शार्पी भी लाओ।


रास्पबेरी पाई इमेजर एप्लिकेशन डाउनलोड करें, और इसे अपने कंप्यूटर पर इंस्टॉल करें। एक माइक्रोएसडी कार्ड लें और इसे अपने कंप्यूटर से कनेक्ट करें। रास्पबेरी पाई इमेजर एप्लिकेशन खोलें, और ओएस चुनें पर क्लिक करें। सूची से, रास्पबेरी पाई ओएस (अन्य) पर क्लिक करें, और रास्पबेरी पाई ओएस लाइट (64-बिट) का चयन करें यदि आपके रास्पबेरी पाई डिवाइस 64-बिट हैं या रास्पबेरी पाई ओएस लाइट (32-बिट) अन्यथा:


रास्पबेरी पाई इमेजर


CHOOSE STORAGE पर क्लिक करें और माइक्रोएसडी कार्ड चुनें। दोबारा जांचें कि आपने सही ड्राइव का चयन किया है, और "गियर" आइकन (उन्नत विकल्प) पर क्लिक करें। होस्टनाम के लिए rpi01 , या कुछ इसी तरह का उपयोग करें। आप उपकरणों का नामकरण rpi01 , rp02 , rp03 , आदि के रूप में करेंगे।


एसएसएच सक्षम करें, और पासवर्ड प्रमाणीकरण विकल्पों का उपयोग करें की जाँच करें। एक उपयोगकर्ता नाम सेट करें (मैं डिफ़ॉल्ट pi छोड़ दूंगा), और एक सुरक्षित पासवर्ड सेट करें।


वायरलेस लैन कॉन्फ़िगर करें विकल्प की जांच करें, और अपने वाईफाई कनेक्शन का नाम और पासवर्ड दर्ज करें। अपनी स्थानीय सेटिंग भी कॉन्फ़िगर करें।


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


रास्पबेरी पाई इमेजर उन्नत विकल्प


अब, आप प्रक्रिया शुरू करने के लिए सेव और फिर राइट पर क्लिक कर सकते हैं। एक बार पूरा हो जाने पर, कार्ड को बाहर निकालें और इसे रास्पबेरी पाई उपकरणों में से एक से कनेक्ट करें, इसे वापस अपने बॉक्स में रखें, और बॉक्स को नंबर 01 के साथ चिह्नित करें। सभी उपकरणों के लिए इस प्रक्रिया को दोहराएं।

क्लस्टर को असेंबल करना

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


क्लस्टर को असेंबल करना


मैं यह तय करने के लिए आगे देखने की सलाह देता हूं कि पहले किन भागों को इकट्ठा करना है। उदाहरण के लिए, मेरे द्वारा चुने गए मामले के साथ, मुझे रास्पबेरी पाई उपकरणों को परतों पर माउंट करने से पहले शीतलन प्रशंसकों को स्थापित करना था।


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


सभी डिवाइस माउंटेड


एक बार जब आपके पास सभी डिवाइस माउंट हो जाएं, तो यूएसबी केबल को रास्पबेरी पाई डिवाइस और मल्टी-यूएसबी चार्जर से कनेक्ट करें। यदि आप चाहें तो आप वैकल्पिक रूप से पावर ओवर ईथरनेट और यूएसबी चार्जर के बजाय एक नेटवर्क स्विच का उपयोग कर सकते हैं, लेकिन मैं इसे आपके लिए एक्सप्लोर करने के लिए छोड़ दूंगा; यह निश्चित रूप से जाँच के लायक है।


आपके पास या तो चार्जर हो सकता है (या यदि आप इसके लिए जाते हैं तो नेटवर्क स्विच) अपने रास्पबेरी पाई रैक के बगल में या उससे जुड़ा हुआ है। मैंने चार्जर को केस के किनारे से जोड़े रखने के लिए रबर बैंड का इस्तेमाल किया। यह ठीक काम किया।


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


एलईडी चमकती है और पंखे शुरू होते हैं

SSH . के माध्यम से जुड़ना

यदि सब कुछ ठीक रहा, तो आपको SSH के माध्यम से रास्पबेरी पाई उपकरणों तक पहुंचने में सक्षम होना चाहिए। अपने कंप्यूटर से निम्न को चलाकर इसे आज़माएं:


 ssh [email protected]


अपने पासवर्ड का परिचय दें, और डिवाइस को ज्ञात होस्ट की सूची में जोड़ने के लिए हां में उत्तर दें। बधाई! आपका क्लस्टर अब लाइव है।


क्लस्टर लाइव

आप हार्डवेयर जानकारी की जांच के लिए कमांड चलाना चाह सकते हैं। उदाहरण के लिए:


  • lscpu : CPU आर्किटेक्चर के बारे में जानकारी
  • df -H : फाइल सिस्टम डिस्क स्थान का उपयोग
  • sudo fdisk -l : विभाजन की जानकारी
  • free -m : उपयोग की गई मात्रा, निःशुल्क और RAM की कुल मात्रा
  • cat /proc/version : लिनक्स कर्नेल जानकारी

रास्पि-कॉन्फ़िगरेशन के साथ मैनुअल कॉन्फ़िगरेशन

यदि आपके पास एक रास्पबेरी पाई है, तो आप इसे ऊपर वर्णित अनुसार एसएसएच के माध्यम से कनेक्ट कर सकते हैं, और विभिन्न सेटिंग्स को कॉन्फ़िगर करने के लिए raspi-config उपयोगिता प्रोग्राम का उपयोग कर सकते हैं। आप वाईफाई कनेक्शन ( S1 ) को संशोधित कर सकते हैं, होस्टनाम ( S4 ) और यूजर पासवर्ड ( S3 ) को बदल सकते हैं, और फाइल सिस्टम ( A1 ) का विस्तार कर सकते हैं।


रास्पि-कॉन्फ़िगरेशन के साथ मैनुअल कॉन्फ़िगरेशन

Ansible . के साथ स्वचालित कॉन्फ़िगरेशन

यदि आपके क्लस्टर में एक से अधिक रास्पबेरी पाई हैं, तो आप Ansible जैसे टूल का उपयोग करके कॉन्फ़िगरेशन प्रक्रिया को स्वचालित करना चाह सकते हैं। Ansible के साथ, आप दोहराए जाने वाले कार्यों को किए बिना कई मशीनों पर एक कमांड चला सकते हैं। उदाहरण के लिए, मान लें कि हम प्रत्येक रास्पबेरी पाई पर फाइल सिस्टम का विस्तार करना चाहते हैं। यह कमांड लाइन से निम्नानुसार किया जा सकता है:


 sudo raspi-config --expand-rootfs


स्वचालन के बिना, आपको SSH से rpi01.local करना होगा, ऊपर दिए गए कमांड को चलाना होगा, और SSH सत्र को समाप्त करना होगा। आपको इन सभी चरणों को rpi02.local , pr03.local , rp04.local , आदि के लिए दोहराना होगा। इसके बजाय, आप केवल Ansible को सभी मशीनों पर आपके लिए कमांड चलाने के लिए कह सकते हैं। आइए देखें कि यह कैसे करना है।


आपको Ansible को एक नियंत्रण नोड पर स्थापित करना होगा जो आपके स्थानीय नेटवर्क से जुड़ा है। यह रास्पबेरी पाई उपकरणों में से एक हो सकता है, आपका काम करने वाला लैपटॉप, या कोई अन्य मशीन जब तक यह लिनक्स या मैकओएस जैसे यूनिक्स-आधारित ऑपरेटिंग सिस्टम को चलाता है।


मेरे पास एक पुराना लैपटॉप है जिसे मैंने अपने नेटवर्क से जुड़े एक समर्पित डेटाबेस के रूप में पुनर्निर्मित किया है , इसलिए मैंने इसे नियंत्रण नोड के रूप में उपयोग किया (मैं दिखाऊंगा कि भविष्य के लेख में रास्पबेरी पीआई उपकरणों में प्रतिकृति के साथ डेटाबेस कैसे स्थापित किया जाए)।


मैं Ansible को स्थापित करने के निर्देशों के माध्यम से नहीं जाऊंगा क्योंकि विभिन्न ऑपरेटिंग सिस्टम पर प्रक्रिया अलग है। आधिकारिक दस्तावेज की जांच करें और इसे अपने लैपटॉप या किसी भी डिवाइस पर स्थापित करें जिसे आप नियंत्रण नोड के रूप में असाइन करना चाहते हैं।


शुरू करने से पहले, मैं एक उदाहरण कॉन्फ़िगरेशन फ़ाइल बनाने की अनुशंसा करता हूं जिसे आप बाद में अपनी इच्छानुसार बदल सकते हैं:


 sudo su ansible-config init --disabled -t all > /etc/ansible/ansible.cfg exit


इस फ़ाइल में, प्रक्रिया को सरल बनाने के लिए होस्ट कुंजी जाँच को अक्षम करें। उत्पादन वातावरण में ऐसा मत करो! निम्न पंक्ति बदलें:


 ;host_key_checking=True


इसके लिए:


 host_key_checking=False


इसके बाद, आपको एक इन्वेंट्री को परिभाषित करने की आवश्यकता है। यह उन मशीनों की सूची है जिन्हें आप Ansible से नियंत्रित करना चाहते हैं। इन्वेंट्री को /etc/ansible/hosts फ़ाइल में परिभाषित किया गया है। उदाहरण के लिए, आप निम्न मशीनों को उनके आईपी पते या होस्टनाम का उपयोग करके सूची में जोड़ सकते हैं:


 [mymachines] foo.example.com bar.example.com 192.0.2.50 192.0.2.51


यदि मशीनों के आईपी पते या होस्टनाम में किसी प्रकार का पैटर्न है, तो आप वैकल्पिक रूप से श्रेणियों का उपयोग कर सकते हैं। यह आप अपने रास्पबेरी पाई उपकरणों के साथ कर सकते हैं। निम्नलिखित को अंत में जोड़कर /etc/ansible/hosts फ़ाइल को संपादित करें:


 [rpis] rpi[01-08].local


अपने होस्टनामों और संख्याओं से मेल खाने के लिए पैटर्न बदलें। यह इसके बराबर है:


 [rpis] rpi01.local rpi02.local rpi03.local rpi04.local rpi05.local rpi06.local rpi07.local rpi08.local


इस सूची में, rpis एक मनमाना नाम है जिसका उपयोग आप सभी रास्पबेरी पाई उपकरणों को संदर्भित करने के लिए कर सकते हैं जब उन पर Ansible का उपयोग करके कमांड चला रहे हों।


आपको SSH उपयोगकर्ता नाम को कॉन्फ़िगर करने की आवश्यकता है जो Ansible मशीनों से कनेक्ट करते समय उपयोग करेगा। निम्नलिखित को /etc/ansible/hosts फ़ाइल में जोड़ें:


 [rpis:vars] ansible_user=pi


डी मशीनों को नियंत्रित करने का समय। उन्हें पिंग करना एक अच्छी शुरुआत है:


 ansible rpis -m ping --ask-pass


SSH पासवर्ड टाइप करें। आपको आउटपुट में देखना चाहिए कि प्रत्येक मशीन के लिए "पिंग" का उत्तर "पोंग" द्वारा कैसे दिया जाता है (मैं यहां केवल एक दिखा रहा हूं):


 rpi01.local | SUCCESS => {  "ansible_facts": {    "discovered_interpreter_python": "/usr/bin/python3"  },  "changed": false,  "ping": "pong" }


आइए फाइल सिस्टम विस्तार पर वापस जाएं (हालांकि, मुझे लगता है कि आजकल इसकी आवश्यकता नहीं है, अगर आप इसकी पुष्टि कर सकते हैं तो मुझे टिप्पणियों में बताएं)। सभी मशीनों पर यह क्रिया करने के लिए, चलाएँ:


 ansible rpis -m shell -a "raspi-config --expand-rootfs" --become --ask-pass


और उतना ही सरल, आपके सभी रास्पबेरी पाई उपकरणों में एक विस्तारित फाइल सिस्टम है। सभी मशीनों पर सिस्टम को अपडेट करने का यह एक अच्छा समय है:


 ansible rpis -m shell -a "apt update -y" --become --ask-pass ansible rpis -m shell -a "apt upgrade -y" --become --ask-pass


आप सभी उपकरणों को निम्नानुसार रीबूट कर सकते हैं:


 ansible rpis -m shell -a "reboot" --become --ask-pass


और एक बार जब आप कर लें और सभी मशीनों को सुरक्षित रूप से बंद करना चाहते हैं, तो बस चलाएं:


 ansible rpis -m shell -a "poweroff" --become --ask-pass

आगे क्या होगा?

ये तो बस शुरुआत है। अब आपके पास छोटे कंप्यूटरों का एक समूह है जो Ansible द्वारा नियंत्रित होने के लिए तैयार है। आप वेब सर्वर या डेटाबेस सहित किसी भी प्रकार का सर्वर सॉफ़्टवेयर स्थापित करने का प्रयास कर सकते हैं ( यह उदाहरण देखें )। Ansible के बारे में और भी बहुत कुछ है।


मैंने एड-हॉक कमांड का उपयोग करके यहां केवल सतह को खरोंच दिया है, लेकिन उदाहरण के लिए आप प्लेबुक बना सकते हैं जिसमें वह राज्य होता है जिसमें आप चाहते हैं कि आपका क्लस्टर हो। दस्तावेज़ीकरण का अन्वेषण करें, और मज़े करें!


यहाँ भी प्रकाशित