Swift 的磁盘使用模式是 RAID 可能出现的最坏情况,使用 RAID 5 或 6 时性能会很快下降。
但我没有找到对此的任何阐述或解释。因此,在深入研究 Swift 源代码之前,我想询问社区:
为什么首先需要使用 Swift 进行 RAID?
Swift 原生使用 XFS,大部分操作由其名为 RING 的原生算法处理。
或者,如果您想深入了解 RING 算法,我的同事在 RING 上做了一个视频深入研究。
RAID 友好的“磁盘使用模式”应该是什么?
人们使用RAID卡的原因如下:
Swift 的磁盘使用有什么特别之处?
Swift 磁盘 I/O
Openstack Swift 设计用于使用商用服务器和硬盘,这意味着在相当优质的硬件上成本最低,而这些硬件通常不包括 RAID 卡。然而,在服务器中使用 8-10 个以上硬盘需要 RAID/HBA 卡,因此在实践中许多人会使用 RAID 卡,但将每个硬盘配置为单驱动器 RAID0,或者如果主板不支持,则使用 HBA 卡服务器机箱可容纳的硬盘数量。
您当然可以使用 RAID5、6、10,并损失一些容量来获得一些保护和性能,但这通常会带来比所需更高的成本。 Swift 具有可调的复制因子,默认为 3x。