存储管理
管理悦库的文件存储路径和系统数据路径。
子命令一览
| 子命令 | 需要登录 | 只读 | 说明 |
|---|---|---|---|
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 login(store node list无需登录)。 - 路径不存在:
store path add和store 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字段。