• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |
花生壳

PVE建黑QNAP虚拟机的一个新思路---硬件直通SATA控制器

威联通 QNAP  / 教程分享  / 只看大图  / 正序浏览   © 著作权归作者本人所有

#楼主# 2021-6-4 14:37

跳转到指定楼层
本帖最后由 jimmyUC 于 2021-6-6 11:27 编辑

本人刚刚开始玩黑Q, 扫荡论坛, 发现有关黑Q虚拟机的建立方法基本都是虚拟磁盘--IDE0 这样的思路来建。
然而这样的方法似乎不是真正好用的虚拟机黑Q, IDE 接口受限, 总共就2个总线, 可接主从两个设备, 一共就4个盘。
于是我就用手里已经建好的PVE 虚拟机服务器, 首先尝试了下直通磁盘至虚拟机的方式, 注意与正常实体黑Q机用牛年大礼包建立model.conf的要点我就不重复了, 大家可以自己在论坛教程里找到答案, 这里只谈PVE虚拟机建立:
PVE 版本 6.3.6 , 系统硬件是 ASUS Strix B250I 主板, CPU i3-8100T, 16G DDR4, machine type : Q35 (注意这个重要)!我的思路是, 建一个虚拟磁盘, 虚拟控制器是IDE0, 大小2G, 作为这个QNAP虚拟机的启动磁盘, 用一个早就组好的牛年大礼包U盘启动, 然后
qm set 105 --sata0 /dev/disk/by-id/ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E1YTKUK2
直通硬盘去虚拟机,
启动大礼包U盘, 进入tiny-core 10.1系统
嗯......立马碰到了问题,
lspci.JPG

从ls /dev/disk/by-path 和 lspci -vtnn的结果可以看出, 这个直通的硬盘被挂在了一个虚拟SATA控制器下,但PVE虚拟机程序把这个SATA 控制器加上其他Virtro设备比如网卡, Ballon 都放在了同一个PCI Bus bridge下, 所以Virto SATA Controller的总线地址就变成B0607:F0.
lspcivtnn.JPG
我写QNAP model.conf的经验是[system disk X] 所在的dev bus 地址最好是B00:开头, 否则就难以被认出, 当然, 有大佬在关于黑qnap model里各种硬件写法的探讨(抛砖引玉) 一文中使用dev_bus_bridge 来指定 PCI bridge下的设定方法, PVE的虚拟机这种挂载方式更麻烦, 上图中是在PCI Bridge 00:1e:00后面 有06~09:00 4条总线, 而Virto SATA/Ballon/Virto net 都是挂在06:00 下面的第二层桥接, 我是完全不知道该怎么写

我的第一个解决办法是改machine type:分析目前的虚拟机结构, 不知道为啥PVE的Q35 机型中, IDE 硬盘实际是接在了Q35原生的SATA控制器上, 即图中PCI设备地址00:1F.2的那个SATA controller, 这造成我用by-id方式直通SATA磁盘需要KVM建立新的一个SATA控制器。 那么用比Q35更老的机型呢?  于是我把机型设到另一个芯片组型号i440fx, 重新进入TingCore 系统启动, 这下lspci 结果显示, i440fx 芯片组有一个IDE 控制器, 一个SATA控制器, 两个控制器都是i440fx 原生的设备地址: IDE 00:01.1  SATA 00:07.0   
i440_lspci.JPG


这就方便了, 直接在model.conf里写就好, IDE 盘用来启动, 所以我要在Boot Enclosure 写一下:
  1. <blockquote>[Boot Enclosure]
复制代码

这样就可以直通多个SATA 实体硬盘, 摆脱IDE primary/secondary的讨厌限制, 基本发挥SATA 硬盘的速度了。 不过i440fx的构型,芯片组里没有PCIe port, 也就不支持PCIe, 只支持PCI模式设备访问,  如果在i440fx 下直通nvme SSD, 会成为一个PCI设备, 由于没有PCIe支持, nvme 不可用
i440_pcionly.JPG


第二个办法是干脆直通整个SATA 控制器:

SATAvtd.JPG

顺便, 把一块NVMe也直通了

