FastDFS服务器搭建

一·FastDFS介绍

1.1.FastDFS简介

FastDFS是一款开源的分布式文件系统,采用了服务器集群和分布式文件存储技术。FastDFS支持文件上传、下载、删除、检索等操作,并提供了多种文件传输协议,包括TCP、HTTP和自定义协议。FastDFS采用了多线程和异步I/O技术,提高了文件上传和下载的效率。FastDFS还支持文件的动态扩展和负载均衡,以应对高并发的文件访问需求。

1.2.FastDFS结构

FastDFS由三个主要组件组成:Tracker Server、Storage Server和Client。Tracker Server用于管理存储节点和文件的元数据信息,如文件名、大小、存储位置等。Storage Server用于存储文件和提供文件访问服务。Client是用户使用FastDFS进行文件上传和下载的客户端程序。

1.3.FastDFS原理

FastDFS将上传的文件分成若干个文件块,每个文件块的大小可以通过配置进行设置。每个文件块被存储在不同的存储节点上,并备份多份以保证数据的可靠性和可用性。Tracker Server维护了所有存储节点的状态信息和文件的元数据信息。当用户上传文件时,Tracker Server会选择一个合适的存储节点,将文件块分发到不同的存储节点上进行存储。当用户需要下载文件时,Tracker Server会根据文件名查询文件的元数据信息,并选择一个离用户最近的存储节点进行文件下载。

1.4.FastDFS的优缺点

  1. 优点

分布式架构:FastDFS采用分布式架构,使文件存储和访问可以水平扩展。通过将文件分成若干个文件块存储在多个存储节点上,从而实现文件的分布式存储。FastDFS还提供了动态扩展存储节点的功能,以支持更大规模的文件存储。

高性能:FastDFS使用多线程和异步I/O技术,提高了文件上传和下载的效率。FastDFS还支持多种文件传输协议,包括TCP、HTTP和自定义协议。通过多种协议的支持,FastDFS可以满足不同的应用场景需求。

可靠性:FastDFS采用文件分块和备份机制,提高了文件的可靠性和可用性。FastDFS将文件分成若干个文件块存储在多个存储节点上,并使用冗余备份策略,以保证数据的可靠性。当存储节点出现故障时,FastDFS会自动切换到备份节点上,保证文件的可用性。

  1. 缺点

对小文件支持不足:FastDFS对小文件的支持不如传统的文件系统。因为对于小文件,分成若干个文件块并存储在多个存储节点上反而会增加访问的开销。

1.5FastDFS应用场景

FastDFS适用于需要存储海量文件的场景,如社交网络、图片分享网站、视频网站等。FastDFS具有高可扩展性、高性能、可靠性和灵活的部署和管理方式,使其成为处理大规模文件存储和访问需求的理想选择。

除了常规的文件存储场景,FastDFS还可以应用于一些特殊的场景。比如,在大规模机器学习中,需要处理海量的数据集,FastDFS可以用来存储和分发数据集,以便于并行训练。又如,在分布式计算框架中,FastDFS可以作为输入和输出数据的存储和分发系统。

1.6扩展知识:

除了FastDFS之外,还有一些其他的分布式文件系统,如HDFS、Ceph等。它们各有特点和适用场景,可以根据具体需求选择适合的分布式文件系统。HDFS适用于大规模数据的离线处理,如数据仓库、数据分析等;Ceph则适用于云存储和分布式存储场景。

二.FastDFS安装

操作环境:CentOS 8.x

2.1.安装依赖库和工具

2.1.1.安装依赖库

在开始安装FastDFS之前,我们需要安装以下依赖库和工具:

yum -y install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget

##yum是CentOS或者RedHat系统的软件包管理器。
##y参数是让yum在安装时自动确认。
##gcc、gcc-c++、make、automake、autoconf、libtool、pcre、pcre-devel、zlib、zlib-devel、openssl-devel是FastDFS安装过程中需要的依赖库和工具。
wget是一个用于从网络上下载文件的工具。

2.2.2安装libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
tar -xzvf V1.0.43.tar.gz
cd libfastcommon-1.0.43/
./make.sh
./make.sh install

##wget是一个用于从网络上下载文件的工具。
##tar命令用于解压缩文件。
##cd命令用于切换到指定的目录。
##./make.sh命令用于编译libfastcommon。
##./make.sh install命令用于安装libfastcommon。

2.2 安装FastDFS

2.2.1.下载FastDFS源码包

wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
tar -xzvf V6.06.tar.gz

##wget是一个用于从网络上下载文件的工具。
##tar命令用于解压缩文件。

2.2.2.编译和安装FastDFS

cd fastdfs-6.06/
./make.sh
./make.sh install

##cd命令用于切换到指定的目录。
##./make.sh命令用于编译FastDFS。
##./make.sh install命令用于安装FastDFS

2.3 配置FastDFS

2.3.1.创建FastDFS配置文件目录

mkdir -p /etc/fdfs/

##mkdir命令用于创建目录。
##-p参数用于递归创建目录,如果目录已经存在则不会报错。

2.3.2.复制FastDFS配置文件

