目录
- FastDFS
- FastDFS特点
- 相关概念的介绍
- Tracker Server
- Storage Server
- FastDFS环境搭建【CentOS 7】
- 环境准备
- 安装gcc和libevent
- 上传安装包
- 安装libfastcommon
- 安装FastDFS
- 拷贝配置文件到指定位置
- tracker配置
- storage配置
- client测试上传文件
- 安装fastdfs-nginx-module模块到nginx
- 第一步
- 第二步:进入nginx文件夹
- 第三步 执行以下配置命令
- 第四步
- 第五步
FastDFS
- FastDFS(Fast Distributed File System)是一款开源的分布式文件系统,它提供了高性能、高可靠性、高扩展性和高容错性的分布式文件存储解决方案。
- FastDFS采用了类似于Google File System(GFS)的架构,它的设计目标是解决大规模数据存储和高访问速度的问题。
FastDFS特点
- 分布式架构:FastDFS采用分布式的设计,能够通过多台服务器共同完成文件存储和访问的任务,可以实现存储容量的无限扩展。
- 高性能:FastDFS采用了文件分块存储和负载均衡技术,可以实现高速读写,适用于高并发、大文件的存储和访问。
- 高可靠性:FastDFS采用了多台服务器备份和心跳检测机制,能够确保数据的安全性和高可靠性。
- 易于部署和管理:FastDFS采用了简单的部署和管理方式,易于安装和配置,对于需要快速搭建分布式存储的场景具有较高的适用性。
- 支持多种文件格式:FastDFS支持多种文件格式,包括图片、视频、文本等常见格式,可以满足不同业务需求的存储要求。
总体来说:FastDFS是一款高性能、高可靠性、易于部署和管理的分布式文件系统,适用于需要高速、大规模数据存储和访问的场景。
相关概念的介绍
Tracker Server
- Tracker Server是FastDFS的跟踪器服务器,负责管理所有Storage Server节点,以及存储文件的元数据信息,包括文件名、文件大小、文件创建时间、文件存储位置等。
- 客户端上传文件时,会先向Tracker Server发送请求,Tracker Server会返回一组可用的Storage Server节点列表,客户端再选择其中一个Storage Server进行文件上传。
Storage Server
- Storage Server是FastDFS的存储服务器,负责存储客户端上传的文件数据和元数据信息。
- 每个Storage Server节点都有自己的存储空间,可以通过多个Storage Server节点组成分布式存储系统,实现存储容量的无限扩展。
- 在文件上传过程中,客户端会将文件数据分成多个文件块并分别上传到不同的Storage Server节点上,每个节点保存自己的文件块,从而实现文件的分布式存储和快速读取。
需要注意的是,Tracker Server和Storage Server是两个独立的服务,可以分别部署在不同的服务器上。Tracker Server负责管理Storage Server节点,而Storage Server则负责存储文件数据和元数据信息。当需要扩展存储空间时,可以通过增加Storage Server节点的方式实现存储容量的无限扩展。
FastDFS环境搭建【CentOS 7】
环境准备
名称 | 说明 |
---|---|
centos | 7.x |
libfastcommon | FastDFS分离出的一些公用函数包 |
FastDFS | FastDFS本体 |
fastdfs-nginx-module | FastDFS和nginx的关联模块 |
nginx | nginx1.21.6 |
安装gcc和libevent
#安装gcc环境
yum install git gcc gcc-c++
#安装libevent
yum -y install libevent
上传安装包
安装包都上传到/opt/soft/FastDFS
- libfastcommon-1.0.42.tar.gz
- fastdfs-6.04.tar.gz
- fastdfs-nginx-module-1.22.tar.gz
mkdir -p /opt/soft/FastDFS
安装libfastcommon
# 解压libfastcommon-1.0.42.tar.gz
tar -zxvf libfastcommon-1.0.42.tar.gz
cd libfastcommon-1.0.42/
# 编译
./make.sh
# 安装
./make.sh install
安装FastDFS
# 解压fastdfs-6.04.tar.gz
tar -zxvf fastdfs-6.04.tar.gz
cd fastdfs-6.04/
# 编译
./make.sh
# 安装
./make.sh install
拷贝配置文件到指定位置
fastdfs相关命令在/usr/bin下
fastdfs配置文件在/etc/fdfs下
将解压缩后的fastdfs里面的conf文件夹下的配置文件,拷贝到/etc/fdfs下统一管理。
cp /opt/soft/FastDFS/fastdfs-6.04/conf/* /etc/fdfs/
tracker配置
vim /etc/fdfs/tracker.conf
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/usr/local/fastdfs/tracker # 存储日志和数据的根目录
# 创建文件夹
mkdir -p /usr/local/fastdfs/tracker
mkdir -p /home/yuqing/fastdfs
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=22122/tcp
# 启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 查看tracker是否启动成功
ps -ef | grep tracker
storage配置
vim /etc/fdfs/storage.conf
group_name=group1#设置组名
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/usr/local/fastdfs/storage # 数据和日志文件存储根目录
store_path0=/usr/local/fastdfs/storage # 第一个存储目录
tracker_server=192.168.29.31:22122 #tracker服务器的IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
# 创建文件夹
mkdir -p /usr/local/fastdfs/storage
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=23000/tcp
# 启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 查看storage是否启动成功
ps -ef | grep storage
client测试上传文件
#修改/etc/fdfs/client.conf,需要修改的内容如下
vim /etc/fdfs/client.conf
base_path=/usr/local/fastdfs/client
tracker_server=192.168.29.31:22122
# 创建文件夹
mkdir -p /usr/local/fastdfs/client
# 测试上传(fdfs_test)
cd /usr/bin
./fdfs_test /etc/fdfs/client.conf upload /home/KGC.jpg
记住这个地址:http:192.168.29.31/group1/M00/00/00/wKgdH2YSGJuAa0D_AAEWuRS9uUs910_big.jpg
此时还不可以访问到该图片,需要配置web服务
但是可以在/usr/local/fastdfs/storage/data/00/00看到上传的文件
安装fastdfs-nginx-module模块到nginx
第一步
# 解压fastdfs-nginx-module-1.22.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
cd fastdfs-nginx-module-1.22/src
# 将mod_fastdfs.conf配置文件拷贝到/etc/fdfs/
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
store_path0=/usr/local/fastdfs/storage #存储目录,和storage.conf里面的配置要一样
tracker_server=192.168.29.31:22122 #tracker服务器的IP和端口
group_name=group1#设置组名
url_have_group_name = true #配置url使用组名
base_path=/usr/local/fastdfs/tmp #配置存储日志文件的位置
创建文件夹
mkdir -p /usr/local/fastdfs/tmp
cd /opt/soft/FastDFS/fastdfs-nginx-module-1.22/src
修改config配置文件,把两个local删除掉,因为之前安装的fastdfs的默认安装路径是/usr/include
vim config
ngx_module_incs="/usr/include"
CORE_INCS="$CORE_INCS /usr/include"
第二步:进入nginx文件夹
cd /usr/local/nginx/nginx-1.21.6
第三步 执行以下配置命令
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/soft/FastDFS/fastdfs-nginx-module-1.22/src
第四步
make && make install
第五步
安装完之后在nginx.conf配置监听的服务和端口
cd /usr/local/nginx/conf
vim nginx.conf
listen 8888; ## 该端口为storage.conf中的http.server_port相同,记得开放端口
#添加ngx_fastdfs_module模块,修改为自己设置的组名chen,后面添加文件存储的路径MOO
location /group1/M00 {
ngx_fastdfs_module;
}
修改完配置文件后执行启动nginx
cp /usr/local/nginx/sbin/nginx /usr/bin
nginx
ps -ef |grep nginx
然后访问之前上传的图片,路径如下:
http://192.168.29.31:8888/group1/M00/00/00/wKgdH2YSGJuAa0D_AAEWuRS9uUs910_big.jpg
如果可以访问的到的话,那么说明已经安装成功了