نکات کلیدی
• راهکارهای سرور خصوصی مجازی یا سرور مجازی در خط مقدم رایانش ابری قرار دارند.
• خدمات رایانش ابری از مجازیسازی برای گسترش یک سرور واحد به چندین ماشین مجازی استفاده میکنند.
• OpenVZ و KVM از محبوبترین پیادهسازیهای فناوری مجازیسازی هستند.
• تفاوت اصلی بین KVM و OpenVZ در نحوه پیادهسازی مجازیسازی است.
• OpenVZ یک نرمافزار مجازیسازی در سطح سیستمعامل است که یک هسته میزبان لینوکس واحد را به چندین کانتینر تقسیم میکند.
• KVM از فناوری هایپروایزر برای دستیابی به مجازیسازی کامل استفاده میکند، که امکان ایجاد ماشینهای مجازی ایزوله با انعطافپذیری سیستمعامل را فراهم میکند.
• OpenVZ مقرون به صرفه است و میتواند بدون مشکل زیادی روی سختافزار قدیمی اجرا شود.
• سرورهای KVM به سختافزار جدیدتر نیاز دارند و به دلیل هزینههای سربار عملکرد، اجرای آنها گران است.
• OpenVZ از جداسازی و کنترل دسترسی استاندارد لینوکس برخوردار است اما نسبت به جداسازی کامل ارائه شده توسط KVM کمتر قوی است.
• OpenVZ برای کسب و کارهای کوچکی که اولویت آنها عملکرد و کارایی ثابت با بودجه محدود است و نیازی به جداسازی کامل ندارند، بهترین گزینه است.
• KVM برای کسب و کارهایی که به دنبال یک محیط مجازی امن و ایزوله با انعطافپذیری و قابلیت سفارشیسازی بالاتر هستند، ایدهآل است.
سرورهای مجازی در قلب رایانش ابری مدرن قرار دارند. سرورهای ابری، خوشههای سروری هستند که صدها اگر نه هزاران ماشین مجازی را میزبانی میکنند، همه از یک سختافزار مشترک استفاده میکنند اما کاملاً از یکدیگر جدا و ایمن هستند. OpenVZ و KVM بازیگران اصلی در دنیای فناوری سرور مجازی هستند. هر دوی این فناوریها درهای جدیدی را به سوی رایانش ابری میگشایند.
OpenVZ در مقابل KVM یک بحث برجسته در فضای سرورهای مجازی است. هر دو فناوری مجازیسازی قوی، به خوبی آزمایش شده و قابل اعتماد با ویژگیها و خصوصیات منحصر به فرد ارائه میدهند. انتخاب بین OpenVZ و KVM میتواند چالشبرانگیز باشد، زیرا هر دو از پیشگامان صنعت در ایجاد سرور مجازی هستند.
در این وبلاگ، ما بحث OpenVZ در مقابل KVM را تحلیل خواهیم کرد و یک تجزیه و تحلیل مختصر از این فناوریها ارائه خواهیم داد. این باید برای هر کسی که در حال تصمیمگیری بین این دو است یا کنجکاو است تا بیشتر درباره آنها بداند، مفید باشد. بیایید به دنیای مجازی OpenVZ در مقابل KVM وارد شویم و ببینیم چه چیزی میتوانیم پیدا کنیم.
OpenVZ چیست؟
OpenVZ یک راهکار مجازیسازی متنباز مبتنی بر هسته لینوکس است. OpenVZ از مجازیسازی در سطح سیستم عامل (OS) استفاده میکند تا یک هسته لینوکس واحد را به چندین کانتینر تقسیم کند. هر کانتینر جدا و ایزوله از بقیه است و بخشی از منابع فیزیکی سرور به آن اختصاص داده میشود.
OpenVZ از مجازیسازی سنتی مبتنی بر هایپروایزر منحرف میشود و در عوض سیستم عامل را به ماشینهای مختلف تقسیم میکند.
ویژگیهای کلیدی مجازیسازی OpenVZ
ما فهرستی از ویژگیهای کلیدی ارائه شده توسط OpenVZ را با توضیحات مختصر برای کمک به درک نحوه کار این فناوری گردآوری کردهایم:
سهمیه دیسک دو سطحی
OpenVZ مجهز به مدیریت فضای دیسک دقیق است. سیستم سهمیه دیسک دو سطحی به مدیران اجازه میدهد تا استفاده از فضای دیسک را به صورت ریز مدیریت و تنظیم کنند. سیستم سهمیه دو سطحی روشی نبوغآمیز برای تخصیص فضا است، زیرا مدیریت فضا را در سطح کانتینر و کاربر ارائه میدهد. مدیران میتوانند کانتینرها را با سهمیههای فضای دیسک ثابت تنظیم کنند و این سهمیهها را بین کاربران فردی تقسیم کنند.
به عنوان مثال، یک سرور را در نظر بگیرید که با استفاده از OpenVZ به دو کانتینر تقسیم شده است. به هر کانتینر ۵۰٪ از فضای دیسک اختصاص داده شده و دارای دو پروفایل کاربری منحصر به فرد است. سهمیه دیسک دو سطحی به شما اجازه میدهد سهمیه اولیه ۵۰٪ را تنظیم کنید و سپس سهمیههای فردی را نیز برای کاربر تعیین کنید. بنابراین، در این مورد، ۵۰٪ منابع کانتینر میتواند بیشتر بین کاربران تقسیم شود.
زمانبند I/O
زمانبند ورودی/خروجی یا I/O ابزاری مفید در OpenVZ است که توزیع عادلانه عملیات ورودی/خروجی دیسک بین کانتینرها را تضمین میکند. این از عملیات I/O متضاد و انحصار دسترسی به دیسک توسط یک کانتینر واحد جلوگیری میکند.
نقاط بازرسی داده و مهاجرت زنده
نقاط بازرسی داده و مهاجرت زنده ویژگیهای ایمنی پیشرفتهای هستند که با OpenVZ ارائه میشوند. این ویژگیها به کاربران اجازه میدهند تا از کانتینر عکس لحظهای بگیرند و نقاط بازرسی ایجاد کنند، گویی که یک بازی ویدیویی است. این نقاط بازرسی سپس میتوانند بارگذاری شوند و به صورت زنده به یک سرور فیزیکی دیگر منتقل شوند تا عملیات بدون اختلال یا خاموشی در سرور مجازی ادامه یابد.
زمانبند عادلانه CPU
همانطور که از نامش پیداست، زمانبند عادلانه CPU استفاده منصفانه از قدرت پردازش CPU سرور فیزیکی را تضمین میکند. از آنجا که از همان سختافزار برای تغذیه چندین سرور مجازی استفاده میشود، قدرت پردازش بین آنها تقسیم میشود. زمانبند عادلانه بخشهای خاصی از منابع CPU را به هر کانتینر بر اساس نیازهایشان اختصاص میدهد. همچنین اطمینان حاصل میکند که هیچ کانتینری منابع CPU را انحصاری نکرده و مانع عملیات سرور مجازی همسایه نشود.
شمارندههای کاربر
شمارندههای کاربر یک ویژگی مدیریت منابع در OpenVZ هستند که منابع مختلف مصرف شده توسط هر کانتینر را ردیابی و محدود میکنند. این یک ابزار نظارتی است که به مدیران کمک میکند تا با استفاده از منابع همگام شوند و محدودیتها را اعمال کنند یا منابع اضافی را بسته به وضعیت هدایت کنند.
KVM چیست؟
KVM مخفف Kernel-based Virtual Machine (ماشین مجازی مبتنی بر هسته) است و بخشی از توزیع استاندارد لینوکس است. KVM از فناوری هایپروایزر نوع ۱ سنتی برای ایجاد چندین ماشین مجازی روی یک سرور فیزیکی واحد استفاده میکند. از آنجا که KVM از یک هایپروایزر استفاده میکند، ماشینهای مجازی ایجاد شده به سیستم عامل لینوکس محدود نیستند و میتوانند ویندوز یا BSD را به عنوان سیستمهای عامل مهمان اجرا کنند.
ویژگیهای کلیدی مجازیسازی KVM
KVM امروزه بخش نمادین لینوکس است، با برخی ویژگیهای برجسته که آن را به انتخابی محبوب برای راهاندازی سرور مجازی تبدیل میکند:
ساعت پاراویرچوال KVM
ساعت پاراویرچوال KVM یک سیستم همگامسازی زمان است که ساعت ماشینهای مجازی را با میزبان همگام میکند. هنگامی که فناوری هایپروایزر در حال استفاده است، ساعتهای دستگاه ممکن است از میزبان ناهمگام شوند و مشکلاتی در زمانبندی وظایف ایجاد کنند. ساعت پاراویرچوال، ساعت سیستم عامل ماشین مجازی را با ساعت لینوکس میزبان همگام میکند و به طور منظم آن را مجدداً همگام میکند تا از حداقل انحراف زمانی اطمینان حاصل شود و دقت ساعت را افزایش دهد.
VMChannel یک مکانیزم ارتباطی است که با KVM ارائه میشود. این به کاربران ماشین مجازی اجازه میدهد تا با میزبان سرور ارتباط برقرار کنند. تبادل دادههای ساده و وظایفی که نیاز به ارتباطات سریع و با تأخیر کم دارند، از طریق VMChannel مدیریت میشوند.
پروتکل مانیتور QEMU (QMP)
Quick Emulator، یا QEMU، یک نرمافزار شبیهسازی سختافزار متنباز است که اغلب در کنار KVM استفاده میشود. QEMU سختافزار را در ماشینهای مجازی شبیهسازی میکند تا عملکردی نزدیک به بومی ارائه دهد. از ویژگیهای مجازیسازی با کمک سختافزار مانند Intel VT-x و AMD-V برای به حداکثر رساندن کارایی استفاده میکند.
QMP یک پروتکل JSON است که با KVM برای مدیریت نمونههای QEMU استفاده میشود. به زبان ساده، QMP به کاربران کنترل بیشتری بر روی ماشین مجازی خود و کنترل پیشرفتهتری بر تعامل مجازیسازی سختافزار و نرمافزار میدهد. QMP همچنین برای خودکارسازی و یکپارچهسازی ویژگیهای خارجی ضروری است.
میانبر های تودرتو
KVM با قابلیت ایجاد ماشینهای مجازی درون ماشینهای مجازی ارائه میشود. این گیجکننده به نظر میرسد اما بسیار سادهتر از آن چیزی است که به نظر میرسد. ماشینهای مجازی جدید میتوانند درون یک ماشین مجازی موجود با استفاده از ویژگی مهمان تودرتو ایجاد شوند. تصور کنید یک ماشین مجازی مستقیماً روی سرور فیزیکی میزبانی شده است. مالک ماشین مجازی میتواند از KVM برای راهاندازی یک سیستم عامل مهمان تودرتو درون ماشین مجازی استفاده کند.
این یک ویژگی مفید است زمانی که نیاز به دسترسی به محیطهای ایزوله برای اهداف آزمایشی دارید. توسعهدهندگان از مهمانهای تودرتو برای ایجاد ماشینهای مجازی آزمایشی سفارشی درون یک ماشین مجازی برای استفاده کارآمد از منابع استفاده میکنند. استفاده از مهمانهای تودرتو سربار عملکرد را معرفی میکند زیرا منابع بیشتری برای تغذیه چندین ماشین مجازی تودرتو مورد نیاز است.
پشتیبانی از هاتپلاگ CPU / PCI مجازی
پشتیبانی از هاتپلاگ یک ویژگی پیشرفته است که به تکنسینها و مدیران اجازه میدهد اجزای CPU و PCI مجازی را بدون رفتن به حالت آفلاین تغییر دهند. این ویژگی انعطافپذیری زیادی به یک سرور مجازی اضافه میکند و اجازه میدهد منابع بدون خاموشی، بسته به حجم کار، اضافه یا حذف شوند.
برسی تفاوت های OpenVZ و KVM
عملکرد
استفاده KVM از مجازیسازی با کمک سختافزار عملکردی نزدیک به بومی ارائه میدهد، اما اجرای چندین سیستم عامل تأثیر خود را بر سیستم میگذارد. منابعی برای اجرای همزمان چندین ماشین مجازی مورد نیاز است که هیچ کدام از آنها صرف تغذیه واقعی ماشینهای مجازی نمیشود. تصور کنید CPU و حافظه فقط برای نگهداری ماشینهای مجازی مصرف میشوند، در حالی که برای عملیات واقعی ماشین مجازی به منابع بیشتری نیاز است.
OpenVZ برای استفاده با تأخیر کم و سرعت بالا عالی است. ساختار سیستم عامل میزبان واحد، سربار عملکرد را به حداقل میرساند و کارایی را به حداکثر میرساند در حالی که عملکرد ثابتی ارائه میدهد. عملکرد OpenVZ در مقابل KVM بسیار مشابه است، با عملکرد بالاتر که منجر به هزینههای بالاتر و راهاندازیهای سنگینتر میشود.
پشتیبانی از سیستم عامل هسته
صحبت از انعطافپذیری سیستم عامل، این یک معیار کلیدی برای تصمیمگیری است. برخی نرمافزارهای تجاری، برنامهها و فناوریهای سفارشی نیاز به پشتیبانی سیستم عامل خاصی دارند. OpenVZ محدود به سیستمهای عامل لینوکس است و دسترسی به ویندوز یا BSD ندارد.
در مقابل، KVM از اکثر سیستمهای عامل پشتیبانی میکند و اجازه میدهد آنها به عنوان مهمان در ماشینهای مجازی میزبانی شوند. این یک نکته مهم به نفع KVM است، زیرا کسب و کارها در شرایط فعلی که دائماً در حال تغییر است، ارزش زیادی برای انعطافپذیری قائل هستند.
امنیت
سرور مجازی مبتنی بر KVM در زمینه مجازیسازی امن، پادشاه است. به دلیل جداسازی هایپروایزر، به هر ماشین مجازی یک آدرس IP منحصر به فرد و یک سیستم عامل ایزوله و کنترل شده اختصاص داده میشود. در این حالت هیچ کس از یک ماشین مجازی همسایه نمیتواند به ماشین مجازی شما نفوذ کند. کسب و کارهایی که نیاز به امنیت داده بالاتری دارند باید در KVM سرمایهگذاری کنند تا از عدم نشت داده اطمینان حاصل کنند.
OpenVZ در مورد امنیت بسیار سهلانگارتر است زیرا کانتینرها حافظه و فضای دیسک مشترکی دارند. هکرها میتوانند به راحتی به یک کانتینر در سرور فیزیکی نفوذ کنند و همه کانتینرهای دیگر را به خطر بیندازند زیرا فقط یک هسته میزبان وجود دارد. فراتر از ویژگیهای امنیتی استاندارد لینوکس و کنترل دسترسی، OpenVZ فاقد امنیت اضافی و جداسازی کامل است. کانتینرهای OpenVZ همچنان منابع را به اشتراک میگذارند که میتواند در صورت نقض امنیتی مورد سوء استفاده قرار گیرد. اینها نیاز به ادغام با ابزارهای خارجی اضافی مانند SELinux دارند.
OpenVZ برای مواردی که امنیت اهمیت اصلی ندارد و آنچه مهمتر است یک سرور کارآمد و مقرون به صرفه است، بهینه است.
هزینه
KVM و OpenVZ نرمافزارهای متنباز هستند، به این معنی که استفاده از آنها رایگان است. این به این معنی نیست که اجرای آنها رایگان است، و هزینههایی که ما در مورد آن صحبت میکنیم مربوط به آنچه برای پشتیبانی از سرور مجازی ساخته شده بر روی این راهکارها لازم است، میباشد.
اجرای یک سرور مجازی مبتنی بر KVM هزینه بسیار بیشتری دارد، زیرا هر ماشین مجازی نیاز به منابع اختصاصی دارد. سربار عملکرد میتواند به طور چشمگیری مصرف برق و هزینههای مدیریت حرارتی را افزایش دهد. سرور مجازی مبتنی بر OpenVZ بسیار کارآمدتر و سبکتر برای جیب صاحبان مراکز داده هستند.
نتیجهگیری
با مقایسه این دو، مسئله اولویت میشود. آیا حاضرید برای حفظ مجازیسازی مبتنی بر KVM برای جداسازی بهتر و انعطافپذیری سیستم عامل هزینه بیشتری بپردازید؟ یا ترجیح میدهید به قیمت محدود شدن به اکوسیستم لینوکس و داشتن جداسازی بدتر، به افزایش عملکرد شگفتانگیز و ارزانتر دست یابید؟ هر پاسخی که به این سؤالات بدهید، عامل کلیدی در تصمیمگیری بین OpenVZ و KVM خواهد بود.
در تمام این صحبتها درباره مجازیسازی، نمیتوانیم فراموش کنیم که سختافزار نیز به همان اندازه مهم است. انتخاب سختافزار قوی از فروشندگان معتبر برای میزبانی سرور مجازی شما به اندازه انتخاب بین OpenVZ و KVM مرتبط است.