Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 11 / Windows Server 2022で高速ファイル転送を実現するSMB圧縮の有効化と設定方法

Windows Server 2022およびWindows 11に搭載された新しいバージョンのSMBプロトコルでは、ネットワーク経由でファイルをコピー・移動・開く際に、インライン型のSMB圧縮機能を利用できます。この機能を使うことで、仮想マシンのディスクファイル(VMDK/VHDX)やISOイメージなどの大きなファイルを転送する際に、転送速度の向上、帯域幅の削減、ネットワーク処理のレイテンシ低減が期待できます。本記事では、Windowsにおける共有フォルダーのSMB圧縮の有効化と設定方法を詳しく解説します。

SMB圧縮とは

SMB圧縮(NTFS圧縮とは別の機能です)を活用すれば、低速なネットワークや従量制課金の回線でファイルを転送する前に、サードパーティ製ツールで事前圧縮を行う必要はなくなります。デフォルトの圧縮アルゴリズムはXPRESS(LZ77)ですが、WindowsではXPRESS Huffman(LZ77+Huffman)LZNT1PATTERN_V1*といった圧縮アルゴリズムも選択可能です。

SMB圧縮は、クライアント側とSMBサーバー側のどちらでも有効化できます。

サーバー側でSMB圧縮を有効にする方法

Windows Server 2022では、以下の2つの方法でSMB圧縮を有効にできます。

  • Windows Admin Center(WAC)を使用する場合:「ファイルとファイル共有」→「ファイル共有」から対象のネットワーク共有フォルダーを選択し、設定画面の[データの圧縮]オプションにチェックを入れます。
  • PowerShellを使用する場合:新しい共有フォルダーを作成する際には New-SmbShare -Name "Public" -Path "E:\Public" -CompressData $true を、既存の共有フォルダーに対しては Set-SmbShare -Name "Public" -CompressData $true を実行します。また、SMB圧縮が有効になっているすべてのフォルダーを一覧表示するには、Get-SmbShare -CompressData $true を使用します。

クライアント側でSMB圧縮を有効にする方法

SMB圧縮はクライアント側でも有効化できます。この場合、サーバー側がSMB圧縮に対応しているかどうかは問われません。

Windows 11でSMB圧縮を有効にした状態でネットワークドライブをマップするには、次のコマンドを使用します。

net use * \\munfs01\images /requestcompression:yes

または、PowerShellでは以下のように実行します。

New-SmbMapping -LocalPath "U:" -RemotePath "\\munfs01\images" -CompressNetworkTraffic $true

SMB圧縮による転送速度の実測

SMB圧縮を有効にした場合と無効の場合で、VMDKファイル(VMware仮想マシンディスク)の転送速度と所要時間を比較してみましょう。圧縮オプションの有無それぞれで共有フォルダーを作成してもよいですし、robocopyの/compressオプションを使って強制的にSMB圧縮付きでファイルをコピーすることも可能です。

robocopy z:\ c:\VM\without_smb_compression.vmdk srv02.vmdk(圧縮なし)

robocopy z:\ c:\VM\with_smb_compression.vmdk srv02.vmdk /compress(圧縮あり)

実際の検証では、3GBのVMDKファイルのコピーにおいて、SMB圧縮を使用した方が約20%短い時間で完了しました(29秒対37秒)。

レジストリでSMB圧縮を常時使用する設定

Windows 11およびWindows Server 2022のRTM版では、SMB圧縮はファイルサイズに関係なくすべてのファイルに適用されます。

常にSMB圧縮を使ってファイル転送を行いたい場合は、レジストリキー HKLM\System\CurrentControlSet\Services\LanManWorkstation\Parameters の下で EnableCompressedTraffic = 1 を設定します。PowerShellからは以下のコマンドで設定できます。

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name EnableCompressedTraffic -Value 1

大きなファイルのみ圧縮を適用する場合

SMB圧縮を大きなファイルのみ(100MB超)に適用したい場合は、同じレジストリキーに以下の値を設定します。

  • CompressibilitySamplingSize = 524288000
  • CompressibleThreshold = 104857600

なお、CompressibleThreshold = 0 および CompressibilitySamplingSize = 4294967295 を設定すると、ネットワーク経由でSMBフォルダー内の任意のファイルにアクセスした際に、必ずSMB圧縮が使用されるようになります。

SMB圧縮を無効にする方法

Windows上でSMB圧縮を完全に無効化したい場合は、DisableCompression = 1 を設定します。

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name DisableCompressedTraffic -Value 1

または、以下のPowerShellコマンドレットでも同様に無効化できます。

Set-SmbClientConfiguration -DisableCompression $true

互換性について

SMB圧縮機能は、SMB暗号化・署名、SMB over QUIC、SMBマルチチャンネル、Hyper-Vライブマイグレーションとの互換性があります。一方、SMB DirectおよびRDMAは現時点ではサポートされていません。また、RobocopyやXcopyツールには新たに/compressオプションが追加されており、ネットワーク経由でのファイルコピー時にSMB圧縮を強制的に使用させることができます。

  1. 【2022年版】Windowsにおすすめの無料バックアップソフト10選

    パソコンには、私たちにとって重要な情報が大量に保存されています。個人的・業務上の大切な書類、メディアファイルという形の思い出の記録など、デジタルデータは生活に欠かせないものとなっています。しかし、これらのデータを失うとどれほど大きな被害を受けるか、考えたことはありますか?データを失う原因はさまざまです。ブルースクリーン(通称:BSOD)の発生や、常に潜むランサムウェア攻撃のリスクなど、PCに保存されたファイルやフォルダのバックアップを定期的に取ることは非常に重要です。本記事では、Windowsで使える無料のファイルバックアップソフトの中から、特におすすめの10選をご紹介します。Windowsお

  2. Windows 11でファイルエクスプローラーのタブ機能を有効にする方法【2022年版】

    MicrosoftがWindows 11 22H2をRelease Previewチャネル向けにリリースした際、注目すべき新機能が多数搭載されていました。待ち望まれていた機能として、タスクバーへのドラッグ&ドロップ対応、複数モニターでの時計表示、そして何よりファイルエクスプローラーのタブ機能が挙げられます。このタブ機能はダークモードに対応しており、多数のタブを開いた際も横スクロールで快適に操作できます。 幸いなことに、最新のInsider Previewビルド(Devチャネル)では、Windows 11のファイルエクスプローラーでタブを有効化できます。これにより、1つのエクスプローラーウィンド