NAS简介及软硬件方案分析

目录

什么是 NAS

NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。

这是百度百科对 NAS 的定义。按照个人理解,NAS 诞生有如下原因和作用:

  • 专业的人做专业的事 ,专业的设备(硬件)承载专有的业务。

    当今社会工作岗位被精细化分工,软件工程上微服务概念也如火如荼,这些概念诞生的背后机理是相似的。回到 NAS,它将存储业务从主服务器剥离,软件上实现了存储和主业务的松耦合,硬件上实现了专有硬件设备存储。这样做的好处显而易见:

    • 主服务器崩溃不会导致存储数据丢失。
    • 独立的存储硬件方便进行数据备份,配套软件能对存储业务进行专门优化。
  • 个人数据存储方案多了一种选择。

    截至 2020 年 11 月,国内免费公有云只剩百度一家,其他诸如坚果云,115 等都转向收费市场。海外,谷歌宣布 2021 年 6 月终止无限照片免费存储,三星宣布 2021 年 8 月底关闭云相册同步功能,并删除相册数据。免费的才是最贵的,这一真理再次得到检验。

    个人是赞同云服务转向收费模式的,前提是服务的稳定性,隐私性。动辄删除用户数据,关停服务器的行为一直是悬在用户头上的达克莫里斯之剑。既然都接受收费模式了,为何不选择自建云呢?NAS 为我们提供了一种新的数据存储方案,本质上跟多年前随身带个移动硬盘进行备份没有区别。

    个人使用 NAS 的好处:

    • 随时备份手机照片:免去 iCloud 等各种昂贵的云存储服务。
    • 家庭影音中心:手机上装个媒体播放器,通过 samba,ftp,dlna 等方式播放 NAS 上的电影。
    • 录像存储:部分 NAS 支持录像存储功能,可以将家庭摄像机的录像存储到 NAS 上,进行备份和回放。
    • bt/pt 下载机[1]:有松鼠病的朋友可以 24h 不间断下载网络资源。
    • 其他数据中心:例如我个人就将 NAS 当作笔记数据的存储中心。

NAS 软硬件方案对比

软硬件一体化方案

所谓软硬件一体化,即是 NAS 厂家销售硬件 + 软件一整套 NAS 解决方案。市场上常见的 NAS 解决方案厂家有群晖,威联通,铁威马等。

  • 优点:用户上手门槛较低,有厂家技术支持和成熟的软件生态。
  • 缺点:价格昂贵,例如群晖最低配的两盘位 NAS 裸机[2]价格也要 2000 +。

通用硬件 + NAS 操作系统

Intel NUC 迷你主机,J1900 工控机,Gen10 服务器 ,有折腾过软路由,HTPC 的朋友肯定对这些硬件耳熟能详。从硬件角度看,NAS 也是*立迷你主机,只要符合一定性能要求的设备都能作为 NAS 主机。

淘汰的笔记本电脑,树莓派,路由器,台式机,从技术上讲这些硬件作为 NAS 主机都行得通,但各有各的局限。个人认为 NAS 主机必须具备如下硬件条件:

  • 低功耗:功耗控制在 15W 以下(不算硬盘功耗)。
  • 24h 全天候运行:个人不赞同用到 NAS 再远程唤醒的方式(WOL),一来不稳定,二来用户体验糟糕。
  • 稳定:这是 NAS 最核心的功能诉求。
  • 低噪音:有独立机架和弱电间的土豪可忽略这一条。
  • 至少两个 SATA 口:最少接两块硬盘,一块存储,一块备份。实在没条件的可用 USB3.0 + 易驱线 扩展硬盘。
  • 至少一个千兆网口:局域网数据传输速率至少保证千兆,有条件可上万兆。
  • 建议使用 x86 硬件,兼顾性能和软件兼容性。

说完硬件再讲讲软件。NAS 操作系统是针对 NAS 业务功能做过定制裁剪的系统,用户可以开箱即用。下面列出一些常用的 NAS 操作系统,个人没有试用过也不做任何评价。

  • 黑群晖 。
  • FreeNAS 。
  • OpenMediaVault 。
  • RockStor 。

方案优缺点

  • 优点:硬件*度很高,用户根据需求可以攒出超高性价比的设备。软件上也可以选择自己心仪的 NAS 操作系统,不必被 NAS 厂家捆绑。
  • 缺点:用户上手门槛较高,需要具备一定的软硬件专业知识。自建的 NAS 软硬件稳定性是个很大问题,出问题后没有厂家的专业技术支持。

通用硬件 + 通用操作系统

在前一种方案的硬件基础上,直接使用 Ubuntu、CentOS 等通用操作系统作为 NAS 操作系统。

  • 优点:软硬件*度最高,可以实现 all in one 的需求[3]
  • 缺点:对用户的软硬件综合素养要求非常高,非常折腾、耗时,不建议没有软件背景的用户尝试此方案[4]

开篇提到过,NAS 是业务分离的产物。这里却又提到了 all in one 的需求,其实并不矛盾。

  • 业务分离只是软件上的分离,松耦。资金不富裕的情况下,硬件上 all in one 对家用来说性价比很高。
  • 通过 docker 等软件技术解决 all in one 的部分劣势[5]

