0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于云原生时代我们要什么样的存储系统?

阿铭linux 来源:CSDN云计算 作者:CSDN云计算 2021-07-09 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 导读

本文介绍了目前云原生环境下,支持有状态应用的几种典型存储方案的特点,并对市场主流的几个云原生存储产品实际测试性能进行对比。 2 现状当前,云原生已经成为应用开发者在选择架构设计时的首选。云原生让应用开发者可以将所有精力都集中在开发业务逻辑本身,这极大降低了应用开发者的负担。

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

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

3 云原生场景下的存储系统

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

在过去的 30 年中,业务系统的运行环境经历了巨大的变化,从单独部署的物理机,小规模部署的虚拟化环境,大规模部署的云环境,以及目前的 K8s 平台。在这个变革的过程中,业务系统对平台敏捷性的要求越来越高。

在物理机时代,运维人员需要手动配置存储系统和部署业务系统,业务上线以周为单位。而在云原生时代,每分钟都可能发布新的应用版本,每天都可能有大量的业务要上线。

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

4 云原生的存储方案

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

本地磁盘

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

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

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

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

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

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

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

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

集中式存储

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

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

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

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

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

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

分布式存储

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

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

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

总结

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

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

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

交易型数据库(OLTP)

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

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

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

分析型数据库(OLAP)

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

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

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

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

总结

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

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

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

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

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

云原生存储有什么不同

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

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

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

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

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

尽量减少环境依赖

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

避免资源消耗过高

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

声明式运维方式

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

云原生生态

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

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

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

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

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

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

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

文章转载:CSDN(ID:CSDNnews)

(版权归原作者所有,侵删)

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储系统
    +关注

    关注

    2

    文章

    428

    浏览量

    41776

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

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NAS存储系统断电风险大?UPS电源守护数据安全刻不容缓

    在数字化时代,企业数据已成为最宝贵的资产。NAS存储系统作为企业数据存储的核心设备,一旦遭遇意外断电,轻则导致数据丢失,重则造成设备损坏,给企业带来难以估量的损失。作为专业UPS电源厂家,优比施
    的头像 发表于 08-25 10:13 656次阅读
    NAS<b class='flag-5'>存储系统</b>断电风险大?UPS电源守护数据安全刻不容缓

    K8s存储类设计与Ceph集成实战

    云原生时代存储是制约应用性能的关键瓶颈。本文将带你深入理解K8s存储类的设计原理,并手把手实现与Ceph的完美集成,让你的集群存储性能提
    的头像 发表于 08-22 11:50 602次阅读

    Ceph分布式存储系统解析

    在当今数据爆炸的时代,企业对存储系统的需求日益增长,传统的集中式存储已经无法满足大规模数据处理的要求。分布式存储系统应运而生,而Ceph作为开源分布式
    的头像 发表于 07-14 11:15 715次阅读

    云原生环境里Nginx的故障排查思路

    本文聚焦于云原生环境下Nginx的故障排查思路。随着云原生技术的广泛应用,Nginx作为常用的高性能Web服务器和反向代理服务器,在容器化和编排的环境中面临着新的故障场景和挑战。
    的头像 发表于 06-17 13:53 639次阅读
    <b class='flag-5'>云原生</b>环境里Nginx的故障排查思路

    从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

    (Goroutine/Channel) 在 云原生基础设施领域 占据主导地位,它也是 Java 开发者探索云原生技术栈的关键补
    的头像 发表于 04-25 11:13 508次阅读

    云原生在汽车行业的优势

    近年来,“云原生”已成为科技领域的高频热词。从企业数字化转型到智能化产业布局,各行各业对云原生技术的需求呈现爆发式增长,向云计算转型已成为一大趋势。根据Gartner的预测,到2025年,超过95%的新数字工作负载将迁移至云端,而非传统数据中心。
    的头像 发表于 02-21 09:20 1474次阅读

    要获得FFFH和000H输出,需要什么样的差分输入电压?

    要获得 FFFH 和 000H 输出,需要什么样的差分输入电压? 0V(差分)输入的输出是什么?
    发表于 02-17 06:59

    科达KCloudStor云存储系统与鲲鹏携手推进原生开发技术创新

    近日,苏州科达与鲲鹏在云存储技术领域展开了深入合作,共同推进了KCloudStor云存储系统的鲲鹏原生开发技术创新。双方基于鲲鹏硬件平台,结合openEuler操作系统和鲲鹏DevKi
    的头像 发表于 01-23 16:22 1075次阅读

    云原生AI服务怎么

    云原生AI服务,是指采用云原生的原则和技术来构建、部署和管理人工智能应用及工作负载的方法和模式。那么,云原生AI服务怎么呢?下面,AI部落小编带您了解。
    的头像 发表于 01-23 10:47 763次阅读

    云原生LLMOps平台作用

    云原生LLMOps平台是一种基于云计算基础设施和开发工具,专门用于构建、部署和管理大型语言模型(LLM)全生命周期的平台。以下,是对云原生LLMOps平台作用的梳理,由AI部落小编整理。
    的头像 发表于 01-06 10:21 708次阅读

    电脑云存储系统,电脑云存储系统的教程,个人云电脑是什么以及怎么连接

    变成了亲情的纽带,跨越千里解决家人难题,让老人也能享受科技便利,不再为电脑故障烦恼。接下来和大家一起探索电脑云存储系统的教程。    电脑云存储系统的教程:    以搭建基于OwnCloud的云存储为例,先准备一台闲置电脑,安装
    的头像 发表于 12-31 13:57 728次阅读
    电脑云<b class='flag-5'>存储系统</b>,电脑云<b class='flag-5'>存储系统</b>的教程,个人云电脑是什么以及怎么连接

    如何配置 RAID 5 存储系统

    配置 RAID 5 存储系统是一个涉及硬件和软件设置的过程。以下是配置 RAID 5 存储系统的一般步骤,以及一些注意事项。请注意,具体步骤可能会因不同的硬件和操作系统而有所不同。 1. 准备硬件
    的头像 发表于 12-27 17:02 3241次阅读

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器学习平台种类繁多,功能各异,如何选择云原生机器学习平台呢?下面,AI部落小编带您探讨。
    的头像 发表于 12-25 11:54 699次阅读

    构建云原生机器学习平台流程

    构建云原生机器学习平台是一个复杂而系统的过程,涉及数据收集、处理、特征提取、模型训练、评估、部署和监控等多个环节。
    的头像 发表于 12-14 10:34 676次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 841次阅读