本帖最后由 superleon123 于 2024-9-30 23:57 编辑
机器学习集群本质上是分布式实现的大型甚至巨型的计算系统。存储化设计决定了系统的数据持久性指标和性能指标。不同的业务需求又决定了不同类型的持久化存储的技术方案。存储方案包括以下方面:
1. 分布式块存储。
GPU板卡级调度和虚拟化调度技术都依赖于虚拟机。开发部署的机器学习应用及所需的各类运行库也需要被部署在虚拟机上。虚拟机包括两种方案:
1)本地盘:将本地机上的物理硬盘或一部分分配给虚拟机。
2)用整个集群可共享的云上块存储集群提供的块存储服务实例。
这两种方案还需要解决一些问题,于是业界推出了集中式与分布式块存储两种方案。集中式的方案是较为早期的方案,但存储控制器的数量有限,容量扩展也受限,于是分布式块存储应运而生。分布式块存储主要是使用具备大容量磁盘的工业标准服务器组成集群,通过多副本或纠删码(EC)实现存储的数据冗余备份。也称为云硬盘或云上块存储。分布式块存储还需要考虑故障恢复,如磁盘故障、一个或多个节点故障、集群分裂时,不引起服务中断和数据丢失。故障恢复包括原地恢复和迁移恢复两种方案。
分块式存储的性能优化,可以采用SSD作为缓冲层,HDD作为主存储介质,提升总体性能,达到性能与成本平衡。这种集群被称为“混闪存储集群”。
2. 分布式对象存储--海量非结构化数据存储。
一般用于Web静态资源和数据备份归档,数据能直接通过HTTP协议存取,用户可为自己的文件设定权限,自定义元数据,并支持海量数据的快速随机检索存取和冷热数据分层。业界推出了基于S3 (Simple Storage Service,简单存储服务)的产品,如阿里云的OSS,腾讯云的COS等。以及一些支持私有化部署的产品,如Ceph,Swift, MinIO等。
3. 分布式并发高性能存储==AI训练素材存储
机器学习需要海量数据训练来保证模型的准确性,并且满足海量并发访问的需求。若采用对象存储的方式,难以和深度学习的框架对接。Tensorflow采用标准的POSIX API,与HTTP的API不兼容。业界推出了为AI训练设计的高性能POSIX接口存储方案,如开源大数据鼻祖HDFS,长青松柏Lustre。
高性能文件存储需要采用全分布式设计,避免任何单节点的性能瓶颈。由于训练素材的特点,存储可以在文件数据冗余方面做适当的妥协,保证性能。