构建家庭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

相关文章

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核