mohamadmilani15.mm
mohamadmilani15.mm
خواندن ۳۷ دقیقه·۴ سال پیش

مدیریت بهینه مصرف انرژی در سیستم فایل توزیع شده هدوپ


https://www.aparat.com/v/NPmTx/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C_%D8%A8%D8%A7_%D8%B3%DB%8C%D8%B3%D8%AA%D9%85_%D9%81%D8%A7%DB%8C%D9%84_%D8%AA%D9%88%D8%B2%DB%8C%D8%B9_%D8%B4%D8%AF%D9%87_%D9%87%D8%A7%D8%AF%D9%88%D9%BE_%D9%88_%D8%AF%DB%8C%DA%AF%D8%B1_%D8%B3%DB%8C%D8%B3%D8%AA%D9%85

گردآورنده و تنظیم : محمد شمسعلی میلانی موسسه آموزش عالی صدرالمتالهین (صدرا)
گردآورنده و تنظیم : محمد شمسعلی میلانی موسسه آموزش عالی صدرالمتالهین (صدرا)



چکیده

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


کلمات کلیدی

بهینه سازی مصرف انرژی، سیستم فایل توزیع شده هدوپ، داده کاوی، خوشه، گره.

1 مقدمه

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

بزرگ داده اصطلاحی است ک به مجموع داده هایی اطلاق میشود ک مدیریت ، کنترل و پردازش آنها فراتر از توانایی ابزارهای نرم افزاری در یک زمان قابل تحمل و مورد انتظار است . مقیاس بزرگ داده، بطور مداوم در حال رشد از محدوده چند 10 ترابایت به چندین پتابایت ، در یک مجموعه داده واحد است . نمونه هایی از بزرگ داده عبارتند از: گزارش های وبی، سامانه های بازشناسی با امواج رادیویی، شبکه های حسگر، شبکه های اجتماعی، متون و اسناد اینترنتی، نمایه های جستجوهای اینترنتی، نجوم، مدارک پزشکی، آرشیوعکس، آرشیو ویدیو، پژوهشهای زمین شناسی وتجارت در مقیاس بزرگ.

در اینجا نیاز به سیستم جدیدی است ک قابل اطمینان باشد، برای استفاده بهینه انرژی منابع سیستم را به خوبی استفاده کند و همچنین قابلیت ترمیم خودکار را داشته باشد. هادوپ ( یا سیستم نرم افزاری توزیع شده هدوپ)، پاسخ ب نیاز شرکت های بزرگی است که به دنبال پیاده سازی سیستم رایانش ابری برای مشتریان خود هستند. یا سیستم فایل توزیع شده هدوپ و همچنین تکنیکی برای پردازش اطلاعات HDFS تکنولوژی هدوپ از دو بخش کلی تشکیل شده است. ساختار کلی اطلاعاتی در هدوپ به این صورت است که اطلاعات توسط MapReduce به نام گره نام به بلوک هایی شکسته شده و به چندین سرور که گره داده نامیده می شوند، فرستاده می شود.

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

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

راهکار پیشنهادی را با استفاده از ابزار شبیه سازی Gridsim ، مورد آزمایش قرار دادیم. در این آزمایش یک مرکز داده با 24 گره داده ایجاد کردیم سپس مقایسه ای به نسبت روش معمولی و روش های قبلی انجام شده و مشخص شود روش پیشنهادی توانست به میزان 44/9 درصد ب نسبت روش معمولی و 14/6 درصد به نسبت روش های قبلی، مصرف انرژی را کاهش دهد. در بخش دوم پیشینه تحقیق و در بخش سوم ساختار پیشنهادی برای مراکز داده را مصرف می کنیم. در بخش چهارم روش جدید تخصیص بلوک های فایل را صحبت خواهیم کرد . در بخش پنجم نتایج آزمایشات و در بخش ششم نتیجه گیری را عنوان می کنیم.


2- پیشینه تحقیق

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

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

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

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

