کلاستر کردن سرور cluster server چیست و چه کارهایی انجام میدهد.
معنی لغوی کلاسترینگ یعنی خوشه بندی .کلاستر کردن عبارت است از کار کردن چند سیستم به عنوان یک سیستم واحد به طوریکه بازدهی یک سیستم چند برابر میشود. کلاستر کردن در زمینه های مختلف با اهداف خاصی مورد استفاده قرار میگیره.
من این مفهوم رو در قالب جند مثال عرض میکنم تا هم یه جورایی کاربردش مشخص بشه و هم مفهوم آن :
به عنوان مثال برای cache server به این صورت است که صفحات در هارد سرورهای مختلف دخیره می شوند و درخواست کلاینت به نزدیکترین سرور می رسد .
حال اگر این سرور مشغول بود این درخواست به سرور بعدی می رود یا اصلا ممکن است سایت مورد نظر در آن سرور نباشد به این ترتیب سرور اول کلاینت را به سروری هدایت می کند که حاوی این صفحه باشد بدین ترتیب هم حجم هارد را چند برابر کرده ایم و هم سرعت بازیابی صفحه چند برابر شده است.
بحث کلاستر کردن بر روی سرورها به این مفهوم است که گروهی از سرورها باهم یک برنامه خاصی رو اجرا میکنند که هر سرور به عنوان یک خوشه بخشی از کاررو انجام میده که نتیجه آن سرعت بالای اجرا می باشد زیرا بار محاسباتی بین این سرورها توزیع میشه که اصطلاحا بهش load balancing میگن علاوه بر این مزیت دیگه ای که درحضور چندسرور وکلاستر کردن وجود داره اینه که اگر یه سرور از کار بیفته دیگر سرورها باید به درخواستها پاسخ بدن که به این عمل failover گفته میشه.
اکثر وب سرورها از این ساختار استفاده میکنند چون تعداد requst های آنها بالاست.
سرویس کلاستر کردن بیشتر برای سازمان و شرکتهایی به کار میرود که برنامه ی آنها تحت هر شرایطی باید اجرا شود و در حالت اجرا باقی بماند حتی زمانی که یکی از سرورها از سرویس خارج شده باشد. سرورهای کلاستر بیشتر برای برنامه هایی به کار میروند که مدت زمان زیادی را در حافظه میمانند و یا تعویض داده ی بیشتری را انجام میدهند که به آنها Stateful Applications گفته میشود که میتوان سرورهای بانک اطلاعاتی نظیر Microsoft SQL یا سرورهای ایمیل مایکروسافت را نام برد.
Failover Clustering چیست ؟
Failover کلاستر به گروهی از سرورها گفته می شود که به گونه ای پیکربندی شده اند که از به وجود آمدن هرگونه Failure در سرورها جلوگیری می کنند و در صورت بروز Failure در سرورها سرویس دهی از بین نرفته و کلاینت ها همچنان می توانند از سرویس ها استفاده کنند. سرویس ها یا نرم افزارهای کاربردی که توسط Failover Cluster محافظت می شوند به نامها و اسامی مختلفی شناخته می شوند که از آن جمله می توان به Roles ، Clustered Roles ، Clustered Services ، Clustered Applications ، Highly Available Services و … اشاره کرد. به هر کدام از سرورهایی که در Failover Cluster سرویس دهی می کنند همانند سرورهایی که در NLB Cluster سرویس دهی می کنند یک Node گفته می شود. در یک Failover Cluster همانطور که از نامش هم پیداست در صورتیکه یکی از Node ها Fail شود بلافاصله یک Node دیگر جایگزین Node مورد نظر و Role تعریف شده می شود و در لفظ فنی سرور جدید بر روی سرور قدیمی Fail Over می کند. اگر فقط یک Role در حالت Failed قرار بگیرد و کل Node از دسترسی خارج نشود و Fail نشود ، فقط همان Role از طریق سرویس Failover Clustering ابتدا Restart می شود و در صورتیکه کارساز نشد کل Node توسط Node دیگری در صورت نیاز Fail Over می شود. در این حین کاربرانی که از سرویس ها استفاده می کنند
تنها لحظه ای ممکن است احساس کنند مشکلی در ارتباط به وجود آمده است و نتیجه Fail Over شدن به سرعت برای کاربران قابل لمس خواهد بود.
تفاوت NLB Clustering و Failover Clustering در چیست ؟
تفاوت های مهمی در میان سرویس NLB Clustering و Failover Clustering وجود دارد. اول از همه در Failover Cluster فقط یک سرور در لحظه به درخواست های موجود در لحظه پاسخ می دهد ، این در حالی است که در NLB Clustering همه Host ها یا Node های موجود در کلاستر می توانند در لحظه به درخواست های کلاینت ها سرویس دهی کنند. در NLB Clustering هر کدام از سرورها اگر قرار باشد اطلاعاتی را ذخیره سازی کنند در حافظه داخلی سرور این عملیات ذخیره سازی انجام می شود در حالیکه در Failover Clustering چیزی به نام Local Storage وجود نخواهد داشت و سرورهای موجود در Failover Cluster داده هایی که می خواهند بنویسند یا بخوانند را از طریق یک فضای ذخیره سازی اشتراکی یا Shared Storage در شبکه مانند فضاهای Logical Unit Numbers یا LUN های موجود در iSCSI یا Fiber Channel در SAN Storage ها تامین می کنند. این مشترک بودن فضای ذخیره سازی داده ها باعث می شود که فقط یک منبع برای ذخیره سازی داده های سرورهای موجود در Failover Cluster وجود داشته باشد و این از به وجود آمدن تناقض و ناهماهنگی در این داده ها جلوگیری می کند. نتیجه گیری کلی در درک تفاوت بین NLB Cluster و Failover Cluster در این است که در بحث Failover Clustering اولویت با دسترسی پذیری یا Availability سرویس ها است و در محل هایی استفاده می شود که کلاینت ها قرار است داده ای را بروز رسانی کنند ، شما معمولا سرورهایی مانند فایل سرور ، Database سرور ، Mail Server و یا پرینت سرور و در نهایت Virtual Machine های خودتان را می توانید در Failover Cluster قرار دهید ،
بر خلاف این حالت شما سرویس هایی را در NLB Cluster قرار می دهید که می دانید داده ای برای بروز رسانی وجود ندارد ، بیشترین استفاده از NLB Cluster ها در وب سرورها است. در پایین می توانید شماتیک کلی یک Failover Cluster را بصورت کامل مشاهده کنید که در ساده ترین حالت ممکن با دو عدد Node ایجاد شده است :
معرفی سرویس Failover Clustering در ویندوز سرور ۲۰۱۲
نیازمندی های سخت افزاری برای راه اندازی Failover Clustering
برای راه اندازی سرویس Failover Clustering به دو سطح تجهیزات نیاز داریم ، اولین سطح در سرورها و دومین سطح در دستگاه های ذخیره سازی شبکه است ، شما در محیط های واقعی طبیعتا بایستی همه این موارد را بصورت فیزیکی داشته باشید اما در اینجا ما در ITPRO همه این موارد را بصورت مجازی انجام می دهیم که در سناریوی بعدی حتما مشاهده خواهید کرد ، اما بصورت کلی شما به موارد زیر برای راه اندازی Failover Clustering نیاز دارید
نیازمندی های سرور : برای راه اندازی Failover Clustering شما نیازمند حداقل دو عدد سرور فیزیکی با حداقل دو عدد کارت شبکه فیزیکی هستید. هر کدام از این سرورها به عنوان یک Node در کلاستر شناخته می شود ، توجه کنید که حداکثر تعداد Node ای که شما می توانید در یک Failover Cluster داشته باشید ۶۴ عدد می باشد. اگر شما می خواهید مثل unity در ITPRO تنظیمات را بصورت مجازی انجام دهید تا با روند ایجاد کردن Failover Clustering آشنا شوید می توانید حتی یک Single Node Cluster با یک سرور ایجاد کیند و یا اینکه در محیط مجازی سازی مثل VMware Workstation دو عدد ویندوز سرور ۲۰۱۲ راه اندازی کنید و تمامی مواردی که برای راه اندازی Failover Clustering نیاز دارید در آنها راه اندازی کنید.
نیازمندی های ذخیره سازی یا Storage : برای راه اندازی Failover Cluster شما نیاز به یک دستگاه SAN Storage یا یک هارد دیسک SAS به اشتراک گذاشته شده در شبکه دارید . شما می توانید حتی Virtual Machine هایی که با Hyper-V در ویندوز سرور ۲۰۱۲ ایجاد می کنید را در این فضاهای اشتراک ذخیره سازی کنید ( هر چند دو زارم Hyper-V رو به عنوان یک مجازی ساز واقعی قبول ندارم ولی مایکروسافته دیگه D: ) . توجه کنید که شما می توانید در خصوص SAN Storage ها از طریق همین لینک اطلاعاتی بدست بیاورید ، در ضمن ما در محیط های لابراتوار این امکان را داریم که کلیه تجهیزات مورد نیاز اعم از SAN Storage را نیز مجازی سازی کنیم.
توجه کنید که راه اندازی کردن سرویس Failover Clustering در محیط های واقعی هزینه های نسبتا زیادی را در بر دارد و برای محیط هایی پیشنهاد می شود که حاضر هستند هزینه های آن را هم پرداخت کنند. اگر می خواهید در محیط های واقعی این سرویس را راه اندازی کنید پیشنهاد می شود که شما سرورهای سخت افزاری مناسب که دارای کارت شبکه های مخصوص اتصال به SAN Storage ها باشند ، SAN Storage واقعی که مثلا از برند هایی مثل HP یا .. باشند . حتی در محیط های واقعی برای راه اندازی چنین سرویس هایی برای هر کدام از تجهیزات اعم از سویچ ها و روترها را نیز بصورت Redundant باید در نظر بگیریم. شما می توانید در نسخه های Standard و Datacenter از ویندوز سرور ۲۰۱۲ یا ویندوز سرور ۲۰۱۲ نسخه R2 سرویس Failover Clustering را راه اندازی کنید. در یک Failover Cluster همه Node های موجود بایستی به عضویت یک Active Directory Domain در بیایند ، در نهایت مشابه NLB Clustering قابلیت Failover Clustering نیز بایستی بر روی همه سرورهای موجود در یک کلاستر نصب شده باشد