热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于程序员:聊一聊并行文件系统的客户端优化之道

简介:对于文件存储CPFS:文件存储CPFS(CloudParallelFileStorage)是阿里云齐全托管、可扩大的并行文件存储系统,针对高性能计算场景的性能要求进行了

简介: 对于文件存储 CPFS:文件存储 CPFS (Cloud Parallel File Storage)是阿里云齐全托管、可扩大的并行文件存储系统,针对高性能计算场景的性能要求进行了深度优化,提供对数据毫秒级的拜访和百万级IOPS的数据读写申请,专一于AI深度训练、主动驾驶、基因计算、EDA仿真、石油勘探、气象剖析、机器学习、大数据分析以及影视渲染等业务场景。
立刻观看→存储系列产品公布:文件存储CPFS新能力公布

并行文件系统作为文件存储的一个高性能分支,自呈现以来曾经走过了二十个年头,始终被大规模利用于气象预测、石油勘探、高能物理、汽车制作、芯片制作、主动驾驶、影视渲染等高性能计算畛域。在AI时代下,GPU并行计算热火朝天,阿里云CPFS也正式演进到了2.0时代,并且对传统并行文件系统的技术体系有了一系列翻新和实际。

一、并行文件系统的演进之路

传统的并行文件系统诞生于二十一世纪初的CPU+物理机时代,直到二十一世纪的第二个十年的到来。2012年,Alex Krizhevsky(前谷歌计算机科学家)利用深度学习+GPU的计划,一举博得Image Net LSVRC-2010 图像识别大赛,并奇迹般地将辨认成功率从74%晋升到85%。GPU从此一战成名,凭借本身海量流处理器和矢量处理单元成为了AI计算的首选加速器。GPU芯片的算力从V100到A100再到H100,实现了成倍的增长,对数据吞吐量的需要也成倍增长,甚至一度超出了PCI-E总线的能力。

与此同此,随着容器K8S平台的逐步成熟,AI训练的运行平台曾经由过来的虚拟机+物理机转向为容器+云计算平台。这样的时代背景下,传统的并行文件系统也面临了极大的挑战。

本系列文章会从以下几个方面,与大家分享阿里云CPFS是如何应答这些挑战以及对并行文件系统的技术摸索与落地实际:

从专属客户端到NFS标准协议服务
从文件存储自闭环到拥抱云上数据湖的凋谢生态
从CPU大文件计算到GPU小文件计算
快、再快一点—服务端缓存和计算端缓存的进化

本期咱们会具体介绍CPFS在客户端侧的轻量化改革。

二、专属客户端的问题所在

家喻户晓,因为世纪初NFS等通用协定的不欠缺,传统的并行文件系统都设计并提供了专属客户端,能够说专属客户端是高性能并行文件系统的身份象征。

专属客户端是并行文件系统实现高性能的重要组成部分,专属客户端对于并行文件系统至关重要,不仅提供了MPI-IO接口、多后端服务器连贯能力、负载平衡能力,局部专属客户端还能够提供单机数据缓存能力。然而随着容器时代的到来,专属客户端显示出了他的诸多问题:

首先,重客户端多采纳内核态,这就引起与操作系统深度绑定。在世纪初,业余的HPC利用无限,多为业余公司开发并运行于超算核心,重客户端看起来不是个问题。然而随着AI时代的到来,GPU利用开发百花齐放,开发者习惯不同,限度操作系统或内核版本变成了一个微小的门槛。

其次,弹性容器带来极速的利用部署能力和弹性扩缩容能力,将计算资源利用率晋升至极致。专属客户端较慢的部署速度和较多的软件依赖,升高了利用部署速度,限度了容器的弹性能力。

再次,面向利用的数据管理取代面向物理机的数据管理。容器时代,用户业务的应用界面从物理机和虚拟机上移至利用,重客户端将整个文件系统视为对立的命名空间,只能通过传统的ACL形式进行简单权限配置,且无奈通过动静和动态PV和容器K8S实现联动,实现容器内利用拜访数据的完满隔离。

三、轻量化NFS客户端的新思路

要解决专属客户端的问题,就须要对客户端进行“瘦身”,实现NFS协定端的轻量化。通过操作系统解耦,让所有Linux零碎都能够轻松应用CPFS,解放开发者,其次,施展分布式文件系统的高性能劣势,最初,实现K8S弹性PV,以及PV间严格数据隔离,具体形式包含以下三个方面:

1、基于NFS协定实现轻量化端接入