لنگ و پاتل استراتژی هایی برای توسعه چارچوبی در مصرف انرژی گره های MapReduce را مورد بررسی قرار دادند. آنها دو تکنیک نهایی را ک میتواند با این چارچوب سازگار باشند مورد آزمایش قرار دادند. اولین آزمایش بر اساس تکنیک پیشنهاد شده اخیر که مجموعه پوشش یا CS نامیده می شود، انجام گرفته است . این تکنیک درصد کمی از گره ها را در بهره وری پایین روشن می گذارد. دومین آزمایش تکنیکی است ک آن را همه در استراتژی AIS نامیدند. AIS از تمام گره ها در خوشه را برای اجرای بار کاری استفاده می کند، سپس برق مصرفی کل خوشه را کاهش می دهد. هدف از این مقاله بهبود کارایی انرژی خوشه های MapReduce در بازه زمانی است که گره های آن در بهره وری پایین هستند. روشی ک پیشنهاد داده اند به سادگی قابل تعمیم برای استراتژی های دیگری مثل Dryad است ، اما آنها برای مقایسه بهتر با کارهای قبلی، چارچوب MapReduce را گسترش داده اند. در CS ، وقتی بار کاری خوشه بطور جزئی در انرژی پایین باشد، بار کاری برای اجرا زمان بیشتری می برد. از طرف دیگر تهیه قسمتی از فضا بر روی گره های CS نیازمند تغییر کد در لایه های زیرین نرم افزار DFS است .

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

گویری و همکاران اشاره کردند که اگر می خواهیم تمام مزیت های انرژی سبز را داشته باشیم، باید میزان انرژی مورد تقاضا و چگونگی تهیه آن سازگار باشند. در این مقاله چگونگی مدیریت بار کاری منابع محاسباتی 2 مراکز داده را برای سازگاری با تهیه انرژی سبز مورد بررسی قرار داده اند. بطور خاص چارچوب پردازش داده ای را بررسی کرده اند ک تعدادی محاسبات پس زمین می توانند در زمانی محدود شده توسعه پیدا کنند. آنها هدوپ سبز و چارچوبی از MapReduce را برای یک مرکز داده که با انرژی خورشیدی و شبکه الکتریکی برای پشتیبان تامین شده را پیشنهاد داده اند. هدوپ سبز مقداری از انرژی خورشیدی را که در آینده ای نزدیک قابل دسترسی خواهد بود پیش بینی میکنند و همچنین کارهای MapReduce را برای حداکثر انرژی سبز زمانبندی می کند. اگر مجبور به استفاده از انرژی قهوه ای برای اجتناب از نقض محدوده زمانی باشیم، هدوپ سبز زمان هایی که انرژی قهوه ای ارزان است را بدست می آورد و هزینه حداکثر انرژی مصرفی را مدیریت می کند. آنها اتصال به هر دو منبع انرژی خورشیدی و بادی و همچنین شبکه های الکتریکی را به عنوان پشتیبان مورد بررسی قرار دادند.

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

تلوِریچ و کوزیراکیس کار اخیرشان را بر روی تغییر هدوپ انجام داده اند تا استفاده از خوشه های عملیاتی را کاهش دهند. آنها اجرای خوشه های هدوپ را در جزئی از تغییرات یافته اند ک می تواند انرژی مصرفی را بین 4 تا 5 درصد ذخیره کند. کارایی انرژی یک خوشه می تواند ب دو طریق بهبود داده شود : 1- از طریق سازگاری شماری از گره های فعال با نیازهای فعلی از بار کاری و سپس قرار دادن گره های باقی مانده در حالت حداقل مصرف انرژی. 2- از طریق مهندسی ویژگی های محاسب ای و حافظ ای هر گره تا با حجم کاری سازگار باشد از اتلاف انرژی بیشتر از حد نیاز اجزاء، اجتناب شود. متاسفانه چارچوب MapReduce خصوصیاتی دارد ک هر دوی این اختیارات را پیچیده میکند.

