CubeFS 命令行工具 cfs-cli 使用指南:编译、配置与集群管理命令全解析
存储分布式文件系统对象存储云原生【免费下载链接】cubefscloud-native distributed storage项目地址https://gitcode.com/gh_mirrors/cu/cubefs点击查看免费下载导读cfs-cli是 CubeFS 提供的命令行管理工具用于对集群进行日常运维与管理查看集群及各节点状态执行数据节点、元数据节点、数据分片、元数据分片、卷Volume、用户、目录配额等资源的创建、删除、变更操作。本文以官方文档 docs-zh/source/user-guide/cli/overview.md 为主线结合仓库源码cli/cli.go、cli/cmd/root.go、cli/cmd/config.go 等深入讲解cfs-cli的编译方式、配置文件结构与修改方法、帮助系统以及各类子命令的分类与典型用法帮助读者快速上手并理解其底层实现。一、cfs-cli 是什么cfs-cli是 CubeFS 的命令行界面CLI客户端位于仓库根目录的 cli 目录下。它是一个独立可执行的二进制程序通过调用 Master 节点提供的 HTTP 接口实现集群管理具备以下能力查看集群整体状态、拓扑及各节点MetaNode / DataNode / FlashNode的运行状态对节点执行下线decommission、迁移、状态查询等运维操作创建、删除、扩容、缩容卷Volume管理卷的副本数、容量、读写属性等管理用户User及其授权关系管理目录配额Quota、节点集Nodeset、数据分片Data Partition与元数据分片Meta Partition等。官方文档指出随着 CLI 的不断完善最终将会实现对于集群各节点接口功能的 100% 覆盖。这意味着运维人员可以完全脱离手工调用 Master HTTP API统一通过cfs-cli完成集群管理。二、编译与配置2.1 编译生成 cfs-cli下载 CubeFS 源码后进入cli目录运行build.sh即可生成cfs-cli可执行程序cd cli ./build.sh生成的可执行文件cfs-cli位于cli目录下。此外仓库根目录的 Makefile 也提供了统一的构建入口其中定义了cli构建目标build: server authtool client cli libsdk fsck fdstore bcache blobstore deploy cli: build/build.sh cli $(GOMOD) --threads$(threads)因此在仓库根目录执行make cli同样可以完成构建。从源码看cfs-cli的入口在 cli/cli.go其启动流程为初始化日志输出到/tmp/cfs目录下的 cli 日志通过 cli/cmd/config.go 中的LoadConfig()加载用户配置文件使用配置中的masterAddr创建 Master 客户端sdk/master 中的NewMasterClient并设置请求超时时间与认证用的ClientIDKey基于 spf13/cobra 命令行框架组装根命令并执行。2.2 配置文件 .cfs-cli.json编译完成后首次运行cfs-cli时会在当前用户主目录$HOME下自动生成名为.cfs-cli.json的配置文件。该文件用于指定要连接的 Master 集群地址等信息。默认配置文件内容与 cli/cmd/config.go 中的defaultConfigData一致{ masterAddr: [ master.cube.io ], timeout: 60 }配置项说明如下配置项类型说明默认值masterAddr[]stringMaster 节点地址列表可配置多个地址实现故障转移格式为HOST:PORT[master.cube.io]timeoutuint16所有请求的超时时间单位为秒60clientIDKeystring集群开启认证时需要设置的客户端 ID Key空对应源码中的结构体定义cli/cmd/config.gotype Config struct { MasterAddr []string json:masterAddr Timeout uint16 json:timeout ClientIDKey string json:clientIDKey }需要注意的细节配置文件的权限为0600仅当前用户可读写若timeout为 0加载配置时会被重置为默认值 60若文件不存在程序会自动写入默认配置后再加载因此首次使用无需手动创建文件只需修改其中的 master 地址即可。修改配置的两种方式方式一直接编辑~/.cfs-cli.json将masterAddr修改为当前集群的 Master 地址多个 Master 用逗号分隔或配置为数组。方式二使用cfs-cli config命令查看与设置./cfs-cli config info # 查看当前配置文件内容 ./cfs-cli config set --addr 192.168.0.11:17010,192.168.0.12:17010 --timeout 60config set命令的参数详见 cli/cmd/config.go 中的newConfigSetCmd参数说明默认值--addr指定 Master 地址格式{HOST}:{PORT}[,{HOST}:{PORT}]多个地址用逗号分隔必填--timeout请求超时时间单位秒取值范围为 165535uint16且不能为 060配置成功后会输出Config has been set successfully!。config info则会打印类似如下的信息Config info: Master Address : [192.168.0.11:17010 192.168.0.12:17010] Request Timeout [s]: 60从源码实现看setConfig会先加载现有配置再用新地址列表替换MasterAddr、用新超时覆盖Timeout最后以 JSON 格式原子写回配置文件cli/cmd/config.go。2.3 使用 gencfg 批量生成集群配置除了cfs-cli自身的配置文件外CLI 还提供了一个gencfg子命令用于根据一份 YAML 集群描述文件批量生成 Master、MetaNode、DataNode、ObjectNode、Client 等全部角色的 JSON 配置文件方便部署。其定义位于 cli/cmd/gen_config.go./cfs-cli gencfg --yaml config/cluster.yaml --out build/config--yaml, -i输入的集群 YAML 配置默认config/cluster.yaml--out, -o输出 JSON 配置目录默认build/config。仓库中提供了完整的示例文件 cli/cluster-example.yaml涵盖version、cluster.name、公共config如consulAddr、logLevel、logDir、master.hosts与master.configlisten、prof、exportPort、walDir、storeDir以及nodes列表中各类角色的差异化配置。生成逻辑会根据 YAML 中的 master 地址推导出 peers 列表并写入各节点的masterAddr实现一键式集群配置下发。三、使用方法3.1 查看帮助在cli目录下执行以下任一命令即可获取 CLI 的帮助文档./cfs-cli --help ./cfs-cli -h除此之外cfs-cli还支持--version, -v参数打印版本信息cli/cmd/root.go以及completion子命令生成 Bash 自动补全脚本cli/cli.go./cfs-cli completion # 会在当前目录生成 cfs-cli.sh之后在 ~/.bashrc 中 source 该文件即可启用补全3.2 命令分类总览官方文档将 CLI 管理命令划分为以下几类命令描述cfs-cli cluster集群管理cfs-cli metanode元数据节点管理cfs-cli datanode数据节点管理cfs-cli datapartition数据分片管理cfs-cli metapartition元数据分片管理cfs-cli config配置管理cfs-cli volume, vol卷管理cfs-cli user用户管理cfs-cli nodesetnodeset 管理cfs-cli quota目录配额管理从 cli/cmd/root.go 的源码看当前版本实际注册的子命令比文档表格更丰富除上述命令外还包括zoneZone 管理acl访问控制列表管理uidUID 管理disk磁盘管理含坏盘查询、下线等操作flashnode/flashgroupFlash 节点及 Flash 组管理对应云闪存/远端缓存场景balance数据均衡管理version查看版本信息gencfg批量生成集群配置。各类命令下又细分出多个操作子命令。操作动词与资源名在 cli/cmd/const.go 中统一维护例如create、delete、set、get、list、stat、expand、shrink、decommission下线缩写dec、recommission重新上线、migrate迁移、freeze冻结、threshold阈值设置等。部分资源还支持短名称如dndatanode、mnmetanode、dpdatapartition、mpmetapartition。各子命令的详细参数与用法见官方文档对应章节集群管理docs-zh/source/user-guide/cli/cluster.md配置管理docs-zh/source/user-guide/cli/config.md数据节点docs-zh/source/user-guide/cli/datanode.md元数据节点docs-zh/source/user-guide/cli/metanode.md数据分片docs-zh/source/user-guide/cli/datapartition.md元数据分片docs-zh/source/user-guide/cli/metapartition.md卷管理docs-zh/source/user-guide/cli/volume.md用户管理docs-zh/source/user-guide/cli/user.mdnodeset 管理docs-zh/source/user-guide/cli/nodeset.md目录配额docs-zh/source/user-guide/cli/quota.mdFlash 节点docs-zh/source/user-guide/cli/flashnode.mdBlobStore CLIdocs-zh/source/user-guide/cli/blobstore-cli.md3.3 典型使用示例下面结合源码中定义的命令结构给出几个最常用的操作示例具体参数以各命令的-h帮助为准查看集群信息./cfs-cli cluster info创建卷Volume./cfs-cli volume create --name ltptest --user ltptest --capacity 100 --dp-count 10 --mp-count 3 --replica-num 3其中--name指定卷名、--user指定卷属主、--capacity指定容量GB、--dp-count/--mp-count指定数据分片与元数据分片数量、--replica-num指定副本数对应 cli/cmd/const.go 中的CliFlagDataPartitionCount、CliFlagMetaPartitionCount、CliFlagReplicas等 Flag 定义。查看/管理用户./cfs-cli user list ./cfs-cli user create --name alice --password xxx管理节点下线./cfs-cli datanode decommission --addr 192.168.0.21:173103.4 底层工作方式cfs-cli本身不直接与节点通信所有管理操作最终都汇聚到 Master 集群执行。从 cli/cli.go 可以看到程序启动时会通过master.NewMasterClient(cfg.MasterAddr, false)创建指向配置中masterAddr的客户端并通过SetTimeout设置全局请求超时、通过SetClientIDKey设置认证密钥。因此修改masterAddr配置后所有命令的请求目标都会随之切换当集群开启了认证时需要在配置中设置clientIDKeycfs-cli config set暂未提供该字段的设置入口可通过直接编辑~/.cfs-cli.json完成否则操作会被拒绝。四、常见问题与注意事项找不到配置文件首次运行前请确保cfs-cli可执行程序与$HOME目录可写程序会自动创建~/.cfs-cli.json若想查看当前生效配置使用./cfs-cli config info。Master 地址错误导致连接失败请确认masterAddr中的地址格式为IP:PORT且与集群 Master 实际监听端口默认17010一致多 Master 场景可配置多个地址提升可用性。请求超时集群规模较大或分片数量多时个别操作如创建大容量卷可能耗时较长可通过--timeout适当调大超时时间上限 65535 秒。命令拼写与补全cfs-cli基于 cobra 框架输入错误命令时会给出 Did you mean this? 的相似命令提示也可运行./cfs-cli completion生成 Bash 补全脚本提升操作效率。认证集群集群开启认证后需在配置中补充clientIDKey否则命令会被拒绝执行。五、小结cfs-cli是 CubeFS 集群运维的入口工具覆盖集群、节点、分片、卷、用户、配额、nodeset 等核心管理能力。通过build.sh或make cli即可快速构建配合~/.cfs-cli.json配置文件或config set/config info命令指定 Master 地址后即可使用。掌握本文介绍的编译、配置与命令分类方法即可在此基础上通过各子命令的-h帮助深入操作实现高效、脚本化的集群管理。赞分享存储分布式文件系统对象存储云原生【免费下载链接】cubefscloud-native distributed storage项目地址https://gitcode.com/gh_mirrors/cu/cubefs点击查看免费下载相关推荐CubeFS 集群管理实战cfs-cli cluster 命令完全指南CubeFS 集群管理实战cfs cli cluster 命令完全指南 本篇指南以 CubeFS 官方中文文档 docs zh/source/user gui存储分布式文件系统对象存储云原生EverOS 新增业务记忆类型add-memory-kind完整指南从存储选型到三层持久化接线EverOS 新增业务记忆类型add memory kind完整指南从存储选型到三层持久化接线 EverOS 将每个业务记忆类型Episode、Case存储分布式文件系统对象存储云原生CubeFS cfs-cli 配置管理完全指南config info 与 config set 命令详解CubeFS cfs cli 配置管理完全指南config info 与 config set 命令详解 导读 本文以 CubeFS 官方中文文档中的「配置管存储分布式文件系统对象存储云原生上一篇GHelper如何用5MB软件替代华硕Armoury Crate实现性能与续航的完美平衡下一篇3分钟掌握HsMod告别炉石传说的55个烦恼开启极致游戏体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Mooncake Store 的 OSS 对象存储卸载(Offload)部署指南:架构、配置与故障排查

Mooncake Store 的 OSS 对象存储卸载(Offload)部署指南:架构、配置与故障排查

人工智能大模型模型推理服务后端 【免费下载链接】Mooncake Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI. 项目地址: https://gitcode.com/gh_mirrors/mo/Mooncake 点击查看 免费下载 导读 本文介绍 Mooncake 项目…

2026/10/5 13:04:59 阅读更多 →
LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路

LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路

LiveKit 拆解 Safari 下 AV1 黑屏的兜底链路 【免费下载链接】livekit End-to-end realtime stack for connecting humans and AI 项目地址: https://gitcode.com/GitHub_Trending/li/livekit 用 Safari 进会,远端画面是一块黑屏,或者自己的摄像头…

2026/10/5 13:04:59 阅读更多 →
游戏存档保护的终极解决方案:3步搞定跨平台进度备份 [特殊字符]

游戏存档保护的终极解决方案:3步搞定跨平台进度备份 [特殊字符]

游戏存档保护的终极解决方案:3步搞定跨平台进度备份 😎 【免费下载链接】ludusavi Backup tool for PC game saves 项目地址: https://gitcode.com/GitHub_Trending/lu/ludusavi 还在为游戏进度丢失而烦恼吗?Ludusavi 是一款专业的游戏…

2026/10/5 13:03:59 阅读更多 →

