نمایش مطلب نمایش مطلب

مقایسه PVM با PVE

هدف از این نوشتار مقایسه دو محصول PVM‌ به عنوان یک محصول ایرانی و دیگری محصول PVE به عنوان یک محصول متن باز می باشد.

 

در دنیای لینوکس دو پروژه معروف ‌و متن باز در زمینه مجازی سازی سرورها وجود دارد اولی پروژه Xen ‌ و دیگری پروژه KVM است. دقت شود که مبحث کانتینرها (operating-system-level virtualization) با مجازی سازی کامل متفاوت است.

هر دو این پروژه ها طرفداران و علاقه مندان مخصوص به خود را دارند. تیم توسعه PVM حدود ۱۰ سال پیش این بررسی را انجام داد و در آن زمان به این جمع بندی رسید که پروژه نوظهور KVM آینده بهتری دارد. ضمن اینکه وفاداری ان به لایسنس متن باز نیز بارزتر بود. اینکه وضعیت این دو پروژه در حال حاظر چه گونه است خارج از حوصله این نوشتار است.

KVM یک ابزار مهم که بخشی از آن در فضای kernel space‌ و بخش دیگر آن در فضای user space میباشد. به طور کلی این ابزار به خودی خود فاقد ابزار مدیریتی کامل برای اجرای ماشین مجازی میباشد.

 

تصور کنید یک Command با هزاران آپشن و پارامتر متفاوت!! یکی از بهترین و معروفترین و یا شاید تنها ابزار مدیریت KVM در فضای متن باز کتابخانه libvirt‌ میباشد. این کتابخانه چه کاری انجام میدهد؟ یک مثال خیلی ساده : در نظر بگیرید که میخواهید یک ماشین مجازی با مشخصات دلخواه ایجاد کنید. در حالت عادی باید همه مشخصات ماشین مجازی را به دستور user space برنامه kvm‌ بدهید و آنها را اجرا کنید. البته در قالب خط فرمان!!. کار بسیار سختی است. این کتابخانه ابزارهای بسیار مناسبی به کاربر میدهد تا بتواند یک ماشین مجازی ایجاد کند و اون را هر زمان خواست خاموش یا روشن کند. البته یک مشکل بزرگ هنوز هست و اون هم این است که این فقط یک کتابخانه است. شما باید XMLهای مربوط به ماشین مجازی را به این کتابخانه بدهید و یا از شل های متنی آن (virsh)بهره بگیرید. به عبارت دیگر شما هنوز باید با خط فرمان کار کنید.

تا اینجا با توضیحاتی که ارائه داده شد مشخص شد که libvirt یکmanagement stack برای kvm‌ میباشد. برای حل مشکل سختی کار با libvirt پروژه های زیادی ایجاد شده ... اگه به لیست اونها نگاه بندازید متوجه میشید خیلی از پروژه ها از این کتابخانه استفاده میکنند. لیست کامل رابط ها در این آدرس قرار داد: https://www.linux-kvm.org/page/Management_Tools

 

رسالت اصلی این پروژه ها ایجاد یک رابط برای مدیریت KVM میباشد. در این راه تعداد زیادی از پروژه ها مثلا ovirt یک رابط تحت وب برای libvirt نوشته اند. برخی دیگر نیز از این کتابخانه استفاده نمی کنند که PVM از این دسته هست. سوالی که مطرح میشود این است که چرا از این کتابخانه اماده در PVM استفاده نشده است. جواب این سوال در این مقاله مفصل توضیح داده ایم ولی به صورت خیلی خلاصه دلایل زیر اصل عدم استفاده از libvirt‌ هستند:

  • شما روی چیزی که تولید نکردید تسلط ندارید! این موضوع خیلی واضح است. بنابراین در پشتیبانی به مشکل برمیخورید.
  • وابسته شدن پروژه به کتابخانه ای که مسیر توسعه ان تحت اختیار شما نیست.
  • هستی و نیستی پروژه شما به این کتابخانه وابسته است.

کاری که ما در PVM‌ انجام دادیم این است که یک رابط برای کاربر ایجاد شده که به راحتی بتواند با سیستم کار کند و ماشین های مجازی را کنترل کند. از طرف دیگر حجم کار مهم و اصلی تولید یک Management Stack برای مدیریت KVM‌میباشد (موارد به ساده شده است، فعالیتهای زیادی برای بحث امنیت، کارآیی و بهینه سازی سیستم انجام شده که از موضوعیت این متن خارج است). سوال مهم . چرا ما چرخ را دوباره ساختیم؟

تجربه های ما در طی ۱۵ سال کار در پروژه های متن باز جمله زیر است:

سامانه مجازی سازی PVM

