مجازی سازی با KVM

مجازی سازی سرور با KVM

Kernel-based Virtual Machine (KVM) چیست؟

Kernel-based Virtual Machine یک فناوری مجازی سازی منبع باز است که شرکت Linux ارائه داده است. KVM به شما این امکان را می‌دهد Linux را به یک Hypervisor تبدیل کنید تا به Host اجازه دهد چندین VM را در خود اجرا کند. KVM قابلیت‌های مجازی سازی را فعال کرده و به VMها سرویس‌های معمولی یک سیستم فیزیکی از جمله بایوس مجازی و سخت‌افزار مجازی مانند CPU، RAM، فضای ذخیره‌سازی، کارت شبکه را ارائه می‌دهد. در نتیجه، هر VM یک سرور فیزیکی را به طور کامل شبیه‌سازی می‌کند.

نحوه کار KVM

KVM، لینوکس را به Hypervisor نوع 1 (Bare Metal) تبدیل می‌کند. تمامی Hypervisor ها برای اجرای VM ها به برخی از اجزای سیستم عامل مانند RAM، CPU، پشته Input/Output، درایورهای دستگاه و موارد دیگر نیاز دارند که KVM همه این اجزا را داراست، چرا که بخشی از هسته لینوکس است. هر VM به عنوان یک فرآیند معمولی در لینوکس، با سخت‌افزار مجازی اختصاصی مانند کارت شبکه، کارت گرافیک، CPU، RAM و دیسک‌ها پیاده‌سازی می‌شود.

ویژگی‌های KVM

KVM بخشی از Linux است و Linux نیز بخشی از KVM. هر آنچه Linux دارد، KVM نیز دارد اما ویژگی‌های خاصی وجود دارد که KVM را به یک Hypervisor ترجیحاً سازمانی تبدیل می‌کند. این ویژگی‌ها عبارتند از:

  • KVM از SELinux و sVirt برای امنیت و ایزوله‌سازی VM استفاده می‌کند. SELinux امنیت را در بیرون از VM ایجاد می‌کند و sVirt نیز قابلیت‌های SELinux را گسترش داده و این امکان را فراهم می‌کند که امنیت در VM های Guest نیز اعمال شود و از خطاهای دستی نیز جلوگیری ‌کند.
  • KVM می‌تواند از هر فضای ذخیره‌سازی که توسط لینوکس پشتیبانی شده است از جمله دیسک‌های local و NAS ها استفاده کند.
  • KVM از انتقال VM به صورت live نیز پشتیبانی می‌کند، به عبارتی توانایی جابجایی VM در حال اجرا میان Host های فیزیکی بدون وقفه؛ به این صورت که VM روشن می‌ماند، اتصالات شبکه فعال هستند و برنامه‌ها در حالیکه VM در حال جابجایی است به کار خود ادامه می‌دهند. هم‌چنین KVM وضعیت فعلی VM را ذخیره می‌کند تا بتواند پس از انتقال، آن را از سر بگیرد.
  • عملکرد KVM همانند Linux می‌باشد، به این صورت که با افزایش تعداد VM های Guest و درخواست‌ها، مقیاس‌بندی را نسبت به تقاضا انجام می‌دهد. KVM این امکان را فراهم می‌کند تا برنامه‌هایی که بیشترین workload را دارند مجازی شوند و بسیاری از تنظیمات مجازی‌سازی سازمانی مانند مراکز داده و Private Cloud ها از طریق OpenStack صورت می‌گیرد.
  • هسته لینوکس به برنامه‌هایی که مجازی‌سازی شده‌اند این امکان را می‌دهد تا با تاخیر کمتر و با اولویت‌بندی مناسب اجرا شوند. این هسته هم‌چنین فرآیندهایی که به زمان محاسباتی بیشتری نیاز داشته باشند به اجزای کوچکتر تقسیم کرده سپس بر اساس آن پردازش می‌شوند.
مزایای KVM
  • مانند هر راه حل نرم‌افزاری دیگر، KVM نیز مزایا و معایبی دارد. از مزایای این Hypervisor می‌توان به موارد زیر اشاره کرد.
    منابع اختصاصی که هر ماشین مجازی دریافت می‌کند اعم از مقدار RAM و ROM، مستقل بوده و در دیگر ماشین‌های مجازی دخالتی ندارد که همین امر باعث افزایش پایداری کار می‌شود.
  • پشتیبانی از Guest OS، در نسخه‌های BSD، Solaris و Linux امکان نصب سیستم عامل Windows و حتی macOS نیز وجود دارد.
  • KVM حجم بیشتری از سخت‌افزارها و سیستم عامل‌ها را با جدیدترین نسخه پوشش می‌دهد.
  • با مدیریت آسان، امکان کنترل از راه دور با استفاده از نرم‌افزار VNC و دیگر نرم‌افزارها را به وجود می‌آورد.
معایب KVM
  • سخت‌افزار Host بایستی بسته به نیاز و سیستم کاربر قوی باشد.
  • از آنجایی که KVM بخشی از هسته لینوکس است، بنابراین نمی‌تواند در اکثر سیستم عامل‌ها به استثنای FreeBSD و Illumos اجرا شود.
  • سخت‌افزارهایی که به صورت متمرکز هستند، ممکن است در موارد خرابی مشکل ساز باشند.