SeaweedFS深度解析(三):裸金属单机和集群部署

#作者:闫乾苓

文章目录

      • 2.2.4 S3 Server(兼容 Amazon S3 的接口)
      • 2.2.5 Weed(命令行工具)
  • 3、裸金属单机和集群部署
    • 3.1 裸金属单机部署
      • 3.1.1安装 SeaweedFS
      • 3.1.2 以Master模式启动

2.2.4 S3 Server(兼容 Amazon S3 的接口)

功能:提供与 Amazon S3 兼容的RESTful API,方便集成现有S3生态工具。
特点:基于 Filer 实现,将 S3 操作转换为 SeaweedFS 原生操作。
工作原理:S3 Server接收来自客户端的S3协议请求,将其转换为对Filer和Volume Service的操作。这样,用户就可以像使用S3一样使用SeaweedFS进行对象存储。

2.2.5 Weed(命令行工具)

功能:管理集群的核心工具,支持以下操作:

  • 启动 Master、Volume Server、Filer 等组件(如 weed master、weed volume)。
  • 文件上传/下载(如 weed upload、weed download)。
  • 系统状态监控(如 weed shell)。

工作原理:通过调用SeaweedFS的不同API,“Weed”命令行工具能够方便地与Master Service、Volume Service以及Filer进行交互,实现对集群的各种管理功能。

3、裸金属单机和集群部署

3.1 裸金属单机部署

3.1.1安装 SeaweedFS

从https://github.com/seaweedfs/seaweedfs/releases下载最新的官方版本。
-rw-r–r–. 1 root root 44870713 5月 26 10:17 linux_amd64_full.tar.gz

解压下载的文件。你只会找到一个可执行文件,在大多数系统上是“weed”,在 Windows 上是“weed.exe”。

建议为服务创建最小权限的专用系统账户,以遵循最小权限原则,避免因使用 root 用户带来过大的安全风险。
~# useradd weed
~# passwd weed

为 seaweedfs创建相关的目录
~# mkdir /opt/seaweedfs/{sbin,master-data} -p

将文件“weed”放到/opt/seaweedfs/sbin/下, 并设置weed账户的权限
~# mv weed /opt/seaweedfs/sbin
~# chown -R weed:weed /opt/seaweedfs/

使用以下命令查看下载安装是否正常。
~# /opt/seaweedfs/sbin/weed -h

3.1.2 以Master模式启动

启动方法:

~# su - weed
~$ ./weed master -mdir="." -ip=xxx.xxx.xxx.xxx

参数:

  • -mdir: 指定元数据存储目录

  • -logdir:日志输出目录

  • -ip: 指定服务启动后网络监听端口绑定的IP,不指定默认会绑定127.0.0.1和自动探测到的IP。

  • -volumeSizeLimitMB: 这个参数控制单个卷的最大大小限制,默认值是默认值是 30GB (30*1000 MB),
    推荐值:

  • 小文件场景:1000-4000 MB,便于快速备份和迁移

  • 大文件场景:8000-30000 MB,减少卷的数量

  • 混合场景:4000-8000 MB,平衡性能和管理复杂度

  • -defaultReplication: 默认复制策略
    复制策略格式为 XYZ:
    X:跨数据中心的副本数
    Y:同数据中心不同机架的副本数
    Z:同机架不同服务器的副本数
    推荐值:

  • 单机测试:“000”(无复制)

  • 生产环境:“001”(同机架1个副本)或 “010”(不同机架1个副本)

  • 高可用环境:“100”(跨数据中心1个副本)

  • -garbageThreshold: 垃圾回收阈值,控制何时触发垃圾回收和空间回收
    默认值是 0.3,表示当删除的数据占卷总大小的 30% 时触发垃圾回收。
    推荐值:

  • 频繁删除场景:0.2-0.3,及时回收空间

  • 稳定存储场景:0.4-0.5,减少回收频率

  • 性能优先场景:0.6-0.8,最小化回收影响

  • -metricsPort: 指定prometheus 监控指标的 HTTP 端口
    推荐值:

  • 标准部署:9327(官方默认)

  • 多实例部署:9327, 9328, 9329…(避免端口冲突)

  • 企业环境:根据监控系统规范设置

简单示例:

~$ /opt/seaweedfs/sbin/weed master -mdir="/opt/seaweedfs/master-data" -ip="192.168.61.71"

完整配置示例:

~$ /opt/seaweedfs/sbin/weed master -ip="192.168.61.71" -mdir="/opt/seaweedfs/master-data" -volumeSizeLimitMB=4000 -defaultReplication="001" -metricsPort=9327

