FastDFS文件系统单机环境搭建

FastDFS 环境搭建及使用详解 如题。 阅读详情
1,FastDFS基本介绍:FastDFS 系统有三个角色,跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
  • Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server
    和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
  • Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
  • Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。这里免不了放一张余庆老师介绍 FastDFS 的 PPT 中的一张架构图,清晰的说明了上述职责及关系:
  • 这里免不了放一张余庆老师介绍 FastDFS 的 PPT 中的一张架构图,清晰的说明了上述职责及关系:

这里写图片描述
上述架构优点:1.高可靠性:无单点故障 2.高吞吐性:只要 Group 足够多,数据流量将足够分散。

那么怎么上传下载以及同步文件这么操作呢?我在这就不详细说全部流程了,大概上传流程就是客户端发送上传请求到Tracker Server服务器,接着Tracker Server服务器分配group和Storage Server,当然这是有一定规则的,选择好Storage Server后再根据一定规则选择存储在这个服务器会生成一个file_id,这个file_id 包含字段包括:storage server ip、文件创建时间、文件大小、文件 CRC32 校验码和随机数;每个存储目录下有两个 256 * 256 个子目录,后边你会知道一个Storage Server存储目录下有好多个文件夹的,storage 会按文件file_id进行两次 hash ,路由到其中一个子目录,然后将文件存储到该子目录下,最后生成文件路径:group 名称、虚拟磁盘路径、数据两级目录、file_id和文件后缀就是一个完整的文件地址。

2,FastDFS 在 CentOS 下配置安装部署

一、安装 libfastcommon 和 FastDFS
1,下载安装 libfastcommon ,这里是通过wget下载:

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压 libfastcommon,命令:

tar -zxvf V1.0.7.tar.gz

移动解压目录到/usr/local下:

mv libfastcommon-1.0.7 /usr/local/

编译,进入libfastcommon-1.0.7目录,命令:

cd /usr/local/libfastcommon-1.0.7
./make.sh

安装,命令:

./make.sh install

这里写图片描述
显示这样的画面,就是安装 libfastcommon 成功啦。

2,下载安装 FastDFS,这里也是通过wget下载

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

解压 FastDFS ,命令:

tar -zxvf V5.05.tar.gz

移动解压目录到/usr/local下:

mv fastdfs-5.05/ /usr/local/

编译,进入fastfds-5.05目录,命令:

cd /usr/local/fastdfs-5.05
./make.sh

安装,命令:

./make.sh install

这里写图片描述
显示这样的画面,就是安装 FastDFS 成功啦。

二、配置 Tracker 服务
上述安装成功后,在/etc/目录下会有一个fdfs的目录,进入它。会看到三个.sample后缀的文件,这是作者给我们的示例文件,我们需要把其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim tracker.conf
// 编辑tracker.conf文件,找到你需要修改的两个参数就可以了,我这里不做修改,用默认的
# the base path to store data and log files // 数据和日志的存放目录
base_path=/home/yuqing/fastdfs

# HTTP port on this tracker server // http服务端口
http.server_port=8070

这里写图片描述
修改完成后我们需要建立tracker的工作目录,不然启动报错(上面base_path配置的目录)

mkdir -p /home/yuqing/fastdfs

启动tracker服务:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

查看监听:

ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs

这里写图片描述
看到trackerd服务正常启动后,这时候就算 Tracker服务安装成功啦!

三、配置 Storage 服务
现在开始配置 Storage 服务,由于我这是单机器测试,你把 Storage 服务放在多台服务器也是可以的,它有 Group(组)的概念,同一组内服务器互备同步,这里不再演示。直接开始配置,依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的storage.conf.sample文件改为storage.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim storage.conf

打开storage.conf文件后,找到下面参数进行修改:

# the base path to store data and log files // 数据和日志的存放目录
base_path=/home/yuqing/fastdfs

