十年初,全球数据总量达到2泽字节。如今已增长到59泽字节。短短10年间,增长了30倍。
非结构化数据
当今大多数数据都是照片、视频或某种特定时间点的事件。这些数据本身没有固有的结构。它们也被称为非结构化数据。
由于数据结构事先未知,因此完全替换数据对象比编辑其一部分更容易。这种从不编辑、只创建和替换的数据形式称为不可变数据。
由于不对此类数据进行编辑,因此更难以损坏。不可变性间接提高了持久性。
硬件发展
除了数据本身的持久性外,硬件的持久性和规模也得到了发展,以支持数据的指数级增长。例如,2010年至2020年,商用最快网络链路的速度从40 Gbit/s提高到100 Gbit/s。

存储领域也展现出类似的增长。顶级NVMe SSD的最大写入速度约为5 Gbyte/s读取和3.5 Gbyte/s写入。以Gbit计算,读写速度分别为40 Gbit/s和28 Gbit/s。

比较网络硬件和存储硬件之间最快的传输速度,可以清楚地看出网络比存储更快。
规模
为了解决极端规模问题,更快的网络硬件以及将机器集群隐藏在单个端点后面的能力,使得通过网络存储数据比在本地驱动器上存储数据更佳。
这种通过网络存储数据的方式,其中数据对象被视为不可变的块,也称为对象存储。
通过网络存储数据的应用程序可以享受不在本地存储任何数据的优势——即它们变得无状态。
无状态
无状态应用程序是云迁移和成功云操作的必要步骤。无状态应用程序更易于配置、更易于扩展,并且在发生故障时更易于处理。
对象存储是无状态应用程序的关键推动因素。由此可见,对象存储是云迁移的关键推动因素之一。
Kubernetes
目前(2020年11月),Kubernetes仅支持文件和块存储——这两种都是本地存储的形式。CSI(容器存储接口)标准是Kubernetes支持文件和块存储的机制。CSI充当文件或块存储与容器之间的桥梁。
对于对象存储,CSI强加的原语不适用。对象存储中的分配单位是存储桶。存储桶是在单个端点下容纳对象的一个集合。
为了支持对象存储,我和我的团队在Kubernetes中引入了存储桶API。此API将服务于两个目的
- 对象存储供应商到Kubernetes的接口
- 应用程序使用对象存储的标准机制
在其当前状态下,它支持4个操作
- 创建存储桶
- 删除存储桶
- 授予访问权限
- 撤销访问权限
名称不言自明。任何满足上述4个操作的供应商都可以成为兼容存储桶API的供应商。存储桶API的提案于2020年10月20日正式获批,计划在Kubernetes v1.21版本中达到alpha状态。
尽管尚处于早期阶段,但这项工作是朝着正确方向迈出的一步。作为Kubernetes中一个官方的即将推出的功能,我们很高兴欢迎大家参与其开发。

请通过sid@min.io与我联系,或与存储桶API工作组中的任何同事联系。您也可以加入我们每周的简报,时间为美国太平洋标准时间每周四上午10点。