CentOS7部署FastDFS

一、FastDFS的介绍与原理

官方Github地址:https://github.com/happyfish100

FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡

主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

image.png

  • Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳

  • Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份

  • Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器,在使用的过程中,只需要配置Tranker的地址即可。


二、FastDFS的安装前环境准备

需要用到的相关软件与简单介绍

centos 7.x
libfatscommon FastDFS分离出的一些公用函数包
FastDFS FastDFS本体
fastdfs-nginx-module FastDFS和nginx的关联模块
nginx nginx1.20.2

1、检查安装编译环境:

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

2、统一准备好文件夹位置:

说明 位置
所有安装包 /usr/local/fastdfs
数据存储位置 /data/fastdfs/
#data/logs都存在了dfs
[root@tcosmo-test-szls-baas01 /]# mkdir /usr/local/fastdfs
[root@tcosmo-test-szls-baas01 /]# mkdir -p /data/fastdfs

## 进入
[root@tcosmo-test-szls-baas01 fastdfs]# cd /usr/local/fastdfs/

三、安装FastDFS的四大软件

由于github经常无法访问,我们可以提前下载好,拷贝进/usr/local/fastdfs目录下

1、下载并安装libfatscommon:

git clone https://github.com/happyfish100/libfastcommon.git --depth 1

cd libfastcommon/
./make.sh && ./make.sh install #编译安装

2、安装FastDFS本体:

git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装

# 查看默认提供的配置文件:
[root@tcosmo-test-szls-baas01 fdfs]# ll /etc/fdfs/
total 32
-rw-r--r-- 1 root root  1909 Feb 14 11:25 client.conf
-rw-r--r-- 1 root root 10246 Feb 14 11:25 storage.conf
-rw-r--r-- 1 root root   620 Feb 14 11:25 storage_ids.conf
-rw-r--r-- 1 root root  9138 Feb 14 11:25 tracker.conf

# 提前将nginx的配置文件也拷贝到fdfs的配置文件文件夹下:
cp /usr/local/fastdfs/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/fastdfs/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用

当fastdfs安装完成后,会在 /usr/local/fastdfs/fastdfs/init.d 目录下生成对应的运行脚本:

[root@i-zqovu8av init.d]# ll /usr/local/fastdfs/fastdfs/init.d
total 8
-rwxrwxrwx 1 root root 961 Dec 31 02:52 fdfs_storaged
-rwxrwxrwx 1 root root 963 Dec 31 02:52 fdfs_trackerd

如果没有运行权限,我们就手动chmod!

3、安装fastdfs-nginx-module:

git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

4、安装Nginx并添加fastdfs-nginx-module:

## 下载
wget 

## 解压 & 进入:
tar -zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2/

 

## 添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src/

## 编译安装
make && make install

具体的Nginx安装参考:Nginx的安装与使用


四、FastDFS的单机部署配置

1、tracker的配置:

#服务器ip为 139.198.191.246

vim /etc/fdfs/tracker.conf

#需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/data/fastdfs  # 存储日志和数据的根目录

2、storage的配置:

vim /etc/fdfs/storage.conf

#需要修改的内容如下
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/data/fastdfs  # 数据和日志文件存储根目录
store_path0=/data/fastdfs  # 第一个存储目录
tracker_server=139.198.191.246:22122  # tracker服务器IP和端口
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

3、nginx的配置:

vim /etc/fdfs/mod_fastdfs.conf

#需要修改的内容如下
tracker_server=139.198.191.246:22122  #tracker服务器IP和端口
url_have_group_name=true
store_path0=/data/fastdfs

#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
    listen       8888;    ## 该端口为storage.conf中的http.server_port相同
    server_name  localhost;
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
}

4、启动服务:

# 关闭防火墙
systemctl stop firewalld.service

# 启动tracker
/usr/local/fastdfs/fastdfs/init.d/fdfs_trackerd start
Starting FastDFS tracker server: 

# 启动storage
/usr/local/fastdfs/fastdfs/init.d/fdfs_storaged start
Starting FastDFS storage server: 

# 重启nginx
nginx -s reload

五、使用自带的client测试文件的上传与访问

1、配置自带的client的配置文件:

vim /etc/fdfs/client.conf

#需要修改的内容如下
base_path=/data/fastdfs
tracker_server=139.198.191.246:22122    #tracker服务器IP和端口

2、测试上传一个文件,我们事先在某个位置准备一张图片即可:

[root@i-zqovu8av fdfs]# fdfs_upload_file /etc/fdfs/client.conf /root/testfdfs.jpg
group1/M00/00/00/i8a_9mIKAMKAPKgPAAA2E69InJY486.jpg

#返回图片位置,则表示成功。

3、上传成功后,我们就能在 /data/fastdfs 目录下,看到我们上传的文件:

[root@i-zqovu8av 00]# pwd
/data/fastdfs/data/00/00
[root@i-zqovu8av 00]# ls
i8a_9mIKAMKAPKgPAAA2E69InJY486.jpg

4、我们还可以通过配置的Nginx对文件进行直接访问:

http://139.198.191.246:8888/group1/M00/00/00/i8a_9mIKAMKAPKgPAAA2E69InJY486.jpg

image.png

至此,FastDFS的单机版安装与测试完成,高可用集群版,后面再说吧。


补充一:FastDFS与Nginx的开机自启动

考虑到每次启动之后都要重新启动一下fastdfs 和 nginx服务,比较麻烦,所以增加开机自启动

1、配置 rc.local 文件:

vim /etc/rc.d/rc.local

# 增加fastdfs start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

# 增加nginx start
/usr/local/nginx/sbin/nginx

2、由于在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限:

chmod +x /etc/rc.d/rc.local

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