V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kisshere
V2EX  ›  程序员

高并发下, 2 块 nvme ssd 硬盘组 RAID1 和 RAID0 哪个读取速度快?

  •  
  •   kisshere · 2022-05-09 08:44:21 +08:00 · 3695 次点击
    这是一个创建于 965 天前的主题,其中的信息可能已经有所发展或是发生改变。
    场景为高并发下,只读不写,随机访问大量的小文件
    另外,组 RAID1 和 RAID0 对 ssd 硬盘,哪种硬盘寿命更长?
    13 条回复    2022-05-09 20:51:15 +08:00
    villivateur
        1
    villivateur  
       2022-05-09 08:46:03 +08:00
    要看 RAID 策略,理论上 RAID1 和 RAID0 的读取速度最大为 2N ,但某些 RAID1 策略速率仍是 N 。

    对寿命的影响的话,两种策略我觉得一样
    liuliangyz
        2
    liuliangyz  
       2022-05-09 08:50:57 +08:00
    明显 raid0 啊,raid0 的速度是分别向 2 块硬盘写入速度,速度是两块硬盘最低速度*2 。
    寿命看,也是 raid0 寿命长一倍,因为每个盘数据量只写一半。
    容量是*2
    而 raid1 是同一个数据同时向 2 快硬盘写入数据,同样的数据 2 块硬盘都写入。所以坏了一块硬盘,另一块硬盘有完整的备份。
    容量是 1 块盘的容量。

    你可以理解 raid1 是双硬盘热备。
    yousabuk
        3
    yousabuk  
       2022-05-09 08:54:44 +08:00 via iPhone
    当然 raid0
    spacezip
        4
    spacezip  
       2022-05-09 09:10:16 +08:00
    人家说的是高并发的只读 如果 raid 卡性能足够 我认为 0 稍快 但是差距不大 而且高端的 nvme 单盘就快吃满 40g 接口了 除非多口 bond 或者上 100g 400g 的接口
    cpstar
        5
    cpstar  
       2022-05-09 09:10:24 +08:00
    RAID0 和 RAID1 完全不一样啊,为啥要对比 RAID0 和 RAID1 的性能?对 RAID0 、1 的内容没有理解么?

    读 SSD 不磨损 SSD (相较于写),随便读。但是从 RAID0 的机制上,RAID0 的效率更高一些,毕竟总口带宽是单盘的 n 倍。至于盘内随机访问的效率,并发,那就是单盘的能力了。而数据在盘间的分散存储之后的读取,就看阵列卡的效率了。
    pusheax
        6
    pusheax  
       2022-05-09 09:24:40 +08:00
    如果讨论碎片文件读取,其实不能用常规思维去思考。
    raid0 的连续写入性能确实会有明显提升。但说到 4k 性能,受其它因素影响很明显,如阵列卡性能。
    之前贴吧有老哥测试 SATA SSD 组 Raid ,和傲腾 SSD 组 Raid ,4k 性能提升很有限。
    其实目前顶级 SSD 单盘的 4K 已经很夸张了,不妨关注一下 SSD 本身?走 PCIE4 的顶级 SSD 速度是可以比一般的 SSD 速度 x2 更快的。
    还有缓存的设计,钱多可以全砸内存上,做特别大的 mem cache 性能提升会更明显。
    cat9life
        7
    cat9life  
       2022-05-09 10:01:53 +08:00
    我也不明白为什么拿 Raid1 和 Raid0 比速度...
    ivan_wl
        8
    ivan_wl  
       2022-05-09 10:51:40 +08:00
    楼上那些说 raid0 快的,是真的懂么?
    理论上顺序读,raid1 == raid0 ;
    小数据量随机读,raid1 > raid0 。

    raid0 和 raid1 的读可以理解为在所有盘上做负载均衡。
    raid0 的 interleave 单元是 chunk ,一般 chunk 都是比较大的。
    raid1 读可以做 lba 级别的 interleave ,这个粒度远小于 raid0 。

    而且 raid0 每个盘上只有部分的数据,raid1 每个盘都有全部数据。
    raid0 的随机读最差可能全落在单独的某个盘上。raid1 没有这个问题。
    microxiaoxiao
        9
    microxiaoxiao  
       2022-05-09 13:03:06 +08:00 via Android
    应用场景是只读不写的话,对寿命没有影响,ssd 主要是擦出次数受限,理论上说,raid0 并行读取基本是快于 1 的,举例:你在读取 100G 数据,raid1 相当于读取数据的时候不完全平均读取,那么可能就是一个 60G 一个 40G ,而 raid0 的话,写入都基本均分了,基本同时读取 50G ,两个盘读取比较均匀,但是坏了就没了哟。
    documentzhangx66
        10
    documentzhangx66  
       2022-05-09 13:26:11 +08:00
    不一定,因为 Raid 卡配置不一样,Raid 业务逻辑的实现不一样,严谨度不一样,会导致性能会有巨大差异。

    比如严谨的厂家会让 raid 1 也带上校验。此时没校验的 raid 0 当然更快。但如果 raid 1 不带校验,那么读操作 raid1 比 raid 0 少一次 IO ,当然会更快。
    stevefan1999
        11
    stevefan1999  
       2022-05-09 15:55:27 +08:00
    只讀不寫那肯定是 RAID1 讀取速度 Xn 了( RAID1 也就是 mirror 實際上不只兩個盤) 而且自帶多重保護 但是如果想要平衡點就 RAID0

    當然有錢的話 我全都要(指 RAID10 )
    如果你將來想升級做 RAID10 RAID1 是一個不錯的選擇( RAID10=先 RAID1 雙盤再再雙盤下 RAID0 )
    sonaxyjh
        12
    sonaxyjh  
       2022-05-09 17:47:18 +08:00
    我自己测试 z690 的 raid0 下 4k 成绩和单盘对比几乎没有提升,顺序读大概提升 30%
    原理上来说,Raid0 的寿命应该是两块盘 TBW 上限之和,raid1 寿命等同寿命最短的那块,但就算坏了一块数据还在
    autoxbc
        13
    autoxbc  
       2022-05-09 20:51:15 +08:00
    @ivan_wl #8 一些控制器对 RAID 1 的策略是单盘读双盘写,所以对读取没有任何速度提升,比如最常见的板载 Intel RST RAID 和 Windows 动态磁盘镜像卷
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2867 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.