مجازی سازی چیست؟ چه کمکی به کاهش هزینهها میکند؟
زندگی انسان امروزی، به 2 قسمت تقسیم شده: زندگی در دنیای واقعی و زندگی در دنیای مجازی. هرچه هم جلوتر میرویم، مرز این دو فضا کمرنگتر
اما این مجازی سازی یا Virtualization یعنی چه؟ چطور میشود همهچیز را مجازی کرد؟ اصلاً مزایا و معایب مجازی سازی را میدانید؟ تکنولوژی مجازی سازی تا کجاها پیش رفته و چه چیزهایی را میشود به یک ماشین مجازی تبدیل کرد؟
اگر خورۀ چنین موضوعاتی هستید و دوست دارید که اطلاعاتتان را بیشتر کنید، پیشنهاد میکنم تا آخر این مقاله با ما همراه باشید. موضوع مجازی سازی خیلی جداب است!
مجازی سازی چیست؟
خیلی ساده بگوییم:
«به ساختن نسخۀ مجازی از هر چیزی، مثل سیستم عامل، رم، سرور، شبکه و …، مجازیسازی گفته میشود. نسخه مجازی یعنی چیزی که مثل نسخه واقعی قابل دیدن یا لمس نباشد، اما همان کار را انجام دهد.»
بد نیست بدانید که شما وقتی که دارید از ابر و سرویسهای ابری استفاده میکنید، در واقع در حال استفاده از تکنولوژی مجازیسازی هستید. برای مثال وقتی که داخل گوگل داکس مقاله مینویسید، دارید از یک سرویس مجازی مبتنی بر ابر استفاده میکنید.
امروزه توان پردازشی کامپیوترها آنقدر افزایش یافته است که با تکنولوژی مجازیسازی میشود بهینهترین استفاده را از آنها کرد. حتی میشود ادعا کرد که مهمترین دستاورد مجازیسازی، همین بهره بردن از نهایت توان سختافزاری سرور است.
در نتیجه این دستاورد، هزینهها به میزان قابل توجهی کاهش مییابند. مثلاً کسانی که از سرویسهای ابری استفاده میکنند، دیگر نیازی به خرید تجهیزات و سختافزار ندارند و حتی میتوانند فقط به اندازه استفادهشان از منابع پول پرداخت کنند.
پیشنهاد میکنم مقالۀ کلود کامپیوتینگ چیست را بخونید و بیشتر با دنیای ابرها آشنا شوید.
مثالی خیلی ساده از مجازیسازی
اول از همه تصور کنید که شما 3 تا سرور فیزیکی جداگانه، برای انجام کارهای متفاوت دارید. اولی Web server شماست، دومی Email server شماست و آخری هم Legacy Application ها را اجرا میکند.
Legacy Applications به چه چیزی گفته میشود؟
به برنامههایی که برای نسخههای قدیمی سیستم عامل (یا سختافزار) نوشته شدهاند و حالا با وجود نسخه جدید، هنوز هم به آنها نیاز دارید Legacy Application گفته میشود.
معمولاً هم جایگزین کردن این برنامهها هزینه زیادی میخواهد؛ بنابراین سازمانها ترجیح میدهند که از از همان فناوری قدیمی، در عملیات مهم امروزشان استفاده کنند.
برگردیم به بحثمان.
هر کدام از سرورهایی که گفتیم، فقط 30 درصد از ظرفیتشان درگیر شده است، که خب تنها بخش ناچیزی از پتانسیل اجرایی آنهاست. این یعنی چه؟
یعنی عملاً بخشی از توان اجرایی دارد هدر میرود؛ چون ما به هر سرور جداگانه، فقط یک وظیفه خاص را محول کردهایم.
تکنولوژی مجازی سازی، دقیقاً همینجا به درد میخورد. با استفاده از Virtualization میتوانیم Mail Server را به 2 بخش تقسیم کنیم و 2 کار مختلف را به آن بسپاریم: اجرای برنامههای قدیمی و ارسال ایمیل.
توجه کنید که سختافزار، همان سختافزار است و شما فقط دارید به شکلی بهینهتر، از آن استفاده میکنید!
با در نظر داشتن نکات امنیتی، شما حتی میتوانید سرور اول را باز هم با استفاده از مجازیسازی تقسیم کنید و این بار، 90 درصد آن را درگیر کنید.
✅ با این کار، سرورهای خالی را میتوانید به کارهای دیگری اختصاص دهید، یا اینکه آنها را کلاً کنار بگذارید و در هزینۀ نگهداری و خنک کردنشان صرفهجویی کنید.
مجازی سازی در عمل چگونه است؟
در عمل برای اینکه بتوانیم از تجهیزات سختافزاریمان، نسخههای مجازی ایجاد کنیم، به سرور و نرم افزار Hypervisor احتیاج داریم.
Hypervisor چیست؟
هایپروایزر نام یک نرمافزار خاص نیست. در واقع به هر نرمافزاری که بتواند منابع فیزیکی شما را تقسیم کرده و از آنها محیط مجازی بسازد، هایپروایزر گفته میشود.
هایپروایز به کامپیوتر میزبان اجازه میدهد که با تقسیم منابعی مانند حافظه یا CPU از چندین ماشین مجازی پشتیبانی کند.
نام دیگر هایپر وایزر مانیتور ماشین مجازی یا Virtual Machine Monitor (VMM) است. به هر ماشین مجازی هم به اختصار VM گفته میشود.
چند نوع Hypervisor داریم؟ تفاوت آنها در چیست؟
این نرمافزار که برای انجام مجازیسازی ضروری است، به دو دسته تقسیم میشود. دسته اول و دسته دوم! شوخی نمیکنیم. نوع اولType 1 نام دارد و نوع دوم Type 2 !
Type 1 این نرمافزار، مستقیماً روی سرور یا هاست نصب میشود و نام دیگر آن Bare-Metal است. این نوع نسبت به نوع دیگر رواج بیشتری دارد.
هایپروایزر Type 2 اما مثل باقی نرمافزارها، روی سیستمعامل نصب میشود! مثلاً میتوانید آن را مستقیماً روی لپتاپتان هم نصب کنید. به این نوع، Hosted-Hypervisor هم میگویند.
نوع اول این نرمافزار، سرعت بیشتری نسبت به نوع دوم دارد؛ آن هم به خاطر اینکه مثل یک سیستم عامل سبک، مستقیماً روی سختافزار میزبان نصب میشود. در حالی که در نوع دوم، هایپروایزر مانند بقیه برنامههای کامپیوتری، به عنوان یک لایه نرمافزاری، روی سیستم عامل اجرا میشود.
برای اینکه خوب متوجه شوید، 2 تا تصویری را که با دست کشیدهایم ببینید و با هم مقایسه کنید.
در کل میتوان گفت Type 1 هایپروایزرها، امنیت بیشتر و عملکرد بهتری دارند! به همین خاطر بیشتر کمپانیها از آن برای مجازیسازی استفاده میکنند.
نکته: VirtualBox یکی از هایپروایزرهای معروف تایپ 2 و VMWare یکی از هایپروایزرهای محبوب تایپ 1 است.
بیایید برای اینکه خیالمان راحت شود، یک بار هم تعریف ماشین مجازی را مرور کنیم.
ماشین مجازی چیست؟
موافقید که با یک مثال توضیح دهم؟
فرض میگیریم که شما یک لپتاپ دارید و میخواهید روی آن هم سیستم عامل لینکوس را داشته باشید و هم سیستم عامل ویندوز را. چه کار میکنید؟ میروید یک لپتاپ دیگر برای لینوکس میخرید؟
قطعاً نه! چون شما میتوانید از همان منابع سختفزاری (مثل CPU، RAM، GPU، حافظه و …) که لپتاپتان دارد استفاده کنید و 2 تا سیستم عامل روی یک لپتاپ نصب کنید.
این دو تا سیستم عامل از هم جدا هستند و بهصورت مجزا فعالیت میکنند و در واقع شما 2 تا VM با استفاده از منابع لپتاپتان ایجاد کردهاید.
حالا یک سوال میخواهم از شما بپرسم میپرسم که مطمئن شویم بهخوبی این مفاهیم را یاد گرفتهاید. اگر دوست داشتید، جواب سوال را برایمان کامنت کنید.
سوال چالشی: در مثال لپتاپ، از چه نوع هایپروایزری برای نصب 2 تا سیستم عامل استفاده میکنیم؟
بعد از جواب دادن به سوال بالا، وقت صحبت درباره انواع مجازی سازی، از داده تا شبکه است!
با انواع مجازی سازی آشنا شوید
در این بخش، 7 مدل مختلف مجازی سازی را بررسی میکنیم که هر کدام برای کاربردهای مختلف و انجام سادهتر کارها مورد استفاده قرار میگیرند. ناگفته نماند که ویژگی مشترک تمام مجازیسازیها هم، کاهش هزینه است.
1) مجازیسازی سرور (Server Virtualization)
مجازی سازی سرورT فرآیند تقسیم یک سرور فیزیکی قدرتمند، به چندین سرور مجازی کوچکتر است؛ بهطوریکه هر کدام از این سرورهای ایجاد شده، منحصربهفرد هستند و فعالیت مستقلی دارند.
با تقسیم منابع سرور فیزیکیمان بین چند سرور مجازی، میتوانیم از نهایت توان آن برای انجام امور مختلف بهره ببریم. این کاری است که مجازیسازی سرور انجام میدهد.
پیشنهاد میکنم مقالۀ VPS چیست را بخوانید و با مفهوم سرور مجازی، به زبان ساده آشنا شوید.
2) مجازیسازی داده (Data Virtualization)
در این مورد، نرمافزار مجازیسازی مثل یک پل بین چندین منبع داده مختلف و متنوع قرار میگیرد و دادههای مهم و تعیینکننده را در یک مکان مجازی کنار هم جمع میکند.
این کار به چه دردی میخورد؟
با این کار، دسترسی کاربران به دادهها، خیلی سریعتر و راحتتر از قبل میشود؛ چون حالا ما یک لایۀ پیشرفته داریم که مجموعههای مختلفی از دادههای
یکی از مهمترین مزایای مجازیسازی دادهها این است که آنالیز دادههای بزرگ، دقیقتر و سادهتر از قبل، قابل انجام است.
در مجازیسازی دادهها، نرمافزار روی تعداد زیادی از داده قرار میگیرد و باعث میشود تا تمام آنها در قالب یک فایل قرار گیرند. سپس این فایل که همان VM یا ماشین مجازی است، برای مصارف مختلف مورد استفاده قرار میگیرد.
3) مجازی سازی دسکتاپ (Desktop Virtualization)
با مجازیسازی دسکتاپ، محیط دسکتاپ از دستگاه فیزیکی جدا شده و به عنوان «زیر ساخت دسکتاپ مجازی» یا VDI (مخفف Virtual Desktop Infrastructure) پیکربندی میشود. حالا این جملۀ پیچیده یعنی چه؟
وقتی شما برای خودتان یک دسکتاپ مجازی میسازید، میتوانید از هر جایی به آن دسترسی باشید. این ویژگی به سازمانهای بزرگ کمک میکند،
همچنین، با ایجاد ماشین مجازی میتوانید از راه دور به دستگاههای موجود در دیتاسنتر هم دسترسی داشته باشید.
4) مجازیسازی سیستم عامل (Operating System Virtualization)
مثالی که بالاتر درباره مجازی سازی Type 1 و Type 2 زدیم یادتان هست؟
گفتیم که در روش Type 2 ما میتوانیم هایپروایزر را روی بهجای اینکه مستقیماً روی سختافزار نصب کنیم، آن را روی یک سیستم عامل میزبان نصب کنیم؛ درست مثل بقیه نرمافزارها!
مجازیسازی سیستم عامل هم نوع 2 محسوب میشود و ما به جای اینکه روی هر دستگاه یک سیستم عامل داشته باشیم، میتوانیم روی سیستم عامل میزبان، تعدادی سیستم عامل دیگر هم نصب کنیم.
این فرایند هم مثل دیگر انواع مجازی سازی، مزایایی مثل کاهش هزینههای سختافزار را به همراه دارد.
5) مجازیسازی شبکه (Network Virtualization)
با مجازیسازی شبکه، تمام تجهیزات در یک منبع مبتنی بر نرمافزار جمعآوری میشوند و از راه دور قابل دسترسی خواهند بود. همچنین با استفاده از
مجازی سازی شبکه باعث میشود که با خرید تعداد کمتری اجزای فیزیکی (مثل روترها، سوئیچها، سرورها، کابلها و غیره) هزینهها را کاهش دهید.
6) مجازی سازی حافظه (Storage Virtualization)
در این روش، هارد دیسکهای فیزیکی (چه در سرورهای جداگانه و چه در واحدهای ذخیره سازی مستقل) به صورت خوشهای و در یک محیط مجازی، کنار هم گردآوری میشوند. فایده این کار چیست؟
اولاً که دسترسی حافظه و مدیریت آن سادهتر است؛ چون اینطوری با یک دستگاه سروکار دارید، نه چندین دستگاه مختلف.
ثانیاً، با این روش میتوانید خیلی راحت به VM ها فضای مورد نیاز را اختصاص دهید و حداکثر استفاده را از ظرفیت شبکه ببرید؛ بدون آنکه هزینۀ اضافهای متقبل شوید!
ثالثاً، اگر دیتاها را در یک ماشین مجازی نگه داشته باشید، زمانی که مشکلی برای زیرساختها پیش بیاید، میتوانید پلن Disaster Recovery را فعال و اطلاعاتتان را به مکان دیگری منتقل کنید.
7) مجازی سازی اپلیکیشن (Application virtualization)
در این روش، اپلیکیشن بدون آنکه نیاز باشد روی سیستم عامل کاربر نصب شود، برای او قابل اجرا خواهد بود. برای مثال شما میتوانید یک برنامه ویندوزی
خب، حالا که با انواع مجازیسازیهای پرکاربرد آشنا شدید، بیایید نگاهی کوتاه مختصر هم به مزایا و معایب آن داشته باشیم.
با مزایا و معایب مجازی سازی آشنا شوید
هیچچیزی کامل نیست؛ یعنی هرچیزی، هرچقدر هم بینقص باشد، باز هم ایراداتی دارد و مجازیسازی هم از این قاعده مستثنی نیست. در این قسمت راجع به مزایا و معایب این رویکرد که این روزها، به استانداردی در دنیای IT تبدیل شده است، صحبت خواهیم کرد.
مزایای مجازی سازی
اول از همه خیالتان را راحت کنم که مزایای مجازیسازی از معایب آن بیشتر است. پس اول به 6 تا از نقاط قوت آن میپردازیم.
1) کاهش هزینهها
مهمترین مزیت مجازیسازی، همانطور که چند بار هم در متن اشاره کردیم، کاهش هزینهها است. حتی نیازی به گفتن هم نیست! هرچقدر تعداد سرورها یا تجهیزات سختافزاری کمتر شود، هزینه خرید و نگهداری از آنها هم کاهش پیدا میکند.
2) ریکاوری راحتتر اطلاعات
بازیابی اطلاعات در یک محیط مجازی بسیار ساده است؛ به خصوص اگر از نوع Disaster Recovery باشد. وقتی از تکنولوژی مجازی سازی استفاده میکنید، حتی اگر وضعیت از کنترل خارج شود و فاجعه به بار بیاید، میتوانید ماشین مجازی (VM) را در عرض چند دقیقخه به یک مکان جدید منتقل کنید.
3) تست راحتتر عملیات
اگر توسعه دهنده هستید، حتماً میدانید که تست کردن برنامه یا عملیات در محیط مجازی، چقدر سادهتر است!
حتی اگر مشکلی در برنامه وجود داشته باشد، نیازی نیست که عملیات را متوقف و از اول شروع کنید؛ شما میتوانید به حالت قبلی برگردید (snapshot قبلی منظورمان است) و از همانجا کار را دوباره شروع کنید.
4) بکاپگیری سادهتر
از سرورهای مجازی و VM ها میشود خیلی سریع بکاپ تهیه کرد. حتی در طول هر روز، اسنپشاتهایی بهطور دقیق و منظم گرفته میشوند تا خیالتان از بهروز بودن اطلاعات راحت باشد.
5) آلودگی کمتر محیط زیست
دیتاسنترها و شرکتهای بزرگی که تجهیزات عظیم سختافزاری دارند، ردپای کربن زیادی در طبیعت به جا میگذارند.
اگر بخواهیم مسئولانه به این قضیه کنیم، آنها میتوانند با استفاده از تکنولوژی Virtualization نیازشان به سختافزارهای بزرگ و همچنین مصرف انرژی را کاهش دهند.
6) امکان تامین سریعتر منابع مورد نیاز
تهیه کردن، نصب و تنظیم سختافزارهای جداگانه برای اجرای هر اپلیکیشن، مسلماً کاری بسیار زمانبر است؛ اما اگر با چندین VM طرف باشیم که همگی از یک سری سختافزار تغذیه میشوند، کار راحتتر و سریعتر انجام خواهد شد.
برویم سراغ معایب؟
معایب مجازی سازی
ما 3 مورد از معایب مجازیسازی را اینجا آوردهایم؛ اگر شما هم مورد خاصی به نظرتان میرسد، در بخش نظرات مطرح کنید تا اطلاعتمان را افزایش دهیم.
1) هزینه زیاد شروع
اگرچه با مجازیسازی در بلندمدت، بهشدت در هزینهها صرفهجویی خواهد شد، اما این موضوع را هم در نظر بگیرید که نصب و راهاندازی اولیه نرمافزارها و سختافزارهای مورد نیاز برای مجازیسازی خیلی ارزان نخواهد بود!
بهتر است به این موضوع به چشم یک سرمایهگذاری بلندمدت نگاه کنید.
2) در خطر بودن امنیت دادهها
البته مجازیسازی به خودی خود ایمنی بیشتری را بههمراه میآورد؛ اما گاهی اوقات با سهلانگاری برخی مشترکین، ممکن است امنیت همه به خطر بیفتد.
مثلاً هاست اشتراکی یکی از محصولات مجازیسازی است؛ در صورت ناامن بودن ارائهدهنده سرویس یا وجود اتصالات آسیبپذیر، دادهها در خطر قرار میگیرند.
3) سازگار نبودن با برخی برنامهها
هنوز هم که هنوز است، برخی از برنامههای مهم (از جمله برخی از دیتابیسها) برای مجازی شدن آماده نیستند. حتی گاهی ممکن است اپلیکیشنها یا سیستم عاملها، با مشکلاتی روبرو شوند و بدون اینکه هیچ سرنخی نشان دهند، در محیط مجازی متفاوت عمل کنند.
و بالاخره … میرسیم به آخر مقاله.
حرف آخر
اولین بار ۶۰ سال پیش بود که موضوع مجازیسازی مطرح شد. حالا در سال ۲۰۲۱ میلادی، این رویکرد به یکی از ضروریات دنیای IT بدل شده است. همیشه هم هدف از انجام این کار، بهره بردن از تمام منابع موجود و صرفهجویی در زمان و هزینه بوده و هست. البته؛ ما هنوز نمیدانیم که انسانها تا کجا میتوانند در مجازی سازی پیش بروند. شاید یک روزی چشمانمان به دنیایی مثل ماتریکس باز شود! 🤔
بگذریم؛ مثل همیشه، با نظرتان ارزشمندتان ما را خوشحال کنید و اگر مقاله برایتان مفید بود، آن را با دوستانتان به اشتراک بگذارید.
برخی از منابع کمکی این مقاله: [Red Hat] – [Open Source] – [IBM] – [searchservervirtualization]