本文最后更新于:2024年5月7日 下午
虚拟机是隔绝系统又享受多重快乐的工具,但过于隔绝导致虚拟机使用宿主机硬件时不是很方便,本文记录虚拟机直通宿主机硬盘的操作方法。
背景
由于走上了把NAS装在KVM虚拟机里的道路,为了速度和可靠性以及OMV的可用性,不得不研究KVM硬盘直通的方法。
- 宿主机操作系统 Ubuntu 20.04
- KVM 虚拟机操作系统 debian 9 (Windows 也可以)
- 宿主机装有 6T 的物理磁盘,需要直通给虚拟机系统使用
操作流程
确定设备
1 2 3 4 5 6 7 8 9 10 11
| $ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda xfs VS1 9a2c7b09-cc65-400d-b3c0-fc7709c8b3fd 5.4T 1% /disk/nas1 sdb xfs disk2 3bbbdabc-438e-46be-b2d7-b01f09baa8de 5.4T 1% /disk/nas2 sdc ├─sdc1 vfat 8256-9294 505.7M 1% /boot/efi ├─sdc2 xfs e3be39bc-a3d9-4a83-886f-af706c070147 525.9M 28% /boot └─sdc3 LVM2_member XqJkfT-9pQk-SxcV-FpXV-D53R-8DNP-LKOpi2 ├─ubuntu--vg-root xfs 7744d87a-3c9f-418e-b47f-4e23d4432d53 93.1G 15% / └─ubuntu--vg-swap_1 swap 9f90bf3a-e5e0-43a7-9c59-5a08a37ade7e [SWAP]
|
我需要挂载的是 sda
sdb
两块磁盘,这里以其中一块为例
打开虚拟机管理器
添加设备
- 选择
存储
-> 自定义存储
-> 磁盘设备
-> SATA
(下拉菜单有 bug 的话可以使用方向键调整选项) -> 管理
- 选择
本地浏览
-> 找到 /dev/sdb
设备文件
此时可以查看一下旁边的 XML 配置信息
本质上刚刚的操作就是添加了一段 XML 在虚拟机的配置文件当中
测试
1 2 3 4 5 6 7 8 9
| $ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda xfs VS1 9a2c7b09-cc65-400d-b3c0-fc7709c8b3fd sdb xfs disk2 3bbbdabc-438e-46be-b2d7-b01f09baa8de sr0 vda |-vda1 ext4 d15943f9-07e3-4b0a-a9c7-21c25583fc7b 24.6G 8% / |-vda2 `-vda5 swap bb586ff3-7d32-4d3b-b3fb-6e72ddc9edd8 [SWAP]
|
后记
- 事实上网上大多数方法讲的是直接编辑虚拟机配置文件,此方法使用图形界面,新手容易操作
- 在宿主机中输入命令:
- 可以看到指定虚拟机的配置 xml 文件
- 我经过上述操作后在配置文件中多了两个块:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/sda'/> <target dev='sdb' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/sdb'/> <target dev='sdc' bus='sata'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk>
|
- 也就是说,如果直接在xml中添加上述信息可以达到相同的效果,供大家参考
参考资料
文章链接:
https://www.zywvvd.com/notes/system/linux/kvm/kmv-sata-through/kmv-sata-through/