Як захистити від втрати сервера на бюджет


22

Я невелика компанія, що займає не так багато бюджету, що надає веб-сайти та бази даних для благодійних та некомерційних клієнтів.

У мене є кілька VPS-серверів Debian Linux, які забезпечують щоденне резервне копіювання на інший VPS, ніж той, на якому розміщена служба.

Нещодавно одна з моїх хостингових компаній сказала мені, що два накопичувачі вийшли з ладу одночасно, і тому дані втрачені назавжди. Що трапляється, вони вибачили, що ще вони могли зробити? Але це змусило мене замислитись про економічно ефективні способи, як правило, знову отримати VPS у разі відмови обладнання або іншого хоста.

В даний час я повинен був би

  1. Закрути нову VPS
  2. Отримайте резервну копію за останній день (яка включає бази даних, веб-корінь та конфігурацію веб-сайту) на VPS та налаштуйте його як останній тощо.
  3. Оновіть DNS і дочекайтеся його поширення.

Це, мабуть, зайняло б день або близько того, щоб розповсюдження DNS було великою невідомістю, хоча у мене TTL встановлений досить низько (година або близько того).

Деякі хости надають знімки, які можна використовувати для тиражування набору на новий VPS, але IP все ще є, і це не допомагає у випадку, коли приймаюча компанія скасовує / призупиняє обліковий запис прямо (я читав про це поведінка певних хостинг-провайдерів, і мене це лякає! Я нічого не роблю спам / хитрість і пильно стежу за безпекою, але я усвідомлюю, що вони буквально мають владу на це, і я дуже ризикую).

Це, у поєднанні з вибором авторитетних господарів, найкраще, що я можу зробити, не намагаючись отримати неймовірно дороге рішення?


1
Дуже скептично ставиться до твердження, що 2 диски
вийшли з

Мабуть, один не вдався, а інший, поки новий відбудовувався.
artfulrobot

погляньте на drbd.linbit.com , це може відповідати вашим вимогам ..
Двірник Unix

2
@symcbean: Проблема полягає в тому, що для відновлення RAID-5 потрібне зчитування всіх даних усіх решти дисків. Це досить тривала робота (години, якщо не дні). Дешева система RAID-5 може мати налаштування 9 + 1 за допомогою настільних накопичувачів. Усі ці 9 дисків будуть підкреслені поза межами дизайну при перебудові RAID. Тоді невдача слід очікувати насправді.
MSalters

1
Насправді у них є пули пам’яті та пули пам'яті процесора + пам’яті як окремі об'єкти, але питання не в тому, що сталося чи не сталося з одним конкретним провайдером; її більш загальна, ніж конкретна реалізація.
artfulrobot

Відповіді:


28

Як на мене, вибір надійних хостів і регулярне резервне копіювання - обидва з яких ви, здається, вже робите, - це так само добре, як і ви можете зробити, не починаючи думати про планування безперервності бізнесу, налаштування з високою доступністю, домовленості про домовленості та інше.

Я кажу людям, що ви отримуєте 99% часу безперервної роботи (тобто, не витрачаючи нічого зайвого на високу доступність). Це близько трьох з половиною днів простою на рік. Кожні додаткові 9 на цей час роботи збільшують вартість десь у три-десять разів.

Якщо люди не готові платити такі гроші, на мою думку, помилково вводити їх в оману, думаючи, що вони можуть отримати будь-який додатковий захист будь-якого значення.


3
Це чудова відповідь. У мене дуже схожа настройка та тип клієнтів на @artfulrobot (ми навіть використовуємо ту саму хостингову компанію), і його питання та ваша відповідь дають мені зрозуміти, що я несу відповідальність повідомляти своїм клієнтам обмеження та ризики, дуже простою англійською мовою, щоб переконатися, що вони мають реалістичні очікування. Більшість з них дуже нетецесні, тому є дуже реальна ймовірність, що вони думають, що все просто якось магічно спрацює, без зупинки та безмежної реклами. Я не хочу керувати їхніми очікуваннями під час / після великої невдачі, мені потрібно це робити раніше!
Саймон Блекборн

