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

news2025/1/16 7:54:12

目录

    • 1. 介绍
      • 1.1 Components
      • 1.2 Master 服务
      • 1.3 Volume 服务
      • 1.4 Filer服务
      • 1.5 S3服务
      • 1.6 Volume的概念
        • 1.7 Collection的概念
    • 2. 快速入门
      • 2.1 安装 SeaweedFS
      • 2.2 启动 Master 服务
      • 2.3 启动 Volume 服务
      • 2.4 快速启动一个Master服务和一个Volume服务
      • 2.5 测试
    • 3. 参考

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技术指南,下载地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

asp.net汽车保养美容店维修管理系统

本系统汽车预约美容系统分为前台和后台两部分,具体功能如下 前台部分功能 1.注册登录,用户通过注册登录之后可以进行保养和美容项目的预约 2.新闻资讯,查看和汽车保养,美容相关的新闻资讯信息 3.美容查看,查看汽车美容…

6年测开经验,从功能测试到测试开发,每一步都深思熟虑...

蓦然回首,软件测试风风雨雨的这几年,起初每天的工作只是鼠标点点点,我还真不知道怎么办,闲的时候真的怀疑自己的存在价值,每天拿着7000的工资,飘荡在繁华的深圳,吃不饱也饿不死,未来…

【PWN · ret2libc】ret2libc1

ret2libc的第一题 目录 前言 一、动态链接 二、ret2libc原理 三、exp编写 干货 干货一:python下的ELF 干货二:strings看看有没有待选字符串 编写exp 总结 前言 本来是和学习ret2text\ret2shellcode\ret2syscall一样在网上找文字资源&#x…

28从零开始学Java之面向对象和面向过程到底有哪些区别?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 壹哥相信,经过你对前面文章中技术点的学习,现在的你应该已经对Java具备了初步…

【UE】直升机沿样条线移动

效果 步骤 1. 将虚幻商城中的免费资产导入工程 下载完毕后可以看到如下文件 2. 新建一个Actor蓝图类,命名为“Track”,这个蓝图就是用来画样条线的 打开“Track”,添加样条组件 3. 打开“BP_West_Heli_AH64D” 在事件图表中先新建一个时间轴…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里? 版权声明: 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容,不得删减、修改、演绎相关学习资源见文末 一些人…

1.SpringCloud技术

SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

初识C++之线程库

目录 一、C中的线程使用 二、C的线程安全问题 1. 加锁 2. 变为原子操作 3. 递归里面的锁 4. 定时锁 5. RAII的锁 三、条件变量 1. 为什么需要条件变量 2. 条件变量的使用 2.1 条件变量的相关函数 2.2 wait函数 一、C中的线程使用 线程的概念在linux中的线程栏已经…

9个加密货币交易所被查封,交易所安全审计后仍不安全

美国联邦调查局和乌克兰警方查封了九个加密货币交易网站,这些网站为包括勒索软件参与者在内的诈骗者和网络犯罪分子洗钱提供了便利。 联邦调查局 FBI 在其公告中表示,该行动是在虚拟货币响应小组、乌克兰国家警察和该国法律检察官的帮助下进行的。 此次…

ai皮带跑偏撕裂监测算法 yolov7

ai皮带跑偏撕裂监测系统算法基于yolov7网络模型人工智能视觉技术,ai皮带跑偏撕裂监测算法模型自动识别现场画面中传送皮带撕裂、跑偏、偏移等情况,立即告警抓拍存档同步回传后台。YOLO 的核心思想就是把目标检测转变成一个回归问题,利用整张图…

Git入门学习

Git是什么? 是一种免费开源的分布式版本控制系统,区别于集中式挂历系统(SVN,CVS)的是分布式每人都有一个“档案馆”,而集中式是只有一个“档案馆”。 这样的话,如果你使用git进行开发,感觉自己…

多层PCB层叠结构

在设计多层PCB电路板之前,设计者需要首先根据电路的规模、电路板的尺寸和电磁兼容(EMC)的要求来确定所采用的电路板结构,也就是决定采用4层,6层,还是更多层数的电路板。确定层数之后,再确定内电…

全景丨0基础学习VR全景制作,平台篇第18章:热点功能-音频

大家好,欢迎观看蛙色VR官方——后台使用系列课程! 功能说明 应用场景 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的交互,增加用户的多元化体验。 音频热点,即点击热点后会直接播…

低代码开发重要工具:jvs表单动态字段配置方式

在表单中常常会有动态字段的场景,也就是如下图所示,根据一个字段的内容选项去控制另外字段的内容展示 配置的思路:根据第一个单选框选择的内容,通过关联筛选的方式去选择第二个单选框的内容,那么第二个单选框的物理存储…

K8s基础7——DaemonSet控制器、Job批处理调度、Cronjob定时调度

文章目录 一、DaemonSet二、Job三、Cronjob 一、DaemonSet 控制器介绍: DaemonSet 可以确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会给这新节点新增一个 Pod 。当有节点从集群移除时,此节点…

redis最大连接数查询与设置

redis客户端连接数 redis通过监听一个TCP端口或socket的方式接收来自客户端的连接, 当与客户端建立连接后,redis内部会进行如下操作: (1)客户端socket会被设置为非阻塞模式,因为redis在网络时间处理上采用的是非阻塞多路复用模…

基于JavaWeb实现的汽车维修管理系统

【简介】 本系统基于springboot mybatis jps架构开发,前后端分离,开发环境为jdk1.8、mysql、maven。系统功能主要分为汽车维修管理、配件管理、财务管理、基础数据管理、系统维护5大模块。 【功能结构】 【技术架构】 系统架构:springboot …

不会做大数据实时计算?10年数据分析师整理,一文给出解决方案

本文分为四个章节介绍实时计算,第一节介绍实时计算出现的原因及概念;第二节介绍实时计算的应用场景;第三节介绍实时计算常见的架构;第四节是实时数仓解决方案。 一、实时计算 实时计算一般都是针对海量数据进行的,并…

RISC-V OS(老师的OS) 基于 汪辰老师的视频笔记

前言 最后面没写完,以后再补。。。 RISC-V OS RVOS 介绍 操作系统定义 操作系统(英语:Operating System,缩写:OS)是一组系统软件程序: 主管并控制计算机操作、运用和运行硬件、软件资源。提…

[oeasy]python049_帮助手册_pydoc_manual_document

帮助手册 回忆上次内容 上次了解了注释 注释是为了让程序更可读注释不会影响程序运行速度 注释分为两种 单行的 以#开头不能是字符串当中的# 多行的 三个"三个 多行注释还有什么特殊功能么?🤔 增加描述说明 #!/usr/bin/python3 #vim: set file…