seaweedfs使用说明
基本概念
master 存储映射关系,文件和fid的映射关系 weed master
Node 系统抽象的结点,抽象为datacenter、rack、datanode
datacenter 数据中心,包含多个rack,类似一个机房
rack :属于一个datacenter,类似机房中的一个机架
datanode : 存储节点,存储多个volume,类似机架中的一个机器 weed volume
volume :逻辑卷,存储needle
needle: 逻辑卷中的object,对应存储的文件
collection:文件集,默认所有文件都属于""文件集。如果想给某些文件单独分类,可以在申请id的时候指定相同的文件集
filer :指向一个或多个master的file服务器,多个使用逗号隔开。 weed filer
weed volume会创建一个 datanode ,可以指定所属的 datacenter rack和master ,会根据配置存储文件,默认一开始没有volume,当开始存储文件的时候才会创建一个volume,当这一个volume大小超过了volumeSizeLimitMB 就会新增一个volume,当volume个数超过了max则该datanode就不能新增数据了。那就需要在通过weed volume命令新增一个datanode。
启动一个master
weed master -ip -mdir -port -peers -defaultReplication -volumeSizeLimitMB -whiteList
weed volume -dir -max=100 -mserver -port -dataCenter -rack -whiteList
申请文件地址时可以指定dataCenter collection replication count
Basic Usage:
curl http://localhost:9333/dir/assign
{"count":1,"fid":"3,01637037d6","url":"127.0.0.1:8080",
"publicUrl":"localhost:8080"}
To assign with a specific replication type:
curl "http://localhost:9333/dir/assign?replication=001"
To specify how many file ids to reserve
curl "http://localhost:9333/dir/assign?count=5"
To assign a specific data center
curl "http://localhost:9333/dir/assign?dataCenter=dc1"
启动服务的方式
方式1
weed scaffold -config=filer -output=. 然后修改里面leveldb的目录
weed server -dir=./vtmp -master.port=9333 -master.dir=./mtmp -volume.max=5 -volume.port=9991 -filer -filer.port=8888 -master.volumeSizeLimitMB=10
-whiteList
-filer.dir 目录来存储元数据,默认为指定-dir的“filer”子目录
-master.volumeSizeLimitMB 默认最大30000000 (30G)
-master.dir用于存储元数据的数据目录,默认为与指定的-dir相同
方式2
weed master -port=9333 -mdir=./mtmp
weed volume -port=9991 -dir=./vtmp -max=100 -mserver=localhost:9333
weed scaffold -config=filer -output=.
weed filer -port=8888 -master=localhost:9333
volume个数和最大存储
默认最大7个,你可以设置100等等。。。
volume的备份机制 Replication
默认000 不备份
defaultReplication
000 不备份, 只有一份数据
001 在相同的rackj里备份一份数据
010 在相同数据中心内不同的rack间备份一份数据
100 在不同的数据中心备份一份数据
200 在两个不同的数据中心各复制2次
110 在不同的rack备份一份数据, 在不同的数据中心备份一次
如果数据备份类型是 xyz形式
各自的意义
x 在别的数据中心备份的份数
y 不相同数据中心不同的racks备份的份数
z 在别的服务器相同的rack的备份份数
filer的使用
直接往weed filer中拷贝目录或者文件(-include是文件模式通配符前使用??)
weed filer.copy nginxdir http://localhost:8888/aaa 把nginxdir拷贝到aaa目录下
weed filer.copy -include *.go . http://localhost:8888/github/
关于filer mount的问题
weed mount -filer=localhost:8888 -dir=~/wz/mdir(本地目录) -filer.path=/aaa(上传的filer中的目录)
weed mount 像访问本地目录一样访问文件系统,前提是开启了 master volume filer
(它使用bazil.org/FUSE,它允许在Linux和OSX上编写FUSE文件系统。在OSX上,它需要OSXFUSE)
weed mount -filer=localhost:8888 -dir=~/folder_on_seaweedfs -filer.path=/home/chris -collection=chris
weed mount -filer=localhost:8888 -dir=~/wz/mdir -filer.path=/aaa
关闭挂在需要关闭mount并且手动umont ~/wz/mdir目录,如果一般用户失败请使用root用户
数据备份
找一个磁盘充足的地方运行 备份某一个卷轴。如果id是一个不存在的卷轴不会在贝蒂创建任何文件,所有可以for循环一个很大的数来备份所有卷轴
weed backup -server=master:port -dir=. -volumeId=5
故障转移主服务器
主服务器通过Raft协议进行协调,以选出一个领导者。领导接手所有管理卷、分配文件id的工作。所有其他主服务器只是简单地将请求转发给leader。
如果领导人去世,将选举出另一位领导人。所有的卷服务器将把它们的心跳和卷信息一起发送给新的领导。新领导人将承担全部责任。
在转换过程中,可能会出现新领导对所有卷服务器都有部分信息的情况。这只是意味着那些还没有心跳的卷服务器暂时无法写入。
现在让我们按照通常的方式分别启动主服务器和卷服务器。
通常您会启动几个(3或5)主服务器,然后启动卷服务器:
weed master -port=9333 -mdir=./1 -peers=localhost:9333,localhost:9334,localhost:9335
weed master -port=9334 -mdir=./2 -peers=localhost:9333,localhost:9334,localhost:9335
weed master -port=9335 -mdir=./3 -peers=localhost:9333,localhost:9334,localhost:9335
now start the volume servers, specifying any one of the master server
weed volume -dir=./1 -port=8080 -mserver=localhost:9333,localhost:9334,localhost:9335
weed volume -dir=./2 -port=8081 -mserver=localhost:9333,localhost:9334,localhost:9335
weed volume -dir=./3 -port=8082 -mserver=localhost:9333,localhost:9334,localhost:9335
其他
一个场景:
如果本地已经有很多文件了,如何快速的迁移到seaweedfs中呢?
1.启动master、volume、filer
2.启动mount
3.手动拷贝到mount目录中(单线程的)
4.使用weed filer.copy file_or_dir1 [file_or_dir2 file_or_dir3] http://localhost:8888/path/to/a/folder/ (多线程且绕过fuse层)
aws s3 兼容
Each bucket is stored in one collection, and mapped to folder /buckets/<bucket_name> by default
可以通过删除collection来快速删除一个bucket
异步复制
应该有两个SeawideFileSystems运行,可能跨数据中心运行。每个服务器都应该有自己的文件服务器、主服务器和卷服务器。
参考:https://blog.csdn.net/u012618915/article/details/83415955
经典论文翻译导读之《Finding a needle in Haystack: Facebook’s photo storage》:http://www.importnew.com/3292.html
seaweedfs使用说明相关推荐
- abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...
高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...
- linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...
cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...
- Simple Dynamic Strings(SDS)源码解析和使用说明二
在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...
- Delphi开发的IOCP测试Demo以及使用说明。
Delphi开发的IOCP,此为压力测试Demo和使用说明.
- oracle database link mysql_oracle database link使用说明
oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...
- 序列拼接工具Bowtie使用说明
序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...
- benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...
- 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....
关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...
- gh ost mysql_MySQL在线DDL gh-ost 使用说明
3)使用说明:条件是操作的MySQL上需要的binlog模式是ROW.如果在一个从上测试也必须是ROW模式,还要开启log_slave_updates.根据上面的参数说明按照需求进行调整. 环境:主库 ...
- creo 3.0计算机配置,Creo 3.0 Parametric 配置选项文件使用说明
最近安装了Creo Parametric 3.0 F000,其配置选项与Creo Parametric 2.0有部分更新,研究PTC Creo® 3.0 Parametric 配置选项configop ...
最新文章
- springboot-springmvc请求参数获取与原理【长文预警,收藏慢啃】
- oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
- mq服务器与客户端消息同步,使用 ActiveMQ 实现JMS 异步调用
- 数控机床需要c语言程序吗,数控机床编程与操作--详细介绍
- Spark Streaming实时数据分析
- oracle删除死锁进程
- webview java调用js_android WebView java与js相互调用
- Linux内核升级Broadcom网卡问题(bnx2)
- mysql 分库备份
- 安卓接入融云即时通讯的简单步骤
- 电脑——如何配置一台电脑
- 利用万能数据结构表存储多源异构数据
- Excel 2010光标移动到单元格边框时,不显示小十字(亲自实践)
- assist 下载链接
- 短信接口被恶意调用,瞬间损失两万,怎么解决?
- This Apple ID has not yet been used in the ITunes Store/此Apple ID尚未在iTunes Store使用过
- Go 每日一库之 negroni
- 【毕业设计_课程设计】基于协同过滤算法的个性化推荐系统(源码+论文)
- 如何批量生成文件夹并命名
- error:expected '{' at end of input