مجازیسازی یکی از فناوریهای تحولآفرین به شمار میآید که بازار cloud computing (پردازش ابری) را متحول کرده است. این فناوری به مدیران سرور اجازه میدهد تا طی چند دقیقه ماشینهای مجازی با سیستمعاملهای مختلف راهاندازی کنند؛ بهگونهای که هر ماشین مجازی بتواند یک سیستمعامل متفاوت اجرا کند.
با این حال، روشهای مختلفی برای مجازیسازی سرور وجود دارد و هرکدام مزایا و معایب خاص خود را دارند. تفاوت اصلی بین Full Virtualization و Para Virtualization در این است که در روش فول-مجازیسازی، ماشینهای مجازی هیچ منبعی را با یکدیگر به اشتراک نمیگذارند و کاملاً ایزوله هستند اما در پارا-مجازیسازی امکان اشتراکگذاری ارتباطات و منابع سیستمعامل وجود دارد. در این مقاله، تفاوتهای میان دو روش مذکور بررسی شده و جزئیاتی درباره اختلاف سرعت و عملکرد آنها ارائه خواهد گردید.

تصویر(۱)
Full Virtualization چیست؟
فول-مجازیسازی نخستین راهکار نرمافزاری مجازیسازی محسوب میشود که اولین بار در اواخر دهه ۹۰ و اوایل ۲۰۰۰ توسعه یافت. همانطور که از نام آن مشخص است، در این روش ماشین مجازی کاملاً از سختافزار جدا میشود و هیچ اطلاعی ندارد که درون یک محیط مجازی در حال اجرا است. در Full Virtualization، سیستمعامل مهمان نیازی به تغییر ندارد؛ همین موضوع باعث میشود قابلحمل باشد و تقریباً از هر سیستمعاملی پشتیبانی کند.
این روش با استفاده از Binary Translation و اجرای مستقیم دستورات ماشین مجازی روی سختافزار فیزیکی کار میکند. با این حال، فول-مجازیسازی از نظر سرعت و عملکرد ضعف هایی دارد زیرا مجبور است از روشهایی مانند Hardware Emulation Overhead و Context Switching Overhead استفاده کند.

تصویر(۲)
هایپروایزرهای محبوب فول-مجازیسازی عبارتند از:
- VMware vSphere
- Microsoft Hyper-V
- Oracle VM VirtualBox
- KVM (Kernel-based Virtual Machine)
- Xen Project
- Proxmox Virtual Environment
ویژگیهای Full Virtualization:
- قابلیت حمل (Portability): به دلیل اینکه سیستمعامل مهمان تغییری نیاز ندارد، انتقال آن ساده است.
- امنیت پایینتر: معماری و نحوه ارتباط سیستمعامل مهمان با هایپروایزر باعث میشود امنیت این روش کمتر از پارا-مجازیسازی باشد.
- سرعت و عملکرد ضعیفتر: به دلیل عدم ارتباط مستقیم سیستمعامل مهمان با سختافزار، سرعت و بازدهی کاهش مییابد.
- عدم نیاز به تغییر سیستمعامل مهمان: در این روش هیچ تغییری در سیستمعامل مهمان اعمال نمیشود.
Para Virtualization چیست؟
پارا-مجازیسازی یکی از روشهای پرکاربرد مجازیسازی است. برخلاف فول-مجازیسازی، این روش ماشین مجازی را کاملاً از سختافزار جدا نمیکند بلکه تنها تا حدی نسبت به آن ایزوله میشود.
این روش از یک ماشین مجازی اصلاحشده استفاده میکند تا به آن اطلاع دهد که در یک محیط مجازی اجرا می شود و هستهٔ سیستمعامل را تغییر میدهد تا از “هایپرکالها” (hypercalls) استفاده کند. این موضوع باعث افزایش سرعت و بهبود عملکرد ماشین مجازی خواهد شد.
اما این بهبود هزینهای نیز به همراه دارد. تغییر در سیستمعامل مهمان، باعث کاهش قابلیت حمل و محدودیت پشتیبانی از سیستمعاملهای مختلف میشود. به همین دلیل، همه سیستمعاملهای موجود در بازار قابلیت اجرا روی پارا-مجازیسازی را ندارند.
برخی از هایپروایزرهای محبوب Para Virtualization:
- Xen
- KVM (ماشین مجازی مبتنی بر کرنل)
- VMware vSphere
- Microsoft Hyper-V
- Oracle VM VirtualBox
ویژگیهای Para Virtualization:
- تغییر در سیستمعامل مهمان: در پارا-مجازیسازی، سیستمعامل مهمان باید اصلاح شود تا بتواند از هایپِرکالها برای برقراری ارتباط با هایپروایزر استفاده کند.
- سرعت و بازدهی بالاتر: از آنجایی که ماشین مجازی در پارا-مجازیسازی دسترسی مستقیم به هایپروایزر یا لایه مجازیسازی دارد، سرعت بیشتری ارائه داده و عملکرد بهتری خواهد داشت.
- قابلیت جابجایی کمتر: یک سیستم پارا-مجازی وابستگی زیادی به هایپروایزر پایه داشته و به همین دلیل قابلیت جابجایی کمتری دارد.
- سازگاری پایین: تمام سیستمعاملها قابلیت تغییر به روش موردنیاز Para Virtualization را ندارند بنابراین تعداد سیستمعاملهایی که میتوان با یک هایپروایزر پارا-مجازی استفاده کرد محدود است.

