مروری بر تکنولوژی مجازی سازی

در این ویدیو به معرفی معماری پردازنده های x86 می پردازیم و توضیح می دهیم که چگونه تکنولوژی های مختلف، امکان پیاده سازی مجازی سازی بر روی پلتفرم x86 را فراهم نمودند.

در شکل زیر معماری پردازنده x86 را ملاحظه می فرمایید:

به منظور ایجاد یک محیط عملیاتی امن، معماری x86 مکانیزمی را برای جداسازی برنامه های کاربر از سیستم عامل با استفاده از مفهوم سطح امتیاز (Privilege Level) فراهم می کند.

در این مدل ، پردازنده 4 سطح امتیاز را ارائه می دهد که همچنین به عنوان Ring شناخته می شوند، این Ring ها به صورت سلسله مراتبی از رینگ صفر تا رینگ 3 مرتب شده اند. رینگ صفر با دسترسی کامل به سخت افزار دارای بیشترین امتیاز است و قادر به فراخوانی دستورالعمل های ممتاز (privileged instructions) است.

Kernel در رینگ صفر با دسترسی به سخت افزار اجرا می شود. رینگ های 1 ، 2 و 3 در سطح امتیاز پایین تری کار می کنند و از اجرای دستورالعمل های مختص سیستم عامل منع می شوند. در سیستم عامل های معمولاً پرکاربرد مانند لینوکس و مایکروسافت ویندوز، سیستم عامل در رینگ صفر و برنامه های کاربر در رینگ 3 اجرا می شود. رینگ های 1 و 2 در طول تاریخ توسط سیستم عامل های تجاری مدرن استفاده نشده اند.

در حالی که این مدل مزایایی را برای سیستم های سنتی و “Bare Metal” فراهم می کند اما در یک محیط مجازی چالش هایی به وجود می آورد. به شکل زیر دقت کنید:

در یک محیط مجازی ، hypervisor باید در عالی ترین سطح اجرا شود و تمام عملکردهای سخت افزار و سیستم را کنترل کند. در این مدل، ماشین های مجازی در یک رینگ با سطح دسترسی پایین تر، یعنی رینگ 3 کار می کنند.

از آنجا که سیستم عامل در ابتدا برای اجرای مستقیم بر روی سخت افزار طراحی شده است ، انتظار می رود که در رینگ صفر اجرا شود و دستور عمل هایی (Privilege Calls) را با سخت افزار ایجاد می کند که در رینگ 3 مجاز نیستند. وقتی سیستم عامل این کار را انجام دهد، سخت افزار دستورالعمل ها را Trap کرده و باعث ایجاد Fault می گردد، که این موضوع به طور معمول ماشین مجازی را از بین می برد.

در این ویدیو با سه روش که بر این مشکل غلبه کردند و باعث شدند مجازی سازی بر روی پلتفرم x86 به شکلی که امروزه از آن استفاده می کنیم درآید آشنا می شویم:

1- Binary Translation

در سال 1998 ، VMware فهمید که چگونه می توان یک پلتفرم x86 را مجازی کرد، زمانی که تصور می شد این کار غیرممکن است و بازار مجازی سازی x86 را ایجاد کرد.

این راه حل Binary Translation نام دارد که به چندین سیستم عامل مهمان اجازه می دهد در یک کامپیوتر و با مجازی سازی آسان و مقرون به صرفه و به صورت کاملا ایزوله از یکدیگر اجرا شوند.

2- Paravirtualization

در این مدل ، سیستم عامل میهمان به صورتی اصلاح شده و آگاه است که روی یک hypervisor در حال اجرا می باشد و می تواند برای بهبود برنامه ریزی و ورود به سیستم با hypervisor همکاری کند. از آنجا که این روش مجازی سازی نیاز به تغییراتی در سیستم عامل دارد، لازم است این تغییرات توسط سازنده سیستم عامل اجرا شوند.


3- Hardware Assisted Virtualization

هر دو شرکت Intel و AMD برای ایجاد ویژگی هایی که می توانند توسط فروشندگان hypervisor برای ساده سازی مجازی سازی پردازنده مورد استفاده قرار بگیرند، قابلیت های جدیدی به معماری x86 اضافه کردند.

پیاده سازی این ویژگی ها توسط (VT-X) Intel و AMD (AMD-V) متفاوت است اما از یک رویکرد مشابه استفاده می کنند. یک حالت عملیاتی جدید به CPU اضافه می شود که اکنون می تواند در حالت میزبان یا حالت مهمان کار کند. یک hypervisor می تواند درخواست کند که یک فرآیند در حالت مهمان کار کند. در نتیجه ما هنوز همان سطوح دسترسی (Privilege Ring) سنتی را مشاهده می کنیم، اما به CPU دستور داده می شود تا دستورالعمل های سطح دسترسی بالا (Privilege Instructions) را Trap کند و سپس کنترل را به hypervisor برگرداند. این روش بهینه ترین راهکار برای پیاده سازی مجازی سازی در معماری x86 می باشد.

در انتهای این ویدیو با محصولات مختلف مجازی سازی و Hypervisor های Type 1 و Type 2 آشنا
می شویم.

رایگان

Introduction-to-virtualization-technologies
netwayprime.com/?p=6528

جدید‌ترین دوره‌ها

دوره تخصصی Zabbix

دوره تخصصی Zabbix Professional

۳,۰۰۰,۰۰۰ تومان

نظرات کاربران

مشترک شوید
اطلاع از
guest
جدید ترین
قدیمی ترین دیدگاه با تعداد رای زیاد
بازخورد (Feedback) های اینلاین
نمایش تمام دیدگاه ها