CDN ابری

منظور از Cluster چیست؟ راهنمایی کامل در فرآیند کلاسترینگ

shahin شاهین نوعی
21 بازدید | 0 دیدگاه | 23 شهریور 1401
/storage/post-images/1661230635_2022-08-23_1656781915_2022-07-02_02-min.png
سرفصل های مهم
منظور از Cluster چیست؟ راهنمایی کامل در فرآیند کلاسترینگ

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

Cluster چیست؟

یک کلاستر ( Cluster ) گروهی از دو یا چند کامپیوتر یا سرور است ( یا حتی گره ) که به طور موازی برای رسیدن به یک هدف مشخص در کتار هم فعالیت می کنند. این می تواند شامل کارهای تعداد زیادی کارمند (افراد) و یا وظایف موازی سازی شده آنها باشد که بین چندین گره در یک کلاستر توزیع و پخش شده اند.

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

برای ایجاد یک کلاستر از سرورها، چند گره ( node ) مجزا باید در یک شبکه به یکدیگر متصل شوند تا ارتباطات بین گره ای را ممکن سازند. در ادامه می توان از یک نرم افزار کلاسترینگ سرورها برای متصل کردن گره ها به یکدیگر و تشکیل یک کلاستر استفاده کرد.

ممکن است این کلاستر یک دستگاه ذخیره سازی ( storage ) اشتراکی و یک فضای داخلی در هر گره داشته باشد. معمولاً، حداقل یک گره به عنوان رهبر تعریف و طراحی می شود و به عنوان نقطه ورود به کلاستر عمل می کند.

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

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

انواع رایانش کلاسترینگ

کلاسترهای کامپیوتری می توانند در این سه دسته قرار گیرند:

  1. دسترسی بالا ( highly available ) و یا fail-over
  2. توزیع بار ( load balancing )
  3. رایانش یا پردازش با عملکرد بالا

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

چهار مزیت اصلی یک کلاستر

رایانش کلاسترینگ دارای مزایای بسیاری است از جمله دسترسی پذیری بالا، توزیع بار و قابلیت مقیاس پذیری، و ارتقای عملکرد. بگذارید با جزئیات بیشتری این مزایا را بررسی کنیم...

دسترسی بیشتر ( High Availability )

زمانی که بحث از قدرت یک سیستم به میان می آید، باید چند فاکتور مهم را در نظر گرفت:

  • دسترسی ( Availability ): منظور دسترسی پذیری یک سیستم یا سرویس در یک بازه زمانی است که گاهاً آن را با آپ تایم در بازه یک ساله بیان می کنند، مثل آپ تایم 99.99% .
  • برگشت پذیری یا ارتجاع ( Resilience ): یعنی یک سیستم چطور از یک شکست یا failure باز می گردد؟
  • تحمل خطا ( Fault tolerance ): توانایی یک سیستم در ادامه خدمت رسانی در زمان های شکست یا قطعی.
  • اطمینان ( Reliability ): احتمالی که یک سیستم به همان اندازه انتظار عمل کند.
  • فراوانی ( Redundancy): تعداد نسخه های کپی از منابع برای ارتقای اطمینان سیستم.

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

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

این کار را می توان با اجرای زودهنگام اپلیکیشن روی یک سیستم ثانویه انجام داد ( که ممکن است ترافیک داشته باشد یا نداشته باشد ) و یا از یک سیستم بی کار استفاده کرد که از قبل برای اپلیکیشن پیکربندی شده بوده است.

این پیکربندی ها به ترتیب active-active و active-passive نام دارند. زمانی که یک failure اتفاق می افتد، یک سیستم active-active می تواند به سرعت و بلافاصله به دستگاه دوم سوییچ کند؛ در حالی که یک سیستم active-passive زمانی جایگزین خواهد شد که دستگاه دوم روشن یا زنده ( live ) باشد.

کلاسترهای کامپیوتری شامل بیش از یک گره هستند که به طور همزمان یک فرآیند یکسان را پردازش می کنند. بنابراین نوعی سیستم active-active به شمار می آیند.

این سیستم ها اغلب تحمل خطای بالایی داشته و در اصل برای مدیریت و اداره ی وظایف در شرایط از کار افتادگی یک گره طراحی شده اند.

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

این کار برای این است که اگر گره رهبر از کار بیافتد، رهبر دوم بتواند کار آن را ادامه دهد.

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

میزانی از downtime یک سیستم به هر سازمان یا کسب و کاری نزدیک است. یعنی هر سایت یا اپلیکیشنی ممکن است این زمان های قطعی را تجربه کرده و مشتریان خود را از دست بدهد.

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

استفاده از یک کلاستر می تواند این مشکلات را برطرف کرده و دسترسی پذیری بالای یک سرویس وب را تضمین کند. کلاسترهایی با این ویژگی ها به کلاسترهای highly available یا fail-over معروف هستند.

