构建一台家用工作站

/ 0评 / 0

以及一举成为国家电网合作伙伴(不是)。

因为自己的私心,我决定给自己弄一台工作站。

虽然说是工作站,但实际上就是一台大一点、吵一点、一直开机的电脑。相比起真正的企业级工作站,这个方案充其量就是一个草台班子。但是这是我的草台班子!比起租一个看不见摸不着的虚拟实例,一个实实在在的服务器更能让人有一种莫名的成就感。

图 1 组装好的机架正视图

计划与配置

当然,说是实实在在的服务器,其实也就是一个机箱大一点的电脑。最近因为硬件轮转,我原本的主力机被一台 Mac Mini 取代了。没错,我最终认为 macOS 在调教好之后用起来的舒心程度是远超 Windows 的,而且 M 系列芯片的功耗真的惊人得低,休眠时的个位数的功耗甚至比肩路由器;在 *nix 内核的加持下,可以做到一直不关机也不出任何幺蛾子。

那么,计划是这样的:我现在有两台主机,一台是之前的 NAS;另一台是刚换下来的主力机。考虑到我肯定还是要玩游戏的,或者至少机器学习方面的项目还是离不开那张 N 卡,这两台主机都会作为服务器来运行。

不过,考虑到功耗问题,带显卡的电脑肯定是不能一直开机的。虽然根据之前的测量,两台电脑同时开机空转的状态功耗在 150W 左右;但只要稍微一跑一些工作,功耗立刻就会上升到 350W. 这总体而言虽然并不是完全不可接受,但是一天八九度电也总不是办法。

最终的答案是使用网络唤醒。把带显卡的电脑配置成允许通过网络唤醒,再配置空闲一段时间后自动休眠就可以在需要的时候把电脑叫起来,用完之后进入休眠来节省电量了。

解决了软件的问题,下一步就是硬件的问题。既然我们决定了要搞个工作站,那服务器机柜和 19 英寸机箱就是必选品了!有了机箱,自然还需要一个交换机来联网——之前的路由器不是不能用,就只是想多留个口,以及为未来可能的硬件迭代留出空间。这之后还需要想办法给设备插电,根据之前维护服务器的经验,买一个插排就能满足需求。

考虑到显卡和阵列卡都是全高的 PCIe 卡,机箱最低只能选择 4U 高度。两台电脑就是至少 8U 的高度,加上电源和交换机各自占 1U+1U(机器本身 1U 但是走线必须要留 1U 的空隙),目前的高度是至少 12U.

机箱可以选择很深的,但是深机箱意味着深机柜,而我的房间并不能支持放一个一米多的机柜进来。理想情况下,机箱应该选择尽可能浅的,至少是 400 深度以内的,看了一圈,符合要求的短机箱可以塞下最大 ATX 的主板,但是没有多少空间来放硬盘;而原来的 NAS 现在已经扩展到六块硬盘,要想放下的话只能选择加硬盘笼。

有硬盘笼的话就得操心一下硬盘的散热问题。之前在机箱里有风扇吹着温度不至于太高,现在在硬盘笼里憋着就必须得有方法散热。形制比较好的硬盘笼现在比较便宜好买的基本上是浪潮的产品,围绕着浪潮的二次 DIY 方案有不少,随便找了一个比较便宜的就结束战斗了。

硬盘笼本身是 2U 高度,这使得最终的机架高度至少是 14U. 于是最终选定了一个总体积 600 x 600 x 800 的机柜,标定是 15U 的——主要是为了避免出现一些很尴尬的「恰好矮一截」 的情况。我这里强调这一点绝对不是在影射之后会发生什么事情。

简单列一下清单(为了避免广告嫌疑,商家名称已打码):

物品供货商SKU数量
机柜华***金属制品厂0.8米 15U 600 深1
供电单元复*数码旗舰店8 位 10A 开关 1.5 平方 5 米1
交换机磊*旗舰店4 x 2.5G Ethernet + 2 x 10G SPF1
机箱博*工控机箱工厂店4U 黑色机箱2
硬盘笼纵*科技电脑商城浪潮 M4 12 盘硬盘笼1
硬盘笼散热J**P**8M4 散热壳 + 风扇 + 调速1
硬盘笼挂耳J**P**8M4 挂耳1
机柜螺丝顶*科技旗舰店M5*16mm 加强镀镍 50 套1
网线爱**特光电10 米国标六类千兆3
水晶头山*旗舰店3U'' 镀金六类千兆1

