Часто задаваемые вопросы и рекомендации по производительности SMB для Azure NetApp Files | Документация Майкрософт

В этой статье приведены сведения об обеспечении производительности SMB и рекомендациях по работе с Azure NetApp Files.

Технология SMB Multichannel

По умолчанию в общих ресурсах SMB включена функция SMB Multichannel. Все общие ресурсы SMB, предварительно датировано существующие тома SMB, включили функцию, а все вновь созданные тома также будут включать эту функцию во время создания.

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

Windows поддерживает многоканальный протокол SMB с Windows 2012 для обеспечения лучшей производительности. Подробности см. в разделах Развертывание многоканального SMB и Основы многоканального SMB.

Преимущества SMB Multichannel

Функция многоканального SMB позволяет клиенту SMB3 устанавливать пул подключений через один сетевой адаптер или несколько сетевых интерфейсов и использовать их для отправки запросов на один сеанс SMB. Напротив, при проектировании протоколы SMB1 и SMB2 должны установить одно соединение и отправить весь трафик SMB для данного сеанса через это подключение. Это единственное соединение ограничивает общую производительность протокола, которая может быть достигнута от одного клиента.

Производительность SMB Multichannel

Следующие тесты и графики демонстрируют возможности многоканального SMB для рабочих нагрузок с одним экземпляром.

Случайный ввод-вывод

Когда на клиенте отключен многоканальный протокол SMB, чистые тесты чтения и записи объемом 4 КиБ были выполнены с использованием FIO и рабочего набора 40 ГиБ. Общая папка SMB отключалась между каждым тестом с шагом приращения количества клиентских подключений SMB в соответствии с настройками сетевого интерфейса RSS на 1, 4, 8, 16, set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>. Тесты показывают, что значение по умолчанию 4 достаточно для рабочих нагрузок с интенсивным вводом-выводом; увеличение до 8 и 16 имело незначительный эффект.

Команда netstat -na | findstr 445 доказала, что были установлены дополнительные соединения с шагом приращения от 1 до 4, до 8 и до 16. Четыре ядра ЦП были полностью использованы для SMB во время каждого теста, что подтверждается статистикой perfmon Per Processor Network Activity Cycles (не включенной в эту статью)

Chart that shows random I/O comparison of SMB Multichannel.

Виртуальная машина Azure не влияет на ограничения ввода-вывода хранилища SMB (или NFS). Как показано на следующей диаграмме, тип инстанса D32ds имеет ограниченную скорость 308 000 операций ввода-вывода в секунду для кэшированного хранилища и 51 200 операций ввода-вывода в секунду для некэшированного хранилища. Однако на приведенном выше графике показано значительно большее количество операций ввода-вывода по сравнению с SMB.

Chart that shows random I/O comparison test.

Последовательный ввод-вывод

Тесты, аналогичные тестам случайного ввода-вывода, описанным ранее, выполнялись с последовательным вводом-выводом размером 64 КиБ. Хотя увеличение количества клиентских подключений на сетевой интерфейс RSS сверх 4’ не оказало заметного влияния на случайный ввод-вывод, то же самое не относится к последовательному вводу-выводу. Как показано на следующем графике, каждое увеличение связано с соответствующим увеличением пропускной способности чтения. Пропускная способность записи осталась неизменной из-за ограничений пропускной способности сети, установленных Azure для каждого типа/размера экземпляра.

Chart that shows throughput test comparison.

Azure устанавливает ограничения скорости сети для каждого типа и размера виртуальной машины. Ограничение скорости накладывается только на исходящий трафик. Количество сетевых адаптеров, присутствующих на виртуальной машине, не влияет на общую пропускную способность, доступную машине. Например, для типа экземпляра D32ds установлен сетевой лимит в 16 000 Мбит/с (2000 МиБ/с). Как показано на последовательном графике выше, ограничение влияет на исходящий трафик (записи), но не на многоканальное чтение.

Chart that shows sequential I/O comparison test.

Подписывание SMB

Протокол SMB обеспечивает основу для совместного использования файлов и печати и других сетевых операций, таких как удаленное администрирование Windows. Чтобы предотвратить атаки, которые изменяют пакеты S МБ во время передачи, протокол S МБ поддерживает цифровую подпись пакетов S МБ.

Подписывание SMB поддерживается для всех версий протокола SMB, поддерживаемых Azure NetApp Files.

Влияние подписывания SMB на производительность

Подписывание SMB отрицательно сказывается на производительности SMB. Помимо других возможных причин снижения производительности, цифровая подпись каждого пакета потребляет дополнительный процессор на стороне клиента, как показано в показанных ниже выходных данных perfmon. В этом случае ядро 0 отображается в качестве ответственного за SMB, включая подписывание SMB. В сравнении с последовательными номерами пропускной способности чтения, не являющимися многоканальными в предыдущем разделе, показано, что подписывание SMB сокращает общую пропускную способность от 875MiB/с до приблизительно 250MiB/с.

Chart that shows SMB Signing performance impact.

Производительность одного экземпляра с набором данных 1 ТБ

Чтобы предоставить более подробное представление о рабочих нагрузках с сочетанием операций чтения и записи, на следующих двух диаграммах показана производительность одного облачного тома уровня обслуживания Ultra объемом 50 ТБ с набором данных 1 ТБ и с многоканальным SMB объемом 4. Использовалось оптимальное значение IODepth, равное 16, и параметры гибкого ввода-вывода (FIO) использовались для обеспечения полного использования пропускной способности сети (numjobs=16).

