USB 인터페이스를 가진 외부 물리 장치의 경우 USB 패스스루 기능을 사용하여 VMware Workstation이나 ESXi 서버에서 실행되는 VM에 연결할 수 있습니다. 이 블로그 포스트에서는 ESXi 호스트에서 VMware vSphere에서이 기능을 사용하는 방법 및 USB 장치를 연결하는 요구 사항 및 단계에 대해 다룹니다.
USB 패스스루란 무엇인가?
VMware USB 장치 패스스루는 물리적 ESXi 서버의 USB 포트에 연결된 실제 USB 장치를 가상 머신에 직접 연결된 것처럼 가상 머신에 연결할 수 있는 기능입니다. VMware 패스스루는 ESXi 4.1부터 사용할 수 있는 기능입니다.
ESXi 서버에서 가상 머신의 게스트 운영 체제(OS)로 USB 장치를 패스스루하여 사용하는 이유는 다양합니다. 예를 들어, 최신 Windows OS 버전에 대한 드라이버가 없는 오래된 스캐너나 프린터가 있는 경우가 있습니다. USB 장치가 지원하는 오래된 Windows 버전을 설치하고 이 장치를 가상 머신에 연결할 수 있습니다. 이 기능의 또 다른 사용 사례는 USB 하드 디스크 드라이브에서 가상 머신으로 직접 파일을 고속으로 복사하거나 가상 머신에서 USB 하드 디스크 드라이브로 파일을 복사해야 할 때입니다. 가상 머신에서 하드웨어 USB 라이선스 키로 보호되는 소프트웨어를 사용해야 할 수도 있습니다.
USB 패스스루 작동 방식
USB 패스스루 기능을 사용하기 위해 필요한 주요 구성 요소는 세 가지입니다: 아티프리에이터, USB 컨트롤러 및 물리적 USB 장치입니다.
아티프리에이터는 ESXi 서버에서 독립된 서비스입니다. 아티프리에이터는 물리적 서버에 연결된 물리적 USB 장치를 검색하고 물리 호스트와 가상 머신 간의 USB 장치 트래픽 라우팅을 담당합니다. 한 번에 한 가상 머신만 USB 장치에 액세스할 수 있습니다. 한 가상 머신에 연결된 USB 장치에 대한 액세스는 다른 가상 머신에 대해 차단됩니다. USB 아티프리에이터는 최대 15개의 USB 컨트롤러를 지원합니다(vSphere 7.0). 아티프리에이터 서비스는 ESXi에서 기본적으로 활성화되어 있습니다.
A USB controller used on a physical ESXi server is the controller to which physical USB ports are connected. The physical USB controller works with physical USB devices inserted into the physical USB ports of the server. USB controllers can be onboard (they are also called integrated and are built-in on a chip in a motherboard) or external (implemented as PCI or PCIe cards that are inserted into the appropriate slots on a motherboard of a server). The onboard USB controller acts as a bridge between a USB bus and a PCIe (or PCI) bus. The onboard USB controller is physically connected by the appropriate number of PCIe lanes to a chipset on a motherboard.
A virtual USB controller is an emulated device created especially for a virtual machine running on a hypervisor. A virtual USB controller interacts with a physical USB controller when you passthrough a physical USB device from a physical ESXi server to a guest OS on the VM. Presence of a virtual USB controller in VM configuration is required to use the USB passthrough feature on the VM. A maximum of eight virtual USB controllers can be connected to a VM on an ESXi host. If you need to remove a virtual USB controller from a VM configuration, you have to remove all USB devices connected to that controller first. VMware USB driver is installed in a guest OS after adding a virtual USB controller to VM configuration.
A physical USB device is any USB device that has a USB interface and USB port for being connected to a computer. Maximum 20 USB devices can be connected to a single VM or ESXi host.
USB 표준 및 컨트롤러 모드는 다음과 같습니다:
- USB 2.0 및 USB 1.1 (EHCI+UHCI)
- USB 3.0 (xHCI) VM 하드웨어 버전 8 이상
VMware USB 패스스루 기능을 사용하여 물리적 USB 장치를 가상 머신에 연결한 후에는 게스트 운영 체제에 연결된 USB 장치용 드라이버를 설치해야 할 수 있습니다.
USB 3.0 요구 사항
VMware vSphere 5.5 패치 3부터 ESXi 서버에서 USB 3.0을 사용할 수 있습니다. 이를 위해 VM 구성에서 xHCI USB 컨트롤러가 필요합니다. USB 3.0 패스스루를 사용하려면 다음과 같은 OS 요구 사항이 있습니다: Windows 8.1 이상, Windows Server 2012 R2 이상 또는 Linux 커널 2.6.35 이상 버전을 실행 중인 Linux. VMware vSphere 7.0 이후로 USB 3.1 장치는 최대 속도로 지원됩니다.
USB 패스스루에 대한 제한 사항
USB 패스스루 기능을 사용하기 전에 알아야 할 몇 가지 제한 사항이 있습니다:
- A USB drive cannot be used as a boot drive for a VM.
- USB 드라이브가 ESXi 부팅에 사용된 경우 해당 USB 드라이브를 VM에 연결할 수 없습니다.
- VM에 대해 가상 하드웨어 버전 7 이상이 필요합니다.
일부 USB 장치는 VMware에서 지원되지 않을 수 있습니다:
- USB 허브
- 비동기 데이터 전송을 사용하는 오디오 장치 및 비디오 카메라
- 일부 USB 키보드 및 마우스(VMware 1021345 문서에서 자세한 내용을 확인할 수 있음)
- CCID를 사용하는 일부 스마트 카드는 VM에 연결하기 위해 추가 조정이 필요할 수 있습니다
vMotion은 USB 패스스루 장치가 연결된 VM에 대해 가능합니다. 적절한 VM 구성 및 vMotion 활성화 후에도 USB 장치는 다른 ESXi 호스트로 이동한 후에도 VM에 연결된 상태로 유지됩니다.
USB 패스스루 디스크를 사용하는 VM에 대한 vMotion 제한 사항이 있습니다:
- 분산 전원 관리(DPM)는 지원되지 않습니다. 왜냐하면 ESXi 호스트는 USB 장치를 VM에서 분리하지 않고는 전원 절약을 위해 종료되지 않기 때문입니다(호스트가 DPM에 의해 전원이 꺼지면 USB 장치가 분리됩니다). 이 호스트에서 DPM을 비활성화해야 합니다.
- 장애 허용은 지원되지 않습니다.
- A VM cannot be suspended or powered off (otherwise USB devices are disconnected from a VM and they can be reconnected only after migration of the VM to the initial ESXi server to which USB devices are physically connected). The VM must be manually migrated to the ESXi host with the attached USB device when you need to power on this VM. Linux guests that were resumed can mount USB devices to different mount points after reconnection.
- USB 통과 장치를 사용하는 VM이 있는 ESXi 호스트는 VM 관리 네트워크를 위한 VM 커널 인터페이스 vmk0(매니지먼트 네트워크) 및 TCP 포트 902를 통해 접근할 수 있어야 합니다.
VM에서 핫-추가 기능 및 CPU, 메모리 또는 PCI 장치를 추가하기 전에 USB 장치를 VM에서 분리하십시오. 그렇지 않으면 USB 장치가 자동으로 분리되고, 핫-추가 기능을 사용할 때 일부 데이터가 손실될 수 있습니다. VM을 일시 중단한 다음 VM을 다시 시작하면 USB 장치가 분리되고 다시 VM에 연결됩니다.
ESXi 또는 VMware Workstation에서 실행되는 가상 머신에 부착하기 위한 VMware 가상 USB 드라이브 또는 가상 플래시 드라이브를 생성하는 경우, 가상 플로피 디스크나 CD/DVD 디스크를 장착하는 것과 마찬가지로 현재 이 옵션은 불가능합니다.
VM에 USB 장치 연결 방법
이론에 익숙해진 지금, VMware vSphere에서의 구성을 살펴볼 차례입니다.
- USB 장치를 ESXi 서버의 USB 포트에 삽입하십시오. 제 경우에는 USB 플래시 드라이브를 삽입할 것입니다.
- 그 후 ESXi 명령 줄 인터페이스에서 USB 장치가 연결되었는지 확인할 수 있습니다:
lsusb - 아래 스크린샷에서 볼 수 있듯이, 지금 내 플래시 드라이브가 ESXi 서버에 연결되어 있습니다.
- USB 조정자 서비스가 실행 중이어야 합니다. 다음 명령어로 서비스 상태를 확인할 수 있습니다:
chkconfig usbarbitrator –list - USB 조정자가 중지된 경우 다음 몤령어로 USB 조정자를 시작할 수 있습니다:
/etc/init.d/usbarbitrator start참고: ESXiCLI에 대해 자세히 알아보려면 블로그 게시물을 읽어보세요.
VM은 내 예제에서 vCenter Server에서 관리되는 ESXi 호스트에 있습니다. VM에는 Windows가 게스트 OS로 설치되어 있습니다. VMware vSphere Client를 열고 호스트 및 클러스터로 이동하세요. Navigator 창에서 전원이 꺼진 상태여야 하는 가상 머신을 선택하여 통과 기능을 사용하여 USB 장치에 연결하려면 게스트 OS에 VMware Tools를 설치해야 합니다.
- VM을 선택한 후 작업 > 설정 편집을 클릭합니다.
- 설정 편집 창에서 VM 구성에 USB 컨트롤러가 있는지 확인합니다. USB 컨트롤러가 없는 경우 새 장치 추가 > USB 컨트롤러를 클릭하고 USB 컨트롤러 유형 (USB 2.0 또는 USB 3.0)을 선택합니다.
- 만약 USB 컨트롤러가 있다면 ESXi 서버에 연결된 USB 장치를 가상 머신에 추가해야 합니다. 새 장치 추가 > 호스트 USB 장치
- A new string is added to the VM configuration. In the New USB Host device string, select one USB device that you want to connect to the VM. Now I have two USB flash drives attached to my physical ESXi server, and I’m connecting the Verbatim Flash drive to my VM (Verbatim product 0x0302).
를 클릭하세요. vMotion 지원을 활성화해야 하는 경우 새 호스트 USB 장치를 확장하고 “장치 연결 시 vMotion 지원” 확인란을 선택하세요. vMotion 요구 사항과 제한 사항을 고려하세요. 구성을 저장하고 이 창을 닫으려면 확인을 클릭하세요.
- 가상 머신을 시작하세요. 게스트 OS가 로드된 후 USB 플래시 드라이브가 초기화되고 설치될 때까지 기다리세요. 그런 다음 Windows 장치 관리자를 엽니다. 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴에서 관리를 클릭하세요. 컴퓨터 관리 창에서 장치 관리자를 클릭하고 디스크 드라이브 섹션을 확장하세요 (USB 플래시 드라이브를 연결했기 때문에 이 장치가 이 범주의 장치에 표시됩니다). VMware USB 통과 기능을 사용하여 가상 머신에 연결된 USB 플래시 드라이브의 이름인 Verbatim USB 장치가 표시됩니다.
- 디스크 관리를 컴퓨터 관리 창에서 열고, 디스크 드라이브가 USB 플래시 드라이브에 할당되었는지 확인하십시오. 제 경우에는 모든 것이 올바르며, 이제 USB 플래시 드라이브의 데이터를 게스트 Windows의 VM의 가상 디스크로 복사하거나 반대로 할 수 있습니다.
VMware PCI Passthrough
VMware USB 통과 기능을 사용하여 VM에 연결하려는 USB 장치가 VMware에서 지원되지 않는 경우, PCI 통과 기능을 사용하고 PCI 인터페이스가 있는 전체 물리적 USB 컨트롤러를 VM에 연결해 볼 수 있습니다.
ESXi 서버에 PCI 슬롯에 삽입된 USB 컨트롤러가 있는 경우,이 PCI 장치를 가상 머신에 통과시킬 수 있습니다. VMware PCI 통과는 VMDirectPass라고도 불립니다. 이 방법은 USB 통과보다는 불편하지만 작업을 완료하는 데 도움이 될 수 있습니다.
요구 사항
Intel Directed I/O 또는 AMD I/O 가상화 기술 (AMD IOMMU)은 서버 하드웨어에서 지원되어야 하며 UEFI/BIOS에서 활성화되어야 합니다. 서버에 USB 컨트롤러가 하나만 있는 경우, 물리적 ESXi 서버에서 사용하는 USB 장치와의 연결을 잃지 않기 위해 추가 USB 컨트롤러를 연결해야 합니다.
제한 사항:
- A VM cannot be suspended.
- A VM cannot be migrated to other ESXi hosts with vMotion.
- VM 스냅 샷은 지원되지 않습니다.
이제 USB 장치를 VM에 연결하는 과정을 살펴보겠습니다. 이 과정에서는 PCI passthrough를 사용하여 USB 장치가 연결된 전체 USB 컨트롤러를 VM에 연결합니다.
- 서버에 설치된 여러 USB 컨트롤러 중 연결된 USB 장치와 USB 컨트롤러를 식별하려면 다음 명령어를 사용하세요:
lsusb -v | grep -e Bus -e iSerial - USB 컨트롤러에 연결된 USB 장치의 이름을 포함하는 문자열을 찾고 컨트롤러의 ID를 식별합니다(예: bus002).
- USB 장치를 ESXi 서버에 연결할 때 VMkernel 로그를 확인할 수 있습니다:
tail -f /var/log/vmkernel.log | grep -i USB - VMware vSphere Client를 열고 호스트 및 클러스터로 이동하세요.
- USB 장치를 연결해야 하는 VM이 있는 ESXi 호스트를 선택하세요.
- 구성 탭으로 이동한 후 PCI 장치를 하드웨어 섹션에서 선택하세요.
- 이전에 검색한 ID를 사용하여 PCI 장치 목록에서 필요한 USB 컨트롤러를 찾아 선택하세요.
- 선택한 컨트롤러의 상태가 사용 가능으로 변경되어야 합니다.
- 확인을 눌러 설정을 저장하세요.
- 변경 사항이 적용되도록 ESXi 호스트를 재부팅하세요.
- VM이 전원이 꺼져 있는지 확인한 후 VM 설정으로 이동하여 새 장치 추가 > PCI 장치 > 추가를 클릭하세요. 올바른 ID를 사용하여 드롭다운 메뉴에서 USB 컨트롤러를 선택하세요.
- 가상 머신을 켭니다. 게스트 OS에서 장치를 확인합니다. VM에 Windows가 설치되어 있는 경우 장치 관리자를 열고 컨트롤러 및 저장 장치를 확인하십시오.
USB 스마트 카드 연결
CCID의 적절한 클래스를 가진 일부 USB 장치는 기본적으로 VM에 연결되지 않을 수 있습니다. “이 가상 머신에 ‘경로:0/1/6/1’을(를) 연결할 수 없습니다. 장치를 찾을 수 없습니다.”라는 오류 메시지가 표시됩니다. 로그에서 다음 메시지를 볼 수 있습니다:
(vmx-vcpu-0) 사용 전에 인터페이스 0을(를) 요청하지 않았습니다.
PCSCD는 스마트 카드 리더를 제어하는 ESXi 데몬입니다. ESXi 서버에서 스마트 카드가 필요하기 때문에 가상 머신에서 USB 스마트 카드에 대한 액세스가 비활성화됩니다. 따라서 기본 구성에서 USB 스마트 카드에 대한 USB 통과를 사용할 수 없습니다. USB 스마트 카드에 대한 USB 통과를 활성화하려면 ESXi 호스트의 구성을 편집해야 합니다.
- 가상 머신을 중지합니다. 가상 머신 설정을 열고 VM 옵션 탭을 선택하고 구성 편집을 클릭합니다.
- 구성 매개변수 창에서 구성 매개변수 추가를 클릭합니다.
대안으로, SSH 클라이언트를 사용하여 ESXi 콘솔에 연결하여 가상 머신의 VMX 구성 파일을 명령줄 인터페이스에서 편집할 수 있습니다. - 이 매개변수가 없는 경우 VM 구성에 이 줄을 편집하거나 추가합니다:
usb.generic.allowCCID = “TRUE” - VM 구성을 저장합니다.
- ESXi 명령줄에서 다음 명령을 사용하여 PCSCD 서비스를 중지합니다:
sudo /etc/init.d/pcscd stop - PCSCD 서비스가 실행되지 않는지 확인합니다:
ps | grep pcscd - VM을 켜고 장치를 확인하여 USB 스마트 카드 리더기가 이제 VM에 연결되었는지 확인합니다.
결론
물리적 ESXi 서버의 USB 포트에 연결된 다양한 장치를 가상 머신에 직접 연결하여 VM의 게스트 운영 체제에서 이러한 USB 장치를 일반 물리적 컴퓨터에서 사용하는 것과 동일하게 사용할 수 있습니다. 또한 vMotion을 사용하여 부모 ESXi 호스트에 연결된 외부 USB 장치를 사용하여 가상 머신을 다른 호스트로 이동할 수 있습니다. 일부 제한 사항이 있지만 VMware USB 통과 기능은 다양한 상황에서 더 많은 기능과 유연성을 제공합니다.
VMware VM 백업은 VMware vSphere를 사용하는 사람들에게 중요합니다. NAKIVO Backup & Replication을 다운로드하여 이 보편적인 데이터 보호 솔루션을 사용하여 환경에서 VMware vSphere VM 및 기타 데이터를 보호해 보십시오.
Source:
https://www.nakivo.com/blog/how-to-use-usb-devices-with-a-vmware-vsphere-virtual-machine/