云原生时代需要什么样的存储系统?

导读:本文介绍了目前云原生环境下,支持有状态应用的几种典型存储方案的特点,并对市场主流的几个云原生存储产品实际测试性能进行对比。


现状

当前,云原生已经成为应用开发者在选择架构设计时的首选。云原生让应用开发者可以将所有精力都集中在开发业务逻辑本身,这极大降低了应用开发者的负担。

而应用系统的敏捷性、扩展性、可靠性、高可用等,则由基础设施软件和运维团队共同承担。一方面,运维团队需要利用基础设施软件,快速响应业务系统提出的部署、扩容、迁移等需求,另一方面,也要时刻保持业务系统和基础设施软件的稳定运行。这为基础设施软件和运维团队都带来了更大的挑战。

如何正确的为基础架构软件进行设计和选型,就成为了运维主管们最具挑战的任务之一。

 

云原生场景下的存储系统

存储系统一直以来都是基础设施软件中的核心之一。无论业务采用什么样的运行环境和架构,都离不开存储系统的支撑。

在过去的 30 年中,业务系统的运行环境经历了巨大的变化,从单独部署的物理机,小规模部署的虚拟化环境,大规模部署的云环境,以及目前的 K8s 平台。在这个变革的过程中,业务系统对平台敏捷性的要求越来越高。在物理机时代,运维人员需要手动配置存储系统和部署业务系统,业务上线以周为单位。而在云原生时代,每分钟都可能发布新的应用版本,每天都可能有大量的业务要上线。

这意味着,云原生时代的存储系统,除了要满足性能、稳定性、可靠性的要求以外,还要满足业务系统对敏捷性的要求,能够通过统一的编排系统配合业务上线,并且可以实现快速扩容。同时,为了减轻运维管理员的工作负担,存储系统自身的自动化运维能力,也成为运维团队关注的核心焦点。

 

云原生的存储方案

图 1. 使用/部署容器的主要挑战(图片来源于 CNCF 报告)

 

从 CNCF 的调查可以看出,目前存储系统依然是云原生场景使用和部署中面临的最主要障碍之一。接下来我们来介绍一下云原生场景下不同存储方案的优劣点。

本地磁盘

本地磁盘是最容易想到的方式,也是从物理机时代就一直在使用的方式。

在服务器的硬盘槽上插上硬盘,并利用 HBA 卡或软件的方式制作 RAID,划分逻辑卷,格式化成某种文件系统后,挂载到容器中。

由于磁盘和应用系统中间的 IO 路径最短,本地磁盘可以提供最佳的性能。同时 RAID 提供了一定程度的可靠性的保证,可以避免因单个磁盘故障而导致的数据丢失。因此,目前有大量用户采用这种方式为有状态的应用提供存储服务。

然而本地磁盘方案也存在着巨大的缺陷。

首先,本地磁盘无法提供节点级别的高可用,当物理节点发生故障时,由于数据都存储在故障节点上,所以应用无法被恢复到其他节点。如果业务系统有节点级高可用的要求,则必须由业务系统自己实现数据层面的高可用,这极大的增加了业务系统的复杂度。

其次,本地磁盘在敏捷性上也无法满足业务需求,业务使用的存储空间受限于本地磁盘的大小,如果达到磁盘空间的上限后难以扩容。部署 RAID 也是相当耗时的操作,难以实现在短时间内部署大量的应用系统。

此外,该方案无论是部署还是故障后的修复,都需要大量人力的参与,这使得本地存储方案的运维成本非常高。同时由于节点间的存储空间无法共享,也很容易造成存储空间的浪费。

总的来说,本地磁盘的方案只适合在业务容器化的初期阶段进行小规模试用,难以在大规模场景下被广泛使用。

集中式存储

集中式存储提供了可远程访问共享存储的能力。和本地磁盘的方案相比,集中式存储解决了应用系统高可用的问题,当业务系统所在的服务器发生故障时,由于数据不再存储在服务器本地,而是存储在远端的共享存储中,所以可以在其他节点上把应用拉起来,以实现业务系统的高可用。此外,由于数据集中存储,也一定程度解决了本地存储对磁盘空间浪费的问题。

