存储管理
管理悦库的文件存储路径和系统数据路径。
子命令一览
| 子命令 | 需要登录 | 只读 | 说明 |
|---|---|---|---|
store node list | — | ✓ | 查看所有存储节点及其路径列表 |
store path add | ✓ | — | 为存储节点添加新文件存储路径 |
store path merge | ✓ | — | 将源路径数据迁移至目标路径并移除源路径 |
store sys-path set | ✓ | — | 将系统数据迁移至新路径 |
store balance | ✓ | — | 执行存储平衡与副本修复 |
查看存储节点
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 等数据库文件)迁移至新路径,迁移完成后删除原路径数据。
执行存储平衡
从 master.toml 读取维护脚本,逐条发送到 yoss2 shell 执行,用于存储路径变更后触发副本平衡与修复。
opscli store balance
无需参数,直接执行。 命令会自动登录校验、解析 master.toml 中的脚本列表,连接到 yoss2 master 并逐条执行。
执行过程会实时输出每一条脚本命令和 yoss2 shell 的返回结果:
[存储管理] 正在执行数据平衡 master 127.0.0.1:2031...
▶ lock
▶ volume.deleteEmpty -quietFor=24h -apply
▶ volume.balance -apply
▶ volume.fix.replication -apply
▶ s3.clean.uploads -timeAgo=24h
▶ unlock
▶ cluster.ps
* filers 1
* 192.168.0.20:2032.12032 ...
DataCenter: DataCenter
...
[存储管理] 已执行 7 条维护脚本
[存储管理] 完成
脚本来源: {安装目录}/bin/yoss/master.toml 的 [master.maintenance] 下的 scripts 字段。可自行编辑该文件调整维护命令。
常见问题
- 提示"请先执行 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字段。