全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:云盘存储卷概述

更新时间:Nov 15, 2024

您可以将阿里云云盘创建的存储卷挂载到容器中以满足数据的持久化存储需求,避免数据因容器的重启或迁移而丢失。通过阿里云CSI组件,您可以使用PersistentVolumeClaim(PVC)的方式在容器中挂载使用云盘静态存储卷和云盘动态存储卷。

如何选择云盘

云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。根据云盘性能不同,您可以选择使用ESSD AutoPL云盘、ESSD云盘、ESSD Entry云盘以及上一代云盘(SSD云盘、高效云盘和普通云盘)。各云盘类型对比如下所示,您可以根据应用场景进行选择。更多信息,请参见块存储概述

云盘类型

特点

应用场景

计费

ESSD AutoPL云盘

  • 容量与性能可解耦

  • 支持预配置云盘性能

  • 支持性能突发

  • ESSD云盘所适用的场景

  • 云盘容量固定,云盘性能要求高

  • 业务波动较大,波峰高频出现,需应对突发业务

  • 云盘容量费

  • 预配置性能费(开启后按量收费)

  • 突发性能费(开启后按量收费)

ESSD云盘

  • 高IOPS

  • 低延迟

时延敏感的应用或者I/O密集型业务场景:

  • 大型OLTP数据库

  • NoSQL数据库

  • Elasticsearch分布式日志

云盘容量费

ESSD Entry云盘

说明

通用算力型(U实例)经济型实例规格族e支持挂载ESSD Entry云盘。

  • 高IOPS

  • 低延迟

  • 开发与测试业务

  • 作为系统盘

云盘容量费

上一代云盘

SSD云盘、高效云盘和普通云盘属于上一代云盘产品,已在部分地域及可用区逐步停止售卖。您在选择云盘时,建议选用ESSD PL0云盘或ESSD Entry云盘替换高效云盘和普通云盘,选用ESSD AutoPL云盘替换SSD云盘。

云盘类型

特点

应用场景

计费

SSD云盘

  • 高随机读写性能

  • 高可靠性

  • I/O密集型应用

  • 中小型关系数据库和NoSQL数据库

云盘容量费

高效云盘

  • 高性价比

  • 高可靠性

  • 开发与测试业务

  • 作为系统盘

云盘容量费

普通云盘

高性价比

成本较低,适用于对存储性能要求不高的开发与测试业务

云盘容量费

使用限制

限制项

说明

云盘类型

不支持包年包月的云盘挂载和卸载。请使用按量付费云盘或叠加使用存储容量单位包SCU

是否可以共享

非共享存储,只能同时被一个Pod挂载。

与ECS实例的关系

  • 云盘与ECS实例须处于同一可用区,不支持跨可用区挂载。

  • 云盘类型和ECS类型需要匹配才可以挂载,否则会挂载失败。高效云盘不支持七代及以上的ECS实例挂载使用。更多云盘类型和ECS类型的匹配关系,请参见实例规格族

挂载数量及容量

  • 每个节点最多挂载云盘数量由ECS机型决定,更多信息,请参见实例规格族

  • 单块云盘容量最小为1 GiB (ESSD PL0, ESSD AutoPL),最大32 TiB(32768 GiB)。

挂载应用类型

有状态应用(StatefulSet)。

说明

无状态应用(Deployment)挂载云盘时Replica需要配置为1,无法为每个Pod配置独立的存储卷,且不能保证挂载、卸载的优先顺序。此外,由于Deployment的升级策略,重启Pod时新的Pod可能一直无法挂载,故不推荐使用。

应用参数配置

使用云盘存储卷时,如果在应用模板中配置了securityContext.fsGroup参数,kubelet在存储卷挂载完成后会执行chmodchown操作,导致挂载时间延长。如需减少挂载时间,请参见启动挂载了云盘的Pod时提示Unable to attach or mount volumes: unmounted volumes=[xxx], unattached volumes=[xxx]: timed out waiting for the condition中的问题原因3。

存储规格

性能类别

ESSD AutoPL云盘

ESSD云盘

ESSD Entry云盘

SSD云盘

高效云盘

普通云盘

性能级别PL(Performance Level)

容量和性能解耦,基准性能等同于ESSD PL1,可额外购买预配置性能、开启性能突发

PL3

PL2

PL1

PL0

单盘容量范围(GiB)

1~65,536

1,261~65,536

461~65,536

20~65,536

1~65,536

10~32,768

20~32,768

20~32,768

5~2,000

最大/最小IOPS

1,000,000/3,000

1,000,000/64,850

100,000/24,872

50,000/2,800

10,000/1,812

6,000/1,880

25,000/2,400

5,000/1,960

数百

最大/最小吞吐量(MB/s)

4,096/125

4,000/750.5

750/350.5

350/130

180/100

150/101.5

300/130

140/103

30~40

单盘IOPS性能计算公式

基准性能:

max{min{1,800+50*容量, 50,000}, 3,000}

预配置性能:min{预配置IOPS, 50,000}

性能突发:min{实例规格,1,000,000}

min{1,800+50*容量, 1,000,000}

min{1,800+50*容量, 100,000}

min{1,800+50*容量, 50,000}