很多商用存储都采用集中式存储架构,除了基本的数据读写能力外,还提供了很多高级功能,包括快照、克隆、容灾等等,进一步提升业务数据的可靠性。

然而集中式存储的架构决定了它不适合云原生的场景。

集中式存储采用存储控制器加盘柜的形式,控制器负责提供性能和存储功能,盘柜提供可扩展的存储容量。

尽管集中式存储可以为单个业务系统提供较高的性能保证,但是当面临大量业务并发访问时,存储控制器则成为了性能瓶颈。如果想要满足大量业务对性能需求,需要采用多套集中式存储系统,存储系统的管理成本也会急剧上升。

此外,由于集中式存储诞生在几十年前,在设计上就没有把敏捷性和运维便利性考虑进去,无法应对短时间内大量 Volume 的并发创建和销毁操作,无法满足业务系统对敏捷性的要求。

分布式存储

分布式存储的诞生就是为了解决集中式存储无法解决的问题。

分布式存储天然具有横向扩展能力,在性能和高可用方面远优于集中式存储,非常适合应对大规模虚拟化场景。与此同时,分布式存储也逐渐具备了企业级存储的能力,包括快照、克隆等等。

不过,尽管分布式存储在架构上具备众多优点,但在实现难度上具备非常大的挑战,并不是所有的分布式存储都能够充分发挥出分布式架构的优势。在实际的使用过程中,大部分分布式存储的性能和稳定性都难以达到生产级别的标准,这使得很多运维团队不敢轻易地部署分布式存储产品。

总结 

图 2. 不同存储方案对比

 

云原生有状态应用对存储系统的需求


谈存储技术无法脱离应用场景。在云原生架构下,大部分业务系统不会处理数据存储的逻辑,而是尽可能将数据存储和处理能力交给数据库来完成。

目前越来越多的数据库也在采用云原生架构,数据库迎来了云原生时代。云原生数据库将实例运行在容器中,具备了快速部署,快速扩容的能力。同时,云原生数据库也采用了“存算分离”的架构,将数据库计算逻辑和存储逻辑进一步进行分离,存储能力交给更专业的存储系统完成,数据库只专注在数据库的业务逻辑处理。

在某种程度上讲,我们可以说云原生时代的有状态应用,大部分指的就是“云原生数据库”。接下来,我们分两种典型的数据库类型进行介绍。

交易型数据库(OLTP)

常见的 OLTP 数据库有 MySQL,PostgreSQL 等,通常承载的都是核心交易类业务,对存储系统的数据可靠性、性能要求极高。交易类业务本身对延迟非常敏感,所以存储系统的性能直接决定了 OLTP 系统能提供的能力。存储系统的带宽越高、延迟越低,OLTP 能提供的 TPS 越高。

每一套业务系统通常都会有 N 套独立的 OLTP 数据库作为业务支撑。由于业务系统会频繁的进行部署以及扩容,所以支撑 OLTP 的存储系统必须具备很高的敏捷性,可以快速提供数据库对存储空间的需求,同时也要方便的进行扩容等操作。

大部分 OLTP 数据库采用块存储系统作为数据存储系统,因为块存储通常可以提供最佳的性能。此外,商业块存储还提供了快照、克隆等技术,可以很好地保证数据库业务的延续性。

分析型数据库(OLAP)

OLAP 数据库主要用在数据分析场景,对存储系统的可靠性以及延迟的要求都不像 OLTP 数据库那么高,且因为数据量巨大,所以对存储成本也非常敏感。

为了支撑 OLAP 对存储成本的要求,存储系统通常采用 EC 技术,以降低数据存储的成本。而考虑到文件接口难以支撑百亿级别的文件数量,所以 OLAP 使用的存储系统通常采用对象接口,例如 S3 接口。

