FastDFS文件存储方案

摘要:
FastDFS引入了一个用c语言编写的开源轻量级分布式文件系统。FastDFS描述了FastDFS体系结构,包括客户端、跟踪服务器和存储服务器。FastDFS提供上载、下载、删除和其他界面供客户端使用。存储服务器:存储文件和文件属性的存储服务器。Storageserver直接使用OS文件系统调用来管理文件。FastDFS上载和下载过程FastDFS文件索引FastDFS上载与下载过程可以看到涉及一个称为文件索引的数据。
FastDFS介绍
  • 用c语言编写的一款开源的轻量级分布式文件系统。
  • 功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
  • 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。
    可以帮助我们搭建一套高性能的文件服务器集群,并提供文件上传、下载等服务。

FastDFS介绍

在这里插入图片描述

  • FastDFS架构 包括Client、Tracker server和Storage server。
    • Client请求Tracker进行文件上传、下载,Tracker再调度Storage完成文件上传和下载。
  • Client: 客户端,业务请求的发起方,通过专有接口,使用TCP/IP协议与Tracker或Storage进行数据交互。FastDFS提供了upload、download、delete等接口供客户端使用。
  • Tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。
  • Storage server:存储服务器(存储节点或数据服务器),文件和文件属性都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
    • Storage群中的横向可以扩容,纵向可以备份。

FastDFS上传和下载流程

在这里插入图片描述

FastDFS文件索引

在这里插入图片描述

  • FastDFS上传和下载流程 可以看出都涉及到一个数据叫文件索引(file_id)。
    • 文件索引(file_id)是客户端上传文件后Storage返回给客户端的一个字符串,是以后访问该文件的索引信息。
  • 文件索引(file_id)信息包括:组名、虚拟磁盘路径、数据两级目录、文件名等信息。
    • 组名:文件上传后所在的 Storage 组名称。
    • 虚拟磁盘路径:Storage 配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
    • 数据两级目录:Storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
    • 文件名:由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

在这里插入图片描述

免责声明:文章转载自《FastDFS文件存储方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇svn命令行批量删除和批量添加C# 去除Split()中去除内容为空的数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

深入浅出FPGA-2-让source insight 支持verilog HDL

引言 工欲善其事,必先利其器。最近用verilog在FPGA上做一个简易的计算器,整个工程由6个模块组成,之前写的代码都是很小的,模块也很少,一般就一两个,没感觉出别扭。但是模块多了就发现,模块之间的关系就比较复杂,例化一个module时,要反复查看模块的接口,这要反复打开关闭对应的文件,比较麻烦。我之前是做嵌入式软件的,深知一个好的代码编辑工具的重要,其...

Lucene 学习之二:数值类型的索引和范围查询分析

Lucene   使用的是字符(词)类型的索引结构。对数值类型的索引和存储最终都要先转成字符类型。 早期版本Lucene 没有封装数值类型的公共类。需要先直接将数字转成字符串再加到Field 中。 JAVA代码: 1 Document doc = new Document(); 2 long i = 123456L;3 doc.Add(new Fi...

使用Dism命令对Win7镜像进行操作

在操作前,我们需要下载Win7部署工具AIK和Win7原版镜像 ★镜像迅雷链接 ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/ ed2k://|file|cn_windows_7_ul...

Oracle优化器的优化方式和优化模式性能调优

Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你可能对R...

为什么索引可以让查询变快?终于有人说清楚了!

概述 人类存储信息的发展历程大致经历如下: 由于是个人凭着自己理解总结的,因此可能不一定精确,但是毋庸置疑的是,在当代,各大公司机构部门的数据都是维护在数据库当中的。数据库作为数据存储介质发展的最新产物,必然是具有许多优点的,其中一个很大的优点就是存储在数据库中的数据访问速度非常快。 数据库访问速度快的一个很重要的原因就在于索引index的作用。也就是这...

C# 集合之Dictionary详解

开讲。 我们知道Dictionary的最大特点就是可以通过任意类型的key寻找值。而且是通过索引,速度极快。 该特点主要意义:数组能通过索引快速寻址,其他的集合基本都是以此为基础进行扩展而已。 但其索引值只能是int,某些情境下就显出Dictionary的便利性了。 那么问题就来了--C#是怎么做的呢,能使其做到泛型索引。 我们关注圈中的内容,这是Dic...