V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Cryse
V2EX  ›  问与答

请教磁盘阵列相关知识

  •  
  •   Cryse · 2019-08-26 22:11:24 +08:00 · 4344 次点击
    这是一个创建于 1694 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    现有设备有 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 条回复    2019-08-28 10:21:31 +08:00
    pubby
        1
    pubby  
       2019-08-26 22:32:17 +08:00 via Android
    zfs 你用 mirror 方式,硬盘可以 2 个 2 个加

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

    zfs 不要用阵列卡,最好是 hba 卡
    just4id
        2
    just4id  
       2019-08-26 22:49:39 +08:00 via iPhone
    拿一个 ssd 给 esxi 做存储起一个 SmertOS 的虚拟机,然后机械硬盘 rdm 给 SmartOS 组 ZFS ( mirror 由已),划出部分空间 nfs 共享给 esxi 做存储或 samba 共享给别的 vm
    7654
        3
    7654  
       2019-08-26 23:30:30 +08:00   ❤️ 1
    说一说我的 NAS 吧,可能没参考价值
    一开始用的 RAID1,一段时间过后感觉太浪费,全拆成独立硬盘,先 rsync 同步电脑和 NAS 第一块硬盘,后面第 234 块硬盘备份第一块硬盘,哪些要同步,哪些要备份,什么时候备份,备份几份特别灵活,即使某一块硬盘挂掉,数据也还在,而且没有重建 RAID 的烦恼和超长等待时间
    MonoLogueChi
        4
    MonoLogueChi  
       2019-08-27 00:37:46 +08:00 via Android
    如果自己原本没有 raid 卡,组软 raid 就可以了,没有必要专门入手一张,按照你的要求的话,raid 卡价格应化不便宜。建议上 zfs,我以前没尝试过虚拟机,现在也打算装一台小型的 nas,打算用 hyper v 方案。你可以看一下 B 站翼王去年的一个视频,自建高性能 nas,不过视频里的那些东西都涨价了
    zhujinliang
        5
    zhujinliang  
       2019-08-27 00:39:02 +08:00 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  
       2019-08-27 00:54:25 +08:00
    首先,阵列卡的开机速度你就会忍不了。。。
    ps1aniuge
        7
    ps1aniuge  
       2019-08-27 01:04:04 +08:00
    你是有个机箱子,做 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  
       2019-08-27 05:59:23 +08:00 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  
       2019-08-27 08:07:41 +08:00
    ESXi 一般是用硬 RAID 的。要跑 ZFS 还要日常工具的话可以考虑 Ubuntu 18.04 ZoL。
    阵列不建议扩容折腾,最好一次到位。
    说难听点,就算能扩容,一个阵列一刻不停地读写好几天就为了扩容一下,你放心吗。

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

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

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

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

    没钱玩什么 nas

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

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