انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

 پایان نامه 

پایان نامه‏ کامپیوتر

انجام پایان نامه‏ ارشد کامپیوتر

در اين مقاله قصد داريم پس از اشاره مختصر به سير تحولات گوگل به بررسي فايل سيستم گوگل بپردازيم و در ادامه نگاهي اجمالي به معماري GFS خواهيم داشت.
مقدمه
فایل سیستم توزیع شده، مهمترین جزء یك سیستم توزیع شده ي كه تا حالا تحقیقات و فعالیتهای زیادی در این مورد انجام گرفته كه معروفترينش NFS فایل سیستم شبكه محصول شركت Sun Microsystems است.
هدف اصلـــی NFS اين كه فایل سیستمهای مختلف موجـود شبكه رو جمع آوري ميكنه و پروتكلی رو معرفی می كنه كه هـــر كدوم از فایل سیستمها با رعایت اون می تونند جزئی از مجموعه كلاستر NFS  باشن و اطلاعات خودشون و  به اشتراك بذارن
يكي دیگه از فـــایل سیستمهای موجود  Coda محصول دانشگاه كارنگی ملون
 Carnegie Mellon كه هدف اصلیش افزایش میزان دسترسپذیری و بـــه این منظور دادههای
فايل در حافظه Cache كامپيوتر كلاينت نگهداري مي شن
 LBFSهم یك فـــایل سیستم توزیع شده برای شبكههایي كه پهنای باند كمي دارن كه این فايل سیستم با استفاده از تكنیكهای فشردهسازی و نگهداری دادههای رسیده در حافظه cache به شدت از ترافیك شبكه كم مي كنه.
 فایل سیستمهای توزیع شده ديگه اي هم وجود دارن كه مي تونيم به  AFS، ۹Plan ، XFS،    SFS ،  فرانگي پاني اشاره كرد
امـــا هیچ كدوم از این فایـل سیستمهای موجود بهطور كامل نیازمندیهای گوگل رو برطرف نمي كنن  در سایت گـــوگل فایل هاي چند ترابایتی وجود داره كه نمی شه اونها را به تنهایی در سرورهای سایت گوگل كه خودشون تشكيل شده ان از هزاران كامپیوتر معمولی ذخیـــره كرد.  از طرف دیگه تقسیم این فایلهای حجیم به هزاران فایل كوچكتر هم باعث پیچیدگی و كاهش كارآیی برنامهها ميشه.
بنابراین گوگل براي رفع نیازمندیهاش و با توجه به شرایط محیطی خودش، فایل سیستم گوگل (GFS) را طراحی و پیادهسازی كرد
 GFS علاوه بر اينكه ویژگیهـــای فایلسیستمهای موجـــود رو داره
تحملپذیریخطا، توسعهپذیـــری ، قابلیت اعتماد و دسترس پذیـــری بالا رو هم شامل ميشه
 از ويژگي هاي بارز فایل سیستم گوگل میتونيم به شفافیت مكانی بسیـــار بالای اون هم اشاره كــــنيم به طوری كــــه از دید كاربر، یك كلاستر از GFS مثل یك درایو محلی نمایان ميشه
و این فایل سیستم توانایی ذخیرهسازی فایل های چندین گیگا بایتی را نیز ارائه میكنه

