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 兼容性测试

集群管理命令

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

元数据节点管理命令

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

数据节点管理命令

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

数据分片管理命令

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

元数据分片管理命令

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

配置管理

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

自动补全管理

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

卷管理命令

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

用户管理命令

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

兼容性测试

./cfs-cli cptest meta [Snapshot Path] [Host] [Partition ID]         #meta data 兼容性测试
Parameters:
        [Snapshot Path] string                     #快照文件存放路径
        [Host] string                              #生成快照文件的MetaNode地址
        [Partition ID] string                      #需要测试对比的meta partition ID
例:
  1. 使用旧版本server生成meta data, 停止meta data服务, 五分钟后会生成meta data快照数据, 然后拷贝快照文件到本地目录
  2. 在本地机器执行 cfs-cli cptest meta 命令对刚刚拷贝的旧版本快照数据和线上的新数据对比验证
[Verify result]
All dentry are consistent
All inodes are consistent
All meta has checked