Як налаштувати HAProxy з відмовою?


14

Я розумію, що для отримання відмови в налаштуванні балансування навантаження HAProxy потрібні дві машини, на яких працює HAproxy (і направити його на кілька екземплярів веб-сервера). Але в цьому випадку, скажіть, abcd.com, як ми розділимо / направляємо цей трафік на 2 IP-адреси замість однієї? DNS зазвичай вирішує доменні імена до одного IP-адреси. Як ми це робимо, використовуючи безкоштовні / дешеві інструменти / послуги?


Перевірте це також serverfault.com/questions/238605/…
mixdev

Відповіді:


20

Якщо у вас стільки навантаження, що вам потрібно завантажити баланс через два екземпляри haproxy, тоді кругла версія DNS не є поганою ідеєю (я би здивований, якщо у вас є таке навантаження). DNS-круглень не забезпечить хорошого відмови.

У режимі переповнення стека, який ми використовуємо heartbeatдля надання єдиного віртуального IP-адреси, ця IP-адреса активна лише на одному хапроксі-хості одночасно (якщо він знижується, інший бере на себе цей IP-адресу). Ви можете використовувати серцебиття, щоб мати IP на кожній машині, а потім кругленька DNS між двома. Якби один не стався, тоді інший мав би обидва ці IP-адреси.

HAProxy використовує приблизно 1-5% процесора на фізичному сервері, щоб збалансувати наш трафік, який має єдиний Intel(R) Xeon(R) CPU E5504 @ 2.00GHz. Таким чином, HAProxy, як правило, легко обробляє багато трафіку.


1
Ні. Я точно не маю такого типу трафіку. Це лише спроба уникнути SPOF.
mixdev

2
@mixdev: У такому випадку просто вкажіть DNS на єдиний віртуальний IP, який надає heatbeat, і вам слід погодитися. Ви просто залишите haproxy працювати на обох машинах. Будьте впевнені, протестуйте серцебиття, перш ніж жити, звичайно.
Кайл Брандт

@KyleBrandt: Що робити, якщо процес haproxy загинув? У вас є щось налаштоване, що дозволило б перенести віртуальний IP на основі цього?
CarpeNoctem

@CarpeNoctem: Наразі це не висвітлено. Я думаю, що і серцебиття, і напарник можуть бути налаштовані і на перегляд процесів. Якщо ви все-таки підете цим маршрутом, я рекомендую встановити його так, щоб вимагати, щоб процес не працював протягом тривалого часу (тобто 1 хвилину). Напевно, ви не хочете, щоб серцебиття перехвилювалося на помилку конфігурації. HAProxy перевіряє більшість із них -c, але це може не сприймати такі речі, як помилка конфігурації прив'язки.
Кайл Брандт

5
Для всіх, хто турбується, ми в Stack переїхали до Keepalived набагато більше року тому
Кайл Брандт,

24

Як каже Кайл, серцебиття можна використовувати для того, щоб два гапрокси-сервери діяли як пара, що перестає працювати. Однак, хоча багато людей використовують серцебиття для роботи, автор хапроксі пропонує підказку.

Він окреслює деталі у списку розсилки хапроксі: http://www.formilux.org/archives/haproxy/1003/3259.html

Якщо коротко, це так:

  • серцебиття орієнтоване на кластер. Це забезпечує лише один сервер доступу до ресурсу (наприклад, SAN-сховища)

  • keepalived орієнтований на мережу. Це гарантує, що принаймні один сервер має відповідний IP.


-1

Тут ви можете знайти те, що шукаєте: http://blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/


1
Будь ласка, включіть повний вміст рецепту у свій пост. Ми не точно послуга пов'язування блогу.
Мисливець на оленів

1
крім того, блоги часто знижуються або змінюють URL-адреси, і тоді інформація втрачається.
Денніс Нолте

Відмовляйся від голосування, оскільки це абсолютно не пов'язане з питанням.
danieljimenez

@danieljimenez, Я не зовсім пов'язаний, я думаю, просто непорозуміння. ОП запитав Active / Pasive для самого HAProxy , а користувач3595100 інтерпретував питання як Active / Pasive для сервера HAProxy. Тим не менш, розміщення посилання само по собі не є прийнятною відповіддю.
duct_tape_coder
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.