组件分享之后端组件——一个简单且高度可扩展的分布式文件系统seaweedfs

article/2025/9/30 13:27:47

组件分享之后端组件——一个简单且高度可扩展的分布式文件系统seaweedfs

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:seaweedfs
  • 开源协议:Apache-2.0 License

内容

本节我们分享一个分布式存储系统seaweedfs,它是一个用于 blob、对象、文件和数据湖的快速分布式存储系统,可存储数十亿个文件!Blob 存储具有 O(1) 磁盘寻道、云分层。Filer支持Cloud Drive、跨DC双活复制、Kubernetes、POSIX FUSE挂载、S3 API、S3 Gateway、Hadoop、WebDAV、加密、纠删码。
可提供如下特性:

  1. 存储数十亿文件!
  2. 快速提供文件!

SeaweedFS 最初是作为一个对象存储来有效处理小文件。中央主服务器不管理中央主服务器中的所有文件元数据,而是仅管理卷服务器上的卷,而这些卷服务器管理文件及其元数据。这减轻了来自中央主机的并发压力,并将文件元数据传播到卷服务器中,从而允许更快的文件访问(O(1),通常只有一次磁盘读取操作)。

每个文件的元数据只有 40 字节的磁盘存储开销。O(1) 磁盘读取非常简单,欢迎您通过实际用例来挑战性能。

SeaweedFS 从实现Facebook 的 Haystack 设计文件开始。此外,SeaweedFS 使用 f4 的想法实现了擦除编码:Facebook 的 Warm BLOB Storage System ,并且与Facebook 的 Tectonic Filesystem有很多相似之处

在对象存储之上,可选的Filer可以支持目录和 POSIX 属性。Filer 是一个独立的线性可扩展无状态服务器,具有可自定义的元数据存储,例如 MySql、Postgres、Redis、Cassandra、HBase、Mongodb、Elastic Search、LevelDB、RocksDB、Sqlite、MemSql、TiDB、Etcd、CockroachDB 等。

对于任何分布式键值存储,大值可以卸载到 SeaweedFS。SeaweedFS 具有快速的访问速度和线性可扩展的容量,可以作为分布式Key-Large-Value 存储。

SeaweedFS 可以透明地与云集成。SeaweedFS利用本地集群上的热点数据和访问时间为O(1)的云上的温数据,既可以实现本地快速访问时间,又可以实现弹性云存储容量。更重要的是,云存储访问API成本最小化。比直接云存储更快、更便宜!

附加的功能

  • 可以选择无复制或不同的复制级别,机架和数据中心感知。
  • 自动主服务器故障转移 - 无单点故障 (SPOF)。
  • 自动 Gzip 压缩取决于文件 mime 类型。
  • 删除或更新后自动压缩以回收磁盘空间。
  • 自动进入 TTL 过期。
  • 任何具有一些磁盘空间的服务器都可以添加到总存储空间中。
  • 添加/删除服务器不会导致任何数据重新平衡,除非由管理员命令触发。
  • 可选的图片调整大小。
  • 支持ETag、Accept-Range、Last-Modified等。
  • 支持 in-memory/leveldb/readonly 模式调优以实现内存/性能平衡。
  • 支持重新平衡可写和只读卷。
  • 可定制的多个存储层:可定制的存储磁盘类型以平衡性能和成本。
  • 透明的云集成:通过分层云存储的热数据无限容量。
  • 用于热存储的纠删码 机架感知 10.4 纠删码可降低存储成本并提高可用性。

文件管理器功能

  • Filer 服务器通过 http 提供“普通”目录和文件。
  • 文件 TTL 会自动使文件元数据和实际文件数据过期。
  • Mount filer通过 FUSE 直接将文件读写为本地目录。
  • Filer Store Replication为 filer 元数据存储启用 HA。
  • Active-Active Replication支持异步单向或双向跨集群连续复制。
  • Amazon S3 兼容 API使用 S3 工具访问文件。
  • Hadoop Compatible File System从 Hadoop/Spark/Flink/etc 访问文件,甚至运行 HBase。
  • Async Replication To Cloud对 Amazon S3、Google Cloud Storage、Azure、BackBlaze 具有极快的本地访问和备份。
  • WebDAV作为 Mac 和 Windows 上的映射驱动器访问,或从移动设备访问。
  • AES256-GCM 加密存储安全地存储加密数据。
  • Super Large Files存储数十 TB 的大型或超大型文件。
  • Cloud Drive将云存储挂载到本地集群,通过异步回写进行缓存以实现快速读写。
  • 除了云驱动器之外,远程对象存储的网关将存储桶操作镜像到远程对象存储
本文声明:
88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

http://chatgpt.dhexx.cn/article/HHCKqsCP.shtml

相关文章

代理神器Charles4.2.8的破解

打开Charles,点击工具栏的Help,选择Register Charles,在两栏里分别输入即可。 Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4

TLS加密套件

出于兴趣爱好,决定开发TLS1.2-1.3的一个库。为此阅读了TLS相关的若干RFC文档,以及查阅了多篇相关博客文章。最终有以下发现: 1. TLS定义了几百个加密套件(参考https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml)&#x…

sshd服务及防暴力破解 附赠防暴力破解脚本

利用yum源安装sshd服务客户端安装:openssh-clients.x86_64 服务端安装:openssh-server.x86_64Openssh和sshd有区别吗? 两个是不同的概念,软件包名称叫openshh 开机的服务叫sshd[rootserver1 ~]# rpm -ql openssh ###查看安装的…

