Часто задаваемые вопросы и рекомендации по производительности SMB для Azure NetApp Files | Документация Майкрософт
В этой статье приведены сведения об обеспечении производительности SMB и рекомендациях по работе с Azure NetApp Files.
Технология SMB Multichannel
По умолчанию в общих ресурсах SMB включена функция SMB Multichannel. У всех общих папок SMB, предшествующих существующим томам SMB, включена функция; Все только что созданные тома также включают функцию во время создания.
Любое подключение SMB, установленное перед включением компонентов, необходимо сбросить, чтобы воспользоваться преимуществами функций SMB Multichannel. Для сброса можно отключить и повторно подключить общий ресурс SMB.
Windows поддерживает многоканальный протокол SMB с Windows 2012 для обеспечения лучшей производительности. Подробности см. в разделах Развертывание многоканального SMB и Основы многоканального SMB.
Преимущества SMB Multichannel
Функция многоканального SMB позволяет клиенту SMB3 устанавливать пул подключений через один сетевой адаптер или несколько сетевых интерфейсов и использовать их для отправки запросов на один сеанс SMB. Напротив, при проектировании протоколы SMB1 и SMB2 должны установить одно соединение и отправить весь трафик SMB для данного сеанса через это подключение. Это единственное соединение ограничивает общую производительность протокола, которая может быть достигнута от одного клиента.
Производительность SMB Multichannel
Следующие тесты и графики демонстрируют возможности многоканального SMB для рабочих нагрузок с одним экземпляром.
Случайный ввод-вывод
Когда на клиенте отключен многоканальный протокол SMB, чистые тесты чтения и записи объемом 4 КиБ были выполнены с использованием FIO и рабочего набора 40 ГиБ. Общая папка SMB была отсоединяется между каждым тестом с шагом числа подключений клиента SMB для параметров сетевого 1
интерфейса RSS ,4
,8
,16
и set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>
. Тесты показывают, что значение по умолчанию 4
достаточно для рабочих нагрузок с интенсивным вводом-выводом; увеличение до 8
и 16
имело незначительный эффект.
Команда netstat -na | findstr 445
доказала, что дополнительные подключения были установлены с шагом от 1
, до 4
8
, 4
и 8
к 16
. Четыре ядра ЦП были полностью использованы для SMB во время каждого теста, что подтверждается статистикой perfmon Per Processor Network Activity Cycles
(не включенной в эту статью)
Виртуальная машина Azure не влияет на ограничения операций ввода-вывода хранилища SMB (или NFS). Как показано на следующей диаграмме, тип инстанса D32ds имеет ограниченную скорость 308 000 операций ввода-вывода в секунду для кэшированного хранилища и 51 200 операций ввода-вывода в секунду для некэшированного хранилища. Однако на приведенном выше графике показано значительно большее количество операций ввода-вывода по сравнению с SMB.
Последовательный ввод-вывод
Тесты, аналогичные тестам случайного ввода-вывода, описанным ранее, выполнялись с последовательным вводом-выводом размером 64 КиБ. Несмотря на то, что увеличение количества подключений клиента на сетевой интерфейс RSS за пределами четырех не имело заметного влияния на случайный ввод-вывод, то же самое не применяется к последовательным ввода-выводам. Как показано на следующем графике, каждое увеличение связано с соответствующим увеличением пропускной способности чтения. Пропускная способность записи оставалась неструктурированной из-за ограничений пропускной способности сети, размещенных Azure для каждого типа экземпляра и размера.
Azure устанавливает ограничения скорости сети для каждого типа и размера виртуальной машины. Ограничение скорости накладывается только на исходящий трафик. Количество сетевых адаптеров, присутствующих на виртуальной машине, не влияет на общую пропускную способность, доступную для компьютера. Например, для типа экземпляра D32ds установлен сетевой лимит в 16 000 Мбит/с (2000 МиБ/с). Как показано на последовательном графике выше, ограничение влияет на исходящий трафик (записи), но не на многоканальное чтение.
Подписывание SMB
Протокол SMB обеспечивает основу для совместного использования файлов и печати и других сетевых операций, таких как удаленное администрирование Windows. Чтобы предотвратить атаки, которые изменяют пакеты SMB во время передачи, протокол SMB поддерживает цифровую подпись пакетов SMB.
Подписывание SMB поддерживается для всех версий протокола SMB, поддерживаемых Azure NetApp Files.
Влияние подписывания SMB на производительность
Подписывание SMB отрицательно сказывается на производительности SMB. Помимо других возможных причин снижения производительности, цифровая подпись каждого пакета потребляет дополнительный процессор на стороне клиента, как показано в показанных ниже выходных данных perfmon. В этом случае ядро 0 отображается в качестве ответственного за SMB, включая подписывание SMB. В сравнении с последовательными номерами пропускной способности чтения, не являющимися многоканальными в предыдущем разделе, показано, что подписывание SMB сокращает общую пропускную способность от 875MiB/с до приблизительно 250MiB/с.
Производительность одного экземпляра с набором данных 1 ТБ
Чтобы предоставить более подробное представление о рабочих нагрузках с сочетанием операций чтения и записи, на следующих двух диаграммах показана производительность одного облачного тома уровня обслуживания Ultra объемом 50 ТБ с набором данных 1 ТБ и с многоканальным SMB объемом 4. Было использовано оптимальное значение IODepth
16; Гибкие параметры ввода-вывода (FIO) использовались для обеспечения полного использования пропускной способности сети (numjobs=16
).
На следующей диаграмме показаны результаты для 4k случайных операций ввода-вывода с одним экземпляром виртуальной машины и сочетанием операций чтения и записи с 10 % интервалами:
Следующая диаграмма показывает результаты для последовательного ввода-вывода:
Производительность при горизонтальном масштабировании с использованием 5 виртуальных машин с набором данных размером 1 ТБ
Эти тесты с 5 виртуальными машинами используют ту же среду тестирования, что и одиночная виртуальная машина, причем каждый процесс записывает в свой собственный файл.
Следующая диаграмма показывает результаты для произвольного ввода-вывода:
Следующая диаграмма показывает результаты для последовательного ввода-вывода:
Мониторинг адаптеров Ethernet Hyper-V
Одна из стратегий, используемых при тестировании с FIO, — установить numjobs=16
. При этом каждое задание разбивается на 16 конкретных экземпляров, чтобы максимально использовать сетевой адаптер Microsoft Hyper-V.
Вы можете проверить действие для каждого адаптера в Windows Монитор производительности, выбрав Монитор производительности > Добавить > сетевой адаптер >Microsoft Hyper-V.
После того как у вас есть трафик данных на ваших томах, вы можете контролировать свои адаптеры в мониторе производительности Windows. Если вы не используете все эти 16 виртуальных адаптеров, возможно, вы не максимизируете емкость пропускной способности сети.
Шифрование 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 или экспресс-маршрут, поэтому общие папки Azure NetApp Files по сути безопасны. Решение о применении шифрования SMB пользователь принимает самостоятельно. Кроме того, не забывайте, что включение этой возможности ожидаемо снижает производительность.
Влияние шифрования SMB на клиентские рабочие нагрузки
Шифрование SMB повышает нагрузку как на клиент (нагрузка на ЦП для шифрования и расшифровки сообщений), так и на хранилище (снижение пропускной способности). В приведенной ниже таблице собраны сведения только о влиянии на хранилище. Перед развертыванием рабочих нагрузок в рабочей среде вам нужно самостоятельно протестировать влияние шифрования на производительность конкретных приложений.
Профиль ввода-вывода | Воздействие |
---|---|
Рабочие нагрузки чтения и записи | От 10 до 15 % |
С интенсивной нагрузкой на метаданные | 5% |
Ускорение работы в сети
Для максимальной производительности рекомендуется настроить ускоренную сеть на виртуальных машинах, где это возможно. Имейте в виду следующие соображения:
- Портал Azure включает ускорение сети по умолчанию для виртуальных машин, поддерживающих эту функцию. Однако другие методы развертывания, такие как Ansible и аналогичные средства настройки, не могут. Сбой включения ускоренной сети может снизить производительность машины.
- Если ускорение сети не включено в сетевом интерфейсе виртуальной машины из-за отсутствия поддержки типа экземпляра или размера, он остается отключенным с более крупными типами экземпляров. Вам нужно вмешательство вручную в этих случаях.
- Нет необходимости задавать ускоренную сеть для сетевых карт в выделенной подсети Azure NetApp Files. Ускорение сети — это возможность, которая применяется только к виртуальным машинам Azure. Сетевые адаптеры Azure NetApp Files оптимизированы по проектированию.
Масштабирование на стороне приема
Azure NetApp Files поддерживает масштабирование на стороне получения (RSS).
При включении многоканального протокола SMB клиент SMB3 устанавливает несколько TCP-подключений к Azure NetApp Files SMB-серверу через сетевой адаптер (NIC), поддерживающий единый RSS.
Чтобы узнать, поддерживает ли сетевые адаптеры виртуальных машин Azure RSS, выполните следующую команду Get-SmbClientNetworkInterface
и проверьте поле RSS Capable
:
Несколько сетевых адаптеров на клиентах SMB
Не следует настраивать несколько сетевых адаптеров на клиенте для SMB. Клиент SMB не соответствует счетчику сетевых адаптеров, возвращаемого сервером SMB. Каждый том хранилища доступен из одной и только одной конечной точки хранилища, то есть для любой связи SMB используется только один сетевой адаптер.
Как показано ниже Get-SmbClientNetworkInterace
, виртуальная машина имеет два сетевых интерфейса: 15 и 12. Как показано в следующей команде Get-SmbMultichannelConnection
, даже если есть два сетевых адаптера с поддержкой RSS, в связи с общим ресурсом SMB используется только интерфейс 12. Интерфейс 15 не используется.