مجازیسازی حتی یک سرور تنها
در گفتگوهای مربوط به مجازیسازی بسیار رایج میبینم که مفهوم تجمیع، که در زمینه مجازیسازی سرور به معنای قرار دادن چندین بار کاری فیزیکی سابق روی یک جعبه فیزیکی واحد با جداسازی انجام شده توسط موانع ماشین مجازی است، به عنوان اصل اساسی و ویژگی بنیادین مجازیسازی در نظر گرفته میشود. بدون شک تجمیع بار کاری یک فرصت شگفتانگیز با مجازیسازی است، اما بسیار مهم است که ارزش مجازیسازی و ارزش تجمیع با هم اشتباه گرفته نشوند. اغلب دیدهام که تجمیع به عنوان ارزش کلیدی در مجازیسازی و توجیه اصلی آن در نظر گرفته میشود اما این درست نیست. تجمیع یک ویژگی جانبی است، اما هرگز نباید به عنوان توجیه مجازیسازی مورد نیاز باشد. مجازیسازی باید تقریباً یک نتیجهگیری از پیش تعیینشده باشد در حالی که تجمیع باید ارزیابی شود و بسیاری از اوقات استفاده نشود. اینکه بارهای کاری نباید تجمیع شوند هرگز نباید منجر به این باور شود که آن بارهای کاری نباید مجازی باشند. میخواهم فضای تصمیمگیری مجازیسازی را بررسی کنم تا ببینم چگونه باید به این نقطه نگاه کنیم.
مجازیسازی باید به عنوان انتزاع سختافزاری در نظر گرفته شود چون در واقع، به معنای عملی، همین است. مجازیسازی سختافزار را کپسوله میکند و یک مجموعه سختافزاری قابل پیشبینی و بکر را به سیستمعاملهای مهمان ارائه میدهد. این ممکن است به نظر پیچیدگی اضافه میکند اما در واقع کارها را هم برای سازندگان سیستمعامل و درایورها و هم برای متخصصان IT که سیستمها را طراحی میکنند ساده میکند. به این دلیل است که کامپیوترها، جانبیهای کامپیوتری و سیستمعاملها موجوداتی چنین پیچیدهای هستند که این لایه اضافی در واقع با ایجاد رابطهای استاندارد پیچیدگی را از سیستم میزداید. از استانداردسازی سادگی بیرون میآید.
این مفهوم یکسان از ارائه یک ماشین مجازی استاندارد به یک لایه نرمافزاری در مناطق دیگر محاسبات نیز وجود دارد، مانند نحوه پیادهسازی بسیاری از زبانهای برنامهنویسی. این یک مدل محاسباتی بسیار بالغ و قابل اعتماد است.
انتزاع سختافزاری و ثباتی که به همراه میآورد به تنهایی دلیل کافی برای استانداردسازی بر مجازیسازی در سراسر است، اما ماهیت عملی انتزاع سختافزاری همانطور که توسط تمام محصولات مجازیسازی شرکتی موجود امروز پیادهسازی شده است، ویژگیهای مهمتری را برای ما میآورد. البته، اکثر مزایای مجازیسازی را میتوان به نوعی دیگری نیز پیدا کرد اما به ندرت به اندازه کاملی، قابل اعتمادی، سادگی یا رایگانی در مجازیسازی.
بزرگترین مجموعه ویژگیهای اضافی معمولاً از انتزاع ذخیرهسازی و حافظه ناشی میشود که امکان گرفتن اسنپشات ذخیرهسازی یا حتی کل وضعیت در حال اجرای یک ماشین مجازی را میدهد، یعنی گرفتن تصویری از سیستم در حال اجرا و ذخیره آن در یک فایل. این قابلیت منجر به بسیاری از تواناییهای بسیار مهم میشود مانند توانایی گرفتن اسنپشات سیستم قبل از نصب نرمافزار جدید، تغییر پیکربندی یا وصله کردن؛ که امکان بازگشت بسیار سریع را در صورت بروز هرگونه مشکل میدهد. این ویژگی به ظاهر جزئی میتواند منجر به آرامش ذهنی بزرگ و قابلیت اطمینان کلی سیستم شود. همچنین آزمایش ویژگیها و بازگشت یا آزمایش مکرر را در محیطهای غیرتولیدی بسیار آسان میکند.
توانایی گرفتن اسنپشات از لایه انتزاع نیز به توانایی گرفتن “پشتیبانگیری مبتنی بر ایمیج” منجر میشود، یعنی پشتیبانگیری از طریق مکانیزم اسنپشات در لایه دستگاه بلوک به جای لایه فایل سیستم سیستمعامل. این امکان مکانیزمهای پشتیبانگیری غیروابسته به سیستمعامل و پشتیبانگیریهایی را میدهد که کل استخر ذخیرهسازی سیستم را به یکباره شامل میشوند. پشتیبانگیریهای ایمیج امکان آنچه به طور سنتی “بازیابی فلزی” نامیده میشد را میدهند – کل سیستم میتواند به حالت کاملاً اجرایی بدون تعامل اضافی – به آسانی و بسیار سریع بازیابی شود. نه همه سازندگان هایپرویزر این قابلیت را دارند یا آن را به سطوح برابر دارند، پس در حالی که به طور مفهومی یک ویژگی اصلی است، باید توجه شود که میزان وجود یا مجوز این ویژگی باید به صورت موردی بررسی شود (قابل توجه است که HyperV این را به طور کامل دارد، XenServer آن را به طور جزئی دارد و VMware vSphere آن را فقط با سطوح مجوز غیررایگان دارد.) وقتی در دسترس باشد، پشتیبانگیریهای مبتنی بر ایمیج امکان بازیابی بسیار سریع با سرعتهایی را میدهند که با روشهای پشتیبانگیری دیگر غیرقابل تصور است. بازیابی سیستمها در دقایق ممکن است، از فاجعه تا بازیابی!
توانایی رفتار با ماشینهای مجازی به عنوان فایل (حداقل زمانی که به طور فعال در حال اجرا نیستند) مزایای اضافی ارائه میدهد که به مزایای پشتیبانگیری ذکر شده در بالا مربوط میشوند. یعنی توانایی مهاجرت سریع و آسان بین هاستهای فیزیکی و حتی جابجایی بین سختافزار ناهمگن. به طور سنتی ارتقاء یا جایگزینی سختافزار به معنای یک فرایند پیچیده مهاجرت پر از خطر بود. با مجازیسازی مدرن، انتقال از سختافزار موجود به سختافزار جدید میتواند یک فرایند قابل اعتماد و غیرمخرب با گزینههای بازگشت ایمن و کمترین یا احتمالاً صفر زمان از کار افتادن باشد! وظایفی که غیررایج بودند اما قبلاً بسیار پرخطر بودند اغلب میتوانند امروزه جزئی شوند.
اغلب این سود واقعی مجازیسازی و مکانیزمهای انتزاع است. این لزوماً برای بهبود عملیات روزانه یک سیستم نیست، بلکه برای کاهش ریسک و ارائه انعطافپذیری و گزینهها در آینده است. آماده شدن برای ناشناختههایی که یا غیرقابل پیشبینی هستند یا به سادگی در اکثر موقعیتهای رایج نادیده گرفته میشوند. به ندرت چنین برنامهریزیای اصلاً انجام میشود، به عذاب بخشهای IT که با ارتقاءهای دشوار و خطرناک رها شدهاند که میتوانست به راحتی کاهش یابد.
ویژگیهای زیادی از مجازیسازی وجود دارد که فقط در سناریوهای خاص قابل اجرا هستند. بسیاری از محصولات مجازیسازی شامل ابزارهای مهاجرت زنده برای جابجایی بارهای کاری در حال اجرا بین هاستها، یا احتمالاً حتی بین دستگاههای ذخیرهسازی، بدون زمان از کار افتادن هستند. گزینههای در دسترس بودن بالا و تحمل خطا اغلب در دسترس هستند که به برخی بارهای کاری امکان میدهد به سرعت یا حتی به طور شفاف از خرابی سختافزار سیستم بازیابی شوند و از سختافزار خراب به سختافزار افزونه بدون مداخله کاربر منتقل شوند. در حالی که این یک مزیت جانبیتر است و قطعاً در فهرست دلایل اینکه “تقریباً همه بارهای کاری” باید مجازی باشند قرار نمیگیرد، ارزش ذکر به عنوان یک مثال اصلی از ویژگیهایی را دارد که اغلب در دسترس هستند و در صورت بروز نیاز میتوانند بعداً اضافه شوند تا زمانی که مجازیسازی از ابتدا استفاده شود. در غیر این صورت یک مهاجرت به مجازیسازی قبل از توانایی استفاده از چنین ویژگیهایی لازم خواهد بود.
محصولات مجازیسازی معمولاً دارای ویژگیهای اضافی گستردهای هستند که فقط در موارد خاص اهمیت دارند. تعداد زیادی از آنها در یک استخر بزرگ از “در صورت نیاز آینده” قرار میگیرند. احتمالاً بزرگترین همه اینها مفهوم تجمیع است، همانطور که در ابتدای این مقاله ذکر کردم. مانند سایر ویژگیهای پیشرفته مانند در دسترس بودن بالا، تجمیع یک ارزش اصلی مجازیسازی نیست اما اغلب با آن اشتباه گرفته میشود. بارهای کاری که قصد ندارند از در دسترس بودن بالا یا تجمیع استفاده کنند باز هم باید مجازیسازی شوند – بدون شک. اما این ویژگیها به قدری بالقوه ارزشمند به عنوان گزینههای آینده هستند، حتی برای سناریوهایی که امروز از آنها استفاده نخواهد شد، که ارزش ذکر کردن صرف نظر از این را دارند.
تجمیع میتواند بسیار ارزشمند باشد و به راحتی میتوان فهمید چرا این همه افراد فقط فرض میکنند که از آن استفاده خواهد شد زیرا اغلب بسیار ارزشمند است. در دسترس بودن این ویژگی وقتی یک زیرساخت در جای خود باشد یک نکته کلیدی انعطافپذیری برای مدیریت ناشناختههای بارهای کاری آینده است. حتی زمانی که تجمیع امروز کاملاً مورد نیاز نیست، احتمال بسیار زیادی وجود دارد، حتی در کوچکترین شرکتها، که در برخی زمان ناشناخته در آینده مفید باشد. مجازیسازی با آمادهسازی سیستمهایمان برای حداکثر انعطافپذیری در برابر ناشناختهها محافظت میکند. یکی از مهمترین جنبههای هر تصمیم IT مدیریت و کاهش ریسک است. مجازیسازی این کار را میکند.
مجازیسازی درباره ثبات، انعطافپذیری، استانداردسازی، قابلیت مدیریت و پیروی از بهترین روشها است. هیچ محصول مجازیسازی شرکتی اصلی وجود ندارد که امروز، حداقل به شکلی، رایگان در دسترس نباشد. هر خریدی البته به تحلیل دقیق ارزش در مقابل هزینه نیاز خواهد داشت. با این حال، با گزینههای شرکتی عالی موجود به طور رایگان از هر چهار خط محصول کلیدی در این فضا (Xen، KVM، HyperV و VMware vSphere)، نیازی به چنین تحلیلی نداریم. فقط باید نشان دهیم که پیادهسازی یک غیرمنفی است.
آنچه تصمیمگیری را آسان میکند این است که وقتی حداقل حالت را در نظر میگیریم – حداقل چیزی که همه مجازیسازی شرکتی ارائه میدهد که شامل انتزاع بدون هزینه، کپسولهسازی و مزایای مبتنی بر ذخیرهسازی است، میبینیم که در تمام موارد مزیت کوچکی داریم، هیچ جنبه منفی قابل اندازهگیری و یک مزیت بالقوه بسیار بزرگ از حوزههای انعطافپذیری و پوشش در برابر نیازهای آینده. این ما را با یک برنده آشکار رها میکند و یک تصمیم ساده که مجازیسازی، رایگان بودن و با اساساً هیچ جنبه منفی به خودی خود، باید در هر موردی که بتوان استفاده کرد (که در این مرحله تقریباً همه بارهای کاری هستند) استفاده شود. ویژگیهای اضافی، غیراصلی مانند تجمیع و در دسترس بودن بالا باید به طور جداگانه ارزیابی شوند و فقط پس از اینکه تصمیم برای مجازیسازی از قبل تثبیت شده است. هیچ کمبود نیازی به آن ویژگیهای گستردهشده، به هیچ وجه، پیشنهاد نمیکند که مجازیسازی بر اساس مزایای خود انتخاب نشود.
این صرفاً توضیحی از بهترین روشهای موجود صنعتی است که برای مجازیسازی تمام بارهای کاری بالقوه به مدت سالهای زیادی بوده است. این جدید یا تغییر جهت نیست. فقط این واقعیت که مجازیسازی گسترده در سراسر برای تقریباً یک دهه بهترین روش صنعتی بوده نشان میدهد که این چه روششناسی اثباتشده و پذیرفتهشدهای است. همیشه بارهای کاری خواهند بود که به دلایلی به سادگی نمیتوانند مجازی شوند، اما اینها باید بسیار کم و دور از هم باشند و باید یک بررسی عمیق را برای پیدا کردن دلیل این موضوع برانگیزانند.
هنگام تصمیمگیری در مورد مجازیسازی یا عدم آن، رویکرد باید همیشه این باشد که فرض کنیم مجازیسازی یک نتیجهگیری از پیش تعیینشده است و فقط از این در صورتی که یک دلیل فنی محکم و مدافع این امر را غیرممکن کند، منحرف شوند. تقریباً تمام استدلالها علیه مجازیسازی از موضع سوءتفاهم میآیند با این باور که تجمیع، در دسترس بودن بالا، ذخیرهسازی خارجی، هزینه مجوز و سایر مفاهیم آزادانه مرتبط یا نامرتبط به نوعی ذاتی در مجازیسازی هستند. آنها نیستند و نباید در یک تصمیم مجازیسازی در برابر استقرار فیزیکی گنجانده شوند. آنها جداگانه هستند و باید به عنوان گزینههای جداگانه ارزیابی شوند.
ارزش ذکر کردن است که از آنجا که تجمیع بخشی از ماتریس تصمیم ما در ایجاد ارزش پایه برای مجازیسازی نیست، تمام دلایلی که استفاده میکنیم به طور مساوی هم برای استقرارهای یک به یک (یعنی یک ماشین مجازی تنها روی یک دستگاه فیزیکی تنها) و هم برای بارهای کاری تجمیعشده (یعنی چندین ماشین مجازی روی یک دستگاه فیزیکی تنها) اعمال میشوند. هیچ وضعیتی وجود ندارد که یک بار کاری “خیلی کوچک” برای مجازیسازی باشد. اگر اصلاً، برعکس است؛ فقط بزرگترین بارهای کاری، معمولاً با حساسیت زمان تأخیر شدید، هستند که یک سناریوی جانبی از غیرمجازیسازی هنوز به عنوان یک موضع حاشیهای وجود دارد، اما حتی این موارد نیز به سرعت در حال ناپدید شدن هستند چون بهبودهای تأخیر در مجازیسازی و ظرفیتهای کل بار کاری بهبود مییابند. این موارد بسیار نادر هستند و آنقدر سریع ناپدید میشوند که حتی وقت گرفتن برای ذکر این موارد احتمالاً اشتباه است چون نشان میدهد که استثناها، بر اساس نیازهای ظرفیت، به اندازه کافی رایج هستند که برای آنها ارزیابی شود، که نیستند، به خصوص نه در بازار SMB. هر چه بار کاری کوچکتر باشد، ایدهآلتر برای مجازیسازی است، اما این فقط برای تقویت این است که کسبوکار کوچک، با بارهای کاری منفرد، ایدهآلترین مورد برای مجازیسازی در سراسر است به جای یک استثنا بر بهترین روشها، نه برای پیشنهاد اینکه کسبوکارهای بزرگتر باید خودشان به دنبال استثناء باشند.

