تحمل پذیری خطا – Fault Tolerance به توانایی یک سیستم (کامپیوتر، شبکه، کلاستر ابری و غیره) برای ادامه کار بدون وقفه زمانی که یک یا چند جزء آن از کار می افتد، اشاره دارد.
هدف از ایجاد یک سیستم تحملپذیر خطا، جلوگیری از اختلالات ناشی از یک نقطه fail ، حصول اطمینان از در دسترس بودن بالا و تداوم تجاری برنامهها یا سیستمهای حیاتی است.
سیستمهای تحمل پذیر در برابر خطا Fault Tolerance از اجزای پشتیبان استفاده میکنند که به طور خودکار جای اجزای خراب را میگیرند و از عدم از دست دادن خدمات اطمینان میدهند.
به روشی مشابه، هر سیستم یا مؤلفهای که تنها یک نقطه خرابی است، میتواند با استفاده از افزونگی نسبت به خطا مقاوم شود.
تحمل پذیری خطا میتواند در استراتژی بازیابی بلایا disaster recovery نقش داشته باشد. برای مثال، سیستمهای تحملپذیر خطا با اجزای پشتیبان در ابر میتوانند سیستمهای حیاتی ماموریت را به سرعت بازیابی کنند، حتی اگر یک فاجعه طبیعی یا انسانی زیرساختهای فناوری اطلاعات را از بین ببرد.
تحمل پذیری خطا در مقابل در دسترس بودن بالا
در دسترس بودن بالا به توانایی سیستم برای جلوگیری از از دست دادن خدمات با به حداقل رساندن زمان خرابی اشاره دارد. این بر حسب زمان کارکرد سیستم، به عنوان درصدی از کل زمان اجرا بیان می شود. 99.999٪ زمان به کارگیری، در دسترس بودن در نظر گرفته می شود.
در بیشتر موارد، استراتژی تداوم کسب و کار شامل در دسترس بودن بالا و تحمل پذیری در برابرخطا می شود تا اطمینان حاصل شود که سازمان شما عملکردهای اساسی را در هنگام خرابی های جزئی و در صورت بروز فاجعه حفظ می کند.
در حالی که هم تحمل پذیری در برابر خطا و هم در دسترس بودن بالا به عملکرد سیستم در طول زمان اشاره دارد، تفاوتهایی وجود دارد که اهمیت فردی آنها را در برنامهریزی تداوم کسبوکار شما برجسته میکند.
برای درک بهتر تفاوت بین تحمل پذیری در برابر خطا و در دسترس بودن بالا، قیاس زیر را در نظر بگیرید. یک هواپیمای دو موتوره یک سیستم تحمل پذیر در برابر خطا است – اگر یکی از موتورها از کار بیفتد، موتور دیگر وارد می شود و به هواپیما اجازه می دهد به پرواز ادامه دهد. برعکس، خودرویی با لاستیک زاپاس بسیار در دسترس است. پنچر شدن لاستیک باعث توقف خودرو می شود، اما زمان از کار افتادن آن بسیار کم است زیرا تایر به راحتی قابل تعویض است. البته این شامل خودرو های ملی ما محسوب نمیشود
برخی از ملاحظات مهم هنگام ایجاد سیستم های Fault Tolerance و در دسترس بودن بالا در یک محیط سازمانی عبارتند از:
زمان از کار افتادن یک سیستم بسیار در دسترس دارای حداقل سطح مجاز وقفه سرویس است. به عنوان مثال، سیستمی با در دسترس بودن “99.999٪” تقریباً 5 دقیقه در سال از کار می افتد. انتظار می رود یک سیستم تحمل پذیر در برابر خطا به طور مداوم و بدون وقفه خدمات قابل قبول کار کند.
دامنه در دسترس بودن بالا بر اساس مجموعه مشترکی از منابع است که به طور مشترک برای مدیریت خرابی ها و به حداقل رساندن خرابی ها استفاده می شود. تحمل پذیری خطا به پشتیبانگیری از منبع تغذیه و همچنین سختافزار یا نرمافزاری متکی است که میتواند خرابیها را تشخیص دهد و فوراً به اجزای اضافی سوئیچ کند.
هزینه یک سیستم تحملکننده خطا میتواند پرهزینه باشد، زیرا به عملیات و نگهداری مداوم اجزای اضافی و اضافی نیاز دارد. در دسترس بودن بالا معمولاً به عنوان بخشی از یک بسته کلی از طریق ارائهدهنده خدمات (به عنوان مثال، ارائهدهنده Load Balancer) ارائه میشود.
برخی از سیستم های شما ممکن است به طراحی مقاوم در برابر خطا نیاز داشته باشند، در حالی که در دسترس بودن بالا ممکن است برای سایرین کافی باشد. شما باید میزان تحمل هر سیستم در برابر وقفه های سرویس، هزینه چنین وقفه ها، قراردادهای SLA موجود با ارائه دهندگان خدمات و مشتریان، و همچنین هزینه و پیچیدگی اجرای تحمل خطای کامل را بسنجید.
لودبالانسر و failover : تحمل پذیری خطا برای وب اپلیکیشن
در زمینه تحویل وب اپلیکیشن ، تحمل پذیری خطا با استفاده از راهحلهای لودبالانسر برای اطمینان از در دسترس بودن از طریق افزونگی و بازیابی سریع بلایا disaster recovery مربوط میشود.
لودبالانسر و failover هر دو جنبه جدایی ناپذیر تحمل پذیری در برابر خطا هستند.
راه حل های لودبالانسر به یک برنامه اجازه می دهد تا روی چندین گره شبکه اجرا شود و نگرانی در مورد یک نقطه خرابی را از بین می برد. اکثر لودبالانسرها کار را در چندین منبع محاسباتی بهینه می کنند و به طور جداگانه آنها را در برابر افزایش فعالیت که در غیر این صورت باعث کاهش سرعت و سایر اختلالات می شود انعطاف پذیرتر می کنند.
علاوه بر این، لودبالانسر به مقابله با خرابی های جزئی شبکه کمک می کند. به عنوان مثال، یک سیستم حاوی دو سرور پروداکشن می تواند از یک لودبالانسر برای جابجایی خودکار ریکوئست ها در صورت خرابی یک سرور استفاده کند.