Поделиться через


SMB Direct

Windows Server включает функцию SMB Direct, которая поддерживает использование сетевых адаптеров с возможностью удаленного доступа к памяти (RDMA). Сетевые адаптеры с RDMA могут работать в полной скорости с меньшей задержкой без ущерба для использования ЦП. При использовании этой функции для таких рабочих нагрузок, как Hyper-V и Microsoft SQL Server, работа с удаленным файловым сервером будет похожа на работу с локальным хранилищем. SMB Direct автоматически настраивается и включается по умолчанию в Windows Server 2012 и будущих итераций.

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

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

Можно использовать SMB Direct в отказоустойчивом кластере. Однако необходимо при этом убедиться, что сеть кластера, используемая для клиентского доступа, подходит для работы с SMB Direct. Отказоустойчивая кластеризация поддерживает использование нескольких сетей для клиентского доступа наряду с сетевыми адаптерами с поддержкой RSS (Receive Side Scaling) и RDMA.

Примечание.

SMB Direct можно использовать в управляющей операционной системе Hyper-V для поддержки использования Hyper-V через SMB и для обеспечения хранилища для виртуальной машины, которая использует стек хранилища Hyper-V. Однако сетевые адаптеры с поддержкой RDMA не предоставляются напрямую клиенту Hyper-V. При подключении сетевого адаптера с поддержкой RDMA к виртуальному коммутатору адаптеры виртуальной сети из коммутатора не будут работать с RDMA.

Требования

Для поддержки SMB Direct необходимо соблюдать следующие требования.

  • Один или несколько сетевых адаптеров с функцией RDMA.
  • По крайней мере два компьютера под управлением одной или нескольких следующих операционных систем:
    • Windows Server 2012 и более поздних версий.
    • Windows 10 Корпоративная и более поздних версий.
    • Windows 10 для образовательных учреждений и более поздних версий.
    • Windows 10 Pro для рабочих станций и более поздних версий
    • Windows 10 Pro 22H2 (чисто установлен, не обновлен с более ранних версий) и более поздних версий.

Примечание.

Семейство Windows 10 и Windows 11 ограничено только клиентом и не может выступать в качестве прямого сервера SMB.

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

SMB Multichannel — это компонент, отвечающий за обнаружение функций RDMA у сетевых адаптеров для включения SMB Direct. Без SMB Multichannel при работе с сетевыми адаптерами с функцией RDMA в SMB используется обычный TCP/IP (стек TCP/IP имеется во всех сетевых адаптерах наряду с новым стеком RDMA).

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

Сетевые адаптеры с поддержкой RDMA можно использовать с помощью switch Embedded Teaming (SET) начиная с Windows Server 2016. После того как создано хотя бы одно сетевое соединение RDMA, соединение TCP/IP, изначально использовавшееся для согласования протокола, больше не используется. Однако соединение TCP/IP сохраняется в случае отказа соединений RDMA.

Отключение SMB Multichannel также отключает SMB Direct. Так как SMB Multichannel обнаруживает возможности сетевого адаптера и определяет, поддерживает ли сетевой адаптер RDMA, SMB Direct не может использоваться клиентом, если SMB Multichannel отключен.

Шифрование SMB

Начиная с Windows Server 2022 и Windows 11, SMB Direct теперь поддерживает шифрование. Раньше при включении шифрования SMB функция прямого размещения данных отключалась, что уменьшало производительность RDMA до уровня TCP. Теперь данные шифруются перед размещением, что приводит к относительно незначительному снижению производительности при добавлении конфиденциальности пакетов AES-128 и AES-256. Дополнительные сведения о настройке шифрования SMB см. в статье об улучшениях безопасности SMB.

Кроме того, отказоустойчивые кластеры Windows Server теперь поддерживают гибкий контроль над шифрованием обмена данными внутри узлов для общих томов кластера (CSV) и уровня шины хранилища (SBL). Это означает, что при использовании локальных дисковых пространств и SMB Direct вы можете шифровать обмен данными в направлении с востока на запад в самом кластере для повышения безопасности.

Отключение и включение функций SMB Direct

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

Как правило, вам не нужно отключить SMB Direct, однако ее можно отключить вместе с функциями, выполнив следующие команды Windows PowerShell.

Чтобы отключить SMB Direct, введите:

Disable-WindowsOptionalFeature -Online -FeatureName SMBDirect

Чтобы отключить SMB Multichannel на стороне сервера, введите следующее:

Set-SmbServerConfiguration -EnableMultiChannel $false

Чтобы отключить SMB Multichannel на стороне клиента, введите следующее:

Set-SmbClientConfiguration -EnableMultiChannel $false

Чтобы отключить RDMA для определенного интерфейса, введите:

Disable-NetAdapterRdma <name>

Чтобы отключить RDMA для всех интерфейсов, введите:

Set-NetOffloadGlobalSetting -NetworkDirect Disabled

При отключении RDMA на клиенте или сервере системы не могут его использовать. Network Direct — это внутреннее имя базовой поддержки сети Windows Server для интерфейсов RDMA.

Чтобы проверить состояние опероспособности SMB Direct в настоящее время, выполните следующий командлет:

Get-WindowsOptionalFeature -Online -FeatureName SMBDirect

Тестирование SMB Direct

Производительность SMB Direct можно проверить, измеряя пропускную способность при выполнении большого копирования файлов. Перед тестированием убедитесь, что сетевой адаптер поддерживает RDMA с помощью PowerShell.

На стороне сервера введите:

Get-SmbServerNetworkInterface

На стороне клиента введите следующее:

Get-SmbClientNetworkInterface

После проверки сетевого адаптера RDMA выполните следующий тест:

  1. Отключение RDMA в сетевом адаптере см. в разделе "Отключение и включение функций SMB Direct".
  2. Измеряйте время, затраченное на выполнение большого копирования файлов без использования SMB Direct.
  3. Повторно включите RDMA на сетевом адаптере, выполните ту же копию файлов, а затем сравните два результата.
  4. Чтобы избежать влияния кэширования, выполните следующие действия.
    1. Копируйте большие объемы данных (больше, чем может разместиться в памяти).
    2. Производите копирование данных дважды: первый раз — для практики и второй раз — для собственно измерения времени.
    3. Перезапустите сервер и клиент перед каждым тестом, чтобы убедиться, что они работают в аналогичных условиях.

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

  1. Нажмите кнопку "Пуск", введите perfmon, нажмите клавишу ВВОД.
  2. В области слева в разделе "Средства> мониторинга" выберите Монитор производительности.
  3. В правой области щелкните зеленый значок "+" для добавления нового счетчика.
  4. В диалоговом окне "Добавление счетчиков" разверните прямое подключение SMB.
  5. Выберите Bytes RDMA Read/sec и Bytes RDMA Запись/с, а затем нажмите кнопку "Добавить", а затем нажмите кнопку "ОК".

Возможность отработки отказа SMB Direct

Чтобы подтвердить отказоустойчивость SMB Direct, выполните следующее.

  1. Убедитесь, что SMB Direct работает в конфигурации для нескольких сетевых адаптеров.
  2. Запустите копирование большого файла. Во время процесса копирования имитируйте сбой одного из сетевых путей путем отключения одного из кабелей или отключения одного из сетевых адаптеров.
  3. Убедитесь, что копирование продолжается с использованием других сетевых адаптеров и что не произошло ошибок копирования.

Совет

Чтобы не допустить сбоев рабочей нагрузки, которая не использует SMB Direct, убедитесь, что отключенный сетевой тракт не используется другой рабочей нагрузкой.

Дополнительная справка