基本概念

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使用说明相关推荐

  1. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  2. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  3. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  4. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

  5. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  6. 序列拼接工具Bowtie使用说明

    序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...

  7. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  8. 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....

    关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...

  9. gh ost mysql_MySQL在线DDL gh-ost 使用说明

    3)使用说明:条件是操作的MySQL上需要的binlog模式是ROW.如果在一个从上测试也必须是ROW模式,还要开启log_slave_updates.根据上面的参数说明按照需求进行调整. 环境:主库 ...

  10. creo 3.0计算机配置,Creo 3.0 Parametric 配置选项文件使用说明

    最近安装了Creo Parametric 3.0 F000,其配置选项与Creo Parametric 2.0有部分更新,研究PTC Creo® 3.0 Parametric 配置选项configop ...

最新文章

  1. springboot-springmvc请求参数获取与原理【长文预警,收藏慢啃】
  2. oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
  3. mq服务器与客户端消息同步,使用 ActiveMQ 实现JMS 异步调用
  4. 数控机床需要c语言程序吗,数控机床编程与操作--详细介绍
  5. Spark Streaming实时数据分析
  6. oracle删除死锁进程
  7. webview java调用js_android WebView java与js相互调用
  8. Linux内核升级Broadcom网卡问题(bnx2)
  9. mysql 分库备份
  10. 安卓接入融云即时通讯的简单步骤
  11. 电脑——如何配置一台电脑
  12. 利用万能数据结构表存储多源异构数据
  13. Excel 2010光标移动到单元格边框时,不显示小十字(亲自实践)
  14. assist 下载链接
  15. 短信接口被恶意调用,瞬间损失两万,怎么解决?
  16. This Apple ID has not yet been used in the ITunes Store/此Apple ID尚未在iTunes Store使用过
  17. Go 每日一库之 negroni
  18. 【毕业设计_课程设计】基于协同过滤算法的个性化推荐系统(源码+论文)
  19. 如何批量生成文件夹并命名
  20. error:expected '{' at end of input

热门文章

  1. 交通信号灯的检测与识别
  2. 旋转矩阵(方向余弦阵)
  3. 人工智能 —— 计算智能概述
  4. 超级高铁(Hyperloop)
  5. 微信小程序商城API文档
  6. 个人学习笔记附Markdown格式下载
  7. mac android 手机连接打印机,线上就能解决苹果手机怎么连接打印机问题
  8. 锐捷无线项目调试(AC调试)
  9. 韩立刚《计算机网络》| 第5章 传输层
  10. c语言猜数字课设报告,c语言猜数字课程设计报告.doc