资源管理节点

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

系统特性

  • 多租户,资源隔离

  • 多个卷共享数据节点和元数据节点,每个卷独享各自的数据分片和元数据分片

  • 与数据节点和元数据节点即有同步交互,也有异步交互,交互方式与任务类型相关。

配置参数

CubeFS 使用 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

字符串

集群名字

ebsAddr

字符串

纠删码子系统的地址,使用纠删码子系统时需配置

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":"cubefs01",
 "metaNodeReservedMem": "1073741824"
}

启动服务

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