Диагностика проблем с передачей Jumbo Frames (MTU 9000) в сетях SAN и iSCSI
- Дисковые массивы iSCSI / NFS / Ceph внезапно теряют связь с хостами виртуализации при операциях высокой блочной нагрузки.
- Резкое падение IOPS и скорости блочного ввода-вывода дисковых хранилищ SAN до критически низких значений.
- Пакеты размером до 1500 байт проходят успешно, но пакеты размером 9000 байт сбрасываются без возврата ошибок.
- В логах гипервизора ESXi появляются ошибки
iscsi connection failed: session dropped due to timeout.
1. Правило непрерывности цепочки Jumbo Frames (End-to-End MTU)
Для корректной работы кадров увеличенного размера Jumbo Frames (MTU 9000 / 9216 байт) увеличенный размер MTU должен быть согласованно выставлен НА ВСЕХ БЕЗ ИСКЛЮЧЕНИЯ компонентах тракта передачи данных:
- HBA-адаптер / NIC сервера-источника;
- Виртуальный коммутатор гипервизора (vSwitch / vDS / Linux Bridge);
- Порты физического коммутатора доступа (Access switchport);
- Магистральные транки между коммутаторами (Trunks / Port-Channels);
- Сетевые контроллеры системы хранения данных (Target SAN Controller).
Если хотя бы один транзитный коммутатор имеет стандартный MTU 1500, нефрагментируемый трафик iSCSI (DF=1) будет молча отброшен (Silent Drop)!
2. Практическая проверка сквозного прохождения Jumbo Frames
# Тест с хоста ESXi (размер полезной нагрузки: 9000 - 28 байт ICMP/IP = 8972 байта)
vmkping -d -s 8972 -I vmk1 192.168.100.50
# Тест из Windows Server
ping -f -l 8972 192.168.100.50
# Тест из Linux-хоста
ping -M do -s 8972 192.168.100.503. Конфигурация Jumbo Frames на сетевом оборудовании
# Cisco Nexus (глобальная настройка System Jumbo MTU)
policy-map type network-qos JUMBO_MTU_POLICY
class type network-qos class-default
mtu 9216
!
system qos
service-policy type network-qos JUMBO_MTU_POLICY
# Cisco Catalyst IOS-XE
interface range GigabitEthernet1/0/1 - 24
mtu 9000
# Настройка на Linux сервере (iproute2)
ip link set dev eth1 mtu 90004. Конфигурация на стороне VMware vSphere
# Установка MTU на физических адаптерах (vmnic) и коммутаторе vSwitch через CLI
esxcli network vswitch standard set -m 9000 -v vSwitch1
esxcli network ip interface set -m 9000 -i vmk1 Частые вопросы (FAQ)
Зачем нужны Jumbo Frames в сетях iSCSI / NFS?
Стандартный кадр Ethernet несет до 1500 байт полезной нагрузки. Кадр Jumbo Frame несет до 9000 байт. Это в 6 раз снижает количество генерируемых пакетов и прерываний процессора (Interrupts/SoftIRQ) при передаче больших массивов дисковых данных, увеличивая пропускную способность на 15–25%.
Почему пинг 9000 байт не проходит, если указать '-s 9000'?
Аргумент утилиты ping задает размер ПОЛЕЗНОЙ НАГРУЗКИ (Payload). К ней добавляется 20 байт заголовка IP и 8 байт заголовка ICMP. Для проверки канала с MTU 9000 необходимо задавать размер payload ровно 8972 байта (8972 + 28 = 9000).
Что произойдет, если на сервере настроен MTU 9000, а на коммутаторе MTU 1500?
Сервер начнет отправлять кадры размером 9000 байт с установленным флагом Don't Fragment. Физический коммутатор со стандартным MTU 1500 не сможет обработать кадр превышающего размера и сбросит его как 'Oversize frame / Giant packet drop'.
Стоит ли включать Jumbo Frames в обычных офисных сетях с пользователями?
Категорически нет. Jumbo Frames предназначены исключительно для изолированных сетей хранения данных (SAN iSCSI, Ceph, NFS) или межсерверной репликации. В пользовательских сетях это создаст проблемы несовместимости с Wi-Fi точками доступа, принтерами и интернет-маршрутизаторами.