openlake-project/openlake
OpenLake is a high performance storage engine for efficient LLM inference and GPU Training
OpenLake – 用于 LLM 推理与训练的快速分布式存储
它是什么
- OpenLake 是一个用 Rust 编写的开源存储引擎,基于 Linux
io_uring和 RDMA。它旨在保持 NVMe/SSD、网络和 GPU 内存之间的数据移动超低延迟,针对大规模语言模型(LLM)工作负载的 KV 缓存和检查点需求。
为什么重要
- LLM 推理和训练在等待小型随机读写(例如 KV 缓存查找、检查点分片)上花费大量时间。OpenLake 承诺 百万级 IOPS 和亚毫秒级延迟,在作者的基准测试中,这转化为高达 8 倍的吞吐量提升 和 66 倍的首次令牌生成时间缩短。
关键能力
| 功能 | 作用 |
|---|---|
| KV 缓存卸载 | 在 GPU 主机节点的分布式池中存储 PB 级键值缓存,使多个 GPU 共享同一缓存,避免重复的预填充工作。 |
| 向量数据库支持 | 直接从存储层进行快速索引构建和向量服务。 |
| 超快检查点 | 为强化学习和训练检查点提供低延迟对象存储,减少 GPU 空闲时间。 |
| 模型训练 I/O | 针对小文件随机读写进行优化,减少训练时间开销。 |
| 上下文存储 | 为检索增强代理持久化大规模对话历史。 |
| 零拷贝 GPUDirect | 通过 RDMA 或 GPUDirect-Storage,数据可以直接从 NVMe/NIC 移动到 GPU 内存,无需在主机 RAM 中暂存。 |
| 突发感知 RDMA(PacedRDMA) | 基于信用的流控制防止请求高峰期间网络拥塞,保持尾部延迟低。 |
| 纠删码持久性 | SIMD Reed-Solomon 编码将数据和奇偶校验分布在多个驱动器上,提供容错能力,开销低于完全复制。 |
典型用例
- 为多 GPU 推理服务器(例如 vLLM、DeepSpeed)扩展 KV 缓存。
- 为大规模训练管道中的检查点文件提供高吞吐量对象存储。
- 为需要亚毫秒级向量查找的向量数据库提供后端。
- 支持实时存储和检索大规模对话历史的代理系统。
快速开始
- 安装 Python 连接器(用于 vLLM 集成):
pip install openlake-vllm openlaked # 启动本地 OpenLake 守护进程 - 使用连接器运行 vLLM:
对于多节点集群,在每个 GPU 主机上启动export PYTHONHASHSEED=0 vllm serve <model_name> \ --kv-transfer-config '{"kv_connector":"OpenLakeConnector","kv_connector_module_path":"openlake_client.openlake_connector","kv_role":"kv_both","kv_connector_extra_config":{"openlake_nodes":["127.0.0.1:9400"],"openlake_device":"local"}}'openlaked(可选使用 RDMA 特定的 TOML 配置),并将 vLLM 指向节点地址列表。 - 或将其用作兼容 S3 的对象存储:
# 从源码构建(Ubuntu 示例) sudo apt-get install -y build-essential pkg-config clang cmake libhwloc-dev libudev-dev curl git awscli curl -sSf https://sh.rustup.rs | sh -s -- -y && . $HOME/.cargo/env git clone https://github.com/openlake-project/openlake.git && cd openlake cargo build --release --bin openlaked mkdir -p data/d0 data/d1 data/d2 data/d3 ./target/release/openlaked --config crates/openlake_server/configs/storage-tcp-local.toml # 使用任何 S3 客户端与其通信 export AWS_ACCESS_KEY_ID=openlakeadmin export AWS_SECRET_ACCESS_KEY=openlakeadmin export AWS_DEFAULT_REGION=us-east-1 aws --endpoint-url http://127.0.0.1:9000 s3 mb s3://demo aws --endpoint-url http://127.0.0.1:9000 s3 cp ./checkpoint.safetensors s3://demo/
架构概览
- 核心运行时 – 每个物理 CPU 核心一个固定的
compio异步运行时,使用 Linuxio_uring实现低开销 I/O。 - 零拷贝路径 – GPUDirect Storage + RDMA 允许数据直接从 NVMe 或 NIC 传输到 GPU 内存。
- 突发感知网络 – PacedRDMA 在流量高峰期间限制发送方以保护延迟。
- 持久性 – SIMD Reed-Solomon 纠删编码将数据分布在多个驱动器上,以最小的空间开销提供容错能力。
社区与支持
- Discord 社区:https://discord.gg/TNXqVSnP6x
- 博客(包含性能结果和深入文章):https://theopenlake.com/blog
- 文档和配置示例位于
docs/和crates/openlake_server/configs/下。
许可证
- Apache License 2.0(宽松,商业友好)。
OpenLake 定位为保持现代 GPU 集群高效运转的存储层,减少大型语言模型推理和训练的空闲时间和成本。
相关
- Dispatch
- 项目
- 项目
- 项目
- Dispatch