fastdfs简单介绍

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: fastdfs简单介绍

fastdfs

功能

FastDFS主要的功能包括:

  • 文件存储,
  • 同步和访问,
  • 设计基于高可用和负载均衡。
  • FastDFS非常适用于基于文件服务的站点

组成

FastDFS由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size < 500MB) 为载体的在线服务,例如图片分享和视频分享网站

  • 跟踪服务器
  • tracker提供负载均衡,集群中的每一个tracker都要保存storage集群的所有信息,供client访问并上传文件
  • 负载均衡:
  • 可以看见不同的group中的对应空间有多少,根据空间大小来选择在哪个group中上传,选择到指定group后就会确定一个storage server给客户端涉及到两个部分的选择group的选择
  • round robin,所有的group间轮询
  • specified group,指定某一个确定的group
  • load balance,选择剩余空间最大的
  • storage server的选择
  • round robin,在指定group内的所有storage间轮询
  • First server ordered by ip,按ip排序
  • First server ordered by priority,按优先级排序
  • 存储服务器
  • storage可以是集群,所有的group都要上报到tracker集群的每一个tracker
  • storage集群
  • 同一个group内的storage存储的数据是一样的
  • 客户端
  • 用于上传文件与下载文件,fdfs提供了对应源码实现
  • client访问tracker目的是为了获取哪一个storage可以上传文件

上传文件流程:

  • client访问trackertracker通过负载均衡指定一个group,然后再在这个group中指定一个storage server返回给clientclient向这个storage server发送写文件请求,storage server会为文件分配一个数据存储目录
  • storage server收到client发送的写请求后进行的处理
  • 生成fileid:由ip,创建时间,文件大小,文件crc32和一个随机数拼接而成,然后进行base64编码,转化为了可打印的字符串
  • 选择两级目录
  • 生成文件名:格式组名/磁盘/目录/fileid.txt
  • fastdfs上传一个文件指令
> ls
hello.txt
> fdfs_upload_file /etc/fdfs/client.conf hello.txt
/group1/M00/00/00/wKg4aWRT1ZeAM66YAAAAKYfybsk605.txt
  • 解析返回的文件名
  • 存储在哪个gourpgroup1
  • 在哪个磁盘:M00
  • 在哪个目录:00/00

ClientTrackerServerStorage定时向tracker上传状态信息上传连接请求获取可用storage节点返回可用storage节点返回可用存储节点(storage的ip和端口)上传文件到可用存储节点(file content和metadata)生成file_id将上传内容写入磁盘返回file_if(路径信息和文件名)存储文件信息ClientTrackerServerStorage

下载文件流程:

  • client访问trackertracker会告诉clientgroup中的哪一个storage中下载文件
  • fastdfs下载一个文件指令
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKg4aWRTdjKAKYp2AAAHeD18SIc60.conf

ClientTrackerServerStorage定时向tracker上传状态信息下载连接请求获取可用storage节点(检验同步状态)返回可用storage节点返回节点(storage的ip和端口)信息根据组名/目录/文件名查找文件查找文件返回file_contentClientTrackerServerStorage

如何支持高可用

高可用指系统能够在预期的时间内一直处于可用状态

  • tracker是集群
  • 同一组的storage的内容是相同的(一个group建议3storage
  • 强一致性,若一致性
  • 如果是强一致性,同一组中上传完毕后需要等待其他storage同步完毕
  • 数据更安全可靠,等待时间长
  • 如果是弱一致性,当前的storage存储完毕就返回
  • 数据不太可靠,等待时间短
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
存储 负载均衡 容灾
Fastdfs安装与配置
Fastdfs安装与配置
|
3月前
|
Java 应用服务中间件 nginx
FastDFS整合Nginx安装与使用
FastDFS整合Nginx安装与使用
52 0
|
9月前
|
存储 负载均衡 算法
FastDFS介绍-2
FastDFS介绍
109 1
|
9月前
|
存储 负载均衡 Linux
FastDFS介绍-1
FastDFS介绍
99 1
|
Web App开发 存储 应用服务中间件
|
存储 负载均衡 网络协议
fastdfs部署
FastDFS 是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载均衡问题。FastDFS应该能满足图片分享网站、视频分享网站等以文件为基础服务的网站的要求。 FastDFS有两个角色:tracker和storage。跟踪器负责文件访问的调度和负载均衡。storage 存储文件,其功能是文件管理,包括:文件存储,文件同步,提供文件访问接口。它还管理元数据,这些元数据是表示文件键值对的属性。例如:width=1024,键为“width”,值为“1024”
317 0
fastdfs部署
|
存储 负载均衡 架构师
FastDFS 介绍 | 学习笔记
快速学习 FastDFS 介绍 。
108 0
|
存储 监控 应用服务中间件
浅谈fastDFS服务器
  FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。FastDFS特别适合以文件为载体的在线服务,多图片、多视频的服务等等。
3515 0
|
存储 网络协议 应用服务中间件