Сжатие SMB

Область применения: Windows Server 2022, Windows 11

Сжатие S МБ позволяет администратору, пользователю или приложению запрашивать сжатие файлов при передаче по сети. Это избавляет от необходимости сначала вручную сжимать файл с помощью приложения, копировать его, а затем расширять на конечном компьютере. Сжатые файлы потребляют меньше пропускной способности сети и занимают меньше времени для передачи за счет незначительного увеличения использования ЦП во время передачи. Сжатие S МБ является наиболее эффективным в сетях с меньшей пропускной способностью, например сетью Ethernet или Wi-Fi клиента; передача файлов через неотступленную сеть Ethernet 100 Гбит/с между двумя серверами с флэш-хранилищем может быть как быстро без сжатия S МБ на практике, но все равно создаст меньше заторможенности для других приложений.

Сжатие S МБ в Windows имеет следующие характеристики:

  • поддержка алгоритмов сжатия XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 или PATTERN_V1*; XPRESS используется автоматически;
  • Поддерживает алгоритм сжатия LZ4 в Windows Server 2025
  • поддержка подписывания SMB и шифрования SMB;
  • поддержка SMB через QUIC;
  • поддержка многоканального протокола SMB;
  • отсутствие поддержки SMB Direct через RDMA.

Примечание.

Windows 11 Insider и Windows Server Insider Preview Builds 25997 и более поздних версий также поддерживают алгоритм сжатия LZ4, как определено LZ4.org. Дополнительные сведения об этом алгоритме сжатия см . в документации по сжатиям LZ4.

Демонстрацию сжатия SMB см. в этом видео:

Требования

Для использования сжатия SMB в традиционной рабочей нагрузке клиентского файлового сервера требуется следующее:

Настройка сжатия SMB

Вы можете настроить сжатие SMB в контексте клиента и сервера. Клиент и сервер не относятся к конкретному выпуску, например Windows Server 2022 или Windows 11 Insider Preview. Это элементы архитектуры передачи файлов между двумя компьютерами. Поддержка windows Server 2022 и Windows 11 является клиентом или сервером S МБ сжатия.

Запрос на сжатие SMB в общих папках

Можно настроить общие папки так, чтобы всегда запрашивать сжатие при подключении к клиентам. Вы можете использовать Windows Admin Center или PowerShell.

Использование Windows Admin Center

  1. Установите Windows Admin Center и подключитесь к файловому серверу Windows Server 2022.
  2. Щелкните элемент меню Файлы и общий доступ к файлам.
  3. Щелкните Общие папки.
  4. Измените существующую общую папку или создайте новую.
  5. Выберите " Сжатие данных " и нажмите кнопку "Добавить " или "Изменить".

Снимок экрана: Центр Windows Администратор в файловом сервере Window Server 2022.

Использование PowerShell

  1. Откройте командную строку PowerShell с повышенными привилегиями от имени администратора.

  2. Создайте новую общую папку со сжатием, используя New-SMBShare с параметром -CompressData $true и аргументом. Например:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
    
  3. Измените существующую общую папку со сжатием, используя Set-SMBShare с параметром -CompressData $true и аргументом. Например:

    Set-SmbShare -Name "Sales" -CompressData $true
    

Запрос на сжатие SMB на подключенных дисках

Вы можете запросить сжатие всех данных, копируемых на подключенном диске. Это можно сделать с использованием скрипта для входа или при выполнении вручную.

  1. Откройте командную строку PowerShell.

  2. Сопоставьте диск, используя New-SMBMapping с параметром -CompressNetworkTraffic $true и аргументом. Например:

    New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.contoso.com\sales" -CompressNetworkTraffic $true
    

Запрос на сжатие SMB с помощью средств копирования

Вы можете запросить сжатие SMB для определенных файлов, используя Robocopy или Xcopy.

Примечание.

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

  1. Откройте командную строку CMD или командную строку PowerShell.

  2. Выполните копирование с флагом /COMPRESS. Например:

    ROBOCOPY c:\hypervdisks \\hypervcluster21.corp.contoso.com\disks$ *.vhdx /COMPRESS
    

Всегда требовать сжатие или всегда отклонять запросы на сжатие

Начиная с Windows Server 2022 с обновлением КБ 5016693 (сборка ОС 20348.946) и Windows 11 с обновлением КБ 5016691 (сборка ОС 22000.918) можно настроить клиент S МБ или сервер S МБ для всегда запрашивать сжатие и всегда отклонять запросы на сжатие. Теперь вы можете использовать групповую политику или PowerShell; В первоначальном выпуске Windows 11 и Windows Server 2022 можно использовать только параметры реестра для управления большинством этих действий, и вы не можете настроить S МБ сервер для всегда запрашивать сжатие, несмотря на параметры общей папки. Сервер S МБ и S МБ относятся к службам S МБ, а не к выпуску Windows или SKU. Все эти изменения S МБ вступают в силу немедленно без перезагрузки.

