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


Управление SMB Multichannel

Протокол SMB Multichannel является частью протокола SMB 3.0, что повышает производительность сети и доступность файловых серверов.

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

SMB Multichannel предоставляет следующие возможности:

  • Повышенная пропускная способность. Файловый сервер может одновременно передавать дополнительные данные с помощью нескольких подключений для высокоскоростных сетевых адаптеров или нескольких сетевых адаптеров.

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

  • Автоматическая настройка. SMB Multichannel автоматически обнаруживает несколько доступных сетевых путей и динамически добавляет подключения по мере необходимости.

Требования к SMB Multichannel

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

  • По крайней мере два компьютера под управлением локальной операционной системы Azure, Windows Server или Windows 10.

  • По крайней мере одна из следующих конфигураций:

    • Несколько сетевых адаптеров

    • Один или несколько сетевых адаптеров, поддерживающих технологию Receive Side Scaling (RSS)

    • Несколько сетевых адаптеров, которые объединяются (см. группирование сетевых адаптеров)

    • Один или несколько сетевых адаптеров, поддерживающих удаленный прямой доступ к памяти (RDMA)

Настройка SMB Multichannel

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

Сетевой адаптер с поддержкой одноканального RSS

В этой типичной конфигурации клиент SMB и сервер SMB настраиваются с помощью одного сетевого адаптера 10-гигабитного Ethernet (10 ГбE). При развертывании SMB без использования SMB Multichannel и при условии, что установлен только один сеанс SMB, создается одно подключение TCP/IP. При использовании только одного ядра ЦП эта конфигурация по сути приводит к перегрузке, особенно при выполнении многих небольших операций ввода-вывода. Таким образом, потенциал для узких мест производительности является значительным.

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

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

В этой конфигурации клиент SMB и сервер SMB настраиваются с помощью нескольких сетевых адаптеров 10 ГбE. При развертывании SMB без SMB Multichannel и при наличии только одного сеанса SMB SMB использует один из доступных сетевых адаптеров для создания одного подключения TCP/IP. В этом сценарии невозможно агрегировать пропускную способность нескольких сетевых адаптеров; Например, вы не можете достичь 2 гигабит в секунду (Гбит/с) при использовании двух сетевых адаптеров 1 ГбE. Существует также вероятность сбоя, если выбранный сетевой адаптер отключен или деактивирован.

При развертывании SMB с помощью SMB Multichannel SMB создает несколько TCP/IP-подключений для одного сеанса с по крайней мере одним или несколькими подключениями на интерфейс, если сетевые адаптеры имеют возможность RSS. Эта конфигурация позволяет SMB использовать доступную пропускную способность сетевого адаптера и позволяет клиенту SMB продолжать работу без прерывания при сбое сетевого адаптера.

Объединение сетевых карт

Локальная среда Azure и Windows Server поддерживают возможность объединения нескольких сетевых адаптеров в один сетевой адаптер с помощью функции объединения сетевых адаптеров. Хотя команда всегда обеспечивает отказоустойчивость, при развертывании SMB без SMB Multichannel создается только одно подключение TCP/IP для команды. Эта конфигурация приводит к ограничениям в количестве ядер ЦП, задействованных и максимальном использовании пропускной способности команды.

При развертывании SMB с помощью SMB Multichannel SMB создает несколько TCP/IP-подключений для одного сеанса, чтобы повысить баланс между ядрами ЦП и лучше использовать доступную пропускную способность. Объединение сетевых интерфейсов продолжает предлагать возможность резервирования, которая работает быстрее, чем использование SMB Multichannel самостоятельно. Мы также рекомендуем объединение сетевых адаптеров, так как оно предлагает возможности переключения при отказе для других рабочих нагрузок, которые не используют SMB, потому что эти рабочие нагрузки не могут воспользоваться возможностями переключения при отказе SMB Multichannel.

Если вы используете выделенный набор сетевых адаптеров для прямого трафика дисковых пространств, как это иногда делается с помощью azure Local, группирование этих сетевых адаптеров хранилища является строго необязательным— это не обеспечивает существенных преимуществ или недостатков.

Important

В Windows Server 2012 R2 и более ранних версиях не следует использовать объединение сетевых адаптеров (NIC teaming), если вы планируете применять возможности RDMA сетевых адаптеров. В этих операционных системах группа сетевых адаптеров с поддержкой RDMA всегда сообщается как не поддерживающая RDMA, поскольку объединение отключает возможность RDMA у сетевого адаптера.

Один или несколько сетевых адаптеров с поддержкой RDMA

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

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

Important

После создания подключения RDMA подключение TCP/IP для исходного согласования протокола больше не используется. Однако это подключение сохраняется в случае сбоя другого подключения RDMA.

Совместимость сетевых адаптеров с поддержкой SMB Multichannel, RDMA и сетевого адаптера

В следующей таблице приведены различные способности, доступные при сочетании SMB Multichannel, RDMA (SMB Direct) и объединении сетевых интерфейсов.