سیر پیشرفت گوگل
در ژانویه ۱۹۹۶ دوتا از دانشجوهاي دانشگاه استنفورد، به نامهای لریپیج و سرگی برین فرضیه جستوجوی صفحات وب را به این ترتیب بهبود دادند كه یك موتــــور جستوجو با تحلیل رابطه بین سایتها میتونه نتایج بهتری نسبت به روشهــــای ابتدایی مورد استفــــاده ، داشته باشه این روش جستوجو Back Rub ناميده شد براي اينكه موتور جستوجو جهت تشخیص اهمیت سایت به پیوندهایـی كه از سایتهای دیگر به اون داده شده، توجه میكنه. پیچ و برین ایــــن فرضیه را به عنوان بخشی از مطالعاتشون، آزمــایش كردن و اين رو پایهای برای موتور جستوجوی جدیدشون قرار دادن
اونــــا كارشـون را از گاراژ یكــــی از دوستانشون در كــــالیفرنیا آغاز كردن و شركت گوگل را در سپتامبر ۱۹۹۸ به ثبت رسوندن و نقطه عطف ایــــن شركت وقتي  بود كه سایت AltaVista به عنوان یك كاربر به گوگل متصل شد و از اون به بعد گــوگل تونست تعداد زیادی از كاربـــــران این سایت را جذب خودش كنه
در سال ۲۰۰۰، گوگل شروع كرد به فروش آگهیهای تبلیغاتی مرتبط با كلمات كلیدی جستوجو
این روش فروش كه بر اساس تعداد كلیكهای كاربران استوار بود ، نقش مهمی در افزایش درآمد این شركت داشت.
در ســـــال ۲۰۰۴ گوگل به اوج شهرت خودش رسید و تونست با كمك شركـــــای اقتصــادی مثل یاهـــــو، AOL و CNN، ۸۰ درصـــد درخواستهای جستوجو در وب را به خودش اختصاص بده
اما در فوریه ۲۰۰۴، یاهو مشاركت خودش رو قطع كرد تا نتیجه ي بهتري رو به كاربران ارائه كنه
این همين امر فرق بین گوگل و سایر سایتهای جستوجوي ديگه رو پررنگتر كرد؛
 بــــه نوعي كه فعل «To Google» كــــه تــــا اون موقع در زبان عامیانــــه بــــه معنای  جستوجو كردن در وب  بود، در زبان رسمی هم استفاده شد

راز موفقیت
یكـــــی از دلایل مهم در موفقیت اقتصادی گوگل كم كردن هزینه تجهیزات سختافزاری و تغییرات مناسب در سیستمهای نرمافزاری اشه
گوگل به جای اينكه برای عمليات محاسباتی خودش براي خرید سرورهای گرون قیمتي كه با ۸  پردازنده قوی يا بيشتر كار مي كنن،  دهها میلیون دلار هزينه كنه ، فقط چند میلیون دلار براي هزاران سرور ارزون قیمت پرداخت كرد.
در بهترین حالت یك سیستم خانگی ممكنه در هر سه سال تنهـــــا یك بار به هر دليلي از كار بیفته
 ولـــــی مقیاسـی كه محیط گوگل درش  قرار داره هزاران سرور در یك دیتاسنتر ، انتظار اينو بايد داشت كه روزانه حداقل ده ها سیستم از كار بیفته
پس باید به یك روش مكانیزه این خطاها رو كنترل كرد تا حتی با از كار افتادن یكی از سرورها ، عملیات درحال اجرا بتونه كار خودش را با سرورهای پشتیبان دیگه ادامه بده
 بااين منظور گوگل با یك فایل سیستم توزیع شده منحصر به فرد، بستر مناسبي رو برای برنامههای كاربردی فراهم كرد تا این برنامهها بتوانند مستقل از سختافزاری كه روی اونا اجرا میشن ، با حداكثر كارآیــــی عمل كنن
و این وظیفه فایل سیستم جدید تا دادهها را در سرور های ثانویه تكرار كنه ، تقسیم كار مناسب بین سرور های موجود رو انجام بده ، در صورت بروز خطا در یك سرور عملیات را از سرورهــای ثانویه از سر بگیره و تحمل پذیری نسبت به خطا را بالا ببره.
جالبه كه بدونید فایل ایندكس گوگل در سال ۲۰۰۰ دارای  بیش از یك میلیون صفحه و در آخر سال ۲۰۰۴ دارای بیش از ۸ میلیـــــون صفحه بـــــوده
كه  اگر اندازه هر صفحه اگه بین ۵ تا ۱۰ كیلو بایت بگیریم ، حجم فایل ایندكس در آخر سال ۲۰۰۴ بین ۴۰ تا ۸۰ ترابایت برآورد شده


