首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux软件-RAID4 4/RAID4 5和CPU的使用

Linux软件-RAID4 4/RAID4 5和CPU的使用
EN

Server Fault用户
提问于 2014-03-11 12:56:47
回答 3查看 4K关注 0票数 2

对于RAID4或RAID5,对于每条数据位,存储一个奇偶校验位。例如,如果我写0驱动A和1驱动B,那么奇偶校验位1被存储在驱动C上。如果每一位数据都需要计算奇偶校验位,这难道不是Linux软件RAID的一个巨大的CPU负载吗?例如,如果我将1GB文件写入RAID5数组,那么8000000000 XOR计算需要由CPU执行吗?

EN

回答 3

Server Fault用户

发布于 2014-03-11 13:31:07

正如TomTom所说,它不再像以前那样残酷了;但是当CPU越来越快的时候,磁盘驱动器变得越来越大。

这就是为什么在软件中执行RAID-5并不是一个好主意,除非您真的不关心性能。RAID-5在硬件中至少确保保留处理器的唯一工作是执行这些奇偶校验计算;此外,硬件通常具有类似NVRAM这样的功能,以防止阵列损坏,以及优化计算的能力,例如知道正在编写整个条带,并跳过(非常昂贵的)读修改-写入周期,以支持简单的奇偶重新计算。

即使硬件RAID加速,一次修改非常小的数据块的应用程序--尤其是数据库--在RAID-5 (和RAID-6,这在奇偶计算方面甚至更昂贵)的性能也会非常糟糕。对于这种应用程序,只需把你的手放在你的口袋,得到额外的光盘,并执行RAID-1+0。

票数 3
EN

Server Fault用户

发布于 2014-03-11 13:22:57

你的意思是说对于一个拥有6-8个核心的现代CPU来说,所有的CPU都比RAID卡上的CPU强大很多倍?

今天不是,这是2013年。现在CPU可以处理很多东西。除非您运行了相当多的SSD来执行RAID,否则使用单个内核的能力会有问题。

票数 2
EN

Server Fault用户

发布于 2021-04-20 17:00:51

由于3.12内核(请参阅badfc6b294c98e887624bff53644ad21提交851c30c9),现在有一个参数/sys/block/mdX/md/group_thread_cnt (其中X是raid设备的块设备号),它控制内核可以用来执行奇偶校验计算的线程数。将一个大于一个的数字放入该文件中(例如,如果您希望使用4个CPU),当您有非常快的磁盘(例如echo)时,4会特别有用。

注:此选项仅适用于正在计算奇偶校验的RAID5 5/6设置。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/581271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档