مجازی سازی چیست؟
از نظر کاربر نهایی، صرف نظر از نوع فناوری مجازی سازی که در قسمت Backend استفاده می شود، به نظر می رسد که سرور یک منبع واحد است. مفهوم مجازی سازی را می توان در هر مرحله از توسعه نرم افزار به کار گرفت. به طور کلی، چندین نوع پیش فرض برای مجازی سازی وجود دارد.
انواع مجازی سازی
سرور مجازی
در این فرایند، منابع سرور از کاربران نهایی پرسیده می شود و به راحتی با انتخاب در تنظیمات به آنها اختصاص داده می شود. این به تقسیم یک سرور فیزیکی واحد به چندین محیط مجازی کمک می کند. به این محیط های مجازی سرورهای خصوصی مجازی یا مهمان می گویند.
شبکه مجازی
در مجازی سازی شبکه، منابع سخت افزاری، منابع شبکه نرم افزاری و عملکردهای شبکه در یک واحد مدیریت نرم افزاری واحد به نام شبکه مجازی ترکیب می شوند. در این سطح، می توانیم یک شبکه را در حال راه اندازی اولیه و ایجاد کنیم.
VM یا ماشین مجازی چیست؟
ماشین مجازی (Virtual Machine) که بهصورت خلاصه به آن VM میگویند یکی از محصولات مهمی است که بر اساس تکنولوژی مجازی سازی بهدست آمده است. ماشین مجازی یک نرمافزار است که یک سیستمعامل را در سیستمعاملی دیگر شبیهسازی میکند. یعنی شما با ماشین مجازی میتوانید روی یک سیستمعامل، سیستمعامل دیگری داشته باشید، بدون اینکه سختافزار خودتان را تغییر دهید.
ماشین مجازی مثل یک کامپیوتر مجازی است. مثلا شما بجای اینکه به فروشگاه بروید و یک سیستم فیزیکی با هارد، رم و هسته پردازنده مشخص بگیرید. یک کامپیوتر مجازی با همان میزان سخت افزار سفارش میدهید و با کامپیوتر یا حتی گوشی موبایل خودتان به آن متصل میشوید و آن را مدیریت میکنید.
کاربردهای مهم ماشین مجازی
ماشین مجازی کاربردهای زیادی دارد. ۴ نمونه از مهمترین کاربردهای آن عبارتاند از:
۱. تست نرمافزار در سیستم عاملهای مختلف
یکی از کاربردهای مهم ماشین مجازی، تست نرمافزار در سیستم عاملهای مختلف است. فرض کنید شما از سیستمعامل مک برای توسعهی یک نرمافزار ویندوزی استفاده میکنید. برای اینکه ببینید نرمافزاری که طراحی کردهاید، درست کار میکند یا نه، چهکار میکنید؟ مجازی سازی به شما کمک میکند تا یک ماشین مجازی ویندوز بسازید و در همان سیستمعامل مک، نرمافزارتان را تست کنید.
۲. تست نرمافزارهای قدیمی
تا حالا شده که یک نرمافزار قدیمی داشته باشید که به هر دلیل توسعه هم داده نشده و فقط هم با سیستم عاملهای قدیمی کار کند؟ اگر مجبور باشید که از آن استفاده کنید چه کار میکنید؟ مجازی سازی به شما این امکان را میدهد که از همان سیستمعامل قدیمی، یک ماشین مجازی بسازید و نرمافزارتان را روی همان اجرا کنید.
۳. توسعهی بازی
اگر یک توسعه دهندهی بازی باشید، حتماً میدانید که بازی شما باید در تمامی سیستم عاملها بهخوبی اجرا شود؛ اما شما قاعدتاً یک سیستمعامل بیشتر ندارید! مجازی سازی اینجا هم به کمکتان میآید. با استفاده از ماشینهای مجازی میتوانید سیستم عاملهای مختلف را روی کامپیوترتان شبیهسازی کنید و ببینید که بازیتان در بقیهی OSها چطور کار میکند.
۴. تست سختافزار با ماشین مجازی
بعضی وقتها ممکن است سختافزاری تهیه کرده باشید، اما مطمئن نباشید که آیا این سختافزار با یک سیستمعامل خاص سازگار است یا نه. در این موارد هم میتوانید سیستمعامل مدنظرتان را با مجازی سازی، شبیهسازی کنید و این موضوع را بررسی کنید.
مجازی سازی چطور انجام میشود؟
قبل از اینکه بخواهیم در مورد نحوهی مجازی سازی در شبکه توضیح دهیم، بهتر است کمی در مورد هایپروایزرها که اسمشان را کمی قبلتر شنیدیم، توضیح دهیم.
اول از همه، فقط این را بدانید که هایپروایزر یک نرمافزار است و وظیفهی مشخص آن هم این است که منابع فیزیکی سرور را از محیطهای مجازی جدا کند. یعنی چه؟ یعنی اینکه منابع فیزیکی سرور را از شما میگیرد و آن را تقسیم میکند تا بخشهای مجازی بتوانند از آن استفاده کنند. فکر میکنم با همین توضیح مختصر، تقریباً اصل قضیه را از هایپروایز یاد گرفتید.
پس حالا میدانیم که منابع سرور بر اساسِ نیاز، ممکن است بین محیطهای مجازی متعددی تقسیم شوند. از همین حالا، به این محیطها، ماشین میهمان (Guest Machine) یا بهتر از آن، ماشین مجازی (Virtual Machine) میگوییم که البته تعریف آن را در قسمتهای قبلی همین مقاله یاد گرفتیم. کاربران با استفاده از ماشینهای مجازی، محاسبات خود را انجام میدهند. در واقع ماشین مجازی به عنوان یک فایل دیتای واحد عمل میکند و همین خصوصیت باعث میشود تا بتوان آنها را از یک سیستم به سیستمی دیگر انتقال داد و البته در تمامی این سیستمها بهصورت همزمان کار کند.
حالا یک مورد خاص در عملکرد مجازی سازی سرور را بررسی میکنیم: وقتی ماشین مجازی در حال اجراست و کاربر یا برنامهای (البته این دو در عمل، تفاوتی هم با هم ندارند)، درخواستی را صادر میکند که برای پردازش و پاسخ دادن به آن، به منابع بیشتری نسبت به محیط فیزیکی نیاز است، هایپروایزر درخواست را به سیستم فیزیکی ارسال و تغییرات را در حافظهی پنهان (Cache) ذخیره میکند. البته تمام این مراحل، خیلی سریع اتفاق میافتد. بهخصوص اگر درخواست با هایپروایزر مبتنی بر KVM یا همان ماشین مجازی مبتنی بر کرنل لینوکس ارسال شود.
انواع مجازی سازی
مزایا و نقاط ضعف مجازی سازی
هر سیستم کامپیوتری، ممکن است نقاط ضعف و قوتی داشته باشد. منطقی هم هست؛ اگر یک سیستم هیچ ایرادی نداشته باشد، رقیبی هم برای آن نیست که البته در دنیایی که هر روز یک تکنولوژی با کلی مزیت ابداع میشود، این اتفاق خیلی بعید است. مجازی سازی هم از این قاعده مستثنی نیست. در ادامه به مهمترین مزایا و معایب مجازی سازی و استفاده از ماشینهای مجازی میپردازیم:
مزایای استفاده از ماشین مجازی
استفاده از ماشین مجازی، هم برای توسعه دهندگان و هم برای شرکتها، مزایای زیادی دارد. مثلاً:
۱. انعطافپذیری بالا
ماشین مجازی انعطافپذیری بالایی را به شما ارائه میدهد. همین که میتوانید روی یک سیستمعامل، از OSهای دیگری استفاده کنید، نمونهی واضحی از انعطافپذیری را نشان میدهد.
۲. امنیت بیشتر
نکتهی دیگری که با مجازی سازی بهدست میآورید، امنیت بالا است. ماشین مجازی محیطی ایزوله به شما ارائه میدهد که با استفاده از آن میتوانید از سیستمعامل خود در برابر انواع ویروسها و بدافزارها محافظت کنید.
۳. صرفهجویی در هزینهی شرکتها
یادتان هست که چند بار اشاره کردیم که با ماشین مجازی میتوانید از چند سیستمعامل روی یک OS استفاده کنید؟ اگر به هر دلیل نخواهید این کار را انجام دهید، باید هزینههای بالای خرید سختافزار را تقبل کنید.
۴. کارایی بیشتر
استفاده از مجازی سازی، باعث افزایش عملکرد سیستم شما هم میشود. بهعنوان مثال، شرکتی که از ماشین مجازی برای میزبانی از وب سرورهای خود استفاده میکند، میتواند بار کاری (Work Load) خود را بهصورت متوازن توزیع کند. با این کار میتوانید از منابع خود، استفادهی بهتری ببرید.
۵. مدیریت سادهتر
مجازی سازی به شما کمک میکند تا مدیریت بهتر و سادهتری روی سیستمهای خود داشته باشید. این نکته را به یاد داشته باشید که شما میتوانید با استفاده از یک پلتفرم، مدیریت تمامی ماشینهای مجازی خود را انجام دهید.
تفاوت داکر با ماشین مجازی
معایب مجازی سازی
برخی از مهمترین معایب مجازی سازی که قبل از استفاده، باید از آنها اطلاع داشته باشید، در ادامه توضیح داده شده است:
۱. استفاده از منابع سرور
اگر چه یکی از معایب مجازی سازی این بود که استفاده از منابع را بهینهتر میکند، اما خود نرمافزارهای مجازی ساز هم همیشه در حال استفاده از منابع سرور شما هستند؛ حتی اگر در حال اجرا هم نباشند.
۲. عدم سازگاری برخی نرمافزارها
بعضی از نرمافزارها ممکن است با سیستم مجازی سازی سازگار نباشند. بنابراین اگر میخواهید از ماشین مجازی برایِ تست یا کار با نرمافزارها استفاده کنید، حتماً قبل از هر چیز مطمئن شوید که نرمافزار موردنظرتان مشکلی با این تکنولوژی نداشته باشد.
۳. مشکلات امنیتی
اگر ماشین مجازی را درست پیکربندی کنید، اتفاقاً سطح بالایی از امنیت را به شما میدهد. اما در صورتیکه این کار درست انجام نشود، ممکن است حفرههای امنیتی ایجاد شده در آن، کار دستتان بدهد.
۴. کمی پیچیدگی در یادگیری اولیه
یادگیری استفاده از ماشین مجازی، ممکن است در ابتدای کار کمی پیچیده بهنظر برسد. اما با توجه به مزایایی که حالا دیگر خودتان هم میدانید، حتماً ارزشش را دارد.
بررسی انواع مجازی سازی
مجازی سازی، انواع و اقسامی دارد که چه یک متخصص شبکه باشید و چه بخواهید تازه آموزش مجازی سازی سرور را بگذرانید، حتماً به آن نیاز پیدا میکنید. در ادامه، به بررسی این مورد میپردازیم:
۱. مجازی سازی دادهها (Data Virtualization)
مجازی سازی دیتا تکنیکی است که نه تنها توسط شرکتها و سازمانها استفاده میشود، بلکه تقریباً همهی ما، بهطور روزانه از آن استفاده میکنیم. به بیانِ ساده، مجازی سازی دیتا یعنی اینکه بهجای ذخیره کردن اطلاعات روی یک استوریج فیزیکی (مثلاً هارد کامپیوتر) آن را بهصورت مجازی ذخیره کنیم.
مجازی سازی داده چیست؟
Data Virtualization چه کاربردی دارد؟
واضحترین مثالی که در این مورد میتوان زد، فناوری کلود استوریج است که حالا دیگر خیلی از نرمافزارهایی که هر روز از آنها استفاده میکنیم، از این فناوری استفاده میکنند. در این روش، اطلاعات شما فقط روی یک محل فیزیکی ذخیره نمیشود؛ بلکه این اطلاعات بهصورت دیجیتالی و روی یک سرورهایی که ممکن است در مکانهای مختلف قرار داشته باشند، ذخیره میشود.