مجازی سازی سرور به معنی ساختن چند سرور در بستر یک سرور فیزیکی می باشد. هر کدام از این سرور های مجازی در محیطی ایزوله از یک دیگر قرار دارند و همچنین می توانند عملکرد متفاوت و سیستم عامل متفاوتی داشته باشند .
مجازی سازی چیست ؟
قبل از این که بخواهیم راجع به Virtualization صحبت کنیم می دانیم که بر روی هر سرور یک سیستم عامل نصب می شود و این سیستم عامل بر روی سخت افزار این سرور نصب می شود و به طور انحصاری برای آن سرور کار می کند.
به طور متوسط در حالت عادی سرور ها معمولا تنها از 15% منابع خود (رم و cpu و ..) استفاده می کنند. اگر چه نصب سیستم عامل بر روی یک سرور مزایای خود را دارد ولی در اکثر مواقع منابع موجود را تلف می کند.
مجازی سازی سرور ها برای حل این مشکل ارائه شدند به این شکل که شما می توانید سخت افزار روی سرور خود را به صورت مجازی تکه تکه کنید و به سرور های متعدد مجازی با میزان ظرفیت رم ، core ، ظرفیت و … تبدیل کنید و حداکثر میزان استفاده از سرور خود را داشته باشید.
مجازی سازی چگونه عمل می کند ؟
برای ساخت سرور مجازی ابتدا نیاز به سیستم عاملی دارید که قابلیت مجازی سازی را دارد که به آن hypervisor می گویند. این قسمت اصلی ترین لایه مجازی سازی می باشد که منابع مختلف را از جمله رم ، cpu و سایر سخت افزار های موجود را به صورت مجازی جدا می کند .
به محض این که شما این سیستم عامل را نصب کنید می توانید بر روی سرور خود (ماشین میزبان)، سرور های مجازی (ماشین های مجازی) را بسازید.
انواع مختلفی از مجازی سازی وجود دارد که تمایز آن ها در نحوه ایزوله کردن ماشین های مجازی می باشد و نحوه مجازی سازی سخت افزار های موجود در ماشین میزبان می باشد .
انواع مجازی سازی
بر اساس نحوه ایزوله کردن سه نوع مجازی سازی وجود دارد :
- مجازی سازی کامل یا virtual machine
- paravirtual model
- مجازی سازی در سطح سیستم عامل
مجازی سازی کامل یا ماشین مجازی
در Virtualization کامل hypervisor به صورت کامل ماشین های مجازی را از یکدیگر ایزوله می کند. سخت افزار های سرور میزبان را پخش می کند ولی هر کدام به صورت یک کامپیوتر مستقل عمل می کند بدون توجه به hypervisor. به همین دلیل شما دیگر نیازی به سازگار کردن یا ایجاد تغییر در سیستم عامل را ندارید. مثل ESXI و Hyper-V
paravirtual model
در این نوع ماشین مجازی ساخته شده به صورت کامل ایزوله نیست و با سخت افزار می تواند در ارتباط باشد. در این نوع مجازی سازی سیستم عامل با hypervisor با استفاده از دستوراتی به نام hypercalls در ارتباط است. که با استفاده از این دستورات می توان ماشین مجازی را مدیریت کرد مثل kvm و XenServer
مجازی سازی در سطح سیستم عامل
مجازی سازی در سطح سیستم عامل شامل سیستم عامل هایی می شود که در خود قابلیت ایجاد کاربران متعدد در خود می باشند.
در واقع در این روش مجازی سازی از سیستم عامل به عنوان میزبان استفاده می شود. مثل docer و lxc
انواع hypervisor
دو نوع hypervisor برای ساخت محیط های مجازی استفاده می شود .
- hypervisor (native/bare metal hypervisor)
- hypervisors (hosted hypervisor)
نوع اول hypervisor
در این نوع hypervisor به صورت مستقیم روی سخت افزار ماشین میزبان نصب می شود و به این صورت لایه اول سرور یا ماشین میزبان، لایه دوم برنامه های hypervisor و لایه آخر ماشین های مجازی تشکیل می شود. در این نوع ماشین های مجازی، هر کدام به صورت مستقل عمل می کنند به یکدیگر متصل نیستند هم چنین می توانند سیستم عامل هایی متفاوت از یکدیگر داشته باشند.
کنسول مدیریت
مدیریت ماشین های مجازی توسط کنسول مدیریت صورت می گیرد از طریق این کنسول می توانید ماشین مجازی دلخواه خود را بسازید یا ماشینی را روشن یا خاموش کنید یا از سروری به سرور دیگر منتقل کنید و …
در این نوع Virtualization امنیت بسیار بالای وجود دارد از این جهت که در صورت حمله مشکلی برای لایه زیرین پیش نمی آید برنامه هایی مثل VMware ESXi ,Oracle VM Citrix XenServer , Microsoft Hyper-V از این نوع هستند.
نوع دوم hypervisor
بر خلاف نوع اول این نوع بر روی لایه سیستم عامل hypervisor قرار می گیرد. به این ترتیب لایه اول سرور لایه دوم سیستم عامل و لایه سوم hypervisor و در لایه آخر ماشین مجازی قرار می گیرد. اگر چه باز هم ماشین ها از یک دیگر ایزوله هستند ولی سیستم عامل مستقیما با سرور در ارتباط است و همین باعث می شود که این نوع امنیت پایین تری نسبت یه نوع 1 داشته باشد.
برنامه هایی مثل VMware Workstation, KVM, Oracle VM VirtualBox ,Microsoft Virtual PC ,Red Hat Enterprise Virtualization از این نوع هستند.
در نوع 1 شما می توانید سیستم عامل های متعددی داشته باشید ولی در نوع دوم تنها یک نوع سیستم عامل می توانید داشته باشید در نوع دوم ممکن است سرور میزبان به طور کامل crash شود که در نوع اول همچین اتفاقی تقریبا بعید است.
پس از در نظر گرفتن مزایا و معایب مجازی سازی سرور می توانید تصمیم بگیرید که کدام حالت برای شما مناسب تر از لحاظ استفاده از منابع و هزینه ها برای سازان شما مناسب تر است در مقاله دیگر به آن خواهیم پرداخت.