Я не кажу, що збої є повністю некорельованими, але 1 + 1 надмірність в теорії повинна дати вам дві додаткові дев'ятки за подвійну вартість. Ви припускаєте, що вартість двох додаткових дев'яток становить десь від 9 до 100 разів. 2x проти ~ 30x - це величезна різниця.
MSalters

2
@MSalters це правда, проти певних видів збоїв (збою сервера). Проти, наприклад, збою на сайті, він нічого не робить, якщо два сервери не знаходяться на різних сайтах, і це стає надзвичайно складним щодо адміністратора мережі. Ви також враховуєте лише капітальні витрати та не помічаєте збільшення поточних витрат - тримання двох серверів ідеально синхронізується не тривіально, в залежності від того, що вони роблять, і є адміністративна вартість балансирів навантаження. Я відчуваю, що надлишкові сервери на одному сайті, які діляться завантаженням LB, дають вам ще дев'ять в обмін на 3-4 рази більше.
MadHatter підтримує Моніку

Хороший і простий спосіб її представити. (Але ... я просто десь додам якусь ціну, оскільки від 3 до 10 разів "безкоштовно" все ще безкоштовно;). Або, звичайно, ви маєте на увазі загальну вартість самої послуги? )
Олів'є Дулак

@OlivierDulac саме так!
MadHatter підтримує Моніку

8

Малі підприємства з невеликими бюджетами, особливо некомерційні, як правило, не зможуть дозволити собі високу доступність. Питання в тому, якщо у вас практично немає бюджету, як це зазвичай буває в таких ситуаціях, яка ваша стратегія відновлення?

У мене є такі клієнти, як це, і це я роблю:

По-перше, для деяких з них у мене є додаткове резервне копіювання та повне скидання бази даних кожні шість годин. Один клієнт вже використовував CrashPlan Pro, тому я просто використовував це. Що б ви не робили, вам потрібно переконатися, що у вас є резервна копія.

У мене є простий ігровий зошит, який я зібрав приблизно за годину (не працював раніше з ansible), який встановлює nginx, php-fpm та MariaDB і готує їх до розміщення веб-сайту чи сайтів. Запуск цієї книги відтворює сервер (або сервери), готові розмістити типовий веб-додаток, і я можу просто відновити віртуальний хост nginx, файли додатків та базу даних на ньому.

Результатом цього є те, що я можу створити такий веб-сайт із резервного копіювання всього за кілька хвилин, на відміну від ручного способу, який може зайняти годину і більше.


Гей, це звучить на місці. Я розберуся в цьому. Спасибі.
artfulrobot

Висока доступність легко доступна навіть для невеликих клієнтів від хороших постачальників послуг. Вони отримують економію масштабу.
JamesRyan

@JamesRyan Так, але ви не отримуєте економію ... економіки. Скажіть, чи є сенс запустити два екземпляри Amazon та еластичний балансир навантаження для веб-сайту, який бачить 300 звернень на місяць?
Майкл Хемптон

@MichaelHampton - це навіть далеко не те, що я пропонував. Компанія, що розміщує VPS для сотень клієнтів, може поширити їх серед зайвого обладнання, а не просто поставити їх на один фізичний сервер і схрестити пальці.
JamesRyan

4

Складність реалізації залежить від стеку додатків, але в ідеалі ви хочете встановити "гарячий режим очікування" (у іншого постачальника), причому дані реплікуються в режимі реального часу (або максимально наближені до реального часу).

Зробити діловий випадок наявності двох "живих" серверів так само просто, як порівняти потенційну втрату доходу під час періоду "відновлення з зображень" за рахунок іншого сервера.