NFS是文件存储畛域应用最广的协定,具备成熟的通用型、易用性,为宽广使用者承受。为了升高CPFS的应用门槛,CPFS须要兼容NFS。

传统的并行文件系统重客户端往往指定操作系统、内核版本,内核版本升级后客户端还须要重新安装,运维老本高,而CPFS-NFS客户端是用户态的,不依赖内核版本,这带来两个益处:一是反对所有支流操作系统,CPFS-NFS客户端反对Alibaba Cloud Linux、CentOS、Ubuntu、Debian等,二是当用户操作系统降级后,CPFS-NFS客户端无需降级可持续应用。

传统的并行文件系统客户端须要简单的配置能力达到较好的运行成果,例如Lustre须要对网络组件LNET、元数据组件MDC、数据组件OSC进行并发度、块大小等配置,减少了用户的保护老本。CPFS-NFS客户端应用简略,只须要一条mount挂载命令即可,客户端的默认配置由CPFS-NFS客户端自行实现,升高用户应用门槛。

并行文件系统通常将文件系统逻辑上移到客户端上实现,例如Lustre的OSC须要感知文件分片(stripe)位于哪些存储服务器能力读取数据,这减少了客户端上CPU、内存的资源开销。CPFS-NFS客户端的资源开销是轻量的,只用于传输数据和必要的元数据操作,CPU开销通常小于一个逻辑核。

2、优化协定实现保障端接入的高性能

借助CPFS并行I/O、全对称的分布式架构提供的底座能力,NFS协定端同样具备高吞吐、高IOPS的集群性能,远超传统NAS单机架构带来的性能指标。例如200MB/s/TiB规格下,NFS协定端也提供每TiB容量兑付200MB/s吞吐的性能指标,最大吞吐是20GB/s,最大可靠近100万 IOPS。

NFS协定服务组成协定集群,依据CPFS文件系统容量同步横向扩大。CPFS-NFS客户端与协定节点之间具备负载平衡的能力,在客户端挂载时可依据协定节点负载(连接数、闲暇带宽、CPU等)抉择最佳的协定节点建设连贯,无效的防止热点、胖客户端挤兑单个协定节点带来的性能降落。

3、提供多种挂载形式大规模挂载的反对与目录级挂载点

为了满足K8S弹性PV的需要,同时实现PV间严格数据隔离,CPFS反对了多种挂载形式,具体包含:

大规模容器挂载
传统的并行文件系统客户端上通常会保留状态,这导致客户端规模无限,例如客户端上保留关上的文件、读写锁等状态,为保证数据一致性,客户端之前相互做状态的颁发、召回等操作。客户端规模越大,客户端之间的交互、耗费的资源更多,这限度了客户端的规模。

CPFS-NFS客户端是无状态的,客户端只与存储节点连通,不会随客户端规模增大而减轻客户端的负载。CPFS-NFS客户端反对10000个客户端/POD同时挂载拜访数据。

CSI插件,反对动态、动静卷
CPFS-NFS客户端与阿里云容器服务(ACK)深度集成,CSI 反对动态存储卷挂载和动静存储卷挂载两种形式挂载 CPFS存储卷。详情见CPFS动态卷,CPFS动静卷。

目录级挂载点
目录级挂载点提供端上拜访隔离的能力,容器挂载时仅挂载子目录,避免容器利用间接拜访整个文件系统,引起数据安全问题。通过应用Fileset和ACL,CPFS能提供更强的目录隔离:后续Fileset反对配额,可配置目录子树的文件数量、总容量;ACL可配置用户的拜访权限。

总结

目前,CPFS的规范NFS协定拜访模式曾经凋谢。帮忙一些原有因为操作系统版本原有无奈应用云上CPFS的客户实现了业务弹性上云。同时,联合阿里云容器ACK服务,为客户提供了秒弹几百个POD的动静伸缩能力,实现了忙时疾速扩容,闲时疾速开释,升高GPU资源闲置老本。

文件存储CPFS在反对NFS协定上的能力的重要晋升,意味着无论是容器还是虚拟机,无论是哪种Linux版本,都能够轻松拜访高性能的CPFS并行文件系统,这无疑有助于减速主动驾驶场景落地。欲了解更多,可移步https://yqh.aliyun.com/live/d…预约直播。

前面,咱们还会持续分享CPFS在数据湖生态交融、小文件计算、缓存技术等方面的技术进化,心愿能继续关注此系列文章。
原文链接:http://click.aliyun.com/m/100…

本文为阿里云原创内容,未经容许不得转载。


推荐阅读
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
author-avatar
崔显莉京_716
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有