查看监听的端口

$ ss -ntlp |grep 9333
LISTEN 0      4096       127.0.0.1:9333       0.0.0.0:*    users:(("weed",pid=2183,fd=9)) 
LISTEN 0      4096   192.168.61.71:9333       0.0.0.0:*    users:(("weed",pid=2183,fd=8)) 
LISTEN 0      4096       127.0.0.1:19333      0.0.0.0:*    users:(("weed",pid=2183,fd=12))
LISTEN 0      4096   192.168.61.71:19333      0.0.0.0:*    users:(("weed",pid=2183,fd=11))

3.1.2.1以配置文件启动master服务
Seaweedfs也支持使用配置文件启动,可以将启动命令中的配置参数合并写入模板配置文件,方便管理。(但在测试3.9.2版本时,mdir,metricsPort 两个参数在配置文件中不生效,只在启动命令中作为参数使用时生效,我已经提交issue并给出修复建议,已被项目维护者采纳,https://github.com/seaweedfs/seaweedfs/issues/6922)
使用以下命令创建模板配置文件:
/opt/seaweedfs/sbin/weed scaffold -config=master > /home/weed/.seaweedfs/master.toml

注意:/home/weed/.seaweedfs 目录不存在,请先创建。
会生成的master.toml模板配置文件,下面的配置文件在模板配置文件的基础上合并加入了其他基础配置参数:

[master]  
port = 9333  
ip = "192.168.61.21"  
mdir = "/data/seaweedfs/master/data"
volumeSizeLimitMB = 30000  
defaultReplication = "000"  
metricsHttpPort = 9327[master.replication]  
treat_replication_as_minimums = false  [master.maintenance]  
scripts = """  lock  ec.encode -fullPercent=95 -quietFor=1h  ec.rebuild -force  ec.balance -force  volume.fix.replication  unlock  
"""  
sleep_minutes = 17  [master.volume_growth]  
copy_1 = 7  
copy_2 = 6  
copy_3 = 3  
copy_other = 1  
threshold = 0.9

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

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

相关文章

相机ROI 参数

相机的 ROI(Region of Interest,感兴趣区域) 参数,是指通过设置图像传感器上 特定区域 作为有效成像区域,从而只采集该区域的图像数据,而忽略其他部分。这一功能常用于工业相机、科研相机、高速相机等场景&…

Vue基础(24)_VueCompinent构造函数、Vue实例对象与组件实例对象

分析上一节代码中的school组件:该组件是一个名为VueCompinent的构造函数。截取部分vue.js源码,分析Vue.extend:// 定义一个名为VueComponent的构造函数对象Sub,往Sub对象调用_init(options)方法,参数为配置项&#xff…

萤石云替代产品摄像头方案萤石云不支持TCP本地连接-东方仙盟

不断试错东方仙盟深耕科研测评,聚焦前沿领域,以严谨标准评估成果,追踪技术突破,在探索与验证中持续精进,为科研发展提供参考,助力探路前行 萤石云价格萤石云的不便于使用 家庭场景:成本可控与隐…

C51:用DS1302时钟读取和设置时间

因为在ds1302.c文件中包含了写ds1302(51向ds1302写数据)和读ds1302(51从ds1302读数据)的两个函数,我们根据文件中提供的函数来写读取时间和设置时间的函数即可ds1302.c文件源码如下,需要的同学可以参考一下…

webrtc整体架构

WebRTC(Web Real-Time Communication)是一套支持浏览器和移动应用进行实时音视频通信的开源技术标准,其架构设计围绕 “实时性”“低延迟”“跨平台” 和 “安全性” 展开,整体可分为核心引擎层、API 层、支撑服务层三大部分&…

浅析PCIe 6.0 ATS地址转换功能

在现代高性能计算和虚拟化系统中,地址转换(Address Translation)是一个至关重要的机制。随着 PCIe 设备(如 GPU、网卡、存储控制器)直接访问系统内存的能力增强,设备对虚拟内存的访问需求日益增长。 为了提升性能并确保安全访问,Address Translation Services(ATS) 应…

【前端】ikun-pptx编辑器前瞻问题二: pptx的压缩包结构,以及xml正文树及对应元素介绍

文章目录PPTX文件本质:一个压缩包核心文件解析1. 幻灯片内容文件 (ppt/slides/slideX.xml)2. 元素类型解析文本框元素 (p:sp)图片元素 (p:pic)单位系统开发注意事项参考工具pptx渲染路线图PPTX文件本质:一个压缩包 PPTX文件实际上是一个遵循Open XML标准…

分布式任务调度实战:XXL-JOB与Elastic-Job深度解析

告别传统定时任务的局限,拥抱分布式调度的强大与灵活 在现代分布式系统中,高效可靠的任务调度已成为系统架构的核心需求。面对传统方案(如Timer、Quartz)在分布式环境下的不足,开发者急需支持集群调度、故障转移和可视…

Windows 11下纯软件模拟虚拟机的设备模拟与虚拟化(仅终端和网络)

Windows 11下用GCC的C代码实现的虚拟机需要终端输入/输出(如串口或虚拟控制台)和网络连接,但不需要完整的硬件设备(如磁盘、显卡、USB 等)。在终端输入/输出方面,参考qemu的源代码,但不调用qemu…

CCF-GESP 等级考试 2025年6月认证Python六级真题解析

1 单选题(每题 2 分,共 30 分)第1题 下列哪一项不是面向对象编程(OOP)的基本特征?( )A. 继承 (Inheritance) B. 封装 (Encapsul…

C++中的deque

1. 什么是 Deque? 核心概念: Deque 是 “Double-Ended Queue”(双端队列)的缩写。你可以把它想象成一个可以在两端(头部和尾部)高效地进行添加或删除操作的线性数据结构。关键特性: 双端操作&am…

GNU到底是什么,与Unix和Linux是什么关系

GNU(发音为 /ɡnuː/,类似“革奴”)是一个自由软件操作系统项目,由理查德斯托曼(Richard Stallman)于1983年发起,目标是创建一个完全由自由软件组成的类Unix操作系统。它的名字是一个递归缩写&a…

双指针算法介绍及使用(下)

在上一篇文章中我们已经对双指针有了一定了解,接下来我们通过题目来对双指针进行更好的理解。 1. leetcode 202. 快乐数 这道题使用的方法是快慢指针, 比如说一个数X,那么创建两个变量X1和X2,然后X1每次变化两次,X2变化…

Elasticsearch整合:Repository+RestClient双模式查询优化

Elasticsearch整合:RepositoryRestClient双模式查询优化Elasticsearch 双模式查询优化:Repository RestClient 整合指南一、架构设计:双模式协同工作流二、Repository 模式:快速开发最佳实践2.1 基础配置2.2 高级特性&#xff1a…

Elasticsearch 高级查询语法 Query DSL 实战指南

目录 1、DSL 概述 1.1 DSL按照查询的结构层次划分 1.2 DSL按照检索功能的用途和特性划分 1.3 示例数据准备 2、match_all ——匹配所有文档 3、精确匹配 3.1 term——单字段精确匹配查询 3.2 terms——多值精确匹配 3.3 range——范围查询 3.4 exists——是否存在查询…

DNS 服务正反向解析与 Web 集成实战:从配置到验证全流程

DNS 服务正反向解析配置全流程指南 一、前言 在网络环境中,DNS(Domain Name System)服务起着至关重要的作用,它负责将域名解析为 IP 地址,以及将 IP 地址反向解析为域名。本文将详细介绍如何配置 DNS 服务的正反向解析…

2025.07.25【宏基因组】|PathoScope 安装与使用指南

PathoScope 安装与使用指南:微生物组数据分析利器 作为一名生物信息工程师,在微生物组数据分析中,我们常常需要高效、准确的工具来鉴定和量化样本中的微生物组成。PathoScope 正是这样一款强大的工具,它能够帮助我们从高通量测序…

AI结对编程:分布式团队的集体记忆外脑

AI结对编程:分布式团队的集体记忆外脑 “当新人通过AI瞬间掌握三年积累的业务规则时,传统‘传帮带’模式正式宣告过时——分布式团队最珍贵的资产不再是代码,而是被AI固化的集体经验。” 一、人脑的带宽困局 柏林新人加入新加坡支付团队,面临恐怖的知识迷宫: - …

栈----1.有效的括号

20. 有效的括号 - 力扣(LeetCode) /** 括号特性: 左括号必定先出现,每个左括号都需要一个右括号与之匹配,后出现的左括号先匹配 解法: 依据后出现的左括号先匹配,很容易联想到栈,即后进先出 遍历字符串,遇到左括号就在栈中添加一个对应的右括号 遇到右括…

数据报表怎么自动填写内容?总结了几个方法

你有没有遇到过这种情况?月底赶销售报告,Excel里密密麻麻的数据要往Word里搬,光是复制粘贴就折腾半小时,好不容易搞完,老板突然说数据有更新…得,全白干!更崩溃的是,这种重复劳动每个…