यह एक दिलचस्प सवाल है...
मुझे नहीं लगता कि कोई निश्चित उत्तर है, लेकिन मैं इस विषय पर कुछ ऐतिहासिक संदर्भ दे सकता हूं कि समय के साथ इस विषय के आसपास की सर्वोत्तम प्रथाओं को कैसे बदला जा सकता है।
मुझे 2007 के बाद से VMware के वातावरण में विभिन्न रूपों में तैनात हजारों लिनक्स वीएम का समर्थन करना पड़ा है। तैनाती के लिए मेरा दृष्टिकोण विकसित हुआ है, और मुझे अन्य इंजीनियरों द्वारा निर्मित विरासत और रीफैक्टरिंग सिस्टम का अनूठा ( कभी-कभी दुर्भाग्यपूर्ण ) अनुभव मिला है।
पुराने दिन...
दिन में वापस (2007), मेरे शुरुआती VMware सिस्टम को मेरे नंगे धातु प्रणालियों की तरह विभाजित किया गया था। VMware की तरफ, मैं VM के डेटा को सम्मिलित करने के लिए स्प्लिट 2GB मोटी फ़ाइलों का उपयोग कर रहा था, और कई VMDKs की धारणा के बारे में सोचा भी नहीं था, क्योंकि मैं अभी खुश था कि वर्चुअलाइजेशन भी काम कर सकता था!
वर्चुअल इन्फ्रास्ट्रक्चर ...
ESX 3.5 और आरंभिक ESX / ESXi 4.x रिलीज़ (2009-2011) तक, मैं लिनक्स का उपयोग कर रहा था, जो सामान्य रूप से विभाजित मोटी वीएमडीके फाइलों के रूप में विभाजित था । उपदेश भंडारण के बाद मुझे इस तरह से लिनक्स डिजाइन के बारे में सोचने के लिए मजबूर किया, जैसा कि मैं वास्तविक हार्डवेयर के साथ करूंगा। मैं ऑपरेटिंग सिस्टम के लिए 36GB, 72GB, 146GB VMDK बना रहा था, जो सामान्य /, / बूट, / usr, / var, / tmp को विभाजित करता है, फिर "डेटा" या "ग्रोथ" पार्टीशन के लिए एक और VMDK जोड़ रहा है (चाहे वो / हो घर, / ऑप्ट या कुछ आवेदन-विशिष्ट)। फिर, इस युग के दौरान भौतिक हार्ड डिस्क के आकार में मीठा-स्थान 146GB था, और चूंकि प्रचार की आवश्यकता थी (जब तक कि एनएफएस का उपयोग नहीं किया गया), मुझे अंतरिक्ष के साथ रूढ़िवादी होने की आवश्यकता थी।
पतली प्रावधान का आगमन
बाद में ESXi 4.x रिलीज़ में वीएमवेयर ने थिन प्रोविजनिंग के आसपास बेहतर सुविधाएँ विकसित कीं, और इसने मुझे नए सिस्टम को स्थापित करना शुरू कर दिया। पूर्ण फ़ीचर सेट को 5.0 / 5.1 में जोड़े जाने के साथ, एक नए प्रकार के लचीलेपन ने अधिक रचनात्मक डिजाइनों की अनुमति दी। ध्यान रहे, यह वर्चुअल मशीनों पर बढ़ी हुई क्षमताओं के साथ तालमेल बैठा रहा था, कितने वीसीपीयूएस और व्यक्तिगत वीएम के लिए कितनी रैम हो सकती है। अतीत की तुलना में अधिक प्रकार के सर्वर और एप्लिकेशन को वर्चुअलाइज किया जा सकता है। यह सही है क्योंकि कंप्यूटिंग वातावरण पूरी तरह से आभासी होने लगे थे।
LVM भयानक है ...
जब तक VM स्तर पर पूर्ण हॉट-ऐड फ़ंक्शनलिटी जगह और आम (2011-2012) थी, तब तक मैं एक फर्म के साथ काम कर रहा था जो किसी भी कीमत ( बेवकूफ ) पर अपने ग्राहकों के वीएम के लिए अपटाइम बनाए रखने के लिए प्रयास करता था । तो यह ऑनलाइन VMware सीपीयू / रैम बढ़ जाती है और शामिल जोखिम भरा एलवीएम डिस्क मौजूदा VMDKs पर आकार बदलने। इस वातावरण में अधिकांश लिनक्स सिस्टम LVM के शीर्ष पर ext3 विभाजन के साथ एकल VMDK सेटअप थे। यह भयानक था क्योंकि LVM परत ने परिचालन में जटिलता और अनावश्यक जोखिम जोड़ा । उदाहरण के लिए / usr में अंतरिक्ष से बाहर निकलते हुए, बुरे फैसलों की एक श्रृंखला हो सकती है जो अंततः बैकअप से एक प्रणाली को बहाल करने का मतलब है ... यह आंशिक रूप से प्रक्रिया और संस्कृति से संबंधित था, लेकिन फिर भी ...
विभाजन स्नोबेरी ...
मैंने इसे बदलने का प्रयास करने का अवसर लिया । मैं लिनक्स में एक विभाजन-स्नोब का एक सा हूं और महसूस करता हूं कि निगरानी और परिचालन आवश्यकताओं के लिए फाइल सिस्टम को अलग किया जाना चाहिए। मैं LVM को भी नापसंद करता हूं, विशेष रूप से VMware और आपके द्वारा पूछे जाने वाले काम को करने की क्षमता के साथ। इसलिए मैंने VMDK फ़ाइलों के विभाजन का विस्तार किया जो संभावित रूप से बढ़ सकता था। / ऑप्ट, / var, / होम जरूरत पड़ने पर अपनी स्वयं की वर्चुअल मशीन फ़ाइलें प्राप्त कर सकते हैं। और वे कच्चे डिस्क होंगे। कभी-कभी यह मक्खी पर विशेष रूप से बिना विभाजन के विस्तार के लिए एक आसान तरीका था।
Obamacare ...
एक बहुत ही हाई-प्रोफाइल क्लाइंट के ऑनबोर्डिंग के साथ , मुझे लिनक्स वीएम संदर्भ टेम्प्लेट के डिज़ाइन के साथ काम सौंपा गया था जो कि उनके अत्यंत दृश्यमान एप्लिकेशन वातावरण बनाने के लिए उपयोग किया जाएगा । अनुप्रयोग की सुरक्षा आवश्यकताओं में आरोह का एक अनूठा सेट आवश्यक है , इसलिए डेवलपर्स के साथ काम करने के लिए एक VMDK पर गैर-वृद्धि विभाजन को रटना करने की कोशिश करें, और फिर प्रत्येक माउंट के लिए अलग-अलग VMDKs जोड़ें जो विकास की क्षमता या विशिष्ट आवश्यकताओं (एन्क्रिप्शन) था ऑडिटिंग, आदि) तो, अंत में, इन वीएम में 5 या अधिक वीएमडीके शामिल थे, लेकिन भविष्य के आकार और डेटा की सुरक्षा के लिए सबसे अच्छा लचीलापन प्रदान किया गया।
मैं आज क्या करूँ ...
आज, लिनक्स और पारंपरिक फाइल सिस्टम के लिए मेरा सामान्य डिजाइन एक पतली वीएमडीके (विभाजन) पर ओएस है, और किसी अन्य चीज के लिए वीएमडीके को असतत करें। मैं आवश्यक रूप से हॉट-ऐड करूंगा। ZFS जैसे उन्नत फाइलसिस्टम के लिए, यह OS के लिए एक VMDK है, और एक अन्य VMDK जो ZFS zpool के रूप में कार्य करता है और इसे आकार दिया जा सकता है, अतिरिक्त ZFS फाइल सिस्टम में खुदी हुई है, आदि।