KVM 硬盘直通操作方法

2022-08-06 14:13:02 浏览数 (1)

虚拟机是隔绝系统又享受多重快乐的工具,但过于隔绝导致虚拟机使用宿主机硬件时不是很方便,本文记录虚拟机直通宿主机硬盘的操作方法。

背景

由于走上了把NAS装在KVM虚拟机里的道路,为了速度和可靠性以及OMV的可用性,不得不研究KVM硬盘直通的方法。

  • 宿主机操作系统 Ubuntu 20.04
  • KVM 虚拟机操作系统 debian 9 (Windows 也可以)
  • 宿主机装有 6T 的物理磁盘,需要直通给虚拟机系统使用

操作流程

确定设备
  • 首先需要确定当前想要挂载的磁盘
代码语言:javascript复制
lsblk -f
代码语言:javascript复制
$ 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 两块磁盘,这里以其中一块为例

打开虚拟机管理器
  • 关闭虚拟机
  • 打开虚拟机管理器
代码语言:javascript复制
virt-manager
  • 打开要直通的虚拟机
添加设备
  • 点击蓝色叹号 -> 添加硬件
  • 选择存储 -> 自定义存储 -> 磁盘设备 -> SATA (下拉菜单有 bug 的话可以使用方向键调整选项) -> 管理
  • 选择 本地浏览 -> 找到 /dev/sdb 设备文件

此时可以查看一下旁边的 XML 配置信息

本质上刚刚的操作就是添加了一段 XML 在虚拟机的配置文件当中

  • 单击完成,可以看到用这个方法我添加了两块硬盘

测试

  • 开启虚拟机
  • 查看虚拟机磁盘设备信息
代码语言:javascript复制
lsblk -f
代码语言:javascript复制
$ 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]
  • 其中 sda sdb 为我直通的磁盘

后记

  • 事实上网上大多数方法讲的是直接编辑虚拟机配置文件,此方法使用图形界面,新手容易操作
  • 在宿主机中输入命令:
代码语言:javascript复制
virsh edit kvm-name

  • 可以看到指定虚拟机的配置 xml 文件
  • 我经过上述操作后在配置文件中多了两个块:
代码语言:javascript复制
<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://mp.weixin.qq.com/s/OdjG2OdeZhOYq5GEEyzTjQ

0 人点赞