# path(disk or mount point) count, default value is 1 // storage在存储文件时支持多路径,默认只设置一个(下面store_path0配置的数量个数)
store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path // 配置多个store_path路径,从0开始,如果store_path0不存在,则base_path必须存在
# the paths must be exist
// 此处可以配置多个路径,如:store_path0=xx, store_path1=xx,store_path2=xx
// 多个项目的文件按照文件夹分割,通过/usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index] 选择storage服务器和store_path角标上传到相应的项目下
store_path0=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // 设置tracker_server
#  "host:port", host can be hostname or ip address
tracker_server=192.168.2.121:22122

修改完成后我们需要建立tracker的工作目录,不然启动报错(上面base_path配置的目录和store_path0配置的目录)

mkdir -p /home/yuqing/fastdfs

启动storage服务:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

查看监听:

ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs

这里写图片描述
很好,22122 和 23000端口都在监听了,这个时候你去/home/yuqing/fastdfs文件夹下看的话,会出现一大堆文件夹,而且进去还有一大堆,哈哈,这就是存放文件的啦!
到这里,我们安装配置并启动了 Tracker 和 Storage 服务,也没有报错了。那他俩是不是在通信呢?我们可以监视一下:

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

这里写图片描述
看到我红线处ACTIVE这样就 ok 啦!

四、配置 fdfs_upload_file 上传文件
依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的client.conf.sample文件改为client.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/
cp client.conf.sample client.conf
vim client.conf

找到下面参数进行修改:

# the base path to store log files // 日志的存放目录
base_path=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // tracker_server服务的地址和端口号
#  "host:port", host can be hostname or ip address
tracker_server=192.168.2.121:22122

修改完成后我们就可以通过/usr/bin/fdfs_upload_file命令上传文件了,/usr/bin/fdfs_upload_file 命令用法:

[root@localhost fdfs]# /usr/bin/fdfs_upload_file
Usage: /usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index]
// 命令 配置文件 上传的文件 storage_ip和端口 store_path角标

这里写图片描述
文件上传后会返回文件所在路径,我们只要把这路径保存起来,后续集成Nginx我们就可以访问到上传的文件了

总结一下

这篇文章只是进行了 FastDFS 的安装与配置,没有任何难度可言,只要按照步骤一步步走下去就可以搞定。可能中间过程中我们会由于不细心经历各种错误,只要仔细看日志信息都能解决掉的。

由于余老师在 V4.05 以后的版本就把内置 HTTP服务去掉了,推荐大家结合 Nginx 使用 fastdfs-nginx-module 模块,所以,就算这篇你测试上传成功了,你也访问不了,下一篇分布式文件系统 - FastDFS 配置 Nginx 模块及访问测试中会进行配合 Nginx 完成全部FastDFS的安装测试上传下载等等全部工作。

FastDFS 配置 Nginx 模块及访问测试点击进入

以下附带 tracker.conf 和 storage.conf 的具体配置注释

1,tracker.conf

tracker.conf 配置文件分析:

// 配置tracker.conf这个配置文件是否生效,因为在启动fastdfs服务端进程时需要指定配置文件,所以需要使次配置文件生效。false是生效,true是屏蔽。
disabled=false

// 程序的监听地址,如果不设定则监听所有地址
bind_addr=

// tracker监听的端口
port=22122

// 链接超时设定
connect_timeout=30

// tracker在通过网络发送接收数据的超时时间
network_timeout=60

// 数据和日志的存放地点
base_path=/opt/fdfs

// 服务所支持的最大链接数
max_connections=256

// 工作线程数一般为cpu个数
work_threads=4

// 在存储文件时选择group的策略,0:轮训策略 1:指定某一个组 2:负载均衡,选择空闲空间最大的group
store_lookup=2

// 如果上面的store_lookup选择了1,则这里需要指定一个group
// store_group=group2

// 在group中的哪台storage做主storage,当一个文件上传到主storage后,就由这台机器同步文件到group内的其他storage上,0:轮训策略 1:根据ip地址排序,第一个 2:根据优先级排序,第一个
store_server=0

// 选择那个storage作为主下载服务器,0:轮训策略 1:主上传storage作为主下载服务器
download_server=0

