官方网站: https://github.com/chrislusf/seaweedfs/wiki/Getting-Started
seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件储存在云端变得非常方便。
在逻辑上Seaweedfs的几个概念:
- Node 系统抽象的节点,抽象为DataCenter、Rack、DataNode
- DataCenter 数据中心,对应现实中的不同机房
- Rack 机架,对应现实中的机柜
- Datanode 存储节点,用于管理、存储逻辑卷
- Volume 逻辑卷,存储的逻辑结构,逻辑卷下存储Needle
- Needle 逻辑卷中的Object,对应存储的文件
- Collection 文件集,可以分布在多个逻辑卷上
常用参数说明
- -dir表示该DataNode数据存储的目录; -dir表示数据的存储文件地址
- -max表示volume个数最大值;
- -mserver表示Master地址;-mserver是主节点的ip以及端口,
- -port该DataNode监听的端口;-port表示该volume的端口,
- -ip为启动volume的ip,
- publicUrl 表示外部访问存储数据的链接地址,
- -mdir 元数据目录
- data下面包含 xxx.dat与xxx.idx文件中,通过fid确定在哪个卷中
普通部署方式:
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部署方式
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 部署方式
#服务器 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 &
常见问题
- 提示没有文件夹权限,关闭selinux
- java.lang.RuntimeException: 文件上传失败,原因:{"error":"rpc error: code = Unknown desc = Cannot grow volume group! No matching data node found! \ndc1:Only has 0 racks with more than 2 free data nodes, not enough for 1."} ,重启weed_master后解决
标签:9333,seaweedfs,192.168,weed,volume,master,分布式文件系统,port,搭建 From: https://www.cnblogs.com/melodyf/p/13226964.html