برای جستجو در بین هزاران پایان نامه در موضوعات مختلف     

      و دانلود متن کامل آنها با فرمت ورد اینجا کلیک کنید     

 
دانلود پایان نامه

سرور مرکزی در دوره‌های زمانی ثابت، اطلاعات دریافت شده از تمامی سرورها را تحلیل و طبقه بندی نموده و بر پایه‌ی آنها دستورات لازم را به سرورها ارسال می‌کند. برای هر سرور یکی از حالات زیر اتفاق می‌افتد:
هیچ دستوری ارسال نمی‌گردد: یعنی نیاز به تغییر دادن وضعیت فعالیت خود سرور و یا مهاحرت دادن ماشین‌های آن نیست. این اتفاق زمانی می‌افتد که سرور در منطقه‌ی بهینه‌ی عملکرد خود باشد پس نیازی به ایجاد تغییر نیست.
شبه دستور سبک سازی: این دستور به دو دسته از سرورها ارسال می‌گردد.؛ دسته‌ی اول سرورهایی هستند که بکارگیری بیشینه دارند، یعنی پردازنده‌ی آنها با تمام توان در حال اجرای درخواست‌ها می‌باشد. در این حالت درخواست‌های دریافتی جدید باید زمان نامشخصی در انتظار پردازش بمانند که این به معنی لغو توافق سطح سرویس می‌باشد و باید از وقوع آن جلوگیری نمود. به چنین سروری دستور داده می‌شود تا یکی از ماشین‌هایی که در حال اجرا هستند را به سرور دیگری انتقال دهد. همراه با این دستور آدرس سروری که مهاجرت باید به آن انجام شود نیز ارسال می‌گردد. طبیعتاً این دستور (یا به عبارت دقیقتر شبه دستور) قابل اجرای مستقیم نیست و باید پس از تکمیل شدن با نام ماشینی که قرار است مهاجرت داده شود و نیز درآمدن به الگوی دستور مهاجرت، روی سرور اجرا گردد. از میان دو پارامتر لازم برای شکل دهی دستور مهاجرت که در ابتدای همین بخش ذکر شد، آدرس سرور مقصد، توسط سرور مرکزی تعیین شده و همراه با شبه دستور سبک سازی به سرور مورد نظر ارسال می‌گردد. اما سرور مرکزی به اطلاعات محلی سرور که حاوی نام و ویژگی‌های ماشین‌های روی آن می‌شود دسترسی نداشته و نمی‌تواند آن را نیز در شبه دستور سبک سازی مشخص کند، بنابراین تعیین آن به عهده‌ی خود سرور است. ملاک انتخاب ماشین برای مهاجرت سطح بار آن است، با توجه به اینکه در این حالت سرور با تمام توان خود در حال کار است و هدف از این مهاجرت دادن ماشین مجازی از روی آن کم نمودن سطح بار برای توانا ساختن سرور در پاسخ به درخواست‌های رسیده به آن است، مناسبترین روش مهاجرت دادن ماشینی است که بیشترین منابع سرور را به خود اختصاص داده است. از اینرو با استفاده از نگاشت و بنای حاوی اطلاعات ماشین‌های روی سرور، ماشین با بیشترین میزان به گار گیری پردازنده را یافته و شناسه‌ی آن را در الگوی دستور مهاجرت قرار می‌دهیم.
در سرور لیستی از اسامی ماشین‌ها که بر اساس میزان استفاده از پردازنده سرور و به ترتیب نزولی مرتب شده است وجود دارد که در هر دوره آمار گیری به روز می‌گردد. در صورت دریافت شبه دستور سبک سازی، نام اولین ماشین موجود در این لیست به عنوان پارامتر دوم دستور مهاجرت انتخاب شده و الگوی اصلی دستور شکل گرفته اجرا می‌گردد.)
دسته‌ی دوم سرورهایی هستند که بکارگیری پایینی دارند، این سرورها کاندیداهایی برای خاموش شدن هستند به شرط آنکه ابتدا ماشین‌های فعال روی آنها به سایر سرورها منتقل شوند. سرورهای مقصد نیز از همین نوع هستند یعنی در حال حاضر بکارگیری پایینی دارند و تلاش می‌شود با قرار دادن تعداد بیشتری ماشین روی آنها، بکارگیریشان هر چه بیشتر به منطقه‌ی بهینه‌ی عملکرد نزدیک گردد. آدرس ماشین مقصد مانند قبل و در قالب همان شبه دستور توسط سرور مرکزی تعیین می‌گردد و انتخاب ماشین مهاجرت کننده و اجرای دستور مهاجرت نیز مانند حالت قبلی توسط سرور صورت می‌پذیرد.
شبه دستور به خواب رفتن: تعدادی از سرورهای بیکار (آنهایی که از دوره‌های قبل بیکار بوده‌اند) و یا بیکار شده را با توجه به شرایط می توان در همان حالت رها نمود؛ که از لحاظ بازده پردازشی به نسبت مصرف انرژی، بدترین حالت ممکن است ولی برای افزایش سرعت پاسخ ابرواره هنگام نیاز به افزایش تعداد سرورها می‌توان به تعداد کم این کار را انجام داد. ولی هدف اصلی این بسته قرار دادن سرورهای بیکار در حالتی است که کمترین مصرف انرژی را داشته باشند، در این مرحله است که صرفه جویی اتفاق می افتد. این حالت کم مصرف همانطور که در فصل اول ذکر شد حالت خواب است. اجرای دستور خواب، از راه دور روی شبکه امکان پذیر نیست بنابراین سرور مرکزی به طور مستقیم توانایی انجام آن را ندارد. همانند دستور مهاجرت شبه دستوری برای سروری که باید به خواب برود ارسال می‌گردد، این شبه دستور که هیچ پارامتری ندارد پس از دریافت توسط واحد دریافت سرور محلی، تجزیه شده و تفسیر به دستور خواب می‌شود، سپس روی سرور اجرا می‌گردد. اجرای این دستور باعث می‌گردد که سرور به حالت خواب برود. همانطور که در بخش دوم توضیح داده شد، سرور در این حالت توانایی انجام هیچ فعالیتی را ندارد و طبیعتاٌ بخش جانبی هم نه فعال است و نه می‌تواند اطلاعاتی برای سرور مرکزی ارسال نماید؛ چنین سروری تا زمانی که سرور مرکزی با دستور بیدار شدن آن را به حالت فعال برگرداند در همین حالت می‌ماند. در این حالت است که در حال صرفه جویی انرژی هستیم پس مدل پیشنهادی هر اندازه که بتواند سرورهای بیشتری را در مدت زمان بیشتری در این حالت قرار دهد، صرفه جویی بیشتری خواهیم داشت.
دستور بیدار شدن: این دستور در واقع توسط واحد دریافت بخش جانبی دریافت نمی‌شود ولی از آنجا که جزء دستورات صادر شده از سرور مرکزی است، برای حفظ پیوستگی منطقی مطالب در اینجا به آن اشاره می‌شود. هر گاه بیشتر سرورهای فعال با بکارگیری نزدیک به منطقه‌ی بهینه‌ی عملکرد در حال کار هستند، در صورتی که سروری به بیشینه‌ی بکارگیری خود نزدیک شود، برای سبک سازی آن کاندیدای مناسبی از میان سرورهای فعال وجود ندارد، زیرا همانطور که توضیح داده شد عدم کم نمودن بار روی سروری که نزدیک به بیشینه‌ی توان پردازشی خود در حال کار است و یا اضافه نمودن بار روی آن ( در این مورد با مهاجرت دادن ماشین جدید به آن) باعث نقض احتمالی توافق نامه سطح سرویس خواهد شد که با کاملاً اهداف مرکز داده در تناقض است. در چنین حالتی نیاز به افزایش تعداد سرورهای فعال ابرواره داریم، که آنرا گسترش ابرواره نامیدیم. برای این کار باید یک یا چند سرور از میان سرورهایی که به خواب برده شده‌اند را آماده‌ی پذیرش ماشین‌های مجازی که از سوی سرورهای با فعالیت بیشینه فرستاده خواهند شد نماییم. این کار را با بیدار نمودن سرور انجام می‌گیرد. دلیل اینکه در ابتدا اشاره شد که این دستور در عمل توسط واحد دریافت و اجرای دستورات دریافت نمی‌گردد همین خواب بودن سرور است. در این حالت از ابزاری به نام بیدارکننده روی شبکه محلی استفاده شده است. این دستور تنها یک آرگومان دارد و آن آدرس فیزیکی سرور است. این آدرس جزء آن دسته از اطلاعات است که با اولین ارسال اطلاعات هر سرور، توسط مرکزی ذخیره می‌گردد. طبیعی است که پس از صدور این دستور و بیدار شدن سرور، همین سرور به عنوان مقصد مهاجرت ماشین‌هایی که از سرورهای با فعالیت بیشینه مهاجرت می‌کنند قرار خواهد گرفت؛ پس منطقاً پس از هر دستور بیداری، یک یا چند شبه دستور سبک سازی با مقصد سرور بیدار شده خواهیم داشت.
بخش مرکزی مدل پیشنهادی
در این بخش به شرح اجزاء مختلف بخش مرکزی می‌پردازیم.
واحد دریافت اطلاعات
این واحد از بخش مرکزی، به صورت بی‌وقفه روی آدرسی ثابت و مشخص (که برای سرورها شناخته شده است) در حال اجراست و وظیفه‌ی آن دریافت اطلاعاتی است که از سوی سرورهای مرکز داده می‌آید. این واحد علاوه بر دریافت بسته‌های داده‌های ارسال شده از سوی سرورها، آدرس فرستنده‌ی این داده‌ها را نیز استخراج می‌کند و درصورتیکه آدرس اینترنتی آن قبلاً در لیستی که آدرس اینترنتی سرورهای مرکز داده را به آدرس فیزیکی آنها نگاشت می‌کند نباشد، آدرس‌ اینترنتی و نظیر آن، آدرس فیزیکی سرور را به این لیست می‌افزاید. از آدرس‌های فیزیکی این لیست بعداً در تشکیل دستور بیداری روی شبکه استفاده می‌شود. از آنجا که اطلاعات این لیست به صورت دائمی باقی می‌ماند، روند ثبت آدرس اینترنتی و فیزیکی برای هر سرور فقط یکبار و در پی اولین ارسال اطلاعات صورت می‌پذیرد.
سپس این واحد اطلاعات دریافتی از هر سرور را همراه با آدرس اینترنتی آن سرور، برای واحد ذخیره‌ی اطلاعات ارسال می‌کند. این روند دریافت اطلاعات از سرورها به صورت دائمی و در دوره‌های گزارش گیری آنها انجام می‌شود. از آنجا که لزومی در همزمانی ارسال داده‌ها از سوی سرورها وجود ندارد، می‌توان فرض نمود که در هر واحد زمان تعداد زیادی نخ از این واحد فعال هستند و اطلاعات دریافتی سرورها را برای واحد ذخیره‌ی اطلاعات ارسال می‌کنند.
واحد ذخیره اطلاعات
آنچه این واحد دریافت می‌دارد، اطلاعات و آمار مربوط به میزان فعالیت سرورهای مرکز داده است که به صورت دوره‌ای (به وسیله‌ی واحد ارسال اطلاعات) برای این واحد ارسال می‌گردد. این اطلاعات شامل آدرس اینترنتی سرور (که به عنوان شناسه‌ای یکتا برای داده‌های مربوط به آن سرور استفاده خواهد شد)، میزان بکارگیری کلی پردازنده‌ی سرور و تعداد ماشین‌های روی سرور می‌باشد.
بنابراین در هر لحظه ساختارهای داده‌ی مربوط به اطلاعات سرورهای جانبی حاوی آخرین وضعیت فعالیت سرور مربوط به خود هستند. واحد ذخیره‌ی اطلاعات نیز دارای یک دوره‌ی کاری است به این معنا که در طول این دوره روند دریافت اطلاعات سرورها و به روز رسانی ساختارهای داده‌ی حاوی آنها، به صورت بی وقفه در حال انجام است و در انتهای این دوره، این واحد، واحد طبقه بندی سرورها را صدا زده و به ادامه‌ی کار خود باز می‌گردد.
واحد طبقه بندی سرورها
همانطور که در بخش قبلی ذکر شد، واحد طبقه بندی سرورها در انتهای بازه‌های زمانی ثابت توسط واحد ذخیره‌ی اطلاعات صدا زده می‌شود. آنچه در اختیار این واحد قرار می‌گیرد، ساختاری است حاوی اطلاعات عملکرد سرورهای مرکز داده که در طول آخرین بازه‌ی زمانی عملکرد این واحد جمع آوری شده است. سپس این واحد با توجه به میزان به متوسط کار گیری پردازنده‌ی هر یک از سرورها، آنها را 5 گروه کاری مختلف تقسیم می‌کند. معادل با هر گروه یک ساختار صف در نظر گرفته شده است که شناسه‌ی سرورها در صف متناظر به آن گروه کاری قرار داده می‌شود. این پنج گروه کاری عبارتند از:
خوابیده : سرورهایی که در حالت خواب قرار دارند و در حال حاضر عملیاتی نیستند در این صف قرار می‌گیرند. لازم به ذکر است که سرورهای موجود در این صف با توجه به اطلاعات بکارگیریشان در این صف قرار نگرفته‌اند؛ این صف و لیست سرورهای درون آن توسط واحد اتخاذ تصمیم دستکاری می‌شوند. در واقع واحد اتخاذ تصمیم مسئول قرار دادن سرورها در حالت خواب و فعالسازی مجددشان در صورت نیاز است و از آنجا که یک سرور مادامی که در حالت خواب قرار دارد توانایی ارسال اطلاعات ندارد پس اطلاعات مربوط به آن باید توسط همین واحد دستکاری شود.
بیکار: سرورهایی که هیچ ماشینی روی آنها در حال اجرا شدن نیست (و در نتیجه کار مفیدی برای مرکز داده انجام نمی‌دهند) در این صف قرار داده می‌شوند. سرورهای موجود در این لیست تعداد کمی هستند که با توجه به موازنه‌ ی بین سربارهای ناشی از روشن نگهداشتن سرورهای بیکار و سرعت پاسخ مجموعه به نیاز به افزایش تعداد سرورهای فعال، در این حالت قرار داده شده اند. به عبارت دیگر این امکان وجود داشت که این سرورها را بی آنکه تغییری در عملکرد ابرواره ایجاد شود، در حالت خواب قرار داد ولی از آنجا که برای فعال نمودن یک سرور از حالت خواب به نسبت حالت بیکار زمان بیشتری نیاز است، تعداد کمی سرور را در حالت بیکار نگه می‌داریم تا در صورت نیاز طی زمان کنتری به حالت فعال بازگردند.
فروبار: سرورهای فعالی که عملکرد آنها از دید مصرف انرژی بهینه نیست به این معنا که با توانی بسیار کمتر از بیشینه توان پردازشی مشغول به کار هستند. طبیعتاً هرچه تعداد کمتری سرور در این صف قرار بگیرند، نشان دهنده‌ی عملکرد بهینه تر ابرواره و مدل پیشنهادی است. آستانه‌ای که در این پیاده سازی برای این صف قرار داده شد 40% بود؛ به این معنا که اگر متوسط بکارگیری سروری در بازه‌ی اخیر، کمتر از این مقدار باشد در این صف قرار می‌گیرد.
متعادل: سرورهایی که در منطقه‌ی بهینه‌ی عملکرد قرار دارند، در این صف جای داده می‌شوند. در این پیاده سازی آستانه‌ی بالای این بازه 90% در نظر گرفته شده است. در واقع سروهایی که متوسط بکارگیری پردازنده‌شان در بازه‌ی اخیر بین 40% تا 90% باشد در این صف قرار می‌گیرند.
فرابار: سروهایی با متوسط بکارگیری پردازنده‌ی بیش از حد بالایی سرورهای متعادل در این صف قرار می‌گیرند. دلیل قرار دادن صفی جداگانه برای این سرورها این است که احتمال به تاخیر افتادن پاسخ به درخواست‌های رسیده به این سرورها زیاد است و از اینرو با اعمال الگوریتم‌های جابجایی در پی ایجاد شرایطی هستیم که تا حد امکان سرورها در این صف قرار نگیرند.
دسته بندی : علمی