7

直播回顾|论道原生:云原生存储

 1 year ago
source link: http://blog.daocloud.io/8374.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
直播回顾|论道原生:云原生存储

云原生产业的快速发展,为行业应用的实现带来了更多可能性,但也面临更多的挑战。存储是应用运行的基石,随着云原生技术的广泛应用,越来越多的有状态应用被搬上容器平台,有状态应用已成为了存储的主要对象,存储也成为应用容器化过程中的主要难点。在云原生时代下,对存储系统提出了哪些新的要求?云原生存储面临哪些新机遇和新挑战?目前有哪些热门的云原生存储解决方案?

6 月 20 日的论道原生直播间,「DaoCloud 道客」携手鹏云网络,分享了三个方面内容,云原生本地存储、 Kubernetes (K8s) 场景下云原生存储解决方案,以及 “云原生时代需要什么样的存储系统” 的圆桌讨论,共话云原生存储未来。

01 云原生本地存储 HwameiStor

云原生存储作为云原生堆栈中容器化操作的底层架构之一,将底层存储服务暴露给容器和微服务,可以聚合来自不同介质的存储资源,通过提供持久卷使有状态的工作负载能够在容器内运行。CNCF 官方对于云原生存储形态的定义,一般包括三点,第一是运行在 K8s 上,即其本身是容器形态,第二是使用 K8s 对象类,主要是自定义资源 Custom Resource Define (CRD),第三也是最重要的一点,必须使用容器存储接口 Container Storage Interface (CSI) 。HwameiStor 正是基于以上定义开发的,一个端到端的云原生本地存储系统。

直播回顾|论道原生:云原生存储

HwameiStor 系统架构

HwameiStor 最底层是一个本地磁盘管理器 Local Disk Manager (LDM),管理器将各种存储介质 (比如 HDD、SSD 和 NVMe 磁盘) 形成本地存储资源池进行统一管理,管理和接入完全自动。部署完 HwameiStor 后,即可根据介质的不同,分配至不同的资源池。资源池之上采用逻辑卷管理 Logical Volume Manager (LVM) 进行管理,使用 CSI 架构提供分布式的本地数据卷服务,为有状态的云原生应用或组件,提供数据持久化能力。

HwameiStor 是专门为云原生需求设计的存储系统,有高可用、自动化、低成本、快速部署、高性能等优点,可以替代昂贵的传统存储区域网络 Storage Area Network (SAN)。它有三个核心组件:

本地盘管理 LDM,使用 CRD 定义及管理本地数据盘,通过 LDM,在 K8s内部可明确获取到本地磁盘的属性、大小等信息。

本地存储Local Storage (LS),在实现本地盘管理之后,通过 LVM 卷组管理,将逻辑卷 LV 分配给物理卷 PV 。

调度器 Scheduler,把容器调度到本地有数据的节点上。

HwameiStor 的核心在于自定义资源 CRD 的定义及实现,在 K8s 已有 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 对象类之上,Hwameistor 定义了更丰富的对象类把 PV/PVC 和本地数据盘关联起来。

HwameiStor 有四点特性:

首先,它可以实现自动化运维管理,自动发现、识别、管理、分配磁盘,根据亲和性,智能调度应用和数据,还可自动监测磁盘状态并及时预警。第二,高可用的数据支持,HwameiStor 使用跨节点副本同步数据,实现高可用,发生问题时,它会自动将应用调度到高可用数据节点上,保证应用的连续性。第三,具备丰富的数据卷类型,HwameiStor 聚合 HDD、SSD、NVMe 类型的磁盘,提供非低延时,高吞吐的数据服务。第四,可实现灵活动态的线性扩展,HwameiStor 根据集群规模大小进行动态的扩容,灵活满足应用的数据持久化需求。

HwameiStor 的应用场景主要包括以下三类:

1. 适配高可用架构中间件

Kafka、ElasticSearch、Redis 等,这类中间件应用自身具备高可用架构,同时对数据的 IO 访问有很高要求。HwameiStor 提供的基于 LVM 的单副本本地数据卷,可以很好地满足它们的要求。