OLAP 系统对敏捷性没有特殊的需求,一旦部署好后,最常见的运维操作是扩容,并不会对数据库频繁的进行重新部署和销毁操作。

基于以上因素,分析型数据库通常采用支持 EC 的对象存储作为数据存储服务,通过 S3 接口访问数据。

总结

图 3. OLTP 和 OLAP 对存储系统的不同要求

 

多云环境对存储系统带来的新挑战

随着云技术越来越成熟,越来越多的企业面临多云的需求:部分对数据安全不敏感且具有大量网络流量的业务需要使用公有云服务,而对数据安全性和服务稳定性要求较高的业务需要使用私有云服务。

公有云和私有云在产品设计理念上完全不同,产品的使用方式、运维方式、服务质量、产品参数也完全不同。即使同样是公有云或者私有云,不同的服务提供商之间也存在着巨大差异。多云的环境,对企业的运维团队提出了巨大的挑战。

而云原生架构的诞生,就是为了应对多云的挑战:开发者在设计云原生应用时,只需要关注应用被如何创建和部署,无需关注在哪里运行。

然而尽管目前有相当多的开发者采用了云原生的架构设计应用系统,但是对于基础架构软件来说,目前还是由不同的云厂商来提供。基础架构的运维人员需要为不同服务商提供的存储系统,准备不同的运维方式,这极大的增加了运维人员的负担。

由此也诞生一个新的存储系统类别:云原生存储系统。云原生存储系统可以良好的运行在各种不同服务商提供的公有云环境或私有云环境,并且为运维人员提供相同接口和运维方式。云原生存储系统可以极大的降低运维团队的负担。

云原生存储有什么不同

此处我们以 IOMesh 的架构图作为示例,说明云原生存储的特点。

 图 4. IOMesh 产品架构图

云原生存储不仅仅可以做到支持在公有云和私有云运行,而且提供了容器化部署、自动运维、声明式接口等特征,让用户可以采用和运维其他云原生应用一样的方式对存储系统进行部署、运维和管理。

除此之外,云原生存储还需要能够很好地和其他云原生基础设施配合,例如云原生数据库,使得云原生数据库可以真正的在公有云和私有云都能够得到一致的用户体验。

 

如何选择云原生存储

云原生存储也是存储系统,所以存储系统所必备的可靠性,性能,高可用等等特点都是必不可少的。

除此之外,“云原生”对存储系统提出了更高的要求。

尽量减少环境依赖

云原生存储系统应尽量不对软硬件环境存在任何依赖,例如对内核的依赖,对特定的网络设备和磁盘型号的依赖等等。只有尽量少的依赖,才能够做到最大的适配性。

避免资源消耗过高

云原生存储系统以容器的形式和业务系统混合部署在容器平台上。如果存储系统占用过多的计算资源(CPU、内存),则会导致整体投入成本太高。

声明式运维方式

存储系统应支持通过声明式的接口进行运维管理,同时支持一定程度的自动化运维,包括在线扩容、升级等等。当发生硬件故障时,存储服务可以自动恢复,以保证业务系统不受影响。

云原生生态

云原生存储系统应该可以很好地和云原生的运维生态系统结合,包括监控、报警、日志处理等待。

 

云原生存储系统的性能对比

 

性能是评判存储系统是否能够支撑核心业务的关键指标。本文将对 4 个常见的云原生存储系统,IOMesh、Longhorn、Portworx、OpenEBS,的性能测试结果进行对比。

我们准备了三个 Worker 节点作为运行应用和云原生存储的节点,每个节点配备了两块 SATA SSD,四块 SATA HDD,以及万兆网卡。

在测试中,我们采用最常见的 MySQL 数据库作为有状态应用,并使用 sysbench-tpcc 模拟业务负载。下表提供了四个云原生存储系统在 TPC-C MySQL 测试中的 TPS、QPS 以及 P95 延迟数据。

 图 5. TPC-C MySQL 综合性能测试

