مجازی ساز KVM چیست ؟ و چه مزایایی دارد؟
Kernel-based Virtual Machine (KVM) یک فناوری مجازی سازی open source است که در Linux ساخته شده است. به طور خاص، مجازی ساز KVM به شما امکان میدهد لینوکس را به یک hypervisor تبدیل کنید و به سرور اجازه دهید چندین محیط مجازی مجزا به نام guest یا ماشین مجازی (VM) را اجرا کند. KVM بخشی از لینوکس است و اگر لینوکس ۲.۶.۲۰ یا جدیدتر دارید، KVM پشتیبانی میشود. مجازی ساز KVM اولین بار در سال ۲۰۰۶ معرفی و یک سال بعد در نسخه اصلی هسته لینوکس ادغام شد. از آنجایی که KVM بخشی از کد لینوکس موجود است، بلافاصله از هر ویژگی جدید لینوکس بهره میبرد. در پیام هاست همراه ما باشید تا اطلاعات بیشتری درباره KVM کسب کنید.
KVM چگونه کار میکند؟
KVM لینوکس را به hypervisor نوع ۱ (bare-metal) تبدیل میکند. همه hypervisor ها برای اجرای ماشین های مجازی به برخی از اجزای سطح سیستم عامل مانند مدیر حافظه، زمانبندی فرآیند، input/output (I/O) stack ، درایورهای دستگاه، مدیریت امنیت، stack شبکه و موارد دیگر نیاز دارند. مجازی ساز KVM همه این اجزا را دارد چون بخشی از هسته لینوکس است و هر VM به عنوان یک فرآیند لینوکس، توسط زمانبندی استاندارد لینوکس برنامهریزی شده و با سختافزار مجازی اختصاصی مانند کارت شبکه، آداپتور گرافیک، CPU(ها)، حافظه و دیسکها پیادهسازی میشود.
پیاده سازی KVM
به طور خلاصه، شما باید نسخه ای از لینوکس را اجرا کنید که پس از سال ۲۰۰۷ منتشر شده و روی سخت افزار x86 نصب میشود و از قابلیتهای مجازی سازی پشتیبانی میکند. اگر هر دوی این گزینه ها علامت زده شده باشند، تنها کاری که باید انجام دهید این است که ۲ ماژول موجود (یک ماژول host kernel و یک ماژول مخصوص پردازنده)، یک شبیه ساز و هر درایوری که به شما در اجرای سیستم های اضافی کمک میکند را load کنید. اما پیادهسازی KVM در یک توزیع لینوکس پشتیبانیشده – مانند Red Hat Enterprise Linux – قابلیتهای KVM را گسترش داده و به شما این امکان را میدهد تا resource ها را بمبادله کنید، کتابخانههای مشترک را به اشتراک بگذارید و عملکرد سیستم را بهینه کنید.
مهاجرت به یک زیرساخت مجازی مبتنی بر KVM
ایجاد یک زیرساخت مجازی بر روی پلتفرمی که به آن وابسته هستید ممکن است دسترسی شما به source code را محدود کند. این بدان معناست که پیشرفتهای فناوری اطلاعات شما احتمالاً راهحلهای بیشتری هستند تا نوآوریها. مهاجرت به یک پلتفرم مجازی سازی مبتنی بر KVM به این معنی است که می توانید source code مربوط به hypervisor خود را بررسی، اصلاح و ارتقا دهید.
مجازی ساز KVM
KVM بخشی از لینوکس و لینوکس بخشی از KVM است، هر آنچه که لینوکس دارد مجازی ساز KVM نیز از آن برخوردار است. اما ویژگیهای خاصی وجود دارد که KVM را به یک hypervisor مناسب enterprise تبدیل میکند:
امنیت: KVM ترکیبی از لینوکس تقویتشده است که از امنیت (SELinux) و مجازیسازی ایمن (sVirt) برای افزایش امنیت VM و ایزولهسازی استفاده میکند. همچنین SELinux مرزهای امنیتی را در اطراف VM ها ایجاد می کند و sVirt قابلیتهای SELinux را گسترش داده و اجازه میدهد تا Mandatory Access Control (MAC) روی ماشینهای مجازی Guest اعمال شود و از خطاهای labeling دستی جلوگیری کند.
فضا: مجازی ساز KVM میتواند از هر فضای ذخیرهسازی پشتیبانی شده توسط لینوکس، از جمله برخی از دیسکهای محلی و network-attached storage (NAS) استفاده کند. چند مسیری ورودی/خروجی ممکن است برای بهبود فضای ذخیره سازی و ایجاد redundancy استفاده شود. همچنین KVM از shared file systems پشتیبانی می کند، بنابراین ایمیجهای VM ممکن است توسط چندین host به اشتراک گذاشته شود. ایمیج های دیسک از thin provisioning پشتیبانی کرده و ذخیرهسازی را بر حسب تقاضا بهجای همه موارد تخصیص میدهند.
پشتیبانی سخت افزاری: KVM میتواند از طیف گستردهای از پلتفرمهای سخت افزاری تایید شده لینوکس استفاده کند. از آنجایی که فروشندگان سخت افزار به طور منظم در توسعه kernel مشارکت دارند، آخرین ویژگیهای سخت افزاری اغلب به سرعت در kernel لینوکس به کار گرفته میشوند.
مدیریت حافظه: KVM ویژگیهای مدیریت حافظه لینوکس، از جمله دسترسی غیر یکنواخت به حافظه و ادغام صفحات یکسان در کرنل را به ارث میبرد. همچنین حافظه یک ماشین مجازی (VM) میتواند جابجا شده و توسط حجمهای بزرگ پشتیبانی شود تا عملکرد بهتری داشته باشد، به اشتراک گذاشته شود یا توسط یک فایل دیسک پشتیبانی شود.
Live Migration : KVM از Live migration پشتیبانی میکند، به این معنی که میتوان یک ماشین مجازی در حال اجرا را بدون وقفه در خدمات بین سرورهای فیزیکی جابجا کرد. ماشین مجازی همچنان روشن میماند، اتصالات شبکه فعال باقی میمانند و برنامهها به اجرا ادامه میدهند در حالی که ماشین مجازی جابجا میشود. مجازی ساز KVM همچنین وضعیت فعلی یک ماشین مجازی را ذخیره میکند تا بتواند آن را بعداً ذخیره و از سر بگیرد.
عملکرد و مقیاس پذیری: KVM عملکرد لینوکس را به ارث میبرد و در صورت افزایش تعداد ماشین های guest و درخواست ها، مقیاس بندی را برای مطابقت با بار تقاضا انجام میدهد. همچنین KVM اجازه میدهد تا سختترین حجمهای کاری برنامهها، مجازیسازی شوند؛ زیرا اساس بسیاری از تنظیمات مجازیسازی enterprise، مانند مراکز داده و private Cloud ها (از طریق OpenStack®) است.
برنامه ریزی و کنترل منابع: در مدل KVM، VM یک فرآیند لینوکس است که توسط kernel برنامه ریزی و مدیریت می شود. scheduler لینوکس اجازه میدهد تا کنترل دقیق منابع تخصیص یافته به یک فرآیند لینوکس تبدیل شده و کیفیت خدمات را برای یک فرآیند خاص تضمین کند.
تأخیر کمتر و اولویت بندی بیشتر: kernel لینوکس دارای برنامههای real time است و به برنامههای مبتنی بر VM اجازه میدهد با تأخیر کمتر و با اولویتبندی بهتر (در مقایسه با bare-metal) اجرا شوند. kernel همچنین فرآیندهایی را که نیاز به زمان محاسباتی طولانی دارند را به اجزای کوچکتر تقسیم میکند تا بر اساس آن برنامه ریزی و پردازش شوند.
مدیریت KVM: میتوان بهصورت دستی چند ماشین مجازی را روی یک workstation مدیریت کرد بدون اینکه از ابزار مدیریت استفاده کنید. اما شرکتهای بزرگ از نرمافزارهای مدیریت مجازیسازی استفاده میکنند تا با محیطهای مجازی و سختافزارهای فیزیکی ارتباط برقرار شود و مدیریت منابع را سادهتر، تحلیل دادهها را بهتر و عملیات را روانتر کنند. بهطورکلی شرکت Red Hat نرمافزار Red Hat Virtualization را دقیقاً برای همین منظور ایجاد کرده است.
نتیجه گیری
مجازی ساز KVM یک راه حل مجازی سازی قدرتمند و همه کاره است که kernel لینوکس را به یک Hypervisor تبدیل می کند و ادغام آن با kernel لینوکس، پشتیبانی از شتاب سخت افزاری و عملکرد قوی، آن را به گزینه ای ایده آل برای برنامه های مختلف، از یکپارچه سازی سرور گرفته تا cloud computing تبدیل کرده است. درک نحوه عملکرد KVM و مزایای آن نیز می تواند به کسب و کارها کمک کند تا از این فناوری برای بهینه سازی زیرساخت فناوری اطلاعات خود استفاده کنند