Windows 11 でネットワーク ファイル転送を高速化するために SMB 圧縮を構成する方法
2023 年 7 月 18 日更新: Windows 11 では、「SMB 圧縮」は、ネットワーク経由の転送中にファイル圧縮を要求するように設計された機能です。この機能は、ソースでファイルを圧縮してから宛先でコンテンツを解凍する必要がなく、ファイル転送を高速化し、大きなファイルの帯域幅を削減することを目的としています。
通常、帯域幅が狭いネットワークでは SMB 圧縮の利点がわかります。たとえば、1Gbps イーサネットまたは Wi-Fi アダプターを備えたコンピューター上です。一方、たとえば、ソリッド ステート ドライブ (SSD) を備えた 100 Gbps ネットワーク アダプターを備えたサーバーが 2 台ある場合は、SMB 圧縮のメリットが得られない可能性があります。実際にはさらに時間がかかる場合もあります。
Windows 11での SMB による圧縮は、アルゴリズム XPRESS (LZ77)、XPRESS Huffman (LZ77+Huffman)、LZNT1、または PATTERN_V1* をサポートします。XPRESS は自動的に使用され、SMB 署名と SMB 暗号化、SMB 署名と SMB 暗号化、および SMB マルチチャネルが使用されますが、RDMA 経由の SMB ダイレクトはサポートされていません。
このガイドでは、ネットワーク内のコンピューターとサーバー間のファイル転送を高速化するために SMB 圧縮を構成する方法を学習します。
Windows 11 でマップされたドライブ (クライアント) の SMB 圧縮を構成する
クライアントまたはサーバーとして機能するデバイスから SMB 圧縮を設定できます。以下の手順は、Windows 11 にマップされたネットワーク フォルダーの圧縮を要求するようにクライアント コンピューターを構成することを目的としています。
1. コマンドプロンプトから圧縮を要求する
コマンド プロンプトを使用して SMB 圧縮を要求する共有フォルダーをマップするには:
-
Windows 11 で[スタート]を開きます。
-
「コマンド プロンプト」を検索し、一番上の結果をクリックしてアプリを開きます。
-
次のコマンドを入力して、圧縮を要求するネットワーク フォルダーをマップし、Enter キーを押します。
net use * \\file-server\share-folder /requestcompression:yes
コマンドでは、マウントするネットワーク フォルダーへのパスを指定します。アスタリスク (*) はドライブ文字を自動的に割り当てますが、任意のドライブ文字に変更できます。
手順を完了すると、ファイルをネットワーク フォルダーに転送するときに、Windows 11 は転送を高速化するためにコンテンツを圧縮しようとします。
2. PowerShell から圧縮を要求する
PowerShell コマンドを使用して圧縮を要求する共有フォルダーをマップするには:
-
[スタート]を開きます。
-
PowerShellを検索し、一番上の結果をクリックしてアプリを開きます
-
次のコマンドを入力して、圧縮を要求するネットワーク フォルダーをマップし、Enter キーを押します。
New-SmbMapping -LocalPath "Z:"-RemotePath "\\file-server\share-folder"-CompressNetworkTraffic $true
コマンドで、ドライブ文字の「Z:」を更新し、マウントするネットワーク フォルダーへのパスを指定し、圧縮を有効にします。
手順を完了すると、ファイルの転送速度を上げるために圧縮が行われます。この方法を使用するとファイル共有はマウントされますが、ファイル エクスプローラーに表示されない場合があります。
Windows 11 でマップされたドライブ (サーバー) の SMB 圧縮を構成する
また、SMB 圧縮をオンにしてファイル共有を作成し、すべてのデバイスを構成することなく、サーバーのみを構成することなく、クライアント デバイスが改善されたファイル転送を利用できるようにすることもできます。
1. 圧縮を使用して新しい共有を作成します
SMB 圧縮を使用してネットワーク フォルダーを作成するには、次の手順を実行します。
-
[スタート]を開きます。
-
「PowerShell」を検索し、一番上の結果を右クリックして、「管理者として実行」オプションを選択します。
-
次のコマンドを入力してネットワーク内で共有するフォルダーを作成し、Enterを押します。
New-Item -Path "c:\"-Name "folder-name"-ItemType "directory"
-
次のコマンドを入力して、SMB 圧縮を使用して新しいファイル共有フォルダーを作成し、Enter キーを押します。
New-SmbShare -Name "file-share-name"-Path "C:\file-share-name"-CompressData $true
コマンドで、共有の名前とパスを自分の情報で更新します。
手順を完了すると、ネットワーク内のコンピュータは、クライアント側から追加の構成を行わなくても、圧縮を使用して高速にファイルを転送できるようになります。
2. 既存の共有を圧縮して編集します
サーバー上の既存の共有フォルダーで SMB 圧縮を有効にするには:
-
[スタート]を開きます。
-
「PowerShell」を検索し、一番上の結果を右クリックして、「管理者として実行」オプションを選択します。
-
次のコマンドを入力して、圧縮を要求するように共有フォルダーを構成し、Enterを押します。
Set-SmbShare -Name "file-share-name"-CompressData $true
コマンドでは、更新する必要がある既存のファイル共有の名前を忘れずに指定してください。
- 「Y」と入力し、Enter キーを押して続行します。
手順を完了すると、既存の共有フォルダーで SMB 圧縮が有効になります。
Windows 11 で Robocopy の SMB 圧縮を構成する
Robocopy でファイルをコピーするときに圧縮を使用するには、次の手順を実行します。
-
[スタート]を開きます。
-
「コマンド プロンプト」を検索し、一番上の結果を右クリックして、「管理者として実行」オプションを選択します。
-
次のコマンドを入力して、SMB 圧縮を使用してネットワーク経由でファイルをコピーし、Enter キーを押します。
robocopy c:\source\path\folder \\destination\path\folder /compress
コマンドで、環境内のパスの送信元パスと宛先パスを指定します。
手順を完了すると、SMB 圧縮のおかげで、ソースから宛先にファイルをコピーする速度が著しく速くなるはずです。
Windows 11 で Xcopy の SMB 圧縮を構成する
Xcopy でファイルをコピーするときに SMB 圧縮を使用するには、次の手順を実行します。
-
[スタート]を開きます。
-
「コマンド プロンプト」を検索し、一番上の結果を右クリックして、「管理者として実行」オプションを選択します。
-
次のコマンドを入力して、SMB 圧縮を使用してネットワーク経由でファイルをコピーし、Enter キーを押します。
xcopy c:\source\path\folder \\destination\path\folder /compress
コマンドで、環境内のパスの送信元パスと宛先パスを指定します。
手順を完了すると、圧縮によりソースと宛先の間のファイル転送が大幅に高速になり、操作中にファイルが小さくなります。
SMB 圧縮は Windows 11 および Windows Server 2022 で利用できます。また、デフォルトでは、アルゴリズムはファイルの 500MiB の圧縮を試行し、開始量の最初の 100MiB を監視します。圧縮可能なデータが 100MiB 未満の場合、圧縮は停止され、それ以上圧縮せずに転送が続行されます。ただし、Microsoft は Windows 11 の次のアップデートに向けてアルゴリズムを調整し、圧縮が要求されたときにこの機能が常に圧縮を試みるようにしています。
コメントを残す