NVvtd.JPG
再次进入TinyCore 系统, 执行lspci, 可以看到一个200 Series PCH SATA Controller, 总线地址 01:00:0; 一个三星SM961/PM961 Nvme SSD, 总线02:00:0
tvd1.JPG
如果我们继续 lspci -vtnn, 那么可以看到其实这两个设备都是挂在00:1C:0的虚拟机PCIe Bridge下, 直通的B250 SATA controller 在00:1C:0, 三星960Pro  SSD在 00:1C:1 。
tvd2.JPG
如果你仔细读过论坛文章 关于黑qnap model里各种硬件写法的探讨(抛砖引玉), 那么就应该知道System Disk部分该怎么写了。 我的model.conf里这部分的写法如下, 注意我还挂了一个100G的虚拟磁盘, 为了避免虚拟SATA 控制器不被model.conf认出的尴尬, 我挂的IDE, 设备地址是00:1F.2, 名称是SATA controller原因开头已经说过了。 这个我作为系统盘, 映射成了System Disk1, B250I 直通的SATA控制器, 映射成了System Disk2-5。
  1. [micxp_gzhmm]
  2. <div class="blockcode"><blockquote>[System Disk 1]
  3. DEV_BUS = B00:D31:F2
  4. DEV_PORT = 1
  5. [System Disk 2]
  6. DEV_BUS = B00:D28:F0
  7. DEV_PORT = 2
  8. [System Disk 3]
  9. DEV_BUS = B00:D28:F0
  10. DEV_PORT = 3
  11. [System Disk 4]
  12. DEV_BUS = B00:D28:F0
  13. DEV_PORT = 4
  14. [System Disk 5]
  15. DEV_BUS = B00:D28:F0
  16. DEV_PORT = 5
复制代码
还有System Disk 6,  是nvme SSD:
  1. [System Disk 6]
  2. DISK_FORM_TYPE = PD_FORM_M_2_PCIE
  3. BUS_TYPE = NVME
  4. DISK_DRV_TYPE = M_2
  5. DEV_BUS = B00:D28:F1
  6. DEV_PORT = 0
  7. PCI_SWITCH_PORT = 0
  8. SLOT_NAME = M.2 SSD 1
复制代码
[/micxp_gzhmm]

呵呵, 可能有人要问, 那么B0031:F2 这个控制器的DEV_PORT0 去哪里了? 呵呵, 还记得用来做启动盘的2G 虚拟磁盘吗? 也是映射成 IDE, 注意IDE总线作为老总线有Primary/Secondary 之分, PVE在虚拟磁盘映射成IDE时 , 规矩似乎是偶数号码和奇数号码不能同时映射, 所以我把2G 启动盘映射到IDE0, 100G QNAP 系统盘映射到IDE2.  但是, 这里有个很晕的"但是",  PVE 虚拟机在把IDE 硬盘在Q35 type 实现时 , 挂到了ICH9 SATA controller上, 即上图的B0031:F2, SATA 控制器没有什么Primary/Secondary的限制, 所以, IDE2 变成了SATA1......嗯 , 有点绕。所以理论上用磁盘直通的方式, qm set 105 --IDE2 /dev/disk/by-id/ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E1YTKUK2 这样的命令, 也可以挂载整个硬盘, 只是我不喜欢这么用而已。
绕回来, 既然2G 的IDE0 只是来启动, 不用写成SystemDisk,  只在Boot Enclosure 内指定就好, 这样这个盘在QTS 里不可见, 可以避免误操作破坏启动盘。
代码如下
  1. [Boot Enclosure]
  2. VENDOR = QNAP
  3. MODEL = BOOT
  4. MAX_DISK_NUM = 1
  5. DISK_DRV_TYPE = ATA
  6. [Boot Disk 1]
  7. DEV_BUS = B00:D31:F2
  8. DEV_PORT = 0
复制代码

所以最后在整个PVE VM的Hardware 部分, 我的设定如下图, 整个主板SATA控制器都直通到QNAP虚拟机的好处是很多的, QTS里可以直接看到硬盘的温度,寿命等SMART信息; 硬盘可以在QTS里按QTS的规则休眠唤醒(qm set 命令方式直通单个磁盘做不到);整个磁盘组的速度也比用虚拟磁盘快, 这对我这样用万兆网卡搭建了局域网的还是很有用的
VM_HW.JPG
最后的最后, 哪位大哥可以发一个r-MT 大大在威联通Virtualization Station虚拟机工作站补丁  一帖中给出的虚拟机直通补丁文件? 原链接的百度盘分享过期了  跪求!


似乎不放隐藏, 连看的人都没有

那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

0

精华

89

回帖

946

积分

入门用户

Rank: 1

云币
0
贡献
48
活跃
658
精华
0
zml1985 发表于 2023-11-8 18:49 来自 中国西藏日喀则
请教下, PVE下的内存怎么写,  启动盘查看  lspci 内存控制器换算过来是这个
  1. [System I2C]
  2. DEV_BUS = B00:D31:F4
  3. DEV_PORT = 0
复制代码
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2023-9-26 10:08 来自 中国江苏南京
benzking 发表于 2023-8-15 11:01
大佬,virtio网卡是怎么写model,还是要怎样处理,

