从小主机到第一台自组装NAS:升级与优化记录

news2024/11/13 9:29:31

目录

    • 前言
    • 硬件
    • 系统安装的波折
      • 过程
      • 问题
      • 解决
      • 系统安装
    • 套件/docker
      • jellyfin
    • 功耗测试
      • 刚安装好系统
      • 插上缓存盘且运行了更多的套件和 docker 容器之后
    • 温度
      • 场景一
      • 场景二
      • 场景三
    • 后记
    • 参考

在使用了一年的小主机 NAS 后,我决定自己组装并安装新 NAS。本文详细记录了硬件选择、系统安装中的波折、套件与Docker应用、功耗测试及温度监控等过程,分享了从裸奔硬盘到小别墅的升级体验。适合想要了解 NAS 组装和优化的读者。(本摘要由 AI 生成)

前言

在使用了一年的小主机NAS之后,我终于更换了一台自己组装自己安装系统的 NAS,恭喜我自己,这里少不了我朋友提供的硬件咨询,感谢他。

为什么要换一台 NAS 呢?这里不得不提到我之前使用的小主机 NAS。它小巧轻便,功耗低,配备了 j4125 处理器和 8GB 内存,性能完全够用,还支持内置两个 2.5 英寸硬盘。

问题就出现在这,内置不支持 3.5 寸硬盘,这就导致我3.5寸硬盘要裸奔,刚好 cpu 风扇散热又直接吹倒硬盘上,面临以下问题:

  • 硬盘没有物理保护,不放心
  • 容易过热
  • 拓展型不高

索性,就直接换个 NAS 吧。

小主机NAS和硬盘位置

硬件

由于我对性能需求不大,所以没有选择太好的硬件,够用就行。所以我选择了g4560t cpu,很多都是二手 的。总体配置如下:

配置品牌型号价格
CPUg4560t(二手)125
主板技嘉h110m-des2(二手)0
散热器板载(二手)0
内存金士顿 DDR4 2133(二手)27
电源长城额定230W 小金刚GW-330109
散热风扇利民工包C12C * 230
机箱爱国者商越 matx75
缓存盘Intel 傲腾M10 16G 228016
PCIE转换卡NVME m.2转PCIE 拓展卡 x1612
引导U盘闪迪酷豆8G24
总计418

机箱选择是个大问题,其实一开始的机箱不是这个,买了个40多的,安装之后发现,3.5寸一些硬盘只能固定一侧,这让我很不放心,便退了,运费25元(扣除了运费险),血亏!

这里也推荐一下这个机箱,整体不是很大,最大同时支持2个3.5寸机械硬盘和1个2.5寸硬盘,有前置风扇位,可以直吹硬盘。预算不足没钱上 NAS 专用机箱的,可以考虑这个。毕竟不算电源的话,NAS 专用机箱比我整套还贵了。

系统安装的波折

主机安装一步一步来,没啥大问题。

但是头疼的来了,这里也记录一下,以作参考。

过程

首先,烧录U盘 - 打开引导Web地址 - 选择版本 - 选择型号 - 编译引导,这里都没问题。

我选择了 DS918+7.2 的版本。

