机器/算力租赁与存储租赁

想把 GPU/算力以"租赁实例"的形式按量或按天租给用户使用、想按 GB·小时租用/扩容存储盘,或想了解租赁实例与 Notebook 的区别、计费方式时读这篇

平台使用 / 资源与存储
机器租赁算力租赁存储租赁rentalStorageLease共享盘workspace租赁实例ENABLE_RENTAL按量计费按天计费on_demanddaily单卡整机single_gpu

机器/算力租赁与存储租赁(rental)

租赁是一个独立的算力售卖模块:用户以"租赁实例"的形式按量或按天租用一段算力(含 GPU), 每个租赁实例是独立于 Notebook 的独立 Pod,通过泛域名访问。 默认关闭,需配置 ENABLE_RENTAL=Trueinstall/kubernetes/cube/overlays/config/config.py:712)开启。

后端:模型 myapp/models/model_rental_instance.py,视图 myapp/views/view_rental.py

租赁实例的关键属性

字段 取值 含义
rental_type single_gpu / whole_machine 租赁类型:单卡 / 整机
charge_mode on_demand / daily 计费方式:按量计费 / 按天计费
price_per_hour 数值 每小时单价(按量计费用)
price_text 文本 价格描述文本(展示用)
auto_renew true/false 是否自动续费
image_category ide / dev / model_market / inference / custom 实例运行的镜像类目(在线 IDE / 开发 / 模型市场应用 / 推理 / 自定义)
resource_cpu / resource_memory / resource_gpu 申请的 CPU / 内存 / GPU
  • 计费:按量计费按使用时长 × price_per_hour按天计费的费用从账单 Bill 表读取 (见 model_rental_instance.py:252-258),与计量计费体系打通。
  • 镜像类目 image_category 决定实例跑什么:如 ide 跑在线 IDE(jupyter 等)、model_market 跑 AIHub 应用、 inference 跑推理,具体配置存在 image_config(JSON)里。

使用方式(界面)

  1. 管理员开启 ENABLE_RENTAL 并准备好可租赁的镜像/资源。
  2. 用户在租赁页选择租赁类型(单卡/整机)、计费方式(按量/按天)、镜像类目与资源规格,创建租赁实例。
  3. 平台拉起独立 Pod,并分配泛域名访问入口;按所选计费方式计费,可选自动续费。
  4. 费用与账单在计量计费中查看(按天计费走 Bill 表)。

字段默认值与完整生命周期见 myapp/models/model_rental_instance.pymyapp/views/view_rental.py。 多租户开启时,租赁实例同样按租户隔离,见 多租户隔离.md

存储租赁(StorageLease / 共享盘)

存储租赁是独立于机器租赁的存储售卖模块:单独租用 / 扩容 / 释放、单独按小时计费, 与租赁实例解耦(建盘即起算计费,与是否挂载无关)。

后端:模型 myapp/models/model_storage_lease.py,视图 myapp/views/view_storage_lease.py;前端 pages/StorageLease

两类存储记录

类型 is_workspace 挂载点 说明
用户 workspace True /mnt/$username 每 用户+集群 唯一,惰性自动创建、不可删除(仅"删数据"逃生口);默认大小 = 免费额度,仅可扩容
普通共享盘 False /mnt/$name 模型已预留(按盘名挂载、可多绑到租赁实例的 storage_lease_id),v1 暂不开放,当前版本以 workspace 为主

存储后端

两类都创建为 PVC(PVC 名 storagelease-{id}):

  • 配置了 StorageClass → 真实容量限额,支持在线 resize 扩容;
  • 未配置(读不到 StorageClass)→ 以 hostpath 方式建 PVC,容量为名义值(大小不强制)。

计费规则(事件分段,不做定时刷新)

  • 触发时机:建盘 / 扩容 / 释放时落一段账单,按 start_time → end_time 分段计费;在途账单 end_time 为空,释放时结算定格;
  • 计费公式:应计容量 = max(0, size − 免费额度)金额 = 应计容量 × RENTAL_DATADISK_PRICE_PER_GB_HOUR × 小时数
  • 免费额度:workspace 免 RENTAL_WORKSPACE_FREE_GB(默认 20G),普通盘无免费额度;额度内不出账(如 workspace ≤ 20G 完全免费);
  • 容量上限:RENTAL_STORAGE_MAX(默认 10000G);
  • 账单 bill_id 按 盘id+段起点 唯一,一段一条,欠费可按用户释放。

与租赁实例的关系

  • 租赁实例默认挂载用户 workspace(/mnt/$username),存储独立于实例生命周期,实例释放后数据保留;
  • 实例上的 storage_lease_id 字段(逗号分隔共享盘名)为未来"一实例多绑共享盘"预留,v1 留空;
  • 扩容 / 释放走专用端点(不在普通编辑表单里),释放才删数据
最后更新 2026-08-11完整文档以官方仓库为准:GitHub Wiki