`

FastDFS 知识点介绍

阅读更多

相关术语 

 

1、Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。
 2、Storage Server:存储服务器,文件和meta data都保存到存储服务器上
 3、group:组,也可称为卷。同组内服务器上的文件是完全相同的
 4、文件标识:包括两部分:组名和文件名(包含路径)
 5、meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

 

同步机制

 

1、同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
2、文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
3、源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
4、上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

 

通信协议

 

 1、协议包由两部分组成:header和body
 2、header共10字节,格式如下:
  8 bytes body length
  1 byte command
  1 byte status
 3、body数据包格式由取决于具体的命令,body可以为空

 

运行时目录结构-tracker server

 

  ${base_path}

    |__data

    |     |__storage_groups.dat:存储分组信息

    |     |__storage_servers.dat:存储服务器列表

    |__logs

           |__trackerd.log:tracker server日志文件

 

数据文件storage_groups.dat和storage_servers.dat中的记录之间以换行符(\n)分隔,字段之间以西文逗号(,)分隔。
storage_groups.dat中的字段依次为:
(1) group_name:组名
(2) storage_port:storage server端口号

 

 

storage_servers.dat中记录storage server相关信息,字段依次为:
(1) group_name:所属组名
   (2) ip_addr:ip地址
   (3) status:状态
(4) sync_src_ip_addr:向该storage server同步已有数据文件的源服务器
(5) sync_until_timestamp:同步已有数据文件的截至时间(UNIX时间戳)
(6) stat.total_upload_count:上传文件次数
(7) stat.success_upload_count:成功上传文件次数
(8) stat.total_set_meta_count:更改meta data次数
(9) stat.success_set_meta_count:成功更改meta data次数
(10) stat.total_delete_count:删除文件次数
(11) stat.success_delete_count:成功删除文件次数
(12) stat.total_download_count:下载文件次数
(13) stat.success_download_count:成功下载文件次数
(14) stat.total_get_meta_count:获取meta data次数
(15) stat.success_get_meta_count:成功获取meta data次数
(16) stat.last_source_update:最近一次源头更新时间(更新操作来自客户端)
(17) stat.last_sync_update:最近一次同步更新时间(更新操作来自其他storage server的同步)

 

运行时目录结构-storage server

 

 ${base_path}

    |__data

    |     |__.data_init_flag:当前storage server初始化信息

    |     |__storage_stat.dat:当前storage server统计信息

    |     |__sync:存放数据同步相关文件

    |     |     |__binlog.index:当前的binlog文件索引号

    |     |     |__binlog.###:存放更新操作记录(日志)

    |     |     |__${ip_addr}_${port}.mark:存放同步的完成情况

    |     |

    |     |__一级目录:256个存放数据文件的目录,如:00, 1F

    |           |__二级目录:256个存放数据文件的目录

    |__logs

          |__storaged.log:storage server日志文件

 

 

 

.data_init_flag文件格式为ini配置文件方式,各个参数如下:
   # storage_join_time:本storage server创建时间;
# sync_old_done:本storage server是否已完成同步的标志(源服务器向本服务器同步已有数据);
# sync_src_server:向本服务器同步已有数据的源服务器IP地址,没有则为空;
# sync_until_timestamp:同步已有数据文件截至时间(UNIX时间戳);

storage_stat.dat文件格式为ini配置文件方式,各个参数如下:
# total_upload_count:上传文件次数
# success_upload_count:成功上传文件次数
# total_set_meta_count:更改meta data次数
# success_set_meta_count:成功更改meta data次数
# total_delete_count:删除文件次数
# success_delete_count:成功删除文件次数
# total_download_count:下载文件次数
# success_download_count:成功下载文件次数
# total_get_meta_count:获取meta data次数
# success_get_meta_count:成功获取meta data次数
# last_source_update:最近一次源头更新时间(更新操作来自客户端)
#last_sync_update:最近一次同步更新时间(更新操作来自其他storage server)

binlog.index中只有一个数据项:当前binlog的文件索引号

binlog.###,###为索引号对应的3位十进制字符,不足三位,前面补0。索引号基于0,最大为999。一个binlog文件最大为 1GB。记录之间以换行符(\n)分隔,字段之间以西文空格分隔。字段依次为:
(1)timestamp:更新发生时间(Unix时间戳)
(2)op_type:操作类型,一个字符
(3)filename:操作(更新)的文件名,包括相对路径,如:5A/3D/FE_93_SJZ7pAAAO_BXYD.S

${ip_addr}_${port}.mark:ip_addr为同步的目标服务器IP地址,port为本组storage server端口。例如:10.0.0.1_23000.mark。文件格式为ini配置文件方式,各个参数如下:
# binlog_index:已处理(同步)到的binlog索引号
# binlog_offset:已处理(同步)到的binlog文件偏移量(字节数)
# need_sync_old:同步已有数据文件标记,0表示没有数据文件需要同步
# sync_old_done:同步已有数据文件是否完成标记,0表示未完成,1表示已完成
   # until_timestamp:同步已有数据截至时间点(UNIX时间戳)
# scan_row_count:已扫描的binlog记录数
# sync_row_count:已同步的binlog记录数

数据文件名由系统自动生成,包括三部分:当前时间(Unix时间戳)、文件大小(字节数)和随机数。文件名长度为16字节。文件按照PJW Hash算法hash到65536(256*256,默认配置下)个目录中分散存储。

 

0
0
分享到:
评论

相关推荐

    FastDFS单点安装.

    FastDFS是一款开源的高性能、轻量级的分布式文件系统,主要解决大容量存储和负载均衡问题,特别适合互联网行业中的图片、视频等大量...了解并掌握这些知识点,将有助于你顺利进行FastDFS的单点安装及后续的集群扩展。

    fastDFS 介绍文档,源代码,使用样例,JAR包

    通常,介绍文档会包含以下几个关键知识点: 1. **系统架构**:FastDFS采用C/S(客户端/服务器)模式,Tracker负责文件操作的调度,Storage负责文件的存储和提供下载服务。Tracker和Storage之间是主从结构,而...

    FastDFSClient C#源码

    源码中可能包含以下关键组件和知识点: 1. 连接管理:FastDFSClient会管理与FastDFS服务器的连接,包括建立TCP连接、心跳检测、连接池管理等。这涉及到网络编程的基础知识,如Socket编程和线程安全的连接管理。 2....

    fastDFS文件系统搭建

    ### FastDFS 文件系统搭建知识点详解 #### 一、概述 FastDFS是一款开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载等),解决了大容量存储和负载均衡...

    fastDFS1.25jar包

    综合上述信息,我们可以得出以下知识点: 1. FastDFS是一个分布式文件系统,适用于大容量中小文件的存储。 2. Maven是Java项目管理和构建工具,依赖于其管理的库(如fastDFS.jar)必须在Maven仓库中可用。 3. 使用...

    虚拟机fastdfs配置静态ip

    ### 虚拟机FastDFS配置静态IP的知识点详解 #### 一、FastDFS简介 FastDFS是一款开源的轻量级分布式文件系统,主要应用于互联网环境下大规模文件存储场景。它支持高并发、高性能以及可扩展性,适用于图片、视频等大...

    Linux安装FastDFS.docx

    下面是Linux安装FastDFS的详细步骤和知识点总结。 一、环境准备 1. 安装gcc:FastDFS是使用C语言开发的,因此需要安装gcc环境来编译FastDFS。使用yum install gcc-c++命令安装gcc。 2. 安装libevent:FastDFS依赖...

    fastdfs-nginx-module1.20

    通过以上知识点的介绍,我们可以看到FastDFS-Nginx-Module V1.20在文件服务中的重要作用。在实际应用中,结合FastDFS的分布式特性和Nginx的反向代理能力,可以构建高效、稳定、可扩展的文件服务系统,满足企业级大...

    FastDFS使用和优化.docx

    以下是 FastDFS 的相关知识点。 一、FastDFS 简介 FastDFS 的整体架构主要包括三个角色:Tracker、Storage 和 Client。 1. Tracker:存储文件元数据信息,协调数据一致性,接收用户请求。Tracker 服务器是 ...

    fastdfs 帮助文档.chm

    《FastDFS深度解析:从客户端到Java API》 FastDFS是一个开源的高性能、轻量级的分布式文件系统,主要用于解决大容量存储和负载...通过理解和掌握这些知识点,可以更好地利用FastDFS构建高效、稳定的文件存储系统。

    springboot集合fastdfs的demo

    以上就是SpringBoot集成FastDFS的基本流程和关键知识点。在实际应用中,我们还需要考虑文件权限控制、文件元数据管理、异常处理等问题,以提升系统的健壮性和用户体验。同时,为了适应不断变化的业务需求,我们还...

    fastdfs_client_v1.20.jar

    在使用FastDFS时,我们通常需要配置服务器端的FastDFS服务,并在客户端应用中引入相应的jar包,本文将详细讲解FastDFS客户端的核心组件`fastdfs_client_v1.20.jar`及其相关知识点。 1. **FastDFS简介** FastDFS...

    fastdfs.pdf

    下面详细探讨从给定文件中提炼出的FastDFS集群安装的关键知识点。 1. 安装文件信息 在FastDFS集群安装之前,需要准备好相关的安装文件,这些文件包括FastDFS、FastDFS-nginx-module、libevent、libfastcommon以及...

    fastdfs-java客户端代码

    而FastDFS的Java客户端则是Java开发者在使用FastDFS时的重要工具,本文将详细介绍FastDFS Java客户端的使用方法和核心知识点。 一、FastDFS Java客户端概述 FastDFS Java客户端是Java语言实现的对FastDFS服务端的...

    fastdfs的web程序

    下面将详细探讨FastDFS的Web运用及其核心知识点。 首先,`pom.xml`是Maven项目的核心配置文件,它定义了项目依赖、构建过程等关键信息。在FastDFS的Web应用中,`pom.xml`通常会包含FastDFS客户端库和其他相关依赖,...

    FastDFS文件服务器部署

    ### FastDFS 文件服务器部署知识点详解 #### 一、FastDFS简介 FastDFS 是一款轻量级的开源分布式文件系统,由纯 C 语言编写而成,主要用于处理海量小文件的存储需求。FastDFS 支持 Linux、FreeBSD 和 AIX 等多种 ...

    安装fastDFS所需资源

    接下来,我们将详细讨论FastDFS的安装及其相关知识点。 1. **FastDFS概述** FastDFS是一个开源的高性能分布式文件系统,它对文件进行管理,包括文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决了...

    fastdfs集群搭建整合包

    以上就是基于给定文件信息构建FastDFS集群的基本过程和涉及到的知识点,每个环节都需要仔细操作和调试,确保服务的稳定和高效。在实际应用中,还可能需要考虑负载均衡、数据备份、安全性等问题,以适应不同业务场景...

Global site tag (gtag.js) - Google Analytics