Ядро мобильной сети долго строили так: одна функция — один шкаф с платами производителя. Это надёжно, но дорого и медленно. В этом уроке разберём, чем плох такой подход, какую идею предложили операторы и как простой расчёт показывает выгоду: шесть шкафов можно заменить тремя серверами. Идея называется NFV — виртуализация сетевых функций.

Цель и что нужно знать

После урока вы сможете:

  • объяснить, как раньше строили ядро сети и почему у каждой функции был свой запас мощности;
  • сказать простыми словами, что такое NFV и чем «функция-программа» отличается от «функции-шкафа»;
  • назвать выгоды NFV и три риска, о которых надо думать заранее;
  • рассчитать, сколько серверов общего пула заменят набор шкафов при заданной загрузке;
  • назвать документ и год, с которых началась работа над NFV.

Что нужно знать заранее: курс ipnet, урок 1 (почему голос и сигнализация перешли на IP); курс lte, урок 6 (оборудование ядра в виде шкафов с платами); курс ims, уроки 1 и 13 (зачем нужна IMS и как её функции выглядят в оборудовании). Узлы MME, S-GW, P-GW, HSS, PCRF и CSCF вам уже знакомы — здесь мы смотрим не на то, что они делают, а на то, где и как они работают.

Задача из жизни

Небольшой оператор готовится к Новому году. В новогоднюю ночь число звонков и SMS заметно растёт, но всего на несколько часов. Узлы ядра — MME, S-GW, P-GW, CSCF, HSS и PCRF — стоят в отдельных шкафах. Мощность шкафа нельзя увеличить за день: нужно заказать платы у производителя, дождаться поставки, смонтировать и настроить. Поэтому каждый шкаф покупают сразу с запасом под самый тяжёлый вечер года.

Остальное время запас простаивает, а оператор платит за него, за место и за электричество. Вопрос урока: можно ли устроить иначе — так, чтобы запас был общим, а новая мощность появлялась без заказа и монтажа нового шкафа?

Как ядро строили раньше

Каждая функция сети — это работа, которую выполняет узел. HSS хранит данные абонентов, MME следит за их перемещением, CSCF управляет сеансами. Раньше для каждой такой работы покупали специализированное оборудование (его же называют purpose-built, или dedicated hardware): шкаф, собранный производителем под одну задачу, со своими платами, своим корпусом и своей прошивкой.

У такого подхода четыре особенности:

  • Свой запас мощности. Шкаф рассчитан на пик нагрузки своей функции. Запас соседнего шкафа ему не поможет.
  • Свои запчасти. Платы MME не подходят к CSCF, поэтому на складе лежит набор запчастей для каждого типа шкафа.
  • Свой цикл закупки. Новая мощность — это заказ, изготовление, доставка, монтаж и настройка.
  • Своё время жизни. Через несколько лет шкаф устаревает, и всё приходится повторять, хотя новой выручки это почти не приносит.

Об этих проблемах операторы писали сами в 2012 году: растёт число разных «коробок», для них не хватает места и электричества, а жизнь оборудования становится короче.

Было и стало: шесть шкафов с функциями превращаются в три сервера общего пула
Было и стало: шесть шкафов с функциями превращаются в три сервера общего пула

Идея: функция — это программа

Что на самом деле делает шкаф HSS? Он выполняет программу, которая написана под его платы. Идея в том, чтобы отвязать программу от конкретной коробки: сетевая функция — это программа, которую можно запустить на обычном сервере.

Сервер — это компьютер без экрана и клавиатуры, который работает круглосуточно и выполняет чужие запросы. Такие серверы массово делают для банков, магазинов и университетов. В телекоме их называют стандартными серверами общего назначения — COTS (commercial off-the-shelf, «готовое коммерческое изделие»). Синонимы: серийный сервер, обычный сервер, COTS-сервер.

Если все серверы одинаковы, их можно собрать в общий пул — общий запас мощности. Любая функция берёт из него столько, сколько нужно сейчас, и возвращает, когда мощность не нужна. Как несколько функций уживаются на одном сервере, не мешая друг другу, — отдельная тема. Пока достаточно знать, что сервер можно разделить на несколько независимых «программных копий компьютера», и в каждой живёт своя функция.

Что такое NFV

NFV (Network Functions Virtualisation) — виртуализация сетевых функций: подход, при котором сетевая функция перестаёт быть отдельной «железной коробкой» и становится программой, которую можно запустить на стандартных серверах общего назначения из общего пула.

Синонимы и написание: виртуализация сетевых функций = NFV = Network Functions Virtualisation. В документах ETSI слово пишут через «s» (Virtualisation), в США — через «z» (Virtualization); это одно и то же. «Виртуализация» здесь означает именно отвязывание функции от конкретного железа.

