我的服务器
前言
从2020年底,全球 IT 市场受到中美贸易战和矿潮冲击,呈现完全扭曲的发展。从前的高端显卡被矿老板买断,普通的消费市场只能望卡却步,越来越多需要购买显卡的消费者,将目光移至专业显卡,虽然专业显卡相对游戏卡而言,游戏性能大打折扣,但是就普通玩家而言,帧率和画面也基本能够满足了。
在这样的大环境下,更多的上班族选择购买游戏笔记本,实现工作、消遣两不误;而作为我这个平时喜欢折腾 Linux 又需要一定图形化性能剪辑视频的“玩家”来说,购买台式机和笔记本就有点奢侈了,理由如下:
- 笔记本虽然价格相对较低,但因为散热和功耗限制,整体性能其实并不好,平时办公、娱乐是没问题,但是长时间维持高负载,是不能胜任的;
- 台式机虽然能够最大化的发挥硬件性能,但是整体硬件的价格仍然位于高位,另外如果购买中端硬件,虽然价格可控的,但是硬件的品控无法得到保障;另外,最重要的是硬件性能还降低了。
所以,对于我而言,重新定位需求再购买就显得尤为重要。
- 因为工作原因,其实我并没有笔记本的应用场景,所以笔记本没有使用价值;
- 家中已经有一台集剪辑,推流,录屏于一身的台式机,购入台式机也是没有必要的;
- 平时需要使用虚拟机和多线程的情况比较多,另外使用 Gentoo 发行版,对多核多线程,大内存的需求是有的。
基于自己的使用场景,参考了几个朋友的使用习惯。我决定购买二手服务器。
服务器的使用场景
自己是否需要购买二手服务器?需要考虑几个简单的问题:
- 是否真的需要?
- 是否有地方放置?
- 服务器给我带来的好处
- 服务器带来的麻烦
下面就展开谈谈我自己使用两台 Dell 服务器后感想。
我为什么需要服务器
了解我的朋友大概知道,我主要用的操作系统是 Archlinux 和 Gentoo Linux,前者是我的生产力环境,因为下载更新更快(相对于编译而言),减少我的咖啡时间。而另外两台戴尔的服务器就是运行在 Gentoo 之上,为我提供测试和实验的环境。
在展开讨论服务器之前不得不谈到的是 Gentoo 这个系统的一个特点,就是软件需要通过编译安装,这个过程是比较漫长的,那么有效缩短这个过程最佳方法之一是优化系统底层,将优化的 USE 尽可能打开;另一种方面就用更好的硬件。
利用服务器强大的硬件和兼容性,提供更快、更稳定的运行环境。服务器的硬件一般都是当时兼容性最好,性能最好、最稳定的,所以对于 Linux 内核而言,兼容它们简直易如反掌。
服务器里应该注意的细节
我目前有的两台 Dell 服务器都是双路 CPU ,一台是40线程(Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz),一台是48线程(Intel(R) Xeon(R) CPU E5-2696v2 @ 2.50GHz),内存都是128G的 DDR3 ECC。这种数字看上去很强大,其实相对于普通消费级市场而言,仅仅停留在“数字”比较夸张,它们都是老架构 Ivy Bridge,22nm工艺,从参数上对比锐龙,就矮了一大截。但是胜在价格便宜,大家可以随便在某宝上搜索下散片对比下就能大致了解。
再谈谈内存,目前二手市场的服务器大部分都是 DDR3 ECC 内存,这样的内存对比我们平时台式机的内存有很多区别,首先是具有 ECC 功能,就是常说的纠错能力。其次就是很多规格,我以 Dell R720 服务器为例,支持三种类型内存,UDIMM ECC, RDIMM, LRDIMM,它们具体展开聊聊区别在于:
- UDIMM:传统的内存,也叫做无缓存内存(unbuffered memory),或者是非注册寄存器内存(unregistered memory),通常大家叫做非寄存器内存。这里需要强调的是,非寄存器内存与是否具有 ECC 功能没有必然性,有的可以有,有的可以没有。
- RDIMM:寄存器内存,通常的认识是,价格较昂贵。大部分寄存器内存都具有 ECC 功能,但是大家也需要注意,寄存器内存与具备ECC之间并没有关联,两者可单独存在,也可以同时存在。从目前我查阅到的资料来看,寄存器内存会有些性能损失,理论原理是这样的,内存主线和 DRAM 之间的每次读写都会被缓冲一个周期,所以寄存器内存的运行可以别理解为是等同非寄存器内存晚一个时钟周期。不过这种损失并不是普遍存在的。所以,基本上不用太在意。具体可以参阅:维基百科词条。
- LRDIMM:低负载 DIMM(Load Reduced DIMM,LRDIMM),它的模块与寄存器/缓冲区内存类似。直观的说,LRDIMM 内存提供整体来说最大的内存容量,同时解决串行与并行信号转换引起的 FB-DIMM内存的一些性能和功耗问题。
最后就是不同的内存规格,如何插到主板上,也是以 R720 服务器为例,一般官方网站会提供一张表,提供了如何将各种容量,各种规格的内存插入机器内的指南。
通过这张表,我就能方便的去考虑如何选购和添加内存了。如果各位朋友购买的二手服务器不是戴尔的,就到你们选购服务器的官方网站,寻找相关的文档,方便购买,不至于买回来的内存不兼容。
上面聊完了内存,我们来看看 PCIE 设备。
就目前我的两台服务器而言,R720 有9条 PCIE 3代插槽,其中有两条能够提供 x16 倍速,其余都是 x8 倍速;R720XD 提供了7条 PCIE 3代插槽,但是具体倍速,我没有查到。
一般来说在服务器里不能用游戏显卡的,原因是游戏显卡外观夸张,你是放不进空间狭小的服务器中的,除非你购买标准尺寸的游戏显卡,符合服务器,并且供电也满足条件。否则还是购买专业显卡,因为它们尺寸标准,供电合理。另外,目前我购买的两台服务使用 Nvidia 显卡作为输出都会出现进入 Linux 后一片黑的问题(与驱动无关),所以,个人推荐如果你想要显卡输出到显示器,还是选择 AMD 显卡,在 Linux 里支持比较好。Nvidia 显卡就作为炼丹或者转码的备用卡。
下面我再说说阵列卡。
在购买二手服务器的时候,如果可以,请让卖家帮你刷好阵列卡模式为 IT 模式或者直通模式。可能有朋友想说,为什么我不用阵列卡提供的阵列功能?这个可以展开聊聊:
- 阵列卡本质其实也是利用阵列卡中的子系统(一个类似于 Linux 的系统或者更小巧的系统)来创建阵列,而创建阵列的命令用的就是我们在 Linux 中常见的 mdadm ;
- 创建出来的磁盘阵列,由阵列卡管理,有些阵列卡上有电池和内存,它们的意义是在服务器意外断电的时候将未读写完的部分保存在缓存中,等待下次开机的时候处理。当然也有的阵列卡是没有电池和内存的,这个要各位玩家自己观察下。
- 阵列卡组好磁盘阵列后,将磁盘阵列提供给操作系统,实现读写操作,操作系统是无法直接接触到物理磁盘的,所有文件系统读写操作其本质是被磁盘阵列卡接管了,那么阵列卡体制的好坏就决定了你数据的安全性。
我们是否需要使用阵列卡呢?我的回答是否定的。理由如下:
- 磁盘阵列 mdadm 命令创建磁盘阵列本身没有什么问题,问题在于阵列卡的本身,长期使用阵列卡的温度是很高的,大量数据IO需要在这个小卡上处理,虽然它提供了专门的芯片,但是我并不觉得它能提供令我满意的IO稳定性和性能,我更情愿把这个工作交给 CPU 和操作系统去处理。
- 操作系统是无法直接接触物理硬盘的,这就导致我的操作系统的文件系统在实现某些特性操作的时候,不能直接对物理硬盘操作,很有可能出现一些奇奇怪怪的问题。
- 数据重要性与硬件成本的博弈
综合以上三点,我选择将阵列卡做成直通或者 IT 模式,让阵列卡把所有物理硬盘直接传递给操作系统,让操作系统的文件系统来处理数据。保证我的文件和数据安全。
以我个人的喜好举例。我习惯买一张小容量的 SSD,大概100GB左右,分一个小些的空间作为 Boot 分区,剩余的分区做 ZFS 的 L2ARC。再购入两张或者三张1TB的 SSD 作为系统盘,用 Btrfs 文件系统,做成阵列。Btrfs 本身具有磁盘阵列的功能,元数据还能够跨区储存,有快照等功能等等,非常方便管理。其余的磁盘就用 ZFS 文件系统,作为数据盘。ZFS 文件系统本身也具有磁盘阵列功能,还能做 zvol 块设备,非常适合用来储存重要文件,作为 KVM 虚拟机的磁盘。
如果各位购买的服务器的时候无法帮你刷好阵列卡,那么各位朋友有以下几个方案:
- 自己刷阵列卡:假设你购买的服务器也是戴尔的,那么可以参考这篇文章操作。操作的时候一定要按部就班到 Optional Boot Images 这里,该文档指南提供了一个压缩包,提供两个镜像,一个 FreeDOS,一个是 Debian 的,这些镜像用 dd 写入到 U 盘后,服务器用 BIOS 引导,UEFI 引导是不行的。
- 如果不会刷或者刷写中出错,可以用指南中最后一个选项反刷会原始状态。
- 如果刷来刷去还是无法解决。可以到某宝搜索你的阵列卡型号,购买 IT 模式或者直通模式的阵列卡。
- 如果你不仅不想出钱买,也没有能力自己刷,可以发邮件联系我,我帮你免费刷,来回邮费由你自己承担。
最后说说硬盘支架。一般来说,卖家会询问你需要多少硬盘支架,支架的尺寸通常放置传统的械硬盘,就是那种 3.5 寸的机械硬盘,而我自己用的是 2.5 寸的笔记本硬盘,我们只需要稍微注意下安装方法,就能省下购买2.5寸硬盘支架的费用,直接将2.5寸硬盘固定到3.5寸硬盘支架上。大家注意下螺丝尺寸和固定位置就可以了。最后是注意将硬盘尽量向前固定,让硬盘公口尽量突出,能更好的接触到服务器主板。最后就是安装硬盘的时候切勿大力出奇迹。
一些需要注意的问题
问:买回来服务器放在哪?
答:个人建议购买一个机柜,二手价格比较便宜,一手的价格也能承受,大家多多淘宝就好。
问:噪音大吗?
答:大。但是你可以调整 BIOS 设置,让噪音维持在一个你能够接受的范围。至少我是这么操作的,在服务器不全负载的情况下,基本保持安静。
问:功耗大吗?是不是很费电?
答:平时服务器运行在比较低的负载,大概150W左右,如果我编译内核或者编译很多包的时候,负载大概到300W~350W左右。
问:你就简单的说说服务器有什么好处吧。
答:性能强大,稳定性好,扩展能力强大
问:如何购买?
答:个人不建议在咸鱼购买二手服务器,主要是服务器属于大件,运输过程很难把控,其次咸鱼水深;个人推荐京东二手服务器卖家,一方面京东的服务比较靠谱(虽然不是京东自营);另外,出问题扯皮,走物流也有保障。
一些不建议使用服务器的场景
- 如果你不是王思聪,就别用服务器打游戏
- 简单的替代台式机的工作
写到最后
服务器的特点不是提供类似游戏PC那样的爆发力,服务器的意义是持续输出,在保证最好的稳定性的同时,提供更好的性能。不论服务器还是台式机计算机,它们的目的是为我们工作和服务,而不是我们反过来服务它。
祝愿各位玩家找到最适合你们设备。祝好~
很cool,非常详细的建议! 小小的debug一下,服务器里应该注意的细节->再谈谈内存->RDIMM->第二句中”寄存器内粗”应该是”寄存器内存”
非常感谢