分布式文件系统seaweedfs搭建配置

2023-08-24 13:35:53 浏览数 (1)

官方网站: https://github.com/chrislusf/seaweedfs/wiki/Getting-Started

seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件储存在云端变得非常方便。

在逻辑上Seaweedfs的几个概念:

  • Node 系统抽象的节点,抽象为DataCenter、Rack、DataNode
  • DataCenter 数据中心,对应现实中的不同机房
  • Rack 机架,对应现实中的机柜
  • Datanode 存储节点,用于管理、存储逻辑卷
  • Volume 逻辑卷,存储的逻辑结构,逻辑卷下存储Needle
  • Needle 逻辑卷中的Object,对应存储的文件
  • Collection 文件集,可以分布在多个逻辑卷上

常用参数说明

  1. -dir表示该DataNode数据存储的目录; -dir表示数据的存储文件地址
  2. -max表示volume个数最大值;
  3. -mserver表示Master地址;-mserver是主节点的ip以及端口,
  4. -port该DataNode监听的端口;-port表示该volume的端口,
  5. -ip为启动volume的ip,
  6. publicUrl 表示外部访问存储数据的链接地址,
  7. -mdir 元数据目录
  8. data下面包含 xxx.dat与xxx.idx文件中,通过fid确定在哪个卷中

普通部署方式:

代码语言:javascript复制
#1 nohup ./weed master -port=19333 -mdir="mdir" -defaultReplication=001 >> master.log 2>&1 &
#2 nohup ./weed volume -port=18081 -dir=vdir1 -max=100 -mserver="127.0.0.1:19333" -dataCenter=dc1 -rack=rack1  >> v1.log 2>&1 &
#3 nohup  ./weed volume -port=18082 -dir=vdir2 -max=100 -mserver="127.0.0.1:19333" -dataCenter=dc1 -rack=rack1 >> v2.log 2>&1 &

docker部署方式

代码语言:javascript复制
1 docker run  -p 9333:9333 -p 19333:19333 -v /opt/seaweed/mdir:/data --name weed_master chrislusf/seaweedfs master -defaultReplication=001
2 docker run -p 9334:8080 -v /opt/seaweed/vdir1:/data --name weed_volume1 --link weed_master chrislusf/seaweedfs volume -max=30 -mserver="weed_master:9333" -port=8080  -dataCenter=dc1 -rack=rack1 -publicUrl="volume1.tonisf.com:88"
3 docker run -p 9335:8080 -v /opt/seaweed/vdir2:/data --name weed_volume2 --link weed_master chrislusf/seaweedfs volume -max=30 -mserver="weed_master:9333" -port=8080  -dataCenter=dc1 -rack=rack1 -publicUrl="volume2.tonisf.com:88"

三个master 二个slave 部署方式

代码语言:javascript复制
#服务器 21 22 23
nohup ./weed master -port=9333 -mdir=/opt/seaweed/mdir -defaultReplication=001 -ip=192.168.100.21 -peers=192.168.100.21:9333,192.168.100.22:9333,192.168.100.23:9333  >> master.log 2>&1 &
nohup ./weed master -port=9333 -mdir=/opt/seaweed/mdir -defaultReplication=001 -ip=192.168.100.22 -peers=192.168.100.21:9333,192.168.100.22:9333,192.168.100.23:9333  >> master.log 2>&1 &
nohup ./weed master -port=9333 -mdir=/opt/seaweed/mdir -defaultReplication=001 -ip=192.168.100.23 -peers=192.168.100.21:9333,192.168.100.22:9333,192.168.100.23:9333  >> master.log 2>&1 &
#服务器 22
nohup ./weed volume -port=9334 -dir=/opt/seaweed/vdir1 -max=30 -mserver=192.168.100.21:9333,192.168.100.22:9333,192.168.100.23:9333 -dataCenter=dc1 -rack=rack1   -publicUrl=volume1.tonisf.com -ip=192.168.100.22 >> v1.log 2>&1 &
#服务器 23
nohup  ./weed volume -port=9335 -dir=/opt/seaweed/vdir2 -max=30 -mserver=192.168.100.21:9333,192.168.100.22:9333,192.168.100.23:9333 -dataCenter=dc1 -rack=rack1  -publicUrl=volume2.tonisf.com -ip=192.168.100.23 >> v2.log 2>&1 &

0 人点赞