در زیرساخت‌های امروزی، در دسترس بودن سرویس‌ها یکی از مهم‌ترین الزامات شبکه و امنیت محسوب می‌شود. قطع شدن یک فایروال، سرور، لینک اینترنت یا سرویس حیاتی می‌تواند باعث توقف فعالیت کاربران، اختلال در سرویس‌های سازمانی و ایجاد هزینه‌های قابل‌توجه شود. به همین دلیل سازمان‌ها از روش‌هایی استفاده می‌کنند که احتمال قطعی سرویس را به حداقل برساند. یکی از مهم‌ترین این روش‌ها High Availability (HA) است. اما چرا High Availability در طراحی شبکه‌های مدرن اهمیت بالایی دارد؟

در این مقاله مفهوم HA ، نحوه عملکرد، انواع معماری‌ها، مکانیزم Failover و کاربردهای آن را به‌صورت تخصصی بررسی می‌کنیم.

 

تعریف High Availability

High Availability یا HA مجموعه‌ای از معماری‌ها، فناوری‌ها و مکانیزم‌هایی است که برای افزایش دسترس‌پذیری سرویس‌ها و کاهش زمان قطعی (Downtime) طراحی شده‌اند.

هدف اصلی HA این است که در صورت خرابی یک جزء از زیرساخت، سرویس بدون ایجاد اختلال قابل‌توجه به فعالیت خود ادامه دهد. به عبارت دیگر، اگر یکی از تجهیزات یا سرویس‌های حیاتی دچار مشکل شود، یک سیستم جایگزین به‌صورت خودکار مسئولیت ادامه سرویس را بر عهده می‌گیرد.

به‌عنوان مثال:

فرض کنید در یک سازمان فقط یک فایروال وجود دارد. اگر این فایروال دچار خرابی سخت‌افزاری شود:

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

اما در صورتی که ساختار High Availability (HA) پیاده‌سازی شده باشد:

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

این فرآیند معمولاً در مدت زمان بسیار کوتاهی انجام می‌شود.

 

چرا High Availability اهمیت دارد؟

در شبکه‌های سازمانی، Availability (دسترس‌پذیری) یکی از مهم‌ترین شاخص‌های طراحی زیرساخت محسوب می‌شود. حتی چند دقیقه قطعی در سرویس‌های مهم مانند فایروال، VPN، سرورها یا سیستم‌های مالی می‌تواند منجر به اختلال در فرآیندهای عملیاتی و ایجاد هزینه مستقیم و غیرمستقیم برای سازمان شود.

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

در واقع، HA با هدف حذف Single Point of Failure (SPOF) و کاهش Downtime طراحی می‌شود و تضمین می‌کند که سرویس‌ها در صورت بروز خطا، بدون وقفه قابل توجه به کار خود ادامه دهند.

 

Single Point of Failure (SPOF) چیست؟

SPOF به نقطه‌ای در شبکه گفته می‌شود که در صورت خرابی آن، کل سرویس یا بخش مهمی از سیستم از کار می‌افتد.

مثال:

  • یک فایروال بدون Backup
  • یک لینک اینترنت بدون Failover
  • یک سرور DNS تنها

هدف اصلی High Availability حذف همین نقاط حساس است.

 

Single Point of Failure

 

مزایای High Availability عبارت‌اند از:

  • کاهش Downtime (کاهش زمان قطعی سرویس)

مهم‌ترین هدف High Availability، به حداقل رساندن زمان از دسترس خارج شدن سرویس‌ها است. در معماری‌های استاندارد، Failover باید به‌گونه‌ای طراحی شود که انتقال سرویس در کمترین زمان ممکن و با حداقل اختلال برای کاربران انجام شود.

 

  • افزایش پایداری و تاب‌آوری شبکه (Resilience)

با استفاده از ساختارهای افزونه (Redundant)، خرابی یک تجهیز یا سرویس، کل شبکه را تحت تأثیر قرار نمی‌دهد. در نتیجه، این موضوع باعث می‌شود شبکه در برابر خطاهای سخت‌افزاری، نرم‌افزاری یا حتی اختلالات لینک مقاوم‌تر باشد.

 

  • افزایش قابلیت اطمینان سرویس‌ها (Reliability)

در یک زیرساخت مجهز به HA، سرویس‌ها رفتار قابل پیش‌بینی‌تری دارند و احتمال از کار افتادن کامل یک سرویس به‌شدت کاهش پیدا می‌کند. این موضوع برای سرویس‌های حیاتی مانند Authentication، VPN و Firewall بسیار مهم است.

 

  • حفظ تجربه کاربری (User Experience Continuity)

یکی از اهداف مهم HA این است که کاربران نهایی حتی‌الامکان متوجه وقوع Failover نشوند. در صورت طراحی صحیح (به‌خصوص با Session Synchronization)، ارتباطات فعال مانند VPN، دانلودها یا نشست‌های وب بدون قطع شدن ادامه پیدا می‌کنند.

 

  • تداوم عملیات سازمانی (Business Continuity)