مشكلات سایت گوگل و راه حل آن
به طور خلاصه مشكلات موجود در سایت گوگل شامل :
1.      نگهداری و مدیریت فایلهای چندین ترابایتی
2.     مدیریت مكانیزه جهت كنترل خرابی سرورهای گوگل
3.     حجم كاری زیاد و اجرای هزاران پرسوجو در هر ثانیه برای اجرای هر پرس و جو باید به طور متوسط صدها مگا بایت اطلاعات خونده بشه كه اجرای این فرآیند روی یك كامپیوتر، بسیار زمان بره
گوگل در برخورد با این مشكلات تصمیم به طراحی و پیادهسازی یك فایل سیستم جدید گرفت ، این فایل سیستم با تجزیه فایلها به اندازههای ثابت مشكلات مربـوط به نگهداری فایلهای حجیم را حل كرده , گوگل هم ابزارهایی رو جهت ثبت وقایع و بازخونی اونا به منظور یافتن زمان و مكان بروز خطا و اطلاع بـــــه مدیریت پیادهسازی كرده كه  خطایابی سایت هم بسیار ساده شده  

خصوصیات فایل سیستم گوگل

 GFS با فایل سیستمهای قدیمی خصوصیات مشتركی همچون تحملپذیری خطا، كارایی، قابلیت گسترش ، قابلیت اطمینان و دسترسپذیری رو داره، اما علت طراحــی اون وجود نیازمندیها و ویژگیهای خاص محیط عملیاتی گوگل ه   که خدمتتون عرض می کنم

اول اینكه سیستـــم كلی از صدها و یا شاید هزاران سرور معمولی تشكیل شده باشه و توسط صدها كامپیوتر كلاینت استفاده میشه
 كمیت و كیفیت تجهیزات موجــود نشون میده که احتمال اینكه روزانه تعدادی از این سیستمها از كار بیفته ، زیاده بنابراین مانیتورینگ سیستم ، خطایابی ، تحملپذیری نسبت بـه خطا و ترمیم خودكار توسط سیستم از اجزای اساسی فایل سیستم گوگل ه
دوم اینكه فایلهای مورد استفاده در این محیط بسیار حجیم ان و به علاوه مجموعه داده ها رشد سریعی دارن به گونهای كه فایلهایی با حجم چند ترابایت نیز وجود دارند
 البته میشه به جای یك فایل چند ترابایتی از میلیاردها فایل چند كیلو بایتی استفاده كرد ولی انجام این كار باعث كاهش كارآیی شبكه ، كندی سیستم و مدیریت دشوار دادهها میشه پس لازم که هنگــام طراحی یك فایل سیستم جدید بـــه عملیات ورودی/خروجی و اندازه بلوكهای داده توجه بشه
سوم اینكه اكثر تغییرات در فایل ها شامل اضافه كردن دادههای جدید بـه آخر فایله و كمتر میتونیم دادههای موجود در فایل رو به روزرسانی كنیم و زمانی كه دادههای جدید به آخر فایل اضافه میشن ، معمولا دیگه تغییر نمی كنن و عملیات خوندن از فایل به كرات اجــرا میشه
با توجه به این الگوی دسترسی، در سیستم جدید باید كارآیی لازم جهت افزودن راحت دادهها در نظر گرفته بشه
چهــــارم اینكه سیستم جدید بــــرای استفاده در محیط گوگل باید شامــــل تسهیلاتی جهت كمك بــــه طراحی سیستــــمهای كاربردی باشه. به عبــــارتی باید APIهایــــی براي افزایش انعطافپذیری و سادهسازی عملیات كار با فایلها در اختیار بذاره.

معماری فایل سیستم گوگل
1
در اینجا جهت آشنایی بیشتر، فایل سیستم گوگل را بـــــا یك فایل سیستــم متمركز مثل ۳۲FAT مقایسه می كنیم.
در فایل سیستم متمركز دو لایه وجود دارد:
1.    لایه بالایی كه وظیفه مدیریت و نگهداری دادههــــای متا (MetaData) یا همون جدول نگهداری فایلها را بر عهده داره
2.    لایه پایینی كــه مسئولیت ذخیره و بازیابی دادهها در واحدهایی بنام بلوك را بر عهده داره.  