总共加起来一千出头。虽然已经都捡着便宜的买了,但这种东西就是很莫名奇妙地加起来很贵。

组装与调试

对于任何感兴趣的老哥想要尝试的,我有一句忠告:找一两个朋友来帮你装这些东西。无论是把机柜从楼底扛上来,还是把服务器安装到机架上,你都绝对会希望有至少另一个人来帮你的。一个人虽然并不是完全办不到这些事情,但是这无疑是给自己开了一个地狱难度副本。如果你是跟我一样的肥宅,那么这一次操作的工作量不亚于三个月的运动量。

怎么装那个服务器螺丝

服务器固定到机架上使用的是卡式螺丝。这个东西由一个包在方形结构里的螺母和一个螺丝组成。

图 2 卡式螺丝的螺母部分

这个东西的玩法是这样的:因为螺丝肯定是从外向里打的,螺母自然是从里向外接螺丝的;卡式螺丝只需要把它像卡扣一样塞到机架的洞上就可以了。至于是横着塞还是竖着塞,其实都无所谓,但我喜欢横着塞。

图 3 卡式螺丝的安装方法

无尽的打螺丝

组装过程主要是各种的拆箱子和打螺丝。好在几乎所有螺丝都是 M4 的十字头螺丝,坏在我没有电动螺丝刀而这个螺丝是真的很多很多。从机箱固定主板的螺丝,到 NAS 固定硬盘的螺丝,前前后后可以有几十上百个。

和机柜搏斗

机柜用到的螺钉都是 M6 的十字螺钉。但比较糟心的是,虽然淘宝页面上说了这是 15U 的机柜,但实际上里面的机架只有 14U 的高度。好在我们留了 1U 的空间,不然这玩意要退换货可真是头大。

机柜里面有一个附赠的平台架子是预装好的。但是它装到了 1U 的高度上,挡住了我规划的服务器的槽位,所以得先拆掉挪个位置。然后我就不得不感叹一下:不愧是有电动螺丝刀的大厂,这螺丝上得这么结实是要干毛线啊!螺丝都拧滑丝了,手都拧脱皮了,这玩意就是纹丝不动。无奈只得祭出老虎钳对螺母下手,终于拆掉了这几个螺丝。说实在话,有一瞬间我怀疑这玩意是焊上去的。

属于技术宅专享的硬举和卧推

如果你跟我一样做事不过脑子或者你发现自己的规划导致你不得不这么做的话,你会从上往下安装各个设备。对于排插和交换机这种小件来说其实还好,但是当你尝试这么去装电脑的时候,你就会发现自己得使出吃奶的劲才能把机器抬到位置上,更痛苦的是你必须单手抬着机器,直到你把至少三颗固定螺丝打上为止!

究其原因,最终归结到杠杆原理:当你不得不只通过前面板来举这个机器的时候,由于机器的重心远离你所举的位置,这整个结构就是一个费力杠杆。对于没有任何像样的力量训练的我,当时确实给自己整红温了。而更有意思的是:比电脑更重的是塞满了硬盘的硬盘架。这玩意从地上抬起来都沉的要命,更不要提往架子上装了:如果没有下面的电脑垫着,可能这玩意压根就没法上机柜。

如果可能,请从下往上安装设备,而且应该保证沉的东西靠下,轻的东西靠上。这样至少下面的设备可以给上面的设备垫一下。

这个口没有插,没问题么?

硬盘笼散热我选择了 4P 供电版本,说是可以给硬盘笼本体和散热风扇一起供电。比较让我讶异的是它后面有 4 个 4P 供电口,但我的电源只有 3 个 4P 口可以插。我有那么一瞬间想买一个 SATA 电源转 4P 公的转换线,但是转念一想,硬盘笼附赠的电源线只有 2 个口,就算不插问题也不大——万一里面其实是并联的呢?

最终答案是问题确实不大。尽管只插了一条 8643 线以及只插了三个 4P 口,试运行时阵列卡成功地识别到了全部 6 块硬盘。之后或许会再弄一条 8643 线看看读写性能能否有所改善吧。

点火与入轨

一切终于搞定,点火只是按一下电源键的问题。但是电脑这种东西吧,有些时候挪了窝之后会不开心,还得再做法给它招个魂才行。好在这次两台电脑都没有出现需要招魂的情况,毕竟没有动内存条,而且断电时间相对比较短,所以不需要再次招魂。

