SMB-Komprimierung

Gilt für: Windows Server 2022, Windows 11-Insider-Vorschau

Mit der SMB-Komprimierung kann ein Administrator, ein Benutzer oder eine Anwendung die Komprimierung von Dateien anfordern, wenn diese über das Netzwerk übertragen werden. Dadurch ist es nicht mehr notwendig, eine Datei manuell mittels Deflate mit einer Anwendung zu verkleinern, sie zu kopieren und dann auf dem Zielcomputer zu vergrößern. Komprimierte Dateien verbrauchen weniger Netzwerkbandbreite und nehmen weniger Zeit für die Übertragung in Anspruch,. Dies führt allerdings zu einer geringfügig höheren CPU-Auslastung während der Übertragungen. Die SMB-Komprimierung ist am effektivsten in Netzwerken mit geringerer Bandbreite, z. B. einem 1 GBit/s-Ethernet oder WLAN-Netzwerk eines Clients. Eine Dateiübertragung über ein nicht überlastetes Ethernet-Netzwerk mit 100 GBit/s zwischen zwei Servern mit Flashspeicher kann ohne SMB-Komprimierung in der Praxis genauso schnell sein, führt dabei aber zu einer geringeren Belastung für andere Anwendungen.

SMB-Komprimierung in Windows weist die folgenden Merkmale auf:

  • Unterstützt die Komprimierungsalgorithmen XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 oder PATTERN_V1*. XPRESS wird automatisch verwendet.
  • Unterstützt SMB-Signierung und SMB-Verschlüsselung.
  • Unterstützt SMB über QUIC.
  • Unterstützt SMB Multichannel.
  • SMB Direct über RDMA wird nicht unterstützt.

Eine Demonstration der SMB-Komprimierung finden Sie in diesem Video:

Requirements (Anforderungen)

Um die SMB-Komprimierung in einer herkömmlichen Client-Dateiserver-Workload verwenden zu können, benötigen Sie Folgendes:

Konfigurieren der SMB-Komprimierung

Sie können die SMB-Komprimierung sowohl aus Client- als auch aus Serversicht konfigurieren. Client und Server bezieht sich nicht auf eine bestimmte Edition wie Windows Server 2022 oder die Windows 11-Insider-Vorschau, sondern auf die Architektur einer Dateiübertragung zwischen zwei Computern. Sowohl Windows Server 2022 als auch die Windows 11-Insider-Vorschau unterstützen die SMB-Komprimierung als Client oder Server.

Anfordern der SMB-Komprimierung auf Dateifreigaben

Sie können Freigaben so konfigurieren, dass sie immer eine Komprimierung anfordern, wenn Clients eine Verbindung mit ihnen anfordern. Sie können das Windows Admin Center oder PowerShell verwenden.

Verwenden von Windows Admin Center

  1. Installieren Sie Windows Admin Center, und stellen Sie eine Verbindung mit einem Windows Server 2022-Dateiserver her.
  2. Klicken Sie auf das Menüelement Dateien und Dateifreigabe.
  3. Klicken Sie auf Dateifreigabe.
  4. Bearbeiten Sie eine vorhandene Freigabe, oder erstellen Sie eine neue Freigabe.
  5. Wählen Sie Daten komprimieren aus, und klicken Sie dann auf Hinzufügen oder Bearbeiten.

Dateiserverkomprimierung

Verwenden von PowerShell

  1. Öffnen Sie eine PowerShell-Eingabeaufforderung mit erhöhten Rechten als Administrator.

  2. Erstellen Sie eine neue Freigabe mit Komprimierung unter Verwendung von New-SMBShare mit dem Parameter -CompressData $true und einem Argument. Zum Beispiel:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true

  3. Bearbeiten Sie eine vorhandene Freigabe mit Komprimierung unter Verwendung von Set-SMBShare mit dem -CompressData $true-Parameter und -Argument. Zum Beispiel:

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

Anfordern der SMB-Komprimierung auf zugeordneten Laufwerken

Sie können anfordern, dass alle Daten, die über ein zugeordnetes Laufwerk kopiert werden, komprimiert werden. Dies kann im Rahmen eines Anmeldeskripts oder bei manueller Ausführung erfolgen.

Verwenden von PowerShell

  1. Öffnen Sie eine PowerShell-Eingabeaufforderung.

  2. Ordnen Sie ein Laufwerk unter Verwendung von New-SMBMapping mit dem Parameter -CompressNetworkTraffic $true und einem Argument zu. Zum Beispiel:

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

Verwenden von NET USE

  1. Öffnen Sie eine CMD-Eingabeaufforderung.

  2. Ordnen Sie ein Laufwerk unter Verwendung von NET USE mit dem Parameter /REQUESTCOMPRESSION:YES und einem Argument zu. Zum Beispiel:

    NET USE * \\fs1.corp.contoso.com\sales /REQUESTCOMPRESSION:YES

