LINUX.ORG.RU
ФорумAdmin

Принцип построения отказоустойчивой сети в рамках одной серверной

 , , ,


0

2

я особо не занимался проектированием, сетивики, направьте на путь истинный.

Стойка:

Короче, допустим у нас есть стойка, в стойке 10 серверов, допустим штатная пропускная способность сети одного сервера 1G, тогда нам надо, чтобы у каждого сервера было по 2 eth с пропускной способностью 1G каждый интерфейс, далее у нас в стойке стоит 2 коммутатора, каждый сервер подключен eth1 -> switch-1, eth2 -> switch2, при этом эти 2 коммутатора объединены в один логический и оба линка от каждого сервера объединены в один логический со скоростью 2G (получается, что в штатном режиме каждый провод загружен на 50%.

Коммутаторы в сойке:

Теперь что касается коммутаоров, каждый downlink на нем 1G, всего 10 даунлинков на каждом коммутаторе в стойке. Суммарный трафик на каждом коммутаторе 10G, между коммутаорами линк на 40G +5-10% на служебный трафик и этот интерлинк тоже должен состоять из 2-х физических линков, каждый по 20G, так как в случае аварии, там как раз пойдет трафик в 20G.

Агрегационные коммутаторы:

теперь выше у нас должно быть 2 коммутатора агрегации, если стоек не одна, а штук 5-10, но не больше. в штатном режиме от коммутатора в стойке до агрегационного коммутатора идет нагрузка в 10G на каждый порт, в нештатном может увеличиться до 20G, следовательно, каждый даунлинк на коммутаторе агрегации должен иметь пропускную способность минимум 20G, соответственно, суммарная пропускная способность одного аплинка (куда-то в ядро сети) на коммутаторе агрегации при количестве стоек 5шт. должна составлять 1052G, так как в штатном режиме у коммутатора агрегации аплинк будет пропускать 105G, в случае аварии 105*2G, интерлинк между коммутаторами агрегации тоже должен иметь 2 физических провода суммарной пропускной способностью 100G, в штатном режиме там вообще только служебный трафик, в нештатном 50G на каждый провод, на случай, если один из проводов этого интерлинка тоже оборвется, суть понятна?

Выводы:

В общем, выводим правило: каждый логический линк должен иметь 2-ю пропускную способность от штатной и иметь как минимум 2 физических провода (не важно, интерлинк между коммутаторами или любые другие линки), каждая единица оборудования должна быть дублирована. Схема не масштабируется, но до 10 стоек по 10 серверов, я думаю, можно найти и оборудование такое и реализовать все это.

Помощь зала:

Что-то есть добавить? это все на уровне L2, если с учетом масштабирования, то, я так понимаю, надо уже что-то другое, так как таких агрегационных коммутаторов просто не бывает наверно, чтобы каждый имел по 100 портов (в случае 100 стоек), а аплинк получится 101002G таких наверно просто не существует. Добавьте, если есть что добавить, только конструктивно.

Сорян за полотно.

нарисовал схему:

https://drive.google.com/file/d/1pCk5N8PmtrwbwdiJbcD5JCOSJAPqIrBt/view?usp=sharing



Последнее исправление: IvanRia (всего исправлений: 3)

Принцип построения отказоустойчивой сети в рамках одной серверной.

Если ты хочешь получить оценку, замечания и предложения по твоей затее, то нарисуй схему сетевых подключений, подпиши пропускную способность каждого канала связи и выложи здесь. Чертеж сделай.

Enthusiast ★★★☆
()

Два электрических ввода в серверной (от разных подстанций)? Сколько ИБП, емкость батареек. Между серверами и СХД какой протокол iscsi multipath через ethernet коммутатор или СХД напрямую к серверам цепляется?

Между свичами ethernet channel (агрегирование) или еще как отказоустойчивость планируется (STP,RSTP,EAPS,ERPS,OSPF, vxvlan)?

Как сервис (виртуалка, сервисный IP) переключиться/переедет с ноды на ноду?

А так правильно сказали нарисуй схему со всеми элементами(пользователь - сервис(и его зависимости) - железка - сеть), после зачеркивай каждый элемент (проводок ethernet, проводок питания, диск,СХД,ethernet коммутатор, сервер, ethernet интерфейс и т.д.) и смотри какая у тебя отказоустойчивость, что сработало для отказоустойчивости, устрой в серверной «Chaos Monkey».

Мониторинг всего этого хозяйства необходим.

Vlad-76 ★★★★
()
Ответ на: комментарий от Vlad-76

я подробностей не знаю, не знаю даже, какой канал на серверах нужен и я только по L2 части, что там будет на серверах и куда это будет уходить вверх от свичей агрегации, тоже не знаю, я пытаюсь вывести формулу от 3-х переменных, x - количество северов в стойке, y - штатная пропускная способность сети для каждого сервера, и z - количество стоек. Но как выяснилось, там уже что-то построили и наверно как водится, криво.

IvanRia
() автор топика

Замок на вход в серверную. И запрет на вход в серверную с чашкой кофе.

Tesler
()
Ответ на: комментарий от IvanRia

и наверно как водится, криво

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

оба линка от каждого сервера объединены в один логический со скоростью 2G (получается, что в штатном режиме каждый провод загружен на 50%.

Зачем объединены? Где-то требуется эти 2 Гбита? Всегда было нормально, что резервный линк в штатном режиме не загружен.

Откуда 20 Гб трафика между коммутаторами в стойке? Вобще — это исходно нужно решать, если один из аплинков из стойки обрывается, то есть отказ, нужны ли 2 Гб на сервер или 1 Гб хватит. Обырв аплинка — отказ, выход из строя свича — отказ.

mky ★★★★★
()
Ответ на: комментарий от IvanRia

Между свичами ethernet channel (агрегирование) или еще как отказоустойчивость планируется

свичи в каждой стойке объединены в 1 логический, сетевые карты на серверах eth0 и eth1 объединены в 1 логический и 2 свича агрегации объединены в 1 логический, в схеме по 2 свича на стойку, всего 2 свича агрегации и какое-то условное ядро сети, куда уходят по 1-му линку от свичей агрегации, нарисовал схему, как бы прицепить?

https://drive.google.com/file/d/1pCk5N8PmtrwbwdiJbcD5JCOSJAPqIrBt/view?usp=sharing

IvanRia
() автор топика
Последнее исправление: IvanRia (всего исправлений: 1)
Ответ на: комментарий от mky

Откуда 20 Гб трафика между коммутаторами в стойке?

если один из свичей агрегации перестает работать и один из физических линков между коммутаторами в стойке рвется

IvanRia
() автор топика
Ответ на: комментарий от IvanRia

«И». То есть вы два отказа закладываете? Но, при этом отказ двух свичей в стойки не предусмотрен. Вы удваиваете требование к пропускной возможности канала чтобы при некоторых двойных отказах всё не просто работало, а на полной скорости. Больше денег, но не гарантируем работу при произвольных двойных отказах.

Межсерверное общение идёт через самый верхний уровень

Сильно. Если я захочу, чтобы два соседних сервера что-то там между собой дублировали, реплицировали и т.д. и сделаю им 10 Гб линки...

mky ★★★★★
()

Если Вы это все на практике строите, то делайте 10 или 25 гбитную сеть (на оптике).

Лучше иметь 10-гигабитную сеть с переподпиской, чем гигабитную без переподписки.

Про архитектуру сети Клоза почитайте еще (leaf/spine).

Какие коммутаторы планируете использовать и как они резервируются (стек/vpc)?

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 1)
Ответ на: комментарий от IvanRia

Поглядел, хм, я почему то схему несколько иначе представлял :)

