Cú điện thoại lúc 2 giờ sáng và bài toán USB Token
2 giờ sáng, chuông điện thoại đổ dồn dập. Đầu dây bên kia là giọng hốt hoảng của trưởng nhóm kế toán: cổng hóa đơn điện tử không thể xuất chứng từ thuế. Màn hình báo đúng một dòng đỏ lòm: “No smart card / USB Token detected”.
Nguyên nhân rất quen thuộc. Chiều hôm trước, đội hạ tầng vừa chuyển máy chủ kế toán từ chiếc PC cũ sang cụm ảo hóa VMware ESXi 7.0 trên con Dell PowerEdge R740. Kỹ sư cắm chiếc USB Token VNPT-CA vào cổng USB 3.0 phía sau server. Đèn LED trên token vẫn sáng xanh. Tuy nhiên, Device Manager trên máy ảo Windows Server 2022 lại trống trơn.
Tình huống này xảy ra như cơm bữa với anh em quản trị hệ thống. Ảo hóa rất tiện, nhưng doanh nghiệp Việt Nam luôn phụ thuộc thiết bị vật lý: token thuế Viettel, chữ ký số MISA, token nộp thuế hải quan hay ổ cứng WD 4TB backup nguội. Nếu không nắm vững cơ chế Host USB Passthrough, bạn sẽ mất hàng giờ loay hoay trong vô vọng.
Cơ chế hoạt động của Host USB Passthrough trên VMware ESXi
Để máy ảo (Guest OS) nhìn thấy thiết bị USB cắm ở máy chủ vật lý (Host), ESXi sử dụng cơ chế Host USB Passthrough. Ba thành phần sau sẽ phối hợp xử lý:
- Virtual USB Controller: Bộ điều khiển USB ảo gắn vào máy ảo. Bạn có thể chọn chuẩn USB 2.0 (EHCI+UHCI) hoặc USB 3.0/3.1 (xHCI).
- USB Arbitrator: Tiến trình chạy ngầm
usbarbitratortrên ESXi Host. Nó quét các cổng USB vật lý, phân loại thiết bị và định tuyến tín hiệu đến đúng máy ảo đang đăng ký. - Host USB Device: Thiết bị vật lý thực tế được map 1-1 trực tiếp vào máy ảo.
So với Proxmox VE cho phép pass thiết bị theo port ID cố định, ESXi quản lý chặt hơn thông qua tiến trình Arbitrator. Khi Arbitrator bị lỗi hoặc xung đột driver, kết nối sẽ đứt gãy ngay lập tức.
Hai giới hạn kỹ thuật bạn buộc phải nhớ:
- Không thể chia sẻ: Một USB vật lý chỉ gắn được vào một máy ảo duy nhất tại một thời điểm.
- Hạn chế vMotion: Nếu bật vMotion khi đang cắm USB, bạn phải cấu hình mạng giữ session qua vSphere vMotion Network. Tuy vậy, rủi ro văng kết nối giữa chừng vẫn khá cao.
Các bước gán USB Token và ổ cứng ngoài vào máy ảo
Bước 1: Bật SSH và kiểm tra nhận diện phần cứng
Đừng vội chỉnh trên giao diện web. Hãy xác nhận xem nhân ESXi đã nhận phần cứng hay chưa. Truy cập ESXi Host Client, vào Manage > Services > bật TSM-SSH. Mở terminal và SSH vào server bằng tài khoản root.
Chạy lệnh kiểm tra danh sách thiết bị:
lsusb
# Hoặc kiểm tra chi tiết trạng thái passthrough:
esxcli hardware usb passthrough device list
Màn hình sẽ hiển thị Vendor ID (VID) và Product ID (PID). Ví dụ thực tế:
Bus 001 Device 004: ID 096e:0405 Feitian Technologies, Inc. ePass2003
Bus 002 Device 003: ID 1058:25a2 Western Digital Technologies, Inc. Elements Portable 4TB
Thấy dòng thông tin thiết bị xuất hiện? Phần cứng và cổng cắm vật lý hoàn toàn bình thường. Bạn có thể chuyển sang bước kế tiếp.
Bước 2: Kiểm tra dịch vụ USB Arbitrator
Nhiều trường hợp phần cứng có nhận nhưng giao diện Web Client không hiển thị mục chọn USB. Thủ phạm 90% là do tiến trình usbarbitrator bị treo.
Kiểm tra trạng thái dịch vụ:
/etc/init.d/usbarbitrator status
Nếu terminal trả về kết quả “usbarbitrator is not running”, kích hoạt lại ngay:
/etc/init.d/usbarbitrator start
Bước 3: Thêm USB Controller vào máy ảo
Đăng nhập vào VMware Host Client hoặc vCenter Server:
- Tắt máy ảo nếu cấu hình không bật Hot-plug (khuyến nghị tắt máy để cấu hình ổn định nhất).
- Nhấp chuột phải vào VM > chọn Edit settings.
- Nhấn Add other device > chọn USB controller (nếu danh sách chưa có).
- Chọn đúng chuẩn controller:
- USB Token (Viettel, VNPT, FPT, MISA): Chọn USB 2.0. Các dòng token chữ ký số dùng chip Feitian hoặc SafeNet đời cũ hoạt động thiếu ổn định trên chuẩn xHCI 3.0.
- Ổ cứng di động, SSD cắm ngoài: Chọn USB 3.0 / 3.1. Chuẩn này cho tốc độ sao lưu từ 110 – 140 MB/s, thay vì lẹt đẹt 30 MB/s của USB 2.0.
- Nhấn Save.
Bước 4: Gán Host USB Device
Khi đã có controller, việc map thiết bị diễn ra rất nhanh:
- Trong cửa sổ Edit settings, nhấn Add other device > chọn USB device (Host USB device).
- Ở menu vừa tạo, nhấp chọn đúng tên thiết bị phần cứng (ví dụ: Feitian ePass2003 hoặc Western Digital Elements).
- Nhấn Save và bật nguồn máy ảo.
Bước 5: Xử lý sự cố thường gặp (Troubleshooting)
Sự cố 1: Ổ cứng ngoài bị mờ (grayed out), không cho chọn passthrough
Hiện tượng này do ESXi tự động chiếm dụng (claim) các ổ USB Mass Storage làm VMFS Datastore. Khi driver lưu trữ của host đã khóa thiết bị, USB Arbitrator không thể can thiệp.
Cách xử lý: Chuyển driver lưu trữ USB sang chế độ nhường quyền cho Arbitrator. Chạy cụm lệnh sau qua console SSH:
# Dừng arbitrator tạm thời
/etc/init.d/usbarbitrator stop
# Tắt cơ chế chiếm dụng USB storage của ESXi
esxcli system settings advanced set -o /Disk/PassthroughUSBStorage -i 1
# Khởi động lại arbitrator
/etc/init.d/usbarbitrator start
Sau khi chạy xong lệnh, mở lại Web Client. Tùy chọn gán ổ cứng sẽ sáng lên bình thường.
Sự cố 2: Device Manager đã nhận Smart Card nhưng phần mềm kế toán không tìm thấy chứng thư số
Lỗi này nằm ở hệ điều hành Windows Server chứ không phải do ESXi. Theo mặc định, dịch vụ Smart Card trên Windows Server thường ở trạng thái tắt để tối ưu tài nguyên.
Khắc phục trên máy ảo:
- Nhấn tổ hợp phím
Windows + R, gõservices.mscvà nhấn Enter. - Tìm dịch vụ tên Smart Card (tên dịch vụ:
SCardSvr). - Nhấp đúp chuột, đổi Startup type thành Automatic.
- Bấm Start rồi nhấn OK.
Mở lại phần mềm ký số (MISA SME, TaxOnline, HTKK). Chứng thư số sẽ xuất hiện ngay lập tức.
Tóm lại
Host USB Passthrough trên VMware ESXi chỉ gồm ba mắt xích: cổng cắm vật lý, dịch vụ usbarbitrator trên host và USB controller trong máy ảo. Nắm chắc mối liên hệ này giúp bạn loại trừ lỗi rất nhanh. Khi phát sinh sự cố, hãy bật SSH kiểm tra lệnh lsusb trước tiên thay vì mất thời gian rút cắm cáp liên tục trong phòng server lạnh buốt.

