محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

Paravirtualization چیست؟ بررسی مفهوم پاراویرچوالیزیشن

کلمه Para از یک واژه یونانی گرفته شده است و در انگلیسی می توان از جایگزین هایی مثل beside یا Alongside یا حتی With به جای این کلمه استفاده کرد. Paravirtualization یعنی نزدیک شدن بیشتر به مجازی سازی ، البته ما در ITPRO قصد ترجمه کلمات را نداریم و فقط می خواهیم به اصل موضوع بپردازیم. اگر دقت کرده باشید در ماشین های مجازی که امروزه ایجاد می کنید بعضا پیش می آید که وارد Device Manager آنها شده باشید و سخت افزارهایی که به شما نمایش داده می شوند را نیز حتما دیده اید .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

اکثر این سخت افزارهایی که شما درایورهای آنها را مشاهده می کنید یک پیشوند و یا پسوند VMware در خودشان دارند برای مثال شما کارت شبکه را به صورت vmxnet ethernet adapter در ویندوز مجازی شده ممکن است مشاهده کنید و یا در سرویس Hyper-V ممکن است در ویندوز مجازی سازی شده درایوری را به شکل Microsoft Hyper-V Virtual Machine Bus Adapter مشاهده کنید. تا اینجای کار این موارد را در ذهن خود داشته باشید تا به سراغ اصل ماجرا برویم. دقت کنید که این موارد جزئی ای از Paravirtualization هستند اما Paravirtualization واقعی گسترده تر و پیچیده تر از فقط درایورهای کارت شبکه است.

Paravirtualization چیست
Paravirtualization چیست

ما انواع و اقسام طبقه بندی های مجازی سازی داریم که از آن جمله می توانیم به Full Virtualization و Paravirtualization اشاره کینم. یکی از مهمترین مشکلاتی که در خصوص استفاده از Full Virtualization وجود دارد Emulate کردن یا تقلید ( این ترجمشه شما همون Emulate در نظر بگیرید ) سخت افزارها در Hypervisor ها است.

در واقع در Full Virtualization ماشین های مجازی ما متوجه نمی شوند که مجازی سازی بر روی آنها انجام شده است و بعضا با درایورهای سخت افزارهای تعیین شده بصورت مستقیم بر روی سیستم Host ارتباط برقرار می کردند. برای مثال قبلا در خصوص قابلیتی به نام Direct Path I//O در ESXi برای شما صحبت کرده ایم که شما به VM یک کارت شبکه یا کارت PCI فیزیکی را که روی سیستم Host قرار گرفته بود معرفی می کردید و در دسترس آن قرار می دادید و VM هم تصور می کرد که در واقع یک سیستم واقعی است که سخت افزارها را مدیریت می کند.

این باعث می شد ماشین مجازی وابسته به سخت افزار بماند و بعضا در صورت انتقال به یک Host دیگر با توجه به تغییر کردن درایورهای سخت افزارها و نوع آنها در Host دیگر به یک سری مشکلات اساسی برخورد کند. در واقع VM در Full Virtualization خودش را یک VM نمی داند و یک سیستم عامل تصور می کند که به سخت افزارها هم دسترسی دارد. با توجه به اینکه VM در چنین حالتی ارتباط مستقیمی با سخت افزار Host و درایورهای آنها دارد Overhead زیادی بر روی سیستم Host هم ایجاد می کند.

Paravirtualization یا پاراویرچوالیزیشن چیست

برای حل این مشکل کاری که انجام می شود این است که به VM یا بهتر بگوییم به سیستم عاملی که درون ماشین مجازی نصب شده است اعلام می کنیم که تو یک ماشین مجازی هستی و حق نداری با سخت افزارهای واقعی سیستم Host ارتباط برقرار کنی ، اگر بخواهید با سخت افزاری کار کنید همه این سخت افزارها را من ( Hypervisor ) بصورت مجازی در اختیارت قرار می دهم و شما دیگر وابسته به درایورهای سخت افزارهای واقعی نیستید و فقط با سخت افزارهای مجازی شده و درایورهای آنها کار خواهید کرد.

با این روش دیگر سیستم عامل مجازی شده کاری به کار درایورهای واقعی سخت افزارهای Host ندارد و Overhead ارتباط مستقیم با سخت افزار Host و دستگاه های فیزیکی هم به حداقل می رسد. با این روش سیستم عامل مجازی سازی شده یا Guest OS درایورهای خودش را از طریق Hypervisor دریافت می کند و اینها با هم یکپارچه شده و امکان استفاده بهینه از سخت افزارهای دستگاه را فراهم می کنند.