min{ 1,800+12*容量, 10,000 }

min{1,800+8*容量, 6,000}

min{1,800+30*容量, 25,000}

min{1,800+8*容量, 5,000}

单盘吞吐量性能计算公式(MB/s)

基准性能:

max{min{120+0.5*容量, 350}, 125}

预配置性能:min{16 KB*预配置IOPS/1024, 单盘最大吞吐量}

性能突发:min{实例规格,4 GB/s}

min{120+0.5*容量, 4,000}

min{120+0.5*容量, 750}

min{120+0.5*容量, 350}

min{100+0.25*容量, 180}

min{100+0.15*容量, 150}

min{120+0.5*容量, 300}

min{100+0.15*容量, 140}

数据可靠性

99.9999999%

99.9999999%

99.9999999%

99.9999999%

99.9999999%

99.9999999%

99.9999999%

99.9999999%

99.9999999%

单路随机写平均时延(ms),Block Size=4K

0.2

0.2

0.2

0.2

0.3~0.5

1~3

0.5~2

1~3

5~10

API参数取值

cloud_auto

cloud_essd

cloud_essd

cloud_essd

cloud_essd

cloud_essd_entry

cloud_ssd

cloud_efficiency

cloud

  • 单盘性能计算公式说明:

    • 以单块ESSD PL0云盘最大IOPS计算公式为例说明:起步1,800,每GiB增加12,上限为10,000。

    • 以单块ESSD PL0云盘最大吞吐量计算公式为例说明:起步100 MB/s,每GiB增加0.25 MB/s,上限为180 MB/s。

  • SSD云盘的性能因数据块大小而异,数据块越小,吞吐量越小,IOPS越高,如下表所示。

    数据块大小(KiB)

    IOPS最大值

    吞吐量(MB/s)

    4

    约25,000

    约100

    16

    约17,200

    约260

    32

    约9,600

    约300

    64

    约4,800

    约300

说明

关于云盘性能的详细介绍,请以块存储性能介绍为准。

使用场景

  • 对磁盘I/O要求高的应用,且没有共享数据的需求,例如MySQL、Redis等数据存储服务。

  • 高速写日志。

  • 持久化存储数据,不会因Pod生命周期的结束而消失。

业务需求

场景说明

参考链接

存储应用数据

  • 云盘静态存储卷:当您已经创建好云盘,且云盘满足使用限制条件,您可以使用已有的云盘创建PV,然后通过PVC在工作负载中挂载存储,静态存储卷不支持扩容。

  • 云盘动态存储卷:无需预先创建云盘,创建PVC时指定存储类(StorageClass),即可自动创建云盘和对应的PV对象,动态存储卷支持扩容。

磁盘容量不足

如果您使用的是云盘动态存储卷,当云盘使用空间不足时,您可以通过以下三种云盘扩容方式来解决磁盘容量不足的问题。更多信息,请参见扩容云盘存储卷

  • 动态在线扩容:无需中断业务Pod,即可实现云盘及其文件系统的自动扩容。

  • 手动扩容:需要手动扩容云盘存储卷,且手动执行resize2fs实现文件系统的扩容。

  • 自动扩容:通过定义一种或多种扩容策略,在存储卷的使用率高于某个阈值时自动扩容存储卷。

变更云盘类型

当您的业务场景需要扩容,后期需要更高的IOPS时,您可以变更云盘的类型。例如将SSD云盘变更为ESSD云盘。

变更云盘类型

备份云盘数据

将云盘自身的备份(快照)恢复机制和Kubernetes服务集成,通过VolumeSnapshot资源实现云盘的备份(快照)功能。通过PVC的DataSource功能实现数据的恢复。

使用云盘存储快照

加密存储在云盘上的数据

云盘加密适用于有高安全性或合规性要求的应用场景,您无需自建和维护密钥管理基础设施,即可保护数据的隐私性和自主性。

实现云盘存储数据安全

当云盘在线扩容引发数据损坏或云盘非预期删除导致数据丢失时,您可以通过ESSD类型云盘数据卷的自动极速快照功能,实现数据的快速恢复。

云盘存储数据安全最佳实践

计费说明

  • 待挂载的云盘类型必须是按量付费,包年包月的云盘无法被挂载。当您将集群中的ECS实例从按量付费转换成包年包月时,不能将云盘一起转换成包年包月,否则云盘将无法被挂载使用。您可以通过购买存储容量单位包的方式降低云盘使用成本。关于存储容量单位包的计费信息,请参见存储容量单位包

  • 存储类(StorageClass)本身不收费,通过存储类自动创建出的云盘按照按量付费的云盘进行计费。

  • 关于云盘计费项信息,请参见块存储计费。关于云盘的价格信息,请参见云服务器ECS产品详情页

更多信息,请参见计费

常见问题

如果您在容器中使用云盘时遇到问题,可参见云盘存储卷FAQ进行排查。

相关文档

  • 您可以通过CSI组件实现数据卷的创建、挂载和卸载。更多信息,请参见管理CSI组件

  • 如果需要不同类型的存储资源,您可以定义多个存储类用于提供多样化的存储选项,满足不同工作负载的需求。更多信息,请参见存储类(StorageClass)