آنها یک ثابت جدید برای استفاده در نسخه برداری از بلاک ها پیشنهاد نمودند : حداقل یک نسخه از بلاک های داده باید در مجموعه ای از گره ها ذخیره شود که آنها این مجموعه را "مجموعه پوشش " نامیدند. فرضیه مجموعه پوشش این است ک مجموعه مهمی از گره ها برای اطمینان از دسترسی سریع به داده ها نگهداری می شود، حتی در جایی که تمام گره های خارج از مجموع غیر فعال شده باشند. هدف از ایجاد مجموعه پوشش و بکار بردن این ثابت حافظه ، این است ک تعداد زیادی از گره ها می توانند به زیبایی و بدون تاثیر بر در دسترس بودن داده ، از خوشه خارج شوند. این مجموعه می تواند کسر کوچکی از خوشه باشد و نباید بسیار کوچک در نظر گرفته شود، در غیر اینصورت ظرفیت حافظه محدود شده یا باعث ممانعت I/O می شود. بنابراین بهترین اندازه برای مجموع پوشش حدود 10 تا 30 درصد کل خوشه است .

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

چن و وانگ در یک بررسی جدید از مراکز داده، بر این باورند که برنامه های کاربردی مرکز داده، از لحاظ کارایی انرژی، نیازمند مطالعه و بررسی است . در این مقاله آنها کارایی انرژی MapReduce را در یک برنامه عمومی و گسترده برای مراکز داده اینترنت مورد آزمایش قرار دادند. از نتایج حاصله ، مکانیزمی برای ذخیره انرژی و حرکتی به سوی کارهای آینده را پیشنهاد داده اند. آنها پارامترهای سیستمی پیکربندی شده و بار کاری طراحی شده ای را کشف کرده اند که می توانند کارایی انرژی MapReduce را بدون تغییرات بر لایه های زیرساخت آن، بیش از 100 درصد افزایش دهد. بهبود کارایی انرژی سیستم های کامپیوتری نه تنها هزینه های عملیاتی تجهیزات کامپیوتری را کاهش می دهد، همچنین باعث کاهش محسوس اثر کربن بر محیط می گردد. در فضای این تحقیق، کار قابل توجه و چندین محصول تجاری مطرح شده است . مرکز داده اینترنتی کارآمد برای انرژی زمانی ک در آن برنامه های کاربردی سخت افزار و شبکه ، کارایی کاهش مصرف انرژی را نداشته باشند، نمی تواند به خوبی تحقق یابد. آنها کارایی انرژی MapReduce را به عنوان یک نقطه ورود در این ناحیه انتخاب نموده اند. از زمانی که بستر MapReduce برای کارایی انرژی توسعه یافت نبوده است ، بر اینکه فرصتی برای ذخیره انرژی ممکن باشد، در شک بوده اند. امروزه تعیین یکای مصرف انرژی اجزاء MapReduce و تشخیص ناحیه ای برای ذخیره انرژی، نقطه ای بحرانی است . مدعی بوده اند کار آنها اولین مطالعه جزئی از کارایی انرژی برنامه های کاربردی مرکز داده، شبیه MapReduce است . تحقیقات را در سه دسته مطرح نموده اند : 1- یک معیار کارایی را برای مراکز داده اینترنتی در جهت یکی کردن دوره عکس العمل ، قابلیت اعتماد و مهمتر از همه توجه به انرژی پیشنهاد دادند. 2- آنها مصرف انرژی MapReduce را با متغیری از پیکربندی خوشه و بارکاری که فشاری را بر اجزای مختلف آن وارد می آورد، مورد آزمایش قرار داده اند. 3- آنها محدودیتهای مطالعاتشان را برای پیشنهادات و راهنمایی های آینده مورد آزمایش قرار داده اند.

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

ماهش واری و همکاران روشی را بر اساس حد آستانه ، برای خاموش و روشن کردن گره ها پیشنهاد دادند. در روش آنها پیکربندی پویای خوشه ها بر اساس حجم کار فعلی مطرح شده و در زمانی حجم کار کمتر از حد آستانه باشد، سیستم به حالت خاموش فرستاده می شود. آنها مدل جدیدی را برای تخصیص بلاک های فایل بر اساس پیکربندی دوباره مطرح نمودند. آنها روش پیشنهادی را بر روی ابزار Gridsim تست نمودند و نتایج بهبود 33 درصد کاهش انرژی را نشان داد. لوریچ و کازیراکیش ماهیت MapReduce و تاثیرات آن بر مصرف انرژی را در دو بخش مورد بررسی قرار دادند. در بخش اول جمع آوری نیازمندی ها و دانش لازم برای ساختار Hadoop را بررسی نمودند و در بخش دوم تخصیص دوباره بلاک ها به روش پیشنهادی شان را مطرح نمودند.