وب سایت توسینسو

دیگر نیازی به Emulate کردن دستگاه های سخت افزاری بر روی VM ها نیست و درایورهای VM بصورت کامل از طریق Hypervisor ایجاد و نصب می شوند و مدیریت دسترسی کاملا در اختیار Hypervisor خواهد بود. به این روش Paravirtualization گفته می شود ، روشی که VM می داند که یک VM است و این احساس را ندارد که سیستم عامل واقعی است ، بزرگترین مشکلی که در Paravirtualization وجود دارد این است که در صورت بروز مشکل برای سخت افزارها یا بروز رسانی سخت افزار Host سیستم عامل Guest باید یک فرآیند بروز رسانی را انجام دهد توسط Hypervisor تا با سخت افزار جدید هماهنگ شود که البته ممکن است در ساختارهای کلان سازمانی کمی باعث کاهش کارایی سیستم شود. اما همین موضوع باعث بالا رفتن کارایی سیستم عامل مجازی هم می شود ، اگر شما بخواهید یک VM را از Host ای به Host دیگر انتقال بدهید براحتی اینکار را انجام می دهید و حتی اگر سخت افزارهای سیستم مقصد با سیستم مبدا یکسان نباشد براحتی تغییرات جدید بر روی VM اعمال می شود و با درایورهای بروز شده مجازی سیستم شروع به کار می کند.

وب سایت توسینسو

حالا به پاراگراف اول این مقاله برگردید و متوجه می شوید که درایورهای مجازی که در VM ها به وجود آمده اند چه کاری برای ما انجام می دهند. Para-Virtualization باعث بالا رفتن کارایی سیستم VM می شود و وابستگی ما به سخت افزارهای خاص را از بین می برد. البته هنوز صبر کنید ، Paravirtualization واقعی در واقع Kernel یا هسته سیستم عامل مجازی را تغییر می دهد و مهمترین مواردی که در Paravirtualization تغییر می کنند Memory و CPU هستند که اگر دقت کرده باشید در ماشین های مجازی ویندوزی فقط کارت شبکه Paravirtual می شود و CPU و RAM سیستم شما هیچ تغییری نمی کند و همان نوع سخت افزاری به شما نمایش داده می شود که برای سیستم Host شما وجود دارد. Paravirtualization امکان پیاده سازی بر روی VM های ویندوزی را بصورت کامل ندارد زیرا هیچ Hypervisor ای نمی تواند وارد سورس کد ها و Kernel ویندوز بشود و آن را آماده Paravirtualization کند ، اما برای سیستم عامل های Open Source براحتی شما می توانید Paravirtualization را انجام دهید.

وب سایت توسینسو

همانطور که در تصور اول مشاهده کردید vmxnet یک درایور ورودی و خروجی Paravirtual شده است که دستورات را از VM دریافت و به سمت Hypervisor هدایت می کند و برعکس ، با اینکار دسترسی مداوم به CPU سیستم فیزیکی و ورودی و خروجی ها کاهش پیدا می کند و بهینه سازی I//O را شاهد خواهیم بود. اما این خیلی مهم است بدانید که vmxnet و VMware tools ای که ما در VMware برای سیستم عامل ویندوز یا حتی لینوکس داریم راهکار CPU Paravirtualization نیستند. همانطور که گفتیم اصلی ترین قسمت Paravirtualization دستکاری CPU و RAM سیستم در Kernel سیستم عامل است. Vmxnet هیچگونه تغییری در سورس و Kernel سیستم عامل ایجاد نمی کند.

واژه Paravirtualization اولین بار توسط Xen Hypervisor عنوان شد و Xen در واقع ابداع کننده آن بود. امروزه اکثر راهکارهای مجازی سازی که در دنیا وجود دارند اعم از VMware ، Xen و Hyper-V و حتی KVM از قابلیت های Paravirtualization پشتیبانی می کنند. VMware با معرفی کرد ابزارهای VMware tools یا همان Guest Tools توانایی پیکربندی VM را برای استفاده بصورت Paravirtual فراهم کرد.از طرفی Microsoft Hyper-V هم واژه ای به نام enlightened را معرفی کرد تا بتواند به حوزه Paravirtual ورود کند. امیدوارم مورد توجه شما قرار گرفته باشد ، لطفا کپی رایت را فراموش نکنید .


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات