站长博客
站长博客随手笔记
Toggle navigation
站长博客
Home
MacOS
Database
Linux
PHP
Git
Golang
About Me
Archives
Tags
Seaweedfs 详细说明
2019-05-14 00:14:04
659
0
0
admin
SeaweedFS是一种简单的、高度可扩展的分布式文件系统。有两个目标: 1)存储数十亿的文件! 2)查看档案快! SeaweedFS最初作为一个对象存储来有效地处理小文件。中央主服务器只管理文件卷,而不是管理中央主服务器中的所有文件元数据,它允许这些卷服务器管理文件及其元数据。这减轻了中央主服务器的并发压力,并将文件元数据传播到卷服务器,允许更快的文件访问(只需一个磁盘读取操作)。 每个文件的元数据只有40字节的磁盘存储开销。使用O(1)磁盘读取非常简单。 Githup地址为: https://github.com/chrislusf/seaweedfs 官方文档:https://github.com/chrislusf/seaweedfs/wiki 相关背景技术论文: 中文版: http://www.importnew.com/3292.html 英文版: http://static.usenix.org/event/osdi10/tech/full_papers/Beaver.pdf ## 安装 有两种安装方式,第一种下载编译好的直接使用,第二种是下载源码进行编译。由于暂时不更改源码, 故使用第一种方式运行 下载地址:https://github.com/chrislusf/seaweedfs/releases 下载完成后,解压出来直接运行。 相关定义意义说明 master: 存储文件和fid映射关系 Node 系统抽象的节点,抽象为DataCenter、Rack、DataNode DataCenter 数据中心,对应现实中的不同机房 Rack 机架,对应现实中的机柜,一个机架属于特定的数据中心,一个数据中心可以包含多个机架。 Datanode 存储节点,用于管理、存储逻辑卷 Volume 逻辑卷,存储的逻辑结构,逻辑卷下存储Needle Needle 逻辑卷中的Object,对应存储的文件 Collection 文件集,可以分布在多个逻辑卷上,如果在存储文件的时候没有指定collection,那么使用默认的"" 所有包含模块 ## 模块 模块说明 `Weed master` 开启一个master服务器 `Weed volume` 开启一个volume 服务器 `Weed filer` 开启一个指向一个或多个master服务器的file服务器 `Weed upload` 上传一个或多个文件 `Weed server` 启动一个服务器,包括一个volume服务器和自动选举一个master服务器 模块的参数说明及使用说明 ### Weed master 参数 类型 说明 -cpuprofile String Cpu profile输出文件 -defaultReplication String 如果没有指定默认备份类型。默认”000” -garbageThreshold String 清空和回收空间的阈值(默认”0.3”) -ip String Master 服务器ip地址(默认”localhost”) -ip.bind String 需要绑定的ip地址(默认”0.0.0.0”) -maxCpu Int 最大cpu数量。0表示所有可用的cpu -mdir String 存储元数据的数据目录(默认”/tmp”) -memprofile String 内存配置文件输出文件 -peers String 逗号分隔所有主节点ip:端口列表,示例127.0.0.1:9093,127.0.0.1: 9094 -port Int http监听端口(默认9333) -pulseSeconds Int 心跳检测的时间间隔单位为秒(默认5) -secure.secret String 加密json web token方法 -volumePreallocate 无 为volumes预先分配磁盘空间 -volumeSizeLimitMB Uint Master停止指向过量的volumes写的限定(默认30000) -whiteList string 逗号分隔具有写权限的Ip地址。如果是空的,没有限制。即白名单 #### defaultReplication 说明 000 不备份, 只有一份数据 001 在相同的rackj里备份一份数据 010 在相同数据中心内不同的rack间备份一份数据 100 在不同的数据中心备份一份数据 200 在两个不同的数据中心各复制2次 110 在不同的rack备份一份数据, 在不同的数据中心备份一次 如果数据备份类型是 xyz形式 各自的意义 x 在别的数据中心备份的份数 y 不相同数据中心不同的racks备份的份数 z 在别的服务器相同的rack的备份份数 ### Weed volume 参数 类型 说明 -cpuprofile string Cpu profile输出文件 -dataCenter string 当前volume服务的数据中心名称 -dir string 存储数据文件的目录dir[,dir]…(默认”/tmp”) -idleTimeout Int 连接空闲时间秒数(默认30) -images.fix.orientation (true/false) 上传时调整jpg方向 -index string 选择内存~性能平衡模式[memory|leveldb|boltdb|btree]。(默认”memory”) -ip string Ip地址或服务器名称 -ip.bind string 需要绑定的ip地址(默认”0.0.0.0”) -max string Volumes的最大值,count[,count]…(默认”7”) -maxCpu Int 最大cpu数量。0表示所有可用的cpu -memprofile string 内存配置文件输出文件 -mserver string 用逗号分隔的master服务器列表(默认”localhost:9333”) -port Int http监听端口号(默认8080) -port.public Int 端口对外开放 -publicUrl string 公开访问地址 -pulseSeconds Int 心跳之间的秒数,必须小于或等于master 服务器设置(默认5) -rack string 当前volume服务器的rack 名称 -read.redirect (true/false) 重新定向转移或非本地 volumes -whiteList string 逗号分隔具有写权限的Ip地址。如果是空的,没有限制。 ### Weed filer 参数 类型 说明 collection String 所有数据将存储在这个集合中 dataCenter String 首选在此数据中心写入volumes defaultReplicaPlacement String 如果没有指定默认复制类型(默认“000”) dirListLimit Int 限制子目录列表大小 disableDirListing 无 关闭目录清单 ip String Filter服务器http监听ip地址 master String 用逗号分隔的master服务器(默认“localhost:9333”) maxMB Int 分割文件大于限制(默认32) port Int Filer服务器htp监听端口(默认8888) port.grpc Int Filer grpc服务器监听端口,默认为 http的端口+10000 port.public Int 对外开放的端口 redirectOnRead 无 在文件GET请求期间是代理还是重定向到volumes服务器 secure.secret String 加密Json Web令牌(JWT)的密钥 ### Weed upload 参数 类型 说明 collection string 可选的集合名称 dataCenter String 可选的数据中心名称 debug 无 显示debug信息 dir String 如果指定,则递归地上传整个文件夹。 include String 需要上传的文件,跟-dir配合使用,例如\*.pdf,\*.html,ab?d.txt等 master String Seaweedfs master服务器地址(默认”localhost:9333”) maxMB Int 如果文件超过指定大小则进行分割 replication String 备份类型 secure.secret String 加密Json Web令牌(JWT)的密钥 ttl string 存活时间 1m,1h,1d,1M,1y 以上是maset volume upload filer 的所有参数说明。是主要的功能。若需要更详细的解释及使用示例,请下载我的文档seaweed 文件存储系统详解 ## 使用接口 申请一个fid curl http://localhost:9333/dir/assign 上传文件 curl -F file=@/home/chris/myphoto.jpg http://127.0.0.1:8080/3,01637037d6 删除文件 curl -X DELETE http://127.0.0.1:8080/3,01637037d6 申请带存活时间的fid curl http://localhost:9333/dir/assign?ttl=3m
Prev:
Twig模版语言入门
Next:
Go语言Web开发项目Nging2.0.0beta版发布
0
likes
659
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content