سازمان‌هایی که سرویس‌های حیاتی مانند ایمیل، ERP، بانک‌های اطلاعاتی یا سیستم‌های مالی دارند، HA نقش مستقیم در استمرار فعالیت کسب‌وکار دارد. در واقع HA بخشی از استراتژی کلی Business Continuity و Disaster Recovery محسوب می‌شود.

 

 High Availability چگونه کار می‌کند؟

در معماری‌ High Availability معمولاً چند مؤلفه اصلی وجود دارد:

  • سیستم فعال (Primary)
  • سیستم پشتیبان (Secondary)
  • مکانیزم پایش سلامت (Health Monitoring)
  • مکانیزم Failover
  • همگام‌سازی اطلاعات (Synchronization)

 

مرحله اول

دستگاه اصلی سرویس‌ها را پردازش می‌کند.

مرحله دوم

سیستم پشتیبان دائماً وضعیت دستگاه اصلی را بررسی می‌کند.

مرحله سوم:

 در صورت تشخیص خرابی:

  • قطع برق
  • خرابی سخت‌افزار
  • از کار افتادن سرویس
  • قطع لینک شبکه

سیستم جایگزین فعال می‌شود.

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

 

 Failover چیست؟

یکی از مهم‌ترین اجزای معماری High Availability (HA) مکانیزم Failover است.

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

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

 

مراحل Failover

در یک ساختار HA، فرآیند Failover معمولاً شامل مراحل زیر است:

  • پایش مداوم سلامت سیستم اصلی (Health Monitoring)

سیستم پشتیبان به‌صورت مداوم وضعیت دستگاه Active را بررسی می‌کند.

  • تشخیص خرابی یا عدم پاسخ‌دهی

در صورت قطع ارتباط، Crash شدن سرویس یا عدم پاسخ به Health Check، وضعیت خرابی تشخیص داده می‌شود.

  • فعال‌سازی سیستم جایگزین (Standby to Active Transition)

دستگاه پشتیبان وارد حالت Active می‌شود و نقش اصلی را بر عهده می‌گیرد.

  • انتقال مسیر ترافیک و سرویس‌ها

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

  • ادامه فعالیت کاربران

در صورت وجود Session Synchronization، ارتباط کاربران بدون قطع محسوس ادامه پیدا می‌کند.

 

چه عواملی بر سرعت Failover تأثیر دارند؟

زمان انجام Failover در همه سیستم‌ها یکسان نیست و به عوامل زیر بستگی دارد:

  • نوع معماری HA (Active-Passive یا Active-Active)
  • قدرت و مدل تجهیزات سخت‌افزاری
  • کیفیت و سرعت لینک ارتباطی بین نودها
  • میزان و دقت Session Synchronization
  • نوع سرویس‌های در حال اجرا (VPN، Web, VoIP و…)

در سیستم‌های حرفه‌ای (مثل فایروال‌های Enterprise)، Failover می‌تواند در حد چند ثانیه یا حتی کمتر انجام شود.

نکته:

Failover همیشه به معنی «صفر شدن قطعی» نیست. در برخی سناریوها ممکن است:

  • یک قطعی بسیار کوتاه (Micro-Downtime) رخ دهد
  • برخی Sessionهای حساس نیاز به Re-establish داشته باشند
  • یا برخی اپلیکیشن‌ها اتصال را مجدد برقرار کنند

 

تعریف Failover

 

تفاوت High Availability و Redundancy

تعریف Redundancy:

Redundancy به معنی ایجاد منابع یا تجهیزات اضافی برای جلوگیری از نقطه شکست (Single Point of Failure) است.

مثال:

  • دو منبع تغذیه
  • دو لینک اینترنت
  • دو فایروال
  • دو سوئیچ

اما موجود داشتن تجهیزات اضافه به معنی HA نیست.

 

High Availability:

High Availability علاوه بر وجود تجهیزات اضافی، شامل مکانیزم مدیریت خرابی و انتقال سرویس نیز می‌شود.

 

انواع معماری High Availability

معماری‌های High Availability (HA) معمولاً به دو مدل اصلی تقسیم می‌شوند که هرکدام بر اساس نوع استفاده از منابع و نحوه مدیریت ترافیک طراحی شده‌اند.

1. Active-Passive

در معماری Active-Passive:

  • یک دستگاه در حالت Active و در حال پردازش ترافیک است.
  • دستگاه دوم در حالت Standby قرار دارد.
  • دستگاه دوم در حالت عادی هیچ ترافیکی را پردازش نمی‌کند و فقط وضعیت سیستم اصلی را پایش می‌کند.

این مدل ساده‌ترین نوع پیاده‌سازی HA محسوب می‌شود و تمرکز اصلی آن بر پایداری و اطمینان از Failover سریع است، نه استفاده حداکثری از منابع.

