Я тестировал tomcat specific clustering
с Apache mod_jk
и mod_proxy
на локальных виртуальных машинах ubuntu для нашего сайта high availability
и load balancing
. Настоящие серверы размещены на Rackspace cloud
сервер-провайдер. Я тестировал кластеризацию Tomcat с 1 балансировщиком нагрузки и 2 веб-серверами. Поскольку единый балансировщик нагрузки снова является single point of failure
, Пытаюсь добавить еще один LB в раб.
В Rackspace есть опция Load Balancers
и Вот - это ссылка, которая описывает, как настроить балансировщик нагрузки, который я не уверен в настройке из-за некоторых сомнений, поскольку я никогда не делал этого раньше.
Может ли кто-нибудь порекомендовать мне пошагово, что мне следует и чего не следует, имея только необходимые ресурсы, избегая ненужных затрат?
Ниже приведены вещи, в которых я не уверен и прошу кого-то, кто уже использует Rackspace, помочь мне в настройке балансировки нагрузки:
Я хочу добавить как минимум 4 машины, 2 как веб-серверы, 1 как сервер балансировки нагрузки и еще один как сервер балансировки нагрузки при отказе. Думаю, я могу добавить новые машины с помощью опции Rackspace Load Balancer?
Я только что услышал, что можно сократить стоимость статических IP-адресов, настроив кластер в локальной сети, назначив частный IP-адрес кластерным компьютерам, и, таким образом, я также могу сократить расходы на пропускную способность. Действительно ли возможно объединить кластерные компьютеры в LAN в Rackspace?
Насколько мне известно, я укажу доменное имя (имя веб-сайта) на балансировщик нагрузки в DNS, где домен зарегистрирован, и оба LB должны иметь статический общедоступный IP-адрес (я думаю, что я здесь). Как я уже сказал, я хочу добавить еще один LB, чтобы избежать единой точки отказа. Есть ли в Rackspace какой-либо вариант, где я могу указать домен веб-сайта на оба LB, чтобы активен был только один, а в случае сбоя активного он должен указывать на другой LB (аналогичный ip failover
) так что я могу сделать его веб-сайт с нулевым временем простоя ?.
Если возможно, я прошу кого-нибудь дать мне пошаговый список того, как делать это в Rackspace с вашими собственными рекомендациями о том, что мне следует и не следует.
Заранее спасибо!
РЕДАКТИРОВАТЬ: 1
Я слышал, что Rackspace предлагает share an ip
между компьютерами, не так ли? Тогда я могу использовать эту опцию. Я буду указывать публичный / общий IP как виртуальный eth0:0
в файле сетевого интерфейса на обоих балансировщиках нагрузки. Вы действительно думаете, что он работает безупречно, даже если публичный IP-адрес указан как виртуальный IP-адрес с интерфейсом eth0: 0 без каких-либо перерывов?
РЕДАКТИРОВАТЬ: 2
Я думал, что настройка похожа на все компьютеры (веб-серверы и балансировщики нагрузки) в локальной сети (в Rackspace) с некоторой сетью (192.168.x.x
) с помощью eth0
интерфейс. Для балансировщиков нагрузки, для интерфейса eth0:0
или eth1
, общедоступный IP-адрес используется совместно LB, а mod_proxy и mod_jk на LB перенаправляют их на веб-серверы, поскольку они могут находиться в одной сети (192.168.x.x).
После некоторого анализа я понял, что не могу напрямую получить доступ к веб-серверам для тестирования из своего места, поскольку им не назначен общедоступный IP-адрес, и поэтому я снова подумал о добавлении перенаправления прокси, например ProxyPass /web1 http://web1-ip-here
на LB для доступа к веб-серверам с общедоступным IP-адресом или доменным именем сайта (я думаю, что он перенаправляет, поскольку все серверы находятся в локальной сети). Но опять же, чтобы обновить или установить некоторые пакеты на веб-серверах, требуется подключение к Интернету. Мне снова интересно, есть ли возможность подключить веб-сервер к WAN с одним общедоступным IP-адресом на LB, и если да, работает ли он без проблем. В противном случае я должен использовать общедоступный IP-адрес для каждого веб-сервера.
Согласно поддержке RS, RS LoadBalancer может обрабатывать до 150 000 подключений. На самом деле это несколько (я бы предположил виртуальных) машин с общедоступным IP-адресом. По нашему опыту, у них довольно хорошее время безотказной работы, и их очень легко настроить и выключить. Один из основных недостатков, который я нахожу в использовании RS LB, заключается в том, что они не выполняют завершение SSL (пока).
Здесь работают два хороших варианта:
1. Аппаратная балансировка нагрузки как услуга Rackspace
Совсем недавно Rackspace добавила свою службу балансировки нагрузки, и для простой веб-пересылки это будет ваш более надежный и экономичный выбор. из панели управления учетной записью вы можете перейти к параметрам балансировки нагрузки в разделе Хостинг -> Балансировка нагрузки.
2: Программная балансировка нагрузки с аварийным переключением
Конечно, вы можете настроить два сервера для балансировки нагрузки и использовать такое программное обеспечение, как HAProxy, для циклического перебора входящего трафика. Это потребует от вас оплаты и обслуживания обоих серверов, а также дополнительных затрат на дополнительный общедоступный IP-адрес, который будет использоваться между ними.
На самом деле серверы не «разделяют» IP-адрес - «главный» контролирует его и является общедоступной точкой контакта для вашей балансировки нагрузки. Две машины связаны друг с другом посредством мониторинга тактового сигнала, и если «подчиненный» сервер обнаруживает, что «главный» не отвечает, он связывает общедоступный IP-адрес и становится главным.
У Rackspace есть статья, в которой они описывают процесс настройки решения для балансировки нагрузки пульса на своем веб-сайте: http://www.rackspace.com/knowledge_center/index.php/IP_Failover_-_Setup_and_Installing_Heartbeat
Во-первых, зачем вам 4 машины, если вы можете использовать только 2. Вы можете настроить балансировщик нагрузки на тех же машинах, которые планируете использовать в качестве веб-серверов. Далее вы можете купить так называемый "общий IP" из Rackspace и настройте Heartbeat для управления им. Я пробовал эту настройку в облаке Rackspace, и она работала очень хорошо. Я использовал HAProxy в качестве балансировщика и настоятельно рекомендую вам использовать его, его довольно легко настроить.