- مجازی سازی چیست؟
- مجازی سازی سرور چگونه کار میکند؟
- نقش هایپروایزر در مجازی سازی
- نقش سختافزار در مجازی سازی
- یک مثال ساده از مجازی سازی سرور
- انواع مجازی سازی
- مجازی سازی سرور
- مجازی سازی شبکه
- مجازی سازی Storage
- مجازی سازی دسکتاپ
- مجازی سازی داده
- مجازی سازی مرکز داده
- انواع روشهای مجازی سازی سرور
- Full Virtualization
- Para-Virtualization
- Hardware-Assisted Virtualization
- OS-Level Virtualization
- مجازی سازی لینوکس و KVM
- مهمترین مزایای مجازی سازی سرور
- افزایش بهرهوری از منابع سختافزاری
- کاهش هزینههای زیرساخت
- Provisioning سریعتر
- انعطافپذیری در تخصیص منابع
- سادهتر شدن Backup و Disaster Recovery
- افزایش دسترسپذیری سرویسها
- کاهش مصرف انرژی و فضای دیتاسنتر
- اصطلاحات کلیدی در مجازی سازی سرور
- ماشین مجازی (Virtual Machine یا VM)
- Host و Guest
- Hypervisor
- vCPU
- vRAM
- Virtual Disk
- Virtual Network Adapter
- Resource Pool
- High Availability یا HA
- Fault Tolerance یا FT
- Live Migration و vMotion
- برای مجازی سازی سرور چه سختافزاری نیاز داریم؟
- پردازنده
- حافظه RAM
- Storage
- شبکه
- چرا سرورهای HPE برای محیطهای مجازیسازی مورد استفاده قرار میگیرند؟
- چه زمانی مجازی سازی سرور انتخاب مناسبی نیست؟
- مجازی سازی سرور در برابر سرور فیزیکی؛ کدام بهتر است؟
مجازی سازی سرور (Server Virtualization) یکی از مهمترین فناوریهایی است که شیوه طراحی و مدیریت زیرساختهای IT را تغییر داده است. در یک زیرساخت سنتی، معمولاً برای هر سرویس یا نرمافزار یک سرور فیزیکی جداگانه در نظر گرفته میشود؛ برای مثال یک سرور برای دیتابیس، یک سرور برای نرمافزارهای سازمانی و سرور دیگری برای سرویسهای وب. مشکل این مدل آن است که بسیاری از این سرورها بخش زیادی از ظرفیت پردازشی و حافظه خود را بدون استفاده باقی میگذارند.
مجازی سازی سرور راه متفاوتی برای استفاده از همین منابع ارائه میکند. در این فناوری، یک سرور فیزیکی میتواند میزبان چندین ماشین مجازی (Virtual Machine یا VM) باشد و هر ماشین مجازی، سیستمعامل، نرمافزارها و منابع اختصاصی خود را داشته باشد. به این ترتیب، چند محیط کاری مستقل روی یک مجموعه سختافزاری مشترک اجرا میشوند، در حالی که هایپروایزر مسئول مدیریت و تخصیص منابع فیزیکی بین آنهاست.
اهمیت این فناوری فقط به کاهش تعداد سرورها محدود نمیشود. مجازی سازی امکان مدیریت انعطافپذیرتر منابع، ایجاد سریع ماشینهای جدید، جابهجایی Workloadها، سادهتر شدن فرایندهای پشتیبانگیری و بازیابی و در زیرساختهای مناسب، افزایش دسترسپذیری سرویسها را فراهم میکند.
به همین دلیل است که مجازی سازی سرور در دیتاسنترهای امروزی، زیرساختهای ابری، محیطهای توسعه و تست و بسیاری از سازمانهای متوسط و بزرگ به یکی از اجزای اصلی معماری IT تبدیل شده است.
مجازی سازی چیست؟
مجازی سازی (Virtualization) در سادهترین تعریف، ایجاد یک لایه انتزاعی میان سختافزار فیزیکی و محیطهای نرمافزاری است. این لایه به نرمافزار اجازه میدهد منابعی مانند CPU، حافظه، فضای ذخیرهسازی و شبکه را به شکل منطقی در اختیار چند محیط مختلف قرار دهد.
در یک سیستم فیزیکی معمولی، سیستمعامل مستقیماً با سختافزار سرور در ارتباط است. اما در محیط مجازی، ماشین مجازی سختافزار فیزیکی را به شکل مستقیم نمیبیند؛ بلکه مجموعهای از سختافزارهای مجازی مانند vCPU، حافظه مجازی، دیسک مجازی و کارت شبکه مجازی در اختیار آن قرار میگیرد.
هایپروایزر (Hypervisor) در این میان نقش بسیار مهمی دارد. این نرمافزار یا لایه نرمافزاری، منابع سختافزار فیزیکی را مدیریت میکند و آنها را به ماشینهای مجازی اختصاص میدهد. هر VM میتواند سیستمعامل متفاوتی داشته باشد و در عین اشتراکگذاری سختافزار، از سایر ماشینهای مجازی جدا باقی بماند.
برای مثال، فرض کنید یک سرور فیزیکی دارای یک پردازنده چندهستهای، 128 گیگابایت RAM و چند ترابایت فضای ذخیرهسازی است. بهجای اینکه تمام این منابع را در اختیار یک سیستمعامل و یک سرویس قرار دهید، میتوان بخشی از آنها را به یک VM برای دیتابیس، بخشی را به VM مربوط به نرمافزار سازمانی و بخش دیگری را به VM مربوط به سرویس وب اختصاص داد.
در این حالت، سرور فیزیکی همچنان یک دستگاه است؛ اما از دید مدیر زیرساخت، چند محیط مستقل روی آن در حال اجرا هستند.
مجازی سازی سرور چگونه کار میکند؟
فرایند مجازی سازی سرور را میتوان با چهار جزء اصلی توضیح داد: سرور فیزیکی، هایپروایزر، ماشینهای مجازی و منابع مجازیشده.
سرور فیزیکی که معمولاً Host یا Bare Metal Server نامیده میشود، منابع واقعی محاسباتی را در اختیار محیط مجازی قرار میدهد. این منابع شامل پردازنده، حافظه، Storage و تجهیزات شبکه هستند.
در لایه بعد، Hypervisor قرار دارد. هایپروایزر منابع فیزیکی را کنترل کرده و مشخص میکند هر ماشین مجازی چه مقدار CPU، RAM، Storage و سایر منابع را دریافت کند.
در نهایت، ماشینهای مجازی روی این بستر اجرا میشوند. هر VM یک محیط مستقل دارد و میتواند سیستمعامل و نرمافزارهای خودش را اجرا کند. معماری دقیق این ارتباط بسته به پلتفرم مجازیسازی متفاوت است؛ برای مثال Hyper-V از معماری شامل Hypervisor، Root Partition، Child Partition و VMBus استفاده میکند.
نقش هایپروایزر در مجازی سازی
هایپروایزر را میتوان مدیر منابع در یک محیط مجازی در نظر گرفت. این لایه بین سختافزار و ماشینهای مجازی قرار میگیرد و وظیفه دارد منابع پردازشی و سایر منابع را میان VMها مدیریت کند.
دو دسته شناختهشده برای Hypervisorها وجود دارد.
Type 1 یا Bare-Metal Hypervisor مستقیماً در معماری سختافزار سرور قرار میگیرد و برای محیطهای دیتاسنتری و سازمانی کاربرد گستردهای دارد. VMware ESXi و Microsoft Hyper-V نمونههایی از فناوریهای رایج در این دسته هستند. Microsoft بهطور مشخص Hyper-V را یک Hypervisor از نوع Type 1 معرفی میکند.
Type 2 یا Hosted Hypervisor روی یک سیستمعامل موجود اجرا میشود و بیشتر در کامپیوترهای شخصی، محیطهای آزمایشگاهی و سناریوهای توسعه و تست کاربرد دارد. Oracle VirtualBox یکی از نمونههای شناختهشده این مدل است.
در سرورهای سازمانی، انتخاب Hypervisor مناسب فقط به نوع آن محدود نمیشود. پشتیبانی از سختافزار، Storage، شبکه، مدیریت کلاستر، Backup، High Availability، Live Migration و قابلیتهای مورد نیاز Workload نیز باید بررسی شود.
نقش سختافزار در مجازی سازی
مجازی سازی مدرن تا حد زیادی به قابلیتهای سختافزاری پردازنده وابسته است. فناوریهایی مانند Intel VT-x و AMD-V امکان اجرای کارآمدتر ماشینهای مجازی را فراهم میکنند و باعث میشوند وظایف مربوط به مجازیسازی با کمک قابلیتهای خود CPU انجام شوند. Hyper-V نیز برای اجرای خود به پردازنده دارای Hardware-Assisted Virtualization نیاز دارد.
به همین دلیل هنگام انتخاب سرور برای مجازی سازی، صرفاً تعداد Coreهای CPU را نباید معیار قرار داد. ظرفیت RAM، تعداد و نوع دیسکها، سرعت Storage، پهنای باند شبکه، تعداد پورتهای شبکه و قابلیتهای مدیریت سختافزار نیز مستقیماً روی عملکرد محیط مجازی تأثیر میگذارند.
یک مثال ساده از مجازی سازی سرور
فرض کنید یک شرکت سه سرویس اصلی دارد:
- یک Database Server
- یک Application Server
- یک File Server
در معماری سنتی ممکن است برای هر سرویس یک سرور فیزیکی مجزا تهیه شود. اگر هر سه سرور فقط در بخشی از ظرفیت پردازشی خود استفاده شوند، مقدار قابل توجهی از CPU و RAM بلااستفاده باقی میماند.
در معماری مجازی، میتوان این سه سرویس را به شکل سه VM مستقل روی یک یا چند Host اجرا کرد. برای هر VM منابع مورد نیاز تعریف میشود و در صورت تغییر Workload، منابع اختصاصیافته نیز میتوانند متناسب با نیاز تنظیم شوند.
البته این به معنی آن نیست که «همیشه یک سرور برای چندین سرویس بهتر از چند سرور است». اگر همه Workloadها همزمان مصرف بالایی داشته باشند، یک Host ممکن است به گلوگاه تبدیل شود. در محیطهای حساس، معمولاً چند Host در قالب Cluster استفاده میشوند تا هم ظرفیت کافی وجود داشته باشد و هم خرابی یک سرور باعث از دست رفتن کل سرویسها نشود.
انواع مجازی سازی
واژه «مجازی سازی» فقط به Server Virtualization محدود نمیشود. در زیرساخت IT، بخشهای مختلفی از منابع و سرویسها میتوانند به شکل مجازی ارائه شوند. IBM نیز دستههایی مانند Server، Desktop، Network، Storage، Data و Data Center Virtualization را از انواع رایج مجازیسازی معرفی میکند.
مجازی سازی سرور
در Server Virtualization، یک سرور فیزیکی به بستری برای اجرای چند ماشین مجازی تبدیل میشود. هر VM میتواند سیستمعامل و نرمافزارهای خودش را داشته باشد و منابع آن توسط Hypervisor مدیریت شود.
این مدل، هسته اصلی بسیاری از زیرساختهای دیتاسنتری و Cloud است.
مجازی سازی شبکه
در Network Virtualization، بخشی از قابلیتهای شبکه بهصورت نرمافزاری ارائه میشوند. هدف این است که عملکردها و منابع شبکه از سختافزار فیزیکی جدا شده و مدیریت آنها انعطافپذیرتر شود.
فناوریهایی مانند SDN و NFV در این حوزه قرار میگیرند، هرچند معماری و کاربرد آنها با Server Virtualization متفاوت است.
مجازی سازی Storage
Storage Virtualization منابع ذخیرهسازی را از سختافزارهای فیزیکی زیرساخت جدا میکند و امکان ارائه یک نمای منطقی و یکپارچه از منابع ذخیرهسازی را فراهم میسازد.
این موضوع در محیطهای مجازی اهمیت زیادی دارد، زیرا تعداد زیادی VM میتوانند همزمان به Storage مشترک یا توزیعشده دسترسی داشته باشند.
مجازی سازی دسکتاپ
در Desktop Virtualization، سیستمعامل دسکتاپ و محیط کاری کاربر میتواند در قالب یک VM روی زیرساخت مرکزی اجرا شود. VDI یکی از کاربردهای مهم این فناوری است.
در این مدل، مدیریت سیستمعاملها، بهروزرسانیها و سیاستهای امنیتی میتواند بهصورت متمرکز انجام شود.
مجازی سازی داده
Data Virtualization بیشتر به ایجاد یک لایه دسترسی یکپارچه به دادههایی مربوط میشود که ممکن است در منابع، فرمتها یا سیستمهای مختلف قرار داشته باشند. بنابراین نباید آن را با مجازی سازی Storage یا Server یکی دانست.
مجازی سازی مرکز داده
Data Center Virtualization دیدگاه گستردهتری دارد و تلاش میکند بخشهای مختلف زیرساخت فیزیکی مرکز داده را به منابع نرمافزاری و قابل مدیریت تبدیل کند. در محیطهای بزرگ، این رویکرد میتواند با Server، Network و Storage Virtualization ترکیب شود.
انواع روشهای مجازی سازی سرور
علاوه بر تقسیمبندی بر اساس حوزه زیرساخت، Server Virtualization را میتوان از نظر روش پیادهسازی نیز بررسی کرد.
Full Virtualization
در Full Virtualization، ماشین مجازی یک محیط سختافزاری مجازی را در اختیار سیستمعامل Guest قرار میدهد و Guest میتواند بدون نیاز به آگاهی کامل از جزئیات سختافزار فیزیکی اجرا شود.
این مدل یکی از روشهای اصلی در محیطهای مجازی سازمانی است و امکان اجرای سیستمعاملهای مختلف را روی یک Host فراهم میکند.
Para-Virtualization
در Para-Virtualization، Guest OS برای تعامل کارآمدتر با Hypervisor از سازوکارهای مخصوص مجازیسازی استفاده میکند. این روش در معماریهای مختلف به شکلهای متفاوتی پیادهسازی شده و هدف اصلی آن کاهش سربار برخی عملیات، بهخصوص در I/O، است.
Hardware-Assisted Virtualization
در این روش، قابلیتهای موجود در پردازنده برای کمک به اجرای ماشینهای مجازی استفاده میشوند. Intel VT-x و AMD-V نمونههایی از فناوریهای سختافزاری مورد استفاده برای این منظور هستند.
امروزه Hardware-Assisted Virtualization بخش استاندارد بسیاری از زیرساختهای مجازی مدرن محسوب میشود و هنگام انتخاب سرور باید پشتیبانی پردازنده و پلتفرم مجازیسازی از آن بررسی شود.
OS-Level Virtualization
OS-Level Virtualization از نظر معماری با VM-based virtualization تفاوت دارد. در این مدل، محیطهای ایزوله بهجای اجرای سیستمعاملهای مستقل، Kernel سیستمعامل میزبان را به اشتراک میگذارند.
Containerها نمونه شناختهشده این رویکرد هستند. به همین دلیل Container و Virtual Machine را نباید دو اصطلاح معادل در نظر گرفت؛ VM معمولاً یک سیستمعامل Guest مستقل اجرا میکند، در حالی که Containerها Kernel سیستمعامل را به اشتراک میگذارند.
مجازی سازی لینوکس و KVM
KVM یا Kernel-based Virtual Machine یکی از فناوریهای مهم مجازیسازی در محیط Linux است.
یک تصور رایج این است که KVM صرفاً یک Hypervisor مستقل شبیه ESXi است؛ اما معماری آن دقیقتر از این است. در Linux، KVM بهصورت ماژولهای Kernel عمل میکند و در کنار اجزایی مانند QEMU و libvirt برای ایجاد، اجرای و مدیریت VMها استفاده میشود. Red Hat نیز KVM، QEMU و libvirt را از اجزای اصلی معماری مجازیسازی RHEL معرفی میکند.
این معماری به سازمانها اجازه میدهد ماشینهای مجازی Linux و سایر سیستمعاملهای Guest را روی سختافزار x86 اجرا کنند.
مهمترین مزایای مجازی سازی سرور
مزایای Server Virtualization فقط به کاهش تعداد سرورها محدود نیست. اگر زیرساخت بهدرستی طراحی شده باشد، مجازی سازی میتواند روی هزینه، مدیریت، مقیاسپذیری، دسترسپذیری و بازیابی سرویسها تأثیر بگذارد.
افزایش بهرهوری از منابع سختافزاری
یکی از اصلیترین دلایل استفاده از مجازی سازی، افزایش استفاده واقعی از منابع سرور است.
در معماری سنتی ممکن است یک سرور فقط برای یک Application استفاده شود و CPU و RAM آن در بیشتر ساعات شبانهروز با ظرفیت پایینی کار کنند. با مجازی سازی، چند Workload میتوانند روی همان Host قرار بگیرند و منابع موجود را بهتر مصرف کنند.
البته اینجا یک نکته مهم وجود دارد: هدف مجازی سازی، استفاده 100 درصدی از CPU یا RAM نیست. اگر منابع بیش از ظرفیت واقعی Host به VMها اختصاص داده شوند، اصطلاحاً با Overcommitment و در ادامه احتمال Resource Contention روبهرو میشویم.
بنابراین طراحی صحیح ظرفیت، از خود مجازی سازی مهمتر است.
کاهش هزینههای زیرساخت
وقتی چند Workload روی تعداد کمتری سرور فیزیکی اجرا شوند، هزینه خرید سختافزار میتواند کاهش پیدا کند. علاوه بر هزینه خود سرورها، کاهش تعداد تجهیزات روی هزینه برق، سرمایش، فضای رک و نگهداری نیز اثر میگذارد.
البته هزینه لایسنس Hypervisor، Storage، Backup، تجهیزات شبکه و راهکارهای HA نیز باید در محاسبات TCO لحاظ شوند. بنابراین نمیتوان صرفاً با مقایسه تعداد سرورها درباره اقتصادی بودن یک معماری مجازی تصمیم گرفت.
Provisioning سریعتر
ساخت یک سرور فیزیکی جدید به تهیه سختافزار، نصب سیستمعامل، تنظیم Storage و Network و انجام مراحل راهاندازی نیاز دارد.
در محیط مجازی، ایجاد VM جدید میتواند با Template و Automation بسیار سریعتر انجام شود. همین موضوع برای تیمهای IT و DevOps اهمیت زیادی دارد، زیرا ایجاد محیطهای آزمایشی یا سرویسهای جدید را سادهتر میکند.
انعطافپذیری در تخصیص منابع
در محیط مجازی، منابع VMها قابل مدیریت هستند. میتوان برای یک ماشین مجازی CPU و RAM مشخصی تعریف کرد و در صورت تغییر نیاز، پیکربندی آن را اصلاح کرد.
این انعطافپذیری بهخصوص برای سرویسهایی که مصرف منابع آنها در طول زمان تغییر میکند اهمیت دارد.
سادهتر شدن Backup و Disaster Recovery
ماشین مجازی در بسیاری از پلتفرمها به مجموعهای از فایلها و تنظیمات قابل مدیریت تبدیل میشود. این ویژگی میتواند فرایند Backup، Replication و Recovery را سادهتر کند.
در صورت خرابی Host، وجود یک نسخه قابل بازیابی یا Replica از VM میتواند زمان بازگرداندن سرویس را نسبت به بازسازی یک سرور فیزیکی کاهش دهد. IBM نیز Backup و Disaster Recovery را از کاربردهای مهم Server Virtualization معرفی میکند.
البته Snapshot را نباید با Backup اشتباه گرفت. Snapshot برای برخی عملیات کوتاهمدت بسیار مفید است، اما جایگزین یک سیستم Backup مستقل و اصولی نیست.
افزایش دسترسپذیری سرویسها
یکی از مهمترین قابلیتهای محیطهای مجازی سازمانی، امکان ترکیب VMها با Cluster و قابلیتهای High Availability است.
اگر چند Host در یک Cluster قرار گرفته باشند، در صورت خرابی یک Host، بسته به پلتفرم و طراحی زیرساخت، VMهای آن میتوانند روی Host دیگری راهاندازی شوند.
در نتیجه، معماری مجازی میتواند بخشی از استراتژی Business Continuity سازمان باشد؛ البته به شرطی که Storage، Network، Power و سایر اجزای زیرساخت نیز به شکل Redundant طراحی شده باشند.
کاهش مصرف انرژی و فضای دیتاسنتر
کاهش تعداد سرورهای فیزیکی معمولاً به معنی کاهش نیاز به برق، سرمایش و فضای رک است. بنابراین Consolidation حاصل از مجازی سازی میتواند علاوه بر کاهش هزینه عملیاتی، مصرف انرژی دیتاسنتر را نیز پایین بیاورد.
اما میزان صرفهجویی به نوع سختافزار، میزان بار کاری و نحوه طراحی زیرساخت بستگی دارد.
اصطلاحات کلیدی در مجازی سازی سرور
اگر قرار باشد یک محیط مجازی را طراحی یا مدیریت کنید، شناخت چند اصطلاح پایه ضروری است. تفاوت همین اصطلاحات در بسیاری از مواقع تعیین میکند که یک معماری را درست فهمیدهاید یا نه.
ماشین مجازی (Virtual Machine یا VM)
Virtual Machine یک محیط محاسباتی مجازی است که میتواند سیستمعامل و نرمافزارهای مستقل خود را اجرا کند.
برای مثال، روی یک Host میتوان VM شماره یک را برای Windows Server و VM شماره دو را برای یک توزیع Linux در نظر گرفت. هر دو VM از سختافزار مشترک استفاده میکنند، اما از دید سیستمعامل Guest، هرکدام محیط محاسباتی خودشان را دارند.
Host و Guest
Host به سرور فیزیکی یا محیطی گفته میشود که منابع سختافزاری مورد نیاز VMها را فراهم میکند.
Guest همان سیستمعامل یا ماشین مجازی است که روی محیط مجازی اجرا میشود.
بنابراین اگر یک سرور فیزیکی با Hyper-V داشته باشیم و دو VM روی آن اجرا کنیم، سرور فیزیکی Host و سیستمعاملهای داخل VMها Guest هستند.
Hypervisor
Hypervisor لایهای است که دسترسی VMها به منابع سختافزاری را مدیریت میکند.
در یک محیط سازمانی، Hypervisor فقط وظیفه «ساخت VM» را ندارد؛ مدیریت CPU، Memory، Virtual Network، Virtual Storage و ارتباط میان VM و سختافزار نیز به معماری پلتفرم مجازیسازی مربوط میشود. در Hyper-V، برای نمونه، Hypervisor همراه با Root Partition و Virtualization Stack کار میکند.
vCPU
vCPU یا Virtual CPU مقدار پردازش مجازی اختصاصیافته به یک VM است.
برای مثال ممکن است یک VM دارای 4 vCPU و VM دیگری دارای 8 vCPU باشد. این اعداد بهمعنای اختصاص یک پردازنده فیزیکی کامل به هر VM نیستند؛ بلکه CPU مجازی توسط Hypervisor روی منابع پردازشی Host زمانبندی میشود.
به همین دلیل افزایش بیدلیل تعداد vCPU همیشه باعث افزایش Performance نمیشود. در بعضی Workloadها، اختصاص بیش از نیاز vCPU حتی میتواند زمانبندی CPU را پیچیدهتر کند.
vRAM
vRAM مقدار حافظهای است که برای VM تعریف میشود.
اگر یک VM دارای 16GB vRAM باشد، سیستمعامل Guest آن مقدار حافظه را بهعنوان RAM قابل استفاده مشاهده میکند؛ اما این حافظه از RAM فیزیکی Host تأمین میشود.
به همین دلیل ظرفیت RAM یکی از مهمترین پارامترهای طراحی یک سرور مجازیسازی است. در بسیاری از محیطهای Virtualization، محدودیت اصلی نه CPU، بلکه Memory Capacity است.
Virtual Disk
Storage یک VM معمولاً در قالب دیسکهای مجازی ارائه میشود. این دیسکها روی Storage فیزیکی Host یا Shared Storage قرار میگیرند و سیستمعامل Guest آنها را مشابه یک دیسک معمولی مشاهده میکند.
در اینجا Performance Storage اهمیت زیادی دارد. ممکن است CPU و RAM سرور کاملاً کافی باشند، اما اگر Storage IOPS یا Latency مناسبی نداشته باشد، عملکرد VMها افت کند.
Virtual Network Adapter
هر VM میتواند یک یا چند کارت شبکه مجازی داشته باشد. این کارتها از طریق Virtual Switch یا سازوکارهای مشابه به شبکه فیزیکی متصل میشوند.
بنابراین در طراحی مجازی سازی، Network فقط مسئله تعداد پورتهای فیزیکی نیست؛ طراحی Virtual Switch، VLAN، Redundancy و پهنای باند نیز اهمیت دارد.
Resource Pool
Resource Pool مجموعهای از منابع قابل مدیریت است که میتواند برای گروهی از VMها تعریف شود.
در محیطهایی مانند VMware، مدیر زیرساخت میتواند منابع CPU و Memory را بر اساس اولویت Workloadها مدیریت کند. برای مثال ممکن است VMهای مربوط به Database در یک گروه با اولویت بالاتر نسبت به VMهای محیط Development قرار بگیرند.
High Availability یا HA
High Availability یا HA با هدف کاهش زمان قطعی سرویس طراحی میشود.
در یک Cluster مناسب، اگر Hostی دچار خرابی شود، VMهای آن میتوانند طبق سیاستهای پلتفرم روی Hostهای دیگر مجدداً راهاندازی شوند.
HA را نباید با Fault Tolerance یکسان دانست. در HA معمولاً در زمان خرابی نیاز به Restart یا Failover وجود دارد و ممکن است سرویس برای مدت کوتاهی تحت تأثیر قرار گیرد.
Fault Tolerance یا FT
Fault Tolerance برای Workloadهایی طراحی شده که تحمل قطعی بسیار کمی دارند.
در راهکارهای FT، یک VM میتواند یک Instance یا Replica همگام روی Host دیگری داشته باشد تا در صورت خرابی Host اصلی، اجرای Workload با وقفه بسیار کمتری ادامه پیدا کند.
بنابراین FT راهکاری پیشرفتهتر از یک Failover ساده است و معمولاً هزینه و محدودیتهای بیشتری نیز دارد. استفاده از FT باید بر اساس نیاز واقعی Application و قابلیتهای پلتفرم انتخاب شود، نه صرفاً با هدف «صفر کردن Downtime».
Live Migration و vMotion
Live Migration به انتقال یک ماشین مجازی فعال از یک Host به Host دیگر گفته میشود، بهگونهای که سرویس در حین انتقال تا حد امکان بدون اختلال محسوس ادامه پیدا کند.
vMotion نام فناوری Live Migration در اکوسیستم VMware است.
این قابلیت در سناریوهایی مانند Maintenance سرور، توزیع بار و مدیریت ظرفیت Cluster بسیار کاربردی است. برای مثال، اگر قرار باشد یکی از Hostها برای ارتقای Firmware یا تعمیرات از مدار خارج شود، میتوان VMهای آن را پیش از Maintenance به Hostهای دیگر منتقل کرد.
البته Live Migration به معنی حذف کامل Downtime در همه شرایط نیست؛ عملکرد آن به Workload، Storage، Network و معماری پلتفرم بستگی دارد.
برای مجازی سازی سرور چه سختافزاری نیاز داریم؟
انتخاب سختافزار برای Virtualization با انتخاب یک سرور برای اجرای یک Application معمولی تفاوت دارد. در اینجا باید مجموع نیازهای تمام VMها را در نظر گرفت.
پردازنده
CPU باید تعداد Core و Thread کافی برای مجموع Workloadها داشته باشد. علاوه بر تعداد هسته، نسل پردازنده، فرکانس، Cache، قابلیتهای Virtualization و نوع Workload نیز مهم هستند.
برای محیطهایی که تعداد زیادی VM سبک دارند، تعداد Core اهمیت زیادی پیدا میکند. در مقابل، برای برخی Applicationهای سنگین، Performance هر Core اهمیت بیشتری خواهد داشت.
حافظه RAM
RAM معمولاً یکی از حساسترین منابع در Virtualization است.
اگر قرار باشد دهها VM روی یک Host اجرا شوند، باید ظرفیت RAM بر اساس نیاز واقعی همه VMها، Overhead پلتفرم مجازیسازی و فضای لازم برای رشد آینده محاسبه شود.
برای مثال، خرید سروری با CPU قدرتمند اما RAM ناکافی میتواند باعث شود نتوان از تمام ظرفیت پردازنده استفاده کرد.
Storage
Storage یکی از مهمترین نقاطی است که در طراحیهای ضعیف نادیده گرفته میشود.
در محیطی با تعداد زیادی VM، فقط ظرفیت دیسک مهم نیست؛ IOPS، Latency، Throughput، نوع RAID، Controller و معماری Shared Storage نیز باید بررسی شوند.
به همین دلیل در انتخاب SSD یا HDD برای سرور مجازیسازی، صرفاً نگاه کردن به ظرفیت مثلاً 1.92TB یا 3.84TB کافی نیست.
شبکه
اگر VMها از Storage اشتراکی استفاده کنند یا بین Hostها Live Migration انجام شود، پهنای باند و Redundancy شبکه اهمیت بیشتری پیدا میکند.
در محیطهای سازمانی، طراحی شبکه مجازی و فیزیکی باید همزمان انجام شود؛ مخصوصاً زمانی که ترافیک VM، Management، Storage و Migration روی یک زیرساخت مشترک قرار میگیرد.
چرا سرورهای HPE برای محیطهای مجازیسازی مورد استفاده قرار میگیرند؟
سرورهای HPE ProLiant در بسیاری از زیرساختهای سازمانی برای اجرای Workloadهای مجازی استفاده میشوند. دلیل این موضوع صرفاً قدرت پردازشی نیست؛ قابلیت ارتقای RAM، تنوع Storage، کنترلرهای ذخیرهسازی، شبکه، مدیریت سختافزار و قابلیتهای Redundancy نیز در انتخاب سرور برای Virtualization اهمیت دارند.
برای مثال، خانوادههایی مانند HPE ProLiant DL380 برای محیطهایی که به ترکیبی از پردازش، حافظه، Storage و توسعهپذیری نیاز دارند، گزینه رایجی هستند.
اما انتخاب مدل سرور باید بر اساس Workload انجام شود. یک سرور قدرتمند لزوماً برای همه پروژههای Virtualization بهترین انتخاب نیست. تعداد VMها، نوع Applicationها، نیاز به HA، نوع Storage، میزان رشد آینده و بودجه باید همزمان بررسی شوند.
در یک پروژه واقعی، ممکن است دو سرور با CPU مشابه عملکرد کاملاً متفاوتی ارائه دهند، زیرا ظرفیت RAM، نوع Storage یا معماری Network آنها متفاوت است.
چه زمانی مجازی سازی سرور انتخاب مناسبی نیست؟
مجازی سازی راهحل همه مشکلات زیرساخت نیست.
اگر یک Application به شکل خاصی به سختافزار فیزیکی وابسته باشد، یا Workload بسیار سنگینی داشته باشد که تمام ظرفیت یک Host را مصرف کند، مجازی سازی ممکن است انتخاب مناسبی نباشد.
همچنین قرار دادن تعداد زیادی VM روی یک Host بدون در نظر گرفتن ظرفیت واقعی، باعث Resource Contention میشود. در چنین شرایطی بهجای افزایش بهرهوری، Performance کل محیط کاهش پیدا میکند.
از طرف دیگر، اگر تمام VMهای حیاتی یک سازمان روی یک سرور فیزیکی قرار گرفته باشند، خرابی همان یک Host میتواند چندین سرویس را همزمان تحت تأثیر قرار دهد. بنابراین Consolidation باید همراه با Redundancy و طراحی مناسب HA انجام شود.
به زبان ساده، مجازی سازی زمانی بیشترین ارزش را ایجاد میکند که منابع، Storage، Network، Backup و Availability همگی متناسب با تعداد و اهمیت Workloadها طراحی شده باشند.
مجازی سازی سرور در برابر سرور فیزیکی؛ کدام بهتر است؟
پاسخ به این سؤال مطلق نیست.
سرور فیزیکی برای Workloadهایی که نیاز به دسترسی مستقیمتر به سختافزار، Performance بسیار بالا یا منابع کاملاً اختصاصی دارند میتواند انتخاب مناسبی باشد.
در مقابل، مجازی سازی برای سازمانی که تعداد زیادی سرویس مستقل دارد و میخواهد منابع را انعطافپذیرتر مدیریت کند، معمولاً مزیت بیشتری دارد.
حتی در دیتاسنترهای مدرن نیز این دو رویکرد الزاماً رقیب یکدیگر نیستند. VMها روی سرورهای فیزیکی اجرا میشوند؛ بنابراین انتخاب درست در عمل به این سؤال ختم میشود که چه میزان منابع فیزیکی را برای چه تعداد و چه نوع Workload باید در اختیار محیط مجازی قرار دهیم؟
همین سؤال است که انتخاب CPU، RAM، Storage، Network، تعداد Hostها و سطح Availability را مشخص میکند.






