低成本和颜值兼顾的 HomeLab 设备:HPE MicroServer Gen10(二)

本篇文章,继续分享另外一台端午假期折腾的设备,HP MicroServer Gen10 一代。同样分享下我的折腾思路,希望能够帮助到有类似需求的你。

写在前面

两台 Gen10 摞一起的状态

Gen10 “标准版”(第一代)和 Plus 版本设计风格一致,同样颜值不低,除此之外机器通常是一块板载 CPU 的准系统(不含硬盘和内存、Plus 版本 CPU 可换),目前的设备二手价格在 1100 ~ 2200 块左右。

不做转接和外挂磁盘,默认四盘位

设备如果不运行高负载的任务,风扇声音并不高,你可以用它来做静音 NAS,插上七八块磁盘,论单盘位成本碾压成品 NAS。如果你有这块的诉求,可以翻阅下文中的“NAS 方向的关联阅读”小节中的内容。

这篇文章里,我对于它有其他的诉求。

上一篇文章中,我们聊到了《省心和颜值兼顾的 HomeLab 设备:HPE MicroServer Gen10 Plus v2(一)》,它目前运行者 HP 官方维护更新的 ESXi 8 虚拟化系统,计划托管我正在折腾的一些 AI 相关的小项目相关的数据:模型解析后的数据与原始数据的存储和备份。

除了“结果数据”、“原始数据”之外,其实还有一种数据状态,我们可以称它为“处理过程中的数据”。这些数据相比解析后的数据和原始数据而言,数据量其实更大,因为你的解析过程越多,一段时间内数据存储的份数越多,好在这些数据不需要存储太久,确认数据正确处理完毕后,就可以清理掉了,所以不需要太大的硬盘,能够存储中转数据即可。

勾勒设备画像

这台设备同样也运行在家里,和上一篇文章一样,除了数据存储外,我对它也有一些额外的需求:

  1. 噪音控制要好,虽然设备放置在机柜中,能够降低一些分贝数,但是主要还是需要设备本身能够相对保持安静。
  2. 尽可能低功耗,设备不承担计算部分,只作为可靠的临时存储资源来使用,尽量低功耗,低发热,低噪音。
  3. 多磁盘位支持,设备最好可以内部支持四盘位的存储,方便在这个存储设备涨价的季节,以相对低的成本购入数据存放的介质。
  4. 价格不能太贵,比较重的活儿都交给其他设备了,这台设备提供一个高性价比的磁盘位就好,不应该太贵。
  5. 设备颜值要高,毕竟放在家里,设备要有一个不错的颜值。

可以看到,除了第二点和前一台机器不同,其他的基本一摸一样。那么,让我们来分析下,这一次上面的需求如何被满足。

在上一篇文章的“勾勒设备画像”中提到的策略,我们就不再赘述了。重点来说说低功耗这部分。

低功耗设备选择

一般提到低功耗设备,我们很容易想到的有几类产品:

  1. Intel N/J 系列的 CPU,典型的比如 N3700 / N100 / N300 / J1900 / J3150 / J4125 / J5005 / J6005,功耗控制 6~10瓦左右,其中不少我都买过,如果是跑个文件下载或者简单的 NAS 还是不错的,但是这类 CPU 不支持 ECC 内存,在数据处理频繁的场景踩过不少坑。
  2. AMD Zen2 开始的移动端 CPU,典型的比如 Zen2 4800 / Zen3 5800 等等,功耗控制在 15~45瓦左右,性能非常好,目前家里还有两台设备在 7x24 运行。但是这类设备哪怕二手的价格都在 2000 元左右,并且同样不支持 ECC 内存,最关键的是成品机器(机箱)普遍支持的硬盘数量非常有限。
  3. ARM 架构的 CPU,各种成品 NAS 或者使用国产小芯片、电视盒子改造的轻量 NAS,普遍功耗只有几瓦,但是想找到多盘位、支持 ECC 内存的产品、价格相对便宜的,目前几乎没有,同时,IO 能力也非常有限。

