در فناوری اطلاعات عبارت High Availability Server به سروری گفته میشود که برای جلوگیری از دست دادن سرویس یا خرابی به جزئی جداگانه و مشابه خود نیاز دارد که در زمان رخداد بتواند جایگزین سرور یا سرورهای از دست رفته چه از لحاظ سخت افزاری و چه از لحاظ سرویس و نرم افزارهای تعریف شده گردد.
اهمیت High Availability Server
امروزه بسیاری از مشاغل طوری به دنیای اینترنت وابسته شدهاند که حتی کمترین زمان خرابی میتواند خسارتهای مالی و غیر مالی زیادی به کسب و کارها وارد کند. حتی اگر خدمات دهندگان هاست، اطمینان 99 درصدی در دسترس بودن سرور را بدهند، برای برخی مشاغل همان یک درصد ممکن است بسیار زیان بار باشد. همان طور که 30 دقیقه آف شدن در سال 2013 برای آمازون، خسارتی 2 میلیون دلاری در بر داشت.
بنابراین بهترین راه برای جلوگیری از این آسیبها، راهحلهای High Availability Server است که با توجه به ساختار پیچیده سخت افزاری و نرم افزاری آن، تمامی اجزا، با هم و مستقل از هم کار میکنند و در صورت خرابی یکی از اجزا، بقیه آیتمها از کار نمیافتند و حجم زیاد درخواستها و یا افزایش ناگهانی ترافیک را به خوبی میتواند اداره کند.
برخی از راهحلهای High Availability Server به شرح زیر هستند:
- Ultra High Performance Dedicated Servers
- Load Balanced Dedicated Servers
- Scalable Private Cloud
- Failover
- High Availability Clusters
1- Ultra High Performance Dedicated Servers
سرورهایی با کارایی بالا با توان محاسباتی زیاد به ویژه به منظور دستیابی به حداکثر عملکرد طراحی شدهاند. این سرورها به عنوان یک راه حل ایده آل برای تقسیم بار شرکت به حساب میآیند.
یک سرور اختصاصی با کارایی بالا شامل موارد زیر است:
- Single/Dual latest Intel Xeon E3 or E5 series processors
- 64GB to 256GB RAM
- 8TB to 24TB SATA II HDD with RAID 10
- Energy efficient and redundant power supply & cooling units
- Offsite Backups
توجه داشته باشید که لیست بالا، یک نمونه از ترکیب و تنظیمی است که میتواند متناسب با نیاز، شخصی سازی شود. High Availability Server
2-Load Balanced Dedicated Servers
load balancing فرایندی است که طی آن، ترافیک ورودی وب، در گروه سرورها بدون دخالت و به صورت کاملا موثر، توزیع میشود که این عمل توازن بار، توسط load balancer یا ابزارهای سخت افزاری یا نرم افزاری انجام میشود. سرورهای اختصاصی مجهز به سخت افزار یا نرم افزار، Load Balanced Dedicated Server نام دارند.
Load Balancing چگونه کار می کند؟
یک Load balancer در مقابل سرورها قرار دارد که درخواستهای بازدید را از طریق سرورها، مسیریابی میکند. هنگامی که یک کاربر از وبسایت بازدید میکند، ابتدا به Load balancer وصل شده، سپس Load balancer آنها را به یکی از سرورهای زیرساخت هدایت میکند. در صورتی که یکی از سرورها از مدار خارج شود، بلافاصله Load balancer مسیر ترافیک را به سمت بقیه سرورهای آنلاین هدایت میکند.
در صورت افزایش ترافیک وب، میتوان سرورهای جدیدی را به سرعت و به سادگی به مجموعه سرورهای load-balanced اضافه نمود. با افزودن سرور جدید، load balancer به صورت خودکار اقدام به ارسال درخواست به سمت سرور جدید مینمایند؛ بنابراین هیچ نیازی به مداخله کردن در آن نمیباشد. High Availability Server
انواع Load Balancing
Load balancing با یکی از روشهای زیر قابل اجراست:
1- Load balancing از طریق DNS: این سرویس، ترافیک وب را در سرورهای چندگانه متعادل میکند. توجه داشته باشید زمانی که ترافیک وب را از این طریق، متعادل میکنید، نمیتوانید الگوریتم Load baloncing را انتخاب کنید. همیشه از الگوریتم Round Robin برای متعادلسازی، استفاده کنید.
2- Load balancing از طریق سخت افزار: این روش پرهزینهترین روش Load balancing می باشد. در این روش از یک دستگاه اختصاصی جهت توازن بار استفاده میشود. بیشتر سیستمهای Load balancer مبتنی بر سخت افزار، از لینوکس استفاده میکنند که موجب سهولت دسترسی میگردد.
3- Load balancing از طریق نرم افزار: این روش، یکی از روشهای مطمئن جهت متعادل سازی بار در سرورها میباشد که نرم افزار، درخواستها را از طریق الگوریتمهای مختلف، متعادل میکند.
الگوریتم Load Balancing
الگوریتمهای زیادی وجود دارند که انتخاب آن، به نوع سرویس، نوع لود بالانسینگ، وضعیت شبکه و نیازهای هر شغل بستگی دارد. به طور معمول، برای سیستمهایی با load کم، روشهای ساده مانند Round Robin کافی خواهد بود، و برای سیستمهایی با بار بیشتر، روشهای پیچیدهتر، مناسبتر است.
جهت نصب load balancing بر روی windows، میتوانید به این دستورالعمل مراجعه فرمایید. High Availability Server
3- Scalable Private Cloud
یکی دیگر از راهحلهای High Availability Server، سیستم مبتنی بر ابر است که از طریق یک ساختار اختصاصی، موجب فراهم آمدن self-service و مقیاسپذیری میگردد. مقیاسپذیر بودن scalable private cloud به این معنی است که هر زمان نیاز به منابع بیشتری وجود داشته باشد، میتوان حافظه، فضای ذخیره سازی، CPU یا پهنای باند آنها را ارتقا داد.
این روش شما را قادر میسازد کامپیوترها، استوریج ها و اجزا شبکه را به بهترین شکل مورد نیاز خود، سفارشی سازی کنید.
مزایای Private Cloud
- Enhanced Security & Privacy : کلیۀ دادهها بر روی سرورهای اختصاصی با دسترسی اختصاصی نگهداری و مدیریت میشوند. در صورتی که Cloud در محل قرار داشته باشد، سرور توسط تیم فنی خودتان مانیتور میشود و اگر در دیتاسنتر قرار داشته باشد، کارشناسان آنها، سرور را مانیتور خواهند کرد. High Availability Server
- Fully Redundant Platform : یک پلتفرم private cloud، شکستهای ناشی از هارد درایو، processing power و غیره را جبران میکند؛ بنابراین اگر شما از این سیستم استفاده میکنید، برای رسیدگی به نوسانات ترافیکی، نیازی به خرید زیرساختهای اضافه ندارید.
- Efficiency & Control :با Private Cloud امکان کنترل بیشتری بر روی دادهها و زیرساختها، در اختیار شما قرار میگیرد. چون دارای منابع اختصاصی میباشد و تنها فرد مجاز، امکان دسترسی به سرور را دارد.
- Scalable Resources: هر سازمان، نیازهای تجاری و فنی خودش را دارد که بسته به اندازه سازمان، صنعت و اهداف تجارت، با سازمانهای دیگر متفاوت است. سیستم private cloud، این امکان را در اختیار شما قرار میدهد که منابع سرور را متناسب با نیازهای سازمان خود، تنظیم کنید و یا در صورت لزوم، آنها را ارتقا دهید.
معایب Private Cloud
- Cost : این روش در مقایسه با public cloud و سرور اختصاصی، گرانتر است و میبایست سرمایهگذاری زیادی برای سخت افزار و منابع در نظر گرفت. High Availability Server
- Maintenance : خرید private cloud، تنها بخشی از هزینههای آن به شمار میرود. نگهداری آن نیز هزینههای مخصوص به خود را دارد، Private Cloud نیاز به انرژی کافی، امکانات خنک کنندگی و کارشناسی برای مدیریت سرور و غیره دارد.
- Under-Utilization : حتی اگر از منابع سرور استفاده نشود، باز هم میبایست هزینههای private cloud را به صورت کامل پرداخت کنید. High Availability Server
4- Failover
Failover به معنی سوییچ کردن فوری به یک سرور یا شبکه Standby در اثر خرابی سرور یا شبکه اصلی میباشد. زمانی که مشکلی برای هاست اصلی رخ میدهد و یا نیاز به تعمیرات و نگهداری پیدا میکند، حجم کار به طور خودکار به هاست ثانویه سوییچ میشود و این عمل باید طوری یکپارچه اتفاق بیفتد که هیچ کاربری از آن باخبر نشود.
سیستم Failover بسیار دقیق است، از این رو مناسبترین گزینه برای برنامههای بسیار مهم که در آن سیستم مجبور است به صورت آنلاین و بدون هیچ لحظهای خرابی کار کند، میباشد.
Failover چگونه کار میکند؟
برخلاف تصور، تنظیم سیستم Failover بسیار ساده است. یک زیرساخت Failover شامل دو سرور یکسان، به عبارتی یک سرور اصلی و یک سرور ثانویه است. به هر دو سرور، دادههای یکسانی ارائه میشود. از یک سرور سوم نیز جهت نظارت استفاده میشود.
این سرور به صورت مداوم در حال نظارت کردن سرور اصلی میباشد و چنانچه ایرادی را شناسایی کند، DNS records را برای وبسایت بروزرسانی میکند تا ترافیک به سمت سرور ثانویه هدایت شود. به محض به کار افتادن مجدد سرور اولیه، ترافیک دوباره به سمت آن بر میگردد.
انواع Failover
1- Cold failover: در این روش، یک سیستم به عنوان پشتیبانگیری برای سیستم اصلی یکسان دیگر، عمل میکند. Cold Failover در حالت از کار افتادن سیستم اصلی رخ میدهد. زمانی که سیستم اولی خاموش میشود، سیستم دوم شروع به کار میکند. مقدار کمی خاموش ماندن در این روش به هنگام سوییچ کردن بدیهی است.
2-Hot failover: در این روش، هر دو سیستم به صورت موازی با هم کار میکنند. در Hot failover به هنگام خرابی سیستم اولیه، سیستم بکاپ به سرعت جایگزین میشود.
مزایای Failover
- Failover Server clustering یک راه حل مقیاس پذیر است. منابع را میتوان به cluster اضافه نمود و یا کم کرد.
- اگر یک سرور اختصاصی از cluster نیاز به تعمیرات و نگهداری داشته باشد، میتوان آن را متوقف نمود، زیرا بقیه سرورها، در حال کار کردن هستند. بنابراین، تعمیرات و نگهداری بر اساس این روش، بسیار ساده است.
معایب Failover
- به طور معمول، به منظور اداره کردن و نظارت، Failover Server clustering نیاز به سرورهای بیشتری دارد، بنابراین موجب افزایش زیرساختها میشود.
- Failover Server clustering انعطافپذیر نیست، به طوری که تمام انواع سرورها، قابلیت cluster شدن ندارند.
- برخی از برنامهها توسط clustered design، پشتیبانی نمیشوند.
- این روش اصلا مقرونبهصرفه نیست. High Availability Ser
5- High Availability Clusters
High Availability cluster یکی دیگر از راهحلهای High Availability Server است. مجموعهای از سرورها که برنامههای سرور را پشتیبانی میکنند و در صورت شکست هر گونه node های سرور و یا overload شدن، بتوان کمترین زمان ممکن را برای از رده خارج شدن سرور در نظر گرفت. رایجترین نوع آن active-active و active-passive است.
Active-Active High Availability Cluster
در این نوع حداقل باید دو node وجود داشته باشد، که هر دو یک سرویس یکسان را اجرا کنند. Active-Active High Availability Cluster مناسبترین نوع برای دستیابی به Load balancing واقعی است. حجم بار، بین node ها تقسیم میشود. به طور کلی، پیشرفت چشمگیری در زمان پاسخ و سرعت read/write حاصل میشود.
Active-Passive High Availability Cluster
در حالت Active-Passive High Availability Cluster نیز میبایست حداقل دو node وجود داشته باشد. هرچند که، تمامی nodeها، به صورت همزمان، فعال نیستند. node ثانویه در حالت passive یا standby باقی میماند. به طور کلی این حالت برای failover cluster environment مناسب است.
مزایای High Availability Cluster
- Protection Against Downtime : توسط راهحلهای HA، در صورت غیرفعال شدن سرور، کلیۀ سرویسها به سمت هاست فعال، منتقل میشوند. هرچه سریعتر، سرور دوباره به حالت آنلاین برگردد، به همان نسبت سریعتر میتوان روال عادی کار را در پیش گرفت. High Availability Server
- Optimum Flexibility : راهحلهای HA انعطاف پذیری بالایی را ارائه میدهند، به خصوص اگر بیزینس نیاز به در دسترس بودن 24 ساعته داشته باشد.
- Saves Downtime Cost : هرچه سریعتر، سرور دوباره به حالت آنلاین برگردد، به همان نسبت سریعتر میتوان روال عادی کار را در پیش گرفت. بنابراین، بیزینس شما هیچگاه به صورت غیر فعال در نمیآید.
- Easy C-ustomization : با استفاده از راهحلهای HA، سوییچ کردن به سرور Falover تنها چند ثانیه زمان میبرد و دوباره روال عادی کار از سر گرفته میشود. در ضمن امکان سفارشی سازی HA cluster با توجه به نیازهای هر بیزینس وجود دارد. حتی میتوان بهروزرسانی دادهها را در عرض چند دقیقه و یا چند ثانیه انجام داد. به علاوه، ورژن را نیز میتوان با توجه به نیازها مشخص نمود. High Availability Server
معایب High Availability Cluster
- Continuous Grow In Infrastructure : به سرورها و سخت افزارهای زیادی نیاز است تا بتوان سیستم Failover و Load balancing را انجام داد که همین امر موجب افزایش زیرساختها میشود.
- Application Not Supported : با این که HA clustering، در خصوص تمامی سخت افزارها، کاملا انعطاف پذیر میباشد، ولی برخی نرم افزارها را نمیتواند پشتیبانی کند.
- Expensive ا: HA clustering به هیچ عنوان یک راه حل مقرونبهصرفه به شمار نمیرود، هرچه سیستم پیچیدهتر باشد، هزینه آن نیز بالاتر میرود. High Availability Server