2. 为应用提供高可用数据卷

MySQL 等 OLTP 数据库,要求底层存储提供高可用的数据存储,当发生问题时可快速恢复数据,同时,也要求保证高性能的数据访问。HwameiStor 提供的双副本的高可用数据卷,可以很好地满足此类需求。

3. 自动化运维传统存储软件

MinIO、Ceph 等存储软件,需要使用 K8s 节点上的磁盘,可以采用 PVC/PV 的方式,通过 CSI 驱动自动化地使用 HwameiStor 的单副本本地卷,快速响应业务系统提出的部署、扩容、迁移等需求,实现基于 K8s 的自动化运维。

02 K8s 场景下云原生存储解决方案 ZettaStor HASP

根据云原生基金会 (CNCF) 2020 年度报告,有状态应用已经成为了容器应用的主流,占比达到了 55%,其中有 29% 将存储列为了采用容器技术的主要挑战,而现有云原生环境面临的一个存储难题,就是性能与可用性难以兼顾,单纯使用一种存储,无法满足所有需求。因此在有状态应用的实际落地过程中,数据存储技术是关键

直播回顾|论道原生:云原生存储

ZettaStor HASP 是一个云原生高性能数据聚合存储平台,它是一个高性能的用户态文件系统,具备跨异构存储多副本冗余保护的能力,相比传统的分布式存储系统而言,数据副本可以在不同类型的存储系统之间流动。除此之外,还可实现存储资源统一灵活编排,并与容器平台紧密集成。

以三个场景为例:

1. 对于 Kafka、Redis、MongoDB、HDFS 等性能要求高,且自身具备数据冗余机制的分布式应用,ZettaStor HASP 拥有更高的数据访问性能,可以实现存储资源动态分配及精细化管理。

2. MySQL、PostgreSQL 等自身不提供数据冗余机制,只能依赖外部存储,舍弃本地存储的高性能,ZettaStor HASP 可通过跨节点冗余保护,实现数据的高可用,同时兼具本地存储的高性能。

3. 对于关键业务而言,需要防范两节点同时故障的风险,而 ZettaStor HASP 跨本地及外部存储的副本冗余保护,可保障关键业务运行无忧。

直播回顾|论道原生:云原生存储

ZettaStor HASP 系统架构

ZettaStor HASP 分为三层架构,最上层是高性能的分布式文件系统,也是 HASP 的核心,这个用户态的文件系统是完全自主研发的,全面兼容 POSIX 标准,在用户态与内核态之间实现零数据拷贝,可彻底发挥 NVMe SSD/SCM/PM 等高速介质的性能。第二层是数据服务层,除了在不同节点的本地存储之间、本地存储与外部存储之间、异构外部存储之间提供服务,还可针对单副本和多副本、强一致性和弱一致性分别提供存储方案。第三层是存储管理层,负责对不同的存储设备进行交互,通过统一的数据格式打破设备壁垒及数据孤岛,让数据及业务能够跨异构设备自由流动。除此之外,该系统还可通过 CSI 接口进行存储设备的调度。

ZettaStor HASP 是一个与容器平台紧密结合的分布式存储平台,可进行超融合部署和 CSI 集成,具备节点亲和性,可对用户 Pod 运行状态进行感知,使得存储行为更加适配。

03 圆桌讨论

什么是云原生存储?

郑泓超:狭义的云原生存储需要满足三点,第一,与 CSI 接口实现良好的对接,满足 CSI 规范;其次,需要以容器的形式部署在 K8s 上;第三,存储系统内部的信息,也需要通过 CRD 产生新的对象类,并最终存储在 K8s 中。

冯钦:云原生上的存储是满足多种特性、多种需求的一个解决方案,除了提供统一的存储平台,应对不同的存储应用,提供不同的存储特性,实现统一纳管之外,还需要对接 CSI 接口,并打通存储与 K8s 之间的交流。

牛乐川:现在应用最广的云原生存储,还是在云存储和或者分布式存储的基础上实现云原生化,同时,也有厂商在传统存储具备的特殊能力方面进行一些延伸的尝试。

