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

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

精华

140

回帖

773

积分

入门用户

Rank: 1

云币
0
贡献
12
活跃
640
精华
0
lucky911game 发表于 2021-6-4 17:07 来自 中国浙江台州
占楼来了,PVE里好像论坛里没有教程,你是第一个出的,成功了分享一下

点评

当然成功了[attachimg]53827[/attachimg] [attachimg]53828[/attachimg] [attachimg]53827[/attachimg]  详情 回复 发表于 2021-6-4 19:18
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2021-6-4 19:18 来自 中国北京
lucky911game 发表于 2021-6-4 17:07
占楼来了,PVE里好像论坛里没有教程,你是第一个出的,成功了分享一下

当然成功了
store.JPG







回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2021-6-6 11:50 来自 中国北京
顶下, 真没人讨论的吗?
回复 支持 反对 印象

使用道具 举报

0

精华

59

回帖

459

积分

入门用户

Rank: 1

云币
0
贡献
11
活跃
372
精华
0
gujiangjiang 发表于 2021-6-7 00:30 来自 中国江苏镇江
真的太麻烦了,希望有自动适配的版本,Vmware,ESXi,PVE都试过,目前就ESXi可以成功,但是一定要选择IDE,ESXi的任何SATA设备都无法被识别到,PVE直接啥也不识别,ESXi和PVE的虚拟磁盘SATA都无法识别,PVE的虚拟磁盘明明挂在IDE的,但是lspci里面却没有任何IDE设备,算是折腾的够呛,不搞了

点评

这个就是PVE 使用非IDE的教程 PVE 如果你选的Q35芯片组虚拟机, IDE 是挂在第一个SATA 控制器上, 文章里解释了  详情 回复 发表于 2021-6-7 08:45
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2021-6-7 08:45 来自 中国北京
gujiangjiang 发表于 2021-6-7 00:30
真的太麻烦了,希望有自动适配的版本,Vmware,ESXi,PVE都试过,目前就ESXi可以成功,但是一定要选择IDE, ...

这个就是PVE 使用非IDE的教程
PVE 如果你选的Q35芯片组虚拟机, IDE 是挂在第一个SATA 控制器上, 文章里解释了
回复 支持 反对 印象

使用道具 举报

0

精华

15

回帖

184

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
176
精华
0
此岸?半生寂寞 发表于 2021-6-7 16:56 来自 中国上海
厉害!楼主用的是哪个型号版本的QNAP

点评

TS-653D 其实都一样, 就是正好有6个盘选了它  详情 回复 发表于 2021-6-7 23:26
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2021-6-7 23:26 来自 中国北京
此岸?半生寂寞 发表于 2021-6-7 16:56
厉害!楼主用的是哪个型号版本的QNAP

TS-653D
其实都一样, 就是正好有6个盘选了它
回复 支持 反对 印象

使用道具 举报

0

精华

22

回帖

206

积分

入门用户

Rank: 1

云币
0
贡献
2
活跃
184
精华
0
w19934199498 发表于 2021-6-24 18:18 来自 中国四川成都
楼主用的是virtio还是e1000e?

点评

virtio 牛年礼包的话,可以按照论坛里帖子的做法, 在laojifuli.patch里加载virtio驱动就好  详情 回复 发表于 2021-6-24 20:39
回复 支持 反对 印象

使用道具 举报

0

精华

71

回帖

548

积分

入门用户

Rank: 1

云币
0
贡献
6
活跃
481
精华
0
jimmyUC 发表于 2021-6-24 20:39 来自 中国北京
w19934199498 发表于 2021-6-24 18:18
楼主用的是virtio还是e1000e?

virtio
牛年礼包的话,可以按照论坛里帖子的做法, 在laojifuli.patch里加载virtio驱动就好

点评

之前看过,但是现在找不到了,能给个直达链接吗?  详情 回复 发表于 2021-6-25 12:43
回复 支持 反对 印象

使用道具 举报

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

本版积分规则

关于作者

jimmyUC

入门用户

  • 主题

    3

  • 帖子

    74

  • 关注者

    7

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