P.S. У вас что есть резервный генератор? Я к тому что могут свет вырубить и на поболее чем сутки.

anonymous
()

пойди почитай про Clos network architecture, BGP-only core. не надо делать больших L2 сегментов, L2 хуже сходится, даже с RSTP. надо закончить L2 на аксессе и дальше все интерфейсы только L3, только BGP и BFD по необходимости.

если понадобится растягивать L2 между стойками, то используй VXLAN или GRE в простых случаях. Но сейчас нужды такой почти никогда нет. Если тебе нужен просто отказоучтойчиво доступный VIP, анонсируй по BGP с лупбека через ExaBGP с чеками сервиса.

если ты вдруг будешь дальше масштабироваться, можешь, конечно, как взрослые ребята приносить MPLS на гипервизор и там иметь CPE, но, учитывая, какие вопросы ты задаёшь, может быть рановато.

anonymous
()
Ответ на: комментарий от anonymous

а, ну и общий control plane в ToR свитчах - так себе затея, увеличивает blast radius, по возможности избегай

anonymous
()
Ответ на: комментарий от mky

а что ж мне 4 свича в стойку ставить? отказ на одном уровне одного устройства и отказ на разных уровнях по одному устройству, каждый свич запитан отдельно.

IvanRia
() автор топика
Ответ на: комментарий от anonymous

могут наверно и отключить, я думаю, что резервный генератор есть в самом датацентре

IvanRia
() автор топика
Ответ на: комментарий от mky

но не гарантируем работу при произвольных двойных отказах.

дерьмо случается, так-то можно и целую стойку задублировать, зачетверить, построить вокруг 4 АЭС, все-таки выход из строя одного коммутатора на одном уровне ниже, чем выход из строя 2-х коммутаторах на одном уровне, если понадобится 10GB линки, значит надо исходно закладывать в сеть пропускную способность на 10GB, я так думаю, а как иначе? лезть в сервеную, менять сетевые карты и прокидывать проводок по полу от стойки к стойке.

IvanRia
() автор топика
Ответ на: комментарий от IvanRia

построить вокруг 4 АЭС

Ладно, продолжайте генерить бред. Не хотите понимать, что закладывание в проект избыточных требований — это ненужное удорожание, ну как хотите. Если в принципе не смотреть, какое и почём есть оборудование, что оно может, то можно такого напроектировать, что и 4 АЭС не хватит.

каждый свич запитан отдельно.

И содержит в себе два блока питания или можно просто из него один кабель выдернуть и он отключится?

Когда перестанет работать один из стоечных свичей, то все сервера в стойке будут по 1 Гбит, и эта ситуация вас устраивает. Зачем тогда двойная пропускная способность аплинков? Будет отказ — будет 1 Гбит и всё.

mky ★★★★★
()

Ради интереса и общей информации можете ещё посмотреть brownfield -> greenfield

skyman ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария