افزونگی سرور چیست و چگونه در 4 مرحله آن را بهبود بخشیم؟
هیچ کس دوست ندارد به کار نکردن سیستم های خود فکر کند. اما وقتی صحبت از کسب و کارتان می شود، اینجا دقیقاً همان جایی است که باید به این قضیه فکر کنید. در دنیای زیرساخت ها، یک حقیقت جهانی وجود دارد. فناوری از کار می افتند. و اگر تا الان از کار نیفتاده، صرفا زمانش فرا نرسیده است. بنابراین، صرف نظر از هزینه ای که برای میزبانی پرداخت می کنید، توصیه می شود یک شبکه ایمنی داخلی برای زمانی که همه چیز بد پیش می رود قرار دهید و این شبکه ایمنی همان افزونگی سرور است.
در این مقاله، ما در مورد اینکه افزونگی سرور چیست صحبت می کنیم و چهار راه به منظور بهبود افزونگی در اکوسیستم زیرساخت شما را به اشتراک می گذاریم. با شروع از افزونگی درون سرور و تلاش برای بازیابی فاجعه در مقیاس کامل، نکاتی را برای کاهش خطر خرابی سرور و دستیابی به انعطاف پذیری زیرساخت ارائه خواهیم داد.
افزونگی سرور چیست؟
افزونگی سرور به معنای راه اندازی سیستم های بیشتر برای جلوگیری از دست دادن داده ها و یا خرابی سرور است. به عنوان مثال، با راه اندازی یک یا چند سرور پشتیبان برای پشتیبانی از یک سرور اصلی می توان این کار را انجام داد. اگر سرور اصلی از کار بیفتد، یک سرور اضافی مسئولیت کار را بر عهده می گیرد تا وب سایت یا برنامه شما آنلاین بماند.
نحوه بهبود افزونگی سرور در 4 مرحله
- افزونگی در سرور
این یک تصور غلط رایج است که انتخاب یک مرکز داده پیشرفته برای تضمین زیرساخت محکم کافی است. در واقعیت، افزونگی سرور بسیار بیشتر به طراحی یک سرور منفرد بستگی دارد. نصب RAID (آرایه اضافی دیسک های مستقل) یکی از ساده ترین کارهایی است که یک پلتفرم می تواند برای بهبود انعطاف پذیری پشته زیرساخت خود انجام دهد. RAID یک سیستم ذخیره سازی داده است که می تواند در سطح نرم افزار یا سخت افزار پیاده سازی شود تا هم مزایای افزونگی و هم عملکرد را ارائه دهد. سطوح مختلف RAID در دسترس هستند (RAID 0، 1، 5، 6 و 10 بیشترین استفاده را دارند). همه سطوح RAID با ذخیره داده ها در چندین درایو کار می کنند، اما روش متفاوت است. به دلیل این تفاوت ها، سطوح خاص RAID بسته به نیازهای فردی یک برنامه، برای مشاغل خاصی مناسب تر خواهد بود.
برای اطلاعات بیشتر در مورد سطوح مختلف RAID، می توانید به جدول زیر مراجعه کنید.
سطح | روش | مزایا | معایب | موارد استفاده |
Raid-0 | داده ها به بلوک ها تقسیم می شوند و از طریق فرآیندی به نام نوار دیسک در چندین درایو پخش می شوند. | سرعت خواندن و نوشتن بالا.
سود نوشتن و عملکرد برابر با تعداد درایوها است. |
حداقل حفاظت در برابر از دست دادن اطلاعات.
اگر هر درایو از کار بیفتد، مجموعه داده از بین خواهد رفت. |
بهترین گزینه برای ذخیره سازی داده های غیر بحرانی که به سرعت خواندن/نوشتن بالا نیاز دارد. |
Raid-1 | داده ها در دو یا چند درایو از طریق فرآیندی به نام mirroring تکثیر می شوند. | داده ها را می توان به راحتی بازیابی کرد.
درایوهای Mirrored کپی دقیقی هستند، به این معنی که اگر یکی از آنها خراب شود، دیگری بار را کنترل می کند. سرعت خواندن و نوشتن برابر با یک درایو است. |
ظرفیت ذخیره سازی موثر نصف ظرفیت کل درایو است (زیرا همه داده ها دو بار نوشته می شوند).
تعویض فوری یک درایو معیوب همیشه امکان پذیر نیست. |
بهترین گزینه برای ذخیره سازی ماموریت حیاتی و سرورهای کوچک با دو درایو داده. |
Raid-5 | داده ها بین درایوها استریپ هستند (حداقل 3). مجموع بررسی برابری تمام داده های بلوک روی یک درایو نوشته می شود و در همه درایوها پخش می شود. | می تواند بدون از دست دادن دسترسی به داده ها یا متحمل شدن از دست دادن داده ها، بار یک درایو معیوب را تحمل کند.
سرعت خواندن بالا. |
اگر بیش از یک درایو خراب شود، مجموعه داده از بین خواهد رفت.
حتی اگر خرابی های یک دیسک قابل بازیابی باشند، بازیابی داده ها می تواند بیش از 24 ساعت طول بکشد (سیستم های RAID-5 در این مدت در برابر از دست دادن داده ها آسیب پذیر هستند). |
بهترین گزینه برای سرورهای فایل و برنامه با تعداد محدودی از درایوها. |
Raid-6 | درست مانند RAID-5 کار می کند، اما با حداقل 4 درایو و داده های برابری که به جای یک درایو روی دو درایو نوشته شده است. | امن تر از RAID-5. می تواند دو درایو را به طور همزمان به کار بیاندازد.
سرعت خواندن بالا. |
سرعت نوشتن پایین تر به دلیل داده های برابری اضافی.
بازسازی یک آرایه پس از خرابی درایو می تواند زمان بر باشد. |
برای سرورهای فایل و برنامه با درایوهای بزرگ بسیار مناسب است. |
Raid-10 | RAID-1 و RAID-0 را برای تشکیل یک نوار آینه ای ترکیب می کند.
داده ها در چندین درایو (جفت شده در مضرب دو) با نوارهای اضافی برای افزایش سرعت خواندن منعکس می شوند. |
داده های یک درایو خراب را می توان به سرعت بازیابی کرد. زمان بازسازی بسیار بالا است زیرا تنها چیزی که لازم است کپی کردن داده ها از یک درایو آینه ای در یک درایو جدید است.
از نظر فنی می تواند از دست رفتن نیمی از کل دیسک های یک رک را تحمل کند (به شرطی که دیسک های خراب هر کدام از یک جفت دیسک متفاوت باشند). |
می تواند گران باشد زیرا نیمی از کل ظرفیت ذخیره سازی به سمت mirroring می رود. | برای اپ ها و سازمان هایی که بسیار نیاز به کاهش زمان خرابی دارند، بسیار مناسب است. |
استفاده از یک ماشین حساب RAID آنلاین می تواند به برنامه ریزی RAID کمک کند و به شما امکان می دهد ظرفیت، افزایش سرعت و تحمل خطای آرایه ذخیره سازی خود را بر اساس پارامترهای RAID ورودی (تعداد دیسک، اندازه دیسک تک، نوع RAID) محاسبه کنید.
عوامل دیگری که باعث افزایش افزونگی در سرور می شوند عبارتند از:
- واحد منبع تغذیه دوگانه (PSU). همانطور که از نام آن پیداست، این به معنای داشتن دو واحد منبع تغذیه در سرور شما است. بنابراین، اگر یک منبع تغذیه از کار بیفتد، دیگری می تواند قدرت را در اختیار بگیرد.
- سرمایه گذاری در افزونگی بیشتر شبکه. فعال سازی سوئیچ های شبکه اضافی روی سرور تضمین می کند که اگر یکی از سوئیچ ها از کار بیفتد، یک سوئیچ اضافی کنترل می شود و شبکه فعال باقی می ماند.
حتی سرورهای با کارایی بالا نیز نیاز به افزونگی داخلی دارند. با این حال، برای افزایش بیشتر افزونگی، کسب و کارها به ظرفیت اضافی فراتر از یک سرور واحد در قالب پشتیبان نیاز دارند.
- پشتیبان گیری
برای دستیابی به سطوح بالاتری از افزونگی زیرساخت، از داده های یک سرور واحد باید در یک سرور پشتیبان یا دستگاه ذخیره سازی جداگانه پشتیبان گیری شود. سرور پشتیبان می تواند در یک سالن داده، یک سالن داده متفاوت یا در یک مکان فیزیکی متنوع (یک سایت ثانویه) باشد. به ترتیب، هر یک از این گزینه ها سطوح قوی تری از افزونگی را ارائه می دهند.
سرور پشتیبان یا دستگاه ذخیره سازی باید به طور مداوم به روز شود (ساعتی، روزانه، هفتگی) و یک کپی از داده های برنامه را تشکیل می دهد. اگر سرور اصلی از کار بیفتد، یک کپی امن از آن داده ها و تاریخچه نسخه آن در سرور پشتیبان یا دستگاه ذخیره سازی وجود دارد.
پشتیبان گیری ها در برابر خطاهای فیزیکی در سطح سرور، خطاهای توسعه دهنده، و (در مورد پشتیبان گیری از سایت ثانویه) تهدیدات محیطی مانند آتش سوزی در سالن داده محافظت می کنند. با این حال، حتی با وجود پشتیبان گیری، ممکن است هفته ها طول بکشد تا یک برنامه به صورت آنلاین پس از یک حادثه بازگردانی شود.
- انعطاف پذیری چند سرور
برخی از پلتفرم ها با استفاده از چندین سرور اختصاصی، انعطاف پذیری خود را مدیریت می کنند. در این موارد، قرار دادن یک متعادل کننده بار بین دو یا چند سرور برنامه به بهبود افزونگی سرور کمک می کند.
تعادل بار ترافیک را در چندین سرور توزیع می کند، بنابراین اگر یکی از سرورها از کار بیفتد، سرور دیگری وجود دارد که وب سایت یا برنامه را در حال اجرا نگه می دارد. متعادل کننده بار برنامه ها را قادر می سازد تا فراتر از ظرفیت یک سرور منفرد مقیاس شوند.
در مقابل اگر به دنبال بهبود انعطاف پذیری نرم افزار پایگاه داده خود هستید، باید سرورهای پایگاه داده اضافی را به عنوان یک جفت فعال-غیرفعال با دسترسی بالا (HA) تهیه کنید. در دسترس بودن فعال-غیرفعال به این معنی است که پایگاه داده دارای یک گره فعال است که می تواند درخواست ها را پردازش کند و یک یدکی فوری که می تواند در یک فاجعه کنترل شود.
- برنامه ریزی برای بازیابی از فجایع
مهم نیست که زیرساخت خود را ارزان ترین یا گرانترین ارائه دهنده، در مرکز داده با بدترین یا بهترین رتبه میزبانی می کنید. اگر در مورد کاهش خطر جدی هستید، باید یک برنامه بازیابی بلایا داشته باشید.
طرح بازیابی بلایا یک روش رسمی است که توسط یک سازمان برای مقابله با حوادث برنامه ریزی نشده ایجاد شده است. طرح بازیابی فاجعه زیرساخت شامل اقداماتی برای مقابله با شرایط اضطراری مانند آسیب فیزیکی ساختمان، حملات سایبری، خرابی سرور، خرابی سخت افزار و سایر مشکلات سخت افزاری خواهد بود. هنگام ایجاد یک طرح بازیابی فاجعه، دو پارامتر حیاتی وجود دارد. اینها اهداف زمان بازیابی (RTO) و هدف نقطه بازیابی (RPO) شما هستند.
RTO: این اندازه گیری مدت زمان واقعی است که یک برنامه قبل از وارد شدن آسیب قابل توجه به یک کسب و کار می تواند از کار بیفتد. این یک آستانه برای مدت زمانی است که یک کسب و کار می تواند بدون زیرساخت هایش دوام بیاورد. اپ های حیاتی دارای یک RTO بسیار کوتاه خواهند بود در حالی که اپ های کمتر بحرانی اغلب می توانند RTO طولانی تری داشته باشند.
برای محاسبه RTO خود، باید مشخص کنید که کسب و کار شما تا چه اندازه می تواند از عهده خرابی برآید، بودجه خود برای بازیابی سیستم و ابزارهای مورد نیاز برای دستیابی به بازیابی کامل سیستم را مشخص کنید.
RPO: این یک اندازه گیری مبتنی بر زمان از حداکثر مقدار داده ای است که یک کسب و کار می تواند پس از یک حادثه برنامه ریزی نشده از دست بدهد. RPO در واقع حداکثر مقدار قابل قبول از دست دادن داده است و بر حسب زمان سپری شده از آخرین نسخه پشتیبان قابل اعتماد داده اندازه گیری می شود.
سازمان های بزرگتر معمولاً به پشتیبان گیری از نقطه شکست نیاز دارند. برای محاسبه RPO خود باید تعداد دفعات به روز رسانی داده های حیاتی، دفعات پشتیبان گیری و ظرفیت ذخیره سازی خود را برای پشتیبان گیری مشخص کنید.
هیچ کس نمی خواهد به بدترین سناریو فکر کند و حتی تعداد کمتری از افراد مایلند برای پوشش یک خرابی سرور که ممکن است اتفاق بیفتد یا رخ ندهد، هزینه بپردازند. و به همین دلیل، بسیاری از سازمان ها از برنامه ریزی بازیابی بلایا غفلت می کنند. اما حتی بهترین فناوری نیز در برابر خرابی آسیب پذیر است، بنابراین هم RTO و هم RPO برای اطمینان از بازیابی سریع پس از یک حادثه برنامه ریزی نشده ضروری هستند.
برای بدترین ها برنامه ریزی کنید؛ پشیمان نخواهید شد
برنامه ریزی قبلی از عملکرد ضعیف جلوگیری می کند. و این در مورد زیرساخت شما نیز صدق می کند. چه بخواهیم و چه نخواهیم، مشکلات سخت افزاری پیش می آیند، خرابی سرور اتفاق می افتد و خطرات زیست محیطی وجود دارد. انجام اقداماتی برای بهبود افزونگی زیرساخت به این معنی است که وقتی بدترین اتفاق می افتد، منابعی برای آنلاین نگه داشتن وب سایت یا اپ خود در اختیار خواهید داشت.