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

چرا ما KVM را در توسعه PVM انتخاب کردیم؟


همیشه از شرکت پویش داده نوین سؤال میشده است که چرا در توسعه PVM از تکنولوژی KVM استفاده شده است. دلایلی که در ادامه ذکر می‌شود عمده دلایل شرکت در ابتدای حرکت به سمت توسعه PVM میباشد:

  • kvm از متد توسعه متن باز بهره میبرد

توسعه با متد متن باز به منزله همفكری تعداد زیادی از توسعه‌دهندگان و به عبارتی برخورداری از حوزه MindShare بزرگی است كه این موضوع قابلیت اطمینان این بسته نرم‌افزاری را در حد زیادی افزایش داده است.

این موضوع در مقابل راه‌حلهای متن بسته و نیمه باز مزیت بسیار مهمی محسوب میشود. اهمیت این موضوع با نگاه به آینده و لزوم پشتیبانی طولانی مدت آن اهمیت بیشتری نیز پیدا میكند.

  • kvm از ابزار و استانداردهای متن‌باز بهره میبرد

توسعه kvm به دلیل قرارگیری در حوزه متن‌باز وابسته به استانداردها و ابزار متن‌باز موجود میباشد. از جمله این موارد میتوان به فایل‌سیستم اشاره کرد که از فایل‌سیستمهای جاری در سیستم‌عامل لینوکس استفاده میشود که این موضوع برای تدوین راه‌حلهای پشتیبانگیری از اطلاعات بسیار حائز اهمیت است. این موضوع میتواند با فایل‌سیستم اختصاص بعضی از راه‌حلهای موجود مقایسه کرد که امکان دسترسی مستقیم به فایلها وجود ندارد.

همچنین تعامل بین ابزار متن باز، این امکان را فراهم می‌آورد که بتوان با اتخاذ راه‌حلهای مناسب بهره‌وری سیستم را تا حد زیادی افزایش داد. از این جمله میتوان به دیسکهای ماشینهای مجازی اشاره کرد که میتوانند هم به صورت فایل ذخیره شوند و یا قسمتی از یک دیسک مستقیما به ماشین اختصاص یابد. تلفیق این توانایی با ابزار LVM فرصتهای مناسبی را در مدیریت بهینه دیسک و حتی ساخت Snapshotها فراهم‌می‌آورد.

همچنین این نکته نیز قابل توجه است که هم‌اکنون ابزارهای متن‌باز گوناگونی جهت توسعه کاربردها و قابلیتهای ماشینهای مجازی در حال توسعه می‌باشد (مانند openvswitch - سوييچ مجازي).

وجود ابزار متن باز امکان پیاده‌سازی نیازهای کاربردی و غیرکاربردی (Functional/NonFunctional) را در یک محیط عملیاتی فراهم می‌آورد، و قدرت و حیطه عملیاتی مناسبی را در اختیار توسعه‌دهندگان قرار می‌دهد.

همچنین تعامل سازنده با ابزار متن باز امکان پشتیبانی طولانی مدت راه‌حلهای مبتنی بر kvm و همچنین انجام توسعه‌های افزایشی (incremental) را فراهم می‌آورد.

  • kvm عضوی از هسته سیستم‌عامل لینوکس است

بنابراین هر جا که لینوکس است، kvm هم خواهد بود. رمز موفقیت لینوکس پشتیبانی از سخت‌افزارهای گوناگون و همچنین توانایی عملیاتی در حوزه‌های Desktop و server‌میباشد که این قابلیت به دلیل انعطاف هسته لینوکس جهت انجام تنظیمات بهینه برای هر حوزه میباشد.

در نتیجه kvm حوزه سخت‌افزاری وسیعتری را نسبت به راه‌حلهای موجود پشتیبانی میکند و این به دلیل تفکیک روشن وظایف بین هسته لینوکس(مدیریت فعالیتهای سیستم‌عامل مانند سخت‌افزار) و kvm(مدیریت ماشینهای مجازی) میباشد.

همچنین به دلیل انعطاف هسته لینوكس،طیف كارآیی kvm از كاربری خانگی تا كاربری حرفه ای گسترده است كه موجب افزایش كاربران آن و به تبع گسترش سریعتر خصوصیات كاربردی و غیركاربردی (Functional/NonFunctional) آن میشود.

  • kvm ساده‌تر و سبکتر از راه‌حلهای موجود است

