Горячий запасной хост против холодного запасного хоста?

8

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

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

Являются ли горячие резервные хозяева старой школы и есть ли лучшие способы сейчас?

Вместо того, чтобы иметь хост с горячим резервом, имеет ли смысл сделать его холодным резервом, взять жесткие диски и поместить их в основной хост и изменить RAID с 1 на 1 + 1. В случае отказа все, что мне нужно сделать, это заменить сетевые кабели, обновить DHCP-сервер, взять жесткие диски и вставить их в холодный резерв и включить питание. На мой взгляд, преимущество заключается в том, что диски 2x2 всегда синхронизированы, поэтому для обслуживания требуется только один хост, и при сбое не требуется никаких изменений конфигурации.

Это хорошая идея?

Жасмин Логн
источник
1
Являются ли эти физические «хосты» реальными службами или хостами ВМ с кучей гостей?
Натан C
2
С VMware FT и Hyper-V Replica, доступными в качестве опций виртуализации (а также с простой старой HA), я нахожу, что идея иметь выделенный «горячий» резерв для единственного целевого хоста немного отстает.
Joeqwerty

Ответы:

6

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

Однако есть одна проблема, которую пока никто не комментирует, что меня немного удивляет. Вы предлагаете:

сделайте [текущий хост горячего резервирования] холодным резервом, возьмите жесткие диски и поместите их в основной хост и измените RAID с 1 на 1 + 1.

Это не защитит вас от действий ОС на диске.

Он только защищает вас от сбоя диска, который, перемещаясь с зеркал (RAID 1) на зеркала зеркал (RAID 1 + 1), вы значительно уменьшите влияние с самого начала. Вы можете получить тот же результат, увеличив число дисков в каждом наборе зеркал (например, перейдите с 2-дискового RAID 1 на 4-дисковый RAID 1), а также вполне вероятно, улучшив производительность чтения во время обычных операций.

