第4章 根据具体的外屏应用场景,选择技术路线

【tl;dr】结束了“用什么”硬件的话题,接下来具体说说应用场景,分析下“用什么”技术路线最合适。

一般来说,服务器通常无人值守(Unattended),显示器、键盘鼠标都不太需要(Headless),基本上都会采用浏览器界面控制的方式来实现基本的管理运维(Maintenance),偶尔需要控制台Console或者SSH连接处理升级、排障之类的事情。

然而宝藏盒、有外屏的宝藏盒并不一样,它可以优雅地融入你的日常使用之中。

所以接下来,希望你能同我一起想想:我是怎么用服务器的?有了外屏后我希望实现什么样的效果。这真的很重要。

如果经过理性思考之后,得到的结论是:“我不太需要”,或者“太麻烦了/太贵了、我还是不折腾了”,那请不必再往下看了,节省的时间不如用来好好优化下服务器配置。

但如果你的结论是:“好像确实有需要”,或者“原来外屏还可以这样用”,那么接下来不如咱们一起理理思路,确定合适你的技术路线,参考下我的具体操作步骤,提前了解关键点和难点,那么大概率可以少走很多弯路。

4.1 以unRAID为例分析应用场景

前面也谈到了,组装服务器的目的是采用unRAID系统平台(Platform),用于日常7x24的下载、存储和影音播放(Use-case),基本上是主要通过unRAID自带功能、辅以部署Docker工具应用实现(Application)。

简称PUA分析,谢谢。

针对我部署和使用unRAID服务器的情况,应用场景可以归纳概括为下表:

编号 Platform Use-case Application
PUA-S01 unRAID 存储 unRAID 阵列、SMB/AFP共享、Unassigned Devices
PUA-S02 unRAID 管理 unRAID控制台、命令行、SSH
PUA-D01 unRAID+Docker 备份 rclone
PUA-D02 unRAID+Docker 下载 qbittorrent
PUA-D03 unRAID+Docker *ARR radarr,sonarr,jackett
PUA-D04 unRAID+Docker 影音 emby-server
PUA-D05 unRAID+Docker 书籍 calibre-web
PUA-D06 unRAID+Docker 监控 Grafana展示主机和Docker运行状态,适合时序历史数据
PUA-D07 unRAID+Docker 监控 Grafana也同时集中呈现局网内其他设备和应用状态
PUA-V01 unRAID+VM 测试 只是写本文时候频繁用到

(表4-1)我自己unRAID服务器使用场景的PUA分析

可以看到我对服务器的使用有几个特点:

  • 从整体上看,个人感觉还是比较理性的,基本上没有多余动作,不存在为了折腾而折腾的情况

  • unRAID系统自带功能、主流插件和Docker能够满足我的使用要求,感觉会比较稳

  • 基本上不太会用到虚拟机,负载不会很高,也不太容易出现意外问题

事实上,推而广之的话,对于选择ESXi、PVE等等平台,部署TrueNAS、unRAID、群晖之类的系统,得到的结论会完全不同。强烈建议各位也都自行PUA一下,理性斟酌斟酌;这样也可以极大降低为了折腾而折腾的概率。

那么问题来了:为什么要做PUA分析呢?

这就该说回来外屏显示的设备和技术路线了。

在第3章中,我们总结到目前可选择四种设备驱动外屏,各有特点:

  • 核显:为NAS选择CPU的时候,一般都会考虑要带上核显,性能通常足够;除非不考虑影音视频需求而使用特定服务器CPU。用来实现外屏应用的话,不增加额外投入;运行相对稳定,但配置相对简单。

  • 独立显卡:无核显的时候,应该都会配上独立显卡,至少用来亮机;有时候也会有GPU计算的场景,需要用到。带来的问题就是功耗和散热的问题需要解决。单纯用来实现外屏应用的话,额外投入也相对比较大;但好处是配置简单、运行稳定。

  • DisplayLink:方案可行,功耗低,不耗费PCI-E插槽;需要考虑下机箱布局和散热即可。挺适合用来驱动外屏的,额外投入相对适中;不好的地方就是运行稳定性稍差,适用场景相对狭窄、个别情况配置难度挺大的。

  • USB2HDMI:同上。但额外投入最小,稳定性最差,适用场景更少。

