دانلود با لینک مستقیم و پر سرعت .
این فایل در قالب ورد و قابل ویرایش در 100 صفحه می باشد.
فهرست
مقدمه ۱۲
فصل اول مبانی گرید ۱۴
Grid computing 1-1 چیست ؟ ۱۵
۲-۱ انواع Grid ۱۷
۳-۱ اهمیت Grid Computing ۱۸
۴-۱ ابزار قدرتمند Globus ۲۰
۵-۱ نگاهی بهاجزای Grid ۲۱
Grid 6-1 از دید برنامه نویسان ۲۷
۷-۱ پیچیدگیها ۳۰
۸-۱ مقدمهای بر محاسبات توری ۳۱
۹-۱ مسأله گرید ۳۳
۱۰-۱ گرید و مفاهیم دیگر از محاسبات توزیعی ۳۴
۱۱-۱ فواید محاسبات توری ۳۷
۱-۱۱-۱بهره برداری از منابع مورد استفاده ۳۷
۲-۱۱-۱ ظرفیت پردازنده موازی ۳۹
۳-۱۱-۱ منابع مجازی و سازمانهای مجازی ۴۰
۴-۱۱-۱دستیابی به منابع اضافی ۴۲
۵-۱۱-۱ توازن منابع ۴۴
۶-۱۱-۱ قابلیت اطمینان ۴۵
۷-۱۱-۱مدیریت ۴۷
۱۲-۱ استانداردها برای محیطهای گرید ۴۸
۱-۱۲-۱ استاندارد OGSI ۴۹
۲-۱۲-۱ استاندارد گرید FTP ۵۰
۳-۱۲-۱ استاندارد WSRF ۵۱
۴-۱۲-۱ استانداردهای مرتبط با سرویسهای وب ۵۱
فصل دوم امنیت و طراحی گرید ۵۲
-۲۱ معرفی امنیت گرید (گرید Security) ۵۳
۱-۱-۲ نیازهای امنیتی گرید ۵۳
۲-۱-۲ چالشهای امنیتی موجود در گرید ۵۴
۳-۱-۲ دامنههای امنیتی گرید ۵۴
۴-۱-۲ اصول امنیت ۵۶
۵-۱-۲ اصطلاحات مهم امنیت گرید ۵۸
۶-۱-۲ مجوز اعتبارسنجی ۶۱
۲-۲ طراحی گرید ۶۸
۱-۲-۲ اهداف راه حل ۶۹
۲-۲-۲ توپولوژی گرید ۷۳
۱-۲-۲-۲ Intra گرید ۷۴
۲-۲-۲-۲ Extra گرید ۷۶
۳-۲-۲-۲ Inter گرید ۷۷
۳-۲بررسی برخی از پروژههای گرید ۷۸
SETI @ Home 1-3-2 ۷۸
NAREGL2-3-2 ۷۸
۳-۳-۲ Floding@Home ۷۹
Google 4-3-2 ۸۰
BLAST 5-3-2 ۸۱
۴-۲ مقایسه ونتیجه گیری ۸۲
فصل سوم زمانبندی در گریدهای محاسباتی ۸۳
۱-۳ زمانبندی در گریدهای محاسباتی ۸۴
۲-۳ توابع هدف ۹۳
۳-۳ زمانبندی سیستم های توزیع شده و گرید ۹۶
منابع ۱۰۱
مقدمه
Computing Grid یا شبکههای متصل کامپیوتری مدل شبکهای جدیدی است که با استفاده از پردازشگرهای متصل به هم امکان انجامدادن عملیات حجیم محاسباتی را میسر میسازد. Gridها در واقع از منابع کامپیوترهای متصل بهشبکه استفاده میکنند و میتوانند با استفاده از برآیند نیروی این منابع، محاسبات بسیار پیچیده را بهراحتی انجام دهند. آنها این کار را با قطعه قطعه کردن این عملیات و سپردن هر قطعه بهکامپیوتری در شبکه انجام میدهند. به عنوان مثال وقتی شما از کامپیوترتان برای مدتی استفاده نمیکنید و کامپیوتر شما به اصطلاح بهوضعیت محافظ نمایشگر یا Screensaver میرود، از پردازشگر کامپیوتر شما هیچ استفادهای نمیشود. اما با استفاده از شبکههای Grid میتوان از حداکثر تواناییهای پردازشگرها استفاده نمود و برنامهای را در کامپیوتر قرار داد که وقتی از سیستم استفادهای نمیشود، این برنامه بتواند از نیروی بلااستفاده دستگاه بهره بگیرد و قسمتی از محاسبات بزرگ عملیاتی را انجام دهد. در این مقاله این پدیده در فناوری اطلاعات مورد بحث قرار میگیرد و اهمیت استفاده از این فناوری، پیچیدگیها، اجزای تشکیل دهنده و استانداردهای این مدل بررسی میشود و نشان داده خواهد شد که با استفاده از این مدل چگونه در وقت و زمان شما صرفهجویی میشود. گفتنی است در حال حاضر بزرگترین شبکه Grid جهان در خدمت پروژه SETI@home برای یافتن حیات هوشمند فرازمینی قرار دارد. امروزه فناوری جدیدی به نام Grid به عرصه ارتباطات الکترونیک قدم نهاده است که براساس آن با دانلود کردن یک محافظ نمایشگر مخصوص میتوانیم بهکامپیوترهای شخصی خود اجازه دهیم که وقتی از آن استفاده نمیکنیم، به شبکه جهانی متصل شوند و به سیستمهای بزرگ تحقیقاتی اجازه دهند از منابع آزاد و بلااستفاده سیستم ما استفاده نمایند.
Grid computing 1-1 چیست ؟
حدود ۳۳ سال از به وجود آمدن اینترنت میگذرد و از سال ۱۹۸۹ که وب پدید آمد، بیشتر مردم از آن استفاده میکنند و بهصورت بخشی از زندگی ایشان در آمده است. شاید علت این استفاده زیاد از اینترنت، استاندارد باز آن بوده است که امکان ارتباط کامپیوترهای مختلف را با یکدیگر مهیا میسازد. با استفاده از اینترنت میتوانید از هر کامپیوتری که بهآن متصل است، ایمیل بفرستید و شخصی در آن طرف دنیا با کامپیوتری کاملاً متفاوت با کامپیوتر شما، آن ایمیل را به راحتی بخواند و به شما ایمیل دیگری بفرستد. امروزه تقریباً تمامی شرکتها و سازمانهای بزرگ، برای تبادل اطلاعات و فرستادن ایمیل بهمشتریان خود از اینترنت استفاده میکنند. پرسش این است که آیا بهراستی امکاناتی که اینترنت در اختیار ما قرار میدهد، فقط در فرستادن ایمیل و داشتن وبسایت خلاصه میشود؟ آیا اینترنت امکان استفاده از منابع سختافزاری سیستمهای دیگر را نیز به ما میدهد؟ پس از اینترنت چه ابزار یا بستری خواهد آمد؟
امروزه فناوری جدیدی به نام Grid به عرصه ارتباطات قدم نهاده است که براساس آن با دانلودکردن یک محافظ نمایشگر مخصوص میتوانیم بهکامپیوترهای شخصی خود اجازه دهیم که وقتی از آن استفاده نمیکنیم، به شبکه جهانی متصل شوند و به سیستمهای بزرگ تحقیقاتی اجازه دهند از منابع آزاد و بلااستفاده سیستم ما استفاده نماید. کامپیوترهای امروزی مانند مغز انسان معمولا از بخش کوچکی از تواناییهای خود استفاده میکنند و اغلب به صورت غیرفعالند و منتظر اطلاعات ورودی میمانند. تصور کنید که اگر از منابع سختافزاری این همه کامپیوتر غیرفعال استفاده شود و همه در یک کامپیوتر جمع شود، چه دستگاه پرقدرتی خواهیم داشت. Grid Computing با کمک به اینترنت زمینهای را فراهم آورده است که بتوان با استفاده از آن، از منابع سختافزاری سیستمهای دیگر نیز استفاده نماییم.
ممکن است Grid برای افراد مختلف معانی متفاوتی داشته باشد، اما اگر بخواهیم تعریف سادهای از آن داشته باشیم، میتوانیم بگوییم Computing Grid در واقع بهشما اجازه میدهد با استفاده از منابع سیستمهای متصل به شبکه و ایجاد یک منبع بزرگ از سرویسها و امکانات این سیستمها، مرکزی بزرگ و قدرتمند به وجود آوریم که توانایی انجامدادن عملیات بسیار پیچیدهای را داشته باشد که یک سیستم بهتنهایی نمیتواند انجام دهد. بهنحوی که از دید استفادهکنندگان این سیستمهای بزرگ، این عملیات تنها از طریق یک سیستم انجام میشود.
Grid Computing در حقیقت نسل جدیدی از شبکههای توزیع یافته است و همانند اینترنت به کاربران خود اجازه میدهد فایلها را به اشتراک بگذارند. بهعلاوه، منابع مشترکی از اطلاعات را برای استفادهکنندگان فراهم میکند. با استفاده از این سیستمها میتوان منابع کامپیوترهای ناهمگون را بهاشتراک گذاشت. هدف اصلی Grid استفاده از این منابع مشترک مانند قدرت پردازنده، پهنای باند، پایگاه اطلاعاتی و در اختیار گذاردن آن برای کامپیوتر مرکزی است.
۲-۱ انواع Grid
سیستمهای Grid با توجه به نیازهای کاربران میتوانند در انواع مختلف مورداستفاده قرار گیرند. اغلب این سیستمها بر اساس نوع کاری که انجام میدهند، طبقه بندی میشوند. از سه نوع اصلی این سیستم میتوان از Gridهای اطلاعاتی، Gridهای جوینده منابع و Gridهای محاسباتی نام برد.
Gridهای اطلاعاتی یا Data Grid موظفند اطلاعات را ذخیره کنند و آنها را در اختیار کاربران قرار دهند. کاربران این سیستمها بدون آنکه از موقعیت جغرافیایی و مکانی این اطلاعات آگاه باشند، به اطلاعات دسترسی دارند. مثلاً تصور کنید که دو دانشگاه در دو سوی دنیا یکی در ایران و دیگری در انگلستان روی یک مطلب علمیمشترک تحقیق میکنند و هر یک از آنها اطلاعات خاص خود را ذخیره میکند و میخواهد دانشگاه دیگر نیز به برخی از این اطلاعات (نه تمامیآن) دسترسی داشته باشد. این دانشگاهها میتوانند از یک Data Grid استفاده کنند و اطلاعات خود را با ضریب امنیتی بالایی با هم بهاشتراک بگذارند.
در این نوع Grid دستگاههای متصل بهسیستم نیاز بهقدرت زیاد ندارند و فقط مسئول به اشتراک گذاشتن اطلاعات هستند. از طرف دیگر Grid های محاسباتی یا Grid Computational از آن جا که نیاز زیادی به قدرت پردازندهها دارند، باید از ماشینهایی با قدرت بسیار بالا استفاده نمایند.
یکی دیگر از انواع Gridها، سیستمهای جوینده منابع یا Scavenging Grid است. این سیستمها از تعداد زیادی کامپیوتر شخصی استفاده میکنند و بهصورت مداوم بهدنبال ظرفیتها، منابع آزاد و چرخه پردازنده (CPU cycle) کامپیوترهای متصل به Grid هستند و از این منابع استفاده مینمایند. البته صاحبان این کامپیوترهای شخصی باید قبلاً اجازه استفاده از منابع بدون استفاده خود را بدهند.
۳-۱ اهمیت Grid Computing
تقریبا در همه سازمانها و شرکتهای بزرگ تعدادی کامپیوتر بدون استفاده وجود دارد. مثلاً سرورهای یونیکس از تقریباً ده تا بیست درصد از ظرفیت حقیقی خود استفاده میکنند و کامپیوترهای شخصی حدوداً از ۹۵ درصد از ظرفیت خود اصلاً استفاده نمیکنند. با استفاده از Grid Computing در یک سازمان یا شرکت بزرگ میتوان از منابع بلااستفاده کامپیوترهای سازمان کمال استفاده را برد و سرعت پردازش اطلاعات در سیستمهایی که با کمبود حافظه مواجهند را جبران نمود. از طرف دیگر، سرعت نرمافزارهایی که از این منبع بزرگ سختافزاری استفاده میکنند، بسیار بالاتر خواهد بود و در نتیجه میتوانیم به فکر درست کردن نرمافزارهایی با قابلیتهای بالاتر باشیم و منابع بیشتری را در اختیار استفادهکنندگان قرار دهیم.
Grid Computing میتواند مزایای زیادی برای مدیران و برنامهنویسان داشته باشد. مثلاً با آن میتوان برنامههایی که نیاز بهحافظه زیادی دارند را اجرا نمود و به اطلاعات، دسترسی آسانتری پیدا کرد. اصولا ًGrid Computingمیتواند بهسازمانها و شرکتهای بزرگی که سرمایه هنگفتی را در IT هزینه کردهاند، کمک کند از سیستمهای خود حداکثر استفاده را ببرند.
فناوریهای Grid در واقع میتوانند از منابع و سیستمهای غیرمتمرکز پشتیبانی کنند و امکان ارتباط سیستمها را با هم فراهم سازند. وقتی برای اولین بار فناوری Grid ابداع شد، هدف آن تنها بهاشتراک گذاشتن منابع سیستم و در اختیارداشتن سیستمیقدرتمند بود و بهطور کلی بیشتر در اختیار مؤسسات تحقیقاتی قرار داشت. اما امروزه از Grid توقع بیشتری میرود و اهمیت بیشتری پیدا کرده است؛ بهویژه در تجارت الکترونیک و سیستمهای تجاری غیرمتمرکز و توزیعیافته. به عنوان نمونه، مدل تجارت الکترونیک B2B را در نظر بگیرید که دو مؤسسه تجاری اطلاعات خود را از طریق اینترنت با هم مبادله میکنند. Grid نیز میتواند کاری مشابه را انجام دهد و دو یا چند سیستم تجاری را بههم مرتبط سازد. بهطوری که بتوانند اطلاعات خود را بهاشتراک بگذارند. فناوری Grid همچنین میتواند راهحل مناسبی برای افزایش دسترسی، قابلیت اطمینان و امنیت سیستمهای غیرمتمرکز نیز باشد.
۴-۱ ابزار قدرتمند Globus
یکی از قدرتمندترین ابزارهای ایجاد، کنترل و مدیریت سیستمهای Grid، ابزار Globus است. پروژه Globus حدود سال ۲۰۰۳ بهصورت عملی درآمد. این پروژه حاصل تلاش مشترک محققان و برنامهنویسان Grid در سرتاسر دنیاست که بر حول چهار محور بنا شده است: تحقیق، ابزارهای نرمافزاری، آزمون و نرمافزارها. این ابزار در نسخه ۲٫۲ خود خدمات بسیاری بهمدیران سیستمهای Grid ارائه میکند که میتوان به امنیت، مدیریت منابع و مدیریت دقیق اطلاعات اشاره کرد. Globus با در اختیار گذاشتن APIها و فایلهای Header زبان C برای ساختن و کامپایل برنامهها به برنامهنویسان اجازه میدهد سیستمهای خود را به Grid متصل نمایند و به مدیران امکان میدهد منابع متصل به Grid را بهراحتی مدیریت کنند.
اضافه براین، Globus با در اختیار گذاشتن Componentهایی مخصوص، کار مدیران Grid را آسانتر میکند. مثلاًGlobus یک ابزار بسیار کارا بهنام Commodity Grid) COG) که زبانهای برنامهنویسی مانند Python، جاوا و فناوریهای روز مانند سرویسهای وب، کوربا و RMI را میشناسد و میتواند در دو بخش تهیه نرمافزارهای سازگار با Grid و مدیریت سیستمهای Grid به ما کمک کند. البته نسخه ۲٫۲ ابزار Globus در برخی موارد ضعفهایی نیز دارد. این نسخه از سرویسهایی مثل مدیریت Life-Cycle یا چرخه زندگی نرمافزار و سیستمهای ذخیره و بازیابی پشتیبانی نمیکند. البته نسخه جدید Globus یعنی نسخه ۳ از آن جا که سعی داشته است با معماری باز سرویسهای Grid یا همان the Open Grid Services Architecture) OGSA) همخوانی داشته باشد، توانستهاست بسیاری از نقاط ضعف نسخه قبلی را رفع کند.
۵-۱ نگاهی بهاجزای Grid
اجزای تشکیل دهنده grid عبارتند از:
- رابط کاربر
- اجزای امنیت
- مدیریت کنترل کار سیستم (Workload management)
- زمانبند (Scheduler)
- مدیریت اطلاعات (Data Management)
- مدیریت منابع (Resource management)
در این قسمت بهصورت مختصر در مورد هر یک از این اجزا توضیح داده میشود. دسترسی به اطلاعات در Grid اهمیت شایانی دارد و رابط کاربر یا User Interface این مسئولیت مهم را عهدهدار است. رابط کاربر میتواند یا در برنامهای که کاربر از آن مستقیما استفاده میکند یا در ابزارهای مدیریتی Grid که مورد استفاده مدیر سیستم است، نقش ایفا کند. همانطور که شما برای استفاده از برق فقط وسیله برقی خود را به پریز برق متصل میکنید و لازم نیست از مکان منبع یا منابع اصلی این قدرت اطلاعی داشته باشید، استفاده کننده سیستم Grid نیز الزاماً نباید از پیچیدگیهای داخل این سیستمها مطلع باشد. مثال دیگر اینکه، شما از مرورگر وب جهت استفاده از اینترنت استفاده میکنید؛ بدون اینکه از مکان سرور وب سایت اطلاعی داشته باشید و تنها با وارد کردن آدرس سایت موردنظر، وب سایت آن در مرورگر نمایش داده میشود. اینترفیس Grid نیز باید مانند مرورگر باشد. یعنی استفادهکننده Grid نیز از پیچیدگیهای این سیستم اطلاعاتی ندارد و فقط با ورود یک پارامتر ورودی، یک خروجی دریافت میکند
کامپیوترها در Grid به شبکه متصلند. این سیستمها همچنین میتوانند حاوی اطلاعات بسیار مهم و حساسی باشند. در نتیجه امنیت را میتوان یکی از مهمترین اجزایی این سیستمها دانست که خود حاوی اجزای فرعی مانند احراز هویت (authentication)، اختیارات (authorization) و رمزدهی (encryption) است.
مثلاً ابزار Globus حاوی یک Component به نام Grid Security Infrastructure( GSI) یا ساختار زیر بنایی امنیت Grid است که مسئولیت امنیت در محیط را برعهده دارد. GSI حاوی یک SSL باز است. در نتیجه وقتی یک استفاده کننده یک بار بهصورت مجاز به سیستم راه پیدا کرد، یک Proxy Certificate برای کاربر به وجود میآید و برای آن کاربر در نظر گرفته میشود. GSI در درگاه Grid قرار دارد.
استفاده کننده از یک سیستم Grid باید از منابع موجود و قابل دسترس در سیستم اطلاع داشته باشد. مدیریت کنترل کار سیستم یا Workload Management میتواند این کار را به راحتی انجام دهد. درخواستکننده سرویس میتواند با ارتباط با این قسمت از منابع آزاد سیستم، ظرفیت هر منبع و موقعیت آنها اطلاع حاصل نماید. در سیستمهای Grid که توسط Globus هدایت میشوند، زمانی که یک استفاده کننده شناسایی شد و برنامه موردنظر آن کاربر اجرا گردید، با توجه به نوع نرمافزار و پارامترهای ورودی کاربر، سیستم Grid بهدنبال منابع آزاد موجود در شبکه میگردد.
این وظیفه اغلب به عهده Broker ها است. Globus بهصورت عادی، Broker ندارند، اما از سرویسهایی مانند Grid Information Service) GIS) و Monitoring and Discovery Service( MDS) را پشتیبانی میکنند که بهسیستم اطلاع میدهند کدام منبع یا منابع قادرند منابع خود را در اختیار بگذارند. شکل زیر موقعیت این سرویسها را نمایش میدهد.
یکی دیگر از اجزایی که در سیستمهای Grid بسیار اهمیت دارد، زمانبند یا Scheduler است. در این سیستمها از آن جایی که باید هر کاری را کامپیوتر مشخصی بهعهده بگیرد و هر کامپیوتر باید مدت زمانی را در اختیار Grid قرار دهد، سیستم نیاز به یک زمانبند دارد. این زمانبند میتواند بسیار ساده باشد، اما اکثر زمانبندها باید بتوانند کارها را اولویتبندی کنند و سیستم را کنترل نمایند. در ابزار Globus زمانبندهایی با قابلیت بالا وجود ندارند، اما تعدادی سازوکار زمانبند وجود دارد که کار زمانبندهای دقیق را تا حدی انجام میدهد. شکل ۴ موقعیت زمانبندها را در Grid نشان میدهد.
جزء دیگر Gridها، مدیریت اطلاعات این سیستمها است که وظیفه ذخیرهسازی اطلاعات را در سیستم به عهده دارد. این بخش وظیفه محافظت از اطلاعات و جابهجایی این اطلاعات در تمامیدستگاههای متصل به Grid را عهدهدار است. جابهجایی و انتقال اطلاعات کار بسیار مشکلی است و اطلاعات باید از کانالی مطمئن منتقل شود.
با استفاده از ابزار Globus و بخش مدیریت اطلاعات این ابزار، میتوان محیطی امن برای انتقال این اطلاعات به وجود آورد. این قسمت از Globus به Grid Access to Secondary Storage( GASS) معروف است که امکاناتی مانندGridFTP را دربردارد که مانند FTP است، اما امکانات امنیتی مانند GSI را نیز دربرمیگیرد. در نتیجه وقتی یک کاربرProxy Certificate را داشتهباشد، میتواند از GridFTP جهت انتقال فایلها استفاده کند؛ بدون آن که نیاز داشته باشد دوباره به سیستم وارد شود. شکل زیر موقعیت GASS را در Grid نشان میدهد.
از دیگر بخشهای مهم Grid، بخش مدیریت منابع است که به Grid Resource Allocation Manager) GRAM) شهرت دارد. این بخش وظایف هر دستگاه را مشخص میکند و باعث هماهنگی دستگاههای متصل به شبکه در انجامدادن امور محوله است. شکل زیر محل قرار گرفتن GRAM را نشان میدهد.
Grid 6-1 از دید برنامه نویسان