Всегда пытаться сжатие (S МБ клиент)

  1. Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
  2. Разверните конфигурацию компьютера политики\Policies\Администратор istrative templates\Network\Lanman Workstation.
  3. Включите использование политики S МБ Сжатие по умолчанию.
  4. Закройте редактор политик.

Никогда не сжимать (клиент SMB)

  1. Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
  2. Разверните конфигурацию компьютера политики\Policies\Администратор istrative templates\Network\Lanman Workstation.
  3. Включение политики отключить сжатие S МБ.
  4. Закройте редактор политик.

Всегда пытайтесь сжатия (S МБ server)

  1. Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
  2. Разверните конфигурацию компьютера политики\Policies\Администратор istrative templates\Network\Lanman Server.
  3. Включите сжатие трафика запроса политики для всех общих папок.
  4. Закройте редактор политик.

Никогда не сжимать (сервер SMB)

  1. Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
  2. Разверните конфигурацию компьютера политики\Policies\Администратор istrative templates\Network\Lanman Server.
  3. Включение политики отключить сжатие S МБ.
  4. Закройте редактор политик.

Сведения о поведении сжатия и управление им

Начиная с Windows Server 2022 с обновлением КБ 5016693 (сборка ОС 20348.946) и Windows 11 с обновлением КБ 5016691 (сборка ОС 22000.918), S МБ по умолчанию всегда пытается сжимать файл, когда клиент или сервер запрашивает его без использования выборки сжатия.

Примечание.

В исходном выпуске Windows Server 2022 и Windows 11 S МБ сжатие по умолчанию используется алгоритмом, в котором она попыталась сжать первые 524 288 000 байт (500 МиБ) файла во время передачи и отслеживания, что по крайней мере 104 857 600 байт (100 МиБ) сжимается в пределах этого диапазона 500 МиБ. Если меньше 100 МиБ было сжатым, S МБ сжатие перестало пытаться сжать остальную часть файла. Если по крайней мере 100 МиБ сжаты, S МБ сжатие попыталось сжать остальную часть файла. При этом изменении поведения выборка теперь отключена по умолчанию и S МБ всегда пытается сжать весь файл, когда клиент или сервер запрашивает его.

Тестирование сжатия SMB

Простой способ проверить конфигурацию сжатия — использовать файлы VHDX. Вы можете создать и подключить диск VHDX, добавить в него файлы, затем отключить диск VHDX и скопировать его в виде файла. Кроме того, можно просто скопировать существующий файл отключенного диска VHDX виртуальной машины, так как часть его содержимого будет сжиматься. Пример создания файла тестового файла VHDX:

  1. Запустите Diskmgmt.msc.

  2. Выберите локальный диск (C:), щелкнув его.

  3. Щелкните Действие и выберите Создать VHD.

  4. В Diskmgmt щелкните правой кнопкой мыши диск VHDX, который теперь отображается, как неинициализированный, выберите Инициализировать диск и щелкните ОК. Щелкните правой кнопкой мыши раздел Не выделено и выберите Новый простой том, затем Далее для всех запросов меню, а затем щелкните Готово.

  5. Укажите путь к файлу, установите размер 25 ГБ, выберите VHDX и Фиксированный размер, а затем щелкните ОК.

    Снимок экрана: создание и подключение виртуального жесткого диска для Windows Hyper-V.

  6. Щелкните диск правой кнопкой мыши, выберите Отключить VHD, а затем щелкните ОК.

  7. В проводнике дважды щелкните этот файл VHDX, чтобы подключить диск. Скопируйте несколько МБ несжимаемых файлов (например, в формате JPG), а затем щелкните подключенный диск правой кнопкой мыши и выберите Извлечь.

Теперь у вас есть большой тестовый файл с сжатым содержимым.

Тестирование сжатия S МБ между парой виртуальных машин, работающих на одном узле Hyper-V, может не показать экономию времени, так как виртуальный коммутатор составляет 10 Гбит/с и не имеет заторможения, а также современные гипервизоры часто используют хранилище флэш-памяти. Протестируйте сжатие с реальными сетями, которые вы планируете использовать. Вы также можете уменьшить пропускную способность сети на виртуальных машинах Hyper-V для тестирования, например, используя Set-VMNetworkAdapter и задав для -MaximumBandwidth значение 1Gb.

Чтобы увидеть, насколько хорошо работает сжатие, вы можете дважды скопировать один и тот же файл на сервер с помощью Robocopy: один раз с флагом /compress, а затем без сжатия, удаляя файл сервера между тестами. Если файл сжимается, вы должны увидеть меньшее использование ресурсов сети в диспетчере задач и меньшее время копирования. Вы также можете наблюдать за объектом Монитора производительности SMB-сервера (общие ресурсы сервера SMB), отслеживая его счетчики (количество сжатых запросов и ответов в секунду).

RDMA и SMB Direct

Сжатие SMB не поддерживает SMB Direct и RDMA. Это означает, что даже если клиент запрашивает сжатие и сервер поддерживает его, сжатие не будет выполнено с помощью S МБ Direct и RDMA. В сжатии SMB поддержка SMB Direct и RDMA будет включена в выпусках после выхода общедоступной предварительной версии Windows Server 2022 и Windows 11.