Некоторые рассуждения по концептуальной сложности импортозамещения виртуализации, в части сети

Столкнулся с проблемой в понимании ряда концепций у вновь приходящих коллег, особенно в части импортозамещения — решил написать статью. Я не уверен, что она нужна на Хабре, но я ее потом переработаю по результатам. Это попытка номер 1 — разобраться в том, что под капотом у сетевой части импортозамещения.

Для лиги лени: ничего сложного в переходе нет, надо всего лишь построить рядом еще одну инфраструктуру. Причем сразу на новых физических принципах. И прочитать несколько книг, все не на русском.

Исторический экскурс и давно забытое

Совсем недавно — лет так 20 назад — (2004 год) в сегменте x86 не было современной массовой виртуализации. Виртуализация была давно, но рядом с мейнфреймами, выносными терминалами и телетайпами. VMware ESX 2.0 уже вышел, и даже иногда где‑то стоял. В сегменте малого и среднего бизнеса было мало денег, мало специалистов, и, ввиду сложностей «в целом» — функции compute \ storage \ switch \ route — выполняли разные устройства, в очень простой — плоской, зачастую без VLAN — сети. И никакой виртуализации.

Технологии росли, плотность (на хост) и проникновение виртуализации росли. В 2008 году вышел Hyper‑V, и виртуализация пошла в SMB. В то же время (2006–2008) подтянулись первые домашние \ SMB дешевые массовые роутеры, началась легкая путаница среди начинающих, какое устройство что делает.

Технологии, топологии и скорости росли, появились GENEVE, VXLAN и NVGRE. Стало можно и нужно использовать больше 1023 VLAN. Общие принципы оставались те же — switch отдельно, route отдельно, хотите программный роутер в среде виртуализации — не забывайте оплатить за ASAv или Router 1000V или что сами хотите (ISA 2004–2006 — TMG), но это будет или отдельно оплачиваемая функция, как бы глубоко она не интегрировалась, или отдельный аплайнс \ виртуалка.

Опенсорсные решения в вариациях (Openstack, Keystack, Openvcloud, Cloudstack, OpenNebula, devstack) росли с другой стороны — из запросов уже появившихся облаков, государственных организаций (Openstack == NASA). Заказчики уже знали, что и как они хотели, и получили решение, включающее в себя управление и разделение функционала для масштабов облачной инфраструктуры. Решение масштаба Open* изначально содержит в себе избыточный функционал для SMB, и из‑за этого избыточную сложность по сравнению с решениями масштаба Hyper‑V Failover Cluster, VMware Robo, VMware vSphere Essential или Huawei FusionCube for ROBO

Пока не было сигнала «все бегом в импортозамещение» ситуация была привычной — на рынке сосуществовали MS Hyper‑V, VMware vSphere, и местами Nutanix. Кто‑то жил на KVM или даже на Proxmox или VirtualBox. Иногда на такую инфраструктуру были тем или иным способом намазаны контейнеры. Open* жил там, где ему и положено — в инфраструктурах облачных провайдеров, телеком операторов (там, зачастую, был и есть вендорский ), или просто больших фирм, имевших свой штат разработки и поддержки. У кого‑то одновременно жил и VMware Cloud Director, Azure Stack, и так далее. Это не мешало внутренним обсуждениям, у кого больше денег для заноса в Gartner.

Новые времена

Два года назад все изменилось, теперь решения на базе Open* и чего-то своего, но с новыми наклейками, зачастую на форках продуктов времен мамонтов, – года из 2014, давно уже не просто засохших, но и окаменевших,- пошли на рынок. Тут даже я и впал в безудержное удивление. Дело не в том, что под капотом того или иного решения. Дело в том, что на 20+ как-бы российских продуктов приходится бросить все и начинать смотреть не готовое изделие в сборке, а на то, из чего же его собирали. И хорошо, если это собрано из чего-то, а не свое целиком.

Проблемы с тем, что собрано из СПО — как‑то решаемы, можно полистать старые форумы, поднять машину времени, как‑то спросить кто‑то помнит или писал. Можно даже поискать код. Есть какие‑то шансы разобраться и решить внезапно возникшую проблему (ВВП). Проблемы начинаются там, где написано «самими» или переписано самими ровно настолько, чтобы починить «быстро по рецептам» было уже нельзя. Потому что у переписавших — нет специалистов 2–3 линии, нет комьюнити и нет какого‑то живого паблик форума. Нет даже гарантии, что тот разработчик, что писал вот этот модуль, еще работает в той же организации и можно как‑то до него достучаться в разумные сроки.

С чем придется столкнуться и что можно начинать читать уже сейчас:

Планирование.

В первую очередь начать планирование сетей — что у вас будет и где, где будут FW и какие. Нужно проследить, чтобы литературу по сетям (ниже) прочитали не только ваши сетевики, но и девопсы. В обязательном порядке перечитать ICND и сети для самых маленьких.

Стенды: PackStack, MicroStac: читать тут.

Linux bridge. Это база, вместе с virtio tap drive, switchdev, Netfilter. Статья по теме — An introduction to Linux bridging commands and features virtio‑networking — читать рядом.

IOMMU как проброс сетевых карт. Читать начиная отсюда.

Один из вариантов разделения функций — SR‑IOV, читать тут.

Следующим шагом будет овес — Open vSwitch: Self‑service networks.Читать отсюда и пока не надоест.

После этого придется зажать нос, и нырнуть с головой в развертывание, потому что дальше начинается выбор между теплым и мягким:

vDPA (virtio data path acceleration) kernel framework — это еще одна прокладка между гостевой VM и физикой, но с ней вроде должно что‑то быть быстрее. Читать тут.

