跳到主要内容

存储管理

管理悦库的文件存储路径和系统数据路径。

子命令一览

子命令需要登录只读说明
store node list查看所有存储节点及其路径列表
store path add为存储节点添加新文件存储路径
store path merge将源路径数据迁移至目标路径并移除源路径
store sys-path set将系统数据迁移至新路径
store balance执行存储平衡与副本修复
store vacuum手动回收卷空间碎片

查看存储节点

opscli store node list
opscli store node list --json

直接读取本机配置文件,无需登录。列出各存储节点的 ID、名称及包含的存储路径列表。


添加存储路径

当某存储节点的磁盘空间不足时,可以添加新的存储路径(指向其他磁盘)。

opscli store path add --nodeID <节点ID> --path <新路径>
# 或使用节点名称
opscli store path add --nodeName <节点名称> --path <新路径>
参数必填说明
--nodeID✓*¹存储节点 ID(可通过 store node list 查看)
--nodeName✓*¹存储节点名称,与 --nodeID 二选一
--path新存储路径的绝对路径(须在本机已存在)
--yes自动确认服务关闭等交互提示(供脚本/CI 使用)
--no-restart跳过重启,手动重启后生效

--nodeID--nodeName 必须且只能指定其一。

注意:执行前服务需已关闭。 若服务正在运行,命令会询问是否自动关闭:

检测到服务正在运行,是否自动关闭服务?输入 "yes" 继续,其他输入退出:

示例:

opscli store path add --nodeID 0 --path /data/oss/disk2

迁移存储路径

存储路径不支持直接删除(删除会导致数据丢失)。若某路径所在磁盘即将满载,使用此命令将源路径的数据迁移至同节点的目标路径,成功后自动移除源路径配置。

opscli store path merge --from <源路径> --to <目标路径>
参数必填说明
--from迁出的源存储路径(绝对路径,须属于某存储节点)
--to迁入的目标存储路径(绝对路径,须与 --from 在同一节点)
--yes自动确认交互提示
--no-restart跳过重启,手动重启后生效

迁移原则:先复制 → 校验成功 → 再删除原始文件,任何步骤失败均立即退出,不影响源路径数据。

示例:

opscli store path merge --from /data/oss/disk1 --to /data/oss/disk2

迁移系统数据路径

opscli store sys-path set --path <新路径>
参数必填说明
--path新系统数据路径的绝对路径(须已存在且可读写)
--yes自动确认交互提示
--no-restart跳过重启,手动重启后生效

将系统数据(MySQL、Redis 等数据库文件)迁移至新路径,迁移完成后删除原路径数据。


执行存储平衡

当新增或迁移存储路径后,各卷(volume)上的数据分布与副本放置可能变得不均衡。store balance 会从 master.toml 读取维护脚本,逐条发送到存储服务执行,用于触发副本平衡与修复:重新均衡各卷上的数据分布、修复缺失或异常的副本,使集群存储保持均匀与健康。建议在每次存储路径变更(添加、迁移)后执行一次。

opscli store balance
参数必填说明
(无)无需参数,直接执行

命令会自动登录校验、解析 master.toml 中的脚本列表,连接到存储服务并逐条执行。

脚本来源: {安装目录}/bin/yoss/master.toml[master.maintenance] 下的 scripts 字段。可自行编辑该文件调整维护命令。



手动回收卷空间

背景: 服务器配置了 -master.garbageThreshold=1.0(阈值 100%),存储服务的自动垃圾回收永不触发。本命令用于在需要时手动回收已删除数据占用的卷空间。

opscli store vacuum
参数必填说明
(无)无需参数,直接执行

何时需要执行:

  • 大量文件被删除后,希望回收卷内碎片空间以供新数据复用
  • 迁移或清理任务完成后,检查存储空间是否需要整理

回收的卷空间不等同于立即释放磁盘空间。存储服务会在后续 compaction 中复用已回收的卷内槽位,磁盘占用不会立刻减少。


常见问题

  • 提示"请先执行 opscli login":先执行 opscli loginstore node list 无需登录)。
  • 路径不存在store path addstore sys-path set 要求目标路径在本机已创建。
  • store path merge 提示"不在同一存储节点"--from--to 必须属于同一存储节点,可通过 store node list 确认。
  • 操作后需要重启:除非指定 --no-restart,命令会在写入配置后自动重启受影响的服务节点。
  • store balance 提示 "请先执行 opscli login":先执行 opscli login 登录。
  • store balance 执行失败(未检测到集群连接信息):确认 yoss2 master 服务正在运行(默认端口 2031),且 master.toml 中存在 [master.maintenance]scripts 字段。