Ограничение скорости сети контейнеров

Материал из ISPWiki
Перейти к: навигация, поиск

Принцип работы

Ограничение скорости трафика осуществляется при помощи утилиты tc, входящей в состав пакета iproute2. Для шейпирования используется дисциплина обслуживания HTB (Hierarchical Token Bucket), позволяющая выстраивать иерархии классов.

Настройки ограничения скорости производятся на всех физических сетевых интерфейсах, присутствующих в системе и имеющих реальные IP-адреса, а также на интерфейсе venet0.


Исходящий трафик

Исходящий трафик шейпируется на физических сетевых интерфейсах сервера (eth0 и т.д.).

Шейпер исходящего трафика

На интерфейсах NIC (Network Intetrface Controller) задается рутовая дисциплина обслуживания (qdisc) HTB, от которой выстраивается иерархия классов. Для каждого контейнера создается свой класс обслуживания с идентификатором 1:CTID (CTID - идентификатор контейнера в 16-й системе исчисления) и соответствующей скоростью канала. Пакеты, поступающие в класс, при необходимости будут автоматически задерживаться для реализации ограничения скорости. На выход классов привязывается дисциплина обслуживания SFQ, не позволяющая однотипному трафику захватить всю ширину канала.

При помощи фильтров трафик классифицируется по IP-адресам и перенаправляется в соответствующий класс обслуживания. Если контейнер имеет несколько IP-адресов, то создается несколько фильтров - по одному на каждый IP-адрес.

Неклассифицированный трафик (трафик, для которого не подошел ни один фильтр) в настоящий момент поступает в систему на скорости основного интерфейса.


Входящий трафик

Входящий трафик шейпируется на интерфейсе venet0.

Шейпер входящего трафика

Настройки идентичны случаю с исходящим трафиком, за исключением того, что в данном случае фильтры просматривают IP-адрес назначения.


Трафик между контейнером и узлом кластера

Для ограничения трафика между контейнером и узлом кластера используется входящая (ingress) дисциплина обслуживания и специальные фильтры-политики, которые позволяют отбрасывать трафик, выходящий за пределы ограничения скорости канала.

Шейпер трафика между контейнером и узлом кластера

Включение контроля за трафиком в VMmanager OVZ

Включение/выключение контроля скорости канала производится в разделе Политики.

Если отмечена опция "Включить управление сетевым трафиком (traffic shaping)", то при нажатии на кнопку ОК происходит применение настроек скорости канала для всех контейнеров. Если опция не отмечена, то происходит отключение контроля за трафиком на всех узлах кластера - удаляются корневые дисциплины обслуживания на всех интерфейсах, что приводит к удалению и классов, и фильтров.

Шаблоны контейнеров

При создании/редактировании шаблона контейнера в поле "Скорость канала" укажите максимальную скорость в Kбит/с

Контейнеры

На форме редактирования контейнера в поле "Скорость канала" укажите максимальную скорость в Kбит/с