چنانچه ذکر شد راه‌حلهای مطرح شده یک سیستم‌عامل کوچک هستند که علاوه بر انجام اعمال مربوط به ماشینهای مجازی، میبایست وظایف جاری یک سیستم‌عامل همانند زمانبندی (Scheduling)، مدیریت منابع، توسعه درایورهای سخت‌افزاری و ... را انجام دهند.

kvm عضوی از هسته لینوکس است که تنها وظیفه واگذار شده به آن مدیریت ماشینهای مجازی است بنابراین از تواناییهای خارق‌العاده لینوکس به عنوان یک سیستم‌عامل تمام عیار به خوبی استفاده میکند. از این منظر kvm یک راه‌حل سبک و ساده بوده که میتواند نرخ توسعه سریعتری نیز داشته باشد(به دلیل حجم اندك وظایف واگذار شده به آن).

  • kvm‌ ماشینهای مجازی را در قالب process های لینوکس مدیریت میکند

به عبارتی در فضای kvm هر ماشین‌مجازی یک process در سیستم‌عامل لینوکس میباشد. بنابراین هرگونه عملیاتی که برای یک پردازش در لینوکس مطرح است برای یک ماشین‌مجازی نیز قابل طرح است که از آن جمله است:

۱- اعمال اولویت به ماشین‌مجازی،

۲- اعمال محدودیت در استفاده از منابع سیستم،

۳- مانیتورینگ بسیار راحت ماشین‌مجازی،

۴- استفاده از ابزارهای مدیریت پردازشها برای راهبری ماشین‌مجازی

  • kvm یک bare metal hypervisor است

kvm به صورت مستقیم بر روی سخت‌افزار اجرا شده و تعامل مستقیم با آن دارد. ارتباط مستقیم با سخت‌افزار، بر روی بهره‌وری ماشینهای مجازی و سرعت انجام عملیات io آنها تاثیر بسزایی دارد.

  • kvm توانایی شبیه سازی سیستمهای گوناگون را دارد

به عبارتی kvm این امكان را دارد كه انواع سیستمهای كامپیوتری را بر بستر سیستم فعلی شبیه سازی كند. البته این موضوع در توسعه نرم‌افزارهای Multi-Platform كاربرد دارد اما وجود آن دلیلی بر وجود تواناییهای قابل توجه و طراحی مناسب این نرم‌افزار در پیوند با نرم‌افزارهای متن باز موجود میباشد.

این توانایی حاصل پیوند kvm با نرم‌افزار متن باز Qemu به عنوان یك شبیه ساز سیستم است كه یك سیستم كامپیوتری را به صورت كامل شبیه سازی میكند. این سیستم كامپیوتری میتواند یك PC و یا سیستمهای غیر PC مانند PowerPc, Sparc32, Sparc64, MIPS, ARM باشد.

  • kvm درایورهای سخت‌افزاری گوناگونی را شبیه سازی میكند

kvm برای هر سیستم كامپیوتری، درایورهای گوناگون كارت شبكه، كارت صدا و نوع دیسك را شبیه سازی میكند. وجه مطلوب این موضوع برای سیستم عاملهای قدیمی قابل توجه است كه میتوان درایور مناسبی را برای سیستم انتخاب كرد.

همچنین در پیوند انواع ماشینهای مجازی با سیستم عاملهای گوناگون كه به عنوان بستر(host) استفاده میشوند (بسته به نوع تنظیمات هسته) میتوان درایوری كه بهترین خروجی را دارد انتخاب كرد.

  • kvm یعنی لینوکس

اطمینان از وجود راه حلهای فنی برای مشكلات پیش رو در انجام یك پروژه حساس و بزرگ بسیار مهم است.

لینوكس یعنی انعطاف و اطمینان. به عبارت بهتر كار در فضای لینوكس این اطمینان را برای توسعه‌دهنده ایجاد میكند كه به هر صورت برای هر نیاز راه حل فنی وجود دارد و یا حداقل امكان توسعه یك راهكار مناسب متصور است. این موضوع به دلیل حوزه كاربری وسیع لینوكس میباشد.

آدرس کوتاه :