Fastdfs

Fastdfs是一款轻量级的分布式文件系统,专为大数据量的小文件存储设计,适用于图片、文档等4KB至500M的文件。系统包括客户端、跟踪服务器和存储服务器三部分。每个存储组内的节点数据相同,实现冗余备份,确保数据安全。在环境部署中,所有主机都需要安装Fastdfs,特定主机安装Nginx。通过多步配置和启动服务,最终实现文件的上传、访问和删除功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fastdfs

定位:
分布式实时文件存储系统,适合存储图片、文档,文件大小是4KB<size<500M,效率最高
分布式,是多个主机

角色:
1、客户端:client
2、跟踪服务器:tracker server
3.存储服务器:storage server
在这里插入图片描述

上传流程图
在这里插入图片描述
在这里插入图片描述
Storage server:是以组的形式存在,每一组的节点数据完全一样,起到数据冗余备份的作用
不同组的节点数据不一样

在这里插入图片描述
在这里插入图片描述

环境:

主机ip
客户端192.168.10.10
tracher1192.168.10.20
tracher2192.168.10.30
group1-1192.168.10.40
group1-2192.168.10.50
group2-1192.168.10.60
group2-2192.168.10.70

安装fastdfs 所有主机都要安装

[root@localhost ~]# yum -y install gcc* automake autoconf zlib zlib-devel openssl openssl-devel pcre pcre-devel
[root@localhost ~]# tar -zxf fastdfs.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/libfastcommon/
[root@localhost libfastcommon]# ./make.sh && ./make.sh install && cd ..
[root@localhost src]# cd fastdfs 
[root@localhost fastdfs]# ./make.sh && ./make.sh install && cd ..
[root@localhost src]# cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
[root@localhost src]# cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
[root@localhost src]# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
[root@localhost src]# cp fastdfs/conf/http.conf /etc/fdfs/
[root@localhost src]# cp fastdfs/conf/mime.types /etc/fdfs/
[root@localhost src]# systemctl stop firewalld
[root@localhost src]# setenforce 0
[root@localhost src]# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
[root@localhost src]# mkdir -p /home/yuqing/fastdfs

安装nginx 在第一台和最后四台上安装

[root@localhost ~]# tar -zxf nginx-1.15.4.tar.gz 
[root@localhost ~]# cd nginx-1.15.4/
[root@localhost nginx-1.15.4]# ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src && make && make install
[root@localhost nginx-1.15.4]# ln -s /usr/local/nginx/sbin/nginx    /usr/sbin/
[root@localhost nginx-1.15.4]# nginx -v
nginx version: nginx/1.15.4

客户端:

[root@localhost ~]# vim /etc/fdfs/client.conf
10 base_path=/home/yuqing/fastdfs
#修改添加
14 tracker_server=192.168.10.20:22122  #指定tracker的ip
 15 tracker_server=192.168.10.30:22122

tracher1主机

[root@localhost ~]# vim /etc/fdfs/tracker.conf
8 bind_addr=192.168.10.20 #本机ip
11 port=22122
22 base_path=/home/yuqing/fastdfs

tracher2主机

 vim /etc/fdfs/tracker.conf
8 bind_addr=192.168.10.30
11 port=22122
22 base_path=/home/yuqing/fastdfs

group1-1主机

[root@localhost ~]# vim /etc/fdfs/storage.conf
11 group_name=group1
15 bind_addr=192.168.10.40 #本机ip
 41 base_path=/home/yuqing/fastdfs
 110 store_path0=/home/yuqing/fastdfs
119 tracker_server=192.168.10.20:22122  #tracher1的ip地址
120 tracker_server=192.168.10.30:22122   #tracher2的ip地址
285 http.server_port=8888

因为后面几台主机的修改内容一样,所以直接将配置文件拷贝到后面几台group主机上即可
[root@localhost ~]# scp /etc/fdfs/storage.conf root@192.168.10.50:/etc/fdfs/storage.conf
[root@localhost ~]# scp /etc/fdfs/storage.conf root@192.168.10.60:/etc/fdfs/storage.conf
[root@localhost ~]# scp /etc/fdfs/storage.conf root@192.168.10.70:/etc/fdfs/storage.conf

group1-2主机

[root@localhost ~]# vim /etc/fdfs/storage.conf
15 bind_addr=192.168.10.50

group2-1主机

[root@localhost ~]# vim /etc/fdfs/storage.conf
11 group_name=group2
15 bind_addr=192.168.10.60

group2-2主机

[root@localhost ~]# vim /etc/fdfs/storage.conf
11 group_name=group2
15 bind_addr=192.168.10.70 #本机ip

