Ситуация:
Есть приложение, которому не сильна важна производительность процессора сервера, но нужен быстрый интернет и много.
Есть желание сделать облако дома и захостить его у себя, обеспечив отказоустойчивость всего. Домашний интернет обходится раз в 6 дешевле интернета из датацентра, да и вообще, приятнее иметь серверы под боком, а не где-то там в Германии...
Приложение, допустим, будет жить в Docker-контейнере, на серверах установлена CoreOS (Linux). Скажем, 4 сервера в облаке. В каждом сервере сетевая карточка на 4 гигабитных порта (это сценарий А, сценарий В [после апгрейда серверов лет через 3-5]: на 4 10-гигабитных порта).
Берутся, скажем, три провайдера (думаю, 3 провайдера точно в 1 момент не перестанут работать, если не случилось ЧП во всём городе).
2Ком, 2 договора (2 провода), 1000Мегабит/с каждый, подключение по Ethernet, IPoE.
Билайн, 2 договора (2 провода), 365Мегабит/с каждый, подключение по Ethernet, IPoE.
Алло Инкогнито, 2 договора (2 провода), 1000Мегабит/с каждый, подключение по PON, Ethernet через оптический модем.
Вопросы:
1.
какие две (для отказоустойчивости) железки нужны, чтобы там было 3 WAN порта, функционал для агрегирования каналов от провайдера (из трёх каналов сделать один на 2365 Мбит/с) и для агрегирования каналов между этой железкой и каждым из 4 серверов (то есть каждый сервер подключится к ней 2 каналами, чтобы скорость повысилась до 2Гигабит/с), то есть 8 LAN портов.
То есть в случае сценария А будут две сетки, связь с внешним миром у каждой 2365 Мбит/с, внутри сети между устройствами 2Гигабит/с. В случае сценария B связь с внешним миром такая же, а внутри сети 20Гигабит/с.
Подскажите по обоим сценариям, пожалуйста, что будет нужно покупать?.. Или, возможно, будет дешевле собрать (на базе той же Supermicro), чем купить?.. При прочих равных предпочтение в пользу Cisco.
Прямо вот напишите, пожалуйста, какие циски (думаю, мне как любителю элитных железок (компы Apple и серверы Dell) стоит обратить внимание на лидера рынка свитчей) решат задачу в сценарии А, какие в сценарии Б.
2. поясните, пожалуйста, как правильнее делать агрегирование каналов между этим вот свитчем (или серваком в роли свитча) и провайдерами:
а.)
https://help.ubuntu.com/community/UbuntuBonding тут некий модуль ядра и , видимо, режим balance-alb (лучший из трёх, доступных без вмешательство на оборудование провайдера)
б.)
www.shorewall.net/MultiISP.html
в.)
www.nongnu.org/quagga
г.)
www.multipath-tcp.org
д.) что-то другое
3. Аналогично, какая технология лучше для агрегации каналов между этим свитчем и серваками облака?
4. Я в общих чертах выше спроектировал модель отказоустойчивой сети (2 разных свитча, 3 разных провайдера), она правильная?.. или можно/нужно что-то улучшить?..
P.S. Извиняюсь, если какие-либо вещи написал криво, я чайник в построении сетей, путаю маршрутизаторы с коммутаторами, а WAN-порты с аплинк-портами, никогда этим не занимался, но готов разобраться... Первое время, полагаю, в роли железок будут ZyXEL Keenetic'и с OpenWRT прошивкой, но,.. это самое начальное решение и некоторых вышеописанных вещей с ним у меня не будет... Добавлю также, что хотелось бы иметь возможность наращивания как скорости интернета, так и количества серверов в облаке...
Полагаю, мой вопрос и ответы на него будут полезны многим айтишникам, кто тоже, как и я , хотел бы завести дома свой датацентр, перестать платить Hetzner'у и переместить домой все свои проекты...