एक Single Server को भी Virtualize करना
मुझे virtualization से जुड़ी बातचीत में consolidation की अवधारणा को, जो server virtualization के संदर्भ में virtual machine barriers द्वारा अलगाव के साथ एक single physical box पर कई पूर्व physical workloads रखने को संदर्भित करती है, virtualization की मुख्य विशेषता के रूप में माना जाना बहुत आम लगता है। निस्संदेह, workload consolidation virtualization के साथ एक amazing अवसर का प्रतिनिधित्व करता है, लेकिन यह अत्यंत महत्वपूर्ण है कि virtualization के मूल्य और consolidation के मूल्य को भ्रमित न किया जाए। बहुत बार मैंने पाया है कि consolidation को virtualization में मुख्य मूल्य और इसके लिए प्राथमिक औचित्य के रूप में देखा जाता है लेकिन ऐसा नहीं है। Consolidation एक bonus feature है, लेकिन virtualization को justify करते समय इसकी कभी आवश्यकता नहीं होनी चाहिए। Virtualization लगभग एक स्वयंसिद्ध निष्कर्ष होना चाहिए जबकि consolidation का मूल्यांकन किया जाना चाहिए और कई बार इसका उपयोग नहीं किया जाएगा।
Virtualization को hardware abstraction के रूप में सोचा जाना चाहिए क्योंकि व्यावहारिक अर्थ में यही वास्तव में है। Virtualization hardware को encapsulate करता है और guest operating systems को एक predictable, pristine hardware set प्रस्तुत करता है। यह जटिलता जोड़ने जैसा लग सकता है लेकिन वास्तव में यह operating systems और drivers के makers के साथ-साथ systems design करने वाले IT practitioners दोनों के लिए बहुत सी चीजों को सरल बनाता है। यह इसलिए है क्योंकि computers, computer peripherals और operating systems इतने complex हैं कि standard interfaces बनाकर यह additional layer वास्तव में system से complexity हटाती है।
एक software layer को standard, virtual machine प्रस्तुत करने की यही अवधारणा computing के अन्य क्षेत्रों में भी मौजूद है, जैसे कि कई programming languages कैसे implement की जाती हैं। यह एक बहुत mature और reliable computing model है।
Hardware abstraction और जो stability यह लाता है वह अकेले ही virtualization को सभी जगह standardize करने का कारण बनाने के लिए पर्याप्त है लेकिन hardware abstraction की व्यावहारिक प्रकृति जैसी कि सभी enterprise virtualization products द्वारा implement की जाती है जो आज हमारे लिए उपलब्ध हैं हमें और भी महत्वपूर्ण features देती है। निश्चित रूप से, virtualization के अधिकांश लाभ किसी अन्य तरीके से भी पाए जा सकते हैं लेकिन शायद ही कभी उतनी पूरी तरह, विश्वसनीय रूप से, सरलता से या मुफ्त में जितने virtualization से।
Additional features का सबसे बड़ा समूह आम तौर पर storage और memory के abstraction से आता है जिससे एक virtual machine के storage या यहां तक कि पूरी running state को snapshot करने की क्षमता मिलती है, यानी running system की एक image लेना और उसे file में store करना। यह क्षमता कई बहुत महत्वपूर्ण capabilities की ओर ले जाती है जैसे नया software install करने, configurations बदलने या patching से पहले system snapshot लेने की क्षमता; कुछ भी गलत होने पर अत्यंत तेज rollbacks की अनुमति देना। यह seemingly minor feature बड़ी peace of mind और समग्र system reliability की ओर ले जा सकता है।
Abstraction layer से snapshot लेने की क्षमता “image-based backups” लेने की क्षमता की ओर भी ले जाती है, यानी operating system के file system layer के भीतर से नहीं बल्कि block device layer पर snapshot mechanism के माध्यम से लिए गए backups। यह operating system agnostic backup mechanisms और उन backups की अनुमति देता है जिनमें एक साथ पूरा system storage pool शामिल है। Image backups जो पारंपरिक रूप से “bare metal restores” के रूप में जाने जाते थे उसकी अनुमति देते हैं – पूरे system को बिना additional interaction के पूरी तरह से running state में restore किया जा सकता है – आसानी से और बहुत जल्दी। सभी hypervisor makers इस capability को शामिल नहीं करते (विशेष रूप से HyperV इसे पूरी तरह से शामिल करता है, XenServer इसे आंशिक रूप से शामिल करता है और VMware vSphere इसे केवल non-free license levels के साथ शामिल करता है।) जब उपलब्ध हो, image-based backups अत्यंत rapid recovery की अनुमति देते हैं।
Virtual machines को files के रूप में treat करने की क्षमता (कम से कम जब actively नहीं चल रही हो) additional benefits प्रदान करती है जो ऊपर सूचीबद्ध backup benefits से संबंधित हैं। अर्थात् physical hosts के बीच rapidly और आसानी से migrate करने और disparate hardware के बीच भी move करने की क्षमता। पारंपरिक रूप से hardware upgrades या replacements का मतलब था खतरों से भरी एक complicated migration process। Modern virtualization के साथ, existing hardware से new hardware में जाना एक reliable, non-destructive process हो सकता है जिसमें safe fallback options और थोड़ा या संभवतः शून्य downtime हो!
अक्सर यही virtualization और abstraction mechanisms का वास्तविक लाभ है। यह जरूरी नहीं कि system के day to day operations को बेहतर बनाना हो बल्कि risk कम करना और भविष्य में flexibility और options प्रदान करना हो। ऐसे unknowns की तैयारी करना जो या तो अप्रत्याशित हों या बस अधिकांश सामान्य स्थितियों में अनदेखे हों। शायद ही ऐसी planning की जाती है, IT departments के दुख के लिए जो कठिन और खतरनाक upgrades के साथ बचे रहते हैं जिन्हें आसानी से कम किया जा सकता था।
Virtualization की कई features हैं जो केवल विशेष scenarios पर applicable हैं। कई virtualization products में live migration tools शामिल हैं जो running workloads को बिना downtime के hosts के बीच, या संभवतः storage devices के बीच भी move करने के लिए हैं। High availability और fault tolerant options अक्सर उपलब्ध होते हैं जिससे कुछ workloads system hardware failure से rapidly या यहां तक कि transparently recover हो सकते हैं। जबकि यह अधिक niche benefit है, यह एक primary example के रूप में उल्लेखनीय है कि features जो अक्सर उपलब्ध होती हैं और बाद में जोड़ी जा सकती हैं यदि उनकी आवश्यकता उत्पन्न होती है जब तक virtualization शुरू से उपयोग की जाती है।
Virtualization products आम तौर पर extensive additional features के साथ आते हैं जो केवल कुछ मामलों में महत्वपूर्ण होती हैं। उनमें से बहुत सी एक बड़े pool में आती हैं “भविष्य की जरूरत के मामले में।” इनमें से संभवतः सबसे बड़ा consolidation की अवधारणा है, जैसा कि मैंने इस लेख की शुरुआत में उल्लेख किया था। High availability जैसी अन्य advanced features की तरह, consolidation virtualization का core value नहीं है लेकिन अक्सर इसे इसके लिए confused किया जाता है। जो workloads high availability या consolidation का लाभ उठाने का इरादा नहीं रखते उन्हें अभी भी virtualize किया जाना चाहिए – बिना किसी संदेह के।
Consolidation बेहद मूल्यवान हो सकता है और यह आसानी से समझा जा सकता है कि इतने सारे लोग बस मान लेते हैं कि इसका उपयोग किया जाएगा क्योंकि यह बहुत बार बहुत मूल्यवान होता है। एक बार infrastructure in place होने के बाद इसकी उपलब्धता भविष्य के workloads के unknowns को handle करने के लिए flexibility का एक key point है। यहां तक कि जब consolidation आज पूरी तरह से अनावश्यक हो, तब भी एक बहुत अच्छी संभावना है, यहां तक कि सबसे छोटी कंपनियों में भी, कि यह किसी अज्ञात समय में भविष्य में उपयोगी होगी।
Virtualization stability, flexibility, standardization, manageability और best practices का पालन करने के बारे में है। कोई भी major enterprise virtualization product आज कम से कम किसी न किसी रूप में free में उपलब्ध नहीं है। कोई भी खरीद निश्चित रूप से value बनाम expenditure के careful analysis की आवश्यकता होगी। हालांकि, इस space में वर्तमान में चारों key product lines (Xen, KVM, HyperV और VMware vSphere) से free में उपलब्ध excellent enterprise options के साथ हमें ऐसा कोई analysis नहीं करना होगा। हमें केवल यह दिखाना होगा कि implementation non-negative है।
निर्णय लेना आसान बनाता है कि जब हम nominal case पर विचार करते हैं – वह bare minimum जो सभी enterprise virtualization प्रदान करता है जो zero cost, abstraction, encapsulation और storage based benefits हैं तो हम पाते हैं कि हमारे पास effectively सभी मामलों में एक छोटा benefit है, कोई measurable downside नहीं है और flexibility और भविष्य की जरूरतों के खिलाफ hedging के क्षेत्रों से एक बहुत बड़ा potential benefit है। यह हमें एक clear win और एक simple decision के साथ छोड़ता है कि virtualization, free होने और अनिवार्य रूप से कोई downside नहीं होने के साथ, किसी भी मामले में उपयोग की जानी चाहिए जहां इसे किया जा सकता है (जो इस बिंदु पर, essentially सभी workloads हैं।) Additional, non-core features जैसे consolidation और high availability का अलग से मूल्यांकन किया जाना चाहिए और केवल virtualize करने का निर्णय पहले से ही solidify होने के बाद।
यह केवल existing industry best practices की एक explanation है जो कई वर्षों से सभी potential workloads को virtualize करने के लिए रही है। यह नया नहीं है और न ही direction का बदलाव है। केवल यह तथ्य कि across the board virtualization लगभग एक decade से एक industry best practice रही है, यह दिखाता है कि यह कितनी proven और accepted methodology है। हमेशा ऐसे workloads होंगे जो किसी एक कारण या किसी अन्य के लिए simply virtualize नहीं किए जा सकते, लेकिन ये बहुत कम और दूर होने चाहिए।
यह निर्णय करते समय कि virtualize करना है या नहीं, approach हमेशा यह मानना होना चाहिए कि virtualization एक foregone conclusion है और केवल तभी इससे भिन्न होना चाहिए जब एक solid, defended technical reason इसे impossible बना दे। Virtualization के खिलाफ लगभग सभी तर्क misunderstanding की स्थिति से आते हैं जिसमें यह विश्वास होता है कि consolidation, high availability, external storage, licensing cost और अन्य loosely related या unrelated concepts किसी तरह virtualization के अंतर्भूत हैं। वे नहीं हैं और उन्हें virtualization बनाम physical deployment के निर्णय में शामिल नहीं किया जाना चाहिए।
यह ध्यान देने योग्य है कि क्योंकि consolidation virtualization के लिए base value बनाने में हमारे decision matrix का हिस्सा नहीं है, हम जिन सभी कारणों का उपयोग कर रहे हैं वे one to one deployments (यानी एक single physical device पर एक single virtual machine) और consolidated workloads (यानी एक single physical device पर multiple virtual machines) दोनों पर समान रूप से लागू होते हैं। कोई भी ऐसी स्थिति नहीं है जिसमें एक workload virtualize करने के लिए “बहुत छोटा” हो। यदि कुछ भी, तो यह विपरीत है, केवल सबसे बड़े workloads, आम तौर पर extreme latency sensitivity के साथ, जहां non-virtualization का एक niche scenario अभी भी एक edge case के रूप में मौजूद है लेकिन ये cases भी तेजी से गायब हो रहे हैं। छोटा workload, virtualization के लिए अधिक ideal, लेकिन यह केवल इसे reinforce करने के लिए है कि छोटे व्यवसाय, singular workloads के साथ, across the board virtualization के लिए सबसे आदर्श case हैं।

