构建家庭NAS之一:用途和软硬件选型

2024-06-23 10:52

本文主要是介绍构建家庭NAS之一:用途和软硬件选型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用途

最近装了一台NAS,把结果记录一下,也给有兴趣的人做个参考。

我原来有一台基于英特尔Atom 525的NAS,一直勤勤恳恳地正常服役,突然有一天毫无征兆地挂了,只能换一台新的。

我的用途很简单:

  • 备份我和家人的个人文件。
  • 备份家庭照片和视频。
  • 下载电影和剧集,并在电视等设备上观看。不过我不是重度用户。
  • 因为工作是IT相关,所以偶尔会测试一些虚拟机和docker的应用。

成品还是组装

  • 成品NAS。优点是比较省心,缺点就是可能会贵一点,可定制性差一些。
    在成品NAS里面,我很喜欢极空间Z4pro的外形,喜欢这个颜值的可以考虑一下。
    z4pro

  • 自己组装的话,配置更加灵活。如果有可以利用旧电脑或者零件也会比较省钱。还有就是可以享受折腾的乐趣(这一点因人而异,不争论)。

我自己的选择是组装。配置如下:

  • 主板:铭瑄H610ITX 2LAN。看中这块主板的原因有:ITX主板可以装进我的老机箱,2个M.2和4个SATA,双网卡2.5G+1G,价格也不算太贵,618期间叠加各种优惠之后571元。
    h610itx2lan

网上对铭瑄主板的质量和BIOS有一些争议,我买之前也有些犹豫,但御三家没有合适的ITX主板,所以最后还是买了铭瑄。到目前为止还没有翻车,也没有碰到兼容性问题或者不好用的情况。后来想其实也不用如此纠结,几百块的事情,实在不合适出二手也就是亏点钱而已。

  • CPU:Intel 12300T。看重它性能够用,价格便宜(某宝480元),支持硬解码,而且功耗也低。因为要跑虚拟机/docker,性能不能太弱。
  • 内存:金士顿Fury 32GB DDR4 3200。狗东价格469元。内存配得比较大,一方面是我选择的TrueNAS Scale系统比较吃内存,另一方面也需要为虚拟机/docker预留一些。
  • 机箱:原来的老旧ITX NAS机箱,6盘位。
  • 电源:原来的海韵450W金牌。
  • 数据盘:希捷4TBx2 + 西数2TBx2。其中一个是新买的希捷(海康)4T 497元,其它3个利旧。
  • 系统盘:英特尔傲腾二代M10 16G NVME,咸鱼上13.9包邮买的。

新增硬件支出2030.9元。仔细一算其实也不是很便宜,不考虑硬盘费用,如果加上机箱和电源的购买价格,基本上也要2500了。而z4pro普通版的价格是2500,性能版3500左右。我这套相对于z4pro性能版在性能上有一些优势。12300T相对于Z4Pro性能版上的N305处理器的geekbench5分数对比如下:
geekbench

而成品NAS贵出来的部分就相当于是工业设计、系统软件和售后服务的价格了,值不值那1000多块大家自己评估。

软件选择

组装NAS的软件选择有很多,常见的包括:

  • 黑群晖,功能完善,用户众多,适合不想折腾的人。我没选的原因是群晖没有什么独占且我必须要用到的功能。而且在硬件选择和软件升级上也有很多限制,在有替代方案的情况下,我还是先考虑其它吧。

  • Unraid,最吸引人的地方在于硬盘的配置比较灵活,可以任意添加不同容量的硬盘,添加一块或者多块也是随意。如果很看重这种灵活性,可以选Unraid。我不喜欢的地方有:Unraid数据保护是通过校验盘来实现,这种机制对于读取性能和数据可靠性都有一些影响;再一个是Unraid要付费。所以否决了。

  • TrueNAS Scale。这是iXsystems公司开发的开源NAS软件。这家公司其实是为企业做存储解决方案的,所以在设计上优先考虑数据可靠性和性能,不过这也导致它选择忽略一些家庭用户的特殊需要。对于像我这样的家庭用户,TrueNAS的优点是界面美观,操作方便,基于ZFS的存储管理非常优秀。ZFS的存储压缩、文件快照这些功能都很有用。TrueNAS对于家用来说,最不方便的地方有两个:一是磁盘安装或者替换必须成组。比如你想做镜像,那就要买两块相同容量的硬盘,容量升级的时候也必须两个盘一起换掉。二是系统盘要安装在一个单独的盘上,会占用一个硬盘接口,有些时候也会浪费一些空间。
    B站有个对比TrueNAS和Unraid的视频,感兴趣的可以看看:
    【TrueNAS 与 Unraid - 哪一个是最适合我的 HomeLab 的 NAS 操作系统】

  • 任选一个Linux发行版。适合linux命令玩得溜的大神,能够有最大的灵活性。

我最后选择了TrueNAS Scale。看重的是TrueNAS作为免费软件,却有接近商品化NAS的可靠性和使用体验。

完成效果

  • 整机功耗:在1个NVME和4个机械硬盘的情况下,启动功耗在50W左右,有时候会飙到70W+,待机功耗约39W。按照每个硬盘3W,傲腾系统盘2W,所以机器本身的待机功耗约在39-3*4-2=25W。
  • 速度:我的交换机只有千兆,通过samba(也就是Window文件共享)写入大文件的速度接近70-80MB/s,wifi连接情况下有时会超过100MB/s,基本达到交换机的理论速度了,还算过得去。
    写入速度

不过奇怪的是读取速度反而比写入速度低很多,只有写入的一半左右,大概在40多兆/s。
读取速度
这个速度我觉得是有问题的,理论上镜像方式读取速度应该接近写入速度的两倍。不过我安装Ubuntu+samba测试的结果也是如此,按照网上的建议调整了samba的一些参数效果也不明显。暂时就这样了,等有时间的时候再说。
如果读者知道问题原因和解决方案,请不吝赐教。

另外,我也在本机上用dd测试了拷贝文件的速度,读取速度能够超过172MB/s,所以应该不是硬盘和文件读取速度的原因。
dd-1m

这篇关于构建家庭NAS之一:用途和软硬件选型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086950

相关文章

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(