Как защитить сервер от потери бюджета

22

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

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

Недавно одна из моих хостинговых компаний сказала мне, что два диска вышли из строя одновременно, и поэтому данные были потеряны навсегда. Вещи случаются, они сказали, извините, что еще они могли сделать? Но это заставило меня задуматься о рентабельных способах восстановления VPS в случае сбоя оборудования или другого хоста.

В настоящее время я должен был бы

  1. Раскрутить новый VPS
  2. Получите резервную копию последнего дня (которая включает базы данных, веб-корень и конфигурацию, специфичную для веб-сайта) на VPS, и настройте ее как последнюю и т. Д.
  3. Обновите DNS и дождитесь его распространения.

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

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

Является ли это в сочетании с выбором авторитетных хостов лучшим, что я могу сделать, не выбрав невероятно дорогое решение?

artfulrobot
источник
1
Очень скептически относится к заявлению о том, что два диска вышли из строя одновременно, особенно на VPS
Symcbean
По-видимому, один потерпел неудачу, тогда как другой перестраивался.
artfulrobot
взгляните на drbd.linbit.com , это может соответствовать вашим требованиям ..
The Unix Janitor
2
@symcbean: проблема в том, что для восстановления RAID-5 требуется чтение всех данных всех оставшихся дисков. Это довольно долгая операция (часы, если не дни). Дешевая система RAID-5 может иметь настройку 9 + 1 с использованием настольных накопителей. Все эти 9 дисков будут перегружены за пределы проектирования при перестройке RAID. Фактически, можно ожидать неудачи.
MSalters
1
Ну, на самом деле у них есть пулы хранения и процессоры + пулы памяти как отдельные объекты, но вопрос не в том, что произошло или не произошло на одном конкретном поставщике; его более общее, чем конкретная реализация.
artfulrobot

Ответы:

28

Для меня выбор авторитетных хостов и регулярное резервное копирование - и то, и другое, как вы, похоже, уже делаете, - это то же самое, что вы можете делать, не задумываясь о планировании непрерывности бизнеса, настройках высокой доступности, соглашениях об уровне обслуживания и так далее.

Я говорю людям, что вы получаете 99% безотказной работы бесплатно (то есть, не тратя ничего лишнего на высокую доступность). Это примерно три с половиной дня простоя в год. Каждое дополнительное 9 в это время увеличивает стоимость примерно в три-десять раз.

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

MadHatter поддерживает Монику
источник
3
Это отличный ответ. У меня очень похожая настройка и тип клиентов на @artfulrobot (мы даже используем одну и ту же хостинговую компанию), и его вопрос и ваш ответ заставили меня понять, что я обязан сообщить своим клиентам об ограничениях и рисках, в очень простом английском, чтобы убедиться, что у них есть реалистичные ожидания. Большинство из них очень неторопливы, поэтому существует реальная вероятность того, что они думают, что все будет как-то волшебным образом, безостановочно и до бесконечности. Я не хочу управлять их ожиданиями во время / после крупного сбоя, мне нужно сделать это раньше!
Саймон Блэкборн
Я не говорю, что сбои полностью не коррелированы, но теоретически избыточность 1 + 1 должна дать вам две дополнительные девятки за удвоенную стоимость. Вы предлагаете стоимость двух дополнительных девяток от 9 до 100 раз. 2х против ~ 30х - огромная разница.
MSalters
2
@MSalters, это правда, против определенных видов сбоев (сбой сервера). Например, против сбоя сайта он ничего не делает, если только два сервера не находятся на разных сайтах, и это становится чрезвычайно сложным с точки зрения сетевого администратора. Вы также учитываете только капитальные затраты и не учитываете повышенные эксплуатационные расходы - идеально синхронизировать два сервера нетривиально, в зависимости от того, что они делают, а также для администраторов балансировщиков нагрузки. Мне кажется, что резервные серверы на одном сайте, разделяющие нагрузку LB, дают вам еще девять в обмен на стоимость, в 3-4 раза превышающую стоимость.
MadHatter поддерживает Монику
Хороший и простой способ представить это. (Но ... я просто добавил бы где-нибудь цену, так как 3-10 раз "бесплатно" по-прежнему бесплатно;). Или, конечно, вы имеете в виду общую стоимость самой услуги? )
Оливье Дюлак
@OlivierDulac именно так!
MadHatter поддерживает Монику
8

Малые предприятия с небольшими бюджетами, особенно некоммерческие, обычно не могут позволить себе высокую доступность. Вопрос в том, какова ваша стратегия восстановления, если у вас практически нет бюджета, как это обычно бывает в подобных ситуациях.

У меня есть такие клиенты, и вот что я делаю:

Во-первых, для некоторых из них у меня есть инкрементное резервное копирование и полный дамп базы данных каждые шесть часов. Один клиент уже использовал CrashPlan Pro, поэтому я просто использовал это. Что бы вы ни делали, вам нужно убедиться, что у вас есть восстанавливаемая резервная копия.