یان پی چن و همکاران چارچوبی را برای کارآمدی مصرفی انرژی در MapReduce پیشنهاد کردند. همچنین یک مدل مقداری را برای راهنمایی کاربران و توسعه دهندگان برای افزایش کارایی Hadoop پیشنهاد دادند. آنها اندازه های مختلفی از بلاک ها را بررسی کردند و تخصیص بلاک ها در حجم کارهای مختلف را محاسبه نمودند. در کار بعدی آنها حجم کار را روی سیستم های واقعی مورد بررسی قرار دادند. آنها از یک سیستم برای گره نام و چهار سیستم برای گره داده استفاده نمودند.

3- ساختار مرکز داده در HDFS

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

در ساختار HDFS فایل ها به بلاک هایی با ظرفیت 64MB (بصورت پیش فرض) تقسیم می شوند. هر بلوک در سه گره نسخه برداری می شود. این کمک می کند از هر بلاک دو پشتیبان داشته باشیم. این روش در هدوپ، تحمل در برابر خطا را افزایش می دهد و تضمین می کند که فایل ها به لحاظ پشتیبان گیری در امان هستند. در روش مرسوم از بین دو بلاکی که نسخه برداری می شود، یکی از بلاک ها می تواند در گره های همان قفسه و دیگری حتماً باید در قفسه دیگری نسخه برداری گردد. این روش آگاه از قفسه نامیده می شود.

قصد داریم ساختار جدیدی برای مراکز داده پیشنهاد دهیم که از دو نوع قفسه تشکیل می شوند:

قفسه عملیاتی(OP-Rack): قفسه ای است برای نگهداری گره هایی ک منابع ذخیره سازی و محاسباتی را فراهم می کنند، بکار میرود.

قفسه پشتیبان (BK-Rack): تنها برای نگهداری گره های پشتیبان مورد استفاده هستند. هر گره پشتیبان نسخه سوم از بلاک فایل را نگه می دارد.

شکل 1 ساختار جدید مرکز داده را نشان می دهد. در این ساختار به ازای سه قفسه عملیاتی یک قفسه پشتیبان در نظر گرفتیم و یک گروه متشکل از چهار قفسه تشکیل دادیم. در هر قفسه عملیاتی سه خوشه داریم، ک دو خوشه از گره های ذخیره سازی و خوشه دیگر گره های محاسباتی تشکیل شده است . همچنین فرض می کنیم تمام قفسه ها بصورت قفسه کامل می باشند. که به صورت استاندارد در هر قفسه تعداد 30 گره قابل نگهداری است . پس بر این اساس هر خوشه 10 گره را در خود جای می دهد.

قفسه های پشتیبان فقط دارای سه خوشه ذخیره سازی می باشند. هر خوشه از قفسه پشتیبان، مربوط به یکی از قفسه های عملیاتی است . خوشه ها در یک قفسه ، دارای تامین برق جدا و شبکه جدا از یکدیگر هستند. یعنی هر خوشه از لحاظ کابل کشی برق و شبکه ، مستقل از خوشه دیگری است .

سیستم شماره گذاری برای هر گره به این صورت است ک به ترتیب از چپ، شماره گروه، شماره قفسه ، شماره خوشه و شماره گره را مشخص می کند.

مثلاً ID=1-2-1-8 به معنای، از گروه شماره یک، قفسه شماره دو، خوشه شماره یک و گره شماره هشت می باشد. بر اساس این شماره گذاری، گره نام (Name Node) بلاک گذاری و فراخوانی بلاک ها را انجام می دهد.

ایده ای ک پیشنهاد می دهیم به صورت زیر است :

در دو رونوشت که از یک بلاک می گیریم، باید یکی در خوشه و دوم در همان قفسه cluster-aware و دیگری در قفسه پشتیبان باشد. سعی بر آن داریم بلاک های هر فایل را در رکی قرار دهیم که گره های محاسباتی آن فایل، در همان قفسه یا در حد امکان در همان گروه قرار بگیرد. در قفسه پشتیبان، به ازای ده گره ای که در هر خوشه وجود دارد، تنها یک گره روشن است و نه گره دیگر خاموش هستند.

