论VT-d对虚拟化NAS之价值

2019-03-02 作者:

Clear thinking, after 10 years working experience, should be considered as one of the most valued personalities of a professional.

初始状态:一台基于KVM虚拟化的NAS(文件服务器),Host系统是Proxmox VE 5.3。

  • 当大部分教程选择esxi 5.x时,博主经仔细选择玩了PVE,原因1母鸡是标准debian本身可以做很多事(比如crontab,比如nfs server,比如gitlab等),2基于kvm稳定且不缺文档,3开源,4玩转了可以在工作中使用,毕竟是远近驰名的专业私有云solution。
  • 小鸡操作系统是DSM6,参考别的资料,应该是基于BSD的定制魔改版本。
  • 虚拟机(小鸡)分配2核1.5G内存作为计算资源。
  • 硬盘共3块。
    • sata1,引导盘,尺寸50M,用于引导无系统的DSM6进入可以安装系统的状态。虚拟盘,位于母鸡Intel SATA控制器下的mSATA SSD上的一个qcow2文件。
    • sata0,系统盘,尺寸20G,用于安装DSM6系统。同样虚拟盘,位于母鸡Intel SATA控制器下的mSATA SSD上的一个qcow2文件。
    • sata2,数据盘,尺寸2.0T,从基于PVE(Proxmox VE)的母鸡“伪·直通”到小鸡的物理磁盘。
  • 网卡是从PVE母鸡“真·直通”到小鸡的物理网卡,Intel i211千兆网。

 

存在问题:一台既无性能,也不可靠的文件服务器。

  • 所谓无性能,就得搞明白“真·直通”和“伪·直通”的区别,这里有关于Intel VT-x和VT-d的简介
    • 对于已经通过VT-d做了直通的i211网卡,其DMA和Interrupt都会remapping到虚拟机去,不再累及母鸡的cpu和内存来做传声筒;换句话说,几乎等价把母鸡的物理外设直连到了小鸡。小鸡关机,可以直接关掉物理网卡,这一点是最好佐证。
    • 而对于通过PVE命令“qm set –sata2”接到小鸡的磁盘,无非是把母鸡身上这个整体存储区间(整个硬盘),映射到小鸡虚拟的sata2通道(看起来还是整个硬盘)。也就是说,所有从小鸡对这块磁盘的读写,事无巨细都得母鸡全部过一遍,中断响应和IO性能差异高下立现。
  • 所谓不可靠,此处指两点细节问题。
    • 首先,对“伪·直通”的硬盘。我们到小鸡身体里面看(下图右),虚拟出来的QEMU SATA硬盘,其身份信息以及可支持的健康功能统统不见;与同一块硬盘在母鸡身上所得的详细数据相比(下图左),堪称凄惨。这就造成DSM6系统对磁盘健康程度(SMART)是一无所知的。
    • 然后,单数据盘,无RAID,对文件服务器而言……尤其对于一台连磁盘的SMART状态都看不到的服务器,屋漏偏逢连夜雨,绝了。

 