Configuration Throughput Отказоустойчивость для SMB Отказоустойчивость для не-SMB Снижение использования ЦП
Один сетевой адаптер (без RSS) *
Несколько сетевых адаптеров (без RSS) ** *
Несколько сетевых адаптеров (без RSS) с объединением сетевых адаптеров ** ** *
Один сетевой адаптер с RSS *
Несколько сетевых адаптеров с RSS ** *
Несколько сетевых адаптеров с RSS и объединением в команду сетевых интерфейсов ** ** *
Один сетевой адаптер с поддержкой RDMA * *
Несколько сетевых адаптеров с поддержкой RDMA *** * *
Несколько сетевых адаптеров с поддержкой RDMA с объединением интерфейсов *** ** * *

Если вы используете Windows Server 2016 или более поздней версии, идеальное решение — использовать несколько сетевых адаптеров с поддержкой RDMA и объединить команды сетевых адаптеров с SMB Multichannel. Эта комбинация обеспечивает оптимальную пропускную способность, обеспечивает отказоустойчивость для приложений, использующих SMB и другие протоколы, и имеет наименьшее влияние на ЦП.

Как упоминалось выше, при использовании сетевых адаптеров с поддержкой RDMA в Windows Server 2012 R2 или более ранних версиях объединение сетевых интерфейсов не является хорошим вариантом, так как это отключает возможность RDMA сетевого адаптера.

Примеры конфигураций без SMB Multichannel

Если вы планируете использовать один сетевой адаптер без RSS, вы не сможете воспользоваться несколькими сетевыми подключениями, и, следовательно, SMB Multichannel не будет использоваться. Кроме того, если вы планируете использовать сетевые адаптеры разных скоростей, SMB Multichannel автоматически выбирает самый быстрый сетевой адаптер. Это связано с тем, что сетевые адаптеры одного типа (например, RDMA, RSS или ни один из них) с одинаковой скоростью одновременно используются SMB Multichannel. Более медленные сетевые адаптеры неактивны.

Отключение SMB Multichannel

Как правило, не нужно отключить SMB Multichannel. Однако если вы хотите отключить SMB Multichannel, например в тестовой среде, используйте следующие процедуры Windows PowerShell.

Сначала подключитесь к одному из серверов, открыв сеанс PowerShell:

Enter-PSSession <server-name>

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

Set-SmbServerConfiguration -EnableMultiChannel $false

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

Set-SmbClientConfiguration -EnableMultiChannel $false

Note

Отключение SMB Multichannel на клиенте или сервере блокирует использование обеих систем.

Повторное включение SMB Multichannel

Если вы отключили SMB Multichannel и хотите повторно включить его, используйте следующие процедуры.

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

Set-SmbServerConfiguration -EnableMultiChannel $true

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

Set-SmbClientConfiguration -EnableMultiChannel $true

Note

Необходимо повторно включить SMB Multichannel как на клиенте, так и на сервере, чтобы начать использовать его снова.

Тестирование многоканального SMB

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

Сравнение копии файла с SMB Multichannel и без нее

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

  1. Настройте SMB Multichannel с помощью одной из описанных ранее конфигураций.

  2. Измеряйте время, затраченное на выполнение длительной операции копирования файлов с помощью SMB Multichannel.

  3. Отключите SMB Multichannel. Инструкции см. в разделе "Отключить SMB Multichannel".

  4. Измеряйте время, затраченное на выполнение одной копии файлов без SMB Multichannel.

  5. Повторно включите SMB Multichannel. Инструкции см. в разделе "Повторное включение SMB Multichannel".

  6. Сравните два результата.

Important

Чтобы избежать влияния на производительность кэширования, сначала скопируйте большой объем данных, превышающий размер доступной памяти. Затем снова выполните операцию копирования, используя первую операцию копирования для предварительной подготовки. Время только второй операции копирования.

Причина сбоя одного из сетевых адаптеров во время копирования файлов с помощью SMB Multichannel

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

  1. Убедитесь, что SMB Multichannel работает в конфигурации нескольких сетевых адаптеров.

  2. Выполнение длительной операции копирования файлов.

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

  4. Убедитесь, что копия файла продолжает использовать оставшийся сетевой адаптер и работает без ошибок копирования файлов.

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

Убедитесь, что работает SMB Multichannel

Используйте следующую процедуру, чтобы убедиться, что работает SMB Multichannel.

  1. Чтобы проверить правильность конфигурации сетевого адаптера, введите следующее в Windows PowerShell как на сервере SMB, так и на клиенте SMB.

    Get-NetAdapter
    Get-NetAdapterRSS
    Get-NetAdapterRDMA
    Get-NetAdapterHardwareInfo
    
  2. Чтобы проверить, включен ли SMB Multichannel, убедитесь, что SMB правильно идентифицирует сетевые адаптеры и правильно определяет возможности RSS и RDMA сетевого адаптера, выполните следующие действия.

    В клиенте SMB введите следующее в Windows PowerShell:

    Get-SmbClientConfiguration | Select EnableMultichannel
    Get-SmbClientNetworkInterface
    

    На сервере SMB введите следующее в Windows PowerShell:

    Get-SmbServerConfiguration | Select EnableMultichannel
    Get-SmbServerNetworkInterface
    
  3. На клиенте SMB выполните длительную операцию копирования файлов, которая создает текущий сеанс с сервером SMB. Пока выполняется операция копирования, введите следующую команду в Windows PowerShell, чтобы убедиться, что подключение использует правильную версию SMB и работает многоканальный SMB.

    Get-SmbConnection
    Get-SmbMultichannelConnection
    Get-SmbMultichannelConnection -IncludeNotSelected
    

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

Дополнительные сведения см. также: