1-1 مدیریت منابع و زمانبندی در گرید24
جهت حل این مسایل،گرید یک بستر محاسباتی/ارتباطی ارائه می کند که در آن،قابلیت ها و امکانات و کیفیت سرویس کلیه منابع و بالاخص منابع محاسباتی در کنار یکدیگر مجتمع شده است و دیدی از یک ماشین مجازی بسیار قدرتمند در اختیار برنامه های کاربردی جهت اجرا قرار می گیرد.
ذکر شد که گرید طبق تعریف،هیچ محدودیتی از نظر محدوده جغرافیایی تحت پوشش ندارند بنابراین منابع در دسترس یک گرید،به لحاظ جغرافیایی توزیع شده هستند و حتی ممکن است ناهمگن نیز باشند.منابع در سایتهای مختلف قرار دارند و متعلق به سازمانها و نهادهای متفاوت هستند و هر سازمان ،سیاست های مدیریتی خود را بر نحوه به اشتراک گذاری و دسترسی به منابعش اعمال می کند.
از طرف دیگر،همانطوری که گفته شد،محیط گرید یک محیط اختیاری و پویاست،به این معنا که بر خلاف کلاسترها که معمولاً نرخ تعیین منابع در دسترس،در آنها کم است،در سیستمهای گرید،ماشینها و به طور کلی،کلیه منابع در دسترس گرید در طول زمان ممکن است تغییر کنند.
مشاهده می شود که محیط گرید،به لحاظ منابع تحت پوشش،محیطی بسیار پیچیده است.فاصله های جغرافیایی زیاد منابع توزیع شده،معماریها و سیستم عاملهای متفاوت ماشینهای مختلف،تفاوت ها در روش های دستیابی به هر یک از منابع،متغیر بودن محیط به لحاظ منابع دردسترس و در نهایت وجود سیاست های مختلف در دسترسی به منابع،همه و همه مسائل پیچیده ای هستند که گرید باید با آنها دست و پنجه نرم کند.کاملاً واضح است مدیریت موثر منابع،امری حیاتی در سیستمهای گرید محسوب می شود و به علاوه،زمانبندی باید به نحو احسن در این سیستم ها انجام شود تا از یک طرف کاربران و برنامه های کاربردی به بهترین نحو سرویس دریافت کنند و از طرف دیگر از کلیه منابع گرید،بهره برداری بهینه و حداکثر صورت گیرد.در واقع می توان گفت،کارآمدی هر سیستم گرید،به میزان زیادی در گرو کارآیی و موثر بودن روش های مدیریت منابع و نیز سیاست ها و مکانیزمهای مورد استفاده در اجرای وظایف در این محیط می باشد.زیرا عمل تقسیم بار در سیستم های گرید،تا چه حد حیاتی و بحرانی است،زیرا استفاده موثر از تقسیم بار در سیستم های گرید،تا حد زیادی حیاتی و بحرانی است،زیرا استفاده موثر از تقسیم بار،هم به نفع مالکان ماشینها خواهد بود و هم به نفع مشتریان منابع.
1-2کلیات مدیریت و زمانبندی در سیستم های گرید24
1-2-1 انواع منابع در محیط گرید
محیط گرید،مجموعه ای متشکل از ماشینهای محاسباتی است که گاهی عناوینی مانند،منبع،عضو،پردازشگر گرید،واگذار کننده(کارها)و میزبان به این ماشینها داده می شود.تمامی این ماشینها در واقع منابع گرید را تشکیل می دهند.دسترسی به برخی ماشینها ممکن است توسط همه کاربران امکان پذیر باشد،اما ممکن است ماشینهایی نیز وجود داشته باشند که دسترسی به آنها،قیود و شرایط و محدودیت های خاص خود را داشته باشد.
1-2-1-1منابع محاسباتی24
مهمترین منبع در هر سیستم گرید،منابع محاسباتی هستند.استفاده از یک منبع محاسباتی،به معنای استفاده از سیکلهای پردازنده ماشینهای مختلف در گرید،جهت اجرای برنامه های کاربردی است.پردازنده های ماشینهای مختلف،ممکن است به لحاظ سرعت،معماری و فاکتورهای مرتبط دیگری مانند حافظه اصلی،نحوه اتصالات با یکدیگر(در کامپیوتر های چند پردازنده)و غیره با یکدیگر تفاوت داشته باشند.
1-2-1-2 منابع ذخیره سازی
بعد از منابع محاسباتی،پرکاربردترین منابع مورد استفاده در محیط گرید را منابع ذخیره سازی داده ها تشکیل می دهند.یک نوع خاص از گرید،اصطلاحاً گرید داده است که توسط آن،می توان انبار داده مجازی با ظرفیت بسیار بالا داشت(با بهره گرفتن از تجمیع منابع ذخیره سازی ماشینهای توزیع شده مختلف به صورت شفاف جهت ارائه یک انبار داده یکپارچه و منسجم و تکی مجازی).این انبار داده مجازی و غول پیکر،به صورت منطقی،کلیه داده های روی ماشینهای توزیع شده را مجتمع می کند و گرید داده،دسترسی یکسان(صرف نظر از معماری،سیستم عامل و سیستم مدیریت بانک اطلاعاتی ماشینهای توزیع شده)و کاملاً شفاف به داده و اطلاعات فراهم می کند.
1-2-1-3 منابع ارتباطی
1-3 نرم افزارها و مجوزهای نرم افزاری24
ممکن است بر روی برخی ماشینها در هر گرید،نرم افزارهای گرانی نصب شده باشند که نصب آنها بر روی تمامی ماشینهای گرید،به دلیل پر هزینه بودن،امکان پذیر نباشد.با بهره گرفتن از یک گرید،می توان کارهایی را که احتیاج به این نرم افزارها دارند را به سمت ماشینهای دارنده آنها ارسال کرد تا بر روی آن ماشین اجرا گردند.زمانی که هزینه محوزهای نرم افزارها،قابل توجه باشد،این رهیافت،می تواند به مقدار زیادی از مخارج سازمان بکاهد و در هزینه ها،صرفه جویی ایجاد کند.
برخی از مجوزهای نرم افزاری،به این صورت هستند که نرم افزار را بتوان بر روی تمامی ماشینهای گرید نصب کرد،اما تعداد محدود و تعریف شده ای از کاربران،امکان استفاده همزمان از آن(بر روی ماشینهای مختلف)را دارند.در این نرم افزارها،یک سیستم مدیریت مجوز وجود دارد که در طول زمان مانیتور می کند در هر لحظه چند کپی از برنامه در حال اجرا در شبکه هستند و از اینکه تعداد نسخه های در حال اجرا،از عدد تعریف شده در مجوز بیشتر شود،جلوگیری می کند.در چنین سناریویی،زمانبندهای گرید می توانند طوری تنظیم شوند که چنین مجوزهای نرم افزاری را در محاسبات خود لحاظ کند و با در نظر گرفتن اولویت برنامه های کاربردیکه نیاز به اجرای این برنامه های مجوز دار،دارندو با اعمال دیگر سیاست های لازم،امکان استفاده حساب شده از مجوز نرم افزارها و متعادل سازی اجرای برنامه ها فرآهم می گردد.
1-4سایر منابع:تجهیزات خاص،ظرفیت ها،سیستم عاملها،معماریها و منابع مصنوعی24
1-5 بررسی محیط گرید به لحاظ مدیریت و زمانبندی24
محیط گرید،محیط پیچیده ای است و انواع آن منابع با سیاست های مختلف و در فواصل جغرافیایی دور از یکدیگر ممکن است قرار داشته باشند.مدیریت منابع در چنین محیطی بسایر پیچیده و زمانبندی بهینه در آن کاری بسیار دشوار است.به همین دلیل است که تقریباً مهمترین بحث در سیستمهای گرید،مدیریت بهینه منابع تحت پوشش و زمانبندی کارها است.بسایری از مباحث تحقیقاتی در حوزه گرید،امروزه در زمینه سیستمها،روشها و الگوریتمهای مدیریت منابع و زمانبندی در شبکه های گرید ارائه می شوند.
برای اینکه تصویر دقیق تری از محیط یک گرید بدهیم،در ابتدا لازم است ماهیت خود برنامه های کاربردی و نیز کارهایی که در محیط گرید اجرا می شوند،شرح داده شود.تا زمانی که ماهیت برنامه های کاربردی توزیع شده و کارها در گرید بررسی نشوند،نمی توان درک درستی نسبت به محیط از دیدگاه مدیریت منابع و زمانبندی داشت.از سوی دیگر،در واقع درست است که می گوییم کاربران و برنامه های کاربردی از منابع گرید استفاده می کنند،اما در نهایت این برنامه های کاربردی هستند که از منابع گرید استفاده می کنند و کاربر از طریق این برنامه کاربردی است که منابع گرید را در اختیار می گیرد.نکته دیگری که باید ذکر کرد این است که،گاهاً دو کلمه برنامه کاربردی و کار اشتباهاً به جای یکدیگر به کار برده می شوند.اما خصوصاً در محیط گرید،باید تفاوت اساسی میان آنها قائل شد.
1-6 نگاهی دقیق به برنامه های کاربردی و کارها در محیط گرید24
اگرچه ممکن است طیف وسیعی از منابع مختلف در گرید میان کاربران به اشتراک گذارده شده باشد،اما دسترسی به این منابع از طریق اجرای یک برنامه کاربردی یا یک کار خواهد بود.گاهی دو اصطلاح برنامه کاربردی و کار اشتباهاً به جای یکدیگر به کار برده می شوند.در سیستمهای گرید اصطلاح برنامه کاربردی به بالاترین واحد پردازشی گفته می شود که توسط کاربران جهت اجرا به گرید واگذار می گردد.هر برنامه کاربردی ممکن است به یک یا چند کار شکسته شود و سپس این کار(کارها)به روی ماشین(ماشینهای)پردازشگر توسط سرویس دهنده گرید جهت اجرا ارسال(واگذار)خواهد شد.پس در عمل برنامه کاربردی است که جهت اجرا توسط کاربر به گرید واگذار می شود،اما با شکسته شدن یک برنامه کاربردی به یک یا چند کار،در عمل،کار است که توسط سرویس دهنده گرید به ماشین پردازشگر جهت اجرا واگذار می گردد و کار است که بر روی ماشین پردازشگر در عمل اجرا خواهد شد.زمانبندی نیز در مورد کارها صورت می گیرد.
برنامه کاربردی را بالاترین سطح یک برنامه در گرید می دانیم که ممکن است به تعدادی کار توزیع شده ویا موازی شکسته شود.بنابراین،هر برنامه کاربردی به صورت مجموعه ای از کارها طوری سازماندهی می شود که کارها بتوانند به صورت توزیع شده ویا موازی بر روی ماشینهای مختلف اجرا شوند.برخی سیستمهای گرید این امکان را می دهند که کارها بتوانند در طول اجرا با یکدیگر تعاملهای چند باره آسنکرون یا سنکرون داشته باشند و مرتباً میان یکدیگر در طول اجرا داده هایی را رد و بدل کنند،اما گاهی اوقات سیستم گرید صرفاً این امکان را دارد که خروجی نهایی یک کار از یک برنامه کاربردی،بتواند ورودی کاردیگری از همان برنامه کاربردی باشد(به نوعی تعامل یک باره آن هم صرفاًدر انتها و خاتمه اجرای یک کار)و سپس با بررسی وابستگی کارها به یکدیگر،آنها را به ترتیبی اجرا می کنند که چنین اتفاقی بیافتد.با بررسی دقیق کارها،می توان کارهایی را که مستقل از یکدیگر هستند به صورت همزمان و موازی اجرا کرد ولی کارهایی که به نتایج یکدیگر نیازمندند،باید به ترتیب لازم،اجرا گردند.
واحد کاری را یک واحد اجرایی می دانیم که عملاً به یک ماشین پردازشگر جهت اجرا واگذار خواهد شد و همانطوری که گفتیم،یک واحد کاری تمامی اطلاعاتی را که جهت اجرای یک برنامه لازم است در بر می گیرد:خود برنامه اجرایی(یا اشاره گری به محل نگهداری ان بر روی یک محل مشترک)،کلیه داده های ورودی مورد نیاز برنامه(یا
خرید اینترنتی فایل کامل :
اشاره گرهایی به محل داده های ورودی)،اطلاعاتی در مورد اینکه خروجی های برنامه چگونه و کجا باید ذخیره شوند،لیست کلیه نیازمندیهایی(منابع)که برای اجرای برنامه لازم است(پارامترهایی مانند معماری،سیستم عامل،مولفه های نرم افزاری،پردازنده،حافظه اصلی،ظرفیت دیسک سخت،پهنای باند و…)،پارامترهای کیفیت سرویس،اولویت برنامه و…همه و همه مواردی هستند که در واحد کاری وجود دارند.گاهی اوقات یک برنامه کاربردی در واحد کاری قرار می گیرد و توسط کاربر به زمانبند گرید ارسال می شود.در این حالت واحد کاری،حاوی اطلاعات کلیه زیربرنامه (کارها)و بیانگر نحوه ارتباط این کارها به یکدیگر و کلیه مواردی است که جهت اجرای توزیع شده تمامی کارها لازم است.گاهی منظور از واحد کاری،مفهومی سطح پایین تر از برنامه کاربردی است و در واقع یک کار به همراه کلیه اطلاعات مورد نیاز است که باید در نهایت بر روی ماشین پردازشگر اجرا شود و اسن واحد کاری،توسط زمانبند گرید به ماشین پردازشگر ارسال می شود.
کارها واحدهای اجرایی هستند که در نهایت بر روی یک ماشین پردازشگر گرید اجرا خواهند شد.آنها ممکن است محاسباتی انجام دهند،داده ها را از مکانی و شکلی به مکانی و شکل دیگر منتقل کنند،داده هایی را جمع آوری کنند،ارتباطاتی با سایر کارها در گرید یا با دنیای خارج گرید برقرار کنند،دستوراتی را بر روی سایر ماشینها اجرا و الی آخر.برخی از سیستمهای گرید،این امکان را می دهند که یک کار نیز بتواند به نوبه خود به چند زیر-کار(subjob)شکسته شود.به شکل زیر توجه کنید.
Application |
job |
subject |
job |
job |
job |
job |
subject |
subject |
subject |
subject |
subject |
subject |
subject |
subject |
نمای یک برنامه کاربردی گرید که به صورت مجموعه ای از کارها و زیر کارها سازماندهی شده است.24
ذکر چند نکته در مورد برنامه های کاربردی گرید ضروری است:
1.برخی سیستمهای گرید،صرفاً از سازماندهی و شکستن دو سطحی پشتیبانی می کنند:برنامه کاربردی می تواند به تعدادی کار شکسته شود و هر کار نیز ممکن به تعدادی زیر-کار شکسته شود.اما برخی دیگر از سیستمها امکان شکستن در بیش از دو سطح را می دهند.به این طریق برنامه کاربردی می تواند به تعدادی کار شکسته شود(کار در این حالت موجودیت اجرایی نیست).هر کار ممکن است به تعدادی کار ویا task شکسته شود و در نهایت برگهای درخت،taskها هستند که برنامه های اجرایی هستند که به ماشینهای پردازشگر جهت اجرا واگذار خواهند شد.
اکنون که دید دقیقی نسبت به یک برنامه کاربردی در گرید به دست آوردیم،مشخص می شود زمانبندی و اجرای چنین برنامه هایی،خصوصاً در گرید های گسترده باچه مشکلات و معضلاتی روبرو است.به طور مثال،در سیستمهای گریدی که امکان ارتباط چند باره سنکرون وآسنکرون به کارهای یک برنامه کاربردی را می دهند،باید دقت شود کارهایی که نیاز به تعامل با یکدیگر دارند،به ماشینهایی که از لحاظ جغرافیایی فاصله زیادی دارند و یا بستر ارتباطی شبکه ای ضعیف میان آنها وجود دارد،واگذار نشوند.در سیستمهای گریدی که امکان ارتباطات فوق را به کارها نمی دهند ولی در عوض وابستگیهای آنها را در نظر می گیرند و خروجی های آنها را در اختیار یکدیگر می گذارند،زمانبند گرید باید با رعایت ترتیب لازم،کارها را اجرا کند.به علاوه باید کارهای مستقلی را که می توانند با یکدیگر موازی اجرا شوند شناسایی کند تا برنامه در بهترین حالت خود اجرا شود و نیز اگر خروجی یک کار،ورودی کار دیگر است،منطقی این است که هر دو به ترتیب بر روی یک ماشین پردازشگر واحد اجرا شوند تا از نقل و انتقالات بی مورد داده های احتمالاً حجیم،در سیستم تا حد ممکن جلوگیری شود.نکته دیگر این که،در زمانبندیها،باید دقت شود اگر داده های ورودی یک کار،به همراه خود کار در واحد کاری قرار نگرفته اند(صرفاً اشاره گرهایی به محل آنها در واحد کاری آمده است)،حتی الامکان باید کار بر روی ماشین نزدیک(به لحاظ سرعت و ارتباطات شبکه ای)به ماشین نگهداری کننده داده های ورودی اجرا شود.همین مطلب در مورد داده های خروجی زمانی که باید بر روی یک ماشین راه دور ذخیره شوند نیز صدق می کند.در واقع در تشخیص بهترین ماشین جهت واگذاری یک کار،به علاوه بر سرعت پردازنده،میزان بار روی ماشین پردازشگر و…باید چنین مواردی نیز کاملاً توسط زمانبند لحاظ شود.با ذکر تمامی نکات فوق،می توان دریافت زمانبندی و مدیریت منابع در محیط گرید،چه کار دشواری(مثلاً در قیاس با سیستمهای کلاستر عادی)است.