Назад | Перейти на главную страницу

Ubuntu Linux и балансировщик нагрузки Crossroads не совсем работает

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

В основном у нас есть производственный веб-сайт и система резервного копирования (на удаленном сайте). производство постоянно зеркалируется в резервной копии, чтобы поддерживать их синхронизацию. наше доменное имя указывает на сервер Linux Ubuntu 9.04 (чистая установка ничего, кроме программного обеспечения для балансировки нагрузки). на котором установлена ​​последняя версия Crossroads (также известная как XR).

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

Проблема, которую я получаю, проявляется в отсутствии ответа от нашего веб-сервера, в основном клиент передает правильно сформированное сообщение XML в веб-службу .NET, эта служба выполняет некоторые вычисления и изменяет данные, а затем отвечает ответом XML, однако кажется, что клиент никогда не получает ответа.

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

Я разговаривал с авторами программного обеспечения XR, и они не могут найти никаких причин или проблем в самом программном обеспечении, которые могли бы объяснить такое поведение, и верю, что это может быть связано с дистрибутивом Linux, который я использую, или проблемой ядра.

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

Теперь я перешел с Ubuntu на CentOS 4 и попробовал снова, теперь я получаю случайные ответы от систем, когда использую wirehark. иногда я получаю полностью сформированный ответ XMl от сервера, и при следующей попытке я могу получить только частичный ответ до того, как Linux-сервер отправит пакет RST.

Хорошо, это оказалось совсем не связано с ОС, а возникла проблема с программным обеспечением (xr aka Crossroads), которое я использовал. ввод некоторых значений тайм-аута в файл конфигурации xml (благодаря предложениям автора программного обеспечения), и это, похоже, решило проблему.

Вот пример записей, которые вам нужно добавить в файл конфигурации между символами #, указанное время ожидания немного чрезмерно (1 минута)

<service>
    <name>web_http</name>
    <server>
      <address>x.x.x.x:80</address>
      <type>tcp</type>
      <dispatchmode>first-available</dispatchmode>

#

      <clienttimeout>60:60</clienttimeout>
      <backendtimeout>60:60</backendtimeout>

#

    </server>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
  </service>

Наверное, не самый полезный ответ, но пробовали ли вы другой балансировщик нагрузки? Только предлагаю это, потому что вы не получали ответа уже 6+ дней :-)

Что-то вроде HAproxy (http://haproxy.1wt.eu) довольно хороша и не требует огромного количества настроек для выполнения большинства задач, вот пример конфигурации сайта:

listen corporate_web_live
  bind 1.2.3.4:80  # www.site.com
  bind 1.2.3.5:80  # www.site.net
    option httpchk HEAD /server.txt HTTP/1.0
    cookie HAPSRV insert postonly indirect
    server webapp-corp-1 10.0.0.1:80 weight 50 maxconn 150 slowstart 30s cookie WAC1 check
    server webapp-corp-2 10.0.0.2:80 weight 50 maxconn 150 slowstart 30s cookie WAC2 check

Он написан Вилли Тарро, который поддерживает дерево ядра Linux 2.4 и постоянно тестируется на пропускную способность 10 Гбит / с на относительно обычном оборудовании. Обработка завершения SSL с помощью Apache + mod_ssl или stunnel тоже очень возможен.

При обработке HTTP-трафика он также может делать некоторые очень забавные вещи Layer7, и он также поддерживает балансировку других протоколов, поддержка SMTP мне очень полезна!