Anfordern der SMB-Komprimierung mit Kopiertools

Sie können anfordern, dass die SMB-Komprimierung für bestimmte Dateien mit „robocopy“ oder „xcopy“ versucht wird.

Hinweis

Wenn Sie möchten, dass der Datei-Explorer, Kopiertools von Drittanbietern oder Anwendungen die Komprimierung verwenden, ordnen Sie Laufwerke mit Komprimierung zu, aktivieren Sie die Komprimierung auf Freigaben, oder konfigurieren Sie SMB-Clients so, dass sie die Komprimierung immer durchführen.

Verwenden von „Robocopy.exe“

  1. Öffnen einer CMD- oder PowerShell-Eingabeaufforderung

  2. Kopieren mit dem /COMPRESS-Flag. Zum Beispiel:

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

Verwenden von „Xcopy.exe“

  1. Öffnen einer CMD- oder PowerShell-Eingabeaufforderung

  2. Kopieren mit dem /COMPRESS-Flag. Zum Beispiel:

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

Komprimierungsanforderungen immer anfordern oder immer ablehnen

Sie können einen SMB-Client so konfigurieren, dass die Komprimierung immer angefordert wird oder Komprimierungsanforderungen immer zurückgewiesen werden. Sie können einen SMB-Server so konfigurieren, dass Komprimierungsanforderungen immer abgelehnt werden.

Immer komprimieren

  1. Starten Sie auf dem SMB-Clientcomputer „Regedit.exe“.

  2. Navigieren Sie zum folgenden Registrierungsunterschlüssel:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\parameters

  3. Erstellen Sie einen neuen REG_DWORD-Wertnamen:

    EnableCompressedTraffic

  4. Legen Sie ihn auf den folgenden Wert fest:

    1

  5. Schließen Sie regedit. Diese Einstellung wird sofort wirksam, es ist kein Neustart erforderlich.

Nie komprimieren (SMB-Client)

  1. Öffnen Sie eine PowerShell-Eingabeaufforderung mit erhöhten Rechten als Administrator.

  2. Alle Komprimierungsanforderungen von einem zugeordneten Laufwerk, Tool oder Server ignorieren mit:

    Set-SMbClientConfiguration -DisableCompression $true

    Dadurch wird folgendes festgelegt:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\parameters

    DisableCompression [dword] = 1

Nie komprimieren (SMB-Server)

  1. Starten Sie auf dem SMB-Servercomputer „Regedit.exe“.

  2. Navigieren Sie zum folgenden Registrierungsunterschlüssel:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\parameters

  3. Erstellen Sie einen neuen REG_DWORD-Wertnamen:

    DisableCompression

  4. Legen Sie ihn auf den folgenden Wert fest:

    1

  5. Schließen Sie regedit. Diese Einstellung wird sofort wirksam, es ist kein Neustart erforderlich.

Verstehen und Steuern des Komprimierungsverhaltens

Die SMB-Komprimierung in Windows Server 2022 und der Windows 11 Insider Preview verwendet einen Standardalgorithmus, bei dem versucht wird, die ersten 524.288.000 Bytes (500 MiB) einer Datei während der Übertragung zu komprimieren, und verfolgt mindestens 104.857.600 Bytes (100 MiB) innerhalb dieses 500-MB-Bereichs nach. Wenn weniger als 100 MiB komprimiert werden können, versucht die SMB-Komprimierung nicht mehr, den Rest der Datei zu komprimieren. Wenn mindestens 100 MiB komprimiert werden, versucht die SMB-Komprimierung, den Rest der Datei zu komprimieren. Dies bedeutet, dass sehr große Dateien mit komprimierbaren Daten – z. B. ein VM-Datenträger mit mehreren Gigabyte – wahrscheinlich komprimiert werden, aber eine relativ kleine Datei – selbst eine stark komprimierbare – nicht komprimiert wird.

Hinweis

Dieses Verhalten bleibt in anderen als den Vorschauversionen von Windows Server 2022 und Windows nicht die Standardeinstellung. Es wurde zum ersten Mal in Windows 11 Insider Preview Build 22449 geändert.

Wenn Sie möchten, dass die SMB-Komprimierung unabhängig von der Dateigröße aggressiv komprimiert wird, können Sie die Standardwerte überschreiben:

  1. Starten Sie auf dem SMB-Clientcomputer „Regedit.exe“.

  2. Navigieren Sie zum folgenden Registrierungsunterschlüssel:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\parameters

  3. Erstellen Sie einen neuen REG_DWORD-Wertnamen:

    CompressibilitySamplingSize

  4. Legen Sie ihn auf den folgenden Dezimalwert fest:

    4294967295

  5. Erstellen Sie einen neuen REG_DWORD-Wertnamen:

    CompressibleThreshold

  6. Legen Sie ihn auf den folgenden Wert fest:

    0

  7. Schließen Sie regedit. Diese Einstellung wird sofort wirksam, es ist kein Neustart erforderlich.