На следующей диаграмме показаны результаты для 4k случайных операций ввода-вывода с одним экземпляром виртуальной машины и сочетанием операций чтения и записи с 10 % интервалами:

Chart that shows Windows 2019 standard _D32ds_v4 4K random IO test.

Следующая диаграмма показывает результаты для последовательного ввода-вывода:

Chart that shows Windows 2019 standard _D32ds_v4 64K sequential throughput.

Производительность при горизонтальном масштабировании с использованием 5 виртуальных машин с набором данных размером 1 ТБ

Эти тесты с 5 виртуальными машинами используют ту же среду тестирования, что и одиночная виртуальная машина, причем каждый процесс записывает в свой собственный файл.

Следующая диаграмма показывает результаты для произвольного ввода-вывода:

Chart that shows Windows 2019 standard _D32ds_v4 4K 5-instance randio IO test.

Следующая диаграмма показывает результаты для последовательного ввода-вывода:

Chart that shows Windows 2019 standard _D32ds_v4 64K 5-instance sequential throughput.

Мониторинг адаптеров Ethernet Hyper-V

Одна из стратегий, используемых при тестировании с FIO, — установить numjobs=16. При этом каждое задание разбивается на 16 конкретных экземпляров, чтобы максимально использовать сетевой адаптер Microsoft Hyper-V.

Вы можете проверка для действий для каждого адаптера в Windows Монитор производительности, выбрав Монитор производительности > добавить > сетевой адаптер >Microsoft Hyper-V.

Screenshot that shows Performance Monitor Add Counter interface.

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

Screenshot that shows Performance Monitor output.

Шифрование SMB

Этот раздел поможет вам изучить принципы и особенности шифрования SMB (SMB 3.0 и SMB 3.1.1).

Шифрование по протоколу SMB обеспечивает сквозное шифрование данных SMB и защищает их от перехвата в ненадежных сетях. Шифрование SMB поддерживают SMB 3.0 и более новые версии.

При отправке запроса к хранилищу клиент шифрует этот запрос, а хранилище его расшифровывает. Аналогичным образом сервер шифрует ответ, а клиент его расшифровывает.

Шифрование SMB поддерживают Windows 10, Windows 2012 и более поздние версии.

Шифрование SMB и Azure NetApp Files

Шифрование SMB для Azure NetApp Files включено на уровне общего ресурса. SMB 3.0 использует алгоритм AES-CCM, а SMB 3.1.1 — алгоритм AES-GCM.

Шифрование SMB не является обязательным. Поэтому оно включается только для определенной общей папки и только в том случае, если клиент передает в Azure NetApp Files соответствующий запрос. Общие папки Azure NetApp Files никогда не предоставляются для доступа из Интернета. К ним можно обращаться только из определенной виртуальной сети, через VPN-подключение или ExpressRoute, а значит, общие папки Azure NetApp Files имеют высочайшую конструктивную защиту. Решение о применении шифрования SMB пользователь принимает самостоятельно. Кроме того, не забывайте, что включение этой возможности ожидаемо снижает производительность.

Влияние шифрования SMB на клиентские рабочие нагрузки

Шифрование SMB повышает нагрузку как на клиент (нагрузка на ЦП для шифрования и расшифровки сообщений), так и на хранилище (снижение пропускной способности). В приведенной ниже таблице собраны сведения только о влиянии на хранилище. Перед развертыванием рабочих нагрузок в рабочей среде вам нужно самостоятельно протестировать влияние шифрования на производительность конкретных приложений.

Профиль ввода-вывода Воздействие
Рабочие нагрузки чтения и записи От 10 до 15 %
С интенсивной нагрузкой на метаданные 5%

Ускорение работы в сети

Для максимальной производительности вам рекомендуется настроить на виртуальных машинах ускоренную сеть там, где это возможно. Имейте в виду следующие соображения:

  • Портал Azure по умолчанию включает ускоренную работу в сети для виртуальных машин, поддерживающих эту функцию. Однако другие методы развертывания, такие как Ansible и аналогичные инструменты настройки, не могут. Сбой включения ускоренной сети может снизить производительность машины.
  • Если ускоренная работа в сети не включена в сетевом интерфейсе виртуальной машины из-за отсутствия поддержки типа или размера экземпляра, она останется отключенной с более крупными типами экземпляров. В таких случаях вам потребуется ручное вмешательство.
  • Нет необходимости задавать ускоренную сеть для сетевых адаптеров в выделенной подсети Azure NetApp Files. Ускорение сети — это возможность, которая применяется только к виртуальным машинам Azure. Сетевые адаптеры Azure NetApp Files оптимизированы по проектированию.

RSS

Azure NetApp Files поддерживает масштабирование на стороне приема (RSS).

При включении многоканального протокола SMB клиент SMB3 устанавливает несколько TCP-подключений к Azure NetApp Files SMB-серверу через сетевой адаптер (NIC), поддерживающий единый RSS.

Чтобы узнать, поддерживают ли сетевые адаптеры вашей виртуальной машины Azure RSS, выполните команду Get-SmbClientNetworkInterface и проверьте поле RSS Capable:

Screenshot that shows RSS output for Azure virtual machine.

Несколько сетевых адаптеров на клиентах SMB

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

Как видно из вывода Get-SmbClientNetworkInterace ниже, виртуальная машина имеет 2 сетевых интерфейса — 15 и 12. Как показано в команде Get-SmbMultichannelConnection, несмотря на наличие двух сетевых адаптеров с поддержкой RSS, только интерфейс 12 используется в связи с общим ресурсом SMB; интерфейс 15 не используется.

Screeshot that shows output for RSS-capable NICS.

Следующие шаги