Сжатие SMB
Сжатие SMB позволяет администратору, пользователю или приложению запрашивать сжатие файлов при передаче по сети. Это избавляет от необходимости сначала вручную сжимать файл с помощью приложения, копировать его, а затем расширять на конечном компьютере. Сжатые файлы потребляют меньше пропускной способности сети и занимают меньше времени для передачи за счет незначительного увеличения использования ЦП во время передачи. Сжатие SMB является наиболее эффективным для сетей с меньшей пропускной способностью, например сетью Ethernet или Wi-Fi клиента; Передача файлов через неотступленную сеть Ethernet 100 Гбит/с между двумя серверами с хранилищем флэш-памяти может быть как быстро без сжатия SMB на практике, но по-прежнему создаст меньше заторможения для других приложений.
Сжатие SMB в 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 и Windows Server 2025 также поддерживают алгоритм сжатия LZ4, как определено LZ4.org. Дополнительные сведения об этом алгоритме сжатия см . в документации по сжатиям LZ4.
Демонстрацию сжатия SMB см. в этом видео:
Требования
Для использования сжатия SMB в традиционной рабочей нагрузке клиентского файлового сервера требуется следующее:
- файловый сервер, работающий под управлением Windows Server 2022 локально или в Azure;
- Компьютер с Windows 11 (Windows для бизнеса)
- Windows Admin Center (Домашняя страница).
Настройка сжатия SMB
Вы можете настроить сжатие SMB в контексте клиента и сервера. Клиент и сервер не относятся к определенному выпуску, например Windows Server 2022 или Windows 11 версии 24H2, но вместо архитектуры передачи файлов между двумя компьютерами. Поддержка windows Server 2022 и Windows 11 является клиентом или сервером сжатия SMB.
Запрос на сжатие SMB в общих папках
Можно настроить общие папки так, чтобы всегда запрашивать сжатие при подключении к клиентам. Вы можете использовать Windows Admin Center или PowerShell.
Использование Windows Admin Center
- Установите Windows Admin Center и подключитесь к файловому серверу Windows Server 2022.
- Щелкните элемент меню Файлы и общий доступ к файлам.
- Щелкните Общие папки.
- Измените существующую общую папку или создайте новую.
- Выберите " Сжатие данных " и нажмите кнопку "Добавить " или "Изменить".
Использование PowerShell
Откройте командную строку PowerShell с повышенными привилегиями от имени администратора.
Создайте новую общую папку со сжатием, используя
New-SMBShare
с параметром-CompressData $true
и аргументом. Например:New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
Измените существующую общую папку со сжатием, используя
Set-SMBShare
с параметром-CompressData $true
и аргументом. Например:Set-SmbShare -Name "Sales" -CompressData $true
Запрос на сжатие SMB на подключенных дисках
Вы можете запросить сжатие всех данных, копируемых на подключенном диске. Это можно сделать с использованием скрипта для входа или при выполнении вручную.
Откройте командную строку PowerShell.
Сопоставьте диск, используя
New-SMBMapping
с параметром-CompressNetworkTraffic $true
и аргументом. Например:New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.contoso.com\sales" -CompressNetworkTraffic $true
Запрос на сжатие SMB с помощью средств копирования
Вы можете запросить сжатие SMB для определенных файлов, используя Robocopy или Xcopy.
Примечание.
Если вы хотите, чтобы проводник, сторонние средства копирования или приложения использовали сжатие, сопоставьте диски со сжатием, включите сжатие в общих папках или включите для клиентов SMB постоянное сжатие.
Откройте командную строку CMD или командную строку PowerShell.
Выполните копирование с флагом /COMPRESS. Например:
ROBOCOPY c:\hypervdisks \\hypervcluster21.corp.contoso.com\disks$ *.vhdx /COMPRESS
Всегда требовать сжатие или всегда отклонять запросы на сжатие
Начиная с Windows Server 2022 с обновлением KB5016693 (сборка ОС 20348.946) и Windows 11 с обновлением KB5016691 (сборка ОС 22000.918) можно настроить клиент SMB или сервер SMB для всегда запрашивать сжатие и всегда отклонять запросы на сжатие. Теперь вы можете использовать групповую политику или PowerShell; В первоначальном выпуске Windows 11 и Windows Server 2022 можно использовать только параметры реестра для управления большинством этих действий и не удалось настроить сервер SMB для всегда запрашивать сжатие, несмотря на параметры общей папки. Клиент SMB и сервер SMB относятся к службам SMB, а не к выпуску Windows или SKU. Все эти изменения SMB вступают в силу немедленно без перезагрузки.
Всегда пытаться сжатие (клиент SMB)
- Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
- Разверните конфигурацию компьютера политики \Политики\Административные шаблоны\Сеть\Рабочая станция Lanman.
- Включение политики с помощью сжатия SMB по умолчанию.
- Закройте редактор политик.
Никогда не сжимать (клиент SMB)
- Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
- Разверните конфигурацию компьютера политики \Политики\Административные шаблоны\Сеть\Рабочая станция Lanman.
- Включение сжатия SMB политики.
- Закройте редактор политик.
Всегда пытайтесь сжатия (SMB-сервер)
- Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
- Разверните конфигурацию компьютера политики \Политики\Административные шаблоны\Network\Lanman Server.
- Включите сжатие трафика запроса политики для всех общих папок.
- Закройте редактор политик.
Никогда не сжимать (сервер SMB)
- Запустите консоль управления групповыми политиками для домена Active Directory и создайте или перейдите к групповой политике.
- Разверните конфигурацию компьютера политики \Политики\Административные шаблоны\Network\Lanman Server.
- Включение сжатия SMB политики.
- Закройте редактор политик.
Сведения о поведении сжатия и управление им
Начиная с Windows Server 2022 с обновлением KB5016693 (сборка ОС 20348.946) и Windows 11 с обновлением KB5016691 (сборка ОС 22000.918), SMB по умолчанию пытается сжимать файл при запросе клиента или сервера без использования выборки сжатия.
Примечание.
В исходном выпуске Windows Server 2022 и Windows 11 сжатие SMB по умолчанию использовалось для использования алгоритма, в котором он пытался сжать первые 524 288 000 байт (500 МиБ) файла во время передачи и отслеживания, что по крайней мере 104 857 600 байт (100 МиБ) сжимается в пределах этого диапазона 500 МиБ. Если меньше 100 МиБ было сжатым, сжатие SMB перестало пытаться сжать остальную часть файла. Если по крайней мере 100 МиБ сжаты, сжатие SMB попыталось сжать остальную часть файла. При этом изменении поведения выборка теперь отключена по умолчанию, и SMB всегда пытается сжать весь файл, когда клиент или сервер запрашивает его.
Тестирование сжатия SMB
Простой способ проверить конфигурацию сжатия — использовать файлы VHDX. Вы можете создать и подключить диск VHDX, добавить в него файлы, затем отключить диск VHDX и скопировать его в виде файла. Кроме того, можно просто скопировать существующий файл отключенного диска VHDX виртуальной машины, так как часть его содержимого будет сжиматься. Пример создания файла тестового файла VHDX:
Запустите Diskmgmt.msc.
Выберите локальный диск (C:), щелкнув его.
Щелкните Действие и выберите Создать VHD.
В Diskmgmt щелкните правой кнопкой мыши диск VHDX, который теперь отображается, как неинициализированный, выберите Инициализировать диск и щелкните ОК. Щелкните правой кнопкой мыши раздел Не выделено и выберите Новый простой том, затем Далее для всех запросов меню, а затем щелкните Готово.
Укажите путь к файлу, установите размер 25 ГБ, выберите VHDX и Фиксированный размер, а затем щелкните ОК.
Щелкните диск правой кнопкой мыши, выберите Отключить VHD, а затем щелкните ОК.
В проводнике дважды щелкните этот файл VHDX, чтобы подключить диск. Скопируйте несколько МБ несжимаемых файлов (например, в формате JPG), а затем щелкните подключенный диск правой кнопкой мыши и выберите Извлечь.
Теперь у вас есть большой тестовый файл с сжатым содержимым.
Тестирование сжатия SMB между парой виртуальных машин, работающих на одном узле Hyper-V, может не показать экономию времени, так как виртуальный коммутатор составляет 10 Гбит/с и не имеет застой, а также современные гипервизоры часто используют хранилище флэш-памяти. Протестируйте сжатие с реальными сетями, которые вы планируете использовать. Вы также можете уменьшить пропускную способность сети на виртуальных машинах Hyper-V для тестирования, например, используя Set-VMNetworkAdapter и задав для -MaximumBandwidth
значение 1Gb
.
Чтобы увидеть, насколько хорошо работает сжатие, вы можете дважды скопировать один и тот же файл на сервер с помощью Robocopy: один раз с флагом /compress
, а затем без сжатия, удаляя файл сервера между тестами. Если файл сжимается, вы должны увидеть меньшее использование ресурсов сети в диспетчере задач и меньшее время копирования. Вы также можете наблюдать за объектом Монитора производительности SMB-сервера (общие ресурсы сервера SMB), отслеживая его счетчики (количество сжатых запросов и ответов в секунду).
RDMA и SMB Direct
Сжатие SMB не поддерживает SMB Direct и RDMA. Это означает, что даже если клиент запрашивает сжатие и сервер поддерживает его, сжатие не будет выполнено с помощью SMB Direct и RDMA. В сжатии SMB поддержка SMB Direct и RDMA будет включена в выпусках после выхода общедоступной предварительной версии Windows Server 2022 и Windows 11.