کارایی رایانش ابری (قسمت اول)
ظهور رایانش ابری برخی مشکلات را در زمینه کارایی سیستمها حل کرد در حالی که مشکلات جدیدی را ایجاد نمود. ابرها معمولاً براساس فناوری های مجازی سازی ساخته شده اند و به چندین نمونه سیستم عامل یا مستاجر اجازه می دهد تا یک سرور فیزیکی را به اشتراک بگذارند. این بدان معناست که ممکن است مناقشه منابع وجود داشته باشد: نه فقط از سایر فرآیندها ، همانطوریکه در یونیکس این مورد عادی بوده است، بلکه از کل سیستم عامل های دیگر نیز استفاده می شود. جداسازی اثرات کارایی هر مستاجر یک امر حیاتی است. همچنین تشخیص زمانیکه کارایی توسط دیگر مستاجران، ضعیف شده یا تحت تاثیر قرار میدهد، بسیار اهمیت دارد.
در این مقاله کارایی محیطهای رایانش ابری را مورد بحث قرار می دهیم که از سه بخش تشکیل شده است:
پس زمینه:معماری رایانش ابری و مفاهیم مربوط به کارایی آنها را بیان میکند.
مجازی سازی سیستم عامل :جایی است که یک هسته واحد سیستم را مدیریت میکند و نمونه سیستم عامل های مجازی را ایجاد میکند که از یکدیگر ایزوله شده اند.
مجازی سازی سخت افزار :جایی است که یک hypervisor چندین سیستم عامل guest را مدیریت می کند. هرکدام از سیستم عامل ها هسته خود را داشته و با دستگاه های مجازی تعامل دارند.
محیطهای ابری که از سیستم مجازی سازی استفاده نمیکنند، شاخصهای کارایی آنها را میتوان همانند سیستمهای توزیع شده تصور کرد.
پس زمینه رایانش ابری
رایانش ابری به منابع محاسباتی اجازه میدهد تا به عنوان یک سرویس ارائه شوند و از بخشهای کوچکی از سرور به سیستم های چند سروری تبدیل شوند. بسته به میزان نصب و پیکربندی نرم افزار، انواع مختلفی وجود دارد. در این قسمت ما تمرکر را برروی IaaS قرار می دهیم که سیستم عامل ها را بعنوان نمونه سرور ارائه می دهند. به عنوان نمونه هایی از IaaS میتوان به سرویسهای Amazon Web Service، Rackspace و Joyent اشاره نمود.
نمونه های سرور معمولا سیستم های مجازی هستند که در طی مدت زمان کوتاهی در حدد چند دقیقه می توانند ایجاد و یا نابود شده و همچنین در زمان کوتاهی به محیط عملیاتی منتقل شوند.
برای خلاصه سازی اصطلاحات ابری، یک چارچوب تامین پویا برای نمونه های سرور توصیف می شود. موارد متعدد سرور به عنوان مهمان یک سیستم میزبان فیزیکی اجرا میشود. مهمانها، مستاجر نیز نامیده میشوند. از اصطلاح چندسانی بودن برای توصیف تاثیر آنها بر همسایگان خود استفاده میشود. میزبان توسط اپراتورهای ابر مدیریت می شود و مهمان ها یا مستاجران توسط کاربران مدیریت میگردند.
رایانش ابری برای تعدادی از مباحث کارایی دارای اهمیت است: نسبت قیمت/کارایی، معماری، برنامه ریزی ظرفیت، ذخیره سازی و چندسانی.
نسبت قیمت/کارایی
بسیاری از ارائه دهندگان ابر عمومی وجود دارند که نمونه های سرور ابری را توسط ساعت و قیمت بر اساس اندازه حافظه نمونه (DRAM) میفروشند، مثلا با هزینه 8 گیگابایت تقریباً هشت برابر یک نمونه 1 گیگابایت. منابع دیگر مانند CPU با توجه به حجم حافظه مقیاسبندی و قیمت گذاری می شوند. نتیجه می تواند یک نسبت ثابت قیمت/کارایی باشد. همچنین ممکن است از سایر منابع استفاده شود، مانند توان شبکه و ذخیره سازی.
معماری مقیاس پذیر
محیطهای سازمانی به طور سنتی از رویکرد مقیاس پذیری عمودی برای جابجایی بار استفاده می کنند: ایجاد سیستم های بزرگتر (mainframes). این رویکرد، محدودیتهای خاص خود را دارد. یک محدودیت اصلی اندازه فیزیکی کامپیوتری است که میتوان آن را ساخت که میتواند به اندازه درهای آسانسور یا وسایل حمل و نقل محدود شود. مشکلات مربوط به انسجام حافظه نهان CPU به عنوان مقیاسهای شمارش CPU افزایش می یابد. راه حل این محدودیت ها مقیاس بندی بار برروی بسیاری از سیستم های کوچک بوده است. این را مقیاس پذیری افقی می نامند. در موسسات تجاری برای خوشه های رایانه ای به ویژه با محاسبات کارایی بالا HPC استفاده شده است.
رایانش ابری نیز بر اساس مقیاس پذیری افقی است. یک محیط نمونه در شکل زیر نشان داده شده است که شامل سرورهای توازن بار، سرورهای وب، سرورهای برنامه و پایگاه های داده است.
هر لایه محیطی شامل یک یا چند نمونه سرور است که به طور موازی اجرا می شوند و تعداد بیشتری برای تحمل بار اضافه می شوند. ممکن است نمونه هایی بصورت جداگانه اضافه شوند یا معماری ممکن است به پارتیشن های عمودی تقسیم شود، جاییکه گروهی متشکل از سرورهای پایگاه داده، سرورهای برنامه و سرورهای وب بعنوان یک واحد اضافه میشوند.
دشوارترین لایه برای اجرای موازی، لایه پایگاه داده است، به دلیل مدل پایگاه داده سنتی که در آن یک نمونه پایگاه داده باید اصلی باشد. داده در این پایگاه داده ها مانند MySQL می تواند به گروه های منطقی تقسیم شوند که shards نامیده می شوند که هرکدام توسط پایگاه داده خود (اصلی یا ثانویه) مدیریت می شوند. معماری های اخیر پایگاه داده ، مانند Riak اجرای موازی را به صورت پویا انجام داده و بار را بر روی نمونه های موجود گسترش می دهند.
با توجه به اندازه نمونه سرور به طور معمول کوچک ، به عنوان مثال ، 1 گیگابایت (در میزبانهای فیزیکی با 128 گیگابایت و بیشتر DRAM) ، مقیاس بسیار کوچک می تواند برای دستیابی به قیمت/عملکرد مطلوب به جای سرمایه گذاری در سیستم های بزرگ مورد استفاده قرار گیرد.
برنامه ریزی ظرفیت (Capacity Planning)
در محیطهای سازمانی، سرورها میتوانند هزینه زیرساخت قابل توجهی باشند، هم برای سخت افزار و هم برای هزینه های قرارداد خدمات پشتیبانی كه ممكن است سالها به طول انجامد. همچنین تولید سرورهای جدید ماه ها طول می کشد: زمان صرف شده در تأییدیه ها، منتظر در دسترس بودن قطعات، حمل و نقل، نصب و آزمایش.
برنامه ریزی ظرفیت بسیار مهم است. بنابراین می توان سیستم های با اندازه مناسب را خریداری نمود: سرورهای بیش از حد بزرگ هزینه بر است و با قراردادهای خدمات، ممکن است در سالهای آینده پرهزینه باشد. برنامه ریزی ظرفیت همچنین می تواند به پیش بینی افزایش تقاضا از قبل کمک کند، بنابراین مراحل خرید طولانی مدت می تواند به موقع انجام شود.
رایانش ابری بسیار متفاوت است. نمونه های سرور ارزان هستند و تقریباً فوراً ایجاد و از بین می روند. به جای صرف زمان برای برنامه ریزی آنچه ممکن است مورد نیاز باشد ، شرکت ها می توانند موارد سرور را در صورت نیاز، در واکنش به بار واقعی افزایش دهند. این کار را می توان به طور خودکار از طریق API ابری ، بر اساس معیارهای نرم افزار مانیتورینگ انجام داد.
برای استارت آپ های در حال رشد، عامل دیگری که باید در نظر بگیرید سرعت تغییرات کد است. سایت ها معمولاً کد تولید خود را هفتگی یا حتی روزانه به روز می کنند. مطالعه برنامه ریزی ظرفیت هفته ها طول میکشد و چون بر اساس یک تصویر کلی از معیارهای کارایی است، ممکن است تا زمان تکمیل آن قدیمی باشد. این با محیط های سازمانی که نرم افزار تجاری را اجرا می کنند متفاوت است، که ممکن است بیش از چند بار در سال تغییر کند.
فعالیتهای انجام شده در ابر برای برنامه ریزی ظرفیت شامل موارد زیر است:
اندازه پویا :افزودن و حذف خودکار نمونه های سرور.
آزمایش مقیاس پذیری :خرید یک محیط ابر بزرگ برای مدت کوتاه، به منظور آزمایش مقیاس پذیری در مقابل بارهای مصنوعی (این یک فعالیت معیار است).
با در نظر گرفتن محدودیتهای زمانی، امکان مدل سازی مقیاس پذیری (مشابه مطالعات سازمانی) جهت برآورد مقیاس پذیری وجود دارد.
اندازه پویا
افزودن خودکار نمونه های سرور می تواند نیاز به سرعت پاسخگویی به بار را برطرف کند اما همچنین ممکن است بیش از حد تأمین شود، همانطور که در شکل زیر نشان داده شده است. به عنوان مثال، حمله DoS ممکن است به عنوان افزایش بار ظاهر شود و باعث افزایش گران قیمت نمونه های سرور شود. خطر مشابهی در مورد تغییرات برنامه وجود دارد که کارایی را پس می زند و موارد بیشتری را برای تحمل بار مشابه نیاز دارد. مانیتورینگ برای اطمینان از منطقی بودن این افزایش ها مهم است.
برخی از ابرها همچنین می توانند هنگام کاهش بار ، اندازه خود را کاهش دهند. به عنوان مثال ، در دسامبر 2012، Pinterest هزینه ها را از 54 دلار در ساعت به 20 دلار در ساعت کاهش داد و به طور خودکار سیستم های ابری خود را پس از ساعت ها خاموش کرد. صرفه جویی های فوری مشابه نیز می تواند نتیجه تنظیم کارایی باشد، جاییکه تعداد موارد مورد نیاز برای رسیدگی به بار کاهش یافته است.
برخی از معماری های ابری (بعنوان مثال، مجازی سازی سیستم عامل) میتوانند منابع CPU بیشتری را به صورت پویا، در صورت موجود بودن، با استفاده از استراتژی ای به نام انفجار اختصاص دهند. این امر می تواند بدون هیچ هزینه اضافی ارائه شود. در واقع با ارائه یک بافر که از طریق آن بتوان بار اضافی را بررسی کرد تا مشخص شود که آیا واقعی بوده است و به احتمال زیاد ادامه خواهد داشت یا خیر، مانع از تامین بیش از حد منابع میگردد. در این صورت، موارد بیشتری را می توان تهیه کرد تا منابع در آینده تضمین شوند.
هر یک از این تکنیک ها باید به طور قابل ملاحظه ای کارآمدتر از محیط های سازمانی باشند - مخصوصاً آنهایی که اندازه ثابتی برای مدیریت حداکثر بار مورد انتظار در طول عمر سرور انتخاب شده است. چنین سرورهایی ممکن است عمدتا بیکار باشند.
فضای ذخیره سازی
یک نمونه سرور ابری معمولاً دارای ذخیره سازی محلی است که از دیسک های محلی برای فایل های موقت ارائه میشود. این ذخیره سازی محلی فرّار است و هنگامی که نمونه سرور از بین می رود، آنها نیز از بین می روند. برای ذخیره سازی مداوم، معمولاً از یک سرویس مستقل استفاده میگردد که به هر دو صورت ذخیره سازی را برای نمونه ها فراهم میسازد.
File store:برای مثال فایل ها برروی NFS قرار دارند.
Block Store:مانند بلاک ها برروی iSCSI.
Object Store:مسئولیت آن برعهده API می باشد که اغلب برروی پروتکل HTTP هستند.
اینها به شبکه متصل هستند و هر دو زیرساخت شبکه و دستگاه های ذخیره سازی با مستاجران دیگر به اشتراک گذاشته می شوند. به همین دلایل، کارایی می تواند بسیار کمتر از دیسک های محلی قابل اعتماد باشد. هر دوی این تنظیمات در شکل زیر نشان داده شده است.
افزایش تأخیر برای دسترسی به ذخیره سازی شبکه معمولاً با استفاده از حافظه پنهان برای داده های مکرر دسترسی کاهش می یابد. برخی از سرویس های ذخیره سازی امکان خرید نرخ IOPS را در صورت نیاز به عملکرد مطمئن، ( IOPS AWS EBS Provisioned ) فراهم می سازند.
چندسانی
یونیکس یک سیستم عامل چند وظیفه ای است که برای رسیدگی به چندین کاربر و پردازش دسترسی به منابع یکسان طراحی شده است. افزوده های بعدی توسط BSD ، Solaris و Linux محدودیت منابع و کنترل هایی را برای به اشتراک گذاری عادلانه این منابع فراهم ساخته است.
رایانش ابری از این جهت متفاوت است که تمام نمونه های سیستم عامل در یک سیستم فیزیکی یکسان وجود دارند. هر مهمان سیستم عامل جداگانه خود را دارد: مهمانان نمیتوانند کاربران و فرآیندهای سایر مهمانان را در یک میزبان مشاهده کنند - این کار حتی اگر منابع فیزیکی یکسانی داشته باشند، نشت اطلاعات خواهد بود.
از آنجاییکه منابع بین مستاجران به اشتراک گذاشته می شود، مشکلات کارایی ممکن است توسط همسایگان پر سر و صدا ایجاد شود. به عنوان مثال، مهمان دیگری در همان میزبان ممکن است یک dump کامل از پایگاه داده را در طول حداکثر بارگذاری شما انجام دهد و بر روی دیسک ورودی/خروجی شبکه شما تداخل ایجاد کند. بدتر از آن، یک همسایه میتواند با اجرای کدهای مربوط به معیارهای خرد که عمداً منابع را اشباع می کند تا حد خود را پیدا کند، ارائه دهنده ابر را ارزیابی کند.
راهکارهایی برای حل این مشکل وجود دارد. تاثیرات چندسانی میتواند توسط مکانیزم مدیریت منابع کنترل شود: تنظیم کنترل منابع سیستم عامل که ایزوله سازی کارایی را فراهم میسازد (همچنین ایزوله سازی منابع نیز نامیده می شود). اینجاست که محدودیت ها یا اولویت های مستأجر برای استفاده از منابع سیستم اعمال می شود: پردازنده، حافظه، دیسک یا سیستم فایل ورودی و خروجی و توان شبکه. فناوری های ابری، همه این موارد را ارائه نکرده اند، به ویژه محدودیتهای ورودی/خروجی دیسک.
صرف نظر از محدودیت استفاده از منابع، رعایت نزاع چند منظوره میتواند به اپراتورهای ابری کمک کند تا محدودیتها را تنظیم کرده و مستاجران را در میزبان های موجود بهتر متعادل کنند. میزان مشاهده پذیری بستگی به نوع مجازی سازی دارد: مجازی سازی سیستم عامل یا مجازی سازی سخت افزاری.
نویسنده : شرکت مهندس پیشگان آزمون افزار یاس