kvm بهینه سازی سیستم های مجازی در

by iman

برای افزایش کارایی و سرعت سرور های مجازی که با استفاده از kvm راه اندازی می گردد، میتوان تغییراتی هرچند جزيی بر روی دیسک و سی پی یو و همچنین استفاده از رم سیستم انجام داد. چند نمونه کوچک از این تغییرات  ـ که بر روی دیسک و سی پی یوصورت می گیرد ـ در زیر آورده شده است :

   بطور کلی فضای اختصاص داده شده به سیستم مجازی به ۳ گونه فایل، پارتیشن و فضای بر روی lvm می تواند اختصاص یابد.

فایل : در این حالت فضای دیسک سیستم مجازی بر روی یک فایل با سایز مورد نظر ایجاد می گردد. لازم به ذکر است که دو نوع فایل میتوان داشت :

فایل معمولی : فایلی که در ابتدای مقدار مشخصی فضا از دیسک گرفته و تا آخر دارای فضایی ثابت میباشد. مشکل استفاده از فایل عمدتا مربوط به کارایی و سرعت سیستم مجازی می باشد، بدین صورت که با توجه به اینکه این فایل بر روی فایل سیستم قرار می گیرد مقداری از سرعت سیستم مجازی با توجه به سیستم فایل و چک ها وپردازش سیستم فایل گرفته می شود.

فایل spars : در این گونه فایل تمامی فضای اختصاص یافته از ابتدا تخصیص نمی یابد و در زمان اجرا این فایل بزرگ می گردد (حداکثر افزایش اینگونه فایل ها بسته به مقدار تخصیص یافته سایز فایل می باشد)، که همین امر باعث کاهش ملموس سرعت سیستم مجازی می گردد.

پارتیشن : در این حالت مشکل عمده عدم کارایی فایل برطرف میگردد ( زیرا دیگر نیازی به قرارگیری فضای ماشین مجازی بر روی فایل سیستم نیست و صرفا می توان پارتیشن مورد نظر را بجای فایل به ماشین مجازی اختصاص داد). مشکلی که در این حالت پیش می آید، عدم انعطاف پذیری فضای اختصاص شده نسبت به فایل می باشد. در این حالت برای افزایش و یا تغییری در سیستم های مجازی بخاطر حالت ایستای پارتیشن ها این عمل بسیار سخت صورت می پذیرد.

LVM : در این حالت از اختصاص دیسک،‌ هم مشکل کارایی فایل برطرف میشود و هم مشکلات عدم انعطاف پذیری پارتیشن بندی. پس از نصب لینوکس انتهای فضای دیسک را خالی گذاشته و بر روی آن LVM ستاپ نمایید. در این حالت فضای مورد نیاز دیسک مجازی را از فضای LVM اختصاص میدهیم. سرعت ایجاد این فضا بسیار بالا بوده ( همانند ایجاد فایل های spars) و همچنین چونکه فضای ایجاد شده بر روی فایل سیستم نیست، مشکل عدم کارایی و سرعت فایل ها نیز برطرف میگردد.

Storage format : فرمت raw در فضای ذخیره سازی برای کلاینت های مجازی بهترین انتخاب برای افزایش سرعت و کارایی می باشد ( چرا ؟! ).

Cpu pining : یکی از ویژگیهای خوبی که در kvm وجود دارد مبحث cpu pining است. بدین صورت که به هر سیستم مجازی علاوه بر اینکه میتوان تعداد پردازنده را مشخص نمود، همچنین میتوان تنظیم کرد که کدامیک از پردازنده ها، پردازش های سیستم مجازی را اجرانمایند. برای مثال اگر به سیستم مجازی ۲ هسته و آن هم هسته های شماره صفر و یک را اختصاص دهیم، آنگاه تمامی پردازش هایی که از سمت این سیستم مجازی به سیستم اصلی ارجاع می گردد صرفا بر روی هسته های ۰ و ۱ اجرا میشود و دیگر هسته های پردازنده آزاد باقی می ماند.با توجه به مبحث محلیت ارجاع بر روی کش پردازنده ها، این ویژگی باعث افزایش بازدهی سیستم های مجازی میگردد ( چرا ؟! ).

لازم به ذکر است که در موقع انتخاب پردازنده ها،برای افزایش سرعت و کارایی هسته های پردازنده حتما پردازنده های انتخابی بر روی یک NUMA باشد ( چرا ؟! ).

virtio bus : برای انتخاب bus دیسک بصورت مجازی درصورتیکه سیستم عامل کلاینت مجازی ویندوز نیست حتما از باس virtio جهت بهبود کارایی استفاده نمایید ( چرا ؟! ).

کارت شبکه با مدل virtio (در صورتی که کلاینت مجازی لینوکس باشد) بیشترین سرعت و کارایی را دارا می باشد و در صورتیکه کلاینت مجازی ویندوز میباشد، با توجه به اینکه این نوع سخت افزار را شناسایی نمیکند کارت شبکه مدل e1000 پیشنهاد می گردد.