下图对比了四个云原生存储系统的性能测试结果。图中横轴代表测试时间,纵轴分别代表:TPS、QPS、以及 P95 延迟的瞬时值。

图 6. TPC-C MySQL 性能稳定性测试

 

从以上数据与对比可以明显地看出, IOMesh 在绝对性能,以及性能的稳定性上,都遥遥领先于其他的云原生存储系统,具备为核心生产系统提供存储支撑的能力。

 

总结

随着云原生时代的到来,越来越多的业务系统会采用云原生架构。存储系统作为承载业务稳定运行的核心组件,在云原生的架构下,也面临着新的挑战。与此同时,数据库以及存储系统自身也受到了云原生架构的影响,逐渐发展出云原生数据库和云原生存储系统。未来可以看到越来越多的云原生数据库和云原生存储出现在数据中心中,成为被广泛使用的技术。

 

作者:张凯,现任 SmartX 联合创始人兼 CTO。张凯硕士毕业于清华大学计算机系,拥有十余年分布式存储研究与产品经验。在创立 SmartX 之前,张凯曾就职于 Baidu,负责大数据平台基础设施建设、稳定性和性能优化。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql管理器源码_一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)

2011年,实习期间写了一个简单的数据库管理器。今天,特意整理了下,分享给大家。有兴趣的同学,可以下载源码,瞧瞧。源码只有4个类:LoginGUI,DatabaseGUI,Record,MySQLModel。1.LoginGUI该类就是一个简单的登录…

我们身边的网络流量

作者:qinglianghu 一.网络流量中的善与恶 和我们一起在网上冲浪的不仅有你身边的亲朋好友,还有栖息在互联网上密密麻麻的网络爬虫。差不多每5次的网络浏览里,有2次是"虚假"的网络爬虫产生的。这些栖息在互联网上的爬虫也是有&quo…

58.3万笔/秒!看阿里的黑科技

简介: 11月11日0点刚过26秒,天猫双11的订单创建峰值就达到58.3万笔/秒,阿里云又一次扛住全球最大规模流量洪峰!58.3万笔/秒,这一数字是2009年第一次天猫双11的1457倍。数字的背后,隐藏着阿里巴巴很多不为人…

java方法重写_Java方法重写注意事项

1.重写方法的方法名和参数列表要和被重写方法一致。2.在 java 1.4版本以前,重写方法的返回值类型被要求必须与被重写方法一致,但是在java 5.0中放宽了这一个限制,添加了对协变返回类型的支持,在重写的时候,重写方法的返…

专访李飞飞 :从清华附中高材生到阿里飞刀,一口井钻出「云原生」

简介: 他初三上清华,如今是达摩院数据库首席科学家。李飞飞从学术界走向工业界,带领阿里云技术团队一手打造了云原生分布式数据库,让阿里「全面上云」的战役再下一城。今天,他用一口水井为我们道出了云原生&#xff01…

阿里雷卷:RSocket从入门到落地,RSocket让AJP换发青春

简介: 借助 RSocket 的架构提供,我们可以将之前比较复杂的方案简化,当然最最重要的是性能的提升,即便之前的一些性能提升技术点,可能由于一些约束等,现在和 RSocket 对接,那些问题都不存在啦&am…

英特尔拥抱开源,岂能没有杀手锏?

10 年前,Netscape 创始人、硅谷著名投资人马克安德森说“软件吞噬世界”,如今已发展为“开源吞噬世界”。据《2020年度 GitHub Octoverse 报告》显示,GitHub 上开发者数量达到 5600 万,新增 6000 万个存储库以及 19 亿个 contribu…

Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶啥都有!

前言本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以…

云原生实时数仓首次在2020双11核心数据场景落地

简介: 这是史上数据量、计算量最大的一年,是实时处理要求最高、与机器智能结合性最强的一次双11,也是全球最大规模的一次云原生实践。背后作为数据核心支撑的大数据平台更是创下新的世界纪录。 刚刚结束的2020天猫双11又创下两项新记录&…