最新新闻

海淀区统计年鉴(2005-2025)

海淀区统计年鉴(2005-2025)

海淀区统计年鉴(2005-2025)数据来源:海淀区统计局数据年份:2005-2025数据格式:pdf目录:海淀区2024年国民经济和社会发展统计公报…STATISTICAL COMMUNIQUE ON THE 2024 NATIONAL ECONOMIC AND SOCIAL DEVEL…

2026/10/5 14:22:41 阅读更多 →
AI时代湖仓一体实践:从架构选型到规范落地全攻略

AI时代湖仓一体实践:从架构选型到规范落地全攻略

上周四晚上 11 点,我朋友在群里丢了一张监控截图:他们刚上线的湖仓任务,凌晨 ETL 跑了三个小时没跑完,分区表却生成了四千多个小文件。底下有人回了一句——“你们不是上了 AI 吗?”朋友回:AI 是上了&#…

2026/10/5 14:22:41 阅读更多 →
RAG进阶实战:从MVP到生产级Agent与向量库调优

RAG进阶实战:从MVP到生产级Agent与向量库调优

1. 为什么我要做这个RAG进阶实战专栏 过去大半年,我一直在帮团队和外部客户落地RAG项目,从最简单的“文档切片向量检索拼Prompt”三件套,到后来涉及多路召回、重排序、知识图谱融合、Agent调度,踩过的坑比写过的代码还多。市面上R…

