资源管理节点

Master负责管理ChubaoFS整个集群,主要存储5种元数据,包括:数据节点、元数据节点、卷、数据分片、元数据分片。所有的元数据都保存在master的内存中,并且持久化到RocksDB。 多个Master之间通过raft协议保证集群元数据的一致性。注意:master的实例最少需要3个

系统特性

  • 多租户,资源隔离
  • 多个卷共享数据节点和元数据节点,每个卷独享各自的数据分片和元数据分片
  • 与数据节点和元数据节点即有同步交互,也有异步交互,交互方式与任务类型相关。

配置参数

ChubaoFS 使用 JSON 作为配置文件的格式.

属性
配置项 类型 描述 是否必需 默认值
role 字符串 进程的角色,值只能是 master  
ip 字符串 主机ip  
listen 字符串 http服务监听的端口号  
prof 字符串 golang pprof 端口号  
id 字符串 区分不同的master节点  
peers 字符串 raft复制组成员信息  
logDir 字符串 日志文件存储目录  
logLevel 字符串 日志级别 error
retainLogs 字符串 保留多少条raft日志.  
walDir 字符串 raft wal日志存储目录.  
storeDir 字符串 RocksDB数据存储目录.此目录必须存在,如果目录不存在,无法启动服务  
clusterName 字符串 集群名字  
exporterPort 整型 prometheus获取监控数据端口  
consulAddr 字符串 consul注册地址,供prometheus exporter使用  
metaNodeReservedMem 字符串 元数据节点预留内存大小,单位:字节 1073741824
heartbeatPort 字符串 raft心跳通信端口 5901
replicaPort 字符串 raft数据传输端口 5902
nodeSetCap 字符串 NodeSet的容量 18
missingDataPartitionInterval 字符串 当此时间段内没有收到副本的心跳,该副本被认为已丢失,单位:s 24h
dataPartitionTimeOutSec 字符串 当此时间段内没有收到副本的心跳,该副本被认为非存活,单位:s 10min
numberOfDataPartitionsToLoad 字符串 一次最多检查多少数据分片 40
secondsToFreeDataPartitionAfterLoad 字符串 在多少秒之后开始释放由加载数据分片任务占用的内存 300
tickInterval 字符串 检查心跳和选举超时的计时器间隔,单位:ms 500
electionTick 字符串 在计时器重置多少次时,选举超时 5

Example:

{
 "role": "master",
 "id":"1",
 "ip": "10.196.59.198",
 "listen": "17010",
 "prof":"17020",
 "peers": "1:10.196.59.198:17010,2:10.196.59.199:17010,3:10.196.59.200:17010",
 "retainLogs":"20000",
 "logDir": "/cfs/master/log",
 "logLevel":"info",
 "walDir":"/cfs/master/data/wal",
 "storeDir":"/cfs/master/data/store",
 "exporterPort": 9500,
 "consulAddr": "http://consul.prometheus-cfs.local",
 "clusterName":"chubaofs01",
 "metaNodeReservedMem": "1073741824"
}

启动服务

nohup ./cfs-server -c master.json > nohup.out &