云原生存储应该如何支持云原生应用?

冯钦:主要分为两个方面,第一,云原生存储需要支持云原生应用的特性,特性决定了应用对于存储的要求。第二,需要满足 CSI 的要求,以支持云原生特殊的需求。

牛乐川:从性能角度来看,云原生存储需要全方位满足 CSI 架构的要求,以应对多样化的云原生场景。为了给云原生应用提供良好的底层支持和响应保障,云原生存储需要实现高效运维。根据现实情况,云原生存储在成本、迁移性和技术支持方面也有考量。和云原生应用一样,云原生存储需要 “弹性”,运算方面应当具备弹性扩展能力,数据方面也需要实现扩容缩容,以及冷热数据之间的转换。除此之外,云原生存储应当具备一个开放的生态。

云原生存储和传统存储之间的异同点及优劣势?

郑泓超:云原生存储部署之后是聚合形态,而传统存储接入 K8s 一般是分离形态。云原生存储因为运行在 K8s 上,有利于开发微服务,而传统存储往往需要开发者进行存储的 API 扩展。但是,聚合形态也在一定程度上,导致 K8s 的问题容易蔓延到存储当中,给运维带来困难。除此之外,云原生存储还存在网络共享和硬盘负载方面的问题。

冯钦:外部存储中,存储节点和计算节点之间的影响很低,后端存储一般为分布式存储,安全性和可用性相对较高。但在云原生场景下,单一使用外部存储存在一定的劣势,性能上会增加网络的消耗,同时还存在额外成本增加以及与 K8s 的联动不足的问题。

云原生存储中应该如何赋能传统存储?

牛乐川:这是一个非常迫切的需求,对于 K8s 原生的能力,比如删除、创建、扩容的能力,主要是通过 CRD 进行实现,社区也在积极部署。同时,传统存储中积攒的一些能力,尚未在云原生存储体系中得到体现,比如定时任务、可观测性等。如何在平台侧更好地让云原生赋能传统存储,充分发挥双方的优势能力,将云原生存储发展成熟,还有很多需要努力的空间,「DaoCloud 道客」也正在进行这方面的研发。

郑泓超:再总结一个点,在常规的做法里,K8s 对接传统存储,需要完成的是 CSI 驱动集合,但这只局限于表面,CSI 定义了一部分存储的操作流程,但更多还只是一个接口。所以,CSI 社区是否应该对常规存储的一些功能 (例如定时备份、高可用等) 用 CRD 进行定义?而厂商能否做一部分工作,把一些高级的、特殊的流程用 CRD 进行定义?从而使得 K8s 能在存储领域得到更广泛的应用,是值得我们去思考和实践的。

更多内容详情,可观看回放了解,欢迎添加小助手加入群聊,为大家提供直播回放和演讲 PPT,以及技术交流。

b6b36d1b1dc7e54a0d76978c1f2cee6f-1.jpg

在此感谢大家的积极参与,我们将继续为大家带来更多更好的内容。

本次活动的纪念品将陆续寄出,希望大家每期都能有所收获,我们下期再会。

DaoCloud 公司简介:「DaoCloud 道客」云原生领域的创新领导者,成立于 2014 年底,拥有自主知识产权的核心技术,致力于打造开放的云原生操作系统为企业数字化转型赋能。产品能力覆盖云原生应用的开发、交付、运维全生命周期,并提供公有云、私有云和混合云等多种交付方式。成立迄今,公司已在金融科技、先进制造、智能汽车、零售网点、城市大脑等多个领域深耕,标杆客户包括交通银行、浦发银行、上汽集团、东风汽车、海尔集团、屈臣氏、金拱门(麦当劳)等。目前,公司已完成了 D 轮超亿元融资,被誉为科技领域准独角兽企业。公司在北京、武汉、深圳、成都设立多家分公司及合资公司,总员工人数超过 400 人,是上海市高新技术企业、上海市“科技小巨人”企业和上海市“专精特新”企业,并入选了科创板培育企业名单。

未经允许不得转载:DaoCloud道客博客 » 直播回顾|论道原生:云原生存储


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK