تحمل خطا Fault Tolerance چیست؟
تحمل خطا، مربوط به توانایی یک سیستم (از جمله کامپیوتر، شبکه، مجموعه ابری و غیره) برای ادامه عملیات خود به هنگام خرابی یک یا بیش از یکی از اجزای آن بدون رویارویی با خطا و وقفه است.
هدف از ایجاد یک سیستم دارای تحمل خطا، جلوگیری از بروز قطعی از سمت قطعه یا اجزای دارای مشکل است که در نتیجه، دسترسی بالای سیستم و پایداری تجارت را تضمین کند.
اجزاء سیستمهای دارای تحمل خطا برای جلوگیری از قطعی سرویس:
- سیستمهای سختافزار که با سیستمهایی مشخص یا معادل خود، پشتیبانی میشوند. به عنوان مثال، یک سرور میتواند با استفاده از سروری موازی خود همراه با تمام اجزای مشابه، تحمل خطای بالایی داشته باشد.
- سیستمهای نرم افزاری که با نرمافزارهای مشابه، پشتیبانی میشوند. به عنوان مثال، یک دیتابیس با اطلاعات کاربران میتواند به صورت منظم در سیستمی دیگر، بکاپگیری شود. اگر دیتابیس اولیه دچار مشکل شد، عملیاتها میتوانند به صورت خودکار به دیتابیس دوم ریدایرکت شوند.
- منابع انرژی که توسط منابعی جایگزین، دارای تحمل خطا هستند. به عنوان مثال، سازمانهای بسیاری دارای ژنراتورهای تولید انرژی هستند که میتوانند انرژی مورد نیاز سیستمها را به عنوان قطعی برق، تامین کنند.
به صورت مشابه، هر سیستم یا اجزایی که ممکن است منبع بروز خطا باشند، میتوانند با استفاده از ریداندنسی، تحمل خطای بالایی داشته باشند.
مقاله مرتبط: Redundancy در سرور چیست؟
تحمل خطا، میتواند نقش بهبودی از مشکل را در یک استراتژی مشخص بازی کند. به عنوان مثال، سیستم تحمل خطا با اجزای پشتیبانی در فضای ابری میتواند به سرعت تجهیزات دچار مشکل را جایگزین کند، حتی اگر یک خطای طبیعی یا انسانی، زیرساختهای آیتی شما را به خطر بیاندازد.
تفاوت تحمل خطا و دسترسی بالا
منظور از دسترسی بالا، توانایی یک سیستم برای جلوگیری از از دست رفتن سرویس مورد نظر با به حداقل رساندن زمان داون بودن، است. این امر در ارتباط با آپتایم بودن سیستم، به عنوان درصدی از زمان اجرای آن محاسبه میشود. آپتایم ۹۹.۹۹۹٪ ایدهآلترین زمان در دسترس بودن برای یک سیستم است.
در اکثر مواقع، استراتژی یک بیزینس شامل هر دو دسترسی بالا و تحمل خطا میباشد تا از این طریق پابرجا بودن وظایف اصلی یک سازمان در زمان بروز مشکلات، تضمین شود.
زمانی که هر دو تحمل خطا و دسترسی بالا، مدتها برای عملیات یک سیستم در نظر گرفته شود، متوجه تفاوتهایی بین اهمیت هر کدام از آنها در برنامه مدیریت کسب و کار خود خواهید شد.
برای درک بهتر تفاوت بین تحمل خطا و دسترسی بالا، مثال زیر را بررسی میکنیم.
یک هواپیمای دو موتوره، سیستمی با تحمل خطا است، چرا که اگر یکی از موتورها دچار مشکل شد، موتور دوم وارد عمل شده و به هواپیما این امکان را میدهد تا به پرواز ادامه دهد.
در حالی که، اتومبیلی با تایر یدکی از دسترسی بالایی برخوردار است. پنچری تایر اتومبیل، موجب ایستادن آن میشود اما مدت زمان توقف آن بسیار کم است، چرا که تایر جدید به سادگی جایگزین تایر پنچر میشود.
موارد مهم در زمان ایجاد سیستم تحمل خطا
برخی از موارد مهمی که زمان ایجاد سیستمهای تحمل خطا و دسترسی بالا در تنظیمات یک سازمان در نظر گرفته میشود:
- داون تایم یا زمان خاموشی: یک سیستم با دسترسی بالا، فرصت بسیار اندکی برای قطعی دارد. به عنوان مثال، سیستمی با آپتایم ۹۹.۹۹۹٪، تقریبا ۵ دقیقه در سال زمان خاموشی دارد. انتظار میرود که یک سیستم دارای تحمل خطا به صورت مداوم و بدون قطعی کار کند.
- منابع انرژی: دسترسی بالا که توسط مجموعهای از منابع مشترک فراهم شده است و به صورت ترکیبی برای مدیریت خطاها و کم کردن زمان خاموشی بکار میروند. تحمل خطا، علاوه بر سخت افزار و نرم افزارها که میتوانند به سرعت جایگزین اجزای خراب شوند، به منابع انرژی پشتیبان نیز بستگی دارد.
- هزینه: یک سیستم تحمل خطا ممکن است هزینه زیادی داشته باشد، چرا که به عملکرد، نگهداری زیاد و اجزای پشتیبان نیاز دارد. معمولا دسترسی بالا جزو خدمات شرکتهای ارائه دهنده سرویس خدمات میزبانی وب هست.
برخی از سیستمها شاید به طراحی تحمل خطا نیاز داشته باشند در حالی که دسترسی بالا ممکن است برای آنها کافی باشد. شما باید تحمل سیستم را در مقابل قطعیها، اندازهگیری کنید.
لود بالانسینگ و خرابی – تحمل خطا برای وب اپلیکیشنها
در مورد تحویل وب اپلیکیشن، تحمل خطا مرتبط با استفاده از لود بالانسینگ و راه حلهای خرابیهاست که میتوان دسترسی سرویس را از طریق ریداندنسی و رفع سریع مشکلات تضمین کرد.
مقاله مرتبط: فایروال وب اپلیکیشن چیست؟
راه حلهای لود بالانسینگ به یک اپلیکیشن این امکان را میدهد تا بر روی شبکههای مختلف اجرا شود و نگرانی قطعی از سمت یک شبکه را از بین میبرد. اکثر سرویس دهندگان لود بالانسینگ، توزیع میزان لود را از طریق منابع محاسبه مختلف بهینه سازی میکنند و پاسخگویی سیستم را در برابر افزایش درخواستها افزایش میدهند. در غیر این صورت موجب کندی و بروز اختلالاتی در ارتباطات خواهد شد.
علاوه بر آن، لود بالانسینگ راه حلی برای قطعی شبکه نیز هست. به عنوان مثال، یک سیستم شامل دو سرور میتواند از یک لود بالانس کننده استفاده کند تا در صورت مواجه شدن با اختلال در یک شبکه، به صورت خودکار از شبکهای دیگر استفاده شود.
از جهتی دیگر، راه حلهای خطاها زمانی مورد استفاده قرار میگیرند که شبکه به کلی دچار مشکل شده یا با قطعی کامل مواجه میشود. زمانی که این مشکل پیش میآید، یک سیستم رفع خرابی با فعال کردن خودکار پلتفرم پشتیبان برای اجرای اپلیکیشن شارژ میشود تا اینکه تیم آیتی شرکت مورد نظر، شبکه اصلی را بازیابی کنند.