1.seaweedfs的概述seaweedfs是一个非常优秀的由golang开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件存储在云端变得非常方便。在逻辑上Seaweedfs的几个概念:
Node系统抽象的节点,抽象为DataCenter、Rack、DataNode
DataCenter数据中心,对应现实中的不同机房
Rack机架,对应现实中的机柜
Datanode存储节点,用于管理、存储逻辑卷
Volume逻辑卷,存储的逻辑结构,逻辑卷下存储Needle
Needle逻辑卷中的Object,对应存储的文件
Collection文件集,可以分布在多个逻辑卷上
2.部署seaweedfs
部署规划
master: 192.168.20.61
volume:
192.168.20.61(dev-node1)
192.168.20.62(dev-node2)
[root@dev-node1 ~]# cd /usr/local/
[root@dev-node1 local]#
wget https://github.com/chrislusf/seaweedfs/releases/download/0.96/linux_amd64.tar.gz
[root@dev-node1 local]# tar -xf linux_amd64.tar.gz
[root@dev-node1 local]# ./weed -n
[root@dev-node1 local]# mkdir -p /home/seaweedfs/data
[root@dev-node1 local]# mkdir -p /home/seaweedfs/vol/vol1
[root@dev-node1 local]# mkdir -p /home/seaweedfs/logs
[root@dev-node1 local]# nohup /usr/local/weed master -mdir=/home/seaweedfs/data port=9333 -defaultReplication="001" -ip="192.168.20.61" &>> /home/seaweedfs/logs/master.log &
[root@dev-node1 local]# /usr/local/weed volume -dir=/home/seaweedfs/vol/vol1
-mserver="192.168.20.61:9333" -port=8081 -ip="192.168.114.61" &>>/home/seaweedfs/logs/vol1.log &
[root@dev-node1 ~]# cd /usr/local/
[root@dev-node2 local]# mkdir -p /home/seaweedfs/logs/
[root@dev-node2 local]# /usr/local/weed volume -dir=/home/seaweedfs/vol/vol1
-mserver="192.168.20.61:9333" -port=8081 -ip="192.168.20.62" &>>/home/seaweedfs/logs/vol1.log &
测试seaweedfs是否部署成功
[root@dev-node1 ~]# curl http://192.168.20.61:9333/dir/assign
{"fid":"3,017ece0059","url":"192.168.20.61:8081","publicUrl":"192.168.20.61:8081","count":1}
也可在浏览器测试seaweedfs是否部署成功
上传文件
[root@dev-node2 home]# curl -F "file=/home/1.txt" 192.168.20.61:8081/3,017ece0059
{"size":11}
在浏览器直接访问,可以看到刚才上传的文件,如下图
查看卷目录
仔细观察,每一组都是有dat和idx组成, dat是数据部分,idx是索引部分
网友评论