다음을 통해 공유


SMB 압축

SMB 압축을 사용하면 관리자, 사용자 또는 애플리케이션이 네트워크를 통해 파일을 전송할 때 파일 압축을 요청할 수 있습니다. 이렇게 하면 먼저 애플리케이션으로 파일을 수동으로 수축시키고 복사한 다음, 대상 컴퓨터에서 팽창시킬 필요가 없습니다. 압축된 파일은 전송 중 CPU 사용량이 약간 증가하지만 네트워크 대역폭을 덜 소모하고 전송하는 데 시간이 덜 걸립니다. SMB 압축은 클라이언트의 1 Gbps 이더넷 또는 Wi-Fi 네트워크와 같이 대역폭이 적은 네트워크에서 가장 효과적입니다. 플래시 스토리지가 있는 두 서버 간의 혼잡하지 않은 100 Gbps 이더넷 네트워크를 통한 파일 전송은 실제로 SMB 압축 없이도 빠를 수 있지만 여전히 다른 애플리케이션에 대한 혼잡은 덜 발생합니다.

Windows의 SMB 압축에는 다음과 같은 특징이 있습니다.

  • 압축 알고리즘 XPRESS(LZ77), XPRESS Huffman(LZ77+Huffman), LZNT1 또는 PATTERN_V1*을 지원합니다. XPRESS가 자동으로 사용됩니다.
  • Windows Server 2025에서 압축 알고리즘 LZ4 지원
  • SMB 서명 및 SMB 암호화 지원
  • QUIC를 통한 SMB 지원
  • SMB 다중 채널 지원
  • RDMA를 통한 SMB 다이렉트를 지원하지 않음

참고 항목

Windows 11 및 Windows Server 2025는 LZ4.org 정의된 압축 알고리즘 LZ4도 지원합니다. 이 압축 알고리즘에 대한 자세한 내용은 LZ4 압축 설명서를 참조하세요.

SMB 압축 데모를 보려면 다음 비디오를 시청하세요.

요구 사항

기존 클라이언트 파일 서버 워크로드에서 SMB 압축을 사용하려면 다음이 필요합니다.

SMB 압축 구성

클라이언트 및 서버 관점 모두에서 SMB 압축을 구성할 수 있습니다. 클라이언트와 서버는 Windows Server 2022 또는 Windows 11 버전 24H2와 같은 특정 버전을 참조하지 않고 두 컴퓨터 간에 파일 전송 아키텍처를 참조합니다. Windows Server 2022 및 Windows 11는 모두 SMB 압축의 클라이언트 또는 서버가 되는 것을 지원합니다.

파일 공유에서 SMB 압축 요청

클라이언트가 연결할 때 항상 압축을 요청하도록 공유를 구성할 수 있습니다. Windows Admin Center 또는 PowerShell을 사용할 수 있습니다.

Windows Admin Center 사용

  1. Windows Admin Center를 설치하고 Windows Server 2022 파일 서버에 연결합니다.
  2. 파일 및 파일 공유 메뉴 항목을 클릭합니다.
  3. 파일 공유를 클릭합니다.
  4. 기존 공유를 편집하거나 새 공유를 만듭니다.
  5. 데이터 압축을 선택한 다음, 추가 또는 수정을 클릭하세요.

Windows Server 2022 파일 서버의 Windows Admin Center의 스크린샷

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 압축 요청

robocopy 또는 xcopy를 사용하여 특정 파일에 대해 SMB 압축을 시도하도록 요청할 수 있습니다.

참고 항목

파일 탐색기, 타사 복사 도구 또는 애플리케이션이 압축을 사용하도록 하려면 압축을 사용하여 드라이브를 매핑하거나 공유 시 압축을 사용하거나 SMB 클라이언트가 항상 압축하도록 설정합니다.

  1. CMD 프롬프트 또는 PowerShell 명령 프롬프트 열기.

  2. /COMPRESS 플래그로 복사합니다. 예시:

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