Diese Einstellungen bedeuten, dass die SMB-Komprimierung versucht, die ersten 4 GiB einer Datei zu komprimieren, und wenn mindestens 1 Byte komprimiert wird, versucht sie, auch den Rest der Datei zu komprimieren.

Testen der SMB-Komprimierung

Testen

Eine einfache Möglichkeit zum Testen Ihrer Komprimierungskonfiguration ist die Verwendung von VHDX-Dateien. Sie können eine VHDX erstellen und bereitstellen, ihr einige Dateien hinzufügen, dann die Bereitstellung der VHDX aufheben und sie als Datei kopieren. Alternativ können Sie einfach eine vorhandene VHDX-Datei mit nicht bereitgestellten virtuellen Computern kopieren, da ein Großteil des Dateiinhalts komprimiert wird. Beispiel für das Erstellen einer VHDX-Testdatei:

  1. Starten Sie „Diskmgmt.msc“.

  2. Wählen Sie Lokaler Datenträger (C:) aus, indem Sie darauf klicken.

  3. Klicken Sie auf Aktion und dann auf VHD erstellen.

  4. Klicken Sie in „Diskmgmt“ mit der rechten Maustaste auf Ihre VHDX, die jetzt als „Nicht initialisiert“ angezeigt wird, klicken Sie auf Datenträger initialisieren, und dann auf OK. Klicken Sie mit der rechten Maustaste auf den nicht zugeordneten Datenträgerbereich, und klicken Sie auf Neues einfaches Volume.

  5. Geben Sie einen Dateipfad an, legen Sie die Größe auf „25 GB“ fest, wählen Sie VHDX und feste Größe aus, und klicken Sie dann auf OK. Klicken Sie mit der rechten Maustaste auf den Abschnitt „Nicht zugeordnet“ des Datenträgers, klicken Sie auf Neues einfaches Volume, dann für alle Menüaufforderungen auf Weiter und abschließend auf Fertig stellen.

    Datenträgerverwaltung

  6. Klicken Sie mit der rechten Maustaste auf den Datenträger, klicken Sie auf VHD trennen und dann auf OK.

  7. Doppelklicken Sie im Datei-Explorer auf diese VHDX-Datei, um sie bereitzustellen. Kopieren Sie einige MB nicht komprimierbarer Dateien, z. B. JPG-Dateien, klicken Sie dann mit der rechten Maustaste auf den bereitgestellten Datenträger, und klicken Sie auf Auswerfen.

Sie verfügen nun über eine große Testdatei mit stark komprimierbaren Inhalten.

Das Testen der SMB-Komprimierung zwischen einem Paar von virtuellen Computern, die auf demselben Hyper-V-Host ausgeführt werden, führt möglicherweise nicht zu Zeiteinsparungen, da der virtuelle Switch 10 GBit/s beträgt und keine Überlastung aufweist, und moderne Hypervisoren zudem häufig Flashspeicher verwenden. Testen Sie Ihre Komprimierung über die echten Netzwerke, die Sie zu verwenden beabsichtigen. Sie können auch die Netzwerkbandbreite auf Hyper-V-VMs zu Testzwecken reduzieren, indem Sie z. B. Set-VMNetworkAdapter verwenden, und dabei -MaximumBandwidth auf 1Gb festlegen.

Um zu sehen, wie gut die Komprimierung funktioniert, können Sie dieselbe Datei zweimal mit „robocopy“ auf einen Server kopieren, einmal mit dem Flag /compress und einmal ohne Komprimierung, wobei Sie die Serverdatei zwischen den Tests löschen. Wenn die Datei komprimiert wird, sollten im Task-Manager eine geringere Netzwerkauslastung und eine niedrigere Kopierzeit angezeigt werden. Sie können auch die Leistungsindikatoren „Komprimierte Anforderungen/Sek.“ und „Komprimierte Empfangsdaten/Sek.“ des Leistungsmonitor-Objekts „SMB-Serverfreigaben“ des SMB-Servers beobachten.

RDMA und SMB Direct

Die SMB-Komprimierung unterstützt SMB Direct und RDMA nicht. Dies bedeutet, dass die Komprimierung mit SMB Direct und RDMA auch dann nicht versucht wird, wenn der Client die Komprimierung anfordert und der Server sie unterstützt. Die Unterstützung für die SMB-Komprimierung mit SMB Direct und RDMA wird nach der öffentlichen Vorschauversion Windows Server 2022 und Windows 11 verfügbar gemacht.