توزیع بار ( Load balancing )

توزیع بار  عمل توزیع ترافیک بین تمام گره های یک کلاستر برای افزایش و بهینه سازی عملکرد و جلوگیری از دریافت حجم نامناسبی از ترافیک و بار کاری توسط یک گره واحد است.

یک load balancer را می توان روی یک گره رهبر و یا به صورت کاملاً جدا از کلاستر نصب کرد. با اجرای متوالی و دوره ای تست های سلامت گره ها ( سرورها ) در یک کلاستر، لود بلنسر می تواند تشخیص دهد که آیا یک گره از کار افتاده یا نه؛ اگر این اتفاق رخ داده باشد، این ابزار ترافیک ورودی بعدی را به سمت سایر گره های فعال در کلاستر هدایت خواهد کرد.

با اینکه کلاسترهای سرورها ذاتاً دارای قابلیت توزیع بار نیستند، اما می توان این قابلیت را برای آن فعال کرد. به این پیکربندی " load balancing " گویند که در واقع در دسته کلاسترهای highly available قرار می گیرد.

برای کسب اطلاعات بیشتر در خصوص توزیع بار به مقاله مربوطه در بلاگ میزبان کلود مراجعه کنید.

مقیاس پذیری ( Scaling )

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

مقیاس دهی افقی ( یعنی به داخل و خارج ) به این معناست که اقدامات و وظایف موازی و اضافی روی سیستم اجرا می شوند.

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

عملکرد ( performance )

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

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

کلاسترهای HPC یا High performance computing موازی سازی عملیات پردازشی را برای رسیدن به بالاترین سطح عملکرد ممکن می سازند. یک اَبَر کامپیوتر نمونه ای بارز از یک کلاستر HPC است.

چالش های پیش روی کلاستر سازی

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

این موضوع حتی زمانی که گره های موجود در کلاستر همگن یا از یک نوع نباشند، پیچیده تر نیز می شود.

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

برای حل اینگونه چالش ها نیز راهکارهایی موجود است؛ از جمله کانتینر سازی اپلیکیشن و میزبانی در ابرها که در ادامه به آن اشاره خواهیم کرد...

کلاسترهای ابری

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

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

اما کلاستر در رایانش ابری چیست؟

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

استفاده از ابر حجم کاری بسیاری را از دوش ادمین ها برداشته و کار تنظیم و پیکربندی یک کلاستر را بسیار ساده تر کرده است.

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

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

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

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

کانتینرها و رابطه آنها با کلاستر

کانتینرها بار سنگینی را برای راه اندازی یک اپلیکیشن از دوش صاحبین کسب و کارها برداشته اند. به کمک این تکنولوژی تفاوت بین محیط های محلی و از راه دور را می توان نادیده گرفت ( البته با استثائاتی چون معماری CPU ).

وابستگی های اپلیکیشن ها دیگر درون کانتینر قرار گرفته و امنیت توسط جداسازی سازی اپلیکیشن از هاست ارتقا می یابد.

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

می توانید در بلاگ میزبان کلود اطلاعات جامعی در خصوص میکروسرویس ها نیز کسب کنید.

اما این کانتینرها چه ارتباطی با کلاستر دارند؟

یک سناریوی رایج: سازمان شما یک اپلیکیشن وب ساده راه اندازی می کند؛ بخش های Front-end و Back-end به شکل میکرو سرویس ساخته می شوند که به صورت مجزا و مستقل از یکدیگر به شکل کانتینرهای واحد عمل کرده و از طریق HTTPS با یکدیگر ارتباط برقرار می کنند. حال زمان آن است که اپلیکیشن خود را اجرا کنید.

اولین راهکاری که باید امتحانش کنید، فراهم سازی یک ماشین مجازی در ابر است تا کانتینر خود را اجرا کنید.

این روش جواب می دهد اما مشکلاتی نیز دارد.

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

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

خوشبختانه یک کلاستر هر دوی این مشکلات را برطرف خواهد کرد.

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

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

راهکار میزبان کلود

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

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

جمع بندی

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

 




پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
برچسب ها :
نویسنده مطلب شاهین نوعی

Hi everyone, my name is Shahin Noei; I'm so glad to be sharing with you my latest knowledge of IT infrastructure and I warmly invite you to ask any of your questions in my linkedin page. I've been working in digital marketing field for the last 5 years and I've been in touch with some IT businesses long enough to get the most out of the newest technologies in this modern era.

منظور از Cluster چیست؟ راهنمایی کامل در فرآیند کلاسترینگ 0 دیدگاه

مطالب را قبل از دیگران مطالعه کنید

دریافت جدیدترین مطالب در ایمیل شما

ایمیل شما به صورت کاملا محرمانه نزد ما محفوظ است
ما برای شما هرزنامه ارسال نمی کنیم