The server selected protocol version TLS10 is not accepted by client preferences [TLS12]

最近在部署项目的时候遇到一个问题,卡了整整一天时间,所以感觉有必要po个解决方法出来给有需要的朋友参考一下。 问题描述:Caused by: javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted b…

TLS 1.3 协议详解

TLS 1.3 握手流程详解 我的TLS实现(支持TLS1.3和国密SSL),大家可以学习参考:https://github.com/mrpre/atls/ 如果觉得有用,请打赏N元:http://39.98.242.44 需要的背景知识: (1&am…

服务攻防-协议漏洞-FTPRDPSSHRsyncProFTPDlibsshOpenssh-Hydra工具使用口令猜解未授权访问

目录 一、导图 二、口令猜解-Hydra-FTP&RDP&SSH 1、协议介绍 2、Hydra工具介绍 3、实例演示 三、配置不当-未授权访问-Rsync 文件备份 1、Rsync介绍 2、漏洞成因——配置不当 3、实例演示 四、协议漏洞-应用软件-FTP&ProFTPD搭建 1、引入 2、ProFTPD介…

提示:The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

JMeter连接SQLservice数据库。 1、测试计划添加sqljdbc41.jar 2、添加数据库配置 3、添加请求 3、按着上面的配置,执行,然后报错误了。 提示“Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL S…

SSH暴力破解

ssh暴力破解解决方案 https://www.cnblogs.com/walkingzq/p/8191900.html 最近在使用腾讯云服务器的过程中,被比特币黑客黑了一次服务器(如下图所示)。 图1 比特币勒索信息 继而认识到网络安全的重要性。在重新安装系统之后,发现…

SSL/TLS Cipher Suites

Cipher Suite 一个加密算法套件(CipherSuite)是一个四件套,由各类基础的加密算法组成,主要包含了四类: 1)Key Exchange 密钥交换算法; 2)Authentication 身份认证算法&#xff1b…

The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

springboot启动时报错 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client prefer ences [TLS13, TLS12]”。 原因&…

centos7 SSH防暴力破解五种方法

什么是暴力破解,简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步: 找到对应的linux服务器 Ip地址扫描端口号:22 nmap扫描端口开始暴力破解 : 一般root…

Linux云服务器防止暴力破解(三道SSH安全策略)

前言 新购入的服务器,往往用户名默认为root,ssh默认开放22端口,且配置SSH服务时往往同时允许密码和公钥二重登录。然而,许多非法服务器运行着暴力破解程序,通过访问用户名root的22默认端口,暴力获取获取您的…

kali Linux 工具 BurpSuite-暴力破解

关于渗透的实验,我们大多数能在kali的工具集找到,其中关于抓包工具BurpSuite的使用,我做一个比较简单的实验————————暴力破解—————————— 暴力破解,顾名思义,就是我们把密码一个个尝试,只…

拒绝ssh远程暴力破解-以centos7及centos8为例

一、centos8 参考: 如何在CentOS 8上安装和配置Fail2ban - A5互联 - 博客园 (cnblogs.com)https://www.cnblogs.com/a5idc/p/13650056.html上面这一个讲的比较详细:要点摘录如下 默认的Fail2ban安装中带有两个配置文件,/etc/fail2ban/jail…

SSHD 服务防止暴力破解

SSHD 服务防止暴力破解 目录 1、 配置安全的 SSHD 服务(方法一) 2、通过开源的防护软件来防护安全(方法二) 1、配置安全的 SSHD 服务 1.1、 服务器安全策略 密码足够复杂: 密码的长度要大于 8 位不大于 20 位。密…

TLS1.0协议漏洞修复

漏洞描述: 远程服务接受使用TLS 1.0加密的连接。TLS 1.0有许多密码设计缺陷。TLS 1.0的现代实现减轻了这些问题,但是像1.2和1.3这样的TLS的新版本是针对这些缺陷而设计的,应该尽可能使用。截至2020年3月31日,为TLS 1.2及更高版本启…

linux red hat 8.0 root密码破解

简介: root用户是linux用户最大权限的用户,如果不慎将其密码忘记是不可直接更改的,只能通过破解的方式来重置root密码。 linux系统的启动过程: 1 开机自检(POST),初始化部分硬件 2 搜素可用…

STL库实践

STL库实践 1 写在最前面的话1.1 容器(container)1.2 算法(algorithm)1.3 迭代器(iterator)1.4 仿函数1.5 适配器1.6 空间配置器1.7 stl初试牛刀 2 容器之 string2.1 string 构造函数2.2 string基本赋值操作2.3 string存取字符操作2.4 string拼接操作2.5 string查找和替换2.6 st…

【C++进阶——STL库】

STL库 介绍 STL是一个具有工业强度的,高效的C程序库,包含了很多计算机科学领域里所常用的基本数据结构和基本算法;六大组件:容器(Container)、迭代器(Iterator)、算法(Algorithm)、仿函数、适配器、分配器; 容器 定…

STL库:map和set

STL库:map和set 文章目录 STL库:map和set1.STL库中set的官方介绍2.set的常用接口3.set的总结4.STL库中multiset的官方介绍5.STL库中map的官方介绍6.map中的键值对pair7.map的常用接口7.1 map的访问操作7.2 map的修改操作7.3 map的查找操作 8.map的总结9.…