Hyper-V가 VMWare ESXi나 Proxmox 같은 경쟁 하이퍼바이저에 비해 갖는 큰 단점 중 하나는 호스트에서 가상 머신으로 USB 장치를 리디렉션하는 기능이 부족하다는 점입니다. Hyper-V 2012 R2 버전부터 USB 패스스루 관련 여러 변화가 있었지만, 아직도 경쟁사 대비 기능 면에서 뒤처져 있습니다. 이 글에서는 Hyper-V에서 USB 리디렉션의 특징과 활용 방법을 자세히 살펴보겠습니다.
Hyper-V USB 패스스루 개요
USB 패스스루(USB Passthrough)란 호스트 하이퍼바이저(또는 네트워크를 통해 다른 서버/장치)에서 가상 머신으로 USB 장치를 전달하는 기능을 말합니다. 이 기능을 사용하면 물리적 호스트의 USB 포트에 연결된 USB 메모리, 보안 토큰, USB 동글(dongle), 모뎀 등 거의 모든 장치를 가상 머신에서 그대로 사용할 수 있습니다.
안타깝게도 Hyper-V는 완전한 형태의 USB 패스스루를 지원하지 않습니다. 임의의 USB 장치를 물리적 호스트에서 가상 머신으로 직접 리디렉션할 수 없습니다(이 부분은 VMWare가 훨씬 뛰어난 성능을 보여줍니다). Hyper-V VM에서 외부 USB 장치를 활용할 수 있는 몇 가지 내장 방법이 있지만, 모두 상당한 제약이 따릅니다. 현재 Hyper-V 가상 머신으로 USB 장치를 리디렉션할 수 있는 방법은 다음과 같습니다.
- Hyper-V 호스트에 연결된 USB 드라이브 직접 연결
- Hyper-V 콘솔의 향상된 세션 모드(Enhanced Session Mode) 활용
- RDP를 통한 USB 리디렉션
- 네트워크 기반 USB 리디렉션 솔루션 활용(USB over IP)
마지막 시나리오는 USB over IP를 구현하기 위한 서드파티 솔루션을 사용하는 방식입니다. 네트워크 USB 허브나 TCP/IP 네트워크를 통해 다른 서버의 USB 장치를 전달하는 소프트웨어가 여기에 해당합니다. 대표적인 상용 솔루션인 AnywhereUSB, DigiUSB 등은 대부분 유료입니다. 무료 솔루션으로는 USB 동글 1개와 대상 서버 1대까지 무료로 사용할 수 있는 VirtualHere USB, 그리고 다소 오래됐지만 검증된 오픈소스 프로젝트인 usbip.sourceforge.net(서버는 Linux로, 클라이언트는 Windows에 설치 가능)이 있습니다.
Hyper-V 가상 머신에서 USB 하드 드라이브 접근하기
호스트에 연결된 USB 드라이브는 실행 중인 Hyper-V 가상 머신 안으로 비교적 쉽게 직접 연결할 수 있습니다. 가상 머신이 호스트의 USB 드라이브에 바로 접근하도록 설정하는 방법을 알아보겠습니다.
참고
- 이 방법은 시스템이 고정 디스크(fixed disk)로 인식하는 USB 드라이브에만 적용됩니다. USB 플래시 드라이브, 스마트 카드 등 이동식 장치는 이 방식으로 VM에 연결할 수 없습니다(다만 Windows가 이동식 장치를 고정 하드 디스크로 인식하도록 우회하는 트릭은 존재합니다).
- 이렇게 연결한 드라이브에는 스냅샷/체크포인트를 생성할 수 없습니다.
- 외장 USB 드라이브를 Hyper-V 호스트에 연결합니다(Hyper-V 역할이 설치된 Windows 호스트 또는 무료版 Microsoft Hyper-V Server 모두 가능합니다). 드라이브가 시스템에 인식되고 드라이브 문자가 자동으로 할당됩니다(문자가 할당되지 않았다면 디스크 관리 설정을 먼저 확인하세요).
- 디스크 관리(
diskmgmt.msc) 콘솔을 열고, 대상 드라이브를 마우스 오른쪽 버튼으로 클릭한 뒤(예시에서는 20GB USB 드라이브가 Disk 1) 오프라인(Offline)을 선택합니다.
Windows Server Core나 Hyper-V Server처럼 그래픽 MMC 스냅인이 제한적인 환경에서는 PowerShell의 Storage 모듈로 디스크를 관리할 수 있습니다. 아래 명령으로 호스트의 물리적 디스크 목록을 확인하고 특정 디스크를 오프라인 상태로 전환할 수 있습니다.
Get-Disk
Get-Disk -Number 1 |Set-Disk -IsOffline:$true

- Hyper-V 관리자를 실행하고 USB 드라이브를 연결할 가상 머신의 속성을 엽니다. SCSI 컨트롤러 섹션에서 새 디스크를 추가하되, 실제 디스크(Physical hard disk)임을 지정합니다. 드롭다운 메뉴에서 USB 드라이브를 선택하면 됩니다(예: Disk 1 20.00 Gb Bus 0 Lun 0 Target 1). 참고. SCSI 하드 디스크 추가를 위해 가상 머신을 종료할 필요는 없습니다. SCSI 장치는 드라이브 핫 애드(hot-add)와 핫 리무브(hot-remove)를 지원합니다.

