فهرست عناوین
محصول ایرانی 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 و 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 ترجمه کنید و از محیط لینوکس به ویندوز منتقل کنید! این عملیات کاری غیر منطقی است و به دلیل فرآیند پیچیده رفع باگ، دارای صرفه اقتصادی نمیباشد. (البته چنانچه شخصی مدعی شده باشد که اینگونه مبدلی را نوشته است باید گفت کار بزرگی انجام داده است).
شفافیت و صداقت از اصول همیشگی آوید بوده و افتخار میکند که در طول یک دهه فعالیت خود، حافظ منافع کارفرمایان بوده و نیز به عنوان یک تیم حرفهای، نمونهای عملگرا برای رفتار حرفهای در کشور بوده است.
ثبت ديدگاه