HA یا افزونگی مخفف کلمه High Availability در اصطلاح به معنای بالاترین درجه از دسترس پذیری می باشد. با توجه به اینکه یکی از سه ضلع امنیت، دسترس پذیری می باشد، این اصطلاح به شدت مورد استقبال مدیران فناوری سازمان ها می باشد. اگر به طور ساده بخواهیم مثالی از این ساختار داشته باشیم، می توانیم آن را جایگزینی سرور، در لحظه ایجاد بحران بیان نماییم. این ساختار توسط تکنیک های زیر قابل انجام میباشد ولی قبل از معرفی تکنیک ها ابتدا لازم است انواع HA را بررسی نماییم.
انواع افزونگی یا HA در صنعت
در صنعت دونوع HA وجود دارد:
متد اول active/active
یک نوع لود بالانسر میباشد. در این تکنیک ورودی درخواست به سرورها از طریق یک سرور واسط می باشد و این سرور درخواستها را به سرورهای عضو دامین با سیاست تعریف شده ارائه می دهد. در این تکنیک علاوه بر لود بالانس در صورت خطا بر روی یک سرور ارائه خدمات توسط دیگر سرورها ادامه می یابد. تکنیک معمولاً توسط DNS مدیریت می گردد و با ارسال یک درخواست به سمت سرور دامین اصلی این درخواستها را به آی پی های زیرمجموعه انتقال میدهد.
متد دوم active/standby
در این تکنیک تمام سرورها در حال خدمات نمی باشند و معمولاً کلاینت ها فقط با یکی از سرورها ارتباط دارند و فقط در صورتی که سرور اول دچار بحران شود سرور دوم اداره ادامه کار را به عهده خواهد گرفت. طبیعتاً هزینه کمتری نسبت به متد اول دارد ولی در این متد در اسرع وقت باید مشکل آن مرتفع گردد؛ زیرا سرور standby معمولاً منابع بالایی ندارد.
ارائه قابلیت های HA در سطح سخت افزار ها
تکنیک اول (در سطح سخت افزار) : معمولا سخت افزارها قابلیت HA را به صورت های متفاوتی ارائه می دهند مانند سرور های اضافی یا مدیریت کردن ذخیره سازی اطلاعات بر روی دیسک ها. به عنوان مثال Raid ها می توانند مدیریت ذخیره اطلاعات را بر روی چند دیسک داشته باشند که در صورت از بین رفتن دیسک اطلاعات از دیسک دیگر قابل بازیابی باشد.
حتی در سرورها این قابلیت وجود دارد در صورت خطا روی یک دیسک امکان خروج آن هارد بدون توقف کار (hot plug) می باشد و با جایگزین کردن دیسک بعدی اطلاعات دوباره در دیسک جدید وارد و اصطلاحا سینک می گردد. در صورتی که با بی توجهی نسبت به خطا های دیسک رو به رو شویم ممکن است با خطا روی هارد دیگر، کل اطلاعات نابود شود. این مدیریت توسط Raid controller در سختافزار انجام میشود که البته OS ها هم تکنیک هایی برای انجام این کار دارند.
دسترسی بالاتر در سطح مجازی ساز HA
تکنیک دوم (در سطح مجازی ساز) : مجازی سازها به مراتب امکانات بیشتری از OS ها در این زمینه به ما میدهند لذا در صورت نیاز به دسترسی بالاتر، توصیه می شود که از مجازی ساز ها استفاده شود. مجازی ساز ها این امکان را به وجود میآورند تا در صورتی که یک ماشین یا VM دچار مشکل شود، ماشین های جایگزین با سرعت بالا دوباره وارد سیستم شده و خدمات را از سر گیرند.
البته با رشد این تکنیک حتی می توان که در چند دیتاسنتر متفاوت مجازی ساز ها را به هم متصل نمود و درصورتی که حتی یک دیتاسنتر دچار خطا شد سرور در زمان کوتاهی ارائه سرویس را از دیتا سنتر بعدی از سرگیرد.
بررسی تکنیک در سطح سیستم عامل
تکنیک سوم (در سطح OS) : معمولا OS قابلیت ریداندنت را با ابزارهای جانبی و نصبی فراهم میآورند و بررسی تکنیک HA آنها به روش Keep Alive می باشد. با ارسال بسته ها مدام یکدیگر را بررسی میکنند تا در صورتی که یکی از آنها دچار اختلال شد دیگری بتواند ادامه کار را انجام دهد و سطح ارائه سرویس همیشه در بالاترین وضعیت قرار داشته باشد.
ذخیره اطلاعات در چندین پایگاه داده
تکنیک چهارم (در سطح DB) : معمولاً در صورتی که قرار به استفاده از تکنیک HA در این لایه باشد، باید سرویسها Redundant یکدیگر باشند و اطلاعات در چند جا کپی شود تا در صورت بروز اختلال و جاری شدن سرور جدید ادامه کار و گزارشات از همان لحظه ایجاد خطا به بعد صورت گیرد و اطلاعات با از بین رفتن ماشین ها از بین نرود. برای این منظور از دیتابیس های Replication استفاده میشود و تا اطلاعات در چندین دیتابیس همزمان کپی شود که با اختلال در یک دیتابیس همان اطلاعات از دیتابیس دیگری قابل دسترسی باشد.
برطرف کردن اختلال در اپلیکیشن ها
تکنیک پنجم (در سطح APP) : معمولا هر پروتکل برای سمت سرور خود Redundancy را در نظر میگیرد و به همین منظور کلاینت های خود را میتواند از چندین آدرس مختلف درخواست نماید تا در صورتیکه اختلال در یکی از App ها ایجاد شد، کلاینت با اتصال به دیگر سرور ادامه فعالیت را داشته باشد. به عنوان مثال رفتار کلاینت های ویپ (voip) و پروتکل SIP در اتصال به سرور های دوم را می توان به عنوان یک ریداندنت لایه اپلیکیشن نام برد.