前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云存储硬核技术内幕——(29) 供给侧改革

云存储硬核技术内幕——(29) 供给侧改革

作者头像
用户8289326
发布2022-08-04 16:01:03
3980
发布2022-08-04 16:01:03
举报
文章被收录于专栏:帅云霓的技术小屋

在上期,我们提到了,在kubernetes中,静态PV/PVC的存储分配方式,会在造成资源浪费的同时,很大一部分Pod的存储需求得不到满足。

这本质上是因为静态PV的指令性资源调配与未知的PVC需求之间的矛盾,表现的现象则是部分尺寸的PV卷产能过剩,而部分尺寸的PV卷产能不足。

让我们翻回新中国的经济发展史,我们会发现,每当国民经济的平衡明显发生偏移时,党中央就会动态调整资源调配,进行供给侧改革,让供给的产品更适应国民经济的需要。那么,我们有没有办法在kubernetes的存储分配中借鉴这一方法呢?

答案是肯定的——

这种机制叫做StorageClass。

StorageClass是一种对存储资源的抽象定义,提供了存储资源的动态供给模式。

让我们再看看前文中的栗子。

有3个Pod,叫做Pod A,Pod B和Pod C,分别通过PVC申请了3GiB, 2GiB和 5GiB的存储,并指定存储卷分别来自AWS-ebs(AWS提供的块存储服务),RBD(前文提到过的Ceph块存储服务)和iSCSI(通用的通过TCP-IP实现的块存储服务),如下表所示:

容量(GiB)

卷提供者

Pod A

3.0

AWS-ebs

Pod B

2.0

RBD

Pod C

5.0

iSCSI

在应用了StorageClass之后,StorageClass层可以接管PVC,并根据PVC的请求,在StorageClass管理的存储池中为PVC请求分配卷,并挂载给Pod,如下图所示:

图中,StorageClass将存储资源分类为Golden, Silver和Bronze三个等级(Class)。这就是StorageClass的来历。

我们发现,StorageClass可以在AWS-ebs、Ceph RBD和普通iSCSI池中分配存储资源。它还能支持哪些资源呢?

我们翻开Kubernetes的文档:

https://kubernetes.io/docs/concepts/storage/storage-classes/

里面有一张表:

原来,StorageClass除了可以支持前面描述的三种存储之外,还能支持微软Azure(块和文件),GlusterFS(文件),OpenStack Cinder(OpenStack提供的块存储管理系统),普通NFS(文件),Vsphere (VMWare虚拟化系统中块存储管理系统)等数十种存储提供者。

与Kubernetes中大部分资源类似,存储资源在Kubernetes中,也使用yaml进行描述。以Vsphere为例:

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast
provisioner: kubernetes.io/vsphere-volume
parameters:
  diskformat: zeroedthick

这个yaml中,provisioner字段描述了存储提供者为vsphere-volume,也就是指定了存储类型来自Vsphere。

parameters字段中,有一个参数diskformat为zeroedthick。这个参数是什么意思呢?

熟悉VMWare的同学可能会想起来,在esxi中创建虚拟磁盘的时候,磁盘分配方式有三个选项可选:

thin provision: 创建时虚拟磁盘并不分配所有空间,需要使用时再分配;

zeroedthick:创建时为虚拟磁盘分配所有空间;

eagerzeroedthick:创建时为虚拟磁盘分配所有空间并用0填充;

也就是说,Vsphere会接管这一参数,在创建磁盘时按照该参数创建!

但是,如果其他云存储系统不支持这一参数呢?

这个问题将留到后面解答。

另外一个问题是,如果我们期望把不在上述列表中的存储提供者也接入storageclass,有没有办法实现呢?

这两个问题我们在下期解答。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档