前期准备:1、准备三台服务器,将服务器的节点地址部署规划为170.10.26.2;170.10.26.3;170.10.26.4。2、到https://github.com/chrislusf/seaweedfs/releases官网上下载软件安装包:linux_amd64.tar.gz。
正式安装:
Step1:
在170.10.26.2服务器上解压linux_amd64.tar.gz,解压路径如下:tar -zxvf ./linux_amd64.tar.gz -C /opt/module,将解压得到的weed文件复制到~桌面上;
在当前服务器上建立master和volume文件夹,mkdir -p ./seaweedfs/data ./seaweedfs/volume;
Step2:启动master节点
nohup ./weed master -ip=172.10.26.2 -port=9333 -mdir=./seaweedfs/data -peers=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 > ./seaweedfs/data/master.log 2>&1 & nohup ./weed master -ip=172.10.26.3 -port=9333 -mdir=./seaweedfs/data -peers=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 > ./seaweedfs/data/master.log 2>&1 & nohup ./weed master -ip=172.10.26.4 -port=9333 -mdir=./seaweedfs/data -peers=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 > ./seaweedfs/data/master.log 2>&1 &
这边注意最后的2>&1 &重定向结尾符号,可以防止多输出和输入
step3:启动volume节点
分别在3台机器上执行命令:
在170.10.26.2上执行
nohup ./weed volume -dataCenter dc1 -rack rack1 -dir ./seaweedfs/volume -ip 172.10.26.2 -port 9222 -ip.bind 172.10.26.2 -max 20 -mserver 172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -publicUrl 172.10.26.2:9222 > ./seaweedfs/volume/volume.log 2>&1 &
在170.10.26.3上执行 nohup ./weed volume -dataCenter dc1 -rack rack1 -dir ./seaweedfs/volume -ip 172.10.26.3 -port 9222 -ip.bind 172.10.26.3 -max 20 -mserver 172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -publicUrl 172.10.26.3:9222 > ./seaweedfs/volume/volume.log 2>&1 &
在170.10.26.4上执行 nohup ./weed volume -dataCenter dc1 -rack rack1 -dir ./seaweedfs/volume -ip 172.10.26.4 -port 9222 -ip.bind 172.10.26.4 -max 20 -mserver 172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -publicUrl 172.10.26.4:9222 > ./seaweedfs/volume/volume.log 2>&1 &
step4:配置完成,测试
测试方法1:访问172.10.26.2:9333,弹出seaweedfs界面,配置成功。
测试文件上传下载:curl http://172.10.26.2:9333/dir/assign,这是首次访问2号机器的/dir/assign路径,首次访问之后会自动分配volume地址,并且将地址返回。(原理:首次访问请求master,master自动分配volume地址,并且将volume地址返回)。
得到如下返回结果:
{"fid":"2,01c7a2191e","url":"172.10.26.2:9222","publicUrl":"172.10.26.3:9222","count":1}
其中,fid代表第2个volume卷id,并且01代表needleid,最后代表cookie
那么通过这个分配的地址去测试上传文件:curl -F file=@./seaweedfs/volume/volume.log 172.10.26.2:9222/2,01c7a2191e
最后通过在浏览器中输入:172.10.26.2:9222/2,01c7a2191e,可以看到图片;或者wget 192.168.88.129:9222/14,0c3657515f 命令下载图片。
进阶:配置filer,将上传的文件放到一个固定目录下
方法:
Step5:建立相应的seaweedfs文件夹,并且在seaweedfs文件夹中创建filer.toml文件,对应命令如下
Step6:在桌面输入/opt/module/weed scaffold filer -output=‘ ’命令,将运行命令后输出的结果复制到filer.toml文件里,复制进去之后,将其中dir的路径改为dir = "/root/sea/filer_path/level",保存退出。
Step7:在三台服务器上分别运行启动filer,命令如下
./weed filer -master=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -ip=172.10.26.2 -port=8888& ./weed filer -master=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -ip=172.10.26.3 -port=8888& ./weed filer -master=172.10.26.2:9333,172.10.26.3:9333,172.10.26.4:9333 -ip=172.10.26.4 -port=8888&
Step8:上传文件并且测试
命令:curl -F "filename=@/opt/sugon/abc.jpg" "http://172.10.26.2:8888/path/to/sources/"
返回一个结果,那个结果是分配的存储地址
最后输入http://172.10.26:8888/地址即可进行访问。至此完成,并且上传的文件全部保存到path/to/sources路径中。
完结。
下一篇讲述seaweedFS的原理
