根据2019年最新的Gartner的分析数据显示,到2022年,全球75%的企业将在生产环境中使用容器。而从2018年开始,在容器平台上运行的应用程序,已经有超过一半的是有状态应用,例如数据库等。对于无状态应用来说,无论是节点故障,还是扩容,在容器平台上都能轻松应对,但对于有状态应用来说,就没那么容易了,必须要配合合适的容器存储软件,才能满足业务的需求。

为了满足容器对存储的迫切需求,Kubernetes从v1.2版本开始支持FlexVolume, 但由于FlexVolume对于宿主操作系统有侵入性,因此使用上还是有一定局限性。Kubernetes从 v1.9版本开始支持Container Storage Interface(CSI) , 到v1.13版本GA, 可以说CSI 是未来Kubernetes支持存储的大方向,任何一个现有或者新生的存储软件要想支持容器编排平台(Kubernetes、Mesos、Docker Swarm等),都需要实现CSI接口。从官方的列表https://kubernetes-csi.github.io/docs/drivers.html可以看到,已经有大量的存储软件支持了CSI接口,为Kubernetes平台之上的容器提供数据持久化的能力。

焱融云YRCloudFile支持的CSI接口

焱融云YRCloudFile支持的CSI接口然而,CSI接口只是容器存储的必要条件,如何从众多的存储中选择一个合适的,我们来逐条分析一下。

Kubernetes的整合能力

  • Prometheus监控展示

Prometheus作为CNCF版图中重要的一员,已经在Kubernetes平台中占领了C位,从用户的角度来说,容器管理可以使用Kubernetes平台,对计算节点以及容器的监控,可以采用Grafana+Prometheus以及AlertManager。如果容器存储可以把监控数据统一暴露到容器平台内,对于用户来说可以统一观察到所有集群的状态,提高运维的效率。YRCloudFile提供Prometheus exporter,为Kubernetes平台中的Prometheus server提供存储集群的实时监控数据。

  • QoS支持

容器基于Cgroup实现了对CPU,Memory资源使用的限制,对于存储,用户同样希望可以限制Quota, 甚至IOPS以及Bandwidth, 避免某一个容器的恶意使用影响所在节点甚至整个集群的正常工作。YRCloudFile支持用户设置PV的Quota、IOPS、Bandwidth,控制PV的QoS,确保集群内的数据访问不受异常访问的影响。

容器应用特性

  • ReadWriteMany(RWX)

从社区目前支持的CSI 存储列表中我们可以看到,容器存储基本上分为两种类型,一种为文件系统存储,一种为块存储。基于块存储的方案大多无法支持ReadWriteMany的访问方式,例如 CephRBD, OpenEBS等,这对一些应用的部署方式将产生影响,例如典型的WordPress高可靠部署时,需要一个共享的PV来保持数据的一致,虽然OpenEBS也提供了WorkAround的解决方案,但这个方案采用的是一个NFS的pod来做reexport,很明显,NFS server存在单点故障的风险。同样地,在ElasticSearch,以及一些共享文件访问的场景中,RWX或ROX都是必须支持的读写模式。

YRCloudFile支持RWX、RWO、ROX读写模式,为各种业务提供所需的读写访问模式。

  • 大文件小文件混合读写

随着各式各样的应用运行在容器平台之上,对数据的IO模式也不再统一,既有大量的小IO, 动辄上亿的小文件,也有对带宽吞吐有要求的大文件。以GlusterFS举例,曾碰到典型的用户场景,就是存储的都是大文件(例如日志)时工作良好,但是当容器内需要产生海量小文件时,性能上就捉襟见肘了。

上层应用中文件大小和文件数量的趋势

上层应用中文件大小和文件数量的趋势YRCloudFile针对此场景做了特定的优化,小IO的随机读写的能力远高于GluserFS, 同时YRCloudFile支持底层直接操作物理磁盘(Raw Disk Storage Engine),减小了物理服务器上文件系统的损耗,进一步提升了集群读写性能。

  • PV数据的“天眼查”

容器相比虚拟机的一个优势就是资源消耗小,所以同样的物理规模,可运行的容器数量要远大于虚拟机数量,PV(容器持久化数据卷)的数量也因此会达到比较大的规模,如何从众多的PV中找到业务瓶颈,例如IOPS消耗高、存储容量消耗多的PV,甚至用户如何了解某个PV内的数据的热度分布,是否可以删除一些历史数据?

在客户的实际生产环境中,用户创建了数千个PV,逐个排查Pod来寻找读写热点和瓶颈几乎是不可能的任务,通过YRCloudFile的PV Hot Spot功能,可以帮助用户快速定位数据读写热点。

在单个PV内部,哪些数据是经常访问的?哪些是冷数据?哪些文件占用空间多?YRCloudFile的PV Insight功能可以帮助客户达成上述目的。

可用性

  • 容器重建

容器应用的一个特点就是启动快,同时当容器平台发现某一个容器出现问题时,会自动利用调度器,在其他的节点上快速重建容器。

在使用基于块的容器存储时,例如CephRBD, 由于块设备的特性,系统首先要从故障节点进行umount/detach,成功后才能重新attach到新的宿主服务器,进而mount到容器内,对于块设备来说,detach/attach是一个耗时的操作。当计算节点故障,需要对该节点上大量有状态Pod触发重建操作时,更是对业务恢复时间造成影响。

YRCloudFile采用分布式文件结构,数据在所有的节点都可见,对所有节点上的容器都是透明的,避免了detach/attach的操作,极大缩短了容器跨节点重建的过程。正所谓你看见看不见,数据都在那里,不离不弃。

高性能

业务的性能需求无极限。存储性能高,意味着上层业务处理能力会更强。YRCloudFile可以充分利用高性能的网络设备,从网络传输层进行对应的优化,可以更好地发挥RDMA网络的能力,对小IO读写性能有大幅提升。

