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 缓存。
  • 为大规模训练管道中的检查点文件提供高吞吐量对象存储。
  • 为需要亚毫秒级向量查找的向量数据库提供后端。
  • 支持实时存储和检索大规模对话历史的代理系统。

快速开始

  1. 安装 Python 连接器(用于 vLLM 集成):
    pip install openlake-vllm
    openlaked   # 启动本地 OpenLake 守护进程
    
  2. 使用连接器运行 vLLM:
    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"}}'
    
    对于多节点集群,在每个 GPU 主机上启动 openlaked(可选使用 RDMA 特定的 TOML 配置),并将 vLLM 指向节点地址列表。
  3. 或将其用作兼容 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 异步运行时,使用 Linux io_uring 实现低开销 I/O。
  • 零拷贝路径 – GPUDirect Storage + RDMA 允许数据直接从 NVMe 或 NIC 传输到 GPU 内存。
  • 突发感知网络 – PacedRDMA 在流量高峰期间限制发送方以保护延迟。
  • 持久性 – SIMD Reed-Solomon 纠删编码将数据分布在多个驱动器上,以最小的空间开销提供容错能力。

社区与支持

许可证

  • Apache License 2.0(宽松,商业友好)。

OpenLake 定位为保持现代 GPU 集群高效运转的存储层,减少大型语言模型推理和训练的空闲时间和成本。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • Dispatch