给电脑招魂

好吧,简单解释一下:我这种垃圾佬只能用得起垃圾电脑(果子电脑另算),所以硬件匹配程度嘛,只能说能亮就算成功。这就使得有些时候,CPU - 主板 - 内存的匹配并不理想。很多时候 CPU 的内存训练过程会很磕绊,在多通道的情况下可能压根就无法完成内存训练,导致不开机。

这个时候,就得给电脑断电,重新拔插一下内存;内存条需要一根一根重新上,有些时候需要相互调换一下插槽,有些时候你得故意在不插任何内存的情况下开一次机让电脑忘记上一次的微调结果。总之是一个很不科学,但是如果你足够虔诚的话确实又能让电脑重新跑起来的过程。我能够想到的最科学的解释就是上面那段了。

怎么访问那台有显卡的电脑

目前访问有显卡的电脑是通过远程桌面和 Parsec 进行的。远程桌面(微软的那个远程桌面)负责日常活动,Parsec 负责打游戏。

但实际上,更好的方案是使用 KVM 延长器把键鼠和显示器带到桌面这边来。虽然现在是局域网,但 Parsec 用起来还是感觉有点……卡。它不是那种一眼能看出来的卡,而是你会发现游戏的手感略微有点不一样了。我甚至不玩竞技类游戏,我最近在玩的 Satisfactory 就有这种感觉。可能是因为之前显卡只需要负责游戏,现在又要负责游戏又要负责视频编码导致卡顿吧。

至于唤醒,Mac 和 NAS 都有 wakeonlan 这个小工具来发送唤醒报文。但是比较头疼的是,之前在直连路由器的时候用 wakeonlan 唤醒是没有问题的,现在装上交换机之后就不行了。用 Wireshark 排查了一下,发现交换机会直接丢弃 9 号端口的上的数据。尽管 WoL 协议允许从 7 号端口上发送数据,但是我的主板貌似只认 9 号端口。

无奈只得先把程控开关装上了。之后再想想有没有其他方法来实现远程唤醒了。

风扇噪音和硬盘噪音

好在它没有上来就起飞。这台服务器里使用的风扇都是比较温柔的风扇,硬盘架散热扇有一个旋钮用来调节风扇转速,开到最大那种原地起飞的感觉就会出现,不过我们目前还用不到那么强劲的气流。现在它整体更像一个调到中档的风扇,你知道这货开着,不过很容易就能忽略它的存在。

至于硬盘噪音,其实反而有所改善——硬盘笼和机柜的双重阻隔已经把炒豆音降低到需要注意听才能察觉的状态了。之前的 NAS 机箱由于选择欠佳,插了一堆转接线使得硬盘只得直接露在外面,那个炒豆的声音是绝对的清脆响亮。但这样一来,我会不会反而会忽略敲盘声最终导致数据火葬场呢?希望不要发生这样的恐怖事件。

警告:文件丢失

当我的 NAS 点火之后,我第一时间检查了文件下载服务是否工作正常。结果它报告有 200 个下载任务处在文件丢失的状态而无法继续,我心直接凉了半截。因为把硬盘挪到硬盘笼之后,硬盘的设备名肯定是会改变的。如果 btrfs 没能正确识别每块硬盘,那可能就得手动修复,或者更糟心的数据全丢也不是没有可能。毕竟我之前配置了 RAID10, 而如果 0 的那部分炸了,那基本上就只能认栽重开了。

但是转念一想,如果 btrfs 没能识别硬盘,那么应该会直接挂载失败系统进入救援状态才对。下载服务怎么起得来的?仔细检查了一下汇报丢失的文件,好像都在,而且内容都对。抱着死马当活马医的心态重启了一下服务,嘿,好了。

这个很奇怪的现象貌似只有设备号发生变化之后才有概率发生。之后系统重启的时候就没再遇到过这种情况。

更多的设想

现在,所有的服务都可以正常运行了。当然下一步就是给服务器进一步加 buff: 比如交换机是支持 2.5G 网络的,可以给两台机器都上 2.5G 网卡;比如硬盘笼现在只插了一根线,数据访问性能还是有所下降的,需要再搞一根 8643 线来恢复之前的速度。

折腾是无止境的,后面或许会再加内存再加硬盘。不过最重要的一点是:有了这个东西之后,如果之后要搬家的话,可以直接叫物流把这半个身家全数搬走而不用再把电脑拆开、跟快递拉扯半天。

发表回复

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

Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.