点了“启动”之后,提示我在浏览器中访问 ``http:xx:5000` 链接 DSM,没有报错,根据指南,我等待一会之后访问这个地址以安装群晖系统。

问题

这个时候出现了问题。系统死机了,风扇还在转,但网口灯不亮,ping 不通,这一下子让我懵了。

经过一番网络搜索和参考官方问题合集,我尝试了以下各种方法,但都没有成功:

  • 切换 LKM 版本"到 dev
  • 切换 “直接启动”
  • 更换型号
  • 更换引导并尝试以上方法

(好像还研究了其他来着,忘记了)

解决

第二天,当我一筹莫展的时候,便想着一个一个都尝试一下,随后把 LKM 版本"到 test ,成功安装。

当时有点无语,毕竟我尝试的第一个方法就是切换 LKM 分支。

请添加图片描述

系统安装

随后便是安装系统,可以选择保留配置或重置配置,但都会保留文件。

请添加图片描述

在这个时候,我只插入了一个硬盘。系统成功安装后,我再插入另一个硬盘,它会提示「系统分区不可用」之类的,然后修复即可,数据都会保留。但其实可以一开始就放进去 2 个硬盘,我是因为害怕被格式化,经过这一次折腾,我觉得它应该是不会轻易格式化的。

套件/docker

我装了以下套件和docker。

套件:

  • Hyper Backup:备份
  • cloud Sync:同步/备份
  • Container Manager:运行docker
  • 存储空间分析器:分析存储空间并做出报告
  • USB copy:备份
  • alist 网盘:挂载网盘
  • 迅雷:下载工具
  • Transmission:下载工具
  • Synology Drive:文件同步
  • NASTool:媒体工具
  • ZeroTier:异地组网
  • Tailscale:异地组网

docker:

  • nyanmisaka/jellyfin:视频播放
  • adolfintel/speedtest:网络测试
  • linuxserver/qbittorrent:下载工具

jellyfin

成功开启硬解,CPU 在 20-35%,除了在一开始加载和切换转码时需要加载,其他时候均流畅播放。

以某个电影资源为例,视频信息如下:

  • 大小:48 GB
  • 编码:HEVC
  • 分辨率:3840 x 2160
  • 帧率:24
  • 比特率:72 Mbps
  • 位深度:10 bit
  • 动态范围:HDR
  • 动态范围类型:HDR10

这个时候自动转码成 4k + 120 Mbps,帧率是 42,手动切换转码成1080P + 10 Mbps,转码帧率是 77。

tips:NAStool 建立完硬链接之后,可以在 jellyfin 媒体库中添加硬链接的目标文件夹,那里有刮削好的数据,可以直接用。

需要注意的是,如果采用这种方案,媒体库的媒体资料存储方式中勾选上“Nfo”。

功耗测试

测试仪器:电小酷 CP1-AM。

刚安装好系统

这里还没安装过多的套件,且没有运行 docker 容器。

  • 开机瞬间:50 w
  • 开机ing:40 w
  • 普通使用:28 - 35 w
  • 跑smart检测:31 w
  • 迅雷下载电视剧 + smart检测:35 - 36 w
  • 迅雷下载电视剧 + smart检测:36 w
  • 迅雷下载电视剧 + smart检测 + drive建立索引(此时 cpu 60%):37 - 42 w

估计待机功耗:28w

插上缓存盘且运行了更多的套件和 docker 容器之后

  • jellyfin 转码:47 - 51 w
  • 待机:30 w

这天用下来,低强度使用,大多居中在0.7 - 0.8 度之间,其中有一天用 jellyfin 看了一个小时电影,刚超过 0.8 度一点点。虽然说一天不到一度不算很多,但是城中村的电费单价 1.5 元可不是吹的。

由于上班时很少使用 NAS,我打算设置自动关机、来电自启和使用智能插座,这样应该至少能节省一半的电量。

温度

不知道为什么我的 2.5 英寸固态硬盘看不到温度显示,但好在它不是机械硬盘,所以暂时不管它。

CPU 温度我是通过 Linux 的 sensors 查看,这与我在 app 上看到的“散热状态”显示的温度有所不同。以便参考,我两个都记录下,总体来说,前者比后者低 16 - 18 ℃ 这样。

当天天气:28-36 ℃,仅供参考。

场景一

待机,CPU 占用率低于 3 %。

  • 室温:29.5 ℃
  • 机械硬盘:39 ℃
  • CPU(sensors):37 ℃
  • CPU(群晖管家):56 ℃

场景二

白天,待机,有轻微 CPU 活动,CPU 占用率 4 - 13 %,功率 30 w。

  • 室温:31.3 ℃
  • 机械硬盘:41 ℃
  • CPU(sensors):40 ℃
  • CPU(群晖管家):61 ℃

场景三

白天中强度使用 15 分钟,使用 jellyfin 转码观看视频,CPU 占用率 47 - 50 %,集中在 42 - 45 %,功率 43 - 52 w,集中在 48 - 51 w。

  • 室温:31.3 ℃
  • 机械硬盘:43 ℃
  • CPU(sensors):52 ℃
  • CPU(群晖管家):55 - 58 ℃

后记

经过一番折腾,我的裸奔硬盘终于从“露营”住进了“小别墅”,算是告别了一些危险因素。花费了我很多时间,但我乐在其中。虽然安装不上系统的时候确实很苦恼,当时都想着电源要怎么卖好了。

也许人生亦是如此,得多尝试多犯错才会成功,但在现实社会里,也许是因为没有试错成本,也许是因为看透了社会,我是个害怕犯错、很难接受犯错成本的一个人,这和我面对数码产品/电子设备/代码的心态完全不同,我对这些非常喜欢折腾和尝试。初二的时候亲戚不要的一台电脑给了我,那时候的我压根不会装系统不懂硬件不懂装机,我连电脑都没有,靠着听来的知识和百度来的知识,硬是熬到了凌晨把这台电脑弄开机了,具体是因为没系统还是没法开机,我不太记得了,我只记得那个时候的我非常信任当时的我,相信总会弄好的。有点强行升华了。

其实我对 NAS 的需求并不高,我只是想要一个能够持续运行的设备来保存我的资料、实现备份功能和局域网内设备能访问我很久很久以前的资料就行,能不能够提供附加功能(套件、docker)其实无所谓,这个时候,NAS 就非常适合我。

硬盘有价,数据无价。

这里建议大家都做好数据备份,也不要玩 all in one,在我组装好不久后便在某论坛上看到一个 all in boom 了。

ZeroTier、ZeroTier Zoom、Tailscale 我也都测试了,下次专门发(水)一篇吧。

参考

  1. Github - RR 引导
  2. RR 引导官方使用指南
  3. RR引导官方问题合集
  4. 群晖引导成功之后群晖助手/Synology Assistant搜索不到机器ip解决方法
  5. bilibili - 2024年最新黑群晖安装教程-一键安装DSM7.2超级简单
  6. bilibili - 更好用的Jellyfin——解决封面和字幕方框、绿屏、转码慢

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Audio Toolbox 框架简介

Audio Toolbox 框架简介 Audio Toolbox 框架简介Audio Unit播放和录制音频文件和格式 Audio Toolbox 框架简介 AudioToolbox 框架为录制、播放和流解析提供了接口。在 iOS 中,该框架为管理音频会话提供了额外的接口。 AudioToolbox 框架的基本情况: Au…

海狐外卖O2O商城系统:技术架构与运营模式的深度解析

摘要: 本文深入探讨了海狐外卖O2O商城系统的技术架构、功能特性以及运营模式。海狐外卖作为一款专注于细分市场领域的外卖餐饮解决方案,不仅拥有先进的技术栈支持,还通过丰富的系统插件和灵活的运营模式,为商户和用户提供高效、便…

scratch3编程05-画笔绘制圆及与圆相关的图形

目录 一,圆 1,空心圆 2,实心圆 3,嵌套在一起的圆 4,圆环 二,五角星 1,空心五角星 1)思路 2)完整的程序 2,实心五角星 1)思路 2&…

14-62 剑和诗人36 - 混合专家 (MoE) 扩展 AI 视野

了解混合专家 (MoE) 混合专家 (MoE) 是一种机器学习技术,它将多个“专家”神经网络模型组合成一个更大的模型。MoE 的目标是通过组合专业专家(每个专家专注于不同的子领域)来提高 AI 系统的准确性和能力。 MoE 模型的一些关键特征&#xff1…

C. Earning on Bets

题目 个人补充&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 #define ll long longconst int maxn 1e6 5, in…

打印任务无法删除怎么办?

在删除打印任务的时候&#xff0c;你可能会遇到这样的情况&#xff0c;当我们想把打印任务取消的时候&#xff0c;却一直显示正在删除&#xff0c;而过了很久还没有取消掉&#xff0c;下面就分享一下处理这个问题的方法。 1、停止打印服务&#xff0c;按WinR键打开运行对话框&a…

项目进度管理(5-1)常见的缓冲区监控方法

缓冲区监控是一种项目管理技术&#xff0c;主要用于关键链项目管理系统&#xff08;Critical Chain Project Management, CCPM&#xff09;中。它的核心理念是识别和管理项目中的不确定性和依赖性&#xff0c;以提高项目完成的可靠性。 缓冲区监控方法主要是针对项目进度计划执…

Java面试八股之Redis有哪些数据类型?底层实现分别是什么

Redis有哪些数据类型&#xff1f;底层实现分别是什么 Redis数据类型概述 Redis作为一款键值存储系统&#xff0c;提供了丰富多样的数据类型以满足不同场景的需求。以下是Redis支持的主要数据类型及其基本用途&#xff1a; String&#xff08;字符串&#xff09; 存储单个键…

Python | Leetcode Python题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; class Solution(object):def containsNearbyAlmostDuplicate(self, nums, k, t):from sortedcontainers import SortedSetst SortedSet()left, right 0, 0res 0while right < len(nums):if right - left > k:st.remove(nums[left]…

Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇

Nginx七层&#xff08;应用层&#xff09;反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

攻防世界 Web_python_template_injection(flask模版注入)

学习文章&#xff1a;https://www.freebuf.com/column/187845.html https://blog.csdn.net/weixin_54515836/article/details/113778233 flask的渲染方法有render_template和render_template_string两种。 render_template()是用来渲染一个指定的文件的。使用如下 return re…

时序分解 | Matlab基于ESMD极点对称模态分解

时序分解 | Matlab基于ESMD极点对称模态分解 目录 时序分解 | Matlab基于ESMD极点对称模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 ESMD&#xff08;Extreme-point Symmetric Mode Decomposition&#xff09;是一种信号分解方法&#xff0c;用于提取信号中的模…

MVC 返回集合方法,以及分页

返回一个数据集方法 返回多个数据集方法 》》定义一个Model public class IndexMoel {public List<UserGroup> UserGroup{get;set;}public List<User> User{get;set;}}》》》控制器 //db 是 EF 中的上下文 var listnew IndexModel(); list.UserGroupdb.UserGro…

2-30 基于matlab的神经网路下身份证号码识别算法

基于matlab的神经网路下身份证号码识别算法&#xff0c;二值化、膨胀处理、边界区域划分、身份证字符分割&#xff0c;字符识别算法&#xff0c;输出识别结果。并保存识别结果。程序已调通&#xff0c;可直接运行。 2-30 神经网络 身份证识别 图像处理 - 小红书 (xiaohongshu.c…

Python强大的数据转换功能库之awswrangler使用详解

概要 在现代数据工程和数据科学领域,AWS(亚马逊云服务)是一个非常重要的平台。它提供了丰富的服务,包括S3、Glue、Redshift等,这些服务在数据存储、处理和分析中发挥了关键作用。Python的awswrangler库是一个强大的工具,旨在简化与AWS服务的交互。awswrangler库提供了一…

Python | Leetcode Python题解之第227题基本计算器II

题目&#xff1a; 题解&#xff1a; class Solution:def calculate(self, s: str) -> int:n len(s)stack []preSign num 0for i in range(n):if s[i] ! and s[i].isdigit():num num * 10 ord(s[i]) - ord(0)if i n - 1 or s[i] in -*/:if preSign :stack.append(…

机器学习笔记之监督学习

基本概念 用于训练模型的数据集称为&#xff1a;训练集 成本函数/代价函数&#xff1a;指示模型的运行情况&#xff0c;用于衡量训练数据与该直线的拟合程度。将预测值和目标值做差&#xff0c;该差值也被称为“损失值”。 例如我们需要计算平均的平方误差来衡量 成本函数/…

日常学习-20240710

1、一次一千万条数据插入和删除案例&#xff1a; 第一次&#xff1a;插入--批量插入&#xff0c;每次插入5000条数据&#xff0c;总耗时28min,数据无异常 删除--通过sql语句一次性删除&#xff0c;总耗时1h52min;一次删除的数据过多导致mysql的备份恢复文件极其庞大&#xff0…

百度搜索框制作HTML+CSS

样品图 自制效果图&#xff08;附注释&#xff09; <!DOCTYPE html> <html lang"en"><head><!-- 定义文档的字符编码为UTF-8&#xff0c;以支持中文等多语言字符 --><meta charset"UTF-8" /><!-- 设置页面在不同设备上的…

【Python 基础】控制流 - 2

程序执行 在第1篇的 hello.py 程序中,Python 开始执行程序顶部的指令,然后一条接一条往下执行。“程序执行”(或简称“执行”)这一术语是指当前被执行的指令。如果将源代码打印在纸上,在它执行时用手指指着每一行代码,你可以认为手指就是程序执行。 但是,并非所有的程…