Всем привет! Есть, скажем, коммутатор, который умеет 802.3ad. Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые - 4-мя. На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad). Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с. При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты. Вопрос в том, как получить 2 Гбит/с между сервером X и Y. Использовать другой тип бондинга? Если да - какой будет лучше? Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да - что? Заранее благодарен за советы и подсказки. Вова.
Hello! Wed, Jul 17, 2013 at 02:40:20PM +0300, v.melnik wrote:
Всем привет!
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые – 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
Одним потоком ? Трафик между двумя определенными серверами как правило плохо балансируется, т.к. как правило путь пакета строится по хешу (src-dst mac, src-dst ip, src-dst ip + port number).
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да – какой будет лучше?
Возможно целесообразно будет использовать "обходные" варианты. Что именно будет работать лучше - не знаю нужно тестировать.
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да – что?
Заранее благодарен за советы и подсказки.
Вова.
-- Best regards, Igor Kremez
Приветствую! On Wed, Jul 17, 2013 at 02:40:20PM +0300, Vladimir Melnik wrote:
Всем привет!
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые - 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да - какой будет лучше?
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да - что?
Заранее благодарен за советы и подсказки.
Вова.
Балансировка, наверное, на L2, поэтому обмен между двумя серверами идет исключительно по одному линку и упирается в 1G. Переход на L3+L4, если свитч такое умеет, тоже вряд ли спасет, если обмен идет исключительно между двумя парами IP address-port. ИМХО лучшее решение: включить все сервера в свитч с 10G портами. Еще есть варианты с другим типом бондинга, нп. 5 или 6, в которых даже утверждается, что "... does not require any special switch support", но я не пробовал такого. Детальнее: http://xgu.ru/wiki/Linux_Bonding -- Kind Regards, Alexander Shikoff AMS1-UANIC
Уточните возможность использования механзма хэширования round-robin на всех участках link aggregation'а. Модерновые устройства это умеют. �то в свою очередь решает проблему с упиранием в- или забиванием одной из веревок и последующими каками в случае такого типа стыков от аксесс свичей в аггрегатор и от аггрегатора в core/edge.
Переход на 10G - это круто, только не
всегда оправдано и/или необходимо чисто
финансово. Среднестатистический веб
сервер с трудом может высрать 2-3Гбит
контента, который он жмет на лету и
как-то предобрабатывает (про медиа не
говорим, ок), соотв. вопрос
линк-аггрегации такого типа, как
спрашивает тёзка очень в тему.
--- Исходное сообщение ---
От кого: "Vladimir Melnik"
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые – 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да – какой будет лучше?
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да – что?
Заранее благодарен за советы и подсказки.
Вова.
Привет!
Всегда интересовало: а как Linux делает load balancing? Мне всегда казалось что главная идея при разработке Linux bonding была redundancy а про load balancing никто не думал
Best wishes,
Maksym
On 17 Jul 2013, at 14:08, "Vladimir Sharun"
Уточните возможность использования механзма хэширования round-robin на всех участках link aggregation'а. Модерновые устройства это умеют. Это в свою очередь решает проблему с упиранием в- или забиванием одной из веревок и последующими каками в случае такого типа стыков от аксесс свичей в аггрегатор и от аггрегатора в core/edge.
Переход на 10G - это круто, только не всегда оправдано и/или необходимо чисто финансово. Среднестатистический веб сервер с трудом может высрать 2-3Гбит контента, который он жмет на лету и как-то пре� �обр� �батывает (про медиа не говорим, ок), соотв. вопрос линк-аггрегации такого типа, как спрашивает тёзка очень в тему.
--- Исходное сообщение --- От кого: "Vladimir Melnik"
Дата: 17 июля 2013, 14:40:24 Всем привет!
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые – 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да – какой будет лучше?
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да – что?
Заранее благодарен за советы и подсказки.
Вова.
Лоад балансинг бывает разный - per packet или per destination. На linux
bonding мона разные методы внедрять - balance-rr просто пакеты кидает в
разные дырки 5 и 6 поумнее. balance-xor по дестинейшену балансирует. Ну и
failover есть. Для задачи топикстартера кмк balance-rr самый раз
17 июля 2013 г., 15:52 пользователь Maksym Tulyuk
Привет!
Всегда интересовало: а как Linux делает load balancing? Мне всегда казалось что главная идея при разработке Linux bonding была redundancy а про load balancing никто не думал
Best wishes, Maksym
On 17 Jul 2013, at 14:08, "Vladimir Sharun"
wrote: Уточните возможность использования механзма хэширования round-robin на всех участках link aggregation'а. Модерновые устройства это умеют. Это в свою очередь решает проблему с упиранием в- или забиванием одной из веревок и последующими каками в случае такого типа стыков от аксесс свичей в аггрегатор и от аггрегатора в core/edge.
Переход на 10G - это круто, только не всегда оправдано и/или необходимо чисто финансово. Среднестатистический веб сервер с трудом может высрать 2-3Гбит контента, который он жмет на лету и как-то пре� �обр� �батывает (про медиа не говорим, ок), соотв. вопрос линк-аггрегации такого типа, как спрашивает тёзка очень в тему.
--- Исходное сообщение --- От кого: "Vladimir Melnik"
Дата: 17 июля 2013, 14:40:24 Всем привет!
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые – 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да – какой будет лучше?
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да – что?
Заранее благодарен за советы и подсказки.
Вова.
-- Yours, Max http://about.me/speransky http://idepositbox.com
А Linux умеет per flow with hashing? т.е. на основе src/dst mac/IP addresses, MPLS label, UDP/TCP ports, etc строится хеш и весь траффик по этому хешу посылается в один и тот же порт?
Best wishes,
Maksym
On 17 Jul 2013, at 15:04, Max Speransky
Лоад балансинг бывает разный - per packet или per destination. На linux bonding мона разные методы внедрять - balance-rr просто пакеты кидает в разные дырки 5 и 6 поумнее. balance-xor по дестинейшену балансирует. Ну и failover есть. Для задачи топикстартера кмк balance-rr самый раз
17 июля 2013 г., 15:52 пользователь Maksym Tulyuk
написал: Привет! Всегда интересовало: а как Linux делает load balancing? Мне всегда казалось что главная идея при разработке Linux bonding была redundancy а про load balancing никто не думал
Best wishes, Maksym
On 17 Jul 2013, at 14:08, "Vladimir Sharun"
wrote: Уточните возможность использования механзма хэширования round-robin на всех участках link aggregation'а. Модерновые устройства это умеют. Это в свою очередь решает проблему с упиранием в- или забиванием одной из веревок и последующими каками в случае такого типа стыков от аксесс свичей в аггрегатор и от аггрегатора в core/edge.
Переход на 10G - это круто, только не всегда оправдано и/или необходимо чисто финансово. Среднестатистический веб сервер с трудом может высрать 2-3Гбит контента, который он жмет на лету и как-то пре� �обр� �батывает (про медиа не говорим, ок), соотв. вопрос линк-аггрегации такого типа, как спрашивает тёзка очень в тему.
--- Исходное сообщение --- От кого: "Vladimir Melnik"
Дата: 17 июля 2013, 14:40:24 Всем привет!
Есть, скажем, коммутатор, который умеет 802.3ad.
Есть несколько серверов (Linux), которые подключены к нему гигабитными картами. Некоторые сервера подключены 2-мя картами, некоторые – 4-мя.
На всех этих серверах используется бондинг с mode=4 (это и есть 802.3ad).
Замечено, что скорость передачи данных между любым произвольным сервером и любым другим произвольным сервером не превышает 1 Гбит/с.
При этом, когда сервер обменивается данными с несколькими серверами одновременно, суммарная нагрузка на bond-интерфейс таки говорит о том, что используются все карты.
Вопрос в том, как получить 2 Гбит/с между сервером X и Y.
Использовать другой тип бондинга? Если да – какой будет лучше?
Что-то подкрутить в настройках на коммутаторе или на самих серверах? Если да – что?
Заранее благодарен за советы и подсказки.
Вова.
-- Yours, Max http://about.me/speransky
Ващемто это дефолтное поведение LACP'а. Тока учтите тот момент, что в качестве DST/SRC MAC в маршрутизируемой среде будет использован роутер с которого или на которы пойдёт траффик. А вообще по L4 обязано уметь хэшировать гарантировано.
--- Исходное сообщение --- От кого: "Maksym Tulyuk"
Дата: 18 июля 2013, 10:00:43
А Linux умеет per flow with hashing? т.е. на основе src/dst mac/IP addresses, MPLS label, UDP/TCP ports, etc строится хеш и весь траффик по этому хешу посылается в один и тот же порт?
И насколько хорошо в Linux это имплементировано?
Best wishes,
Maksym
On 18 Jul 2013, at 09:41, Vladimir Sharun
Ващемто это дефолтное поведение LACP'а. Тока учтите тот момент, что в качестве DST/SRC MAC в маршрутизируемой среде будет использован роутер с которого или на которы пойдёт траффик. А вообще по L4 обязано уметь хэшировать гарантировано.
--- Исходное сообщение --- От кого: "Maksym Tulyuk"
Дата: 18 июля 2013, 10:00:43 А Linux умеет per flow with hashing? т.е. на основе src/dst mac/IP addresses, MPLS label, UDP/TCP ports, etc строится хеш и весь траффик по этому хешу посылается в один и тот же порт?
participants (6)
-
Alexander Shikoff
-
Igor Kremez
-
Maksym Tulyuk
-
Max Speransky
-
Vladimir Melnik
-
Vladimir Sharun