در GFS نیز معادل با این دولایه، دو نوع سرور وجود داره:
1.    سرور اصلی (Master) كه مثل لایه بالایی وظیفه مدیریت و نگهداری دادههای متا را به عهده داره
2.    چانك سرورها (ChunkServer) معادل با لایه پایینی وظیفه ذخیره و بازیابی دادهها در واحدهایی به نام چانك (Chunk) را بر عهده دارن.
در GFS فایلها در واحدهای كوچكتری موسوم به چانك كه مثل بلاكها در سیستم های متمركز هستند نگهداری میشن
همونطور كه گفته شد سرور Master وظیفه نگهداری دادههای متا را بر عهده داره.
دادههای متـا در واقع شامل اطلاعاتی درباره فایلها و دایركتوریهایی هستن كه یك فایل سیستم رو تشكیل میدن و همچنین نشون میدن كه هر فایل شامل چه چانكهاییه و هر چانك در كدام چانك سرور نگهداری میشه.
سرور Master همواره در دورههای زمانی مشخص موسوم به Heart Beat سركشی میكند تا از آخرین وضعیت اونا مطلع بشه.
وجود تنهــا یك سرور Master، طراحـی GFS را خیلـی ساده كرده .
سرور Master قادره كه با استفاده از اطلاعاتی كه درباره كلیه سرورها و چانكها داره ، محل هر چانك جدید را ماهرانه تعیین كنه.
البته برای اينكه سرور Master با مشكل گلوگاه و افزایش بار مواجه نشه ، باید از درگیری اون با عملیات خوندن و نوشتن كم كنيم ، به همین دلیل كلاینتها هرگز از  Master، دادهها را نمیخونن و یا نمینویسن بلكه فقط از Master سوال میكنن كه با كدام چانك سرور باید كار كنن و تبادل دادههای اونا نیز فقط مختص به چانك سرورهاست.
یك كلاینت جهت خوندن داده ها ابتدا شماره چانك را به سرور Master میدهد و Master نیز آدرس ماشینهایی را كه اون چانك و كپیهاش در اون قرار دارن رو برمیگردونه
سپس كلاینت شماره چانك و محدودهای را كه باید خونده بشه رو به یكی از چانك سرورها میفرسته و چانك سرور نیز اطلاعات خواسته شده را برای كلاینت ارسال میكنه.
برای دسترسیهای بعدی به این چانك، دیگه نیازی به ارتباط بین كلاینت و سرور Master نیست؛ چراكه اطلاعات چانك هایی كه با آن ارتباط برقرار شده در حافظه كلاینت به صورت موقت بایگانی میشه . البته زمانی كه اطلاعات چانك در حافظه كلاینت منقضی یا فایل دوباره باز و بسته بشه ، باید جهت دریافت اطلاعات جدید ، كلاینت با سرور Master ارتباط برقرار كنه.
 چانكها و دادههای متا
همونطور كه اشاره شد، فایلهای حجیم در قطعات كوچكتری كه چانك نام داره ، ذخیره میشن. تعیین اندازه چانك یكی از پارامترهای كلیدی در طراحی GFS  
این اندازه در حال حاضر ۶۴ مگابایت در نظر گرفته شده كه از اندازه بلاكها در فایل سیستمهای معمولی خیلی بیشتره
 هر یك از نسخههای چانك، به صورت یك فایل در سیستم عامل یونیكس روی چانك سرورها نگهداری میشن. مهمترین ایراد چانكها، قطعه قطعه شدن داخلی اونهاست كه این مشكل هم به روش تخصیص حافظه Lazy مرتفع میشه ؛








انجام پایان نامه

انجام پایان نامه کامپیوتر، انجام پایان نامه ارشد کامپیوتر، انجام پایان نامه، پایان نامه

برای دیدن ادامه مطلب از لینک زیر استفاده نمایید

 دانلود مقاله | انجام پایان نامه

سفارش پایان نامه