总结

无论是软件定义的分布式存储,还是传统的集中是存储,存储是多种多样,但是当我们面临容器存储的选择时,需要考虑多方面的因素。传统存储由于所处时代以及解决的主要问题的不同,无法满足容器平台全部的需求。新兴的软件定义存储良莠不齐,需要根据容器平台应用的特点,来选择一款合适的容器存储软件,YRCloudFile无疑是客户建设容器云平台时的最佳选择。


关于焱融云

焱融云是一家以软件定义存储技术为核心竞争力的高新技术企业,在分布式存储等关键技术上拥有自主知识产权,是容器存储的领导者。焱融云针对各行业业务特性,打造个性化行业解决方案,提供一站式的产品与服务。焱融云系列产品已服务于金融、政府、制造业、互联网等行业的众多客户。了解更多焱融科技信息,请访问官网http://www.yanrongyun.com。

Kubernetes容器存储:请选对的相关推荐

  1. Kubernetes 1.13 版本发布:Kubeadm简化群集管理、容器存储接口(CSI)和CoreDNS作为默认DNS现已普遍可用

    Kubernetes 1.13 版本发布 Kubeadm简化群集管理.容器存储接口(CSI)和CoreDNS作为默认DNS现已普遍可用 我们很高兴地宣布推出Kubernetes 1.13,这是我们20 ...

  2. Kubernetes 上免费的容器存储及容灾备份恢复方案

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 云原生时代为什么还需要本地存储? 云原生时代,对于有存储应用的容器化上云,一般的解决思路是"计算存储分离 ...

  3. 杉岩:云原生时代,容器持久化存储方案选对了吗?

    75%的企业部署容器应用,云原生正加速业务创新 互联网的发展.云计算的出现,对传统IT带来冲击和挑战.面对数据爆炸式增长.业务种类增加.应用复杂性提高.软件迭代速度加快等一系列挑战,容器技术带来了突破 ...

  4. 基于YRCloudFile容器存储的WordPress HA部署方案

    WordPress是一款非常流行的内容分享平台软件,官方刚刚庆祝了它的"大麦",全球1000万个流行网站中,有1/3选择了WordPress. 在本文中,给大家展示一下如何在K8S ...

  5. 这次我们又引领了潮流——容器存储双活

    云原生应用在容器平台上可以实现快速部署,这是云原生应用的一大优势.相对于传统的虚拟化以虚拟机为单位的部署方式,虚拟机部署完成后还要进行业务的部署,而云原生以应用为单位,借助容器技术进行部署,部署完成后 ...

  6. 干货 | 如何评估Kubernetes持久化存储方案

    在2018年的Garnter技术成熟度曲线中,容器存储出现在了技术触发期,已经开始进入大众的视野.我相信,在未来的两年内,容器存储会随着Kubernetes的进一步成熟和商业化,其地位会越来越重要.如 ...

  7. 如何评估Kubernetes持久化存储方案

    在2018年的Garnter技术成熟度曲线中,容器存储出现在了技术触发期,已经开始进入大众的视野.我相信,在未来的两年内,容器存储会随着Kubernetes的进一步成熟和商业化,其地位会越来越重要.如 ...

  8. Pure Storage收购容器存储Portworx的背后,原来暗藏这么多玄机

    Pure Storage的中国之旅 在2020年9月18日,阿明看到了Pure Storage以3.7亿美元收购Kubernetes数据服务平台Portworx.其实在这之前,业内已经有朋友在讨论双方 ...

  9. 在阿里云Kubernetes容器服务上打造TensorFlow实验室

    简介 Jupyter notebook是强大的数据分析工具,它能够帮助快速开发并且实现机器学习代码的共享,是数据科学团队用来做数据实验和组内合作的利器,也是机器学习初学者入门这一个领域的好起点. 而T ...

最新文章

  1. 计算机视觉的优点和局限性
  2. anaconda应答文件
  3. 快速排序算法_常用排序算法专题—快速排序
  4. 太优秀了!GitHub 标星 40000+ 的大佬和他们的公众号
  5. Spring @ControllerAdvice @ExceptionHandler
  6. C语言:函数中参数的传值与传地址
  7. 正在启动oracle universal,oracle的常见问题与解决
  8. [转]ORACLE 异常错误处理
  9. BZOJ1010玩具装箱 - 斜率优化dp
  10. Android之SurfaceView
  11. Kafka集群安装Version1.0.1(自带Zookeeper)
  12. 简单mysql主从配置
  13. 静态代理和动态代理的区别和联系
  14. Edwin 的基本使用
  15. Android4.4添加系统服务(aidl接口服务)
  16. 一个系统同时装office2007和2019时遇到的问题及解决方案
  17. 毕业设计(课程设计)—个人博客系统(微博)的设计与实现—计算机类专业课程设计(毕业设计)
  18. 【专业知识问答】问:什么叫突然短路?为什么突然短路时会产生很大短路电流?
  19. IBM P570热插拔添加稳压模块
  20. pintia浙大习题集7-46 爬动的蠕虫

热门文章

  1. 向《大鱼海棠》说声抱歉
  2. linux 升级 iphone,果粉们注意啦!iPhone大区分!
  3. #yyds干货盘点#HC-05与HC-06蓝牙模块对比
  4. Easyx图形编程-课堂练习
  5. RPM打包原理spec
  6. Histcite使用的几点注意
  7. 文献引文分析利器 HistCite 详细使用教程
  8. 分享几个DJ音乐网站合集
  9. kali2.0 : msfpayload和msfencode的集成版msfvenom 使用简介
  10. 如何解决canvas生成图片显示不清晰问题?