不用处理, 在laojifuli_patch中加载virtio驱动就好:
没法copy给你, m.i.s.c 和 n.e.t都是敏感词, 不知道这样屏蔽还怎么交流技术
回复 支持 反对 印象

使用道具 举报

0

精华

26

回帖

273

积分

入门用户

Rank: 1

云币
0
贡献
2
活跃
249
精华
0
benzking 发表于 2023-8-15 11:01 来自 中国广东佛山
大佬,virtio网卡是怎么写model,还是要怎样处理,

点评

不用处理, 在laojifuli_patch中加载virtio驱动就好: 没法copy给你, m.i.s.c 和 n.e.t都是敏感词, 不知道这样屏蔽还怎么交流技术  详情 回复 发表于 2023-9-26 10:08
回复 支持 反对 印象

使用道具 举报

0

精华

22

回帖

155

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
144
精华
0
wenlj163 发表于 2022-7-18 21:53 来自 中国
没想到这个帖子居然这么少人讨论,玩得人太少了
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2022-4-7 22:09 来自 中国北京
s2k7 发表于 2022-2-10 13:24
升级到QTS5.0以后需要如下修改。

#insmod virtio module

有没有人QNAP 直通核显成功, 并能HD station显示的?
回复 支持 反对 印象

使用道具 举报

0

精华

97

回帖

2288

积分

搞机大神

Rank: 3Rank: 3

云币
0
贡献
86
活跃
1807
精华
0
s2k7 发表于 2022-2-10 13:24 来自 日本
本帖最后由 s2k7 于 2022-2-11 20:14 编辑
jimmyUC 发表于 2021-6-25 23:49
贴链接老是出问题, 直接帖答案吧
#insmod virtio module
[ -f /lib/modules/misc/virtio.ko ] && /sbi ...


升级到QTS5.0以后需要如下修改。

#insmod virtio module
# qts 5.0.0
[ -f /lib/modules/misc/failover.ko ] && /sbin/insmod /lib/modules/misc/failover.ko 2>>/dev/null
[ -f /lib/modules/misc/net_failover.ko ] && /sbin/insmod /lib/modules/misc/net_failover.ko 2>>/dev/null
[ -f /lib/modules/misc/crypto_engine.ko ] && /sbin/insmod /lib/modules/misc/crypto_engine.ko 2>>/dev/null
#
[ -f /lib/modules/misc/virtio.ko ] && /sbin/insmod /lib/modules/misc/virtio.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_ring.ko ] && /sbin/insmod /lib/modules/misc/virtio_ring.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_rng.ko ] && /sbin/insmod /lib/modules/misc/virtio_rng.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_blk.ko ] && /sbin/insmod /lib/modules/misc/virtio_blk.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_net.ko ] && /sbin/insmod /lib/modules/misc/virtio_net.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_mmio.ko ] && /sbin/insmod /lib/modules/misc/virtio_mmio.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_console.ko ] && /sbin/insmod /lib/modules/misc/virtio_console.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_scsi.ko ] && /sbin/insmod /lib/modules/misc/virtio_scsi.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_balloon.ko ] && /sbin/insmod /lib/modules/misc/virtio_balloon.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_crypto.ko ] && /sbin/insmod /lib/modules/misc/virtio_crypto.ko 2>>/dev/null
[ -f /lib/modules/misc/virtio_pci.ko ] && /sbin/insmod /lib/modules/misc/virtio_pci.ko 2>>/dev/null

点评

有没有人QNAP 直通核显成功, 并能HD station显示的?  详情 回复 发表于 2022-4-7 22:09
回复 支持 反对 印象

使用道具 举报

0

精华

97

回帖

2288

积分

搞机大神

Rank: 3Rank: 3

云币
0
贡献
86
活跃
1807
精华
0
s2k7 发表于 2021-12-7 16:34 来自 日本
我也准备折腾一下,先报到占位。
回复 支持 反对 印象

使用道具 举报

0

精华

97

回帖

2288

积分

搞机大神

Rank: 3Rank: 3

云币
0
贡献
86
活跃
1807
精华
0
s2k7 发表于 2021-11-17 18:37 来自 日本
谢谢楼主的分享,这个文章很有深度啊!
回复 支持 反对 印象

使用道具 举报

0

精华

124

回帖

5216

积分

人机合一

Rank: 4

云币
1
贡献
0
活跃
5154
精华
0
殇1917 发表于 2021-11-16 09:44 来自 中国上海
正需要,支持楼主大人了!昨天用pve装了一天的黑Q,搞直通搞得血压都暴了
回复 支持 反对 印象

使用道具 举报

123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于作者

jimmyUC

入门用户

  • 主题

    3

  • 帖子

    74

  • 关注者

    7

etsme
快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图