cp conf/* /etc/fdfs/

#cp命令用于复制文件或目录。
#conf/*表示将conf目录下的所有文件和子目录复制到/etc/fdfs目录下。

2.3.3.修改FastDFS配置文件

修改配置文件包括:tracker的配置文件(/etc/fdfs/tracker.conf)、storage的配置文件(/etc/fdfs/storage.conf)和client的配置文件(/etc/fdfs/client.conf)。下面我们分别对这三个配置文件进行说明和修改:

1.修改tracker的配置文件

mkdir -p /data/fastdfs/tracker
vi /etc/fdfs/tracker.conf

#vi命令用于打开文件编辑器。
#/etc/fdfs/tracker.conf是tracker的配置文件路径。
#mkdir -p /data/fastdfs/tracker创建tracker工作目录

在tracker的配置文件中,我们需要修改以下几个参数:

port=22122
bind_addr=
base_path=/data/fastdfs/tracker
http.server_port = 8080
tracker_server=

#port参数是tracker服务的端口号,通常为22122。
#bind_addr参数是tracker服务的IP地址,如果不填写则表示自动检测IP地址。
#base_path参数是tracker服务的工作目录,通常为/data/fastdfs/tracker。
#http.server_port默认为8080建议修改,防止冲突
#tracker_server参数是tracker服务的地址列表,多个地址之间用逗号分隔。如果是单节点部署,则填写本机IP地址和tacker端口号。

修改完成后,保存并退出。
ps:寻找参数可以用vim的搜索,既 /[搜索字段]+回车。

2.修改storage的配置文件

vi /etc/fdfs/storage.conf
mkdir -p /data/fastdfs/storage

#vi命令用于打开文件编辑器。
#/etc/fdfs/storage.conf是storage的配置文件路径。
#mkdir -p /data/fastdfs/storage用于创建tracker工作目录

在storage的配置文件中,我们需要修改以下几个参数:

group_name=group1
port=23000
bind_addr=
base_path=/data/fastdfs/storage
store_path0=/data/fastdfs/storage/data
tracker_server=

#group_name参数是存储节点的分组名称,通常为group1。
#port参数是存储节点的服务端口号,通常为23000。
#bind_addr参数是存储节点的IP地址,如果不填写则表示自动检测IP地址。
#base_path参数是存储节点的工作目录,通常为/data/fastdfs/storage。
#store_path0参数是存储节点的数据目录,通常为/data/fastdfs/storage/data。
#tracker_server参数是tracker服务的地址列表,多个地址之间用逗号分隔。如果是单节点部署,则填写本机IP地址和tacker端口号。

修改完成后,保存并退出。

3.修改client的配置文件

vi /etc/fdfs/client.conf
mkdir -p /data/fastdfs/client

#vi命令用于打开文件编辑器。
#/etc/fdfs/client.conf是client的配置文件路径。
#mkdir -p /data/fastdfs/client用于创建client工作目录

在client的配置文件中,我们需要修改以下几个参数:

base_path=/data/fastdfs/client
tracker_server=

#base_path参数是client的工作目录,通常为/data/fastdfs/client。
#tracker_server参数是tracker服务的地址列表,多个地址之间用逗号分隔。如果是单节点部署,则填写本机IP地址和tacker端口号。

修改完成后,保存并退出。

2.4.启动FastDFS

配置完成后,我们需要启动FastDFS服务。启动命令如下:

/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start

#其中,fdfs_trackerd是tracker的启动脚本
#fdfs_storaged是storage的启动脚本。

启动之后,我们可以使用以下命令来检查服务是否正常启动:

netstat -an | grep 22122
netstat -an | grep 23000

#netstat -an用于查看系统网络连接状态,grep用于过滤指定的字符串。

如果服务已经正常启动,我们应该能够看到类似下面的输出:

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN

2.3.测试FastDFS

1.上传测试文件

首先,我们需要上传一个测试文件。在上传文件之前,我们需要创建一个空目录作为测试文件的来源。

mkdir -p /data/fastdfs/test

然后,我们将在此目录中创建一个名为test.txt的文件。

echo "This is a test file." > /data/fastdfs/test/test.txt

接下来,我们可以使用fdfs_upload_file命令将此文件上传到FastDFS。

fdfs_upload_file /etc/fdfs/client.conf /data/fastdfs/test/test.txt

#fdfs_upload_file命令用于将文件上传到FastDFS。
#/etc/fdfs/client.conf是client的配置文件路径。
#/data/fastdfs/test/test.txt是要上传的文件路径。

在上传完成后,命令行将输出文件ID,如下所示:

group1/M00/00/00/wKhTgFhPZZiAERf0AAABl4jW8sA49.txt

2.下载测试文件

要从FastDFS下载文件,我们可以使用以下命令:

fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKhTgFhPZZiAERf0AAABl4jW8sA49.txt /data/fastdfs/download/test.txt

#fdfs_download_file命令用于从FastDFS下载文件。
#/etc/fdfs/client.conf是client的配置文件路径。
#group1/M00/00/00/wKhTgFhPZZiAERf0AAABl4jW8sA49.txt是文件ID。
#/data/fastdfs/download/test.txt是下载后的文件保存路径。

在下载完成后,我们可以使用cat命令来验证文件是否已下载。

cat /data/fastdfs/download/test.txt

如果输出结果为This is a test file.,则表示FastDFS安装和配置成功。

2.4.总结

在本教程中,我们介绍了如何在CentOS 7上安装和配置FastDFS。我们通过以下步骤完成了此过程:

1.安装必需的依赖项。
2.下载并编译FastDFS。
3.配置tracker和storage服务。
4.启动tracker和storage服务。
5.测试FastDFS。

FastDFS是一个快速、简单、易于管理和扩展的分布式文件系统,适用于处理大型文件。希望这篇教程可以帮助你成功安装和配置FastDFS。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值