如何选择技术路线,除了上述比较直观的因素,我们更希望的是所选择技术路线跟PUA分析的情况大致能够匹配。

比如说我的情况,基本unRAID系统自带功能+Docker就能实现了,我肯定不乐意为了外屏显示、非要整成虚拟机驱动;这种无谓的选择最终影响系统效率和稳定性,实在是得不偿失。

4.2 unRAID系统实现外屏显示应用的技术路线

真的是做了好多测试验证、思考了很久,最终做出一张表,希望胜过千言万语。

我根据不同用来驱动外屏的设备(独显、核显、DisplayLink、USB2HDMI),按照在外屏上驱动和渲染浏览器的不同方式(unRAID、虚拟机),逐一分析了系统配置和软件实现的特点;最重要的是,验证了上述各种组合最后可以达到的效果。

通过这张表,可以更加直观、并且有针对性地做出“硬件选择和系统配置选择”:也就是我说的技术路线选择。

unRAID系统应用外屏的技术路线分析

(表4-1)unRAID系统应用外屏的技术路线分析

事实上推而广之的话,对于选择ESXi、PVE等等平台、部署TrueNAS、unRAID、群晖之类的系统,也都可以完成类似的验证和分析。

本文讲完unRAID系统之后,我会在后面的篇章里,针对上述其他主流NAS系统用户的PUA场景逐一进行分析;我也会有针对性地分别做类似的技术路线分析表,以供参考。完整excel文件我会再附上分享下载链接。

4.3 做出合理可行的技术路线选择

说回到我的具体情况。按照(表4-1),结合我自己使用unRAID的PUA场景分析,我加了一列“是否选择”,仔细斟酌以后筛选了一下,表格变成了这个样子:

简称PUA-DiiS表,谢谢

我最终的技术路线选择

(表4-2)我最终的技术路线选择

对我来说最理想的方案,简单说,就是用独立显卡驱动外屏,作为以GUI模式启动unRAID的主控台,打开浏览器输出到外屏;鼠标键盘就在伸手能够到的地方,随时可以快捷操作(我还是觉得比触摸屏要强)。为了进一步降低资源消耗,我把内置的Firefox浏览器替换成了luakit,实际使用验证了页面渲染效果不错,完全不会出现错排乱排的情况。

当然,把我的独立显卡GT1030去掉,换成核显或者DisplayLink也在考虑范围之内,只不过效果可能会打折。

在第5章中,我会完整地把详细设置操作过程写下来,以供各位参考。当然我也会按照(表4-1)讲解我并没有选择的技术路线。

也就是因为unRAID系统全面性很好,所以按上面PUA-DiiS分析,选择很明确、效果比较满意,基本上不需要纠结太多。如果是 ESXi或PVE平台、虚拟化部署黑群晖、TrueNAS、OMV等系统的话,情况会复杂些、做选择也可能会纠结一下。

按照这个思路通过类似的PUA-DiiS分析,你一定会找到适合你的设备配置和技术实现路线。

比如说,小黄鱼上遇到一位做相关专业工作的兄弟,主机安装直通卡,部署ESXi系统,把控制器直通给TrueNAS Scale系统驱动硬盘阵列,部署ZFS Pool、设置DataSet作为虚拟存储、定时做快照,再通过NFS共享给同样部署在ESXi上面的群晖DSM使用。我觉得这个方案还是很有特点的,在效率和性能耗费不大的情况下,兼顾了DSM使用的方便性、也格外保障了数据安全。

对于这个场景,我基本能确定,可以使用DisplayLink驱动外屏,实现ESXi主机、TrueNAS和ZFS文件系统、以及DSM运行状态的同步展示,还可以实现多面板自动轮播;同时,配合鼠标/键盘做到几个系统的快捷配置管理操作。

我想我会在第7章以此为例,仔细写一下实现过程和效果。

4.4 再回顾一下我是怎么用外屏的