Аналогия 1: кухня. Раньше у каждого прибора было своё место и своя вилка: отдельная кофемашина, отдельный чайник, отдельный тостер. Теперь это одна кухня, где любой прибор включается в общую розетку. Поменять прибор или добавить новый можно, не перекладывая проводку.

Аналогия 2: прокат автомобилей. Если каждой семье держать у дома свой микроавтобус ради пары поездок в год, большую часть времени он простаивает. Прокатный парк работает иначе: машину берут, когда она нужна, и возвращают. Общий пул серверов — это такой парк.

Сравним две схемы работы:

ВопросШкаф (было)Общий пул (стало)
Запас мощностисвой у каждой функцииодин общий на все функции
Новая услугазаказ шкафа, монтаж, настройказапуск программы на свободном сервере
Нужно больше мощностидокупить платызапустить ещё одну копию программы
Запчастинабор для каждого типа шкафаодин набор для одинаковых серверов
Устареваниевместе со шкафомзаменяется сервер, программа остаётся

Выгоды и цена перехода

Выгоды:

  1. Общий пул вместо запаса на каждую функцию. Пики разных функций не обязательно совпадают по времени, поэтому общий запас может быть меньше суммы отдельных запасов.
  2. Быстрый запуск новой услуги. Не нужно ждать поставки шкафа: программа стартует на сервере, который уже стоит в пуле.
  3. Масштабирование программой. Масштабирование — это увеличение или уменьшение мощности под нагрузку. При NFV для этого запускают ещё одну копию программы или останавливают лишнюю.
  4. Меньше типов железа. Один тип сервера и один набор запчастей вместо десятка разных шкафов.

Цена и риски:

  1. Производительность голоса и видео. Медиапоток — это очень много мелких пакетов в секунду. Специальная плата справляется с ним сама, а обычному серверу, на котором работают и соседи, обработать его труднее. Как это решают, разберём в следующих уроках.
  2. Интеграция нескольких поставщиков. Функция от одного поставщика, серверы от другого, управление от третьего. На стыках появляются вопросы: кто отвечает, если что-то не работает?
  3. Новые навыки. Инженеру, который знал платы и кабели, теперь нужны ещё навыки работы с серверами и автоматизацией.

💡 NFV не делает функцию лучше. Она остаётся той же функцией, с теми же сообщениями и узлами. Меняется то, на чём и как она работает.

Разбор примера: сколько серверов нужно в пуле

Условия учебной модели:

  • шесть шкафов: MME, S-GW, P-GW, CSCF, HSS, PCRF;
  • средняя загрузка каждого — 30%;
  • один сервер пула по мощности равен одному шкафу;
  • целевая загрузка сервера — 70%: это значит, что 30% мощности остаётся про запас, на всплески.

Загрузка — доля своей мощности, которую устройство использует. 30% — работает на треть, остальное простаивает. Целевая загрузка — до какого уровня планируют занимать сервер.

text
servers = ceil(cabinets × load / target)

Здесь ceil — округление вверх. Решаем по шагам:

text
total load = 6 × 30% = 180%   (1.8 cabinets' worth of work)
servers    = 180% / 70% = 2.57
servers    = round up -> 3

Округляем вверх: две с половиной машины купить нельзя, а два сервера дали бы нагрузку 180% / 2 = 90% — выше цели. Проверка: на трёх серверах загрузка составит 180% / 3 = 60%, это не больше 70%. Итог: три сервера вместо шести шкафов.

Шесть шкафов с загрузкой 30% и три сервера с загрузкой 60%: расчёт размера пула
Шесть шкафов с загрузкой 30% и три сервера с загрузкой 60%: расчёт размера пула

Это упрощённая модель. Реальный пул считают по пиковой, а не по средней нагрузке и добавляют запасной сервер на случай поломки. Но принцип тот же: запас считают один раз на всех.

Сравним, как запускалась услуга:

text
cabinet: order -> build -> ship -> install -> configure -> launch
pool:    pick free server -> start program -> configure -> launch

Важно, сколько этапов исчезает: нет изготовления, доставки и монтажа нового шкафа.

История: откуда взялась идея

В октябре 2012 года группа операторов связи выпустила белую книгу (white paper — документ, в котором участники отрасли излагают позицию и призывают к совместной работе) под названием «Network Functions Virtualisation – An Introduction, Benefits, Enablers, Challenges & Call for Action». В списке авторов — 13 организаций. Текст изложил выгоды, трудности и призвал к международному сотрудничеству.

В ноябре 2012 года при европейском институте стандартизации ETSI образовали рабочую группу ISG NFV (Industry Specification Group), которую, по данным ETSI, основали семь крупных операторов. Один из документов этой группы — ETSI GS NFV 002 (первая версия вышла в 2013 году).

Это имена-ярлыки: запомните их как «кто, когда и что выпустил». Подробности не нужны.

Что может сломаться и как это найти

СимптомВозможная причинаЧто проверить
Расчёт показал 3 сервера, а в вечерний пик мощности не хватилосчитали по средней нагрузке, а не по пиковой; целевая загрузка выбрана слишком высокой; не учтена поломка серверапиковую нагрузку функций; целевую загрузку; есть ли запасной сервер
После переезда функции голос рвётся или появилась задержкаобработка медиа на общем сервере медленнее, чем на специальной плате; соседние функции делят мощностьнагрузку сервера до и после; не стоят ли рядом тяжёлые по медиа функции
Серверов столько же, сколько было шкафов, экономии нетзапас по-прежнему считают отдельно для каждой функции, пул общий только на бумагесчитался ли запас по сумме нагрузок, а не по каждой функции
Функция от одного поставщика не запускается на купленных серверахтребования функции к серверу не совпали с тем, что закупленоперечень требований поставщика функции и характеристики серверов
Новая услуга всё равно запускается месяцамиостались прежние согласования и ручные шагикакие этапы по-прежнему делают вручную

⚠️ Типичная ошибка — думать, что «виртуальное» значит «бесплатное и безграничное». За пулом стоят настоящие серверы, место и электричество, и пул тоже конечен.

Практика

  1. Предскажите. Шесть шкафов загружены не на 30%, а на 50%. Серверов в пуле будет больше или меньше, чем в разборе? Не считайте — назовите ответ «на глаз».
  2. Проверьте. Посчитайте: 6 × 50% / 70%, округлите вверх. Совпало с вашим предположением?
  3. Объясните. Почему пул из трёх серверов обслуживает шесть функций, хотя каждая из них раньше занимала целый шкаф?
  4. Измените. Шесть шкафов по 30%, но целевая загрузка сервера — 50%. Сколько серверов нужно?
  5. Сделайте сами ⭐. Восемь шкафов со средней загрузкой 25%, целевая загрузка 70%, один сервер равен по мощности одному шкафу. Сколько серверов нужно, если добавить один запасной на случай поломки?

Самопроверка

Вопрос 1. Оператор купил у производителя новый шкаф с платами для S-GW. Это NFV?

Разбор. Нет. Функция по-прежнему привязана к специальному оборудованию, у неё свой запас мощности и своя закупка. При NFV та же функция работает как программа на стандартных серверах из общего пула.

Вопрос 2. Почему серверов в пуле меньше, чем шкафов, хотя суммарная работа та же?

Разбор. В шкафах запас закладывали на каждую функцию отдельно, и большая его часть простаивала. В пуле запас общий: считают суммарную нагрузку (180%) и делят на целевую загрузку (70%). Получается 2.57, то есть три сервера вместо шести шкафов.

Ответы к практике. 1 — больше: нагрузка выше при той же целевой. 2 — 6 × 50% = 300%, 300% / 70% = 4.29, округляем вверх до 5. 3 — запас в пуле общий, а не отдельный у каждой функции, и пики функций не обязательно совпадают. 4 — 180% / 50% = 3.6, до 4 серверов. 5 — 8 × 25% = 200%, 200% / 70% = 2.86, до 3 серверов; плюс один запасной — 4 сервера.

Повторение и критерий перехода

Переходите к следующему уроку, если без подсказки можете:

  • объяснить, чем «функция-шкаф» отличается от «функции-программы» и что такое NFV (с синонимами);
  • перечислить четыре выгоды и три риска перехода;
  • посчитать размер пула по формуле servers = ceil(cabinets × load / target), где ceil — округление вверх;
  • назвать, что и когда выпустили операторы и ETSI в 2012 году.

Дальше. В следующих уроках: устройство центра обработки данных, гипервизор и виртуальная машина, платформа OpenStack, а затем VNF, MANO и контейнеры с Kubernetes.

Стандарты и источники

  • Группа операторов связи (13 организаций), Network Functions Virtualisation – An Introduction, Benefits, Enablers, Challenges & Call for Action (white paper, Issue 1, октябрь 2012); текст размещён на портале ETSI: portal.etsi.org.
  • ETSI GS NFV 002 — документ рабочей группы ISG NFV (только название; первая версия — 2013 год).
  • ETSI, «10 years of ETSI NFV» — о создании ISG NFV в ноябре 2012 года: etsi.org.