KVM, वर्चुअल मशीन, कंटेनर और समर्पित हार्डवेयर विभिन्न संचालन सीमाओं का वर्णन करते हैं। वह सीमा चुनें जिसकी आपके प्रोजेक्ट को आवश्यकता है, ऑफ़र द्वारा उजागर सुविधाओं को सत्यापित करें और उस वातावरण के भीतर सॉफ़्टवेयर बनाए रखें।
वर्चुअल मशीन एक अतिथि वातावरण है
एक वर्चुअल मशीन एक ऑपरेटिंग सिस्टम को वर्चुअलाइज़्ड हार्डवेयर जैसे प्रोसेसर, डिस्क और नेटवर्क इंटरफ़ेस प्रस्तुत करती है। भौतिक होस्ट वह मशीनरी चलाता है जो उन अतिथियों को संभव बनाती है। VPS एक वर्चुअल सर्वर के आसपास बनाया गया होस्टिंग उत्पाद है, जिसमें घोषित संसाधन आवंटन और एक ऑपरेटिंग वातावरण होता है जिसका ग्राहक उपयोग कर सकता है। आवंटन को ऑफ़र के हिस्से के रूप में पढ़ें, हर वर्चुअल CPU के पीछे भौतिक मशीन की कल्पना न करें।
एक समर्पित सर्वर प्रोजेक्ट को भौतिक मशीन सीमा देता है। यह एक ऑपरेटिंग सिस्टम चला सकता है या जब हार्डवेयर और परिनियोजन उस डिज़ाइन का समर्थन करते हैं तो अपनी स्वयं की वर्चुअल मशीनें होस्ट कर सकता है। यह संसाधन स्वामित्व और प्रशासन को बदलता है, लेकिन यह सॉफ़्टवेयर भेद्यताओं, अद्यतन कार्य या बैकअप की आवश्यकता को समाप्त नहीं करता। वास्तविक अलगाव या क्षमता आवश्यकता से सीमा चुनें।
KVM वर्चुअलाइज़ेशन तकनीक की पहचान करता है
KVM Linux कर्नेल में वर्चुअलाइज़ेशन समर्थन प्रदान करता है। QEMU एक मशीन मॉडल प्रदान करता है और KVM को वर्चुअलाइज़ेशन त्वरक के रूप में उपयोग कर सकता है, जबकि libvirt जैसा प्रबंधन सॉफ़्टवेयर अतिथि कॉन्फ़िगरेशन और जीवनचक्र को व्यवस्थित कर सकता है। ये घटक बताते हैं कि वातावरण कैसे बनाया जा सकता है; अक्षर KVM CPU शेड्यूलिंग, स्टोरेज प्रदर्शन या सेवा उपलब्धता निर्दिष्ट नहीं करते।
वर्चुअलाइज़ेशन दस्तावेज़ीकरण कभी-कभी होस्ट प्लेटफ़ॉर्म के साथ उनके संबंध के अनुसार Type 1 और Type 2 हाइपरवाइज़र में अंतर करता है। होस्टिंग निर्णय के लिए, लेबल से अधिक उपयोगी यह जानना है कि अतिथि सीमा, रखरखाव जिम्मेदारी और उजागर हार्डवेयर क्या है। पूछें कि क्या आवश्यक अतिथि ऑपरेटिंग सिस्टम और ड्राइवर समर्थित हैं। किसी सॉफ़्टवेयर प्रोजेक्ट द्वारा वर्णित सुविधाएँ हर प्रदाता के उत्पाद में स्वचालित रूप से सक्षम नहीं होतीं।
अतिथि नियंत्रण को होस्ट नियंत्रण से भ्रमित न करें
अतिथि के भीतर रूट या व्यवस्थापक पहुँच आपको उस अतिथि को प्रबंधित करने देती है। यह आपको भौतिक हाइपरवाइज़र, किसी अन्य किरायेदार या हर संभावित होस्ट सुविधा तक पहुँच नहीं देती। नेस्टेड वर्चुअलाइज़ेशन, डिवाइस पासथ्रू और विशेष नेटवर्क सेटिंग्स के लिए स्पष्ट समर्थन आवश्यक है। इस धारणा पर VPS न चुनें कि आपके लैपटॉप पर उपलब्ध क्षमता होस्टिंग वातावरण द्वारा समान रूप से उजागर की जाएगी।
वास्तविक प्लान के CPU, मेमोरी, स्टोरेज, नेटवर्क और लाइसेंस की तुलना करें। डिलीवरी के बाद प्रतिनिधिक कार्य के साथ अपने एप्लिकेशन की विलंबता और संसाधन दबाव का निरीक्षण करें। एक वर्चुअलाइज़ेशन तकनीक उपयोगी अलगाव सीमा बना सकती है जबकि प्रदाता नीति के अनुसार अंतर्निहित हार्डवेयर संसाधनों को साझा करती रहती है। न अतिथि लेबल और न समर्पित लेबल माप और पूर्ण परिचालन विशिष्टता का विकल्प है।
| सीमा | प्रोजेक्ट क्या प्रबंधित करता है | सत्यापित करने योग्य क्षमता |
|---|---|---|
| वर्चुअल मशीन | अतिथि OS और उसकी सेवाएँ | समर्थित OS, ड्राइवर और उजागर सुविधाएँ |
| कंटेनर | प्रक्रिया और इमेज कॉन्फ़िगरेशन | कर्नेल सुविधाएँ, सीमाएँ और माउंट दायरा |
| समर्पित सर्वर | चयनित भौतिक मशीन वातावरण | हार्डवेयर और वर्चुअलाइज़ेशन आवश्यकताएँ |
कंटेनर एक वातावरण के भीतर प्रक्रियाओं को व्यवस्थित करते हैं
एक कंटेनर आमतौर पर अपने होस्ट कर्नेल को साझा करता है जबकि प्रक्रियाओं और उनके संसाधनों को समूहित करता है। एक वर्चुअल मशीन अतिथि कर्नेल चलाती है। जब ऑपरेटिंग सिस्टम और रनटाइम इच्छित कॉन्फ़िगरेशन का समर्थन करते हैं तो आप VPS के भीतर कंटेनर चला सकते हैं। यह संयोजन अतिथि के सुरक्षा रखरखाव या पुनर्प्राप्ति योजना को बदले बिना निर्भरताओं को पैकेज करना आसान बना सकता है।
Docker के संसाधन नियंत्रणों को जानबूझकर सेटिंग्स की आवश्यकता होती है: डिफ़ॉल्ट रूप से, रनटाइम प्रत्येक कंटेनर पर CPU और मेमोरी सीमाएँ नहीं लगाता। संसाधन उपयोग को सीमित करें और अनावश्यक विशेषाधिकारों या होस्ट माउंट से बचें। जहाँ व्यावहारिक हो वहाँ अलग-अलग विश्वास आवश्यकताओं वाले वर्कलोड को अलग करें। होस्ट और इमेज को अनुरक्षित रखें। कंटेनर इमेज को उस सॉफ़्टवेयर के रूप में मानें जिसे आपको सत्यापित करना चाहिए, न कि स्वचालित सुरक्षा निर्णय के रूप में क्योंकि इसे शुरू करना आसान है।
शेल एक इंटरप्रेटर है, स्वयं सर्वर नहीं
एक टर्मिनल इंटरैक्शन सतह प्रदान करता है; एक शेल कमांड की व्याख्या करता है और प्रोग्राम शुरू करता है। Linux पर, Bash एक सामान्य शेल है, जबकि अन्य शेल अलग सिंटैक्स और इंटरैक्टिव सुविधाएँ प्रदान करते हैं। एक स्क्रिप्ट को उस इंटरप्रेटर को लक्षित करना चाहिए जिसकी वह अपेक्षा करती है। लॉगिन शेल बदलने से हर एप्लिकेशन का इंटरप्रेटर नहीं बदलता या किसी अन्य शेल के लिए लिखी स्क्रिप्ट संगत नहीं हो जाती।
शेल इनपुट किसी प्रोग्राम को उसके आर्गुमेंट मिलने से पहले एक्सपैंशन, रीडायरेक्शन और कमांड प्रतिस्थापन से गुजर सकता है। फ़ाइलनाम या उपयोगकर्ता डेटा से रखरखाव कमांड बनाने से पहले उस प्रसंस्करण को समझें। अविश्वसनीय इनपुट को निष्पादन योग्य कमांड टेक्स्ट से बाहर रखें, आर्गुमेंट को सही ढंग से उद्धृत करें और स्वचालित कार्य के लिए प्रोग्राम के संरचित इंटरफ़ेस को प्राथमिकता दें। इतिहास, लॉग और प्रक्रिया आर्गुमेंट संवेदनशील मान बनाए रख सकते हैं, इसलिए एप्लिकेशन के लिए उपयुक्त निजी क्रेडेंशियल तंत्र का उपयोग करें।
आपने जो सीमा चुनी है उसे संचालित करें
डिलीवरी के बाद, अतिथि OS, पहुँच मार्ग और पुनर्प्राप्ति तंत्र की पहचान करें। अद्यतन लागू करें, एक प्रतिबंधित प्रशासन खाता स्थापित करें और केवल वे सेवाएँ उजागर करें जिनकी प्रोजेक्ट को आवश्यकता है। महत्वपूर्ण डेटा स्थानांतरित करने से पहले एक छोटा परिनियोजन परीक्षण करें। इसे पुनर्निर्माण के लिए आवश्यक रनटाइम, इमेज और कॉन्फ़िगरेशन रिकॉर्ड करें; सीमा आपको यह नहीं बताती कि एप्लिकेशन स्थिति पुनर्प्राप्त करने योग्य है या नहीं।
वर्कलोड और ऑपरेटिंग वातावरण के अनुसार Vector, DeskLink या Metal रेंज को शॉर्टलिस्ट करने के लिए SwissOctet तुलना का उपयोग करें। ऑर्डर तैयार करने से पहले विशेष क्षमताओं की पुष्टि करें। रनबुक में ऑपरेटिंग-सिस्टम कार्य, एप्लिकेशन कार्य और प्रदाता कार्य को अलग रखें। स्पष्ट सीमा उपयोगी है क्योंकि यह आपको बताती है कि आप क्या कॉन्फ़िगर कर सकते हैं और किस बारे में पूछना चाहिए, जबकि माइग्रेशन और पुनर्स्थापन के लिए व्यावहारिक मार्ग बनाए रखती है।
आपकी व्यावहारिक चेकलिस्ट।
- अतिथि पहुँच को होस्ट पहुँच से अलग करें।
- विशेष हार्डवेयर और वर्चुअलाइज़ेशन आवश्यकताओं को सत्यापित करें।
- पूर्ण कॉन्फ़िगरेशन मापें, हाइपरवाइज़र लेबल नहीं।
- कंटेनर सीमाएँ और अनुमतियाँ कॉन्फ़िगर करें।
- इच्छित शेल का उपयोग करें और कमांड इनपुट की सुरक्षा करें।
महत्वपूर्ण विवरण।
क्या KVM का अर्थ है कि मुझे समर्पित भौतिक CPU कोर मिलते हैं?+
नहीं। KVM वर्चुअलाइज़ेशन तकनीक की पहचान करता है। उत्पाद के CPU आवंटन और संसाधन नीति को अलग से पढ़ें।
क्या कंटेनर अतिथि रखरखाव का स्थान ले सकते हैं?+
नहीं। होस्ट वातावरण, कंटेनर रनटाइम और इमेज सभी को रखरखाव, उपयुक्त अनुमतियों और पुनर्प्राप्ति योजना की आवश्यकता है।
क्या टर्मिनल और शेल एक ही चीज़ हैं?+
नहीं। एक टर्मिनल इंटरफ़ेस प्रदान करता है। एक शेल उस इंटरफ़ेस के भीतर कमांड इनपुट की व्याख्या करता है और प्रोग्राम शुरू करता है।
स्रोत पर जाएं।
ये संदर्भ इस गाइड में तकनीकी अवधारणाओं का समर्थन करते हैं। उत्पादन प्रणाली बदलने से पहले वर्तमान दस्तावेज़ का पालन करें।
- KVM परियोजना: कर्नेल वर्चुअल मशीन www.linux-kvm.org
- QEMU: सिस्टम एमुलेशन परिचय www.qemu.org
- Docker: संसाधन बाधाएँ docs.docker.com
- GNU Bash: शेल एक्सपैंशन www.gnu.org
SwissOctet द्वारा संपादकीय मार्गदर्शन। उदाहरण केवल दृष्टांत हैं। सेवा विशिष्टताएं, उपलब्ध विकल्प और संविदात्मक शर्तें अलग से सत्यापित की जानी चाहिए।