+7 495 230 03 03 8 800 222 50 03
DevOps

Настройка QoS для ISCSi

Разберем настройку QoS для ISCSi, для этого нужно:

  1. Промаркировать трафик ISCSi со стороны сервера;
  2. Промаркировать трафик ISCSi со стороны стореджа;
  3. Настроить коммутатор;
  4. Проверка маркировки, очередей.

Нужна помощь? Настройки ISCSi и серверов мы осуществляем в рамках услуги ИТ-аутсорсинг. Также возможны разовые проектные работы.

Настраиваем маркировку трафика ISCSi на сервере

  1. Включаем поддержку QoS в сетевой подсистеме Windows;
  2. Настройки QoS;
  3. Настраиваем политики QoS.

Необходимо проверить включен ли в свойствах сетевого интерфейса «Планировщик пакетов QoS».

Настройки QoS в Windows

Настройки QoS коснутся двух моментов – того, как будет обрабатываться входящий TCP-трафик, и того, как будут взаимодействовать политики QoS и установки QoS на уровне отдельных приложений.

Находятся настройки в объекте групповой политики – Computer Configuration / Windows Settings / Policy-based QoS, в контекстном меню Advanced QoS Setting …, вызываемом нажатием правой кнопки мыши.

Параметры QoS

Рисунок 1 — Параметры QoS

Данная настройка напрямую влияет на то, какое максимальное значение receive window будет предлагаться при работе TCP-соединений. Начиная с NT 6.0, в Windows появилась поддержка окна TCP размером более 64К. Данная политика и позволяет задать это максимальное значение окна централизованно. При задании уровня 0 окно будет ограничено 64КБ, при 1 – 256КБ, при 2 – 1МБ, а при 3 – 16МБ.

DSCP Marking Override

Параметры DSCP

Рисунок 2 — Параметры DSCP

Данная настройка указывает разрешается или нет приложениям, которые умеют метить трафик, делать это. Если выберете, что в явном виде можно – то политики QoS будут игнорироваться, если нет – вся маркировка будет идти по явно указанной в политиках логике.

Настраиваем политики QoS

При создании политики необходимо указать её название, значение DSCP и ограничение на полосу.

Политики QoS

Рисунок 3 — Политики QoS

DSCP-метки группы CS – Class Selector

Этот механизм описан в RFC 2474. CS’ов 8 штук – от CS0 до CS7, и выглядит:

  1. CS0 = 000 000 (в десятичном варианте DSCP = 0);
  2. CS1 = 001 000 (в десятичном варианте DSCP = 8);
  3. CS2 = 010 000 (в десятичном варианте DSCP = 16);
  4. CS3 = 011 000 (в десятичном варианте DSCP = 24);
  5. CS4 = 100 000 (в десятичном варианте DSCP = 32);
  6. CS5 = 101 000 (в десятичном варианте DSCP = 40);
  7. CS6 = 110 000 (в десятичном варианте DSCP = 48);
  8. CS7 = 111 000 (в десятичном варианте DSCP = 56).

CS7 обычно помечается служебный сетевой трафик.

Применение политики на source/destination TCP/UDP порты

Протокол и порты QoS

Рисунок 4 — Протокол и порты QoS

Настраиваем маркировку трафика ISCSi на сторедже

В качестве стореджа будем использовать debian 11. Маркируется трафик в linux фаерволом. В 11-ом вместо iptables, по-умолчанию стоит nftables, его и будем настраивать.

Для настройки выполняем:

nft add table inet QoS_tbl
nft add chain inet QoS_tbl tagin {type route hook output priority -150; policy accept;}
nft add rule inet QoS_tbl tagin tcp dport 3260 ip dscp set cs5
nft add rule inet QoS_tbl tagin tcp sport 3260 ip dscp set cs5

Проверяем:

nft -s list ruleset

Настраиваем коммутатор

В качестве коммутатора используется juniper QFX5100.

Настроим класс пересылки iscsi для трафика iSCSI и сопоставим с очередью вывода:

[edit class-of-service]
set class-of-service forwarding-classes class iscsi queue-num 5 no-loss

Настроим сопоставление классификатора для класса пересылки iscsi:

[edit class-of-service classifiers]
set dscp iscsi_classifier forwarding-class iscsi loss-priority low code-points 101000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 000000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 001000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 010000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 011000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 100000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 110000
set dscp iscsi_classifier forwarding-class best-effort loss-priority high code-points 111000

Применим классификатор к соответствующим интерфейсам:

[edit class-of-service]
set interfaces et-0/0/2 unit 0 classifiers dscp iscsi_classifier
set interfaces et-0/0/12 unit 0 classifiers dscp iscsi_classifier
set interfaces et-0/0/13 unit 0 classifiers dscp iscsi_classifier
set interfaces et-0/0/14 unit 0 classifiers dscp iscsi_classifier

Проверка маркировки, очередей

Корректность маркировки можно проверить с помощью WireShark, в заголовке IP-пакета будет соответствующее поле:

Проверка маркировки

Рисунок 5 — Проверка маркировки

На скриншоте видно что, у пакета, идущего с сервера на сторедж, DSCP = CS5.

Проверка маркировки

Рисунок 6 — Проверка маркировки

На данном скриншоте видим что, у пакета, пришедшего со стореджа на сервер, DSCP также равно CS5.

Проверим очереди на коммутаторе. Для этого на джуне выполним (et-0/0/2 – порт на котором смотрим распределение очередей):

show interfaces queue et-0/0/2
Дата публикации: 1 января 2022
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.