01. Проведение исследований существующих сетевых операционных систем, используемых в проектах ПКС Контроллер (или сетевая ОС с приложениями) является ключевым элементом ПКС сети, который выполняет функции управления элементами сетевой инфраструктуры и потоками данных в сети. Характеристики производительности, масштабируемости, надежности ПКС сети зависят непосредственно от соответствующих характеристик сетевой ОС. Поэтому в рамках данного направления проводилось исследование архитектуры, особенностей, функциональных возможностей существующих сетевых ОС а также оценка их характеристик. Исследования проводились для Контроллеров, реализующих L2коммутацию. Полученные результаты: 1. Проведен сбор и анализ доступных материалов (документации, исходных кодов, Интернетресурсов) – по всем существующим сетевым операционным системам (ОС) для ПКС сетей (20 систем). В проведенный обзор вошли 14 сетевых ОС с открытым исходным кодом, 6 коммерческих решений от IBM, HP, Nicira, NEC и Big Switch. Исследование и сравнительный анализ проводились по признакам: цель создания, разработчики, тип лицензии (свободное, проприетарное) ПО, архитектура, состав основных модулей и их функциональные возможности, особенности реализация (язык программирования, документированность, расширяемость, версия протокола OpenFlow), интерфейс для сетевых приложений, показатели масштабируемости, надежности, безопасности и производительности. 1. По результатам исследования для дальнейшей работы были отобраны 10 активно развивающихся решений сетевых ОС с открытым исходным кодом: NOX, POX, Trema, FloodLight, Beacon, FlowER, Mul, Nettle, Ryu, Maestro. 2. Разработана методика проведения экспериментального исследования выбранных сетевых ОС по следующим показателям: 2.1 Производительность. Было проведено измерение следующих характеристик производительности: пропускная способность – количество запросов от коммутаторов, обрабатываемых контроллером в секунду (потоков в секунду) и задержка – время, затрачиваемое контроллером на обработку одного запроса (мс). 2.2 Ресурсоемкость. Оценивалась загрузка ядер процессора и использование физической памяти в процессе работы сетевой ОС. 2.3 Масштабируемость. При исследовании масштабируемости сетевой ОС рассматривались зависимости показателей производительности от количества: 2.3.1 ядер процессора; 2.3.2 соединений между коммутаторами; 2.3.3 конечных узлов сети. 2.4 Функциональные возможности. Была проведена проверка корректности обработки сетевой ОС сообщений протокола OpenFlow от коммутаторов. 2.5 Надежность. Измерялись такие параметры как: количество отказов за время тестирования и время безотказной работы при заданном профиле нагрузок. 2.6 Безопасность. Оценивалась устойчивость сетевой ОС к некорректно сформированным сообщениям протокола OpenFlow. 3. Для проведения исследований был разработан тестовый стенд. В состав стенда вошли два сервера с характеристиками Intel(R) Xeon(R) E5645 2.4GHz, соединенные между собой 10Gb Ethernet каналом. Первый сервер использовался для запуска сетевой ОС и скрипта управления экспериментами. На второй сервер были установлены средство CBench (Сontroller Benchmarker, http://docs.projectfloodlight.org/display/floodlightcontrol ler/Cbench), создающее нагрузку с заданными параметрами, и средство HCProbe собственной разработки для генерации сообщений различных типов. 4. Для экспериментального исследования в ЦПИ КC было разработано средство для тестирования сетевых ОС – HCProbe. HCProbe позволяет имитировать подключение к сетевой ОС заданного числа коммутаторов и хостов. Испытания проходили на количестве коммутаторов от 1 до 256. HCProbe позволяет задавать шаблоны для генерируемых сообщений (в том числе некорректно сформированных), задавать количество попыток переподключения к сетевой ОС, указывать профиль трафика и т.д.. HCProbe написано на языке высокого уровня Haskell, использование которого значительно упрощает разработку тестовых сценариев. 5. В экспериментах максимальную производительность показала сетевая ОС Beacon с пропускной способностью 7 000 000 потоков в секунду. Пропускная способность остальных сетевых ОС оказалась в 2-3 раза ниже: от 2 000 000 до 4 000 000 потоков в секунду. Минимальное время обработки одного запроса на открытие нового потока (задержка сетевой ОС) изменялась от 50 до 75 мс на вышеописанных аппаратных средствах. 6. Исследование надежности показало, что при длительной работе все тестируемые сетевые ОС работали некорректно: наблюдалось закрытие соединений с коммутаторами, сбрасывание полученных сообщений, прочее. 7. Анализ безопасности показал, что все сетевые ОС не способны обрабатывать некорректно сформированные сообщения. Вывод: Современные сетевые ОС с открытым исходным кодом имеют достаточно высокую производительность и масштабируемость. Однако, промышленная эксплуатация актуальных версий этих ОС в настоящий момент невозможна, по причине несоответствия требованиям надежности и безопасности, предъявляемым к ПО такого класса. Публикации: • В. Пашков, А. Шалимов, Виртуализация ЦОД, Connect! Мир связи, N11 (199), Ноябрь, 2012. • A. Shalimov, R. Smeliansky, On Bringing Software Engineering to Computer Networks with Software Defined Networking, Proceeding of the 7th Spring/Summer Young Researchers' Colloquium on Software Engineering (SYRCoSE 2013), May 30-31, 2013, Kazan, Russia • A. Shalimov, D. Zuikov, D. Zimarina, V. Pashkov, R. Smeliansky, Advanced Study of SDN/OpenFlow controllers, Proceeding of 2d European Workshop on Software Defined Networks (EWSDN13), October 10-11, Berlin, Germany