linko22 Posted April 18, 2012 Posted April 18, 2012 Здравствуйте! Интересует создание отказоустойчивой системы на базе двух свитчей Cisco 3750G и нескольких серверов Linux Centos. Для отказоустойчивости в качестве бекендов на Linux используется nginx, каждый сервер воткнут в две Cisco двумя патч-кордами, работает Etherchannel, интерфейс на Linux соответственно bond0. Я планирую в порты, которые подключены к этим серверам, посылать Multicast по MAC адресу, на самих же серверах будет использоваться iptables+clusterip, где будет прописан один IP адрес с одинаковым MAC адресом, который прописан в Cisco в качестве мультикаста. Кто нибудь работал с такой связкой? Т.к. говорят, но я еще не тестировал, что при пропадании одного из бекендов Linux - часть трафика от клиентов будет теряться. Или есть какие нибудь другие способы построить отказоустойчивую систему с использованием данного оборудования? Вставить ник Quote
linko22 Posted April 18, 2012 Author Posted April 18, 2012 heartbeat или ipvsadm ? heartbeat, на сколько я понимаю, позволяет систему active-backup. В моём же случае должны работать все, при этом гибко масштабироваться. ipvsadm - почитаю что это такое. Вставить ник Quote
linko22 Posted April 18, 2012 Author Posted April 18, 2012 Да, не подходит. Опять одна точка входа и надо держать запасную. В моём текущем случае точкой входа является Cisco, причем работают сразу две, т.к. у меня Etherchannel на обе циски от провайдера. Вставить ник Quote
martin74 Posted April 18, 2012 Posted April 18, 2012 ipvsadm резервируется через heartbeat, за ним стоит пачка серверов.... У меня пачка локальных сайтов живет на подобной схеме - фронтендом нгинх на heartbeat кластере, за ним пачка машинок с апачами... При пропадании одной машины получаем небольшую задержку в отдаче контента на часть клиентов, потом все выравнивается... Собсно клиенты не особо это замечают... Только php надо правильно настроить - единое хранилище сессий.... Вставить ник Quote
linko22 Posted April 18, 2012 Author Posted April 18, 2012 ipvsadm резервируется через heartbeat, за ним стоит пачка серверов.... У меня пачка локальных сайтов живет на подобной схеме - фронтендом нгинх на heartbeat кластере, за ним пачка машинок с апачами... При пропадании одной машины получаем небольшую задержку в отдаче контента на часть клиентов, потом все выравнивается... Собсно клиенты не особо это замечают... Только php надо правильно настроить - единое хранилище сессий.... Сейчас у меня keepalived с HAProxy, который раскидывает на несколько nginx потом уже кидает на apache. Обеспечением сохранностью сессий занимаются программисты. Меня больше интересует, как выкинуть софтовую прослойку перед nginx, что бы снизить трафик и нагрузку на машину, где сейчас активен внешний IP адрес. Для этого я выбрал 3750G, но, как оказалось что это не совсем то, оборудование уже есть и поэтому надо использовать что есть. Текущий вариант с clusterip он работоспособен, но я заранее уже ожидаю подводных камнейи какое нибудь альтернативное решение на основе текущего оборудования, для тестов, прежде чем все это пускать в продакшен. Вставить ник Quote
f13 Posted April 18, 2012 Posted April 18, 2012 (edited) собирайте 3750 в стек и поднимайте multi-chassis etherchannel Edited April 18, 2012 by f13 Вставить ник Quote
linko22 Posted April 18, 2012 Author Posted April 18, 2012 собирайте 3750 в стек и поднимайте multi-chassis etherchannel Оно так сейчас и есть. На серваках два порта Ethernet, первый - в первую циску, второй во вторую циску, стековые кабеля оба подключены, etherchannel между портами в разных цисках тоже есть. Linux все видит, работает по 802.3ad. Вставить ник Quote
nnm Posted April 18, 2012 Posted April 18, 2012 Т.к. говорят, но я еще не тестировал, что при пропадании одного из бекендов Linux - часть трафика от клиентов будет теряться. Скорее всего, да. Т.к. clusterip полностью статический и не знает, что происходит с другими нодами. Следовательно хэш перестроить не может. А что Вы подразумеваете под фразой 'пропадание одного из бекендов'? Сервер физически издох? Или слушающий порт процесс упал? Вставить ник Quote
linko22 Posted April 18, 2012 Author Posted April 18, 2012 Т.к. говорят, но я еще не тестировал, что при пропадании одного из бекендов Linux - часть трафика от клиентов будет теряться. Скорее всего, да. Т.к. clusterip полностью статический и не знает, что происходит с другими нодами. Следовательно хэш перестроить не может. А что Вы подразумеваете под фразой 'пропадание одного из бекендов'? Сервер физически издох? Или слушающий порт процесс упал? И тот и другой вариант. Тестировал я нагрузочным скриптом на 4 серверах, отключал nginx на одном сервере, другом, потом включал его - трафик снова на него шел. Так же перезагружал машину, все работало. Но тестировал я с одной машины только, поэтому наверное провалов и не видел. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.