SeaweedFS学习笔记:架构和快速入门

1. 介绍

在这里插入图片描述

1.1 Components

有三个主要的组件,Master服务和Volume服务共同提供了分布式的冗余高可用对象存储服务。filer和S3服务是对象存储之上的一层。这些服务都可以单实例或者多实例的模式运行在不同的服务器上。

1.2 Master 服务

Master服务包含了1台(3台或者更多)服务器,拥有整个SeaweedFS集群的一致性视图,根据Raft协议选举出该服务的leader,leader会与集群中的所有节点通信。

为了保证多数共识算法可以运行,Master服务的节点数必须是奇数的。另外,节点数不需要太多,少量稳定的服务器比大量不稳定的服务器要好。通常来说,1或者3个即可。

所有的Volume服务都需要向Mater服务的leader节点发送心跳信息,根据心跳信息决定路由,以及复制。

如果leader节点不可用了,根据raft共识协议会重新指派一个leader。 之前的leader会被降级直到它恢复正常。

1.3 Volume 服务

Volume 服务会把很多对象(文件或者文件块)高效地打包成一个单独的Volume。数据的复制和冗余是以Volume为单位的。

每个Volume服务节点都会周期性的发送心跳信息到Master服务的leader节点,心跳信息包含状态和volume的信息。

Volume服务在内存中维护fid到文件读写位置的映射,实现每次查询和写入都只需要1次IO操作,同一个Volume的操作是串行的。

1.4 Filer服务

Filer服务通过HTTP或者UNIX Mount等用户可见的方式来组织SeaweedFS的volumes和对象,例如url,文件系统。
该服务不是必须的。

1.5 S3服务

提供类AWS S3 buckets的访问方式。
该服务不是必须的。

1.6 Volume的概念

由许多小文件构成了一个大的文件,这就是Volume。 Volume的默认大小是30G。 整个集群最开始有8个Volume。每个Volume都可以单独配置过期时间和副本数。

1.7 Collection的概念

Collection指的是一组Volume的集合。

Collection可以被快速的删除,只需要把Collection里面的所有的Volume删除即可。

2. 快速入门

2.1 安装 SeaweedFS

下载最新的发布版本:https://github.com/seaweedfs/seaweedfs/releases
解压后得到一个文件, weed 或者 weed.exe

./weed -h #查看帮助信息

2.2 启动 Master 服务

./weed master -h #查看master服务帮助信息

-mdir 配置volume id的存储目录

./weed master -mdir="."

-ip 配置Master服务的Ip地址,默认为localhost

./weed master -mdir="." -ip=xxx.xxx.xxx.xxx

2.3 启动 Volume 服务

./weed volume -h # 查看volume服务的帮助信息

通常volume节点分布在不同的服务器上,有着不同的磁盘,甚至不同的操作系统。
一般情况下,Volume服务需要配置可用的磁盘,Master服务的地址。
-max 最多可承载的volume数量

./weed volume -max=100 -mserver="localhost:9333" -dir="./data"

2.4 快速启动一个Master服务和一个Volume服务

./weed master -mdir="/home/ubuntu/seaweed/master" -ip=192.168.56.101
./weed volume -max=10 -mserver="192.168.56.101:9333" -dir="/home/ubuntu/seaweed/data"

2.5 测试

./weed upload -dir="/some/big/folder" #上传本地的文件或者目录

3. 参考

本文参考小文件存储SeaweedFS技术指南,下载地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修破立生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值