1. SeaweedFS 介绍
SeaweedFS 是一个简单且高度可扩展的分布式文件系统。有两个目标:
- to store billions of files! (存储数十亿个文件!)
- to serve the files fast! (快速提供文件!)
Seaweedfs的中心节点(center master)并不会管理所有文件的元数据而仅仅管理文件卷(file volmume),文件及其元数据的管理是由volume server实现的。这可以缓解center master的并发压力,并且将文件元数据分配到volume server可以实现更快的文件访问(只需一次磁盘读取操作)。
2. SeaweedFS 安装
2.1 下载
访问:https://github.com/seaweedfs/seaweedfs/releases
下载linux_amd64.tar.gz文件到本地,并解压文件
bash
tar -xzvf linux_amd64.tar.gz
2.2 创建目录
bash
mkdir -p /data/seaweedfs/master
mkdir -p /data/seaweedfs/vol1
mkdir -p /data/seaweedfs/vol2
mkdir -p /data/seaweedfs/vol3
mkdir -p /data/seaweedfs/filer
mkdir -p /data/seaweedfs/filermount
2.3 启动mster
bash
nohup ./weed -v=3 master -mdir=/data/seaweedfs/master -defaultReplication="001" >> /data/seaweedfs/master/wdfsmaster.log &
2.4 启动volume
bash
nohup ./weed volume -port=8081 -dir=/data/seaweedfs/vol1 -mserver=localhost:9333 >> /data/seaweedfs/vol1/vol1.log &
nohup ./weed volume -port=8082 -dir=/data/seaweedfs/vol2 -mserver=localhost:9333 >> /data/seaweedfs/vol2/vol2.log &
nohup ./weed volume -port=8083 -dir=/data/seaweedfs/vol3 -mserver=localhost:9333 >> /data/seaweedfs/vol3/vol3.log &
1、-dir表示数据存储的目录;
2、-mserver表示Master地址;
3、-port监听的端口;
2.4 开启filer服务器
bash
#开启filer服务器:
nohup ./weed -v=3 filer -port=8888 -master=localhost:9333 >> /data/seaweedfs/filer/filer.log &
#开启挂载服务器,通过 filer 上传的文件放置目录:/data/seaweedfs/filermount
nohup ./weed mount -filer=localhost:8888 -dir=/data/seaweedfs/filermount -filer.path=/ >> /data/seaweedfs/filermount/wefsmount.log &
3. SeaweedFS 上传(master模式)
上传文件
申请fid
bash
curl -X POST http://127.0.0.1:9333/dir/assign
响应结果
json
{"fid":"3,0306b095e5","url":"192.168.1.100:8081","publicUrl":"192.168.1.100:8081","count":1}
通过fid和url来进行上传文件
文件访问地址:http://192.168.1.100:8081/3,0306b095e5
删除文件
通过图片地址发起DELETE请求
bash
curl -X DELETE http://192.168.1.100:8081/3,0306b095e5
4. SeaweedFS 上传(filer模式)
上传文件
文件访问地址:http://192.168.1.100:8888/test/su7_1.jpg
文件列表地址:http://192.168.1.100:8888/
删除文件
通过图片地址发起DELETE请求
bash
curl -X DELETE http://192.168.1.100:8888/test/su7_1.jpg