使用案例及场景展示
单节点实现数据库或中间件的高可用方案
KubeStorage 提供内核级高性能多副本的块存储(一般三副本)99.99的可靠性;
专用k8s调度插件把数据库容器调度到其中一个数据副本所在节点,实现块存储随容器漂移;
提供4层 Haproxy kubernetes Proxy 可动态配置对外服务的端口,可动态的管理被负载的数据库服务,对k8s 集群外访问数据库提供稳定的4层流量负载均衡
通过High Availability Controller 快速删除不可用节点的数据库容器和挂载的存储(k8s自动删除一般需要5分钟);
livenessProbe readinessProbe 负责容器在本节点自动重启;
Prometheusmetrics + Alertmanager监控 报警;
单节点高可用数据库方案使硬件成本节省50%

收益:

与容器编排平台及管理平台无缝对接,实现自动化调度、自动化PV供应;
支持有状态容器应用实现跨节点快速重建;
提供远远高于本地硬盘性能的存储池,满足容器中数据库应用高密度I/O性能的要求;
能够对接Prometheus监控平台,实现运维监控自动化。

此方案场景也适用于Mysql、Redis、PostgreSQL、Prometheus、RabbitMQ、Clickhouse等数据库的单节点实现高可用。


AI 大数据分析性能加速方案
选择合适的缓存节点: 使用 Alluxio 可以获得更好的数据本地性能,在实际生产中我们发现不是所有节点都来做缓存性能就比较好。原因是有些节点的磁盘和网络IO 性能不是很好,这个时候需要我们能够把缓存节点尽量选择到有KubeStorage 存储和网络较好的节点上。我们通过指定 JobnodeAffinity 来进行数据集缓存节点的调度,从而保证缓存节点可高效的提供缓存服务。
配置缓存容量与路径: 通过CSI k8s 存储插件提供 Alluxio 的k8s PV FUSE mount 方式接入,省去了调用Alluxio SDK 的代码改造。 同时,为避免数据量过多而导致缓存量过于庞大,可配置缓存的最大容量与水位线(超过水位线的数据会被自动存储到二级KubeStorage 存储中),另外内存中的数据可有设置1---N个副本。
数据预加载: 第一次访问挂载的数据会经历一次下载数据目录下全部文件的过程,这就产生了一个问题,若数据所在的目录存在无需使用的其它数据,会造成空间资源与网络资源浪费。为避免这种问题,Alluxio既支持对数据的预加载,同时也支持文件目录元数据缓存。
KubeStorage存储池的读写性能是本地硬盘的400%以上,可做为Alluxio 的 二级存储,大大提高了Alluxio内存文件和本地存储的数据交换性能,使得从Alluxio 的内存和二级硬盘读写文件性能接近。
基于KubeStorage存储池提供的Alluxio 的文件元数据(RocksDB)所用的块存储,性能是本地物理硬盘的300%,满足数亿条元数据的读写性能。支持单Alluxio Master节点高可用方案。不用部署3master节点+zk  的高可用方案,硬件资源节省50%以上。
基于KubeStorage存储池提供的对象存储性能是一般对象存储的2—4倍,极大的加速了和Alluxio 的数据同步。
我们使用了不同的模型,推理和训练相同的数据,分别以使用 Alluxio和不使用 Alluxio 的方式推理和训练,对比训练时长,发现性能带来了显示提升。
集成了 Alluxio+KubeStorage后,显著提升了训练和推理的效率,尤其是一些小模型,做训练和推理,可以有效解决I/O 瓶颈的问题,训练速度最高可提升约 300% 。同时也大幅度提升 GPU 使用效率,加速了数据处理的迭代效率。
生产级高可用 Harbor 服务

• 有了我们提供的高可用的PostgreSQL 、Redis 、分布式S3对象存储,就可以搭建出高可用的 Harbor;
• 硬件资源节省50%,可靠性可以达到99.99%;

PB 级分布式对象存储100%兼容 S3协议
基于 ZFS+S3 Proxy+ S3 Agent 实现可弹性扩容的分布式对象存储,头端不需要负载均衡服务;

通过客户端 S3 Agent 实现 Server 端的高可用负载均衡和流量分发,从而使得对象存储无性能瓶颈;

对象存储可用于文档存储、数据备份、大数据存储;

支持内核级透明压缩存储空间节省30%--50%;

开启透明压缩后写4k 文件比直接写盘性能提高500%,写400k文件比直接写盘性能提高40% 。


对象存储应用场景:大数据、数据湖、企业办公文件共享、企业网盘、FTP、Harbor、容器镜像仓库、海量业务数据、日志数据



单节点实现 NFS Server 高可用

KubeStorage 提供内核级高性能多副本的块存储;
k8s调度插件把NFS Server容器调度到其中一个块存储所在节点,实现块存储与NFS Server容器匹配;
提供给 Kubernetes 多点读和多点写的StorageClass和动态供给 PV,可用于Jenkins 等服务使用。

nfs 文件存储应用场景: Jenkins、CI/CD、CSI接口支持多个POD共享数据。