Cluster یا خوشه کامپیوتری چه چیزی است؟
در یک سیستم کامپیوتری یک خوشه مجموعه ای از سرورها و منابع دیگر است که مانند یک سیستم واحد عمل می کند و توانایی بالاتری را ممکن می کند و در برخی موارد فعال می شود و به عنوان متعادل کننده بار و پردازش موازی عمل می کند. پس چرا ما نیاز داریم که همه سیستم ها را به عنوان یک سیستم واحد عمل کنیم. بیایید یک مثال ببینیم تا درک بهتری برای شما فراهم آید. یک سازمان دارای یک سرویس در حال اجرا بر روی سرور ما است که برای کسب و کارش بسیار حیاتی است و هر گونه تأثیری بر این سرویس باعث زیان هنگفتی برای سازمان خواهد شد. سرویس می تواند هر چیزی باشد. ممکن است خدمات وب، سرویس های کاربردی یا پایگاه داده یا هر فایل مبتنی بر Shar به عنوان مثال nfos یا Samba Services هر چیزی که ممکن است هر چیزی باشد. بسیار خوب، بنابراین یک سازمان خدماتی را دارد و اجرا می کند که بسیار حیاتی هستند که روی سرور ما و یک سرور واحد میزبانی می شوند و هر گونه از دست دادن آن خدمات منجر به ضرر بزرگی برای سازمان ما خواهد شد. ما میخواهیم سرویسهای پیکربندیشده در یک سرور بهطور مداوم و بدون هیچگونه خرابی در دسترس باشد، که به این معنی است که 100% عملیاتی شده و هرگز از کار نیفتد. بنابراین ما این را با عنوان در دسترس بودن (availability) میشناسیم. خیلی خوب است که سرویسهای ما بهطور مداوم بدون هیچ زمان قطعی، در دسترس باشند.
همانطور که گفته شد، یک کلاستر یا خوشه کامپیوتری شامل چندین کامپیوتر یا گره متصل به یکدیگر از طریق یک شبکه با سرعت بالا است. تمام گرهها دارای پردازندههای خود، RAM و هارد دیسک است، اما یک آدرس IP مشترک را به اشتراک میگذارند. کلاسترها به اجرای برنامهها در سراسر کامپیوترها کمک میکنند که قدرت پردازش و فضای ذخیرهسازی بیشتری نسبت به یک کامپیوتر تنها داشته باشند. عناصر کلیدی یک کلاستر یا خوشه شامل:
- گرهها: کامپیوترهای منفرد که کلاستر را تشکیل میدهند.
- شبکه: شبکه با سرعت بالا و تأخیر پایین که گرهها را به یکدیگر متصل میکند.
- نرمافزار: نرمافزار مدیریت کلاستر که کنترل زمانبندی کار و تخصیص منابع را برعهده دارد.
یک کلاستر چگونه کار میکند؟
وقتی یک برنامه یا وظیفه (task) به کلاستر ارسال میشود، نرمافزار مدیریت کلاستر تعیین میکند کدام گرهها منابع در دسترس دارند و کار را به آن گرهها تخصیص میدهد. سپس دادههای کار به گرههای تخصیص داده شده توزیع میشود و هر گره روی بخشی از کل کار، کار میکند. گرهها با یکدیگر ارتباط برقرار کرده و کار خود را هماهنگ میکنند آنهم هنگامی که برنامه را پردازش میکنند. این مدل پردازش توزیع شده به کلاسترها اجازه میدهد که در مقایسه با یک کامپیوتر تکی، به عملکرد بسیار بالاتر رسیده باشند. کلاستر به عنوان یک سیستم با عملکرد بالای یکپارچه به کاربر نهایی نمایش داده میشود.
مزایای کلاستر یا خوشه کامپیوتری چیست؟
برخی از مزایای خوشه کامپیوتری نسبت به کامپیوترهای تنها عبارتند از:
- عملکرد بالاتر: جمع کل قدرت پردازش و حافظه تمام گرهها بسیار بیشتر است.
- مقاومت در برابر خطا: در صورت خرابی یک گره، کلاستر بر روی گرههای باقیمانده ادامه مییابد.
- قابلیت مقیاسپذیری: گرهها در صورت نیاز به خوشه اضافه میشوند تا عملکرد و ظرفیت آن افزایش یابد.
- توجیه اقتصادی: کلاسترها بیشتر از اجزای سختافزاری معمولی و با استفاده از شبکههای استاندارد استفاده میکنند. بنابراین هزینه زیادی ندارند.
انواع خوشه بندی
انواع مختلفی از خوشه های کامپیوتری وجود دارد که هر کدام از آنها دارای امتیازات غیر کاربردی خاصی هستند. در واقع، این انواع بیشتر به ما کمک می کنند تا راه های متعددی را که می توانیم خوشه های کامپیوتری را پیکربندی کنیم، درک کنیم. در عمل، انواع مختلف خوشه می توانند همزمان وجود داشته باشند. به عنوان مثال، یک خوشه محاسباتی متعادل کننده بار می تواند یک پیکربندی Fail-server برای خوشه مدیریتی خود داشته باشد.
۱- Fail-over یا High Availability Cluster
در پیکربندی Fail-over، سرویسها در یک گره محاسباتی اجرا میشوند در حالی که گره دیگر منتظر میماند تا در طول قطعها کنترل شود که اغلب برای افزودن انعطاف پذیری از کار افتادگی استفاده می شود. اگر هر سرویس گره اصلی با مشکل مواجه شود، گره مدیر IP مجازی را به گره پشتیبان خود منتقل می کند. همچنین، گره از کار افتاده دسترسی به داده ها را به حالت آماده به کار از دست می دهد. این به جلوگیری از خطر نوشتن چندگانه در فایل های تکراری کمک می کند. بنابراین، هنگامی که گره پشتیبان کار را به دست گرفت، اقدامات لازم را برای برقراری مجدد خدمات انجام می دهد. برای مثال، بررسی یکپارچگی داده ها، اعمال مجدد ورودی های مجلات غیرمتعهد، و ... . تراکنش هایی که در حین قطعی در حال انجام بودند با از کار افتادگی مواجه خواهند شد. بنابراین، تا زمانی که خوشه دوباره پیکربندی شود، مدتی از کار افتادگی را مشاهده خواهیم کرد. سپس، طراحی چنین خوشه ای باید به حداکثر زمان خرابی قابل قبول دسترسی داشته باشد. این پیکربندی زمانی مناسب است که سیستمهای نرمافزار از نمونههای سرویس همزمان به طور مداوم پشتیبانی نمیکنند. مزیت اصلی خوشه های از کار افتاده این است که نیازی به تغییرات در نرم افزار موجود ندارند. برای لینوکس، پیاده سازی منبع باز شناخته شده لینوکس HA است. با این حال، تعداد انگشت شماری نرم افزار تجاری از Legato، Veritas، Oracle، IBM و دیگران وجود دارد.
۲- تعادل بار
در خوشه متعادل کننده بار، بار بین گره های محاسباتی موجود توزیع می شود. تکنیکهای توزیع بار متفاوت است، دور زدن درخواستها یا اتصالات کاربر رایجتر است. هر چه تراکنشها بیشتر مستقل از یکدیگر باشند، بهتر است. این بدان معناست که ما می خواهیم گره های محاسباتی تا حد امکان از یکدیگر مستقل باشند. یک تراکنش از یک گره نباید منتظر تراکنش دیگری در میزبان دیگر باشد. این مفهوم موازی است، ما یک آموزش خوب در مورد پردازش موازی داریم که نحوه عملکرد آن را نشان می دهد. متعادل کردن بار مقرون به صرفه تر از خرابی است. همانطور که گره های محاسباتی بار را به اشتراک می گذارند، توان عملیاتی کل تراکنش بهبود می یابد. در رویدادهای شکست گره، متعادل کننده بار درخواست ها را به گره های آنلاین باقیمانده توزیع می کند. این ممکن است باعث کاهش سطح خدمات شود. بنابراین، طراحی یک خوشه متعادل کننده بار، حداکثر تلفات عملکرد قطع را در نظر می گیرد. بهترین بخش این است که ما می توانیم عملکرد کلی را با اضافه کردن گره های پردازشی افزایش دهیم. اشتراک گذاری همزمان داده ها به اقدامات تنظیمی بسیار خاصی برای جلوگیری از ناهماهنگی نیاز دارد.
۳- محاسبات با عملکرد بالا - HPC
برای محاسبه بارهای کاری شدید، خوشه های محاسباتی با کارایی بالا وجود دارد. در این نوع خوشه، ما می خواهیم همه منابع محاسباتی موجود در حال اجرا باشند. جنبه های اصلی آن عبارتند از:
- پردازش محدود به CPU، به عنوان مثال، محاسبات فشرده CPU
- انتقال داده های عظیم
- ارتباط با تاخیر کم بین گره ها برای شبیه سازی حافظه مشترک بین گره ها
- جریان داده می تواند به صورت متوالی از طریق چندین گره محاسباتی اجرا شود
این ویژگی ها در بسیاری از کاربردهای فنی و علمی مشترک هستند. استفاده از آن شامل پیش بینی آب و هوا، دینامیک سیالات، طراحی دارو، و مزارع رندرینگ می باشد. در گذشته، آنها به ابررایانه های اختصاصی اختصاصی نیاز داشتند. امروزه، ابررایانه ها را می توان با استفاده از صدها (یا هزاران) گره محاسباتی مجهز به CPUهای کالایی ساخت. برخی ممکن است دارای میلیون ها هسته CPU باشند که بر روی هزاران سرور توزیع شده اند. فهرست 500 ابرکامپیوتر برتر، سیستمهای قویتر غیر توزیعشده در جهان را رتبهبندی میکند. اولین نگرانی طراحی در این نوع خوشه ها، قدرت پردازش خام و تأخیر کم شبکه است. بسیاری از سیستم ها قدرت پردازش GPU را به هسته های خود اضافه می کنند. همچنین، طراحی آن به نحوه برنامه ریزی بار در میان گره ها برای بازده بالاتر توجه می کند.
چالش های خوشه بندی
واضح ترین چالشی که خوشه بندی دارد، افزایش پیچیدگی نصب و نگهداری است. یک سیستم عامل، برنامه کاربردی و عوامل وابسته به آن باید هر کدام در هر گره نصب و به روز شوند. اگر گرههای خوشه همگن نباشند، این موضوع حتی پیچیدهتر میشود. استفاده از منابع برای هر گره نیز باید به دقت نظارت شود، و لاگ ها باید جمع شوند تا اطمینان حاصل شود که نرم افزار به درستی عمل می کند. علاوه بر اینها، مدیریت ذخیره سازی سختتر می شود. یک دستگاه ذخیرهسازی مشترک باید از بازنویسی گرهها با یکدیگر جلوگیری کند و ذخیرههای داده توزیعشده باید همگام نگه داشته شوند.
جمع بندی
به طور خلاصه، خوشه کامپیوتری یا کلاستر به طور موثر توان چندین کامپیوتر را ترکیب کرده و عملکرد، ظرفیت ذخیرهسازی، مقاومت در برابر خطا و قابلیت مقیاسپذیری بیشتری نسبت به یک کامپیوتر تنها فراهم میکند. این مزایا باعث میشود که کلاسترها منبع ضروری برای سازمانهای تحقیقاتی، تجاری و دولتی باشند.