سرویسهای مختلفی هستند که برای نرمافزارهای متفاوت در سیستمهای کامپیوتری استفاده میکنند تا از ایجاد خطاها جلوگیری کنند یا اگر خطایی اتفاق افتاد، آنها را برطرف نمایند. یکی از این سرویسها VMware vSphere Fault Tolerance (FT) نام دارد که به آن سیستم تحمل خطها هم گفته میشود. حال باید با نحوه عملکرد آنها آشنا شوید که در این قسمت به طور کامل راجع به این موضوع در بلاگ کندو صحبت خواهیم کرد.
تعریفی از سرویس FT در VMWare
سرویس VMware vSphere Fault Tolerance (FT) باعث ایجاد یک نمونه زنده از ماشین مجازی میشود. در واقع انعکاس دهنده ماشین مجازی اولیهای است که در شرکتها به کار میگیرند و باعث میشود که این ماشینهای مجازی برای برنامههای مختلف بیشترین حد دسترسی را داشته باشند و معمولاً ۴ پردازشگر مجازی برای استفاده در دستگاههای مختلف توسط این سرویسها فراهم میشوند.
اگر هرگونه خرابی در سختافزارها اتفاق بیفتد، این سرویسها به صورت خودکار خرابی را تشخیص میدهند و علت را ریشهیابی میکنند. تا زمانی که خرابی به طور کامل برطرف نشده باشد، عملکرد آنها ادامه پیدا میکند. همچنین مانعِ از بین رفتن اطلاعات داخل دستگاه میشوند. vSphere FT هم به طور خودکار یک ماشین مجازی ثانویه و جدید را به وجود میآورد تا بتواند از برنامههای ارائه شده محافظت کند.
محافظت از اپلیکیشن توسط سرویس FT
این سرویس طوری طراحی شده است که با استفاده از آن هرگونه خرابی برطرف خواهد شد و از از بین رفتن دادهها هم جلوگیری میشود که به آن نرمافزار تحمل خطا هم گفته میشود. استفاده از آنها یک حفاظت دائمی روی نرمافزار به وجود آورده و اینگونه شما میتوانید در هر لایه از اطلاعات ماشین مجازی به خوبی مراقبت کنید.
ویژگی که وجود دارد، این است که با انواع فضاهای ذخیرهسازی مشترک سازگار هستند. مثلاً برای کانال فیبر، رابط سیستمهای کامپیوتری اینترنتی، کانال فیبر روی اینترنت و حتی برای ذخیرهسازی متصل به شبکه هم از آنها استفاده میکنند و با تمام سیستم عاملها سازگاری دارند. در واقع عملکردشان شبیه به یک مکانیسم کنترل نسخه است که برای ماشینهای مجازی اولیه و ثانویه این اجازه را صادر میکند تا بتواند با میزبانهای سازگار سرویس vSphere FT فعالیت کند و در سطوح مختلف آنها را به اجرا در بیاورد.
نحوه عملکرد سیستم FT
این سیستم به گونهای طراحی شده که شما میتوانید برای خیلی از ماشینهای مجازی از آنها استفاده کنید. در واقع پروسه نگهداری از ماشین مجازی را به صورت مداوم و یکپارچه برایتان انجام میدهند و شما خیلی راحت میتوانید مشکلات را ریشهیابی کنید. به ماشین مجازی که تحت حفاظت این سیستم قرار بگیرد، Primary VM میگویند. در واقع این ماشینهای مجازی تکراری یا ثانویه روی هاست هم اجرا میشوند و به صورت مداوم تکثیر ماشین مجازی توسط آنها انجام میشود تا شما بتوانید در هر نقطهای که خواستید آنها را استفاده کرده و از سیستم حفاظت کنید.
ماشینهای مجازی اولیه و ثانویه وضعیت یکدیگر را تحت کنترل قرار میدهند. با استفاده از آنها تحمل خطا تا حد زیادی حفظ میشود. یعنی اگر اشکالی در دستگاه به وجود بیاید، وضعیت تحت کنترل قرار میگیرد.
اگر میزبان اولیه ماشین مجازی به هر دلیلی از کار افتاده باشد یا یک خطای سخت افزاری غیرقابل اصلاح در حافظه آن رخ دهد، یک شکست شفاف اتفاق میافتد. در نتیجه ماشین مجازی ثانویه بلافاصله وارد کار میشود و سعی میکند که جایگزینی ماشین مجازی اولیه را فعال کند. در این شرایط یک ماشین مجازی ثانویه جدید را جایگزین کرده و هیچ وقفهای هم در سرویس به وجود نمیآید و هیچ دادهای هم از بین نمیرود.
در نهایت ماشین مجازی در برابر هرگونه خطا مقاوم شده و باعث میشود که سیستم FT این تضمین را برایتان داشته باشد که خرابی میزبان باعث از بین رفتن هر دو مورد از ماشینهای مجازی نخواهد شد.
برای آشنایی بیشتر با شرکت Vmware، مطلب معرفی کمپانی Vmware را بلاگ کندو بخوانید.
اجزای سیستمهای تحمل خطا برای جلوگیری از هرگونه قطعی سرویس
این سیستمهای سختافزاری عاملی برای پشتیبانی از یک سری سرویسها هستند. این سرویسها با نرمافزارهای مشابه قابلیت پشتیبانی دارند. مثلاً از طریق آنها دیتابیس اطلاعات کاربران به صورت کاملاً منظم داخل سیستمهای دیگر بکاپ گیری میشود. اگر دیتابیس اولیه به هر دلیلی مشکل داشته باشد، عملیاتها به صورت خودکار به دیتابیس دوم فرستاده میشوند.
نکته بعدی اینکه منابع انرژی که توسط منابع جایگزین تامین میشود، تحمل خطا دارند. خیلی از سازمانها ژنراتورهای تولید انرژی دارند که از طریق آنها سیستمها را پشتیبانی میکنند و در زمان قطعی برق از آنها استفاده میکنند که دقیقاً مربوط به همین چیزی است که در این مقاله راجع به آن صحبت کردیم.
روشهای تحمل خطا
روش تحمل خطا بستگی به توانایی سیستم دارد. خوشه ابری، شبکه و کامپیوتر هر کدام روشهای مختلفی را در پیش میگیرند تا بتوانند در صورت خرابی از آنها جلوگیری کنند. در واقع هدف از ایجاد آنها این است که اختلالات ناشی از یک نقطه خرابی برطرف گردد و شما بتوانید به صورت مداوم به فعالیت برنامههای کاربردی مهم یا سیستمهای مهم دسترسی داشته باشید. به طور کل دو روش تحمل خطا وجود دارد که شامل موارد زیر میشود:
Fault Removal
این اولین روشی است که بازیابی خطای رو به جلو یا بازیابی خطای رو به عقب را انجام میدهد.
Fault Masking
این هم دومین روش است که اگر نقصی داخل سیستم وجود داشته باشد، وجود نقص دیگر را پنهان میکند تا از ایجاد خطاهای بیشتر جلوگیری کند.
پشتیبان سرویس تحمل خطا
اجزای پشتیبانی که در این سرویسها وجود دارد، چند مورد را شامل میشود که در کنار یکدیگر میتوانند عملکرد مناسبی را در این سرویسها رقم بزنند که شامل موارد زیر هستند:
سیستمهای نرمافزاری
سیستمهای نرمافزاری توسط نمونههای نرمافزاری دیگر پشتیبانی میشوند. در واقع یک پایگاه داده که اطلاعات مهم مشتری را در دست دارند و به طور مداوم در دستگاه دیگر کپی میشوند. اگر پایگاه داده به هر دلیلی از بین برود یا مشکلی در اتصالات آن ایجاد شده باشد، این عملیات به صورت اتوماتیک به پایگاه داده دوم انتقال پیدا میکنند.
سیستمهای سختافزاری
سیستمهای سختافزاری هم با سیستمهایی که یکسان هستند؛ تهیه میشوند. اگر بخواهیم برایتان یک مثال بزنیم، باید گفت که یک سرور را در نظر بگیرید که پشتیبان باشد و به صورت مجازی با سرور اصلی کار کند و عملیات داخل آن منعکس و پشتیبانی شود. اینگونه منابع قدرت خیلی از سازمانها و ژنراتورهایی که در این زمینه وجود دارند، در صورت قطعی برق دوباره برق را به منابع هدایت میکنند.
توازن بار در سیستم تحمل خطا
زمانی که تحمل خطا اتفاق میافتد، فرایندی در پیش گرفته میشود که از دو مدل اصلی زیر پیروی میکند:
عملکرد طبیعی
اولین فرایند عملکرد طبیعی است و مربوط به وضعیتهایی میشود که یک سیستم با یک خطا روبرو شده است اما عملکرد طبیعی آن ادامهدار شده و هنوز چیزی مشخص نیست. این موضوع به این معناست که سیستم تغییراتی در معیار عملکرد مثل توان عملیاتی یا زمان پاسخ ندیده است.
افت شدید
چنانچه یک سری خطاهای خاص و منحصر به فرد اتفاق بیفتد، این بخش وارد عمل میشود که در برابر خطا مقاوم است و تاثیر منفی روی عملکرد سیستم مشاهده نخواهید کرد. البته همه چیز به شدت خطا هم بستگی دارد. یک خطای کوچک ممکن است گاهی اوقات کار کل سیستم را دچار اختلال کند و مشکلات عدیدهای را به وجود بیاورد اما گاهی هم بعضی از خطاها تاثیر زیادی روی عملکرد دستگاه ندارند.
نکتهای که باید به آن توجه کنید، این است که در سیستم تحمل کننده خطا از اجزای پشتیبان هم استفاده میکنند. این اجزا به صورت اتوماتیک جایگزینِ اجزای خرابی میشوند که باعث عدم خدمات رسانی به درخواستها شدهاند.
اگر این مطلب برای شما جذاب بود، احتمالا مطلب نحوه ایجاد ماشین مجازی در VMware ESXi هم برای شما مفید و آموزنده باشد.
سخن آخر
سرویس VMware vSphere Fault Tolerance (FT) به گونهای طراحی شده است که میتواند هرگونه خطا را شناسایی کرده و علت آن را پیدا کند. بعد از اینکه علت ریشهیابی شد، از ایجاد خطاهای بعدی جلوگیری میکند و مانع از آسیب به دستگاه میشود. این سیستم میتواند تا حد زیادی از خطاهای اساسی و خرابیهای گسترده جلوگیری کند و یکی از پرفایدهترین سرویسهایی است که برای سیستمها و تکنولوژیهای پیشرفته از آن استفاده میکنند.
برخی از سوالات متداول
در این بخش به تعدادی از سوالات متداول در مورد سیستم تحمل خطا در کندو پاسخ داده شده است.
در کدام یک از روشها؛ بازیابی خطای رو به جلو یا عقب اتفاق میافتد؟
در روش Fault Removal بازیابی خطای رو به جلو و رو به عقب انجام میشود.
منظور از عملکرد طبیعی در سیستم تحمل خطا چیست؟
این نوع مدل از سیستم تحمل خطا به گونهای است که اگر خطایی اتفاق بیفتد، هیچ مشکلی در ظاهر مشخص نیست و سیستم به روند طبیعی کار خودش ادامه میدهد.