构建家庭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构建一个Hexo博客发布工具

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

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

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

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作