V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Shingen
V2EX  ›  NAS

如何搭建一台既能满足个人娱乐又能用于业余项目的 nas

  •  1
     
  •   Shingen · 2022-11-01 12:04:30 +08:00 · 5236 次点击
    这是一个创建于 535 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT, 小弟目前有一台群晖的 DS220j 主要用来当下载机和 smb 使用,另外使用群晖的 drive 在所有终端中同步文档和照片。 最近开始搞一些业余项目,使用三台工作站搭建了一个集群,用群晖的 nas 做 nfs server 给 k8s 使用。由于 ds220j 只有双盘位和千兆口,所以想要添加一台新的主机做的存储节点。

    想请教一下各位怎么搭建满足如下需求的 NAS 目前想到的需求是:

    1. 可扩展,为以后增加容灾节点或者迁移做准备。
    2. 4 盘位以上,两盘 raid0 提供 smb 给机顶盒用,两盘 raid 1 做 nfs server

    目前不太清楚的是:

    1. NAS 系统选择上:选择 TrueNAS ,Unraid ,还是直接使用 Linux
    2. 硬件配置上,选择什么级别的 CPU 比较好?

    小弟目前还有另一个方案就是继续用群晖当下载机来用,利用一台比较老的戴尔 sff 主机( i5-4590/8G )加一块万兆网卡来当 nfs server

    32 条回复    2023-01-10 15:15:20 +08:00
    liuhan907
        1
    liuhan907  
       2022-11-01 12:26:54 +08:00
    TrueNAS 唯二的缺点,硬件相对更贵,扩容相对麻烦。如果你不在乎这两点那当然首选 TrueNAS 。Unraid 的问题是想增加性能很难,基本只能上 SSD 才行。另外 Unraid 配置 raid 极为麻烦。
    考虑你要 raid ,要万兆,要 NFS 这种纯同步写的文件服务。我觉得你还是考虑 TrueNAS ,配置好 SLOG 。
    vmebeh
        2
    vmebeh  
       2022-11-01 12:42:42 +08:00 via iPhone
    zfs 最好上 ecc
    RecursiveG
        3
    RecursiveG  
       2022-11-01 12:58:31 +08:00
    自己配 NAS 就装个标准 Linux 学学怎么使用命令行呗。
    asdf12303116
        4
    asdf12303116  
       2022-11-01 16:02:44 +08:00
    zfs 的 raidz 扩容快落地了( https://github.com/openzfs/zfs/pull/12225),头铁的话可以用开发者分支( https://github.com/ahrens/zfs/tree/raidz-expand)

    raidz 扩容功能基本完成了,估计明年就会合并进主线. TrueNas 更新估计要到后年了

    还是 TrueNas/Linux 好点
    mxT52CRuqR6o5
        5
    mxT52CRuqR6o5  
       2022-11-01 16:18:59 +08:00
    unraid 性能差,但组阵列非常灵活,容量不同的盘都可以放到一起组阵列,并且可以很容易的增删阵列中的硬盘,提供的 docker gui 相当好用;除了性能还有一个很大的问题就是原生文件服务的支持,unraid 原生的文件服务只有 smb 、nfs 和 ftp ,需要其他的文件服务比如 webdav 、sftp 就得自己折腾 docker ,并且折腾出来也不能和 unraid 的账户系统互通(自己独立一个账号系统)
    truenas 的 zfs 性能很好,对配置有要求,阵列越大需要越多的内存,并且官方推荐要你用 ecc 内存,扩容只能更换整组阵列的硬盘(如果不用开发者分支的话)或者新增一组相同硬盘数量的阵列,没有原生 docker 的支持,只有个 jails
    群晖综合来说比较省心,raid 扩容相比 zfs 多一些灵活性,可以一个一个硬盘地往 raid 阵列里添加硬盘,虚拟机性能差,也不能给虚拟机里直通硬件什么的
    tediorelee
        6
    tediorelee  
       2022-11-01 18:22:16 +08:00 via iPhone
    @mxT52CRuqR6o5 scale 已经支持 docker 了呀
    webcape233
        7
    webcape233  
       2022-11-01 18:29:19 +08:00 via iPhone
    专业设备干专业的事 all in one all in boom
    mxT52CRuqR6o5
        8
    mxT52CRuqR6o5  
       2022-11-01 18:37:14 +08:00
    @tediorelee 看来我用的版本不对,我用的 core😂
    buruoyanyang
        9
    buruoyanyang  
       2022-11-01 18:40:01 +08:00
    目前一台 Unraid 做底层,AIO 系统使用中,整体运行稳定,除了发生了一次猫把计算机关掉的意外。感觉整体 AIO 用起来还是没有那么舒服,建议专业的设备干专业的事情。
    dabaibai
        10
    dabaibai  
       2022-11-01 18:44:44 +08:00
    我用 NUC 搞一台 AIO 。 美滋滋。 从不担心性能
    liuhan907
        11
    liuhan907  
       2022-11-01 20:08:00 +08:00
    @mxT52CRuqR6o5 core 也没什么不好,scale 目前在性能上还是比 core 差一些。如果是纯存储的话 core 我反而觉得更合适。
    qinrui
        12
    qinrui  
       2022-11-01 20:44:13 +08:00 via iPhone
    windows server 2022

    8*16T 硬盘
    tediorelee
        13
    tediorelee  
       2022-11-01 22:17:59 +08:00
    @mxT52CRuqR6o5 scale 原生支持 docker 了,不过底层用的是 k3s
    tediorelee
        14
    tediorelee  
       2022-11-01 22:18:24 +08:00
    @liuhan907 同意,只是升级到 scale 装一些 app 玩更方便
    putaosi
        15
    putaosi  
       2022-11-02 00:50:37 +08:00 via iPhone
    windows server 是最好的 nas 系统
    Shingen
        16
    Shingen  
    OP
       2022-11-02 02:40:59 +08:00 via iPad
    目前个人比较偏向 truenas ,存储节点上的 docker 对我来说并非刚需,我是打算用来存储 dl 的模型文件,所以在性能和扩展性的取舍上目前还是比较偏向性能。另外还有一点偶像光环,就是看到李沐大佬最近发的 vlog ,他搭 nas 时也用了 truenas 。
    allanpk716
        17
    allanpk716  
       2022-11-02 08:56:06 +08:00
    我现在的方案是,存储与计算分离。

    群晖做视频下载,照片管理,小或者数据重要的 docker 部署(比如 bitwarden ,PG 数据库),VPN 回家。

    然后提供 SMB 给一台 NUC 10 ( unraid ,i7 32GB 内存,不做 raid , 不是不想做,是接口有限,并且希望小巧 ,数据完全依赖群晖存储),后者跑一些有一定计算要求的服务,同时开启一台 Windows Server 虚拟机长期挂机跑一些临时写的东西,有时候想要远程回家折腾点东西,就再动态开启一台 Win11 虚拟机用一下。

    这样的好处是,群晖大概率没有升级的必要,就算要升级,以群晖的生态,也很容易迁移到新的群晖上。

    NUC 如果要换其他机器,也是可以直接拿虚拟机的镜像就可以开用了,其他的都是 docker-compose 和 config 信息,迁移起来也轻松。
    permaylau
        18
    permaylau  
       2022-11-02 10:02:45 +08:00
    既要 XXXX ,还要 XXXX ,对于电子设备来说,就是一个故障不断增加的过程。这个故障不仅仅软件上的 BUG ,还有操作上的问题。我觉得还是纯粹一点,会好点。比如看电影,你可以买个 DVD ;玩游戏,买个掌机;至于 NAS ,就纯粹做个文件存储。我都是旧电脑,装上 server 2008 ,直接用 ntfs 硬盘,做文件冷存储机。用的时候,开机;不用的时候关机。
    libook
        19
    libook  
       2022-11-02 10:37:30 +08:00
    先决定要多少个硬盘口;固定 4 盘可以用 Intel 的板载 CPU ,比如 J 开头的;希望日后接很多盘可以选带 PCI-Ex16 的主板,日后搞张 PCI-E 转 SATA 的卡,我见过最高能转 24 个 SATA 口的,不过价钱也比较贵。
    只用来做磁盘阵列的话,现在的 CPU 基本都不会成为瓶颈吧。
    用啥系统建议你都试试,选顺手的,比如我有 15 年 Linux 经验,就喜欢装个 Debian 自己配;如果你想省事就就找个傻瓜系统,比如黑群晖。
    另外得看 UPS 是不是够用。
    xiaoyuesanshui
        20
    xiaoyuesanshui  
       2022-11-02 11:16:09 +08:00
    搞一个标准 linux
    存储目录、程序目录、项目目录分开。
    我的是 ESXI+DEBIAN.
    操作系统放在虚拟机的虚拟磁盘
    存储 mount 专门的存储分区
    应用程序也有专门的分区,与虚拟机分离
    项目同理

    将来某一天,事有不协,比如虚拟机炸了。
    起一个新虚拟机,存储、程序、项目分别挂在回去
    docker-compose 全部搞定
    shentar
        21
    shentar  
       2022-11-02 17:57:00 +08:00
    给集群用,如果对带宽要求高的话,肯定是要 raid 卡+分布式存储软件(虽然只有一个节点,需要多盘的并发访问)。仅仅只是跑满单个磁盘,那就普通的 samaba 共享就够了。
    plasmetoz
        22
    plasmetoz  
       2022-11-02 18:27:22 +08:00
    存算分离吧,现在是单独的一个 truenas 跑 zfs 开 iscsi,然后其他的 pve/esxi 通过万兆网接进来按需划分存储盘。zfs 挂几个 ssd 做 l2arc 和 special 性能感觉还行。
    当然要是有钱上纯闪架构+ceph 就更好了。。。
    Shingen
        23
    Shingen  
    OP
       2022-11-03 01:30:32 +08:00
    Updates:

    打算采用楼上说的存算分离方案,在 Facebook Marketplace 200 刀收了一台 dell t420 带 8 个 3.5 热插拔硬盘位,配置是 2 * Xeon 2420 + 2 * 16G ECC DDR3. 采购了 8 块 SAS 硬盘,准备搭建 TrueNAS 开 iSCSI 。

    另外在 eBay 上买了 10 根 16G 的内存条计划把插槽插满,CPU 不知道能不能升级,如果可以的话,打算从淘宝逆向海淘两个 2470 v2 。

    后续的升级计划是买个 pci 转 m2 的转接卡加个傲腾做缓存,然后加一个万兆卡。如果需要扩容就把光驱位拆了,在淘宝买个硬盘架,还能再扩容四块 3.5 硬盘
    ccxuy
        24
    ccxuy  
       2022-11-29 14:37:10 +08:00
    @dabaibai 我也打算入个 NUC ,但是存储池这块怎么解决?至少 4~8 个 3.5 寸盘位吧
    ccxuy
        25
    ccxuy  
       2022-11-29 14:38:49 +08:00
    @allanpk716 我也这么打算搞个 NUC ,请问存储是外挂一个磁盘阵列好呢,还是找个比如 ARM4 盘位的群晖之类的好?
    ccxuy
        26
    ccxuy  
       2022-11-29 14:40:27 +08:00
    @xiaoyuesanshui 有道理,请问你 compose 和其他配置文件那些怎么备份的呀,一个个复制感觉还挺麻烦
    xiaoyuesanshui
        27
    xiaoyuesanshui  
       2022-11-30 08:57:11 +08:00
    @ccxuy #26 部署的时候,compose 文件需要一个一个弄,但是往往开源项目的 github 页面上都有成熟的 compose 文件模板,可以 down 下来按照自己的情况编辑。

    配置文件可以通过映射到本地持久化

    但是有一个事情要注意,docker-compose 文件、配置目录、数据目录要与 linux 目录分开。比如你搞一个 program 目录,然后 mount 上一个独立的分区。这样如果虚拟机炸了,等你新起虚拟机的时候,把这个独立分区再 mount 回这个 program 目录,然后再重新一个一个起 docker-compose 服务。
    由于 docker-compose 文件,配置目录,服务数据,都是在这个独立分区里,目录如果和炸机前一致,那服务就可以无缝过度
    allanpk716
        28
    allanpk716  
       2022-11-30 21:34:36 +08:00
    @ccxuy NUC 我直接用群晖 SMB 挂载来使用的,数据安全更好。只用了一个 SSD 256GB 跑系统
    openaq
        29
    openaq  
       2023-01-04 11:56:54 +08:00
    @qinrui 请问下存储是做的存储池吗
    qinrui
        30
    qinrui  
       2023-01-05 00:02:21 +08:00 via iPhone
    @openaq 四块组 raid 存重要资料,其他盘直接使用放下载之类的不重要的资料
    ccxuy
        31
    ccxuy  
       2023-01-09 11:19:03 +08:00
    @allanpk716 我还想 PT 跑些下载任务,需要长时间运行,不知道 SMB 挂载的方式会不会有什么缺点,比如读写会不会卡 IO 之类的,在 windows 上貌似 SMB 访问磁盘有问题的时候,会整个资源管理器都失去响应。。。
    allanpk716
        32
    allanpk716  
       2023-01-10 15:15:20 +08:00
    @ccxuy 卡住就是网络问题(自己遇到的情况),目前用起来很稳定。但是你得确保提供 SMB 服务的设备不能轻易掉电,并且应该是在 SMB 提供者启动完毕后才把使用者启动,否则也会有故障( docker 设置 unless stop 一般也足够)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2765 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:40 · PVG 20:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.