上面这三类低功耗产品,有一个共性,就是普遍被市场诟病“性能不行”。如果我们从这个标签入手,寻找这几个系列之外的 CPU,会不会有所收获呢?比如,那么有没有一款产品,在当初发布时被诟病性能不行,但是支持多盘位呢?

2019 年组装的 ITX Gen8 多盘位主机

在搜索了各种设备后,我想到了我之前入手过改版的 Gen8 设备(黑群晖(Gen8)数据迁移白群晖(DS 920+)),它的升级版本 Gen10 不就是这样一台“弱鸡”设备嘛:搭载“AMD 皓龙 Opteron”的第一代 Gen10(产品规格)。

HPE MicroServer Gen10 三代产品线

这一代设备代号“多伦多”设备(AMD 赞助 F1,这个系列使用赛地城市命名),不论是搭载 28nm 的 X3216 还是 X3421 CPU的机型,在发布后网络上都是一片唏嘘之声,吐槽性能缩水的声音时至今日还在网络上能够被搜到。

Gen10 使用的代号 “多伦多” 的 CPU

因为这个 CPU 的发布时间在 2017 年,第一批机器的发布时间在 2018 年,距离现在有不少的时间,所以我们几乎不需要纠结这个机器的性能如何。低配版本单核是 J1900 的 2 倍,N100 的 一半,多核差不多就是 J1900 的性能,三分之一的 N100 的性能,胜在是最便宜的多盘位,带 ECC 支持的设备。

Gen10 日常开机待机时的功耗

Gen10 日常使用时的功耗

Gen10 关机待机功耗

相比较前代的 MicroServer 产品 Gen8,Gen10 设备正常运行功耗在 20~25 瓦,待机一般 15 瓦左右,关机功耗 1~2瓦,而 Gen8 除非选择 E3-1220v2 这类极低功耗(17瓦)的 CPU,一般功耗都在 50~60 瓦左右。

Gen10 主板真容

Gen10 PCIe 接口(机箱空间)

并且,这一代开始的设备支持的内存容量有大幅提升,支持到了 32GB 的 ECC 内存,还额外多了一个 PCIe 接口,方便进行扩展。

在官方文档站点中,你可以看到所有相关的内容,但是不建议你升级高版本的 BIOS,因为距海外论坛的用户反馈,新固件可能限制了设备可使用的 PCIe 配件。

NAS 方向的关联阅读

当然,如果你只要低成本、多盘位,或者想做低成本全闪存雷电 NAS,可以参考之前的折腾笔记:

  • 静音多盘位的方案: 《低成本搭建一台家庭存储服务器:前篇》、《低成本搭建一台 Unraid 家庭存储服务器:中篇》
  • 如果你对雷电全闪存 NAS 感兴趣,可以翻阅之前的这两篇文章:《廉价的全闪存雷电 NAS 折腾笔记:组网方案的选择》、《廉价的全闪存雷电 NAS 折腾笔记:NUC9 操作系统踩坑》

好了,让我们来完善这台机器的配件。

完善设备配件

因为设备默认带 CPU(板载 x3216),电源内置在机箱中,在我购置了两条 ECC 内存后,其实只要购置硬盘就能够开始使用啦。

购置硬盘和转接架

用作临时存储的国产硬盘

因为上文提到的存储使用场景,我没有选择类似上一篇的致态硬盘,而是选择了其他的更便宜的国产固态硬盘搭配一块闲置的铠侠 SSD 一起使用:中科存朱雀、光威奕 Pro、梵想。

出于成本和替换考虑,使用这些硬盘,在这个场景下作为临时存储性价比蛮高的。(还能顺带支持国货品牌的发展)

HPE Gen10 使用的硬盘转接架

和上一篇类似,因为这些硬盘都是 2.5 寸的磁盘,所以我们也需要硬盘转接架(~30块)来让他们能够上机使用。至于不推荐 NGFF 和转接卡的原因,上一篇文章已经提过,就不赘述啦。

Gen10 硬盘安装后

