大模型训练:K8s 环境中数千节点存储最佳实践

今天这篇博客来自全栈工程师朱唯唯,她在前不久举办的 KubeCon 中国大会上进行了该主题分享。

Kubernetes 已经成为事实的应用编排标准,越来越多的应用在不断的向云原生靠拢。与此同时,人工智能技术的迅速发展,尤其是大型语言模型(LLM)的推进,导致企业需要处理的数据量急剧增加,例如,Llama 3.1 模型拥有 4050 亿参数,其模型文件的大小达到了 231GB。随着模型参数的增长,模型文件体积也随之增大。

01 Kuberenetes 中大模型训练的存储挑战

随着数据集群规模不断扩大,在 Kubernetes 环境中管理大规模数据集群面临多重挑战:

  1. 复杂权限管理:大规模 AI 训练往往涉及到上百人算法工程师,对文件系统的权限管理提出了复杂的需求。在 Kubernetes 环境中,这种规模的权限管理尤其困难,因为必须细粒度地控制对高度动态和分布式资源的访问,同时确保不影响开发和运维的效率。
  2. 稳定性挑战:在极致弹性的云原生环境中,文件系统的稳定性也面临了极大的挑战。如何保证重启或升级文件系统服务时,不影响业务?
  3. 系统可观测性:在复杂的 Kubernetes 系统下,如何增加系统可观测性,简化运维与问题排查的难度?

除了在 Kubernetes 环境中的挑战之外,存储系统还面临高并发、高吞吐量和低延迟的性能要求,以及在多云架构中维持数据一致性的挑战。

02 JuiceFS 的架构设计如何应对这些挑战?

JuiceFS 将元数据与数据分开存储。元数据存储在包括 Redis、MySQL 以及自研高性能云数据引擎等数据库中;而数据则被切分成块存储在对象存储中,支持市面上几乎所有类型的对象存储。这种将文件分块存储的方法使得所有文件的 I/O 请求都可以通过偏移量精确锁定到特定的块,特别适合大文件的读写操作,并确保数据一致性。

如下图所示,JuiceFS 客户端位于系统的上方,处理所有文件 I/O 请求,并向上层应用提供多种访问方式,包括 POSIX 接口、JuiceFS CSI Driver 和 S3 Gateway。

Kubernets 环境中的 JuiceFS

JuiceFS 提供了 CSI Driver,使用户可以在 Kubernetes 环境中通过原生的 Persistent Volume Claim (PVC) 方式使用文件系统,支持静态和动态配置。

在静态配置中,管理员为应用 Pod 创建一个单独的 Persistent Volume (PV)。用户只需创建一个 PVC,并在 Pod 中声明这个 PVC,即可在 Pod 中使用 JuiceFS。

动态配置则简化了管理员的工作。管

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值