Хорошо, тогда давайте посмотрим на некоторые способы, которыми это может потерпеть неудачу .

  • Допустим, вы устанавливаете обновления системы, и что-то вызывает сбой процесса на полпути; возможно, произошел сбой питания и ИБП , или, может быть, вы попали в странную аварию и столкнулись с серьезной ошибкой в ​​ядре (в наши дни Linux довольно надежен, но риск все же есть).
  • Возможно, при обновлении возникает проблема, которую вы не уловили во время тестирования (вы делаете тестовые обновления системы, верно?), Требующий аварийного переключения на вторичную систему, пока вы исправляете первичную
  • Возможно, ошибка в коде файловой системы приводит к ложной, неправильной записи на диск.
  • Может быть, толстый (или даже злой) администратор делает rm -rf ../*или rm -rf /*вместо rm -rf ./*.
  • Возможно, ошибка в вашем собственном программном обеспечении приводит к серьезному повреждению содержимого базы данных.
  • Может быть, вирус удается проникнуть внутрь.

Может быть, может быть, возможно ... (и я уверен, что есть много других способов, с помощью которых ваш предложенный подход может потерпеть неудачу.) Однако, в конце концов, это сводится к тому, что "два набора всегда синхронизированы", "преимущество" Иногда вы не хотите, чтобы они были идеально синхронизированы.

В зависимости от того, что именно произошло, именно тогда вам понадобится либо горячий или холодный резерв, готовый для включения и переключения, либо правильное резервное копирование. В любом случае зеркала RAID зеркал (или зеркала RAID) не помогут вам, если режим сбоя включает в себя многое, кроме отказа аппаратного запоминающего устройства (сбой диска). Что-то вроде raidzN в ZFS, вероятно, может быть немного лучше в некоторых отношениях, но совсем не лучше в других.

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

CVn
источник
Для этого нужны резервные копии и управление конфигурацией, нет?
ewwhite
@ewwhite Абсолютно, но это должно быть намного проще , если это необходимо , чтобы переключиться на вторичный хост , который имеет (предположительно известный хорошо) конфигурации (программное обеспечение и настройки) уже, чем сломать RAID зеркало, физически переместить диски, делать какие - либо необходимые изменения конфигурации (сетевые кабели, DNS, настройки IP, ...), а затем необходимо исправить все, что пошло не так, требуя, в первую очередь, переключения, прежде чем ваш резервный хост даже принесет вам пользу. В этот момент вы могли бы также исправить это на месте. (Или, в частности, если вы работаете с виртуальными машинами, вернитесь к соответствующему снимку.)
CVn
О, безусловно. Если у меня есть решения для репликации, есть также соображения RPO / RTO и смещение (10-15 минут), чтобы покрыть вышеуказанные сценарии.
ewwhite
@ewwhite Я не спорю с вашей точкой зрения (и фактически проголосовал против вашего ответа), просто добавляю еще один способ, который, как я видел, никто не упомянул, как предлагаемое решение OP могло (не) не дать наиболее вероятный желаемый результат, а именно восстановление после сбоя. Был на самом деле удивлен, когда наш ответ принят.
CVn
5
Сандра работает таинственными способами ...
Ewwhite
11

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

Для хостов:

  • Купите лучшее оборудование.
  • Убедитесь, что у вас есть контракты на поддержку.
  • РЕГИСТРАЦИЯ контрактов поддержки вашего сервера (запасные части хранятся локально на основе регистрационных данных!)
  • Используйте резервные источники питания, (аппаратный?) RAID, резервные вентиляторы.
  • Если сервер не способен вместить вышеупомянутые избыточные функции, держите под рукой запасное шасси или компоненты, чтобы иметь возможность самостоятельного ремонта в случае сбоя.

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

ewwhite
источник
Движущиеся части умирают первыми - к счастью, диски RAID, иначе они были бы моей самой частой ошибкой.
Собрике
2
+1 только для "РЕГИСТРАЦИИ контрактов на поддержку ваших серверов". Даже из-за моего ограниченного опыта, это чаще, чем вы думаете, что я звоню в службу поддержки во время ситуации SHTF на новом сайте, и служба поддержки не знает, существует ли конкретная часть оборудования, и к ней прикреплен контракт.
Все рассматриваемые серверы - IBM, и сейчас, вероятно, 5 лет. До сих пор у нас была только одна материнская плата и один сбой процессора.
Жасмин Логн
1
IBM и HP солидны. Делл иногда. Если Supermicro, я бы рекомендовал держать ДВУХ запасных частей на сервер;)
ewwhite
1
На моих серверах HP ранние пороговые значения ECC превышены и вызывают предупреждение . Оперативная память обычно заменяется до того, как происходит воздействие на приложения. Я вижу это около 10 раз в год на нескольких сотнях серверов.
ewwhite
9

Это довольно неэффективно - не в последнюю очередь из-за зависимости от ручного вмешательства для переключения.

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

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

Но это то, что ваш вопрос, на самом деле. Что является вашей целью времени восстановления, а также то , что является наиболее эффективным способом достижения. Ожидание загрузки сервера займет несколько минут. Сколько времени нужно, чтобы кто-то выполнил настройку и «восстановление», когда он появляется в 4 часа утра?

И как долго это допустимое отключение?

Я хотел бы предложить, что если вы делаете «горячее восстановление», вы хотите думать о кластеризации. Вы можете быть довольно дешевы при кластеризации с хорошим использованием VMWare - «переключение на виртуальную машину» - даже с физической - означает, что вы не используете избыточное оборудование. (Ну, N + 1, а не 2N).

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

Sobrique
источник
2
+1 только для кривой времени восстановления; Я всегда говорю клиентам, что они получают 99% безотказной работы за стоимость комплекта и установки, но каждая дополнительная 9, которую они решают, им нужна, увеличивает стоимость где-то между двумя и десятью разами.
MadHatter
Время простоя ночью не хорошо, но принято покупать генеральный директор. В рабочее время 30 минут, вероятно, хорошо каждые 6 месяцев. Переход на виртуальную машину - интересная идея. Можно ли это сделать с помощью KVM? Нужно ли мне поддерживать виртуальную машину с исправлениями и изменениями конфигурации, или это можно автоматизировать?
Жасмин Логн
ВМ - это виртуальная машина, ничего общего с KVM. (Клавиатура / видео / мышь). И да, вам нужно поддерживать экземпляр ОС в актуальном состоянии и проверять, все ли работает нормально. Но вы должны иметь возможность использовать тот же механизм обновления, что и на основном устройстве.
Собрике
Хотя серьезно - как часто ваш сервер падал? Я имею в виду полностью, по причинам, связанным с аппаратным обеспечением? Большинство аппаратных компонентов «серверного уровня» обеспечивают отказоустойчивость N + 1.
Собрике
3
@sobrique в этом контексте KVM, скорее всего, означает виртуальную машину, основанную на ядре - linux-kvm.org
Grant
5

Тот факт, что это старая школа, не обязательно делает использование горячего резерва плохой идеей.

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

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

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

HBruijn
источник
2

Концепция наличия горячего или даже холодного резерва зависит от того, как в первую очередь создаются приложения.

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

Например, стандартное веб-приложение обычно требует веб-сервера и сервера базы данных. Для веб-серверов просто загрузите баланс 2 или больше. Если кто-то умирает, не важно. База данных, как правило, более сложная, так как она должна быть спроектирована так, чтобы она была мультимастерной со всеми данными, синхронизированными на участвующих машинах. Таким образом, вместо одного сервера БД вы получаете 2 (или более), которые обслуживают ваши потребности в данных. Крупные поставщики услуг, такие как Google, Amazon, Facebook и т. Д., Пошли по этому пути. Время разработки выше, но оно платит дивиденды, если вам нужно масштабироваться.

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

Не я
источник