Рекомендации по производительности SMB для Azure NetApp Files

Эта статья поможет вам понять производительность SMB и рекомендации по работе с Azure NetApp Files.

SMB Multichannel

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

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

Windows поддерживает SMB Multichannel с Windows 2012, чтобы обеспечить оптимальную производительность. Дополнительные сведения см. в статье "Развертывание нескольких каналов SMB" и "Основы SMB Multichannel ".

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

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

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

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

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

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

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

Диаграмма, показывющая случайное сравнение операций ввода-вывода для SMB Multichannel.

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

Диаграмма, показывающая случайный тест сравнения операций ввода-вывода.

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

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

Диаграмма, показывающая сравнение тестов пропускной способности.

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

Диаграмма, показывающая последовательный тест сравнения операций ввода-вывода.

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

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

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

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

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

Диаграмма, показывающая влияние подписывания SMB на производительность.

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

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

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

Диаграмма, показывающая тест случайных операций ввода-вывода 4 КиБ в Windows 2019 стандарте _D32ds_v4.

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

Диаграмма показывает последовательную пропускную способность стандартной версии Windows 2019 _D32ds_v4 64 КиБ.

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

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

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

Диаграмма, показывающая тест произвольного ввода-вывода 4 КиБ на 5 экземплярах стандарта Windows 2019 _D32ds_v4.

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

Диаграмма, показывающая стандарт Windows 2019 _D32ds_v4 и последовательную пропускную способность для 5 экземпляров (64 КиБ).

Как отслеживать сетевые адаптеры Ethernet Hyper-V

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

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

Снимок экрана, показывающий интерфейс добавления счетчика в монитор производительности.

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

Снимок экрана: выходные данные монитора производительности.

Шифрование SMB

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

При отправке запроса в хранилище клиент шифрует запрос, который затем расшифровывает хранилище. Ответы также шифруются сервером и расшифровываются клиентом.

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

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

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

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

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

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

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

Ускорение сети

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

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

Масштабирование на стороне приема

Azure NetApp Files поддерживает RSS — масштабирование на принимающей стороне.

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

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

Снимок экрана: выходные данные RSS для виртуальной машины Azure.

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

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

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

Снимок экрана: выходные данные для сетевых карт с поддержкой RSS.

Дальнейшие шаги