您可以将阿里云云盘创建的存储卷挂载到容器中以满足数据的持久化存储需求,避免数据因容器的重启或迁移而丢失。通过阿里云CSI组件,您可以使用PersistentVolumeClaim(PVC)的方式在容器中挂载使用云盘静态存储卷和云盘动态存储卷。
如何选择云盘
云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。根据云盘性能不同,您可以选择使用ESSD AutoPL云盘、ESSD云盘、ESSD Entry云盘以及上一代云盘(SSD云盘、高效云盘和普通云盘)。各云盘类型对比如下所示,您可以根据应用场景进行选择。更多信息,请参见块存储概述。
云盘类型 | 特点 | 应用场景 | 计费 |
|
|
| |
| 时延敏感的应用或者I/O密集型业务场景:
| 云盘容量费 | |
ESSD Entry云盘 说明 仅通用算力型(U实例)和经济型实例规格族e支持挂载ESSD Entry云盘。 |
|
| 云盘容量费 |
云盘类型 | 特点 | 应用场景 | 计费 |
SSD云盘 |
|
| 云盘容量费 |
高效云盘 |
|
| 云盘容量费 |
普通云盘 | 高性价比 | 成本较低,适用于对存储性能要求不高的开发与测试业务 | 云盘容量费 |
使用限制
限制项 | 说明 |
云盘类型 | 不支持包年包月的云盘挂载和卸载。请使用按量付费云盘或叠加使用存储容量单位包SCU。 |
是否可以共享 | 非共享存储,只能同时被一个Pod挂载。 |
与ECS实例的关系 |
|
挂载数量及容量 |
|
挂载应用类型 | 有状态应用(StatefulSet)。 说明 无状态应用(Deployment)挂载云盘时Replica需要配置为1,无法为每个Pod配置独立的存储卷,且不能保证挂载、卸载的优先顺序。此外,由于Deployment的升级策略,重启Pod时新的Pod可能一直无法挂载,故不推荐使用。 |
应用参数配置 | 使用云盘存储卷时,如果在应用模板中配置了securityContext.fsGroup参数,kubelet在存储卷挂载完成后会执行 |
存储规格
性能类别 | 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生命周期的结束而消失。
业务需求 | 场景说明 | 参考链接 |
存储应用数据 |
| |
磁盘容量不足 | 如果您使用的是云盘动态存储卷,当云盘使用空间不足时,您可以通过以下三种云盘扩容方式来解决磁盘容量不足的问题。更多信息,请参见云盘扩容概述。
|
|
变更云盘类型 | 当您的业务场景需要扩容,后期需要更高的IOPS时,您可以变更云盘的类型。例如将SSD云盘变更为ESSD云盘。 | |
备份云盘数据 | 将云盘自身的备份(快照)恢复机制和Kubernetes服务集成,通过VolumeSnapshot资源实现云盘的备份(快照)功能。通过PVC的DataSource功能实现数据的恢复。 | |
加密存储在云盘上的数据 | 云盘加密适用于有高安全性或合规性要求的应用场景,您无需自建和维护密钥管理基础设施,即可保护数据的隐私性和自主性。 | |
实现云盘存储数据安全 | 当云盘在线扩容引发数据损坏或云盘非预期删除导致数据丢失时,您可以通过ESSD类型云盘数据卷的自动极速快照功能,实现数据的快速恢复。 |
计费说明
待挂载的云盘类型必须是按量付费,包年包月的云盘无法被挂载。当您将集群中的ECS实例从按量付费转换成包年包月时,不能将云盘一起转换成包年包月,否则云盘将无法被挂载使用。您可以通过购买存储容量单位包的方式降低云盘使用成本。关于存储容量单位包的计费信息,请参见存储容量单位包。
存储类(StorageClass)本身不收费,通过存储类自动创建出的云盘按照按量付费的云盘进行计费。
关于云盘计费项信息,请参见块存储计费。关于云盘的价格信息,请参见云服务器ECS产品详情页。
更多信息,请参见计费。
常见问题
如果您在容器中使用云盘时遇到问题,可参见云盘存储卷FAQ进行排查。
相关文档
您可以通过CSI组件实现数据卷的创建、挂载和卸载。更多信息,请参见管理CSI组件。
如果需要不同类型的存储资源,您可以定义多个存储类用于提供多样化的存储选项,满足不同工作负载的需求。更多信息,请参见存储类(StorageClass)。