Flink + 强化学习搭建实时推荐系统

大家好,我叫许日花名欢伯,在2016年盒马早期的时候,我就转到了盒马的事业部作为在线数据平台的研发负责人,现在阿里云的计算平台负责DataWorks的建模引擎团队。今天的分享内容也来源于另一位嘉宾李启平(首义&#xff09…

MySQL 避坑指南之隐式数据类型转换

作者 | 不剪发的Tony老师责编 | 欧阳姝黎出品 | CSDN博客????知之为知之,不知为不知,是知也。——《论语》今天我们来聊聊 MySQL 中存在的隐式数据类型转换以及可能带来的问题。当两个不同类型的数据进行运算时,为了使得它们能够兼容&…

二级java题型及分值_计算机二级java考试内容

计算机二级java考试内容Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。下面是小编整理的关于计算机二级java考试内容,希望大家认真阅读!基本要求1.掌握Java语言的特点、…

淘宝直播在冲刺最复杂的人工智能技术!

01 上周,主播林珊珊测试了一下淘宝直播团队依据他个人形象打造的虚拟主播,也就是林珊珊下播以后,让虚拟主播上场,粉丝在直播间可以跟虚拟主播互动,虚拟主播则实时介绍商品,回答消费者提问。 第二天&#x…

2020双十一,阿里云GRTN拉开直播和RTC技术下半场的序幕

直播,已经成为了“剁手党”们最喜闻乐见的一种购物形式。对直播体验的极致追求,也是淘宝技术人们长期的努力方向。为了提升用户购物体验,让直播更加丝滑,让剁手更快一些,在2020双十一期间,淘宝首次启用了阿…

开拓新格局 共赢新 Power 2021浪潮商用机器新布局

6月25日,以“新格局新核心新Power”为主题的2021浪潮商用机器客户大会在沪隆重举行,本次大会吸引了来自证券、保险、医疗、制造、交通等重点行业的上百位客户代表以及ISV等渠道合作伙伴。会上,浪潮商用机器正式发布了面向关键计算的浪潮全新K…

大促场景系统稳定性保障实践经验分享

每到双11,如何保障系统高峰扛得住、长期平稳是每个大促人必须面对的问题。在今年双11之前,阿里云在上海举办了一场线下交流,阿里大促和稳定性保障负责人、中间件专家、解决方案专家等将历年总结的大促经验分享给参会嘉宾,我们选取…

考拉海购全面云原生迁移之路

今年 8 月底,入驻“阿里动物园”一周年的考拉海购首次宣布战略升级,在现有的跨境业务基础上,将重点从以“货”为中心变成以“人”为中心,全面发力会员电商。 外界不知道的是,对考拉海购来说,不只是完成了业…

新零售:从上云到云原生 Serverless

作者 | 七凌来源 | 阿里巴巴中间件头图 | 付费下载于 IC Photo某零售商超行业的龙头企业,其主要业务涵盖购物中心、大卖场、综合超市、标准超市、精品超市、便利店及无人值守智慧商店等零售业态,涉及全渠道零售、仓储物流、餐饮、消费服务、数据服务、金…

企业双11业绩增长156% 、成交额突破151亿元...... 这背后是阿里云数据中台的场景赋能

红星美凯龙天猫数字化卖场累计成交金额突破151.52亿元;杜蕾斯全网销售额突破1.7亿元,天猫官方旗舰店销售额同比增长105%;滴露全网销售额突破1.8亿元,天猫官方旗舰店销售额同比增长156%;波司登首铺准确率提升79%…… 在…

Gartner:2020年全球IaaS公有云服务市场增长40.7%

编辑 | 宋 慧 供稿 | Gartner 头图 | 付费下载于视觉中国 根据全球信息技术研究和顾问公司Gartner的统计结果,2020年全球基础设施即服务(IaaS)市场达到643亿美元,相比2019年的457亿美元增长40.7%。2020年亚马逊仍在IaaS市场排名第…