مزایا:

  • پیاده‌سازی ساده و قابل مدیریت
  • پایداری بالا در محیط‌های سازمانی
  • نیاز کمتر به تنظیمات پیچیده
  • مصرف منابع پایین‌تر در حالت عادی

معایب:

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

موارد استفاده:

  • فایروال‌های سازمانی
  • سرورها و سرویس‌های حیاتی
  • زیرساخت‌هایی که پایداری مهم‌تر از Performance است

 

2. Active-Active

در معماری Active-Active:

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

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

مزایا:

  • استفاده کامل از منابع هر دو دستگاه
  • افزایش توان پردازشی (Throughput)
  • توزیع بار و کاهش فشار روی یک دستگاه

معایب:

  • پیچیدگی بیشتر در طراحی و مدیریت
  • نیاز به هماهنگی دقیق در Session Handling
  • حساسیت بالاتر در تنظیمات شبکه

موارد استفاده:

  • مراکز داده (Data Centers)
  • Load Balancerها
  • سرویس‌های پرترافیک و Cloud Environment

 

Session Synchronization چیست؟

در شبکه‌های مدرن، بسیاری از ارتباطات کاربران stateful هستند؛ یعنی فقط یک اتصال ساده نیستند، بلکه دارای وضعیت (Session State)  می‌باشند. این وضعیت شامل اطلاعاتی مانند IP مبدا و مقصد، پورت‌ها، وضعیت TCP handshake، جدول NAT  و اطلاعات احراز هویت کاربر است.

Session Synchronization در High Availability به فرآیندی گفته می‌شود که در آن این اطلاعات (بین تجهیزات Active و Standby)  یا (بین نودهای Active-Active) به‌صورت مداوم همگام‌سازی می‌شود.

در صورتی که Sessionها بین دو دستگاه همگام‌سازی نشوند، هنگام Failover سیستم جدید هیچ اطلاعی از ارتباطات قبلی کاربران نخواهد داشت. در نتیجه:

  • اتصال‌های TCP ریست می‌شوند.
  • VPN کاربران قطع می‌شود.
  • دانلودهای در حال انجام از ابتدا شروع می‌شوند.
  • تماس‌های VoIP دچار قطعی یا نویز می‌شوند.
  • NAT sessionها از بین می‌روند.

به همین دلیل در طراحی HA، صرفاً فعال بودن دستگاه دوم کافی نیست؛ بلکه باید وضعیت دقیق ارتباطات نیز منتقل شود.

 

 Session Synchronization چگونه کار می‌کند؟

در یک ساختار High Availability:

  1. دستگاه Active تمام Sessionهای فعال را ایجاد و مدیریت می‌کند.
  2. به‌صورت لحظه‌ای یا دوره‌ای، اطلاعات Session به دستگاه Standby ارسال می‌شود.
  3. دستگاه Standby یک جدول مشابه (Session Table) را در حافظه خود نگه می‌دارد.
  4. در زمان Failover، دستگاه Standby بدون نیاز به renegotiation، همان Sessionها را ادامه می‌دهد.

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

 

اطلاعاتی که Sync می‌شوند:

بسته به نوع تجهیزات (مثل فایروال‌ها)، موارد زیر معمولاً همگام‌سازی می‌شوند:

  • جدول Sessionهای TCP/UDP
  • اطلاعات NAT (Source/Destination translation)
  • وضعیت Connection Tracking
  • اطلاعات VPN Tunnel
  • وضعیت کاربران احراز هویت شده
  • Policy state در برخی سیستم‌ها

 

محدودیت‌ها Session Synchronization

با وجود Session Synchronization، همیشه همه چیز 100٪ بدون قطعی نیست. برخی موارد ممکن است همچنان باعث قطع لحظه‌ای شوند:

  • پروتکل‌هایی که Stateless نیستند
  • تغییر IP یا مسیر در سطح شبکه
  • تأخیر در Sync در لحظه Failover
  • برخی اپلیکیشن‌های حساس به reset connection

 

کاربردهای High Availability در شبکه

High Availability تنها به فایروال محدود نمی‌شود و در بخش‌های مختلف شبکه استفاده می‌شود:

  • فایروال‌ها
  • سرورها
  • دیتابیس‌ها
  • لینک‌های اینترنت
  • سیستم‌های ذخیره‌سازی
  • تجهیزات شبکه
  • سرویس‌های ابری
  • مراکز داده

 

آیا High Availability(HA) قطعی را به صفر می‌رساند؟

خیر. High Availability فقط احتمال قطعی و زمان آن را کاهش می‌دهد.

عوامل خرابی همچنان می‌توانند وجود داشته باشند:

  • خطاهای انسانی
  • خرابی همزمان چند سیستم
  • مشکلات نرم‌افزاری گسترده
  • حملات سایبری
  • طراحی نامناسب زیرساخت