مجازی سازی در لینوکس – قسمت اول

در رشته کامپیوتر از واژه مجازی سازی برای تولید نمونه ای مجازی از هر موجودیت فیزیکی استفاده می شود که این واژه در تولید نمونه مجازی از سخت افزار، منابع ذخیره سازی، سیستم عامل و بسیاری از دیگر مباحث کامپیوتر کاربرد دارد. در این مقاله قصد دارم مجازی سازی سخت افزار و زیر ساخت سیستم در سیستم عامل گنو/لینوکس را برای شما شرح دهم. پیشینه مجازی سازی سیستم به سال های 1960 در کامپیوتر های بزرگ برای تقسیم منابع برای نرم افزار های مختلف بر می گردد که این مفهوم بعد از توسعه سیستم ها و نرم افزار های سیستمی توسعه پیدا نموده است.

 

مجازی سازی سخت افزار چیست؟

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

 

انواع مجازی سازی سخت افزار کدام اند؟

1- مجازی سازی کامل(Full): نوعی از مجازی سازی سخت افزاری که به کمک نرم افزار های مجازی سازی صورت گرفته و این امکان را فراهم می سازد که برنامه ها در ماشین مجازی بدون نیاز به تغییر مجموعه دستورات پردازنده اجرا شوند.

2- مجازی سازی کمک سخت افزاری(Hardware-assisted): مجازی سازی منابع با کمک امکانات مجازی سازی تعریف شده در سخت افزار های فیزیکی می باشد که بازده و سرعت کار را افزایش می دهد اما این نوع مجازی سازی فقط توسط برخی پردازنده ها پشتیبانی می شود.

 

مجازی سازی سیستم عامل چیست؟

نوعی مجازی سازی در سطح سیستم عامل است که تحت عنوان مخزن(Container) شناخته می شود. در مجازی سازی سیستم عامل ماشین های مجازی توسط یک هسته با فضای کاربری مجزا مدیریت می شوند. این نوع مجازی سازی را به صورت کامل در مقاله ای دیگر معرفی خواهم نمود.

 

تفاوت مجازی سازی سخت افزاری و مجازی سازی سیستم عامل چیست؟

به صورت خلاصه در مجازی سازی سخت افزاری هر ماشین مجازی دارای یک سیستم عامل مجزا بوده و این امکان را فراهم می سازد که سیستم عامل های مختلف مانند گنو/لینوکس و ویندوز کنار یکدیگر نصب شوند. در این نوع مجازی سازی با توجه به وجود چندین سیستم عامل میزان بازدهی سیستم و سرعت آن کاهش می یابد که بر خلاف آن در مجازی سازی سیستم عامل با توجه به اینکه ماشین های مجازی توسط یک هسته مدیریت می شوند از بازدهی و سرعت بالاتری برخوردار هستند اما در این نوع مجازی سازی، سیستم عامل ماشین مجازی نمونه ای از سیستم عامل سیستم فیزیکی خواهد بود و امکان نصب دیگر پلتفرم ها در VM وجود ندارد.

Hypervisor یا VMM چیست؟

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

1- نوع اول(native): Hypervisor مانند یک سیستم عامل مستقل روی بستر فیزیکی سیستم نصب و مورد استفاده قرار می گیرد. از Hypervisor های نوع اول می توان به Xen, Hyper-V, VMware ESX/ESXi اشاره نمود.

2- نوع دوم(hosted): Hypervisor مانند یک نرم افزار کاربردی روی سیستم عامل نصب شده و ماشین مجازی همانند دیگر پردازه ها روی سیستم اجرا می شوند. VirtualBox, VMware Workstation و QEMU از نوع دوم Hypervisor ها به شمار می روند.

با توجه به معرفی انواع Hypervisor ها، بسته KVM که نرم افزاری برای پیاده سازی مجازی سازی در سیستم عامل گنو/لینوکس است در نوع دوم قرار می گیرد اما با نصب این بسته علاوه بر حفظ کارایی عمومی گنو/لینوکس، سیستم به یک Hypervisor نوع اول تبدیل می شود که این قابلیت یکی از ویژگی های هسته لینوکس به شمار می رود.

 

ابزار و بسته های مجازی سازی در گنو/لینوکس:

برای نصب و راه اندازی مجازی سازی سخت افزار در سیستم عامل گنو/لینوکس به بسته های مختلفی نیاز داریم، این بسته های نرم افزاری که به صورت آزاد ارایه می شوند به شرح زیر هستند:

1- QEMU: ابزاری برای شبیه سازی و مجازی سازی سخت افزار، زمانی که به عنوان شبیه ساز مورد استفاده قرار گیرد قادر است معماری های دیگر را روی سیستم شما شبیه سازی نماید. همچنین در صورت تنظیم جهت استفاده به عنوان مجازی ساز، قادر است دستورات ماشین مجازی را به صورت میزبانی شده روی پردازنده اجرا نماید.

2- KVM: ابزاری برای مجازی سازی سخت افزار که به صورت یک ماژول هسته نصب شده و قادر است از امکانات و تکنولوژی های مجازی سازی سخت افزار استفاده نموده و رابطی برای QEMU فراهم سازد که دستورات ماشین مجازی به صورت بومی روی پردازنده اجرا شوند.

3- libvirt: یک سرویس و کتابخانه برنامه نویسی می باشد که رابطی را برای مدیریت و کنترل Hypervisor ها فراهم می نماید. این بسته از بسیاری از مجازی سازها همچون QEMU, KVM, Xen, LXC, OpenVZ, VMware, VirtualBox پشتیبانی نموده و همچنین ابزار virsh که در این بسته قرار دارد برای مدیریت ماشین های مجازی در خط فرمان ارایه شده است.

4- libguestfs: مجموعه ای از ابزارها برای مدیریت دیسک ماشین مجازی می باشد که قابلیت هایی همچون دسترسی به محتوای دیسک، ویرایش، کاهش و افزایش حجم دیسک، تهیه نسخه پشتیبان، تبدیل دیسک برای کار با KVM، نمونه برداری و بسیاری قابلیت دیگر را ارایه می نماید.

5- virt-manager: ابزاری که به کمک libvirt یک محیط گرافیکی و متنی را برای مدیریت ماشین های مجازی با Hypervisor های مختلف ارایه می نماید.

6- libosinfo: ابزاری است که به کمک یک دیتابیس اطلاعات لازم و سخت افزار های مورد نیاز برای نصب سیستم عامل های مختلف در ماشین مجازی را ارایه می نماید.

 

نویسنده: سعید بستان دوست

حق کپی این نوشته برای نویسنده محفوظ و کپی برداری با ذکر منبع بلامانع است.

موفق و پیروز باشید.

 

بیشتر بخوانید:

https://en.wikipedia.org/wiki/Virtualization

https://en.wikipedia.org/wiki/Hypervisor

https://www.linux-kvm.org/page/Main_Page

https://www.virt-tools.org/

1

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *