• DevOps
  • Защита информации
  • ИТ-поддержка
  • Разберем настройку 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
    Не нашли ответа на свой вопрос?
    Содержание