abaolee 发表于 2018-10-6 20:50:41

八平台中秋版和老骥伏枥方法ESXI6.5下的硬盘挂载

本教程不适用于esxi6.7,官方说6.7有bug,板卡直通的问题需要下个版本修复。

一般的情况下可以参考
黑威联通 TS-653B 4.3 ESXi 6.0 6.5 6.7安装教程
(出处: NAS云论坛)
用IDE接口来挂硬盘,对于对性能要求高的玩家来说,硬盘直通才是王道。
硬盘直通有两种,一种是RDM一种是PCIE板卡直通。 RDM的方法很简单,将硬盘直通为一个RDM格式的虚拟盘*.vmdk.然后像使用虚拟硬盘一样的使用IDE挂载。

今天主要讲的是板卡直通。PCI passthrough.
qnap支持大部分的SATA卡,因此对于挂不上硬盘的玩家来说,使用外置SATA卡挂载是个好选择,老骥伏枥版本里面也不用修改hardware_check文件里面的SATA为IDE
直接打包就一般可以用。

最近国庆折腾了几天,主要是挑战难度,有些板卡挂载,特别是主板板载SATA挂载的时候直接进入初始化界面提示找不到硬盘。这种情况也分两种:
1.确实qnap不支持板卡,没有驱动
2.没有挂载到指定pcie槽。
检查是否没有驱动的笨方法是,进入初始化界面提示找不到硬盘的时候使用SSH登陆后台,然后ls -al /dev/sd* , 看看硬盘是否完全识别不到。
如果里面只有启动盘,对不起,我也不懂怎么编译驱动,这个问题留给其他大神吧。
今天要说的是,明明有驱动支持,但还是挂载不到的情形。

我使用的是Dell T630服务器主板,板载c610SATA卡。在kvm中可以直接直通,在ESXI中,一直是显示的灰色,我原本以为灰色没办法直通,后来网上找教程。发现了直通的方法。SSH进入esxi后台lspci -n 找到SATA 的厂商和设备编号等。 然后编辑 /etc/vmware/passthru.map文件,可以手动强行直通这个设备。
使用lspci | grep SATA查看你的板载sata设备,然后记住设备的pci槽号码,使用lspci -n后用相应的pci槽号找到厂商编号和型号
# Intel 82579LM Gig NIC can be reset with d3d0
80861502d3d0   default
# Intel 82598 10Gig cards can be reset with d3d0
808610b6d3d0   default
808610c6d3d0   default
808610c7d3d0   default
808610c8d3d0   default
808610ddd3d0   default
# Broadcom 57710/57711/57712 10Gig cards are not shareable
14e4164edefaultfalse
14e4164fdefaultfalse
14e41650defaultfalse
14e41662link   false
# Qlogic 8Gb FC card can not be shared
10772532defaultfalse
# LSILogic 1068 based SAS controllers
10000056d3d0   default
10000058d3d0   default
# NVIDIA
10deffffbridge   false
# SATA
80868d62d3d0    false
80868d02d3d0    false


看这个表,8086是intel代表,8d62和8d02代表两个板载sata卡的型号, 其他d3d0 和 false照填。
填好这个文件保存之后重启,这个设备就将不再灰色,可以用web client界面设置直通了。

