参考信息

源码链接:https://github.com/happyfish100/fastdfs

官方部署方式:https://github.com/happyfish100/fastdfs/wiki

docker容器化安装部署链接:http://wed.xjx100.cn/news/384259.html?action=onClick

细致描述:https://zhuanlan.zhihu.com/p/32798888

产品介绍

FastDFS是前阿里的一位大神余庆开源的一个轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站、视频网站等等。在UC基于FastDFS开发向用户提供了:网盘,社区,广告和应用下载等业务的存储服务。

FastDFS是一款开源的轻量级分布式文件系统,纯C实现,支持Linux、FreeBSD等UNIX系统类google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。

产品描述

FastDFS服务端有两个角色:跟踪器(tracker)和存储服务器(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储服务器存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的metadata就是文件的相关属性,以键值对(key value)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。

很多人可能不太理解为什么要设计tracker这个角色,当存储服务器由很多个物理机器组成时。客户端要上传/下载文件的时候,不知道文件上传/下载到哪个具体的机器。于是客户端会先请求tracker,tracker会返回具体的group和group中的具体主机信息。客户端拿着这个具体的主机信息去请求相应的主机进行文件的上传/下载。

相关术语

Tracker Server

跟踪器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽

Storage Server

存储服务器,文件和metadata都保存到存储服务器上

group

组,也可称为卷。同组内服务器上的文件是完全相同的

文件标识

包括两部分:组名和文件名(包含路径)

meta-data

文件相关属性,键值对(Key Value Pair)方式:width=1024,heigth=768

下载核心流程

关键:

客户端向tracker发起下载文件的请求,tracker只会返回文件所处服务器的ip地址和端口信息,然后服务器要通过ip地址、端口信息、文件组名、文件标识信息到storage上去下载文件。所以,没有办法直接访问tracker获取文件。

相关linux命令

在storage上查看group组内信息

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

IP修改

当tracker的ip有变动时,需要修改storage的如下信息

storage.conf client.conf mod_fastdfs.conf三个配置文件中的tracker_server信息

同时,如果是采用docker进行部署,那么需要关闭docker服务后,进入/var/lib/docker/containers/服务ID/config.v2.json中将之前的ip地址改过来。

Last modification:November 7th, 2023 at 05:44 pm