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

2019-03-02 作者:

Here the post is to talk about how to build a vm-based homelab NAS file server to make the entire unit (host and vm guest) working perfectly well, with both low power consumption, and highly flexible features like timer power on/off, completely spin down HDDs (as data warehouse) with a “power-off” vm – while the host is running well in 7×24. And the key to all of those, is Intel VT-d (feature of x64 processor), with an extra SATA controller attached on the motherboard.

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

硬件:产自圣地华强北,3205U,4 Intel i211,HDMI,4 USB,3.5mm音频,1 9pin COM

初始状态:一台基于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控制器。接在哪,去看技术手册。

完整阅读本篇»

基于阿里云API实现简单DDNS

2019-02-28 作者:

This is a post talking about using Aliyun Domain Control API (and python sdk as well) to script a simple, self-own ddns service, with only one assumption – a public ip over WAN port of your router.

 

原始状态

光猫 <—> R7000主路由 <—> 需要出门的母鸡+小鸡们

 

设计思路

  • 办法1:破解光猫,将光猫与R7000桥接。
    • 优势:内网只有一层,简洁明了。
    • 劣势:打N通电话,下N多工具,还要将独立IPTV信道映射或proxy到R7000的某个LAN口。
  • 办法2:硬件不做任何变动,添加两层映射。
    • 优势:实施安全性高。
    • 劣势:理论上,走ddns经双层转发,传输性能受影响。
  • 总结:人老色衰,首选安全方案。

 

网络拓扑

【更新】代码已推至github,欢迎加星。

完整阅读本篇»

PVE 5.3网卡直通 | PCI NIC Passthrough

2019-01-18 作者:

The pic shown below is recently purchased “software router” from Taobao. This article is written to talk about PCI NIC (Ethernet) passthrough on the newly released Proxmox 5.3.

Configuration –

  • Intel 3205U 2C 1.5GHz
  • DDR3 4G RAM
  • LENOVO MSATA 256GB SSD

最近一直心痒想玩软路由,入了一台几乎是HTPC的“诡异”配置。说是软路由,带着wifi、音频输出和HDMI,说是HTPC吧,还有四块i211千兆。

本想玩esxi,但想到那玩意儿非开源,输码激活不说;Host机上还不方便跑其他脚本和自己想玩的服务,所以还是上熟悉的Proxmox,这货抛掉虚拟机就是个minimum installed Debian,Host和Guest都可以玩的尽兴。

先上直通后的样子 –

  • 黑线是#1网口,是PVE Host管理口,也是Guest机虚拟网卡桥接到外界的网口
  • 灰线是#2口,是虚拟机直通后走的物理网口。

完整阅读本篇»

南都秋意 | Serene Autumn

2018-11-29 作者:

Photos at Zhan Garden, literally “Garden of Forward Watching”, a Chinese garden located at Nanjing, China.

片子摄于南京瞻园,号称金陵第一园。

本意是去观赏一下所谓传统园林景观,而过程中发现:

其一,这种小家碧玉型的园林景观不是我的菜,可能江南山水理应如此吧,举步成诗举目入画的感觉。但我更喜欢凭栏远眺,进一步说,还是波澜壮阔的视野来的更爽。说不出理由,这种小园林潜意识里感觉make me soft ‘n weak吧。

其二,毕竟已是深秋,郁郁葱葱的感觉正在逐渐褪去,再拍园林总发现色彩不能让人满意。或许还是应该拍一些,哪怕转个黑白,凑一幅小山水也是好的;但想来很可能再去,便安下心告诉自己不急于一时。后边又转了太平天国历史博物馆,时间关系,没有去一一仔细的观看那些陈设、武器、衣物、书函、公文,可见再来是一定的了。

完整阅读本篇»

西南小城 | Cosy Nest

2018-11-24 作者:

8点半的太阳,初升。居于此地,晚起似乎永远有充足借口。

长江支流,缓缓而过,晨雾搅扰视线,仿佛在耳边重复那句,古人言,难得糊涂。

而南方城镇的楼顶,极少bald hill,举凡有人关照,大多郁郁葱葱。总在不经意时看到,便可提醒自己,匆忙之余,稍可精致,有别于北方的粗犷。这一点,由表及里,南北对照,事事处处人人,皆有比对。不以好坏论之,各有长短而已。正如电影对白:“小孩子才分对错,成年人只看利弊”。踏出校门十载有余,方得领悟一二,可叹理工男之鲁钝。

完整阅读本篇»