Спасибі. Я використовую стек LAMP. Я думаю, що реальний час буде чимось на зразок реплікації MySQL, хоча це може бути досить складно в управлінні. І це подвоєння серверів, якими я повинен керувати. Можливо, було б сенс мати одне поле з низькою специфікацією, яке містило б живу копію всіх інших серверів, тож це було просто розповсюдженням DNS. Тоді я міг би клонувати це назад до нового VPS і змінити DNS (ммм.).
artfulrobot

Реплікація MySQL, як правило, досить проста у налаштуванні та налаштуванні, окрім часу, витраченого на перенесення початкового набору даних. Що стосується DNS, то більшість резолюторів поважає низький рівень TTL в ці дні, а встановлення TTL запису на рівні 60 секунд зазвичай працює добре.
Марк Р.

Реплікація MySQL є більш складною, коли вам потрібно додати нові додаткові бази даних, і я вважаю, що все ще складним є один сервер, який є раб для більше одного ведучого (реплікація декількох dbs на одному резервному сервері). Крім того, вам, звичайно, потрібно забезпечити доступ між серверами, наприклад, оглушенням, так що це PKI для обслуговування тощо, якщо у вас немає приватного локального зв’язку, але це не виключається з необхідності, щоб це було з окремою хостинговою компанією.
artfulrobot

Завжди є копії тунелів do-db та SSH з ключами.
Марк Р.

Використовувався для запуску стандартного тунелю SSH, але він не був надійним. Щоправда, ви, коли ви його ввімкнули і запустіли, приголомшливий.
artfulrobot

2

Пам’ятайте, що тривалість роботи не є такою, як цілісність даних. Ви можете мати 99,99% тривалості роботи і втратили всі свої дані двічі на рік, якщо сервер був перезапущений "досить скоро". Більшість постачальників VPS гарантують, що ваш сервер працює, НЕ, щоб ваші дані були в безпеці. Ваші дані - ваша проблема :(.

Те, що ви шукаєте, - це те, що зберігатиме ваші резервні копії на окремому сервері та (IMHO) навіть не в тому ж постачальнику. Залежно від розміру даних, про який ви говорите, портативний жорсткий диск може використовуватися як третя лінія захисту в автономному режимі. Створіть резервні копії даних, як ви робили, а потім регулярно копіюйте ці дані (або просто зміни, якщо це можливо) на портативний жорсткий диск або навіть на локальний комп'ютер. Існують також досить дешеві варіанти, як Backblaze для резервних рішень, але ціна буде залежати від кількості даних, про які ви говорите. Якщо ви можете робити додаткові резервні копії, це буде набагато дешевше, ніж повне резервне копіювання, але додаткові резервні копії можуть бути дуже складними залежно від того, де зберігаються дані (плоскі файли = легко, база даних = не так просто).


Так, я це роблю :-) І так, хостингові компанії не переймаються даними, я вже мав справу з корупцією на диску!
artfulrobot

0

Відповідь повністю залежить від вашої архітектури та вимог. Деякий час тому 3 мої диски вийшли з ладу на моєму сервері, знявши 20+ VM, коли не вдалося здійснити Raid 6.

Про це я писав у

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

Але: Оскільки це критично, у нас були резервні копії - щодня для неважливих матеріалів, 15 хвилин для баз даних та електронних листів. Чорт, зараз я додав сервер, який повторюється на іншій машині кожні 30 секунд.

Ви нічого не говорите про стек, нічого про будь-який бюджет - тому найкраща і єдина порада тут - зайти до якогось постачальника послуг хмари та почати використовувати їхні резервні механізми. Але почніть визначати, що вам насправді - потрібно.

Також - бюджет на цю резервну копію повинен бути у вашому ціноутворенні. Це потрібно заплатити. І яка б інфраструктура вам не потрібна .... вона вам потрібна. Це не "смішно дорого" тоді.


TomTom: aoe + openfiler і пара коробок, і ви можете створити мікро-сан з високою доступністю
symcbean
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.