У меня есть простая книга игр ANSIB, которую я собрал примерно за час (ранее я не работал с ANSIBLE), которая устанавливает nginx, php-fpm и MariaDB и готовит их для размещения веб-сайта или сайтов. Запуск этой книги воспроизведения приводит к серверу (или серверам), которые готовы к размещению типичного веб-приложения, и я могу просто восстановить на нем виртуальный хост nginx, файлы приложений и базу данных.

В результате я могу создать такой веб-сайт из резервной копии всего за несколько минут, в отличие от ручного способа, который может занять час или больше.

Майкл Хэмптон
источник
Эй, это звучит на месте. Я посмотрю на это. Спасибо.
artfulrobot
Высокая доступность доступна даже для небольших клиентов от хороших поставщиков. Они получают экономию от масштаба.
JamesRyan
@JamesRyan Да, но вы не получаете экономику ... экономики. Скажите, имеет ли смысл запускать два экземпляра Amazon и эластичный балансировщик нагрузки для веб-сайта, который просматривает 300 посещений в месяц?
Майкл Хэмптон
@MichaelHampton, это даже не то, что я предлагал. Компания, в которой размещены VPS для сотен клиентов, может распределить их среди избыточного оборудования, а не просто разместить их на одном физическом сервере и скрестить пальцы.
JamesRyan
4

Сложность реализации зависит от стека приложений, но в идеале вам нужно настроить «горячий резерв» (у другого провайдера) с репликацией данных в режиме реального времени (или как можно ближе к реальному времени).

Сделать экономическое обоснование наличия двух «живых» серверов так же просто, как сравнить потенциальную потерю дохода в период «восстановления из образов» с затратами на другой сервер.

Марк Р.
источник
Спасибо. Я использую ЛАМПУ стека. Я предполагаю, что в реальном времени будет что-то вроде репликации MySQL, хотя управлять этим довольно сложно. И это удваивает серверы, которыми я должен управлять. Возможно, имело бы смысл иметь один ящик с низкой спецификацией, который имел бы живую копию всех других серверов, так что это было просто распространение DNS. Затем я мог бы клонировать это обратно на новый VPS и изменить DNS (хммм).
artfulrobot
Репликация MySQL обычно довольно проста в настройке и настройке, кроме времени, затрачиваемого на передачу начального набора данных. Что касается DNS, большинство распознавателей в наши дни уважают низкие значения TTL, и обычно значение TTL для записи, равное 60 секундам, обычно работает хорошо.
Марк Р.
Репликация MySQL более сложна, когда вам нужно добавить новые дополнительные базы данных, и я считаю, что все еще сложно иметь один сервер в качестве подчиненного для более чем одного мастера (репликация нескольких БД на один резервный сервер). Также, конечно, вам нужно защитить доступ между серверами, например, stunnel, так что это PKI для поддержки и т. Д., Если у вас нет приватной сети, но это исключено из-за того, что это необходимо для отдельной хостинговой компании.
artfulrobot
Всегда есть туннели replicate-do-db и SSH с ключами.
Марк Р.
Использовался для запуска стандартного туннеля SSH, но он не был надежным. Stunnel великолепен, как только ты его запустишь и запустишь.
artfulrobot
2

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

То, что вы ищете, это то, что будет хранить ваши резервные копии на отдельном сервере и (IMHO) даже не в одном и том же провайдере. В зависимости от объема данных, о котором вы говорите, портативный жесткий диск может использоваться в качестве третьей линии автономной защиты. Сделайте резервную копию ваших данных, как вы делали, а затем регулярно копируйте это (или просто изменения, если это возможно) на переносной жесткий диск или даже локальный компьютер. Есть также достаточно дешевые варианты, такие как Backblaze для решений для резервного копирования, но цена будет зависеть от объема данных, о которых вы говорите. Если вы можете делать инкрементные резервные копии, это будет намного дешевле, чем полные, но инкрементные резервные копии могут быть очень трудными в зависимости от того, где хранятся данные (плоские файлы = легко, база данных = не так просто).

millebi
источник
Да, я делаю это :-) И да, хостинговые компании не заботятся о данных, я уже имел дело с повреждением диска!
artfulrobot
0

Ответ полностью зависит от вашей архитектуры и требований. Некоторое время назад 3 диска вышли из строя на моем сервере, уничтожив более 20 виртуальных дисков при сбое Raid 6.

Я написал об этом в

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

Но: поскольку это очень важно, у нас были резервные копии - ежедневно для неважных вещей, 15 минут для баз данных и электронных писем. Черт возьми, теперь я добавил сервер, который реплицируется на другой компьютер каждые 30 секунд.

Вы ничего не говорите о стеке, ничего не говорите о бюджете - поэтому лучший и единственный совет здесь - обратиться к какому-либо облачному провайдеру и начать использовать его механизмы резервного копирования. Но начните определять, что вам на самом деле - нужно.

Кроме того, бюджет для этой резервной копии должен быть в ваших ценах. Это должно быть оплачено. И какая бы инфраструктура вам ни понадобилась .... она вам нужна. Это не «смешно дорого» тогда.

TomTom
источник
TomTom: aoe + openfiler и пара коробок, и вы можете создать
микросан