和上一篇文章提到的一样,安装在金属转换架上的 2.5 寸磁盘,因为接触金属支架和机箱,能够获得更好的散热水平,空出的空间也能够形成良好的散热风道。

Gen10 烤机半小时,停止后的硬盘温度

因为我的使用场景不是对磁盘进行持续读写,所以没有做这样的压力测试,更多时候,是数据处理程序的突发读写,所以我在做压力测试的时候和上一篇文章一样。

同样使用了这篇文章《开源的全能维护 U 盘工具:Ventoy》中 U 盘引导 PE 系统,对设备进行了一个小时的压力测试(测试 CPU & 内存 & 缓存)。除了可能是由于 PE 系统中的软件比较老,识别不到中科存固态硬盘的传感器之外,测试开始和结束时的硬盘温度几乎没有什么差别(个别磁盘零星涨了 1 度)。

因为选择了 2.5 寸硬盘和转接支架,硬盘安装都靠硬盘笼上部,硬盘底部距离主板上的 CPU 散热器的距离更远了(冗余多了一倍以上),自然也不会受到太多的 CPU 散热器的热传导的副作用影响。

运行系统的固态 U 盘

上一篇文章中,我的选择是将 ESXi 的引导系统安装在普通的 U 盘里。这篇文章里,我们换一个玩法。

运行系统的固态 U 盘

和上一篇文章不同的是,我选择将系统安装在固态 U 盘中,这样可以做到随意替换在主机上的其他磁盘,除了这块“系统盘之外”,所有的 SATA / PCIe 转接的磁盘都只存临时数据。在《硬件笔记:组装“固态 U 盘”的八年,从 100 块到 1000 块》这篇文章中,我聊过这个组装玩法,如果你感兴趣可以自行翻阅。

这里建议使用发热量较低的不带缓存的固态(还便宜),并且使用金属材质外壳的硬盘盒。 我选择的是一块闲置的 120GB 的老固态,之前从其他的小主机上拆下来的,搭配了一个 29 块钱的金属硬盘盒一起使用。

把 U 盘插到主机上

把组装好的 “U 盘” 插到主机上,“藏在” Gen10 机箱顶部就完事啦,机箱空余空间不少,所以走线可以不用反复折叠、辗转腾挪,省不少劲。因为 U 盘和机箱接触面都是金属材质,所以磁盘被动散热能力也不错。

购置 VGA 线或 VGA 转接 HDMI 转接口

对于这类“服务器”标签的设备,通常建议使用 VGA 接口来完成设备的首次部署安装。因为 Gen10 “标准版” 不支持 iLO,所以这次我们必须准备显示器的数据线。

VGA 转 HDMI 转接头

因为我没有 VGA 接口的显示器,所以我买了一个 VGA2HDMI 的转接口,使用起来没啥问题。

设备测试

本篇文章中的机器测试和上一篇类似,我只做了简单的内存测试、PE 中的系统压力测试。

虽然我同时测试了 x3216 和 x3421 两款机器,但是我目前只使用了 x3216 这台机器,所以就不贴 x3421 机器的情况啦(TLDR; 功耗是 x3216 的整整一倍,但是性能其实也就 NUC7 水平,不值得)。

进行高负载压力测试

差不多半个小时左右的测试时间,状况如下:

压力测试统计概况

因为软件不能正确识别传感器状况,所以对比 Gen10 Plus 的数值比较少。不过如果在测试过程中,切换到“传感器”页面,能够看到 CPU 温度最高大概 75 度,当测试停止,会很快降低到 50 度左右(PE 系统)。如果我们不使用这类带界面的系统,温度一般在 40 度左右。能够被检测到的硬盘温度,只有 1 度上升。

测试过程中,最高功耗

测试过程中,最高功耗在 40 瓦左右,是不是还挺香的?

系统压力测试记录 1

系统压力测试记录 2

缓存和内存的测试结果如下:

搭载 X3216 的 Gen10 整机状况

这颗 CPU 的实际识别信息如下:

X3216 CPU 具体信息

好了,大致了解了机器状况后,我们就可以开始 BIOS 设置和系统安装的步骤了。