解决思路:把SATA控制器“真·直通”到小鸡。

  • ↑这是tm不可行的,常见家用计算机,包括我手里这台软路由,只有一个SATA控制器。意即给母鸡的系统盘,和给小鸡的数据盘,挂在同一个SATA控制器下,一根绳上蚂蚱,要走都走,要留都留。
  • 既然如此,那么外接一个SATA控制器。接在哪,去看技术手册。

  • 写的是用于WIFI模块/蓝牙模块/3G模块等,能否使用pcie-sata卡呢?不清楚。
  • 要先搞清楚是否有mini-pcie转sata3的卡,搜之。找到,就是它了。

 

  • 那么问题回来了,能否使用呢?卖软路由的店家是这么回复的。

 

  • 那么能接还是不能接呢?得学习一下Mini PCIE的pinout定义。
    • 标准Mini PCIE,是全pin,官方解释可以接wifi或者其他高速设备。
    • 仅USB Mini PCIE,少了7个pin,但USB管脚比如36~38等都健在,官方解释是4G或者GPS卡可以直接连在USB上,说白了就是用mini-pcie之名,行USB之实。
    • 那么这就成问题了,实际上USB转WIFI是可能的,软路由的这个Mini PCIE究竟是不是标准槽呢?
    • 然后Mini PCIE转SATA3,有没有用到标准槽的23、25、31、33几个pin呢?

 

  • 先看机器带的是不是标准槽。
    • 怎么看?拍照,看槽上pin脚是否悬空,是否统一拉高/拉低。
    • 刚好,这4个pin都接到了看起来像是电容或电阻的器件上,而且打了过孔到了板子背面,起码不是统一拉低,应该也不会是统一拉高。
    • 这是个好现象,说明这个插槽很有可能是标准槽。

 

  • 那么接下来就是,转接卡是不是用到了这4个pin呢?
    • 这算是一个佐证,因为单纯的USB 2.0不可能够得上SATA3的带宽。
    • 所幸taobao卖家的广告图非常细致,看的清布线,红绿蓝黄四个信号,全部进入了主控芯片。
  • 现在清楚了,软路由上的Mini PCIE极有可能是标准槽,而转接卡也确实需要一个标准槽(否则无法工作)。

 

  • 下单,到货,装机,接硬盘(x2)。
    • 红框是转接卡转出的SATA数据口。蓝框是原机给的SATA供电接口1分2。
    • 给两块机械盘做个“临时工棚”。

 

结果测试:成败在此一举。

  • 开母鸡,进入PVE web管理页面。
  • 在直通设备列表看到新的SATA controller,名叫ASM1062。
  • 把ASM1062直通给DSM6,成功一半。

 

  • 开小鸡,ssh分别登录母鸡和小鸡,查看硬盘。
    • 首先母鸡有两个SATA控制器,是对的。
    • 其次母鸡物理连接3块硬盘,一个mSATA在Intel SATA控制器,两个SATA3在ASM1062 SATA控制器;但列出只有1块,说明另外2块随着ASM 1062直通小鸡,母鸡已经不管了。
    • 再看小鸡,首先ASM 1062控制器可以看到。
    • 查看小鸡的磁盘,一共4块。sda是之前提到的系统盘,是qcow2虚拟盘;sdb是引导盘,qcow2虚拟盘;sdg和sdh是跟着ASM 1062进来的物理盘;离成功一步之遥了。
    • 查看小鸡上sdg和sdh的smart信息,成功返回所有信息,PERFECT!!!

 

  • 下一步就容易了,在DSM6内,将原来单盘的Basic升级成RAID 1,然后等待软RAID进行数据同步。

至此打完收工。

可以说从cpu到io层面都极其接近物理机,而又实际是vm,从而可以得益于方便的硬件配置变更,启停,快照等。

 

意外之喜:两张经过VT-d进行“真·直通”的物理盘,可以随着DSM6小鸡一起关机!没错,可以让硬盘完全停转,而PVE母鸡依然正常工作!!这意味着什么?

  • 母鸡依然可以在0噪声、低功耗水平下进行7×24小时服务。
  • 需要文件服务器的时候,web点一下,或者使用crontab每天定时运行qm start dsm6就可以自动开启DSM6。两块物理盘随之开工。
  • 不需要文件服务器时,同样web点一下,或者使用DSM6内置的定时关机功能,自动关机。两块物理盘随之停转。
  • 加上前篇所述基于阿里云API实现简单DDNS,无法更完美!!!

 

原创文章,转载请注明: 转载自渔人小径

本文链接地址: 论VT-d对虚拟化NAS之价值

文章的脚注信息由WordPress的wp-posturl插件自动生成

    分享到:

最近文章

分享

发表评论

电子邮件地址不会被公开。 必填项已用*标注