// 选择文件上传到storage中的哪个(目录/挂载点),storage可以有多个存放文件的base path 0:轮训策略 2:负载均衡,选择空闲空间最大的
store_path=0

// 系统预留空间,当一个group中的任何storage的剩余空间小于定义的值,整个group就不能上传文件了
reserved_storage_space = 4GB

// 日志信息级别
log_level=info

// 进程以那个用户/用户组运行,不指定默认是当前用户
run_by_group=
run_by_user=

// 允许那些机器连接tracker默认是所有机器
allow_hosts=*

// 设置日志信息刷新到disk的频率,默认10s
sync_log_buff_interval = 10

// 检测storage服务器的间隔时间,storage定期主动向tracker发送心跳,如果在指定的时间没收到信号,tracker人为storage故障,默认120s
check_active_interval = 120

// 线程栈的大小,最小64K
thread_stack_size = 64KB

// storage的ip改变后服务端是否自动调整,storage进程重启时才自动调整
storage_ip_changed_auto_adjust = true

// storage之间同步文件的最大延迟,默认1天
storage_sync_file_max_delay = 86400

// 同步一个文件所花费的最大时间
storage_sync_file_max_time = 300

// 是否用一个trunk文件存储多个小文件
use_trunk_file = false

// 最小的solt大小,应该小于4KB,默认256bytes
slot_min_size = 256

// 最大的solt大小,如果上传的文件小于默认值,则上传文件被放入trunk文件中
slot_max_size = 16MB

// trunk文件的默认大小,应该大于4M
trunk_file_size = 64MB

// http服务是否生效,默认不生效
http.disabled=false

// http服务端口
http.server_port=8080

// 检测storage上http服务的时间间隔,<=0表示不检测
http.check_alive_interval=30

// 检测storage上http服务时所用请求的类型,tcp只检测是否可以连接,http必须返回200
http.check_alive_type=tcp

// 通过url检测storage http服务状态
http.check_alive_uri=/status.html

// if need find content type from file extension name
http.need_find_content_type=true

// 用include包含进http的其他设置
// include http.conf

2,storage.conf配置文件分析

storage.conf配置文件分析:

// 同tracker.conf
disabled=false

// 这个storage服务器属于那个group
group_name=group1

// 同tracker.conf
bind_addr=

// 连接其他服务器时是否绑定地址,bind_addr配置时本参数才有效
client_bind=true

// 同tracker.conf
port=23000
connect_timeout=30
network_timeout=60

// 主动向tracker发送心跳检测的时间间隔
heart_beat_interval=30

// 主动向tracker发送磁盘使用率的时间间隔
stat_report_interval=60

// 同tracker.conf
base_path=/opt/fdfs
max_connections=256

// 接收/发送数据的buff大小,必须大于8KB
buff_size = 256KB

// 同tracker.conf
work_threads=4

// 磁盘IO是否读写分离
disk_rw_separated = true

// 是否直接读写文件,默认关闭
disk_rw_direct = false

// 混合读写时的读写线程数
disk_reader_threads = 1
disk_writer_threads = 1

// 同步文件时如果binlog没有要同步的文件,则延迟多少毫秒后重新读取,0表示不延迟
sync_wait_msec=50

// 同步完一个文件后间隔多少毫秒同步下一个文件,0表示不休息直接同步
sync_interval=0

// 表示这段时间内同步文件
sync_start_time=00:00
sync_end_time=23:59

// 同步完多少文件后写mark标记
write_mark_file_freq=500

// storage在存储文件时支持多路径,默认只设置一个
store_path_count=1

// 配置多个store_path路径,从0开始,如果store_path0不存在,则base_path必须存在
store_path0=/opt/fdfs
// store_path1=/opt/fastdfs2

// subdir_count  * subdir_count个目录会在store_path下创建,采用两级存储
subdir_count_per_path=256

// 设置tracker_server
tracker_server=x.x.x.x:22122

// 同tracker.conf
log_level=info
run_by_group=
run_by_user=
allow_hosts=*