系统安装

关于 Ubuntu 的安装、升级、维护,在之前的博客中多有提到,就不再做赘述。目前安装的最简单方法就是:

  1. 在 Ubuntu 官方下载 Ubuntu 24.04 Server 版本的 ISO。
  2. 根据这篇文章《开源的全能维护 U 盘工具:Ventoy》中的方法,制作引导 U 盘。
  3. 将 ISO 放置到 U 盘里,用 U 盘引导 Gen10 ,选择 ISO 镜像,“一路 next” 完成安装。

为了尽可能把这台性能孱弱的设备的有效性能用在我们的具体使用场景,我推荐在安装的过程中,选择最小化安装“minimal”,然后在默认安装配件中勾选 “Openssh Server” 即可。

这样完成安装的系统,待机大概就是上文中提到的 15 瓦左右啦。

卸载 Cloud Init

较新版本的 Ubuntu 都内置了 canonical/cloud-init,可以用它来自动化的处理云实例的配置和设置过程,无需人工干预。随着三年的开源项目迭代,软件目前支持多种云平台,从 AWS 到 Azure、GCP 等等,支持自动设置主机名称、配置网络接口、设置 SSH 密钥、安装软件包。

软件虽好,对于我们这台小主机来说,却是不必要的负担,为了降低不必要的负载,我们可以通过下面的命令,将 Cloud Init 完全卸载掉:

sudo apt purge cloud-init -y
sudo rm -rf /etc/cloud && sudo rm -rf /var/lib/cloud/
reboot

卸载后的主机的开机速度也能够更快一些。

必要的 BIOS 设置

Gen10 的 BIOS 设置菜单还是比较丰富的。

Gen10 BIOS 设置菜单

在 BIOS 中,选择“Advanced”、“Hardware Monitor Status”,我们能够看到设备的基础状况。

Hardware Monitor Status

默认情况下机器温度不是特别高,所以就扔室内或者机柜内就行,不必空调伺候。

Chipset IOMMU

在 Intel 芯片的设备中,为了支持虚拟化或者让 Docker 中的容器能够访问到硬件,我们一般会开启 VT-D,在 AMD 设备中,我们需要启动“Chipset”、“IOMMU” 选项。

STAPM Boost

在 “CPU Configuration” 中,建议启用 “C6 Mode” 和 “STAPM Boost Enable” 两个选项,通过这两个选项,我们能够让机器在低负载、空负载的时候功耗更低(绝大多数时间),在需要负载的时候,获得更高的性能,更快的完成任务,减少产生的热量,从而降低风扇速率以及整体功耗。

Restore On Power Loss

因为 Gen10 不具备 iLO 启动,所以我们可以设置“Chipset”中的“Restore On Power Loss”,让设备支持来电自启。搭配小米开关等能够远程控制的电源的方法,和一些简单的监控服务,就能够实现基础的远程维护管理啦。

设置启动顺序

最后,设置下系统默认的启动顺序为我们安装好系统的固态 U 盘即可。

其他

这台设备推出时间已经有一些年头了,虽说企业级的产品质量都远超一般预期(哪怕是工控),如果你也想入手这台设备,不妨选择出厂年份较近的,保存相对完好的。

当然,如果出现问题倒也不是什么问题,除了硬件不是特别好配,需要从其他的机器上拆卸替换外,官方的排障手册,网上积累的大量资料,都可以帮助我们节约不少时间。官方排障指南:HP ProLiant Servers Troubleshooting Guide。

最后

好了,这篇文章就先聊到这里,接下来有关这两款机器的内容,大概是可以专注的聊聊软件部分啦。

–EOF


我们有一个小小的折腾群,里面聚集了一些喜欢折腾、彼此坦诚相待的小伙伴。

我们在里面会一起聊聊软硬件、HomeLab、编程上、生活里以及职场中的一些问题,偶尔也在群里不定期的分享一些技术资料。

关于交友的标准,请参考下面的文章:

苏洋:致新朋友:为生活投票,不断寻找更好的朋友

