Новые возможности файловых серверов Windows Server 2012: Новые функции SMB 3.0

Для обеспечения всех возможностей Scale-Out File Server разработчики оснастили протокол SMB 3.0 тремя новыми функциями: Transparent Failover, Direct и Multichannel. Рассмотрим каждую из них отдельно.

SMB Transparent Failover

Назначение SMB Transparent Failover состоит в обеспечении высокой доступности узлов, путем быстрого переключения клиента на другой сервер без прерывания работы приложения. Чтобы задействовать эту возможность, в настройках сетевых папок при работе мастера «New Share Wizard» на этапе «Other Settings» следует установить параметр «Enable Continuously Availability«, наличие которого проверяют клиенты при подключении. При создании шары с помощью PowerShell нужный параметр задается автоматически. Проверить легко:

PS> New-SmbShare -Name Storage –Path e:\storage \
    –Scope smbfs –FullControl example\administrator
PS> Get-SmbShare -Name Storage | Select *
...
ContinuouslyAvailable : True
...

При переключении к другому узлу клиент, обеспечивающий согласованность пространства имен с помощью Resume Key, должен завершить начатую ранее операцию. Для этого он обращается к фильтру Resume Key и восстанавливает дескриптор в состояние, предшествующее сбою. В случае выхода из строя одного из узлов кластера, клиент автоматически переподключается к другому узлу, возобновляя работу. Для приложения весь процесс выглядит абсолютно прозрачно, без каких-либо сбоев или ошибок, только на время уменьшаются I/O операции, и здесь становится важным свести к минимуму этот интервал. При определении доступности узла протокол SMB использует TCP/IP, в своей работе полагающийся на таймаут, значение которого может достигать 20 секунд. В итоге на выявление сбоя может быть потрачено значительное время, ощутимое для операций ввода-вывода. Чтобы не ожидать окончания таймаута и избежать возможных задержек, была создана новая служба SMB Witness, устанавливаемая автоматически с компонентом отказоустойчивой кластеризации. При первом подключении SMB клиента к узлу кластера он уведомляет об этом клиента SMB Witness, работающего на этом же компьютере, и в ответ получает список узлов кластера. Далее клиент SMB Witness выбирает другой узел кластера, службе SMB Witness которого отправляет запрос на регистрацию. Теперь в случае сбоя на первом сервере служба SMB Witness второго узла разошлет всем участникам сообщение, получив которое, клиент автоматически инициирует переподключение к этому узлу кластера. Просмотреть состояние SMB Witness можно при помощи командлета Get-SmbWithnessClient:

PS> Get-SmbWitnessClient | select ClientName, \
    FileServerNodeName,WitnessNodeName

По умолчанию SMB Witness трафик между сервером и клиентом требует проверки подлинности и подписывается, но не шифруется. Чтобы зашифровать его, следует добавить DWORD ключ реестра со значением 0x00000001 на каждом клиенте:

>Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\
    Services\LanmanWorkstation\Parameters" WitnessFlags \
    -Value 1 –Force

И чтобы сервер принимал только зашифрованные сообщения, создаем в реестре DWORD со значением 0x00000001:

PS> Set-ItemProperty -Path "HKEY_LOCAL_MACHINE\System\
    CurrentControlSet\Services\SMBWitness\Parameters" \
    Flags -Value 1 –Force

Клиенты SMB версии до 3.0 смогут получить доступ к SOFS ресурсам, однако функция SMB Transparent Failover и служба SMB Witness будут для них недоступны.

SMB Direct

Низкие задержки и быстрая передача данных являются одними из основных требований, предъявляемых к хранилищам данных. Чтобы им соответствовать, SMB 3.0 поддерживает RDMA-совместимые сетевые адаптеры, позволяющие серьезно увеличить скорость передачи данных и производительность приложений при малой загрузке CPU (RDMA — Remote Direct Memory Access, стандарт передачи данных между приложениями, при котором приложения передают данные напрямую из памяти в обход процессора). Соответствующая функция получила название SMB Direct или SMB over RDMA. В Win2012 поддерживаются все три известные RDMA технологии: InfiniBand, Internet Wide Area RDMA Protocol (iWARP) и RDMA over Converged Ethernet (RoCE). Отказоустойчивый кластер может использовать несколько сетей для клиентского доступа через RDMA сетевые адаптеры. Но чтобы технология работала, RDMA должен поддерживаться как сервером, так и клиентом. Выручает то, что такие сетевые адаптеры автоматически обнаруживаются системой и не требуют каких-либо дополнительных настроек со стороны администратора.
Поддержка RDMA включается командой:

PS> Get-NetAdapter
PS> Enable-NetAdapterRDMA имя

Чтобы получить текущие установки, запускаем Get-NetAdapterRdma.
Для глобального изменения настройки RDMA всех адаптеров сразу следует использовать командлет Set-NetOffloadGlobalSetting:

PS> Set-NetOffloadGlobalSetting -NetworkDirect Enabled

Соответственно, указав Disable-NetAdapterRDMA или «-NetworkDirect Disable«, мы отключим RDMA в случае необходимости.

SMB Multichannel

Функция SMB Multichannel позволяет увеличить пропускную способность сети и повысить отказоустойчивость за счет одновременного использования нескольких сетевых адаптеров. Все установленные сетевые карты обнаруживаются и SMB Multichannel активируется автоматически, никаких дополнительных настроек не требуется. Без SMB Multichannel по умолчанию для одной сессии создается одно TCP/IP соединение, даже в случае объединения карт при помощи NIC Teaming. Но если сетевая карта поддерживает функцию RSS (Receive Side Scaling), позволяющую распределять подключения по ядрам процессора, SMB Multichannel может создавать несколько TCP/IP подключений для одной SMB-сессии даже для одной сетевой карты. В установках по умолчанию количество TCP/IP подключений на сетевой адаптер для разных типов отличается. Так для RSS оно равно 4, для RDMA — 2 и для обычных сетевух — 1. Изменять эти значения не рекомендуется, но если в этом есть необходимость, используй командлет Set-SmbClientConfiguration.
При установке соединения между клиентом и сервером определяются все сетевые карты, которые могут быть использованы для обмена данными, и производится их систематизация по типу. Однотипные адаптеры объединяются в группу и используются вместе. Чем большую пропускную способность обеспечивает адаптер, тем выше его приоритет. В случае появления или удаления сетевой карты производится пересчет приоритета. И если, например, в системе появилась более производительная карта, все соединения автоматически будут перекинуты на нее. Вручную ограничить число используемых адаптеров можно при помощи командлета New-SmbMultichannelConstraint.
Функция SMB Multichannel по умолчанию активирована, для управления на стороне сервера/клиента используются командлеты Set-SmbServerConfiguration и Set-SmbClientConfiguration. Чтобы вручную включить SMB Multichannel на сервере, достаточно ввести команду:

PS> Set-SmbServerConfiguration -EnableMultiChannel $true

А на клиенте:

PS> Set-SmbClientConfiguration -EnableMultiChannel $true
Теги: ,

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)