در قفسه پشتیبان، برای هر خوشه یک گره را روشن قرار می دهیم تا تغییرات بلاک های همان روز را ثبت کند از (این پس این گره را گره روشن می نامیم) و در ساعتی که بار استفاده از سیستم ها پایین باشند (مثلاً ساعت 3 نصف شب) از نه گره باقی مانده هر خوشه کت در طول روز خاموش بودند ، آن گره ای ک نیاز به تغییرات دارد را روشن کرده و تغییرات را بر روی آن اعمال می نماییم. بعد از اتمام تغییرات، گره را دوباره خاموش کرده و گره روشن را برای ذخیره تغییرات روز بعد پاک میکنیم.

در خوشه دوم هر قفسه عملیاتی، از ده گره، تنها یک گره روشن است و نه گره دیگر خاموش هستند.

در خوشه دوم هر قفسه عملیاتی، تک گره روشن تغییرات بلاکهای شش ساعت قبل را ثبت میکند و هر شش ساعت یک بار از نه گره خاموش، گره ای ک نیاز به تغییرات دارد را برای اعمال تغییرات شش ساعت قبل بمدت کمی روشن کرده و بعد از اعمال تغییرات آنها را دوباره خاموش می نماید. در نهایت کلی اطلاعات شش ساعت قبل خود را پاک میکند.

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

در این ساختار گره هایی ک مورد نیاز نیستند در حالت خاموش قرار دارند. از ده گره واقع در خوشه دوم قفسه های عملیاتی، نه گره در اکثر زمانها خاموش هستند، یعنی 9/30 معادل 30 درصد گره ها و از سی گره در قفسه پشتیبان 30 ⁄ 27 معادل 90 درصد گره ها خاموش هستند. بنابراین مصرف انرژی 45 درصد کاهش پیدا می کند. در مجموع اگر در یک گروه تعداد گره های خاموش را حساب کنیم، بصورت فرمول (1) است :

Node is off OP-Rack #1 = 9 / 30

Node is off OP-Rack #2 = 9 / 30

Node is off OP-Rack #3 = 9 / 30

Node is off BK-Rack #1 = 27 / 30

-----------------------------------------

Sum of nodes is off = 54 / 120 * 100 = 45%

به لحاظ شبکه ، تفکیک پذیری قفسه به سه خوشه ، مزیت های زیادی را به ارمغان می آورد. یکی اینکه ترافیک شبکه را از یک سویچ به سه سویچ کوچکتر تقسیم می کند. دیگری اینکه بروز خطا در یک سویچ بر خوشه های دیگر تاثیر نمی گذارد و سیستم همچنان مطمئن است . نهایتاً بکارگیری سویچ با تعداد پورت کمتر، هزینه های نگهداری سیستم را پایین می آورد. شکل 2 ساختار یک قفسه عملیاتی را از لحاظ شبکه و چیدمان خوشه ها را نشان می دهد.

4- تخصیص بلاک های فایل در HDFS

هنگامی که اطلاعات از ورودی دریافت می شود، گره نام، اطلاعات را به بلاک هایی با اندازه پیش فرض 64MB تقسیم می کند. سپس بلاک ها را برا ی گره های داده می فرستند. در روش های قبلی بلاک برای اولین گره داده ای فرستاده میشود ک فضای مناسب برای ذخیره بلاک را دارد.

این روال تا زمان پر شدن کامل گره ادامه پیدا می کند. مزیت این روش آن است که به صورت حریصانه از حداکثر فضای گره داده استفاده می شود.

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

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

در روش پیشنهادی سعی بر آن داریم سابقه تغییرات گره ها را در طول یک روز بررسی کنیم و میزان بهره وری هر گره را بدست آوریم. منظور از میزان بهره وری، درصد استفاده از ظرفیت سیستم است . هر گره سوابق تغییرات دیسک خود را در بازه پنج دقیقه یک بار و برای یک روز ثبت می کند. در این صورت هر گره صفی از 288 وضعیت اخیر را در یک جدول ذخیره می کند. هر پنج دقیقه یک بار یکی از صف حذف شده و وضعیت جدید به همراه ساعت فعلی، به صف اضافه می گردد. بعد از ثبت وضعیت ، گره الگوریتمی را برای تعیین پیش بینی بهره وری خود اعمال می کند. این الگوریتم می تواند استفاده از تکنیک های داده کاوی، مثلاً رگرسیون یا سری زمانی باشد. در نهایت گره در بازه زمانی پنج دقیقه ای، اطلاعات وضعیت بلاک هایش، به همراه بهره وری لحظه ای و پیش بینی را برای گره نام ارسال می نماید. سپس به ازای هر گروه از قفسه ها، جدولی برای ذخیره وضعیت فعلی و پیش بینی گره های آن قفسه ، در گره نام ایجاد می کنیم. جدول 1 نمونه ای از این جدول را نشان می دهد. فیلدهای جدول مربوط ب نام گره ها است و دو رکورد برای هر گره ثبت می شود. رکورد اول بهره وری در همان لحظه و رکورد دوم پیش بینی بهره وری بعد از گذشت ده دقیقه را ثبت می کند. این جدول هر پنج دقیقه یک بار، به همراه وضعیت بلاک ها، در گره نام بروزرسانی می شود.

اطلاعات این جدول در سه گروه دسته بندی می شود. گروه اول گره هایی که در حداکثر بهره وری هستند، گروه دوم گره هایی که در بهره وری نرمال و گروه سوم گره هایی که در حداقل بهره وری قرار دارند. گره نام براساس اطلاعات این جدول و گروه های دسته بندی شده تصمیم به تخصیص بلاک ها می نماید. بر این اساس بلاک به گره ای فرستاده میشود ک دارای بهره وری نرمال باشد. دسته بندی این سه گروه می تواند به روش های مختلفی انجام پذیرد. یکی از این روش ها، استفاده از تکنیک های داده کاوی است . مثلاً درخت های تصمیم یا شبکه عصبی می توانند مفید واقع شود.

جدول 1، وضعیت گره ها را در سه دست نشان می دهد.

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

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

مثلا در جدول 1 وضعیت هشت گره از گروه اول نشان داده شده است . گره ای با ID=1-1-1-2 را در نظر بگیرید، این گره هر چند بهره وری لحظه ای نرمالی دارد، اما بهره وری پیش بینی آن نشان می دهد ک این گره در آینده رشد خواهد کرد. پس این گره در دسته اول قرار می گیرد و انتخاب مناسبی برای نسخه برداری بلاک نیست . گره ای با ID=1-2-1-8 هر چند در لحظه ، بهره وری بالایی داشته ، اما پیش بینی نشان می دهد ک این گره بعد از چند دقیقه دیگر بهره وری پایینی خواهد داشت ، بنابرا ین گزینه مناسبی برای تکرار است . می توان جستجوی بیشتری روی دسته ی نرمال انجام داد و گره بهتری را انتخاب کرد. در این مثال گره با ID=1-2-1-4 مناسب ترین انتخاب است.

5- آزمایشات و نتایج

برای انجام آزمایشات، از یک کامپیوتر با CPU Core i5 و Ram 8GB استفاده کردیم. سپس ابزار Gridsim را به همراه Libraries های لازم بر روی آن اجرا نمودیم و محیط فایل توزیع شده هدوپ را شبیه سازی نمودیم. در این شبیه سازی دیتاسنتر با 240 گره، در دو گروه ایجاد کردیم. تعداد 60 گره را برای قفسه پشتیبان و 60 گره دیگر را برای گره های محاسباتی در نظر گرفتیم. در نهایت 120 گره را برای گره های داده قرار دادیم. حجم کاری متشکل از اطلاعات 1000 فایل، شامل نام فایل و ظرفیت آن را برای ذخیره در گره ها در نظر گرفتیم. در این آزمایش آرایه ای از قفسه ها ایجاد کردیم ، هر خانه آرایه کلاسی از قفسه است که مشخصات آن را نگهداری می نماید. مشخصات شامل: 1 متغیری بنام power consumption برای تعیین برق مصرفی قفسه تاکنون، 2- متغیری بنام numnode_on برای تعیین تعداد گره های روشن و 3- آرایه ای بنام nodes که مشخصات گره های آن قفسه را مشخص می کند. هر خانه از آرایه nodes کلاسی از گره را نشان می دهد ک وضعیت یک گره را مشخص می نماید. وضعیت یک گره شامل: 1- آرایه ای بنام Blocks Allocated که تکه های تخصیص یافته فایل های مختلف را در آن گره مشخص می کند، 2- آرایه ای بنام blocks_size ک اندازه هر بلاک تخصیص یافته را تعیین می نماید 3- چندین متغیر برای تعیین ظرفیت اشتغال شده، میزان برق مصرفی تاکنون و وضعیت روشن خاموش بیکار بودن گره 4- یک آرایه ک صفی از تغییرات را ذخیره می کند. صف تغییرات هر پنج دقیقه یک بار توسط خود گره بروز رسانی می شود.

ابتدا آزمایشات را بدون اعمال سیاست های کاهش انرژی انجام دادیم. تمام گره را از ابتدا روشن فرض نمودیم و هیچ گونه سیاستی برای کاهش انرژی مرکز داده در نظر نگرفتیم. میزان انرژی مصرفی 145 کیلو وات برای کل مرکز داده در بازه زمانی یک ساعت بدست آمد. این بدان معناست که اگر تمام سرورها روشن باشند بیشترین کارایی را خواهیم داشت ، اما اتلاف انرژی بسیار بالا است و تعدادی از سرور ها بیهوده روشن باقی می مانند. سپس روش ماهش واری و همکاران که روشی مرسوم برای کاهش مصرف انرژی است را مورد آزمایش قرار دادیم. در این روش حد آستانه ای برای بهره وری گره ها در نظر گرفته می شود. در گره های با بهره وری پایین (زیر ده درصد) فایل های تخصیص یافته ، به گره های با بهره وری عادی (بین ده تا هفتاد درصد) فرستاده می شوند و نهایتاً گره های خالی به وضعیت بیکار انتقال داده می شوند. این روش به میزان 38و34 درصد انرژی را کاهش داد، و مصرف برق مرکز داده به 89/4 کیلو وات کاهش پیدا کرد.

در نهایت روش پیشنهادی را مورد آزمایش قرار دادیم و مرکز داده را در یک بازه یک ساعت برای دو گروه شبیه سازی نمودیم. در گره نام برای هر گروه جدول وضعیت ایجاد کردیم تا وضعیت گره های روشن را نگهداری کند. جدول وضعیت گروه اول را status table نامیدیم. فیلد های این جدول شامل: id که شماره گره روشن را نشان می دهد، moment بهره وری لحظه ای را مشخص می کند و predict پیش بینی از ده دقیقه دیگر را تعیین می نماید. سپس در الگوریتم بکار رفته تخصیص هر گره را به کمک این جدول انجام دادیم. نتایج بدست آمده 79/8 کیلو وات مصرف انرژی را نشان می دهد و این به معنای 44/9 درصد کاهش مصرف انرژی به نسبت حالت عادی و 14/6 درصد به نسب روش های مرسوم است . شکل 3 نمودار تغییرات را برای سه روش آزمایش شده نشان می دهد. در این شکل محور عمودی کیلو وات مصرف برق مرکز داده را برای یک ساعت نشان می دهد.

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

6- نتیجه گیری

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

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

آزمایشات را به کمک ابزار Gridsim مورد بررسی قرار دادیم. نتایج نشان می دهد راهکار پیشنهادی توانست به میزان 44/9 درصد کاهش مصرف انرژی به نسبت حالت عادی و 14/6 درصد به نسبت روش های مرسوم را کاهش دهد. امید است در آینده راهکارهای بهتری برای سخت افزار مراکز داده ارائه دهیم و به کمک تکنیکهای داده کاوی گره های بهتری را انتخاب کنیم تا به کاهش مصرف انرژی و کاهش انتشار کربن در محیط کمک کند.






موسسه آموزش عالی صدرالمتالهیندانشگاه صدراhadoop
شاید از این پست‌ها خوشتان بیاید