当然,通过下面这篇文章添加好友时,请备注实名和公司或学校、注明来源和目的,珍惜彼此的时间 😄

苏洋:关于折腾群入群的那些事


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2024年06月12日
统计字数: 9299字
阅读时间: 19分钟阅读
本文链接: https://soulteary.com/2024/06/12/the-cheap-and-beautiful-homelab-device-hpe-microserver-gen10.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/701684.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

onlyoffice在线预览加载优化

背景: 使用容器部署onlyoffice到linux服务器,使用内网访问速度还可以接受,但是如果放到外网路径访问起来,速度就会很慢,甚至加载失败; 优化方案: 预览的过程排除网络因素,可以发现打…

(1)图像识别yolov5—安装教程

目录 1、安装YOLOv5: 2、下载预训练模型: 3、识别示例图片: 1、安装YOLOv5: 首先,你需要在你的计算机上下载 YOLOv5 的文件包,下载链接:https://github.com/ultralytics/yolov5。下载后对压缩文件进行解压。 通常使用 YOLOv5 识别物体,需要安装必要的 依赖…

海外媒体发稿渠道和方法有哪些?如何选择靠谱的国外媒体发稿服务商?

在选择海外媒体发稿服务商时,以下是一些关键点可以帮助您找到靠谱的服务商: 服务商的经验和口碑:查找该服务商在行业内的声誉和客户评价。拥有丰富经验和良好口碑的服务商通常更可靠。 媒体资源和覆盖范围:了解服务商所能提供的媒…

如何快速学会互联网运营?

答案只有一个,那就是选项目,跟团队,直接实操,比你花几千几万的学费更实在。早上就有好几位伙伴加入,咱们团队几乎每天都有干货分享。 作为千益畅行旅游卡源头,咱们没有套路,唯有靠谱得人心。你…

Python AI 编程助手:Fitten Code插件

一. 简介 今天为大家推荐一款适配了 Viusal Studio,VS Code(本文使用),JetBrains 系列(本文使用)以及Vim等多种编译器环境的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升…

肾合能量不足?揭秘手心热出汗的真相

想象一下,我们的身体如同一座精密的城堡,城堡内的每一个房间都代表着一个器官,而城堡的守卫——气血,则是维系城堡和谐稳定的重要力量。当城堡中的守卫力量不足,或是城堡内的环境出现紊乱时,城堡的某个角落…

React基础教程(07):条件渲染

1 条件渲染 使用条件渲染,结合TodoList案例,进行完善,实现以下功能: 当列表中的数据为空的时候,现实提示信息暂无待办事项当列表中存在数据的时候,提示信息消失 这里介绍三种实现方式。 注意这里的Empty是…

中霖教育怎么样?中霖教育靠谱吗?

中霖教育作为一家正经的教育机构,从初始到现在,学员的高通过率反映了我们的教学质量。 我们的目的是帮助学员通过考试,所以完全是根据考试来授课教学。在备考过程中掌握答题技巧,结合押题提分,只要学生严格按照老师的…

NET 使用UDP协议

1.简单的使用UDP对接示例&#xff1a; /// <summary>/// 定时器&#xff0c;每秒定时获取是否有udp数据/// </summary>public DispatcherTimer Timer1 new DispatcherTimer() { Interval new TimeSpan(0, 0, 0, 1) }; public UdpClient SocketUDP { get; set; }/…

Golang发送邮件性能如何优化?有哪些方法?

Golang发送邮件的认证流程&#xff1f;怎么设置smtp服务器发信&#xff1f; Golang作为一种高效的编程语言&#xff0c;自然也被广泛应用于发送邮件的场景。然而&#xff0c;如何优化Golang发送邮件的性能成为了一个关键问题。AokSend将探讨一些优化方法&#xff0c;以提高Gol…

高压电工作业历年试题分享(含答案)

单项选择题 1、(B)主要用于接通或断开隔离开关&#xff0c;跌落保险&#xff0c;装卸携带型接地线以及带电测量和试验等工作。A.验电器 B.绝缘杆 C.绝缘夹钳 D.绝缘手套 2、(C)的作用是用于作拉线的连接、紧固和调节。 A.支持金具 B.连接金具 C.拉线金具 D.保护金具 3、(C)是利…