تصویر(۳)
مقایسه Full Virtualization و Para Virtualization
در جدول زیر، هر دو تکنیک مجازیسازی در کنار هم مقایسه شدهاند تا تفاوتهای کلیدی بین Full Virtualization و Para Virtualization بهتر درک شود.
|
فول-مجازیسازی |
پارا-مجازیسازی |
|
بهراحتی قابل جابجایی است |
قابلیت جابجایی کمتر |
|
استفاده از ترجمه باینری و روش مستقیم |
استفاده از هایپِرکالها |
|
امنیت پایین |
امنیت بالا |
|
کندتر |
سریعتر |
|
بازدهی کمتر |
بازدهی بیشتر |
|
سازگاری بالا با هر نوع سیستمعامل |
سازگاری پایین با سیستمعاملها |
|
بدون تغییر در سیستمعامل |
نیازمند تغییر در سیستمعامل |
|
مایکروسافت و VMware |
Xen و KVM |
جدول(۱)
نتیجهگیری
هر دو روش Full Virtualization و Para Virtualization بهطور گسترده استفاده میشوند اما هر کدام مزایا و معایب خاص خود را دارند. بررسی ویژگیهای هر تکنیک مجازیسازی سرور، کمک میکند تا مشخص شود کدام روش برای کاربرد موردنظر مناسبتر است.
بهطور خلاصه، در فول-مجازیسازی نیازی به تغییر سیستمعامل نیست و سیستمعامل متوجه نمیشود که در یک محیط مجازی اجرا میگردد. همین موضوع باعث کاهش سرعت و بازدهی ماشین مجازی میشود و همچنین امکان دسترسی مستقیم به منابع سختافزاری را از بین میبرد. با این حال، روش Full Virtualization قابلیت جابجایی بیشتری داشته و تقریباً از تمام سیستمعاملهای موجود پشتیبانی میکند. به همین دلیل اگر نیاز به اجرای یک سیستمعامل خاص وجود داشته باشد، انتخاب خوبی خواهد بود.
از سوی دیگر، پارا-مجازیسازی بر خلاف فول-مجازیسازی، سیستمعامل مهمان را تغییر داده و آن را آگاه میسازد که در یک محیط مجازی اجرا میشود. همچنین سیستمعامل را وادار به همکاری با هایپروایزر میکند که همین امر دلیل اصلی سرعت و بازدهی بالاتر آن است. با این حال، چون تمام سیستمعاملها قابل تغییر نیستند، Para Virtualization از نظر قابلیت جابجایی محدودتر محسوب میشود.