对我来说,在服务器整个应用过程中,外屏很好发挥**“状态显示”和“快捷操作”作用的应用场景(Scenario)**可以大致总结列举如下:

  • 高频度场景(SH1):整屏显示宿主机和设备CPU、GPU、负载、温度、网络、连接、阵列、磁盘、读写、SMART、IPMI、UPS、功耗等等状态

  • 高频度场景(SH2):及时显示关键的unRAID日志、报警、提醒

  • 高频度场景(SH3):显示关键Docker应用的运行状态和负载

  • 中频度场景(SM1):快速操作配置微调、阵列启停、硬盘启停、数据校验、Docker/VM启停、APP/插件更新

  • 中频度场景(SM2):整屏显示qb、calibre、*arr等应用运行情况,也支持快速操作,比如qb快速操作种子增删、启停等等;

  • 中频度场景(SM3):显示局域网内其他设备和应用的运行状态,主要是路由器openwrt、防火墙pfsense、无线设备、白群晖上面的状态、流量、告警等等情况,另外还有Homeassistant实例

  • 低频度场景(SL1):连接前置USB接口设备,快速操作冷备份、迁移数据等等。

  • 低频度场景(SL2):笔记本电脑不在的时候,偶尔作为SSH客户端,连接其他设备修改配置、处理故障等等。

可以看到,对于用外屏做纯状态显示的场景

  • 适合用unRAID控制台主页面展示的:SH1、SH2、SH3;特点是unRAID开箱即用。

  • 适合用应用本身的WebUI界面展示的:SH3、SM2、SM3;特点也是开箱即用,但需要单独的浏览器标签页,需要多点一下。

  • 可以用grafana集成各个数据源展示的:SH1、SH2、SH3、SM2、SM3;特点是全面、可以过滤显示关键日志信息,而且grafana支持多面板自动轮播。相对来说数据源配置、面板配置稍微复杂些,但其实门槛并不高、只需要耐心。

也可以看到,对于用外屏触摸、鼠标/键盘来快捷操作的场景:

  • 适合用unRAID控制台做管理操作的:SM1、SL1、SL2;特点是开箱即用,方便。

  • 适合/只能用应用本身的WebUI管理操作的:SM2、SL2;没什么特点,堪堪够用救急,毕竟屏幕还是有些小,对console/term界面来说有些难受。但还是比较适合在SM3发现其他设备简单故障时,顺手处理了。

分析到这个程度,有句话还是要再多说一遍:客观地讲,上述场景里面,所有“状态显示”和“快捷操作”其实可以使用手机/pad/电脑浏览器解决;但这需要你主动、定期(或者自动/半自动)的去查看、响应和操作。

这是一种新的相处模式,服务器主动呈现必要的信息,你可以随时看到、不需要惦记,并选择“外屏显示+鼠标操作”、或者偶尔“外屏显示+鼠标键盘操作”。这种“一站式”的体验确实还是蛮不错的。

相信看到这里,你对外屏的应用可能更有画面感了吧。


最后,以下一步写作大纲作为第二篇WHAT的结尾,希望能坚持到最后,敬请期待:

第三篇 HOW 怎么做 (宿主机无法直接实现外屏显示的就不包含进来了)

第5章 unRAID平台

第6章 PVE平台(含黑群晖、OMV、TrueNAS、XigmaNAS虚拟化部署的情况)

第7章 ESXi平台(含黑群晖、OMV、TrueNAS、XigmaNAS虚拟化部署的情况)

第8章 ubuntu系统(debian可参考,含黑群晖、OMV、TrueNAS、XigmaNAS虚拟化部署的情况)

第9章 Windows系统

第10章 TrueNAS Core系统(TrueNAS Scale可参考)

第11章 XigmaNAS系统(暂定)

第四篇 MORE 相关 (把第三篇章涉及到的共性内容统一说了,不再重复)

第12章 Grafana应用基础配置(含ubuntu和docker部署方式)

第13章 VCSA数据源基础配置

第14-22章 为常用各种平台+应用定制Grafana面板

初步计划月底全部写完。

——对此,我非常有信心。