Она идет как бонус к овсу(Open vSwitch) — OVS‑DPDK, где DPDK это Data Plane Development Kit, про который читать надо отдельно.

Следующим большим шагом вперед будет Virtualized Network Functions.

Сначала придется читать про OpenVIM, потом про OSM Network Service.

Если вы полезете в контейнеры, то начинайте читать про Magnum — is an OpenStack API service developed by the OpenStack Containers Team making container orchestration engines (COE) such as Docker Swarm and Kubernetes available as first class resources in OpenStack.

После этого, если вам недостаточно ML2/OVS — нужно начинать читать про ML2/OVN (Open Virtual Network (OVN)) тут и OVN IC — the Open Virtual Network interconnection controller. Заполировать чтением Tungsten Fabric тут и там.

Можно совсем сломать голову — читая Openstack Ansible OVN Clustering, и OpenFlow — software defined networking (SDN).

На следующем шаге — переходя к запуске пре‑пре‑стенда — можно ознакомиться с вложенной (Nested) виртуализацией, и заодно с проектом kolla‑ansible‑aio‑configs yoga‑centos.

Или, можно не глядя махнуть шашкой и раскатать все вконтейнерах — OpenStack‑Helm.

Рекомендуемая литература

OpenStack Cloud Computing Cookbook
OpenStack in Action: Bumgardner, Cody
OpenStack for Architects: Solberg, Michael, Silverman, Ben

Back in USSR (послесловие)

Последние лет 10 наблюдаю борьбу двух мнений в интернете. Первое — от нормальных, современных людей, которые читают что сейчас акутально в журнале Птюч — про лучшую в мире советскую сгущенку, лучшее в мире советское мороженое и то, как в СССР пенопласт делали из молочной пены, можно было детей кормить. Второе — от замшелых дедов и иных унылых личностей, которые зачем‑то читают мемуары Чертока, Каманина или Карцева. Где пишут, как в СССР за бюджет ожесточенно дрались Челомей (Протон — ОКБ-456) и Глушко (Энергия НИИ-88 — ОКБ-1), как поругались Кузнецов (НИИ-10) и Пилюгин (НИИ-885). Как между собой воевали Харьков (КП ХКБМ), Уралвагонзавод и Кировский завод. И сколько это стоило СССР — иметь на вооружении формально 10+ типов танков и поставлять 10+ разных комплектов запчастей от трех разных заводов.

К чему это?

К тому, что опенстек сам по себе конструктор разных версий, и его компоненты — встроенные и отдельно разворачиваемые — тоже тащат за собой зависимости и версионности. В РФ сейчас около 20 проектов «импортозамещения», и все заявляют о почти достигнутой доступности 99.95% функции Vsphere, не уточняя по какому критерию. В результате специалист, вынужденный нырять в это болото, будет вынужден тратить большую часть времени на попытку разобраться в искусственно суженном наборе компонентов самостоятельно, причем из‑за требований ФСТЭК, особенно приказа 17, и требований по КИИ — к устаревшему набору компонентов. Причем, иностранный опыт в виде знакомства с хотя бы Scale Computing — не просто игнорируется, а порицается (минусится) на хабре как избыточно сложный для самостоятельного чтения, а давно висящие в воздухе вопросы про уровень сообщества — убираются в чулан.

@Grigory_Otrepyev
30.01.2024 21:06 UTC
Первоисточник

Комментарии

@shuchkin
30.01.2024 16:39 UTC
+1

я ждал обзора что у кого под капотом

@Grigory_Otrepyev
30.01.2024 16:41 UTC
0

я ждал обзора что у кого под капотом

Видимо не будет - у заметки уже -2, пока я бы дошел до разбора - было бы уже -122. После -5 я еще и статью эту уберу, НЕ НУЖНА.

@rak_track
31.01.2024 05:15 UTC
0

Коллега, проблема высосана из пальца. Может быть это касается каких-то систем из овер 1000 кластеров и сетей по части траблшутинга и функционала, где требутся лопатить бигдату, но для типичных Российских контор, типа какого-нибудь НИИ ХИИ КУИ МУИ из 100 тачек и сервера с 10 виртуалками, это не актуально имхо. Читать, кроме мануалов ничего не нужно, а мануалы я бы сказал, там в виде инструкций, возьмите арбуз, разрежьте ножом пополам и положите в тарелку. Поздравляем, вы установили сервер РосАрбуз. Как-то так.

@Grigory_Otrepyev
31.01.2024 07:07 UTC
0

Я раз в неделю вижу проблему "я что-то поставил и не работает".

@crawlingroof
31.01.2024 15:43 UTC
+1

Из разряда, - Мне не нужно, всем не надо.
А как все холдинги, банки и тд, которых обязали перейти на то, ЧЕГО НЕТ?! Можно убиться в документации, создать жалкое подобище, но для начала закупить как минимум треть такого же "импортозамещенного" оборудования и молиться чтоб вот это вот все хотябы неделю работало без сбоев.

@ivankudryavtsev
31.01.2024 06:30 UTC
0

Еще есть вполне себе простой и рабочий Apache Cloudstack. И если отбросить хайп вокруг OpenStack, то CS вполне просто работает.

@Grigory_Otrepyev
31.01.2024 07:30 UTC
0

Еще по теме: Спрут от VK https://habr.com/ru/companies/vk/articles/763760/

Там же:
Переусложненный Data plane. Как правило, в оверлейной конфигурации Neutron центром всего Data plane выступает OVS. Он отвечает за связь виртуальных машин и подключение сетевых функций: DHCP, DNS, Metadata Proxy и других. За настройку OVS отвечает OVS Agent. По сути, логика всей сети находится внутри OVS и OVS Agent.

@atxnsk
05.02.2024 15:29 UTC
0

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