У Эвана есть некоторые хорошие моменты, но вот, возможно, некоторые конкретные экономически эффективные способы получить время восстановления до 1 часа перед лицом сбоев.
Малый бизнес, скорее всего, означает маленькое аппаратное обеспечение, поэтому, возможно, не так уж и дорого делать некоторые простые вещи, которые на самом деле значительно повышают отказоустойчивость перед лицом проблем. Основная идея - просто подготовить дополнительное оборудование.
Во-первых, освоиться с мыслью о виртуальном IP. Это IP-адрес, с которым пользователи будут общаться, но он может находиться на любом сервере, которому вы его предоставляете. Это IP-адрес вашего пользователя, с которым приложения захотят общаться. И это будет самым полезным для ультимативно любого решения, к которому вы стремитесь. Наличие VIP означает, что вам не нужно перенастраивать какие-либо из приложений при сбое. Кроме того, имейте в виду, что наличие избыточного оборудования также увеличивает затраты на администрирование, делая два обновления конфигурации вместо 1.
Если мы начнем с вашего сервера маршрутизации / веб-прокси, он, вероятно, будет самым простым, поскольку он не будет иметь никакого реального состояния, которое нужно хранить на самой коробке. Так что просто получите дубликат одного и того же ящика и настройте его так же. Я бы оставил оба подключенных в сегменте локальной сети, и, если вы подключены к другому интерфейсу, подключите кабели, если они неисправны. С точки зрения маршрутизации вы настраиваете все свои локальные клиенты на адрес .1 (VIP) для своего маршрута по умолчанию, а прокси-сервер дает серверу A адрес .2, а серверу B адрес .3. Таким образом, ими обоими можно управлять для обновлений конфигурации (относится к обоим). И все, что вам нужно сделать для восстановления после сбоя, это удалить IP-назначение .1 из .2 и переместить его в .3, а также перенести интернет-соединение на другой интерфейс. Это не очень сложно, легко сделать и понять, и стоит дополнительное оборудование второй коробки. Если вы можете получить избыточность на стороне Интернета, вы можете добавить некоторую сложность и получить автоматический переход на другой ресурс при помощи чего-то вроде VRRP.
Без подробностей сложно сказать, но ваш веб-сервер может быть таким же простым. Добавьте второй сервер с идентичной конфигурацией, создайте VIP между ними и переместите VIP в резервную копию в случае сбоя. Я вообще не против, если состояние сеанса теряется при аварийном переключении (это критическая проблема вызвать аварийное переключение). Так что, если пользователям придется войти снова, ничего страшного. Опять же, vrrp, вероятно, можно использовать для автоматического перехода на другой ресурс.
Переходя к вашей БД, это значительно сложнее. Большинство БД имеют своего рода первичную / вторичную модель, где вы резервируете исходную БД на вторичную, а затем копируете все журналы транзакций или изменения БД на вторичную. Опять же, вы можете комбинировать это с VIP для приложений / пользователей, фактически обращающихся к БД. Однако отработка отказа более сложна. В зависимости от сбоя первичной системы вам может потребоваться запустить и запустить диски для копирования и оставления журналов транзакций. Затем приведите вторичный актив. Если вы можете допустить потерю данных, вы можете сразу же активировать вторичный актив. После отработки отказа сервер B теперь является основным, и вы должны восстановить сервер A и превратить его в новую резервную копию, чтобы он был готов к сбоям, когда на сервере b в конечном итоге возникнут проблемы.
Файловые серверы - всегда самая сложная часть, поскольку в отличие от баз данных, гораздо сложнее получить встроенную функцию файловой системы. Тем не менее, некоторый уровень отказоустойчивости может быть достигнут с помощью второго сервера, и просто напишите сценарий, который сканирует файловую систему на наличие изменений и копирует любые новые файлы на ваш вторичный сервер. Вы можете запустить rsync на кроне, который я считаю, чтобы сделать это. Опять же, вы используете VIP, который вы даете пользователям, который вы перемещаете, если выполняете аварийное переключение. В вашем сценарии я настоятельно рекомендую вам проверить, чтобы убедиться, что система является владельцем VIP, прежде чем передавать файлы. Вы действительно действительно не хотите, чтобы rsync выполнялся в неправильном направлении и перезаписывал любые изменения, которые вносят пользователи. Это может привести к потере некоторых файлов в случае сбоя,
Я понятия не имею, что вы можете сделать с вашей телефонной системой ... это действительно зависит от поставщика и от того, как он настроен. У поставщика может быть готовое решение для обеспечения отказоустойчивости.
Несколько заключительных слов предупреждения. Убедитесь, что вы тщательно протестировали все настройки, с которыми собираетесь работать. Удостоверьтесь, что вы знаете, как отменить это без потери этой важной информации. Тестовый тестовый тест, чтобы убедиться, что он будет работать, когда вам это нужно. Убедитесь, что у вас есть процессы, позволяющие корректно применять изменения конфигурации, обновления программного обеспечения и т. Д. Как для основного, так и для резервного копирования. Хорошая новость заключается в том, что вы, вероятно, можете выполнять управляемое переключение при сбое, когда хотите отключить сервер для обновления и т. Д. Это не активно-активная установка, поэтому вы не представляете, будет ли работать вторичный сервер, когда вам это нужно.
Я работаю в сфере телекоммуникаций, и наше оборудование очень избыточно, в том числе в большинстве случаев географическое резервирование. Наша точка отказа номер 1 - избыточность не проверяется после изменений, а пользователи вносят изменения, которые не знают, как работает модель избыточности. Однако у нас есть дополнительная проблема: все наше оборудование должно поддерживать автоматический переход на другой ресурс в течение не более нескольких секунд. Вы можете терпеть ручное вмешательство при переходе на другой ресурс, если вам нужно только запустить его в течение 30 - 60 минут. Вам просто нужно быть готовым. Удачи.