1.seaweedfs的概述seaweedfs是一個(gè)非常優(yōu)秀的由golang開發(fā)的分布式存儲(chǔ)開源項(xiàng)目误辑。它是用來(lái)存儲(chǔ)文件的系統(tǒng)忘蟹,并且與使用的語(yǔ)言無(wú)關(guān)季春,使得文件存儲(chǔ)在云端變得非常方便蜻牢。在邏輯上Seaweedfs的幾個(gè)概念:
Node系統(tǒng)抽象的節(jié)點(diǎn)狭郑,抽象為DataCenter罪既、Rack铸题、DataNode
DataCenter數(shù)據(jù)中心,對(duì)應(yīng)現(xiàn)實(shí)中的不同機(jī)房
Rack機(jī)架琢感,對(duì)應(yīng)現(xiàn)實(shí)中的機(jī)柜
Datanode存儲(chǔ)節(jié)點(diǎn)丢间,用于管理、存儲(chǔ)邏輯卷
Volume邏輯卷猩谊,存儲(chǔ)的邏輯結(jié)構(gòu)千劈,邏輯卷下存儲(chǔ)Needle
Needle邏輯卷中的Object,對(duì)應(yīng)存儲(chǔ)的文件
Collection文件集牌捷,可以分布在多個(gè)邏輯卷上
2.部署seaweedfs
部署規(guī)劃
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 &
測(cè)試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}
也可在瀏覽器測(cè)試seaweedfs是否部署成功
上傳文件
[root@dev-node2 home]# curl -F "file=/home/1.txt" 192.168.20.61:8081/3,017ece0059
{"size":11}
在瀏覽器直接訪問(wèn)墙牌,可以看到剛才上傳的文件,如下圖
查看卷目錄
仔細(xì)觀察,每一組都是有dat和idx組成, dat是數(shù)據(jù)部分,idx是索引部分