- 이제 Windows 게스트 OS가 설치된 가상 머신에서 호스트의 USB 디스크에 접근하는 방법입니다. 가상 머신 콘솔을 열거나 RDP로 접속한 뒤 게스트 OS에 로그인하고 디스크 관리를 실행합니다. OS가 새 드라이브를 인식하며, 오프라인 상태라면 마우스 오른쪽 버튼을 클릭해 온라인(Online)으로 전환합니다. 초기에는 USB 디스크의 파티션에 드라이브 문자나 탑재 지점이 할당되어 있지 않습니다. 파티션을 마우스 오른쪽 버튼으로 클릭하고 "드라이브 문자 및 경로 변경"을 선택한 후, 사용 가능한 드라이브 문자를 할당하거나 탑재 지점을 지정합니다.

이것으로 설정이 완료되었습니다! 외장 USB 미디어가 Hyper-V 가상 머신에 직접 연결되어 즉시 사용할 수 있습니다.
주의. 데이터 손실을 방지하려면 USB 포트에서 하드 디스크를 물리적으로 분리하기 전에, 가상 머신 내 어떤 응용 프로그램도 해당 디스크에 접근하지 않는지 반드시 확인해야 합니다.
USB 드라이브를 안전하게 제거하려면 Hyper-V 관리자 콘솔을 열고 가상 머신 설정 창으로 이동합니다. SCSI 컨트롤러 섹션에서 제거할 하드 디스크를 선택하고 제거(Remove)를 클릭한 뒤 변경 사항을 저장합니다. 그다음 Hyper-V 호스트의 USB 포트에서 하드 드라이브를 물리적으로 분리하면 됩니다.
향상된 세션 모드로 가상 머신에 USB 장치 리디렉션하기
Windows Server 2012 R2/8.1에 도입된 Hyper-V 버전부터는 향상된 세션 모드(Enhanced Session Mode, ESM)를 사용해 클라이언트 컴퓨터의 거의 모든 USB 장치를 가상 머신으로 전달할 수 있습니다. 연결에는 vmconnect.exe라는 Hyper-V 관리 도구가 사용되며, 이를 통해 가상 머신 콘솔에 접속하고 리디렉션할 USB 장치를 선택할 수 있습니다.
먼저 Hyper-V 서버 설정에서 향상된 세션 모드를 활성화해야 합니다. PowerShell로 간단히 설정할 수 있습니다:
Set-VMHost -EnableEnhancedSessionMode $true
또는 Hyper-V 설정 → 향상된 세션 모드 메뉴에서 GUI로 설정할 수도 있습니다.

설정 후에는 Hyper-V 가상 머신 관리 서비스(vmms)를 재시작합니다.
Get-Service vmms | Restart-Service
VM 설정의 통합 서비스(Integration Services) 섹션에서 게스트 서비스(Guest Services) 옵션도 반드시 활성화해야 합니다.
향상된 세션 모드로 USB 장치를 리디렉션하려면 Hyper-V 콘솔에서 가상 머신을 선택하고 연결(Connect) 버튼을 클릭합니다. 또는 vmconnect.exe 도구(가상 머신 연결)를 직접 실행해 Hyper-V 서버와 가상 머신 이름을 지정할 수도 있습니다. vmconnect는 다양한 명령줄 옵션을 지원하므로, 필요한 옵션이 담긴 배치(batch) 파일을 사용자에게 배포하는 방식도 가능합니다.

VM이 향상된 세션 모드를 지원하면 RDP 연결 속성과 유사한 창이 나타납니다. 옵션 표시(Show Option) → 로컬 리소스(Local Resources) → 로컬 장치 및 리소스 → 추가(More)를 차례로 클릭합니다.

VM으로 리디렉션할 컴퓨터의 USB 장치를 선택합니다. 원하는 장치가 아직 연결되어 있지 않다면 "기타 지원되는 플러그 앤 플레이(PnP) 장치"와 "나중에 연결되는 장치" 옵션을 함께 체크해 두는 것이 좋습니다.

이 설정을 마치면 컴퓨터에 연결되는 모든 USB 장치가 Hyper-V 가상 머신의 콘솔 세션에서 자동으로 사용 가능해집니다.
Hyper-V 향상된 세션 모드의 주요 특징과 제한 사항은 다음과 같습니다:
- 게스트 OS는 Windows만 지원됩니다(Windows 8.1 / Windows Server 2012 R2 이상);
- 가상 머신에 대한 직접 네트워크 접근이 필요 없습니다. 모든 연결은 Hyper-V 호스트를 통해 이루어지며(클라이언트는 TCP 포트 2179로 호스트에 접속), Hyper-V는 VMBus를 통해 VM과 통신합니다;
- 클라이언트 컴퓨터에 Hyper-V 관리자(Hyper-V Manager)가 설치되어 있어야 합니다.
이 방식은 RDP 세션을 통해 로컬 호스트에서 USB 장치를 리디렉션하는 것과 원리가 유사하므로 별도의 설명은 생략하겠습니다. 
한 가지 눈여겨볼 점은, USB 장치를 네트워크 경유로 리디렉션하는 경우(USB over IP 또는 RDP 세션)에는 가상 머신을 다른 호스트로 실시간 마이그레이션한 후(Hyper-V Live Migration / vMotion)에도 USB 키에 대한 접근이 그대로 유지된다는 것입니다.