小结

  • 有自建 NAS 需求,且资金充裕不愿意折腾的用户,建议购买软硬件一体化的 NAS 解决方案。随着更多资本进入 NAS 市场,NAS 价格也会更亲民。
  • 不满足 NAS 厂家提供的功能,想发挥闲置硬件余热,不想花太多时间维护软件功能的用户,可以选择通用硬件 + NAS 操作系统的方案。
  • 具备软硬件专业知识,或想通过自建 NAS 学习软硬件知识,喜欢折腾,想实现 all in one 的用户,可以选择通用硬件 + 通用操作系统的方案。

我的 NAS 软硬件方案

我的硬件是一台 5200U 的工控机:

  • CPU:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz,TDP 15W 。
  • 内存:8GB DDR3L 1600。
  • 存储接口:1 x msata,1 x SATA3.0,2 x USB3.0。
  • 网口:4 个 I211AT 千兆网卡。

工控机是两年前买来折腾软路由的,一直闲置吃灰[6],拿来当 NAS 主机绰绰有余,但毫无性价比可言。

软件方案上,为了最大发挥硬件性能和定制化 all in one 需求,选择的是 Ubuntu + docker 方案。

  • seafile:开源私有企业网盘,云存储解决方案。
  • chevereto:开源图床解决方案。
  • aria2:开源下载器,支持 HTTP/HTTPS、FTP、SFTP、BitTorrent、Metalink 协议。
  • nginx-proxy:著名的反向代理软件,支持 80/443 端口复用,分发二级域名请求给不同 docker 容器。

NAS简介及软硬件方案分析

为什么不用 ESXi 等虚拟机方案

  • 5200U 只有 2 个核心(4线程),顶配支持 8G 内存,多开虚拟机比较吃力,降低用户体验。
  • 使用 docker 也能实现各业务运行环境隔离目的。

为什么使用 Ubuntu 而不是 CentOS,FreeNAS

  • 宿主机选择 Ubuntu 纯粹是个人喜好,完全可以换成 CentOS,Debian,Archlinux 等其他 Linux 发行版。
  • 不选择 FreeNAS 等专用 NAS 操作系统则是为了最大程度的软件*度,实现 all in one 。

为什么选择 seafile 而不是 nextcloud

  • seafile 技术栈是 c + python;nextcloud 是 php 。作为嵌入式开发者,自然更倾向于 seafile 。
  • 文件同步性能和稳定性:seafile 支持差分同步,虽然牺牲了传统的文件系统目录结构,但有 SeaDriver,Fuse 等补救措施。nextcloud 使用标准文件系统保存数据,但网友反馈小文件多了后 performance 极差,推测是 PHP 的锅。
  • 扩展需求:个人网盘的核心诉求是文件同步稳定性,数据保存安全性,而不是多人协作等边角功能,nextcloud 插件系统对我来说有点鸡肋。
    顺带吐槽下:nextcloud 插件中心加载速度极慢,用户体验很差,主要原因是插件中心服务器位于国外。

为什么使用 nginx-proxy

  • 不必记忆容器端口号:docker 容器基于 web 管理,部署 nginx-proxy 反代,可以复用 NAS 主机 80/443 端口,通过二级域名访问不同 docker 容器。

为什么要使用 chevereto

  • 问题等价于:什么是图床 + 自建图床(chevereto)有什么好处?
  • 个人当前的笔记方案是 seafile + typora + chevereto 。
    chevereto 用于解决图片存储问题:即使调整笔记目录结构,也不会导致笔记中的图片引用失效[7]

为什么不用 imgurl

  • 首次尝试的图床软件是 imgurl,但其 docker 版本无法使用,才切换成 chevereto 。

总结

自建 NAS 有几个目的:

  • 让闲置硬件发挥余热。
  • DIY 过程中学习完善前后端软件知识体系。

本文是 NAS 系列文章的开篇,后面将陆续补充:

  • seafile 个人网盘自建过程及注意事项。
  • chevereto 个人图床自建过程及注意事项。
  • aria2 下载机部署方案。
  • nginx-proxy 反向代理及 HTTPS 证书申请方法。
  • 数据备份方案分析和 UPS 必要性分析。

附录

脚注


  1. 下载机功能对硬盘性能要求更高,注意不要使用叠瓦盘,保证数据定期备份。 ↩︎

  2. 不带硬盘。 ↩︎

  3. NAS,HTPC,软路由等业务可以在一台硬件设备上实现。 ↩︎

  4. 硬件可以买现成的,软件有无数的技术细节需要处理。 ↩︎

  5. 一个业务宕机影响其他业务运行。 ↩︎

  6. 家用软路由是伪需求,不建议大家入坑。后续有时间再单独写篇文章解释这个事。 ↩︎

  7. 直接用 seafile 保存图片,只能引用相对路径,一旦笔记目录调整,所有图片引用都会失效。 ↩︎

上一篇:DellEMC UnityVSA 部署指南(1)


下一篇:通过NAS对分布式系统CAP理论的理解