В настоящее время у компании Hetzner есть веб-сервер VPS в Германии. Они предлагают бесплатную службу балансировки нагрузки. Думаю о клонировании моего VPS на их сайте в Финляндии (то есть о добавлении еще одного VPS с клонированными настройками / содержимым) для ежедневных резервных копий, которые также могут повысить доступность моего сайта через балансировщик нагрузки.
Возможно ли это даже с двумя VPS, или мне понадобится дополнительный для хранилища / базы данных? Я в основном пытаюсь создать структуру RAID-1, но с двумя VPS вместо двух жестких дисков.
Как лучше всего настроить это в Debian 10 таким образом, чтобы всякий раз, когда один из серверов выходит из строя, другой может отправлять команду на автоматическую перезагрузку?
Есть две части. Во-первых, необходимо определить, не работает ли сервер; во-вторых, отправить команду перезагрузки.
Для обнаружения я бы предложил использовать службу, которая отслеживает с нескольких сайтов, например HetrixИнструменты (есть еще много других). Если вы просто выполняете мониторинг с другого VPS, существует риск «ложного срабатывания», когда другой VPS считается «неработающим» из-за некоторых сетевых проблем между центрами обработки данных Hetzner, но доступным из большинства мест, что приводит к ненужной перезагрузке.
Чтобы отправить команду перезагрузки, используйте API Хетцнера (смотрите в разделе «Мягкая перезагрузка сервера»). Большинство сервисов мониторинга имеют уведомление "веб-перехватчик", которое вы можете использовать для вызова API. Если нет (или если вы не хотите раскрывать свой ключ API службе мониторинга), вы можете указать веб-перехватчик на своем собственном веб-сервере и вызвать API оттуда.
В более общем смысле, перезагрузка сервера сразу после его обнаружения - не лучшая идея. Вы не знаете причину (собирается ли Hetzner выполнять плановое обслуживание?), А неконтролируемая перезагрузка может привести к большему, а не уменьшению времени простоя, если проблема временная. Уведомление о неработающем сервере также обычно происходит, когда сервер выходит из строя, и никогда больше, что потенциально является худшим временем для перезагрузки. Вероятно, нужен более сложный алгоритм, такой как ожидание X минут и повторная попытка по крайней мере через Y минут, а не просто перезагрузка вслепую при обнаружении сбоя. Но это выходит за рамки вашего первоначального вопроса.