group1-1主机

[root@localhost ~]# vim /etc/fdfs/mod_fastdfs.conf 
10 base_path=/home/yuqing/fastdfs
40 tracker_server=192.168.10.20:22122
41 tracker_server=192.168.10.30:22122
48 group_name=group1
54 url_have_group_name = true  #路径当中是否包含组名
58 store_path_count=1
63 store_path0=/home/yuqing/fastdfs
114 group_count = 2

#取消119-123行的注释
119 [group1]
120 group_name=group1
121 storage_server_port=23000
122 store_path_count=1   #改为1
123 store_path0=/home/yuqing/fastdfs

#取消129-133行的注释
129 [group2]
130 group_name=group2
131 storage_server_port=23000
132 store_path_count=1
133 store_path0=/home/yuqing/fastdfs

将配置文件远程拷贝到后三台

[root@localhost ~]# scp /etc/fdfs/mod_fastdfs.conf root@192.168.10.50:/etc/fdfs/mod_fastdfs.conf
[root@localhost ~]# scp /etc/fdfs/mod_fastdfs.conf root@192.168.10.60:/etc/fdfs/mod_fastdfs.conf
[root@localhost ~]# scp /etc/fdfs/mod_fastdfs.conf root@192.168.10.70:/etc/fdfs/mod_fastdfs.conf

group2-1主机

[root@localhost ~]# vim /etc/fdfs/mod_fastdfs.conf
48 group_name=group2

group2-2主机

[root@localhost ~]# vim /etc/fdfs/mod_fastdfs.conf 
48 group_name=group2

客户端:

[root@localhost ~]# vim /etc/fdfs/mod_fastdfs.conf 
10 base_path=/home/yuqing/fastdfs
40 tracker_server=192.168.10.20:22122
 41 tracker_server=192.168.10.30:22122

group1-1主机 修改nginx配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
36         listen       8888;
#添加
42         location ~/group[0-9]/MOO/ {  #当访问的是storge里面的组
 43                  ngx_fastdfs_module;   #就进入到连接的fastdfs的模块中
 44         } 

将配置文件拷贝到后三台主机

[root@localhost ~]# scp /usr/local/nginx/conf/nginx.conf root@192.168.10.50:/usr/local/nginx/conf/nginx.conf
[root@localhost ~]# scp /usr/local/nginx/conf/nginx.conf root@192.168.10.60:/usr/local/nginx/conf/nginx.conf
[root@localhost ~]# scp /usr/local/nginx/conf/nginx.conf root@192.168.10.70:/usr/local/nginx/conf/nginx.conf

客户端

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#添加
34     upstream fdfs_group1{
 35         server 192.168.10.40:8888 max_fails=3 fail_timeout=20s;
 36         server 192.168.10.50:8888 max_fails=3 fail_timeout=20s;
 37     }
 38     upstream fdfs_group2{
 39         server 192.168.10.60:8888 max_fails=3 fail_timeout=20s;
 40         server 192.168.10.70:8888 max_fails=3 fail_timeout=20s;
 41     }

50         location ~/group1/ {
 51             proxy_pass http://fdfs_group1;
 52         }
 53         location ~/group2/ {
 54             proxy_pass http://fdfs_group2;
 55         }
[root@localhost ~]# nginx

tracher1主机和tracher2启动服务

[root@localhost ~]# /etc/init.d/fdfs_trackerd start
Reloading systemd:                                         [  确定  ]
Starting fdfs_trackerd (via systemctl):                    [  确定  ]

group1-1、group1-2和group2-1、group2-2主机启动服务

[root@localhost ~]# nginx 
ngx_http_fastdfs_set pid=26266
[root@localhost ~]# /etc/init.d/fdfs_storaged start
Reloading systemd:                                         [  确定  ]
Starting fdfs_storaged (via systemctl):                    [  确定  ]

客户端验证:
随便找一张图片拖拽到主机里

上传

[root@localhost ~]# fdfs_upload_file /etc/fdfs/client.conf /root/1.png 
group2/M00/00/00/wKgKPGAJa3eAMfBkAABDjkNSWOw829.png

可以通过192.168.10.10/group2/M00/00/00/wKgKPGAJa3eAMfBkAABDjkNSWOw829.png访问页面验证

下载:

[root@localhost ~]# fdfs_download_file /etc/fdfs/client.conf group2/M00/00/00/wKgKPGAJa3eAMfBkAABDjkNSWOw829.png

删除:

[root@localhost ~]# fdfs_delete_file /etc/fdfs/client.conf group2/M00/00/00/wKgKPGAJa3eAMfBkAABDjkNSWOw829.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值