압축 요청 항상 요구 또는 항상 거부

업데이트 KB5016693(OS 빌드 20348.946) 및 업데이트 KB5016691가 있는 Windows 11(OS 빌드 22000.918)이 있는 Windows Server 2022부터는 항상 압축을 요청하고 항상 압축 요청을 거부하도록 SMB 클라이언트 또는 SMB 서버를 구성할 수 있습니다. 이제 그룹 정책 또는 PowerShell을 사용할 수 있습니다. Windows 11 및 Windows Server 2022의 초기 릴리스에서는 레지스트리 설정만 사용하여 이러한 동작의 대부분을 제어할 수 있으며 공유 설정에도 불구하고 항상 압축을 요청하도록 SMB 서버를 구성할 수 없습니다. SMB 클라이언트 및 SMB 서버는 Windows 버전 혹은 SKU가 아닌 SMB 서비스를 참조합니다. 이러한 모든 SMB 변경 내용은 다시 부팅하지 않고 즉시 적용됩니다.

항상 압축 시도(SMB 클라이언트)

  1. Active Directory 도메인에 대한 그룹 정책 관리 콘솔을 실행하고 그룹 정책을 만들거나 이동합니다.
  2. 정책 Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation을 확장합니다.
  3. 정책 사용 SMB 압축을 기본적으로 사용을 사용하도록 허용합니다.
  4. 정책 개체 편집기를 닫습니다

압축 안 함(SMB 클라이언트)

  1. Active Directory 도메인에 대한 그룹 정책 관리 콘솔을 실행하고 그룹 정책을 만들거나 이동합니다.
  2. 정책 Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation을 확장합니다.
  3. 정책 SMB 압축을 사용하지 않도록 설정을 사용하도록 설정합니다.
  4. 정책 개체 편집기를 닫습니다

항상 압축 시도(SMB 서버)

  1. Active Directory 도메인에 대한 그룹 정책 관리 콘솔을 실행하고 그룹 정책을 만들거나 이동합니다.
  2. 정책 Computer Configuration\Policies\Administrative Templates\Network\Lanman Server을 확장합니다.
  3. 정책 요청 트래픽 압축을 사용하도록 설정을 사용하도록 허용합니다.
  4. 정책 개체 편집기를 닫습니다

압축 안 함(SMB 서버)

  1. Active Directory 도메인에 대한 그룹 정책 관리 콘솔을 실행하고 그룹 정책을 만들거나 이동합니다.
  2. 정책 Computer Configuration\Policies\Administrative Templates\Network\Lanman Server을 확장합니다.
  3. 정책 SMB 압축을 사용하지 않도록 설정을 사용하도록 설정합니다.
  4. 정책 개체 편집기를 닫습니다

압축 동작 이해 및 제어

업데이트 KB5016693(OS 빌드 20348.946) 및 업데이트 KB5016691(OS 빌드 22000.918)가 있는 Windows 11이 있는 Windows Server 2022부터 SMB는 기본적으로 압축 샘플링을 사용하지 않고 클라이언트 또는 서버가 파일을 요청할 때 항상 파일을 압축하려고 시도합니다.

참고 항목

Windows Server 2022 및 Windows 11의 기존 릴리스에서는 SMB 압축을 기본으로 사용 알고리즘을 사용하여 전송 중에 파일의 처음 524,288,000바이트(500MiB) 압축을 시도하고 해당 500MiB 범위 내에서 압축된 최소 104,857,600바이트(100MiB)를 추적합니다. 100MiB 미만이 압축 가능했다면, SMB 압축은 나머지 파일 압축 시도를 중지합니다. 최소 100MiB를 압축하면 SMB 압축은 나머지 파일 압축하려고 시도합니다. 이 동작이 변경되면 이제 샘플링이 기본적으로 비활성화되고 SMB는 클라이언트 또는 서버가 요청할 때 항상 전체 파일을 압축하려고 시도합니다.

