V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Cryse
V2EX  ›  问与答

请教磁盘阵列相关知识

  •  
  •   Cryse · Aug 26, 2019 · 5033 views
    This topic created in 2445 days ago, the information mentioned may be changed or developed.

    想组一套磁盘阵列保存一些拍摄的视频素材, 照片等.

    现有设备有 8 个 3.5 盘位, 然后空架子可以再装 5 个 3.5 或者 12 个 2.5 盘位, 系统目前跑着 ESXI.

    目前计划是用 10TB 或者 12TB 的 SATA 机械硬盘, 第一步准备考虑 2-4 个硬盘.

    我看主流选择是硬阵列或者 ZFS, 这两种都有点疑问想请教一下.

    如果是硬阵列的话:

    1. 阵列卡有什么推荐型号吗?
    2. 大容量硬盘不能用 RAID5, 那么 RAID6 和 RAID10 该怎么抉择呢?
    3. 假设已经建立了一组 RAID1, 能否在不手动备份或者迁移的情况下再加一组 RAID1 变成 RAID10 吗?
    4. 这种方式加一块 SSD 做缓存是怎么操作的呢?

    如果 ZFS 的话:

    1. RAIDZ1 类似 RAID5, 那 RAID5 的风险 RAIDZ1 也有吗?
    2. RAIDZ1 和 Z2 如果不是一次插满的话扩容似乎是个问题,那么 ZFS 能用 Stripe + Mirror 实现 RAID10, 并且动态扩容吗?
    3. 因为还要用到虚拟机,那么如果用 FreeNAS, 是去掉 ESXI 直接安装 FreeNAS, 然后用 FreeNAS 提供的虚拟化, 还是继续 ESXI, FreeNAS 装在虚拟机里, 把阵列卡直通给这台虚拟机呢?

    先谢谢各位大佬了~

    29 replies    2019-08-28 10:21:31 +08:00
    pubby
        1
    pubby  
       Aug 26, 2019 via Android
    zfs 你用 mirror 方式,硬盘可以 2 个 2 个加

    esxi 直通磁盘给虚拟机 freenas 吧
    zfs 不建议拿 ssd 做 l2arc 缓存,还不如多给些内存。但是可以 ssd 做 zil 写入加速

    zfs 不要用阵列卡,最好是 hba 卡
    just4id
        2
    just4id  
       Aug 26, 2019 via iPhone
    拿一个 ssd 给 esxi 做存储起一个 SmertOS 的虚拟机,然后机械硬盘 rdm 给 SmartOS 组 ZFS ( mirror 由已),划出部分空间 nfs 共享给 esxi 做存储或 samba 共享给别的 vm
    7654
        3
    7654  
       Aug 26, 2019   ❤️ 1
    说一说我的 NAS 吧,可能没参考价值
    一开始用的 RAID1,一段时间过后感觉太浪费,全拆成独立硬盘,先 rsync 同步电脑和 NAS 第一块硬盘,后面第 234 块硬盘备份第一块硬盘,哪些要同步,哪些要备份,什么时候备份,备份几份特别灵活,即使某一块硬盘挂掉,数据也还在,而且没有重建 RAID 的烦恼和超长等待时间
    MonoLogueChi
        4
    MonoLogueChi  
       Aug 27, 2019 via Android
    如果自己原本没有 raid 卡,组软 raid 就可以了,没有必要专门入手一张,按照你的要求的话,raid 卡价格应化不便宜。建议上 zfs,我以前没尝试过虚拟机,现在也打算装一台小型的 nas,打算用 hyper v 方案。你可以看一下 B 站翼王去年的一个视频,自建高性能 nas,不过视频里的那些东西都涨价了
    zhujinliang
        5
    zhujinliang  
       Aug 27, 2019 via iPhone
    阵列卡不推荐,如果阵列卡故障,可能需要购买同型号的阵列卡来恢复阵列,到时候有可能不好买这个型号了,从这个原因考虑硬件越通用可靠性越高
    RAID6 对比 RAID10,6 保证的是同组任意两盘损坏可恢复,但 10 如果恰巧同一份镜像的两个硬盘损坏,数据就丢失了
    RAID1 变不成 10,只能拷出数据再重新做阵列。并且 ZFS 选好阵列组合后也不能再调整阵列配置,只能重做。但如果不需要 0 的性能 x2 优势,可以用 LVM 的方式扩大空间
    加 SSD 缓存 Linux 上可以用 bcache,ZFS 可以直接看它的 ARC、ZIL 选项
    ZFS 的 RAIDZ1 较 RAID5 好处是恢复数据时可以根据元数据跳过不必恢复的部分,一般阵列的话是基于块的,不知道哪些是有用的数据哪些是空白区,只能扫描全阵列(但是个人感觉这点上意义不大,除非空间利用率不高)
    FreeNAS 或者说 FreeBSD 的虚拟机程序是 bhyve,我一两年前玩 BSD 时还没有比较好的前端,现在估计也差不多,基于 BSD 的虚拟化可能没有开箱可用的
    kokutou
        6
    kokutou  
       Aug 27, 2019
    首先,阵列卡的开机速度你就会忍不了。。。
    ps1aniuge
        7
    ps1aniuge  
       Aug 27, 2019
    你是有个机箱子,做 x86 架构的 raid 服务器对吧?

    1 买 ssd 硬盘,假如主板 bios 支持,就买 pcie 接口的,否则就买 sata 接口的。分 2 个分区,1 esxi,2esxi 缓存。

    2 买 3 块,或 5 块,n tb 硬盘,做 raid5。若想安全就多买一块硬盘,做 raid5+热备,或 raid6。
    raid 做好后,就是 esxi 的 /dev/sda,很简单。

    3 raid 卡,就买大众化+便宜的。按照你的机箱,需要 12 口的 raid 卡。速度呢,当然是要 6gb 的起。
    ryd994
        8
    ryd994  
       Aug 27, 2019 via Android
    一般不用硬件 raid,买阵列卡大多也是当 HBA 用
    要安全性 raid6,要性能 raid10
    不行。raid0 是条带化的,而不是简单延展
    你可以用 lvm 或者 zfs 的 cache 功能。mdadm 自己没这个功能。另外加 SSD cache 前先做测试。一般的 SATA SSD 只会拖慢。nvme 需要买企业级的,随机写延迟低的。家用的,哪怕是高端游戏款,因为没有掉电电容,导致写延迟都非常高。要达到标称 iops 需要深队列。optane 也是不错的选择,虽然跑分没高端 SSD 高,但优势在于小队列时性能也很好

    raidz1 比 raid5 好一点,但不多。单盘超过 2T 就建议 raid6 或 raidz2,根本问题在于重建时间和错误率
    不能动态扩容,但可以加 raidz2 组 raid0。或者保持阵列拓扑不变,加大每一块单盘。改变拓扑的功能有人在做,但还没做好。
    阵列卡直通。freenas 的 faq 里明确反对用虚拟机跑实际数据。尚可接受的就是 pci 直通。主要是虚拟机隔离了各种硬件信息。比如 smart 和缓存等。


    @kokutou 随便买个垃圾盘当系统盘,然后禁用阵列卡的 BIOS ROM
    msg7086
        9
    msg7086  
       Aug 27, 2019
    ESXi 一般是用硬 RAID 的。要跑 ZFS 还要日常工具的话可以考虑 Ubuntu 18.04 ZoL。
    阵列不建议扩容折腾,最好一次到位。
    说难听点,就算能扩容,一个阵列一刻不停地读写好几天就为了扩容一下,你放心吗。

    然后如果要用硬 RAID,用阵列卡。
    如果要用 ZFS,用 HBA 卡,莫用阵列模式。

    要安全保存素材的话,建议再弄个合适的云存储,比如无限容量的 Google Drive。
    Cryse
        10
    Cryse  
    OP
       Aug 27, 2019 via Android
    @pubby
    我查了下,这样两个两个加似乎不能 re-balance, 起不到 0 的作用,只能实现基本的条带功能?
    Cryse
        11
    Cryse  
    OP
       Aug 27, 2019 via Android
    @just4id
    查了下竟然有 RDM 这种好东西,之前我一直以为需要一个单独的控制器才能直通
    Cryse
        12
    Cryse  
    OP
       Aug 27, 2019 via Android
    @zhujinliang
    看来还是 ESXI 虚拟机更靠谱,那么阵列本身到底是用 Z1 Z2 还是 mirror + stripe 比较好呢?
    Cryse
        13
    Cryse  
    OP
       Aug 27, 2019 via Android
    @MonoLogueChi
    我去看看吧~
    Cryse
        14
    Cryse  
    OP
       Aug 27, 2019 via Android
    @kokutou
    这机器几乎是不关机的,而且本身是服务器板子自检就慢,所以开机时间倒是无所谓
    pubby
        15
    pubby  
       Aug 27, 2019 via Android
    @Cryse 对,2 个 mirror 后条带加入
    老数据你想发挥新加的两个盘的读性能,你只能手动 copy 一下了
    Cryse
        16
    Cryse  
    OP
       Aug 27, 2019 via Android
    @ps1aniuge
    目前已经有一块 SSD 在里面用来放虚拟机了。

    另外,可以像楼上说的那样不用 RAID 卡直接用 ESXI 的 RDM 么?
    Cryse
        17
    Cryse  
    OP
       Aug 27, 2019 via Android
    @msg7086
    无限容量 Google Drive 是直接买的吗?
    Cryse
        18
    Cryse  
    OP
       Aug 27, 2019 via Android
    @ryd994
    后面再加单独的 Z2 似乎还要再少两块硬盘的容量?有点亏啊
    Cryse
        19
    Cryse  
    OP
       Aug 27, 2019 via Android
    @pubby
    不用其他存储,原盘 COPY 能行么?
    pubby
        20
    pubby  
       Aug 27, 2019 via Android
    @Cryse 空间够就可以,比如把某个目录 copy 一份,原目录删除,再 mv 回原来的目录名。

    就是再写一遍数据就平衡了
    CallMeReznov
        21
    CallMeReznov  
       Aug 27, 2019
    选什么都不要选 R5,你信他的算法可以,但是你不能信硬盘的质量!
    momocraft
        22
    momocraft  
       Aug 27, 2019
    bhyve 命令行也不难用
    Vnaner
        23
    Vnaner  
       Aug 27, 2019
    说下最近装 nas 的体会:
    我的机箱小,散热不佳,PCIE 插槽捉急最后没有考虑上硬件 raid,选择了 zfs Stripe + Mirror,重建省事,扩容也省事,就是空间打对折。。
    操作系统上了 esxi,里面再起 freenas,把硬盘直通进去共享给其他客户端
    Cryse
        24
    Cryse  
    OP
       Aug 27, 2019
    @Vnaner
    硬盘直通使用的什么方式呢? S.M.A.R.T 能正常显示不?
    ryd994
        25
    ryd994  
       Aug 27, 2019 via Android
    @Cryse 当然应该加倍啊
    你原本 6 盘中 2 盘冗余,现在变成 12 盘 2 盘冗余,冗余度不就下来了么。这就变成 6 盘中 1 盘冗余了

    没钱玩什么 nas

    @Vnaner 你这就是不推荐的做法。freenas 不建议挂盘进去。因为即使是虚拟机磁盘直通,磁盘设备还是由宿主控制。直通只直通了数据空间给虚拟机用。虚拟机无法读 smart,也无法控制各种省电和队列参数。
    要用虚拟机,只有 PCI 直通。

    你这种情况,有两种办法:
    1. 主板上是 SATA 控制器也可以直通。但因为是在主板上,很有可能是和其他主板上的控制器共享 PCI 通道的。这种情况下就要把这个通道下的所有设备一起直通。至于其他设备能不能直通,应不应该直通,就要看情况了。
    2. 为什么不直接在物理机上跑?虚拟机完全可以放另外一台。储存节点+计算节点,所有的云都是这样做的。储存通过网络挂载给计算。
    gamexg
        26
    gamexg  
       Aug 27, 2019
    @Cryse #24 我是 gen8,freenas@esxi@gen8,板载磁盘控制器直通给 freenas,smart 等信息读取正常。
    不过好像又不能休眠硬盘的问题,我没专门测试是否无法休眠硬盘。
    pubby
        27
    pubby  
       Aug 27, 2019 via Android
    @gamexg gen8 只有 2 个 sata3 口吧
    gamexg
        28
    gamexg  
       Aug 27, 2019
    @pubby #27 记得是两个 sata3,三个 sata2。需要更多的 sata 需要上阵列卡了。
    Vnaner
        29
    Vnaner  
       Aug 28, 2019
    @ryd994 #25 大佬,我是把 ACHI Controller 直通了,上面挂的所有硬盘都分给 FreeNas 了,然后有一个 nvme 插槽被拿去当 esxi 系统盘了,但是我在 freenas 里看不到硬盘温度,首页的各种 report 也一直 loading,是哪里没配置好吗?
    迫于贫穷,暂时没打算搞两台做存储+计算...😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5623 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 07:22 · PVG 15:22 · LAX 00:22 · JFK 03:22
    ♥ Do have faith in what you're doing.