سامانه میز کار مجازی PVM Desktop

ارزش‌های ایجاد شده برای کارفرمایان پویش به واسطه استفاده از PVM

PVM و جداسازی اینترنت از شبکه داخلی

دانلود PVM

اپلاینسهای مجازی پویش (اپلیش Aplish)

از مشاوره رایگان ما استفاده کنید.

باید گفت تغییر و یا فارسی سازی و یا هرچیزی که شبیه به آن در طولانی مدت هزینه به مراتب بیشتری نسبت به تولید از صفر و با تکیه بر دانش داخلی شرکت دارد. البته باید این فرض را هم در نظر بگیریم که شما شرکتی نباشید که محصولی را تولید کنید و در بازار ارائه کنید و سال بعد در دیار باقی باشید، نگاه بلند مدت هست.
به عبارتی اگر شرکتی به دنبال کسب و کار طولانی مدت باشد مجبور است مسلط بر روی تکنولوژی استفاده شده در محصول خود باشد.

 

تفاوت های بین PVM‌ و PVE :

۱. طبق گزارش سایت openhub زبان برنامه نویسی استفاده شده در محصول PVE ‌به این شرح است: ( Perl 52% JavaScript 28% C 10% - Other 10%) در مقابل در محصول PVM هسته اصلی با زبان C++ ‌و C# توسعه یافته است. دقت کنید که بین زبان C ‌و نیز C++ تفاوت های زیادی هست. https://www.openhub.net/p/proxmox-ve
۲. برنامه PVE روی لینوکس debian توسعه داده شده است ولی PVM‌ بر بستر centos ‌توسعه یافته است.
۳. رابط کاربری PVE یک رابط تحت وب است ولی رابط کاربری PVM‌در حال حاظر یک رابط ویندوزی است که با C#‌ نوشته شده است.
۴. حجم کد تولید شده در سمت هسته PVE بیشتر Perl و C میباشد در صورتی که در سمت PVM کد هسته به زبان C++‌تولید شده است.
۵. از نظر کارکردی و قابلیت ها تفاوت بسیاری بین دو محصول وجود دارد (به عنوان نمونه روشهای بک آپ را در دو محصول مقایسه کنید).
۶. معماری به کار رفته در دو محصول متفاوت و منحصر به هر محصول است. (مستند راهنمای نصب PVM و راهنمای کاربری PVM را مطالعه فرموده و با مستند راهبری proxmox مقایسه بفرمائید)

 

چند نکته کوتاه:

۱. یکی از دلایل استفاده نکردن از زبان فارسی در رابط کاربری PVM‌ سختی ترجمه برخی مفاهیم دنیای مجازی است. ضمن اینکه مدیران سیستم با رابط انگلیسی راحت تر کار میکنند. درج ترجمه فارسی در رابط کاربری PVM به راحتی قابل انجام است و هیچگونه محدودیت تکنولوژیکی وجود ندارد.
۲. همانطور که در مستندات شرکت ذکر شده است هر دو محصول از KVM‌ استفاده میکنند.
۳. هرکسی حق دارد یک محصول متن بسته در محیط لینوکس داشته باشد ولی اگه Code کسی را دستکاری کرده باشد لازم است به لایسنیس آن Code احترام بگذارد. یک برنامه نویس مطلع میتواند به راحتی مشخص کند که لایسنس رعایت شده است یا خیر. در کل پیشنهاد میکنیم کد را بررسی کنید، امکان بررسی کد در اختیار مخاطب عزیز قرار میگیرد.
۴. PVM مخازن بروزرسانی مخصوص به خودش را دارد. وجود مخازن مستقل برای سیستم عامل پایه ناقض وجود مخازن بروزرسانی اختصاصی برای محصول نیست.
۵. کد خوانی یک برنامه بزرگ شاید از نوشتن آن خیلی سخت تر باشد. حالا تصور کنید که بخواهید مثلا برنامه ای را از زبان Python با یک مبدل به #C ترجمه کنید و از محیط لینوکس به ویندوز منتقل کنید، این عملیات هم کاری غیر منطقی است، و از نظر صرفه و هزینه، به دلیل فرآیند پیچیده رفع باگ دارای صرفه اقتصادی نمیباشد. (البته چنانچه شخصی مدعی شده باشد که اینگونه مبدلی را نوشته است باید گفت کار بزرگی را انجام داده است).

 

شفافیت و صداقت از اصول همشگی پویش بوده است و افتخار میکند که در یک دهه فعالیت خود، حافظ منافع کارفرمایان و به عنوان یک تیم حرفه ای، مبلغ عملی حرفه ای گری در کشور بوده است.

 

تیم پویش داده نوین.

آدرس کوتاه :