RAID磁盘使用模式和性能

时间:2013-12-18 09:00:31

标签: filesystems raid openstack-swift

OpenStack Swift deployment documentation说:

  

Swift的磁盘使用模式是RAID最糟糕的情况,使用RAID 5或6可以很快降低性能。

但我没有找到任何详细说明或解释。所以,在深入研究Swift源代码之前,我想问一下社区:

  • RAID友好的“磁盘使用模式”应该是什么?
  • Swift的磁盘使用情况有什么特别之处?

3 个答案:

答案 0 :(得分:1)

为什么首先你需要使用Swift RAID?

Swift原生使用XFS&大多数操作都由其原生算法RING处理。

或者,如果你想深入挖掘RING算法my colleagues did a video deep dive in on RING.

希望它有所帮助,

阿图尔

答案 1 :(得分:1)

由于其Ring数据结构,Swift是完全随机的IO模型。简而言之,Ring将文件统一映射到所有磁盘。

如果您具有较高的随机写入工作负载,则RAID 5或RAID 6性能非常糟糕。查看更多信息here

该场景类似于数据库。数据库还可以统一存储文件,例如mongodb。您会发现他们也不建议使用RAID 5或RAID 6。建议仅使用RAID 10。

答案 2 :(得分:1)

  1. 什么应该是RAID友好的磁盘使用模式"是?
  2. 人们使用RAID卡的原因如下:

    1)防止单个驱动器故障(RAID 0除外) 2)获得比单个驱动器更高的I / O性能(RAID 5,6,10,50等,以及使用BBU写回缓存等) 3)使用比主板可支持的RAID / HBA卡更多的驱动器 4)一些存储管理功能(GUI或命令行工具)

    1. 关于Swift的磁盘使用情况有什么特别之处?
    2. Swift磁盘I / O是 1)在A / C / O服务器上大多是随机的 2)并行高并发 3)放置一个对象的6倍放大系数(写3x对象并至少更新3x容器,更不用说其他复制过程,审核员等)

      Openstack Swift旨在使用商用服务器和硬盘驱动器,这意味着在质量相当高的硬件上成本最低,而硬件通常不包括RAID卡。但是,人们需要RAID / HBA卡才能在服务器中使用8-10 + HDD,因此在实践中很多人会使用RAID卡但是将每个HDD配置为单个驱动器RAID0,或者使用HBA卡,如果主板不能支持服务器机箱可以容纳的HDD数量。

      您当然可以使用RAID5,6,10,并且会失去一些容量以获得一些保护和性能,但这通常会比所需的成本更高。 Swift具有可调复制因子,默认为3x。