// 文件在数据目录下的存放策略,0:轮训 1:随机
file_distribute_path_mode=0

// 当问及是轮训存放时,一个目录下可存放的文件数目
file_distribute_rotate_count=100

// 写入多少字节后就开始同步,0表示不同步
fsync_after_written_bytes=0

// 刷新日志信息到disk的间隔
sync_log_buff_interval=10

// 同步storage的状态信息到disk的间隔
sync_stat_file_interval=300

// 线程栈大小
thread_stack_size=512KB

// 设置文件上传服务器的优先级,值越小越高
upload_priority=10

// 是否检测文件重复存在,1:检测 0:不检测
check_file_duplicate=0

// 当check_file_duplicate设置为1时,次值必须设置
key_namespace=FastDFS

// 与FastDHT建立连接的方式 0:短连接 1:长连接
keep_alive=0

// 同tracker.conf
http.disabled=false
http.domain_name=
http.server_port=8888
http.trunk_size=256KB
http.need_find_content_type=true
// include http.conf
fastdfs文件系统单机环境搭建和spring boot整合(已验证)  1.  centos安装docker1.1添加yum源tee /etc/yum.repos.d/docker.repo &lt;&lt;-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gp... 阅读详情

相关推荐

FastDFS分布式文件系统

FastDFS分布式独立文件系统

qq_55577704的博客 1809

FastDFS 分布式集群搭建详解

如题。

程序员大佬超的博客 5273

FastDFS-01-单机和集群搭建

FastDFS(分布式文件存储系统)的单机和集群搭建教程。

码赛客1024的博客 1585

用FastDFS一步步搭建文件管理系统

分布式文件系统FastDFS设计原理FastDFS分布式文件系统FastDFS 是一个开源的高性能分布式文件系统(DFS)。它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size

weixin_45079648的博客 1470

SAP SD信贷管理实战:从配置到风险控制的完整指南(附后台路径)

本文详细解析了SAP SD信贷管理的完整配置流程与风险控制策略,涵盖信贷控制范围设置、风险分级机制及动态控制配置。通过实战案例和后台路径指引,帮助企业实现从客户信用评估到实时监控的全流程管理,有效降低坏账风险并优化资金安全。

3a9bq4r8t2y的博客 213

28377D Bootloader

架构

a6100309120的博客 6013

FastDFS的详细安装步骤一(亲搭--搭建时间2019年4月17号前后)

文章链接: FastDFS的详细安装步骤二 FastDFS的详细安装步骤三 前言: 项目中有需要上传文件或者图片功能的情况,应该是经常碰到的事情,每个公司可能都有不一样的处理方案,有的公司可能选择七牛云做图片服务器,有的可能选择搭建ftp+nginx做简单图片处理,或者搭建FastDFS+nginx来存储和管理图片。这篇博客主要讲解下如何在云服务器上搭建FastDFS和springboot...

jdk_wangtaida的博客 3877

服务器测试之intel E8102CQDA2

网卡性能 iperf E810

qq_41897488的博客 2509

FastDFS环境搭建

【前言】 在工作过程中用到了FastDFS来做分布式文件管理和存储,关于FastDFS的东西百科(详情猛击me)写的很明白,在此不再赘述;接下来主要为大家介绍一下FastDFS搭建过程。 【FastDFS搭建详解】 一、所需基本环境 1、Linux版本:CentOS7 2、FastDFS版本:5.05 3、Xshee...

通往精英的成长之路 1万+

2026年北京君正数字IC笔试试卷带答案

本文摘要:该文档是一份数字IC设计相关的考试试题,包含单选题、多选题、波形分析题和代码设计题。内容涵盖时序约束、半导体工艺、状态机设计、逻辑综合、异步FIFO设计等知识点。试题解析详细,重点考察数字电路基础、时序分析和Verilog代码实现能力。典型题目包括多周期路径设置、Moore/Mealy状态机区别、同步复位与异步复位特性、RISC-V架构特点等,并提供了异步FIFO的Verilog实现参考代码。(149字)

Open 113

如何使用 Python 爬取 58 同城招聘信息