2026/10/5 14:22:41 阅读更多 →
RAG进阶实战:从能跑到好用,突破检索增强与Agent编排瓶颈

RAG进阶实战:从能跑到好用,突破检索增强与Agent编排瓶颈

1. 为什么我要做这个RAG进阶专栏过去大半年,我几乎把业余时间全砸在了RAG这个方向上。从最早用Ollama加一个本地向量库跑通"能问答"的玩具,到后来给团队做真正能上线的知识库系统,中间踩的坑多到可以写一本错题集。我发现一个很普遍…

2026/10/5 14:22:41 阅读更多 →
基于FrFT与Curvelet变换的图像加密算法及Matlab实现

基于FrFT与Curvelet变换的图像加密算法及Matlab实现

做了这么多年图像处理,我对加密这块从一开始的“不屑”到后来“真香”,中间经历了不少弯路。最早做图像加密,脑子里只有置乱和扩散这两板斧:Arnold猫脸映射先把像素位置搅乱,再拿Logistic序列把灰度值做异或。听起来没…

2026/10/5 14:22:41 阅读更多 →
Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

文档教程知识库人工智能 【免费下载链接】ai-guide 程序员鱼皮的 AI 资源大全 Vibe Coding 零基础教程,分享 OpenClaw 保姆级教程、大模型玩法(DeepSeek / GPT / Gemini / Claude / GLM)、最新 AI 资讯、Prompt 提示词大全、AI 知识百科&…

2026/10/5 14:21:41 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →