FastDFS HOWTO - 同步机制

fastdfs磁盘满,如何清除文件? 文章目录技术交流方式一:个人微信方式二:qq群 1 查看磁盘剩余空间 如果太高,可以清除图片存储的老图片文件。 # df -h 2 停止trackerd 与 storaged # /etc/init.d/fdfs_trackerd stop # /etc/init.d/fdfs_storaged stop 3 删除图片存储目录。 # rm /Data/apps/fastdfs/stora... 阅读详情
在FastDFS的服务器端配置文件中,bind_addr这个参数用于需要绑定本机IP地址的场合。只有这个参数和主机特征相关,其余参数都是可以统一配置的。在不需要绑定本机的情况下,为了便于管理和维护,建议所有tracker server的配置文件相同,同组内的所有storage server的配置文件相同。

tracker server的配置文件中没有出现storage server,而storage server的配置文件中会列举出所有的tracker server。这就决定了storage server和tracker server之间的连接由storage server主动发起,storage server为每个tracker server启动一个线程进行连接和通讯,这部分的通信协议请参阅《FastDFS HOWTO -- Protocol》中的“2. storage server to tracker server command”。

tracker server会在内存中保存storage分组及各个组下的storage server,并将连接过自己的storage server及其分组保存到文件中,以便下次重启服务时能直接从本地磁盘中获得storage相关信息。storage server会在内存中记录本组的所有服务器,并将服务器信息记录到文件中。tracker server和storage server之间相互同步storage server列表:
  1. 如果一个组内增加了新的storage server或者storage server的状态发生了改变,tracker server都会将storage server列表同步给该组内的所有storage server。以新增storage server为例,因为新加入的storage server主动连接tracker server,tracker server发现有新的storage server加入,就会将该组内所有的storage server返回给新加入的storage server,并重新将该组的storage server列表返回给该组内的其他storage server;
  2. 如果新增加一台tracker server,storage server连接该tracker server,发现该tracker server返回的本组storage server列表比本机记录的要少,就会将该tracker server上没有的storage server同步给该tracker server。

同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行。文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器。以文件上传为例,假设一个组内有3台storage server A、B和C,文件F上传到服务器B,由B将文件F同步到其余的两台服务器A和C。我们不妨把文件F上传到服务器B的操作为源头操作,在服务器B上的F文件为源头数据;文件F被同步到服务器A和C的操作为备份操作,在A和C上的F文件为备份数据。同步规则总结如下:
  1. 只在本组内的storage server之间进行同步;
  2. 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
  3. 上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

storage server有7个状态,如下:
  # FDFS_STORAGE_STATUS_INIT      :初始化,尚未得到同步已有数据的源服务器
  # FDFS_STORAGE_STATUS_WAIT_SYNC :等待同步,已得到同步已有数据的源服务器
  # FDFS_STORAGE_STATUS_SYNCING   :同步中
  # FDFS_STORAGE_STATUS_DELETED   :已删除,该服务器从本组中摘除(注:本状态的功能尚未实现)
  # FDFS_STORAGE_STATUS_OFFLINE   :离线
  # FDFS_STORAGE_STATUS_ONLINE    :在线,尚不能提供服务
  # FDFS_STORAGE_STATUS_ACTIVE    :在线,可以提供服务

当storage server的状态为FDFS_STORAGE_STATUS_ONLINE时,当该storage server向tracker server发起一次heart beat时,tracker server将其状态更改为FDFS_STORAGE_STATUS_ACTIVE。

组内新增加一台storage server A时,由系统自动完成已有数据同步,处理逻辑如下:
  1. storage server A连接tracker server,tracker server将storage server A的状态设置为FDFS_STORAGE_STATUS_INIT。storage server A询问追加同步的源服务器和追加同步截至时间点,如果该组内只有storage server A或该组内已成功上传的文件数为0,则没有数据需要同步,storage server A就可以提供在线服务,此时tracker将其状态设置为FDFS_STORAGE_STATUS_ONLINE,否则tracker server将其状态设置为FDFS_STORAGE_STATUS_WAIT_SYNC,进入第二步的处理;
  2. 假设tracker server分配向storage server A同步已有数据的源storage server为B。同组的storage server和tracker server通讯得知新增了storage server A,将启动同步线程,并向tracker server询问向storage server A追加同步的源服务器和截至时间点。storage server B将把截至时间点之前的所有数据同步给storage server A;而其余的storage server从截至时间点之后进行正常同步,只把源头数据同步给storage server A。到了截至时间点之后,storage server B对storage server A的同步将由追加同步切换为正常同步,只同步源头数据;
  3. storage server B向storage server A同步完所有数据,暂时没有数据要同步时,storage server B请求tracker server将storage server A的状态设置为FDFS_STORAGE_STATUS_ONLINE;
  4 当storage server A向tracker server发起heart beat时,tracker server将其状态更改为FDFS_STORAGE_STATUS_ACTIVE。
FastDFS文件同步机制 FastDFS文件同步机制在FastDFS的服务器端配置文件中,bind_addr这个参数用于需要绑定本机IP地址的场合。只有这个参数和主机特征相关,其余参数都是可以统一配置的。在不需要绑定本机的情况下,为了便于管理和维护,建议所有tracker server的配置文件相同,同组内的所有storage server的配置文件相同。tracker server的配置文件中没有出现storage ser 阅读详情

相关推荐

从球谐函数到哈希编码:Instant-NGP如何重构NeRF的数学基础

本文深入解析了Instant-NGP如何通过多分辨率哈希编码重构NeRF的数学基础,显著提升训练速度和渲染效率。对比传统球谐函数,哈希编码在计算复杂度、频率适应性和内存访问效率上具有明显优势,为实时神经渲染技术开辟了新方向。

weixin_29240711的博客 420

定时自动删除fdfs文件(清理FdastDfs空间)

目录 背景 原理 脚本 创建脚本 脚本内容 授权 添加定时任务 背景 fastDFS本身没有提供批量删除的接口,所以当fdfs上传太多文件后会导致服务器空间不足而引发的一系列问题 原理 利用find命令查找指定时间前的数据并进行删除 利用crontab 定时调用脚本达到自动化运维的目的 脚本 创建目录及脚本 mkdir -p /opt/shell/ touch /opt/shell/fdfs_disk.sh 脚本内容 添加一下内容到fdfs_disk.sh文件并保存

夜灬狼丶 5068

408——计算机组成原理(持续更新)

小数点前的0代表正数,1代表负数。

qq_55202378的博客 1724

fastdfs定时清理图片

【代码】fastdfs定时清理图片。

李振伟的博客 2731

保姆级教程:用WorkVisual 6.0给你的KUKA机器人硬件做一次‘全身体检’与配置检查

本文详细介绍了如何使用WorkVisual 6.0对KUKA机器人进行全面的硬件诊断与配置检查。从环境准备到核心硬件模块检查,再到安全系统合规性验证,提供了保姆级教程,帮助技术团队快速掌握数字化诊断方案,提升工业机器人的健康管理效率。

weixin_27298377的博客 277

树莓派CSI/DSI二合一接口深度玩法:同时驱动MIPI摄像头和屏幕的配置秘籍

本文详细解析了树莓派5上CSI/DSI二合一接口的深度玩法,提供了同时驱动MIPI摄像头和屏幕的完整配置秘籍。从硬件连接到软件设置,包括config.txt的优化配置,帮助用户充分利用树莓派5的双多功能接口,实现高效的双设备工作模式。

weixin_30687051的博客 573

Ubuntu下清空fastDFS数据

Ubuntu下清空fastDFS数据。

一位不想写代码偏偏还在挣扎的万年小白 1059

ZEMAX学习 6.一个照相物镜的设计

曲线越平滑表示场曲越小,曲线越接近水平,系统边缘与中心对比度越接近,虚实越接近表示色差和色散越好;第1个面设计不合理,出现前后表面相交的情况,点击第1面厚度,选择边缘厚度,设置为0.1,第1面厚度被控制在0.1mm厚,系统根据这一设置始终保持第1面边缘厚度为0.1mm。要求:设计一个照相物镜,焦距f=9mm,F#为4,视场角40°;添加有效焦距操作数EFFL 9mm 权重为1,设置优化变量,如下图,ctrl+shift+o打开优化界面。报告中系统数据有效焦距为67.381mm,设计要求为9mm;

qq_24542783的博客 4713

分布式存储系统FastDFS手册之三机制原理及其与MogileFS比较

转自互联网,原作者不详 ===================   4 机制原理研究 4.1同步机制 在FastDFS的服务器端配置文件中,bind_addr这个参数用于需要绑定本机IP地址的场合。只有这个参数和主机特征相关,其余参数都是可以统一 配置的。在不需要绑定本机的情况下,为了便于管理和维护,建议所有tracker server的配置文件相同,同组内的所有storage ...

soartju的专栏 161

5G RF前端架构为什么越来越复杂?从8天线、MIMO、ET、DRX到ACLR/EVM彻底拆开

AdjacentChannelLeakageRatioAdjacentChannelLeakageRatio主信道的功率,有多少泄漏到了隔壁Channel。ACLRPAdjacentPMainACLR=ACLRPMain​PAdjacent​​通常以dBc表达。

weixin_43199439的博客 47

Python爬虫教程:抓取短视频平台数据(以抖音和快手为例)

为什么抓取短视频平台数据?内容分析:通过抓取短视频平台上的视频内容、标题、标签等数据,可以进行内容分类、趋势分析、话题分析等。情感分析:抓取视频的评论数据,并进行情感分析,帮助企业或组织了解公众的情绪反馈。用户行为分析市场监测:通过抓取特定关键词或标签下的视频数据,分析市场趋势,进行竞争对手分析。短视频平台数据类型:视频信息:包括视频标题、描述、标签、作者等。用户信息:包括用户的昵称、粉丝数、关注数等。互动数据评论数据:视频下的用户评论内容及用户信息。

2201_76125261的博客 3663

访问远程服务器的fastDFS,需要在远程服务器storage.conf中配置成tracker_server=外网IP:22122

因为我把fastDFS安装在阿里云的,而我调试的时候又是在本地调试(即不和fastDFS同服务器),如果我想上传成功,storage.conf中tracker的地址必须为外网IP,即:tracker_server=外网IP:22122,我们一般在安装的时候都是配置成内网IP的,所以想要能远程访问就必须把它设置成外网ip,其它地方配置都是内网ip不变,比如client.conf中使用内网地址,tra...

像雾像雨又像风_的博客 1万+

GameFramework 框架详解之 Network网络模块 工具链

GameFramework(下面简称GF)Demo中,已经给我们提供了Network模块使用的protobuf使用的动态链接库protobuf-net.dll,但是GF并没有给我们提供protobuf相关的工具链,比如:1.proto文件自动导出对应c#的Packet类和PacketHandler类2.导出Packet类继承IReference以便使用引用池。3.自动生成Packet类和PacketHandler的Id,且保持和服务器Id一一对应。

TxNet 2903

Fastdfs预留空间问题排查分析

Fastdfs 一次上传文件失败的问题分析 1.问题现象 上传文件失败,返回错误码28 上传文件包 connection reset by peer. 2. 问题分析 连接被重置是因为tcp的三次握手出现问题,第三次握手的时候ack指令未返回(详细问题请自行百度),简单点就是tcp请求还没返回消息,连接就已被关闭。 这就感觉很神奇,然后分析出是文件上传的时候产生问题的,由于文件上传是到fas...

逍遥散人的博客 5346

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

节点磁盘空间清理

注意:下面的命令将清理3600天之前的构建应用所使用的war包,war包被删除后,引用该war包的流水线将无法执行,因此在删除war包前,务必与项目组确认保留时间。echo "开始清理日志logcenter日志:`date +%Y%m%d-%H%m%S`" >> /tmp/cleanlog.log。echo "完成日志清理:`date +%Y%m%d-%H%m%S`" >> /tmp/cleanlog.log。# 9 节点磁盘空间清理。3.其他节点日志清理。

niwoxiangyu的博客 365

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Fastdfs分布式文件系统之文件同步机制

从fastdfs文件系统结构中我们可以看出不管是上传文件、删除文件、修改文件及新增storager server,文件的同步都是同组 内多台storager server之间进行的; tracker server的配置文件中没有出现storage server,而storage server的配置文件中会列举出所有的tracker server。 这就决定了storage server和tracker server之间的连接由storage server主动发起,storage server为每个track

Mr_Smile2014的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

清空FastDFS文件服务器中图片文件

分享一下清空所有图片命令。

꧁花☞v颖s☜飞꧂的博客 1250

FastDFS文件同步机制分析

tracker server及storage server目录及文件结构描述。 介绍FastDFS文件同步:同步日志所在目录、binlog格式、同步规则、Binlog同步过程、tracker_report_thread_entrance及storage_sync_thread_entrance、同步前删除、Storage的最后最早被同步时间详解、 新增节点的同步流程详解、Tracker选择客户端下载文件的storage的规则。

Lion_Long的博客 4186

FastDFS集群同步机制

答案:同步线程进行storage同步时,会先读取对方的.mark同步文件,其中包含该storage的同步记录,其中binlog_offset字段记录了上一次同步binlog的位置。答:源storage写入文件后记录该操作到binlog文件,用操作符的大小写区分该操作是源文件操作还是副本文件操作,源storage的监听线程(多个)捕捉到新记录,4.已有A、B、C三个storage,我现在上传一个文件到A,然后发起请求下载,会不会出现从B请求下载,但此时B没有同步文件,导致下载失败的情况?

欢迎指正、交流 4667

fastdfs 数据同步和迁移

最近做了一次fastdfs文件迁移的工作,把操作步骤记录下来,留给后面做迁移的时候参考。 其中有些细节原理尚不清楚,后续有研究再补充。 旧的 fastdfs(110.119.19.20)我们这么命名 tracker_old storage_old 新的 fastdfs(110.119.19.21)我们这么命名 tracker_new storage_new 我们为了不影响旧的 fastdf...

markfengfeng的博客 5476
上一篇: FastDFS一个高效的分布式文件系统
下一篇: FastDFS HOWTO - 文件及目录结构
YL_WH
博客等级 码龄18年 42粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值