Swift 的磁盘使用模式是 RAID 可能的最坏情况,使用 RAID 5 或 6 时性能会迅速下降。
但我没有找到任何详细说明或解释。所以,在我深入研究 Swift 源代码之前,我想问问社区:
- RAID 友好的“磁盘使用模式”应该是什么?
- Swift 的磁盘使用有什么特别之处?
Swift 的磁盘使用模式是 RAID 可能的最坏情况,使用 RAID 5 或 6 时性能会迅速下降。
但我没有找到任何详细说明或解释。所以,在我深入研究 Swift 源代码之前,我想问问社区:
为什么首先你需要 Swift 的 RAID?
Swift 原生使用 XFS,大部分操作都由其原生算法RING处理。
或者,如果您想深入了解 RING 算法,我的同事对 RING 进行了视频深入研究。
希望能帮助到你,
阿图尔
人们使用 RAID 卡的原因如下:
1) 防止单个驱动器故障(RAID 0 除外) 2) 获得比单个驱动器更高的 I/O 性能(RAID 5、6、10、50 等,以及使用 BBU 写回缓存等) 3) 使用更多驱动器比主板可以支持的 RAID/HBA 卡 4) 一些存储管理功能(GUI 或命令行工具)
Swift 磁盘 I/O 是 1) 在 A/C/O 服务器上大多是随机的 2) 并行高并发 3) 放一个对象的 6 倍放大系数(写入 3 个对象并至少更新 3 个容器,更不用说其他复制过程了,审计师ETC)
Openstack Swift 旨在使用商品服务器和硬盘驱动器,这意味着在质量相当好的硬件上成本最低,通常不包括 RAID 卡。但是,一个服务器需要 RAID/HBA 卡才能使用 8-10+ 个 HDD,所以实际上很多人会使用 RAID 卡,但将每个 HDD 配置为单个驱动器 RAID0,或者使用 HBA 卡,如果主板不支持服务器机箱可以容纳的 HDD 数量。
您当然可以使用 RAID5、6、10,并失去一些容量来获得一些保护和性能,但这通常比需要的成本更高。Swift 具有可调的复制因子,默认为 3x。