0%

搭了一台home server

前言

趁着 6 月份的年中大促,我升级了家里的 pc 配置。原因和上一次升级出奇的一致,又是因为 DNF 这个游戏….不过本篇的主角并不是新升级的电脑。从定位上来说,这台电脑将是完全的游戏 PC,也没有什么需要多说的。本篇的主角依旧是我 4 年前购买的这台电脑

这台电脑已经服役 4 年多,但是在网络游戏以外,其他各方面的表现都让我满意(可能不包括功耗)。所以淘汰下来以后,我预备用来搭一台新的服务器。相比之前使用 HPE Gen10 plus 搭建的 homeserver,对于这台服务器,我期望的升级点包括:

  1. 更大的内存,能支撑更多 vm 和 docker 应用
  2. 更高性能的 cpu
  3. 全闪存存储,无机械硬盘
  4. 接入 2.5~10G 网络

在使用 HPE Gen10 plus 一年有余的时间以后,我在 home server 上运行的应用逐渐达到了这台服务器能承载的极限。本以为,下一台搭建的服务器,应该是 arm 架构+全固态硬盘的组合。遗憾的是,前者目前并没有成熟的方案,后者倒是有机会尝试。因此这一次姑且是算是介于两者之间的一次半代升级。

不过这次半代升级也并非一时兴起, 至少有一半也是从真实需求出发。一方面,千兆网络环境下的 nas 确实在大文件的移动归档上体验有所不足,比如有时候我会把上百 G 的视频文件从桌面电脑上拷贝到 nas 上备份,整个过程耗时可能长达数十分钟。如果说这还不是致命的,那机械硬盘羸弱的 4k 读写性能,则是存在致命的缺陷。在升级之前我还不是很确定,不过在将 hentai@home 的缓存数据迁移到固态硬盘之后,证实了这里的读写瓶颈确实限制了 h@h 的点击率。

硬件更替

于是,在新的游戏 PC 搭建完毕开始正式服役之后,我就开始着手这台旧 PC 的改装。也是趁着 6 月份做了一点简单的采购,内容如下:

部件 名称
硬盘 西数 SN640 7.68T(U2 接口, 带 m2 转接)
网卡 mellanox CX341A
交换机 磊科 GS6(4 口 2.5G 电 2 口 10G 光)

除了硬盘以外, 其他部件价格都意外的便宜。其中网卡是淘宝买的拆机件,加上带光模块的光纤线材也不过百元出头。交换机本来想先买个全2.5G做过渡,意外发现这个新款方案带2个万兆光口居然不到300元,就干脆也换掉了。

系统

上一台nas的底层系统用的是esxi,虽然用下来也算是一切安好,不过这次我还是决定换成pve。原因有二,一是考虑到硬件用的是普通PC的配置,后期硬件的更替也会相对灵活,pve相比esxi在硬件的适配上应该算是有优势的;第二点则是我用下来对esxi最大的不满,备份相对不方便。对于企业用户来说,在一整套的vmware体系下,这些需求大概都不算事。不过对于单个虚拟机的使用,还要一整套的系统来做这些备份的事情,就太麻烦了。相对来说,pve在这一点上就很简单。设置好计划任务,往挂载的网络硬盘上写备份就行了。

nas系统

这几年里用truenas作为底层的存储系统也算是一切安好。不过这次我换成了omv,倒也没有什么特别的原因,姑且算是用两套不同的系统来降低风险吧。硬要说好处的话,omv没有使用zfs,所以这套系统不需要分配太多内存,可以省出更多的内存来跑应用。不过话说回来,哪怕这次再装truenas,我可能也不会分配很多内存给存储系统。底层都用ssd了,真的还有必要为存储分配大量的内存吗?不过这次没有用truenas,所以也没有往下深究。

硬件直通

其实我对于硬件直通没有太多要求,也许完全不直通也是可以的。因此也就只是尝鲜性质的用了用,把主板上的m2接口直通给了omv,还算是一切顺利。

另外一个可选的玩法是将网卡做半虚拟化的拆分,这大概也算是硬件直通?优势是能分担cpu承载虚拟网卡的负担,不过暂时我也用不到这么高性能的虚拟网卡,所以也没有折腾。

应用迁移

考虑到平稳过渡,旧的nas并没有一次性下线,而是依旧延用作为存储服务,起到本地二次备份的作用。如此以来,数据3、2、1备份策略也算是完整实施了。

剩余的应用的迁移,也不费事。我的绝大部分都是以docker-compose模式部署,原则上我甚至不需要做完整的虚拟机迁移,只要把docker-compose配置文件,和外部存储的数据文件拷贝到新的虚拟机上,就可以接着使用。不过虚拟机实例的迁移算起来还是相对更简单一点,因此最终还是选择了虚拟机实例平迁。旧的esxi虚拟机导出后再导入到pve中,然后停掉旧实例,启用新的即可。另外我还有一套做开发使用的arch虚拟机环境,这套环境从最早的windows pc上的hyper开始,先是迁到了esxi,这次又迁移到了pve继续使用,倒也是十分符合当初我把开发环境虚拟化的初衷。只要这套arch环境在未来的滚动更新中不会因为什么原因挂掉的话,我应该可以无视任何硬件的更迭,继续使用下去。

P2V

在准备将这台PC重装为PVE之前,我考虑了一下该怎么给原来的系统做备份。原则上我是可以把所有需要的文件拷贝走备份到nas上。不过这次我选择用了一个更粗暴的方式,将原来的系统整个打包成虚拟机镜像。某种意义上来说,这个旧系统也算是永久保留了下来。虽然未来我应该也不会再使用了,权且作为一个纪念吧。

新系统的感想

这套系统的理论性能要比原来的nas(HPE gen10 plus)强不少,这里面有一部分cpu、内存等核心部件性能的提升,不过主要的体验变化还是来自于纯ssd的存储配置。固态带来的读写性能的飞跃,让很多重IO的应用都有了质的提升。下一步我应该也会基于新机器的性能特点,寻找更多的应用场景,毕竟很多过去可能难以想象的实现方式,现在都成了可能。

虽说只算是一次半代升级,不过我对这次的升级成果相当满意。