CloudSim یک فریم ورک شبیه سازی است که به شما امکان می دهد عملکرد یک سیستم را مدلسازی و شبیه سازی کنید . با استفاده است CloudSim طراحان می توانند بر روی مسائل  معینی از طراحی سیستم که می خواهند در مورد آن بررسی‌های انجام دهند متمرکز شوند ، بدون آنکه نگران مسائل مرتبط با ساختارها و سرویس‌های مبتنی بر ابر(Cloud)  باشند .

پیشرفت های دنیای محاسبات قابلیت های فراوانی را فراهم کرده است ،اکنون نگرانی اصلی طراحان میزبانی برنامه هایی است که  طراحی می‌کنند ، به این معنی که منابعی را تامین کنند که از عهده ترافیک و پهنای باند مورد نیاز برایند.با ظهور ابر ،مدیریت و میزبانی منابع برنامه ها بسیار ساده تر انعطاف پذیر تر و کم هزینه تر شده است چراکه ارائه دهندگان سرویس های ابری, منابع را دائما بر اساس میزان استفاده کاربران تنظیم می کنند .محاسبات ابری در جایی که نیاز کاربران به منابع دائما در حال تغییر است ، بهترین گزینه ممکن است .

چرا شبیه سازی برای محیط ابری مسئله مهمی است ؟

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

CloudSim ابزاری برای مدل سازی و شبیه سازی محیط های محاسبات ابری است که قرار است این معضلات را حل کند و هزینه ها را کاهش دهد .CloudSim نوعی مدل سازی از عملکردهای سیستمهای رایانش ابری را در اختیار ما قرار میدهد .شبیه سازی محیط های ابری و برنامه ها برای ارزیابی عملکرد آنها می‌تواند دید خوبی درباره چنین محیط های پویا ، توزیع شده و مقیاس پذیر به ما دهد.

مهمترین مزیت های شبیه سازی را در زیر لیست کرده ام :

  • انعطاف پذیری در تنظیمات
  • سهولت استفاده و شخصی سازی
  • کاهش هزینه

معرفی CloudSim

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

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

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

خلاصه اینکه با استفاده از CloudSim ، سازمانها ، دیتاسنتر ها و برنامه نویسان می توانند عمل کرد برنامه های طراحی شده خودشان را در یک محیط کنترل شده تست کنند .

معماری CloudSim

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

لایه user code قابلیت های نظیر تعداد ماشینها، مشخصات آنها ، برنامه ها ماشین های مجازی ، تعداد کاربران ، نوع برنامه ها و سیاست های زمانبندی را به شما ارائه می دهد .



اجزای اصلی فریم ورک CloudSim

Regions:مناطق جغرافیایی که ارائه دهندگان سرویس‌های ابری قرار است منابع خودشان را به کاربران ارائه می دهد را مدل سازی می کند. در تحلیل های ابری ۶ منطقه وجود دارد که متناظر با ۶ قاره است .

Data centers:  زیربنای سرویس‌های ارائه شده توسط ارائه دهندگان مختلف خدمات ابری را مدل سازی می کند .

Data centre characteristics:اطلاعات مربوط به تنظیمات منابع دیتا سنتر را مدل سازی می کند .

Hosts:منابع فیزیکی ( محاسباتی یا ذخیره) را مدل سازی می کند.

The user base: گروهی از کاربران را به عنوان یک واحد در شبیه سازی ، مدل سازی می کند و وظیفه اصلی آن ایجاد ترافیک برای شبیه سازی است .

Cloudlet : مجموعه درخواست های کاربران را تعیین می کند .شامل ID, نام کاربری که نتایج باید برای ارسال شود , سایز دستورات اجرایی , فایل های ورودی و خروجی .این بخش خدمات برنامه مبتنی بر ابر را مدل سازی می کند . CloudSim  پیچیدگی یک برنامه را به نیازمندیهای محاسباتی آن دسته بندی و تقسیم بندی می کند .

Service broker:تعیین کند که کدام دیتا سنتر باید برای ارائه خدمات به درخواستهای کاربران انتخاب شود

VMM allocation policy:سیاست های تامین منابع را در رابطه با این که چطور ماشین های مجازی را به میزبان ها تخصیص دهیم مدل سازی می کند

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

چگونه از CloudSim  در Eclipse  استفاده کنیم

CloudSim  به زبان جاوا نوشته شده است .کافیست از اصول برنامه نویسی زبان جاوا و قواعدی را در رابطه با محاسبات ابری بلد باشید تا بتوانید از CloudSim  استفاده کنید .دقت کنید که CloudSim  یک کتابخانه است و بنا اورین نیاز به نصب ندارد .به طور معمول فایل کتابخانه دانلود شده را در هر پوشه ای که مایل هستید از حالت فشرده خارج کنید و آن را به  Java classpath  اضافه کنید .البته قبل از آن باید بررسی کنید که آیا جاوا بر روی سیستم شما نصب شده است یا نه .

برای استفاده از CloudSim  در Eclipse :

  1. فایل های قابل نصب CloudSim   را از اینجا دانلود کنید و ان را از حالت فشرده خارج کنید
  2. Eclipse را باز کنید
  3. یک پروژه جاوا جدید ایجاد کنید :File -> New
  4. یک پروژه CloudSim  که از حالت فشرده درآمده است را در پروژه جدید جاوا ایمپورت کنید .
  5. گام اول راه اندازی پکیج CloudSim  توسط کتابخانه آن است . به صورت زیر عمل کنید :
    
    برای نمایش کدها کلیک کنید
                          
  6. دیتاسنترها در  CloudSim ارائه دهندگان خدمات هستند ،از این رو ایجاد دیتاسنتر گام دوم است .برای ایجاد یک دیتا سنتر نیاز به شی DatacenterCharacteristics  دارید که این شی ویژگی های یک دیتا سنتر نظیر معماری ، سیستم عامل ، لیست ماشین ها ، خط مشی تخصیص  شامل زمان ، فضا ، موقعیت زمانی و هزینه می‌شود را ذخیره می‌کند .

برای نمایش کدها کلیک کنید
                      
  1. گام سوم ایجاد یک بروکر است :

برای نمایش کدها کلیک کنید
                      
  1. گام چهارم ایجاد یک ID واحد برای ماشین مجازی، ID برای مالک ماشین مجازی،  تعداد CPU ها ، مقدار RAM، مقدار پهنای باند مقدار فضای ذخیره سازی, مانیتور ماشین مجازی و سیاست زمانبندی است .

برای نمایش کدها کلیک کنید
                      

9.لیست ماشین مجازی را به بروکر  بدهید :


برای نمایش کدها کلیک کنید
                      

10.با استفاده از طول، اندازه فایل، اندازه خروجی و مدل به کار رفته یک cloudlet  ایجاد کنید :


برای نمایش کدها کلیک کنید
                      

11.لیست cloudlet را  به بروکر بدهید :


برای نمایش کدها کلیک کنید
                      

12.شبیه سازی را آغاز کنید :


برای نمایش کدها کلیک کنید
                      


برای نمایش کدها کلیک کنید
                      


برچسب ها: