В настоящее время я разрабатываю службу OpenVPN, чтобы предоставить пользователям Интернета повышенную конфиденциальность.
Пока я намерен использовать выделенные серверы под управлением CentOS и Xen, чтобы предоставить несколько доменов, каждый из которых является сервером OpenVPN, для обеспечения высокой доступности и балансировки нагрузки.
Если один domU выходит из строя, я хочу автоматически запускать второй domU на том же хосте. Возможен ли этот тип аварийного переключения?
Есть ли какие-нибудь решения для балансировки нагрузки VPN-подключений к серверам domU?
Да, можно отслеживать состояние Xen DomU и запускать произвольную команду в случае сбоя DomU. Вы можете запустить экземпляр демона Monit на третьем хосте (DomU или физическом), который проверяет первичный OpenVPN DomU и сообщает Dom0 о необходимости запустить вторичный DomU в случае отказа первичного. В документации Monit есть много примеров, которые могут показать вам, как это реализовать:
Да, OpenVPN имеет встроенные возможности высокой доступности и / или распределения нагрузки, и его довольно просто настроить.
Во-первых, вы будете запускать несколько серверов OpenVPN параллельно, причем каждый сервер будет прослушивать свой собственный IP-адрес. У серверов нет общего состояния, и они ничего не знают друг о друге.
Затем вы указываете несколько параметров «--remote» в командной строке или в файле конфигурации клиента OpenVPN. Когда клиенту доступны несколько вариантов удаленного сервера, он случайным образом выбирает один и подключается к нему. Если этот сервер выйдет из строя, он повторно попытается установить соединение, а затем случайным образом выберет другой сервер, если он не сможет подключиться. См. Документацию OpenVPN здесь для получения дополнительной информации:
Вы можете увидеть мой ответ на аналогичный вопрос здесь:
Как отмечалось в моем другом ответе, вы, вероятно, захотите обратить внимание на эти параметры клиента, в частности:
Конечно, это не настоящая балансировка нагрузки, потому что клиент OpenVPN не выбирает сервер с наименьшей нагрузкой или наименьшим количеством клиентов - он просто случайным образом выбирает сервер. Если вам нужна истинная балансировка нагрузки, чтобы гарантировать, что нагрузки на сервер остаются равными, вам нужно будет найти какое-то специальное решение для балансировки нагрузки, будь то аппаратное или программное обеспечение.
Для настройки кластера OpenVPN HA вы можете использовать комбинацию OpenVPN, балансировки нагрузки WAN и OSPF. Здесь есть свежий HOWTO: http://www.vyatta4people.org/highly-available-openvpn-connection-between-two-offices/ Наслаждайтесь!
Возможно, вы могли бы настроить две виртуальные машины domU как два узла обычного Linux HA-кластера. Но я думаю, что эта конфигурация может работать, только если второй узел находится в режиме ожидания, а не выключен. Если вы хотите, чтобы резервный узел domU запускался, если первый не работает, я думаю, вам нужно написать сценарий на уровне dom0, который будет работать вечно, проверяя работоспособность первого узла и в случае сбоя принудительно его полное отключение и запуск резервного копирования (я не думаю, что такой сценарий оболочки должен быть слишком сложным или, может быть, вы можете использовать какое-нибудь хорошее программное обеспечение для Linux, которое может выполнить эту работу, но оно могло бы быть более навязчивым).
Также для этого вы можете рассмотреть две виртуальные машины, такие как обычная машина Linux, и установить и использовать стандартное решение для балансировки нагрузки Linux.