SMB 다이렉트

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Azure Stack HCI 버전 21H2

Windows Server에는 RDMA(원격 직접 메모리 액세스) 기능이 있는 네트워크 어댑터의 사용을 지원하는 SMB Direct라는 기능이 포함되어 있습니다. RDMA가 있는 네트워크 어댑터는 CPU 사용률을 손상시키지 않으면서 대기 시간이 짧아서 전체 속도로 작동할 수 있습니다. Hyper-V 또는 Microsoft SQL Server 등의 워크로드에 이 기능을 사용하면 원격 파일 서버가 로컬 스토리지와 비슷한 역할을 할 수 있습니다. SMB Direct는 Windows Server 2012 및 이후 반복에서 기본적으로 자동으로 구성되고 사용하도록 설정됩니다.

SMB Direct를 사용하면 다음을 제공합니다.

  • 향상된 처리량: 네트워크 어댑터가 회선 속도로 대량의 데이터 전송을 조정하는 고속 네트워크의 최대 처리량을 활용합니다.
  • 대기 시간이 짧음: 네트워크 요청에 대한 빠른 응답을 제공하므로 원격 파일 스토리지가 블록 스토리지에 직접 연결된 것처럼 느껴집니다.
  • 낮은 CPU 사용률: 네트워크를 통해 데이터를 전송할 때 적은 CPU 주기를 사용하므로 서버 애플리케이션에서 더 많은 전원을 사용할 수 있습니다.

장애 조치(failover) 클러스터에서 SMB 다이렉트를 사용할 수는 있지만 클라이언트 액세스에 사용되는 클러스터 네트워크가 SMB 다이렉트에 적절한지 확인해야 합니다. 장애 조치(failover) 클러스터링은 RSS(수신측 배율) 가능 및 RDMA 가능인 네트워크 어댑터와 함께 클라이언트 액세스에 여러 네트워크를 사용하는 것을 지원합니다.

참고 항목

Hyper-V 관리 운영 체제에서 SMB 다이렉트를 사용하여 SMB를 통한 Hyper-V 사용을 지원하고, Hyper-V 스토리지 스택을 사용하는 가상 머신에 스토리지를 제공할 수 있습니다. 그러나 RDMA 지원 네트워크 어댑터는 Hyper-V 클라이언트에 직접 노출되지 않습니다. RDMA 지원 네트워크 어댑터를 가상 스위치에 연결하는 경우 스위치의 가상 네트워크 어댑터는 RDMA를 사용할 수 없습니다.

요구 사항

SMB 다이렉트에는 다음이 필요합니다.

  • RDMA 기능이 있는 하나 이상의 네트워크 어댑터
  • 다음 운영 체제 중 하나 이상을 실행하는 두 대 이상의 컴퓨터:
    • Windows Server 2012 이상.
    • Windows 10 Enterprise 이상.
    • Windows 10 Education 이상.
    • Windows 10 Pro for Workstations 이상
    • Windows 10 Pro 22H2(이전 버전에서 업그레이드되지 클린 설치됨) 이상.

참고 항목

Windows 10 및 Windows 11 제품군은 클라이언트 전용으로 제한되며 SMB 직접 서버 역할을 할 수 없습니다.

SMB 다중 채널

SMB 다중 채널은 네트워크 어댑터의 RDMA 기능을 검색하여 SMB 다이렉트를 사용할 수 있도록 하는 기능입니다. SMB 다중 채널이 없는 경우 SMB는 RDMA 가능 네트워크 어댑터와 일반 TCP/IP를 사용합니다(모든 네트워크 어댑터는 새로운 RDMA 스택과 함께 TCP/IP 스택을 제공함).

SMB 다중 채널을 사용하여 SMB는 네트워크 어댑터에 RDMA 기능이 있는지 여부를 감지하고 해당 단일 세션에 대해 여러 RDMA 연결을 만듭니다(인터페이스당 두 개). 이를 통해 SMB는 RDMA 가능 네트워크 어댑터에서 제공하는 높은 처리량, 짧은 대기 시간 및 낮은 CPU 사용률을 사용할 수 있습니다. 또한 여러 RDMA 인터페이스를 사용하는 경우 내결함성을 제공합니다.

Windows Server 2016부터 SET(Switch Embedded Teaming)를 사용하여 RDMA 지원 네트워크 어댑터를 팀화할 수 있습니다. 하나 이상의 RDMA 네트워크 연결을 만들고 나면 원래 프로토콜 협상에 사용된 TCP/IP 연결은 더 이상 사용되지 않습니다. 그러나 RDMA 네트워크 연결이 실패할 경우를 대비하여 TCP/IP 연결은 보존됩니다.

SMB 다중 채널을 사용하지 않도록 설정하면 SMB Direct도 사용하지 않도록 설정됩니다. SMB 다중 채널은 네트워크 어댑터 기능을 검색하고 네트워크 어댑터가 RDMA 지원인지 여부를 확인하므로 SMB 다중 채널을 사용하지 않도록 설정한 경우 클라이언트에서 SMB Direct를 사용할 수 없습니다.

SMB 암호화

Windows Server 2022 및 Windows 11부터 SMB 다이렉트는 이제 암호화를 지원합니다. 이전에는 SMB 암호화를 사용하도록 설정하면 직접 데이터 배치가 비활성화되어 RDMA 성능이 TCP만큼 느려졌습니다. 이제 데이터가 배치 전에 암호화되어 AES-128 및 AES-256 보호된 패킷 개인 정보를 추가하는 동안 성능이 비교적 덜 저하됩니다. SMB 암호화 구성에 대한 자세한 내용은 SMB 보안 향상을 참조 하세요.