python 魔术方法备忘录

python 魔术方法备忘录 网上收集了一些&#xff0c;列出了比较常用的&#xff0c;特别是第一张。 Python中的魔术方法&#xff08;Magic Methods&#xff09;&#xff0c;也被称为特殊方法&#xff08;Special Methods&#xff09;或双下划线方法&#xff08;Dunder Methods&a…

保安员精选历年试题(附答案)

一、单选题 1.保安从业人员在协助维护社会治安工作中已成为一支重要的社会(B)力量。 A:技术防范 B:安全防范 C:人力防范 D:公共防范 2.目前我国保安服务已经从单一的人力保安&#xff0c;发展为守护、(A)、押运、安全技术防范等四大主要业务。 A:巡逻 B:咨询 C:犬防 D:开锁…

Python三引号(“““)的五个神奇用法,你真的都知道吗?

大家好&#xff01;这里是快乐吗喽敲代码&#xff0c;今天我们来聊一聊 Python 中的一个神奇字符——三引号&#xff08;"""&#xff09;。三引号"""不仅仅是用来定义多行字符串的简单工具&#xff0c;它还隐藏着许多令人惊叹的用途。 什么是三引…

数据结构与算法笔记:基础篇 -递归树:如何借助树来求解递归算法的时间复杂度?

概述 我们都知道&#xff0c;递归代码的时间复杂度分析起来很麻烦。在《排序(下)》哪里讲过&#xff0c;如何用递推公式&#xff0c;求解归并排序、快速排序的时间复杂度&#xff0c;但是有些情况&#xff0c;比如快排的平均时间复杂度的分析&#xff0c;用递推公式的话&#…

软件下载网站源码附手机版和图文教程

PHP游戏应用市场APP软件下载平台网站源码手机版 可自行打包APP&#xff0c;带下载统计&#xff0c;带多套模板&#xff0c;带图文教程&#xff0c;可以做软件库&#xff0c;也可以做推广app下载等等&#xff0c;需要的朋友可以下载 源码下载 软件下载网站源码附手机版和图文…

JavaEE大作业之班级通讯录系统(前端HTML+后端JavaEE实现)PS:也可选网络留言板、图书借阅系统、寝室管理系统

背景&#xff1a; 题目要求&#xff1a; 题目一&#xff1a;班级通讯录【我们选这个】 实现一个B/S结构的电子通讯录&#xff0c;其中的每条记录至少包含学号、姓名、性别、班级、手机号、QQ号、微信号&#xff0c;需要实现如下功能&#xff1a; &#xff08;1&#xff09;…

【源码】校园小情书小程序最新版 校园小程序开发 微信情书小程序 校园小情书小程序源代码

校园小情书微信小程序源码 | 社区小程序前后端开源 | 校园表白墙交友小程序 功能&#xff1a; 表白墙 卖舍友 步数旅行 步数排行榜 情侣脸 漫画脸 个人主页 私信 站内消息 今日话题 评论点赞收藏 服务器环境要求&#xff1a;PHP7.0 MySQL5.7 …

分布式系统设计指南

目录 一、分布式简介 二、分布式系统核心概念 2.1 CAP 理论 2.2 BASE 原理 三、分布式系统设计 3.1 微服务拆分 3.2 通信模型 3.3 负载均衡 3.4 数据一致性 3.5 容错限流 3.6 扩展性 3.7 监控预警 3.8 自动化运维 一、分布式简介 分布式系统是由单体应用发展而来的&#xff…

Java面试八股之super()和this()的区别

super()和this()的区别 super() 目的&#xff1a;super()用于从子类的构造方法中调用父类&#xff08;超类&#xff09;的构造方法。这是为了确保父类的初始化操作得以执行&#xff0c;因为子类继承了父类的属性和方法&#xff0c;可能需要先设置好父类的状态。 位置&#x…