职位名称:招聘的岗位名称,如“前端开发”、“数据分析师”等。公司名称:招聘公司的名称。薪资待遇:职位的薪资范围,通常以“面议”、“10k-20k”这样的形式表示。工作地点:公司所在的城市及具体地址。公司福利:例如五险一金、带薪年假、绩效奖金等。发布时间:职位信息的发布时间。一个典型的招聘页面 URL 格式通常如下:在这个页面上,职位信息会分页展示,爬虫需要模拟翻页,获取多个页面的招聘信息。

2201_76125261的博客 1291

分布式文件系统FastDFS实战

​ FastDFS是一个开源的高性能分布式文件系统(DFS)。它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB< file_size

苦难带不走梦想 2299

12、硬件工程师笔试面试——MOS管(2025版本)

在设计和测试过程中,可以参考相关的EMC测试标准和指南,如CE认证EMC电磁兼容测试介绍 和电磁兼容性(EMC)测试方法与整改指南 ,以及电磁兼容(EMC)的标准与测试内容 ,来确保MOSFET的EMC性能符合行业标准。在高频应用中,MOSFET的开关速度对电路的整体性能至关重要。是一款高电压同步N沟道MOSFET驱动器,具有自举电源电压至114V的能力,宽VCC电压范围,自适应贯通保护功能,以及高达1.4A的峰值顶端栅极上拉电流,适用于分布式电源架构、汽车电源、高密度电源模块和电信系统等应用。

XU157303764的博客 7093

搭建FastDFS文件上传服务器

一、FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 1. 简介 FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(...

yin_zh0522的博客 1万+

Arcgis模型构建器01——写一个简单的模型

在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。

爱吃雪糕的小布丁的博客 918

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

用FastDFS一步步搭建图片服务器(单机版)

一、FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 1、简介 FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范...

weixin_30767835的博客 507

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

FastDFS搭建

目录 一、FastDFS介绍 1、简介 2、FastDFS的存储策略 3、FastDFS的上传过程 4、FastDFS的文件同步 5、FastDFS的文件下载 二、安装FastDFS环境 0、前言 1、下载安装 libfastcommon 2、下载安装FastDFS 3、配置FastDFS跟踪器(Tracker) 4、配置 FastDFS 存储 (...

weixin_30505043的博客 118

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

FastDFS-单机版搭建

    在这一章,我们实现单机版的FastDFS图片服务器。一、前言    一般而言,当用户量较少的时候,我们就把图片之类的静态资源文件存储到一台装有 Tomcat 的服务器上。但是,随着用户访问量的增大,一个Tomcat服务就不能满足业务需求了,下面提出几种解决方案:    1. 部署Tomcat集群,使用 Nginx作为负载均衡服务器,分散存储到不同的 Tomcat 服务器上    这种做法可...

luqi0000的博客 1720

FastDFS单机搭建以及java客户端Demo

http://blog.youkuaiyun.com/u012453843/article/details/69951920http://blog.youkuaiyun.com/xyang81/article/details/52847311http://blog.youkuaiyun.com/kingboyworld/article/details/52299602参考了这几个搭建了FastDFS文件系统主要是fastDFS,n...

weixin_30666943的博客 159

FastDFS文件存储

一、FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 个人封装的FastDFS Java API:https://github.com/bojiangzhou/lyyzoo-fastdfs-java 1、简介 FastDFS 是一个开源的高性能分布...

qq_39459412的博客 1341

FastDFS-单机版安装

转载自: 搭建单机版的FastDFS服务器 * 为了便于理解,其中顺序有改变。 1、第八步创建软链接,可以等到第九步结束后进行。如果提前在第八步创建软链接,因为还没有安装 libfdfsclient.so文件,则创建软链接时会提示此文件不存在,但是不影响创建软链接。 为什么创建软链接:libfastcommon.so默认安装到了/usr/lib64/libfastco...

weixin_30693183的博客 119
上一篇: Nginx Image 缩略图 模块
下一篇: Linux系统安装Nginx
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值