بررسی مدل های مختلف Virtualization
به طور خلاصه استفاده از سخت افزار و منابع سخت افزاری شامل حافظه، پردازنده، دیسک، کارت شبکه و … در یک سیستم کامپیوتری برای راه اندازی و استفاده (میزبانی) بیش از یک سیستم عامل به صورت همزمان را مجازی سازی می نامیم.
Hypervisor
مجازی سازی با Hypervisor معنی مییابد. همان طور که از ترجمه Hypervisor (به معنای سرپرست) مشخص است، در واقع وظیفه مدیریتVM ها یاinstance ها را برعهده دارد. برای به دست آوردن درک دقیقی از Hypervisor ها میتوان به دو گروه تقسیم شان کرد. Hypervisor های نوع یک و نوع دو، که به بررسی آنها خواهیم پرداخت.
Type 1یا nativeیا Bare metal hypervisor
در این نوع مجازی سازی، از سیستم عامل مجازی ساز استفاده میشود. در حقیقت Os یا سیستم عاملهایی وجود دارند که مستقیما روی سرورها نصب میگردند، پس از نصب چنین OS هایی روی سخت افزار(سرور) میتوان با امکاناتی که ممکن است برای هر OS متفاوت باشد VM ها و یا instance های مختلف ایجاد کرد.
معرفی برخی ازHypervisor های type 1
Esxi
Hypervisor مربوط به esxi یکی از سیستم عاملهای مجازی ساز معروف از نوع Type 1 و محصول شرکت VMware است. این سیستم عامل مستقیما روی سرور نصب میشود و نسخه اولیه آن در سال 2010 ارائه شده است و پس از نصب میتوان ماشینهای مجازی (VM) ایجاد و قسمتی از منابع سخت افزار را به آنها تخصیص داد.
پس از نصب ESXI در سرور میتوان برای ایجاد و مدیریت ماشینهای مجازی از طریق Web UI به آن متصل شد و ماشینهای مجازی را ایجاد و مدیریت کرد. همچنین لازم به ذکر است که نسخه 5.6 به قبل ESXI برای مدیریت ماشینهای مجازی از Web UI بهره مند نبود و بدین منظور میبایست نرم افزاری به نام Vmware vsphare client در سیستم عامل ویندوزسرور نصب میکردیم و از طریق آن به سرور ESXI برای مدیریت و ساخت VM ها متصل میشدیم.
در صورتی که چندین سرور مختلف ESXI داشته باشیم، میتوانیم با نصب Vmware Vcenter در ویندوز سرورها تمام سرورهای ESXI را به صورت یکپارچه مدیریت کنیم. از قابلیتهای مهمیکه Vcenter به Esxi اضافه کرده است میتوان به موارد زیر اشاره کرد.
Vmotion
به کمک این قابلیت میتوان ماشین مجازی مد نظر در یک Esxi را بدون خاموشی و Down time به سرور Esxi دیگری منتقل کرد.
VMware Distributed Resource Scheduler
یکی از قابلیتهای مهم در کلاستر ESXI است که به اختصار به آن DRS نیز گفته میشود. در این قابلیت میتوان کلاستری متعادل از نظر استفاده از منابع برایVM ها داشت، به عبارتی دیگر ماشینهای مجازی درESXI با این قابلیت میتوانند تمام منابع مورد نیاز خود را از هاست ESXI گرفته و مورد استفاده قرار دهند و در صورتیکه هاست ESXI نتواند منابع مناسب جهت استفاده به VMهای خود را ارائه دهد،VM ها به آرامی تغییر هاست خواهند داد به طوری که تمام VMهای ایجاد شده در ESXI های مختلف کلاستر به صورت متعادل از منابع سرور استفاده خواهند کرد.
لازم به ذکر است استفاده از این قالیت در ESXI مستلزم استفاده از نسخه Enterprise Plus License و فعال بودن Vmotion است.
vsphere high availability
این قابلیت در VMware esxi به ماشینهای مجازی یا VM ها این اجازه را میدهد تا در صورت خرابی و fail شدن با حداقل Down time مشکل رفع گردد. استفاده از چنین قابلیتی مستلزم استفاده از shared storage بینهاستهای Esxi و Enterprise Plus License و استفاده بیش از دو هاست Esxi در کلاستر است.
vsphere fault tolerance
این قابلیت که به اختصار به آن FT نیز گفته میشود امکان دسترسی پذیری بالا بهVM ها را ارائه میکند. با فعال کردن چنین قابلیتی در ESXI در زمان قطعی VM ها، بدون هیچ Down time ترافیک به VM دیگری منتقل خواهد شد و تفاوت آن با قابلیت قبلی (HA) این است که این قابلیت بدون هیچ Down time خواهد بود اما در vsphere high availability ممکن است VM ها در صورت خرابی با اندک زمان Down time رو به رو شوند.
Citrix XenServer
یکی از hpervisor های type 1 است که نسخه اولیه آن در سال 2003 توسط شرکت Citrix ارائه شده است. از ویژگیهای مهم آن میتوان به سرعت بالای آن و استفاده از سخت افزارهای توسعه یافته گرافیکی اشاره کرد.
HyperV
مجازی ساز ارائه شده مایکروسافت است که نسخه اولیه آن در سال 2008 ارائه شده است. برخی از قابلیتهای آن به شرح زیر میباشند.
Live Migration
اتتقال ماشینهای مجازی از یک سرور به سرور دیگیری بدون Down time است.
Dynamic Ram, smart paging
تخصیص حافظه رم از یک ماشین به ماشین دیگر که به صورت پویا است. در این قابلیت میتوان از فضای دیسک ماشین دیگر به عنوان فضای رم در ماشین دیگر بهره مند شد.
Type 2 hypervisor
در این نوع hypervisor سیستم عامل مجازی ساز روی یک سیستم عامل نصب میشود.
به عنوان مثال ما یک ویندوز 10 داریم. روی سیستم عامل ویندوز 10 ما نرم افزاری مجازی سازی نصب و راه اندازی می کنیم که به کمک آن میتوان VM های مختلف ایجاد کرد.
دو نرم افزار معروف VMware workstation و oracle virtual box را میتوان در دستهType 2 در hypervisor نام برد که این نرم افزار برای ساخت VMها در سیستم local بسیار مناسب است و بیشتر کاربر آنها آموزش و تستهای مختلف است.
OS Layer Virtualization
این نوع مجازی ساز، روی سیستم عامل لینوکسی و یا ویندوزی نصب میشود و از این نظر شبیه type 2 hypervisor است اما با این تفاوت که سیستم عامل VM ها در این نوع مجازی سازی، همان سیستم عامل هاست است. به عبارتی دیگر در این نوع مجازی سازی هر کدام از VMها برای خود سیستم عاملی ندارند و VM ها از سیستم عاملهاست خود بهره مند میشوند. در این نوع مجازی سازی ابزارهایی همچونDocker و podman و… وجود دارند که به کمک آنها میتوان سرویسهای مختلف لینوکسی را به صورت virtualراه اندازی کرد. مهمترین قابلیت این نوع مجازی سازی بهینه سازی در استفاده از منابع است. چرا که دیگر به ازای هر VM سیستم عاملی راه اندازی نمیشود و همه VM ها از سیستم عامل هاست خود بهره مند میشوند به طوری که هر یک به صورت ایزوله شده از یکدیگر به وظایف خود میپردازند.
مقایسه OS layer virtualisation با Hypervisor (Type 1 and type 2)
مجازی سازی در لایه OS یکی از بهینه ترین نوع مجازی سازیها است که ابزارهای آن در سطح دنیا در حال توسعه است. چرا که در این نوع مجازی سازی هر instanceو یا VMو یا به عبارت بهتر هر container به صورت ایزوله شده، از سیستم عامل هاست خود استفاده میکند و این یکی از تفاوتهای مهم این نوع مجازی سازی با hypervisor های نوع 1 و 2 است، چرا که در hypervisor های نوع 1 و 2 هر VM برای خود سیستم عاملی مجزا داشت و هر یکی از سیستم عاملها به صورت مجزا از منابع سرور hypervisor خود استفاده میکردند اما در OS layer virtualization چنین موردی وجود ندارد و بیشتر ویژگیهای OS layer virtualization برگرفته از همین ویژگی میباشند. همچنین این ویژگی باعث کم تر شدن استفاده از منابع و در نتیجه صرفه جویی در هزینهها میشود و علاوه برآن، این قابلیت منجر به سبک شدن VM ها و یا container خواهد شد. در OS layer virtualization از نظر فنی به جای استفاده از عبارت VM و instance و… از عبارت container استفاده میشود و container ها در OS layer virtualization همان سرویسهای مجازی سازی شده هستند که به وظایف خود میپردازند. برای روشن تر شدن این مقایسه به مثال زیر توجه کنید.
فرض میکنیم برای سازمان خود نیازمند به یک سیستم مانیتورینگ Zabbix هستیم. به سه روش میتوانیم zabbix را راه اندازی کنیم. روش اول روی یک سرور فیزیکی. روش دوم روی سرورهای مجازی نوع 1 و یا نوع 2. و روش سوم به صورت OS layer virtualization
ما، در روش سوم به راحتی روی یک ماشین لینوکسی میتوانیم با کم ترین زمان و کمترین منابع container هایی از zabbix راه اندازی کنیم.
نکته مهم
استفاده از ابزارهای OS layer virtualization مانندdocker ، به خودی خود میتواند در یک hyprvisor type 1 انجام شود که از قابلیتهای مهم این ابزار بهره مند شویم، به عبارتی دیگر برای نصب Best practice ابزارهایی همچون docker که OS layer virtualization کار میکنند در بستر یک سیستم عامل مجازی ساز، که میتواند یک ماشین مجازی در ESXI باشد و یا حتی ماشین مجازی در ابر openstack باشد، راه اندازی میشوند و از مزایای آن میتوان مزایای ESXI و یا Openstack بهره مند شد.
نتیجه
امروزه با پیشرفت تکنولوژی مدل مجازی سازی OS layer virtualization در حال توسعه و به روز رسانی است و ابزارهایی هم چون Docker برای مجازی سازی تولید شدهاند تا دیگر برای توسعه و راهاندازی نرم افزار و یا حتی سرویسهای مختلف مانند وب سروری هم چون nginx نیازی به تهیه سرور فیزیکی و یا ایجاد یکVM و نصب سیستم عامل مجزا در VM نباشد و به سادگی با کمک ابزاری هم چون Docker که به صورت OS layer virtualization کار میکنند با زدن یک command میتوان Nginx خود را راه اندازی کرد.