또한 Windows Server 장애 조치(failover) 클러스터는 이제 CSV(클러스터 공유 볼륨) 및 SBL(스토리지 버스 계층)에 대한 노드 내 스토리지 통신을 암호화하는 세분화된 제어를 지원합니다. 즉, 스토리지 공간 다이렉트 및 SMB 다이렉트를 사용하는 경우 보안 강화를 위해 클러스터 자체 내에서 동-서 통신을 암호화하도록 결정할 수 있습니다.

SMB 직접 기능 사용 안 함 및 사용 설정

적절한 구성이 식별된 경우 SMB 클라이언트는 자동으로 여러 네트워크 연결을 검색하고 사용합니다. SMB Direct는 기본적으로 사용하도록 설정되어 있으므로 사용하지 않도록 설정되면 필요할 때마다 수동으로 다시 사용하도록 설정해야 합니다.

일반적으로 SMB Direct를 사용하지 않도록 설정할 필요는 없습니다. 그러나 다음 Windows PowerShell 명령을 실행하여 해당 기능과 함께 사용하지 않도록 설정할 수 있습니다.

SMB Direct를 사용하지 않도록 설정하려면 다음을 입력합니다.

Disable-WindowsOptionalFeature -Online -FeatureName SMBDirect

서버 쪽에서 SMB 다중 채널을 사용하지 않도록 설정하려면 다음을 입력합니다.

Set-SmbServerConfiguration -EnableMultiChannel $false

클라이언트 쪽에서 SMB 다중 채널을 사용하지 않도록 설정하려면 다음을 입력합니다.

Set-SmbClientConfiguration -EnableMultiChannel $false

특정 인터페이스에 대해 RDMA를 사용하지 않도록 설정하려면 다음을 입력합니다.

Disable-NetAdapterRdma <name>

모든 인터페이스에 대해 RDMA를 사용하지 않도록 설정하려면 다음을 입력합니다.

Set-NetOffloadGlobalSetting -NetworkDirect Disabled

클라이언트 또는 서버에서 RDMA를 사용하지 않도록 설정하면 시스템에서 RDMA를 사용할 수 없습니다. 네트워크 다이렉트 는 RDMA 인터페이스에 대한 Windows Server 기본 네트워킹 지원의 내부 이름입니다.

현재 구성된 SMB Direct의 작동 상태를 확인하려면 다음 cmdlet을 실행합니다.

Get-WindowsOptionalFeature -Online -FeatureName SMBDirect

SMB 직접 테스트

큰 파일 복사본을 실행할 때 처리량을 측정하여 SMB Direct의 성능을 테스트할 수 있습니다. 테스트하기 전에 네트워크 어댑터가 PowerShell을 사용하여 RDMA를 지원하는지 확인합니다.

서버 쪽에서 다음을 입력합니다.

Get-SmbServerNetworkInterface

클라이언트 쪽에서 다음을 입력합니다.

Get-SmbClientNetworkInterface

네트워크 어댑터가 RDMA 지원으로 확인되면 다음 테스트를 수행합니다.

  1. 네트워크 어댑터에서 RDMA를 사용하지 않도록 설정합니다. SMB 직접 기능 사용 안 함 및 사용 설정을 참조 하세요.
  2. SMB Direct를 사용하지 않고 대용량 파일 복사본을 실행하는 데 걸린 시간을 측정합니다.
  3. 네트워크 어댑터에서 RDMA를 다시 사용하도록 설정하고 동일한 파일 복사를 수행한 다음 두 결과를 비교합니다.
  4. 캐싱의 영향을 방지하려면 다음을 수행합니다.
    1. 많은 양의 데이터(메모리가 처리할 수 있는 양 이상의 데이터)를 복사합니다.
    2. 데이터를 두 번 복사합니다. 첫 번째 복사는 연습으로 수행하고 두 번째 복사를 수행합니다.
    3. 각 테스트 전에 서버와 클라이언트를 모두 다시 시작하여 유사한 조건에서 작동하는지 확인합니다.

또한 다음을 수행하여 성능 모니터 도구를 활용하는 동일한 시나리오를 사용하여 테스트하는 동안 성능 카운터를 관찰할 수 있습니다.

  1. 시작을 선택하고, perfmon을 입력하고, Enter 키를 누릅니.
  2. 왼쪽 창의 모니터링 도구> 아래에서 성능 모니터 선택합니다.
  3. 오른쪽 창에서 녹색 "+" 아이콘을 선택하여 새 카운터를 추가합니다.
  4. 카운터 추가 대화 상자에서 SMB Direct 커넥트ion을 확장합니다.
  5. Bytes RDMA Read/secBytes RDMA Written/sec를 모두 선택하고 추가를 선택한 다음 확인을 선택합니다.

SMB 직접 장애 조치(failover) 기능

SMB 다이렉트의 장애 조치(failover) 기능을 확인하는 방법은 다음과 같습니다.

  1. SMB 다이렉트가 여러 네트워크 어댑터 구성에서 작동하고 있는지 확인합니다.
  2. 큰 파일 복사를 실행합니다. 복사 프로세스 중에 케이블 중 하나의 연결을 끊거나 네트워크 어댑터 중 하나를 사용하지 않도록 설정하여 네트워크 경로 중 하나의 오류를 시뮬레이션합니다.
  3. 나머지 네트워크 어댑터 중 하나를 사용하여 파일 복사가 계속되는지 확인하고 파일 복사 오류가 없는지 확인합니다.

SMB 다이렉트를 사용하지 않는 워크로드의 오류를 방지하려면 연결이 끊어진 네트워크 경로를 사용하는 다른 워크로드가 없는지 확인합니다.

추가 참조