CubeFS单机模式快速部署指南

CubeFS单机模式快速部署指南

概述

CubeFS是一款开源的分布式文件系统,支持文件存储和对象存储两种访问方式。本文将详细介绍如何在单机环境下快速部署和体验CubeFS的基本功能,适合开发者和初学者快速上手。

环境准备

硬件要求

  • 操作系统:推荐使用Ubuntu 20.04或更高版本
  • 内存:至少4GB
  • 磁盘空间:至少20GB可用空间
  • 网络:需要配置有效的网络接口

软件依赖

在开始部署前,需要安装以下依赖项:

sudo apt update
sudo apt install -y build-essential cmake libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev git

Go环境配置

CubeFS需要Go 1.17.x版本进行编译:

wget https://dl.google.com/go/go1.17.13.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.17.13.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

源码获取与编译

  1. 获取CubeFS源码:
git clone https://github.com/cubefs/cubefs.git
cd cubefs
  1. 修改源码(单机模式适配):

    master/cluster.go文件中找到doCreateVol函数,添加以下代码:

vv.ReplicaNum = 1
  1. 编译项目:
make server client cli

编译完成后,在build/bin目录下会生成三个关键文件:

  • cfs-server:包含Master、MetaNode、DataNode和ObjectNode组件
  • cfs-client:客户端程序,用于挂载CubeFS卷
  • cfs-cli:CubeFS管理工具

服务配置与启动

创建目录结构

cd build/bin
mkdir master metanode datanode objectnode client

配置Master节点

创建master.conf配置文件:

{
  "clusterName": "cfs_single_test",
  "id": "1",
  "role": "master",
  "ip": "192.168.12.60",
  "listen": "17010",
  "prof": "17020",
  "peers": "1:192.168.12.60:17010",
  "retainLogs": "200",
  "logLevel": "warn",
  "logDir": "./master/logs",
  "warnLogDir": "./master/logs",
  "walDir": "./master/wal",
  "storeDir": "./master/store",
  "disableAutoCreate":"true",
  "legacyDataMediaType": 1,
  "metaNodeReservedMem": "102400000",
  "singleNodeMode":"true"
}

启动Master服务:

sudo ./cfs-server -f -c ./master.conf &

配置MetaNode节点

创建meta.conf配置文件:

{
  "role": "metanode",
  "listen": "17210",
  "prof": "17220",
  "raftHeartbeatPort": "17230",
  "raftReplicaPort": "17240",
  "exporterPort": 17250,
  "logLevel": "warn",
  "logDir": "./metanode/logs",
  "warnLogDir": "./metanode/logs",
  "memRatio": "70",
  "totalMem": "1024000000",
  "metadataDir": "./metanode/meta",
  "raftDir": "./metanode/raft",
  "masterAddr": ["192.168.12.60:17010"]
}

启动MetaNode服务:

sudo ./cfs-server -f -c ./meta.conf &

配置DataNode节点

创建data.conf配置文件:

{
  "role": "datanode",
  "listen": "17310",
  "prof": "17320",
  "raftHeartbeat": "17330",
  "raftReplica": "17340",
  "exporterPort": 17350,
  "diskRdonlySpace": 1024000000,
  "raftDir": "./datanode",
  "enableSmuxConnPool": false,
  "cell": "cell-01",
  "logDir": "./datanode/logs",
  "warnLogDir": "./datanode/logs",
  "logLevel": "warn",
  "mediaType": 1,
  "smuxMaxConn": 10,
  "smuxStreamPerConn": 2,
  "disks":["/data1:1024000000"],
  "masterAddr": ["192.168.12.60:17010"]
}

启动DataNode服务:

sudo mkdir -p /data1
sudo ./cfs-server -f -c ./data.conf &

配置ObjectNode节点

创建object.conf配置文件:

{
  "role": "objectnode",
  "listen": "17410",
  "prof": "7420",
  "logDir": "./objectnode/logs",
  "logLevel": "warn",
  "masterAddr": ["192.168.12.60:17010"],
  "exporterPort": "17420"
}

启动ObjectNode服务:

sudo ./cfs-server -f -c ./object.conf &

集群管理

配置CLI工具

创建~/.cfs-cli.json配置文件:

{
  "masterAddr": ["192.168.12.60:17010"],
  "timeout": 60
}

设置集群参数

./cfs-cli cluster set --clusterDataMediaType 1

查看集群状态

./cfs-cli cluster info

创建卷

./cfs-cli volume create test test --capacity 1 --replica-num 1

客户端挂载

创建client.conf配置文件:

{
  "masterAddr": "192.168.12.60:17010",
  "mountPoint": "/mnt/cubefs",
  "volName": "test",
  "owner": "test",
  "logDir": "client/logs",
  "logLevel": "warn"
}

挂载文件系统:

sudo mkdir -p /mnt/cubefs
sudo ./cfs-client -c ./client.conf

功能验证

文件存储测试

echo "Hello CubeFS" > /mnt/cubefs/testfile
cat /mnt/cubefs/testfile

对象存储测试

获取用户凭证:

./cfs-cli user info test

使用AWS CLI或s3cmd等工具访问对象存储服务(Endpoint: 192.168.12.60:17410)。

注意事项

  1. 单机部署模式仅适用于学习和测试,不适用于生产环境
  2. 所有服务都运行在同一台机器上,性能会受到限制
  3. 数据只保存一份副本,不具备高可用性
  4. 如需停止服务,可以终止相关进程或重启机器

通过以上步骤,您已经成功在单机环境下部署了CubeFS,并可以体验其文件存储和对象存储功能。如需更深入了解CubeFS的高级特性和集群部署方式,可以参考官方文档或相关技术资料。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔昕连

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值