CLI工具配置及使用方法

使用命令行界面工具(CLI)可以实现方便快捷的集群管理。利用此工具,可以查看集群及各节点的状态,并进行各节点、卷及用户的管理。

随着CLI的不断完善,最终将会实现对于集群各节点接口功能的100%覆盖。

编译及配置

下载ChubaoFS源码后,在 chubaofs/cli 目录下,运行 build.sh 文件 ,即可生成 cfs-cli 可执行程序。

同时,在 root 目录下会生成名为 .cfs-cli.json 的配置文件,修改master地址为当前集群的master地址即可。也可使用命令 ./cfs-cli config info./cfs-cli config set 来查看和设置配置文件。

使用方法

chubaofs/cli 目录下,执行命令 ./cfs-cli --help./cfs-cli -h ,可获取CLI的帮助文档。

CLI主要分为六类管理命令:

命令描述
cfs-cli cluster集群管理
cfs-cli metanode元数据节点管理
cfs-cli datanode数据节点管理
cfs-cli datapartition数据分片管理
cfs-cli metapartition元数据分片管理
cfs-cli config配置管理
cfs-cli completion生成自动补全命令脚本
cfs-cli volume, vol卷管理
cfs-cli user用户管理
cfs-cli compatibility兼容性测试

集群管理命令

  1. ./cfs-cli cluster info #获取集群信息,包括集群名称、地址、卷数量、节点数量及使用率等
  1. ./cfs-cli cluster stat #按区域获取元数据和数据节点的使用量、状态等
  1. ./cfs-cli cluster freeze [true/false] #是否冻结集群,设置为 `true` 冻结后,当partition写满,集群不会自动分配新的partition
  1. ./cfs-cli cluster threshold [float] #设置集群中每个MetaNode的内存阈值

元数据节点管理命令

  1. ./cfs-cli metanode list #获取所有元数据节点的信息,包括id、地址、读写状态及存活状态
  1. ./cfs-cli metanode info [Address] #展示元数据节点基本信息,包括状态、使用量、承载的partition ID等,
  1. ./cfs-cli metanode decommission [Address] #将该元数据节点下线,该节点上的partition将自动转移至其他可用节点

数据节点管理命令

  1. ./cfs-cli datanode list #获取所有数据节点的信息,包括id、地址、读写状态及存活状态
  1. ./cfs-cli datanode info [Address] #展示数据节点基本信息,包括状态、使用量、承载的partition ID等,
  1. ./cfs-cli datanode decommission [Address] #将该数据节点下线,该节点上的data partition将自动转移至其他可用节点

数据分片管理命令

  1. ./cfs-cli datapartition info [VOLUME] [Partition ID] #获取指定data partition的信息
  1. ./cli datapartition decommission [Address] [Partition ID] #将目标节点上的指定data partition分片下线,并自动转移至其他可用节点
  1. ./cfs-cli datapartition add-replica [Address] [Partition ID] #在目标节点新增一个data partition分片
  1. ./cfs-cli datapartition del-replica [Address] [Partition ID] #删除目标节点上的data partition分片
  1. ./cfs-cli datapartition check #故障诊断,查找多半分片不可用和分片缺失的data partition

元数据分片管理命令

  1. ./cfs-cli metapartition info [VOLUME] [Partition ID] #获取指定meta partition的信息
  1. ./cli metapartition decommission [Address] [Partition ID] #将目标节点上的指定meta partition分片下线,并自动转移至其他可用节点
  1. ./cfs-cli metapartition add-replica [Address] [Partition ID] #在目标节点新增一个meta partition分片
  1. ./cfs-cli metapartition del-replica [Address] [Partition ID] #删除目标节点上的meta partition分片
  1. ./cfs-cli metapartition check #故障诊断,查找多半分片不可用和分片缺失的meta partition

配置管理

  1. ./cfs-cli config info #展示配置信息
  1. ./cfs-cli config set #设置配置信息
  2. root@fa27e115a0ba:/cfs#$ cfs-cli config set
  3. Please input master host:
  4. test.chubaofs.com
  5. Config has been set successfully!

自动补全管理

  1. ./cfs-cli completion #生成命令自动补全脚本

卷管理命令

  1. ./cfs-cli volume create [VOLUME NAME] [USER ID] [flags] #创建所有者是[USER ID]的卷[VOLUME NAME]
  2. Flags:
  3. --capacity uint #指定卷的容量,单位GB(默认为10)
  4. --dp-size uint #指定数据分片的大小,单位GB(默认为120)
  5. --follower-read #启用从follower副本中读取数据的功能(默认为true)
  6. --mp-count int #指定初始元数据分片的数量(默认为3)
  7. -y, --yes #跳过所有问题并设置回答为"yes"
  1. ./cfs-cli volume delete [VOLUME NAME] [flags] #删除指定卷[VOLUME NAME]
  2. Flags:
  3. -y, --yes #跳过所有问题并设置回答为"yes"
  1. ./cfs-cli volume info [VOLUME NAME] [flags] #获取卷[VOLUME NAME]的信息
  2. Flags:
  3. -d, --data-partition #显示数据分片的详细信息
  4. -m, --meta-partition #显示元数据分片的详细信息
  1. ./cfs-cli volume add-dp [VOLUME] [NUMBER] #创建并添加个数为[NUMBER]的数据分片至卷[VOLUME]
  1. ./cfs-cli volume list #获取包含当前所有卷信息的列表
  1. ./cfs-cli volume transfer [VOLUME NAME] [USER ID] [flags] #将卷[VOLUME NAME]转交给其他用户[USER ID]
  2. Flags
  3. -f, --force #强制转交
  4. -y, --yes #跳过所有问题并设置回答为"yes"

用户管理命令

  1. ./cfs-cli user create [USER ID] [flags] #创建用户[USER ID]
  2. Flags
  3. --access-key string #指定用户用于对象存储功能的access key
  4. --secret-key string #指定用户用于对象存储功能的secret key
  5. --password string #指定用户密码
  6. --user-type string #指定用户类型,可选项为normal或admin(默认为normal)
  7. -y, --yes #跳过所有问题并设置回答为"yes"
  1. ./cfs-cli user delete [USER ID] [flags] #删除用户[USER ID]
  2. Flags
  3. -y, --yes #跳过所有问题并设置回答为"yes"
  1. ./cfs-cli user info [USER ID] #获取用户[USER ID]的信息
  1. ./cfs-cli user list #获取包含当前所有用户信息的列表
  1. ./cfs-cli user perm [USER ID] [VOLUME] [PERM] #更新用户[USER ID]对于卷[VOLUME]的权限[PERM]
  2. #[PERM]可选项为"只读"(READONLY/RO)、"读写"(READWRITE/RW)、"删除授权"(NONE)
  1. ./cfs-cli user update [USER ID] [flags] #更新用户[USER ID]的信息
  2. Flags
  3. --access-key string #更新后的access key取值
  4. --secret-key string #更新后的secret key取值
  5. --user-type string #更新后的用户类型,可选项为normal或admin
  6. -y, --yes #跳过所有问题并设置回答为"yes"

兼容性测试

  1. ./cfs-cli cptest meta [Snapshot Path] [Host] [Partition ID] #meta data 兼容性测试
  2. Parameters
  3. [Snapshot Path] string #快照文件存放路径
  4. [Host] string #生成快照文件的MetaNode地址
  5. [Partition ID] string #需要测试对比的meta partition ID

例:

  1. 使用旧版本server生成meta data, 停止meta data服务, 五分钟后会生成meta data快照数据, 然后拷贝快照文件到本地目录
  2. 在本地机器执行 cfs-cli cptest meta 命令对刚刚拷贝的旧版本快照数据和线上的新数据对比验证
  1. [Verify result]
  2. All dentry are consistent
  3. All inodes are consistent
  4. All meta has checked