با افزایش تقاضا برای زیرساخت های قابل اعتماد و کارآمد که برای خدمت به سیستم های مهم طراحی شده اند ، اصطلاحات مقیاس پذیری و در دسترس بودن زیاد نمی تواند محبوبیت بیشتری داشته باشد. در حالی که رسیدگی به افزایش بار سیستم یک نگرانی معمول است ، کاهش زمان خرابی و حذف نقاط خرابی به همان اندازه مهم است. در دسترس بودن بالا کیفیت طراحی زیرساخت در مقیاس است که به این ملاحظات اخیر می پردازد.
در این راهنما ، ما به معنی دقیق بودن دسترسی بالا (High Availability یا HA) و چگونگی بهبود قابلیت اطمینان زیرساخت شما خواهیم پرداخت.
در دسترس بودن بالا (High Availability یا HA) چیست؟
یکی از ویژگی ها و قابلیت های فوق العاده مجازی سازی در دسترس بودن بالا (High Availability یا HA) است.
در محاسبات ، اصطلاح دسترس پذیری برای توصیف مدت زمانی که یک سرویس در دسترس است ، و همچنین زمان مورد نیاز سیستم برای پاسخ به درخواست یک کاربر ، مورد استفاده قرار می گیرد. قابلیت دسترسی بالا کیفیت یک سیستم یا جزء است که سطح بالایی از عملکرد را برای یک دوره معین از زمان تضمین می کند.
با استفاده از HA میتوان به طرز چشمگیری در دسترس بودنِ ماشین مجازی و در پیِ آن در دسترس بودنِ سرویسها را بالاتر برد.
اندازه گیری در دسترس بودن
در دسترس بودن اغلب به صورت درصدی بیان می شود که نشان می دهد چقدر زمان انتظار از یک سیستم یا جزء خاص در یک دوره معین از زمان انتظار می رود ، در حالی که مقدار 100 would نشان می دهد که سیستم هرگز خراب نمی شود. به عنوان مثال ، سیستمی که 99 of از دسترسی را در مدت یک سال تضمین می کند ، می تواند تا 3.65 روز زمان خرابی (1) داشته باشد.
این مقادیر بر اساس عوامل متعددی از جمله دوره های تعمیر و نگهداری برنامه ریزی شده و برنامه ریزی نشده و همچنین زمان بازیابی از خرابی احتمالی سیستم محاسبه می شود.
بیشتر بخوانید : ESXi چیست
High Availability چگونه کار می کند؟
قابلیت دسترسی بالا به عنوان یک مکانیزم پاسخ به خرابی برای زیرساخت ها عمل می کند. نحوه عملکرد آن از نظر مفهومی بسیار ساده است ، اما معمولاً به نرم افزار و پیکربندی خاصی نیاز دارد.
چه زمانی High Availability مهم است؟
هنگام راه اندازی سیستم های تولید قوی ، به حداقل رساندن زمان خرابی و وقفه در خدمات اغلب اولویت بالایی دارد. صرف نظر از اینکه سیستم ها و نرم افزار شما چقدر قابل اعتماد هستند ، ممکن است مشکلاتی رخ دهد که می تواند برنامه ها یا سرورهای شما را خراب کند.
پیاده سازی دسترسی بالا برای زیرساخت های شما یک استراتژی مفید برای کاهش تأثیر این نوع رویدادها است. سیستم های بسیار در دسترس می توانند به طور خودکار از خرابی سرور یا قطعات بازیابی کنند.
چه چیزی باعث می شود یک سیستم بسیار در دسترس باشد؟
یکی از اهداف دسترسی بالا این است که نقاط شکست واحد زیرساخت خود را از بین ببرید. تنها یک نقطه خرابی جزء پشته فناوری شما است که در صورت عدم دسترسی به سرویس ، وقفه ایجاد می کند. به این ترتیب ، هر مولفه ای که برای عملکرد مناسب برنامه شما ضروری است و افزونگی ندارد ، تنها نقطه شکست محسوب می شود.
برای از بین بردن نقاط شکست ، هر لایه از پشته شما باید برای افزونگی آماده شود. برای مثال ، تصور کنید که زیرساختی متشکل از دو وب سرور یکسان و مازاد پشت یک بالانس کننده بار دارید. ترافیک دریافتی از مشتریان به طور مساوی بین سرورهای وب توزیع می شود ، اما اگر یکی از سرورها خراب شود ، بار متعادل کننده تمام ترافیک را به سرور آنلاین باقی مانده هدایت می کند.
لایه سرور وب در این سناریو یک نقطه شکست نیست زیرا:
اجزای اضافی برای همان کار در محل وجود دارد
مکانیسم بالای این لایه (متعادل کننده بار) قادر به تشخیص خرابی قطعات و تطبیق رفتار خود برای بازیابی به موقع است.
بیشتر بخوانید : NSX چیست
اما اگر بار متعادل کننده آفلاین شود چه اتفاقی می افتد؟
با سناریوی توصیف شده ، که در زندگی واقعی غیر معمول نیست ، لایه متعادل بار خود یک نقطه شکست است. با این حال ، حذف این نقطه شکست باقی مانده می تواند چالش برانگیز باشد. حتی اگر بتوانید به راحتی یک متعادل کننده بار اضافی را برای دستیابی به افزونگی پیکربندی کنید ، یک نقطه واضح در بالا تراز کننده های بار برای پیاده سازی تشخیص و بازیابی خرابی وجود ندارد.
افزونگی به تنهایی نمی تواند در دسترس بودن بالا را تضمین کند. هنگامی که یکی از اجزای پشته شما در دسترس قرار نمی گیرد ، باید مکانیزمی برای تشخیص خرابی و اقدام وجود داشته باشد.
تشخیص خرابی و بازیابی سیستم های مازاد را می توان با استفاده از رویکرد بالا به پایین پیاده سازی کرد: لایه در بالا مسئول نظارت بر لایه بلافاصله در زیر خرابی ها می شود. در سناریوی مثال قبلی ما ، بالانس کننده بار لایه بالایی است. اگر یکی از سرورهای وب (لایه پایینی) در دسترس قرار نگیرد ، تنظیم کننده بار تغییر مسیر درخواست ها را برای آن سرور خاص متوقف می کند.
این رویکرد ساده تر است ، اما محدودیت هایی دارد: نقطه ای در زیرساخت شما وجود دارد که یک لایه بالا یا وجود ندارد یا دور از دسترس است ، که در مورد لایه متعادل کننده بار صادق است. ایجاد یک سرویس تشخیص خرابی برای متعادل کننده بار در یک سرور خارجی به سادگی یک نقطه شکست جدید ایجاد می کند.
با چنین سناریویی ، رویکرد توزیع شده ضروری است. گره های اضافی متعدد باید به عنوان یک خوشه به هم متصل شوند که در آن هر گره باید به یک اندازه قادر به تشخیص و بازیابی خرابی باشد.
با این حال ، برای مورد تنظیم کننده بار ، به دلیل نحوه کار سرورهای نام ، یک عارضه اضافی وجود دارد. بازیابی از خرابی متعادل کننده بار معمولاً به معنای بازگرداندن به یک متعادل کننده بار اضافی است ، که به این معنی است که باید یک تغییر DNS انجام شود تا یک نام دامنه به آدرس IP متعادل کننده بار اضافی اشاره شود. انتشار چنین تغییری می تواند زمان قابل توجهی طول بکشد تا در اینترنت منتشر شود ، که باعث خرابی جدی این سیستم می شود.
راه حل احتمالی استفاده از توازن بار روبن DNS است. با این حال ، این رویکرد قابل اعتماد نیست زیرا در برنامه سمت کلاینت شکست می خورد.
یک راه حل قوی تر و قابل اعتمادتر استفاده از سیستم هایی است که امکان تغییر آدرس IP انعطاف پذیر را فراهم می کند ، مانند IP های شناور. تغییر آدرس IP در صورت تقاضا ، با انتشار یک آدرس IP ثابت که می تواند به راحتی در صورت نیاز مجدداً قابل تغییر باشد ، مسائل مربوط به انتشار و ذخیره سازی ذاتی تغییرات DNS را حذف می کند. نام دامنه می تواند با همان آدرس IP مرتبط باشد ، در حالی که آدرس IP خود بین سرورها منتقل می شود.
چه اجزای سیستم برای دسترسی بالا مورد نیاز است؟
چندین مولفه وجود دارد که برای اجرای در دسترس بودن بالا در عمل باید به دقت مورد توجه قرار گیرند. در دسترس بودن سیار بیشتر از پیاده سازی نرم افزار ، به عواملی مانند موارد زیر بستگی دارد:
محیط: اگر همه سرورهای شما در یک منطقه جغرافیایی قرار داشته باشند ، شرایط محیطی مانند زلزله یا سیل می تواند کل سیستم شما را خراب کند. وجود سرورهای اضافی در مراکز داده مختلف و مناطق جغرافیایی باعث افزایش قابلیت اطمینان می شود.
سخت افزار: سرورهای بسیار در دسترس باید در برابر قطعی برق و خرابی سخت افزار ، از جمله هارد دیسک ها و رابط های شبکه مقاوم باشند.
نرم افزار: کل مجموعه نرم افزاری ، از جمله سیستم عامل و خود برنامه ، باید برای رسیدگی به خرابی های غیرمنتظره که به عنوان مثال می تواند به طور احتمالی به راه اندازی مجدد سیستم نیاز داشته باشد ، آماده باشد.
داده ها: از دست دادن و ناسازگاری داده ها می تواند توسط عوامل متعددی ایجاد شود و فقط به خرابی دیسک سخت محدود نمی شود. سیستم های بسیار در دسترس باید ایمنی داده ها را در صورت خرابی محاسبه کنند.
شبکه: قطعی های برنامه ریزی نشده شبکه یکی دیگر از نقاط احتمالی خرابی سیستم های بسیار در دسترس است. این مهم است که یک استراتژی اضافی شبکه برای شکست های احتمالی در نظر گرفته شود.