存储系统作为支撑业务系统的基础设施软件的核心之一,一直处于不断变化和革新中。从早期的物理机时代、到虚拟化技术的成熟普及,到现在大规模部署的云环境都有存储系统在背后默默支撑。近年来,以容器、微服务、DevOps 为代表的云原生技术,受到了市场的广泛关注,其能够更好地支持企业的云原生应用、自动化管理和业务创新,满足用户在任何时间、任何地点对任何应用的响应需求。相应地,存储系统作为支撑数据持久化、承载业务稳定运行的核心组件,同样面临深刻变革。
什么是云原生存储?
要理解云原生存储,我们首先要了解云原生技术的概念,CNCF 对云原生定义如下:
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
简言之:云原生应用和传统应用并没有一个标准的划分界限,其描述的是一种技术倾向,即越符合以下特征的应用越云原生:
-
应用容器化
-
服务网格化
-
声明式 API
-
运行可弹性扩展
-
自动化的 DevOps
-
故障容忍和自愈
-
平台无关,可移植的
云原生存储的概念来源于云原生应用,顾名思义:一个应用为了满足云原生特性的要求,其对存储所要求的特性是云原生存储的特性,而满足这些特性的存储方案,可以称其为云原生的存储。
为什么需要云原生存储?
云原生存储依然是容器化面临的主要挑战之一
根据 CNCF 的调研报告:在使用/部署容器过程中遇到的挑战中,依然有高达 29% 的人选择存储。存储几乎和安全问题一样,成为应用容器化过程中的主要难点。
目前,云原生存储遇到的挑战表现在以下几个方面:
易用性:存储服务部署、运维复杂,云原生化程度低,缺少与主流编排平台整合。
高性能:大量应用 IO 访问,IOPS 需求高,低时延,性能成为应用运行效率瓶颈。
高可用:云原生存储已经应用到生产环境,需要高可靠/高可用,不能出现单点故障。
敏捷性:PV 快速创建、销毁、平滑的扩展/收缩,PV 随 Pod 迁移而快速迁移等。
有状态应用现在已成为容器存储的主体
随着 Kubernetes 的应用程度加强,并且伴随着 IoT、5G、AI 等技术的成熟,越来越多的有状态应用被搬上容器平台。根据 CNCF 的调研报告,已经有超过一半的用户已经在容器中运行有状态应用,并且有 23% 的用户正在评估或计划在容器中部署有状态应用。