Hewlett-Packard представил открытую сетевую операционную систему OpenSwitch
Сборки новой ОС доступны для тестирования в системах виртуализации. В качестве первых поддерживаемых специализированных аппаратных устройств названы коммутаторы HP Altoline и платформы, развиваемые проектом Open Compute Project, выполненные на базе ASIC Broadcom Trident II. Портирование для других ASIC выполняется через разработку соответствующих плагинов.
Код проекта размещён в Git-репозитории и включает в себя многие типовые открытые компоненты, такие как ядро Linux, Puppet, OpenVswitch, ISC DHCP, lldpd и Quagga. Оригинальные разработки распространяются под лицензией Apache 2.0. Взаимодействие всех компонентов платформы организовано через обращение к централизованной системной БД (OVSDB), хранящей настройки, статистику и параметры работы всех имеющихся сервисов. Напрямую системные модули не взаимодействуют между собой, только через обращение к системной БД.
+-----------------------+ | image.manifest file | +---------------------+ +-----------------------+ +--------------------------+ | | ^ | OpenSwitch database | | hardware daemons | | | |<----+ | +-----------+-----------+ | system table | +---------------------+ | | | base subsystem table | | sysd +---->| vrf table | +---------------------+ | | | interface table | | | +-----------+-----------+ | daemon table |<----+ protocol daemons | | | bridge table | | | v | port table | +---------------------+ +-----------------------+ +--------------------------+ | hw description files | +-----------------------+
В OpenSwitch применяется собственная система инициализации ops-sysd, которая обеспечивает запуск компонентов системы и отслеживание их работы с учётом файлов описания оборудования и базы данных конфигурации. Для сохранения/восстановления конфигурации применяется демон ops-cfgd. Настройку сетевых интерфейсов обеспечивает демон ops-intfd, управление VLAN - ops-vland, агрегацию линков - ops-lacpd. Протоколы маршрутизации реализованы через компоненты Quagga (ospfd, bgpd). Дополнительная функциональность может наращиваться через модули.
+------------------------------------------------------------------------+ | | | | +------------------------+ +---------------+ +-----------v----------+ | | | L2/L3 protocol daemons | |System daemons | |Management/monitoring | | | | bgpd, lldpd, lacpd,... | |sysd, intfd,...| |CLI, Rest, Ansible,...| | | +--------^--------^------+ +--------^------+ +-----------^----------+ | | | | | | | | | +------v-----------------v--------------------v----------+ | | | | | | RFC 7047 | | | System state database - OVSDB-Server | | protocol | | | <-------------> | | +----------------------------^------------------------^--+ | | | | | | | | Hardware support | ops-switchd | | | | daemons | +------------------v--+ | OpenFlow | | +-----------------v---+ | SDK independent <-------------> | | | ops-fand | | layer | | | | | - - - - - - - - - - | +---------------------+ | | | | ops-tempd | | SDK specific | | sFlow | | | - - - - - - - - - - | | plugin +-------------> | | | ops-powerd | +---------------------+ | | | | ... | | SDK | | | | +----------^----------+ +----------^----------+ | | Kernel | | | | | +-------------------------------------------------------------------+ | | | +------v-----------+ +---------v---------+ +----------v--------+ | | | | | | | I2C/other drivers | | | | | | | |Virtual interfaces| +-------------------+ | SDK driver | | | | | | <------------------------> | | | | | +------------------+ +-------------------+ | | | +-------------------------------------------------------------------+ | | | +------------------------------------------------------------------------+
Управление может производиться при помощи похожего на Cisco IOS интерфейса командной строки (ops-cli), основанного на наработках проекта Quagga, через web-интерфейс (ops-webui), а также при помощи REST API, Puppet, Chef и Ansible. Конфигурация может как храниться локально, так и загружаться с внешнего сервера.
ops-as5712# show running-config interface 1 Interface 1 shutdown speed 40000 autonegotiation on exit ops-as5712# configure terminal ops-as5712(config)# interface 1 ops-as5712(config-if)# description This is interface 1 ops-as5712(config-if)# ip address 172.16.32.2/24 ops-as5712(config-if)# ip address 172.16.50.2/24 secondary ops-as5712(config-if)# no shutdown ops-as5712(config-if)# exit ops-as5712(config)# ip route 172.16.32.0/24 10.10.10.1
Источник: http://www.opennet.ru/opennews/art.shtml?num=43095
|
0 | Tweet | Нравится |
|