本文概述 HotCloud ’18 中的一篇讲云原生文件系统的论文,来回顾下存储领域大佬 Arpaci-Dusseau 在 6 年前对云原生文件系统的想法。论文链接 hotcloud18-paper-arpaci-dusseau.pdf (usenix.org) 文章的贡献主要有两点: 提出一些云原生文件系统所应该遵循的设计原则; 提出一种云原生文件系统 CNFS 的大概设计。 云原生文件系统的设计原则 作者把设计的原则分为存储和计算两个层次,但总体来讲都聚焦于成本和性能的权衡。这种权衡是云环境相对传统环境更容易做到的,也是云原生文件系统设计的核心。 存储原则 可靠性已经通过更底层的云存储服务得到保障。云存储比如对象存储 S3 或者块存储 EBS,已经提供了多副本等可靠性功能,因此云原生文件系统可以把这部分功能卸载到更底层的云存储。 云存储空间便宜且可以无限扩展。云原生文件系统的设计应该尽量利用这些便宜的存储空间对数据建立索引,用空间换时间。 云存储与本地存储有很大差异:带宽通常较高;延迟根据服务分级不同差异明显;更快分级的云存储访问成本反而更低。因此云原生文件系统应该按冷热层次化地放置数据,来兼顾成本和高性能。 CPU 原则 云上 A 个 CPU 计算 B 秒和 B 个 CPU 计算 A 秒(A * B = B * A)的成本相同。因此,云原生文件系统的计算任务应该尽量并行起来,这样可以在尽可能短的时间内完成任务。 类似于云存储的空间,云上的 CPU 数量也很容易扩展。云原生文件系统应该按需地使用 CPU,但也需要注意根据负载的变化对之前扩容的 CPU 数进行缩容,来控制成本。 由于云存储可以在计算节点间共享,可以适当的将与文件系统相关后台任务从计算节点分离出来,让计算节点的 CPU 资源更多地用于计算任务。 云服务中 […]