SMB 압축 테스트

압축 구성을 테스트하는 간단한 방법은 VHDX 파일을 사용하는 것입니다. VHDX를 만들어 탑재하고, 여기에 일부 파일을 추가한 다음, VHDX를 탑재 해제하고 파일로 복사할 수 있습니다. 또는 기존의 분리된 가상 머신 VHDX 파일을 복사할 수 있습니다. 파일 내용의 많은 부분이 압축되기 때문입니다. VHDX 테스트 파일을 만드는 예는 다음과 같습니다.

  1. Diskmgmt.msc를 시작합니다.

  2. 클릭하여 로컬 디스크(C:)를 선택합니다.

  3. 작업을 클릭한 다음, VHD 만들기를 클릭합니다.

  4. Diskmgmt에서 "초기화되지 않음"으로 표시된 VHDX를 마우스 오른쪽 단추로 클릭하고 디스크 초기화를 클릭한 다음, 확인을 클릭합니다. 디스크 할당되지 않음 섹션을 마우스 오른쪽 단추로 클릭하고 새 단순 볼륨을 클릭한 다음, 모든 메뉴 프롬프트에서 다음을 클릭한 후 마침을 클릭합니다.

  5. 파일 경로를 지정하고 크기를 "25GB"로 설정하고 VHDX고정 크기를 선택한 다음, 확인을 클릭합니다.

    Windows Hyper-V용 가상 하드 디스크 만들기 및 연결의 스크린샷.

  6. 디스크를 마우스 오른쪽 단추로 클릭하고 VHD 분리를 클릭한 다음, 확인을 클릭합니다.

  7. 파일 탐색기에서 해당 VHDX 파일을 두 번 클릭하여 탑재합니다. JPG 형식과 같은 압축할 수 없는 몇 MB 파일을 복사한 다음, 탑재된 디스크를 마우스 오른쪽 단추로 클릭하고 꺼내기를 클릭합니다.

이제 압축된 콘텐츠가 포함된 큰 테스트 파일이 있습니다.

동일한 Hyper-V 호스트에서 실행되는 VM 쌍 간의 SMB 압축을 테스트하면 가상 스위치가 10 Gbps이고 정체가 없고 최신 하이퍼바이저가 플래시 스토리지를 사용하는 경우가 많기 때문에 시간 절약 효과가 나타나지 않을 수 있습니다. 사용하려는 실제 네트워크에서 압축을 테스트합니다. 예를 들어 -MaximumBandwidth1Gb로 설정하고 Set-VMNetworkAdapter를 사용하여 테스트 목적으로 Hyper-V VM의 네트워크 대역폭을 줄일 수도 있습니다.

압축이 얼마나 잘 작동하는지 확인하기 위해 동일한 파일을 서버에 두 번 robocopy할 수 있습니다. 한 번은 /compress 플래그를 사용하고 한 번은 압축하지 않고 각 테스트 사이에 서버 파일을 삭제합니다. 파일이 압축 중인 경우 작업 관리자에서 네트워크 사용률이 낮아지고 복사 시간이 단축되는 것을 볼 수 있습니다. "압축 요청/초" 및 "압축 응답/초" 카운터에 대해 SMB 서버의 성능 모니터 개체 "SMB 서버 공유"를 관찰할 수도 있습니다.

RDMA 및 SMB 다이렉트

SMB 압축은 SMB 다이렉트 및 RDMA를 지원하지 않습니다. 즉, 클라이언트가 압축을 요청하고 서버가 이를 지원하더라도 SMB 다이렉트 및 RDMA에서는 압축이 시도되지 않습니다. SMB 다이렉트 및 RDMA를 통한 SMB 압축 지원은 Windows Server 2022 및 Windows 11 공개 미리 보기 이후에 제공됩니다.