直通给设备之后还有坑。基本有两个,
1.需要修改启动盘里面的initrd.boot文件中间包含的/etc/model.conf.
这个如果对老骥伏枥教程熟悉的同学应该知道,使用母盘,挂载sda2分区,拷贝/mnt/sda2/boot/initrd.boot 然后unzip和 cpio解包,
修改完了再原路打包拷贝回去。
这个文件是硬盘挂载的关键,里面标注的pci槽必须和虚拟机里面相应sata或者ide设备的槽位一致。
比较简单的方法是使用老骥伏枥的母盘,确实是非常好用的工具,我用来修改了非老骥伏枥教程里面的o大出品的八平台中秋版等固件,也是一样好用。
使用母盘的时候,在做固件的时候或者repack的时候先修改hardware_check文件,将里面的“SATA”修改成你目前的挂载方式,如果是ide就改成“IDE”
如果是板载sata卡像我的是C610,为了不让虚拟机其他sata被绑定,可以将“SATA”改为"C610",总之找到一个lspci中显示槽位那一行独一无二的关键字就好,
就能自动打包了。
2.这一步比较难,花了我至少两天时间找到。之前我修改model.conf都能成功,但昨天直通C610板载之后发现修改了model.conf似乎没有效果。
调试了很久才发现。model.conf里面的pci槽位,也就是qnap支持的硬盘控制器必须挂载在primary bus.通俗点说就是前面B00这两个数字必须为0,
这就很麻烦了,必须要修改虚拟机设置,让虚拟机的pci槽重新排位。
比较简单的方式是,修改虚拟机.vmx文件,在其中加入类似pciPassthru0.pciSlotNumber = "16"这样的语句。
对于我的机器,还碰到一个坑是,加入这一行了似乎一点作用都没有。找了很久最后发现,是直通的板载sata卡不是pcie接口,默认是pcie。所以无效
最后的解决办法是在.vmx文件里面再加一行:pciPassthru0.virtualDev = "pci"   ,这样保证板卡是以pci方式启动。槽位得到了修改。
这些全部搞完遇到了最后一个大坑。esxi6.5的bug:
目前的情况是,只要虚拟机文件.vmx里面有pciPassthru0.virtualDev = "pci"这一行,在esxi浏览器界面里面查看和修改虚拟机的时候就会crash.需要重新reload页面。
不过没关系,只是不能修改而已,启动关闭都正常。所以修改好所有虚拟机配置,最后加入这一样。需要的时候去掉这一行修改,再重新加回来。

我第一次写教程。没有截图。希望大家体谅。



cholin 发表于 2018-10-7 00:26:22

很有意义的经验分享,谢谢!

皓皓2252 发表于 2018-10-7 08:57:31

谢谢大神分享

pio9999 发表于 2018-10-10 10:50:19

很有意义的经验分享,谢谢!

dreamfrog 发表于 2018-10-13 13:38:02

感谢大神分享!!!点赞!!!

cxx0233@qq.com 发表于 2018-10-13 16:56:45

支持一下咯。。。。。。

m735459 发表于 2018-10-13 22:12:59

想了解下,
如果我想讓ESXi上的黑Q額外再支援直通pci-e的4口 SATA擴充卡 (例如88se9215),
也就是我已經讓QNAP的系統安裝在VMDK上,但我想另接一張直通的SATA卡去直讀硬盤,
是否只要修改vmx就好? 怎麼改? 謝謝

abaolee 发表于 2018-10-13 23:22:32

m735459 发表于 2018-10-13 22:12
想了解下,
如果我想讓ESXi上的黑Q額外再支援直通pci-e的4口 SATA擴充卡 (例如88se9215),
也就是我已經讓Q ...

只改vmx不够,如果直通sata卡,不用改vmx,只需要修改model.conf文件,方法是使用老骥伏枥的母盘,将initrd.boot解压出来,修改完model.conf再打包回去,如果不会,可以用母盘重新装一次系统,将sata修改为你那个sata卡唯一的一个字符串,使用lspci命令先看,可以修改成例如88se9215

boy5555 发表于 2018-10-29 19:13:43

很有价值的经验分享,谢谢!

44860840 发表于 2019-1-1 17:14:28

谢谢分享

44860840 发表于 2019-1-1 17:17:55

学习一下,感谢隔壁网

Jasontopz 发表于 2019-1-1 17:31:54

感觉不错 谢谢分享

HK$ 发表于 2019-1-1 23:30:42

Proxmox直通不知道会不会也有这么多坑

zxc1204 发表于 2019-1-2 11:22:40

很有价值的经验分享,谢谢分享

we2e 发表于 2019-1-8 00:37:54

很有意义的经验分享

zw5632po 发表于 2019-1-10 13:08:20

谢谢LZ分享

gappwold 发表于 2019-1-14 12:54:31

谢谢大神分享

zhouzhuofeng 发表于 2019-2-1 06:57:09

谢谢楼主分享,辛苦了

zhouzhuofeng 发表于 2019-2-1 20:51:32


谢谢谢谢谢谢

leeko 发表于 2019-2-6 11:21:55

好东西支持下
页: [1] 2
查看完整版本: 八平台中秋版和老骥伏枥方法ESXI6.5下的硬盘挂载