yum 部署

可以使用 yum 工具在 CentOS 7+操作系统中快速部署和启动 CubeFS 集群。

获取对应版本

该工具的 rpm 依赖项可通过以下命令安装:

提示

集群通过 ansible 托管,请确保 ansible 已经部署。 ansible 安装命令:pip3 install ansible

# x86 version
$ yum install https://ocs-cn-north1.heytapcs.com/cubefs/rpm/3.3.2/cfs-install-3.3.2-el7.x86_64.rpm
# arm version
$ yum install https://ocs-cn-north1.heytapcs.com/cubefs/rpm/3.3.2/arm/cfs-install-3.3.2-el7.aarch64.rpm
$ cd /cfs/install
$ tree -L 3
 .
 ├── install_cfs.yml
 ├── install.sh
 ├── iplist
 ├── src
 └── template
     ├── client.json.j2
     ├── create_vol.sh.j2
     ├── datanode.json.j2
     ├── grafana
     │   ├── grafana.ini
     │   ├── init.sh
     │   └── provisioning
     ├── master.json.j2
     ├── metanode.json.j2
     └── objectnode.json.j2

注意

arm 版本部署要求 Glibc 版本为 2.32 及以上

配置说明

可根据实际环境,在 iplist 文件中修改CubeFS集群的参数.

  • masterdatanodemetanodeobjectnodemonitorclient包含了每个模块的成员IP地址。
  • cfs:vars 模块定义了所有节点的ssh登陆信息,需要事先将集群中所有节点的登录名和密码进行统一。

master config 模块

定义了每个 Master 节点的启动参数。

参数类型描述是否必需
master_clusterName字符串集群名字
master_listen字符串http服务监听的端口号
master_prof字符串golang pprof 端口号
master_logDir字符串日志文件存储目录
master_logLevel字符串日志级别, 默认为 info
master_retainLogs字符串保留多少条raft日志
master_walDir字符串raft wal日志存储目录
master_storeDir字符串RocksDB数据存储目录.此目录必须存在,如果目录不存在,无法启动服务
master_exporterPort整型prometheus获取监控数据端口
master_metaNodeReservedMem字符串元数据节点预留内存大小,如果剩余内存小于该值,MetaNode变为只读。单位:字节, 默认值:1073741824

更多配置介绍请参考 Master配置说明

datanode config 模块

定义了每个 DataNode 的启动参数。

参数类型描述必需
datanode_listen字符串数据节点作为服务端启动TCP监听的端口
datanode_prof字符串数据节点提供HTTP接口所用的端口
datanode_logDir字符串日志存放的路径
datanode_logLevel字符串日志的级别。默认是 info
datanode_raftHeartbeat字符串RAFT发送节点间心跳消息所用的端口
datanode_raftReplica字符串RAFT发送日志消息所用的端口
datanode_raftDir字符串RAFT调测日志存放的路径。默认在二进制文件启动路径
datanode_exporterPort字符串监控系统采集的端口
datanode_disks字符串数组格式: PATH:RETAIN,PATH: 磁盘挂载路径,RETAIN: 该路径下的最小预留空间,剩余空间小于该值即认为磁盘已满,单位:字节。(建议值:20G~50G)

更多配置介绍请参考 DataNode配置说明

metanode config 模块

定义了 MetaNode 的启动参数。

参数类型描述必需
metanode_listen字符串监听和接受请求的端口
metanode_prof字符串调试和管理员API接口
metanode_logLevel字符串日志级别,默认: info
metanode_metadataDir字符串元数据快照存储目录
metanode_logDir字符串日志存储目录
metanode_raftDir字符串raft wal日志目录
metanode_raftHeartbeatPort字符串raft心跳通信端口
metanode_raftReplicaPort字符串raft数据传输端口
metanode_exporterPort字符串prometheus获取监控数据端口
metanode_totalMem字符串最大可用内存,此值需高于master配置中metaNodeReservedMem的值,单位:字节

更多配置介绍请参考 MetaNode配置说明

objectnode config 模块

定义了 ObjectNode 的启动参数。

参数类型描述必需
objectnode_listen字符串http服务监听的IP地址和端口号
objectnode_domains字符串数组为S3兼容接口配置域名以支持DNS风格访问资源,格式: DOMAIN
objectnode_logDir字符串日志存放路径
objectnode_logLevel字符串日志级别 ,默认: error
objectnode_exporterPort字符串prometheus获取监控数据端口No
objectnode_enableHTTPS字符串是否支持 HTTPS协议Yes

更多配置介绍请参考 ObjectNode配置说明

client config 模块

定义了 fuse 客户端的启动参数

参数类型描述必需
client_mountPoint字符串挂载点
client_volName字符串卷名称
client_owner字符串卷所有者
client_SizeGB字符串如果卷不存在,则会创建一个该大小的卷,单位:GB
client_logDir字符串日志存放路径
client_logLevel字符串日志级别:debug, info, warn, error,默认 info
client_exporterPort字符串prometheus获取监控数据端口
client_profPort字符串golang pprof调试端口

更多配置介绍请参考 Client配置说明

[master]
10.196.59.198
10.196.59.199
10.196.59.200
[datanode]
...
[cfs:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass="password"
...
#master config
...
#datanode config
...
datanode_disks =  '"/data0:10737418240","/data1:10737418240"'
...
#metanode config
...
metanode_totalMem = "28589934592"
...
#objectnode config
...

提示

CubeFS 支持混部。如果采取混部的方式,注意修改各个模块的端口配置避免端口冲突。datanode_disks 对应的路径先需要手动创建才能启动 datanode。

启动集群

install.sh 脚本启动 CubeFS 集群,并确保首先启动 Master。

$ bash install.sh -h
Usage: install.sh -r | --role [datanode | metanode | master | objectnode | client | all | createvol ]
$ bash install.sh -r master
$ bash install.sh -r metanode
$ bash install.sh -r datanode
$ bash install.sh -r objectnode

$ bash install.sh -r createvol
$ bash install.sh -r client

全部角色启动后,可以登录到 client 角色所在节点验证挂载点 /cfs/mountpoint 是否已经挂载 CubeFS 文件系统。

在github上编辑