Linux软件-RAID4 / RAID5和CPU使用率

RAID4或RAID5的情况下,对于每个条带的数据位,存储奇偶校验位。 例如,如果我将0写入驱动器A,将1写入驱动器B,则将奇偶校验位1存储到驱动器C.在Linux软件的情况下,如果对于每一位数据,位需要计算? 例如,如果我写一个1GB的文件到RAID5arrays,然后8000000000异或计算需要由CPU执行?

正如TomTom所说的那样,它并不像以前那样残酷; 但随着磁盘驱动器变得越来越大,而CPU越来越快。

这就是为什么在软件中使用RAID-5 不是个好主意,除非你真的不关心性能。 硬件中的RAID-5至less可以确保有一个保留的处理器,其唯一的工作就是做这些奇偶校验计算。 同样,硬件通常具有像NVRAM一样的function来防止数组损坏,并且能够优化计算,例如通过知道正在写入整个条带并且跳过( 非常昂贵的)读取 – 修改 – 写入周期而偏向于简单的平价重新计算。

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

你的意思是一个现代CPU的6-8核心比RAID卡上的function强多了吗?

不是今天,这是2013年.CPU现在可以处理很多东西。 使用单个内核的function将会遇到问题,除非您将相当多的SSD运行到RAID。