超越 Kubernetes 中的文件和块存储
在本世纪初,世界上的总数据总计达到2 ZB。今天,它已增长到59 ZB。在短短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。

比较网络硬件和存储硬件之间最快的数据传输速度,很明显网络比存储更快。
规模
为了应对极端规模,更快的网络硬件以及混淆单个端点后面的计算机群集的功能使更好地通过网络而不是本地驱动器上存储数据。
在网络上将数据对象视为不可变Blob的这种存储形式也称为对象存储。
应用程序通过网络将数据存储到存储享受的好处NO本地数据-即它们变成无国籍人士。
无状态
无状态应用程序是云迁移和成功进行云操作的必要步骤。无状态应用程序更易于配置,更易于扩展,并且在发生故障时更易于处理。
对象存储是无状态应用程序的关键启动器。暂时地,对象存储是云迁移的关键推动力之一。
Kubernetes
当前(2020年11月),Kubernetes仅支持文件和块存储-两者都是本地存储形式。CSI(容器存储接口)标准是Kubernetes支持文件和块存储的机制。CSI充当文件或块存储与容器之间的桥梁。
在对象存储的情况下,CSI施加的原语不适用。对象存储中的分配单位是存储桶。存储桶是位于单个端点下的对象的集合。
为了支持对象存储,我和我的团队向Kubernetes引入了Bucket API。该API将用于两个目的:
对象存储供应商与kubernetes的接口
应用程序使用对象存储的标准机制
在当前状态下,它支持4种操作
CreateBucket
DeleteBucket
授予访问权限
撤销访问
名称是不言自明的。满足以上4种操作的任何供应商都可以与Bucket API兼容。BucketAPI的提案已于2020年10月20日正式接受,并且计划在Kubernetes的v1.21版本中达到alpha状态。
尽管处于早期阶段,但这项工作是朝正确方向迈出的一步。作为Kubernetes的一项正式的新兴功能,我们很高兴欢迎大家参与其发展。

请通过sales@minio.org.cn与我联系,或者与BucketAPI工作组中的任何同事联系。