Cập nhật 10/2024: bổ sung thêm phần Passthrough HDD Serial Number và clip Youtube hướng dẫn
Sau khi cài đặt thành công máy ảo XPEnology trên Proxmox, mình tiếp tục thực hiện việc passthrough ổ đĩa cứng để máy ảo XPEnology có thể truy xuất trực tiếp, không phải thông qua sự quản lý của Proxmox.
Dưới đây là hướng dẫn mình thực hiện cho máy ảo XPEnology. Bạn có thể thực hiện cho bất kỳ máy ảo KVM nào khác trên nền tảng Proxmox.
1. Passthourgh ổ cứng gắn ngoài (External HDD)
Đối với ổ cứng gắn ngoài (External HDD) cắm vào máy chủ qua cổng USB, mình thao tác y hệt như cách thiết lập USB Passthrough đã chia sẻ trong bài viết trước đây.
https://thuanbui.me/proxmox-usb-passthrough
Ví dụ như dưới đây là ổ cứng gắn ngoài Portable HDD được cấu hình Passthrough vào máy ảo .

2. Passthourgh ổ cứng gắn trong
Đối với ổ cứng gắn trong (Interal HDD) kết nối thông qua cổng SATA / NVME, mình cần phải SSH vào console của Proxmox để thực hiện qua dòng lệnh.
Sử dụng lệnh sau để tìm các ổ cứng đang có trên máy chủ Proxmox
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'Kết quả hiện ra như dưới đây.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT DEVICE-ID(S)sda 8:0 0 465.8G 0 disk /dev/disk/by-id/ata-TOSHIBA_MQ01ABF050M_X66BP0UWT /dev/disk/by-id/wwn-0x5000039752682108nvme0n1 259:0 0 953.9G 0 disk /dev/disk/by-id/nvme-eui.002538ba71be0f6a /dev/disk/by-id/nvme-SAMSUNG_MZVLW1T0HMLH-000L7_S35ANX0JA08970Mình muốn Passthrough ổ cứng TOSHIBA (465.8G) vào máy ảo XPENology, ghi lại id của nó: ata-TOSHIBA_MQ01ABF050M_X66BP0UWT.
Để passthrough ổ cứng này vào máy ảo, sử dụng lệnh qm set <vmid> [OPTIONS]
qm set 126 -sata3 /dev/disk/by-id/ata-TOSHIBA_MQ01ABF050M_X66BP0UWTupdate VM 126: -sata3 /dev/disk/by-id/ata-TOSHIBA_MQ01ABF050M_X66BP0UWT-
126: ID của máy ảo XPENology -
-sata3: kết nối vào máy ảo thông qua chuẩn SATA. Nếu cần passthrough nhiều ổ đĩa, cần phải đổi thành-sata4,-sata5,… -
/dev/disk/by-id/ata-TOSHIBA_MQ01ABF050M_X66BP0UWT: id của ổ cứng cần Passthrough
Quay lại giao diện Proxmox, truy cập vào phần Hardware của máy ảo XPENology, danh sách đã hiện ra thêm Hard Disk (sata3).

Truy cập vào máy ảo, ra lệnh Shutdown tắt máy.
3. Passthrough HDD Serial Number
Do Synology nhận diện ổ cứng theo số Serial Number, nên bắt buộc phải bổ sung thêm bước Passthrough HDD Serial Number vào Synology.
Cài đặt lshw để kiểm tra Serial Number của ổ cứng
# Install lshwapt install lshwTìm Serial Number bằng lệnh
lshw -C diskKết quả trả về sẽ thấy dòng serial: WXH… Đây chính là Serial Number của HDD
*-disk description: ATA Disk product: WDC WD10SPZX-75Z vendor: Western Digital physical id: 0.0.0 bus info: scsi@0:0.0.0 logical name: /dev/sda version: 1A03 serial: WXH1AC8EZTTH size: 931GiB (1TB) capabilities: partitioned partitioned:dos configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=d7c8623eTruy cập vào Shell của Proxmox, chỉnh sửa file cấu hình của máy ảo
nano /etc/pve/qemu-server/100.confThay 100 bằng id của máy ảo XPEnology đang chạy
Tìm đến dòng khai báo HDD Passthrough, và bổ sung thêm thông số Serial vào, tương tự như bên dưới.
sata3: /dev/disk/by-id/ata-WDC_WD10SPZX-75Z10T2_WXH1AC8EZTTH,size=976762584K,serial=WXH1AC8EZTTH4. Hoàn thành
Dưới đây là thành quả của mình sau khi Passthrough HDD từ Proxmox vào máy ảo XPEnnology:1 USB HDD và 1 SATA HDD hoạt động ngon lành trên máy ảo XPEnology.


Với cách passthrough HDD kèm serial number như hướng dẫn ở trên, bạn có thể detach HDD ra khỏi máy ảo và sau đó attach vào 1 máy ảo khác và thực hiện migration mà không lo bị mất dữ liệu. Mình đã test với 1 HDD SATA, và mọi thứ hoạt động bình thường.
Tham khảo: https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM), https://dannyda.com/2020/08/26/how-to-passthrough-hdd-ssd-physical-disks-to-vm-on-proxmox-vepve/